[
  {
    "path": ".gitignore",
    "content": ".idea\nenv\n.ipynb_checkpoints\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: python\npython:\n  - \"3.6\"\n\n# Install dependencies.\ninstall:\n  - pip install -r requirements.txt\n\n# Run linting and tests.\nscript:\n  - pylint ./homemade\n\n# Turn email notifications off.\nnotifications:\n  email: false\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, sex characteristics, gender identity and expression,\nlevel of experience, education, socio-economic status, nationality, personal\nappearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see\nhttps://www.contributor-covenant.org/faq\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "## Contributing\n\n### General Rules\n\n- As much as possible, try to follow the existing format of markdown and code.\n- Don't forget to run `pylint ./homemade` before submitting pull requests.\n\n### Contributing New Translation\n\n- Create new `README.xx-XX.md` file with translation alongside with main `README.md` file where `xx-XX` is [locale and country/region codes](http://www.lingoes.net/en/translator/langcode.htm). For example `en-US`, `zh-CN`, `zh-TW`, `ko-KR` etc.\n- You may also translate all other sub-folders by creating related `README.xx-XX.md` files in each of them.\n\n### Contributing New Algorithms\n\n- Make your pull requests to be **specific** and **focused**. Instead of contributing \"several algorithms\" all at once contribute them all one by one separately (i.e. one pull request for \"Logistic Regression\", another one for \"K-Means\" and so on).\n- Every new algorithm must have:\n    - **Source code** with comments and readable namings\n    - **Math** being explained in README.md along with the code\n    - **Jupyter demo notebook** with example of how this new algorithm may be applied\n\nIf you're adding new **datasets** they need to be saved in the `/data` folder. CSV files are preferable. The size of the file should not be greater than `30Mb`.\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 Oleksii Trekhleb\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.es-ES.md",
    "content": "# Homemade Machine Learning (Aprendizaje automatico casero)\n\n> UA UCRANIA [ESTÁ SIENDO ATACADA](https://war.ukraine.ua/) POR EL EJERCITO RUSO. CIVILES ESTAN SIENDO ASESINADOS. AREAS RESIDENCIALES ESTAN SIENDO BOMBARDEADAS.\n> Ayuda a Ucrania via [National Bank of Ukraine](https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi-armiyi)\n> - Ayuda a Ucrania via [SaveLife](https://savelife.in.ua/en/donate-en/) fund\n> - Más información en [war.ukraine.ua](https://war.ukraine.ua/) y [MFA of Ukraine](https://twitter.com/MFA_Ukraine)\n\n<hr/>\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/trekhleb/homemade-machine-learning/master?filepath=notebooks)\n\n> _También te podría interesar 🤖 [Interactive Machine Learning Experiments](https://github.com/trekhleb/machine-learning-experiments)_\n\n_Para la versión en Octave/MatLab de este repositiorio, visita [machine-learning-octave](https://github.com/trekhleb/machine-learning-octave) project._\n\n> Este repositorio contiene ejemplos de algoritmos populares en machine learning implementados en **Python** con los racionales matemáticos explicados. Cada algoritmo tiene un **Jupiter Notebook** interactive asociado que te permite jugar con la data, la configuración de los algoritmos e inmediatamente ver los resultados, gráficas y predicciones **directamente en tu explorador**. En la mayoría de los casos las explicaciones están basadas en [this great machine learning course](https://www.coursera.org/learn/machine-learning) por Andrew Ng.\n\nEl propósito de este repositorio _no_ es de implementar algoritmos de machine learning utilizando bibliotecas desarrolladas por 3<sup>eros</sup> que consisten en comandos de una linea. El propósito es practicar la implementación de estos algoritmos desde zero y por consiguiente mejorar el entendimieno de la matematica detrás de cada algoritmo. Es por esto que todas las implementaciones son llamadas \"caseras\" y no están hachas para ser utilizadas fuera de un contexto didáctico.\n\n## Supervised Learning (Aprendizaje supervisado)\n\nEn este tipo de algoritmos contamos con un set de data de entrenamiento (training data) como entrada y un set de etiquetas o \"respuestas correctas\" correspondiente con ladata de entrada que serviran como salida. El propósito es entrenar nuestro modelo (parametros del algoritmo) para emparejar los datos de entrada con los de salida correctamente (hacer predicciones correctas). Esto con el fin de encontrar los parametros del modelo que continuaran este emparejamiento (correcto) de _entrada+salida_ con nuevos datos.\n\n### Regression (Regresión)\n\nEn problemas de regresión hacemos predicciones de datos reales. Básicamente intentamos dibujar una linea/plano através de los ejemplos de entrenamiento. \n\n_Ejemplos de uso: pronostico de precios de acciones, análisis de ventas, dependencias numericas, etc..._\n\n#### 🤖 Linear Regression (Regresión linear)\n\n- 📗 [Math | Linear Regression](homemade/linear_regression) - teoría y más para leer (en inglés)\n- ⚙️ [Code | Linear Regression](homemade/linear_regression/linear_regression.py) - ejemplo de implementación\n- ▶️ [Demo | Univariate Linear Regression (Regresión univariable)](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/univariate_linear_regression_demo.ipynb) - predecir la evaluacion de `country happiness (felicidad en el país)` usando `economy GDP (producto interno bruto)`\n- ▶️ [Demo | Multivariate Linear Regression(Regresión multivariable)](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/multivariate_linear_regression_demo.ipynb) - predecir la evaluacion de `country happiness (felicidad en el país)` usando `economy GDP (producto interno bruto)` y `freedom index (índice de libertad)`\n- ▶️ [Demo | Non-linear Regression](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/non_linear_regression_demo.ipynb) - usar regresión linear con caracteristicas _polinimiales_ y _sinusoidales_ para predecir dependencias no-lineales\n\n### Classification (Clasificación)\n\nEn problemas de clasificación no contamos con etiquetas o \"respuestas correctas\". En este tipo de problemas dividimos la data de entrada en grupos dependiendo sus características. \n\n_Ejemplos de uso: filtros de spam, detección de lenguaje, encontrar documentos similares, reconocimiento de letras escritas a mano, etc..._\n\n#### 🤖 Logistic Regression (Regresión logística)\n\n- 📗 [Math | Logistic Regression](homemade/logistic_regression) - teoría y más para leer (en inglés)\n- ⚙️ [Code | Logistic Regression](homemade/logistic_regression/logistic_regression.py) - ejemplo de implementación\n- ▶️ [Demo | Logistic Regression (Linear Boundary)](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/logistic_regression_with_linear_boundary_demo.ipynb) - predecir la `class (clase)` de flor basado en `petal_length (longitud del pétalo)` y `petal_width (ancho del pétalo)`\n- ▶️ [Demo | Logistic Regression (Non-Linear Boundary)](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/logistic_regression_with_non_linear_boundary_demo.ipynb) - predicir la `validity (validez)` de un microchip basado en `param_1` y `param_2`\n- ▶️ [Demo | Multivariate Logistic Regression | MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/multivariate_logistic_regression_demo.ipynb) - reconocer números escritos a mano en imagenes de `28x28` pixeles \n- ▶️ [Demo | Multivariate Logistic Regression | Fashion MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/multivariate_logistic_regression_fashion_demo.ipynb) - reconocer artículos de ropa en imagenes de `28x28` pixeles \n\n## Unsupervised Learning (Aprendizaje no supervisado)\n\nAprendizaje no supervisado es una rama del machine learning que aprende de data que no ha sido etiquetada, clasificada o categorizada. En lugar de aprender de retoralimentación, unsupervised learning identifica caracteristicas en común de la data y reacciona de acuerdo a la presencia (o ausencia) de estas caracteristicas en data nueva.  \n\n### Clustering (Clústering)\n\nEn problemas de clústering dividimos los ejemplos de entrenamiento por caracteristicas desconocidas. El algoritmo en si decide que caracteristicas usa para hacer esta división.\n\n_Ejemplos de uso: segmentación de mercados, analysis de redes sociales, organizar clústers de cómputo, análisis de data astronómica, compresión de imagenes, etc..._\n\n#### 🤖 K-means Algorithm (Algoritmo K-means)\n\n- 📗 [Math | K-means Algorithm](homemade/k_means) - teoría y más para leer (en inglés)\n- ⚙️ [Code | K-means Algorithm](homemade/k_means/k_means.py) - ejemplo de implementación\n- ▶️ [Demo | K-means Algorithm](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/k_means/k_means_demo.ipynb) - dividir flores en clústers basandonos en `petal_length (longitud del pétalo)` y `petal_width (ancho del pétalo)`\n\n### Anomaly Detection (Detección de anomalías)\n\nLa detección de anomalías es la identificación de articulos, eventos o observaciones raras que levantan sospechas ya que difieren significativamente de la mayoría de la data. \n\n_Ejemplos de uso: detección de intrusos, detección de fraude, monitoreo de la salud del sistema, remover data anómala de un set, etc..._\n\n#### 🤖 Anomaly Detection using Gaussian Distribution (Detección de anomalías utilizando la Distribución Normal)\n\n- 📗 [Math | Anomaly Detection using Gaussian Distribution](homemade/anomaly_detection) - teoría y más para leer (en inglés)\n- ⚙️ [Code | Anomaly Detection using Gaussian Distribution](homemade/anomaly_detection/gaussian_anomaly_detection.py) - ejemplo de implementación\n- ▶️ [Demo | Anomaly Detection](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/anomaly_detection/anomaly_detection_gaussian_demo.ipynb) - encontrar anomalías en los parametros de servicio de un servidor como `latency` y `threshold`\n\n## Neural Network (NN) (Redes Neurales)\n\nLas NN en si no son un algoritmo, más bien son un marke de referencia para el uso de varios algoritmos juntos y el procesamiento de data compleja. \n\n_Ejemplos de uso: como un substituto sobre todos los demás algoritmos en general, reconocimiento de imagenes, procesamiento de imagened (aplicando cierts estilos), traducciones, etc..._\n\n#### 🤖 Multilayer Perceptron (MLP) (Perceptrón de multiples capas)\n\n- 📗 [Math | Multilayer Perceptron](homemade/neural_network) - teoría y más para leer (en inglés)\n- ⚙️ [Code | Multilayer Perceptron](homemade/neural_network/multilayer_perceptron.py) - ejemplo de implementación\n- ▶️ [Demo | Multilayer Perceptron | MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/neural_network/multilayer_perceptron_demo.ipynb) - reconocer números escritos a mano en imagenes de `28x28` pixeles\n- ▶️ [Demo | Multilayer Perceptron | Fashion MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/neural_network/multilayer_perceptron_fashion_demo.ipynb) - reconocer artículos de ropa en imagenes de `28x28` pixeles \n\n## Mapa de Machine Learning (inglés)\n\n![Machine Learning Map](images/machine-learning-map.png)\n\nLa fuente de este mapa es [este maravilloso blog post](https://vas3k.ru/blog/machine_learning/)\n\n## Prerequisitos\n\n#### Instalación de Python\n\nAsegura de tener [Python instalado](https://realpython.com/installing-python/) en tu computadora.\n\nRecomendamos utilizar la biblioteca estándar de Pyton [venv](https://docs.python.org/3/library/venv.html) para crear un ambiente virtual y tener Python, `pip` y todos los paquetes dependientes instalados y entregados desde el directorio del proyecto directamente para evitar problemas con cambios globales de los paquetes y sus versiones.\n\n#### Instalar las dependencias\n\nInstala todas las dependencias requeridas para el proyecto ejecutando:\n\n```bash\npip install -r requirements.txt\n```\n\n#### Lanzar Jupyter Localmente\n\nTodas las demonstraciones en este proyecto pueden ser ejecutadas directamnte en tu navegador sin necesidad de instalar Jypyter localmente. Sin embargo, si queres lanzar [Jupyter Notebook](http://jupyter.org/) localmente, es probable que lo quieras hacer utilizando el siguiente comando desde la carpeta raíz del proyecto:\n\n```bash\njupyter notebook\n```\nDespués de esto, el Jupyter Notebook se puede accesar a través de `http://localhost:8888`.\n\n#### Lanzar Jupyter de manera remota\n\nCada sección dedicada a un algoritmo contiene enlaces a [Jupyter NBViewer](http://nbviewer.jupyter.org/). Esta es una herramienta onlina muy veloz para pre-vizualisar el código, los graficos y la data desde tu navegador sin necesidad de instalar nada localmente. En el caso que quieras _camnbiar_ el código y _experimentar_ con el notebook, tienes que lanzarlo desde [Binder](https://mybinder.org/). Puedes hacerlo simplemente con hacer clock en _\"Execute on Binder\"_ en la esquina superior derecha de NBViewer.\n\n![](./images/binder-button-place.png)\n\n## Datasets\n\nLa lista de los datasets que son utilizados en los demos se encuentra ubicada en [data folder](data).\n\n## Apoyo al proyecto\n\nPuedes apoyar el proyecto vía ❤️️ [GitHub](https://github.com/sponsors/trekhleb) o ❤️️ [Patreon](https://www.patreon.com/trekhleb).\n\n## Autor\n\n- [@trekhleb](https://trekhleb.dev)\n"
  },
  {
    "path": "README.md",
    "content": "# Homemade Machine Learning\n\n> 🇺🇦 UKRAINE [IS BEING ATTACKED](https://war.ukraine.ua/) BY RUSSIAN ARMY. CIVILIANS ARE GETTING KILLED. RESIDENTIAL AREAS ARE GETTING BOMBED.\n> - Help Ukraine via:\n>   - [Serhiy Prytula Charity Foundation](https://prytulafoundation.org/en/)\n>   - [Come Back Alive Charity Foundation](https://savelife.in.ua/en/donate-en/)\n>   - [National Bank of Ukraine](https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi-armiyi)\n> - More info on [war.ukraine.ua](https://war.ukraine.ua/) and [MFA of Ukraine](https://twitter.com/MFA_Ukraine)\n\n<hr/>\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/trekhleb/homemade-machine-learning/master?filepath=notebooks)\n\n> _Read this in other languages:_ [_Español_](README.es-ES.md)\n\n\n> _You might be interested in:_\n> - _[Homemade GPT • JS](https://github.com/trekhleb/homemade-gpt-js)_\n> - _[Interactive Machine Learning Experiments](https://github.com/trekhleb/machine-learning-experiments)_\n\n_For Octave/MatLab version of this repository please check [machine-learning-octave](https://github.com/trekhleb/machine-learning-octave) project._\n\n> This repository contains examples of popular machine learning algorithms implemented in **Python** with mathematics behind them being explained. Each algorithm has interactive **Jupyter Notebook** demo that allows you to play with training data, algorithms configurations and immediately see the results, charts and predictions **right in your browser**. In most cases the explanations are based on [this great machine learning course](https://www.coursera.org/learn/machine-learning) by Andrew Ng.\n\nThe purpose of this repository is _not_ to implement machine learning algorithms by using 3<sup>rd</sup> party library one-liners _but_ rather to practice implementing these algorithms from scratch and get better understanding of the mathematics behind each algorithm. That's why all algorithms implementations are called \"homemade\" and not intended to be used for production.\n\n## Supervised Learning\n\nIn supervised learning we have a set of training data as an input and a set of labels or \"correct answers\" for each training set as an output. Then we're training our model (machine learning algorithm parameters) to map the input to the output correctly (to do correct prediction). The ultimate purpose is to find such model parameters that will successfully continue correct _input→output_ mapping (predictions) even for new input examples.\n\n### Regression\n\nIn regression problems we do real value predictions. Basically we try to draw a line/plane/n-dimensional plane along the training examples.\n\n_Usage examples: stock price forecast, sales analysis, dependency of any number, etc._\n\n#### 🤖 Linear Regression\n\n- 📗 [Math | Linear Regression](homemade/linear_regression) - theory and links for further readings\n- ⚙️ [Code | Linear Regression](homemade/linear_regression/linear_regression.py) - implementation example\n- ▶️ [Demo | Univariate Linear Regression](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/univariate_linear_regression_demo.ipynb) - predict `country happiness` score by `economy GDP`\n- ▶️ [Demo | Multivariate Linear Regression](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/multivariate_linear_regression_demo.ipynb) - predict `country happiness` score by `economy GDP` and `freedom index`\n- ▶️ [Demo | Non-linear Regression](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/non_linear_regression_demo.ipynb) - use linear regression with _polynomial_ and _sinusoid_ features to predict non-linear dependencies\n\n### Classification\n\nIn classification problems we split input examples by certain characteristic.\n\n_Usage examples: spam-filters, language detection, finding similar documents, handwritten letters recognition, etc._\n\n#### 🤖 Logistic Regression\n\n- 📗 [Math | Logistic Regression](homemade/logistic_regression) - theory and links for further readings\n- ⚙️ [Code | Logistic Regression](homemade/logistic_regression/logistic_regression.py) - implementation example\n- ▶️ [Demo | Logistic Regression (Linear Boundary)](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/logistic_regression_with_linear_boundary_demo.ipynb) - predict Iris flower `class` based on `petal_length` and `petal_width`\n- ▶️ [Demo | Logistic Regression (Non-Linear Boundary)](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/logistic_regression_with_non_linear_boundary_demo.ipynb) - predict microchip `validity` based on `param_1` and `param_2`\n- ▶️ [Demo | Multivariate Logistic Regression | MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/multivariate_logistic_regression_demo.ipynb) - recognize handwritten digits from `28x28` pixel images\n- ▶️ [Demo | Multivariate Logistic Regression | Fashion MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/multivariate_logistic_regression_fashion_demo.ipynb) - recognize clothes types from `28x28` pixel images\n\n## Unsupervised Learning\n\nUnsupervised learning is a branch of machine learning that learns from test data that has not been labeled, classified or categorized. Instead of responding to feedback, unsupervised learning identifies commonalities in the data and reacts based on the presence or absence of such commonalities in each new piece of data.\n\n### Clustering\n\nIn clustering problems we split the training examples by unknown characteristics. The algorithm itself decides what characteristic to use for splitting.\n\n_Usage examples: market segmentation, social networks analysis, organize computing clusters, astronomical data analysis, image compression, etc._\n\n#### 🤖 K-means Algorithm\n\n- 📗 [Math | K-means Algorithm](homemade/k_means) - theory and links for further readings\n- ⚙️ [Code | K-means Algorithm](homemade/k_means/k_means.py) - implementation example\n- ▶️ [Demo | K-means Algorithm](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/k_means/k_means_demo.ipynb) - split Iris flowers into clusters based on `petal_length` and `petal_width`\n\n### Anomaly Detection\n\nAnomaly detection (also outlier detection) is the identification of rare items, events or observations which raise suspicions by differing significantly from the majority of the data.\n\n_Usage examples: intrusion detection, fraud detection, system health monitoring, removing anomalous data from the dataset etc._\n\n#### 🤖 Anomaly Detection using Gaussian Distribution\n\n- 📗 [Math | Anomaly Detection using Gaussian Distribution](homemade/anomaly_detection) - theory and links for further readings\n- ⚙️ [Code | Anomaly Detection using Gaussian Distribution](homemade/anomaly_detection/gaussian_anomaly_detection.py) - implementation example\n- ▶️ [Demo | Anomaly Detection](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/anomaly_detection/anomaly_detection_gaussian_demo.ipynb) - find anomalies in server operational parameters like `latency` and `threshold`\n\n## Neural Network (NN)\n\nThe neural network itself isn't an algorithm, but rather a framework for many different machine learning algorithms to work together and process complex data inputs.\n\n_Usage examples: as a substitute of all other algorithms in general, image recognition, voice recognition, image processing (applying specific style), language translation, etc._\n\n#### 🤖 Multilayer Perceptron (MLP)\n\n- 📗 [Math | Multilayer Perceptron](homemade/neural_network) - theory and links for further readings\n- ⚙️ [Code | Multilayer Perceptron](homemade/neural_network/multilayer_perceptron.py) - implementation example\n- ▶️ [Demo | Multilayer Perceptron | MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/neural_network/multilayer_perceptron_demo.ipynb) - recognize handwritten digits from `28x28` pixel images\n- ▶️ [Demo | Multilayer Perceptron | Fashion MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/neural_network/multilayer_perceptron_fashion_demo.ipynb) - recognize the type of clothes from `28x28` pixel images\n\n## Machine Learning Map\n\n![Machine Learning Map](images/machine-learning-map.png)\n\nThe source of the following machine learning topics map is [this wonderful blog post](https://vas3k.ru/blog/machine_learning/)\n\n## Prerequisites\n\n#### Installing Python\n\nMake sure that you have [Python installed](https://realpython.com/installing-python/) on your machine.\n\nYou might want to use [venv](https://docs.python.org/3/library/venv.html) standard Python library\nto create virtual environments and have Python, `pip` and all dependent packages to be installed and \nserved from the local project directory to avoid messing with system wide packages and their \nversions.\n\n#### Installing Dependencies\n\nInstall all dependencies that are required for the project by running:\n\n```bash\npip install -r requirements.txt\n```\n\n#### Launching Jupyter Locally\n\nAll demos in the project may be run directly in your browser without installing Jupyter locally. But if you want to launch [Jupyter Notebook](http://jupyter.org/) locally you may do it by running the following command from the root folder of the project:\n\n```bash\njupyter notebook\n```\nAfter this Jupyter Notebook will be accessible by `http://localhost:8888`.\n\n#### Launching Jupyter Remotely\n\nEach algorithm section contains demo links to [Jupyter NBViewer](http://nbviewer.jupyter.org/). This is fast online previewer for Jupyter notebooks where you may see demo code, charts and data right in your browser without installing anything locally. In case if you want to _change_ the code and _experiment_ with demo notebook you need to launch the notebook in [Binder](https://mybinder.org/). You may do it by simply clicking the _\"Execute on Binder\"_ link in top right corner of the NBViewer.\n\n![](./images/binder-button-place.png)\n\n## Datasets\n\nThe list of datasets that is being used for Jupyter Notebook demos may be found in [data folder](data).\n\n## Supporting the project\n\nYou may support this project via ❤️️ [GitHub](https://github.com/sponsors/trekhleb) or ❤️️ [Patreon](https://www.patreon.com/trekhleb).\n\n## Author\n\n- [@trekhleb](https://trekhleb.dev)\n"
  },
  {
    "path": "data/README.md",
    "content": "# Datasets\n\nThis is a list of datasets that are used for Jupyter Notebook demos in this repository.\n\n### MNIST (Handwritten Digits)\n\n> [mnist-demo.csv](mnist-demo.csv)\n\n_Source: [Kaggle](https://www.kaggle.com/oddrationale/mnist-in-csv/home)_\n\nA sample of original MNIST dataset in a CSV format. Instead of using full dataset with 60000 training examples the dataset consists of just 10000 examples.\n\nEach row in the dataset consists of 785 values: the first value is the label (a number from 0 to 9) and the remaining 784 values (28x28 pixels image) are the pixel values (a number from 0 to 255).\n\n### Fashion MNIST\n\n> [fashion-mnist-demo.csv](fashion-mnist-demo.csv)\n\n_Source: [Kaggle](https://www.kaggle.com/zalando-research/fashionmnist)_\n\nFashion-MNIST is a dataset of Zalando's article images—consisting of a training set. Each example is a 28x28 grayscale image, associated with a label from 10 classes. Zalando intends Fashion-MNIST to serve as a direct drop-in replacement for the original MNIST dataset for benchmarking machine learning algorithms. It shares the same image size and structure of training and testing splits.\n \n Instead of using full dataset with 60000 training examples we will use cut dataset of just 5000 examples that we will also split into training and testing sets.\n\n### World Happiness Report 2017\n\n> [world-happiness-report-2017.csv](world-happiness-report-2017.csv)\n\n_Source: [Kaggle](https://www.kaggle.com/unsdsn/world-happiness#2017.csv)_\n\nHappiness rank and scores by country, 2017.\n\n### Iris Flowers\n\n> [iris.csv](iris.csv)\n\n_Source: [ics.uci.edu](http://archive.ics.uci.edu/ml/datasets/Iris)_\n\nIris data set data set consists of several samples from each of three species of Iris (`Iris setosa`, `Iris virginica` and `Iris versicolor`). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters.\n\n### Microchips Tests (Artificial)\n\n> [microchips-tests.csv](microchips-tests.csv)\n\n_Source: [Machine Learning at Coursera](https://www.coursera.org/learn/machine-learning)_\n\nArtificial dataset in which `param_1` and `param_2` produce non-linear decision boundary.\n\n### Non-Linear Y(X) Dependency (Artificial)\n\n> [non-linear-regression-x-y.csv](non-linear-regression-x-y.csv)\n\n_Source: [Machine Learning at Coursera](https://www.coursera.org/learn/machine-learning)_\n\nArtificial dataset that contains non-linear y(x) dependency.\n\n### Server Operational Parameters\n\n> [server-operational-params.csv](server-operational-params.csv)\n\n_Source: [Machine Learning at Coursera](https://www.coursera.org/learn/machine-learning)_\n\nDataset of server operational parameters containing the `Latency(Throughput)` dependency. \n"
  },
  {
    "path": "data/iris.csv",
    "content": "sepal_length,sepal_width,petal_length,petal_width,class\n5.1,3.5,1.4,0.2,SETOSA\n4.9,3.0,1.4,0.2,SETOSA\n4.7,3.2,1.3,0.2,SETOSA\n4.6,3.1,1.5,0.2,SETOSA\n5.0,3.6,1.4,0.2,SETOSA\n5.4,3.9,1.7,0.4,SETOSA\n4.6,3.4,1.4,0.3,SETOSA\n5.0,3.4,1.5,0.2,SETOSA\n4.4,2.9,1.4,0.2,SETOSA\n4.9,3.1,1.5,0.1,SETOSA\n5.4,3.7,1.5,0.2,SETOSA\n4.8,3.4,1.6,0.2,SETOSA\n4.8,3.0,1.4,0.1,SETOSA\n4.3,3.0,1.1,0.1,SETOSA\n5.8,4.0,1.2,0.2,SETOSA\n5.7,4.4,1.5,0.4,SETOSA\n5.4,3.9,1.3,0.4,SETOSA\n5.1,3.5,1.4,0.3,SETOSA\n5.7,3.8,1.7,0.3,SETOSA\n5.1,3.8,1.5,0.3,SETOSA\n5.4,3.4,1.7,0.2,SETOSA\n5.1,3.7,1.5,0.4,SETOSA\n4.6,3.6,1.0,0.2,SETOSA\n5.1,3.3,1.7,0.5,SETOSA\n4.8,3.4,1.9,0.2,SETOSA\n5.0,3.0,1.6,0.2,SETOSA\n5.0,3.4,1.6,0.4,SETOSA\n5.2,3.5,1.5,0.2,SETOSA\n5.2,3.4,1.4,0.2,SETOSA\n4.7,3.2,1.6,0.2,SETOSA\n4.8,3.1,1.6,0.2,SETOSA\n5.4,3.4,1.5,0.4,SETOSA\n5.2,4.1,1.5,0.1,SETOSA\n5.5,4.2,1.4,0.2,SETOSA\n4.9,3.1,1.5,0.1,SETOSA\n5.0,3.2,1.2,0.2,SETOSA\n5.5,3.5,1.3,0.2,SETOSA\n4.9,3.1,1.5,0.1,SETOSA\n4.4,3.0,1.3,0.2,SETOSA\n5.1,3.4,1.5,0.2,SETOSA\n5.0,3.5,1.3,0.3,SETOSA\n4.5,2.3,1.3,0.3,SETOSA\n4.4,3.2,1.3,0.2,SETOSA\n5.0,3.5,1.6,0.6,SETOSA\n5.1,3.8,1.9,0.4,SETOSA\n4.8,3.0,1.4,0.3,SETOSA\n5.1,3.8,1.6,0.2,SETOSA\n4.6,3.2,1.4,0.2,SETOSA\n5.3,3.7,1.5,0.2,SETOSA\n5.0,3.3,1.4,0.2,SETOSA\n7.0,3.2,4.7,1.4,VERSICOLOR\n6.4,3.2,4.5,1.5,VERSICOLOR\n6.9,3.1,4.9,1.5,VERSICOLOR\n5.5,2.3,4.0,1.3,VERSICOLOR\n6.5,2.8,4.6,1.5,VERSICOLOR\n5.7,2.8,4.5,1.3,VERSICOLOR\n6.3,3.3,4.7,1.6,VERSICOLOR\n4.9,2.4,3.3,1.0,VERSICOLOR\n6.6,2.9,4.6,1.3,VERSICOLOR\n5.2,2.7,3.9,1.4,VERSICOLOR\n5.0,2.0,3.5,1.0,VERSICOLOR\n5.9,3.0,4.2,1.5,VERSICOLOR\n6.0,2.2,4.0,1.0,VERSICOLOR\n6.1,2.9,4.7,1.4,VERSICOLOR\n5.6,2.9,3.6,1.3,VERSICOLOR\n6.7,3.1,4.4,1.4,VERSICOLOR\n5.6,3.0,4.5,1.5,VERSICOLOR\n5.8,2.7,4.1,1.0,VERSICOLOR\n6.2,2.2,4.5,1.5,VERSICOLOR\n5.6,2.5,3.9,1.1,VERSICOLOR\n5.9,3.2,4.8,1.8,VERSICOLOR\n6.1,2.8,4.0,1.3,VERSICOLOR\n6.3,2.5,4.9,1.5,VERSICOLOR\n6.1,2.8,4.7,1.2,VERSICOLOR\n6.4,2.9,4.3,1.3,VERSICOLOR\n6.6,3.0,4.4,1.4,VERSICOLOR\n6.8,2.8,4.8,1.4,VERSICOLOR\n6.7,3.0,5.0,1.7,VERSICOLOR\n6.0,2.9,4.5,1.5,VERSICOLOR\n5.7,2.6,3.5,1.0,VERSICOLOR\n5.5,2.4,3.8,1.1,VERSICOLOR\n5.5,2.4,3.7,1.0,VERSICOLOR\n5.8,2.7,3.9,1.2,VERSICOLOR\n6.0,2.7,5.1,1.6,VERSICOLOR\n5.4,3.0,4.5,1.5,VERSICOLOR\n6.0,3.4,4.5,1.6,VERSICOLOR\n6.7,3.1,4.7,1.5,VERSICOLOR\n6.3,2.3,4.4,1.3,VERSICOLOR\n5.6,3.0,4.1,1.3,VERSICOLOR\n5.5,2.5,4.0,1.3,VERSICOLOR\n5.5,2.6,4.4,1.2,VERSICOLOR\n6.1,3.0,4.6,1.4,VERSICOLOR\n5.8,2.6,4.0,1.2,VERSICOLOR\n5.0,2.3,3.3,1.0,VERSICOLOR\n5.6,2.7,4.2,1.3,VERSICOLOR\n5.7,3.0,4.2,1.2,VERSICOLOR\n5.7,2.9,4.2,1.3,VERSICOLOR\n6.2,2.9,4.3,1.3,VERSICOLOR\n5.1,2.5,3.0,1.1,VERSICOLOR\n5.7,2.8,4.1,1.3,VERSICOLOR\n6.3,3.3,6.0,2.5,VIRGINICA\n5.8,2.7,5.1,1.9,VIRGINICA\n7.1,3.0,5.9,2.1,VIRGINICA\n6.3,2.9,5.6,1.8,VIRGINICA\n6.5,3.0,5.8,2.2,VIRGINICA\n7.6,3.0,6.6,2.1,VIRGINICA\n4.9,2.5,4.5,1.7,VIRGINICA\n7.3,2.9,6.3,1.8,VIRGINICA\n6.7,2.5,5.8,1.8,VIRGINICA\n7.2,3.6,6.1,2.5,VIRGINICA\n6.5,3.2,5.1,2.0,VIRGINICA\n6.4,2.7,5.3,1.9,VIRGINICA\n6.8,3.0,5.5,2.1,VIRGINICA\n5.7,2.5,5.0,2.0,VIRGINICA\n5.8,2.8,5.1,2.4,VIRGINICA\n6.4,3.2,5.3,2.3,VIRGINICA\n6.5,3.0,5.5,1.8,VIRGINICA\n7.7,3.8,6.7,2.2,VIRGINICA\n7.7,2.6,6.9,2.3,VIRGINICA\n6.0,2.2,5.0,1.5,VIRGINICA\n6.9,3.2,5.7,2.3,VIRGINICA\n5.6,2.8,4.9,2.0,VIRGINICA\n7.7,2.8,6.7,2.0,VIRGINICA\n6.3,2.7,4.9,1.8,VIRGINICA\n6.7,3.3,5.7,2.1,VIRGINICA\n7.2,3.2,6.0,1.8,VIRGINICA\n6.2,2.8,4.8,1.8,VIRGINICA\n6.1,3.0,4.9,1.8,VIRGINICA\n6.4,2.8,5.6,2.1,VIRGINICA\n7.2,3.0,5.8,1.6,VIRGINICA\n7.4,2.8,6.1,1.9,VIRGINICA\n7.9,3.8,6.4,2.0,VIRGINICA\n6.4,2.8,5.6,2.2,VIRGINICA\n6.3,2.8,5.1,1.5,VIRGINICA\n6.1,2.6,5.6,1.4,VIRGINICA\n7.7,3.0,6.1,2.3,VIRGINICA\n6.3,3.4,5.6,2.4,VIRGINICA\n6.4,3.1,5.5,1.8,VIRGINICA\n6.0,3.0,4.8,1.8,VIRGINICA\n6.9,3.1,5.4,2.1,VIRGINICA\n6.7,3.1,5.6,2.4,VIRGINICA\n6.9,3.1,5.1,2.3,VIRGINICA\n5.8,2.7,5.1,1.9,VIRGINICA\n6.8,3.2,5.9,2.3,VIRGINICA\n6.7,3.3,5.7,2.5,VIRGINICA\n6.7,3.0,5.2,2.3,VIRGINICA\n6.3,2.5,5.0,1.9,VIRGINICA\n6.5,3.0,5.2,2.0,VIRGINICA\n6.2,3.4,5.4,2.3,VIRGINICA\n5.9,3.0,5.1,1.8,VIRGINICA\n"
  },
  {
    "path": "data/microchips-tests.csv",
    "content": "param_1,param_2,validity\n0.051267,0.69956,1\n-0.092742,0.68494,1\n-0.21371,0.69225,1\n-0.375,0.50219,1\n-0.51325,0.46564,1\n-0.52477,0.2098,1\n-0.39804,0.034357,1\n-0.30588,-0.19225,1\n0.016705,-0.40424,1\n0.13191,-0.51389,1\n0.38537,-0.56506,1\n0.52938,-0.5212,1\n0.63882,-0.24342,1\n0.73675,-0.18494,1\n0.54666,0.48757,1\n0.322,0.5826,1\n0.16647,0.53874,1\n-0.046659,0.81652,1\n-0.17339,0.69956,1\n-0.47869,0.63377,1\n-0.60541,0.59722,1\n-0.62846,0.33406,1\n-0.59389,0.005117,1\n-0.42108,-0.27266,1\n-0.11578,-0.39693,1\n0.20104,-0.60161,1\n0.46601,-0.53582,1\n0.67339,-0.53582,1\n-0.13882,0.54605,1\n-0.29435,0.77997,1\n-0.26555,0.96272,1\n-0.16187,0.8019,1\n-0.17339,0.64839,1\n-0.28283,0.47295,1\n-0.36348,0.31213,1\n-0.30012,0.027047,1\n-0.23675,-0.21418,1\n-0.06394,-0.18494,1\n0.062788,-0.16301,1\n0.22984,-0.41155,1\n0.2932,-0.2288,1\n0.48329,-0.18494,1\n0.64459,-0.14108,1\n0.46025,0.012427,1\n0.6273,0.15863,1\n0.57546,0.26827,1\n0.72523,0.44371,1\n0.22408,0.52412,1\n0.44297,0.67032,1\n0.322,0.69225,1\n0.13767,0.57529,1\n-0.0063364,0.39985,1\n-0.092742,0.55336,1\n-0.20795,0.35599,1\n-0.20795,0.17325,1\n-0.43836,0.21711,1\n-0.21947,-0.016813,1\n-0.13882,-0.27266,1\n0.18376,0.93348,0\n0.22408,0.77997,0\n0.29896,0.61915,0\n0.50634,0.75804,0\n0.61578,0.7288,0\n0.60426,0.59722,0\n0.76555,0.50219,0\n0.92684,0.3633,0\n0.82316,0.27558,0\n0.96141,0.085526,0\n0.93836,0.012427,0\n0.86348,-0.082602,0\n0.89804,-0.20687,0\n0.85196,-0.36769,0\n0.82892,-0.5212,0\n0.79435,-0.55775,0\n0.59274,-0.7405,0\n0.51786,-0.5943,0\n0.46601,-0.41886,0\n0.35081,-0.57968,0\n0.28744,-0.76974,0\n0.085829,-0.75512,0\n0.14919,-0.57968,0\n-0.13306,-0.4481,0\n-0.40956,-0.41155,0\n-0.39228,-0.25804,0\n-0.74366,-0.25804,0\n-0.69758,0.041667,0\n-0.75518,0.2902,0\n-0.69758,0.68494,0\n-0.4038,0.70687,0\n-0.38076,0.91886,0\n-0.50749,0.90424,0\n-0.54781,0.70687,0\n0.10311,0.77997,0\n0.057028,0.91886,0\n-0.10426,0.99196,0\n-0.081221,1.1089,0\n0.28744,1.087,0\n0.39689,0.82383,0\n0.63882,0.88962,0\n0.82316,0.66301,0\n0.67339,0.64108,0\n1.0709,0.10015,0\n-0.046659,-0.57968,0\n-0.23675,-0.63816,0\n-0.15035,-0.36769,0\n-0.49021,-0.3019,0\n-0.46717,-0.13377,0\n-0.28859,-0.060673,0\n-0.61118,-0.067982,0\n-0.66302,-0.21418,0\n-0.59965,-0.41886,0\n-0.72638,-0.082602,0\n-0.83007,0.31213,0\n-0.72062,0.53874,0\n-0.59389,0.49488,0\n-0.48445,0.99927,0\n-0.0063364,0.99927,0\n0.63265,-0.030612,0"
  },
  {
    "path": "data/non-linear-regression-x-y.csv",
    "content": "y,x\n97.58776,1.000000\n97.76344,2.000000\n96.56705,3.000000\n92.52037,4.000000\n91.15097,5.000000\n95.21728,6.000000\n90.21355,7.000000\n89.29235,8.000000\n91.51479,9.000000\n89.60966,10.000000\n86.56187,11.00000\n85.55316,12.00000\n87.13054,13.00000\n85.67940,14.00000\n80.04851,15.00000\n82.18925,16.00000\n87.24081,17.00000\n80.79407,18.00000\n81.28570,19.00000\n81.56940,20.00000\n79.22715,21.00000\n79.43275,22.00000\n77.90195,23.00000\n76.75468,24.00000\n77.17377,25.00000\n74.27348,26.00000\n73.11900,27.00000\n73.84826,28.00000\n72.47870,29.00000\n71.92292,30.00000\n66.92176,31.00000\n67.93835,32.00000\n69.56207,33.00000\n69.07066,34.00000\n66.53983,35.00000\n63.87883,36.00000\n69.71537,37.00000\n63.60588,38.00000\n63.37154,39.00000\n60.01835,40.00000\n62.67481,41.00000\n65.80666,42.00000\n59.14304,43.00000\n56.62951,44.00000\n61.21785,45.00000\n54.38790,46.00000\n62.93443,47.00000\n56.65144,48.00000\n57.13362,49.00000\n58.29689,50.00000\n58.91744,51.00000\n58.50172,52.00000\n55.22885,53.00000\n58.30375,54.00000\n57.43237,55.00000\n51.69407,56.00000\n49.93132,57.00000\n53.70760,58.00000\n55.39712,59.00000\n52.89709,60.00000\n52.31649,61.00000\n53.98720,62.00000\n53.54158,63.00000\n56.45046,64.00000\n51.32276,65.00000\n53.11676,66.00000\n53.28631,67.00000\n49.80555,68.00000\n54.69564,69.00000\n56.41627,70.00000\n54.59362,71.00000\n54.38520,72.00000\n60.15354,73.00000\n59.78773,74.00000\n60.49995,75.00000\n65.43885,76.00000\n60.70001,77.00000\n63.71865,78.00000\n67.77139,79.00000\n64.70934,80.00000\n70.78193,81.00000\n70.38651,82.00000\n77.22359,83.00000\n79.52665,84.00000\n80.13077,85.00000\n85.67823,86.00000\n85.20647,87.00000\n90.24548,88.00000\n93.61953,89.00000\n95.86509,90.00000\n93.46992,91.00000\n105.8137,92.00000\n107.8269,93.00000\n114.0607,94.00000\n115.5019,95.00000\n118.5110,96.00000\n119.6177,97.00000\n122.1940,98.00000\n126.9903,99.00000\n125.7005,100.00000\n123.7447,101.00000\n130.6543,102.00000\n129.7168,103.00000\n131.8240,104.00000\n131.8759,105.00000\n131.9994,106.0000\n132.1221,107.0000\n133.4414,108.0000\n133.8252,109.0000\n133.6695,110.0000\n128.2851,111.0000\n126.5182,112.0000\n124.7550,113.0000\n118.4016,114.0000\n122.0334,115.0000\n115.2059,116.0000\n118.7856,117.0000\n110.7387,118.0000\n110.2003,119.0000\n105.17290,120.0000\n103.44720,121.0000\n94.54280,122.0000\n94.40526,123.0000\n94.57964,124.0000\n88.76605,125.0000\n87.28747,126.0000\n92.50443,127.0000\n86.27997,128.0000\n82.44307,129.0000\n80.47367,130.0000\n78.36608,131.0000\n78.74307,132.0000\n76.12786,133.0000\n79.13108,134.0000\n76.76062,135.0000\n77.60769,136.0000\n77.76633,137.0000\n81.28220,138.0000\n79.74307,139.0000\n81.97964,140.0000\n80.02952,141.0000\n85.95232,142.0000\n85.96838,143.0000\n79.94789,144.0000\n87.17023,145.0000\n90.50992,146.0000\n93.23373,147.0000\n89.14803,148.0000\n93.11492,149.0000\n90.34337,150.0000\n93.69421,151.0000\n95.74256,152.0000\n91.85105,153.0000\n96.74503,154.0000\n87.60996,155.0000\n90.47012,156.0000\n88.11690,157.0000\n85.70673,158.0000\n85.01361,159.0000\n78.53040,160.0000\n81.34148,161.0000\n75.19295,162.0000\n72.66115,163.0000\n69.85504,164.0000\n66.29476,165.0000\n63.58502,166.0000\n58.33847,167.0000\n57.50766,168.0000\n52.80498,169.0000\n50.79319,170.0000\n47.03490,171.0000\n46.47090,172.0000\n43.09016,173.0000\n34.11531,174.0000\n39.28235,175.0000\n32.68386,176.0000\n30.44056,177.0000\n31.98932,178.0000\n23.63330,179.0000\n23.69643,180.0000\n20.26812,181.0000\n19.07074,182.0000\n17.59544,183.0000\n16.08785,184.0000\n18.94267,185.0000\n18.61354,186.0000\n17.25800,187.0000\n16.62285,188.0000\n13.48367,189.0000\n15.37647,190.0000\n13.47208,191.0000\n15.96188,192.0000\n12.32547,193.0000\n16.33880,194.0000\n10.438330,195.0000\n9.628715,196.0000\n13.12268,197.0000\n8.772417,198.0000\n11.76143,199.0000\n12.55020,200.0000\n11.33108,201.0000\n11.20493,202.0000\n7.816916,203.0000\n6.800675,204.0000\n14.26581,205.0000\n10.66285,206.0000\n8.911574,207.0000\n11.56733,208.0000\n11.58207,209.0000\n11.59071,210.0000\n9.730134,211.0000\n11.44237,212.0000\n11.22912,213.0000\n10.172130,214.0000\n12.50905,215.0000\n6.201493,216.0000\n9.019605,217.0000\n10.80607,218.0000\n13.09625,219.0000\n3.914271,220.0000\n9.567886,221.0000\n8.038448,222.0000\n10.231040,223.0000\n9.367410,224.0000\n7.695971,225.0000\n6.118575,226.0000\n8.793207,227.0000\n7.796692,228.0000\n12.45065,229.0000\n10.61601,230.0000\n6.001003,231.0000\n6.765098,232.0000\n8.764653,233.0000\n4.586418,234.0000\n8.390783,235.0000\n7.209202,236.0000\n10.012090,237.0000\n7.327461,238.0000\n6.525136,239.0000\n2.840065,240.0000\n10.323710,241.0000\n4.790035,242.0000\n8.376431,243.0000\n6.263980,244.0000\n2.705892,245.0000\n8.362109,246.0000\n8.983507,247.0000\n3.362469,248.0000\n1.182678,249.0000\n4.875312,250.0000"
  },
  {
    "path": "data/server-operational-params.csv",
    "content": "Latency (ms),Throughput (mb/s),Anomaly\n13.04681516870484,14.7411524132184,0\n13.4085201853932,13.76326960024047,0\n14.19591481245491,15.85318112982812,0\n14.91470076531303,16.17425986715807,0\n13.5766996051752,14.04284943755652,0\n13.92240250750028,13.40646893666083,0\n12.82213163903098,14.22318782380161,0\n15.6763661470048,15.89169137219994,0\n16.16287532482238,16.20299807446642,0\n12.66645094909174,14.8990837351338,1\n13.98454962300191,12.95800821585463,0\n14.06146043109355,14.54908874282629,0\n13.38988671215899,15.56202141787754,0\n13.39350474623341,15.62698794188875,0\n13.97900926099814,13.28061494266342,0\n14.16791258723419,14.46583828507579,0\n13.96176145283657,14.75182421254904,0\n14.45899735355037,15.07018562997125,0\n14.58476371878708,15.82743423785702,0\n12.07427073619131,13.06711089796514,0\n13.54912940444922,15.53827676982062,0\n13.98625041879221,14.78776303583677,0\n14.96991942049244,16.51830493015889,0\n14.2557659665841,15.29427277420701,0\n15.33425000108006,16.12469988952639,0\n15.63504869777692,16.49094476663806,0\n13.62081291712303,15.45947525058772,0\n14.81548484709227,15.33956526603583,0\n14.59318972857327,14.61238105671215,0\n14.48906754712418,15.64087368177291,0\n15.52704801171451,14.63568031226173,0\n13.97506707358789,14.76531532927648,0\n12.95364954381841,14.82328512087584,0\n12.88787444214799,15.07607810133002,0\n16.02178960565569,16.25746991816081,0\n14.9262927071427,16.29725072434191,0\n12.46559400363085,14.18321211753596,0\n14.08466278107714,14.44192203204038,0\n14.53717522545769,14.24224248113181,0\n14.22250851601845,15.42386187610343,0\n14.51908495978717,13.99871698993444,0\n13.11971433616167,14.66081845898369,0\n14.5108889424642,15.30465148682366,0\n14.18262426407451,15.3938896849634,0\n14.71651844926282,15.73369667477785,0\n13.83454699853918,16.17138034441191,0\n16.00076179182642,14.69232970320203,0\n14.12702715242892,15.91462774747984,0\n13.84578546855034,14.34139348861173,0\n15.41426110064101,16.24243182463628,1\n13.25273726696165,15.00861363933526,0\n13.66840226015763,14.35886035673854,0\n13.77534773921765,14.73808512203812,0\n14.12582342640922,14.92980922624493,0\n14.54724604324321,15.6333944514067,0\n14.15258077112493,14.53622696521789,0\n14.12648161131633,15.34467591276852,0\n14.26324658304056,14.98556918087115,0\n14.77324331862399,15.25299473774317,0\n14.20969933686442,16.14572569071713,0\n13.260655152992,15.48016214411599,0\n14.25273350867239,15.03134360663839,0\n12.92124446791387,13.19321540142361,0\n13.852431292546,13.33213110580615,0\n13.96856800302965,13.19821236714215,0\n13.25206981975186,15.36846390294601,0\n13.70449633962696,13.21431301976872,0\n14.5087472134072,15.46051652161006,0\n15.69042695638351,16.48168851978138,0\n12.95598191982515,12.43703005897334,0\n13.59312604041728,14.84189902611636,0\n15.12874638631439,17.14981222613881,0\n14.26705036670259,15.67551973639503,0\n15.6614505451442,14.81146451457414,0\n14.33962672797097,15.49202297710026,0\n14.2761765458781,14.70590693250814,0\n14.86049072335336,15.59000779027686,0\n14.10414479623351,15.1805045637764,0\n15.98828286381979,15.62105187028486,0\n13.47473582792461,15.59307141917535,0\n13.77637601475249,14.99194426684731,0\n12.82770875129005,15.67136906874635,0\n13.67165486007913,15.11954159126301,0\n15.38704283906103,15.56936935237784,0\n15.54320933642332,15.51543150058866,0\n13.85306094119846,15.60672436869602,0\n13.62525245784644,14.45209462876985,0\n15.0157784412311,14.91664093008973,0\n13.83645753449745,15.24940725360926,0\n14.22694438547307,14.3479843622948,0\n13.23742625416296,14.61058751286003,0\n13.38482919115422,14.7331933025011,0\n13.87130103241151,14.97399468636979,0\n12.39445846815594,14.64448216946588,0\n14.32186557845068,14.52890629439163,0\n15.82965092460402,15.71619455432355,0\n15.80177302202355,16.01808914480403,0\n14.69751200330076,14.11198748714029,0\n14.70598656653535,16.46040295414171,0\n13.59156859810395,14.91975097196414,0\n12.29984538869378,14.77119467910275,0\n13.3990474777037,16.11912910518291,0\n15.13112869806696,15.90031130320181,0\n15.38581197702793,15.71453967469415,0\n15.45487421920634,15.4404224240544,0\n13.74951530855867,15.26803135994583,0\n15.69914333094722,16.05595814533895,0\n14.80580490719942,14.33258926354469,0\n15.17222942648117,16.70624397729834,0\n11.24915511828765,15.13295896107001,0\n13.88773906521638,14.48548132472444,0\n15.3258701791002,16.58524064023295,0\n12.97517063349011,15.1605677140184,0\n14.07427780835002,17.21973519125371,0\n14.1820256369139,17.83351945487566,0\n12.23970014041095,14.72866833837743,0\n14.82555960703615,15.94500684833057,0\n13.09763368416417,16.23036500469445,0\n13.85758877756093,15.03526838191721,0\n15.52502523459987,16.78653607805479,0\n15.31499528329094,14.56835427536349,0\n14.03034873517879,15.6633618769716,0\n14.42312994571211,14.94109334872472,0\n13.63615118835241,14.96411634434718,0\n14.53477942776931,13.35611764012331,0\n14.61566223678644,14.15241034694619,0\n13.08085544352481,14.0284594118694,0\n14.93928677902786,14.54933745884242,0\n16.0271266262212,15.70965830468461,0\n14.31925037139242,15.11762658185582,0\n14.86153307492049,14.28458412390706,0\n14.01432032507764,16.77971266133154,0\n13.40765469906171,14.60041190939531,0\n13.0795973186072,14.19389917316378,0\n12.68820688788819,13.81109597020173,0\n14.19232756586644,15.36498178724437,0\n14.86589365075524,14.47138789706538,0\n13.39350297747264,14.34389892642248,0\n13.58659142682796,14.39148496395445,0\n13.10219289551651,14.3760326021477,0\n14.54176555566262,16.37233995317341,0\n14.25602703003231,15.0423494965284,0\n16.18754760471493,16.36145253974863,0\n13.63292362573135,13.62886893815872,0\n14.65349334618363,14.97649220824924,0\n12.61911799757794,16.77214314245786,0\n13.03427729514449,14.25689090988086,0\n10.85940051666349,14.47914434225415,0\n12.93486070587027,14.60746677979927,0\n13.9922676551586,14.96212808248882,0\n12.57248704338531,15.1972734968139,0\n15.68266703007037,16.22123922102406,0\n13.2125815156299,14.3518273677709,0\n13.98975002194823,14.52445650352669,0\n13.4662664096024,13.65765529406475,0\n13.13166385488746,15.79882584075226,0\n14.35439254719252,15.02329268379058,0\n13.55329410888779,13.73218768633878,0\n12.98628429130503,14.80983707085099,0\n14.37264883162727,14.95148191190331,0\n13.58869050224715,15.19778174710474,0\n12.26002251889708,15.61364103922988,0\n13.66602493759934,16.44517365387813,0\n14.34554567080519,15.44883765222099,0\n14.60667497581217,15.77655361118647,0\n14.15369523977195,16.57440586446113,0\n14.04899502017924,14.39078838248393,0\n14.06857464220482,14.62364257375797,0\n15.88890082127304,16.33705609429303,0\n13.97601419894874,15.84206442894244,0\n10.88221341356124,13.46166188373757,0\n13.90920312008345,14.97657577218348,0\n12.36776146202978,15.14204982137499,0\n15.16765639256333,15.51933856946829,0\n15.3376951724287,14.23319145087297,0\n13.55057689653119,15.73044061233337,0\n13.57918656724497,15.47264441338775,0\n14.24479089854792,15.0850911865811,0\n15.33086296717245,15.71142599198902,0\n15.91714892779239,15.15651432878437,0\n13.85421253890297,15.32125758133508,0\n14.08736591098981,14.30728373787297,0\n12.63610997338858,15.65066101888946,0\n14.36282756033598,13.87195409310256,0\n14.50066606012271,14.61759024545319,0\n13.96984547008964,16.17341605305203,0\n15.13133128099397,15.28924849061305,0\n15.15300231315136,14.01362830007739,0\n13.31011939341444,14.39060274697614,0\n14.25712172586539,14.29705004451436,0\n13.71613134707139,13.52733470384027,0\n15.70094057818437,15.99611428697285,0\n13.38943515399727,14.36513422537798,0\n14.14088666467278,13.97440554314796,0\n14.84487049785213,14.01695105963744,0\n12.70489590338878,14.27293037161499,0\n14.95353525235777,14.73218902472499,0\n14.28114117782965,14.61262377516035,0\n13.06799073973982,14.83286345035982,0\n13.60279699846308,12.20295198971654,0\n12.68816488185228,15.81141680713469,0\n13.88291727981215,14.11808370066965,0\n14.016482216113,14.33509982485053,0\n15.36576550135049,15.82610475260424,0\n13.57764756126836,14.88045533202498,0\n13.3918924208501,14.34497756139911,0\n13.69362090262048,15.92189939882443,0\n12.87853442397187,13.20174479842375,0\n13.69916365173765,15.41800069841461,0\n14.01609081001448,15.82165925226776,0\n14.5899650464961,16.38090675134464,0\n15.00784342040606,15.50954333819685,0\n14.05950746445452,13.75788684204651,0\n14.46114683681014,13.34425721343066,0\n14.64474777063343,15.03905866347516,0\n13.85478898285457,15.86614260965412,0\n14.2814175097121,14.02340696081207,0\n14.93304554162803,14.32639552072927,0\n13.7693080678919,16.51310530416839,0\n13.44404345182867,15.07922662749323,0\n14.0317928593353,14.40986664465888,0\n13.81946840229293,15.58676798397279,0\n16.50656640573653,15.22029747467542,0\n12.20423230665472,14.32106064914233,0\n14.8819298948981,16.36162230554352,0\n15.16030999546341,15.14972042192441,0\n11.78759609450762,14.55034168613148,0\n12.88388298331717,14.57250347912669,0\n13.62023705917705,16.42369250161395,0\n14.53049363223479,15.44664319460541,0\n12.64616608049998,15.10838775257841,0\n15.54763373107359,16.43238820991158,0\n14.4007699774828,15.21258204276164,0\n15.21058389990948,14.93547994178749,0\n15.06173440367518,15.11740665636805,0\n14.86214589875373,14.70177771082854,0\n15.40451989437227,15.34490711864667,0\n13.79430574831448,14.68727111247282,0\n14.63390271757003,16.30082803685785,0\n12.45687580804446,15.54617986485219,0\n13.99759772841731,16.73594542008409,0\n12.93253733568772,12.62389976814524,0\n13.70345190616539,14.71480993356161,0\n13.12395594125503,15.44848980937747,0\n13.81691009423219,14.09233539217894,0\n13.02489337092878,14.25050251544228,0\n14.53425534561566,15.76596516545384,0\n13.25186260458783,16.3225231885698,0\n13.23657554891477,15.33696609589177,0\n12.1297131595538,12.66688846478064,0\n14.3808873556303,16.03087164666765,0\n15.98239721601976,15.52399453253037,0\n13.75107909980303,13.64320737566979,0\n13.35730012174231,13.42431786138274,0\n13.08559089708043,14.86775905977197,0\n13.6117330216296,14.86806413838196,0\n15.1776173709485,14.15354188009321,0\n14.15456588767872,15.28746897631645,0\n13.22531906267953,13.9598546965538,0\n13.94151500958564,14.76023193066396,0\n15.39066478902675,15.71412823472551,0\n13.17642606705518,13.67395694240669,0\n13.38689005901117,14.66536821990745,0\n15.15888821036137,14.78211270885843,0\n14.55599224830758,14.04946255637684,0\n14.62692885570043,14.29592015439668,0\n13.28624407169681,15.6581260669439,0\n13.8154823515179,14.1716943145893,0\n14.3109896419094,16.25419059506493,0\n13.53597112272297,15.77020127180871,0\n14.80103055297733,13.81813140471321,0\n13.77274485542839,14.64955360893938,0\n13.76510156692244,15.02311286948475,0\n14.05349835921094,13.93946896423697,0\n15.30905390162218,16.04190604522437,0\n13.15523771144825,16.9212211680188,0\n12.69940390796505,13.99916733869651,0\n14.3679922537568,16.75782353966251,0\n13.2632541853177,14.09898705600851,0\n11.91253508924009,14.61325734486844,0\n13.37000592461161,15.18268143261131,0\n15.99450697482097,15.4532938283601,0\n14.15764860588238,13.77083846575649,0\n14.96982662482653,15.59222552688896,0\n14.75068711060737,15.46889187883478,0\n13.33027919659259,14.34699591207669,0\n13.05002153442813,14.68726188711367,0\n13.77642646984253,14.23618563920568,0\n15.17426585206286,15.5095749119089,0\n14.21251759323552,15.08270517066944,0\n13.82089482923982,15.61146315929325,0\n14.12355955034152,14.95509753853501,0\n14.54752171050364,14.85861945287413,0\n14.09944359402792,16.03131199865159,0\n14.57730180008498,14.25667659137451,0\n14.52331832390665,14.2300499886642,0\n14.30044704017983,15.26643299159799,0\n14.55839285912062,15.48691913661183,0\n14.22494186934392,15.86117827216267,0\n12.04029344338111,13.34483350304919,0\n13.07931049306772,9.347878119065356,1\n21.7271340215587,4.126232224310076,1\n12.4766288158932,14.4593696654036,1\n19.5825727723877,10.4116189967773,1\n23.33986752737173,16.29887355272053,1\n18.2611884383863,17.9783089957873,1\n4.752612823293772,24.35040724802435,1\n"
  },
  {
    "path": "data/world-happiness-report-2017.csv",
    "content": "\"Country\",\"Happiness.Rank\",\"Happiness.Score\",\"Whisker.high\",\"Whisker.low\",\"Economy..GDP.per.Capita.\",\"Family\",\"Health..Life.Expectancy.\",\"Freedom\",\"Generosity\",\"Trust..Government.Corruption.\",\"Dystopia.Residual\"\n\"Norway\",1,7.53700017929077,7.59444482058287,7.47955553799868,1.61646318435669,1.53352355957031,0.796666502952576,0.635422587394714,0.36201223731041,0.315963834524155,2.27702665328979\n\"Denmark\",2,7.52199983596802,7.58172806486487,7.46227160707116,1.48238301277161,1.55112159252167,0.792565524578094,0.626006722450256,0.355280488729477,0.40077006816864,2.31370735168457\n\"Iceland\",3,7.50400018692017,7.62203047305346,7.38596990078688,1.480633020401,1.6105740070343,0.833552122116089,0.627162635326385,0.475540220737457,0.153526559472084,2.32271528244019\n\"Switzerland\",4,7.49399995803833,7.56177242040634,7.42622749567032,1.56497955322266,1.51691174507141,0.858131289482117,0.620070576667786,0.290549278259277,0.367007285356522,2.2767162322998\n\"Finland\",5,7.4689998626709,7.52754207581282,7.41045764952898,1.44357192516327,1.5402467250824,0.80915766954422,0.617950856685638,0.24548277258873,0.38261154294014,2.4301815032959\n\"Netherlands\",6,7.3769998550415,7.42742584124207,7.32657386884093,1.50394463539124,1.42893922328949,0.810696125030518,0.585384488105774,0.470489829778671,0.282661825418472,2.29480409622192\n\"Canada\",7,7.31599998474121,7.38440283536911,7.24759713411331,1.47920441627502,1.48134899139404,0.83455765247345,0.611100912094116,0.435539722442627,0.287371516227722,2.18726444244385\n\"New Zealand\",8,7.31400012969971,7.3795104418695,7.24848981752992,1.40570604801178,1.54819512367249,0.816759705543518,0.614062130451202,0.500005125999451,0.382816702127457,2.0464563369751\n\"Sweden\",9,7.28399991989136,7.34409487739205,7.22390496239066,1.49438726902008,1.47816216945648,0.830875158309937,0.612924098968506,0.385399252176285,0.384398728609085,2.09753799438477\n\"Australia\",10,7.28399991989136,7.35665122494102,7.2113486148417,1.484414935112,1.51004195213318,0.84388679265976,0.601607382297516,0.477699249982834,0.301183730363846,2.06521081924438\n\"Israel\",11,7.21299982070923,7.27985325649381,7.14614638492465,1.37538242340088,1.37628996372223,0.83840399980545,0.405988603830338,0.330082654953003,0.0852421000599861,2.80175733566284\n\"Costa Rica\",12,7.0789999961853,7.16811166629195,6.98988832607865,1.10970628261566,1.41640365123749,0.759509265422821,0.580131649971008,0.214613229036331,0.100106589496136,2.89863920211792\n\"Austria\",13,7.00600004196167,7.07066981211305,6.94133027181029,1.48709726333618,1.4599449634552,0.815328419208527,0.567766189575195,0.316472321748734,0.221060365438461,2.1385064125061\n\"United States\",14,6.99300003051758,7.07465674757957,6.91134331345558,1.54625928401947,1.41992056369781,0.77428662776947,0.505740523338318,0.392578780651093,0.135638788342476,2.2181134223938\n\"Ireland\",15,6.97700023651123,7.04335166752338,6.91064880549908,1.53570663928986,1.55823111534119,0.80978262424469,0.573110342025757,0.42785832285881,0.29838815331459,1.77386903762817\n\"Germany\",16,6.95100021362305,7.00538156926632,6.89661885797977,1.48792338371277,1.47252035140991,0.798950731754303,0.562511384487152,0.336269170045853,0.276731938123703,2.01576995849609\n\"Belgium\",17,6.89099979400635,6.95582075044513,6.82617883756757,1.46378076076508,1.46231269836426,0.818091869354248,0.539770722389221,0.231503337621689,0.251343131065369,2.12421035766602\n\"Luxembourg\",18,6.86299991607666,6.92368609987199,6.80231373228133,1.74194359779358,1.45758366584778,0.845089495182037,0.59662789106369,0.283180981874466,0.31883442401886,1.61951208114624\n\"United Kingdom\",19,6.71400022506714,6.78379176110029,6.64420868903399,1.44163393974304,1.49646008014679,0.805335938930511,0.508190035820007,0.492774158716202,0.265428066253662,1.70414352416992\n\"Chile\",20,6.65199995040894,6.73925056010485,6.56474934071302,1.25278460979462,1.28402495384216,0.819479703903198,0.376895278692245,0.326662421226501,0.0822879821062088,2.50958585739136\n\"United Arab Emirates\",21,6.64799976348877,6.72204730376601,6.57395222321153,1.62634336948395,1.26641023159027,0.726798236370087,0.60834527015686,0.3609419465065,0.324489563703537,1.734703540802\n\"Brazil\",22,6.63500022888184,6.72546950161457,6.5445309561491,1.10735321044922,1.43130600452423,0.616552352905273,0.437453746795654,0.16234989464283,0.111092761158943,2.76926708221436\n\"Czech Republic\",23,6.60900020599365,6.68386246263981,6.5341379493475,1.35268235206604,1.43388521671295,0.754444003105164,0.490946173667908,0.0881067588925362,0.0368729270994663,2.45186185836792\n\"Argentina\",24,6.59899997711182,6.69008508607745,6.50791486814618,1.18529546260834,1.44045114517212,0.695137083530426,0.494519203901291,0.109457060694695,0.059739887714386,2.61400532722473\n\"Mexico\",25,6.57800006866455,6.67114890769124,6.48485122963786,1.15318381786346,1.210862159729,0.709978997707367,0.412730008363724,0.120990432798862,0.132774114608765,2.83715486526489\n\"Singapore\",26,6.57200002670288,6.63672306910157,6.50727698430419,1.69227766990662,1.35381436347961,0.949492394924164,0.549840569496155,0.345965981483459,0.46430778503418,1.21636199951172\n\"Malta\",27,6.52699995040894,6.59839677289128,6.45560312792659,1.34327983856201,1.48841166496277,0.821944236755371,0.588767051696777,0.574730575084686,0.153066068887711,1.55686283111572\n\"Uruguay\",28,6.4539999961853,6.54590621769428,6.36209377467632,1.21755969524384,1.41222786903381,0.719216823577881,0.57939225435257,0.175096929073334,0.178061872720718,2.17240953445435\n\"Guatemala\",29,6.4539999961853,6.56687397271395,6.34112601965666,0.872001945972443,1.25558519363403,0.540239989757538,0.531310617923737,0.283488392829895,0.0772232785820961,2.89389109611511\n\"Panama\",30,6.4520001411438,6.55713071614504,6.34686956614256,1.23374843597412,1.37319254875183,0.706156134605408,0.550026834011078,0.21055693924427,0.070983923971653,2.30719995498657\n\"France\",31,6.44199991226196,6.51576780244708,6.36823202207685,1.43092346191406,1.38777685165405,0.844465851783752,0.470222115516663,0.129762306809425,0.172502428293228,2.00595474243164\n\"Thailand\",32,6.42399978637695,6.50911685571074,6.33888271704316,1.12786877155304,1.42579245567322,0.647239029407501,0.580200731754303,0.572123110294342,0.0316127352416515,2.03950834274292\n\"Taiwan Province of China\",33,6.42199993133545,6.49459602192044,6.34940384075046,1.43362653255463,1.38456535339355,0.793984234333038,0.361466586589813,0.258360475301743,0.0638292357325554,2.1266074180603\n\"Spain\",34,6.40299987792969,6.4710548453033,6.33494491055608,1.38439786434174,1.53209090232849,0.888960599899292,0.408781230449677,0.190133571624756,0.0709140971302986,1.92775774002075\n\"Qatar\",35,6.375,6.56847681432962,6.18152318567038,1.87076568603516,1.27429687976837,0.710098087787628,0.604130983352661,0.330473870038986,0.439299255609512,1.1454644203186\n\"Colombia\",36,6.35699987411499,6.45202005416155,6.26197969406843,1.07062232494354,1.4021829366684,0.595027923583984,0.477487415075302,0.149014472961426,0.0466687418520451,2.61606812477112\n\"Saudi Arabia\",37,6.3439998626709,6.44416661202908,6.24383311331272,1.53062355518341,1.28667759895325,0.590148329734802,0.449750572443008,0.147616013884544,0.27343225479126,2.0654296875\n\"Trinidad and Tobago\",38,6.16800022125244,6.38153389066458,5.95446655184031,1.36135590076447,1.3802285194397,0.519983291625977,0.518630743026733,0.325296461582184,0.00896481610834599,2.05324745178223\n\"Kuwait\",39,6.10500001907349,6.1919569888711,6.01804304927588,1.63295245170593,1.25969874858856,0.632105708122253,0.496337592601776,0.228289797902107,0.215159550309181,1.64042520523071\n\"Slovakia\",40,6.09800004959106,6.1773484121263,6.01865168705583,1.32539355754852,1.50505924224854,0.712732911109924,0.295817464590073,0.136544480919838,0.0242108516395092,2.09777665138245\n\"Bahrain\",41,6.08699989318848,6.17898906782269,5.99501071855426,1.48841226100922,1.32311046123505,0.653133034706116,0.536746919155121,0.172668486833572,0.257042169570923,1.65614938735962\n\"Malaysia\",42,6.08400011062622,6.17997963652015,5.98802058473229,1.29121541976929,1.28464603424072,0.618784427642822,0.402264982461929,0.416608929634094,0.0656007081270218,2.00444889068604\n\"Nicaragua\",43,6.07100009918213,6.18658360034227,5.95541659802198,0.737299203872681,1.28721570968628,0.653095960617065,0.447551846504211,0.301674216985703,0.130687981843948,2.51393055915833\n\"Ecuador\",44,6.00799989700317,6.10584767535329,5.91015211865306,1.00082039833069,1.28616881370544,0.685636222362518,0.4551981985569,0.150112465023994,0.140134647488594,2.29035258293152\n\"El Salvador\",45,6.00299978256226,6.108635122329,5.89736444279552,0.909784495830536,1.18212509155273,0.596018552780151,0.432452529668808,0.0782579854130745,0.0899809598922729,2.7145938873291\n\"Poland\",46,5.97300004959106,6.05390834122896,5.89209175795317,1.29178786277771,1.44571197032928,0.699475347995758,0.520342111587524,0.158465966582298,0.0593078061938286,1.79772281646729\n\"Uzbekistan\",47,5.97100019454956,6.06553757295012,5.876462816149,0.786441087722778,1.54896914958954,0.498272627592087,0.658248662948608,0.415983647108078,0.246528223156929,1.81691360473633\n\"Italy\",48,5.96400022506714,6.04273690596223,5.88526354417205,1.39506661891937,1.44492328166962,0.853144347667694,0.256450712680817,0.17278964817524,0.0280280914157629,1.81331205368042\n\"Russia\",49,5.96299982070923,6.03027490749955,5.89572473391891,1.28177809715271,1.46928238868713,0.547349333763123,0.373783111572266,0.0522638224065304,0.0329628810286522,2.20560741424561\n\"Belize\",50,5.95599985122681,6.19724231779575,5.71475738465786,0.907975316047668,1.08141779899597,0.450191766023636,0.547509372234344,0.240015640854836,0.0965810716152191,2.63195562362671\n\"Japan\",51,5.92000007629395,5.99071944460273,5.84928070798516,1.41691517829895,1.43633782863617,0.913475871086121,0.505625545978546,0.12057276815176,0.163760736584663,1.36322355270386\n\"Lithuania\",52,5.90199995040894,5.98266964137554,5.82133025944233,1.31458234786987,1.47351610660553,0.62894994020462,0.234231784939766,0.010164656676352,0.0118656428530812,2.22844052314758\n\"Algeria\",53,5.87200021743774,5.97828643366694,5.76571400120854,1.09186446666718,1.1462174654007,0.617584645748138,0.233335807919502,0.0694366469979286,0.146096110343933,2.56760382652283\n\"Latvia\",54,5.84999990463257,5.92026353821158,5.77973627105355,1.26074862480164,1.40471494197845,0.638566970825195,0.325707912445068,0.153074786067009,0.0738427266478539,1.99365520477295\n\"South Korea\",55,5.83799982070923,5.92255902826786,5.7534406131506,1.40167844295502,1.12827444076538,0.900214076042175,0.257921665906906,0.206674367189407,0.0632826685905457,1.88037800788879\n\"Moldova\",56,5.83799982070923,5.90837083846331,5.76762880295515,0.728870630264282,1.25182557106018,0.589465200901031,0.240729048848152,0.208779126405716,0.0100912861526012,2.80780839920044\n\"Romania\",57,5.82499980926514,5.91969415679574,5.73030546173453,1.21768391132355,1.15009129047394,0.685158312320709,0.457003742456436,0.133519917726517,0.00438790069893003,2.17683148384094\n\"Bolivia\",58,5.82299995422363,5.9039769025147,5.74202300593257,0.833756566047668,1.22761905193329,0.473630249500275,0.558732926845551,0.22556072473526,0.0604777261614799,2.44327902793884\n\"Turkmenistan\",59,5.82200002670288,5.88518087550998,5.75881917789578,1.13077676296234,1.49314916133881,0.437726080417633,0.41827192902565,0.24992498755455,0.259270340204239,1.83290982246399\n\"Kazakhstan\",60,5.81899976730347,5.90364177465439,5.73435775995255,1.28455626964569,1.38436901569366,0.606041550636292,0.437454283237457,0.201964423060417,0.119282886385918,1.78489255905151\n\"North Cyprus\",61,5.80999994277954,5.89736646488309,5.72263342067599,1.3469113111496,1.18630337715149,0.834647238254547,0.471203625202179,0.266845703125,0.155353352427483,1.54915761947632\n\"Slovenia\",62,5.75799989700317,5.84222516000271,5.67377463400364,1.3412059545517,1.45251882076263,0.790828227996826,0.572575807571411,0.242649093270302,0.0451289787888527,1.31331729888916\n\"Peru\",63,5.71500015258789,5.81194677859545,5.61805352658033,1.03522527217865,1.21877038478851,0.630166113376617,0.450002878904343,0.126819714903831,0.0470490865409374,2.20726943016052\n\"Mauritius\",64,5.62900018692017,5.72986219167709,5.52813818216324,1.18939554691315,1.20956099033356,0.638007462024689,0.491247326135635,0.360933750867844,0.0421815551817417,1.6975839138031\n\"Cyprus\",65,5.62099981307983,5.71469269931316,5.5273069268465,1.35593807697296,1.13136327266693,0.84471470117569,0.355111539363861,0.271254301071167,0.0412379764020443,1.62124919891357\n\"Estonia\",66,5.61100006103516,5.68813987419009,5.53386024788022,1.32087934017181,1.47667109966278,0.695168316364288,0.479131430387497,0.0988908112049103,0.183248922228813,1.35750865936279\n\"Belarus\",67,5.56899976730347,5.64611424401402,5.49188529059291,1.15655755996704,1.44494521617889,0.637714266777039,0.295400261878967,0.15513750910759,0.156313821673393,1.72323298454285\n\"Libya\",68,5.52500009536743,5.67695380687714,5.37304638385773,1.10180306434631,1.35756433010101,0.520169019699097,0.465733230113983,0.152073666453362,0.0926102101802826,1.83501124382019\n\"Turkey\",69,5.5,5.59486496329308,5.40513503670692,1.19827437400818,1.33775317668915,0.637605607509613,0.300740599632263,0.0466930419206619,0.0996715798974037,1.87927794456482\n\"Paraguay\",70,5.49300003051758,5.57738126963377,5.40861879140139,0.932537317276001,1.50728487968445,0.579250693321228,0.473507791757584,0.224150657653809,0.091065913438797,1.6853334903717\n\"Hong Kong S.A.R., China\",71,5.47200012207031,5.54959417313337,5.39440607100725,1.55167484283447,1.26279091835022,0.943062424659729,0.490968644618988,0.374465793371201,0.293933749198914,0.554633140563965\n\"Philippines\",72,5.42999982833862,5.54533505424857,5.31466460242867,0.85769921541214,1.25391757488251,0.468009054660797,0.585214674472809,0.193513423204422,0.0993318930268288,1.97260475158691\n\"Serbia\",73,5.39499998092651,5.49156965613365,5.29843030571938,1.06931757926941,1.25818979740143,0.65078467130661,0.208715528249741,0.220125883817673,0.0409037806093693,1.94708442687988\n\"Jordan\",74,5.33599996566772,5.44841002240777,5.22358990892768,0.991012394428253,1.23908889293671,0.604590058326721,0.418421149253845,0.172170460224152,0.11980327218771,1.79117655754089\n\"Hungary\",75,5.32399988174438,5.40303970918059,5.24496005430818,1.2860119342804,1.34313309192657,0.687763452529907,0.175863519310951,0.0784016624093056,0.0366369374096394,1.71645927429199\n\"Jamaica\",76,5.31099987030029,5.58139872848988,5.04060101211071,0.925579309463501,1.36821806430817,0.641022384166718,0.474307239055634,0.233818337321281,0.0552677810192108,1.61232566833496\n\"Croatia\",77,5.29300022125244,5.39177720457315,5.19422323793173,1.22255623340607,0.96798300743103,0.701288521289825,0.255772292613983,0.248002976179123,0.0431031100451946,1.85449242591858\n\"Kosovo\",78,5.27899980545044,5.36484799548984,5.19315161541104,0.951484382152557,1.13785350322723,0.541452050209045,0.260287940502167,0.319931447505951,0.0574716180562973,2.01054072380066\n\"China\",79,5.27299976348877,5.31927808977663,5.2267214372009,1.08116579055786,1.16083741188049,0.741415500640869,0.472787708044052,0.0288068410009146,0.0227942746132612,1.76493859291077\n\"Pakistan\",80,5.26900005340576,5.35998364135623,5.17801646545529,0.72688353061676,0.672690689563751,0.402047783136368,0.23521526157856,0.315446019172668,0.124348066747189,2.79248929023743\n\"Indonesia\",81,5.26200008392334,5.35288859814405,5.17111156970263,0.995538592338562,1.27444469928741,0.492345720529556,0.443323463201523,0.611704587936401,0.0153171354904771,1.42947697639465\n\"Venezuela\",82,5.25,5.3700319455564,5.1299680544436,1.12843120098114,1.43133759498596,0.617144227027893,0.153997123241425,0.0650196298956871,0.0644911229610443,1.78946375846863\n\"Montenegro\",83,5.23699998855591,5.34104444056749,5.13295553654432,1.12112903594971,1.23837649822235,0.667464673519135,0.194989055395126,0.197911024093628,0.0881741940975189,1.72919154167175\n\"Morocco\",84,5.2350001335144,5.31834096476436,5.15165930226445,0.878114581108093,0.774864435195923,0.59771066904068,0.408158332109451,0.0322099551558495,0.0877631828188896,2.45618939399719\n\"Azerbaijan\",85,5.23400020599365,5.29928653523326,5.16871387675405,1.15360176563263,1.15240025520325,0.540775775909424,0.398155838251114,0.0452693402767181,0.180987507104874,1.76248168945312\n\"Dominican Republic\",86,5.23000001907349,5.34906088516116,5.11093915298581,1.07937383651733,1.40241670608521,0.574873745441437,0.55258983373642,0.186967849731445,0.113945253193378,1.31946516036987\n\"Greece\",87,5.22700023651123,5.3252461694181,5.12875430360436,1.28948748111725,1.23941457271576,0.810198903083801,0.0957312509417534,0,0.04328977689147,1.74922156333923\n\"Lebanon\",88,5.22499990463257,5.31888228848577,5.13111752077937,1.07498753070831,1.12962424755096,0.735081076622009,0.288515985012054,0.264450758695602,0.037513829767704,1.69507384300232\n\"Portugal\",89,5.19500017166138,5.28504173308611,5.10495861023665,1.3151752948761,1.36704301834106,0.795843541622162,0.498465299606323,0.0951027125120163,0.0158694516867399,1.10768270492554\n\"Bosnia and Herzegovina\",90,5.18200016021729,5.27633568674326,5.08766463369131,0.982409417629242,1.0693359375,0.705186307430267,0.204403176903725,0.328867495059967,0,1.89217257499695\n\"Honduras\",91,5.18100023269653,5.30158279687166,5.0604176685214,0.730573117733002,1.14394497871399,0.582569479942322,0.348079860210419,0.236188873648643,0.0733454525470734,2.06581115722656\n\"Macedonia\",92,5.17500019073486,5.27217263966799,5.07782774180174,1.06457793712616,1.20789301395416,0.644948184490204,0.325905978679657,0.25376096367836,0.0602777935564518,1.6174693107605\n\"Somalia\",93,5.15100002288818,5.24248370990157,5.0595163358748,0.0226431842893362,0.721151351928711,0.113989137113094,0.602126955986023,0.291631311178207,0.282410323619843,3.11748456954956\n\"Vietnam\",94,5.07399988174438,5.14728076457977,5.000718998909,0.788547575473785,1.27749133110046,0.652168989181519,0.571055591106415,0.234968051314354,0.0876332372426987,1.46231865882874\n\"Nigeria\",95,5.07399988174438,5.20950013548136,4.93849962800741,0.783756256103516,1.21577048301697,0.0569157302379608,0.394952565431595,0.230947196483612,0.0261215660721064,2.36539053916931\n\"Tajikistan\",96,5.04099988937378,5.11142559587956,4.970574182868,0.524713635444641,1.27146327495575,0.529235124588013,0.471566706895828,0.248997643589973,0.146377146244049,1.84904932975769\n\"Bhutan\",97,5.01100015640259,5.07933456212282,4.94266575068235,0.885416388511658,1.34012651443481,0.495879292488098,0.501537680625916,0.474054545164108,0.173380389809608,1.14018440246582\n\"Kyrgyzstan\",98,5.00400018692017,5.08991990312934,4.91808047071099,0.596220076084137,1.39423859119415,0.553457796573639,0.454943388700485,0.42858037352562,0.0394391790032387,1.53672313690186\n\"Nepal\",99,4.96199989318848,5.06735607936978,4.85664370700717,0.479820191860199,1.17928326129913,0.504130780696869,0.440305948257446,0.394096165895462,0.0729755461215973,1.8912410736084\n\"Mongolia\",100,4.95499992370605,5.0216795091331,4.88832033827901,1.02723586559296,1.4930112361908,0.557783484458923,0.394143968820572,0.338464230298996,0.0329022891819477,1.11129236221313\n\"South Africa\",101,4.8289999961853,4.92943518772721,4.72856480464339,1.05469870567322,1.38478863239288,0.187080070376396,0.479246735572815,0.139362379908562,0.0725094974040985,1.51090860366821\n\"Tunisia\",102,4.80499982833862,4.88436700701714,4.72563264966011,1.00726580619812,0.868351459503174,0.613212049007416,0.289680689573288,0.0496933571994305,0.0867231488227844,1.89025115966797\n\"Palestinian Territories\",103,4.77500009536743,4.88184834256768,4.66815184816718,0.716249227523804,1.15564715862274,0.565666973590851,0.25471106171608,0.114173173904419,0.0892826020717621,1.8788902759552\n\"Egypt\",104,4.7350001335144,4.82513378962874,4.64486647740006,0.989701807498932,0.997471392154694,0.520187258720398,0.282110154628754,0.128631442785263,0.114381365478039,1.70216107368469\n\"Bulgaria\",105,4.71400022506714,4.80369470641017,4.62430574372411,1.1614590883255,1.43437945842743,0.708217680454254,0.289231717586517,0.113177694380283,0.0110515309497714,0.996139287948608\n\"Sierra Leone\",106,4.70900011062622,4.85064333498478,4.56735688626766,0.36842092871666,0.984136044979095,0.00556475389748812,0.318697690963745,0.293040901422501,0.0710951760411263,2.66845989227295\n\"Cameroon\",107,4.69500017166138,4.79654085725546,4.5934594860673,0.564305365085602,0.946018218994141,0.132892116904259,0.430388748645782,0.236298456788063,0.0513066314160824,2.3336455821991\n\"Iran\",108,4.69199991226196,4.79822470769286,4.58577511683106,1.15687310695648,0.711551249027252,0.639333188533783,0.249322608113289,0.387242913246155,0.048761073499918,1.49873495101929\n\"Albania\",109,4.64400005340576,4.75246400639415,4.53553610041738,0.996192753314972,0.803685247898102,0.731159746646881,0.381498634815216,0.201312944293022,0.0398642159998417,1.49044156074524\n\"Bangladesh\",110,4.60799980163574,4.68982165828347,4.52617794498801,0.586682975292206,0.735131740570068,0.533241033554077,0.478356659412384,0.172255352139473,0.123717859387398,1.97873616218567\n\"Namibia\",111,4.57399988174438,4.77035474091768,4.37764502257109,0.964434325695038,1.0984708070755,0.33861181139946,0.520303547382355,0.0771337449550629,0.0931469723582268,1.4818902015686\n\"Kenya\",112,4.55299997329712,4.65569159060717,4.45030835598707,0.560479462146759,1.06795072555542,0.309988349676132,0.452763766050339,0.444860309362411,0.0646413192152977,1.6519021987915\n\"Mozambique\",113,4.55000019073486,4.77410232633352,4.3258980551362,0.234305649995804,0.870701014995575,0.106654435396194,0.480791091918945,0.322228103876114,0.179436385631561,2.35565090179443\n\"Myanmar\",114,4.54500007629395,4.61473994642496,4.47526020616293,0.367110550403595,1.12323594093323,0.397522568702698,0.514492034912109,0.838075160980225,0.188816204667091,1.11529040336609\n\"Senegal\",115,4.53499984741211,4.6016037812829,4.46839591354132,0.479309022426605,1.17969191074371,0.409362852573395,0.377922266721725,0.183468893170357,0.115460447967052,1.78964614868164\n\"Zambia\",116,4.51399993896484,4.64410550147295,4.38389437645674,0.636406779289246,1.00318729877472,0.257835894823074,0.461603492498398,0.249580144882202,0.0782135501503944,1.82670545578003\n\"Iraq\",117,4.49700021743774,4.62259140968323,4.37140902519226,1.10271048545837,0.978613197803497,0.501180469989777,0.288555532693863,0.19963726401329,0.107215754687786,1.31890726089478\n\"Gabon\",118,4.46500015258789,4.5573617656529,4.37263853952289,1.1982102394104,1.1556202173233,0.356578588485718,0.312328577041626,0.0437853783369064,0.0760467872023582,1.32291626930237\n\"Ethiopia\",119,4.46000003814697,4.54272867664695,4.377271399647,0.339233845472336,0.86466920375824,0.353409707546234,0.408842742443085,0.312650740146637,0.165455713868141,2.01574373245239\n\"Sri Lanka\",120,4.44000005722046,4.55344719231129,4.32655292212963,1.00985014438629,1.25997638702393,0.625130832195282,0.561213254928589,0.490863561630249,0.0736539661884308,0.419389247894287\n\"Armenia\",121,4.37599992752075,4.46673461228609,4.28526524275541,0.900596737861633,1.00748372077942,0.637524425983429,0.198303267359734,0.0834880918264389,0.0266744215041399,1.5214991569519\n\"India\",122,4.31500005722046,4.37152201749384,4.25847809694707,0.792221248149872,0.754372596740723,0.455427616834641,0.469987004995346,0.231538489460945,0.0922268852591515,1.5191171169281\n\"Mauritania\",123,4.29199981689453,4.37716361626983,4.20683601751924,0.648457288742065,1.2720308303833,0.285349279642105,0.0960980430245399,0.201870024204254,0.136957004666328,1.65163731575012\n\"Congo (Brazzaville)\",124,4.29099988937378,4.41005350500345,4.17194627374411,0.808964252471924,0.832044363021851,0.28995743393898,0.435025870800018,0.120852127671242,0.0796181336045265,1.72413563728333\n\"Georgia\",125,4.28599977493286,4.37493396580219,4.19706558406353,0.950612664222717,0.57061493396759,0.649546980857849,0.309410035610199,0.0540088154375553,0.251666635274887,1.50013780593872\n\"Congo (Kinshasa)\",126,4.28000020980835,4.35781083270907,4.20218958690763,0.0921023488044739,1.22902345657349,0.191407024860382,0.235961347818375,0.246455833315849,0.0602413564920425,2.22495865821838\n\"Mali\",127,4.19000005722046,4.26967071101069,4.11032940343022,0.476180493831635,1.28147339820862,0.169365674257278,0.306613743305206,0.183354198932648,0.104970246553421,1.66819095611572\n\"Ivory Coast\",128,4.17999982833862,4.27518256321549,4.08481709346175,0.603048920631409,0.904780030250549,0.0486421696841717,0.447706192731857,0.201237469911575,0.130061775445938,1.84496426582336\n\"Cambodia\",129,4.16800022125244,4.27851781353354,4.05748262897134,0.601765096187592,1.00623834133148,0.429783403873444,0.633375823497772,0.385922968387604,0.0681059509515762,1.04294109344482\n\"Sudan\",130,4.13899993896484,4.34574716508389,3.9322527128458,0.65951669216156,1.21400856971741,0.290920823812485,0.0149958552792668,0.182317450642586,0.089847519993782,1.68706583976746\n\"Ghana\",131,4.11999988555908,4.22270720854402,4.01729256257415,0.667224824428558,0.873664736747742,0.295637726783752,0.423026293516159,0.256923943758011,0.0253363698720932,1.57786750793457\n\"Ukraine\",132,4.09600019454956,4.18541010454297,4.00659028455615,0.89465194940567,1.39453756809235,0.575903952121735,0.122974775731564,0.270061463117599,0.0230294708162546,0.814382314682007\n\"Uganda\",133,4.08099985122681,4.19579996705055,3.96619973540306,0.381430715322495,1.12982773780823,0.217632606625557,0.443185955286026,0.325766056776047,0.057069718837738,1.526362657547\n\"Burkina Faso\",134,4.03200006484985,4.12405906438828,3.93994106531143,0.3502277135849,1.04328000545502,0.215844258666039,0.324367851018906,0.250864684581757,0.120328105986118,1.72721290588379\n\"Niger\",135,4.02799987792969,4.11194681972265,3.94405293613672,0.161925330758095,0.993025004863739,0.26850500702858,0.36365869641304,0.228673845529556,0.138572946190834,1.87398338317871\n\"Malawi\",136,3.97000002861023,4.07747881740332,3.86252123981714,0.233442038297653,0.512568831443787,0.315089583396912,0.466914653778076,0.287170469760895,0.0727116540074348,2.08178615570068\n\"Chad\",137,3.93600010871887,4.0347115239501,3.83728869348764,0.438012987375259,0.953855872154236,0.0411347150802612,0.16234202682972,0.216113850474358,0.0535818822681904,2.07123804092407\n\"Zimbabwe\",138,3.875,3.97869964271784,3.77130035728216,0.375846534967422,1.08309590816498,0.196763753890991,0.336384207010269,0.189143493771553,0.0953753814101219,1.59797024726868\n\"Lesotho\",139,3.80800008773804,4.04434397548437,3.5716561999917,0.521021246910095,1.19009518623352,0,0.390661299228668,0.157497271895409,0.119094640016556,1.42983531951904\n\"Angola\",140,3.79500007629395,3.95164193540812,3.63835821717978,0.858428180217743,1.10441195964813,0.0498686656355858,0,0.097926490008831,0.0697203353047371,1.61448240280151\n\"Afghanistan\",141,3.79399991035461,3.87366141527891,3.71433840543032,0.401477217674255,0.581543326377869,0.180746778845787,0.106179520487785,0.311870932579041,0.0611578300595284,2.15080118179321\n\"Botswana\",142,3.76600003242493,3.87412266626954,3.65787739858031,1.12209415435791,1.22155499458313,0.341755509376526,0.505196332931519,0.0993484482169151,0.0985831990838051,0.3779137134552\n\"Benin\",143,3.65700006484985,3.74578355133533,3.56821657836437,0.431085407733917,0.435299843549728,0.209930211305618,0.425962775945663,0.207948461174965,0.0609290152788162,1.88563096523285\n\"Madagascar\",144,3.64400005340576,3.71431910589337,3.57368100091815,0.305808693170547,0.913020372390747,0.375223308801651,0.189196765422821,0.208732530474663,0.0672319754958153,1.58461260795593\n\"Haiti\",145,3.6029999256134,3.73471479773521,3.47128505349159,0.368610262870789,0.640449821949005,0.277321130037308,0.0303698573261499,0.489203780889511,0.0998721495270729,1.69716763496399\n\"Yemen\",146,3.59299993515015,3.69275031983852,3.49324955046177,0.591683447360992,0.93538224697113,0.310080915689468,0.249463722109795,0.104125209152699,0.0567674227058887,1.34560060501099\n\"South Sudan\",147,3.59100008010864,3.72553858578205,3.45646157443523,0.39724862575531,0.601323127746582,0.163486003875732,0.147062435746193,0.285670816898346,0.116793513298035,1.87956738471985\n\"Liberia\",148,3.53299999237061,3.65375626087189,3.41224372386932,0.119041793048382,0.872117936611176,0.229918196797371,0.332881182432175,0.26654988527298,0.0389482490718365,1.67328596115112\n\"Guinea\",149,3.50699996948242,3.58442812889814,3.4295718100667,0.244549930095673,0.791244685649872,0.194129139184952,0.348587512969971,0.264815092086792,0.110937617719173,1.55231189727783\n\"Togo\",150,3.49499988555908,3.59403811171651,3.39596165940166,0.305444717407227,0.431882530450821,0.247105568647385,0.38042613863945,0.196896150708199,0.0956650152802467,1.83722925186157\n\"Rwanda\",151,3.47099995613098,3.54303023353219,3.39896967872977,0.368745893239975,0.945707023143768,0.326424807310104,0.581843852996826,0.252756029367447,0.455220013856888,0.540061235427856\n\"Syria\",152,3.46199989318848,3.66366855680943,3.26033122956753,0.777153134346008,0.396102607250214,0.50053334236145,0.0815394446253777,0.493663728237152,0.151347130537033,1.06157350540161\n\"Tanzania\",153,3.34899997711182,3.46142975538969,3.23657019883394,0.511135876178741,1.04198980331421,0.364509284496307,0.390017777681351,0.354256361722946,0.0660351067781448,0.621130466461182\n\"Burundi\",154,2.90499997138977,3.07469033300877,2.73530960977077,0.091622568666935,0.629793584346771,0.151610791683197,0.0599007532000542,0.204435184597969,0.0841479450464249,1.68302416801453\n\"Central African Republic\",155,2.69300007820129,2.86488426923752,2.52111588716507,0,0,0.0187726859003305,0.270842045545578,0.280876487493515,0.0565650761127472,2.06600475311279\n"
  },
  {
    "path": "homemade/__init__.py",
    "content": ""
  },
  {
    "path": "homemade/anomaly_detection/README.md",
    "content": "# Anomaly Detection Using Gaussian Distribution\n\n## Jupyter Demos\n\n▶️ [Demo | Anomaly Detection](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/anomaly_detection/anomaly_detection_gaussian_demo.ipynb) - find anomalies in server operational parameters like `latency` and `threshold`\n\n## Gaussian (Normal) Distribution\n\nThe **normal** (or **Gaussian**) **distribution** is a very common continuous probability distribution. Normal distributions are important in statistics and are often used in the natural and social sciences to represent real-valued random variables whose distributions are not known. A random variable with a Gaussian distribution is said to be normally distributed and is called a normal deviate.\n\nLet's say:\n\n![x-in-R](../../images/anomaly_detection/x-in-R.svg)\n\nIf _x_ is normally distributed then it may be displayed as follows.\n\n![Gaussian Distribution](https://upload.wikimedia.org/wikipedia/commons/7/74/Normal_Distribution_PDF.svg)\n\n![mu](../../images/anomaly_detection/mu.svg) - mean value,\n\n![sigma-2](../../images/anomaly_detection/sigma-2.svg) - variance.\n\n![x-normal](../../images/anomaly_detection/x-normal.svg) - \"~\" means that _\"x is distributed as ...\"_\n\nThen Gaussian distribution (probability that some _x_ may be a part of distribution with certain mean and variance) is given by:\n\n![Gaussian Distribution](../../images/anomaly_detection/p.svg)\n\n## Estimating Parameters for a Gaussian\n\nWe may use the following formulas to estimate Gaussian parameters (mean and variation) for _i<sup>th</sup>_ feature:\n\n![mu-i](../../images/anomaly_detection/mu-i.svg)\n\n![sigma-i](../../images/anomaly_detection/sigma-i.svg)\n\n![i](../../images/anomaly_detection/i.svg)\n\n![m](../../images/anomaly_detection/m.svg) - number of training examples.\n\n![n](../../images/anomaly_detection/n.svg) - number of features.\n\n## Density Estimation\n\nSo we have a training set:\n\n![Training Set](../../images/anomaly_detection/training-set.svg)\n\n![x-in-R](../../images/anomaly_detection/x-in-R.svg)\n\nWe assume that each feature of the training set is normally distributed:\n\n![x-1](../../images/anomaly_detection/x-1.svg)\n\n![x-2](../../images/anomaly_detection/x-2.svg)\n\n![x-n](../../images/anomaly_detection/x-n.svg)\n\nThen:\n\n![p-x](../../images/anomaly_detection/p-x.svg)\n\n![p-x-2](../../images/anomaly_detection/p-x-2.svg)\n\n## Anomaly Detection Algorithm\n\n1. Choose features ![x-i](../../images/anomaly_detection/x-i.svg) that might be indicative of anomalous examples (![Training Set](../../images/anomaly_detection/training-set.svg)).\n2. Fit parameters ![params](../../images/anomaly_detection/params.svg) using formulas:\n\n![mu-i](../../images/anomaly_detection/mu-i.svg)\n\n![sigma-i](../../images/anomaly_detection/sigma-i.svg)\n\n3. Given new example _x_, compute _p(x)_:\n\n![p-x-2](../../images/anomaly_detection/p-x-2.svg)\n\nAnomaly if ![anomaly](../../images/anomaly_detection/anomaly.svg)\n\n![epsilon](../../images/anomaly_detection/epsilon.svg) - probability threshold.\n\n## Algorithm Evaluation\n\nThe algorithm may be evaluated using _F1_ score.\n\nThe F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at _1_ (perfect precision and recall) and worst at _0_.\n\n![F1 Score](https://upload.wikimedia.org/wikipedia/commons/2/26/Precisionrecall.svg)\n\n![f1](../../images/anomaly_detection/f1.svg)\n\nWhere:\n\n![precision](../../images/anomaly_detection/precision.svg)\n\n![recall](../../images/anomaly_detection/recall.svg)\n\n_tp_ - number of true positives.\n\n_fp_ - number of false positives.\n\n_fn_ - number of false negatives.\n\n## References\n\n- [Machine Learning on Coursera](https://www.coursera.org/learn/machine-learning)\n- [Normal Distribution on Wikipedia](https://en.wikipedia.org/wiki/Normal_distribution)\n- [F1 Score on Wikipedia](https://en.wikipedia.org/wiki/F1_score)\n- [Precision and Recall on Wikipedia](https://en.wikipedia.org/wiki/Precision_and_recall)\n  "
  },
  {
    "path": "homemade/anomaly_detection/__init__.py",
    "content": "\"\"\"Anomaly Detection Module\"\"\"\n\nfrom .gaussian_anomaly_detection import GaussianAnomalyDetection\n"
  },
  {
    "path": "homemade/anomaly_detection/gaussian_anomaly_detection.py",
    "content": "\"\"\"Anomaly Detection Module\"\"\"\n\nimport math\nimport numpy as np\n\n\nclass GaussianAnomalyDetection:\n    \"\"\"GaussianAnomalyDetection Class\"\"\"\n\n    def __init__(self, data):\n        \"\"\"GaussianAnomalyDetection constructor\"\"\"\n\n        # Estimate Gaussian distribution.\n        (self.mu_param, self.sigma_squared) = GaussianAnomalyDetection.estimate_gaussian(data)\n\n        # Save training data.\n        self.data = data\n\n    def multivariate_gaussian(self, data):\n        \"\"\"Computes the probability density function of the multivariate gaussian distribution\"\"\"\n\n        mu_param = self.mu_param\n        sigma_squared = self.sigma_squared\n\n        # Get number of training sets and features.\n        (num_examples, num_features) = data.shape\n\n        # nit probabilities matrix.\n        probabilities = np.ones((num_examples, 1))\n\n        # Go through all training examples and through all features.\n        for example_index in range(num_examples):\n            for feature_index in range(num_features):\n                # Calculate the power of e.\n                power_dividend = (data[example_index, feature_index] - mu_param[feature_index]) ** 2\n                power_divider = 2 * sigma_squared[feature_index]\n                e_power = -1 * power_dividend / power_divider\n\n                # Calculate the prefix multiplier.\n                probability_prefix = 1 / math.sqrt(2 * math.pi * sigma_squared[feature_index])\n\n                # Calculate the probability for the current feature of current example.\n                probability = probability_prefix * (math.e ** e_power)\n                probabilities[example_index] *= probability\n\n        # Return probabilities for all training examples.\n        return probabilities\n\n    @staticmethod\n    def estimate_gaussian(data):\n        \"\"\"This function estimates the parameters of a Gaussian distribution using the data in X.\"\"\"\n\n        # Get number of features and number of examples.\n        num_examples = data.shape[0]\n\n        # Estimate Gaussian parameters mu and sigma_squared for every feature.\n        mu_param = (1 / num_examples) * np.sum(data, axis=0)\n        sigma_squared = (1 / num_examples) * np.sum((data - mu_param) ** 2, axis=0)\n\n        # Return Gaussian parameters.\n        return mu_param, sigma_squared\n\n    @staticmethod\n    def select_threshold(labels, probabilities):\n        # pylint: disable=R0914\n        \"\"\"Finds the best threshold (epsilon) to use for selecting outliers\"\"\"\n\n        best_epsilon = 0\n        best_f1 = 0\n\n        # History data to build the plots.\n        precision_history = []\n        recall_history = []\n        f1_history = []\n\n        # Calculate the epsilon steps.\n        min_probability = np.min(probabilities)\n        max_probability = np.max(probabilities)\n        step_size = (max_probability - min_probability) / 1000\n\n        # Go through all possible epsilons and pick the one with the highest f1 score.\n        for epsilon in np.arange(min_probability, max_probability, step_size):\n            predictions = probabilities < epsilon\n\n            # The number of false positives: the ground truth label says it’s not\n            # an anomaly, but our algorithm incorrectly classified it as an anomaly.\n            false_positives = np.sum((predictions == 1) & (labels == 0))\n\n            # The number of false negatives: the ground truth label says it’s an anomaly,\n            # but our algorithm incorrectly classified it as not being anomalous.\n            false_negatives = np.sum((predictions == 0) & (labels == 1))\n\n            # The number of true positives: the ground truth label says it’s an\n            # anomaly and our algorithm correctly classified it as an anomaly.\n            true_positives = np.sum((predictions == 1) & (labels == 1))\n\n            # Prevent division by zero.\n            if (true_positives + false_positives) == 0 or (true_positives + false_negatives) == 0:\n                continue\n\n            # Precision.\n            precision = true_positives / (true_positives + false_positives)\n\n            # Recall.\n            recall = true_positives / (true_positives + false_negatives)\n\n            # F1.\n            f1_score = 2 * precision * recall / (precision + recall)\n\n            # Save history data.\n            precision_history.append(precision)\n            recall_history.append(recall)\n            f1_history.append(f1_score)\n\n            if f1_score > best_f1:\n                best_epsilon = epsilon\n                best_f1 = f1_score\n\n        return best_epsilon, best_f1, precision_history, recall_history, f1_history\n"
  },
  {
    "path": "homemade/k_means/README.md",
    "content": "# K-Means Algorithm\n\n## Jupyter Demos\n\n▶️ [Demo | K-means Algorithm](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/k_means/k_means_demo.ipynb) - split Iris flowers into clusters based on `petal_length` and `petal_width`\n\n## Definition\n\n**K-means clustering** aims to partition n observations into _K_ clusters in which each observation belongs to the cluster with the nearest mean, serving as a prototype of the cluster.\n\nThe result of a cluster analysis shown below as the coloring of the squares into three clusters.\n\n![Clustering](https://upload.wikimedia.org/wikipedia/commons/c/c8/Cluster-2.svg)\n\n## Description\n\nGiven a training set of observations:\n\n![Training set](../../images/k_means/training-set.svg)\n\n![x-i](../../images/k_means/x-i.svg)\n\nWhere each observation is a _d_-dimensional real vector, k-means clustering aims to partition the _m_ observations into _K_ (_≤ m_) clusters:\n\n![Clusters](../../images/k_means/clasters.svg)\n\n... so as to minimize the within-cluster sum of squares (i.e. variance).\n\nBelow you may find an example of 4 random cluster centroids initialization and further clusters convergence:\n\n![Clustering](http://shabal.in/visuals/kmeans/random.gif)\n\n[Picture Source](http://shabal.in/visuals/kmeans/6.html)\n\nAnother illustration of k-means convergence:\n\n![Clustering](https://upload.wikimedia.org/wikipedia/commons/e/ea/K-means_convergence.gif)\n\n## Cost Function (Distortion)\n\n![c-i](../../images/k_means/c-i.svg) - index of cluster _(1, 2, ..., K)_ to which example _x<sup>(i)</sup>_ is currently assigned.\n\n![mu-k](../../images/k_means/mu-k.svg) - cluster centroid _k_ (![mu-k-2](../../images/k_means/mu-k-2.svg)) and ![k](../../images/k_means/k.svg).\n\n![mu-c-i](../../images/k_means/mu-c-i.svg) - cluster centroid of a cluster to which the example _x<sup>(i)</sup>_ has been assigned.\n\nFor example:\n\n![Cluster example](../../images/k_means/cluster-example.svg)\n\nIn this case optimization objective will look like the following:\n\n![Cost Function](../../images/k_means/cost-function.svg)\n\n![Clustering](https://upload.wikimedia.org/wikipedia/commons/d/d1/KMeans-density-data.svg)\n\n## The Algorithm\n\nRandomly initialize _K_ cluster centroids (randomly pick _K_ training examples and set _K_ cluster centroids to that examples).\n\n![Centroids](../../images/k_means/centroids.svg)\n\n![k-means-algorithm](../../images/k_means/k-means-algorithm.svg)\n\n## References\n\n- [Machine Learning on Coursera](https://www.coursera.org/learn/machine-learning)\n- [K-means on Wikipedia](https://en.wikipedia.org/wiki/K-means_clustering)\n"
  },
  {
    "path": "homemade/k_means/__init__.py",
    "content": "\"\"\"KMeans Module\"\"\"\n\nfrom .k_means import KMeans\n"
  },
  {
    "path": "homemade/k_means/k_means.py",
    "content": "\"\"\"KMeans Module\"\"\"\n\nimport numpy as np\n\n\nclass KMeans:\n    \"\"\"K-Means Class\"\"\"\n\n    def __init__(self, data, num_clusters):\n        \"\"\"K-Means class constructor.\n\n        :param data: training dataset.\n        :param num_clusters: number of cluster into which we want to break the dataset.\n        \"\"\"\n        self.data = data\n        self.num_clusters = num_clusters\n\n    def train(self, max_iterations):\n        \"\"\"Function performs data clustering using K-Means algorithm\n\n        :param max_iterations: maximum number of training iterations.\n        \"\"\"\n\n        # Generate random centroids based on training set.\n        centroids = KMeans.centroids_init(self.data, self.num_clusters)\n\n        # Init default array of closest centroid IDs.\n        num_examples = self.data.shape[0]\n        closest_centroids_ids = np.empty((num_examples, 1))\n\n        # Run K-Means.\n        for _ in range(max_iterations):\n            # Find the closest centroids for training examples.\n            closest_centroids_ids = KMeans.centroids_find_closest(self.data, centroids)\n\n            # Compute means based on the closest centroids found in the previous part.\n            centroids = KMeans.centroids_compute(\n                self.data,\n                closest_centroids_ids,\n                self.num_clusters\n            )\n\n        return centroids, closest_centroids_ids\n\n    @staticmethod\n    def centroids_init(data, num_clusters):\n        \"\"\"Initializes num_clusters centroids that are to be used in K-Means on the dataset X\n\n        :param data: training dataset.\n        :param num_clusters: number of cluster into which we want to break the dataset.\n        \"\"\"\n\n        # Get number of training examples.\n        num_examples = data.shape[0]\n\n        # Randomly reorder indices of training examples.\n        random_ids = np.random.permutation(num_examples)\n\n        # Take the first K examples as centroids.\n        centroids = data[random_ids[:num_clusters], :]\n\n        # Return generated centroids.\n        return centroids\n\n    @staticmethod\n    def centroids_find_closest(data, centroids):\n        \"\"\"Computes the centroid memberships for every example.\n\n        Returns the closest centroids in closest_centroids_ids for a dataset X where each row is\n        a single example. closest_centroids_ids = m x 1 vector of centroid assignments (i.e. each\n        entry in range [1..K]).\n\n        :param data: training dataset.\n        :param centroids: list of centroid points.\n        \"\"\"\n\n        # Get number of training examples.\n        num_examples = data.shape[0]\n\n        # Get number of centroids.\n        num_centroids = centroids.shape[0]\n\n        # We need to return the following variables correctly.\n        closest_centroids_ids = np.zeros((num_examples, 1))\n\n        # Go over every example, find its closest centroid, and store\n        # the index inside closest_centroids_ids at the appropriate location.\n        # Concretely, closest_centroids_ids(i) should contain the index of the centroid\n        # closest to example i. Hence, it should be a value in the range 1...num_centroids.\n        for example_index in range(num_examples):\n            distances = np.zeros((num_centroids, 1))\n            for centroid_index in range(num_centroids):\n                distance_difference = data[example_index, :] - centroids[centroid_index, :]\n                distances[centroid_index] = np.sum(distance_difference ** 2)\n            closest_centroids_ids[example_index] = np.argmin(distances)\n\n        return closest_centroids_ids\n\n    @staticmethod\n    def centroids_compute(data, closest_centroids_ids, num_clusters):\n        \"\"\"Compute new centroids.\n\n        Returns the new centroids by computing the means of the data points assigned to\n        each centroid.\n\n        :param data: training dataset.\n        :param closest_centroids_ids: list of closest centroid ids per each training example.\n        :param num_clusters: number of clusters.\n        \"\"\"\n\n        # Get number of features.\n        num_features = data.shape[1]\n\n        # We need to return the following variables correctly.\n        centroids = np.zeros((num_clusters, num_features))\n\n        # Go over every centroid and compute mean of all points that\n        # belong to it. Concretely, the row vector centroids(i, :)\n        # should contain the mean of the data points assigned to\n        # centroid i.\n        for centroid_id in range(num_clusters):\n            closest_ids = closest_centroids_ids == centroid_id\n            centroids[centroid_id] = np.mean(data[closest_ids.flatten(), :], axis=0)\n\n        return centroids\n"
  },
  {
    "path": "homemade/linear_regression/README.md",
    "content": "# Linear Regression\n\n## Jupyter Demos\n\n▶️ [Demo | Univariate Linear Regression](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/univariate_linear_regression_demo.ipynb) - predict `country happiness` score by `economy GDP`\n\n▶️ [Demo | Multivariate Linear Regression](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/multivariate_linear_regression_demo.ipynb) - predict `country happiness` score by `economy GDP` and `freedom index`\n\n▶️ [Demo | Non-linear Regression](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/non_linear_regression_demo.ipynb) - use linear regression with _polynomial_ and _sinusoid_ features to predict non-linear dependencies.\n\n## Definition\n\n**Linear regression** is a linear model, e.g. a model that assumes a linear relationship between the input variables (_x_) and the single output variable (_y_). More specifically, that output variable (_y_) can be calculated from a linear combination of the input variables (_x_).\n\n![Linear Regression](https://upload.wikimedia.org/wikipedia/commons/3/3a/Linear_regression.svg)\n\nOn the image above there is an example of dependency between input variable _x_ and output variable _y_. The red line in the above graph is referred to as the best fit straight line. Based on the given data points (training examples), we try to plot a line that models the points the best. In the real world scenario we normally have more than one input variable.\n\n## Features (variables)\n\nEach training example consists of features (variables) that describe this example (i.e. number of rooms, the square of the apartment etc.)\n\n![Features](../../images/linear_regression/features.svg)\n\n_n_ - number of features\n\n_R<sup>n+1</sup>_ - vector of _n+1_ real numbers\n\n## Parameters\n\nParameters of the hypothesis we want our algorithm to learn in order to be able to do predictions (i.e. predict the price of the apartment).\n\n![Parameters](../../images/linear_regression/parameters.svg)\n\n## Hypothesis\n\nThe equation that gets features and parameters as an input and predicts the value as an output (i.e. predict the price of the apartment based on its size and number of rooms).\n\n![Hypothesis](../../images/linear_regression/hypothesis.svg)\n\nFor convenience of notation, define _X<sub>0</sub> = 1_\n\n## Cost Function\n\nFunction that shows how accurate the predictions of the hypothesis are with current set of parameters.\n\n![Cost Function](../../images/linear_regression/cost-function.svg)\n\n_x<sup>i</sup>_ - input (features) of _i<sup>th</sup>_ training example\n\n_y<sup>i</sup>_ - output of _i<sup>th</sup>_ training example\n\n_m_ - number of training examples\n\n## Batch Gradient Descent\n\nGradient descent is an iterative optimization algorithm for finding the minimum of a cost function described above. To find a local minimum of a function using gradient descent, one takes steps proportional to the negative of the gradient (or approximate gradient) of the function at the current point.\n\nPicture below illustrates the steps we take going down of the hill to find local minimum.\n\n![Gradient Descent](https://cdn-images-1.medium.com/max/1600/1*f9a162GhpMbiTVTAua_lLQ.png)\n\nThe direction of the step is defined by derivative of the cost function in current point.\n\n![Gradient Descent](https://cdn-images-1.medium.com/max/1600/0*rBQI7uBhBKE8KT-X.png)\n\nOnce we decided what direction we need to go we need to decide what the size of the step we need to take.\n\n![Gradient Descent](https://cdn-images-1.medium.com/max/1600/0*QwE8M4MupSdqA3M4.png)\n\nWe need to simultaneously update ![Theta](../../images/linear_regression/theta-j.svg) for _j = 0, 1, ..., n_\n\n![Gradient Descent](../../images/linear_regression/gradient-descent-1.svg)\n\n![Gradient Descent](../../images/linear_regression/gradient-descent-2.svg)\n\n![alpha](../../images/linear_regression/alpha.svg) - the learning rate, the constant that defines the size of the gradient descent step\n\n![x-i-j](../../images/linear_regression/x-i-j.svg) - _j<sup>th</sup>_ feature value of the _i<sup>th</sup>_ training example\n\n![x-i](../../images/linear_regression/x-i.svg) - input (features) of _i<sup>th</sup>_ training example\n\n_y<sup>i</sup>_ - output of _i<sup>th</sup>_ training example\n\n_m_ - number of training examples\n\n_n_ - number of features\n\n> When we use term \"batch\" for gradient descent it means that each step of gradient descent uses **all** the training examples (as you might see from the formula above).\n\n## Feature Scaling\n\nTo make linear regression and gradient descent algorithm work correctly we need to make sure that features are on a similar scale.\n\n![Feature Scaling](../../images/linear_regression/feature-scaling.svg)\n\nFor example \"apartment size\" feature (e.g. 120 m<sup>2</sup>) is much bigger than the \"number of rooms\" feature (e.g. 2).\n\nIn order to scale the features we need to do **mean normalization**\n\n![Mean Normalization](../../images/linear_regression/mean-normalization.svg)\n\n![x-i-j](../../images/linear_regression/x-i-j.svg) - _j<sup>th</sup>_ feature value of the _i<sup>th</sup>_ training example\n\n![mu-j](../../images/linear_regression/mu-j.svg) - average value of _j<sup>th</sup>_ feature in training set\n\n![s-j](../../images/linear_regression/s-j.svg) - the range (_max - min_) of _j<sup>th</sup>_ feature in training set.\n\n## Polynomial Regression\n\nPolynomial regression is a form of regression analysis in which the relationship between the independent variable _x_ and the dependent variable _y_ is modelled as an _n<sup>th</sup>_ degree polynomial in _x_.\n\nAlthough polynomial regression fits a nonlinear model to the data, as a statistical estimation problem it is linear, in the sense that the hypothesis function is linear in the unknown parameters that are estimated from the data. For this reason, polynomial regression is considered to be a special case of multiple linear regression.\n\n![Polynomial Regression](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Polyreg_scheffe.svg/650px-Polyreg_scheffe.svg.png)\n\nExample of a cubic polynomial regression, which is a type of linear regression.\n\nYou may form polynomial regression by adding new polynomial features.\n\nFor example if the price of the apartment is in non-linear dependency of its size then you might add several new size-related features. \n\n![Polynomial Regression](../../images/linear_regression/polynomial-regression.svg)\n\n## Normal Equation\n\nThere is a closed-form solution to linear regression exists and it looks like the following:\n\n![Normal Equation](../../images/linear_regression/normal-equation.svg)\n\nUsing this formula does not require any feature scaling, and you will get an exact solution in one calculation: there is no “loop until convergence” like in gradient descent.\n\n## Regularization\n\n### Overfitting Problem\n\nIf we have too many features, the learned hypothesis may fit the **training** set very well:\n\n![overfitting](../../images/linear_regression/overfitting-1.svg)\n\n**But** it may fail to generalize to **new** examples (let's say predict prices on new example of detecting if new messages are spam).\n\n![overfitting](https://cdncontribute.geeksforgeeks.org/wp-content/uploads/t0zit.png)\n\n### Solution to Overfitting\n\nHere are couple of options that may be addressed:\n\n- Reduce the number of features\n    - Manually select which features to keep\n    - Model selection algorithm\n- Regularization\n    - Keep all the features, but reduce magnitude/values of model parameters (thetas).\n    - Works well when we have a lot of features, each of which contributes a bit to predicting _y_.\n\nRegularization works by adding regularization parameter to the **cost function**:\n\n![Cost Function](../../images/linear_regression/cost-function-with-regularization.svg)\n\n> Note that you should not regularize the parameter ![theta zero](../../images/linear_regression/theta-0.svg).\n\n![regularization parameter](../../images/linear_regression/lambda.svg) - regularization parameter\n\nIn this case the **gradient descent** formula will look like the following:\n\n![Gradient Descent](../../images/linear_regression/gradient-descent-3.svg)\n\n## References\n\n- [Machine Learning on Coursera](https://www.coursera.org/learn/machine-learning)\n- [Linear Regression on Wikipedia](https://en.wikipedia.org/wiki/Linear_regression)\n- [Gradient Descent on Wikipedia](https://en.wikipedia.org/wiki/Gradient_descent)\n- [Gradient Descent by Suryansh S.](https://hackernoon.com/gradient-descent-aynk-7cbe95a778da)\n- [Gradient Descent by Niklas Donges](https://towardsdatascience.com/gradient-descent-in-a-nutshell-eaf8c18212f0)\n- [Overfitting on GeeksForGeeks](https://www.geeksforgeeks.org/underfitting-and-overfitting-in-machine-learning/)\n"
  },
  {
    "path": "homemade/linear_regression/__init__.py",
    "content": "\"\"\"Linear Regression Module\"\"\"\n\nfrom .linear_regression import LinearRegression\n"
  },
  {
    "path": "homemade/linear_regression/linear_regression.py",
    "content": "\"\"\"Linear Regression Module\"\"\"\n\n# Import dependencies.\nimport numpy as np\nfrom ..utils.features import prepare_for_training\n\n\nclass LinearRegression:\n    # pylint: disable=too-many-instance-attributes\n    \"\"\"Linear Regression Class\"\"\"\n\n    def __init__(self, data, labels, polynomial_degree=0, sinusoid_degree=0, normalize_data=True):\n        # pylint: disable=too-many-arguments\n        \"\"\"Linear regression constructor.\n\n        :param data: training set.\n        :param labels: training set outputs (correct values).\n        :param polynomial_degree: degree of additional polynomial features.\n        :param sinusoid_degree: multipliers for sinusoidal features.\n        :param normalize_data: flag that indicates that features should be normalized.\n        \"\"\"\n\n        # Normalize features and add ones column.\n        (\n            data_processed,\n            features_mean,\n            features_deviation\n        ) = prepare_for_training(data, polynomial_degree, sinusoid_degree, normalize_data)\n\n        self.data = data_processed\n        self.labels = labels\n        self.features_mean = features_mean\n        self.features_deviation = features_deviation\n        self.polynomial_degree = polynomial_degree\n        self.sinusoid_degree = sinusoid_degree\n        self.normalize_data = normalize_data\n\n        # Initialize model parameters.\n        num_features = self.data.shape[1]\n        self.theta = np.zeros((num_features, 1))\n\n    def train(self, alpha, lambda_param=0, num_iterations=500):\n        \"\"\"Trains linear regression.\n\n        :param alpha: learning rate (the size of the step for gradient descent)\n        :param lambda_param: regularization parameter\n        :param num_iterations: number of gradient descent iterations.\n        \"\"\"\n\n        # Run gradient descent.\n        cost_history = self.gradient_descent(alpha, lambda_param, num_iterations)\n\n        return self.theta, cost_history\n\n    def gradient_descent(self, alpha, lambda_param, num_iterations):\n        \"\"\"Gradient descent.\n\n        It calculates what steps (deltas) should be taken for each theta parameter in\n        order to minimize the cost function.\n\n        :param alpha: learning rate (the size of the step for gradient descent)\n        :param lambda_param: regularization parameter\n        :param num_iterations: number of gradient descent iterations.\n        \"\"\"\n\n        # Initialize J_history with zeros.\n        cost_history = []\n\n        for _ in range(num_iterations):\n            # Perform a single gradient step on the parameter vector theta.\n            self.gradient_step(alpha, lambda_param)\n\n            # Save the cost J in every iteration.\n            cost_history.append(self.cost_function(self.data, self.labels, lambda_param))\n\n        return cost_history\n\n    def gradient_step(self, alpha, lambda_param):\n        \"\"\"Gradient step.\n\n        Function performs one step of gradient descent for theta parameters.\n\n        :param alpha: learning rate (the size of the step for gradient descent)\n        :param lambda_param: regularization parameter\n        \"\"\"\n\n        # Calculate the number of training examples.\n        num_examples = self.data.shape[0]\n\n        # Predictions of hypothesis on all m examples.\n        predictions = LinearRegression.hypothesis(self.data, self.theta)\n\n        # The difference between predictions and actual values for all m examples.\n        delta = predictions - self.labels\n\n        # Calculate regularization parameter.\n        reg_param = 1 - alpha * lambda_param / num_examples\n\n        # Create theta shortcut.\n        theta = self.theta\n\n        # Vectorized version of gradient descent.\n        theta = theta * reg_param - alpha * (1 / num_examples) * (delta.T @ self.data).T\n        # We should NOT regularize the parameter theta_zero.\n        theta[0] = theta[0] - alpha * (1 / num_examples) * (self.data[:, 0].T @ delta).T\n\n        self.theta = theta\n\n    def get_cost(self, data, labels, lambda_param):\n        \"\"\"Get the cost value for specific data set.\n\n        :param data: the set of training or test data.\n        :param labels: training set outputs (correct values).\n        :param lambda_param: regularization parameter\n        \"\"\"\n\n        data_processed = prepare_for_training(\n            data,\n            self.polynomial_degree,\n            self.sinusoid_degree,\n            self.normalize_data,\n        )[0]\n\n        return self.cost_function(data_processed, labels, lambda_param)\n\n    def cost_function(self, data, labels, lambda_param):\n        \"\"\"Cost function.\n\n        It shows how accurate our model is based on current model parameters.\n\n        :param data: the set of training or test data.\n        :param labels: training set outputs (correct values).\n        :param lambda_param: regularization parameter\n        \"\"\"\n\n        # Calculate the number of training examples and features.\n        num_examples = data.shape[0]\n\n        # Get the difference between predictions and correct output values.\n        delta = LinearRegression.hypothesis(data, self.theta) - labels\n\n        # Calculate regularization parameter.\n        # Remember that we should not regularize the parameter theta_zero.\n        theta_cut = self.theta[1:, 0]\n        reg_param = lambda_param * (theta_cut.T @ theta_cut)\n\n        # Calculate current predictions cost.\n        cost = (1 / 2 * num_examples) * (delta.T @ delta + reg_param)\n\n        # Let's extract cost value from the one and only cost numpy matrix cell.\n        return cost[0][0]\n\n    def predict(self, data):\n        \"\"\"Predict the output for data_set input based on trained theta values\n\n        :param data: training set of features.\n        \"\"\"\n\n        # Normalize features and add ones column.\n        data_processed = prepare_for_training(\n            data,\n            self.polynomial_degree,\n            self.sinusoid_degree,\n            self.normalize_data,\n        )[0]\n\n        # Do predictions using model hypothesis.\n        predictions = LinearRegression.hypothesis(data_processed, self.theta)\n\n        return predictions\n\n    @staticmethod\n    def hypothesis(data, theta):\n        \"\"\"Hypothesis function.\n\n        It predicts the output values y based on the input values X and model parameters.\n\n        :param data: data set for what the predictions will be calculated.\n        :param theta: model params.\n        :return: predictions made by model based on provided theta.\n        \"\"\"\n\n        predictions = data @ theta\n\n        return predictions\n"
  },
  {
    "path": "homemade/logistic_regression/README.md",
    "content": "# Logistic Regression\n\n## Jupyter Demos\n\n▶️ [Demo | Logistic Regression With Linear Boundary](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/logistic_regression_with_linear_boundary_demo.ipynb) - predict Iris flower `class` based on `petal_length` and `petal_width`\n\n▶️ [Demo | Logistic Regression With Non-Linear Boundary](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/logistic_regression_with_non_linear_boundary_demo.ipynb) - predict microchip `validity` based on `param_1` and `param_2`\n\n▶️ [Demo | Multivariate Logistic Regression | MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/multivariate_logistic_regression_demo.ipynb) - recognize handwritten digits from `28x28` pixel images.\n\n▶️ [Demo | Multivariate Logistic Regression | Fashion MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/multivariate_logistic_regression_fashion_demo.ipynb) - recognize clothes types from `28x28` pixel images.\n\n## Definition\n\n**Logistic regression** is the appropriate regression analysis to conduct when the dependent variable is dichotomous (binary). Like all regression analyses, the logistic regression is a predictive analysis. Logistic regression is used to describe data and to explain the relationship between one dependent binary variable and one or more nominal, ordinal, interval or ratio-level independent variables.\n\nLogistic Regression is used when the dependent variable (target) is categorical.\n\nFor example:\n\n- To predict whether an email is spam (1) or (0).\n- Whether online transaction is fraudulent (1) or not (0).\n- Whether the tumor is malignant (1) or not (0).\n\nIn other words the dependant variable (output) for logistic regression model may be described as:\n\n![Logistic Regression Output](../../images/logistic_regression/output.svg)\n\n![Logistic Regression](https://cdn-images-1.medium.com/max/1600/1*4G0gsu92rPhN-co9pv1P5A@2x.png)\n\n![Logistic Regression](https://cdn-images-1.medium.com/max/1200/1*KRhpHnucyX9Y5PMdjGvVFA.png)\n\n## Training Set\n\nTraining set is an input data where for every predefined set of features _x_ we have a correct classification _y_.\n\n![Training Set](../../images/logistic_regression/training-set-1.svg)\n\n_m_ - number of training set examples.\n\n![Training Set](../../images/logistic_regression/training-set-2.svg)\n\nFor convenience of notation, define:\n\n![x-zero](../../images/logistic_regression/x-0.svg)\n\n![Logistic Regression Output](../../images/logistic_regression/output.svg)\n\n## Hypothesis (the Model)\n\nThe equation that gets features and parameters as an input and predicts the value as an output (i.e. predict if the email is spam or not based on some email characteristics).\n\n![Hypothesis](../../images/logistic_regression/hypothesis-1.svg)\n\nWhere _g()_ is a **sigmoid function**.\n\n![Sigmoid](../../images/logistic_regression/sigmoid.svg)\n\n![Sigmoid](https://upload.wikimedia.org/wikipedia/commons/8/88/Logistic-curve.svg)\n\nNow we my write down the hypothesis as follows:\n\n![Hypothesis](../../images/logistic_regression/hypothesis-2.svg)\n\n![Predict 0](../../images/logistic_regression/predict-0.svg)\n\n![Predict 1](../../images/logistic_regression/predict-1.svg)\n\n## Cost Function\n\nFunction that shows how accurate the predictions of the hypothesis are with current set of parameters.\n\n![Cost Function](../../images/logistic_regression/cost-function-1.svg)\n\n![Cost Function](../../images/logistic_regression/cost-function-4.svg)\n\n![Cost Function](../../images/logistic_regression/cost-function-2.svg)\n\nCost function may be simplified to the following one-liner:\n\n![Cost Function](../../images/logistic_regression/cost-function-3.svg)\n\n## Batch Gradient Descent\n\nGradient descent is an iterative optimization algorithm for finding the minimum of a cost function described above. To find a local minimum of a function using gradient descent, one takes steps proportional to the negative of the gradient (or approximate gradient) of the function at the current point.\n\nPicture below illustrates the steps we take going down of the hill to find local minimum.\n\n![Gradient Descent](https://cdn-images-1.medium.com/max/1600/1*f9a162GhpMbiTVTAua_lLQ.png)\n\nThe direction of the step is defined by derivative of the cost function in current point.\n\n![Gradient Descent](https://cdn-images-1.medium.com/max/1600/0*rBQI7uBhBKE8KT-X.png)\n\nOnce we decided what direction we need to go we need to decide what the size of the step we need to take.\n\n![Gradient Descent](https://cdn-images-1.medium.com/max/1600/0*QwE8M4MupSdqA3M4.png)\n\nWe need to simultaneously update ![Theta](../../images/logistic_regression/theta-j.svg) for _j = 0, 1, ..., n_\n\n![Gradient Descent](../../images/logistic_regression/gradient-descent-1.svg)\n\n![Gradient Descent](../../images/logistic_regression/gradient-descent-2.svg)\n\n![alpha](../../images/logistic_regression/alpha.svg) - the learning rate, the constant that defines the size of the gradient descent step\n\n![x-i-j](../../images/logistic_regression/x-i-j.svg) - _j<sup>th</sup>_ feature value of the _i<sup>th</sup>_ training example\n\n![x-i](../../images/logistic_regression/x-i.svg) - input (features) of _i<sup>th</sup>_ training example\n\n_y<sup>i</sup>_ - output of _i<sup>th</sup>_ training example\n\n_m_ - number of training examples\n\n_n_ - number of features\n\n> When we use term \"batch\" for gradient descent it means that each step of gradient descent uses **all** the training examples (as you might see from the formula above).\n\n## Multi-class Classification (One-vs-All)\n\nVery often we need to do not just binary (0/1) classification but rather multi-class ones, like:\n\n- Weather: Sunny, Cloudy, Rain, Snow\n- Email tagging: Work, Friends, Family\n\nTo handle these type of issues we may train a logistic regression classifier ![Multi-class classifier](../../images/logistic_regression/multi-class-classifier.svg) several times for each class _i_ to predict the probability that _y = i_.\n\n![One-vs-All](https://i.stack.imgur.com/zKpJy.jpg)\n\n## Regularization\n\n### Overfitting Problem\n\nIf we have too many features, the learned hypothesis may fit the **training** set very well:\n\n![overfitting](../../images/logistic_regression/overfitting-1.svg)\n\n**But** it may fail to generalize to **new** examples (let's say predict prices on new example of detecting if new messages are spam).\n\n![overfitting](https://cdncontribute.geeksforgeeks.org/wp-content/uploads/fittings.jpg)\n\n### Solution to Overfitting\n\nHere are couple of options that may be addressed:\n\n- Reduce the number of features\n    - Manually select which features to keep\n    - Model selection algorithm\n- Regularization\n    - Keep all the features, but reduce magnitude/values of model parameters (thetas).\n    - Works well when we have a lot of features, each of which contributes a bit to predicting _y_.\n\nRegularization works by adding regularization parameter to the **cost function**:\n\n![Cost Function](../../images/logistic_regression/cost-function-with-regularization.svg)\n\n![regularization parameter](../../images/logistic_regression/lambda.svg) - regularization parameter\n\n> Note that you should not regularize the parameter ![theta zero](../../images/logistic_regression/theta-0.svg).\n\nIn this case the **gradient descent** formula will look like the following:\n\n![Gradient Descent](../../images/logistic_regression/gradient-descent-3.svg)\n\n## References\n\n- [Machine Learning on Coursera](https://www.coursera.org/learn/machine-learning)\n- [Sigmoid Function on Wikipedia](https://en.wikipedia.org/wiki/Sigmoid_function)\n- [Gradient Descent on Wikipedia](https://en.wikipedia.org/wiki/Gradient_descent)\n- [Gradient Descent by Suryansh S.](https://hackernoon.com/gradient-descent-aynk-7cbe95a778da)\n- [Gradient Descent by Niklas Donges](https://towardsdatascience.com/gradient-descent-in-a-nutshell-eaf8c18212f0)\n- [One vs All on Stackexchange](https://stats.stackexchange.com/questions/318520/many-binary-classifiers-vs-single-multiclass-classifier)\n- [Logistic Regression by Rohan Kapur](https://ayearofai.com/rohan-1-when-would-i-even-use-a-quadratic-equation-in-the-real-world-13f379edab3b)\n- [Overfitting on GeeksForGeeks](https://www.geeksforgeeks.org/underfitting-and-overfitting-in-machine-learning/)\n"
  },
  {
    "path": "homemade/logistic_regression/__init__.py",
    "content": "\"\"\"Logistic Regression Module\"\"\"\n\nfrom .logistic_regression import LogisticRegression\n"
  },
  {
    "path": "homemade/logistic_regression/logistic_regression.py",
    "content": "\"\"\"Logistic Regression Module\"\"\"\n\nimport numpy as np\nfrom scipy.optimize import minimize\nfrom ..utils.features import prepare_for_training\nfrom ..utils.hypothesis import sigmoid\n\n\nclass LogisticRegression:\n    # pylint: disable=too-many-instance-attributes\n    \"\"\"Logistic Regression Class\"\"\"\n\n    def __init__(self, data, labels, polynomial_degree=0, sinusoid_degree=0, normalize_data=False):\n        # pylint: disable=too-many-arguments\n        \"\"\"Logistic regression constructor.\n\n        :param data: training set.\n        :param labels: training set outputs (correct values).\n        :param polynomial_degree: degree of additional polynomial features.\n        :param sinusoid_degree: multipliers for sinusoidal features.\n        :param normalize_data: flag that indicates that features should be normalized.\n        \"\"\"\n\n        # Normalize features and add ones column.\n        (\n            data_processed,\n            mean,\n            deviation\n        ) = prepare_for_training(data, polynomial_degree, sinusoid_degree, normalize_data)\n\n        self.data = data_processed\n        self.labels = labels\n        self.unique_labels = np.unique(labels)\n        self.features_mean = mean\n        self.features_deviation = deviation\n        self.polynomial_degree = polynomial_degree\n        self.sinusoid_degree = sinusoid_degree\n        self.normalize_data = normalize_data\n\n        # Initialize model parameters.\n        num_features = self.data.shape[1]\n        num_unique_labels = np.unique(labels).shape[0]\n        self.thetas = np.zeros((num_unique_labels, num_features))\n\n    def train(self, lambda_param=0, max_iterations=1000):\n        \"\"\"Trains logistic regression.\n\n        :param lambda_param: regularization parameter\n        :param max_iterations: maximum number of gradient descent iterations.\n        \"\"\"\n\n        # Init cost history array.\n        cost_histories = []\n\n        # Use One-vs-All approach and train the model several times for each label class.\n\n        num_features = self.data.shape[1]\n\n        # Train the model to distinguish each label particularly.\n        for label_index, unique_label in enumerate(self.unique_labels):\n            current_initial_theta = np.copy(self.thetas[label_index]).reshape((num_features, 1))\n\n            # Convert labels to array of 0s and 1s for current label class.\n            current_labels = (self.labels == unique_label).astype(float)\n\n            # Run gradient descent.\n            (current_theta, cost_history) = LogisticRegression.gradient_descent(\n                self.data,\n                current_labels,\n                current_initial_theta,\n                lambda_param,\n                max_iterations,\n            )\n\n            self.thetas[label_index] = current_theta.T\n            cost_histories.append(cost_history)\n\n        # return self.theta, cost_history\n        return self.thetas, cost_histories\n\n    def predict(self, data):\n        \"\"\"Prediction function\"\"\"\n\n        num_examples = data.shape[0]\n\n        data_processed = prepare_for_training(\n            data,\n            self.polynomial_degree,\n            self.sinusoid_degree,\n            self.normalize_data\n        )[0]\n\n        probability_predictions = LogisticRegression.hypothesis(data_processed, self.thetas.T)\n        max_probability_indices = np.argmax(probability_predictions, axis=1)\n        class_predictions = np.empty(max_probability_indices.shape, dtype=object)\n\n        for index, label in enumerate(self.unique_labels):\n            class_predictions[max_probability_indices == index] = label\n\n        return class_predictions.reshape((num_examples, 1))\n\n    @staticmethod\n    def gradient_descent(data, labels, initial_theta, lambda_param, max_iteration):\n        \"\"\"Gradient descent function.\n\n        Iteratively optimizes theta model parameters.\n\n        :param data: the set of training or test data.\n        :param labels: training set outputs (0 or 1 that defines the class of an example).\n        :param initial_theta: initial model parameters.\n        :param lambda_param: regularization parameter.\n        :param max_iteration: maximum number of gradient descent steps.\n        \"\"\"\n\n        # Initialize cost history list.\n        cost_history = []\n\n        # Calculate the number of features.\n        num_features = data.shape[1]\n\n        # Launch gradient descent.\n        minification_result = minimize(\n            # Function that we're going to minimize.\n            lambda current_theta: LogisticRegression.cost_function(\n                data, labels, current_theta.reshape((num_features, 1)), lambda_param\n            ),\n            # Initial values of model parameter.\n            initial_theta,\n            # We will use conjugate gradient algorithm.\n            method='CG',\n            # Function that will help to calculate gradient direction on each step.\n            jac=lambda current_theta: LogisticRegression.gradient_step(\n                data, labels, current_theta.reshape((num_features, 1)), lambda_param\n            ),\n            # Record gradient descent progress for debugging.\n            callback=lambda current_theta: cost_history.append(LogisticRegression.cost_function(\n                data, labels, current_theta.reshape((num_features, 1)), lambda_param\n            )),\n            options={'maxiter': max_iteration}\n        )\n\n        # Throw an error in case if gradient descent ended up with error.\n        if not minification_result.success:\n            raise ArithmeticError('Can not minimize cost function: ' + minification_result.message)\n\n        # Reshape the final version of model parameters.\n        optimized_theta = minification_result.x.reshape((num_features, 1))\n\n        return optimized_theta, cost_history\n\n    @staticmethod\n    def gradient_step(data, labels, theta, lambda_param):\n        \"\"\"GRADIENT STEP function.\n\n        It performs one step of gradient descent for theta parameters.\n\n        :param data: the set of training or test data.\n        :param labels: training set outputs (0 or 1 that defines the class of an example).\n        :param theta: model parameters.\n        :param lambda_param: regularization parameter.\n        \"\"\"\n\n        # Initialize number of training examples.\n        num_examples = labels.shape[0]\n\n        # Calculate hypothesis predictions and difference with labels.\n        predictions = LogisticRegression.hypothesis(data, theta)\n        label_diff = predictions - labels\n\n        # Calculate regularization parameter.\n        regularization_param = (lambda_param / num_examples) * theta\n\n        # Calculate gradient steps.\n        gradients = (1 / num_examples) * (data.T @ label_diff)\n        regularized_gradients = gradients + regularization_param\n\n        # We should NOT regularize the parameter theta_zero.\n        regularized_gradients[0] = (1 / num_examples) * (data[:, [0]].T @ label_diff)\n\n        return regularized_gradients.T.flatten()\n\n    @staticmethod\n    def cost_function(data, labels, theta, lambda_param):\n        \"\"\"Cost function.\n\n        It shows how accurate our model is based on current model parameters.\n\n        :param data: the set of training or test data.\n        :param labels: training set outputs (0 or 1 that defines the class of an example).\n        :param theta: model parameters.\n        :param lambda_param: regularization parameter.\n        \"\"\"\n\n        # Calculate the number of training examples and features.\n        num_examples = data.shape[0]\n\n        # Calculate hypothesis.\n        predictions = LogisticRegression.hypothesis(data, theta)\n\n        # Calculate regularization parameter\n        # Remember that we should not regularize the parameter theta_zero.\n        theta_cut = theta[1:, [0]]\n        reg_param = (lambda_param / (2 * num_examples)) * (theta_cut.T @ theta_cut)\n\n        # Calculate current predictions cost.\n        y_is_set_cost = labels[labels == 1].T @ np.log(predictions[labels == 1])\n        y_is_not_set_cost = (1 - labels[labels == 0]).T @ np.log(1 - predictions[labels == 0])\n        cost = (-1 / num_examples) * (y_is_set_cost + y_is_not_set_cost) + reg_param\n\n        # Let's extract cost value from the one and only cost numpy matrix cell.\n        return cost[0][0]\n\n    @staticmethod\n    def hypothesis(data, theta):\n        \"\"\"Hypothesis function.\n\n        It predicts the output values y based on the input values X and model parameters.\n\n        :param data: data set for what the predictions will be calculated.\n        :param theta: model params.\n        :return: predictions made by model based on provided theta.\n        \"\"\"\n\n        predictions = sigmoid(data @ theta)\n\n        return predictions\n"
  },
  {
    "path": "homemade/neural_network/README.md",
    "content": "# Neural Network\n\n## Jupyter Demos\n\n▶️ [Demo | Multilayer Perceptron | MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/neural_network/multilayer_perceptron_demo.ipynb) - recognize handwritten digits from `28x28` pixel images.\n\n▶️ [Demo | Multilayer Perceptron | Fashion MNIST](https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/neural_network/multilayer_perceptron_fashion_demo.ipynb) - recognize the type of clothes (Dress, Coat, Sandal, etc.) from `28x28` pixel images.\n\n## Definition\n\n**Artificial neural networks** (ANN) or connectionist systems are computing systems vaguely inspired by the biological neural networks that constitute animal brains. The neural network itself isn't an algorithm, but rather a framework for many different machine learning algorithms to work together and process complex data inputs. Such systems \"learn\" to perform tasks by considering examples, generally without being programmed with any task-specific rules.\n\n![Neuron](https://upload.wikimedia.org/wikipedia/commons/1/10/Blausen_0657_MultipolarNeuron.png)\n\nFor example, in **image recognition**, they might learn to identify images that contain cats by analyzing example images that have been manually labeled as \"cat\" or \"no cat\" and using the results to identify cats in other images. They do this without any prior knowledge about cats, e.g., that they have fur, tails, whiskers and cat-like faces. Instead, they automatically generate identifying characteristics from the learning material that they process.\n\nAn ANN is based on a collection of connected units or nodes called **artificial neurons**, which loosely model the neurons in a biological brain. Each connection, like the synapses in a biological brain, can transmit a signal from one artificial neuron to another. An artificial neuron that receives a signal can process it and then signal additional artificial neurons connected to it.\n\n![Artificial Neuron](https://insights.sei.cmu.edu/sei_blog/sestilli_deeplearning_artificialneuron3.png)\n\nIn common ANN implementations, the signal at a connection between artificial neurons is a real number, and the output of each artificial neuron is computed by some non-linear function of the sum of its inputs. The connections between artificial neurons are called **edges**. Artificial neurons and edges typically have a **weight** that adjusts as learning proceeds. The weight increases or decreases the strength of the signal at a connection. Artificial neurons may have a threshold such that the signal is only sent if the aggregate signal crosses that threshold. Typically, artificial neurons are aggregated into layers. Different layers may perform different kinds of transformations on their inputs. Signals travel from the first layer (the **input layer**), to the last layer (the **output layer**), possibly after traversing the **inner layers** multiple times.\n\n![Neural Network](https://upload.wikimedia.org/wikipedia/commons/4/46/Colored_neural_network.svg)\n\nA **multilayer perceptron (MLP)** is a class of feedforward artificial neural network. An MLP consists of, at least, three layers of nodes: an input layer, a hidden layer and an output layer. Except for the input nodes, each node is a neuron that uses a nonlinear activation function. MLP utilizes a supervised learning technique called backpropagation for training. Its multiple layers and non-linear activation distinguish MLP from a linear perceptron. It can distinguish data that is not linearly separable.\n\n## Neuron Model (Logistic Unit)\n\nHere is a model of one neuron unit.\n\n![neuron](../../images/neural_network/neuron.drawio.svg)\n\n![x-0](../../images/neural_network/x-0.svg)\n\n![neuron x](../../images/neural_network/neuron-x.svg)\n\nWeights:\n\n![neuron weights](../../images/neural_network/neuron-weights.svg)\n\n## Network Model (Set of Neurons)\n\nNeural network consists of the neuron units described in the section above.\n\nLet's take a look at simple example model with one hidden layer.\n\n![network model](../../images/neural_network/neuron-network.drawio.svg)\n\n![a-i-j](../../images/neural_network/a-i-j.svg) - \"activation\" of unit _i_ in layer _j_.\n\n![Theta-j](../../images/neural_network/big-theta-j.svg) - matrix of weights controlling function mapping from layer _j_ to layer _j + 1_. For example for the first layer: ![Theta-1](../../images/neural_network/big-theta-1.svg).\n\n![Theta-j](../../images/neural_network/L.svg) - total number of layers in network (3 in our example).\n\n![s-l](../../images/neural_network/s-l.svg) - number of units (not counting bias unit) in layer _l_.\n\n![K](../../images/neural_network/K.svg) - number of output units (1 in our example but could be any real number for multi-class classification).\n\n## Multi-class Classification\n\nIn order to make neural network to work with multi-class notification we may use **One-vs-All** approach.\n\nLet's say we want our network to distinguish if there is a _pedestrian_ or _car_ of _motorcycle_ or _truck_ is on the image.\n\nIn this case the output layer of our network will have 4 units (input layer will be much bigger and it will have all the pixel from the image. Let's say if all our images will be 20x20 pixels then the input layer will have 400 units each of which will contain the black-white color of the corresponding picture).\n\n![multi-class-network](../../images/neural_network/multi-class-network.drawio.svg)\n\n![h-Theta-multi-class](../../images/neural_network/multi-class-h.svg)\n\nIn this case we would expect our final hypothesis to have following values:\n\n![h-pedestrian](../../images/neural_network/h-pedestrian.svg)\n\n![h-car](../../images/neural_network/h-car.svg)\n\n![h-motorcycle](../../images/neural_network/h-motorcycle.svg)\n\nIn this case for the training set:\n\n![training-set](../../images/neural_network/training-set.svg)\n\nWe would have:\n\n![y-i-multi](../../images/neural_network/y-i-multi.svg)\n\n## Forward (or Feedforward) Propagation\n\nForward propagation is an interactive process of calculating activations for each layer starting from the input layer and going to the output layer.\n\nFor the simple network mentioned in a previous section above we're able to calculate activations for second layer based on the input layer and our network parameters:\n\n![a-1-2](../../images/neural_network/a-1-2.svg)\n\n![a-2-2](../../images/neural_network/a-2-2.svg)\n\n![a-3-2](../../images/neural_network/a-3-2.svg)\n\nThe output layer activation will be calculated based on the hidden layer activations:\n\n![h-Theta-example](../../images/neural_network/h-Theta-example.svg)\n\nWhere _g()_ function may be a sigmoid:\n\n![sigmoid](../../images/neural_network/sigmoid.svg)\n\n![Sigmoid](https://upload.wikimedia.org/wikipedia/commons/8/88/Logistic-curve.svg)\n\n### Vectorized Implementation of Forward Propagation\n\nNow let's convert previous calculations into more concise vectorized form.\n\n![neuron x](../../images/neural_network/neuron-x.svg)\n\nTo simplify previous activation equations let's introduce a _z_ variable:\n\n![z-1](../../images/neural_network/z-1.svg)\n\n![z-2](../../images/neural_network/z-2.svg)\n\n![z-3](../../images/neural_network/z-3.svg)\n\n![z-matrix](../../images/neural_network/z-matrix.svg)\n\n> Don't forget to add bias units (activations) before propagating to the next layer.\n> ![a-bias](../../images/neural_network/a-bias.svg)\n\n![z-3-vectorize](../../images/neural_network/z-3-vectorized.svg)\n\n![h-Theta-vectorized](../../images/neural_network/h-Theta-vectorized.svg)\n\n### Forward Propagation Example\n\nLet's take the following network architecture with 4 layers (input layer, 2 hidden layers and output layer) as an example:\n\n![multi-class-network](../../images/neural_network/multi-class-network.drawio.svg)\n\nIn this case the forward propagation steps would look like the following:\n\n![forward-propagation-example](../../images/neural_network/forward-propagation-example.svg)\n\n## Cost Function\n\nThe cost function for the neuron network is quite similar to the logistic regression cost function.\n\n![cost-function](../../images/neural_network/cost-function.svg)\n\n![h-Theta](../../images/neural_network/h-Theta.svg)\n\n![h-Theta-i](../../images/neural_network/h-Theta-i.svg)\n\n## Backpropagation\n\n### Gradient Computation\n\nBackpropagation algorithm has the same purpose as gradient descent for linear or logistic regression - it corrects the values of thetas to minimize a cost function.\n\nIn other words we need to be able to calculate partial derivative of cost function for each theta.\n\n![J-partial](../../images/neural_network/J-partial.svg)\n\n![multi-class-network](../../images/neural_network/multi-class-network.drawio.svg)\n\nLet's assume that:\n\n![delta-j-l](../../images/neural_network/delta-j-l.svg) - \"error\" of node _j_ in layer _l_.\n\nFor each output unit (layer _L = 4_):\n\n![delta-4](../../images/neural_network/delta-4.svg)\n\nOr in vectorized form:\n\n![delta-4-vectorized](../../images/neural_network/delta-4-vectorized.svg)\n\n![delta-3-2](../../images/neural_network/delta-3-2.svg)\n\n![sigmoid-gradient](../../images/neural_network/sigmoid-gradient.svg) - sigmoid gradient.\n\n![sigmoid-gradient-2](../../images/neural_network/sigmoid-gradient-2.svg)\n\nNow we may calculate the gradient step:\n\n![J-partial-detailed](../../images/neural_network/J-partial-detailed.svg)\n\n### Backpropagation Algorithm\n\nFor training set\n\n![training-set](../../images/neural_network/training-set.svg)\n\nWe need to set:\n\n![Delta](../../images/neural_network/Delta.svg)\n\n![backpropagation](../../images/neural_network/backpropagation.svg)\n\n## Random Initialization\n\nBefore starting forward propagation we need to initialize Theta parameters. We can not assign zero to all thetas since this would make our network useless because every neuron of the layer will learn the same as its siblings. In other word we need to **break the symmetry**. In order to do so we need to initialize thetas to some small random initial values:\n\n![theta-init](../../images/neural_network/theta-init.svg)\n\n## References\n\n- [Machine Learning on Coursera](https://www.coursera.org/learn/machine-learning)\n- [But what is a Neural Network? By 3Blue1Brown](https://www.youtube.com/watch?v=aircAruvnKk)\n- [Neural Network on Wikipedia](https://en.wikipedia.org/wiki/Artificial_neural_network)\n- [TensorFlow Neural Network Playground](https://playground.tensorflow.org/)\n- [Deep Learning by Carnegie Mellon University](https://insights.sei.cmu.edu/sei_blog/2018/02/deep-learning-going-deeper-toward-meaningful-patterns-in-complex-data.html)\n"
  },
  {
    "path": "homemade/neural_network/__init__.py",
    "content": "\"\"\"Neural Network Module\"\"\"\n\nfrom .multilayer_perceptron import MultilayerPerceptron\n"
  },
  {
    "path": "homemade/neural_network/multilayer_perceptron.py",
    "content": "\"\"\"Neural Network Module\"\"\"\n\nimport numpy as np\nfrom ..utils.features import prepare_for_training\nfrom ..utils.hypothesis import sigmoid, sigmoid_gradient\n\n\nclass MultilayerPerceptron:\n    \"\"\"Multilayer Perceptron Class\"\"\"\n\n    # pylint: disable=too-many-arguments\n    def __init__(self, data, labels, layers, epsilon, normalize_data=False):\n        \"\"\"Multilayer perceptron constructor.\n\n        :param data: training set.\n        :param labels: training set outputs (correct values).\n        :param layers: network layers configuration.\n        :param epsilon: Defines the range for initial theta values.\n        :param normalize_data: flag that indicates that features should be normalized.\n        \"\"\"\n\n        # Normalize features and add ones column.\n        data_processed = prepare_for_training(data, normalize_data=normalize_data)[0]\n\n        self.data = data_processed\n        self.labels = labels\n        self.layers = layers\n        self.epsilon = epsilon\n        self.normalize_data = normalize_data\n\n        # Randomly initialize the weights for each neural network layer.\n        self.thetas = MultilayerPerceptron.thetas_init(layers, epsilon)\n\n    def train(self, regularization_param=0, max_iterations=1000, alpha=1):\n        \"\"\"Train the model\"\"\"\n\n        # Flatten model thetas for gradient descent.\n        unrolled_thetas = MultilayerPerceptron.thetas_unroll(self.thetas)\n\n        # Run gradient descent.\n        (optimized_thetas, cost_history) = MultilayerPerceptron.gradient_descent(\n            self.data,\n            self.labels,\n            unrolled_thetas,\n            self.layers,\n            regularization_param,\n            max_iterations,\n            alpha\n        )\n\n        # Memorize optimized theta parameters.\n        self.thetas = MultilayerPerceptron.thetas_roll(optimized_thetas, self.layers)\n\n        return self.thetas, cost_history\n\n    def predict(self, data):\n        \"\"\"Predictions function that does classification using trained model\"\"\"\n\n        data_processed = prepare_for_training(data, normalize_data=self.normalize_data)[0]\n\n        num_examples = data_processed.shape[0]\n\n        # Do feedforward propagation with trained neural network params.\n        predictions = MultilayerPerceptron.feedforward_propagation(\n            data_processed, self.thetas, self.layers\n        )\n\n        # Return the index of the output neuron with the highest probability.\n        return np.argmax(predictions, axis=1).reshape((num_examples, 1))\n\n    @staticmethod\n    def gradient_descent(\n            data, labels, unrolled_theta, layers, regularization_param, max_iteration, alpha\n    ):\n        # pylint: disable=too-many-arguments\n        \"\"\"Gradient descent function.\n\n        Iteratively optimizes theta model parameters.\n\n        :param data: the set of training or test data.\n        :param labels: training set outputs (0 or 1 that defines the class of an example).\n        :param unrolled_theta: initial model parameters.\n        :param layers: model layers configuration.\n        :param regularization_param: regularization parameter.\n        :param max_iteration: maximum number of gradient descent steps.\n        :param alpha: gradient descent step size.\n        \"\"\"\n\n        optimized_theta = unrolled_theta\n\n        # Initialize cost history list.\n        cost_history = []\n\n        for _ in range(max_iteration):\n            # Get current cost.\n            cost = MultilayerPerceptron.cost_function(\n                data,\n                labels,\n                MultilayerPerceptron.thetas_roll(optimized_theta, layers),\n                layers,\n                regularization_param\n            )\n\n            # Save current cost value to build plots later.\n            cost_history.append(cost)\n\n            # Get the next gradient step directions.\n            theta_gradient = MultilayerPerceptron.gradient_step(\n                data, labels, optimized_theta, layers, regularization_param\n            )\n\n            # Adjust theta values according to the next gradient step.\n            optimized_theta = optimized_theta - alpha * theta_gradient\n\n        return optimized_theta, cost_history\n\n    @staticmethod\n    def gradient_step(data, labels, unrolled_thetas, layers, regularization_param):\n        \"\"\"Gradient step function.\n\n        Computes the cost and gradient of the neural network for unrolled theta parameters.\n\n        :param data: training set.\n        :param labels: training set labels.\n        :param unrolled_thetas: model parameters.\n        :param layers: model layers configuration.\n        :param regularization_param: parameters that fights with model over-fitting.\n        \"\"\"\n\n        # Reshape nn_params back into the matrix parameters.\n        thetas = MultilayerPerceptron.thetas_roll(unrolled_thetas, layers)\n\n        # Do backpropagation.\n        thetas_rolled_gradients = MultilayerPerceptron.back_propagation(\n            data, labels, thetas, layers, regularization_param\n        )\n\n        # Unroll thetas gradients.\n        thetas_unrolled_gradients = MultilayerPerceptron.thetas_unroll(thetas_rolled_gradients)\n\n        return thetas_unrolled_gradients\n\n    # pylint: disable=R0914\n    @staticmethod\n    def cost_function(data, labels, thetas, layers, regularization_param):\n        \"\"\"Cost function.\n\n        It shows how accurate our model is based on current model parameters.\n\n        :param data: the set of training or test data.\n        :param labels: training set outputs (0 or 1 that defines the class of an example).\n        :param thetas: model parameters.\n        :param layers: layers configuration.\n        :param regularization_param: regularization parameter.\n        \"\"\"\n\n        # Get total number of layers.\n        num_layers = len(layers)\n\n        # Get total number of training examples.\n        num_examples = data.shape[0]\n\n        # Get the size of output layer (number of labels).\n        num_labels = layers[-1]\n\n        # Feedforward the neural network.\n        predictions = MultilayerPerceptron.feedforward_propagation(data, thetas, layers)\n\n        # Compute the cost.\n\n        # For now the labels vector is just an expected number for each input example.\n        # We need to convert every result from number to vector that will illustrate\n        # the output we're expecting. For example instead of having just number 5\n        # we want to expect [0 0 0 0 1 0 0 0 0 0]. The bit is set for 5th position.\n        bitwise_labels = np.zeros((num_examples, num_labels))\n        for example_index in range(num_examples):\n            bitwise_labels[example_index][labels[example_index][0]] = 1\n\n        # Calculate regularization parameter.\n        theta_square_sum = 0\n        for layer_index in range(num_layers - 1):\n            theta = thetas[layer_index]\n            # Don't try to regularize bias thetas.\n            theta_square_sum = theta_square_sum + np.sum(theta[:, 1:] ** 2)\n\n        regularization = (regularization_param / (2 * num_examples)) * theta_square_sum\n\n        # Calculate the cost with regularization.\n        bit_set_cost = np.sum(np.log(predictions[bitwise_labels == 1]))\n        bit_not_set_cost = np.sum(np.log(1 - predictions[bitwise_labels == 0]))\n        cost = (-1 / num_examples) * (bit_set_cost + bit_not_set_cost) + regularization\n\n        return cost\n\n    @staticmethod\n    def feedforward_propagation(data, thetas, layers):\n        \"\"\"Feedforward propagation function\"\"\"\n\n        # Calculate the total number of layers.\n        num_layers = len(layers)\n\n        # Calculate the number of training examples.\n        num_examples = data.shape[0]\n\n        # Input layer (l=1)\n        in_layer_activation = data\n\n        # Propagate to hidden layers.\n        for layer_index in range(num_layers - 1):\n            theta = thetas[layer_index]\n            out_layer_activation = sigmoid(in_layer_activation @ theta.T)\n            # Add bias units.\n            out_layer_activation = np.hstack((np.ones((num_examples, 1)), out_layer_activation))\n            in_layer_activation = out_layer_activation\n\n        # Output layer should not contain bias units.\n        return in_layer_activation[:, 1:]\n\n    # pylint: disable=R0914\n    @staticmethod\n    def back_propagation(data, labels, thetas, layers, regularization_param):\n        \"\"\"Backpropagation function\"\"\"\n\n        # Get total number of layers.\n        num_layers = len(layers)\n\n        # Get total number of training examples and features.\n        (num_examples, num_features) = data.shape\n\n        # Get the number of possible output labels.\n        num_label_types = layers[-1]\n\n        # Initialize big delta - aggregated delta values for all training examples that will\n        # indicate how exact theta need to be changed.\n        deltas = {}\n        for layer_index in range(num_layers - 1):\n            in_count = layers[layer_index]\n            out_count = layers[layer_index + 1]\n            deltas[layer_index] = np.zeros((out_count, in_count + 1))\n\n        # Let's go through all examples.\n        for example_index in range(num_examples):\n            # We will store layers inputs and activations in order to re-use it later.\n            layers_inputs = {}\n            layers_activations = {}\n\n            # Setup input layer activations.\n            layer_activation = data[example_index, :].reshape((num_features, 1))\n            layers_activations[0] = layer_activation\n\n            # Perform a feedforward pass for current training example.\n            for layer_index in range(num_layers - 1):\n                layer_theta = thetas[layer_index]\n                layer_input = layer_theta @ layer_activation\n                layer_activation = np.vstack((np.array([[1]]), sigmoid(layer_input)))\n\n                layers_inputs[layer_index + 1] = layer_input\n                layers_activations[layer_index + 1] = layer_activation\n\n            # Remove bias units from the output activations.\n            output_layer_activation = layer_activation[1:, :]\n\n            # Calculate deltas.\n\n            # For input layer we don't calculate delta because we do not\n            # associate error with the input.\n            delta = {}\n\n            # Convert the output from number to vector (i.e. 5 to [0; 0; 0; 0; 1; 0; 0; 0; 0; 0])\n            bitwise_label = np.zeros((num_label_types, 1))\n            bitwise_label[labels[example_index][0]] = 1\n\n            # Calculate deltas for the output layer for current training example.\n            delta[num_layers - 1] = output_layer_activation - bitwise_label\n\n            # Calculate small deltas for hidden layers for current training example.\n            # The loops should go for the layers L, L-1, ..., 1.\n            for layer_index in range(num_layers - 2, 0, -1):\n                layer_theta = thetas[layer_index]\n                next_delta = delta[layer_index + 1]\n                layer_input = layers_inputs[layer_index]\n\n                # Add bias row to the layer input.\n                layer_input = np.vstack((np.array([[1]]), layer_input))\n\n                # Calculate row delta and take off the bias row from it.\n                delta[layer_index] = (layer_theta.T @ next_delta) * sigmoid_gradient(layer_input)\n                delta[layer_index] = delta[layer_index][1:, :]\n\n            # Accumulate the gradient (update big deltas).\n            for layer_index in range(num_layers - 1):\n                layer_delta = delta[layer_index + 1] @ layers_activations[layer_index].T\n                deltas[layer_index] = deltas[layer_index] + layer_delta\n\n        # Obtain un-regularized gradient for the neural network cost function.\n        for layer_index in range(num_layers - 1):\n            # Remember that we should NOT be regularizing the first column of theta.\n            current_delta = deltas[layer_index]\n            current_delta = np.hstack((np.zeros((current_delta.shape[0], 1)), current_delta[:, 1:]))\n\n            # Calculate regularization.\n            regularization = (regularization_param / num_examples) * current_delta\n\n            # Regularize deltas.\n            deltas[layer_index] = (1 / num_examples) * deltas[layer_index] + regularization\n\n        return deltas\n\n    @staticmethod\n    def thetas_init(layers, epsilon):\n        \"\"\"Randomly initialize the weights for each neural network layer\n\n        Each layer will have its own theta matrix W with L_in incoming connections and L_out\n        outgoing connections. Note that W will be set to a matrix of size(L_out, 1 + L_in) as the\n        first column of W handles the \"bias\" terms.\n\n        :param layers:\n        :param epsilon:\n        :return:\n        \"\"\"\n\n        # Get total number of layers.\n        num_layers = len(layers)\n\n        # Generate initial thetas for each layer.\n        thetas = {}\n\n        # Generate Thetas only for input and hidden layers.\n        # There is no need to generate Thetas for the output layer.\n        for layer_index in range(num_layers - 1):\n            in_count = layers[layer_index]\n            out_count = layers[layer_index + 1]\n            thetas[layer_index] = np.random.rand(out_count, in_count + 1) * 2 * epsilon - epsilon\n\n        return thetas\n\n    @staticmethod\n    def thetas_unroll(thetas):\n        \"\"\"Unrolls cells of theta matrices into one long vector.\"\"\"\n\n        unrolled_thetas = np.array([])\n        num_theta_layers = len(thetas)\n        for theta_layer_index in range(num_theta_layers):\n            # Unroll cells into vector form.\n            unrolled_thetas = np.hstack((unrolled_thetas, thetas[theta_layer_index].flatten()))\n\n        return unrolled_thetas\n\n    @staticmethod\n    def thetas_roll(unrolled_thetas, layers):\n        \"\"\"Rolls NN params vector into the matrix\"\"\"\n\n        # Get total numbers of layers.\n        num_layers = len(layers)\n\n        # Init rolled thetas dictionary.\n        thetas = {}\n        unrolled_shift = 0\n\n        for layer_index in range(num_layers - 1):\n            in_count = layers[layer_index]\n            out_count = layers[layer_index + 1]\n\n            thetas_width = in_count + 1  # We need to remember about bias unit.\n            thetas_height = out_count\n            thetas_volume = thetas_width * thetas_height\n\n            # We need to remember about bias units when rolling up params.\n            start_index = unrolled_shift\n            end_index = unrolled_shift + thetas_volume\n            layer_thetas_unrolled = unrolled_thetas[start_index:end_index]\n            thetas[layer_index] = layer_thetas_unrolled.reshape((thetas_height, thetas_width))\n\n            # Shift frame to the right.\n            unrolled_shift = unrolled_shift + thetas_volume\n\n        return thetas\n"
  },
  {
    "path": "homemade/utils/__init__.py",
    "content": ""
  },
  {
    "path": "homemade/utils/features/__init__.py",
    "content": "\"\"\"Dataset Features Related Utils\"\"\"\n\nfrom .normalize import normalize\nfrom .generate_polynomials import generate_polynomials\nfrom .generate_sinusoids import generate_sinusoids\nfrom .prepare_for_training import prepare_for_training\n"
  },
  {
    "path": "homemade/utils/features/generate_polynomials.py",
    "content": "\"\"\"Add polynomial features to the features set\"\"\"\n\nimport numpy as np\nfrom .normalize import normalize\n\n\ndef generate_polynomials(dataset, polynomial_degree, normalize_data=False):\n    \"\"\"Extends data set with polynomial features of certain degree.\n\n    Returns a new feature array with more features, comprising of\n    x1, x2, x1^2, x2^2, x1*x2, x1*x2^2, etc.\n\n    :param dataset: dataset that we want to generate polynomials for.\n    :param polynomial_degree: the max power of new features.\n    :param normalize_data: flag that indicates whether polynomials need to normalized or not.\n    \"\"\"\n\n    # Split features on two halves.\n    features_split = np.array_split(dataset, 2, axis=1)\n    dataset_1 = features_split[0]\n    dataset_2 = features_split[1]\n\n    # Extract sets parameters.\n    (num_examples_1, num_features_1) = dataset_1.shape\n    (num_examples_2, num_features_2) = dataset_2.shape\n\n    # Check if two sets have equal amount of rows.\n    if num_examples_1 != num_examples_2:\n        raise ValueError('Can not generate polynomials for two sets with different number of rows')\n\n    # Check if at list one set has features.\n    if num_features_1 == 0 and num_features_2 == 0:\n        raise ValueError('Can not generate polynomials for two sets with no columns')\n\n    # Replace empty set with non-empty one.\n    if num_features_1 == 0:\n        dataset_1 = dataset_2\n    elif num_features_2 == 0:\n        dataset_2 = dataset_1\n\n    # Make sure that sets have the same number of features in order to be able to multiply them.\n    num_features = num_features_1 if num_features_1 < num_examples_2 else num_features_2\n    dataset_1 = dataset_1[:, :num_features]\n    dataset_2 = dataset_2[:, :num_features]\n\n    # Create polynomials matrix.\n    polynomials = np.empty((num_examples_1, 0))\n\n    # Generate polynomial features of specified degree.\n    for i in range(1, polynomial_degree + 1):\n        for j in range(i + 1):\n            polynomial_feature = (dataset_1 ** (i - j)) * (dataset_2 ** j)\n            polynomials = np.concatenate((polynomials, polynomial_feature), axis=1)\n\n    # Normalize polynomials if needed.\n    if normalize_data:\n        polynomials = normalize(polynomials)[0]\n\n    # Return generated polynomial features.\n    return polynomials\n"
  },
  {
    "path": "homemade/utils/features/generate_sinusoids.py",
    "content": "\"\"\"Add sinusoid features to the features set\"\"\"\n\nimport numpy as np\n\n\ndef generate_sinusoids(dataset, sinusoid_degree):\n    \"\"\"Extends data set with sinusoid features.\n\n    Returns a new feature array with more features, comprising of\n    sin(x).\n\n    :param dataset: data set.\n    :param sinusoid_degree: multiplier for sinusoid parameter multiplications\n    \"\"\"\n\n    # Create sinusoids matrix.\n    num_examples = dataset.shape[0]\n    sinusoids = np.empty((num_examples, 0))\n\n    # Generate sinusoid features of specified degree.\n    for degree in range(1, sinusoid_degree + 1):\n        sinusoid_features = np.sin(degree * dataset)\n        sinusoids = np.concatenate((sinusoids, sinusoid_features), axis=1)\n\n    # Return generated sinusoidal features.\n    return sinusoids\n"
  },
  {
    "path": "homemade/utils/features/normalize.py",
    "content": "\"\"\"Normalize features\"\"\"\n\nimport numpy as np\n\n\ndef normalize(features):\n    \"\"\"Normalize features.\n\n    Normalizes input features X. Returns a normalized version of X where the mean value of\n    each feature is 0 and deviation is close to 1.\n\n    :param features: set of features.\n    :return: normalized set of features.\n    \"\"\"\n\n    # Copy original array to prevent it from changes.\n    features_normalized = np.copy(features).astype(float)\n\n    # Get average values for each feature (column) in X.\n    features_mean = np.mean(features, 0)\n\n    # Calculate the standard deviation for each feature.\n    features_deviation = np.std(features, 0)\n\n    # Subtract mean values from each feature (column) of every example (row)\n    # to make all features be spread around zero.\n    if features.shape[0] > 1:\n        features_normalized -= features_mean\n\n    # Normalize each feature values so that all features are close to [-1:1] boundaries.\n    # Also prevent division by zero error.\n    features_deviation[features_deviation == 0] = 1\n    features_normalized /= features_deviation\n\n    return features_normalized, features_mean, features_deviation\n"
  },
  {
    "path": "homemade/utils/features/prepare_for_training.py",
    "content": "\"\"\"Prepares the dataset for training\"\"\"\n\nimport numpy as np\nfrom .normalize import normalize\nfrom .generate_sinusoids import generate_sinusoids\nfrom .generate_polynomials import generate_polynomials\n\n\ndef prepare_for_training(data, polynomial_degree=0, sinusoid_degree=0, normalize_data=True):\n    \"\"\"Prepares data set for training on prediction\"\"\"\n\n    # Calculate the number of examples.\n    num_examples = data.shape[0]\n\n    # Prevent original data from being modified.\n    data_processed = np.copy(data)\n\n    # Normalize data set.\n    features_mean = 0\n    features_deviation = 0\n    data_normalized = data_processed\n    if normalize_data:\n        (\n            data_normalized,\n            features_mean,\n            features_deviation\n        ) = normalize(data_processed)\n\n        # Replace processed data with normalized processed data.\n        # We need to have normalized data below while we will adding polynomials and sinusoids.\n        data_processed = data_normalized\n\n    # Add sinusoidal features to the dataset.\n    if sinusoid_degree > 0:\n        sinusoids = generate_sinusoids(data_normalized, sinusoid_degree)\n        data_processed = np.concatenate((data_processed, sinusoids), axis=1)\n\n    # Add polynomial features to data set.\n    if polynomial_degree > 0:\n        polynomials = generate_polynomials(data_normalized, polynomial_degree, normalize_data)\n        data_processed = np.concatenate((data_processed, polynomials), axis=1)\n\n    # Add a column of ones to X.\n    data_processed = np.hstack((np.ones((num_examples, 1)), data_processed))\n\n    return data_processed, features_mean, features_deviation\n"
  },
  {
    "path": "homemade/utils/hypothesis/__init__.py",
    "content": "\"\"\"Dataset Hypothesis Related Utils\"\"\"\n\nfrom .sigmoid import sigmoid\nfrom .sigmoid_gradient import sigmoid_gradient\n"
  },
  {
    "path": "homemade/utils/hypothesis/sigmoid.py",
    "content": "\"\"\"Sigmoid function\"\"\"\n\nimport numpy as np\n\n\ndef sigmoid(matrix):\n    \"\"\"Applies sigmoid function to NumPy matrix\"\"\"\n\n    return 1 / (1 + np.exp(-matrix))\n"
  },
  {
    "path": "homemade/utils/hypothesis/sigmoid_gradient.py",
    "content": "\"\"\"Sigmoid gradient function\"\"\"\n\nfrom .sigmoid import sigmoid\n\n\ndef sigmoid_gradient(matrix):\n    \"\"\"Computes the gradient of the sigmoid function evaluated at z.\"\"\"\n\n    return sigmoid(matrix) * (1 - sigmoid(matrix))\n"
  },
  {
    "path": "images/machine-learning-map.xml",
    "content": "<mxfile userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36\" version=\"9.3.1\" editor=\"www.draw.io\" type=\"device\"><diagram id=\"a37446a2-17bc-29cf-618f-55ce1b37ee47\" name=\"Map\">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</diagram></mxfile>"
  },
  {
    "path": "images/neural_network/multi-class-network.xml",
    "content": "<mxfile userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36\" version=\"9.3.0\" editor=\"www.draw.io\" type=\"device\"><diagram id=\"082588be-7dc7-01e0-5c22-f37c9381c6be\" name=\"Page-1\">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</diagram></mxfile>"
  },
  {
    "path": "images/neural_network/neuron-network.xml",
    "content": "<mxfile userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36\" version=\"9.3.0\" editor=\"www.draw.io\" type=\"device\"><diagram id=\"6862ea30-1ea8-a437-da1a-b414bb20cad7\" name=\"Page-1\">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</diagram></mxfile>"
  },
  {
    "path": "images/neural_network/neuron.xml",
    "content": "<mxfile userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36\" version=\"9.3.0\" editor=\"www.draw.io\" type=\"device\"><diagram id=\"6862ea30-1ea8-a437-da1a-b414bb20cad7\" name=\"Page-1\">5VnRjps6EP2aSO3DRWADgcdNdu9tpVaqtKraPjrggG8JpsQ0Sb++NrYTOybbdJd0U22QEjy2h/GcM54xmcD5avtfi5ryPc1xNQF+vp3A2wkA09Tn30Kwk4IwDqWgaEkuRcFBcE9+YCVU84qO5HhtDWSUVow0tjCjdY0zZslQ29KNPWxJK/upDSqwI7jPUOVKP5GclVIKoe8fOt5gUpTq0bwrlT0LlH0tWtrV6oETAJf9R3avkFamNK1LlNONIYJ3EzhvKWXybrWd40r4VvtNzvv3RO/e8BbX7KwJsZzxHVUd1ib3hrGd9oZYT6OG4Zbh7RAGaKGH+64NwX5lnDGYrjBrd3yIUgQ1XRRbAqCcuTF8r9WWpttTjbnCu9jrPiyZ36hVD3sADDggrvgTZkvK7Tc9EX/rqO74Z92z9oYPCOKGr2R26Od3hfjdak3rbvEkRYFWxBfT65JiQypt1eIjAPmCeeTwxmxTEobvG5SJng2PXS4r2Yr75jbgt2jdyHBaki3OlYEqPDlTeJtU1ZxWtO0VC2qDLBMLZC39io2ePF7EUbw3xiJDfIJLLkEUIeLUS2BqfBx6hLEXhcYVuWQ5MeQp1IF/AXXAy6ZOAFMvnhrUSa6EO+Ef4I4D7kgPGIub8GVzE/ipFwVXyM1oHG7+YlOTMv8KOMA3cocDOcLJcpADcZbgxfKpHHh2kINgCGW0En6rF2vxQzvWdOxY6mKQ8+JZNWtaCzD6Cli4+da3YcBbwj4b91/EEC/irf8xYzsFCOoYFc9vWUkLWqPqHaWNmmXGLngQhTXt2kzZqETC1AdhaXGFGPlunwOG3KymfqCkjwgFNj/6eGBqXJFd2cbASyM34vUDGGoLzJTOIyj3Rp6F7lBZP0YIo4EQvobqdDCEI5zk4VAIJ2AB4ydv47pXlBjQvGzMr7UCmTpIPCJqud/a3Wc1o298UY1HxHMP4nnxrE5tMmAuFOLnOjK50I54wreP3S1/w7vwiryb/lHvBhf3bXhFvtXv20Z0bvCMm0J0Ta513yuV+9zZoPqsFAxGOoCd1DO/m8ySX6Zvaa8Uv9q+djjDEyWzmWFnXMUjMz0rEapIUfNmxnHFXD4TaZdkqLpRHSuS59Wp2sAm5nFh2LeVkWCMRA+SyPNT45raiT6aekHoJHcYeuYc/crSTO5BwAsI8/1WOgL/3JdTM8IVAv9jTdgFIKzwko0L4BiYRcCzSrPYhmzqhWY5nk4d+AKd3i8OmHvqflv3x68esfWLgUyUuhZKIIq8xIQpfkaUEgelm4wnDp48qNjTu78ruAb+z3HBe/DkcwSVD58LKt48/G0mT8yH/ybh3U8=</diagram></mxfile>"
  },
  {
    "path": "notebooks/anomaly_detection/anomaly_detection_gaussian_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Anomaly Detection Using Gaussian Distribution\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Anomaly Detection](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/anomaly_detection)\\n\",\n    \"> - ⚙️[Gaussian Anomaly Detection Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/anomaly_detection/gaussian_anomaly_detection.py)\\n\",\n    \"\\n\",\n    \"**Anomaly detection** (also **outlier detection**) is the identification of rare items, events or observations which raise suspicions by differing significantly from the majority of the data.\\n\",\n    \"\\n\",\n    \"The **normal** (or **Gaussian**) distribution is a very common continuous probability distribution. Normal distributions are important in statistics and are often used in the natural and social sciences to represent real-valued random variables whose distributions are not known. A random variable with a Gaussian distribution is said to be normally distributed and is called a normal deviate.\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this demo we will build a model that will find anomalies in server operational parameters such as `Latency` and `Throughput`.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of logistic_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of logistic_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [anomaly_detection](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/anomaly_detection/gaussian_anomaly_detection.py) - custom implementation of anomaly detection using Gaussian distribution.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"# Import custom Gaussian anomaly detection implementation.\\n\",\n    \"from homemade.anomaly_detection import GaussianAnomalyDetection\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use the dataset with server operational parameters such as `Latency` and `Throughput` and will try to find anomalies in them.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Latency (ms)</th>\\n\",\n       \"      <th>Throughput (mb/s)</th>\\n\",\n       \"      <th>Anomaly</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>13.046815</td>\\n\",\n       \"      <td>14.741152</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>13.408520</td>\\n\",\n       \"      <td>13.763270</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>14.195915</td>\\n\",\n       \"      <td>15.853181</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>14.914701</td>\\n\",\n       \"      <td>16.174260</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>13.576700</td>\\n\",\n       \"      <td>14.042849</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>13.922403</td>\\n\",\n       \"      <td>13.406469</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>12.822132</td>\\n\",\n       \"      <td>14.223188</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>15.676366</td>\\n\",\n       \"      <td>15.891691</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>16.162875</td>\\n\",\n       \"      <td>16.202998</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>12.666451</td>\\n\",\n       \"      <td>14.899084</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   Latency (ms)  Throughput (mb/s)  Anomaly\\n\",\n       \"0     13.046815          14.741152        0\\n\",\n       \"1     13.408520          13.763270        0\\n\",\n       \"2     14.195915          15.853181        0\\n\",\n       \"3     14.914701          16.174260        0\\n\",\n       \"4     13.576700          14.042849        0\\n\",\n       \"5     13.922403          13.406469        0\\n\",\n       \"6     12.822132          14.223188        0\\n\",\n       \"7     15.676366          15.891691        0\\n\",\n       \"8     16.162875          16.202998        0\\n\",\n       \"9     12.666451          14.899084        1\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"pd_data = pd.read_csv('../../data/server-operational-params.csv')\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"pd_data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x288 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Print histograms for each feature to see how they vary.\\n\",\n    \"histohrams = pd_data[['Latency (ms)', 'Throughput (mb/s)']].hist(grid=False, figsize=(10,4))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's plot `Throughput(Latency)` dependency and see if the distribution is similar to Gaussian one.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Extract first two column from the dataset.\\n\",\n    \"data = pd_data[['Latency (ms)', 'Throughput (mb/s)']].values\\n\",\n    \"\\n\",\n    \"# Plot the data.\\n\",\n    \"plt.scatter(data[:, 0], data[:, 1], alpha=0.6)\\n\",\n    \"plt.xlabel('Latency (ms)')\\n\",\n    \"plt.ylabel('Throughput (mb/s)')\\n\",\n    \"plt.title('Server Operational Params')\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Find Anomalies Using Gaussian Distribution\\n\",\n    \"\\n\",\n    \"Let's try to use our custom anomaly detection implementation using Gaussian distribution.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"mu\\n\",\n      \"[14.11222578 14.99771051]\\n\",\n      \"\\n\",\n      \"\\n\",\n      \"sigma^2\\n\",\n      \"[1.83263141 1.70974533]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Init Gaussian anomaly instance.\\n\",\n    \"gaussian_anomaly = GaussianAnomalyDetection(data)\\n\",\n    \"\\n\",\n    \"# Let's see Gaussian estimation parameters.\\n\",\n    \"print('mu')\\n\",\n    \"print(gaussian_anomaly.mu_param)\\n\",\n    \"\\n\",\n    \"print('\\\\n')\\n\",\n    \"\\n\",\n    \"print('sigma^2')\\n\",\n    \"print(gaussian_anomaly.sigma_squared)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Visualize the Fit\\n\",\n    \"\\n\",\n    \"Let's draw a contour plots that will represent our Gaussian distribution for the dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Create a 3D grid to build a contour plots.\\n\",\n    \"\\n\",\n    \"# Create ranges along X and Y axes.\\n\",\n    \"latency_from = 0\\n\",\n    \"latency_to = 35\\n\",\n    \"\\n\",\n    \"throughput_from = 0\\n\",\n    \"throughput_to = 35\\n\",\n    \"\\n\",\n    \"step = 0.5\\n\",\n    \"\\n\",\n    \"latency_range = np.arange(latency_from, latency_to, step)\\n\",\n    \"throughput_range = np.arange(throughput_from, throughput_to, step)\\n\",\n    \"\\n\",\n    \"# Create X and Y grids.\\n\",\n    \"(latency_grid, throughput_grid) = np.meshgrid(latency_range, throughput_range)\\n\",\n    \"\\n\",\n    \"# Flatten latency and throughput grids.\\n\",\n    \"flat_latency_grid = latency_grid.flatten().reshape((latency_grid.size, 1))\\n\",\n    \"flat_throughput_grid = throughput_grid.flatten().reshape((throughput_grid.size, 1))\\n\",\n    \"\\n\",\n    \"# Joing latency and throughput flatten grids together to form all combinations of latency and throughput.\\n\",\n    \"combinations = np.hstack((flat_latency_grid, flat_throughput_grid))\\n\",\n    \"\\n\",\n    \"# Now let's calculate the probabilities for every combination of latency and throughput.\\n\",\n    \"flat_probabilities = gaussian_anomaly.multivariate_gaussian(combinations)\\n\",\n    \"\\n\",\n    \"# Resghape probabilities back to matrix in order to build contours.\\n\",\n    \"probabilities = flat_probabilities.reshape(latency_grid.shape)\\n\",\n    \"\\n\",\n    \"# Let's build plot our original dataset.\\n\",\n    \"plt.scatter(data[:, 0], data[:, 1], alpha=0.6)\\n\",\n    \"plt.xlabel('Latency (ms)')\\n\",\n    \"plt.ylabel('Throughput (mb/s)')\\n\",\n    \"plt.title('Server Operational Params')\\n\",\n    \"\\n\",\n    \"# On top of our original dataset let's plot probability contours.\\n\",\n    \"plt.contour(latency_grid, throughput_grid, probabilities, levels=10)\\n\",\n    \"\\n\",\n    \"# Display the plot.\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Select best threshold\\n\",\n    \"\\n\",\n    \"Now, in order to decide which examples should be counted as an anomaly we need to decide which probability threshold to choose. We could do it intuitively but since we have all data examples labeled in our dataset let's use that data to calculate the best threshold.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Best epsilon:\\n\",\n      \"8.986095083415364e-05\\n\",\n      \"\\n\",\n      \"\\n\",\n      \"Best F1 score:\\n\",\n      \"0.8\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Extract the information about which example is anomaly and which is not.\\n\",\n    \"num_examples = data.shape[0]\\n\",\n    \"labels = pd_data['Anomaly'].values.reshape((num_examples, 1))\\n\",\n    \"\\n\",\n    \"# Returns the density of the multivariate normal at each data point (row) of X dataset.\\n\",\n    \"probabilities = gaussian_anomaly.multivariate_gaussian(data)\\n\",\n    \"\\n\",\n    \"# Let's go through many possible thresholds and pick the one with the highest F1 score.\\n\",\n    \"(epsilon, f1, precision_history, recall_history, f1_history) = gaussian_anomaly.select_threshold(\\n\",\n    \"    labels, probabilities\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"print('Best epsilon:')\\n\",\n    \"print(epsilon)\\n\",\n    \"\\n\",\n    \"print('\\\\n')\\n\",\n    \"\\n\",\n    \"print('Best F1 score:')\\n\",\n    \"print(f1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot Precision/Recall Progress\\n\",\n    \"\\n\",\n    \"Let's now plot precision, reacall and F1 score changes for every iteration.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1080x360 with 3 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(15, 5))\\n\",\n    \"\\n\",\n    \"# Plot precission history.\\n\",\n    \"plt.subplot(1, 3, 1)\\n\",\n    \"plt.xlabel('Iteration')\\n\",\n    \"plt.ylabel('Value')\\n\",\n    \"plt.title('Precission Progress')\\n\",\n    \"plt.plot(precision_history)\\n\",\n    \"\\n\",\n    \"# Plot recall history.\\n\",\n    \"plt.subplot(1, 3, 2)\\n\",\n    \"plt.xlabel('Iteration')\\n\",\n    \"plt.ylabel('Value')\\n\",\n    \"plt.title('Recall Progress')\\n\",\n    \"plt.plot(recall_history)\\n\",\n    \"\\n\",\n    \"# Plot F1 history.\\n\",\n    \"plt.subplot(1, 3, 3)\\n\",\n    \"plt.xlabel('Iteration')\\n\",\n    \"plt.ylabel('Value')\\n\",\n    \"plt.title('F1 Progress')\\n\",\n    \"plt.plot(f1_history)\\n\",\n    \"\\n\",\n    \"# Display all plots.\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Fing Outliers\\n\",\n    \"\\n\",\n    \"Since now we have calculated best `epsilon` we may find outliers.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[]\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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bNy4kba2Nm644YaM+/VNBEmTJ0/m97//fdbnj8ViA280BCwRGGPGjueeg899Ds45x/187rlDOtxf/vIXwuEwl1xyCeAmqrnrrru49957+eEPf8hVV13Vs+0HP/hBVq5cyXXXXddzR/LHP/7xXsfbsmULxx57LADxeJxrr72WE044geOOO47//M//BNwdx6eddhqLFi1izpw5tLe384EPfIDjjz+eY489lt/85jeH9Dv1x24oM8aMDc89BzfdBFVVMGUK7N3rXn/jG3Diwc2Iu379et7+9rf3WlZZWcn06dPTflv/1re+xd13383atWszHvsnP/kJVVVVPP/883R1dXHqqafyvve9D4A1a9awbt06Zs6cybJly5g8eTKPPPII4MYuGmpWIjDGjA0/+5lLAtXV4HnuZ1WVWz4CPfbYYyxdupR58+Zx0kknsW/fPjZt2gTAiSeeyMyZboykuXPnsmLFCr761a/y1FNPUVVVlemwB8USgTFmbNi8GSorey+rrHTLD9KcOXNYvXp1r2UtLS1s3bqV6urqXvMXRyKRQR1bVfnBD37A2rVrWbt2LZs3b+4pESQHpgOYNWsWa9asYe7cudx444184xvfOOjfJx1LBMaYsWHmTGhp6b2spcUtP0jvec976OjoYOnSpYCr17/mmmu4+OKLOeKII1i7di2JRIJt27bxXEp7RCgUIhqNZjz2+9//fpYsWdKz3caNG2lvb3/Tdjt27KC0tJRPfOITXHvttaxZs+agf590rI3AGDM2XHSRaxMAVxJoaYHmZrjmmoM+pIjwwAMP8NnPfpZbb72VRCLBOeecw+23305RUREzZ85kzpw5HH300cyfP79nv8svv5zjjjuO+fPnc//99/d77MWLF7Nlyxbmz5+PqjJhwgQefPDBN2330ksvce211+J5HqFQiCVLlhz075P297RhqI0xI9Vgh6Hmuedcm8Dmza4kcNFFB91QPNrYMNTGGAPuol8gF/6hZG0ExhhT4CwRGGNGtNFQfZ1vh/oeWSIwxoxY4XCYffv2WTLIQFXZt28f4XD4oI9hbQTGmBFr6tSp1NfXs2fPnnyHMqKFw2GmTp160PtbIjDGjFihUKjnDluTO1Y1ZIwxBc4SgTHGFDhLBMYYU+AsERhjTIGzRGCMMQXOEoExxhQ4SwTGGFPgLBEYY0yBs0RgjDEFzhKBMcYU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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Find indices of data examples with probabilities less than the best epsilon.\\n\",\n    \"outliers_indices = np.where(probabilities < epsilon)[0]\\n\",\n    \"\\n\",\n    \"# Plot original data.\\n\",\n    \"plt.scatter(data[:, 0], data[:, 1], alpha=0.6, label='Dataset')\\n\",\n    \"plt.xlabel('Latency (ms)')\\n\",\n    \"plt.ylabel('Throughput (mb/s)')\\n\",\n    \"plt.title('Server Operational Params')\\n\",\n    \"\\n\",\n    \"# Plot the outliers.\\n\",\n    \"plt.scatter(data[outliers_indices, 0], data[outliers_indices, 1], alpha=0.6, c='red', label='Outliers')\\n\",\n    \"\\n\",\n    \"# Display plots.\\n\",\n    \"plt.legend()\\n\",\n    \"plt.plot()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/k_means/k_means_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# K-Means Algorithm Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the K-Means Algorithm](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/k_means)\\n\",\n    \"> - ⚙️[K-Means Algorithm Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/k_means/k_means.py)\\n\",\n    \"\\n\",\n    \"**K-means clustering** aims to partition _n_ observations into _K_ clusters in which each observation belongs to the cluster with the nearest mean, serving as a prototype of the cluster.\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this example we will try to cluster Iris flowers into tree categories that we don't know in advance based on `petal_length` and `petal_width` parameters using K-Means unsupervised learning algorithm.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of logistic_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of logistic_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [k_means](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/k_means/k_means.py) - custom implementation of K-Means algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"# Import custom k-means implementation.\\n\",\n    \"from homemade.k_means import KMeans\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use [Iris data set](http://archive.ics.uci.edu/ml/datasets/Iris).\\n\",\n    \"\\n\",\n    \"The data set consists of several samples from each of three species of Iris (`Iris setosa`, `Iris virginica` and `Iris versicolor`). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters. Based on the combination of these four features, [Ronald Fisher](https://en.wikipedia.org/wiki/Iris_flower_data_set) developed a linear discriminant model to distinguish the species from each other.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>sepal_length</th>\\n\",\n       \"      <th>sepal_width</th>\\n\",\n       \"      <th>petal_length</th>\\n\",\n       \"      <th>petal_width</th>\\n\",\n       \"      <th>class</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>5.1</td>\\n\",\n       \"      <td>3.5</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>4.9</td>\\n\",\n       \"      <td>3.0</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>4.7</td>\\n\",\n       \"      <td>3.2</td>\\n\",\n       \"      <td>1.3</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>4.6</td>\\n\",\n       \"      <td>3.1</td>\\n\",\n       \"      <td>1.5</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>5.0</td>\\n\",\n       \"      <td>3.6</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>5.4</td>\\n\",\n       \"      <td>3.9</td>\\n\",\n       \"      <td>1.7</td>\\n\",\n       \"      <td>0.4</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>4.6</td>\\n\",\n       \"      <td>3.4</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.3</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>5.0</td>\\n\",\n       \"      <td>3.4</td>\\n\",\n       \"      <td>1.5</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>4.4</td>\\n\",\n       \"      <td>2.9</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>4.9</td>\\n\",\n       \"      <td>3.1</td>\\n\",\n       \"      <td>1.5</td>\\n\",\n       \"      <td>0.1</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   sepal_length  sepal_width  petal_length  petal_width   class\\n\",\n       \"0           5.1          3.5           1.4          0.2  SETOSA\\n\",\n       \"1           4.9          3.0           1.4          0.2  SETOSA\\n\",\n       \"2           4.7          3.2           1.3          0.2  SETOSA\\n\",\n       \"3           4.6          3.1           1.5          0.2  SETOSA\\n\",\n       \"4           5.0          3.6           1.4          0.2  SETOSA\\n\",\n       \"5           5.4          3.9           1.7          0.4  SETOSA\\n\",\n       \"6           4.6          3.4           1.4          0.3  SETOSA\\n\",\n       \"7           5.0          3.4           1.5          0.2  SETOSA\\n\",\n       \"8           4.4          2.9           1.4          0.2  SETOSA\\n\",\n       \"9           4.9          3.1           1.5          0.1  SETOSA\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/iris.csv')\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's take two parameters `petal_length` and `petal_width` for each flower into consideration and plot the dependency of the Iris class on these two parameters.\\n\",\n    \"\\n\",\n    \"Since we have an advantage of knowing the actual flower labels (classes) let's illustrate the real-world classification on the plot. But K-Means algorithm is an example of unsuervised learning algorithm which means that this algorithm doesn't need to know about labels. Thus below in this demo we will try to split Iris flowers into unknown clusters and compare the result of such split with the actual flower classification.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 864x360 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# List of suppported Iris classes.\\n\",\n    \"iris_types = ['SETOSA', 'VERSICOLOR', 'VIRGINICA']\\n\",\n    \"\\n\",\n    \"# Pick the Iris parameters for consideration.\\n\",\n    \"x_axis = 'petal_length'\\n\",\n    \"y_axis = 'petal_width'\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(12, 5))\\n\",\n    \"\\n\",\n    \"# Plot the scatter for every type of Iris.\\n\",\n    \"# This is the case when we know flower labels in advance.\\n\",\n    \"plt.subplot(1, 2, 1)\\n\",\n    \"for iris_type in iris_types:\\n\",\n    \"    plt.scatter(\\n\",\n    \"        data[x_axis][data['class'] == iris_type],\\n\",\n    \"        data[y_axis][data['class'] == iris_type],\\n\",\n    \"        label=iris_type\\n\",\n    \"    )\\n\",\n    \"    \\n\",\n    \"plt.xlabel(x_axis + ' (cm)')\\n\",\n    \"plt.ylabel(y_axis + ' (cm)')\\n\",\n    \"plt.title('Iris Types (labels are known)')\\n\",\n    \"plt.legend()\\n\",\n    \"\\n\",\n    \"# Plot non-classified scatter of Iris flowers.\\n\",\n    \"# This is the case when we don't know flower labels in advance.\\n\",\n    \"# This is how K-Means sees the dataset.\\n\",\n    \"plt.subplot(1, 2, 2)\\n\",\n    \"plt.scatter(\\n\",\n    \"    data[x_axis][:],\\n\",\n    \"    data[y_axis][:],\\n\",\n    \")\\n\",\n    \"plt.xlabel(x_axis + ' (cm)')\\n\",\n    \"plt.ylabel(y_axis + ' (cm)')\\n\",\n    \"plt.title('Iris Types (labels are NOT known)')\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Prepara the Data for Training\\n\",\n    \"\\n\",\n    \"Let's extract `petal_length` and `petal_width` data and form a training feature set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Get total number of Iris examples.\\n\",\n    \"num_examples = data.shape[0]\\n\",\n    \"\\n\",\n    \"# Get features.\\n\",\n    \"x_train = data[[x_axis, y_axis]].values.reshape((num_examples, 2))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train Logistic Regression Model\\n\",\n    \"\\n\",\n    \"> ☝🏻This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"- `num_clusters` - number of clusters into which we want to split our training dataset.\\n\",\n    \"- `max_iterations` - maximum number of training iterations.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Set K-Means parameters.\\n\",\n    \"num_clusters = 3  # Number of clusters into which we want to split our training dataset.\\n\",\n    \"max_iterations = 50  # maximum number of training iterations.\\n\",\n    \"\\n\",\n    \"# Init K-Means instance.\\n\",\n    \"k_means = KMeans(x_train, num_clusters)\\n\",\n    \"\\n\",\n    \"# Train K-Means instance.\\n\",\n    \"(centroids, closest_centroids_ids) = k_means.train(max_iterations)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Plot the Clustering Results\\n\",\n    \"\\n\",\n    \"Now let's plot the original Iris flow classification along with our unsupervised K-Means clusters to see how the algorithm performed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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eXk5ixcvZvfu3VG8axGRzOSc44ILLqCgoICPPvqIZcuWMWXKFD7//POYxp05cyZbt26t1zk1Vab98MMP6dq1K845tm7dStu2bQGvCu8f//hH1qxZw7vvvssDDzzAmjVrYopbRGLXaCfVCzYsYNDcQfR+vDeD5g5iwYYFMY138cUXs2DBAvbt2wd4JcO3bt1Khw4dIvZv3rw5eXl5bNmyBYC77rqLX//61yEf051//vmcccYZEc+fOHEid955Z60x3X333dx6662cdNJJAGRlZXHddddVHa+shjho0CDmzZvn/82KiCRZvHP2woULyc7OZsyYMVVtubm59O/fP6TfzJkzufHGG6teDxkyhEWLFlFeXs7IkSPp2bMnvXr1Ytq0acydO5eioiIuv/xy8vLy2Lt3L8uWLWPAgAH07duXc845h7KyMgAKCgq4+eabyc/PZ/r00G0Z9+7dS15eHgMHDmTRokV0796d9evXk5eXR0lJCW3btq2q7Hj44YfTvXv3qt8lInV5fvkWTv/D63T+1QJO/8PrPL+8+n87fvqkg3SLs1GWKQ8v4lC2u4zCdwoBol632apVK0455RRefPFFhg4dyuzZs7n00ksjlvgG+Pe//8369eurJs2rV6/m5z//ue/rnXrqqTz33HMsXLiQww8/PGKfVatWMWHChBrHmDNnDq+++irvv/8+999/Pz/96U99X18kk9dGh8uUOBurROTsVatW0bdv36hjKikpYcuWLaxatQqAnTt30rJlS2bMmME999xDfn4++/fvZ+zYscybN482bdowZ84cbr31Vh599FEA9u3bR/hac/BuupSUlHDDDTcwevRoVq1axa5du7jhhhuq9d24cSPLly/nBz/4QdTvRRqP8AqDW3buZdKzpQA1VkaM1CcdpGOcjfJOdaKKOAQvAZk9ezYjRoyo1mfx4sXk5ubSrl07zjnnHI45pvp2XNu3bycvL48TTzyRe+65p8br3XbbbUyePDmqWIuKimjdujUdO3bkrLPOYvny5ezYsSOqsaTxqZzklO0uw+GqJjnBdw/99EkHmRJnY5aOhXeOP/54NmzYwNixY3nppZc44ogjqvVZt24dq1at4uyzzyYvL4/JkyezefPmquPDhw+v9RqlpaXk5OSwcuVKcnNzqx3ftWsXF110Effee2/E64uEm/ryumrlz/fuL2fqy+vq1ScdpGOcjXJSnagiDkOHDuW1116juLiYPXv2RLwL0r9/f1asWMHq1av5y1/+QklJCQA5OTkUFxcDcPTRR1NSUsK1117Lrl27arzewIED2bt3L++++27E4zk5OSxbtizisVmzZvH+++/TqVMnunTpwtdff80zzzxT37csjVQmV0YMlylxNmaJyNm15cdgTZs2paKiour1t996/60cddRRrFixgoKCAh588EGuueaaauc658jJyaGkpISSkhJKS0t55ZVXqo4fdthhEa95xx13kJubS3FxMf369ePhhx/muuuuY+LEiVV99u/fz0UXXcTll1/OhRde6Pt9S+OWqZURI0nHOBvlpDpRRRxatGjBmWeeyejRoyPepQ7WuXNnfvWrX3HXXXcB8Itf/II777yTtWvXVvXZs2dPnde87bbbuPvuuyMemzhxIr///e/54IMPAKioqODBBx+koqKCp556itLSUjZu3MjGjRuZN28es2bN8vtWpZHL5MqI4TIlzsYsETl74MCBfPfddzz00ENVbStXrmTx4sUh/Tp16kRJSQkVFRVs2rSJ9957D4Bt27ZRUVHBRRddxOTJk6tuihx++OF88803AHTr1o0vv/ySJUuWAN5EePXq1XXGdvvtt/PII48watQoli5dSm5uLqWlpUydOhXwJutXX3013bt355Zbbon6ayCNT6ZWRowkHeNslJPqRBZxGDFiBCtWrKhzUg0wZswY3nzzTTZu3EivXr2YPn06V155Jd26deP0009n7dq1da5zPvfcc2nTpk3EY7179+bee+9lxIgRdO/enZ49e7JhwwYWL15Mu3btOPbYY6v6nnHGGaxZs6bqIRqR2mRyZcRwmRJnY5aInG1mPPfcc/zzn/+kS5cu5OTkMGnSpGpL8k4//XQ6d+5Mjx49uOmmm6oeENyyZQsFBQXk5eVxxRVXMGXKFABGjhzJmDFjyMvLo7y8nLlz5/LLX/6S3Nxc8vLyeOedd3zF98Ybb9C/f3/ee+89+vXrF3Ls7bff5q9//Suvv/46eXl55OXl8cILL0T9tZDGI1MrI0aSjnE22uIvejApsVRwoGELf3AMvElO4WmFVT9Hfvqkg2THqeIvHuXs5FAulnDPL9/C1JfXsXXnXo5t2ZyJ53Sr9mCfnz7pIFlx+s3bjXL3D/CeGFdCFolO5c9ObZMcP33SQabE2dgp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\\n\",\n      \"text/plain\": [\n       \"<Figure size 864x360 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# List of suppported Iris classes.\\n\",\n    \"iris_types = ['SETOSA', 'VERSICOLOR', 'VIRGINICA']\\n\",\n    \"\\n\",\n    \"# Pick the Iris parameters for consideration.\\n\",\n    \"x_axis = 'petal_length'\\n\",\n    \"y_axis = 'petal_width'\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(12, 5))\\n\",\n    \"\\n\",\n    \"# Plot ACTUAL Iris flower classification.\\n\",\n    \"plt.subplot(1, 2, 1)\\n\",\n    \"for iris_type in iris_types:\\n\",\n    \"    plt.scatter(\\n\",\n    \"        data[x_axis][data['class'] == iris_type],\\n\",\n    \"        data[y_axis][data['class'] == iris_type],\\n\",\n    \"        label=iris_type\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"plt.xlabel(x_axis + ' (cm)')\\n\",\n    \"plt.ylabel(y_axis + ' (cm)')\\n\",\n    \"plt.title('Iris Real-World Clusters')\\n\",\n    \"plt.legend()\\n\",\n    \"\\n\",\n    \"# Plot UNSUPERWISED Iris flower classification.\\n\",\n    \"plt.subplot(1, 2, 2)\\n\",\n    \"for centroid_id, centroid in enumerate(centroids):\\n\",\n    \"    current_examples_indices = (closest_centroids_ids == centroid_id).flatten()\\n\",\n    \"    plt.scatter(\\n\",\n    \"        data[x_axis][current_examples_indices],\\n\",\n    \"        data[y_axis][current_examples_indices],\\n\",\n    \"        label='Cluster #' + str(centroid_id)\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"# Plot clusters centroids.\\n\",\n    \"for centroid_id, centroid in enumerate(centroids):\\n\",\n    \"    plt.scatter(centroid[0], centroid[1], c='black', marker='x')\\n\",\n    \"    \\n\",\n    \"plt.xlabel(x_axis + ' (cm)')\\n\",\n    \"plt.ylabel(y_axis + ' (cm)')\\n\",\n    \"plt.title('Iris K-Means Clusters')\\n\",\n    \"plt.legend()\\n\",\n    \"\\n\",\n    \"# Show all subplots.\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/linear_regression/multivariate_linear_regression_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Multivariate Linear Regression Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Linear Regression](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/linear_regression)\\n\",\n    \"> - ⚙️[Linear Regression Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/linear_regression/linear_regression.py)\\n\",\n    \"\\n\",\n    \"**Linear regression** is a linear model, e.g. a model that assumes a linear relationship between the input variables `(x)` and the single output variable `(y)`. More specifically, that output variable `(y)` can be calculated from a linear combination of the input variables `(x)`.\\n\",\n    \"\\n\",\n    \"**Multivariate Linear Regression** is a linear regression that has _more than one_ input parameter and one output label.\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this demo we will build a model that will predict `Happiness.Score` for the countries based on `Economy.GDP.per.Capita` and `Freedom` parameters.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of linear_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of linear_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [plotly](https://plot.ly/python/) - library that we will use for plotting interactive 3D scatters\\n\",\n    \"- [linear_regression](https://github.com/trekhleb/homemade-machine-learning/blob/master/src/linear_regression/linear_regression.py) - custom implementation of linear regression\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script type=\\\"text/javascript\\\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script><script type=\\\"text/javascript\\\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \\\"STIX-Web\\\"}});}</script><script type='text/javascript'>if(!window._Plotly){define('plotly', function(require, exports, module) {/**\\n\",\n       \"* plotly.js v1.42.5\\n\",\n       \"* Copyright 2012-2018, Plotly, Inc.\\n\",\n       \"* All rights reserved.\\n\",\n       \"* Licensed under the MIT license\\n\",\n       \"*/\\n\",\n       \"!function(t){if(\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module)module.exports=t();else if(\\\"function\\\"==typeof define&&define.amd)define([],t);else{(\\\"undefined\\\"!=typeof window?window:\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:this).Plotly=t()}}(function(){return function(){return function t(e,r,n){function i(o,s){if(!r[o]){if(!e[o]){var l=\\\"function\\\"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var c=new Error(\\\"Cannot find module '\\\"+o+\\\"'\\\");throw c.code=\\\"MODULE_NOT_FOUND\\\",c}var u=r[o]={exports:{}};e[o][0].call(u.exports,function(t){return i(e[o][1][t]||t)},u,u.exports,t,e,r,n)}return r[o].exports}for(var a=\\\"function\\\"==typeof require&&require,o=0;o<n.length;o++)i(n[o]);return i}}()({1:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../src/lib\\\"),i={\\\"X,X div\\\":\\\"direction:ltr;font-family:'Open Sans', verdana, arial, sans-serif;margin:0;padding:0;\\\",\\\"X input,X button\\\":\\\"font-family:'Open Sans', verdana, arial, sans-serif;\\\",\\\"X input:focus,X button:focus\\\":\\\"outline:none;\\\",\\\"X a\\\":\\\"text-decoration:none;\\\",\\\"X a:hover\\\":\\\"text-decoration:none;\\\",\\\"X .crisp\\\":\\\"shape-rendering:crispEdges;\\\",\\\"X .user-select-none\\\":\\\"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\\\",\\\"X svg\\\":\\\"overflow:hidden;\\\",\\\"X svg a\\\":\\\"fill:#447adb;\\\",\\\"X svg a:hover\\\":\\\"fill:#3c6dc5;\\\",\\\"X .main-svg\\\":\\\"position:absolute;top:0;left:0;pointer-events:none;\\\",\\\"X .main-svg .draglayer\\\":\\\"pointer-events:all;\\\",\\\"X .cursor-default\\\":\\\"cursor:default;\\\",\\\"X .cursor-pointer\\\":\\\"cursor:pointer;\\\",\\\"X .cursor-crosshair\\\":\\\"cursor:crosshair;\\\",\\\"X .cursor-move\\\":\\\"cursor:move;\\\",\\\"X .cursor-col-resize\\\":\\\"cursor:col-resize;\\\",\\\"X .cursor-row-resize\\\":\\\"cursor:row-resize;\\\",\\\"X .cursor-ns-resize\\\":\\\"cursor:ns-resize;\\\",\\\"X .cursor-ew-resize\\\":\\\"cursor:ew-resize;\\\",\\\"X .cursor-sw-resize\\\":\\\"cursor:sw-resize;\\\",\\\"X .cursor-s-resize\\\":\\\"cursor:s-resize;\\\",\\\"X .cursor-se-resize\\\":\\\"cursor:se-resize;\\\",\\\"X .cursor-w-resize\\\":\\\"cursor:w-resize;\\\",\\\"X .cursor-e-resize\\\":\\\"cursor:e-resize;\\\",\\\"X .cursor-nw-resize\\\":\\\"cursor:nw-resize;\\\",\\\"X .cursor-n-resize\\\":\\\"cursor:n-resize;\\\",\\\"X .cursor-ne-resize\\\":\\\"cursor:ne-resize;\\\",\\\"X .cursor-grab\\\":\\\"cursor:-webkit-grab;cursor:grab;\\\",\\\"X .modebar\\\":\\\"position:absolute;top:2px;right:2px;z-index:1001;\\\",\\\"X .modebar--hover\\\":\\\"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;\\\",\\\"X:hover .modebar--hover\\\":\\\"opacity:1;\\\",\\\"X .modebar-group\\\":\\\"float:left;display:inline-block;box-sizing:border-box;margin-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;margin-left:0px;margin-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:white;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:white;\\\",\\\"X .select-outline-2\\\":\\\"stroke:black;stroke-dasharray:2px 2px;\\\",Y:\\\"font-family:'Open Sans';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,0.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:0.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 a in i){var o=a.replace(/^,/,\\\" ,\\\").replace(/X/g,\\\".js-plotly-plot .plotly\\\").replace(/Y/g,\\\".plotly-notifier\\\");n.addStyleRule(o,i[a])}},{\\\"../src/lib\\\":696}],2:[function(t,e,r){\\\"use strict\\\";e.exports={undo:{width:857.1,height:1e3,path:\\\"m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},home:{width:928.6,height:1e3,path:\\\"m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},\\\"camera-retro\\\":{width:1e3,height:1e3,path:\\\"m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},zoombox:{width:1e3,height:1e3,path:\\\"m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},pan:{width:1e3,height:1e3,path:\\\"m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},zoom_plus:{width:875,height:1e3,path:\\\"m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},zoom_minus:{width:875,height:1e3,path:\\\"m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},autoscale:{width:1e3,height:1e3,path:\\\"m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},tooltip_basic:{width:1500,height:1e3,path:\\\"m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},tooltip_compare:{width:1125,height:1e3,path:\\\"m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},plotlylogo:{width:1542,height:1e3,path:\\\"m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},\\\"z-axis\\\":{width:1e3,height:1e3,path:\\\"m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},\\\"3d_rotate\\\":{width:1e3,height:1e3,path:\\\"m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},camera:{width:1e3,height:1e3,path:\\\"m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},movie:{width:1e3,height:1e3,path:\\\"m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},question:{width:857.1,height:1e3,path:\\\"m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},disk:{width:857.1,height:1e3,path:\\\"m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},lasso:{width:1031,height:1e3,path:\\\"m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},selectbox:{width:1e3,height:1e3,path:\\\"m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},spikeline:{width:1e3,height:1e3,path:\\\"M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z\\\",transform:\\\"matrix(1.5 0 0 -1.5 0 850)\\\"},newplotlylogo:{name:\\\"newplotlylogo\\\",svg:\\\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 132'><defs><style>.cls-1 {fill: #119dff;} .cls-2 {fill: #25fefd;} .cls-3 {fill: #fff;}</style></defs><title>plotly-logomark</title><g id='symbol'><rect class='cls-1' width='132' height='132' rx='6' ry='6'/><circle class='cls-2' cx='78' cy='54' r='6'/><circle class='cls-2' cx='102' cy='30' r='6'/><circle class='cls-2' cx='78' cy='30' r='6'/><circle class='cls-2' cx='54' cy='30' r='6'/><circle class='cls-2' cx='30' cy='30' r='6'/><circle class='cls-2' cx='30' cy='54' r='6'/><path class='cls-3' d='M30,72a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V78A6,6,0,0,0,30,72Z'/><path class='cls-3' d='M78,72a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V78A6,6,0,0,0,78,72Z'/><path class='cls-3' d='M54,48a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V54A6,6,0,0,0,54,48Z'/><path class='cls-3' d='M102,48a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V54A6,6,0,0,0,102,48Z'/></g></svg>\\\"}}},{}],3:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/transforms/aggregate\\\")},{\\\"../src/transforms/aggregate\\\":1155}],4:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/bar\\\")},{\\\"../src/traces/bar\\\":843}],5:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/barpolar\\\")},{\\\"../src/traces/barpolar\\\":855}],6:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/box\\\")},{\\\"../src/traces/box\\\":865}],7:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/components/calendars\\\")},{\\\"../src/components/calendars\\\":568}],8:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/candlestick\\\")},{\\\"../src/traces/candlestick\\\":874}],9:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/carpet\\\")},{\\\"../src/traces/carpet\\\":893}],10:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/choropleth\\\")},{\\\"../src/traces/choropleth\\\":907}],11:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/cone\\\")},{\\\"../src/traces/cone\\\":915}],12:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/contour\\\")},{\\\"../src/traces/contour\\\":930}],13:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/contourcarpet\\\")},{\\\"../src/traces/contourcarpet\\\":941}],14:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/core\\\")},{\\\"../src/core\\\":675}],15:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/transforms/filter\\\")},{\\\"../src/transforms/filter\\\":1156}],16:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/transforms/groupby\\\")},{\\\"../src/transforms/groupby\\\":1157}],17:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/heatmap\\\")},{\\\"../src/traces/heatmap\\\":953}],18:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/heatmapgl\\\")},{\\\"../src/traces/heatmapgl\\\":963}],19:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/histogram\\\")},{\\\"../src/traces/histogram\\\":974}],20:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/histogram2d\\\")},{\\\"../src/traces/histogram2d\\\":981}],21:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/histogram2dcontour\\\")},{\\\"../src/traces/histogram2dcontour\\\":985}],22:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./core\\\");n.register([t(\\\"./bar\\\"),t(\\\"./box\\\"),t(\\\"./heatmap\\\"),t(\\\"./histogram\\\"),t(\\\"./histogram2d\\\"),t(\\\"./histogram2dcontour\\\"),t(\\\"./pie\\\"),t(\\\"./contour\\\"),t(\\\"./scatterternary\\\"),t(\\\"./violin\\\"),t(\\\"./scatter3d\\\"),t(\\\"./surface\\\"),t(\\\"./mesh3d\\\"),t(\\\"./cone\\\"),t(\\\"./streamtube\\\"),t(\\\"./scattergeo\\\"),t(\\\"./choropleth\\\"),t(\\\"./scattergl\\\"),t(\\\"./splom\\\"),t(\\\"./pointcloud\\\"),t(\\\"./heatmapgl\\\"),t(\\\"./parcoords\\\"),t(\\\"./parcats\\\"),t(\\\"./scattermapbox\\\"),t(\\\"./sankey\\\"),t(\\\"./table\\\"),t(\\\"./carpet\\\"),t(\\\"./scattercarpet\\\"),t(\\\"./contourcarpet\\\"),t(\\\"./ohlc\\\"),t(\\\"./candlestick\\\"),t(\\\"./scatterpolar\\\"),t(\\\"./scatterpolargl\\\"),t(\\\"./barpolar\\\")]),n.register([t(\\\"./aggregate\\\"),t(\\\"./filter\\\"),t(\\\"./groupby\\\"),t(\\\"./sort\\\")]),n.register([t(\\\"./calendars\\\")]),e.exports=n},{\\\"./aggregate\\\":3,\\\"./bar\\\":4,\\\"./barpolar\\\":5,\\\"./box\\\":6,\\\"./calendars\\\":7,\\\"./candlestick\\\":8,\\\"./carpet\\\":9,\\\"./choropleth\\\":10,\\\"./cone\\\":11,\\\"./contour\\\":12,\\\"./contourcarpet\\\":13,\\\"./core\\\":14,\\\"./filter\\\":15,\\\"./groupby\\\":16,\\\"./heatmap\\\":17,\\\"./heatmapgl\\\":18,\\\"./histogram\\\":19,\\\"./histogram2d\\\":20,\\\"./histogram2dcontour\\\":21,\\\"./mesh3d\\\":23,\\\"./ohlc\\\":24,\\\"./parcats\\\":25,\\\"./parcoords\\\":26,\\\"./pie\\\":27,\\\"./pointcloud\\\":28,\\\"./sankey\\\":29,\\\"./scatter3d\\\":30,\\\"./scattercarpet\\\":31,\\\"./scattergeo\\\":32,\\\"./scattergl\\\":33,\\\"./scattermapbox\\\":34,\\\"./scatterpolar\\\":35,\\\"./scatterpolargl\\\":36,\\\"./scatterternary\\\":37,\\\"./sort\\\":38,\\\"./splom\\\":39,\\\"./streamtube\\\":40,\\\"./surface\\\":41,\\\"./table\\\":42,\\\"./violin\\\":43}],23:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/mesh3d\\\")},{\\\"../src/traces/mesh3d\\\":990}],24:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/ohlc\\\")},{\\\"../src/traces/ohlc\\\":995}],25:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/parcats\\\")},{\\\"../src/traces/parcats\\\":1004}],26:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/parcoords\\\")},{\\\"../src/traces/parcoords\\\":1013}],27:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/pie\\\")},{\\\"../src/traces/pie\\\":1024}],28:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/pointcloud\\\")},{\\\"../src/traces/pointcloud\\\":1033}],29:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/sankey\\\")},{\\\"../src/traces/sankey\\\":1039}],30:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scatter3d\\\")},{\\\"../src/traces/scatter3d\\\":1075}],31:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scattercarpet\\\")},{\\\"../src/traces/scattercarpet\\\":1081}],32:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scattergeo\\\")},{\\\"../src/traces/scattergeo\\\":1088}],33:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scattergl\\\")},{\\\"../src/traces/scattergl\\\":1096}],34:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scattermapbox\\\")},{\\\"../src/traces/scattermapbox\\\":1102}],35:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scatterpolar\\\")},{\\\"../src/traces/scatterpolar\\\":1109}],36:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scatterpolargl\\\")},{\\\"../src/traces/scatterpolargl\\\":1113}],37:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scatterternary\\\")},{\\\"../src/traces/scatterternary\\\":1119}],38:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/transforms/sort\\\")},{\\\"../src/transforms/sort\\\":1159}],39:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/splom\\\")},{\\\"../src/traces/splom\\\":1124}],40:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/streamtube\\\")},{\\\"../src/traces/streamtube\\\":1129}],41:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/surface\\\")},{\\\"../src/traces/surface\\\":1134}],42:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/table\\\")},{\\\"../src/traces/table\\\":1142}],43:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/violin\\\")},{\\\"../src/traces/violin\\\":1150}],44:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){t=t||document.body,e=e||{};var r=[.01,1/0];\\\"distanceLimits\\\"in e&&(r[0]=e.distanceLimits[0],r[1]=e.distanceLimits[1]);\\\"zoomMin\\\"in e&&(r[0]=e.zoomMin);\\\"zoomMax\\\"in e&&(r[1]=e.zoomMax);var c=i({center:e.center||[0,0,0],up:e.up||[0,1,0],eye:e.eye||[0,0,10],mode:e.mode||\\\"orbit\\\",distanceLimits:r}),u=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],f=0,h=t.clientWidth,p=t.clientHeight,d={view:c,element:t,delay:e.delay||16,rotateSpeed:e.rotateSpeed||1,zoomSpeed:e.zoomSpeed||1,translateSpeed:e.translateSpeed||1,flipX:!!e.flipX,flipY:!!e.flipY,modes:c.modes,tick:function(){var e=n(),r=this.delay;c.idle(e-r),c.flush(e-(100+2*r));var i=e-2*r;c.recalcMatrix(i);for(var a=!0,o=c.computedMatrix,s=0;s<16;++s)a=a&&u[s]===o[s],u[s]=o[s];var l=t.clientWidth===h&&t.clientHeight===p;return h=t.clientWidth,p=t.clientHeight,a?!l:(f=Math.exp(c.computedRadius[0]),!0)},lookAt:function(t,e,r){c.lookAt(c.lastT(),t,e,r)},rotate:function(t,e,r){c.rotate(c.lastT(),t,e,r)},pan:function(t,e,r){c.pan(c.lastT(),t,e,r)},translate:function(t,e,r){c.translate(c.lastT(),t,e,r)}};Object.defineProperties(d,{matrix:{get:function(){return c.computedMatrix},set:function(t){return c.setMatrix(c.lastT(),t),c.computedMatrix},enumerable:!0},mode:{get:function(){return c.getMode()},set:function(t){return c.setMode(t),c.getMode()},enumerable:!0},center:{get:function(){return c.computedCenter},set:function(t){return c.lookAt(c.lastT(),t),c.computedCenter},enumerable:!0},eye:{get:function(){return c.computedEye},set:function(t){return c.lookAt(c.lastT(),null,t),c.computedEye},enumerable:!0},up:{get:function(){return c.computedUp},set:function(t){return c.lookAt(c.lastT(),null,null,t),c.computedUp},enumerable:!0},distance:{get:function(){return f},set:function(t){return c.setDistance(c.lastT(),t),t},enumerable:!0},distanceLimits:{get:function(){return c.getDistanceLimits(r)},set:function(t){return c.setDistanceLimits(t),t},enumerable:!0}}),t.addEventListener(\\\"contextmenu\\\",function(t){return t.preventDefault(),!1});var g=0,v=0,m={shift:!1,control:!1,alt:!1,meta:!1};function y(e,r,i,a){var o=1/t.clientHeight,s=o*(r-g),l=o*(i-v),u=d.flipX?1:-1,h=d.flipY?1:-1,p=Math.PI*d.rotateSpeed,y=n();if(1&e)a.shift?c.rotate(y,0,0,-s*p):c.rotate(y,u*p*s,-h*p*l,0);else if(2&e)c.pan(y,-d.translateSpeed*s*f,d.translateSpeed*l*f,0);else if(4&e){var x=d.zoomSpeed*l/window.innerHeight*(y-c.lastT())*50;c.pan(y,0,0,f*(Math.exp(x)-1))}g=r,v=i,m=a}return a(t,y),t.addEventListener(\\\"touchstart\\\",function(e){var r=s(e.changedTouches[0],t);y(0,r[0],r[1],m),y(1,r[0],r[1],m),e.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\\\"touchmove\\\",function(e){var r=s(e.changedTouches[0],t);y(1,r[0],r[1],m),e.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\\\"touchend\\\",function(e){s(e.changedTouches[0],t),y(0,g,v,m),e.preventDefault()},!!l&&{passive:!1}),o(t,function(t,e,r){var i=d.flipX?1:-1,a=d.flipY?1:-1,o=n();if(Math.abs(t)>Math.abs(e))c.rotate(o,0,0,-t*i*Math.PI*d.rotateSpeed/window.innerWidth);else{var s=d.zoomSpeed*a*e/window.innerHeight*(o-c.lastT())/100;c.pan(o,0,0,f*(Math.exp(s)-1))}},!0),d};var n=t(\\\"right-now\\\"),i=t(\\\"3d-view\\\"),a=t(\\\"mouse-change\\\"),o=t(\\\"mouse-wheel\\\"),s=t(\\\"mouse-event-offset\\\"),l=t(\\\"has-passive-events\\\")},{\\\"3d-view\\\":45,\\\"has-passive-events\\\":394,\\\"mouse-change\\\":418,\\\"mouse-event-offset\\\":419,\\\"mouse-wheel\\\":421,\\\"right-now\\\":480}],45:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],c=t.mode||\\\"turntable\\\",u=n(),f=i(),h=a();return u.setDistanceLimits(l[0],l[1]),u.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),new o({turntable:u,orbit:f,matrix:h},c)};var n=t(\\\"turntable-camera-controller\\\"),i=t(\\\"orbit-camera-controller\\\"),a=t(\\\"matrix-camera-controller\\\");function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map(function(e){return t[e]}),this._mode=e,this._active=t[e],this._active||(this._mode=\\\"turntable\\\",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;[[\\\"flush\\\",1],[\\\"idle\\\",1],[\\\"lookAt\\\",4],[\\\"rotate\\\",4],[\\\"pan\\\",4],[\\\"translate\\\",4],[\\\"setMatrix\\\",2],[\\\"setDistanceLimits\\\",2],[\\\"setDistance\\\",2]].forEach(function(t){for(var e=t[0],r=[],n=0;n<t[1];++n)r.push(\\\"a\\\"+n);var i=\\\"var cc=this._controllerList;for(var i=0;i<cc.length;++i){cc[i].\\\"+t[0]+\\\"(\\\"+r.join()+\\\")}\\\";s[e]=Function.apply(null,r.concat(i))}),s.recalcMatrix=function(t){this._active.recalcMatrix(t)},s.getDistance=function(t){return this._active.getDistance(t)},s.getDistanceLimits=function(t){return this._active.getDistanceLimits(t)},s.lastT=function(){return this._active.lastT()},s.setMode=function(t){if(t!==this._mode){var e=this._controllerNames.indexOf(t);if(!(e<0)){var r=this._active,n=this._controllerList[e],i=Math.max(r.lastT(),n.lastT());r.recalcMatrix(i),n.setMatrix(i,r.computedMatrix),this._active=n,this._mode=t,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}}},s.getMode=function(){return this._mode}},{\\\"matrix-camera-controller\\\":416,\\\"orbit-camera-controller\\\":439,\\\"turntable-camera-controller\\\":519}],46:[function(t,e,r){var n,i;n=this,i=function(t,e,r,n){\\\"use strict\\\";t.sankey=function(){var t={},i=24,a=8,o=[1,1],s=[],l=[],c=2/3;function u(){function t(t,e){return t.source.y-e.source.y||t.originalIndex-e.originalIndex}function e(t,e){return t.target.y-e.target.y||t.originalIndex-e.originalIndex}s.forEach(function(r){r.sourceLinks.sort(e),r.targetLinks.sort(t)}),s.forEach(function(t){var e=0,r=0;t.sourceLinks.forEach(function(t){t.sy=e,e+=t.dy}),t.targetLinks.forEach(function(t){t.ty=r,r+=t.dy})})}function f(t){return t.y+t.dy/2}function h(t){return t.value}return t.nodeWidth=function(e){return arguments.length?(i=+e,t):i},t.nodePadding=function(e){return arguments.length?(a=+e,t):a},t.nodes=function(e){return arguments.length?(s=e,t):s},t.links=function(e){return arguments.length?(l=e,t):l},t.size=function(e){return arguments.length?(o=e,t):o},t.layout=function(n){return s.forEach(function(t){t.sourceLinks=[],t.targetLinks=[]}),l.forEach(function(t,e){var r=t.source,n=t.target;\\\"number\\\"==typeof r&&(r=t.source=s[t.source]),\\\"number\\\"==typeof n&&(n=t.target=s[t.target]),t.originalIndex=e,r.sourceLinks.push(t),n.targetLinks.push(t)}),s.forEach(function(t){t.value=Math.max(e.sum(t.sourceLinks,h),e.sum(t.targetLinks,h))}),function(){for(var t,e,r=s,n=0;r.length;)t=[],r.forEach(function(e){e.x=n,e.dx=i,e.sourceLinks.forEach(function(e){t.indexOf(e.target)<0&&t.push(e.target)})}),r=t,++n;(function(t){s.forEach(function(e){e.sourceLinks.length||(e.x=t-1)})})(n),e=(o[0]-i)/(n-1),s.forEach(function(t){t.x*=e})}(),function(t){var n=r.nest().key(function(t){return t.x}).sortKeys(e.ascending).entries(s).map(function(t){return t.values});(function(){var t=e.max(n,function(t){return t.length}),r=c*o[1]/(t-1);a>r&&(a=r);var i=e.min(n,function(t){return(o[1]-(t.length-1)*a)/e.sum(t,h)});n.forEach(function(t){t.forEach(function(t,e){t.y=e,t.dy=t.value*i})}),l.forEach(function(t){t.dy=t.value*i})})(),d();for(var i=1;t>0;--t)p(i*=.99),d(),u(i),d();function u(t){function r(t){return f(t.source)*t.value}n.forEach(function(n){n.forEach(function(n){if(n.targetLinks.length){var i=e.sum(n.targetLinks,r)/e.sum(n.targetLinks,h);n.y+=(i-f(n))*t}})})}function p(t){function r(t){return f(t.target)*t.value}n.slice().reverse().forEach(function(n){n.forEach(function(n){if(n.sourceLinks.length){var i=e.sum(n.sourceLinks,r)/e.sum(n.sourceLinks,h);n.y+=(i-f(n))*t}})})}function d(){n.forEach(function(t){var e,r,n,i=0,s=t.length;for(t.sort(g),n=0;n<s;++n)e=t[n],(r=i-e.y)>0&&(e.y+=r),i=e.y+e.dy+a;if((r=i-a-o[1])>0)for(i=e.y-=r,n=s-2;n>=0;--n)e=t[n],(r=e.y+e.dy+a-i)>0&&(e.y-=r),i=e.y})}function g(t,e){return t.y-e.y}}(n),u(),t},t.relayout=function(){return u(),t},t.link=function(){var t=.5;function e(e){var r=e.source.x+e.source.dx,i=e.target.x,a=n.interpolateNumber(r,i),o=a(t),s=a(1-t),l=e.source.y+e.sy,c=l+e.dy,u=e.target.y+e.ty,f=u+e.dy;return\\\"M\\\"+r+\\\",\\\"+l+\\\"C\\\"+o+\\\",\\\"+l+\\\" \\\"+s+\\\",\\\"+u+\\\" \\\"+i+\\\",\\\"+u+\\\"L\\\"+i+\\\",\\\"+f+\\\"C\\\"+s+\\\",\\\"+f+\\\" \\\"+o+\\\",\\\"+c+\\\" \\\"+r+\\\",\\\"+c+\\\"Z\\\"}return e.curvature=function(r){return arguments.length?(t=+r,e):t},e},t},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?i(r,t(\\\"d3-array\\\"),t(\\\"d3-collection\\\"),t(\\\"d3-interpolate\\\")):i(n.d3=n.d3||{},n.d3,n.d3,n.d3)},{\\\"d3-array\\\":140,\\\"d3-collection\\\":141,\\\"d3-interpolate\\\":145}],47:[function(t,e,r){\\\"use strict\\\";var n=\\\"undefined\\\"==typeof WeakMap?t(\\\"weak-map\\\"):WeakMap,i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=new n;e.exports=function(t){var e=o.get(t),r=e&&(e._triangleBuffer.handle||e._triangleBuffer.buffer);if(!r||!t.isBuffer(r)){var n=i(t,new Float32Array([-1,-1,-1,4,4,-1]));(e=a(t,[{buffer:n,type:t.FLOAT,size:2}]))._triangleBuffer=n,o.set(t,e)}e.bind(),t.drawArrays(t.TRIANGLES,0,3),e.unbind()}},{\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310,\\\"weak-map\\\":529}],48:[function(t,e,r){e.exports=function(t){var e=0,r=0,n=0,i=0;return t.map(function(t){var a=(t=t.slice())[0],o=a.toUpperCase();if(a!=o)switch(t[0]=o,a){case\\\"a\\\":t[6]+=n,t[7]+=i;break;case\\\"v\\\":t[1]+=i;break;case\\\"h\\\":t[1]+=n;break;default:for(var s=1;s<t.length;)t[s++]+=n,t[s++]+=i}switch(o){case\\\"Z\\\":n=e,i=r;break;case\\\"H\\\":n=t[1];break;case\\\"V\\\":i=t[1];break;case\\\"M\\\":n=e=t[1],i=r=t[2];break;default:n=t[t.length-2],i=t[t.length-1]}return t})}},{}],49:[function(t,e,r){var n=t(\\\"pad-left\\\");e.exports=function(t,e,r){e=\\\"number\\\"==typeof e?e:1,r=r||\\\": \\\";var i=t.split(/\\\\r?\\\\n/),a=String(i.length+e-1).length;return i.map(function(t,i){var o=i+e,s=String(o).length,l=n(o,a-s);return l+r+t}).join(\\\"\\\\n\\\")}},{\\\"pad-left\\\":440}],50:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.length;if(0===e)return[];if(1===e)return[0];for(var r=t[0].length,n=[t[0]],a=[0],o=1;o<e;++o)if(n.push(t[o]),i(n,r)){if(a.push(o),a.length===r+1)return a}else n.pop();return a};var n=t(\\\"robust-orientation\\\");function i(t,e){for(var r=new Array(e+1),i=0;i<t.length;++i)r[i]=t[i];for(i=0;i<=t.length;++i){for(var a=t.length;a<=e;++a){for(var o=new Array(e),s=0;s<e;++s)o[s]=Math.pow(a+1-i,s);r[a]=o}if(n.apply(void 0,r))return!0}return!1}},{\\\"robust-orientation\\\":486}],51:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return n(e).filter(function(r){for(var n=new Array(r.length),a=0;a<r.length;++a)n[a]=e[r[a]];return i(n)*t<1})};var n=t(\\\"delaunay-triangulate\\\"),i=t(\\\"circumradius\\\")},{circumradius:102,\\\"delaunay-triangulate\\\":150}],52:[function(t,e,r){e.exports=function(t,e){return i(n(t,e))};var n=t(\\\"alpha-complex\\\"),i=t(\\\"simplicial-complex-boundary\\\")},{\\\"alpha-complex\\\":51,\\\"simplicial-complex-boundary\\\":493}],53:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){if(!t||null==t.length)throw Error(\\\"Argument should be an array\\\");e=null==e?1:Math.floor(e);for(var r=Array(2*e),n=0;n<e;n++){for(var i=-1/0,a=1/0,o=n,s=t.length;o<s;o+=e)t[o]>i&&(i=t[o]),t[o]<a&&(a=t[o]);r[n]=a,r[e+n]=i}return r}},{}],54:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"array-bounds\\\");e.exports=function(t,e,r){if(!t||null==t.length)throw Error(\\\"Argument should be an array\\\");null==e&&(e=1);null==r&&(r=n(t,e));for(var i=0;i<e;i++){var a=r[e+i],o=r[i],s=i,l=t.length;if(a===1/0&&o===-1/0)for(s=i;s<l;s+=e)t[s]=t[s]===a?1:t[s]===o?0:.5;else if(a===1/0)for(s=i;s<l;s+=e)t[s]=t[s]===a?1:0;else if(o===-1/0)for(s=i;s<l;s+=e)t[s]=t[s]===o?0:1;else{var c=a-o;for(s=i;s<l;s+=e)t[s]=0===c?.5:(t[s]-o)/c}}return t}},{\\\"array-bounds\\\":53}],55:[function(t,e,r){e.exports=function(t,e){var r=\\\"number\\\"==typeof t,n=\\\"number\\\"==typeof e;r&&!n?(e=t,t=0):r||n||(t=0,e=0);var i=(e|=0)-(t|=0);if(i<0)throw new Error(\\\"array length must be positive\\\");for(var a=new Array(i),o=0,s=t;o<i;o++,s++)a[o]=s;return a}},{}],56:[function(t,e,r){(function(r){\\\"use strict\\\";function n(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0}function i(t){return r.Buffer&&\\\"function\\\"==typeof r.Buffer.isBuffer?r.Buffer.isBuffer(t):!(null==t||!t._isBuffer)}var a=t(\\\"util/\\\"),o=Object.prototype.hasOwnProperty,s=Array.prototype.slice,l=\\\"foo\\\"===function(){}.name;function c(t){return Object.prototype.toString.call(t)}function u(t){return!i(t)&&(\\\"function\\\"==typeof r.ArrayBuffer&&(\\\"function\\\"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):!!t&&(t instanceof DataView||!!(t.buffer&&t.buffer instanceof ArrayBuffer))))}var f=e.exports=m,h=/\\\\s*function\\\\s+([^\\\\(\\\\s]*)\\\\s*/;function p(t){if(a.isFunction(t)){if(l)return t.name;var e=t.toString().match(h);return e&&e[1]}}function d(t,e){return\\\"string\\\"==typeof t?t.length<e?t:t.slice(0,e):t}function g(t){if(l||!a.isFunction(t))return a.inspect(t);var e=p(t);return\\\"[Function\\\"+(e?\\\": \\\"+e:\\\"\\\")+\\\"]\\\"}function v(t,e,r,n,i){throw new f.AssertionError({message:r,actual:t,expected:e,operator:n,stackStartFunction:i})}function m(t,e){t||v(t,!0,e,\\\"==\\\",f.ok)}function y(t,e,r,o){if(t===e)return!0;if(i(t)&&i(e))return 0===n(t,e);if(a.isDate(t)&&a.isDate(e))return t.getTime()===e.getTime();if(a.isRegExp(t)&&a.isRegExp(e))return t.source===e.source&&t.global===e.global&&t.multiline===e.multiline&&t.lastIndex===e.lastIndex&&t.ignoreCase===e.ignoreCase;if(null!==t&&\\\"object\\\"==typeof t||null!==e&&\\\"object\\\"==typeof e){if(u(t)&&u(e)&&c(t)===c(e)&&!(t instanceof Float32Array||t instanceof Float64Array))return 0===n(new Uint8Array(t.buffer),new Uint8Array(e.buffer));if(i(t)!==i(e))return!1;var l=(o=o||{actual:[],expected:[]}).actual.indexOf(t);return-1!==l&&l===o.expected.indexOf(e)||(o.actual.push(t),o.expected.push(e),function(t,e,r,n){if(null==t||null==e)return!1;if(a.isPrimitive(t)||a.isPrimitive(e))return t===e;if(r&&Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;var i=x(t),o=x(e);if(i&&!o||!i&&o)return!1;if(i)return t=s.call(t),e=s.call(e),y(t,e,r);var l,c,u=w(t),f=w(e);if(u.length!==f.length)return!1;for(u.sort(),f.sort(),c=u.length-1;c>=0;c--)if(u[c]!==f[c])return!1;for(c=u.length-1;c>=0;c--)if(l=u[c],!y(t[l],e[l],r,n))return!1;return!0}(t,e,r,o))}return r?t===e:t==e}function x(t){return\\\"[object Arguments]\\\"==Object.prototype.toString.call(t)}function b(t,e){if(!t||!e)return!1;if(\\\"[object RegExp]\\\"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function _(t,e,r,n){var i;if(\\\"function\\\"!=typeof e)throw new TypeError('\\\"block\\\" argument must be a function');\\\"string\\\"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?\\\" (\\\"+r.name+\\\").\\\":\\\".\\\")+(n?\\\" \\\"+n:\\\".\\\"),t&&!i&&v(i,r,\\\"Missing expected exception\\\"+n);var o=\\\"string\\\"==typeof n,s=!t&&i&&!r;if((!t&&a.isError(i)&&o&&b(i,r)||s)&&v(i,r,\\\"Got unwanted exception\\\"+n),t&&i&&r&&!b(i,r)||!t&&i)throw i}f.AssertionError=function(t){var e;this.name=\\\"AssertionError\\\",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=d(g((e=this).actual),128)+\\\" \\\"+e.operator+\\\" \\\"+d(g(e.expected),128),this.generatedMessage=!0);var r=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,r);else{var n=new Error;if(n.stack){var i=n.stack,a=p(r),o=i.indexOf(\\\"\\\\n\\\"+a);if(o>=0){var s=i.indexOf(\\\"\\\\n\\\",o+1);i=i.substring(s+1)}this.stack=i}}},a.inherits(f.AssertionError,Error),f.fail=v,f.ok=m,f.equal=function(t,e,r){t!=e&&v(t,e,r,\\\"==\\\",f.equal)},f.notEqual=function(t,e,r){t==e&&v(t,e,r,\\\"!=\\\",f.notEqual)},f.deepEqual=function(t,e,r){y(t,e,!1)||v(t,e,r,\\\"deepEqual\\\",f.deepEqual)},f.deepStrictEqual=function(t,e,r){y(t,e,!0)||v(t,e,r,\\\"deepStrictEqual\\\",f.deepStrictEqual)},f.notDeepEqual=function(t,e,r){y(t,e,!1)&&v(t,e,r,\\\"notDeepEqual\\\",f.notDeepEqual)},f.notDeepStrictEqual=function t(e,r,n){y(e,r,!0)&&v(e,r,n,\\\"notDeepStrictEqual\\\",t)},f.strictEqual=function(t,e,r){t!==e&&v(t,e,r,\\\"===\\\",f.strictEqual)},f.notStrictEqual=function(t,e,r){t===e&&v(t,e,r,\\\"!==\\\",f.notStrictEqual)},f.throws=function(t,e,r){_(!0,t,e,r)},f.doesNotThrow=function(t,e,r){_(!1,t,e,r)},f.ifError=function(t){if(t)throw t};var w=Object.keys||function(t){var e=[];for(var r in t)o.call(t,r)&&e.push(r);return e}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"util/\\\":59}],57:[function(t,e,r){\\\"function\\\"==typeof Object.create?e.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],58:[function(t,e,r){e.exports=function(t){return t&&\\\"object\\\"==typeof t&&\\\"function\\\"==typeof t.copy&&\\\"function\\\"==typeof t.fill&&\\\"function\\\"==typeof t.readUInt8}},{}],59:[function(t,e,r){(function(e,n){var i=/%[sdj%]/g;r.format=function(t){if(!m(t)){for(var e=[],r=0;r<arguments.length;r++)e.push(s(arguments[r]));return e.join(\\\" \\\")}r=1;for(var n=arguments,a=n.length,o=String(t).replace(i,function(t){if(\\\"%%\\\"===t)return\\\"%\\\";if(r>=a)return t;switch(t){case\\\"%s\\\":return String(n[r++]);case\\\"%d\\\":return Number(n[r++]);case\\\"%j\\\":try{return JSON.stringify(n[r++])}catch(t){return\\\"[Circular]\\\"}default:return t}}),l=n[r];r<a;l=n[++r])g(l)||!b(l)?o+=\\\" \\\"+l:o+=\\\" \\\"+s(l);return o},r.deprecate=function(t,i){if(y(n.process))return function(){return r.deprecate(t,i).apply(this,arguments)};if(!0===e.noDeprecation)return t;var a=!1;return function(){if(!a){if(e.throwDeprecation)throw new Error(i);e.traceDeprecation?console.trace(i):console.error(i),a=!0}return t.apply(this,arguments)}};var a,o={};function s(t,e){var n={seen:[],stylize:c};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),d(e)?n.showHidden=e:e&&r._extend(n,e),y(n.showHidden)&&(n.showHidden=!1),y(n.depth)&&(n.depth=2),y(n.colors)&&(n.colors=!1),y(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),u(n,t,n.depth)}function l(t,e){var r=s.styles[e];return r?\\\"\\\\x1b[\\\"+s.colors[r][0]+\\\"m\\\"+t+\\\"\\\\x1b[\\\"+s.colors[r][1]+\\\"m\\\":t}function c(t,e){return t}function u(t,e,n){if(t.customInspect&&e&&k(e.inspect)&&e.inspect!==r.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(n,t);return m(i)||(i=u(t,i,n)),i}var a=function(t,e){if(y(e))return t.stylize(\\\"undefined\\\",\\\"undefined\\\");if(m(e)){var r=\\\"'\\\"+JSON.stringify(e).replace(/^\\\"|\\\"$/g,\\\"\\\").replace(/'/g,\\\"\\\\\\\\'\\\").replace(/\\\\\\\\\\\"/g,'\\\"')+\\\"'\\\";return t.stylize(r,\\\"string\\\")}if(v(e))return t.stylize(\\\"\\\"+e,\\\"number\\\");if(d(e))return t.stylize(\\\"\\\"+e,\\\"boolean\\\");if(g(e))return t.stylize(\\\"null\\\",\\\"null\\\")}(t,e);if(a)return a;var o=Object.keys(e),s=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(e)),w(e)&&(o.indexOf(\\\"message\\\")>=0||o.indexOf(\\\"description\\\")>=0))return f(e);if(0===o.length){if(k(e)){var l=e.name?\\\": \\\"+e.name:\\\"\\\";return t.stylize(\\\"[Function\\\"+l+\\\"]\\\",\\\"special\\\")}if(x(e))return t.stylize(RegExp.prototype.toString.call(e),\\\"regexp\\\");if(_(e))return t.stylize(Date.prototype.toString.call(e),\\\"date\\\");if(w(e))return f(e)}var c,b=\\\"\\\",M=!1,A=[\\\"{\\\",\\\"}\\\"];(p(e)&&(M=!0,A=[\\\"[\\\",\\\"]\\\"]),k(e))&&(b=\\\" [Function\\\"+(e.name?\\\": \\\"+e.name:\\\"\\\")+\\\"]\\\");return x(e)&&(b=\\\" \\\"+RegExp.prototype.toString.call(e)),_(e)&&(b=\\\" \\\"+Date.prototype.toUTCString.call(e)),w(e)&&(b=\\\" \\\"+f(e)),0!==o.length||M&&0!=e.length?n<0?x(e)?t.stylize(RegExp.prototype.toString.call(e),\\\"regexp\\\"):t.stylize(\\\"[Object]\\\",\\\"special\\\"):(t.seen.push(e),c=M?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o<s;++o)S(e,String(o))?a.push(h(t,e,r,n,String(o),!0)):a.push(\\\"\\\");return i.forEach(function(i){i.match(/^\\\\d+$/)||a.push(h(t,e,r,n,i,!0))}),a}(t,e,n,s,o):o.map(function(r){return h(t,e,n,s,r,M)}),t.seen.pop(),function(t,e,r){if(t.reduce(function(t,e){return 0,e.indexOf(\\\"\\\\n\\\")>=0&&0,t+e.replace(/\\\\u001b\\\\[\\\\d\\\\d?m/g,\\\"\\\").length+1},0)>60)return r[0]+(\\\"\\\"===e?\\\"\\\":e+\\\"\\\\n \\\")+\\\" \\\"+t.join(\\\",\\\\n  \\\")+\\\" \\\"+r[1];return r[0]+e+\\\" \\\"+t.join(\\\", \\\")+\\\" \\\"+r[1]}(c,b,A)):A[0]+b+A[1]}function f(t){return\\\"[\\\"+Error.prototype.toString.call(t)+\\\"]\\\"}function h(t,e,r,n,i,a){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=l.set?t.stylize(\\\"[Getter/Setter]\\\",\\\"special\\\"):t.stylize(\\\"[Getter]\\\",\\\"special\\\"):l.set&&(s=t.stylize(\\\"[Setter]\\\",\\\"special\\\")),S(n,i)||(o=\\\"[\\\"+i+\\\"]\\\"),s||(t.seen.indexOf(l.value)<0?(s=g(r)?u(t,l.value,null):u(t,l.value,r-1)).indexOf(\\\"\\\\n\\\")>-1&&(s=a?s.split(\\\"\\\\n\\\").map(function(t){return\\\"  \\\"+t}).join(\\\"\\\\n\\\").substr(2):\\\"\\\\n\\\"+s.split(\\\"\\\\n\\\").map(function(t){return\\\"   \\\"+t}).join(\\\"\\\\n\\\")):s=t.stylize(\\\"[Circular]\\\",\\\"special\\\")),y(o)){if(a&&i.match(/^\\\\d+$/))return s;(o=JSON.stringify(\\\"\\\"+i)).match(/^\\\"([a-zA-Z_][a-zA-Z_0-9]*)\\\"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,\\\"name\\\")):(o=o.replace(/'/g,\\\"\\\\\\\\'\\\").replace(/\\\\\\\\\\\"/g,'\\\"').replace(/(^\\\"|\\\"$)/g,\\\"'\\\"),o=t.stylize(o,\\\"string\\\"))}return o+\\\": \\\"+s}function p(t){return Array.isArray(t)}function d(t){return\\\"boolean\\\"==typeof t}function g(t){return null===t}function v(t){return\\\"number\\\"==typeof t}function m(t){return\\\"string\\\"==typeof t}function y(t){return void 0===t}function x(t){return b(t)&&\\\"[object RegExp]\\\"===M(t)}function b(t){return\\\"object\\\"==typeof t&&null!==t}function _(t){return b(t)&&\\\"[object Date]\\\"===M(t)}function w(t){return b(t)&&(\\\"[object Error]\\\"===M(t)||t instanceof Error)}function k(t){return\\\"function\\\"==typeof t}function M(t){return Object.prototype.toString.call(t)}function A(t){return t<10?\\\"0\\\"+t.toString(10):t.toString(10)}r.debuglog=function(t){if(y(a)&&(a=e.env.NODE_DEBUG||\\\"\\\"),t=t.toUpperCase(),!o[t])if(new RegExp(\\\"\\\\\\\\b\\\"+t+\\\"\\\\\\\\b\\\",\\\"i\\\").test(a)){var n=e.pid;o[t]=function(){var e=r.format.apply(r,arguments);console.error(\\\"%s %d: %s\\\",t,n,e)}}else o[t]=function(){};return o[t]},r.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\\\"},r.isArray=p,r.isBoolean=d,r.isNull=g,r.isNullOrUndefined=function(t){return null==t},r.isNumber=v,r.isString=m,r.isSymbol=function(t){return\\\"symbol\\\"==typeof t},r.isUndefined=y,r.isRegExp=x,r.isObject=b,r.isDate=_,r.isError=w,r.isFunction=k,r.isPrimitive=function(t){return null===t||\\\"boolean\\\"==typeof t||\\\"number\\\"==typeof t||\\\"string\\\"==typeof t||\\\"symbol\\\"==typeof t||\\\"undefined\\\"==typeof t},r.isBuffer=t(\\\"./support/isBuffer\\\");var T=[\\\"Jan\\\",\\\"Feb\\\",\\\"Mar\\\",\\\"Apr\\\",\\\"May\\\",\\\"Jun\\\",\\\"Jul\\\",\\\"Aug\\\",\\\"Sep\\\",\\\"Oct\\\",\\\"Nov\\\",\\\"Dec\\\"];function S(t,e){return Object.prototype.hasOwnProperty.call(t,e)}r.log=function(){var t,e;console.log(\\\"%s - %s\\\",(t=new Date,e=[A(t.getHours()),A(t.getMinutes()),A(t.getSeconds())].join(\\\":\\\"),[t.getDate(),T[t.getMonth()],e].join(\\\" \\\")),r.format.apply(r,arguments))},r.inherits=t(\\\"inherits\\\"),r._extend=function(t,e){if(!e||!b(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this,t(\\\"_process\\\"),\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"./support/isBuffer\\\":58,_process:465,inherits:57}],60:[function(t,e,r){e.exports=function(t){return atob(t)}},{}],61:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r=e.length,a=new Array(r+1),o=0;o<r;++o){for(var s=new Array(r+1),l=0;l<=r;++l)s[l]=t[l][o];a[o]=s}a[r]=new Array(r+1);for(var o=0;o<=r;++o)a[r][o]=1;for(var c=new Array(r+1),o=0;o<r;++o)c[o]=e[o];c[r]=1;var u=n(a,c),f=i(u[r+1]);0===f&&(f=1);for(var h=new Array(r+1),o=0;o<=r;++o)h[o]=i(u[o])/f;return h};var n=t(\\\"robust-linear-solve\\\");function i(t){for(var e=0,r=0;r<t.length;++r)e+=t[r];return e}},{\\\"robust-linear-solve\\\":485}],62:[function(t,e,r){\\\"use strict\\\";r.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},r.toByteArray=function(t){for(var e,r=c(t),n=r[0],o=r[1],s=new a(function(t,e,r){return 3*(e+r)/4-r}(0,n,o)),l=0,u=o>0?n-4:n,f=0;f<u;f+=4)e=i[t.charCodeAt(f)]<<18|i[t.charCodeAt(f+1)]<<12|i[t.charCodeAt(f+2)]<<6|i[t.charCodeAt(f+3)],s[l++]=e>>16&255,s[l++]=e>>8&255,s[l++]=255&e;2===o&&(e=i[t.charCodeAt(f)]<<2|i[t.charCodeAt(f+1)]>>4,s[l++]=255&e);1===o&&(e=i[t.charCodeAt(f)]<<10|i[t.charCodeAt(f+1)]<<4|i[t.charCodeAt(f+2)]>>2,s[l++]=e>>8&255,s[l++]=255&e);return s},r.fromByteArray=function(t){for(var e,r=t.length,i=r%3,a=[],o=0,s=r-i;o<s;o+=16383)a.push(u(t,o,o+16383>s?s:o+16383));1===i?(e=t[r-1],a.push(n[e>>2]+n[e<<4&63]+\\\"==\\\")):2===i&&(e=(t[r-2]<<8)+t[r-1],a.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+\\\"=\\\"));return a.join(\\\"\\\")};for(var n=[],i=[],a=\\\"undefined\\\"!=typeof Uint8Array?Uint8Array:Array,o=\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\",s=0,l=o.length;s<l;++s)n[s]=o[s],i[o.charCodeAt(s)]=s;function c(t){var e=t.length;if(e%4>0)throw new Error(\\\"Invalid string. Length must be a multiple of 4\\\");var r=t.indexOf(\\\"=\\\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,r){for(var i,a,o=[],s=e;s<r;s+=3)i=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),o.push(n[(a=i)>>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return o.join(\\\"\\\")}i[\\\"-\\\".charCodeAt(0)]=62,i[\\\"_\\\".charCodeAt(0)]=63},{}],63:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/rationalize\\\");e.exports=function(t,e){return n(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))}},{\\\"./lib/rationalize\\\":73}],64:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}},{}],65:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/rationalize\\\");e.exports=function(t,e){return n(t[0].mul(e[1]),t[1].mul(e[0]))}},{\\\"./lib/rationalize\\\":73}],66:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-rat\\\"),i=t(\\\"./lib/is-bn\\\"),a=t(\\\"./lib/num-to-bn\\\"),o=t(\\\"./lib/str-to-bn\\\"),s=t(\\\"./lib/rationalize\\\"),l=t(\\\"./div\\\");e.exports=function t(e,r){if(n(e))return r?l(e,t(r)):[e[0].clone(),e[1].clone()];var c=0;var u,f;if(i(e))u=e.clone();else if(\\\"string\\\"==typeof e)u=o(e);else{if(0===e)return[a(0),a(1)];if(e===Math.floor(e))u=a(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),c-=256;u=a(e)}}if(n(r))u.mul(r[1]),f=r[0].clone();else if(i(r))f=r.clone();else if(\\\"string\\\"==typeof r)f=o(r);else if(r)if(r===Math.floor(r))f=a(r);else{for(;r!==Math.floor(r);)r*=Math.pow(2,256),c+=256;f=a(r)}else f=a(1);c>0?u=u.ushln(c):c<0&&(f=f.ushln(-c));return s(u,f)}},{\\\"./div\\\":65,\\\"./is-rat\\\":67,\\\"./lib/is-bn\\\":71,\\\"./lib/num-to-bn\\\":72,\\\"./lib/rationalize\\\":73,\\\"./lib/str-to-bn\\\":74}],67:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/is-bn\\\");e.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},{\\\"./lib/is-bn\\\":71}],68:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"bn.js\\\");e.exports=function(t){return t.cmp(new n(0))}},{\\\"bn.js\\\":82}],69:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./bn-sign\\\");e.exports=function(t){var e=t.length,r=t.words,i=0;if(1===e)i=r[0];else if(2===e)i=r[0]+67108864*r[1];else for(var a=0;a<e;a++){var o=r[a];i+=o*Math.pow(67108864,a)}return n(t)*i}},{\\\"./bn-sign\\\":68}],70:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"double-bits\\\"),i=t(\\\"bit-twiddle\\\").countTrailingZeros;e.exports=function(t){var e=i(n.lo(t));if(e<32)return e;var r=i(n.hi(t));if(r>20)return 52;return r+32}},{\\\"bit-twiddle\\\":80,\\\"double-bits\\\":152}],71:[function(t,e,r){\\\"use strict\\\";t(\\\"bn.js\\\");e.exports=function(t){return t&&\\\"object\\\"==typeof t&&Boolean(t.words)}},{\\\"bn.js\\\":82}],72:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"bn.js\\\"),i=t(\\\"double-bits\\\");e.exports=function(t){var e=i.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},{\\\"bn.js\\\":82,\\\"double-bits\\\":152}],73:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./num-to-bn\\\"),i=t(\\\"./bn-sign\\\");e.exports=function(t,e){var r=i(t),a=i(e);if(0===r)return[n(0),n(1)];if(0===a)return[n(0),n(0)];a<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);if(o.cmpn(1))return[t.div(o),e.div(o)];return[t,e]}},{\\\"./bn-sign\\\":68,\\\"./num-to-bn\\\":72}],74:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"bn.js\\\");e.exports=function(t){return new n(t)}},{\\\"bn.js\\\":82}],75:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/rationalize\\\");e.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},{\\\"./lib/rationalize\\\":73}],76:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/bn-sign\\\");e.exports=function(t){return n(t[0])*n(t[1])}},{\\\"./lib/bn-sign\\\":68}],77:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/rationalize\\\");e.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},{\\\"./lib/rationalize\\\":73}],78:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/bn-to-num\\\"),i=t(\\\"./lib/ctz\\\");e.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var a=e.abs().divmod(r.abs()),o=a.div,s=n(o),l=a.mod,c=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return c*s;if(s){var u=i(s)+4,f=n(l.ushln(u).divRound(r));return c*(s+f*Math.pow(2,-u))}var h=r.bitLength()-l.bitLength()+53,f=n(l.ushln(h).divRound(r));return h<1023?c*f*Math.pow(2,-h):(f*=Math.pow(2,-1023),c*f*Math.pow(2,1023-h))}},{\\\"./lib/bn-to-num\\\":69,\\\"./lib/ctz\\\":70}],79:[function(t,e,r){\\\"use strict\\\";function n(t,e,r,n,i,a){var o=[\\\"function \\\",t,\\\"(a,l,h,\\\",n.join(\\\",\\\"),\\\"){\\\",a?\\\"\\\":\\\"var i=\\\",r?\\\"l-1\\\":\\\"h+1\\\",\\\";while(l<=h){var m=(l+h)>>>1,x=a\\\",i?\\\".get(m)\\\":\\\"[m]\\\"];return a?e.indexOf(\\\"c\\\")<0?o.push(\\\";if(x===y){return m}else if(x<=y){\\\"):o.push(\\\";var p=c(x,y);if(p===0){return m}else if(p<=0){\\\"):o.push(\\\";if(\\\",e,\\\"){i=m;\\\"),r?o.push(\\\"l=m+1}else{h=m-1}\\\"):o.push(\\\"h=m-1}else{l=m+1}\\\"),o.push(\\\"}\\\"),a?o.push(\\\"return -1};\\\"):o.push(\\\"return i};\\\"),o.join(\\\"\\\")}function i(t,e,r,i){return new Function([n(\\\"A\\\",\\\"x\\\"+t+\\\"y\\\",e,[\\\"y\\\"],!1,i),n(\\\"B\\\",\\\"x\\\"+t+\\\"y\\\",e,[\\\"y\\\"],!0,i),n(\\\"P\\\",\\\"c(x,y)\\\"+t+\\\"0\\\",e,[\\\"y\\\",\\\"c\\\"],!1,i),n(\\\"Q\\\",\\\"c(x,y)\\\"+t+\\\"0\\\",e,[\\\"y\\\",\\\"c\\\"],!0,i),\\\"function dispatchBsearch\\\",r,\\\"(a,y,c,l,h){if(a.shape){if(typeof(c)==='function'){return Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)}else{return B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)}}else{if(typeof(c)==='function'){return P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)}else{return A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)}}}return dispatchBsearch\\\",r].join(\\\"\\\"))()}e.exports={ge:i(\\\">=\\\",!1,\\\"GE\\\"),gt:i(\\\">\\\",!1,\\\"GT\\\"),lt:i(\\\"<\\\",!0,\\\"LT\\\"),le:i(\\\"<=\\\",!0,\\\"LE\\\"),eq:i(\\\"-\\\",!0,\\\"EQ\\\",!0)}},{}],80:[function(t,e,r){\\\"use strict\\\";function n(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}r.INT_BITS=32,r.INT_MAX=2147483647,r.INT_MIN=-1<<31,r.sign=function(t){return(t>0)-(t<0)},r.abs=function(t){var e=t>>31;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t<e)},r.max=function(t,e){return t^(t^e)&-(t<e)},r.isPow2=function(t){return!(t&t-1||!t)},r.log2=function(t){var e,r;return e=(t>65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var i=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<<i&255}}(i),r.reverse=function(t){return i[255&t]<<24|i[t>>>8&255]<<16|i[t>>>16&255]<<8|i[t>>>24&255]},r.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},r.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},r.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},r.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],81:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"clamp\\\");e.exports=function(t,e){e||(e={});var r,o,s,l,c,u,f,h,p,d,g,v=null==e.cutoff?.25:e.cutoff,m=null==e.radius?8:e.radius,y=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error(\\\"For raw data width and height should be provided by options\\\");r=e.width,o=e.height,l=t,u=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(f=(h=t).getContext(\\\"2d\\\"),r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(h=t.canvas,f=t,r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,u=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(c=l,l=Array(r*o),d=0,g=c.length;d<g;d++)l[d]=c[d*u+y]/255;else if(1!==u)throw Error(\\\"Raw data can have only 1 value per pixel\\\");var x=Array(r*o),b=Array(r*o),_=Array(s),w=Array(s),k=Array(s+1),M=Array(s);for(d=0,g=r*o;d<g;d++){var A=l[d];x[d]=1===A?0:0===A?i:Math.pow(Math.max(0,.5-A),2),b[d]=1===A?i:0===A?0:Math.pow(Math.max(0,A-.5),2)}a(x,r,o,_,w,M,k),a(b,r,o,_,w,M,k);var T=window.Float32Array?new Float32Array(r*o):new Array(r*o);for(d=0,g=r*o;d<g;d++)T[d]=n(1-((x[d]-b[d])/m+v),0,1);return T};var i=1e20;function a(t,e,r,n,i,a,s){for(var l=0;l<e;l++){for(var c=0;c<r;c++)n[c]=t[c*e+l];for(o(n,i,a,s,r),c=0;c<r;c++)t[c*e+l]=i[c]}for(c=0;c<r;c++){for(l=0;l<e;l++)n[l]=t[c*e+l];for(o(n,i,a,s,e),l=0;l<e;l++)t[c*e+l]=Math.sqrt(i[l])}}function o(t,e,r,n,a){r[0]=0,n[0]=-i,n[1]=+i;for(var o=1,s=0;o<a;o++){for(var l=(t[o]+o*o-(t[r[s]]+r[s]*r[s]))/(2*o-2*r[s]);l<=n[s];)s--,l=(t[o]+o*o-(t[r[s]]+r[s]*r[s]))/(2*o-2*r[s]);r[++s]=o,n[s]=l,n[s+1]=+i}for(o=0,s=0;o<a;o++){for(;n[s+1]<o;)s++;e[o]=(o-r[s])*(o-r[s])+t[r[s]]}}},{clamp:103}],82:[function(t,e,r){!function(e,r){\\\"use strict\\\";function n(t,e){if(!t)throw new Error(e||\\\"Assertion failed\\\")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&(\\\"le\\\"!==e&&\\\"be\\\"!==e||(r=e,e=10),this._init(t||0,e||10,r||\\\"be\\\"))}var o;\\\"object\\\"==typeof e?e.exports=a:r.BN=a,a.BN=a,a.wordSize=26;try{o=t(\\\"buffer\\\").Buffer}catch(t){}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),a=e;a<i;a++){var o=t.charCodeAt(a)-48;n<<=4,n|=o>=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function l(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o<a;o++){var s=t.charCodeAt(o)-48;i*=n,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&\\\"object\\\"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if(\\\"number\\\"==typeof t)return this._initNumber(t,e,r);if(\\\"object\\\"==typeof t)return this._initArray(t,e,r);\\\"hex\\\"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;\\\"-\\\"===(t=t.toString().replace(/\\\\s+/g,\\\"\\\"))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),\\\"-\\\"===t[0]&&(this.negative=1),this.strip(),\\\"le\\\"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),\\\"le\\\"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(n(\\\"number\\\"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if(\\\"be\\\"===r)for(i=t.length-1,a=0;i>=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if(\\\"le\\\"===r)for(i=0,a=0;i<t.length;i+=3)o=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,i,a=0;for(r=t.length-6,n=0;r>=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<<a&67108863,this.words[n+1]|=i>>>26-a&4194303,(a+=24)>=26&&(a-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<<a&67108863,this.words[n+1]|=i>>>26-a&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,s=Math.min(a,a-o)+r,c=0,u=r;u<s;u+=n)c=l(t,u,u+n,e),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var f=1;for(c=l(t,u,t.length,e),u=0;u<o;u++)f*=e;this.imuln(f),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}},a.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},a.prototype.clone=function(){var t=new a(null);return this.copy(t),t},a.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},a.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?\\\"<BN-R: \\\":\\\"<BN: \\\")+this.toString(16)+\\\">\\\"};var c=[\\\"\\\",\\\"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\\\"],u=[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],f=[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 h(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var c=1;c<n;c++){for(var u=l>>>26,f=67108863&l,h=Math.min(c,e.length-1),p=Math.max(0,c-t.length+1);p<=h;p++){var d=c-p|0;u+=(o=(i=0|t.words[d])*(a=0|e.words[p])+f)/67108864|0,f=67108863&o}r.words[c]=0|f,l=0|u}return 0!==l?r.words[c]=0|l:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||\\\"hex\\\"===t){r=\\\"\\\";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],l=(16777215&(s<<i|a)).toString(16);r=0!==(a=s>>>24-i&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%e!=0;)r=\\\"0\\\"+r;return 0!==this.negative&&(r=\\\"-\\\"+r),r}if(t===(0|t)&&t>=2&&t<=36){var h=u[t],p=f[t];r=\\\"\\\";var d=this.clone();for(d.negative=0;!d.isZero();){var g=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?g+r:c[h-g.length]+g+r}for(this.isZero()&&(r=\\\"0\\\"+r);r.length%e!=0;)r=\\\"0\\\"+r;return 0!==this.negative&&(r=\\\"-\\\"+r),r}n(!1,\\\"Base should be between 2 and 36\\\")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,\\\"Number can only safely store up to 53 bits\\\"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return n(\\\"undefined\\\"!=typeof o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,\\\"byte array longer than desired length\\\"),n(a>0,\\\"Requested array length <= 0\\\"),this.strip();var o,s,l=\\\"le\\\"===e,c=new t(a),u=this.clone();if(l){for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[s]=o;for(;s<a;s++)c[s]=0}else{for(s=0;s<a-i;s++)c[s]=0;for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[a-s-1]=o}return c},Math.clz32?a.prototype._countBits=function(t){return 32-Math.clz32(t)}:a.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},a.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},a.prototype.ior=function(t){return n(0==(this.negative|t.negative)),this.iuor(t)},a.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},a.prototype.iand=function(t){return n(0==(this.negative|t.negative)),this.iuand(t)},a.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},a.prototype.ixor=function(t){return n(0==(this.negative|t.negative)),this.iuxor(t)},a.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){n(\\\"number\\\"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){n(\\\"number\\\"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},a.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a<n.length;a++)e=(0|r.words[a])+(0|n.words[a])+i,this.words[a]=67108863&e,i=e>>>26;for(;0!==i&&a<r.length;a++)e=(0|r.words[a])+i,this.words[a]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this},a.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o<n.length;o++)a=(e=(0|r.words[o])-(0|n.words[o])+a)>>26,this.words[o]=67108863&e;for(;0!==a&&o<r.length;o++)a=(e=(0|r.words[o])+a)>>26,this.words[o]=67108863&e;if(0===a&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this.strip()},a.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,r){var n,i,a,o=t.words,s=e.words,l=r.words,c=0,u=0|o[0],f=8191&u,h=u>>>13,p=0|o[1],d=8191&p,g=p>>>13,v=0|o[2],m=8191&v,y=v>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],k=8191&w,M=w>>>13,A=0|o[5],T=8191&A,S=A>>>13,E=0|o[6],C=8191&E,L=E>>>13,z=0|o[7],O=8191&z,I=z>>>13,P=0|o[8],D=8191&P,R=P>>>13,B=0|o[9],F=8191&B,N=B>>>13,j=0|s[0],V=8191&j,U=j>>>13,q=0|s[1],H=8191&q,G=q>>>13,W=0|s[2],Y=8191&W,X=W>>>13,Z=0|s[3],$=8191&Z,J=Z>>>13,K=0|s[4],Q=8191&K,tt=K>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ct=st>>>13,ut=0|s[8],ft=8191&ut,ht=ut>>>13,pt=0|s[9],dt=8191&pt,gt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var vt=(c+(n=Math.imul(f,V))|0)+((8191&(i=(i=Math.imul(f,U))+Math.imul(h,V)|0))<<13)|0;c=((a=Math.imul(h,U))+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(d,V),i=(i=Math.imul(d,U))+Math.imul(g,V)|0,a=Math.imul(g,U);var mt=(c+(n=n+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(h,H)|0))<<13)|0;c=((a=a+Math.imul(h,G)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(m,V),i=(i=Math.imul(m,U))+Math.imul(y,V)|0,a=Math.imul(y,U),n=n+Math.imul(d,H)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0;var yt=(c+(n=n+Math.imul(f,Y)|0)|0)+((8191&(i=(i=i+Math.imul(f,X)|0)+Math.imul(h,Y)|0))<<13)|0;c=((a=a+Math.imul(h,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,U))+Math.imul(_,V)|0,a=Math.imul(_,U),n=n+Math.imul(m,H)|0,i=(i=i+Math.imul(m,G)|0)+Math.imul(y,H)|0,a=a+Math.imul(y,G)|0,n=n+Math.imul(d,Y)|0,i=(i=i+Math.imul(d,X)|0)+Math.imul(g,Y)|0,a=a+Math.imul(g,X)|0;var xt=(c+(n=n+Math.imul(f,$)|0)|0)+((8191&(i=(i=i+Math.imul(f,J)|0)+Math.imul(h,$)|0))<<13)|0;c=((a=a+Math.imul(h,J)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(k,V),i=(i=Math.imul(k,U))+Math.imul(M,V)|0,a=Math.imul(M,U),n=n+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(m,Y)|0,i=(i=i+Math.imul(m,X)|0)+Math.imul(y,Y)|0,a=a+Math.imul(y,X)|0,n=n+Math.imul(d,$)|0,i=(i=i+Math.imul(d,J)|0)+Math.imul(g,$)|0,a=a+Math.imul(g,J)|0;var bt=(c+(n=n+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,tt)|0)+Math.imul(h,Q)|0))<<13)|0;c=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(T,V),i=(i=Math.imul(T,U))+Math.imul(S,V)|0,a=Math.imul(S,U),n=n+Math.imul(k,H)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,G)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,X)|0,n=n+Math.imul(m,$)|0,i=(i=i+Math.imul(m,J)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,J)|0,n=n+Math.imul(d,Q)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,tt)|0;var _t=(c+(n=n+Math.imul(f,rt)|0)|0)+((8191&(i=(i=i+Math.imul(f,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((a=a+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,U))+Math.imul(L,V)|0,a=Math.imul(L,U),n=n+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(S,H)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(M,Y)|0,a=a+Math.imul(M,X)|0,n=n+Math.imul(b,$)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(_,$)|0,a=a+Math.imul(_,J)|0,n=n+Math.imul(m,Q)|0,i=(i=i+Math.imul(m,tt)|0)+Math.imul(y,Q)|0,a=a+Math.imul(y,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(g,rt)|0,a=a+Math.imul(g,nt)|0;var wt=(c+(n=n+Math.imul(f,at)|0)|0)+((8191&(i=(i=i+Math.imul(f,ot)|0)+Math.imul(h,at)|0))<<13)|0;c=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(O,V),i=(i=Math.imul(O,U))+Math.imul(I,V)|0,a=Math.imul(I,U),n=n+Math.imul(C,H)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(L,H)|0,a=a+Math.imul(L,G)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,X)|0,n=n+Math.imul(k,$)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(M,$)|0,a=a+Math.imul(M,J)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(m,rt)|0,i=(i=i+Math.imul(m,nt)|0)+Math.imul(y,rt)|0,a=a+Math.imul(y,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(g,at)|0,a=a+Math.imul(g,ot)|0;var kt=(c+(n=n+Math.imul(f,lt)|0)|0)+((8191&(i=(i=i+Math.imul(f,ct)|0)+Math.imul(h,lt)|0))<<13)|0;c=((a=a+Math.imul(h,ct)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,U))+Math.imul(R,V)|0,a=Math.imul(R,U),n=n+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(I,H)|0,a=a+Math.imul(I,G)|0,n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(L,Y)|0,a=a+Math.imul(L,X)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,J)|0,n=n+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(m,at)|0,i=(i=i+Math.imul(m,ot)|0)+Math.imul(y,at)|0,a=a+Math.imul(y,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ct)|0)+Math.imul(g,lt)|0,a=a+Math.imul(g,ct)|0;var Mt=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,ht)|0)+Math.imul(h,ft)|0))<<13)|0;c=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(F,V),i=(i=Math.imul(F,U))+Math.imul(N,V)|0,a=Math.imul(N,U),n=n+Math.imul(D,H)|0,i=(i=i+Math.imul(D,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(O,Y)|0,i=(i=i+Math.imul(O,X)|0)+Math.imul(I,Y)|0,a=a+Math.imul(I,X)|0,n=n+Math.imul(C,$)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(L,$)|0,a=a+Math.imul(L,J)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(S,Q)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(k,rt)|0,i=(i=i+Math.imul(k,nt)|0)+Math.imul(M,rt)|0,a=a+Math.imul(M,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(m,lt)|0,i=(i=i+Math.imul(m,ct)|0)+Math.imul(y,lt)|0,a=a+Math.imul(y,ct)|0,n=n+Math.imul(d,ft)|0,i=(i=i+Math.imul(d,ht)|0)+Math.imul(g,ft)|0,a=a+Math.imul(g,ht)|0;var At=(c+(n=n+Math.imul(f,dt)|0)|0)+((8191&(i=(i=i+Math.imul(f,gt)|0)+Math.imul(h,dt)|0))<<13)|0;c=((a=a+Math.imul(h,gt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(F,H),i=(i=Math.imul(F,G))+Math.imul(N,H)|0,a=Math.imul(N,G),n=n+Math.imul(D,Y)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(R,Y)|0,a=a+Math.imul(R,X)|0,n=n+Math.imul(O,$)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(I,$)|0,a=a+Math.imul(I,J)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(L,Q)|0,a=a+Math.imul(L,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(k,at)|0,i=(i=i+Math.imul(k,ot)|0)+Math.imul(M,at)|0,a=a+Math.imul(M,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ct)|0,n=n+Math.imul(m,ft)|0,i=(i=i+Math.imul(m,ht)|0)+Math.imul(y,ft)|0,a=a+Math.imul(y,ht)|0;var Tt=(c+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,gt)|0)+Math.imul(g,dt)|0))<<13)|0;c=((a=a+Math.imul(g,gt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,X))+Math.imul(N,Y)|0,a=Math.imul(N,X),n=n+Math.imul(D,$)|0,i=(i=i+Math.imul(D,J)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,J)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(I,Q)|0,a=a+Math.imul(I,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(L,rt)|0,a=a+Math.imul(L,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(k,lt)|0,i=(i=i+Math.imul(k,ct)|0)+Math.imul(M,lt)|0,a=a+Math.imul(M,ct)|0,n=n+Math.imul(b,ft)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(_,ft)|0,a=a+Math.imul(_,ht)|0;var St=(c+(n=n+Math.imul(m,dt)|0)|0)+((8191&(i=(i=i+Math.imul(m,gt)|0)+Math.imul(y,dt)|0))<<13)|0;c=((a=a+Math.imul(y,gt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(F,$),i=(i=Math.imul(F,J))+Math.imul(N,$)|0,a=Math.imul(N,J),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(I,rt)|0,a=a+Math.imul(I,nt)|0,n=n+Math.imul(C,at)|0,i=(i=i+Math.imul(C,ot)|0)+Math.imul(L,at)|0,a=a+Math.imul(L,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ct)|0,n=n+Math.imul(k,ft)|0,i=(i=i+Math.imul(k,ht)|0)+Math.imul(M,ft)|0,a=a+Math.imul(M,ht)|0;var Et=(c+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,gt)|0)+Math.imul(_,dt)|0))<<13)|0;c=((a=a+Math.imul(_,gt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(N,Q)|0,a=Math.imul(N,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(O,at)|0,i=(i=i+Math.imul(O,ot)|0)+Math.imul(I,at)|0,a=a+Math.imul(I,ot)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ct)|0)+Math.imul(L,lt)|0,a=a+Math.imul(L,ct)|0,n=n+Math.imul(T,ft)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(S,ft)|0,a=a+Math.imul(S,ht)|0;var Ct=(c+(n=n+Math.imul(k,dt)|0)|0)+((8191&(i=(i=i+Math.imul(k,gt)|0)+Math.imul(M,dt)|0))<<13)|0;c=((a=a+Math.imul(M,gt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(F,rt),i=(i=Math.imul(F,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(D,at)|0,i=(i=i+Math.imul(D,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(O,lt)|0,i=(i=i+Math.imul(O,ct)|0)+Math.imul(I,lt)|0,a=a+Math.imul(I,ct)|0,n=n+Math.imul(C,ft)|0,i=(i=i+Math.imul(C,ht)|0)+Math.imul(L,ft)|0,a=a+Math.imul(L,ht)|0;var Lt=(c+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,gt)|0)+Math.imul(S,dt)|0))<<13)|0;c=((a=a+Math.imul(S,gt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(F,at),i=(i=Math.imul(F,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ct)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ct)|0,n=n+Math.imul(O,ft)|0,i=(i=i+Math.imul(O,ht)|0)+Math.imul(I,ft)|0,a=a+Math.imul(I,ht)|0;var zt=(c+(n=n+Math.imul(C,dt)|0)|0)+((8191&(i=(i=i+Math.imul(C,gt)|0)+Math.imul(L,dt)|0))<<13)|0;c=((a=a+Math.imul(L,gt)|0)+(i>>>13)|0)+(zt>>>26)|0,zt&=67108863,n=Math.imul(F,lt),i=(i=Math.imul(F,ct))+Math.imul(N,lt)|0,a=Math.imul(N,ct),n=n+Math.imul(D,ft)|0,i=(i=i+Math.imul(D,ht)|0)+Math.imul(R,ft)|0,a=a+Math.imul(R,ht)|0;var Ot=(c+(n=n+Math.imul(O,dt)|0)|0)+((8191&(i=(i=i+Math.imul(O,gt)|0)+Math.imul(I,dt)|0))<<13)|0;c=((a=a+Math.imul(I,gt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(F,ft),i=(i=Math.imul(F,ht))+Math.imul(N,ft)|0,a=Math.imul(N,ht);var It=(c+(n=n+Math.imul(D,dt)|0)|0)+((8191&(i=(i=i+Math.imul(D,gt)|0)+Math.imul(R,dt)|0))<<13)|0;c=((a=a+Math.imul(R,gt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Pt=(c+(n=Math.imul(F,dt))|0)+((8191&(i=(i=Math.imul(F,gt))+Math.imul(N,dt)|0))<<13)|0;return c=((a=Math.imul(N,gt))+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,l[0]=vt,l[1]=mt,l[2]=yt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=kt,l[8]=Mt,l[9]=At,l[10]=Tt,l[11]=St,l[12]=Et,l[13]=Ct,l[14]=Lt,l[15]=zt,l[16]=Ot,l[17]=It,l[18]=Pt,0!==c&&(l[19]=c,r.length++),r};function d(t,e,r){return(new g).mulp(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=h),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?h(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a<r.length-1;a++){var o=i;i=0;for(var s=67108863&n,l=Math.min(a,e.length-1),c=Math.max(0,a-t.length+1);c<=l;c++){var u=a-c,f=(0|t.words[u])*(0|e.words[c]),h=67108863&f;s=67108863&(h=h+s|0),i+=(o=(o=o+(f/67108864|0)|0)+(h>>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):d(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},g.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},g.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o<a;o++)n[o]=e[t[o]],i[o]=r[t[o]]},g.prototype.transform=function(t,e,r,n,i,a){this.permute(a,t,e,r,n,i);for(var o=1;o<i;o<<=1)for(var s=o<<1,l=Math.cos(2*Math.PI/s),c=Math.sin(2*Math.PI/s),u=0;u<i;u+=s)for(var f=l,h=c,p=0;p<o;p++){var d=r[u+p],g=n[u+p],v=r[u+p+o],m=n[u+p+o],y=f*v-h*m;m=f*m+h*v,v=y,r[u+p]=d+v,n[u+p]=g+m,r[u+p+o]=d-v,n[u+p+o]=g-m,p!==s&&(y=l*f-c*h,h=l*h+c*f,f=y)}},g.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},g.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},g.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},g.prototype.convert13b=function(t,e,r,i){for(var a=0,o=0;o<e;o++)a+=0|t[o],r[2*o]=8191&a,a>>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*e;o<i;++o)r[o]=0;n(0===a),n(0==(-8192&a))},g.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},g.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),a=this.stub(n),o=new Array(n),s=new Array(n),l=new Array(n),c=new Array(n),u=new Array(n),f=new Array(n),h=r.words;h.length=n,this.convert13b(t.words,t.length,o,n),this.convert13b(e.words,e.length,c,n),this.transform(o,a,s,l,n,i),this.transform(c,a,u,f,n,i);for(var p=0;p<n;p++){var d=s[p]*u[p]-l[p]*f[p];l[p]=s[p]*f[p]+l[p]*u[p],s[p]=d}return this.conjugate(s,l,n),this.transform(s,l,h,a,n,i),this.conjugate(h,a,n),this.normalize13b(h,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},a.prototype.mul=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},a.prototype.mulf=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),d(this,t,e)},a.prototype.imul=function(t){return this.clone().mulTo(t,this)},a.prototype.imuln=function(t){n(\\\"number\\\"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,a=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=a>>>26,this.words[r]=67108863&a}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},a.prototype.iushln=function(t){n(\\\"number\\\"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e<this.length;e++){var s=this.words[e]&a,l=(0|this.words[e])-s<<r;this.words[e]=l|o,o=s>>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},a.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},a.prototype.iushrn=function(t,e,r){var i;n(\\\"number\\\"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<<a,l=r;if(i-=o,i=Math.max(0,i),l){for(var c=0;c<o;c++)l.words[c]=this.words[c];l.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var u=0;for(c=this.length-1;c>=0&&(0!==u||c>=i);c--){var f=0|this.words[c];this.words[c]=u<<26-a|f>>>a,u=f&s}return l&&0!==u&&(l.words[l.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){n(\\\"number\\\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r)&&!!(this.words[r]&i)},a.prototype.imaskn=function(t){n(\\\"number\\\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,\\\"imaskn works only with positive numbers\\\"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},a.prototype.maskn=function(t){return this.clone().imaskn(t)},a.prototype.iaddn=function(t){return n(\\\"number\\\"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},a.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(n(\\\"number\\\"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},a.prototype.addn=function(t){return this.clone().iaddn(t)},a.prototype.subn=function(t){return this.clone().isubn(t)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(t,e,r){var i,a,o=t.length+r;this._expand(o);var s=0;for(i=0;i<t.length;i++){a=(0|this.words[i+r])+s;var l=(0|t.words[i])*e;s=((a-=67108863&l)>>26)-(l/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,l=n.length-i.length;if(\\\"mod\\\"!==e){(s=new a(null)).length=l+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var u=n.clone()._ishlnsubmul(i,1,l);0===u.negative&&(n=u,s&&(s.words[l]=1));for(var f=l-1;f>=0;f--){var h=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,f);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=h)}return s&&s.strip(),n.strip(),\\\"div\\\"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),\\\"mod\\\"!==e&&(i=s.div.neg()),\\\"div\\\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),\\\"mod\\\"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),\\\"div\\\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?\\\"div\\\"===e?{div:this.divn(t.words[0]),mod:null}:\\\"mod\\\"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,\\\"div\\\",!1).div},a.prototype.mod=function(t){return this.divmod(t,\\\"mod\\\",!1).mod},a.prototype.umod=function(t){return this.divmod(t,\\\"mod\\\",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},a.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),l=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var u=r.clone(),f=e.clone();!e.isZero();){for(var h=0,p=1;0==(e.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(f)),i.iushrn(1),o.iushrn(1);for(var d=0,g=1;0==(r.words[0]&g)&&d<26;++d,g<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(u),l.isub(f)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s),o.isub(l)):(r.isub(e),s.isub(i),l.isub(o))}return{a:s,b:l,gcd:r.iushln(c)}},a.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(e.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){n(\\\"number\\\"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,\\\"Number is too big\\\");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},a.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},a.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new w(t)},a.prototype.toRed=function(t){return n(!this.red,\\\"Already a number in reduction context\\\"),n(0===this.negative,\\\"red works only with positives\\\"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return n(this.red,\\\"fromRed works only with numbers in reduction context\\\"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return n(!this.red,\\\"Already a number in reduction context\\\"),this._forceRed(t)},a.prototype.redAdd=function(t){return n(this.red,\\\"redAdd works only with red numbers\\\"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return n(this.red,\\\"redIAdd works only with red numbers\\\"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return n(this.red,\\\"redSub works only with red numbers\\\"),this.red.sub(this,t)},a.prototype.redISub=function(t){return n(this.red,\\\"redISub works only with red numbers\\\"),this.red.isub(this,t)},a.prototype.redShl=function(t){return n(this.red,\\\"redShl works only with red numbers\\\"),this.red.shl(this,t)},a.prototype.redMul=function(t){return n(this.red,\\\"redMul works only with red numbers\\\"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return n(this.red,\\\"redMul works only with red numbers\\\"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return n(this.red,\\\"redSqr works only with red numbers\\\"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return n(this.red,\\\"redISqr works only with red numbers\\\"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return n(this.red,\\\"redSqrt works only with red numbers\\\"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return n(this.red,\\\"redInvm works only with red numbers\\\"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return n(this.red,\\\"redNeg works only with red numbers\\\"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return n(this.red&&!t.red,\\\"redPow(normalNum)\\\"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function m(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){m.call(this,\\\"k256\\\",\\\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\\\")}function x(){m.call(this,\\\"p224\\\",\\\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\\\")}function b(){m.call(this,\\\"p192\\\",\\\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\\\")}function _(){m.call(this,\\\"25519\\\",\\\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\\\")}function w(t){if(\\\"string\\\"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),\\\"modulus must be greater than 1\\\"),this.m=t,this.prime=null}function k(t){w.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(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)}m.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},m.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):r.strip(),r},m.prototype.split=function(t,e){t.iushrn(this.n,0,e)},m.prototype.imulK=function(t){return t.imul(this.k)},i(y,m),y.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var i=t.words[9];for(e.words[e.length++]=4194303&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(4194303&a)<<4|i>>>22,i=a}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},y.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(x,m),i(b,m),i(_,m),_.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(v[t])return v[t];var e;if(\\\"k256\\\"===t)e=new y;else if(\\\"p224\\\"===t)e=new x;else if(\\\"p192\\\"===t)e=new b;else{if(\\\"p25519\\\"!==t)throw new Error(\\\"Unknown prime \\\"+t);e=new _}return v[t]=e,e},w.prototype._verify1=function(t){n(0===t.negative,\\\"red works only with positives\\\"),n(t.red,\\\"red works only with red numbers\\\")},w.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),\\\"red works only with positives\\\"),n(t.red&&t.red===e.red,\\\"red works only with red numbers\\\")},w.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},w.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},w.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},w.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},w.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},w.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},w.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},w.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},w.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},w.prototype.isqr=function(t){return this.imul(t,t.clone())},w.prototype.sqr=function(t){return this.mul(t,t)},w.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var s=new a(1).toRed(this),l=s.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new a(2*u*u).toRed(this);0!==this.pow(u,c).cmp(l);)u.redIAdd(l);for(var f=this.pow(u,i),h=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),d=o;0!==p.cmp(s);){for(var g=p,v=0;0!==g.cmp(s);v++)g=g.redSqr();n(v<d);var m=this.pow(f,new a(1).iushln(d-v-1));h=h.redMul(m),f=m.redSqr(),p=p.redMul(f),d=v}return h},w.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},w.prototype.pow=function(t,e){if(e.isZero())return new a(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new a(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],o=0,s=0,l=e.bitLength()%26;for(0===l&&(l=26),n=e.length-1;n>=0;n--){for(var c=e.words[n],u=l-1;u>=0;u--){var f=c>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==o?(o<<=1,o|=f,(4===++s||0===n&&0===u)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}l=26}return i},w.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},w.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new k(t)},i(k,w),k.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},k.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},k.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},k.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},k.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(\\\"undefined\\\"==typeof e||e,this)},{buffer:91}],83:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e,r,n,i=t.length,a=0;for(e=0;e<i;++e)a+=t[e].length;var o=new Array(a),s=0;for(e=0;e<i;++e){var l=t[e],c=l.length;for(r=0;r<c;++r){var u=o[s++]=new Array(c-1),f=0;for(n=0;n<c;++n)n!==r&&(u[f++]=l[n]);if(1&r){var h=u[1];u[1]=u[0],u[0]=h}}}return o}},{}],84:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){switch(arguments.length){case 1:return n=[],c(i=t,i,u,!0),n;case 2:return\\\"function\\\"==typeof e?c(t,t,e,!0):function(t,e){return n=[],c(t,e,u,!1),n}(t,e);case 3:return c(t,e,r,!1);default:throw new Error(\\\"box-intersect: Invalid arguments\\\")}var i};var n,i=t(\\\"typedarray-pool\\\"),a=t(\\\"./lib/sweep\\\"),o=t(\\\"./lib/intersect\\\");function s(t,e){for(var r=0;r<t;++r)if(!(e[r]<=e[r+t]))return!0;return!1}function l(t,e,r,n){for(var i=0,a=0,o=0,l=t.length;o<l;++o){var c=t[o];if(!s(e,c)){for(var u=0;u<2*e;++u)r[i++]=c[u];n[a++]=o}}return a}function c(t,e,r,n){var s=t.length,c=e.length;if(!(s<=0||c<=0)){var u=t[0].length>>>1;if(!(u<=0)){var f,h=i.mallocDouble(2*u*s),p=i.mallocInt32(s);if((s=l(t,u,h,p))>0){if(1===u&&n)a.init(s),f=a.sweepComplete(u,r,0,s,h,p,0,s,h,p);else{var d=i.mallocDouble(2*u*c),g=i.mallocInt32(c);(c=l(e,u,d,g))>0&&(a.init(s+c),f=1===u?a.sweepBipartite(u,r,0,s,h,p,0,c,d,g):o(u,r,n,s,h,p,c,d,g),i.free(d),i.free(g))}i.free(h),i.free(p)}return f}}}function u(t,e){n.push([t,e])}},{\\\"./lib/intersect\\\":86,\\\"./lib/sweep\\\":90,\\\"typedarray-pool\\\":522}],85:[function(t,e,r){\\\"use strict\\\";var n=\\\"d\\\",i=\\\"ax\\\",a=\\\"vv\\\",o=\\\"fp\\\",s=\\\"es\\\",l=\\\"rs\\\",c=\\\"re\\\",u=\\\"rb\\\",f=\\\"ri\\\",h=\\\"rp\\\",p=\\\"bs\\\",d=\\\"be\\\",g=\\\"bb\\\",v=\\\"bi\\\",m=\\\"bp\\\",y=\\\"rv\\\",x=\\\"Q\\\",b=[n,i,a,l,c,u,f,p,d,g,v];function _(t){var e=\\\"bruteForce\\\"+(t?\\\"Full\\\":\\\"Partial\\\"),r=[],_=b.slice();t||_.splice(3,0,o);var w=[\\\"function \\\"+e+\\\"(\\\"+_.join()+\\\"){\\\"];function k(e,o){var _=function(t,e,r){var o=\\\"bruteForce\\\"+(t?\\\"Red\\\":\\\"Blue\\\")+(e?\\\"Flip\\\":\\\"\\\")+(r?\\\"Full\\\":\\\"\\\"),_=[\\\"function \\\",o,\\\"(\\\",b.join(),\\\"){\\\",\\\"var \\\",s,\\\"=2*\\\",n,\\\";\\\"],w=\\\"for(var i=\\\"+l+\\\",\\\"+h+\\\"=\\\"+s+\\\"*\\\"+l+\\\";i<\\\"+c+\\\";++i,\\\"+h+\\\"+=\\\"+s+\\\"){var x0=\\\"+u+\\\"[\\\"+i+\\\"+\\\"+h+\\\"],x1=\\\"+u+\\\"[\\\"+i+\\\"+\\\"+h+\\\"+\\\"+n+\\\"],xi=\\\"+f+\\\"[i];\\\",k=\\\"for(var j=\\\"+p+\\\",\\\"+m+\\\"=\\\"+s+\\\"*\\\"+p+\\\";j<\\\"+d+\\\";++j,\\\"+m+\\\"+=\\\"+s+\\\"){var y0=\\\"+g+\\\"[\\\"+i+\\\"+\\\"+m+\\\"],\\\"+(r?\\\"y1=\\\"+g+\\\"[\\\"+i+\\\"+\\\"+m+\\\"+\\\"+n+\\\"],\\\":\\\"\\\")+\\\"yi=\\\"+v+\\\"[j];\\\";return t?_.push(w,x,\\\":\\\",k):_.push(k,x,\\\":\\\",w),r?_.push(\\\"if(y1<x0||x1<y0)continue;\\\"):e?_.push(\\\"if(y0<=x0||x1<y0)continue;\\\"):_.push(\\\"if(y0<x0||x1<y0)continue;\\\"),_.push(\\\"for(var k=\\\"+i+\\\"+1;k<\\\"+n+\\\";++k){var r0=\\\"+u+\\\"[k+\\\"+h+\\\"],r1=\\\"+u+\\\"[k+\\\"+n+\\\"+\\\"+h+\\\"],b0=\\\"+g+\\\"[k+\\\"+m+\\\"],b1=\\\"+g+\\\"[k+\\\"+n+\\\"+\\\"+m+\\\"];if(r1<b0||b1<r0)continue \\\"+x+\\\";}var \\\"+y+\\\"=\\\"+a+\\\"(\\\"),e?_.push(\\\"yi,xi\\\"):_.push(\\\"xi,yi\\\"),_.push(\\\");if(\\\"+y+\\\"!==void 0)return \\\"+y+\\\";}}}\\\"),{name:o,code:_.join(\\\"\\\")}}(e,o,t);r.push(_.code),w.push(\\\"return \\\"+_.name+\\\"(\\\"+b.join()+\\\");\\\")}w.push(\\\"if(\\\"+c+\\\"-\\\"+l+\\\">\\\"+d+\\\"-\\\"+p+\\\"){\\\"),t?(k(!0,!1),w.push(\\\"}else{\\\"),k(!1,!1)):(w.push(\\\"if(\\\"+o+\\\"){\\\"),k(!0,!0),w.push(\\\"}else{\\\"),k(!0,!1),w.push(\\\"}}else{if(\\\"+o+\\\"){\\\"),k(!1,!0),w.push(\\\"}else{\\\"),k(!1,!1),w.push(\\\"}\\\")),w.push(\\\"}}return \\\"+e);var M=r.join(\\\"\\\")+w.join(\\\"\\\");return new Function(M)()}r.partial=_(!1),r.full=_(!0)},{}],86:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,a,u,S,E,C,L){!function(t,e){var r=8*i.log2(e+1)*(t+1)|0,a=i.nextPow2(b*r);w.length<a&&(n.free(w),w=n.mallocInt32(a));var o=i.nextPow2(_*r);k<o&&(n.free(k),k=n.mallocDouble(o))}(t,a+E);var z,O=0,I=2*t;M(O++,0,0,a,0,E,r?16:0,-1/0,1/0),r||M(O++,0,0,E,0,a,1,-1/0,1/0);for(;O>0;){var P=(O-=1)*b,D=w[P],R=w[P+1],B=w[P+2],F=w[P+3],N=w[P+4],j=w[P+5],V=O*_,U=k[V],q=k[V+1],H=1&j,G=!!(16&j),W=u,Y=S,X=C,Z=L;if(H&&(W=C,Y=L,X=u,Z=S),!(2&j&&(B=v(t,D,R,B,W,Y,q),R>=B)||4&j&&(R=m(t,D,R,B,W,Y,U))>=B)){var $=B-R,J=N-F;if(G){if(t*$*($+J)<p){if(void 0!==(z=l.scanComplete(t,D,e,R,B,W,Y,F,N,X,Z)))return z;continue}}else{if(t*Math.min($,J)<f){if(void 0!==(z=o(t,D,e,H,R,B,W,Y,F,N,X,Z)))return z;continue}if(t*$*J<h){if(void 0!==(z=l.scanBipartite(t,D,e,H,R,B,W,Y,F,N,X,Z)))return z;continue}}var K=d(t,D,R,B,W,Y,U,q);if(R<K)if(t*(K-R)<f){if(void 0!==(z=s(t,D+1,e,R,K,W,Y,F,N,X,Z)))return z}else if(D===t-2){if(void 0!==(z=H?l.sweepBipartite(t,e,F,N,X,Z,R,K,W,Y):l.sweepBipartite(t,e,R,K,W,Y,F,N,X,Z)))return z}else M(O++,D+1,R,K,F,N,H,-1/0,1/0),M(O++,D+1,F,N,R,K,1^H,-1/0,1/0);if(K<B){var Q=c(t,D,F,N,X,Z),tt=X[I*Q+D],et=g(t,D,Q,N,X,Z,tt);if(et<N&&M(O++,D,K,B,et,N,(4|H)+(G?16:0),tt,q),F<Q&&M(O++,D,K,B,F,Q,(2|H)+(G?16:0),U,tt),Q+1===et){if(void 0!==(z=G?T(t,D,e,K,B,W,Y,Q,X,Z[Q]):A(t,D,e,H,K,B,W,Y,Q,X,Z[Q])))return z}else if(Q<et){var rt;if(G){if(rt=y(t,D,K,B,W,Y,tt),K<rt){var nt=g(t,D,K,rt,W,Y,tt);if(D===t-2){if(K<nt&&void 0!==(z=l.sweepComplete(t,e,K,nt,W,Y,Q,et,X,Z)))return z;if(nt<rt&&void 0!==(z=l.sweepBipartite(t,e,nt,rt,W,Y,Q,et,X,Z)))return z}else K<nt&&M(O++,D+1,K,nt,Q,et,16,-1/0,1/0),nt<rt&&(M(O++,D+1,nt,rt,Q,et,0,-1/0,1/0),M(O++,D+1,Q,et,nt,rt,1,-1/0,1/0))}}else rt=H?x(t,D,K,B,W,Y,tt):y(t,D,K,B,W,Y,tt),K<rt&&(D===t-2?z=H?l.sweepBipartite(t,e,Q,et,X,Z,K,rt,W,Y):l.sweepBipartite(t,e,K,rt,W,Y,Q,et,X,Z):(M(O++,D+1,K,rt,Q,et,H,-1/0,1/0),M(O++,D+1,Q,et,K,rt,1^H,-1/0,1/0)))}}}}};var n=t(\\\"typedarray-pool\\\"),i=t(\\\"bit-twiddle\\\"),a=t(\\\"./brute\\\"),o=a.partial,s=a.full,l=t(\\\"./sweep\\\"),c=t(\\\"./median\\\"),u=t(\\\"./partition\\\"),f=128,h=1<<22,p=1<<22,d=u(\\\"!(lo>=p0)&&!(p1>=hi)\\\",[\\\"p0\\\",\\\"p1\\\"]),g=u(\\\"lo===p0\\\",[\\\"p0\\\"]),v=u(\\\"lo<p0\\\",[\\\"p0\\\"]),m=u(\\\"hi<=p0\\\",[\\\"p0\\\"]),y=u(\\\"lo<=p0&&p0<=hi\\\",[\\\"p0\\\"]),x=u(\\\"lo<p0&&p0<=hi\\\",[\\\"p0\\\"]),b=6,_=2,w=n.mallocInt32(1024),k=n.mallocDouble(1024);function M(t,e,r,n,i,a,o,s,l){var c=b*t;w[c]=e,w[c+1]=r,w[c+2]=n,w[c+3]=i,w[c+4]=a,w[c+5]=o;var u=_*t;k[u]=s,k[u+1]=l}function A(t,e,r,n,i,a,o,s,l,c,u){var f=2*t,h=l*f,p=c[h+e];t:for(var d=i,g=i*f;d<a;++d,g+=f){var v=o[g+e],m=o[g+e+t];if(!(p<v||m<p)&&(!n||p!==v)){for(var y,x=s[d],b=e+1;b<t;++b){v=o[g+b],m=o[g+b+t];var _=c[h+b],w=c[h+b+t];if(m<_||w<v)continue t}if(void 0!==(y=n?r(u,x):r(x,u)))return y}}}function T(t,e,r,n,i,a,o,s,l,c){var u=2*t,f=s*u,h=l[f+e];t:for(var p=n,d=n*u;p<i;++p,d+=u){var g=o[p];if(g!==c){var v=a[d+e],m=a[d+e+t];if(!(h<v||m<h)){for(var y=e+1;y<t;++y){v=a[d+y],m=a[d+y+t];var x=l[f+y],b=l[f+y+t];if(m<x||b<v)continue t}var _=r(g,c);if(void 0!==_)return _}}}}},{\\\"./brute\\\":85,\\\"./median\\\":87,\\\"./partition\\\":88,\\\"./sweep\\\":90,\\\"bit-twiddle\\\":80,\\\"typedarray-pool\\\":522}],87:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,o,s,l){if(o<=r+1)return r;var c=r,u=o,f=o+r>>>1,h=2*t,p=f,d=s[h*f+e];for(;c<u;){if(u-c<i){a(t,e,c,u,s,l),d=s[h*f+e];break}var g=u-c,v=Math.random()*g+c|0,m=s[h*v+e],y=Math.random()*g+c|0,x=s[h*y+e],b=Math.random()*g+c|0,_=s[h*b+e];m<=x?_>=x?(p=y,d=x):m>=_?(p=v,d=m):(p=b,d=_):x>=_?(p=y,d=x):_>=m?(p=v,d=m):(p=b,d=_);for(var w=h*(u-1),k=h*p,M=0;M<h;++M,++w,++k){var A=s[w];s[w]=s[k],s[k]=A}var T=l[u-1];l[u-1]=l[p],l[p]=T,p=n(t,e,c,u-1,s,l,d);for(var w=h*(u-1),k=h*p,M=0;M<h;++M,++w,++k){var A=s[w];s[w]=s[k],s[k]=A}var T=l[u-1];if(l[u-1]=l[p],l[p]=T,f<p){for(u=p-1;c<u&&s[h*(u-1)+e]===d;)u-=1;u+=1}else{if(!(p<f))break;for(c=p+1;c<u&&s[h*c+e]===d;)c+=1}}return n(t,e,r,f,s,l,s[h*f+e])};var n=t(\\\"./partition\\\")(\\\"lo<p0\\\",[\\\"p0\\\"]),i=8;function a(t,e,r,n,i,a){for(var o=2*t,s=o*(r+1)+e,l=r+1;l<n;++l,s+=o)for(var c=i[s],u=l,f=o*(l-1);u>r&&i[f+e]>c;--u,f-=o){for(var h=f,p=f+o,d=0;d<o;++d,++h,++p){var g=i[h];i[h]=i[p],i[p]=g}var v=a[u];a[u]=a[u-1],a[u-1]=v}}},{\\\"./partition\\\":88}],88:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=\\\"abcdef\\\".split(\\\"\\\").concat(e),i=[];t.indexOf(\\\"lo\\\")>=0&&i.push(\\\"lo=e[k+n]\\\");t.indexOf(\\\"hi\\\")>=0&&i.push(\\\"hi=e[k+o]\\\");return r.push(n.replace(\\\"_\\\",i.join()).replace(\\\"$\\\",t)),Function.apply(void 0,r)};var n=\\\"for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m\\\"},{}],89:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){e<=4*n?i(0,e-1,t):function t(e,r,f){var h=(r-e+1)/6|0,p=e+h,d=r-h,g=e+r>>1,v=g-h,m=g+h,y=p,x=v,b=g,_=m,w=d,k=e+1,M=r-1,A=0;c(y,x,f)&&(A=y,y=x,x=A);c(_,w,f)&&(A=_,_=w,w=A);c(y,b,f)&&(A=y,y=b,b=A);c(x,b,f)&&(A=x,x=b,b=A);c(y,_,f)&&(A=y,y=_,_=A);c(b,_,f)&&(A=b,b=_,_=A);c(x,w,f)&&(A=x,x=w,w=A);c(x,b,f)&&(A=x,x=b,b=A);c(_,w,f)&&(A=_,_=w,w=A);var T=f[2*x];var S=f[2*x+1];var E=f[2*_];var C=f[2*_+1];var L=2*y;var z=2*b;var O=2*w;var I=2*p;var P=2*g;var D=2*d;for(var R=0;R<2;++R){var B=f[L+R],F=f[z+R],N=f[O+R];f[I+R]=B,f[P+R]=F,f[D+R]=N}o(v,e,f);o(m,r,f);for(var j=k;j<=M;++j)if(u(j,T,S,f))j!==k&&a(j,k,f),++k;else if(!u(j,E,C,f))for(;;){if(u(M,E,C,f)){u(M,T,S,f)?(s(j,k,M,f),++k,--M):(a(j,M,f),--M);break}if(--M<j)break}l(e,k-1,T,S,f);l(r,M+1,E,C,f);k-2-e<=n?i(e,k-2,f):t(e,k-2,f);r-(M+2)<=n?i(M+2,r,f):t(M+2,r,f);M-k<=n?i(k,M,f):t(k,M,f)}(0,e-1,t)};var n=32;function i(t,e,r){for(var n=2*(t+1),i=t+1;i<=e;++i){for(var a=r[n++],o=r[n++],s=i,l=n-2;s-- >t;){var c=r[l-2],u=r[l-1];if(c<a)break;if(c===a&&u<o)break;r[l]=c,r[l+1]=u,l-=2}r[l]=a,r[l+1]=o}}function a(t,e,r){e*=2;var n=r[t*=2],i=r[t+1];r[t]=r[e],r[t+1]=r[e+1],r[e]=n,r[e+1]=i}function o(t,e,r){e*=2,r[t*=2]=r[e],r[t+1]=r[e+1]}function s(t,e,r,n){e*=2,r*=2;var i=n[t*=2],a=n[t+1];n[t]=n[e],n[t+1]=n[e+1],n[e]=n[r],n[e+1]=n[r+1],n[r]=i,n[r+1]=a}function l(t,e,r,n,i){e*=2,i[t*=2]=i[e],i[e]=r,i[t+1]=i[e+1],i[e+1]=n}function c(t,e,r){e*=2;var n=r[t*=2],i=r[e];return!(n<i)&&(n!==i||r[t+1]>r[e+1])}function u(t,e,r,n){var i=n[t*=2];return i<e||i===e&&n[t+1]<r}},{}],90:[function(t,e,r){\\\"use strict\\\";e.exports={init:function(t){var e=i.nextPow2(t);s.length<e&&(n.free(s),s=n.mallocInt32(e));l.length<e&&(n.free(l),l=n.mallocInt32(e));c.length<e&&(n.free(c),c=n.mallocInt32(e));u.length<e&&(n.free(u),u=n.mallocInt32(e));f.length<e&&(n.free(f),f=n.mallocInt32(e));h.length<e&&(n.free(h),h=n.mallocInt32(e));var r=8*e;p.length<r&&(n.free(p),p=n.mallocDouble(r))},sweepBipartite:function(t,e,r,n,i,f,h,v,m,y){for(var x=0,b=2*t,_=t-1,w=b-1,k=r;k<n;++k){var M=f[k],A=b*k;p[x++]=i[A+_],p[x++]=-(M+1),p[x++]=i[A+w],p[x++]=M}for(var k=h;k<v;++k){var M=y[k]+o,T=b*k;p[x++]=m[T+_],p[x++]=-M,p[x++]=m[T+w],p[x++]=M}var S=x>>>1;a(p,S);for(var E=0,C=0,k=0;k<S;++k){var L=0|p[2*k+1];if(L>=o)d(c,u,C--,L=L-o|0);else if(L>=0)d(s,l,E--,L);else if(L<=-o){L=-L-o|0;for(var z=0;z<E;++z){var O=e(s[z],L);if(void 0!==O)return O}g(c,u,C++,L)}else{L=-L-1|0;for(var z=0;z<C;++z){var O=e(L,c[z]);if(void 0!==O)return O}g(s,l,E++,L)}}},sweepComplete:function(t,e,r,n,i,o,v,m,y,x){for(var b=0,_=2*t,w=t-1,k=_-1,M=r;M<n;++M){var A=o[M]+1<<1,T=_*M;p[b++]=i[T+w],p[b++]=-A,p[b++]=i[T+k],p[b++]=A}for(var M=v;M<m;++M){var A=x[M]+1<<1,S=_*M;p[b++]=y[S+w],p[b++]=1|-A,p[b++]=y[S+k],p[b++]=1|A}var E=b>>>1;a(p,E);for(var C=0,L=0,z=0,M=0;M<E;++M){var O=0|p[2*M+1],I=1&O;if(M<E-1&&O>>1==p[2*M+3]>>1&&(I=2,M+=1),O<0){for(var P=-(O>>1)-1,D=0;D<z;++D){var R=e(f[D],P);if(void 0!==R)return R}if(0!==I)for(var D=0;D<C;++D){var R=e(s[D],P);if(void 0!==R)return R}if(1!==I)for(var D=0;D<L;++D){var R=e(c[D],P);if(void 0!==R)return R}0===I?g(s,l,C++,P):1===I?g(c,u,L++,P):2===I&&g(f,h,z++,P)}else{var P=(O>>1)-1;0===I?d(s,l,C--,P):1===I?d(c,u,L--,P):2===I&&d(f,h,z--,P)}}},scanBipartite:function(t,e,r,n,i,c,u,f,h,v,m,y){var x=0,b=2*t,_=e,w=e+t,k=1,M=1;n?M=o:k=o;for(var A=i;A<c;++A){var T=A+k,S=b*A;p[x++]=u[S+_],p[x++]=-T,p[x++]=u[S+w],p[x++]=T}for(var A=h;A<v;++A){var T=A+M,E=b*A;p[x++]=m[E+_],p[x++]=-T}var C=x>>>1;a(p,C);for(var L=0,A=0;A<C;++A){var z=0|p[2*A+1];if(z<0){var T=-z,O=!1;if(T>=o?(O=!n,T-=o):(O=!!n,T-=1),O)g(s,l,L++,T);else{var I=y[T],P=b*T,D=m[P+e+1],R=m[P+e+1+t];t:for(var B=0;B<L;++B){var F=s[B],N=b*F;if(!(R<u[N+e+1]||u[N+e+1+t]<D)){for(var j=e+2;j<t;++j)if(m[P+j+t]<u[N+j]||u[N+j+t]<m[P+j])continue t;var V,U=f[F];if(void 0!==(V=n?r(I,U):r(U,I)))return V}}}}else d(s,l,L--,z-k)}},scanComplete:function(t,e,r,n,i,l,c,u,f,h,d){for(var g=0,v=2*t,m=e,y=e+t,x=n;x<i;++x){var b=x+o,_=v*x;p[g++]=l[_+m],p[g++]=-b,p[g++]=l[_+y],p[g++]=b}for(var x=u;x<f;++x){var b=x+1,w=v*x;p[g++]=h[w+m],p[g++]=-b}var k=g>>>1;a(p,k);for(var M=0,x=0;x<k;++x){var A=0|p[2*x+1];if(A<0){var b=-A;if(b>=o)s[M++]=b-o;else{var T=d[b-=1],S=v*b,E=h[S+e+1],C=h[S+e+1+t];t:for(var L=0;L<M;++L){var z=s[L],O=c[z];if(O===T)break;var I=v*z;if(!(C<l[I+e+1]||l[I+e+1+t]<E)){for(var P=e+2;P<t;++P)if(h[S+P+t]<l[I+P]||l[I+P+t]<h[S+P])continue t;var D=r(O,T);if(void 0!==D)return D}}}}else{for(var b=A-o,L=M-1;L>=0;--L)if(s[L]===b){for(var P=L+1;P<M;++P)s[P-1]=s[P];break}--M}}}};var n=t(\\\"typedarray-pool\\\"),i=t(\\\"bit-twiddle\\\"),a=t(\\\"./sort\\\"),o=1<<28,s=n.mallocInt32(1024),l=n.mallocInt32(1024),c=n.mallocInt32(1024),u=n.mallocInt32(1024),f=n.mallocInt32(1024),h=n.mallocInt32(1024),p=n.mallocDouble(8192);function d(t,e,r,n){var i=e[n],a=t[r-1];t[i]=a,e[a]=i}function g(t,e,r,n){t[r]=n,e[n]=r}},{\\\"./sort\\\":89,\\\"bit-twiddle\\\":80,\\\"typedarray-pool\\\":522}],91:[function(t,e,r){},{}],92:[function(t,e,r){var n=Object.create||function(t){var e=function(){};return e.prototype=t,new e},i=Object.keys||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.push(r);return r},a=Function.prototype.bind||function(t){var e=this;return function(){return e.apply(t,arguments)}};function o(){this._events&&Object.prototype.hasOwnProperty.call(this,\\\"_events\\\")||(this._events=n(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0}e.exports=o,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._maxListeners=void 0;var s,l=10;try{var c={};Object.defineProperty&&Object.defineProperty(c,\\\"x\\\",{value:0}),s=0===c.x}catch(t){s=!1}function u(t){return void 0===t._maxListeners?o.defaultMaxListeners:t._maxListeners}function f(t,e,r,i){var a,o,s;if(\\\"function\\\"!=typeof r)throw new TypeError('\\\"listener\\\" argument must be a function');if((o=t._events)?(o.newListener&&(t.emit(\\\"newListener\\\",e,r.listener?r.listener:r),o=t._events),s=o[e]):(o=t._events=n(null),t._eventsCount=0),s){if(\\\"function\\\"==typeof s?s=o[e]=i?[r,s]:[s,r]:i?s.unshift(r):s.push(r),!s.warned&&(a=u(t))&&a>0&&s.length>a){s.warned=!0;var l=new Error(\\\"Possible EventEmitter memory leak detected. \\\"+s.length+' \\\"'+String(e)+'\\\" listeners added. Use emitter.setMaxListeners() to increase limit.');l.name=\\\"MaxListenersExceededWarning\\\",l.emitter=t,l.type=e,l.count=s.length,\\\"object\\\"==typeof console&&console.warn&&console.warn(\\\"%s: %s\\\",l.name,l.message)}}else s=o[e]=r,++t._eventsCount;return t}function h(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var t=new Array(arguments.length),e=0;e<t.length;++e)t[e]=arguments[e];this.listener.apply(this.target,t)}}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=a.call(h,n);return i.listener=r,n.wrapFn=i,i}function d(t,e,r){var n=t._events;if(!n)return[];var i=n[e];return i?\\\"function\\\"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}(i):v(i,i.length):[]}function g(t){var e=this._events;if(e){var r=e[t];if(\\\"function\\\"==typeof r)return 1;if(r)return r.length}return 0}function v(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}s?Object.defineProperty(o,\\\"defaultMaxListeners\\\",{enumerable:!0,get:function(){return l},set:function(t){if(\\\"number\\\"!=typeof t||t<0||t!=t)throw new TypeError('\\\"defaultMaxListeners\\\" must be a positive number');l=t}}):o.defaultMaxListeners=l,o.prototype.setMaxListeners=function(t){if(\\\"number\\\"!=typeof t||t<0||isNaN(t))throw new TypeError('\\\"n\\\" argument must be a positive number');return this._maxListeners=t,this},o.prototype.getMaxListeners=function(){return u(this)},o.prototype.emit=function(t){var e,r,n,i,a,o,s=\\\"error\\\"===t;if(o=this._events)s=s&&null==o.error;else if(!s)return!1;if(s){if(arguments.length>1&&(e=arguments[1]),e instanceof Error)throw e;var l=new Error('Unhandled \\\"error\\\" event. ('+e+\\\")\\\");throw l.context=e,l}if(!(r=o[t]))return!1;var c=\\\"function\\\"==typeof r;switch(n=arguments.length){case 1:!function(t,e,r){if(e)t.call(r);else for(var n=t.length,i=v(t,n),a=0;a<n;++a)i[a].call(r)}(r,c,this);break;case 2:!function(t,e,r,n){if(e)t.call(r,n);else for(var i=t.length,a=v(t,i),o=0;o<i;++o)a[o].call(r,n)}(r,c,this,arguments[1]);break;case 3:!function(t,e,r,n,i){if(e)t.call(r,n,i);else for(var a=t.length,o=v(t,a),s=0;s<a;++s)o[s].call(r,n,i)}(r,c,this,arguments[1],arguments[2]);break;case 4:!function(t,e,r,n,i,a){if(e)t.call(r,n,i,a);else for(var o=t.length,s=v(t,o),l=0;l<o;++l)s[l].call(r,n,i,a)}(r,c,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),a=1;a<n;a++)i[a-1]=arguments[a];!function(t,e,r,n){if(e)t.apply(r,n);else for(var i=t.length,a=v(t,i),o=0;o<i;++o)a[o].apply(r,n)}(r,c,this,i)}return!0},o.prototype.addListener=function(t,e){return f(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return f(this,t,e,!0)},o.prototype.once=function(t,e){if(\\\"function\\\"!=typeof e)throw new TypeError('\\\"listener\\\" argument must be a function');return this.on(t,p(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){if(\\\"function\\\"!=typeof e)throw new TypeError('\\\"listener\\\" argument must be a function');return this.prependListener(t,p(this,t,e)),this},o.prototype.removeListener=function(t,e){var r,i,a,o,s;if(\\\"function\\\"!=typeof e)throw new TypeError('\\\"listener\\\" argument must be a function');if(!(i=this._events))return this;if(!(r=i[t]))return this;if(r===e||r.listener===e)0==--this._eventsCount?this._events=n(null):(delete i[t],i.removeListener&&this.emit(\\\"removeListener\\\",t,r.listener||e));else if(\\\"function\\\"!=typeof r){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===e||r[o].listener===e){s=r[o].listener,a=o;break}if(a<0)return this;0===a?r.shift():function(t,e){for(var r=e,n=r+1,i=t.length;n<i;r+=1,n+=1)t[r]=t[n];t.pop()}(r,a),1===r.length&&(i[t]=r[0]),i.removeListener&&this.emit(\\\"removeListener\\\",t,s||e)}return this},o.prototype.removeAllListeners=function(t){var e,r,a;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=n(null),this._eventsCount=0):r[t]&&(0==--this._eventsCount?this._events=n(null):delete r[t]),this;if(0===arguments.length){var o,s=i(r);for(a=0;a<s.length;++a)\\\"removeListener\\\"!==(o=s[a])&&this.removeAllListeners(o);return this.removeAllListeners(\\\"removeListener\\\"),this._events=n(null),this._eventsCount=0,this}if(\\\"function\\\"==typeof(e=r[t]))this.removeListener(t,e);else if(e)for(a=e.length-1;a>=0;a--)this.removeListener(t,e[a]);return this},o.prototype.listeners=function(t){return d(this,t,!0)},o.prototype.rawListeners=function(t){return d(this,t,!1)},o.listenerCount=function(t,e){return\\\"function\\\"==typeof t.listenerCount?t.listenerCount(e):g.call(t,e)},o.prototype.listenerCount=g,o.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],93:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"base64-js\\\"),i=t(\\\"ieee754\\\");r.Buffer=s,r.SlowBuffer=function(t){+t!=t&&(t=0);return s.alloc(+t)},r.INSPECT_MAX_BYTES=50;var a=2147483647;function o(t){if(t>a)throw new RangeError('The value \\\"'+t+'\\\" is invalid for option \\\"size\\\"');var e=new Uint8Array(t);return e.__proto__=s.prototype,e}function s(t,e,r){if(\\\"number\\\"==typeof t){if(\\\"string\\\"==typeof e)throw new TypeError('The \\\"string\\\" argument must be of type string. Received type number');return u(t)}return l(t,e,r)}function l(t,e,r){if(\\\"string\\\"==typeof t)return function(t,e){\\\"string\\\"==typeof e&&\\\"\\\"!==e||(e=\\\"utf8\\\");if(!s.isEncoding(e))throw new TypeError(\\\"Unknown encoding: \\\"+e);var r=0|p(t,e),n=o(r),i=n.write(t,e);i!==r&&(n=n.slice(0,i));return n}(t,e);if(ArrayBuffer.isView(t))return f(t);if(null==t)throw TypeError(\\\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \\\"+typeof t);if(j(t,ArrayBuffer)||t&&j(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('\\\"offset\\\" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('\\\"length\\\" is outside of buffer bounds');var n;n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r);return n.__proto__=s.prototype,n}(t,e,r);if(\\\"number\\\"==typeof t)throw new TypeError('The \\\"value\\\" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return s.from(n,e,r);var i=function(t){if(s.isBuffer(t)){var e=0|h(t.length),r=o(e);return 0===r.length?r:(t.copy(r,0,0,e),r)}if(void 0!==t.length)return\\\"number\\\"!=typeof t.length||V(t.length)?o(0):f(t);if(\\\"Buffer\\\"===t.type&&Array.isArray(t.data))return f(t.data)}(t);if(i)return i;if(\\\"undefined\\\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\\\"function\\\"==typeof t[Symbol.toPrimitive])return s.from(t[Symbol.toPrimitive](\\\"string\\\"),e,r);throw new TypeError(\\\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \\\"+typeof t)}function c(t){if(\\\"number\\\"!=typeof t)throw new TypeError('\\\"size\\\" argument must be of type number');if(t<0)throw new RangeError('The value \\\"'+t+'\\\" is invalid for option \\\"size\\\"')}function u(t){return c(t),o(t<0?0:0|h(t))}function f(t){for(var e=t.length<0?0:0|h(t.length),r=o(e),n=0;n<e;n+=1)r[n]=255&t[n];return r}function h(t){if(t>=a)throw new RangeError(\\\"Attempt to allocate Buffer larger than maximum size: 0x\\\"+a.toString(16)+\\\" bytes\\\");return 0|t}function p(t,e){if(s.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||j(t,ArrayBuffer))return t.byteLength;if(\\\"string\\\"!=typeof t)throw new TypeError('The \\\"string\\\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case\\\"ascii\\\":case\\\"latin1\\\":case\\\"binary\\\":return r;case\\\"utf8\\\":case\\\"utf-8\\\":return B(t).length;case\\\"ucs2\\\":case\\\"ucs-2\\\":case\\\"utf16le\\\":case\\\"utf-16le\\\":return 2*r;case\\\"hex\\\":return r>>>1;case\\\"base64\\\":return F(t).length;default:if(i)return n?-1:B(t).length;e=(\\\"\\\"+e).toLowerCase(),i=!0}}function d(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function g(t,e,r,n,i){if(0===t.length)return-1;if(\\\"string\\\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),V(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\\\"string\\\"==typeof e&&(e=s.from(e,n)),s.isBuffer(e))return 0===e.length?-1:v(t,e,r,n,i);if(\\\"number\\\"==typeof e)return e&=255,\\\"function\\\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):v(t,[e],r,n,i);throw new TypeError(\\\"val must be string, number or Buffer\\\")}function v(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&(\\\"ucs2\\\"===(n=String(n).toLowerCase())||\\\"ucs-2\\\"===n||\\\"utf16le\\\"===n||\\\"utf-16le\\\"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var u=-1;for(a=r;a<s;a++)if(c(t,a)===c(e,-1===u?0:a-u)){if(-1===u&&(u=a),a-u+1===l)return u*o}else-1!==u&&(a-=a-u),u=-1}else for(r+l>s&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;h<l;h++)if(c(t,a+h)!==c(e,h)){f=!1;break}if(f)return a}return-1}function m(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;var a=e.length;n>a/2&&(n=a/2);for(var o=0;o<n;++o){var s=parseInt(e.substr(2*o,2),16);if(V(s))return o;t[r+o]=s}return o}function y(t,e,r,n){return N(B(e,t.length-r),t,r,n)}function x(t,e,r,n){return N(function(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function b(t,e,r,n){return x(t,e,r,n)}function _(t,e,r,n){return N(F(e),t,r,n)}function w(t,e,r,n){return N(function(t,e){for(var r,n,i,a=[],o=0;o<t.length&&!((e-=2)<0);++o)r=t.charCodeAt(o),n=r>>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function k(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function M(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var a,o,s,l,c=t[i],u=null,f=c>239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(u=c);break;case 2:128==(192&(a=t[i+1]))&&(l=(31&c)<<6|63&a)>127&&(u=l);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(l=(15&c)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,f=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=f}return function(t){var e=t.length;if(e<=A)return String.fromCharCode.apply(String,t);var r=\\\"\\\",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=A));return r}(n)}r.kMaxLength=a,s.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}(),s.TYPED_ARRAY_SUPPORT||\\\"undefined\\\"==typeof console||\\\"function\\\"!=typeof console.error||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(s.prototype,\\\"parent\\\",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,\\\"offset\\\",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),\\\"undefined\\\"!=typeof Symbol&&null!=Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),s.poolSize=8192,s.from=function(t,e,r){return l(t,e,r)},s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,s.alloc=function(t,e,r){return function(t,e,r){return c(t),t<=0?o(t):void 0!==e?\\\"string\\\"==typeof r?o(t).fill(e,r):o(t).fill(e):o(t)}(t,e,r)},s.allocUnsafe=function(t){return u(t)},s.allocUnsafeSlow=function(t){return u(t)},s.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==s.prototype},s.compare=function(t,e){if(j(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),j(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(t)||!s.isBuffer(e))throw new TypeError('The \\\"buf1\\\", \\\"buf2\\\" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},s.isEncoding=function(t){switch(String(t).toLowerCase()){case\\\"hex\\\":case\\\"utf8\\\":case\\\"utf-8\\\":case\\\"ascii\\\":case\\\"latin1\\\":case\\\"binary\\\":case\\\"base64\\\":case\\\"ucs2\\\":case\\\"ucs-2\\\":case\\\"utf16le\\\":case\\\"utf-16le\\\":return!0;default:return!1}},s.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('\\\"list\\\" argument must be an Array of Buffers');if(0===t.length)return s.alloc(0);var r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;var n=s.allocUnsafe(e),i=0;for(r=0;r<t.length;++r){var a=t[r];if(j(a,Uint8Array)&&(a=s.from(a)),!s.isBuffer(a))throw new TypeError('\\\"list\\\" argument must be an Array of Buffers');a.copy(n,i),i+=a.length}return n},s.byteLength=p,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError(\\\"Buffer size must be a multiple of 16-bits\\\");for(var e=0;e<t;e+=2)d(this,e,e+1);return this},s.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError(\\\"Buffer size must be a multiple of 32-bits\\\");for(var e=0;e<t;e+=4)d(this,e,e+3),d(this,e+1,e+2);return this},s.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError(\\\"Buffer size must be a multiple of 64-bits\\\");for(var e=0;e<t;e+=8)d(this,e,e+7),d(this,e+1,e+6),d(this,e+2,e+5),d(this,e+3,e+4);return this},s.prototype.toString=function(){var t=this.length;return 0===t?\\\"\\\":0===arguments.length?M(this,0,t):function(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\\\"\\\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\\\"\\\";if((r>>>=0)<=(e>>>=0))return\\\"\\\";for(t||(t=\\\"utf8\\\");;)switch(t){case\\\"hex\\\":return E(this,e,r);case\\\"utf8\\\":case\\\"utf-8\\\":return M(this,e,r);case\\\"ascii\\\":return T(this,e,r);case\\\"latin1\\\":case\\\"binary\\\":return S(this,e,r);case\\\"base64\\\":return k(this,e,r);case\\\"ucs2\\\":case\\\"ucs-2\\\":case\\\"utf16le\\\":case\\\"utf-16le\\\":return C(this,e,r);default:if(n)throw new TypeError(\\\"Unknown encoding: \\\"+t);t=(t+\\\"\\\").toLowerCase(),n=!0}}.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(t){if(!s.isBuffer(t))throw new TypeError(\\\"Argument must be a Buffer\\\");return this===t||0===s.compare(this,t)},s.prototype.inspect=function(){var t=\\\"\\\",e=r.INSPECT_MAX_BYTES;return t=this.toString(\\\"hex\\\",0,e).replace(/(.{2})/g,\\\"$1 \\\").trim(),this.length>e&&(t+=\\\" ... \\\"),\\\"<Buffer \\\"+t+\\\">\\\"},s.prototype.compare=function(t,e,r,n,i){if(j(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),!s.isBuffer(t))throw new TypeError('The \\\"target\\\" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError(\\\"out of range index\\\");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),l=Math.min(a,o),c=this.slice(n,i),u=t.slice(e,r),f=0;f<l;++f)if(c[f]!==u[f]){a=c[f],o=u[f];break}return a<o?-1:o<a?1:0},s.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},s.prototype.indexOf=function(t,e,r){return g(this,t,e,r,!0)},s.prototype.lastIndexOf=function(t,e,r){return g(this,t,e,r,!1)},s.prototype.write=function(t,e,r,n){if(void 0===e)n=\\\"utf8\\\",r=this.length,e=0;else if(void 0===r&&\\\"string\\\"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error(\\\"Buffer.write(string, encoding, offset[, length]) is no longer supported\\\");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n=\\\"utf8\\\")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\\\"Attempt to write outside buffer bounds\\\");n||(n=\\\"utf8\\\");for(var a=!1;;)switch(n){case\\\"hex\\\":return m(this,t,e,r);case\\\"utf8\\\":case\\\"utf-8\\\":return y(this,t,e,r);case\\\"ascii\\\":return x(this,t,e,r);case\\\"latin1\\\":case\\\"binary\\\":return b(this,t,e,r);case\\\"base64\\\":return _(this,t,e,r);case\\\"ucs2\\\":case\\\"ucs-2\\\":case\\\"utf16le\\\":case\\\"utf-16le\\\":return w(this,t,e,r);default:if(a)throw new TypeError(\\\"Unknown encoding: \\\"+n);n=(\\\"\\\"+n).toLowerCase(),a=!0}},s.prototype.toJSON=function(){return{type:\\\"Buffer\\\",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function T(t,e,r){var n=\\\"\\\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function S(t,e,r){var n=\\\"\\\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function E(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i=\\\"\\\",a=e;a<r;++a)i+=R(t[a]);return i}function C(t,e,r){for(var n=t.slice(e,r),i=\\\"\\\",a=0;a<n.length;a+=2)i+=String.fromCharCode(n[a]+256*n[a+1]);return i}function L(t,e,r){if(t%1!=0||t<0)throw new RangeError(\\\"offset is not uint\\\");if(t+e>r)throw new RangeError(\\\"Trying to access beyond buffer length\\\")}function z(t,e,r,n,i,a){if(!s.isBuffer(t))throw new TypeError('\\\"buffer\\\" argument must be a Buffer instance');if(e>i||e<a)throw new RangeError('\\\"value\\\" argument is out of bounds');if(r+n>t.length)throw new RangeError(\\\"Index out of range\\\")}function O(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError(\\\"Index out of range\\\");if(r<0)throw new RangeError(\\\"Index out of range\\\")}function I(t,e,r,n,a){return e=+e,r>>>=0,a||O(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function P(t,e,r,n,a){return e=+e,r>>>=0,a||O(t,0,r,8),i.write(t,e,r,n,52,8),r+8}s.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);var n=this.subarray(t,e);return n.__proto__=s.prototype,n},s.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n},s.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},s.prototype.readUInt8=function(t,e){return t>>>=0,e||L(t,1,this.length),this[t]},s.prototype.readUInt16LE=function(t,e){return t>>>=0,e||L(t,2,this.length),this[t]|this[t+1]<<8},s.prototype.readUInt16BE=function(t,e){return t>>>=0,e||L(t,2,this.length),this[t]<<8|this[t+1]},s.prototype.readUInt32LE=function(t,e){return t>>>=0,e||L(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},s.prototype.readUInt32BE=function(t,e){return t>>>=0,e||L(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},s.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*e)),n},s.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},s.prototype.readInt8=function(t,e){return t>>>=0,e||L(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},s.prototype.readInt16LE=function(t,e){t>>>=0,e||L(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(t,e){t>>>=0,e||L(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(t,e){return t>>>=0,e||L(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},s.prototype.readInt32BE=function(t,e){return t>>>=0,e||L(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},s.prototype.readFloatLE=function(t,e){return t>>>=0,e||L(t,4,this.length),i.read(this,t,!0,23,4)},s.prototype.readFloatBE=function(t,e){return t>>>=0,e||L(t,4,this.length),i.read(this,t,!1,23,4)},s.prototype.readDoubleLE=function(t,e){return t>>>=0,e||L(t,8,this.length),i.read(this,t,!0,52,8)},s.prototype.readDoubleBE=function(t,e){return t>>>=0,e||L(t,8,this.length),i.read(this,t,!1,52,8)},s.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||z(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a<r&&(i*=256);)this[e+a]=t/i&255;return e+r},s.prototype.writeUIntBE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||z(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},s.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,1,255,0),this[e]=255&t,e+1},s.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},s.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},s.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},s.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},s.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);z(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a<r&&(o*=256);)t<0&&0===s&&0!==this[e+a-1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},s.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);z(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},s.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},s.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},s.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},s.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},s.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},s.prototype.writeFloatLE=function(t,e,r){return I(this,t,e,!0,r)},s.prototype.writeFloatBE=function(t,e,r){return I(this,t,e,!1,r)},s.prototype.writeDoubleLE=function(t,e,r){return P(this,t,e,!0,r)},s.prototype.writeDoubleBE=function(t,e,r){return P(this,t,e,!1,r)},s.prototype.copy=function(t,e,r,n){if(!s.isBuffer(t))throw new TypeError(\\\"argument should be a Buffer\\\");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError(\\\"targetStart out of bounds\\\");if(r<0||r>=this.length)throw new RangeError(\\\"Index out of range\\\");if(n<0)throw new RangeError(\\\"sourceEnd out of bounds\\\");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);var i=n-r;if(this===t&&\\\"function\\\"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(e,r,n);else if(this===t&&r<e&&e<n)for(var a=i-1;a>=0;--a)t[a+e]=this[a+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return i},s.prototype.fill=function(t,e,r,n){if(\\\"string\\\"==typeof t){if(\\\"string\\\"==typeof e?(n=e,e=0,r=this.length):\\\"string\\\"==typeof r&&(n=r,r=this.length),void 0!==n&&\\\"string\\\"!=typeof n)throw new TypeError(\\\"encoding must be a string\\\");if(\\\"string\\\"==typeof n&&!s.isEncoding(n))throw new TypeError(\\\"Unknown encoding: \\\"+n);if(1===t.length){var i=t.charCodeAt(0);(\\\"utf8\\\"===n&&i<128||\\\"latin1\\\"===n)&&(t=i)}}else\\\"number\\\"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<r)throw new RangeError(\\\"Out of range index\\\");if(r<=e)return this;var a;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),\\\"number\\\"==typeof t)for(a=e;a<r;++a)this[a]=t;else{var o=s.isBuffer(t)?t:s.from(t,n),l=o.length;if(0===l)throw new TypeError('The value \\\"'+t+'\\\" is invalid for argument \\\"value\\\"');for(a=0;a<r-e;++a)this[a+e]=o[a%l]}return this};var D=/[^+\\\\/0-9A-Za-z-_]/g;function R(t){return t<16?\\\"0\\\"+t.toString(16):t.toString(16)}function B(t,e){var r;e=e||1/0;for(var n=t.length,i=null,a=[],o=0;o<n;++o){if((r=t.charCodeAt(o))>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\\\"Invalid code point\\\");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function F(t){return n.toByteArray(function(t){if((t=(t=t.split(\\\"=\\\")[0]).trim().replace(D,\\\"\\\")).length<2)return\\\"\\\";for(;t.length%4!=0;)t+=\\\"=\\\";return t}(t))}function N(t,e,r,n){for(var i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function j(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function V(t){return t!=t}},{\\\"base64-js\\\":62,ieee754:395}],94:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/monotone\\\"),i=t(\\\"./lib/triangulation\\\"),a=t(\\\"./lib/delaunay\\\"),o=t(\\\"./lib/filter\\\");function s(t){return[Math.min(t[0],t[1]),Math.max(t[0],t[1])]}function l(t,e){return t[0]-e[0]||t[1]-e[1]}function c(t,e,r){return e in t?t[e]:r}e.exports=function(t,e,r){Array.isArray(e)?(r=r||{},e=e||[]):(r=e||{},e=[]);var u=!!c(r,\\\"delaunay\\\",!0),f=!!c(r,\\\"interior\\\",!0),h=!!c(r,\\\"exterior\\\",!0),p=!!c(r,\\\"infinity\\\",!1);if(!f&&!h||0===t.length)return[];var d=n(t,e);if(u||f!==h||p){for(var g=i(t.length,function(t){return t.map(s).sort(l)}(e)),v=0;v<d.length;++v){var m=d[v];g.addTriangle(m[0],m[1],m[2])}return u&&a(t,g),h?f?p?o(g,0,p):g.cells():o(g,1,p):o(g,-1)}return d}},{\\\"./lib/delaunay\\\":95,\\\"./lib/filter\\\":96,\\\"./lib/monotone\\\":97,\\\"./lib/triangulation\\\":98}],95:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"robust-in-sphere\\\")[4];t(\\\"binary-search-bounds\\\");function i(t,e,r,i,a,o){var s=e.opposite(i,a);if(!(s<0)){if(a<i){var l=i;i=a,a=l,l=o,o=s,s=l}e.isConstraint(i,a)||n(t[i],t[a],t[o],t[s])<0&&r.push(i,a)}}e.exports=function(t,e){for(var r=[],a=t.length,o=e.stars,s=0;s<a;++s)for(var l=o[s],c=1;c<l.length;c+=2){var u=l[c];if(!(u<s)&&!e.isConstraint(s,u)){for(var f=l[c-1],h=-1,p=1;p<l.length;p+=2)if(l[p-1]===u){h=l[p];break}h<0||n(t[s],t[u],t[f],t[h])<0&&r.push(s,u)}}for(;r.length>0;){for(var u=r.pop(),s=r.pop(),f=-1,h=-1,l=o[s],d=1;d<l.length;d+=2){var g=l[d-1],v=l[d];g===u?h=v:v===u&&(f=g)}f<0||h<0||(n(t[s],t[u],t[f],t[h])>=0||(e.flip(s,u),i(t,e,r,f,s,h),i(t,e,r,s,h,f),i(t,e,r,h,u,f),i(t,e,r,u,f,h)))}}},{\\\"binary-search-bounds\\\":99,\\\"robust-in-sphere\\\":484}],96:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"binary-search-bounds\\\");function a(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}e.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,i=0;i<n;++i){var s=r[i],l=s[0],c=s[1],u=s[2];c<u?c<l&&(s[0]=c,s[1]=u,s[2]=l):u<l&&(s[0]=u,s[1]=l,s[2]=c)}r.sort(o);for(var f=new Array(n),i=0;i<f.length;++i)f[i]=0;var h=[],p=[],d=new Array(3*n),g=new Array(3*n),v=null;e&&(v=[]);for(var m=new a(r,d,g,f,h,p,v),i=0;i<n;++i)for(var s=r[i],y=0;y<3;++y){var l=s[y],c=s[(y+1)%3],x=d[3*i+y]=m.locate(c,l,t.opposite(c,l)),b=g[3*i+y]=t.isConstraint(l,c);x<0&&(b?p.push(i):(h.push(i),f[i]=1),e&&v.push([c,l,-1]))}return m}(t,r);if(0===e)return r?n.cells.concat(n.boundary):n.cells;var i=1,s=n.active,l=n.next,c=n.flags,u=n.cells,f=n.constraint,h=n.neighbor;for(;s.length>0||l.length>0;){for(;s.length>0;){var p=s.pop();if(c[p]!==-i){c[p]=i;u[p];for(var d=0;d<3;++d){var g=h[3*p+d];g>=0&&0===c[g]&&(f[3*p+d]?l.push(g):(s.push(g),c[g]=i))}}}var v=l;l=s,s=v,l.length=0,i=-i}var m=function(t,e,r){for(var n=0,i=0;i<t.length;++i)e[i]===r&&(t[n++]=t[i]);return t.length=n,t}(u,c,e);if(r)return m.concat(n.boundary);return m},a.prototype.locate=(n=[0,0,0],function(t,e,r){var a=t,s=e,l=r;return e<r?e<t&&(a=e,s=r,l=t):r<t&&(a=r,s=t,l=e),a<0?-1:(n[0]=a,n[1]=s,n[2]=l,i.eq(this.cells,n,o))})},{\\\"binary-search-bounds\\\":99}],97:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"robust-orientation\\\")[3],a=0,o=1,s=2;function l(t,e,r,n,i){this.a=t,this.b=e,this.idx=r,this.lowerIds=n,this.upperIds=i}function c(t,e,r,n){this.a=t,this.b=e,this.type=r,this.idx=n}function u(t,e){var r=t.a[0]-e.a[0]||t.a[1]-e.a[1]||t.type-e.type;return r||(t.type!==a&&(r=i(t.a,t.b,e.b))?r:t.idx-e.idx)}function f(t,e){return i(t.a,t.b,e)}function h(t,e,r,a,o){for(var s=n.lt(e,a,f),l=n.gt(e,a,f),c=s;c<l;++c){for(var u=e[c],h=u.lowerIds,p=h.length;p>1&&i(r[h[p-2]],r[h[p-1]],a)>0;)t.push([h[p-1],h[p-2],o]),p-=1;h.length=p,h.push(o);var d=u.upperIds;for(p=d.length;p>1&&i(r[d[p-2]],r[d[p-1]],a)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function p(t,e){var r;return(r=t.a[0]<e.a[0]?i(t.a,t.b,e.a):i(e.b,e.a,t.a))?r:(r=e.b[0]<t.b[0]?i(t.a,t.b,e.b):i(e.b,e.a,t.b))||t.idx-e.idx}function d(t,e,r){var i=n.le(t,r,p),a=t[i],o=a.upperIds,s=o[o.length-1];a.upperIds=[s],t.splice(i+1,0,new l(r.a,r.b,r.idx,[s],o))}function g(t,e,r){var i=r.a;r.a=r.b,r.b=i;var a=n.eq(t,r,p),o=t[a];t[a-1].upperIds=o.upperIds,t.splice(a,1)}e.exports=function(t,e){for(var r=t.length,n=e.length,i=[],f=0;f<r;++f)i.push(new c(t[f],null,a,f));for(var f=0;f<n;++f){var p=e[f],v=t[p[0]],m=t[p[1]];v[0]<m[0]?i.push(new c(v,m,s,f),new c(m,v,o,f)):v[0]>m[0]&&i.push(new c(m,v,s,f),new c(v,m,o,f))}i.sort(u);for(var y=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),x=[new l([y,1],[y,0],-1,[],[],[],[])],b=[],f=0,_=i.length;f<_;++f){var w=i[f],k=w.type;k===a?h(b,x,t,w.a,w.idx):k===s?d(x,t,w):g(x,t,w)}return b}},{\\\"binary-search-bounds\\\":99,\\\"robust-orientation\\\":486}],98:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\");function i(t,e){this.stars=t,this.edges=e}e.exports=function(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=[];return new i(r,e)};var a=i.prototype;function o(t,e,r){for(var n=1,i=t.length;n<i;n+=2)if(t[n-1]===e&&t[n]===r)return t[n-1]=t[i-2],t[n]=t[i-1],void(t.length=i-2)}a.isConstraint=function(){var t=[0,0];function e(t,e){return t[0]-e[0]||t[1]-e[1]}return function(r,i){return t[0]=Math.min(r,i),t[1]=Math.max(r,i),n.eq(this.edges,t,e)>=0}}(),a.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},a.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},a.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;n<i;n+=2)if(r[n]===t)return r[n-1];return-1},a.flip=function(t,e){var r=this.opposite(t,e),n=this.opposite(e,t);this.removeTriangle(t,e,r),this.removeTriangle(e,t,n),this.addTriangle(t,n,r),this.addTriangle(e,r,n)},a.edges=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;a+=2)e.push([i[a],i[a+1]]);return e},a.cells=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;a+=2){var s=i[a],l=i[a+1];r<Math.min(s,l)&&e.push([r,s,l])}return e}},{\\\"binary-search-bounds\\\":99}],99:[function(t,e,r){\\\"use strict\\\";function n(t,e,r,n,i){var a=[\\\"function \\\",t,\\\"(a,l,h,\\\",n.join(\\\",\\\"),\\\"){\\\",i?\\\"\\\":\\\"var i=\\\",r?\\\"l-1\\\":\\\"h+1\\\",\\\";while(l<=h){var m=(l+h)>>>1,x=a[m]\\\"];return i?e.indexOf(\\\"c\\\")<0?a.push(\\\";if(x===y){return m}else if(x<=y){\\\"):a.push(\\\";var p=c(x,y);if(p===0){return m}else if(p<=0){\\\"):a.push(\\\";if(\\\",e,\\\"){i=m;\\\"),r?a.push(\\\"l=m+1}else{h=m-1}\\\"):a.push(\\\"h=m-1}else{l=m+1}\\\"),a.push(\\\"}\\\"),i?a.push(\\\"return -1};\\\"):a.push(\\\"return i};\\\"),a.join(\\\"\\\")}function i(t,e,r,i){return new Function([n(\\\"A\\\",\\\"x\\\"+t+\\\"y\\\",e,[\\\"y\\\"],i),n(\\\"P\\\",\\\"c(x,y)\\\"+t+\\\"0\\\",e,[\\\"y\\\",\\\"c\\\"],i),\\\"function dispatchBsearch\\\",r,\\\"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch\\\",r].join(\\\"\\\"))()}e.exports={ge:i(\\\">=\\\",!1,\\\"GE\\\"),gt:i(\\\">\\\",!1,\\\"GT\\\"),lt:i(\\\"<\\\",!0,\\\"LT\\\"),le:i(\\\"<=\\\",!0,\\\"LE\\\"),eq:i(\\\"-\\\",!0,\\\"EQ\\\",!0)}},{}],100:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=1,r=1;r<t.length;++r)for(var n=0;n<r;++n)if(t[r]<t[n])e=-e;else if(t[n]===t[r])return 0;return e}},{}],101:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"dup\\\"),i=t(\\\"robust-linear-solve\\\");function a(t,e){for(var r=0,n=t.length,i=0;i<n;++i)r+=t[i]*e[i];return r}function o(t){var e=t.length;if(0===e)return[];t[0].length;var r=n([t.length+1,t.length+1],1),o=n([t.length+1],1);r[e][e]=0;for(var s=0;s<e;++s){for(var l=0;l<=s;++l)r[l][s]=r[s][l]=2*a(t[s],t[l]);o[s]=a(t[s],t[s])}var c=i(r,o),u=0,f=c[e+1];for(s=0;s<f.length;++s)u+=f[s];var h=new Array(e);for(s=0;s<e;++s){f=c[s];var p=0;for(l=0;l<f.length;++l)p+=f[l];h[s]=p/u}return h}function s(t){if(0===t.length)return[];for(var e=t[0].length,r=n([e]),i=o(t),a=0;a<t.length;++a)for(var s=0;s<e;++s)r[s]+=t[a][s]*i[a];return r}s.barycenetric=o,e.exports=s},{dup:155,\\\"robust-linear-solve\\\":485}],102:[function(t,e,r){e.exports=function(t){for(var e=n(t),r=0,i=0;i<t.length;++i)for(var a=t[i],o=0;o<e.length;++o)r+=Math.pow(a[o]-e[o],2);return Math.sqrt(r/t.length)};var n=t(\\\"circumcenter\\\")},{circumcenter:101}],103:[function(t,e,r){e.exports=function(t,e,r){return e<r?t<e?e:t>r?r:t:t<r?r:t>e?e:t}},{}],104:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n;if(r){n=e;for(var i=new Array(e.length),a=0;a<e.length;++a){var o=e[a];i[a]=[o[0],o[1],r[a]]}e=i}var s=function(t,e,r){var n=d(t,[],p(t));return m(e,n,r),!!n}(t,e,!!r);for(;y(t,e,!!r);)s=!0;if(r&&s){n.length=0,r.length=0;for(var a=0;a<e.length;++a){var o=e[a];n.push([o[0],o[1]]),r.push(o[2])}}return s};var n=t(\\\"union-find\\\"),i=t(\\\"box-intersect\\\"),a=t(\\\"robust-segment-intersect\\\"),o=t(\\\"big-rat\\\"),s=t(\\\"big-rat/cmp\\\"),l=t(\\\"big-rat/to-float\\\"),c=t(\\\"rat-vec\\\"),u=t(\\\"nextafter\\\"),f=t(\\\"./lib/rat-seg-intersect\\\");function h(t){var e=l(t);return[u(e,-1/0),u(e,1/0)]}function p(t){for(var e=new Array(t.length),r=0;r<t.length;++r){var n=t[r];e[r]=[u(n[0],-1/0),u(n[1],-1/0),u(n[0],1/0),u(n[1],1/0)]}return e}function d(t,e,r){for(var a=e.length,o=new n(a),s=[],l=0;l<e.length;++l){var c=e[l],f=h(c[0]),p=h(c[1]);s.push([u(f[0],-1/0),u(p[0],-1/0),u(f[1],1/0),u(p[1],1/0)])}i(s,function(t,e){o.link(t,e)});var d=!0,g=new Array(a);for(l=0;l<a;++l){(m=o.find(l))!==l&&(d=!1,t[m]=[Math.min(t[l][0],t[m][0]),Math.min(t[l][1],t[m][1])])}if(d)return null;var v=0;for(l=0;l<a;++l){var m;(m=o.find(l))===l?(g[l]=v,t[v++]=t[l]):g[l]=-1}t.length=v;for(l=0;l<a;++l)g[l]<0&&(g[l]=g[o.find(l)]);return g}function g(t,e){return t[0]-e[0]||t[1]-e[1]}function v(t,e){var r=t[0]-e[0]||t[1]-e[1];return r||(t[2]<e[2]?-1:t[2]>e[2]?1:0)}function m(t,e,r){if(0!==t.length){if(e)for(var n=0;n<t.length;++n){var i=e[(o=t[n])[0]],a=e[o[1]];o[0]=Math.min(i,a),o[1]=Math.max(i,a)}else for(n=0;n<t.length;++n){var o;i=(o=t[n])[0],a=o[1];o[0]=Math.min(i,a),o[1]=Math.max(i,a)}r?t.sort(v):t.sort(g);var s=1;for(n=1;n<t.length;++n){var l=t[n-1],c=t[n];(c[0]!==l[0]||c[1]!==l[1]||r&&c[2]!==l[2])&&(t[s++]=c)}t.length=s}}function y(t,e,r){var n=function(t,e){for(var r=new Array(e.length),n=0;n<e.length;++n){var i=e[n],a=t[i[0]],o=t[i[1]];r[n]=[u(Math.min(a[0],o[0]),-1/0),u(Math.min(a[1],o[1]),-1/0),u(Math.max(a[0],o[0]),1/0),u(Math.max(a[1],o[1]),1/0)]}return r}(t,e),h=function(t,e,r){var n=[];return i(r,function(r,i){var o=e[r],s=e[i];if(o[0]!==s[0]&&o[0]!==s[1]&&o[1]!==s[0]&&o[1]!==s[1]){var l=t[o[0]],c=t[o[1]],u=t[s[0]],f=t[s[1]];a(l,c,u,f)&&n.push([r,i])}}),n}(t,e,n),g=p(t),v=function(t,e,r,n){var o=[];return i(r,n,function(r,n){var i=e[r];if(i[0]!==n&&i[1]!==n){var s=t[n],l=t[i[0]],c=t[i[1]];a(l,c,s,s)&&o.push([r,n])}}),o}(t,e,n,g),y=d(t,function(t,e,r,n,i){var a,u,h=t.map(function(t){return[o(t[0]),o(t[1])]});for(a=0;a<r.length;++a){var p=r[a];u=p[0];var d=p[1],g=e[u],v=e[d],m=f(c(t[g[0]]),c(t[g[1]]),c(t[v[0]]),c(t[v[1]]));if(m){var y=t.length;t.push([l(m[0]),l(m[1])]),h.push(m),n.push([u,y],[d,y])}}for(n.sort(function(t,e){if(t[0]!==e[0])return t[0]-e[0];var r=h[t[1]],n=h[e[1]];return s(r[0],n[0])||s(r[1],n[1])}),a=n.length-1;a>=0;--a){var x=e[u=(S=n[a])[0]],b=x[0],_=x[1],w=t[b],k=t[_];if((w[0]-k[0]||w[1]-k[1])<0){var M=b;b=_,_=M}x[0]=b;var A,T=x[1]=S[1];for(i&&(A=x[2]);a>0&&n[a-1][0]===u;){var S,E=(S=n[--a])[1];i?e.push([T,E,A]):e.push([T,E]),T=E}i?e.push([T,_,A]):e.push([T,_])}return h}(t,e,h,v,r));return m(e,y,r),!!y||(h.length>0||v.length>0)}},{\\\"./lib/rat-seg-intersect\\\":105,\\\"big-rat\\\":66,\\\"big-rat/cmp\\\":64,\\\"big-rat/to-float\\\":78,\\\"box-intersect\\\":84,nextafter:434,\\\"rat-vec\\\":469,\\\"robust-segment-intersect\\\":489,\\\"union-find\\\":523}],105:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var a=s(e,t),f=s(n,r),h=u(a,f);if(0===o(h))return null;var p=s(t,r),d=u(f,p),g=i(d,h),v=c(a,g);return l(t,v)};var n=t(\\\"big-rat/mul\\\"),i=t(\\\"big-rat/div\\\"),a=t(\\\"big-rat/sub\\\"),o=t(\\\"big-rat/sign\\\"),s=t(\\\"rat-vec/sub\\\"),l=t(\\\"rat-vec/add\\\"),c=t(\\\"rat-vec/muls\\\");function u(t,e){return a(n(t[0],e[1]),n(t[1],e[0]))}},{\\\"big-rat/div\\\":65,\\\"big-rat/mul\\\":75,\\\"big-rat/sign\\\":76,\\\"big-rat/sub\\\":77,\\\"rat-vec/add\\\":468,\\\"rat-vec/muls\\\":470,\\\"rat-vec/sub\\\":471}],106:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"clamp\\\");function i(t,e){null==e&&(e=!0);var r=t[0],i=t[1],a=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,i*=255,a*=255,o*=255),16777216*(r=255&n(r,0,255))+((i=255&n(i,0,255))<<16)+((a=255&n(a,0,255))<<8)+(o=255&n(o,0,255))}e.exports=i,e.exports.to=i,e.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]}},{clamp:103}],107:[function(t,e,r){\\\"use strict\\\";e.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]}},{}],108:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-rgba\\\"),i=t(\\\"clamp\\\"),a=t(\\\"dtype\\\");e.exports=function(t,e){\\\"float\\\"!==e&&e||(e=\\\"array\\\"),\\\"uint\\\"===e&&(e=\\\"uint8\\\"),\\\"uint_clamped\\\"===e&&(e=\\\"uint8_clamped\\\");var r=new(a(e))(4),o=\\\"uint8\\\"!==e&&\\\"uint8_clamped\\\"!==e;return t.length&&\\\"string\\\"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=i(Math.floor(255*t[0]),0,255),r[1]=i(Math.floor(255*t[1]),0,255),r[2]=i(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:i(Math.floor(255*t[3]),0,255)),r)}},{clamp:103,\\\"color-rgba\\\":110,dtype:154}],109:[function(t,e,r){(function(r){\\\"use strict\\\";var n=t(\\\"color-name\\\"),i=t(\\\"is-plain-obj\\\"),a=t(\\\"defined\\\");e.exports=function(t){var e,s,l=[],c=1;if(\\\"string\\\"==typeof t)if(n[t])l=n[t].slice(),s=\\\"rgb\\\";else if(\\\"transparent\\\"===t)c=0,s=\\\"rgb\\\",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var u=t.slice(1),f=u.length,h=f<=4;c=1,h?(l=[parseInt(u[0]+u[0],16),parseInt(u[1]+u[1],16),parseInt(u[2]+u[2],16)],4===f&&(c=parseInt(u[3]+u[3],16)/255)):(l=[parseInt(u[0]+u[1],16),parseInt(u[2]+u[3],16),parseInt(u[4]+u[5],16)],8===f&&(c=parseInt(u[6]+u[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s=\\\"rgb\\\"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\\\\s*\\\\(([^\\\\)]*)\\\\)/.exec(t)){var p=e[1],u=p.replace(/a$/,\\\"\\\");s=u;var f=\\\"cmyk\\\"===u?4:\\\"gray\\\"===u?1:3;l=e[2].trim().split(/\\\\s*,\\\\s*/).map(function(t,e){if(/%$/.test(t))return e===f?parseFloat(t)/100:\\\"rgb\\\"===u?255*parseFloat(t)/100:parseFloat(t);if(\\\"h\\\"===u[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)}),p===u&&l.push(1),c=void 0===l[f]?1:l[f],l=l.slice(0,f)}else t.length>10&&/[0-9](?:\\\\s|\\\\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map(function(t){return parseFloat(t)}),s=t.match(/([a-z])/gi).join(\\\"\\\").toLowerCase());else if(isNaN(t))if(i(t)){var d=a(t.r,t.red,t.R,null);null!==d?(s=\\\"rgb\\\",l=[d,a(t.g,t.green,t.G),a(t.b,t.blue,t.B)]):(s=\\\"hsl\\\",l=[a(t.h,t.hue,t.H),a(t.s,t.saturation,t.S),a(t.l,t.lightness,t.L,t.b,t.brightness)]),c=a(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(c/=100)}else(Array.isArray(t)||r.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s=\\\"rgb\\\",c=4===t.length?t[3]:1);else s=\\\"rgb\\\",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:c}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"color-name\\\":107,defined:149,\\\"is-plain-obj\\\":405}],110:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-parse\\\"),i=t(\\\"color-space/hsl\\\"),a=t(\\\"clamp\\\");e.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=a(r.values[0],0,255),e[1]=a(r.values[1],0,255),e[2]=a(r.values[2],0,255),\\\"h\\\"===r.space[0]&&(e=i.rgb(e)),e.push(a(r.alpha,0,1)),e):[]}},{clamp:103,\\\"color-parse\\\":109,\\\"color-space/hsl\\\":111}],111:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./rgb\\\");e.exports={name:\\\"hsl\\\",min:[0,0,0],max:[360,100,100],channel:[\\\"hue\\\",\\\"saturation\\\",\\\"lightness\\\"],alias:[\\\"HSL\\\"],rgb:function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var c=0;c<3;c++)(n=o+1/3*-(c-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[c]=255*a;return i}},n.hsl=function(t){var e,r,n=t[0]/255,i=t[1]/255,a=t[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o;return s===o?e=0:n===s?e=(i-a)/l:i===s?e=2+(a-n)/l:a===s&&(e=4+(n-i)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},{\\\"./rgb\\\":112}],112:[function(t,e,r){\\\"use strict\\\";e.exports={name:\\\"rgb\\\",min:[0,0,0],max:[255,255,255],channel:[\\\"red\\\",\\\"green\\\",\\\"blue\\\"],alias:[\\\"RGB\\\"]}},{}],113:[function(t,e,r){e.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]}],cool:[{index:0,rgb:[0,255,255]},{index:1,rgb:[255,0,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]}]}},{}],114:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./colorScale\\\"),i=t(\\\"lerp\\\");function a(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r=\\\"#\\\",n=0;n<3;++n)r+=(\\\"00\\\"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return\\\"rgba(\\\"+t.join(\\\",\\\")+\\\")\\\"}e.exports=function(t){var e,r,l,c,u,f,h,p,d,g;t||(t={});p=(t.nshades||72)-1,h=t.format||\\\"hex\\\",(f=t.colormap)||(f=\\\"jet\\\");if(\\\"string\\\"==typeof f){if(f=f.toLowerCase(),!n[f])throw Error(f+\\\" not a supported colorscale\\\");u=n[f]}else{if(!Array.isArray(f))throw Error(\\\"unsupported colormap option\\\",f);u=f.slice()}if(u.length>p)throw new Error(f+\\\" map requires nshades to be at least size \\\"+u.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():\\\"number\\\"==typeof t.alpha?[t.alpha,t.alpha]:[1,1];e=u.map(function(t){return Math.round(t.index*p)}),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var v=u.map(function(t,e){var r=u[e].index,n=u[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1?n:(n[3]=d[0]+(d[1]-d[0])*r,n)}),m=[];for(g=0;g<e.length-1;++g){c=e[g+1]-e[g],r=v[g],l=v[g+1];for(var y=0;y<c;y++){var x=y/c;m.push([Math.round(i(r[0],l[0],x)),Math.round(i(r[1],l[1],x)),Math.round(i(r[2],l[2],x)),i(r[3],l[3],x)])}}m.push(u[u.length-1].rgb.concat(d[1])),\\\"hex\\\"===h?m=m.map(o):\\\"rgbaString\\\"===h?m=m.map(s):\\\"float\\\"===h&&(m=m.map(a));return m}},{\\\"./colorScale\\\":113,lerp:408}],115:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,a){var o=n(e,r,a);if(0===o){var s=i(n(t,e,r)),c=i(n(t,e,a));if(s===c){if(0===s){var u=l(t,e,r),f=l(t,e,a);return u===f?0:u?1:-1}return 0}return 0===c?s>0?-1:l(t,e,a)?-1:1:0===s?c>0?1:l(t,e,r)?1:-1:i(c-s)}var h=n(t,e,r);if(h>0)return o>0&&n(t,e,a)>0?1:-1;if(h<0)return o>0||n(t,e,a)>0?1:-1;var p=n(t,e,a);return p>0?1:l(t,e,r)?1:-1};var n=t(\\\"robust-orientation\\\"),i=t(\\\"signum\\\"),a=t(\\\"two-sum\\\"),o=t(\\\"robust-product\\\"),s=t(\\\"robust-sum\\\");function l(t,e,r){var n=a(t[0],-e[0]),i=a(t[1],-e[1]),l=a(r[0],-e[0]),c=a(r[1],-e[1]),u=s(o(n,l),o(i,c));return u[u.length-1]>=0}},{\\\"robust-orientation\\\":486,\\\"robust-product\\\":487,\\\"robust-sum\\\":491,signum:492,\\\"two-sum\\\":521}],116:[function(t,e,r){e.exports=function(t,e){var r=t.length,a=t.length-e.length;if(a)return a;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return t[0]+t[1]-e[0]-e[1]||n(t[0],t[1])-n(e[0],e[1]);case 3:var o=t[0]+t[1],s=e[0]+e[1];if(a=o+t[2]-(s+e[2]))return a;var l=n(t[0],t[1]),c=n(e[0],e[1]);return n(l,t[2])-n(c,e[2])||n(l+t[2],o)-n(c+e[2],s);case 4:var u=t[0],f=t[1],h=t[2],p=t[3],d=e[0],g=e[1],v=e[2],m=e[3];return u+f+h+p-(d+g+v+m)||n(u,f,h,p)-n(d,g,v,m,d)||n(u+f,u+h,u+p,f+h,f+p,h+p)-n(d+g,d+v,d+m,g+v,g+m,v+m)||n(u+f+h,u+f+p,u+h+p,f+h+p)-n(d+g+v,d+g+m,d+v+m,g+v+m);default:for(var y=t.slice().sort(i),x=e.slice().sort(i),b=0;b<r;++b)if(a=y[b]-x[b])return a;return 0}};var n=Math.min;function i(t,e){return t-e}},{}],117:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"compare-cell\\\"),i=t(\\\"cell-orientation\\\");e.exports=function(t,e){return n(t,e)||i(t)-i(e)}},{\\\"cell-orientation\\\":100,\\\"compare-cell\\\":116}],118:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/ch1d\\\"),i=t(\\\"./lib/ch2d\\\"),a=t(\\\"./lib/chnd\\\");e.exports=function(t){var e=t.length;if(0===e)return[];if(1===e)return[[0]];var r=t[0].length;if(0===r)return[];if(1===r)return n(t);if(2===r)return i(t);return a(t,r)}},{\\\"./lib/ch1d\\\":119,\\\"./lib/ch2d\\\":120,\\\"./lib/chnd\\\":121}],119:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=0,r=0,n=1;n<t.length;++n)t[n][0]<t[e][0]&&(e=n),t[n][0]>t[r][0]&&(r=n);return e<r?[[e],[r]]:e>r?[[r],[e]]:[[e]]}},{}],120:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var i=new Array(r),a=e[r-1],o=0;o<r;++o){var s=e[o];i[o]=[a,s],a=s}return i};var n=t(\\\"monotone-convex-hull-2d\\\")},{\\\"monotone-convex-hull-2d\\\":417}],121:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){try{return n(t,!0)}catch(s){var r=i(t);if(r.length<=e)return[];var a=function(t,e){for(var r=t.length,n=new Array(r),i=0;i<e.length;++i)n[i]=t[e[i]];for(var a=e.length,i=0;i<r;++i)e.indexOf(i)<0&&(n[a++]=t[i]);return n}(t,r),o=n(a,!0);return function(t,e){for(var r=t.length,n=e.length,i=0;i<r;++i)for(var a=t[i],o=0;o<a.length;++o){var s=a[o];if(s<n)a[o]=e[s];else{s-=n;for(var l=0;l<n;++l)s>=e[l]&&(s+=1);a[o]=s}}return t}(o,r)}};var n=t(\\\"incremental-convex-hull\\\"),i=t(\\\"affine-hull\\\")},{\\\"affine-hull\\\":50,\\\"incremental-convex-hull\\\":396}],122:[function(t,e,r){e.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\\\"}},{}],123:[function(t,e,r){e.exports=[\\\"xx-small\\\",\\\"x-small\\\",\\\"small\\\",\\\"medium\\\",\\\"large\\\",\\\"x-large\\\",\\\"xx-large\\\",\\\"larger\\\",\\\"smaller\\\"]},{}],124:[function(t,e,r){e.exports=[\\\"normal\\\",\\\"condensed\\\",\\\"semi-condensed\\\",\\\"extra-condensed\\\",\\\"ultra-condensed\\\",\\\"expanded\\\",\\\"semi-expanded\\\",\\\"extra-expanded\\\",\\\"ultra-expanded\\\"]},{}],125:[function(t,e,r){e.exports=[\\\"normal\\\",\\\"italic\\\",\\\"oblique\\\"]},{}],126:[function(t,e,r){e.exports=[\\\"normal\\\",\\\"bold\\\",\\\"bolder\\\",\\\"lighter\\\",\\\"100\\\",\\\"200\\\",\\\"300\\\",\\\"400\\\",\\\"500\\\",\\\"600\\\",\\\"700\\\",\\\"800\\\",\\\"900\\\"]},{}],127:[function(t,e,r){\\\"use strict\\\";e.exports={parse:t(\\\"./parse\\\"),stringify:t(\\\"./stringify\\\")}},{\\\"./parse\\\":129,\\\"./stringify\\\":130}],128:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"css-font-size-keywords\\\");e.exports={isSize:function(t){return/^[\\\\d\\\\.]/.test(t)||-1!==t.indexOf(\\\"/\\\")||-1!==n.indexOf(t)}}},{\\\"css-font-size-keywords\\\":123}],129:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"unquote\\\"),i=t(\\\"css-global-keywords\\\"),a=t(\\\"css-system-font-keywords\\\"),o=t(\\\"css-font-weight-keywords\\\"),s=t(\\\"css-font-style-keywords\\\"),l=t(\\\"css-font-stretch-keywords\\\"),c=t(\\\"string-split-by\\\"),u=t(\\\"./lib/util\\\").isSize;e.exports=h;var f=h.cache={};function h(t){if(\\\"string\\\"!=typeof t)throw new Error(\\\"Font argument must be a string.\\\");if(f[t])return f[t];if(\\\"\\\"===t)throw new Error(\\\"Cannot parse an empty string.\\\");if(-1!==a.indexOf(t))return f[t]={system:t};for(var e,r={style:\\\"normal\\\",variant:\\\"normal\\\",weight:\\\"normal\\\",stretch:\\\"normal\\\",lineHeight:\\\"normal\\\",size:\\\"1rem\\\",family:[\\\"serif\\\"]},h=c(t,/\\\\s+/);e=h.shift();){if(-1!==i.indexOf(e))return[\\\"style\\\",\\\"variant\\\",\\\"weight\\\",\\\"stretch\\\"].forEach(function(t){r[t]=e}),f[t]=r;if(-1===s.indexOf(e))if(\\\"normal\\\"!==e&&\\\"small-caps\\\"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(u(e)){var d=c(e,\\\"/\\\");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):\\\"/\\\"===h[0]&&(h.shift(),r.lineHeight=p(h.shift())),!h.length)throw new Error(\\\"Missing required font-family.\\\");return r.family=c(h.join(\\\" \\\"),/\\\\s*,\\\\s*/).map(n),f[t]=r}throw new Error(\\\"Unknown or unsupported font token: \\\"+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error(\\\"Missing required font-size.\\\")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},{\\\"./lib/util\\\":128,\\\"css-font-stretch-keywords\\\":124,\\\"css-font-style-keywords\\\":125,\\\"css-font-weight-keywords\\\":126,\\\"css-global-keywords\\\":131,\\\"css-system-font-keywords\\\":132,\\\"string-split-by\\\":505,unquote:525}],130:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"pick-by-alias\\\"),i=t(\\\"./lib/util\\\").isSize,a=g(t(\\\"css-global-keywords\\\")),o=g(t(\\\"css-system-font-keywords\\\")),s=g(t(\\\"css-font-weight-keywords\\\")),l=g(t(\\\"css-font-style-keywords\\\")),c=g(t(\\\"css-font-stretch-keywords\\\")),u={normal:1,\\\"small-caps\\\":1},f={serif:1,\\\"sans-serif\\\":1,monospace:1,cursive:1,fantasy:1,\\\"system-ui\\\":1},h=\\\"1rem\\\",p=\\\"serif\\\";function d(t,e){if(t&&!e[t]&&!a[t])throw Error(\\\"Unknown keyword `\\\"+t+\\\"`\\\");return t}function g(t){for(var e={},r=0;r<t.length;r++)e[t[r]]=1;return e}e.exports=function(t){if((t=n(t,{style:\\\"style fontstyle fontStyle font-style slope distinction\\\",variant:\\\"variant font-variant fontVariant fontvariant var capitalization\\\",weight:\\\"weight w font-weight fontWeight fontweight\\\",stretch:\\\"stretch font-stretch fontStretch fontstretch width\\\",size:\\\"size s font-size fontSize fontsize height em emSize\\\",lineHeight:\\\"lh line-height lineHeight lineheight leading\\\",family:\\\"font family fontFamily font-family fontfamily type typeface face\\\",system:\\\"system reserved default global\\\"})).system)return t.system&&d(t.system,o),t.system;if(d(t.style,l),d(t.variant,u),d(t.weight,s),d(t.stretch,c),null==t.size&&(t.size=h),\\\"number\\\"==typeof t.size&&(t.size+=\\\"px\\\"),!i)throw Error(\\\"Bad size value `\\\"+t.size+\\\"`\\\");t.family||(t.family=p),Array.isArray(t.family)&&(t.family.length||(t.family=[p]),t.family=t.family.map(function(t){return f[t]?t:'\\\"'+t+'\\\"'}).join(\\\", \\\"));var e=[];return e.push(t.style),t.variant!==t.style&&e.push(t.variant),t.weight!==t.variant&&t.weight!==t.style&&e.push(t.weight),t.stretch!==t.weight&&t.stretch!==t.variant&&t.stretch!==t.style&&e.push(t.stretch),e.push(t.size+(null==t.lineHeight||\\\"normal\\\"===t.lineHeight||t.lineHeight+\\\"\\\"==\\\"1\\\"?\\\"\\\":\\\"/\\\"+t.lineHeight)),e.push(t.family),e.filter(Boolean).join(\\\" \\\")}},{\\\"./lib/util\\\":128,\\\"css-font-stretch-keywords\\\":124,\\\"css-font-style-keywords\\\":125,\\\"css-font-weight-keywords\\\":126,\\\"css-global-keywords\\\":131,\\\"css-system-font-keywords\\\":132,\\\"pick-by-alias\\\":448}],131:[function(t,e,r){e.exports=[\\\"inherit\\\",\\\"initial\\\",\\\"unset\\\"]},{}],132:[function(t,e,r){e.exports=[\\\"caption\\\",\\\"icon\\\",\\\"menu\\\",\\\"message-box\\\",\\\"small-caption\\\",\\\"status-bar\\\"]},{}],133:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i,a){var o=i-1,s=i*i,l=o*o,c=(1+2*i)*l,u=i*l,f=s*(3-2*i),h=s*o;if(t.length){a||(a=new Array(t.length));for(var p=t.length-1;p>=0;--p)a[p]=c*t[p]+u*e[p]+f*r[p]+h*n[p];return a}return c*t+u*e+f*r+h*n},e.exports.derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,c=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var u=t.length-1;u>=0;--u)a[u]=o*t[u]+s*e[u]+l*r[u]+c*n[u];return a}return o*t+s*e+l*r[u]+c*n}},{}],134:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/thunk.js\\\");function i(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName=\\\"\\\",this.pre=null,this.body=null,this.post=null,this.debug=!1}e.exports=function(t){var e=new i;e.pre=t.pre,e.body=t.body,e.post=t.post;var r=t.args.slice(0);e.argTypes=r;for(var a=0;a<r.length;++a){var o=r[a];if(\\\"array\\\"===o||\\\"object\\\"==typeof o&&o.blockIndices){if(e.argTypes[a]=\\\"array\\\",e.arrayArgs.push(a),e.arrayBlockIndices.push(o.blockIndices?o.blockIndices:0),e.shimArgs.push(\\\"array\\\"+a),a<e.pre.args.length&&e.pre.args[a].count>0)throw new Error(\\\"cwise: pre() block may not reference array args\\\");if(a<e.post.args.length&&e.post.args[a].count>0)throw new Error(\\\"cwise: post() block may not reference array args\\\")}else if(\\\"scalar\\\"===o)e.scalarArgs.push(a),e.shimArgs.push(\\\"scalar\\\"+a);else if(\\\"index\\\"===o){if(e.indexArgs.push(a),a<e.pre.args.length&&e.pre.args[a].count>0)throw new Error(\\\"cwise: pre() block may not reference array index\\\");if(a<e.body.args.length&&e.body.args[a].lvalue)throw new Error(\\\"cwise: body() block may not write to array index\\\");if(a<e.post.args.length&&e.post.args[a].count>0)throw new Error(\\\"cwise: post() block may not reference array index\\\")}else if(\\\"shape\\\"===o){if(e.shapeArgs.push(a),a<e.pre.args.length&&e.pre.args[a].lvalue)throw new Error(\\\"cwise: pre() block may not write to array shape\\\");if(a<e.body.args.length&&e.body.args[a].lvalue)throw new Error(\\\"cwise: body() block may not write to array shape\\\");if(a<e.post.args.length&&e.post.args[a].lvalue)throw new Error(\\\"cwise: post() block may not write to array shape\\\")}else{if(\\\"object\\\"!=typeof o||!o.offset)throw new Error(\\\"cwise: Unknown argument type \\\"+r[a]);e.argTypes[a]=\\\"offset\\\",e.offsetArgs.push({array:o.array,offset:o.offset}),e.offsetArgIndex.push(a)}}if(e.arrayArgs.length<=0)throw new Error(\\\"cwise: No array arguments specified\\\");if(e.pre.args.length>r.length)throw new Error(\\\"cwise: Too many arguments in pre() block\\\");if(e.body.args.length>r.length)throw new Error(\\\"cwise: Too many arguments in body() block\\\");if(e.post.args.length>r.length)throw new Error(\\\"cwise: Too many arguments in post() block\\\");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||\\\"cwise\\\",e.blockSize=t.blockSize||64,n(e)}},{\\\"./lib/thunk.js\\\":136}],135:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"uniq\\\");function i(t,e,r){var n,i,a=t.length,o=e.arrayArgs.length,s=e.indexArgs.length>0,l=[],c=[],u=0,f=0;for(n=0;n<a;++n)c.push([\\\"i\\\",n,\\\"=0\\\"].join(\\\"\\\"));for(i=0;i<o;++i)for(n=0;n<a;++n)f=u,u=t[n],0===n?c.push([\\\"d\\\",i,\\\"s\\\",n,\\\"=t\\\",i,\\\"p\\\",u].join(\\\"\\\")):c.push([\\\"d\\\",i,\\\"s\\\",n,\\\"=(t\\\",i,\\\"p\\\",u,\\\"-s\\\",f,\\\"*t\\\",i,\\\"p\\\",f,\\\")\\\"].join(\\\"\\\"));for(c.length>0&&l.push(\\\"var \\\"+c.join(\\\",\\\")),n=a-1;n>=0;--n)u=t[n],l.push([\\\"for(i\\\",n,\\\"=0;i\\\",n,\\\"<s\\\",u,\\\";++i\\\",n,\\\"){\\\"].join(\\\"\\\"));for(l.push(r),n=0;n<a;++n){for(f=u,u=t[n],i=0;i<o;++i)l.push([\\\"p\\\",i,\\\"+=d\\\",i,\\\"s\\\",n].join(\\\"\\\"));s&&(n>0&&l.push([\\\"index[\\\",f,\\\"]-=s\\\",f].join(\\\"\\\")),l.push([\\\"++index[\\\",u,\\\"]\\\"].join(\\\"\\\"))),l.push(\\\"}\\\")}return l.join(\\\"\\\\n\\\")}function a(t,e,r){for(var n=t.body,i=[],a=[],o=0;o<t.args.length;++o){var s=t.args[o];if(!(s.count<=0)){var l=new RegExp(s.name,\\\"g\\\"),c=\\\"\\\",u=e.arrayArgs.indexOf(o);switch(e.argTypes[o]){case\\\"offset\\\":var f=e.offsetArgIndex.indexOf(o);u=e.offsetArgs[f].array,c=\\\"+q\\\"+f;case\\\"array\\\":c=\\\"p\\\"+u+c;var h=\\\"l\\\"+o,p=\\\"a\\\"+u;if(0===e.arrayBlockIndices[u])1===s.count?\\\"generic\\\"===r[u]?s.lvalue?(i.push([\\\"var \\\",h,\\\"=\\\",p,\\\".get(\\\",c,\\\")\\\"].join(\\\"\\\")),n=n.replace(l,h),a.push([p,\\\".set(\\\",c,\\\",\\\",h,\\\")\\\"].join(\\\"\\\"))):n=n.replace(l,[p,\\\".get(\\\",c,\\\")\\\"].join(\\\"\\\")):n=n.replace(l,[p,\\\"[\\\",c,\\\"]\\\"].join(\\\"\\\")):\\\"generic\\\"===r[u]?(i.push([\\\"var \\\",h,\\\"=\\\",p,\\\".get(\\\",c,\\\")\\\"].join(\\\"\\\")),n=n.replace(l,h),s.lvalue&&a.push([p,\\\".set(\\\",c,\\\",\\\",h,\\\")\\\"].join(\\\"\\\"))):(i.push([\\\"var \\\",h,\\\"=\\\",p,\\\"[\\\",c,\\\"]\\\"].join(\\\"\\\")),n=n.replace(l,h),s.lvalue&&a.push([p,\\\"[\\\",c,\\\"]=\\\",h].join(\\\"\\\")));else{for(var d=[s.name],g=[c],v=0;v<Math.abs(e.arrayBlockIndices[u]);v++)d.push(\\\"\\\\\\\\s*\\\\\\\\[([^\\\\\\\\]]+)\\\\\\\\]\\\"),g.push(\\\"$\\\"+(v+1)+\\\"*t\\\"+u+\\\"b\\\"+v);if(l=new RegExp(d.join(\\\"\\\"),\\\"g\\\"),c=g.join(\\\"+\\\"),\\\"generic\\\"===r[u])throw new Error(\\\"cwise: Generic arrays not supported in combination with blocks!\\\");n=n.replace(l,[p,\\\"[\\\",c,\\\"]\\\"].join(\\\"\\\"))}break;case\\\"scalar\\\":n=n.replace(l,\\\"Y\\\"+e.scalarArgs.indexOf(o));break;case\\\"index\\\":n=n.replace(l,\\\"index\\\");break;case\\\"shape\\\":n=n.replace(l,\\\"shape\\\")}}}return[i.join(\\\"\\\\n\\\"),n,a.join(\\\"\\\\n\\\")].join(\\\"\\\\n\\\").trim()}e.exports=function(t,e){for(var r=e[1].length-Math.abs(t.arrayBlockIndices[0])|0,o=new Array(t.arrayArgs.length),s=new Array(t.arrayArgs.length),l=0;l<t.arrayArgs.length;++l)s[l]=e[2*l],o[l]=e[2*l+1];var c=[],u=[],f=[],h=[],p=[];for(l=0;l<t.arrayArgs.length;++l){t.arrayBlockIndices[l]<0?(f.push(0),h.push(r),c.push(r),u.push(r+t.arrayBlockIndices[l])):(f.push(t.arrayBlockIndices[l]),h.push(t.arrayBlockIndices[l]+r),c.push(0),u.push(t.arrayBlockIndices[l]));for(var d=[],g=0;g<o[l].length;g++)f[l]<=o[l][g]&&o[l][g]<h[l]&&d.push(o[l][g]-f[l]);p.push(d)}var v=[\\\"SS\\\"],m=[\\\"'use strict'\\\"],y=[];for(g=0;g<r;++g)y.push([\\\"s\\\",g,\\\"=SS[\\\",g,\\\"]\\\"].join(\\\"\\\"));for(l=0;l<t.arrayArgs.length;++l){for(v.push(\\\"a\\\"+l),v.push(\\\"t\\\"+l),v.push(\\\"p\\\"+l),g=0;g<r;++g)y.push([\\\"t\\\",l,\\\"p\\\",g,\\\"=t\\\",l,\\\"[\\\",f[l]+g,\\\"]\\\"].join(\\\"\\\"));for(g=0;g<Math.abs(t.arrayBlockIndices[l]);++g)y.push([\\\"t\\\",l,\\\"b\\\",g,\\\"=t\\\",l,\\\"[\\\",c[l]+g,\\\"]\\\"].join(\\\"\\\"))}for(l=0;l<t.scalarArgs.length;++l)v.push(\\\"Y\\\"+l);if(t.shapeArgs.length>0&&y.push(\\\"shape=SS.slice(0)\\\"),t.indexArgs.length>0){var x=new Array(r);for(l=0;l<r;++l)x[l]=\\\"0\\\";y.push([\\\"index=[\\\",x.join(\\\",\\\"),\\\"]\\\"].join(\\\"\\\"))}for(l=0;l<t.offsetArgs.length;++l){var b=t.offsetArgs[l],_=[];for(g=0;g<b.offset.length;++g)0!==b.offset[g]&&(1===b.offset[g]?_.push([\\\"t\\\",b.array,\\\"p\\\",g].join(\\\"\\\")):_.push([b.offset[g],\\\"*t\\\",b.array,\\\"p\\\",g].join(\\\"\\\")));0===_.length?y.push(\\\"q\\\"+l+\\\"=0\\\"):y.push([\\\"q\\\",l,\\\"=\\\",_.join(\\\"+\\\")].join(\\\"\\\"))}var w=n([].concat(t.pre.thisVars).concat(t.body.thisVars).concat(t.post.thisVars));for((y=y.concat(w)).length>0&&m.push(\\\"var \\\"+y.join(\\\",\\\")),l=0;l<t.arrayArgs.length;++l)m.push(\\\"p\\\"+l+\\\"|=0\\\");t.pre.body.length>3&&m.push(a(t.pre,t,s));var k=a(t.body,t,s),M=function(t){for(var e=0,r=t[0].length;e<r;){for(var n=1;n<t.length;++n)if(t[n][e]!==t[0][e])return e;++e}return e}(p);M<r?m.push(function(t,e,r,n){for(var a=e.length,o=r.arrayArgs.length,s=r.blockSize,l=r.indexArgs.length>0,c=[],u=0;u<o;++u)c.push([\\\"var offset\\\",u,\\\"=p\\\",u].join(\\\"\\\"));for(u=t;u<a;++u)c.push([\\\"for(var j\\\"+u+\\\"=SS[\\\",e[u],\\\"]|0;j\\\",u,\\\">0;){\\\"].join(\\\"\\\")),c.push([\\\"if(j\\\",u,\\\"<\\\",s,\\\"){\\\"].join(\\\"\\\")),c.push([\\\"s\\\",e[u],\\\"=j\\\",u].join(\\\"\\\")),c.push([\\\"j\\\",u,\\\"=0\\\"].join(\\\"\\\")),c.push([\\\"}else{s\\\",e[u],\\\"=\\\",s].join(\\\"\\\")),c.push([\\\"j\\\",u,\\\"-=\\\",s,\\\"}\\\"].join(\\\"\\\")),l&&c.push([\\\"index[\\\",e[u],\\\"]=j\\\",u].join(\\\"\\\"));for(u=0;u<o;++u){for(var f=[\\\"offset\\\"+u],h=t;h<a;++h)f.push([\\\"j\\\",h,\\\"*t\\\",u,\\\"p\\\",e[h]].join(\\\"\\\"));c.push([\\\"p\\\",u,\\\"=(\\\",f.join(\\\"+\\\"),\\\")\\\"].join(\\\"\\\"))}for(c.push(i(e,r,n)),u=t;u<a;++u)c.push(\\\"}\\\");return c.join(\\\"\\\\n\\\")}(M,p[0],t,k)):m.push(i(p[0],t,k)),t.post.body.length>3&&m.push(a(t.post,t,s)),t.debug&&console.log(\\\"-----Generated cwise routine for \\\",e,\\\":\\\\n\\\"+m.join(\\\"\\\\n\\\")+\\\"\\\\n----------\\\");var A=[t.funcName||\\\"unnamed\\\",\\\"_cwise_loop_\\\",o[0].join(\\\"s\\\"),\\\"m\\\",M,function(t){for(var e=new Array(t.length),r=!0,n=0;n<t.length;++n){var i=t[n],a=i.match(/\\\\d+/);a=a?a[0]:\\\"\\\",0===i.charAt(0)?e[n]=\\\"u\\\"+i.charAt(1)+a:e[n]=i.charAt(0)+a,n>0&&(r=r&&e[n]===e[n-1])}return r?e[0]:e.join(\\\"\\\")}(s)].join(\\\"\\\");return new Function([\\\"function \\\",A,\\\"(\\\",v.join(\\\",\\\"),\\\"){\\\",m.join(\\\"\\\\n\\\"),\\\"} return \\\",A].join(\\\"\\\"))()}},{uniq:524}],136:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./compile.js\\\");e.exports=function(t){var e=[\\\"'use strict'\\\",\\\"var CACHED={}\\\"],r=[],i=t.funcName+\\\"_cwise_thunk\\\";e.push([\\\"return function \\\",i,\\\"(\\\",t.shimArgs.join(\\\",\\\"),\\\"){\\\"].join(\\\"\\\"));for(var a=[],o=[],s=[[\\\"array\\\",t.arrayArgs[0],\\\".shape.slice(\\\",Math.max(0,t.arrayBlockIndices[0]),t.arrayBlockIndices[0]<0?\\\",\\\"+t.arrayBlockIndices[0]+\\\")\\\":\\\")\\\"].join(\\\"\\\")],l=[],c=[],u=0;u<t.arrayArgs.length;++u){var f=t.arrayArgs[u];r.push([\\\"t\\\",f,\\\"=array\\\",f,\\\".dtype,\\\",\\\"r\\\",f,\\\"=array\\\",f,\\\".order\\\"].join(\\\"\\\")),a.push(\\\"t\\\"+f),a.push(\\\"r\\\"+f),o.push(\\\"t\\\"+f),o.push(\\\"r\\\"+f+\\\".join()\\\"),s.push(\\\"array\\\"+f+\\\".data\\\"),s.push(\\\"array\\\"+f+\\\".stride\\\"),s.push(\\\"array\\\"+f+\\\".offset|0\\\"),u>0&&(l.push(\\\"array\\\"+t.arrayArgs[0]+\\\".shape.length===array\\\"+f+\\\".shape.length+\\\"+(Math.abs(t.arrayBlockIndices[0])-Math.abs(t.arrayBlockIndices[u]))),c.push(\\\"array\\\"+t.arrayArgs[0]+\\\".shape[shapeIndex+\\\"+Math.max(0,t.arrayBlockIndices[0])+\\\"]===array\\\"+f+\\\".shape[shapeIndex+\\\"+Math.max(0,t.arrayBlockIndices[u])+\\\"]\\\"))}for(t.arrayArgs.length>1&&(e.push(\\\"if (!(\\\"+l.join(\\\" && \\\")+\\\")) throw new Error('cwise: Arrays do not all have the same dimensionality!')\\\"),e.push(\\\"for(var shapeIndex=array\\\"+t.arrayArgs[0]+\\\".shape.length-\\\"+Math.abs(t.arrayBlockIndices[0])+\\\"; shapeIndex--\\\\x3e0;) {\\\"),e.push(\\\"if (!(\\\"+c.join(\\\" && \\\")+\\\")) throw new Error('cwise: Arrays do not all have the same shape!')\\\"),e.push(\\\"}\\\")),u=0;u<t.scalarArgs.length;++u)s.push(\\\"scalar\\\"+t.scalarArgs[u]);return r.push([\\\"type=[\\\",o.join(\\\",\\\"),\\\"].join()\\\"].join(\\\"\\\")),r.push(\\\"proc=CACHED[type]\\\"),e.push(\\\"var \\\"+r.join(\\\",\\\")),e.push([\\\"if(!proc){\\\",\\\"CACHED[type]=proc=compile([\\\",a.join(\\\",\\\"),\\\"])}\\\",\\\"return proc(\\\",s.join(\\\",\\\"),\\\")}\\\"].join(\\\"\\\")),t.debug&&console.log(\\\"-----Generated thunk:\\\\n\\\"+e.join(\\\"\\\\n\\\")+\\\"\\\\n----------\\\"),new Function(\\\"compile\\\",e.join(\\\"\\\\n\\\"))(n.bind(void 0,t))}},{\\\"./compile.js\\\":135}],137:[function(t,e,r){e.exports=t(\\\"cwise-compiler\\\")},{\\\"cwise-compiler\\\":134}],138:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/object/copy\\\"),a=t(\\\"es5-ext/object/normalize-options\\\"),o=t(\\\"es5-ext/object/valid-callable\\\"),s=t(\\\"es5-ext/object/map\\\"),l=t(\\\"es5-ext/object/valid-callable\\\"),c=t(\\\"es5-ext/object/valid-value\\\"),u=Function.prototype.bind,f=Object.defineProperty,h=Object.prototype.hasOwnProperty;n=function(t,e,r){var n,a=c(e)&&l(e.value);return delete(n=i(e)).writable,delete n.value,n.get=function(){return!r.overwriteDefinition&&h.call(this,t)?a:(e.value=u.call(a,r.resolveContext?r.resolveContext(this):this),f(this,t,e),this[t])},n},e.exports=function(t){var e=a(arguments[1]);return null!=e.resolveContext&&o(e.resolveContext),s(t,function(t,r){return n(r,t,e)})}},{\\\"es5-ext/object/copy\\\":174,\\\"es5-ext/object/map\\\":183,\\\"es5-ext/object/normalize-options\\\":184,\\\"es5-ext/object/valid-callable\\\":188,\\\"es5-ext/object/valid-value\\\":190}],139:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es5-ext/object/assign\\\"),i=t(\\\"es5-ext/object/normalize-options\\\"),a=t(\\\"es5-ext/object/is-callable\\\"),o=t(\\\"es5-ext/string/#/contains\\\");(e.exports=function(t,e){var r,a,s,l,c;return arguments.length<2||\\\"string\\\"!=typeof t?(l=e,e=t,t=null):l=arguments[2],null==t?(r=s=!0,a=!1):(r=o.call(t,\\\"c\\\"),a=o.call(t,\\\"e\\\"),s=o.call(t,\\\"w\\\")),c={value:e,configurable:r,enumerable:a,writable:s},l?n(i(l),c):c}).gs=function(t,e,r){var s,l,c,u;return\\\"string\\\"!=typeof t?(c=r,r=e,e=t,t=null):c=arguments[3],null==e?e=void 0:a(e)?null==r?r=void 0:a(r)||(c=r,r=void 0):(c=e,e=r=void 0),null==t?(s=!0,l=!1):(s=o.call(t,\\\"c\\\"),l=o.call(t,\\\"e\\\")),u={get:e,set:r,configurable:s,enumerable:l},c?n(i(c),u):u}},{\\\"es5-ext/object/assign\\\":171,\\\"es5-ext/object/is-callable\\\":177,\\\"es5-ext/object/normalize-options\\\":184,\\\"es5-ext/string/#/contains\\\":191}],140:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";function e(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function r(t){var r;return 1===t.length&&(r=t,t=function(t,n){return e(r(t),n)}),{left:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}var n=r(e),i=n.right,a=n.left;function o(t,e){return[t,e]}function s(t){return null===t?NaN:+t}function l(t,e){var r,n,i=t.length,a=0,o=-1,l=0,c=0;if(null==e)for(;++o<i;)isNaN(r=s(t[o]))||(c+=(n=r-l)*(r-(l+=n/++a)));else for(;++o<i;)isNaN(r=s(e(t[o],o,t)))||(c+=(n=r-l)*(r-(l+=n/++a)));if(a>1)return c/(a-1)}function c(t,e){var r=l(t,e);return r?Math.sqrt(r):r}function u(t,e){var r,n,i,a=t.length,o=-1;if(null==e){for(;++o<a;)if(null!=(r=t[o])&&r>=r)for(n=i=r;++o<a;)null!=(r=t[o])&&(n>r&&(n=r),i<r&&(i=r))}else for(;++o<a;)if(null!=(r=e(t[o],o,t))&&r>=r)for(n=i=r;++o<a;)null!=(r=e(t[o],o,t))&&(n>r&&(n=r),i<r&&(i=r));return[n,i]}var f=Array.prototype,h=f.slice,p=f.map;function d(t){return function(){return t}}function g(t){return t}function v(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),a=new Array(i);++n<i;)a[n]=t+n*r;return a}var m=Math.sqrt(50),y=Math.sqrt(10),x=Math.sqrt(2);function b(t,e,r){var n=(e-t)/Math.max(0,r),i=Math.floor(Math.log(n)/Math.LN10),a=n/Math.pow(10,i);return i>=0?(a>=m?10:a>=y?5:a>=x?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=m?10:a>=y?5:a>=x?2:1)}function _(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),a=n/i;return a>=m?i*=10:a>=y?i*=5:a>=x&&(i*=2),e<t?-i:i}function w(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function k(t,e,r){if(null==r&&(r=s),n=t.length){if((e=+e)<=0||n<2)return+r(t[0],0,t);if(e>=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,a=Math.floor(i),o=+r(t[a],a,t);return o+(+r(t[a+1],a+1,t)-o)*(i-a)}}function M(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a<i;)if(null!=(r=t[a])&&r>=r)for(n=r;++a<i;)null!=(r=t[a])&&n>r&&(n=r)}else for(;++a<i;)if(null!=(r=e(t[a],a,t))&&r>=r)for(n=r;++a<i;)null!=(r=e(t[a],a,t))&&n>r&&(n=r);return n}function A(t){if(!(i=t.length))return[];for(var e=-1,r=M(t,T),n=new Array(r);++e<r;)for(var i,a=-1,o=n[e]=new Array(i);++a<i;)o[a]=t[a][e];return n}function T(t){return t.length}t.bisect=i,t.bisectRight=i,t.bisectLeft=a,t.ascending=e,t.bisector=r,t.cross=function(t,e,r){var n,i,a,s,l=t.length,c=e.length,u=new Array(l*c);for(null==r&&(r=o),n=a=0;n<l;++n)for(s=t[n],i=0;i<c;++i,++a)u[a]=r(s,e[i]);return u},t.descending=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},t.deviation=c,t.extent=u,t.histogram=function(){var t=g,e=u,r=w;function n(n){var a,o,s=n.length,l=new Array(s);for(a=0;a<s;++a)l[a]=t(n[a],a,n);var c=e(l),u=c[0],f=c[1],h=r(l,u,f);Array.isArray(h)||(h=_(u,f,h),h=v(Math.ceil(u/h)*h,f,h));for(var p=h.length;h[0]<=u;)h.shift(),--p;for(;h[p-1]>f;)h.pop(),--p;var d,g=new Array(p+1);for(a=0;a<=p;++a)(d=g[a]=[]).x0=a>0?h[a-1]:u,d.x1=a<p?h[a]:f;for(a=0;a<s;++a)u<=(o=l[a])&&o<=f&&g[i(h,o,0,p)].push(n[a]);return g}return n.value=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:d(e),n):t},n.domain=function(t){return arguments.length?(e=\\\"function\\\"==typeof t?t:d([t[0],t[1]]),n):e},n.thresholds=function(t){return arguments.length?(r=\\\"function\\\"==typeof t?t:Array.isArray(t)?d(h.call(t)):d(t),n):r},n},t.thresholdFreedmanDiaconis=function(t,r,n){return t=p.call(t,s).sort(e),Math.ceil((n-r)/(2*(k(t,.75)-k(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,e,r){return Math.ceil((r-e)/(3.5*c(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=w,t.max=function(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a<i;)if(null!=(r=t[a])&&r>=r)for(n=r;++a<i;)null!=(r=t[a])&&r>n&&(n=r)}else for(;++a<i;)if(null!=(r=e(t[a],a,t))&&r>=r)for(n=r;++a<i;)null!=(r=e(t[a],a,t))&&r>n&&(n=r);return n},t.mean=function(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a<n;)isNaN(r=s(t[a]))?--i:o+=r;else for(;++a<n;)isNaN(r=s(e(t[a],a,t)))?--i:o+=r;if(i)return o/i},t.median=function(t,r){var n,i=t.length,a=-1,o=[];if(null==r)for(;++a<i;)isNaN(n=s(t[a]))||o.push(n);else for(;++a<i;)isNaN(n=s(r(t[a],a,t)))||o.push(n);return k(o.sort(e),.5)},t.merge=function(t){for(var e,r,n,i=t.length,a=-1,o=0;++a<i;)o+=t[a].length;for(r=new Array(o);--i>=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r},t.min=M,t.pairs=function(t,e){null==e&&(e=o);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r<n;)a[r]=e(i,i=t[++r]);return a},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.quantile=k,t.range=v,t.scan=function(t,r){if(n=t.length){var n,i,a=0,o=0,s=t[o];for(null==r&&(r=e);++a<n;)(r(i=t[a],s)<0||0!==r(s,s))&&(s=i,o=a);return 0===r(s,s)?o:void 0}},t.shuffle=function(t,e,r){for(var n,i,a=(null==r?t.length:r)-(e=null==e?0:+e);a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},t.sum=function(t,e){var r,n=t.length,i=-1,a=0;if(null==e)for(;++i<n;)(r=+t[i])&&(a+=r);else for(;++i<n;)(r=+e(t[i],i,t))&&(a+=r);return a},t.ticks=function(t,e,r){var n,i,a,o,s=-1;if(r=+r,(t=+t)==(e=+e)&&r>0)return[t];if((n=e<t)&&(i=t,t=e,e=i),0===(o=b(t,e,r))||!isFinite(o))return[];if(o>0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++s<i;)a[s]=(t+s)*o;else for(t=Math.floor(t*o),e=Math.ceil(e*o),a=new Array(i=Math.ceil(t-e+1));++s<i;)a[s]=(t-s)/o;return n&&a.reverse(),a},t.tickIncrement=b,t.tickStep=_,t.transpose=A,t.variance=l,t.zip=function(){return A(arguments)},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],141:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";function e(){}function r(t,r){var n=new e;if(t instanceof e)t.each(function(t,e){n.set(e,t)});else if(Array.isArray(t)){var i,a=-1,o=t.length;if(null==r)for(;++a<o;)n.set(a,t[a]);else for(;++a<o;)n.set(r(i=t[a],a,t),i)}else if(t)for(var s in t)n.set(s,t[s]);return n}e.prototype=r.prototype={constructor:e,has:function(t){return\\\"$\\\"+t in this},get:function(t){return this[\\\"$\\\"+t]},set:function(t,e){return this[\\\"$\\\"+t]=e,this},remove:function(t){var e=\\\"$\\\"+t;return e in this&&delete this[e]},clear:function(){for(var t in this)\\\"$\\\"===t[0]&&delete this[t]},keys:function(){var t=[];for(var e in this)\\\"$\\\"===e[0]&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)\\\"$\\\"===e[0]&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)\\\"$\\\"===e[0]&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)\\\"$\\\"===e[0]&&++t;return t},empty:function(){for(var t in this)if(\\\"$\\\"===t[0])return!1;return!0},each:function(t){for(var e in this)\\\"$\\\"===e[0]&&t(this[e],e.slice(1),this)}};function n(){return{}}function i(t,e,r){t[e]=r}function a(){return r()}function o(t,e,r){t.set(e,r)}function s(){}var l=r.prototype;function c(t,e){var r=new s;if(t instanceof s)t.each(function(t){r.add(t)});else if(t){var n=-1,i=t.length;if(null==e)for(;++n<i;)r.add(t[n]);else for(;++n<i;)r.add(e(t[n],n,t))}return r}s.prototype=c.prototype={constructor:s,has:l.has,add:function(t){return this[\\\"$\\\"+(t+=\\\"\\\")]=t,this},remove:l.remove,clear:l.clear,values:l.keys,size:l.size,empty:l.empty,each:l.each};t.nest=function(){var t,e,s,l=[],c=[];function u(n,i,a,o){if(i>=l.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var s,c,f,h=-1,p=n.length,d=l[i++],g=r(),v=a();++h<p;)(f=g.get(s=d(c=n[h])+\\\"\\\"))?f.push(c):g.set(s,[c]);return g.each(function(t,e){o(v,e,u(t,i,a,o))}),v}return s={object:function(t){return u(t,0,n,i)},map:function(t){return u(t,0,a,o)},entries:function(t){return function t(r,n){if(++n>l.length)return r;var i,a=c[n-1];return null!=e&&n>=l.length?i=r.entries():(i=[],r.each(function(e,r){i.push({key:r,values:t(e,n)})})),null!=a?i.sort(function(t,e){return a(t.key,e.key)}):i}(u(t,0,a,o),0)},key:function(t){return l.push(t),s},sortKeys:function(t){return c[l.length-1]=t,s},sortValues:function(e){return t=e,s},rollup:function(t){return e=t,s}}},t.set=c,t.map=r,t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],142:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";function e(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function r(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function n(){}var i=\\\"\\\\\\\\s*([+-]?\\\\\\\\d+)\\\\\\\\s*\\\",a=\\\"\\\\\\\\s*([+-]?\\\\\\\\d*\\\\\\\\.?\\\\\\\\d+(?:[eE][+-]?\\\\\\\\d+)?)\\\\\\\\s*\\\",o=\\\"\\\\\\\\s*([+-]?\\\\\\\\d*\\\\\\\\.?\\\\\\\\d+(?:[eE][+-]?\\\\\\\\d+)?)%\\\\\\\\s*\\\",s=/^#([0-9a-f]{3})$/,l=/^#([0-9a-f]{6})$/,c=new RegExp(\\\"^rgb\\\\\\\\(\\\"+[i,i,i]+\\\"\\\\\\\\)$\\\"),u=new RegExp(\\\"^rgb\\\\\\\\(\\\"+[o,o,o]+\\\"\\\\\\\\)$\\\"),f=new RegExp(\\\"^rgba\\\\\\\\(\\\"+[i,i,i,a]+\\\"\\\\\\\\)$\\\"),h=new RegExp(\\\"^rgba\\\\\\\\(\\\"+[o,o,o,a]+\\\"\\\\\\\\)$\\\"),p=new RegExp(\\\"^hsl\\\\\\\\(\\\"+[a,o,o]+\\\"\\\\\\\\)$\\\"),d=new RegExp(\\\"^hsla\\\\\\\\(\\\"+[a,o,o,a]+\\\"\\\\\\\\)$\\\"),g={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 v(t){var e;return t=(t+\\\"\\\").trim().toLowerCase(),(e=s.exec(t))?new _((e=parseInt(e[1],16))>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=l.exec(t))?m(parseInt(e[1],16)):(e=c.exec(t))?new _(e[1],e[2],e[3],1):(e=u.exec(t))?new _(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=f.exec(t))?y(e[1],e[2],e[3],e[4]):(e=h.exec(t))?y(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=p.exec(t))?k(e[1],e[2]/100,e[3]/100,1):(e=d.exec(t))?k(e[1],e[2]/100,e[3]/100,e[4]):g.hasOwnProperty(t)?m(g[t]):\\\"transparent\\\"===t?new _(NaN,NaN,NaN,0):null}function m(t){return new _(t>>16&255,t>>8&255,255&t,1)}function y(t,e,r,n){return n<=0&&(t=e=r=NaN),new _(t,e,r,n)}function x(t){return t instanceof n||(t=v(t)),t?new _((t=t.rgb()).r,t.g,t.b,t.opacity):new _}function b(t,e,r,n){return 1===arguments.length?x(t):new _(t,e,r,null==n?1:n)}function _(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function w(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?\\\"0\\\":\\\"\\\")+t.toString(16)}function k(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new A(t,e,r,n)}function M(t,e,r,i){return 1===arguments.length?function(t){if(t instanceof A)return new A(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=v(t)),!t)return new A;if(t instanceof A)return t;var e=(t=t.rgb()).r/255,r=t.g/255,i=t.b/255,a=Math.min(e,r,i),o=Math.max(e,r,i),s=NaN,l=o-a,c=(o+a)/2;return l?(s=e===o?(r-i)/l+6*(r<i):r===o?(i-e)/l+2:(e-r)/l+4,l/=c<.5?o+a:2-o-a,s*=60):l=c>0&&c<1?0:s,new A(s,l,c,t.opacity)}(t):new A(t,e,r,null==i?1:i)}function A(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function T(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}e(n,v,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+\\\"\\\"}}),e(_,b,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return\\\"#\\\"+w(this.r)+w(this.g)+w(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?\\\"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))+(1===t?\\\")\\\":\\\", \\\"+t+\\\")\\\")}})),e(A,M,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new A(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new A(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new _(T(t>=240?t-240:t+120,i,n),T(t,i,n),T(t<120?t+240:t-120,i,n),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}}));var S=Math.PI/180,E=180/Math.PI,C=.96422,L=1,z=.82521,O=4/29,I=6/29,P=3*I*I,D=I*I*I;function R(t){if(t instanceof F)return new F(t.l,t.a,t.b,t.opacity);if(t instanceof G){if(isNaN(t.h))return new F(t.l,0,0,t.opacity);var e=t.h*S;return new F(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof _||(t=x(t));var r,n,i=U(t.r),a=U(t.g),o=U(t.b),s=N((.2225045*i+.7168786*a+.0606169*o)/L);return i===a&&a===o?r=n=s:(r=N((.4360747*i+.3850649*a+.1430804*o)/C),n=N((.0139322*i+.0971045*a+.7141733*o)/z)),new F(116*s-16,500*(r-s),200*(s-n),t.opacity)}function B(t,e,r,n){return 1===arguments.length?R(t):new F(t,e,r,null==n?1:n)}function F(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function N(t){return t>D?Math.pow(t,1/3):t/P+O}function j(t){return t>I?t*t*t:P*(t-O)}function V(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function U(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function q(t){if(t instanceof G)return new G(t.h,t.c,t.l,t.opacity);if(t instanceof F||(t=R(t)),0===t.a&&0===t.b)return new G(NaN,0,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*E;return new G(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function H(t,e,r,n){return 1===arguments.length?q(t):new G(t,e,r,null==n?1:n)}function G(t,e,r,n){this.h=+t,this.c=+e,this.l=+r,this.opacity=+n}e(F,B,r(n,{brighter:function(t){return new F(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new F(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return new _(V(3.1338561*(e=C*j(e))-1.6168667*(t=L*j(t))-.4906146*(r=z*j(r))),V(-.9787684*e+1.9161415*t+.033454*r),V(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}})),e(G,H,r(n,{brighter:function(t){return new G(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new G(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return R(this).rgb()}}));var W=-.14861,Y=1.78277,X=-.29227,Z=-.90649,$=1.97294,J=$*Z,K=$*Y,Q=Y*X-Z*W;function tt(t,e,r,n){return 1===arguments.length?function(t){if(t instanceof et)return new et(t.h,t.s,t.l,t.opacity);t instanceof _||(t=x(t));var e=t.r/255,r=t.g/255,n=t.b/255,i=(Q*n+J*e-K*r)/(Q+J-K),a=n-i,o=($*(r-i)-X*a)/Z,s=Math.sqrt(o*o+a*a)/($*i*(1-i)),l=s?Math.atan2(o,a)*E-120:NaN;return new et(l<0?l+360:l,s,i,t.opacity)}(t):new et(t,e,r,null==n?1:n)}function et(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}e(et,tt,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new et(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new et(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*S,e=+this.l,r=isNaN(this.s)?0:this.s*e*(1-e),n=Math.cos(t),i=Math.sin(t);return new _(255*(e+r*(W*n+Y*i)),255*(e+r*(X*n+Z*i)),255*(e+r*($*n)),this.opacity)}})),t.color=v,t.rgb=b,t.hsl=M,t.lab=B,t.hcl=H,t.lch=function(t,e,r,n){return 1===arguments.length?q(t):new G(r,e,t,null==n?1:n)},t.gray=function(t,e){return new F(t,0,0,null==e?1:e)},t.cubehelix=tt,Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],143:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";var e={value:function(){}};function r(){for(var t,e=0,r=arguments.length,i={};e<r;++e){if(!(t=arguments[e]+\\\"\\\")||t in i)throw new Error(\\\"illegal type: \\\"+t);i[t]=[]}return new n(i)}function n(t){this._=t}function i(t,e){for(var r,n=0,i=t.length;n<i;++n)if((r=t[n]).name===e)return r.value}function a(t,r,n){for(var i=0,a=t.length;i<a;++i)if(t[i].name===r){t[i]=e,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:r,value:n}),t}n.prototype=r.prototype={constructor:n,on:function(t,e){var r,n,o=this._,s=(n=o,(t+\\\"\\\").trim().split(/^|\\\\s+/).map(function(t){var e=\\\"\\\",r=t.indexOf(\\\".\\\");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error(\\\"unknown type: \\\"+t);return{type:t,name:e}})),l=-1,c=s.length;if(!(arguments.length<2)){if(null!=e&&\\\"function\\\"!=typeof e)throw new Error(\\\"invalid callback: \\\"+e);for(;++l<c;)if(r=(t=s[l]).type)o[r]=a(o[r],t.name,e);else if(null==e)for(r in o)o[r]=a(o[r],t.name,null);return this}for(;++l<c;)if((r=(t=s[l]).type)&&(r=i(o[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new n(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,i=new Array(r),a=0;a<r;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error(\\\"unknown type: \\\"+t);for(a=0,r=(n=this._[t]).length;a<r;++a)n[a].value.apply(e,i)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error(\\\"unknown type: \\\"+t);for(var n=this._[t],i=0,a=n.length;i<a;++i)n[i].value.apply(e,r)}},t.dispatch=r,Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],144:[function(t,e,r){var n,i;n=this,i=function(t,e,r,n,i){\\\"use strict\\\";var a=function(t){return function(){return t}},o=function(){return 1e-6*(Math.random()-.5)};function s(t){return t.x+t.vx}function l(t){return t.y+t.vy}function c(t){return t.index}function u(t,e){var r=t.get(e);if(!r)throw new Error(\\\"missing: \\\"+e);return r}function f(t){return t.x}function h(t){return t.y}var p=10,d=Math.PI*(3-Math.sqrt(5));t.forceCenter=function(t,e){var r;function n(){var n,i,a=r.length,o=0,s=0;for(n=0;n<a;++n)o+=(i=r[n]).x,s+=i.y;for(o=o/a-t,s=s/a-e,n=0;n<a;++n)(i=r[n]).x-=o,i.y-=s}return null==t&&(t=0),null==e&&(e=0),n.initialize=function(t){r=t},n.x=function(e){return arguments.length?(t=+e,n):t},n.y=function(t){return arguments.length?(e=+t,n):e},n},t.forceCollide=function(t){var r,n,i=1,c=1;function u(){for(var t,a,u,h,p,d,g,v=r.length,m=0;m<c;++m)for(a=e.quadtree(r,s,l).visitAfter(f),t=0;t<v;++t)u=r[t],d=n[u.index],g=d*d,h=u.x+u.vx,p=u.y+u.vy,a.visit(y);function y(t,e,r,n,a){var s=t.data,l=t.r,c=d+l;if(!s)return e>h+c||n<h-c||r>p+c||a<p-c;if(s.index>u.index){var f=h-s.x-s.vx,v=p-s.y-s.vy,m=f*f+v*v;m<c*c&&(0===f&&(m+=(f=o())*f),0===v&&(m+=(v=o())*v),m=(c-(m=Math.sqrt(m)))/m*i,u.vx+=(f*=m)*(c=(l*=l)/(g+l)),u.vy+=(v*=m)*c,s.vx-=f*(c=1-c),s.vy-=v*c)}}}function f(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function h(){if(r){var e,i,a=r.length;for(n=new Array(a),e=0;e<a;++e)i=r[e],n[i.index]=+t(i,e,r)}}return\\\"function\\\"!=typeof t&&(t=a(null==t?1:+t)),u.initialize=function(t){r=t,h()},u.iterations=function(t){return arguments.length?(c=+t,u):c},u.strength=function(t){return arguments.length?(i=+t,u):i},u.radius=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:a(+e),h(),u):t},u},t.forceLink=function(t){var e,n,i,s,l,f=c,h=function(t){return 1/Math.min(s[t.source.index],s[t.target.index])},p=a(30),d=1;function g(r){for(var i=0,a=t.length;i<d;++i)for(var s,c,u,f,h,p,g,v=0;v<a;++v)c=(s=t[v]).source,f=(u=s.target).x+u.vx-c.x-c.vx||o(),h=u.y+u.vy-c.y-c.vy||o(),f*=p=((p=Math.sqrt(f*f+h*h))-n[v])/p*r*e[v],h*=p,u.vx-=f*(g=l[v]),u.vy-=h*g,c.vx+=f*(g=1-g),c.vy+=h*g}function v(){if(i){var a,o,c=i.length,h=t.length,p=r.map(i,f);for(a=0,s=new Array(c);a<h;++a)(o=t[a]).index=a,\\\"object\\\"!=typeof o.source&&(o.source=u(p,o.source)),\\\"object\\\"!=typeof o.target&&(o.target=u(p,o.target)),s[o.source.index]=(s[o.source.index]||0)+1,s[o.target.index]=(s[o.target.index]||0)+1;for(a=0,l=new Array(h);a<h;++a)o=t[a],l[a]=s[o.source.index]/(s[o.source.index]+s[o.target.index]);e=new Array(h),m(),n=new Array(h),y()}}function m(){if(i)for(var r=0,n=t.length;r<n;++r)e[r]=+h(t[r],r,t)}function y(){if(i)for(var e=0,r=t.length;e<r;++e)n[e]=+p(t[e],e,t)}return null==t&&(t=[]),g.initialize=function(t){i=t,v()},g.links=function(e){return arguments.length?(t=e,v(),g):t},g.id=function(t){return arguments.length?(f=t,g):f},g.iterations=function(t){return arguments.length?(d=+t,g):d},g.strength=function(t){return arguments.length?(h=\\\"function\\\"==typeof t?t:a(+t),m(),g):h},g.distance=function(t){return arguments.length?(p=\\\"function\\\"==typeof t?t:a(+t),y(),g):p},g},t.forceManyBody=function(){var t,r,n,i,s=a(-30),l=1,c=1/0,u=.81;function p(i){var a,o=t.length,s=e.quadtree(t,f,h).visitAfter(g);for(n=i,a=0;a<o;++a)r=t[a],s.visit(v)}function d(){if(t){var e,r,n=t.length;for(i=new Array(n),e=0;e<n;++e)r=t[e],i[r.index]=+s(r,e,t)}}function g(t){var e,r,n,a,o,s=0,l=0;if(t.length){for(n=a=o=0;o<4;++o)(e=t[o])&&(r=Math.abs(e.value))&&(s+=e.value,l+=r,n+=r*e.x,a+=r*e.y);t.x=n/l,t.y=a/l}else{(e=t).x=e.data.x,e.y=e.data.y;do{s+=i[e.data.index]}while(e=e.next)}t.value=s}function v(t,e,a,s){if(!t.value)return!0;var f=t.x-r.x,h=t.y-r.y,p=s-e,d=f*f+h*h;if(p*p/u<d)return d<c&&(0===f&&(d+=(f=o())*f),0===h&&(d+=(h=o())*h),d<l&&(d=Math.sqrt(l*d)),r.vx+=f*t.value*n/d,r.vy+=h*t.value*n/d),!0;if(!(t.length||d>=c)){(t.data!==r||t.next)&&(0===f&&(d+=(f=o())*f),0===h&&(d+=(h=o())*h),d<l&&(d=Math.sqrt(l*d)));do{t.data!==r&&(p=i[t.data.index]*n/d,r.vx+=f*p,r.vy+=h*p)}while(t=t.next)}}return p.initialize=function(e){t=e,d()},p.strength=function(t){return arguments.length?(s=\\\"function\\\"==typeof t?t:a(+t),d(),p):s},p.distanceMin=function(t){return arguments.length?(l=t*t,p):Math.sqrt(l)},p.distanceMax=function(t){return arguments.length?(c=t*t,p):Math.sqrt(c)},p.theta=function(t){return arguments.length?(u=t*t,p):Math.sqrt(u)},p},t.forceRadial=function(t,e,r){var n,i,o,s=a(.1);function l(t){for(var a=0,s=n.length;a<s;++a){var l=n[a],c=l.x-e||1e-6,u=l.y-r||1e-6,f=Math.sqrt(c*c+u*u),h=(o[a]-f)*i[a]*t/f;l.vx+=c*h,l.vy+=u*h}}function c(){if(n){var e,r=n.length;for(i=new Array(r),o=new Array(r),e=0;e<r;++e)o[e]=+t(n[e],e,n),i[e]=isNaN(o[e])?0:+s(n[e],e,n)}}return\\\"function\\\"!=typeof t&&(t=a(+t)),null==e&&(e=0),null==r&&(r=0),l.initialize=function(t){n=t,c()},l.strength=function(t){return arguments.length?(s=\\\"function\\\"==typeof t?t:a(+t),c(),l):s},l.radius=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:a(+e),c(),l):t},l.x=function(t){return arguments.length?(e=+t,l):e},l.y=function(t){return arguments.length?(r=+t,l):r},l},t.forceSimulation=function(t){var e,a=1,o=.001,s=1-Math.pow(o,1/300),l=0,c=.6,u=r.map(),f=i.timer(g),h=n.dispatch(\\\"tick\\\",\\\"end\\\");function g(){v(),h.call(\\\"tick\\\",e),a<o&&(f.stop(),h.call(\\\"end\\\",e))}function v(){var e,r,n=t.length;for(a+=(l-a)*s,u.each(function(t){t(a)}),e=0;e<n;++e)null==(r=t[e]).fx?r.x+=r.vx*=c:(r.x=r.fx,r.vx=0),null==r.fy?r.y+=r.vy*=c:(r.y=r.fy,r.vy=0)}function m(){for(var e,r=0,n=t.length;r<n;++r){if((e=t[r]).index=r,isNaN(e.x)||isNaN(e.y)){var i=p*Math.sqrt(r),a=r*d;e.x=i*Math.cos(a),e.y=i*Math.sin(a)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function y(e){return e.initialize&&e.initialize(t),e}return null==t&&(t=[]),m(),e={tick:v,restart:function(){return f.restart(g),e},stop:function(){return f.stop(),e},nodes:function(r){return arguments.length?(t=r,m(),u.each(y),e):t},alpha:function(t){return arguments.length?(a=+t,e):a},alphaMin:function(t){return arguments.length?(o=+t,e):o},alphaDecay:function(t){return arguments.length?(s=+t,e):+s},alphaTarget:function(t){return arguments.length?(l=+t,e):l},velocityDecay:function(t){return arguments.length?(c=1-t,e):1-c},force:function(t,r){return arguments.length>1?(null==r?u.remove(t):u.set(t,y(r)),e):u.get(t)},find:function(e,r,n){var i,a,o,s,l,c=0,u=t.length;for(null==n?n=1/0:n*=n,c=0;c<u;++c)(o=(i=e-(s=t[c]).x)*i+(a=r-s.y)*a)<n&&(l=s,n=o);return l},on:function(t,r){return arguments.length>1?(h.on(t,r),e):h.on(t)}}},t.forceX=function(t){var e,r,n,i=a(.1);function o(t){for(var i,a=0,o=e.length;a<o;++a)(i=e[a]).vx+=(n[a]-i.x)*r[a]*t}function s(){if(e){var a,o=e.length;for(r=new Array(o),n=new Array(o),a=0;a<o;++a)r[a]=isNaN(n[a]=+t(e[a],a,e))?0:+i(e[a],a,e)}}return\\\"function\\\"!=typeof t&&(t=a(null==t?0:+t)),o.initialize=function(t){e=t,s()},o.strength=function(t){return arguments.length?(i=\\\"function\\\"==typeof t?t:a(+t),s(),o):i},o.x=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:a(+e),s(),o):t},o},t.forceY=function(t){var e,r,n,i=a(.1);function o(t){for(var i,a=0,o=e.length;a<o;++a)(i=e[a]).vy+=(n[a]-i.y)*r[a]*t}function s(){if(e){var a,o=e.length;for(r=new Array(o),n=new Array(o),a=0;a<o;++a)r[a]=isNaN(n[a]=+t(e[a],a,e))?0:+i(e[a],a,e)}}return\\\"function\\\"!=typeof t&&(t=a(null==t?0:+t)),o.initialize=function(t){e=t,s()},o.strength=function(t){return arguments.length?(i=\\\"function\\\"==typeof t?t:a(+t),s(),o):i},o.y=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:a(+e),s(),o):t},o},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?i(r,t(\\\"d3-quadtree\\\"),t(\\\"d3-collection\\\"),t(\\\"d3-dispatch\\\"),t(\\\"d3-timer\\\")):i(n.d3=n.d3||{},n.d3,n.d3,n.d3,n.d3)},{\\\"d3-collection\\\":141,\\\"d3-dispatch\\\":143,\\\"d3-quadtree\\\":146,\\\"d3-timer\\\":147}],145:[function(t,e,r){var n,i;n=this,i=function(t,e){\\\"use strict\\\";function r(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}function n(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],s=i>0?t[i-1]:2*a-o,l=i<e-1?t[i+2]:2*o-a;return r((n-i/e)*e,s,a,o,l)}}function i(t){var e=t.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*e),a=t[(i+e-1)%e],o=t[i%e],s=t[(i+1)%e],l=t[(i+2)%e];return r((n-i/e)*e,a,o,s,l)}}function a(t){return function(){return t}}function o(t,e){return function(r){return t+r*e}}function s(t,e){var r=e-t;return r?o(t,r>180||r<-180?r-360*Math.round(r/360):r):a(isNaN(t)?e:t)}function l(t){return 1==(t=+t)?c:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):a(isNaN(e)?r:e)}}function c(t,e){var r=e-t;return r?o(t,r):a(isNaN(t)?e:t)}var u=function t(r){var n=l(r);function i(t,r){var i=n((t=e.rgb(t)).r,(r=e.rgb(r)).r),a=n(t.g,r.g),o=n(t.b,r.b),s=c(t.opacity,r.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=o(e),t.opacity=s(e),t+\\\"\\\"}}return i.gamma=t,i}(1);function f(t){return function(r){var n,i,a=r.length,o=new Array(a),s=new Array(a),l=new Array(a);for(n=0;n<a;++n)i=e.rgb(r[n]),o[n]=i.r||0,s[n]=i.g||0,l[n]=i.b||0;return o=t(o),s=t(s),l=t(l),i.opacity=1,function(t){return i.r=o(t),i.g=s(t),i.b=l(t),i+\\\"\\\"}}}var h=f(n),p=f(i);function d(t,e){var r,n=e?e.length:0,i=t?Math.min(n,t.length):0,a=new Array(i),o=new Array(n);for(r=0;r<i;++r)a[r]=_(t[r],e[r]);for(;r<n;++r)o[r]=e[r];return function(t){for(r=0;r<i;++r)o[r]=a[r](t);return o}}function g(t,e){var r=new Date;return e-=t=+t,function(n){return r.setTime(t+e*n),r}}function v(t,e){return e-=t=+t,function(r){return t+e*r}}function m(t,e){var r,n={},i={};for(r in null!==t&&\\\"object\\\"==typeof t||(t={}),null!==e&&\\\"object\\\"==typeof e||(e={}),e)r in t?n[r]=_(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}var y=/[-+]?(?:\\\\d+\\\\.?\\\\d*|\\\\.?\\\\d+)(?:[eE][-+]?\\\\d+)?/g,x=new RegExp(y.source,\\\"g\\\");function b(t,e){var r,n,i,a=y.lastIndex=x.lastIndex=0,o=-1,s=[],l=[];for(t+=\\\"\\\",e+=\\\"\\\";(r=y.exec(t))&&(n=x.exec(e));)(i=n.index)>a&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:v(r,n)})),a=x.lastIndex;return a<e.length&&(i=e.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?function(t){return function(e){return t(e)+\\\"\\\"}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join(\\\"\\\")})}function _(t,r){var n,i=typeof r;return null==r||\\\"boolean\\\"===i?a(r):(\\\"number\\\"===i?v:\\\"string\\\"===i?(n=e.color(r))?(r=n,u):b:r instanceof e.color?u:r instanceof Date?g:Array.isArray(r)?d:\\\"function\\\"!=typeof r.valueOf&&\\\"function\\\"!=typeof r.toString||isNaN(r)?m:v)(t,r)}var w,k,M,A,T=180/Math.PI,S={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function E(t,e,r,n,i,a){var o,s,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(s=Math.sqrt(r*r+n*n))&&(r/=s,n/=s,l/=s),t*n<e*r&&(t=-t,e=-e,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*T,skewX:Math.atan(l)*T,scaleX:o,scaleY:s}}function C(t,e,r,n){function i(t){return t.length?t.pop()+\\\" \\\":\\\"\\\"}return function(a,o){var s=[],l=[];return a=t(a),o=t(o),function(t,n,i,a,o,s){if(t!==i||n!==a){var l=o.push(\\\"translate(\\\",null,e,null,r);s.push({i:l-4,x:v(t,i)},{i:l-2,x:v(n,a)})}else(i||a)&&o.push(\\\"translate(\\\"+i+e+a+r)}(a.translateX,a.translateY,o.translateX,o.translateY,s,l),function(t,e,r,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:r.push(i(r)+\\\"rotate(\\\",null,n)-2,x:v(t,e)})):e&&r.push(i(r)+\\\"rotate(\\\"+e+n)}(a.rotate,o.rotate,s,l),function(t,e,r,a){t!==e?a.push({i:r.push(i(r)+\\\"skewX(\\\",null,n)-2,x:v(t,e)}):e&&r.push(i(r)+\\\"skewX(\\\"+e+n)}(a.skewX,o.skewX,s,l),function(t,e,r,n,a,o){if(t!==r||e!==n){var s=a.push(i(a)+\\\"scale(\\\",null,\\\",\\\",null,\\\")\\\");o.push({i:s-4,x:v(t,r)},{i:s-2,x:v(e,n)})}else 1===r&&1===n||a.push(i(a)+\\\"scale(\\\"+r+\\\",\\\"+n+\\\")\\\")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,l),a=o=null,function(t){for(var e,r=-1,n=l.length;++r<n;)s[(e=l[r]).i]=e.x(t);return s.join(\\\"\\\")}}}var L=C(function(t){return\\\"none\\\"===t?S:(w||(w=document.createElement(\\\"DIV\\\"),k=document.documentElement,M=document.defaultView),w.style.transform=t,t=M.getComputedStyle(k.appendChild(w),null).getPropertyValue(\\\"transform\\\"),k.removeChild(w),E(+(t=t.slice(7,-1).split(\\\",\\\"))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},\\\"px, \\\",\\\"px)\\\",\\\"deg)\\\"),z=C(function(t){return null==t?S:(A||(A=document.createElementNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\")),A.setAttribute(\\\"transform\\\",t),(t=A.transform.baseVal.consolidate())?E((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):S)},\\\", \\\",\\\")\\\",\\\")\\\"),O=Math.SQRT2,I=2,P=4,D=1e-12;function R(t){return((t=Math.exp(t))+1/t)/2}function B(t){return function(r,n){var i=t((r=e.hsl(r)).h,(n=e.hsl(n)).h),a=c(r.s,n.s),o=c(r.l,n.l),s=c(r.opacity,n.opacity);return function(t){return r.h=i(t),r.s=a(t),r.l=o(t),r.opacity=s(t),r+\\\"\\\"}}}var F=B(s),N=B(c);function j(t){return function(r,n){var i=t((r=e.hcl(r)).h,(n=e.hcl(n)).h),a=c(r.c,n.c),o=c(r.l,n.l),s=c(r.opacity,n.opacity);return function(t){return r.h=i(t),r.c=a(t),r.l=o(t),r.opacity=s(t),r+\\\"\\\"}}}var V=j(s),U=j(c);function q(t){return function r(n){function i(r,i){var a=t((r=e.cubehelix(r)).h,(i=e.cubehelix(i)).h),o=c(r.s,i.s),s=c(r.l,i.l),l=c(r.opacity,i.opacity);return function(t){return r.h=a(t),r.s=o(t),r.l=s(Math.pow(t,n)),r.opacity=l(t),r+\\\"\\\"}}return n=+n,i.gamma=r,i}(1)}var H=q(s),G=q(c);t.interpolate=_,t.interpolateArray=d,t.interpolateBasis=n,t.interpolateBasisClosed=i,t.interpolateDate=g,t.interpolateDiscrete=function(t){var e=t.length;return function(r){return t[Math.max(0,Math.min(e-1,Math.floor(r*e)))]}},t.interpolateHue=function(t,e){var r=s(+t,+e);return function(t){var e=r(t);return e-360*Math.floor(e/360)}},t.interpolateNumber=v,t.interpolateObject=m,t.interpolateRound=function(t,e){return e-=t=+t,function(r){return Math.round(t+e*r)}},t.interpolateString=b,t.interpolateTransformCss=L,t.interpolateTransformSvg=z,t.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-i,f=l-a,h=u*u+f*f;if(h<D)n=Math.log(c/o)/O,r=function(t){return[i+t*u,a+t*f,o*Math.exp(O*t*n)]};else{var p=Math.sqrt(h),d=(c*c-o*o+P*h)/(2*o*I*p),g=(c*c-o*o-P*h)/(2*c*I*p),v=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(g*g+1)-g);n=(m-v)/O,r=function(t){var e,r=t*n,s=R(v),l=o/(I*p)*(s*(e=O*r+v,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(v));return[i+l*u,a+l*f,o*s/R(O*r+v)]}}return r.duration=1e3*n,r},t.interpolateRgb=u,t.interpolateRgbBasis=h,t.interpolateRgbBasisClosed=p,t.interpolateHsl=F,t.interpolateHslLong=N,t.interpolateLab=function(t,r){var n=c((t=e.lab(t)).l,(r=e.lab(r)).l),i=c(t.a,r.a),a=c(t.b,r.b),o=c(t.opacity,r.opacity);return function(e){return t.l=n(e),t.a=i(e),t.b=a(e),t.opacity=o(e),t+\\\"\\\"}},t.interpolateHcl=V,t.interpolateHclLong=U,t.interpolateCubehelix=H,t.interpolateCubehelixLong=G,t.piecewise=function(t,e){for(var r=0,n=e.length-1,i=e[0],a=new Array(n<0?0:n);r<n;)a[r]=t(i,i=e[++r]);return function(t){var e=Math.max(0,Math.min(n-1,Math.floor(t*=n)));return a[e](t-e)}},t.quantize=function(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t(n/(e-1));return r},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?i(r,t(\\\"d3-color\\\")):i(n.d3=n.d3||{},n.d3)},{\\\"d3-color\\\":142}],146:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";function e(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var i,a,o,s,l,c,u,f,h,p=t._root,d={data:n},g=t._x0,v=t._y0,m=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((c=e>=(a=(g+m)/2))?g=a:m=a,(u=r>=(o=(v+y)/2))?v=o:y=o,i=p,!(p=p[f=u<<1|c]))return i[f]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(c=e>=(a=(g+m)/2))?g=a:m=a,(u=r>=(o=(v+y)/2))?v=o:y=o}while((f=u<<1|c)==(h=(l>=o)<<1|s>=a));return i[h]=p,i[f]=d,t}var r=function(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i};function n(t){return t[0]}function i(t){return t[1]}function a(t,e,r){var a=new o(null==e?n:e,null==r?i:r,NaN,NaN,NaN,NaN);return null==t?a:a.addAll(t)}function o(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function s(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var l=a.prototype=o.prototype;l.copy=function(){var t,e,r=new o(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=s(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var i=0;i<4;++i)(e=n.source[i])&&(e.length?t.push({source:e,target:n.target[i]=new Array(4)}):n.target[i]=s(e));return r},l.add=function(t){var r=+this._x.call(null,t),n=+this._y.call(null,t);return e(this.cover(r,n),r,n,t)},l.addAll=function(t){var r,n,i,a,o=t.length,s=new Array(o),l=new Array(o),c=1/0,u=1/0,f=-1/0,h=-1/0;for(n=0;n<o;++n)isNaN(i=+this._x.call(null,r=t[n]))||isNaN(a=+this._y.call(null,r))||(s[n]=i,l[n]=a,i<c&&(c=i),i>f&&(f=i),a<u&&(u=a),a>h&&(h=a));for(f<c&&(c=this._x0,f=this._x1),h<u&&(u=this._y0,h=this._y1),this.cover(c,u).cover(f,h),n=0;n<o;++n)e(this,s[n],l[n],t[n]);return this},l.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,n=this._y0,i=this._x1,a=this._y1;if(isNaN(r))i=(r=Math.floor(t))+1,a=(n=Math.floor(e))+1;else{if(!(r>t||t>i||n>e||e>a))return this;var o,s,l=i-r,c=this._root;switch(s=(e<(n+a)/2)<<1|t<(r+i)/2){case 0:do{(o=new Array(4))[s]=c,c=o}while(a=n+(l*=2),t>(i=r+l)||e>a);break;case 1:do{(o=new Array(4))[s]=c,c=o}while(a=n+(l*=2),(r=i-l)>t||e>a);break;case 2:do{(o=new Array(4))[s]=c,c=o}while(n=a-(l*=2),t>(i=r+l)||n>e);break;case 3:do{(o=new Array(4))[s]=c,c=o}while(n=a-(l*=2),(r=i-l)>t||n>e)}this._root&&this._root.length&&(this._root=c)}return this._x0=r,this._y0=n,this._x1=i,this._y1=a,this},l.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},l.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},l.find=function(t,e,n){var i,a,o,s,l,c,u,f=this._x0,h=this._y0,p=this._x1,d=this._y1,g=[],v=this._root;for(v&&g.push(new r(v,f,h,p,d)),null==n?n=1/0:(f=t-n,h=e-n,p=t+n,d=e+n,n*=n);c=g.pop();)if(!(!(v=c.node)||(a=c.x0)>p||(o=c.y0)>d||(s=c.x1)<f||(l=c.y1)<h))if(v.length){var m=(a+s)/2,y=(o+l)/2;g.push(new r(v[3],m,y,s,l),new r(v[2],a,y,m,l),new r(v[1],m,o,s,y),new r(v[0],a,o,m,y)),(u=(e>=y)<<1|t>=m)&&(c=g[g.length-1],g[g.length-1]=g[g.length-1-u],g[g.length-1-u]=c)}else{var x=t-+this._x.call(null,v.data),b=e-+this._y.call(null,v.data),_=x*x+b*b;if(_<n){var w=Math.sqrt(n=_);f=t-w,h=e-w,p=t+w,d=e+w,i=v.data}}return i},l.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var e,r,n,i,a,o,s,l,c,u,f,h,p=this._root,d=this._x0,g=this._y0,v=this._x1,m=this._y1;if(!p)return this;if(p.length)for(;;){if((c=a>=(s=(d+v)/2))?d=s:v=s,(u=o>=(l=(g+m)/2))?g=l:m=l,e=p,!(p=p[f=u<<1|c]))return this;if(!p.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(r=e,h=f)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[f]=i:delete e[f],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[h]=p:this._root=p),this):(this._root=i,this)},l.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},l.root=function(){return this._root},l.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},l.visit=function(t){var e,n,i,a,o,s,l=[],c=this._root;for(c&&l.push(new r(c,this._x0,this._y0,this._x1,this._y1));e=l.pop();)if(!t(c=e.node,i=e.x0,a=e.y0,o=e.x1,s=e.y1)&&c.length){var u=(i+o)/2,f=(a+s)/2;(n=c[3])&&l.push(new r(n,u,f,o,s)),(n=c[2])&&l.push(new r(n,i,f,u,s)),(n=c[1])&&l.push(new r(n,u,a,o,f)),(n=c[0])&&l.push(new r(n,i,a,u,f))}return this},l.visitAfter=function(t){var e,n=[],i=[];for(this._root&&n.push(new r(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var a=e.node;if(a.length){var o,s=e.x0,l=e.y0,c=e.x1,u=e.y1,f=(s+c)/2,h=(l+u)/2;(o=a[0])&&n.push(new r(o,s,l,f,h)),(o=a[1])&&n.push(new r(o,f,l,c,h)),(o=a[2])&&n.push(new r(o,s,h,f,u)),(o=a[3])&&n.push(new r(o,f,h,c,u))}i.push(e)}for(;e=i.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},l.x=function(t){return arguments.length?(this._x=t,this):this._x},l.y=function(t){return arguments.length?(this._y=t,this):this._y},t.quadtree=a,Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],147:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";var e,r,n=0,i=0,a=0,o=1e3,s=0,l=0,c=0,u=\\\"object\\\"==typeof performance&&performance.now?performance:Date,f=\\\"object\\\"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function h(){return l||(f(p),l=u.now()+c)}function p(){l=0}function d(){this._call=this._time=this._next=null}function g(t,e,r){var n=new d;return n.restart(t,e,r),n}function v(){h(),++n;for(var t,r=e;r;)(t=l-r._time)>=0&&r._call.call(null,t),r=r._next;--n}function m(){l=(s=u.now())+c,n=i=0;try{v()}finally{n=0,function(){var t,n,i=e,a=1/0;for(;i;)i._call?(a>i._time&&(a=i._time),t=i,i=i._next):(n=i._next,i._next=null,i=t?t._next=n:e=n);r=t,x(a)}(),l=0}}function y(){var t=u.now(),e=t-s;e>o&&(c-=e,s=t)}function x(t){n||(i&&(i=clearTimeout(i)),t-l>24?(t<1/0&&(i=setTimeout(m,t-u.now()-c)),a&&(a=clearInterval(a))):(a||(s=u.now(),a=setInterval(y,o)),n=1,f(m)))}d.prototype=g.prototype={constructor:d,restart:function(t,n,i){if(\\\"function\\\"!=typeof t)throw new TypeError(\\\"callback is not a function\\\");i=(null==i?h():+i)+(null==n?0:+n),this._next||r===this||(r?r._next=this:e=this,r=this),this._call=t,this._time=i,x()},stop:function(){this._call&&(this._call=null,this._time=1/0,x())}};t.now=h,t.timer=g,t.timerFlush=v,t.timeout=function(t,e,r){var n=new d;return e=null==e?0:+e,n.restart(function(r){n.stop(),t(r+e)},e,r),n},t.interval=function(t,e,r){var n=new d,i=e;return null==e?(n.restart(t,e,r),n):(e=+e,r=null==r?h():+r,n.restart(function a(o){o+=i,n.restart(a,i+=e,r),t(o)},e,r),n)},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],148:[function(t,e,r){!function(){var t={version:\\\"3.5.17\\\"},r=[].slice,n=function(t){return r.call(t)},i=this.document;function a(t){return t&&(t.ownerDocument||t.document||t).documentElement}function o(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(i)try{n(i.documentElement.childNodes)[0].nodeType}catch(t){n=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),i)try{i.createElement(\\\"DIV\\\").style.setProperty(\\\"opacity\\\",0,\\\"\\\")}catch(t){var s=this.Element.prototype,l=s.setAttribute,c=s.setAttributeNS,u=this.CSSStyleDeclaration.prototype,f=u.setProperty;s.setAttribute=function(t,e){l.call(this,t,e+\\\"\\\")},s.setAttributeNS=function(t,e,r){c.call(this,t,e,r+\\\"\\\")},u.setProperty=function(t,e,r){f.call(this,t,e+\\\"\\\",r)}}function h(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function p(t){return null===t?NaN:+t}function d(t){return!isNaN(t)}function g(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}t.ascending=h,t.descending=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},t.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i<a;)if(null!=(n=t[i])&&n>=n){r=n;break}for(;++i<a;)null!=(n=t[i])&&r>n&&(r=n)}else{for(;++i<a;)if(null!=(n=e.call(t,t[i],i))&&n>=n){r=n;break}for(;++i<a;)null!=(n=e.call(t,t[i],i))&&r>n&&(r=n)}return r},t.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i<a;)if(null!=(n=t[i])&&n>=n){r=n;break}for(;++i<a;)null!=(n=t[i])&&n>r&&(r=n)}else{for(;++i<a;)if(null!=(n=e.call(t,t[i],i))&&n>=n){r=n;break}for(;++i<a;)null!=(n=e.call(t,t[i],i))&&n>r&&(r=n)}return r},t.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a<o;)if(null!=(n=t[a])&&n>=n){r=i=n;break}for(;++a<o;)null!=(n=t[a])&&(r>n&&(r=n),i<n&&(i=n))}else{for(;++a<o;)if(null!=(n=e.call(t,t[a],a))&&n>=n){r=i=n;break}for(;++a<o;)null!=(n=e.call(t,t[a],a))&&(r>n&&(r=n),i<n&&(i=n))}return[r,i]},t.sum=function(t,e){var r,n=0,i=t.length,a=-1;if(1===arguments.length)for(;++a<i;)d(r=+t[a])&&(n+=r);else for(;++a<i;)d(r=+e.call(t,t[a],a))&&(n+=r);return n},t.mean=function(t,e){var r,n=0,i=t.length,a=-1,o=i;if(1===arguments.length)for(;++a<i;)d(r=p(t[a]))?n+=r:--o;else for(;++a<i;)d(r=p(e.call(t,t[a],a)))?n+=r:--o;if(o)return n/o},t.quantile=function(t,e){var r=(t.length-1)*e+1,n=Math.floor(r),i=+t[n-1],a=r-n;return a?i+a*(t[n]-i):i},t.median=function(e,r){var n,i=[],a=e.length,o=-1;if(1===arguments.length)for(;++o<a;)d(n=p(e[o]))&&i.push(n);else for(;++o<a;)d(n=p(r.call(e,e[o],o)))&&i.push(n);if(i.length)return t.quantile(i.sort(h),.5)},t.variance=function(t,e){var r,n,i=t.length,a=0,o=0,s=-1,l=0;if(1===arguments.length)for(;++s<i;)d(r=p(t[s]))&&(o+=(n=r-a)*(r-(a+=n/++l)));else for(;++s<i;)d(r=p(e.call(t,t[s],s)))&&(o+=(n=r-a)*(r-(a+=n/++l)));if(l>1)return o/(l-1)},t.deviation=function(){var e=t.variance.apply(this,arguments);return e?Math.sqrt(e):e};var v=g(h);function m(t){return t.length}t.bisectLeft=v.left,t.bisect=t.bisectRight=v.right,t.bisector=function(t){return g(1===t.length?function(e,r){return h(t(e),r)}:t)},t.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e<r;)i[e]=[n,n=t[++e]];return i},t.transpose=function(e){if(!(a=e.length))return[];for(var r=-1,n=t.min(e,m),i=new Array(n);++r<n;)for(var a,o=-1,s=i[r]=new Array(a);++o<a;)s[o]=e[o][r];return i},t.zip=function(){return t.transpose(arguments)},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},t.merge=function(t){for(var e,r,n,i=t.length,a=-1,o=0;++a<i;)o+=t[a].length;for(r=new Array(o);--i>=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var y=Math.abs;function x(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function b(){this._=Object.create(null)}t.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error(\\\"infinite range\\\");var n,i=[],a=function(t){var e=1;for(;t*e%1;)e*=10;return e}(y(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)<e;)i.push(n/a);return i},t.map=function(t,e){var r=new b;if(t instanceof b)t.forEach(function(t,e){r.set(t,e)});else if(Array.isArray(t)){var n,i=-1,a=t.length;if(1===arguments.length)for(;++i<a;)r.set(i,t[i]);else for(;++i<a;)r.set(e.call(t,n=t[i],i),n)}else for(var o in t)r.set(o,t[o]);return r};var _=\\\"__proto__\\\",w=\\\"\\\\0\\\";function k(t){return(t+=\\\"\\\")===_||t[0]===w?w+t:t}function M(t){return(t+=\\\"\\\")[0]===w?t.slice(1):t}function A(t){return k(t)in this._}function T(t){return(t=k(t))in this._&&delete this._[t]}function S(){var t=[];for(var e in this._)t.push(M(e));return t}function E(){var t=0;for(var e in this._)++t;return t}function C(){for(var t in this._)return!1;return!0}function L(){this._=Object.create(null)}function z(t){return t}function O(t,e,r){return function(){var n=r.apply(e,arguments);return n===e?t:n}}function I(t,e){if(e in t)return e;e=e.charAt(0).toUpperCase()+e.slice(1);for(var r=0,n=P.length;r<n;++r){var i=P[r]+e;if(i in t)return i}}x(b,{has:A,get:function(t){return this._[k(t)]},set:function(t,e){return this._[k(t)]=e},remove:T,keys:S,values:function(){var t=[];for(var e in this._)t.push(this._[e]);return t},entries:function(){var t=[];for(var e in this._)t.push({key:M(e),value:this._[e]});return t},size:E,empty:C,forEach:function(t){for(var e in this._)t.call(this,M(e),this._[e])}}),t.nest=function(){var e,r,n={},i=[],a=[];function o(t,a,s){if(s>=i.length)return r?r.call(n,a):e?a.sort(e):a;for(var l,c,u,f,h=-1,p=a.length,d=i[s++],g=new b;++h<p;)(f=g.get(l=d(c=a[h])))?f.push(c):g.set(l,[c]);return t?(c=t(),u=function(e,r){c.set(e,o(t,r,s))}):(c={},u=function(e,r){c[e]=o(t,r,s)}),g.forEach(u),c}return n.map=function(t,e){return o(e,t,0)},n.entries=function(e){return function t(e,r){if(r>=i.length)return e;var n=[],o=a[r++];return e.forEach(function(e,i){n.push({key:e,values:t(i,r)})}),o?n.sort(function(t,e){return o(t.key,e.key)}):n}(o(t.map,e,0),0)},n.key=function(t){return i.push(t),n},n.sortKeys=function(t){return a[i.length-1]=t,n},n.sortValues=function(t){return e=t,n},n.rollup=function(t){return r=t,n},n},t.set=function(t){var e=new L;if(t)for(var r=0,n=t.length;r<n;++r)e.add(t[r]);return e},x(L,{has:A,add:function(t){return this._[k(t+=\\\"\\\")]=!0,t},remove:T,values:S,size:E,empty:C,forEach:function(t){for(var e in this._)t.call(this,M(e))}}),t.behavior={},t.rebind=function(t,e){for(var r,n=1,i=arguments.length;++n<i;)t[r=arguments[n]]=O(t,e,e[r]);return t};var P=[\\\"webkit\\\",\\\"ms\\\",\\\"moz\\\",\\\"Moz\\\",\\\"o\\\",\\\"O\\\"];function D(){}function R(){}function B(t){var e=[],r=new b;function n(){for(var r,n=e,i=-1,a=n.length;++i<a;)(r=n[i].on)&&r.apply(this,arguments);return t}return n.on=function(n,i){var a,o=r.get(n);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,a=e.indexOf(o)).concat(e.slice(a+1)),r.remove(n)),i&&e.push(r.set(n,{on:i})),t)},n}function F(){t.event.preventDefault()}function N(){for(var e,r=t.event;e=r.sourceEvent;)r=e;return r}function j(e){for(var r=new R,n=0,i=arguments.length;++n<i;)r[arguments[n]]=B(r);return r.of=function(n,i){return function(a){try{var o=a.sourceEvent=t.event;a.target=e,t.event=a,r[a.type].apply(n,i)}finally{t.event=o}}},r}t.dispatch=function(){for(var t=new R,e=-1,r=arguments.length;++e<r;)t[arguments[e]]=B(t);return t},R.prototype.on=function(t,e){var r=t.indexOf(\\\".\\\"),n=\\\"\\\";if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},t.event=null,t.requote=function(t){return t.replace(V,\\\"\\\\\\\\$&\\\")};var V=/[\\\\\\\\\\\\^\\\\$\\\\*\\\\+\\\\?\\\\|\\\\[\\\\]\\\\(\\\\)\\\\.\\\\{\\\\}]/g,U={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function q(t){return U(t,Y),t}var H=function(t,e){return e.querySelector(t)},G=function(t,e){return e.querySelectorAll(t)},W=function(t,e){var r=t.matches||t[I(t,\\\"matchesSelector\\\")];return(W=function(t,e){return r.call(t,e)})(t,e)};\\\"function\\\"==typeof Sizzle&&(H=function(t,e){return Sizzle(t,e)[0]||null},G=Sizzle,W=Sizzle.matchesSelector),t.selection=function(){return t.select(i.documentElement)};var Y=t.selection.prototype=[];function X(t){return\\\"function\\\"==typeof t?t:function(){return H(t,this)}}function Z(t){return\\\"function\\\"==typeof t?t:function(){return G(t,this)}}Y.select=function(t){var e,r,n,i,a=[];t=X(t);for(var o=-1,s=this.length;++o<s;){a.push(e=[]),e.parentNode=(n=this[o]).parentNode;for(var l=-1,c=n.length;++l<c;)(i=n[l])?(e.push(r=t.call(i,i.__data__,l,o)),r&&\\\"__data__\\\"in i&&(r.__data__=i.__data__)):e.push(null)}return q(a)},Y.selectAll=function(t){var e,r,i=[];t=Z(t);for(var a=-1,o=this.length;++a<o;)for(var s=this[a],l=-1,c=s.length;++l<c;)(r=s[l])&&(i.push(e=n(t.call(r,r.__data__,l,a))),e.parentNode=r);return q(i)};var $=\\\"http://www.w3.org/1999/xhtml\\\",J={svg:\\\"http://www.w3.org/2000/svg\\\",xhtml:$,xlink:\\\"http://www.w3.org/1999/xlink\\\",xml:\\\"http://www.w3.org/XML/1998/namespace\\\",xmlns:\\\"http://www.w3.org/2000/xmlns/\\\"};function K(e,r){return e=t.ns.qualify(e),null==r?e.local?function(){this.removeAttributeNS(e.space,e.local)}:function(){this.removeAttribute(e)}:\\\"function\\\"==typeof r?e.local?function(){var t=r.apply(this,arguments);null==t?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,t)}:function(){var t=r.apply(this,arguments);null==t?this.removeAttribute(e):this.setAttribute(e,t)}:e.local?function(){this.setAttributeNS(e.space,e.local,r)}:function(){this.setAttribute(e,r)}}function Q(t){return t.trim().replace(/\\\\s+/g,\\\" \\\")}function tt(e){return new RegExp(\\\"(?:^|\\\\\\\\s+)\\\"+t.requote(e)+\\\"(?:\\\\\\\\s+|$)\\\",\\\"g\\\")}function et(t){return(t+\\\"\\\").trim().split(/^|\\\\s+/)}function rt(t,e){var r=(t=et(t).map(nt)).length;return\\\"function\\\"==typeof e?function(){for(var n=-1,i=e.apply(this,arguments);++n<r;)t[n](this,i)}:function(){for(var n=-1;++n<r;)t[n](this,e)}}function nt(t){var e=tt(t);return function(r,n){if(i=r.classList)return n?i.add(t):i.remove(t);var i=r.getAttribute(\\\"class\\\")||\\\"\\\";n?(e.lastIndex=0,e.test(i)||r.setAttribute(\\\"class\\\",Q(i+\\\" \\\"+t))):r.setAttribute(\\\"class\\\",Q(i.replace(e,\\\" \\\")))}}function it(t,e,r){return null==e?function(){this.style.removeProperty(t)}:\\\"function\\\"==typeof e?function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,r)}:function(){this.style.setProperty(t,e,r)}}function at(t,e){return null==e?function(){delete this[t]}:\\\"function\\\"==typeof e?function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}:function(){this[t]=e}}function ot(e){return\\\"function\\\"==typeof e?e:(e=t.ns.qualify(e)).local?function(){return this.ownerDocument.createElementNS(e.space,e.local)}:function(){var t=this.ownerDocument,r=this.namespaceURI;return r===$&&t.documentElement.namespaceURI===$?t.createElement(e):t.createElementNS(r,e)}}function st(){var t=this.parentNode;t&&t.removeChild(this)}function lt(t){return{__data__:t}}function ct(t){return function(){return W(this,t)}}function ut(t,e){for(var r=0,n=t.length;r<n;r++)for(var i,a=t[r],o=0,s=a.length;o<s;o++)(i=a[o])&&e(i,o,r);return t}function ft(t){return U(t,ht),t}t.ns={prefix:J,qualify:function(t){var e=t.indexOf(\\\":\\\"),r=t;return e>=0&&\\\"xmlns\\\"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),J.hasOwnProperty(r)?{space:J[r],local:t}:t}},Y.attr=function(e,r){if(arguments.length<2){if(\\\"string\\\"==typeof e){var n=this.node();return(e=t.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(r in e)this.each(K(r,e[r]));return this}return this.each(K(e,r))},Y.classed=function(t,e){if(arguments.length<2){if(\\\"string\\\"==typeof t){var r=this.node(),n=(t=et(t)).length,i=-1;if(e=r.classList){for(;++i<n;)if(!e.contains(t[i]))return!1}else for(e=r.getAttribute(\\\"class\\\");++i<n;)if(!tt(t[i]).test(e))return!1;return!0}for(e in t)this.each(rt(e,t[e]));return this}return this.each(rt(t,e))},Y.style=function(t,e,r){var n=arguments.length;if(n<3){if(\\\"string\\\"!=typeof t){for(r in n<2&&(e=\\\"\\\"),t)this.each(it(r,t[r],e));return this}if(n<2){var i=this.node();return o(i).getComputedStyle(i,null).getPropertyValue(t)}r=\\\"\\\"}return this.each(it(t,e,r))},Y.property=function(t,e){if(arguments.length<2){if(\\\"string\\\"==typeof t)return this.node()[t];for(e in t)this.each(at(e,t[e]));return this}return this.each(at(t,e))},Y.text=function(t){return arguments.length?this.each(\\\"function\\\"==typeof t?function(){var e=t.apply(this,arguments);this.textContent=null==e?\\\"\\\":e}:null==t?function(){this.textContent=\\\"\\\"}:function(){this.textContent=t}):this.node().textContent},Y.html=function(t){return arguments.length?this.each(\\\"function\\\"==typeof t?function(){var e=t.apply(this,arguments);this.innerHTML=null==e?\\\"\\\":e}:null==t?function(){this.innerHTML=\\\"\\\"}:function(){this.innerHTML=t}):this.node().innerHTML},Y.append=function(t){return t=ot(t),this.select(function(){return this.appendChild(t.apply(this,arguments))})},Y.insert=function(t,e){return t=ot(t),e=X(e),this.select(function(){return this.insertBefore(t.apply(this,arguments),e.apply(this,arguments)||null)})},Y.remove=function(){return this.each(st)},Y.data=function(t,e){var r,n,i=-1,a=this.length;if(!arguments.length){for(t=new Array(a=(r=this[0]).length);++i<a;)(n=r[i])&&(t[i]=n.__data__);return t}function o(t,r){var n,i,a,o=t.length,u=r.length,f=Math.min(o,u),h=new Array(u),p=new Array(u),d=new Array(o);if(e){var g,v=new b,m=new Array(o);for(n=-1;++n<o;)(i=t[n])&&(v.has(g=e.call(i,i.__data__,n))?d[n]=i:v.set(g,i),m[n]=g);for(n=-1;++n<u;)(i=v.get(g=e.call(r,a=r[n],n)))?!0!==i&&(h[n]=i,i.__data__=a):p[n]=lt(a),v.set(g,!0);for(n=-1;++n<o;)n in m&&!0!==v.get(m[n])&&(d[n]=t[n])}else{for(n=-1;++n<f;)i=t[n],a=r[n],i?(i.__data__=a,h[n]=i):p[n]=lt(a);for(;n<u;++n)p[n]=lt(r[n]);for(;n<o;++n)d[n]=t[n]}p.update=h,p.parentNode=h.parentNode=d.parentNode=t.parentNode,s.push(p),l.push(h),c.push(d)}var s=ft([]),l=q([]),c=q([]);if(\\\"function\\\"==typeof t)for(;++i<a;)o(r=this[i],t.call(r,r.parentNode.__data__,i));else for(;++i<a;)o(r=this[i],t);return l.enter=function(){return s},l.exit=function(){return c},l},Y.datum=function(t){return arguments.length?this.property(\\\"__data__\\\",t):this.property(\\\"__data__\\\")},Y.filter=function(t){var e,r,n,i=[];\\\"function\\\"!=typeof t&&(t=ct(t));for(var a=0,o=this.length;a<o;a++){i.push(e=[]),e.parentNode=(r=this[a]).parentNode;for(var s=0,l=r.length;s<l;s++)(n=r[s])&&t.call(n,n.__data__,s,a)&&e.push(n)}return q(i)},Y.order=function(){for(var t=-1,e=this.length;++t<e;)for(var r,n=this[t],i=n.length-1,a=n[i];--i>=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},Y.sort=function(t){t=function(t){arguments.length||(t=h);return function(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}}.apply(this,arguments);for(var e=-1,r=this.length;++e<r;)this[e].sort(t);return this.order()},Y.each=function(t){return ut(this,function(e,r,n){t.call(e,e.__data__,r,n)})},Y.call=function(t){var e=n(arguments);return t.apply(e[0]=this,e),this},Y.empty=function(){return!this.node()},Y.node=function(){for(var t=0,e=this.length;t<e;t++)for(var r=this[t],n=0,i=r.length;n<i;n++){var a=r[n];if(a)return a}return null},Y.size=function(){var t=0;return ut(this,function(){++t}),t};var ht=[];function pt(e,r,i){var a=\\\"__on\\\"+e,o=e.indexOf(\\\".\\\"),s=gt;o>0&&(e=e.slice(0,o));var l=dt.get(e);function c(){var t=this[a];t&&(this.removeEventListener(e,t,t.$),delete this[a])}return l&&(e=l,s=vt),o?r?function(){var t=s(r,n(arguments));c.call(this),this.addEventListener(e,this[a]=t,t.$=i),t._=r}:c:r?D:function(){var r,n=new RegExp(\\\"^__on([^.]+)\\\"+t.requote(e)+\\\"$\\\");for(var i in this)if(r=i.match(n)){var a=this[i];this.removeEventListener(r[1],a,a.$),delete this[i]}}}t.selection.enter=ft,t.selection.enter.prototype=ht,ht.append=Y.append,ht.empty=Y.empty,ht.node=Y.node,ht.call=Y.call,ht.size=Y.size,ht.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s<l;){n=(i=this[s]).update,o.push(e=[]),e.parentNode=i.parentNode;for(var c=-1,u=i.length;++c<u;)(a=i[c])?(e.push(n[c]=r=t.call(i.parentNode,a.__data__,c,s)),r.__data__=a.__data__):e.push(null)}return q(o)},ht.insert=function(t,e){var r,n,i;return arguments.length<2&&(r=this,e=function(t,e,a){var o,s=r[a].update,l=s.length;for(a!=i&&(i=a,n=0),e>=n&&(n=e+1);!(o=s[n])&&++n<l;);return o}),Y.insert.call(this,t,e)},t.select=function(t){var e;return\\\"string\\\"==typeof t?(e=[H(t,i)]).parentNode=i.documentElement:(e=[t]).parentNode=a(t),q([e])},t.selectAll=function(t){var e;return\\\"string\\\"==typeof t?(e=n(G(t,i))).parentNode=i.documentElement:(e=n(t)).parentNode=null,q([e])},Y.on=function(t,e,r){var n=arguments.length;if(n<3){if(\\\"string\\\"!=typeof t){for(r in n<2&&(e=!1),t)this.each(pt(r,t[r],e));return this}if(n<2)return(n=this.node()[\\\"__on\\\"+t])&&n._;r=!1}return this.each(pt(t,e,r))};var dt=t.map({mouseenter:\\\"mouseover\\\",mouseleave:\\\"mouseout\\\"});function gt(e,r){return function(n){var i=t.event;t.event=n,r[0]=this.__data__;try{e.apply(this,r)}finally{t.event=i}}}function vt(t,e){var r=gt(t,e);return function(t){var e=t.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||r.call(this,t)}}i&&dt.forEach(function(t){\\\"on\\\"+t in i&&dt.remove(t)});var mt,yt=0;function xt(e){var r=\\\".dragsuppress-\\\"+ ++yt,n=\\\"click\\\"+r,i=t.select(o(e)).on(\\\"touchmove\\\"+r,F).on(\\\"dragstart\\\"+r,F).on(\\\"selectstart\\\"+r,F);if(null==mt&&(mt=!(\\\"onselectstart\\\"in e)&&I(e.style,\\\"userSelect\\\")),mt){var s=a(e).style,l=s[mt];s[mt]=\\\"none\\\"}return function(t){if(i.on(r,null),mt&&(s[mt]=l),t){var e=function(){i.on(n,null)};i.on(n,function(){F(),e()},!0),setTimeout(e,0)}}}t.mouse=function(t){return _t(t,N())};var bt=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function _t(e,r){r.changedTouches&&(r=r.changedTouches[0]);var n=e.ownerSVGElement||e;if(n.createSVGPoint){var i=n.createSVGPoint();if(bt<0){var a=o(e);if(a.scrollX||a.scrollY){var s=(n=t.select(\\\"body\\\").append(\\\"svg\\\").style({position:\\\"absolute\\\",top:0,left:0,margin:0,padding:0,border:\\\"none\\\"},\\\"important\\\"))[0][0].getScreenCTM();bt=!(s.f||s.e),n.remove()}}return bt?(i.x=r.pageX,i.y=r.pageY):(i.x=r.clientX,i.y=r.clientY),[(i=i.matrixTransform(e.getScreenCTM().inverse())).x,i.y]}var l=e.getBoundingClientRect();return[r.clientX-l.left-e.clientLeft,r.clientY-l.top-e.clientTop]}function wt(){return t.event.changedTouches[0].identifier}t.touch=function(t,e,r){if(arguments.length<3&&(r=e,e=N().changedTouches),e)for(var n,i=0,a=e.length;i<a;++i)if((n=e[i]).identifier===r)return _t(t,n)},t.behavior.drag=function(){var e=j(a,\\\"drag\\\",\\\"dragstart\\\",\\\"dragend\\\"),r=null,n=s(D,t.mouse,o,\\\"mousemove\\\",\\\"mouseup\\\"),i=s(wt,t.touch,z,\\\"touchmove\\\",\\\"touchend\\\");function a(){this.on(\\\"mousedown.drag\\\",n).on(\\\"touchstart.drag\\\",i)}function s(n,i,a,o,s){return function(){var l,c=t.event.target.correspondingElement||t.event.target,u=this.parentNode,f=e.of(this,arguments),h=0,p=n(),d=\\\".drag\\\"+(null==p?\\\"\\\":\\\"-\\\"+p),g=t.select(a(c)).on(o+d,function(){var t,e,r=i(u,p);if(!r)return;t=r[0]-m[0],e=r[1]-m[1],h|=t|e,m=r,f({type:\\\"drag\\\",x:r[0]+l[0],y:r[1]+l[1],dx:t,dy:e})}).on(s+d,function(){if(!i(u,p))return;g.on(o+d,null).on(s+d,null),v(h),f({type:\\\"dragend\\\"})}),v=xt(c),m=i(u,p);l=r?[(l=r.apply(this,arguments)).x-m[0],l.y-m[1]]:[0,0],f({type:\\\"dragstart\\\"})}}return a.origin=function(t){return arguments.length?(r=t,a):r},t.rebind(a,e,\\\"on\\\")},t.touches=function(t,e){return arguments.length<2&&(e=N().touches),e?n(e).map(function(e){var r=_t(t,e);return r.identifier=e.identifier,r}):[]};var kt=1e-6,Mt=kt*kt,At=Math.PI,Tt=2*At,St=Tt-kt,Et=At/2,Ct=At/180,Lt=180/At;function zt(t){return t>0?1:t<0?-1:0}function Ot(t,e,r){return(e[0]-t[0])*(r[1]-t[1])-(e[1]-t[1])*(r[0]-t[0])}function It(t){return t>1?0:t<-1?At:Math.acos(t)}function Pt(t){return t>1?Et:t<-1?-Et:Math.asin(t)}function Dt(t){return((t=Math.exp(t))+1/t)/2}function Rt(t){return(t=Math.sin(t/2))*t}var Bt=Math.SQRT2;t.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-i,f=l-a,h=u*u+f*f;if(h<Mt)n=Math.log(c/o)/Bt,r=function(t){return[i+t*u,a+t*f,o*Math.exp(Bt*t*n)]};else{var p=Math.sqrt(h),d=(c*c-o*o+4*h)/(2*o*2*p),g=(c*c-o*o-4*h)/(2*c*2*p),v=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(g*g+1)-g);n=(m-v)/Bt,r=function(t){var e,r=t*n,s=Dt(v),l=o/(2*p)*(s*(e=Bt*r+v,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(v));return[i+l*u,a+l*f,o*s/Dt(Bt*r+v)]}}return r.duration=1e3*n,r},t.behavior.zoom=function(){var e,r,n,a,s,l,c,u,f,h={x:0,y:0,k:1},p=[960,500],d=jt,g=250,v=0,m=\\\"mousedown.zoom\\\",y=\\\"mousemove.zoom\\\",x=\\\"mouseup.zoom\\\",b=\\\"touchstart.zoom\\\",_=j(w,\\\"zoomstart\\\",\\\"zoom\\\",\\\"zoomend\\\");function w(t){t.on(m,z).on(Nt+\\\".zoom\\\",I).on(\\\"dblclick.zoom\\\",P).on(b,O)}function k(t){return[(t[0]-h.x)/h.k,(t[1]-h.y)/h.k]}function M(t){h.k=Math.max(d[0],Math.min(d[1],t))}function A(t,e){e=function(t){return[t[0]*h.k+h.x,t[1]*h.k+h.y]}(e),h.x+=t[0]-e[0],h.y+=t[1]-e[1]}function T(e,n,i,a){e.__chart__={x:h.x,y:h.y,k:h.k},M(Math.pow(2,a)),A(r=n,i),e=t.select(e),g>0&&(e=e.transition().duration(g)),e.call(w.event)}function S(){c&&c.domain(l.range().map(function(t){return(t-h.x)/h.k}).map(l.invert)),f&&f.domain(u.range().map(function(t){return(t-h.y)/h.k}).map(u.invert))}function E(t){v++||t({type:\\\"zoomstart\\\"})}function C(t){S(),t({type:\\\"zoom\\\",scale:h.k,translate:[h.x,h.y]})}function L(t){--v||(t({type:\\\"zoomend\\\"}),r=null)}function z(){var e=this,r=_.of(e,arguments),n=0,i=t.select(o(e)).on(y,function(){n=1,A(t.mouse(e),a),C(r)}).on(x,function(){i.on(y,null).on(x,null),s(n),L(r)}),a=k(t.mouse(e)),s=xt(e);fs.call(e),E(r)}function O(){var e,r=this,n=_.of(r,arguments),i={},a=0,o=\\\".zoom-\\\"+t.event.changedTouches[0].identifier,l=\\\"touchmove\\\"+o,c=\\\"touchend\\\"+o,u=[],f=t.select(r),p=xt(r);function d(){var n=t.touches(r);return e=h.k,n.forEach(function(t){t.identifier in i&&(i[t.identifier]=k(t))}),n}function g(){var e=t.event.target;t.select(e).on(l,v).on(c,y),u.push(e);for(var n=t.event.changedTouches,o=0,f=n.length;o<f;++o)i[n[o].identifier]=null;var p=d(),g=Date.now();if(1===p.length){if(g-s<500){var m=p[0];T(r,m,i[m.identifier],Math.floor(Math.log(h.k)/Math.LN2)+1),F()}s=g}else if(p.length>1){m=p[0];var x=p[1],b=m[0]-x[0],_=m[1]-x[1];a=b*b+_*_}}function v(){var o,l,c,u,f=t.touches(r);fs.call(r);for(var h=0,p=f.length;h<p;++h,u=null)if(c=f[h],u=i[c.identifier]){if(l)break;o=c,l=u}if(u){var d=(d=c[0]-o[0])*d+(d=c[1]-o[1])*d,g=a&&Math.sqrt(d/a);o=[(o[0]+c[0])/2,(o[1]+c[1])/2],l=[(l[0]+u[0])/2,(l[1]+u[1])/2],M(g*e)}s=null,A(o,l),C(n)}function y(){if(t.event.touches.length){for(var e=t.event.changedTouches,r=0,a=e.length;r<a;++r)delete i[e[r].identifier];for(var s in i)return void d()}t.selectAll(u).on(o,null),f.on(m,z).on(b,O),p(),L(n)}g(),E(n),f.on(m,null).on(b,g)}function I(){var i=_.of(this,arguments);a?clearTimeout(a):(fs.call(this),e=k(r=n||t.mouse(this)),E(i)),a=setTimeout(function(){a=null,L(i)},50),F(),M(Math.pow(2,.002*Ft())*h.k),A(r,e),C(i)}function P(){var e=t.mouse(this),r=Math.log(h.k)/Math.LN2;T(this,e,k(e),t.event.shiftKey?Math.ceil(r)-1:Math.floor(r)+1)}return Nt||(Nt=\\\"onwheel\\\"in i?(Ft=function(){return-t.event.deltaY*(t.event.deltaMode?120:1)},\\\"wheel\\\"):\\\"onmousewheel\\\"in i?(Ft=function(){return t.event.wheelDelta},\\\"mousewheel\\\"):(Ft=function(){return-t.event.detail},\\\"MozMousePixelScroll\\\")),w.event=function(e){e.each(function(){var e=_.of(this,arguments),n=h;ds?t.select(this).transition().each(\\\"start.zoom\\\",function(){h=this.__chart__||{x:0,y:0,k:1},E(e)}).tween(\\\"zoom:zoom\\\",function(){var i=p[0],a=p[1],o=r?r[0]:i/2,s=r?r[1]:a/2,l=t.interpolateZoom([(o-h.x)/h.k,(s-h.y)/h.k,i/h.k],[(o-n.x)/n.k,(s-n.y)/n.k,i/n.k]);return function(t){var r=l(t),n=i/r[2];this.__chart__=h={x:o-r[0]*n,y:s-r[1]*n,k:n},C(e)}}).each(\\\"interrupt.zoom\\\",function(){L(e)}).each(\\\"end.zoom\\\",function(){L(e)}):(this.__chart__=h,E(e),C(e),L(e))})},w.translate=function(t){return arguments.length?(h={x:+t[0],y:+t[1],k:h.k},S(),w):[h.x,h.y]},w.scale=function(t){return arguments.length?(h={x:h.x,y:h.y,k:null},M(+t),S(),w):h.k},w.scaleExtent=function(t){return arguments.length?(d=null==t?jt:[+t[0],+t[1]],w):d},w.center=function(t){return arguments.length?(n=t&&[+t[0],+t[1]],w):n},w.size=function(t){return arguments.length?(p=t&&[+t[0],+t[1]],w):p},w.duration=function(t){return arguments.length?(g=+t,w):g},w.x=function(t){return arguments.length?(c=t,l=t.copy(),h={x:0,y:0,k:1},w):c},w.y=function(t){return arguments.length?(f=t,u=t.copy(),h={x:0,y:0,k:1},w):f},t.rebind(w,_,\\\"on\\\")};var Ft,Nt,jt=[0,1/0];function Vt(){}function Ut(t,e,r){return this instanceof Ut?(this.h=+t,this.s=+e,void(this.l=+r)):arguments.length<2?t instanceof Ut?new Ut(t.h,t.s,t.l):ue(\\\"\\\"+t,fe,Ut):new Ut(t,e,r)}t.color=Vt,Vt.prototype.toString=function(){return this.rgb()+\\\"\\\"},t.hsl=Ut;var qt=Ut.prototype=new Vt;function Ht(t,e,r){var n,i;function a(t){return Math.round(255*function(t){return t>360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)?0:e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ae(a(t+120),a(t),a(t-120))}function Gt(e,r,n){return this instanceof Gt?(this.h=+e,this.c=+r,void(this.l=+n)):arguments.length<2?e instanceof Gt?new Gt(e.h,e.c,e.l):ee(e instanceof Xt?e.l:(e=he((e=t.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Gt(e,r,n)}qt.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,this.l/t)},qt.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,t*this.l)},qt.rgb=function(){return Ht(this.h,this.s,this.l)},t.hcl=Gt;var Wt=Gt.prototype=new Vt;function Yt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Xt(r,Math.cos(t*=Ct)*e,Math.sin(t)*e)}function Xt(t,e,r){return this instanceof Xt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Xt?new Xt(t.l,t.a,t.b):t instanceof Gt?Yt(t.h,t.c,t.l):he((t=ae(t)).r,t.g,t.b):new Xt(t,e,r)}Wt.brighter=function(t){return new Gt(this.h,this.c,Math.min(100,this.l+Zt*(arguments.length?t:1)))},Wt.darker=function(t){return new Gt(this.h,this.c,Math.max(0,this.l-Zt*(arguments.length?t:1)))},Wt.rgb=function(){return Yt(this.h,this.c,this.l).rgb()},t.lab=Xt;var Zt=18,$t=.95047,Jt=1,Kt=1.08883,Qt=Xt.prototype=new Vt;function te(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ae(ie(3.2404542*(i=re(i)*$t)-1.5371385*(n=re(n)*Jt)-.4985314*(a=re(a)*Kt)),ie(-.969266*i+1.8760108*n+.041556*a),ie(.0556434*i-.2040259*n+1.0572252*a))}function ee(t,e,r){return t>0?new Gt(Math.atan2(r,e)*Lt,Math.sqrt(e*e+r*r),t):new Gt(NaN,NaN,t)}function re(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ne(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ie(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ae(t,e,r){return this instanceof ae?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ae?new ae(t.r,t.g,t.b):ue(\\\"\\\"+t,ae,Ht):new ae(t,e,r)}function oe(t){return new ae(t>>16,t>>8&255,255&t)}function se(t){return oe(t)+\\\"\\\"}Qt.brighter=function(t){return new Xt(Math.min(100,this.l+Zt*(arguments.length?t:1)),this.a,this.b)},Qt.darker=function(t){return new Xt(Math.max(0,this.l-Zt*(arguments.length?t:1)),this.a,this.b)},Qt.rgb=function(){return te(this.l,this.a,this.b)},t.rgb=ae;var le=ae.prototype=new Vt;function ce(t){return t<16?\\\"0\\\"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function ue(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\\\\((.*)\\\\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(\\\",\\\"),n[1]){case\\\"hsl\\\":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case\\\"rgb\\\":return e(de(i[0]),de(i[1]),de(i[2]))}return(a=ge.get(t))?e(a.r,a.g,a.b):(null==t||\\\"#\\\"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function fe(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e<r?6:0):e==o?(r-t)/s+2:(t-e)/s+4,n*=60):(n=NaN,i=l>0&&l<1?0:n),new Ut(n,i,l)}function he(t,e,r){var n=ne((.4124564*(t=pe(t))+.3575761*(e=pe(e))+.1804375*(r=pe(r)))/$t),i=ne((.2126729*t+.7151522*e+.072175*r)/Jt);return Xt(116*i-16,500*(n-i),200*(i-ne((.0193339*t+.119192*e+.9503041*r)/Kt)))}function pe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function de(t){var e=parseFloat(t);return\\\"%\\\"===t.charAt(t.length-1)?Math.round(2.55*e):e}le.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e<i&&(e=i),r&&r<i&&(r=i),n&&n<i&&(n=i),new ae(Math.min(255,e/t),Math.min(255,r/t),Math.min(255,n/t))):new ae(i,i,i)},le.darker=function(t){return new ae((t=Math.pow(.7,arguments.length?t:1))*this.r,t*this.g,t*this.b)},le.hsl=function(){return fe(this.r,this.g,this.b)},le.toString=function(){return\\\"#\\\"+ce(this.r)+ce(this.g)+ce(this.b)};var ge=t.map({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 ve(t){return\\\"function\\\"==typeof t?t:function(){return t}}function me(t){return function(e,r,n){return 2===arguments.length&&\\\"function\\\"==typeof r&&(n=r,r=null),ye(e,r,t,n)}}function ye(e,r,i,a){var o={},s=t.dispatch(\\\"beforesend\\\",\\\"progress\\\",\\\"load\\\",\\\"error\\\"),l={},c=new XMLHttpRequest,u=null;function f(){var t,e=c.status;if(!e&&function(t){var e=t.responseType;return e&&\\\"text\\\"!==e?t.response:t.responseText}(c)||e>=200&&e<300||304===e){try{t=i.call(o,c)}catch(t){return void s.error.call(o,t)}s.load.call(o,t)}else s.error.call(o,c)}return!this.XDomainRequest||\\\"withCredentials\\\"in c||!/^(http(s)?:)?\\\\/\\\\//.test(e)||(c=new XDomainRequest),\\\"onload\\\"in c?c.onload=c.onerror=f:c.onreadystatechange=function(){c.readyState>3&&f()},c.onprogress=function(e){var r=t.event;t.event=e;try{s.progress.call(o,c)}finally{t.event=r}},o.header=function(t,e){return t=(t+\\\"\\\").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+\\\"\\\",o)},o.mimeType=function(t){return arguments.length?(r=null==t?null:t+\\\"\\\",o):r},o.responseType=function(t){return arguments.length?(u=t,o):u},o.response=function(t){return i=t,o},[\\\"get\\\",\\\"post\\\"].forEach(function(t){o[t]=function(){return o.send.apply(o,[t].concat(n(arguments)))}}),o.send=function(t,n,i){if(2===arguments.length&&\\\"function\\\"==typeof n&&(i=n,n=null),c.open(t,e,!0),null==r||\\\"accept\\\"in l||(l.accept=r+\\\",*/*\\\"),c.setRequestHeader)for(var a in l)c.setRequestHeader(a,l[a]);return null!=r&&c.overrideMimeType&&c.overrideMimeType(r),null!=u&&(c.responseType=u),null!=i&&o.on(\\\"error\\\",i).on(\\\"load\\\",function(t){i(null,t)}),s.beforesend.call(o,c),c.send(null==n?null:n),o},o.abort=function(){return c.abort(),o},t.rebind(o,s,\\\"on\\\"),null==a?o:o.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(a))}ge.forEach(function(t,e){ge.set(t,oe(e))}),t.functor=ve,t.xhr=me(z),t.dsv=function(t,e){var r=new RegExp('[\\\"'+t+\\\"\\\\n]\\\"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=ye(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'\\\"'+t.replace(/\\\\\\\"/g,'\\\"\\\"')+'\\\"':t}return i.parse=function(t,e){var r;return i.parseRows(t,function(t,n){if(r)return r(t,n-1);var i=new Function(\\\"d\\\",\\\"return {\\\"+t.map(function(t,e){return JSON.stringify(t)+\\\": d[\\\"+e+\\\"]\\\"}).join(\\\",\\\")+\\\"}\\\");r=e?function(t,r){return e(i(t),r)}:i})},i.parseRows=function(t,e){var r,i,a={},o={},s=[],l=t.length,c=0,u=0;function f(){if(c>=l)return o;if(i)return i=!1,a;var e=c;if(34===t.charCodeAt(e)){for(var r=e;r++<l;)if(34===t.charCodeAt(r)){if(34!==t.charCodeAt(r+1))break;++r}return c=r+2,13===(s=t.charCodeAt(r+1))?(i=!0,10===t.charCodeAt(r+2)&&++c):10===s&&(i=!0),t.slice(e+1,r).replace(/\\\"\\\"/g,'\\\"')}for(;c<l;){var s,u=1;if(10===(s=t.charCodeAt(c++)))i=!0;else if(13===s)i=!0,10===t.charCodeAt(c)&&(++c,++u);else if(s!==n)continue;return t.slice(e,c-u)}return t.slice(e)}for(;(r=f())!==o;){for(var h=[];r!==a&&r!==o;)h.push(r),r=f();e&&null==(h=e(h,u++))||s.push(h)}return s},i.format=function(e){if(Array.isArray(e[0]))return i.formatRows(e);var r=new L,n=[];return e.forEach(function(t){for(var e in t)r.has(e)||n.push(r.add(e))}),[n.map(l).join(t)].concat(e.map(function(e){return n.map(function(t){return l(e[t])}).join(t)})).join(\\\"\\\\n\\\")},i.formatRows=function(t){return t.map(s).join(\\\"\\\\n\\\")},i},t.csv=t.dsv(\\\",\\\",\\\"text/csv\\\"),t.tsv=t.dsv(\\\"\\\\t\\\",\\\"text/tab-separated-values\\\");var xe,be,_e,we,ke=this[I(this,\\\"requestAnimationFrame\\\")]||function(t){setTimeout(t,17)};function Me(t,e,r){var n=arguments.length;n<2&&(e=0),n<3&&(r=Date.now());var i={c:t,t:r+e,n:null};return be?be.n=i:xe=i,be=i,_e||(we=clearTimeout(we),_e=1,ke(Ae)),i}function Ae(){var t=Te(),e=Se()-t;e>24?(isFinite(e)&&(clearTimeout(we),we=setTimeout(Ae,e)),_e=0):(_e=1,ke(Ae))}function Te(){for(var t=Date.now(),e=xe;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Se(){for(var t,e=xe,r=1/0;e;)e.c?(e.t<r&&(r=e.t),e=(t=e).n):e=t?t.n=e.n:xe=e.n;return be=t,r}function Ee(t,e){return e-(t?Math.ceil(Math.log(t)/Math.LN10):1)}t.timer=function(){Me.apply(this,arguments)},t.timer.flush=function(){Te(),Se()},t.round=function(t,e){return e?Math.round(t*(e=Math.pow(10,e)))/e:Math.round(t)};var Ce=[\\\"y\\\",\\\"z\\\",\\\"a\\\",\\\"f\\\",\\\"p\\\",\\\"n\\\",\\\"\\\\xb5\\\",\\\"m\\\",\\\"\\\",\\\"k\\\",\\\"M\\\",\\\"G\\\",\\\"T\\\",\\\"P\\\",\\\"E\\\",\\\"Z\\\",\\\"Y\\\"].map(function(t,e){var r=Math.pow(10,3*y(8-e));return{scale:e>8?function(t){return t/r}:function(t){return t*r},symbol:t}});t.formatPrefix=function(e,r){var n=0;return(e=+e)&&(e<0&&(e*=-1),r&&(e=t.round(e,Ee(e,r))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),Ce[8+n/3]};var Le=/(?:([^{])?([<>=^]))?([+\\\\- ])?([$#])?(0)?(\\\\d+)?(,)?(\\\\.-?\\\\d+)?([a-z%])?/i,ze=t.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(e,r){return(e=t.round(e,Ee(e,r))).toFixed(Math.max(0,Math.min(20,Ee(e*(1+1e-15),r))))}});function Oe(t){return t+\\\"\\\"}var Ie=t.time={},Pe=Date;function De(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}De.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Re.setUTCDate.apply(this._,arguments)},setDay:function(){Re.setUTCDay.apply(this._,arguments)},setFullYear:function(){Re.setUTCFullYear.apply(this._,arguments)},setHours:function(){Re.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Re.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Re.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Re.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Re.setUTCSeconds.apply(this._,arguments)},setTime:function(){Re.setTime.apply(this._,arguments)}};var Re=Date.prototype;function Be(t,e,r){function n(e){var r=t(e),n=a(r,1);return e-r<n-e?r:n}function i(r){return e(r=t(new Pe(r-1)),1),r}function a(t,r){return e(t=new Pe(+t),r),t}function o(t,n,a){var o=i(t),s=[];if(a>1)for(;o<n;)r(o)%a||s.push(new Date(+o)),e(o,1);else for(;o<n;)s.push(new Date(+o)),e(o,1);return s}t.floor=t,t.round=n,t.ceil=i,t.offset=a,t.range=o;var s=t.utc=Fe(t);return s.floor=s,s.round=Fe(n),s.ceil=Fe(i),s.offset=Fe(a),s.range=function(t,e,r){try{Pe=De;var n=new De;return n._=t,o(n,e,r)}finally{Pe=Date}},t}function Fe(t){return function(e,r){try{Pe=De;var n=new De;return n._=e,t(n,r)._}finally{Pe=Date}}}Ie.year=Be(function(t){return(t=Ie.day(t)).setMonth(0,1),t},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t){return t.getFullYear()}),Ie.years=Ie.year.range,Ie.years.utc=Ie.year.utc.range,Ie.day=Be(function(t){var e=new Pe(2e3,0);return e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),e},function(t,e){t.setDate(t.getDate()+e)},function(t){return t.getDate()-1}),Ie.days=Ie.day.range,Ie.days.utc=Ie.day.utc.range,Ie.dayOfYear=function(t){var e=Ie.year(t);return Math.floor((t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5)},[\\\"sunday\\\",\\\"monday\\\",\\\"tuesday\\\",\\\"wednesday\\\",\\\"thursday\\\",\\\"friday\\\",\\\"saturday\\\"].forEach(function(t,e){e=7-e;var r=Ie[t]=Be(function(t){return(t=Ie.day(t)).setDate(t.getDate()-(t.getDay()+e)%7),t},function(t,e){t.setDate(t.getDate()+7*Math.floor(e))},function(t){var r=Ie.year(t).getDay();return Math.floor((Ie.dayOfYear(t)+(r+e)%7)/7)-(r!==e)});Ie[t+\\\"s\\\"]=r.range,Ie[t+\\\"s\\\"].utc=r.utc.range,Ie[t+\\\"OfYear\\\"]=function(t){var r=Ie.year(t).getDay();return Math.floor((Ie.dayOfYear(t)+(r+e)%7)/7)}}),Ie.week=Ie.sunday,Ie.weeks=Ie.sunday.range,Ie.weeks.utc=Ie.sunday.utc.range,Ie.weekOfYear=Ie.sundayOfYear;var Ne={\\\"-\\\":\\\"\\\",_:\\\" \\\",0:\\\"0\\\"},je=/^\\\\s*\\\\d+/,Ve=/^%/;function Ue(t,e,r){var n=t<0?\\\"-\\\":\\\"\\\",i=(n?-t:t)+\\\"\\\",a=i.length;return n+(a<r?new Array(r-a+1).join(e)+i:i)}function qe(e){return new RegExp(\\\"^(?:\\\"+e.map(t.requote).join(\\\"|\\\")+\\\")\\\",\\\"i\\\")}function He(t){for(var e=new b,r=-1,n=t.length;++r<n;)e.set(t[r].toLowerCase(),r);return e}function Ge(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function We(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r));return n?(t.U=+n[0],r+n[0].length):-1}function Ye(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r));return n?(t.W=+n[0],r+n[0].length):-1}function Xe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function Ze(t,e,r){je.lastIndex=0;var n,i=je.exec(e.slice(r,r+2));return i?(t.y=(n=+i[0])+(n>68?1900:2e3),r+i[0].length):-1}function $e(t,e,r){return/^[+-]\\\\d{4}$/.test(e=e.slice(r,r+5))?(t.Z=-e,r+5):-1}function Je(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Ke(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function Qe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.j=+n[0],r+n[0].length):-1}function tr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function er(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function rr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function nr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ir(t){var e=t.getTimezoneOffset(),r=e>0?\\\"-\\\":\\\"+\\\",n=y(e)/60|0,i=y(e)%60;return r+Ue(n,\\\"0\\\",2)+Ue(i,\\\"0\\\",2)}function ar(t,e,r){Ve.lastIndex=0;var n=Ve.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function or(t){for(var e=t.length,r=-1;++r<e;)t[r][0]=this(t[r][0]);return function(e){for(var r=0,n=t[r];!n[1](e);)n=t[++r];return n[0](e)}}t.locale=function(e){return{numberFormat:function(e){var r=e.decimal,n=e.thousands,i=e.grouping,a=e.currency,o=i&&n?function(t,e){for(var r=t.length,a=[],o=0,s=i[0],l=0;r>0&&s>0&&(l+s+1>e&&(s=Math.max(1,e-l)),a.push(t.substring(r-=s,r+s)),!((l+=s+1)>e));)s=i[o=(o+1)%i.length];return a.reverse().join(n)}:z;return function(e){var n=Le.exec(e),i=n[1]||\\\" \\\",s=n[2]||\\\">\\\",l=n[3]||\\\"-\\\",c=n[4]||\\\"\\\",u=n[5],f=+n[6],h=n[7],p=n[8],d=n[9],g=1,v=\\\"\\\",m=\\\"\\\",y=!1,x=!0;switch(p&&(p=+p.substring(1)),(u||\\\"0\\\"===i&&\\\"=\\\"===s)&&(u=i=\\\"0\\\",s=\\\"=\\\"),d){case\\\"n\\\":h=!0,d=\\\"g\\\";break;case\\\"%\\\":g=100,m=\\\"%\\\",d=\\\"f\\\";break;case\\\"p\\\":g=100,m=\\\"%\\\",d=\\\"r\\\";break;case\\\"b\\\":case\\\"o\\\":case\\\"x\\\":case\\\"X\\\":\\\"#\\\"===c&&(v=\\\"0\\\"+d.toLowerCase());case\\\"c\\\":x=!1;case\\\"d\\\":y=!0,p=0;break;case\\\"s\\\":g=-1,d=\\\"r\\\"}\\\"$\\\"===c&&(v=a[0],m=a[1]),\\\"r\\\"!=d||p||(d=\\\"g\\\"),null!=p&&(\\\"g\\\"==d?p=Math.max(1,Math.min(21,p)):\\\"e\\\"!=d&&\\\"f\\\"!=d||(p=Math.max(0,Math.min(20,p)))),d=ze.get(d)||Oe;var b=u&&h;return function(e){var n=m;if(y&&e%1)return\\\"\\\";var a=e<0||0===e&&1/e<0?(e=-e,\\\"-\\\"):\\\"-\\\"===l?\\\"\\\":l;if(g<0){var c=t.formatPrefix(e,p);e=c.scale(e),n=c.symbol+m}else e*=g;var _,w,k=(e=d(e,p)).lastIndexOf(\\\".\\\");if(k<0){var M=x?e.lastIndexOf(\\\"e\\\"):-1;M<0?(_=e,w=\\\"\\\"):(_=e.substring(0,M),w=e.substring(M))}else _=e.substring(0,k),w=r+e.substring(k+1);!u&&h&&(_=o(_,1/0));var A=v.length+_.length+w.length+(b?0:a.length),T=A<f?new Array(A=f-A+1).join(i):\\\"\\\";return b&&(_=o(T+_,T.length?f-w.length:1/0)),a+=v,e=_+w,(\\\"<\\\"===s?a+e+T:\\\">\\\"===s?T+a+e:\\\"^\\\"===s?T.substring(0,A>>=1)+a+e+T.substring(A):a+(b?e:T+e))+n}}}(e),timeFormat:function(e){var r=e.dateTime,n=e.date,i=e.time,a=e.periods,o=e.days,s=e.shortDays,l=e.months,c=e.shortMonths;function u(t){var e=t.length;function r(r){for(var n,i,a,o=[],s=-1,l=0;++s<e;)37===t.charCodeAt(s)&&(o.push(t.slice(l,s)),null!=(i=Ne[n=t.charAt(++s)])&&(n=t.charAt(++s)),(a=_[n])&&(n=a(r,null==i?\\\"e\\\"===n?\\\" \\\":\\\"0\\\":i)),o.push(n),l=s+1);return o.push(t.slice(l,s)),o.join(\\\"\\\")}return r.parse=function(e){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null};if(f(r,t,e,0)!=e.length)return null;\\\"p\\\"in r&&(r.H=r.H%12+12*r.p);var n=null!=r.Z&&Pe!==De,i=new(n?De:Pe);return\\\"j\\\"in r?i.setFullYear(r.y,0,r.j):\\\"W\\\"in r||\\\"U\\\"in r?(\\\"w\\\"in r||(r.w=\\\"W\\\"in r?1:0),i.setFullYear(r.y,0,1),i.setFullYear(r.y,0,\\\"W\\\"in r?(r.w+6)%7+7*r.W-(i.getDay()+5)%7:r.w+7*r.U-(i.getDay()+6)%7)):i.setFullYear(r.y,r.m,r.d),i.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),n?i._:i},r.toString=function(){return t},r}function f(t,e,r,n){for(var i,a,o,s=0,l=e.length,c=r.length;s<l;){if(n>=c)return-1;if(37===(i=e.charCodeAt(s++))){if(o=e.charAt(s++),!(a=w[o in Ne?e.charAt(s++):o])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}u.utc=function(t){var e=u(t);function r(t){try{var r=new(Pe=De);return r._=t,e(r)}finally{Pe=Date}}return r.parse=function(t){try{Pe=De;var r=e.parse(t);return r&&r._}finally{Pe=Date}},r.toString=e.toString,r},u.multi=u.utc.multi=or;var h=t.map(),p=qe(o),d=He(o),g=qe(s),v=He(s),m=qe(l),y=He(l),x=qe(c),b=He(c);a.forEach(function(t,e){h.set(t.toLowerCase(),e)});var _={a:function(t){return s[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return l[t.getMonth()]},c:u(r),d:function(t,e){return Ue(t.getDate(),e,2)},e:function(t,e){return Ue(t.getDate(),e,2)},H:function(t,e){return Ue(t.getHours(),e,2)},I:function(t,e){return Ue(t.getHours()%12||12,e,2)},j:function(t,e){return Ue(1+Ie.dayOfYear(t),e,3)},L:function(t,e){return Ue(t.getMilliseconds(),e,3)},m:function(t,e){return Ue(t.getMonth()+1,e,2)},M:function(t,e){return Ue(t.getMinutes(),e,2)},p:function(t){return a[+(t.getHours()>=12)]},S:function(t,e){return Ue(t.getSeconds(),e,2)},U:function(t,e){return Ue(Ie.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return Ue(Ie.mondayOfYear(t),e,2)},x:u(n),X:u(i),y:function(t,e){return Ue(t.getFullYear()%100,e,2)},Y:function(t,e){return Ue(t.getFullYear()%1e4,e,4)},Z:ir,\\\"%\\\":function(){return\\\"%\\\"}},w={a:function(t,e,r){g.lastIndex=0;var n=g.exec(e.slice(r));return n?(t.w=v.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(t,e,r){p.lastIndex=0;var n=p.exec(e.slice(r));return n?(t.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(t,e,r){x.lastIndex=0;var n=x.exec(e.slice(r));return n?(t.m=b.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(t,e,r){m.lastIndex=0;var n=m.exec(e.slice(r));return n?(t.m=y.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(t,e,r){return f(t,_.c.toString(),e,r)},d:Ke,e:Ke,H:tr,I:tr,j:Qe,L:nr,m:Je,M:er,p:function(t,e,r){var n=h.get(e.slice(r,r+=2).toLowerCase());return null==n?-1:(t.p=n,r)},S:rr,U:We,w:Ge,W:Ye,x:function(t,e,r){return f(t,_.x.toString(),e,r)},X:function(t,e,r){return f(t,_.X.toString(),e,r)},y:Ze,Y:Xe,Z:$e,\\\"%\\\":ar};return u}(e)}};var sr=t.locale({decimal:\\\".\\\",thousands:\\\",\\\",grouping:[3],currency:[\\\"$\\\",\\\"\\\"],dateTime:\\\"%a %b %e %X %Y\\\",date:\\\"%m/%d/%Y\\\",time:\\\"%H:%M:%S\\\",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 lr(){}t.format=sr.numberFormat,t.geo={},lr.prototype={s:0,t:0,add:function(t){ur(t,this.t,cr),ur(cr.s,this.s,this),this.s?this.t+=cr.t:this.s=cr.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var cr=new lr;function ur(t,e,r){var n=r.s=t+e,i=n-t,a=n-i;r.t=t-a+(e-i)}function fr(t,e){t&&pr.hasOwnProperty(t.type)&&pr[t.type](t,e)}t.geo.stream=function(t,e){t&&hr.hasOwnProperty(t.type)?hr[t.type](t,e):fr(t,e)};var hr={Feature:function(t,e){fr(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n<i;)fr(r[n].geometry,e)}},pr={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)t=r[n],e.point(t[0],t[1],t[2])},LineString:function(t,e){dr(t.coordinates,e,0)},MultiLineString:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)dr(r[n],e,0)},Polygon:function(t,e){gr(t.coordinates,e)},MultiPolygon:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)gr(r[n],e)},GeometryCollection:function(t,e){for(var r=t.geometries,n=-1,i=r.length;++n<i;)fr(r[n],e)}};function dr(t,e,r){var n,i=-1,a=t.length-r;for(e.lineStart();++i<a;)n=t[i],e.point(n[0],n[1],n[2]);e.lineEnd()}function gr(t,e){var r=-1,n=t.length;for(e.polygonStart();++r<n;)dr(t[r],e,1);e.polygonEnd()}t.geo.area=function(e){return vr=0,t.geo.stream(e,Cr),vr};var vr,mr,yr,xr,br,_r,wr,kr,Mr,Ar,Tr,Sr,Er=new lr,Cr={sphere:function(){vr+=4*At},point:D,lineStart:D,lineEnd:D,polygonStart:function(){Er.reset(),Cr.lineStart=Lr},polygonEnd:function(){var t=2*Er;vr+=t<0?4*At+t:t,Cr.lineStart=Cr.lineEnd=Cr.point=D}};function Lr(){var t,e,r,n,i;function a(t,e){e=e*Ct/2+At/4;var a=(t*=Ct)-r,o=a>=0?1:-1,s=o*a,l=Math.cos(e),c=Math.sin(e),u=i*c,f=n*l+u*Math.cos(s),h=u*o*Math.sin(s);Er.add(Math.atan2(h,f)),r=t,n=l,i=c}Cr.point=function(o,s){Cr.point=a,r=(t=o)*Ct,n=Math.cos(s=(e=s)*Ct/2+At/4),i=Math.sin(s)},Cr.lineEnd=function(){a(t,e)}}function zr(t){var e=t[0],r=t[1],n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}function Or(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Ir(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Pr(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Dr(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Rr(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function Br(t){return[Math.atan2(t[1],t[0]),Pt(t[2])]}function Fr(t,e){return y(t[0]-e[0])<kt&&y(t[1]-e[1])<kt}t.geo.bounds=function(){var e,r,n,i,a,o,s,l,c,u,f,h={point:p,lineStart:g,lineEnd:v,polygonStart:function(){h.point=m,h.lineStart=x,h.lineEnd=b,c=0,Cr.polygonStart()},polygonEnd:function(){Cr.polygonEnd(),h.point=p,h.lineStart=g,h.lineEnd=v,Er<0?(e=-(n=180),r=-(i=90)):c>kt?i=90:c<-kt&&(r=-90),f[0]=e,f[1]=n}};function p(t,a){u.push(f=[e=t,n=t]),a<r&&(r=a),a>i&&(i=a)}function d(t,o){var s=zr([t*Ct,o*Ct]);if(l){var c=Ir(l,s),u=Ir([c[1],-c[0],0],c);Rr(u),u=Br(u);var f=t-a,h=f>0?1:-1,d=u[0]*Lt*h,g=y(f)>180;if(g^(h*a<d&&d<h*t))(v=u[1]*Lt)>i&&(i=v);else if(g^(h*a<(d=(d+360)%360-180)&&d<h*t)){var v;(v=-u[1]*Lt)<r&&(r=v)}else o<r&&(r=o),o>i&&(i=o);g?t<a?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t):n>=e?(t<e&&(e=t),t>n&&(n=t)):t>a?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t)}else p(t,o);l=s,a=t}function g(){h.point=d}function v(){f[0]=e,f[1]=n,h.point=p,l=null}function m(t,e){if(l){var r=t-a;c+=y(r)>180?r+(r>0?360:-360):r}else o=t,s=e;Cr.point(t,e),d(t,e)}function x(){Cr.lineStart()}function b(){m(o,s),Cr.lineEnd(),y(c)>kt&&(e=-(n=180)),f[0]=e,f[1]=n,l=null}function _(t,e){return(e-=t)<0?e+360:e}function w(t,e){return t[0]-e[0]}function k(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}return function(a){if(i=n=-(e=r=1/0),u=[],t.geo.stream(a,h),c=u.length){u.sort(w);for(var o=1,s=[g=u[0]];o<c;++o)k((p=u[o])[0],g)||k(p[1],g)?(_(g[0],p[1])>_(g[0],g[1])&&(g[1]=p[1]),_(p[0],g[1])>_(g[0],g[1])&&(g[0]=p[0])):s.push(g=p);for(var l,c,p,d=-1/0,g=(o=0,s[c=s.length-1]);o<=c;g=p,++o)p=s[o],(l=_(g[1],p[0]))>d&&(d=l,e=p[0],n=g[1])}return u=f=null,e===1/0||r===1/0?[[NaN,NaN],[NaN,NaN]]:[[e,r],[n,i]]}}(),t.geo.centroid=function(e){mr=yr=xr=br=_r=wr=kr=Mr=Ar=Tr=Sr=0,t.geo.stream(e,Nr);var r=Ar,n=Tr,i=Sr,a=r*r+n*n+i*i;return a<Mt&&(r=wr,n=kr,i=Mr,yr<kt&&(r=xr,n=br,i=_r),(a=r*r+n*n+i*i)<Mt)?[NaN,NaN]:[Math.atan2(n,r)*Lt,Pt(i/Math.sqrt(a))*Lt]};var Nr={sphere:D,point:jr,lineStart:Ur,lineEnd:qr,polygonStart:function(){Nr.lineStart=Hr},polygonEnd:function(){Nr.lineStart=Ur}};function jr(t,e){t*=Ct;var r=Math.cos(e*=Ct);Vr(r*Math.cos(t),r*Math.sin(t),Math.sin(e))}function Vr(t,e,r){xr+=(t-xr)/++mr,br+=(e-br)/mr,_r+=(r-_r)/mr}function Ur(){var t,e,r;function n(n,i){n*=Ct;var a=Math.cos(i*=Ct),o=a*Math.cos(n),s=a*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*s)*c+(c=r*o-t*l)*c+(c=t*s-e*o)*c),t*o+e*s+r*l);yr+=c,wr+=c*(t+(t=o)),kr+=c*(e+(e=s)),Mr+=c*(r+(r=l)),Vr(t,e,r)}Nr.point=function(i,a){i*=Ct;var o=Math.cos(a*=Ct);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(a),Nr.point=n,Vr(t,e,r)}}function qr(){Nr.point=jr}function Hr(){var t,e,r,n,i;function a(t,e){t*=Ct;var a=Math.cos(e*=Ct),o=a*Math.cos(t),s=a*Math.sin(t),l=Math.sin(e),c=n*l-i*s,u=i*o-r*l,f=r*s-n*o,h=Math.sqrt(c*c+u*u+f*f),p=r*o+n*s+i*l,d=h&&-It(p)/h,g=Math.atan2(h,p);Ar+=d*c,Tr+=d*u,Sr+=d*f,yr+=g,wr+=g*(r+(r=o)),kr+=g*(n+(n=s)),Mr+=g*(i+(i=l)),Vr(r,n,i)}Nr.point=function(o,s){t=o,e=s,Nr.point=a,o*=Ct;var l=Math.cos(s*=Ct);r=l*Math.cos(o),n=l*Math.sin(o),i=Math.sin(s),Vr(r,n,i)},Nr.lineEnd=function(){a(t,e),Nr.lineEnd=qr,Nr.point=jr}}function Gr(t,e){function r(r,n){return r=t(r,n),e(r[0],r[1])}return t.invert&&e.invert&&(r.invert=function(r,n){return(r=e.invert(r,n))&&t.invert(r[0],r[1])}),r}function Wr(){return!0}function Yr(t,e,r,n,i){var a=[],o=[];if(t.forEach(function(t){if(!((e=t.length-1)<=0)){var e,r=t[0],n=t[e];if(Fr(r,n)){i.lineStart();for(var s=0;s<e;++s)i.point((r=t[s])[0],r[1]);i.lineEnd()}else{var l=new Zr(r,t,null,!0),c=new Zr(r,null,l,!1);l.o=c,a.push(l),o.push(c),l=new Zr(n,t,null,!1),c=new Zr(n,null,l,!0),l.o=c,a.push(l),o.push(c)}}}),o.sort(e),Xr(a),Xr(o),a.length){for(var s=0,l=r,c=o.length;s<c;++s)o[s].e=l=!l;for(var u,f,h=a[0];;){for(var p=h,d=!0;p.v;)if((p=p.n)===h)return;u=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(d)for(s=0,c=u.length;s<c;++s)i.point((f=u[s])[0],f[1]);else n(p.x,p.n.x,1,i);p=p.n}else{if(d)for(s=(u=p.p.z).length-1;s>=0;--s)i.point((f=u[s])[0],f[1]);else n(p.x,p.p.x,-1,i);p=p.p}u=(p=p.o).z,d=!d}while(!p.v);i.lineEnd()}}}function Xr(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n<e;)i.n=r=t[n],r.p=i,i=r;i.n=r=t[0],r.p=i}}function Zr(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function $r(e,r,n,i){return function(a,o){var s,l=r(o),c=a.invert(i[0],i[1]),u={point:f,lineStart:p,lineEnd:d,polygonStart:function(){u.point=b,u.lineStart=_,u.lineEnd=w,s=[],g=[]},polygonEnd:function(){u.point=f,u.lineStart=p,u.lineEnd=d,s=t.merge(s);var e=function(t,e){var r=t[0],n=t[1],i=[Math.sin(r),-Math.cos(r),0],a=0,o=0;Er.reset();for(var s=0,l=e.length;s<l;++s){var c=e[s],u=c.length;if(u)for(var f=c[0],h=f[0],p=f[1]/2+At/4,d=Math.sin(p),g=Math.cos(p),v=1;;){v===u&&(v=0);var m=(t=c[v])[0],y=t[1]/2+At/4,x=Math.sin(y),b=Math.cos(y),_=m-h,w=_>=0?1:-1,k=w*_,M=k>At,A=d*x;if(Er.add(Math.atan2(A*w*Math.sin(k),g*b+A*Math.cos(k))),a+=M?_+w*Tt:_,M^h>=r^m>=r){var T=Ir(zr(f),zr(t));Rr(T);var S=Ir(i,T);Rr(S);var E=(M^_>=0?-1:1)*Pt(S[2]);(n>E||n===E&&(T[0]||T[1]))&&(o+=M^_>=0?1:-1)}if(!v++)break;h=m,d=x,g=b,f=t}}return(a<-kt||a<kt&&Er<-kt)^1&o}(c,g);s.length?(x||(o.polygonStart(),x=!0),Yr(s,Qr,e,n,o)):e&&(x||(o.polygonStart(),x=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),s=g=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}};function f(t,r){var n=a(t,r);e(t=n[0],r=n[1])&&o.point(t,r)}function h(t,e){var r=a(t,e);l.point(r[0],r[1])}function p(){u.point=h,l.lineStart()}function d(){u.point=f,l.lineEnd()}var g,v,m=Kr(),y=r(m),x=!1;function b(t,e){v.push([t,e]);var r=a(t,e);y.point(r[0],r[1])}function _(){y.lineStart(),v=[]}function w(){b(v[0][0],v[0][1]),y.lineEnd();var t,e=y.clean(),r=m.buffer(),n=r.length;if(v.pop(),g.push(v),v=null,n)if(1&e){var i,a=-1;if((n=(t=r[0]).length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart();++a<n;)o.point((i=t[a])[0],i[1]);o.lineEnd()}}else n>1&&2&e&&r.push(r.pop().concat(r.shift())),s.push(r.filter(Jr))}return u}}function Jr(t){return t.length>1}function Kr(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,r){t.push([e,r])},lineEnd:D,buffer:function(){var r=e;return e=[],t=null,r},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function Qr(t,e){return((t=t.x)[0]<0?t[1]-Et-kt:Et-t[1])-((e=e.x)[0]<0?e[1]-Et-kt:Et-e[1])}var tn=$r(Wr,function(t){var e,r=NaN,n=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var s=a>0?At:-At,l=y(a-r);y(l-At)<kt?(t.point(r,n=(n+o)/2>0?Et:-Et),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(a,n),e=0):i!==s&&l>=At&&(y(r-i)<kt&&(r-=i*kt),y(a-s)<kt&&(a-=s*kt),n=function(t,e,r,n){var i,a,o=Math.sin(t-r);return y(o)>kt?Math.atan((Math.sin(e)*(a=Math.cos(n))*Math.sin(r)-Math.sin(n)*(i=Math.cos(e))*Math.sin(t))/(i*a*o)):(e+n)/2}(r,n,a,o),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),e=0),t.point(r=a,n=o),i=s},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}},function(t,e,r,n){var i;if(null==t)i=r*Et,n.point(-At,i),n.point(0,i),n.point(At,i),n.point(At,0),n.point(At,-i),n.point(0,-i),n.point(-At,-i),n.point(-At,0),n.point(-At,i);else if(y(t[0]-e[0])>kt){var a=t[0]<e[0]?At:-At;i=r*a/2,n.point(-a,i),n.point(0,i),n.point(a,i)}else n.point(e[0],e[1])},[-At,-At/2]);function en(t,e,r,n){return function(i){var a,o=i.a,s=i.b,l=o.x,c=o.y,u=0,f=1,h=s.x-l,p=s.y-c;if(a=t-l,h||!(a>0)){if(a/=h,h<0){if(a<u)return;a<f&&(f=a)}else if(h>0){if(a>f)return;a>u&&(u=a)}if(a=r-l,h||!(a<0)){if(a/=h,h<0){if(a>f)return;a>u&&(u=a)}else if(h>0){if(a<u)return;a<f&&(f=a)}if(a=e-c,p||!(a>0)){if(a/=p,p<0){if(a<u)return;a<f&&(f=a)}else if(p>0){if(a>f)return;a>u&&(u=a)}if(a=n-c,p||!(a<0)){if(a/=p,p<0){if(a>f)return;a>u&&(u=a)}else if(p>0){if(a<u)return;a<f&&(f=a)}return u>0&&(i.a={x:l+u*h,y:c+u*p}),f<1&&(i.b={x:l+f*h,y:c+f*p}),i}}}}}}var rn=1e9;function nn(e,r,n,i){return function(l){var c,u,f,h,p,d,g,v,m,y,x,b=l,_=Kr(),w=en(e,r,n,i),k={point:T,lineStart:function(){k.point=S,u&&u.push(f=[]);y=!0,m=!1,g=v=NaN},lineEnd:function(){c&&(S(h,p),d&&m&&_.rejoin(),c.push(_.buffer()));k.point=T,m&&l.lineEnd()},polygonStart:function(){l=_,c=[],u=[],x=!0},polygonEnd:function(){l=b,c=t.merge(c);var r=function(t){for(var e=0,r=u.length,n=t[1],i=0;i<r;++i)for(var a,o=1,s=u[i],l=s.length,c=s[0];o<l;++o)a=s[o],c[1]<=n?a[1]>n&&Ot(c,a,t)>0&&++e:a[1]<=n&&Ot(c,a,t)<0&&--e,c=a;return 0!==e}([e,i]),n=x&&r,a=c.length;(n||a)&&(l.polygonStart(),n&&(l.lineStart(),M(null,null,1,l),l.lineEnd()),a&&Yr(c,o,r,M,l),l.polygonEnd()),c=u=f=null}};function M(t,o,l,c){var u=0,f=0;if(null==t||(u=a(t,l))!==(f=a(o,l))||s(t,o)<0^l>0)do{c.point(0===u||3===u?e:n,u>1?i:r)}while((u=(u+l+4)%4)!==f);else c.point(o[0],o[1])}function A(t,a){return e<=t&&t<=n&&r<=a&&a<=i}function T(t,e){A(t,e)&&l.point(t,e)}function S(t,e){var r=A(t=Math.max(-rn,Math.min(rn,t)),e=Math.max(-rn,Math.min(rn,e)));if(u&&f.push([t,e]),y)h=t,p=e,d=r,y=!1,r&&(l.lineStart(),l.point(t,e));else if(r&&m)l.point(t,e);else{var n={a:{x:g,y:v},b:{x:t,y:e}};w(n)?(m||(l.lineStart(),l.point(n.a.x,n.a.y)),l.point(n.b.x,n.b.y),r||l.lineEnd(),x=!1):r&&(l.lineStart(),l.point(t,e),x=!1)}g=t,v=e,m=r}return k};function a(t,i){return y(t[0]-e)<kt?i>0?0:3:y(t[0]-n)<kt?i>0?2:1:y(t[1]-r)<kt?i>0?1:0:i>0?3:2}function o(t,e){return s(t.x,e.x)}function s(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}}function an(t){var e=0,r=At/3,n=Cn(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*At/180,r=t[1]*At/180):[e/At*180,r/At*180]},i}function on(t,e){var r=Math.sin(t),n=(r+Math.sin(e))/2,i=1+r*(2*n-r),a=Math.sqrt(i)/n;function o(t,e){var r=Math.sqrt(i-2*n*Math.sin(e))/n;return[r*Math.sin(t*=n),a-r*Math.cos(t)]}return o.invert=function(t,e){var r=a-e;return[Math.atan2(t,r)/n,Pt((i-(t*t+r*r)*n*n)/(2*n))]},o}t.geo.clipExtent=function(){var t,e,r,n,i,a,o={stream:function(t){return i&&(i.valid=!1),(i=a(t)).valid=!0,i},extent:function(s){return arguments.length?(a=nn(t=+s[0][0],e=+s[0][1],r=+s[1][0],n=+s[1][1]),i&&(i.valid=!1,i=null),o):[[t,e],[r,n]]}};return o.extent([[0,0],[960,500]])},(t.geo.conicEqualArea=function(){return an(on)}).raw=on,t.geo.albers=function(){return t.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},t.geo.albersUsa=function(){var e,r,n,i,a=t.geo.albers(),o=t.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=t.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,r){e=[t,r]}};function c(t){var a=t[0],o=t[1];return e=null,r(a,o),e||(n(a,o),e)||i(a,o),e}return c.invert=function(t){var e=a.scale(),r=a.translate(),n=(t[0]-r[0])/e,i=(t[1]-r[1])/e;return(i>=.12&&i<.234&&n>=-.425&&n<-.214?o:i>=.166&&i<.234&&n>=-.214&&n<-.115?s:a).invert(t)},c.stream=function(t){var e=a.stream(t),r=o.stream(t),n=s.stream(t);return{point:function(t,i){e.point(t,i),r.point(t,i),n.point(t,i)},sphere:function(){e.sphere(),r.sphere(),n.sphere()},lineStart:function(){e.lineStart(),r.lineStart(),n.lineStart()},lineEnd:function(){e.lineEnd(),r.lineEnd(),n.lineEnd()},polygonStart:function(){e.polygonStart(),r.polygonStart(),n.polygonStart()},polygonEnd:function(){e.polygonEnd(),r.polygonEnd(),n.polygonEnd()}}},c.precision=function(t){return arguments.length?(a.precision(t),o.precision(t),s.precision(t),c):a.precision()},c.scale=function(t){return arguments.length?(a.scale(t),o.scale(.35*t),s.scale(t),c.translate(a.translate())):a.scale()},c.translate=function(t){if(!arguments.length)return a.translate();var e=a.scale(),u=+t[0],f=+t[1];return r=a.translate(t).clipExtent([[u-.455*e,f-.238*e],[u+.455*e,f+.238*e]]).stream(l).point,n=o.translate([u-.307*e,f+.201*e]).clipExtent([[u-.425*e+kt,f+.12*e+kt],[u-.214*e-kt,f+.234*e-kt]]).stream(l).point,i=s.translate([u-.205*e,f+.212*e]).clipExtent([[u-.214*e+kt,f+.166*e+kt],[u-.115*e-kt,f+.234*e-kt]]).stream(l).point,c},c.scale(1070)};var sn,ln,cn,un,fn,hn,pn={point:D,lineStart:D,lineEnd:D,polygonStart:function(){ln=0,pn.lineStart=dn},polygonEnd:function(){pn.lineStart=pn.lineEnd=pn.point=D,sn+=y(ln/2)}};function dn(){var t,e,r,n;function i(t,e){ln+=n*t-r*e,r=t,n=e}pn.point=function(a,o){pn.point=i,t=r=a,e=n=o},pn.lineEnd=function(){i(t,e)}}var gn={point:function(t,e){t<cn&&(cn=t);t>fn&&(fn=t);e<un&&(un=e);e>hn&&(hn=e)},lineStart:D,lineEnd:D,polygonStart:D,polygonEnd:D};function vn(){var t=mn(4.5),e=[],r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(e){return t=mn(e),r},result:function(){if(e.length){var t=e.join(\\\"\\\");return e=[],t}}};function n(r,n){e.push(\\\"M\\\",r,\\\",\\\",n,t)}function i(t,n){e.push(\\\"M\\\",t,\\\",\\\",n),r.point=a}function a(t,r){e.push(\\\"L\\\",t,\\\",\\\",r)}function o(){r.point=n}function s(){e.push(\\\"Z\\\")}return r}function mn(t){return\\\"m0,\\\"+t+\\\"a\\\"+t+\\\",\\\"+t+\\\" 0 1,1 0,\\\"+-2*t+\\\"a\\\"+t+\\\",\\\"+t+\\\" 0 1,1 0,\\\"+2*t+\\\"z\\\"}var yn,xn={point:bn,lineStart:_n,lineEnd:wn,polygonStart:function(){xn.lineStart=kn},polygonEnd:function(){xn.point=bn,xn.lineStart=_n,xn.lineEnd=wn}};function bn(t,e){xr+=t,br+=e,++_r}function _n(){var t,e;function r(r,n){var i=r-t,a=n-e,o=Math.sqrt(i*i+a*a);wr+=o*(t+r)/2,kr+=o*(e+n)/2,Mr+=o,bn(t=r,e=n)}xn.point=function(n,i){xn.point=r,bn(t=n,e=i)}}function wn(){xn.point=bn}function kn(){var t,e,r,n;function i(t,e){var i=t-r,a=e-n,o=Math.sqrt(i*i+a*a);wr+=o*(r+t)/2,kr+=o*(n+e)/2,Mr+=o,Ar+=(o=n*t-r*e)*(r+t),Tr+=o*(n+e),Sr+=3*o,bn(r=t,n=e)}xn.point=function(a,o){xn.point=i,bn(t=r=a,e=n=o)},xn.lineEnd=function(){i(t,e)}}function Mn(t){var e=4.5,r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(t){return e=t,r},result:D};function n(r,n){t.moveTo(r+e,n),t.arc(r,n,e,0,Tt)}function i(e,n){t.moveTo(e,n),r.point=a}function a(e,r){t.lineTo(e,r)}function o(){r.point=n}function s(){t.closePath()}return r}function An(t){var e=.5,r=Math.cos(30*Ct),n=16;function i(e){return(n?function(e){var r,i,o,s,l,c,u,f,h,p,d,g,v={point:m,lineStart:y,lineEnd:b,polygonStart:function(){e.polygonStart(),v.lineStart=_},polygonEnd:function(){e.polygonEnd(),v.lineStart=y}};function m(r,n){r=t(r,n),e.point(r[0],r[1])}function y(){f=NaN,v.point=x,e.lineStart()}function x(r,i){var o=zr([r,i]),s=t(r,i);a(f,h,u,p,d,g,f=s[0],h=s[1],u=r,p=o[0],d=o[1],g=o[2],n,e),e.point(f,h)}function b(){v.point=m,e.lineEnd()}function _(){y(),v.point=w,v.lineEnd=k}function w(t,e){x(r=t,e),i=f,o=h,s=p,l=d,c=g,v.point=x}function k(){a(f,h,u,p,d,g,i,o,r,s,l,c,n,e),v.lineEnd=b,b()}return v}:function(e){return Sn(e,function(r,n){r=t(r,n),e.point(r[0],r[1])})})(e)}function a(n,i,o,s,l,c,u,f,h,p,d,g,v,m){var x=u-n,b=f-i,_=x*x+b*b;if(_>4*e&&v--){var w=s+p,k=l+d,M=c+g,A=Math.sqrt(w*w+k*k+M*M),T=Math.asin(M/=A),S=y(y(M)-1)<kt||y(o-h)<kt?(o+h)/2:Math.atan2(k,w),E=t(S,T),C=E[0],L=E[1],z=C-n,O=L-i,I=b*z-x*O;(I*I/_>e||y((x*z+b*O)/_-.5)>.3||s*p+l*d+c*g<r)&&(a(n,i,o,s,l,c,C,L,S,w/=A,k/=A,M,v,m),m.point(C,L),a(C,L,S,w,k,M,u,f,h,p,d,g,v,m))}}return i.precision=function(t){return arguments.length?(n=(e=t*t)>0&&16,i):Math.sqrt(e)},i}function Tn(t){this.stream=t}function Sn(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function En(t){return Cn(function(){return t})()}function Cn(e){var r,n,i,a,o,s,l=An(function(t,e){return[(t=r(t,e))[0]*c+a,o-t[1]*c]}),c=150,u=480,f=250,h=0,p=0,d=0,g=0,v=0,m=tn,x=z,b=null,_=null;function w(t){return[(t=i(t[0]*Ct,t[1]*Ct))[0]*c+a,o-t[1]*c]}function k(t){return(t=i.invert((t[0]-a)/c,(o-t[1])/c))&&[t[0]*Lt,t[1]*Lt]}function M(){i=Gr(n=In(d,g,v),r);var t=r(h,p);return a=u-t[0]*c,o=f+t[1]*c,A()}function A(){return s&&(s.valid=!1,s=null),w}return w.stream=function(t){return s&&(s.valid=!1),(s=Ln(m(n,l(x(t))))).valid=!0,s},w.clipAngle=function(t){return arguments.length?(m=null==t?(b=t,tn):function(t){var e=Math.cos(t),r=e>0,n=y(e)>kt;return $r(i,function(t){var e,s,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(f,h){var p,d=[f,h],g=i(f,h),v=r?g?0:o(f,h):g?o(f+(f<0?At:-At),h):0;if(!e&&(c=l=g)&&t.lineStart(),g!==l&&(p=a(e,d),(Fr(e,p)||Fr(d,p))&&(d[0]+=kt,d[1]+=kt,g=i(d[0],d[1]))),g!==l)u=0,g?(t.lineStart(),p=a(d,e),t.point(p[0],p[1])):(p=a(e,d),t.point(p[0],p[1]),t.lineEnd()),e=p;else if(n&&e&&r^g){var m;v&s||!(m=a(d,e,!0))||(u=0,r?(t.lineStart(),t.point(m[0][0],m[0][1]),t.point(m[1][0],m[1][1]),t.lineEnd()):(t.point(m[1][0],m[1][1]),t.lineEnd(),t.lineStart(),t.point(m[0][0],m[0][1])))}!g||e&&Fr(e,d)||t.point(d[0],d[1]),e=d,l=g,s=v},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return u|(c&&l)<<1}}},Bn(t,6*Ct),r?[0,-t]:[-At,t-At]);function i(t,r){return Math.cos(t)*Math.cos(r)>e}function a(t,r,n){var i=[1,0,0],a=Ir(zr(t),zr(r)),o=Or(a,a),s=a[0],l=o-s*s;if(!l)return!n&&t;var c=e*o/l,u=-e*s/l,f=Ir(i,a),h=Dr(i,c);Pr(h,Dr(a,u));var p=f,d=Or(h,p),g=Or(p,p),v=d*d-g*(Or(h,h)-1);if(!(v<0)){var m=Math.sqrt(v),x=Dr(p,(-d-m)/g);if(Pr(x,h),x=Br(x),!n)return x;var b,_=t[0],w=r[0],k=t[1],M=r[1];w<_&&(b=_,_=w,w=b);var A=w-_,T=y(A-At)<kt;if(!T&&M<k&&(b=k,k=M,M=b),T||A<kt?T?k+M>0^x[1]<(y(x[0]-_)<kt?k:M):k<=x[1]&&x[1]<=M:A>At^(_<=x[0]&&x[0]<=w)){var S=Dr(p,(-d+m)/g);return Pr(S,h),[x,Br(S)]}}}function o(e,n){var i=r?t:At-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}}((b=+t)*Ct),A()):b},w.clipExtent=function(t){return arguments.length?(_=t,x=t?nn(t[0][0],t[0][1],t[1][0],t[1][1]):z,A()):_},w.scale=function(t){return arguments.length?(c=+t,M()):c},w.translate=function(t){return arguments.length?(u=+t[0],f=+t[1],M()):[u,f]},w.center=function(t){return arguments.length?(h=t[0]%360*Ct,p=t[1]%360*Ct,M()):[h*Lt,p*Lt]},w.rotate=function(t){return arguments.length?(d=t[0]%360*Ct,g=t[1]%360*Ct,v=t.length>2?t[2]%360*Ct:0,M()):[d*Lt,g*Lt,v*Lt]},t.rebind(w,l,\\\"precision\\\"),function(){return r=e.apply(this,arguments),w.invert=r.invert&&k,M()}}function Ln(t){return Sn(t,function(e,r){t.point(e*Ct,r*Ct)})}function zn(t,e){return[t,e]}function On(t,e){return[t>At?t-Tt:t<-At?t+Tt:t,e]}function In(t,e,r){return t?e||r?Gr(Dn(t),Rn(e,r)):Dn(t):e||r?Rn(e,r):On}function Pn(t){return function(e,r){return[(e+=t)>At?e-Tt:e<-At?e+Tt:e,r]}}function Dn(t){var e=Pn(t);return e.invert=Pn(-t),e}function Rn(t,e){var r=Math.cos(t),n=Math.sin(t),i=Math.cos(e),a=Math.sin(e);function o(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*r+s*n;return[Math.atan2(l*i-u*a,s*r-c*n),Pt(u*i+l*a)]}return o.invert=function(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*i-l*a;return[Math.atan2(l*i+c*a,s*r+u*n),Pt(u*r-s*n)]},o}function Bn(t,e){var r=Math.cos(t),n=Math.sin(t);return function(i,a,o,s){var l=o*e;null!=i?(i=Fn(r,i),a=Fn(r,a),(o>0?i<a:i>a)&&(i+=o*Tt)):(i=t+o*Tt,a=t-.5*l);for(var c,u=i;o>0?u>a:u<a;u-=l)s.point((c=Br([r,-n*Math.cos(u),-n*Math.sin(u)]))[0],c[1])}}function Fn(t,e){var r=zr(e);r[0]-=t,Rr(r);var n=It(-r[1]);return((-r[2]<0?-n:n)+2*Math.PI-kt)%(2*Math.PI)}function Nn(e,r,n){var i=t.range(e,r-kt,n).concat(r);return function(t){return i.map(function(e){return[t,e]})}}function jn(e,r,n){var i=t.range(e,r-kt,n).concat(r);return function(t){return i.map(function(e){return[e,t]})}}function Vn(t){return t.source}function Un(t){return t.target}t.geo.path=function(){var e,r,n,i,a,o=4.5;function s(e){return e&&(\\\"function\\\"==typeof o&&i.pointRadius(+o.apply(this,arguments)),a&&a.valid||(a=n(i)),t.geo.stream(e,a)),i.result()}function l(){return a=null,s}return s.area=function(e){return sn=0,t.geo.stream(e,n(pn)),sn},s.centroid=function(e){return xr=br=_r=wr=kr=Mr=Ar=Tr=Sr=0,t.geo.stream(e,n(xn)),Sr?[Ar/Sr,Tr/Sr]:Mr?[wr/Mr,kr/Mr]:_r?[xr/_r,br/_r]:[NaN,NaN]},s.bounds=function(e){return fn=hn=-(cn=un=1/0),t.geo.stream(e,n(gn)),[[cn,un],[fn,hn]]},s.projection=function(t){return arguments.length?(n=(e=t)?t.stream||(r=t,i=An(function(t,e){return r([t*Lt,e*Lt])}),function(t){return Ln(i(t))}):z,l()):e;var r,i},s.context=function(t){return arguments.length?(i=null==(r=t)?new vn:new Mn(t),\\\"function\\\"!=typeof o&&i.pointRadius(o),l()):r},s.pointRadius=function(t){return arguments.length?(o=\\\"function\\\"==typeof t?t:(i.pointRadius(+t),+t),s):o},s.projection(t.geo.albersUsa()).context(null)},t.geo.transform=function(t){return{stream:function(e){var r=new Tn(e);for(var n in t)r[n]=t[n];return r}}},Tn.prototype={point:function(t,e){this.stream.point(t,e)},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()}},t.geo.projection=En,t.geo.projectionMutator=Cn,(t.geo.equirectangular=function(){return En(zn)}).raw=zn.invert=zn,t.geo.rotation=function(t){function e(e){return(e=t(e[0]*Ct,e[1]*Ct))[0]*=Lt,e[1]*=Lt,e}return t=In(t[0]%360*Ct,t[1]*Ct,t.length>2?t[2]*Ct:0),e.invert=function(e){return(e=t.invert(e[0]*Ct,e[1]*Ct))[0]*=Lt,e[1]*=Lt,e},e},On.invert=zn,t.geo.circle=function(){var t,e,r=[0,0],n=6;function i(){var t=\\\"function\\\"==typeof r?r.apply(this,arguments):r,n=In(-t[0]*Ct,-t[1]*Ct,0).invert,i=[];return e(null,null,1,{point:function(t,e){i.push(t=n(t,e)),t[0]*=Lt,t[1]*=Lt}}),{type:\\\"Polygon\\\",coordinates:[i]}}return i.origin=function(t){return arguments.length?(r=t,i):r},i.angle=function(r){return arguments.length?(e=Bn((t=+r)*Ct,n*Ct),i):t},i.precision=function(r){return arguments.length?(e=Bn(t*Ct,(n=+r)*Ct),i):n},i.angle(90)},t.geo.distance=function(t,e){var r,n=(e[0]-t[0])*Ct,i=t[1]*Ct,a=e[1]*Ct,o=Math.sin(n),s=Math.cos(n),l=Math.sin(i),c=Math.cos(i),u=Math.sin(a),f=Math.cos(a);return Math.atan2(Math.sqrt((r=f*o)*r+(r=c*u-l*f*s)*r),l*u+c*f*s)},t.geo.graticule=function(){var e,r,n,i,a,o,s,l,c,u,f,h,p=10,d=p,g=90,v=360,m=2.5;function x(){return{type:\\\"MultiLineString\\\",coordinates:b()}}function b(){return t.range(Math.ceil(i/g)*g,n,g).map(f).concat(t.range(Math.ceil(l/v)*v,s,v).map(h)).concat(t.range(Math.ceil(r/p)*p,e,p).filter(function(t){return y(t%g)>kt}).map(c)).concat(t.range(Math.ceil(o/d)*d,a,d).filter(function(t){return y(t%v)>kt}).map(u))}return x.lines=function(){return b().map(function(t){return{type:\\\"LineString\\\",coordinates:t}})},x.outline=function(){return{type:\\\"Polygon\\\",coordinates:[f(i).concat(h(s).slice(1),f(n).reverse().slice(1),h(l).reverse().slice(1))]}},x.extent=function(t){return arguments.length?x.majorExtent(t).minorExtent(t):x.minorExtent()},x.majorExtent=function(t){return arguments.length?(i=+t[0][0],n=+t[1][0],l=+t[0][1],s=+t[1][1],i>n&&(t=i,i=n,n=t),l>s&&(t=l,l=s,s=t),x.precision(m)):[[i,l],[n,s]]},x.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),o>a&&(t=o,o=a,a=t),x.precision(m)):[[r,o],[e,a]]},x.step=function(t){return arguments.length?x.majorStep(t).minorStep(t):x.minorStep()},x.majorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],x):[g,v]},x.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],x):[p,d]},x.precision=function(t){return arguments.length?(m=+t,c=Nn(o,a,90),u=jn(r,e,m),f=Nn(l,s,90),h=jn(i,n,m),x):m},x.majorExtent([[-180,-90+kt],[180,90-kt]]).minorExtent([[-180,-80-kt],[180,80+kt]])},t.geo.greatArc=function(){var e,r,n=Vn,i=Un;function a(){return{type:\\\"LineString\\\",coordinates:[e||n.apply(this,arguments),r||i.apply(this,arguments)]}}return a.distance=function(){return t.geo.distance(e||n.apply(this,arguments),r||i.apply(this,arguments))},a.source=function(t){return arguments.length?(n=t,e=\\\"function\\\"==typeof t?null:t,a):n},a.target=function(t){return arguments.length?(i=t,r=\\\"function\\\"==typeof t?null:t,a):i},a.precision=function(){return arguments.length?a:0},a},t.geo.interpolate=function(t,e){return r=t[0]*Ct,n=t[1]*Ct,i=e[0]*Ct,a=e[1]*Ct,o=Math.cos(n),s=Math.sin(n),l=Math.cos(a),c=Math.sin(a),u=o*Math.cos(r),f=o*Math.sin(r),h=l*Math.cos(i),p=l*Math.sin(i),d=2*Math.asin(Math.sqrt(Rt(a-n)+o*l*Rt(i-r))),g=1/Math.sin(d),(v=d?function(t){var e=Math.sin(t*=d)*g,r=Math.sin(d-t)*g,n=r*u+e*h,i=r*f+e*p,a=r*s+e*c;return[Math.atan2(i,n)*Lt,Math.atan2(a,Math.sqrt(n*n+i*i))*Lt]}:function(){return[r*Lt,n*Lt]}).distance=d,v;var r,n,i,a,o,s,l,c,u,f,h,p,d,g,v},t.geo.length=function(e){return yn=0,t.geo.stream(e,qn),yn};var qn={sphere:D,point:D,lineStart:function(){var t,e,r;function n(n,i){var a=Math.sin(i*=Ct),o=Math.cos(i),s=y((n*=Ct)-t),l=Math.cos(s);yn+=Math.atan2(Math.sqrt((s=o*Math.sin(s))*s+(s=r*a-e*o*l)*s),e*a+r*o*l),t=n,e=a,r=o}qn.point=function(i,a){t=i*Ct,e=Math.sin(a*=Ct),r=Math.cos(a),qn.point=n},qn.lineEnd=function(){qn.point=qn.lineEnd=D}},lineEnd:D,polygonStart:D,polygonEnd:D};function Hn(t,e){function r(e,r){var n=Math.cos(e),i=Math.cos(r),a=t(n*i);return[a*i*Math.sin(e),a*Math.sin(r)]}return r.invert=function(t,r){var n=Math.sqrt(t*t+r*r),i=e(n),a=Math.sin(i),o=Math.cos(i);return[Math.atan2(t*a,n*o),Math.asin(n&&r*a/n)]},r}var Gn=Hn(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(t.geo.azimuthalEqualArea=function(){return En(Gn)}).raw=Gn;var Wn=Hn(function(t){var e=Math.acos(t);return e&&e/Math.sin(e)},z);function Yn(t,e){var r=Math.cos(t),n=function(t){return Math.tan(At/4+t/2)},i=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(n(e)/n(t)),a=r*Math.pow(n(t),i)/i;if(!i)return $n;function o(t,e){a>0?e<-Et+kt&&(e=-Et+kt):e>Et-kt&&(e=Et-kt);var r=a/Math.pow(n(e),i);return[r*Math.sin(i*t),a-r*Math.cos(i*t)]}return o.invert=function(t,e){var r=a-e,n=zt(i)*Math.sqrt(t*t+r*r);return[Math.atan2(t,r)/i,2*Math.atan(Math.pow(a/n,1/i))-Et]},o}function Xn(t,e){var r=Math.cos(t),n=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),i=r/n+t;if(y(n)<kt)return zn;function a(t,e){var r=i-e;return[r*Math.sin(n*t),i-r*Math.cos(n*t)]}return a.invert=function(t,e){var r=i-e;return[Math.atan2(t,r)/n,i-zt(n)*Math.sqrt(t*t+r*r)]},a}(t.geo.azimuthalEquidistant=function(){return En(Wn)}).raw=Wn,(t.geo.conicConformal=function(){return an(Yn)}).raw=Yn,(t.geo.conicEquidistant=function(){return an(Xn)}).raw=Xn;var Zn=Hn(function(t){return 1/t},Math.atan);function $n(t,e){return[t,Math.log(Math.tan(At/4+e/2))]}function Jn(t){var e,r=En(t),n=r.scale,i=r.translate,a=r.clipExtent;return r.scale=function(){var t=n.apply(r,arguments);return t===r?e?r.clipExtent(null):r:t},r.translate=function(){var t=i.apply(r,arguments);return t===r?e?r.clipExtent(null):r:t},r.clipExtent=function(t){var o=a.apply(r,arguments);if(o===r){if(e=null==t){var s=At*n(),l=i();a([[l[0]-s,l[1]-s],[l[0]+s,l[1]+s]])}}else e&&(o=null);return o},r.clipExtent(null)}(t.geo.gnomonic=function(){return En(Zn)}).raw=Zn,$n.invert=function(t,e){return[t,2*Math.atan(Math.exp(e))-Et]},(t.geo.mercator=function(){return Jn($n)}).raw=$n;var Kn=Hn(function(){return 1},Math.asin);(t.geo.orthographic=function(){return En(Kn)}).raw=Kn;var Qn=Hn(function(t){return 1/(1+t)},function(t){return 2*Math.atan(t)});function ti(t,e){return[Math.log(Math.tan(At/4+e/2)),-t]}function ei(t){return t[0]}function ri(t){return t[1]}function ni(t){for(var e=t.length,r=[0,1],n=2,i=2;i<e;i++){for(;n>1&&Ot(t[r[n-2]],t[r[n-1]],t[i])<=0;)--n;r[n++]=i}return r.slice(0,n)}function ii(t,e){return t[0]-e[0]||t[1]-e[1]}(t.geo.stereographic=function(){return En(Qn)}).raw=Qn,ti.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Et]},(t.geo.transverseMercator=function(){var t=Jn(ti),e=t.center,r=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return t?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90])}).raw=ti,t.geom={},t.geom.hull=function(t){var e=ei,r=ri;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=ve(e),a=ve(r),o=t.length,s=[],l=[];for(n=0;n<o;n++)s.push([+i.call(this,t[n],n),+a.call(this,t[n],n),n]);for(s.sort(ii),n=0;n<o;n++)l.push([s[n][0],-s[n][1]]);var c=ni(s),u=ni(l),f=u[0]===c[0],h=u[u.length-1]===c[c.length-1],p=[];for(n=c.length-1;n>=0;--n)p.push(t[s[c[n]][2]]);for(n=+f;n<u.length-h;++n)p.push(t[s[u[n]][2]]);return p}return n.x=function(t){return arguments.length?(e=t,n):e},n.y=function(t){return arguments.length?(r=t,n):r},n},t.geom.polygon=function(t){return U(t,ai),t};var ai=t.geom.polygon.prototype=[];function oi(t,e,r){return(r[0]-e[0])*(t[1]-e[1])<(r[1]-e[1])*(t[0]-e[0])}function si(t,e,r,n){var i=t[0],a=r[0],o=e[0]-i,s=n[0]-a,l=t[1],c=r[1],u=e[1]-l,f=n[1]-c,h=(s*(l-c)-f*(i-a))/(f*o-s*u);return[i+h*o,l+h*u]}function li(t){var e=t[0],r=t[t.length-1];return!(e[0]-r[0]||e[1]-r[1])}ai.area=function(){for(var t,e=-1,r=this.length,n=this[r-1],i=0;++e<r;)t=n,n=this[e],i+=t[1]*n[0]-t[0]*n[1];return.5*i},ai.centroid=function(t){var e,r,n=-1,i=this.length,a=0,o=0,s=this[i-1];for(arguments.length||(t=-1/(6*this.area()));++n<i;)e=s,s=this[n],r=e[0]*s[1]-s[0]*e[1],a+=(e[0]+s[0])*r,o+=(e[1]+s[1])*r;return[a*t,o*t]},ai.clip=function(t){for(var e,r,n,i,a,o,s=li(t),l=-1,c=this.length-li(this),u=this[c-1];++l<c;){for(e=t.slice(),t.length=0,i=this[l],a=e[(n=e.length-s)-1],r=-1;++r<n;)oi(o=e[r],u,i)?(oi(a,u,i)||t.push(si(a,o,u,i)),t.push(o)):oi(a,u,i)&&t.push(si(a,o,u,i)),a=o;s&&t.push(t[0]),u=i}return t};var ci,ui,fi,hi,pi,di=[],gi=[];function vi(){Pi(this),this.edge=this.site=this.circle=null}function mi(t){var e=di.pop()||new vi;return e.site=t,e}function yi(t){Si(t),fi.remove(t),di.push(t),Pi(t)}function xi(t){var e=t.circle,r=e.x,n=e.cy,i={x:r,y:n},a=t.P,o=t.N,s=[t];yi(t);for(var l=a;l.circle&&y(r-l.circle.x)<kt&&y(n-l.circle.cy)<kt;)a=l.P,s.unshift(l),yi(l),l=a;s.unshift(l),Si(l);for(var c=o;c.circle&&y(r-c.circle.x)<kt&&y(n-c.circle.cy)<kt;)o=c.N,s.push(c),yi(c),c=o;s.push(c),Si(c);var u,f=s.length;for(u=1;u<f;++u)c=s[u],l=s[u-1],zi(c.edge,l.site,c.site,i);l=s[0],(c=s[f-1]).edge=Li(l.site,c.site,null,i),Ti(l),Ti(c)}function bi(t){for(var e,r,n,i,a=t.x,o=t.y,s=fi._;s;)if((n=_i(s,o)-a)>kt)s=s.L;else{if(!((i=a-wi(s,o))>kt)){n>-kt?(e=s.P,r=s):i>-kt?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=mi(t);if(fi.insert(e,l),e||r){if(e===r)return Si(e),r=mi(e.site),fi.insert(l,r),l.edge=r.edge=Li(e.site,l.site),Ti(e),void Ti(r);if(r){Si(e),Si(r);var c=e.site,u=c.x,f=c.y,h=t.x-u,p=t.y-f,d=r.site,g=d.x-u,v=d.y-f,m=2*(h*v-p*g),y=h*h+p*p,x=g*g+v*v,b={x:(v*y-p*x)/m+u,y:(h*x-g*y)/m+f};zi(r.edge,c,d,b),l.edge=Li(c,t,null,b),r.edge=Li(t,d,null,b),Ti(e),Ti(r)}else l.edge=Li(e.site,l.site)}}function _i(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,c=l-e;if(!c)return s;var u=s-n,f=1/a-1/c,h=u/c;return f?(-h+Math.sqrt(h*h-2*f*(u*u/(-2*c)-l+c/2+i-a/2)))/f+n:(n+s)/2}function wi(t,e){var r=t.N;if(r)return _i(r,e);var n=t.site;return n.y===e?n.x:1/0}function ki(t){this.site=t,this.edges=[]}function Mi(t,e){return e.angle-t.angle}function Ai(){Pi(this),this.x=this.y=this.arc=this.site=this.cy=null}function Ti(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,c=n.y-s,u=a.x-o,f=2*(l*(v=a.y-s)-c*u);if(!(f>=-Mt)){var h=l*l+c*c,p=u*u+v*v,d=(v*h-c*p)/f,g=(l*p-u*h)/f,v=g+s,m=gi.pop()||new Ai;m.arc=t,m.site=i,m.x=d+o,m.y=v+Math.sqrt(d*d+g*g),m.cy=v,t.circle=m;for(var y=null,x=pi._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}pi.insert(y,m),y||(hi=m)}}}}function Si(t){var e=t.circle;e&&(e.P||(hi=e.N),pi.remove(e),gi.push(e),Pi(e),t.circle=null)}function Ei(t,e){var r=t.b;if(r)return!0;var n,i,a=t.a,o=e[0][0],s=e[1][0],l=e[0][1],c=e[1][1],u=t.l,f=t.r,h=u.x,p=u.y,d=f.x,g=f.y,v=(h+d)/2,m=(p+g)/2;if(g===p){if(v<o||v>=s)return;if(h>d){if(a){if(a.y>=c)return}else a={x:v,y:l};r={x:v,y:c}}else{if(a){if(a.y<l)return}else a={x:v,y:c};r={x:v,y:l}}}else if(i=m-(n=(h-d)/(g-p))*v,n<-1||n>1)if(h>d){if(a){if(a.y>=c)return}else a={x:(l-i)/n,y:l};r={x:(c-i)/n,y:c}}else{if(a){if(a.y<l)return}else a={x:(c-i)/n,y:c};r={x:(l-i)/n,y:l}}else if(p<g){if(a){if(a.x>=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.x<o)return}else a={x:s,y:n*s+i};r={x:o,y:n*o+i}}return t.a=a,t.b=r,!0}function Ci(t,e){this.l=t,this.r=e,this.a=this.b=null}function Li(t,e,r,n){var i=new Ci(t,e);return ci.push(i),r&&zi(i,t,e,r),n&&zi(i,e,t,n),ui[t.i].edges.push(new Oi(i,t,e)),ui[e.i].edges.push(new Oi(i,e,t)),i}function zi(t,e,r,n){t.a||t.b?t.l===r?t.b=n:t.a=n:(t.a=n,t.l=e,t.r=r)}function Oi(t,e,r){var n=t.a,i=t.b;this.edge=t,this.site=e,this.angle=r?Math.atan2(r.y-e.y,r.x-e.x):t.l===e?Math.atan2(i.x-n.x,n.y-i.y):Math.atan2(n.x-i.x,i.y-n.y)}function Ii(){this._=null}function Pi(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Di(t,e){var r=e,n=e.R,i=r.U;i?i.L===r?i.L=n:i.R=n:t._=n,n.U=i,r.U=n,r.R=n.L,r.R&&(r.R.U=r),n.L=r}function Ri(t,e){var r=e,n=e.L,i=r.U;i?i.L===r?i.L=n:i.R=n:t._=n,n.U=i,r.U=n,r.L=n.R,r.L&&(r.L.U=r),n.R=r}function Bi(t){for(;t.L;)t=t.L;return t}function Fi(t,e){var r,n,i,a=t.sort(Ni).pop();for(ci=[],ui=new Array(t.length),fi=new Ii,pi=new Ii;;)if(i=hi,a&&(!i||a.y<i.y||a.y===i.y&&a.x<i.x))a.x===r&&a.y===n||(ui[a.i]=new ki(a),bi(a),r=a.x,n=a.y),a=t.pop();else{if(!i)break;xi(i.arc)}e&&(function(t){for(var e,r=ci,n=en(t[0][0],t[0][1],t[1][0],t[1][1]),i=r.length;i--;)(!Ei(e=r[i],t)||!n(e)||y(e.a.x-e.b.x)<kt&&y(e.a.y-e.b.y)<kt)&&(e.a=e.b=null,r.splice(i,1))}(e),function(t){for(var e,r,n,i,a,o,s,l,c,u,f=t[0][0],h=t[1][0],p=t[0][1],d=t[1][1],g=ui,v=g.length;v--;)if((a=g[v])&&a.prepare())for(l=(s=a.edges).length,o=0;o<l;)n=(u=s[o].end()).x,i=u.y,e=(c=s[++o%l].start()).x,r=c.y,(y(n-e)>kt||y(i-r)>kt)&&(s.splice(o,0,new Oi((m=a.site,x=u,b=y(n-f)<kt&&d-i>kt?{x:f,y:y(e-f)<kt?r:d}:y(i-d)<kt&&h-n>kt?{x:y(r-d)<kt?e:h,y:d}:y(n-h)<kt&&i-p>kt?{x:h,y:y(e-h)<kt?r:p}:y(i-p)<kt&&n-f>kt?{x:y(r-p)<kt?e:f,y:p}:null,_=void 0,_=new Ci(m,null),_.a=x,_.b=b,ci.push(_),_),a.site,null)),++l);var m,x,b,_}(e));var o={cells:ui,edges:ci};return fi=pi=ci=ui=null,o}function Ni(t,e){return e.y-t.y||e.x-t.x}ki.prototype.prepare=function(){for(var t,e=this.edges,r=e.length;r--;)(t=e[r].edge).b&&t.a||e.splice(r,1);return e.sort(Mi),e.length},Oi.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},Ii.prototype={insert:function(t,e){var r,n,i;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;r=t}else this._?(t=Bi(this._),e.P=null,e.N=t,t.P=t.L=e,r=t):(e.P=e.N=null,this._=e,r=null);for(e.L=e.R=null,e.U=r,e.C=!0,t=e;r&&r.C;)r===(n=r.U).L?(i=n.R)&&i.C?(r.C=i.C=!1,n.C=!0,t=n):(t===r.R&&(Di(this,r),r=(t=r).U),r.C=!1,n.C=!0,Ri(this,n)):(i=n.L)&&i.C?(r.C=i.C=!1,n.C=!0,t=n):(t===r.L&&(Ri(this,r),r=(t=r).U),r.C=!1,n.C=!0,Di(this,n)),r=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,r,n,i=t.U,a=t.L,o=t.R;if(r=a?o?Bi(o):a:o,i?i.L===t?i.L=r:i.R=r:this._=r,a&&o?(n=r.C,r.C=t.C,r.L=a,a.U=r,r!==o?(i=r.U,r.U=t.U,t=r.R,i.L=t,r.R=o,o.U=r):(r.U=i,i=r,t=r.R)):(n=t.C,t=r),t&&(t.U=i),!n)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((e=i.R).C&&(e.C=!1,i.C=!0,Di(this,i),e=i.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,Ri(this,e),e=i.R),e.C=i.C,i.C=e.R.C=!1,Di(this,i),t=this._;break}}else if((e=i.L).C&&(e.C=!1,i.C=!0,Ri(this,i),e=i.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,Di(this,e),e=i.L),e.C=i.C,i.C=e.L.C=!1,Ri(this,i),t=this._;break}e.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}},t.geom.voronoi=function(t){var e=ei,r=ri,n=e,i=r,a=ji;if(t)return o(t);function o(t){var e=new Array(t.length),r=a[0][0],n=a[0][1],i=a[1][0],o=a[1][1];return Fi(s(t),a).cells.forEach(function(a,s){var l=a.edges,c=a.site;(e[s]=l.length?l.map(function(t){var e=t.start();return[e.x,e.y]}):c.x>=r&&c.x<=i&&c.y>=n&&c.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]}),e}function s(t){return t.map(function(t,e){return{x:Math.round(n(t,e)/kt)*kt,y:Math.round(i(t,e)/kt)*kt,i:e}})}return o.links=function(t){return Fi(s(t)).edges.filter(function(t){return t.l&&t.r}).map(function(e){return{source:t[e.l.i],target:t[e.r.i]}})},o.triangles=function(t){var e=[];return Fi(s(t)).cells.forEach(function(r,n){for(var i,a,o,s,l=r.site,c=r.edges.sort(Mi),u=-1,f=c.length,h=c[f-1].edge,p=h.l===l?h.r:h.l;++u<f;)h,i=p,p=(h=c[u].edge).l===l?h.r:h.l,n<i.i&&n<p.i&&(o=i,s=p,((a=l).x-s.x)*(o.y-a.y)-(a.x-o.x)*(s.y-a.y)<0)&&e.push([t[n],t[i.i],t[p.i]])}),e},o.x=function(t){return arguments.length?(n=ve(e=t),o):e},o.y=function(t){return arguments.length?(i=ve(r=t),o):r},o.clipExtent=function(t){return arguments.length?(a=null==t?ji:t,o):a===ji?null:a},o.size=function(t){return arguments.length?o.clipExtent(t&&[[0,0],t]):a===ji?null:a&&a[1]},o};var ji=[[-1e6,-1e6],[1e6,1e6]];function Vi(t){return t.x}function Ui(t){return t.y}function qi(e,r){e=t.rgb(e),r=t.rgb(r);var n=e.r,i=e.g,a=e.b,o=r.r-n,s=r.g-i,l=r.b-a;return function(t){return\\\"#\\\"+ce(Math.round(n+o*t))+ce(Math.round(i+s*t))+ce(Math.round(a+l*t))}}function Hi(t,e){var r,n={},i={};for(r in t)r in e?n[r]=Zi(t[r],e[r]):i[r]=t[r];for(r in e)r in t||(i[r]=e[r]);return function(t){for(r in n)i[r]=n[r](t);return i}}function Gi(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function Wi(t,e){var r,n,i,a=Yi.lastIndex=Xi.lastIndex=0,o=-1,s=[],l=[];for(t+=\\\"\\\",e+=\\\"\\\";(r=Yi.exec(t))&&(n=Xi.exec(e));)(i=n.index)>a&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:Gi(r,n)})),a=Xi.lastIndex;return a<e.length&&(i=e.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?(e=l[0].x,function(t){return e(t)+\\\"\\\"}):function(){return e}:(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join(\\\"\\\")})}t.geom.delaunay=function(e){return t.geom.voronoi().triangles(e)},t.geom.quadtree=function(t,e,r,n,i){var a,o=ei,s=ri;if(a=arguments.length)return o=Vi,s=Ui,3===a&&(i=r,n=e,r=e=0),l(t);function l(t){var l,c,u,f,h,p,d,g,v,m=ve(o),x=ve(s);if(null!=e)p=e,d=r,g=n,v=i;else if(g=v=-(p=d=1/0),c=[],u=[],h=t.length,a)for(f=0;f<h;++f)(l=t[f]).x<p&&(p=l.x),l.y<d&&(d=l.y),l.x>g&&(g=l.x),l.y>v&&(v=l.y),c.push(l.x),u.push(l.y);else for(f=0;f<h;++f){var b=+m(l=t[f],f),_=+x(l,f);b<p&&(p=b),_<d&&(d=_),b>g&&(g=b),_>v&&(v=_),c.push(b),u.push(_)}var w=g-p,k=v-d;function M(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,c=t.y;if(null!=l)if(y(l-r)+y(c-n)<.01)A(t,e,r,n,i,a,o,s);else{var u=t.point;t.x=t.y=t.point=null,A(t,u,l,c,i,a,o,s),A(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else A(t,e,r,n,i,a,o,s)}function A(t,e,r,n,i,a,o,s){var l=.5*(i+o),c=.5*(a+s),u=r>=l,f=n>=c,h=f<<1|u;t.leaf=!1,u?i=l:o=l,f?a=c:s=c,M(t=t.nodes[h]||(t.nodes[h]={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){M(T,t,+m(t,++f),+x(t,f),p,d,g,v)}}),e,r,n,i,a,o,s)}w>k?v=d+w:g=p+k;var T={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){M(T,t,+m(t,++f),+x(t,f),p,d,g,v)}};if(T.visit=function(t){!function t(e,r,n,i,a,o){if(!e(r,n,i,a,o)){var s=.5*(n+a),l=.5*(i+o),c=r.nodes;c[0]&&t(e,c[0],n,i,s,l),c[1]&&t(e,c[1],s,i,a,l),c[2]&&t(e,c[2],n,l,s,o),c[3]&&t(e,c[3],s,l,a,o)}}(t,T,p,d,g,v)},T.find=function(t){return function(t,e,r,n,i,a,o){var s,l=1/0;return function t(c,u,f,h,p){if(!(u>a||f>o||h<n||p<i)){if(d=c.point){var d,g=e-c.x,v=r-c.y,m=g*g+v*v;if(m<l){var y=Math.sqrt(l=m);n=e-y,i=r-y,a=e+y,o=r+y,s=d}}for(var x=c.nodes,b=.5*(u+h),_=.5*(f+p),w=(r>=_)<<1|e>=b,k=w+4;w<k;++w)if(c=x[3&w])switch(3&w){case 0:t(c,u,f,b,_);break;case 1:t(c,b,f,h,_);break;case 2:t(c,u,_,b,p);break;case 3:t(c,b,_,h,p)}}}(t,n,i,a,o),s}(T,t[0],t[1],p,d,g,v)},f=-1,null==e){for(;++f<h;)M(T,t[f],c[f],u[f],p,d,g,v);--f}else t.forEach(T.add);return c=u=t=l=null,T}return l.x=function(t){return arguments.length?(o=t,l):o},l.y=function(t){return arguments.length?(s=t,l):s},l.extent=function(t){return arguments.length?(null==t?e=r=n=i=null:(e=+t[0][0],r=+t[0][1],n=+t[1][0],i=+t[1][1]),l):null==e?null:[[e,r],[n,i]]},l.size=function(t){return arguments.length?(null==t?e=r=n=i=null:(e=r=0,n=+t[0],i=+t[1]),l):null==e?null:[n-e,i-r]},l},t.interpolateRgb=qi,t.interpolateObject=Hi,t.interpolateNumber=Gi,t.interpolateString=Wi;var Yi=/[-+]?(?:\\\\d+\\\\.?\\\\d*|\\\\.?\\\\d+)(?:[eE][-+]?\\\\d+)?/g,Xi=new RegExp(Yi.source,\\\"g\\\");function Zi(e,r){for(var n,i=t.interpolators.length;--i>=0&&!(n=t.interpolators[i](e,r)););return n}function $i(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r<s;++r)n.push(Zi(t[r],e[r]));for(;r<a;++r)i[r]=t[r];for(;r<o;++r)i[r]=e[r];return function(t){for(r=0;r<s;++r)i[r]=n[r](t);return i}}t.interpolate=Zi,t.interpolators=[function(t,e){var r=typeof e;return(\\\"string\\\"===r?ge.has(e.toLowerCase())||/^(#|rgb\\\\(|hsl\\\\()/i.test(e)?qi:Wi:e instanceof Vt?qi:Array.isArray(e)?$i:\\\"object\\\"===r&&isNaN(e)?Hi:Gi)(t,e)}],t.interpolateArray=$i;var Ji=function(){return z},Ki=t.map({linear:Ji,poly:function(t){return function(e){return Math.pow(e,t)}},quad:function(){return ra},cubic:function(){return na},sin:function(){return aa},exp:function(){return oa},circle:function(){return sa},elastic:function(t,e){var r;arguments.length<2&&(e=.45);arguments.length?r=e/Tt*Math.asin(1/t):(t=1,r=e/4);return function(n){return 1+t*Math.pow(2,-10*n)*Math.sin((n-r)*Tt/e)}},back:function(t){t||(t=1.70158);return function(e){return e*e*((t+1)*e-t)}},bounce:function(){return la}}),Qi=t.map({in:z,out:ta,\\\"in-out\\\":ea,\\\"out-in\\\":function(t){return ea(ta(t))}});function ta(t){return function(e){return 1-t(1-e)}}function ea(t){return function(e){return.5*(e<.5?t(2*e):2-t(2-2*e))}}function ra(t){return t*t}function na(t){return t*t*t}function ia(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function aa(t){return 1-Math.cos(t*Et)}function oa(t){return Math.pow(2,10*(t-1))}function sa(t){return 1-Math.sqrt(1-t*t)}function la(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function ca(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function ua(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=ha(i),s=fa(i,a),l=ha(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]<a[0]*i[1]&&(i[0]*=-1,i[1]*=-1,o*=-1,s*=-1),this.rotate=(o?Math.atan2(i[1],i[0]):Math.atan2(-a[0],a[1]))*Lt,this.translate=[t.e,t.f],this.scale=[o,l],this.skew=l?Math.atan2(s,l)*Lt:0}function fa(t,e){return t[0]*e[0]+t[1]*e[1]}function ha(t){var e=Math.sqrt(fa(t,t));return e&&(t[0]/=e,t[1]/=e),e}t.ease=function(t){var e,n=t.indexOf(\\\"-\\\"),i=n>=0?t.slice(0,n):t,a=n>=0?t.slice(n+1):\\\"in\\\";return i=Ki.get(i)||Ji,a=Qi.get(a)||z,e=a(i.apply(null,r.call(arguments,1))),function(t){return t<=0?0:t>=1?1:e(t)}},t.interpolateHcl=function(e,r){e=t.hcl(e),r=t.hcl(r);var n=e.h,i=e.c,a=e.l,o=r.h-n,s=r.c-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.c:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Yt(n+o*t,i+s*t,a+l*t)+\\\"\\\"}},t.interpolateHsl=function(e,r){e=t.hsl(e),r=t.hsl(r);var n=e.h,i=e.s,a=e.l,o=r.h-n,s=r.s-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.s:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Ht(n+o*t,i+s*t,a+l*t)+\\\"\\\"}},t.interpolateLab=function(e,r){e=t.lab(e),r=t.lab(r);var n=e.l,i=e.a,a=e.b,o=r.l-n,s=r.a-i,l=r.b-a;return function(t){return te(n+o*t,i+s*t,a+l*t)+\\\"\\\"}},t.interpolateRound=ca,t.transform=function(e){var r=i.createElementNS(t.ns.prefix.svg,\\\"g\\\");return(t.transform=function(t){if(null!=t){r.setAttribute(\\\"transform\\\",t);var e=r.transform.baseVal.consolidate()}return new ua(e?e.matrix:pa)})(e)},ua.prototype.toString=function(){return\\\"translate(\\\"+this.translate+\\\")rotate(\\\"+this.rotate+\\\")skewX(\\\"+this.skew+\\\")scale(\\\"+this.scale+\\\")\\\"};var pa={a:1,b:0,c:0,d:1,e:0,f:0};function da(t){return t.length?t.pop()+\\\",\\\":\\\"\\\"}function ga(e,r){var n=[],i=[];return e=t.transform(e),r=t.transform(r),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(\\\"translate(\\\",null,\\\",\\\",null,\\\")\\\");n.push({i:i-4,x:Gi(t[0],e[0])},{i:i-2,x:Gi(t[1],e[1])})}else(e[0]||e[1])&&r.push(\\\"translate(\\\"+e+\\\")\\\")}(e.translate,r.translate,n,i),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(da(r)+\\\"rotate(\\\",null,\\\")\\\")-2,x:Gi(t,e)})):e&&r.push(da(r)+\\\"rotate(\\\"+e+\\\")\\\")}(e.rotate,r.rotate,n,i),function(t,e,r,n){t!==e?n.push({i:r.push(da(r)+\\\"skewX(\\\",null,\\\")\\\")-2,x:Gi(t,e)}):e&&r.push(da(r)+\\\"skewX(\\\"+e+\\\")\\\")}(e.skew,r.skew,n,i),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(da(r)+\\\"scale(\\\",null,\\\",\\\",null,\\\")\\\");n.push({i:i-4,x:Gi(t[0],e[0])},{i:i-2,x:Gi(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(da(r)+\\\"scale(\\\"+e+\\\")\\\")}(e.scale,r.scale,n,i),e=r=null,function(t){for(var e,r=-1,a=i.length;++r<a;)n[(e=i[r]).i]=e.x(t);return n.join(\\\"\\\")}}function va(t,e){return e=(e-=t=+t)||1/e,function(r){return(r-t)/e}}function ma(t,e){return e=(e-=t=+t)||1/e,function(r){return Math.max(0,Math.min(1,(r-t)/e))}}function ya(t){for(var e=t.source,r=t.target,n=function(t,e){if(t===e)return t;var r=xa(t),n=xa(e),i=r.pop(),a=n.pop(),o=null;for(;i===a;)o=i,i=r.pop(),a=n.pop();return o}(e,r),i=[e];e!==n;)e=e.parent,i.push(e);for(var a=i.length;r!==n;)i.splice(a,0,r),r=r.parent;return i}function xa(t){for(var e=[],r=t.parent;null!=r;)e.push(t),t=r,r=r.parent;return e.push(t),e}function ba(t){t.fixed|=2}function _a(t){t.fixed&=-7}function wa(t){t.fixed|=4,t.px=t.x,t.py=t.y}function ka(t){t.fixed&=-5}t.interpolateTransform=ga,t.layout={},t.layout.bundle=function(){return function(t){for(var e=[],r=-1,n=t.length;++r<n;)e.push(ya(t[r]));return e}},t.layout.chord=function(){var e,r,n,i,a,o,s,l={},c=0;function u(){var l,u,h,p,d,g={},v=[],m=t.range(i),y=[];for(e=[],r=[],l=0,p=-1;++p<i;){for(u=0,d=-1;++d<i;)u+=n[p][d];v.push(u),y.push(t.range(i)),l+=u}for(a&&m.sort(function(t,e){return a(v[t],v[e])}),o&&y.forEach(function(t,e){t.sort(function(t,r){return o(n[e][t],n[e][r])})}),l=(Tt-c*i)/l,u=0,p=-1;++p<i;){for(h=u,d=-1;++d<i;){var x=m[p],b=y[x][d],_=n[x][b],w=u,k=u+=_*l;g[x+\\\"-\\\"+b]={index:x,subindex:b,startAngle:w,endAngle:k,value:_}}r[x]={index:x,startAngle:h,endAngle:u,value:v[x]},u+=c}for(p=-1;++p<i;)for(d=p-1;++d<i;){var M=g[p+\\\"-\\\"+d],A=g[d+\\\"-\\\"+p];(M.value||A.value)&&e.push(M.value<A.value?{source:A,target:M}:{source:M,target:A})}s&&f()}function f(){e.sort(function(t,e){return s((t.source.value+t.target.value)/2,(e.source.value+e.target.value)/2)})}return l.matrix=function(t){return arguments.length?(i=(n=t)&&n.length,e=r=null,l):n},l.padding=function(t){return arguments.length?(c=t,e=r=null,l):c},l.sortGroups=function(t){return arguments.length?(a=t,e=r=null,l):a},l.sortSubgroups=function(t){return arguments.length?(o=t,e=null,l):o},l.sortChords=function(t){return arguments.length?(s=t,e&&f(),l):s},l.chords=function(){return e||u(),e},l.groups=function(){return r||u(),r},l},t.layout.force=function(){var e,r,n,i,a,o,s={},l=t.dispatch(\\\"start\\\",\\\"tick\\\",\\\"end\\\"),c=[1,1],u=.9,f=Ma,h=Aa,p=-30,d=Ta,g=.1,v=.64,m=[],y=[];function x(t){return function(e,r,n,i){if(e.point!==t){var a=e.cx-t.x,o=e.cy-t.y,s=i-r,l=a*a+o*o;if(s*s/v<l){if(l<d){var c=e.charge/l;t.px-=a*c,t.py-=o*c}return!0}if(e.point&&l&&l<d){c=e.pointCharge/l;t.px-=a*c,t.py-=o*c}}return!e.charge}}function b(e){e.px=t.event.x,e.py=t.event.y,s.resume()}return s.tick=function(){if((n*=.99)<.005)return e=null,l.end({type:\\\"end\\\",alpha:n=0}),!0;var r,s,f,h,d,v,b,_,w,k=m.length,M=y.length;for(s=0;s<M;++s)h=(f=y[s]).source,(v=(_=(d=f.target).x-h.x)*_+(w=d.y-h.y)*w)&&(_*=v=n*a[s]*((v=Math.sqrt(v))-i[s])/v,w*=v,d.x-=_*(b=h.weight+d.weight?h.weight/(h.weight+d.weight):.5),d.y-=w*b,h.x+=_*(b=1-b),h.y+=w*b);if((b=n*g)&&(_=c[0]/2,w=c[1]/2,s=-1,b))for(;++s<k;)(f=m[s]).x+=(_-f.x)*b,f.y+=(w-f.y)*b;if(p)for(!function t(e,r,n){var i=0,a=0;e.charge=0;if(!e.leaf)for(var o,s=e.nodes,l=s.length,c=-1;++c<l;)null!=(o=s[c])&&(t(o,r,n),e.charge+=o.charge,i+=o.charge*o.cx,a+=o.charge*o.cy);if(e.point){e.leaf||(e.point.x+=Math.random()-.5,e.point.y+=Math.random()-.5);var u=r*n[e.point.index];e.charge+=e.pointCharge=u,i+=u*e.point.x,a+=u*e.point.y}e.cx=i/e.charge;e.cy=a/e.charge}(r=t.geom.quadtree(m),n,o),s=-1;++s<k;)(f=m[s]).fixed||r.visit(x(f));for(s=-1;++s<k;)(f=m[s]).fixed?(f.x=f.px,f.y=f.py):(f.x-=(f.px-(f.px=f.x))*u,f.y-=(f.py-(f.py=f.y))*u);l.tick({type:\\\"tick\\\",alpha:n})},s.nodes=function(t){return arguments.length?(m=t,s):m},s.links=function(t){return arguments.length?(y=t,s):y},s.size=function(t){return arguments.length?(c=t,s):c},s.linkDistance=function(t){return arguments.length?(f=\\\"function\\\"==typeof t?t:+t,s):f},s.distance=s.linkDistance,s.linkStrength=function(t){return arguments.length?(h=\\\"function\\\"==typeof t?t:+t,s):h},s.friction=function(t){return arguments.length?(u=+t,s):u},s.charge=function(t){return arguments.length?(p=\\\"function\\\"==typeof t?t:+t,s):p},s.chargeDistance=function(t){return arguments.length?(d=t*t,s):Math.sqrt(d)},s.gravity=function(t){return arguments.length?(g=+t,s):g},s.theta=function(t){return arguments.length?(v=t*t,s):Math.sqrt(v)},s.alpha=function(t){return arguments.length?(t=+t,n?t>0?n=t:(e.c=null,e.t=NaN,e=null,l.end({type:\\\"end\\\",alpha:n=0})):t>0&&(l.start({type:\\\"start\\\",alpha:n=t}),e=Me(s.tick)),s):n},s.start=function(){var t,e,r,n=m.length,l=y.length,u=c[0],d=c[1];for(t=0;t<n;++t)(r=m[t]).index=t,r.weight=0;for(t=0;t<l;++t)\\\"number\\\"==typeof(r=y[t]).source&&(r.source=m[r.source]),\\\"number\\\"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;t<n;++t)r=m[t],isNaN(r.x)&&(r.x=g(\\\"x\\\",u)),isNaN(r.y)&&(r.y=g(\\\"y\\\",d)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(i=[],\\\"function\\\"==typeof f)for(t=0;t<l;++t)i[t]=+f.call(this,y[t],t);else for(t=0;t<l;++t)i[t]=f;if(a=[],\\\"function\\\"==typeof h)for(t=0;t<l;++t)a[t]=+h.call(this,y[t],t);else for(t=0;t<l;++t)a[t]=h;if(o=[],\\\"function\\\"==typeof p)for(t=0;t<n;++t)o[t]=+p.call(this,m[t],t);else for(t=0;t<n;++t)o[t]=p;function g(r,i){if(!e){for(e=new Array(n),c=0;c<n;++c)e[c]=[];for(c=0;c<l;++c){var a=y[c];e[a.source.index].push(a.target),e[a.target.index].push(a.source)}}for(var o,s=e[t],c=-1,u=s.length;++c<u;)if(!isNaN(o=s[c][r]))return o;return Math.random()*i}return s.resume()},s.resume=function(){return s.alpha(.1)},s.stop=function(){return s.alpha(0)},s.drag=function(){if(r||(r=t.behavior.drag().origin(z).on(\\\"dragstart.force\\\",ba).on(\\\"drag.force\\\",b).on(\\\"dragend.force\\\",_a)),!arguments.length)return r;this.on(\\\"mouseover.force\\\",wa).on(\\\"mouseout.force\\\",ka).call(r)},t.rebind(s,l,\\\"on\\\")};var Ma=20,Aa=1,Ta=1/0;function Sa(e,r){return t.rebind(e,r,\\\"sort\\\",\\\"children\\\",\\\"value\\\"),e.nodes=e,e.links=Ia,e}function Ea(t,e){for(var r=[t];null!=(t=r.pop());)if(e(t),(i=t.children)&&(n=i.length))for(var n,i;--n>=0;)r.push(i[n])}function Ca(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o<i;)r.push(a[o]);for(;null!=(t=n.pop());)e(t)}function La(t){return t.children}function za(t){return t.value}function Oa(t,e){return e.value-t.value}function Ia(e){return t.merge(e.map(function(t){return(t.children||[]).map(function(e){return{source:t,target:e}})}))}t.layout.hierarchy=function(){var t=Oa,e=La,r=za;function n(i){var a,o=[i],s=[];for(i.depth=0;null!=(a=o.pop());)if(s.push(a),(c=e.call(n,a,a.depth))&&(l=c.length)){for(var l,c,u;--l>=0;)o.push(u=c[l]),u.parent=a,u.depth=a.depth+1;r&&(a.value=0),a.children=c}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return Ca(i,function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)}),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ea(t,function(t){t.children&&(t.value=0)}),Ca(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},t.layout.partition=function(){var e=t.layout.hierarchy(),r=[1,1];function n(t,n){var i=e.call(this,t,n);return function t(e,r,n,i){var a=e.children;if(e.x=r,e.y=e.depth*i,e.dx=n,e.dy=i,a&&(o=a.length)){var o,s,l,c=-1;for(n=e.value?n/e.value:0;++c<o;)t(s=a[c],r,l=s.value*n,i),r+=l}}(i[0],0,r[0],r[1]/function t(e){var r=e.children,n=0;if(r&&(i=r.length))for(var i,a=-1;++a<i;)n=Math.max(n,t(r[a]));return 1+n}(i[0])),i}return n.size=function(t){return arguments.length?(r=t,n):r},Sa(n,e)},t.layout.pie=function(){var e=Number,r=Pa,n=0,i=Tt,a=0;function o(s){var l,c=s.length,u=s.map(function(t,r){return+e.call(o,t,r)}),f=+(\\\"function\\\"==typeof n?n.apply(this,arguments):n),h=(\\\"function\\\"==typeof i?i.apply(this,arguments):i)-f,p=Math.min(Math.abs(h)/c,+(\\\"function\\\"==typeof a?a.apply(this,arguments):a)),d=p*(h<0?-1:1),g=t.sum(u),v=g?(h-c*d)/g:0,m=t.range(c),y=[];return null!=r&&m.sort(r===Pa?function(t,e){return u[e]-u[t]}:function(t,e){return r(s[t],s[e])}),m.forEach(function(t){y[t]={data:s[t],value:l=u[t],startAngle:f,endAngle:f+=l*v+d,padAngle:p}}),y}return o.value=function(t){return arguments.length?(e=t,o):e},o.sort=function(t){return arguments.length?(r=t,o):r},o.startAngle=function(t){return arguments.length?(n=t,o):n},o.endAngle=function(t){return arguments.length?(i=t,o):i},o.padAngle=function(t){return arguments.length?(a=t,o):a},o};var Pa={};function Da(t){return t.x}function Ra(t){return t.y}function Ba(t,e,r){t.y0=e,t.y=r}t.layout.stack=function(){var e=z,r=ja,n=Va,i=Ba,a=Da,o=Ra;function s(l,c){if(!(p=l.length))return l;var u=l.map(function(t,r){return e.call(s,t,r)}),f=u.map(function(t){return t.map(function(t,e){return[a.call(s,t,e),o.call(s,t,e)]})}),h=r.call(s,f,c);u=t.permute(u,h),f=t.permute(f,h);var p,d,g,v,m=n.call(s,f,c),y=u[0].length;for(g=0;g<y;++g)for(i.call(s,u[0][g],v=m[g],f[0][g][1]),d=1;d<p;++d)i.call(s,u[d][g],v+=f[d-1][g][1],f[d][g][1]);return l}return s.values=function(t){return arguments.length?(e=t,s):e},s.order=function(t){return arguments.length?(r=\\\"function\\\"==typeof t?t:Fa.get(t)||ja,s):r},s.offset=function(t){return arguments.length?(n=\\\"function\\\"==typeof t?t:Na.get(t)||Va,s):n},s.x=function(t){return arguments.length?(a=t,s):a},s.y=function(t){return arguments.length?(o=t,s):o},s.out=function(t){return arguments.length?(i=t,s):i},s};var Fa=t.map({\\\"inside-out\\\":function(e){var r,n,i=e.length,a=e.map(Ua),o=e.map(qa),s=t.range(i).sort(function(t,e){return a[t]-a[e]}),l=0,c=0,u=[],f=[];for(r=0;r<i;++r)n=s[r],l<c?(l+=o[n],u.push(n)):(c+=o[n],f.push(n));return f.reverse().concat(u)},reverse:function(e){return t.range(e.length).reverse()},default:ja}),Na=t.map({silhouette:function(t){var e,r,n,i=t.length,a=t[0].length,o=[],s=0,l=[];for(r=0;r<a;++r){for(e=0,n=0;e<i;e++)n+=t[e][r][1];n>s&&(s=n),o.push(n)}for(r=0;r<a;++r)l[r]=(s-o[r])/2;return l},wiggle:function(t){var e,r,n,i,a,o,s,l,c,u=t.length,f=t[0],h=f.length,p=[];for(p[0]=l=c=0,r=1;r<h;++r){for(e=0,i=0;e<u;++e)i+=t[e][r][1];for(e=0,a=0,s=f[r][0]-f[r-1][0];e<u;++e){for(n=0,o=(t[e][r][1]-t[e][r-1][1])/(2*s);n<e;++n)o+=(t[n][r][1]-t[n][r-1][1])/s;a+=o*t[e][r][1]}p[r]=l-=i?a/i*s:0,l<c&&(c=l)}for(r=0;r<h;++r)p[r]-=c;return p},expand:function(t){var e,r,n,i=t.length,a=t[0].length,o=1/i,s=[];for(r=0;r<a;++r){for(e=0,n=0;e<i;e++)n+=t[e][r][1];if(n)for(e=0;e<i;e++)t[e][r][1]/=n;else for(e=0;e<i;e++)t[e][r][1]=o}for(r=0;r<a;++r)s[r]=0;return s},zero:Va});function ja(e){return t.range(e.length)}function Va(t){for(var e=-1,r=t[0].length,n=[];++e<r;)n[e]=0;return n}function Ua(t){for(var e,r=1,n=0,i=t[0][1],a=t.length;r<a;++r)(e=t[r][1])>i&&(n=r,i=e);return n}function qa(t){return t.reduce(Ha,0)}function Ha(t,e){return t+e[1]}function Ga(t,e){return Wa(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Wa(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function Ya(e){return[t.min(e),t.max(e)]}function Xa(t,e){return t.value-e.value}function Za(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function $a(t,e){t._pack_next=e,e._pack_prev=t}function Ja(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function Ka(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,c=1/0,u=-1/0,f=1/0,h=-1/0;if(e.forEach(Qa),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(eo(r,n,i=e[2]),x(i),Za(r,i),r._pack_prev=i,Za(i,n),n=r._pack_next,a=3;a<l;a++){eo(r,n,i=e[a]);var p=0,d=1,g=1;for(o=n._pack_next;o!==n;o=o._pack_next,d++)if(Ja(o,i)){p=1;break}if(1==p)for(s=r._pack_prev;s!==o._pack_prev&&!Ja(s,i);s=s._pack_prev,g++);p?(d<g||d==g&&n.r<r.r?$a(r,n=o):$a(r=s,n),a--):(Za(r,i),n=i,x(i))}var v=(c+u)/2,m=(f+h)/2,y=0;for(a=0;a<l;a++)(i=e[a]).x-=v,i.y-=m,y=Math.max(y,i.r+Math.sqrt(i.x*i.x+i.y*i.y));t.r=y,e.forEach(to)}function x(t){c=Math.min(t.x-t.r,c),u=Math.max(t.x+t.r,u),f=Math.min(t.y-t.r,f),h=Math.max(t.y+t.r,h)}}function Qa(t){t._pack_next=t._pack_prev=t}function to(t){delete t._pack_next,delete t._pack_prev}function eo(t,e,r){var n=t.r+r.r,i=e.x-t.x,a=e.y-t.y;if(n&&(i||a)){var o=e.r+r.r,s=i*i+a*a,l=.5+((n*=n)-(o*=o))/(2*s),c=Math.sqrt(Math.max(0,2*o*(n+s)-(n-=s)*n-o*o))/(2*s);r.x=t.x+l*i+c*a,r.y=t.y+l*a-c*i}else r.x=t.x+n,r.y=t.y}function ro(t,e){return t.parent==e.parent?1:2}function no(t){var e=t.children;return e.length?e[0]:t.t}function io(t){var e,r=t.children;return(e=r.length)?r[e-1]:t.t}function ao(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function oo(t,e,r){return t.a.parent===e.parent?t.a:r}function so(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function lo(t,e){var r=t.x+e[3],n=t.y+e[0],i=t.dx-e[1]-e[3],a=t.dy-e[0]-e[2];return i<0&&(r+=i/2,i=0),a<0&&(n+=a/2,a=0),{x:r,y:n,dx:i,dy:a}}function co(t){var e=t[0],r=t[t.length-1];return e<r?[e,r]:[r,e]}function uo(t){return t.rangeExtent?t.rangeExtent():co(t.range())}function fo(t,e,r,n){var i=r(t[0],t[1]),a=n(e[0],e[1]);return function(t){return a(i(t))}}function ho(t,e){var r,n=0,i=t.length-1,a=t[n],o=t[i];return o<a&&(r=n,n=i,i=r,r=a,a=o,o=r),t[n]=e.floor(a),t[i]=e.ceil(o),t}function po(t){return t?{floor:function(e){return Math.floor(e/t)*t},ceil:function(e){return Math.ceil(e/t)*t}}:go}t.layout.histogram=function(){var e=!0,r=Number,n=Ya,i=Ga;function a(a,o){for(var s,l,c=[],u=a.map(r,this),f=n.call(this,u,o),h=i.call(this,f,u,o),p=(o=-1,u.length),d=h.length-1,g=e?1:1/p;++o<d;)(s=c[o]=[]).dx=h[o+1]-(s.x=h[o]),s.y=0;if(d>0)for(o=-1;++o<p;)(l=u[o])>=f[0]&&l<=f[1]&&((s=c[t.bisect(h,l,1,d)-1]).y+=g,s.push(a[o]));return c}return a.value=function(t){return arguments.length?(r=t,a):r},a.range=function(t){return arguments.length?(n=ve(t),a):n},a.bins=function(t){return arguments.length?(i=\\\"number\\\"==typeof t?function(e){return Wa(e,t)}:ve(t),a):i},a.frequency=function(t){return arguments.length?(e=!!t,a):e},a},t.layout.pack=function(){var e,r=t.layout.hierarchy().sort(Xa),n=0,i=[1,1];function a(t,a){var o=r.call(this,t,a),s=o[0],l=i[0],c=i[1],u=null==e?Math.sqrt:\\\"function\\\"==typeof e?e:function(){return e};if(s.x=s.y=0,Ca(s,function(t){t.r=+u(t.value)}),Ca(s,Ka),n){var f=n*(e?1:Math.max(2*s.r/l,2*s.r/c))/2;Ca(s,function(t){t.r+=f}),Ca(s,Ka),Ca(s,function(t){t.r-=f})}return function t(e,r,n,i){var a=e.children;e.x=r+=i*e.x;e.y=n+=i*e.y;e.r*=i;if(a)for(var o=-1,s=a.length;++o<s;)t(a[o],r,n,i)}(s,l/2,c/2,e?1:1/Math.max(2*s.r/l,2*s.r/c)),o}return a.size=function(t){return arguments.length?(i=t,a):i},a.radius=function(t){return arguments.length?(e=null==t||\\\"function\\\"==typeof t?t:+t,a):e},a.padding=function(t){return arguments.length?(n=+t,a):n},Sa(a,r)},t.layout.tree=function(){var e=t.layout.hierarchy().sort(null).value(null),r=ro,n=[1,1],i=null;function a(t,a){var c=e.call(this,t,a),u=c[0],f=function(t){var e,r={A:null,children:[t]},n=[r];for(;null!=(e=n.pop());)for(var i,a=e.children,o=0,s=a.length;o<s;++o)n.push((a[o]=i={_:a[o],parent:e,children:(i=a[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return r.children[0]}(u);if(Ca(f,o),f.parent.m=-f.z,Ea(f,s),i)Ea(u,l);else{var h=u,p=u,d=u;Ea(u,function(t){t.x<h.x&&(h=t),t.x>p.x&&(p=t),t.depth>d.depth&&(d=t)});var g=r(h,p)/2-h.x,v=n[0]/(p.x+r(p,h)/2+g),m=n[1]/(d.depth||1);Ea(u,function(t){t.x=(t.x+g)*v,t.y=t.depth*m})}return c}function o(t){var e=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,r=0,n=0,i=t.children,a=i.length;for(;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;i?(t.z=i.z+r(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+r(t._,i._));t.parent.A=function(t,e,n){if(e){for(var i,a=t,o=t,s=e,l=a.parent.children[0],c=a.m,u=o.m,f=s.m,h=l.m;s=io(s),a=no(a),s&&a;)l=no(l),(o=io(o)).a=t,(i=s.z+f-a.z-c+r(s._,a._))>0&&(ao(oo(s,t,n),t,i),c+=i,u+=i),f+=s.m,c+=a.m,h+=l.m,u+=o.m;s&&!io(o)&&(o.t=s,o.m+=f-u),a&&!no(l)&&(l.t=a,l.m+=c-h,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=n[0],t.y=t.depth*n[1]}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t)?l:null,a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null==(n=t)?null:l,a):i?n:null},Sa(a,e)},t.layout.cluster=function(){var e=t.layout.hierarchy().sort(null).value(null),r=ro,n=[1,1],i=!1;function a(a,o){var s,l=e.call(this,a,o),c=l[0],u=0;Ca(c,function(e){var n=e.children;n&&n.length?(e.x=function(t){return t.reduce(function(t,e){return t+e.x},0)/t.length}(n),e.y=function(e){return 1+t.max(e,function(t){return t.y})}(n)):(e.x=s?u+=r(e,s):0,e.y=0,s=e)});var f=function t(e){var r=e.children;return r&&r.length?t(r[0]):e}(c),h=function t(e){var r,n=e.children;return n&&(r=n.length)?t(n[r-1]):e}(c),p=f.x-r(f,h)/2,d=h.x+r(h,f)/2;return Ca(c,i?function(t){t.x=(t.x-c.x)*n[0],t.y=(c.y-t.y)*n[1]}:function(t){t.x=(t.x-p)/(d-p)*n[0],t.y=(1-(c.y?t.y/c.y:1))*n[1]}),l}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t),a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null!=(n=t),a):i?n:null},Sa(a,e)},t.layout.treemap=function(){var e,r=t.layout.hierarchy(),n=Math.round,i=[1,1],a=null,o=so,s=!1,l=\\\"squarify\\\",c=.5*(1+Math.sqrt(5));function u(t,e){for(var r,n,i=-1,a=t.length;++i<a;)n=(r=t[i]).value*(e<0?0:e),r.area=isNaN(n)||n<=0?0:n}function f(t){var e=t.children;if(e&&e.length){var r,n,i,a=o(t),s=[],c=e.slice(),h=1/0,g=\\\"slice\\\"===l?a.dx:\\\"dice\\\"===l?a.dy:\\\"slice-dice\\\"===l?1&t.depth?a.dy:a.dx:Math.min(a.dx,a.dy);for(u(c,a.dx*a.dy/t.value),s.area=0;(i=c.length)>0;)s.push(r=c[i-1]),s.area+=r.area,\\\"squarify\\\"!==l||(n=p(s,g))<=h?(c.pop(),h=n):(s.area-=s.pop().area,d(s,g,a,!1),g=Math.min(a.dx,a.dy),s.length=s.area=0,h=1/0);s.length&&(d(s,g,a,!0),s.length=s.area=0),e.forEach(f)}}function h(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(u(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(h)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++o<s;)(r=t[o].area)&&(r<a&&(a=r),r>i&&(i=r));return e*=e,(n*=n)?Math.max(e*i*c/n,n/(e*a*c)):1/0}function d(t,e,r,i){var a,o=-1,s=t.length,l=r.x,c=r.y,u=e?n(t.area/e):0;if(e==r.dx){for((i||u>r.dy)&&(u=r.dy);++o<s;)(a=t[o]).x=l,a.y=c,a.dy=u,l+=a.dx=Math.min(r.x+r.dx-l,u?n(a.area/u):0);a.z=!0,a.dx+=r.x+r.dx-l,r.y+=u,r.dy-=u}else{for((i||u>r.dx)&&(u=r.dx);++o<s;)(a=t[o]).x=l,a.y=c,a.dx=u,c+=a.dy=Math.min(r.y+r.dy-c,u?n(a.area/u):0);a.z=!1,a.dy+=r.y+r.dy-c,r.x+=u,r.dx-=u}}function g(t){var n=e||r(t),a=n[0];return a.x=a.y=0,a.value?(a.dx=i[0],a.dy=i[1]):a.dx=a.dy=0,e&&r.revalue(a),u([a],a.dx*a.dy/a.value),(e?h:f)(a),s&&(e=n),n}return g.size=function(t){return arguments.length?(i=t,g):i},g.padding=function(t){if(!arguments.length)return a;function e(e){return lo(e,t)}var r;return o=null==(a=t)?so:\\\"function\\\"==(r=typeof t)?function(e){var r=t.call(g,e,e.depth);return null==r?so(e):lo(e,\\\"number\\\"==typeof r?[r,r,r,r]:r)}:\\\"number\\\"===r?(t=[t,t,t,t],e):e,g},g.round=function(t){return arguments.length?(n=t?Math.round:Number,g):n!=Number},g.sticky=function(t){return arguments.length?(s=t,e=null,g):s},g.ratio=function(t){return arguments.length?(c=t,g):c},g.mode=function(t){return arguments.length?(l=t+\\\"\\\",g):l},Sa(g,r)},t.random={normal:function(t,e){var r=arguments.length;return r<2&&(e=1),r<1&&(t=0),function(){var r,n,i;do{i=(r=2*Math.random()-1)*r+(n=2*Math.random()-1)*n}while(!i||i>1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var e=t.random.normal.apply(t,arguments);return function(){return Math.exp(e())}},bates:function(e){var r=t.random.irwinHall(e);return function(){return r()/e}},irwinHall:function(t){return function(){for(var e=0,r=0;r<t;r++)e+=Math.random();return e}}},t.scale={};var go={floor:z,ceil:z};function vo(e,r,n,i){var a=[],o=[],s=0,l=Math.min(e.length,r.length)-1;for(e[l]<e[0]&&(e=e.slice().reverse(),r=r.slice().reverse());++s<=l;)a.push(n(e[s-1],e[s])),o.push(i(r[s-1],r[s]));return function(r){var n=t.bisect(e,r,1,l)-1;return o[n](a[n](r))}}function mo(e,r){return t.rebind(e,r,\\\"range\\\",\\\"rangeRound\\\",\\\"interpolate\\\",\\\"clamp\\\")}function yo(t,e){return ho(t,po(xo(t,e)[2])),ho(t,po(xo(t,e)[2])),t}function xo(t,e){null==e&&(e=10);var r=co(t),n=r[1]-r[0],i=Math.pow(10,Math.floor(Math.log(n/e)/Math.LN10)),a=e/n*i;return a<=.15?i*=10:a<=.35?i*=5:a<=.75&&(i*=2),r[0]=Math.ceil(r[0]/i)*i,r[1]=Math.floor(r[1]/i)*i+.5*i,r[2]=i,r}function bo(e,r){return t.range.apply(t,xo(e,r))}function _o(e,r,n){var i=xo(e,r);if(n){var a=Le.exec(n);if(a.shift(),\\\"s\\\"===a[8]){var o=t.formatPrefix(Math.max(y(i[0]),y(i[1])));return a[7]||(a[7]=\\\".\\\"+ko(o.scale(i[2]))),a[8]=\\\"f\\\",n=t.format(a.join(\\\"\\\")),function(t){return n(o.scale(t))+o.symbol}}a[7]||(a[7]=\\\".\\\"+function(t,e){var r=ko(e[2]);return t in wo?Math.abs(r-ko(Math.max(y(e[0]),y(e[1]))))+ +(\\\"e\\\"!==t):r-2*(\\\"%\\\"===t)}(a[8],i)),n=a.join(\\\"\\\")}else n=\\\",.\\\"+ko(i[2])+\\\"f\\\";return t.format(n)}t.scale.linear=function(){return function t(e,r,n,i){var a,o;function s(){var t=Math.min(e.length,r.length)>2?vo:fo,s=i?ma:va;return a=t(e,r,s,n),o=t(r,e,s,Zi),l}function l(t){return a(t)}l.invert=function(t){return o(t)};l.domain=function(t){return arguments.length?(e=t.map(Number),s()):e};l.range=function(t){return arguments.length?(r=t,s()):r};l.rangeRound=function(t){return l.range(t).interpolate(ca)};l.clamp=function(t){return arguments.length?(i=t,s()):i};l.interpolate=function(t){return arguments.length?(n=t,s()):n};l.ticks=function(t){return bo(e,t)};l.tickFormat=function(t,r){return _o(e,t,r)};l.nice=function(t){return yo(e,t),s()};l.copy=function(){return t(e,r,n,i)};return s()}([0,1],[0,1],Zi,!1)};var wo={s:1,g:1,p:1,r:1,e:1};function ko(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}t.scale.log=function(){return function e(r,n,i,a){function o(t){return(i?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(n)}function s(t){return i?Math.pow(n,t):-Math.pow(n,-t)}function l(t){return r(o(t))}l.invert=function(t){return s(r.invert(t))};l.domain=function(t){return arguments.length?(i=t[0]>=0,r.domain((a=t.map(Number)).map(o)),l):a};l.base=function(t){return arguments.length?(n=+t,r.domain(a.map(o)),l):n};l.nice=function(){var t=ho(a.map(o),i?Math:Ao);return r.domain(t),a=t.map(s),l};l.ticks=function(){var t=co(a),e=[],r=t[0],l=t[1],c=Math.floor(o(r)),u=Math.ceil(o(l)),f=n%1?2:n;if(isFinite(u-c)){if(i){for(;c<u;c++)for(var h=1;h<f;h++)e.push(s(c)*h);e.push(s(c))}else for(e.push(s(c));c++<u;)for(var h=f-1;h>0;h--)e.push(s(c)*h);for(c=0;e[c]<r;c++);for(u=e.length;e[u-1]>l;u--);e=e.slice(c,u)}return e};l.tickFormat=function(e,r){if(!arguments.length)return Mo;arguments.length<2?r=Mo:\\\"function\\\"!=typeof r&&(r=t.format(r));var i=Math.max(1,n*e/l.ticks().length);return function(t){var e=t/s(Math.round(o(t)));return e*n<n-.5&&(e*=n),e<=i?r(t):\\\"\\\"}};l.copy=function(){return e(r.copy(),n,i,a)};return mo(l,r)}(t.scale.linear().domain([0,1]),10,!0,[1,10])};var Mo=t.format(\\\".0e\\\"),Ao={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};function To(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}t.scale.pow=function(){return function t(e,r,n){var i=To(r),a=To(1/r);function o(t){return e(i(t))}o.invert=function(t){return a(e.invert(t))};o.domain=function(t){return arguments.length?(e.domain((n=t.map(Number)).map(i)),o):n};o.ticks=function(t){return bo(n,t)};o.tickFormat=function(t,e){return _o(n,t,e)};o.nice=function(t){return o.domain(yo(n,t))};o.exponent=function(t){return arguments.length?(i=To(r=t),a=To(1/r),e.domain(n.map(i)),o):r};o.copy=function(){return t(e.copy(),r,n)};return mo(o,e)}(t.scale.linear(),1,[0,1])},t.scale.sqrt=function(){return t.scale.pow().exponent(.5)},t.scale.ordinal=function(){return function e(r,n){var i,a,o;function s(t){return a[((i.get(t)||(\\\"range\\\"===n.t?i.set(t,r.push(t)):NaN))-1)%a.length]}function l(e,n){return t.range(r.length).map(function(t){return e+n*t})}s.domain=function(t){if(!arguments.length)return r;r=[],i=new b;for(var e,a=-1,o=t.length;++a<o;)i.has(e=t[a])||i.set(e,r.push(e));return s[n.t].apply(s,n.a)};s.range=function(t){return arguments.length?(a=t,o=0,n={t:\\\"range\\\",a:arguments},s):a};s.rangePoints=function(t,e){arguments.length<2&&(e=0);var i=t[0],c=t[1],u=r.length<2?(i=(i+c)/2,0):(c-i)/(r.length-1+e);return a=l(i+u*e/2,u),o=0,n={t:\\\"rangePoints\\\",a:arguments},s};s.rangeRoundPoints=function(t,e){arguments.length<2&&(e=0);var i=t[0],c=t[1],u=r.length<2?(i=c=Math.round((i+c)/2),0):(c-i)/(r.length-1+e)|0;return a=l(i+Math.round(u*e/2+(c-i-(r.length-1+e)*u)/2),u),o=0,n={t:\\\"rangeRoundPoints\\\",a:arguments},s};s.rangeBands=function(t,e,i){arguments.length<2&&(e=0),arguments.length<3&&(i=e);var c=t[1]<t[0],u=t[c-0],f=t[1-c],h=(f-u)/(r.length-e+2*i);return a=l(u+h*i,h),c&&a.reverse(),o=h*(1-e),n={t:\\\"rangeBands\\\",a:arguments},s};s.rangeRoundBands=function(t,e,i){arguments.length<2&&(e=0),arguments.length<3&&(i=e);var c=t[1]<t[0],u=t[c-0],f=t[1-c],h=Math.floor((f-u)/(r.length-e+2*i));return a=l(u+Math.round((f-u-(r.length-e)*h)/2),h),c&&a.reverse(),o=Math.round(h*(1-e)),n={t:\\\"rangeRoundBands\\\",a:arguments},s};s.rangeBand=function(){return o};s.rangeExtent=function(){return co(n.a[0])};s.copy=function(){return e(r,n)};return s.domain(r)}([],{t:\\\"range\\\",a:[[]]})},t.scale.category10=function(){return t.scale.ordinal().range(So)},t.scale.category20=function(){return t.scale.ordinal().range(Eo)},t.scale.category20b=function(){return t.scale.ordinal().range(Co)},t.scale.category20c=function(){return t.scale.ordinal().range(Lo)};var So=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(se),Eo=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(se),Co=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(se),Lo=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(se);function zo(){return 0}t.scale.quantile=function(){return function e(r,n){var i;function a(){var e=0,a=n.length;for(i=[];++e<a;)i[e-1]=t.quantile(r,e/a);return o}function o(e){if(!isNaN(e=+e))return n[t.bisect(i,e)]}o.domain=function(t){return arguments.length?(r=t.map(p).filter(d).sort(h),a()):r};o.range=function(t){return arguments.length?(n=t,a()):n};o.quantiles=function(){return i};o.invertExtent=function(t){return(t=n.indexOf(t))<0?[NaN,NaN]:[t>0?i[t-1]:r[0],t<i.length?i[t]:r[r.length-1]]};o.copy=function(){return e(r,n)};return a()}([],[])},t.scale.quantize=function(){return function t(e,r,n){var i,a;function o(t){return n[Math.max(0,Math.min(a,Math.floor(i*(t-e))))]}function s(){return i=n.length/(r-e),a=n.length-1,o}o.domain=function(t){return arguments.length?(e=+t[0],r=+t[t.length-1],s()):[e,r]};o.range=function(t){return arguments.length?(n=t,s()):n};o.invertExtent=function(t){return[t=(t=n.indexOf(t))<0?NaN:t/i+e,t+1/i]};o.copy=function(){return t(e,r,n)};return s()}(0,1,[0,1])},t.scale.threshold=function(){return function e(r,n){function i(e){if(e<=e)return n[t.bisect(r,e)]}i.domain=function(t){return arguments.length?(r=t,i):r};i.range=function(t){return arguments.length?(n=t,i):n};i.invertExtent=function(t){return t=n.indexOf(t),[r[t-1],r[t]]};i.copy=function(){return e(r,n)};return i}([.5],[0,1])},t.scale.identity=function(){return function t(e){function r(t){return+t}r.invert=r;r.domain=r.range=function(t){return arguments.length?(e=t.map(r),r):e};r.ticks=function(t){return bo(e,t)};r.tickFormat=function(t,r){return _o(e,t,r)};r.copy=function(){return t(e)};return r}([0,1])},t.svg={},t.svg.arc=function(){var t=Io,e=Po,r=zo,n=Oo,i=Do,a=Ro,o=Bo;function s(){var s=Math.max(0,+t.apply(this,arguments)),c=Math.max(0,+e.apply(this,arguments)),u=i.apply(this,arguments)-Et,f=a.apply(this,arguments)-Et,h=Math.abs(f-u),p=u>f?0:1;if(c<s&&(d=c,c=s,s=d),h>=St)return l(c,p)+(s?l(s,1-p):\\\"\\\")+\\\"Z\\\";var d,g,v,m,y,x,b,_,w,k,M,A,T=0,S=0,E=[];if((m=(+o.apply(this,arguments)||0)/2)&&(v=n===Oo?Math.sqrt(s*s+c*c):+n.apply(this,arguments),p||(S*=-1),c&&(S=Pt(v/c*Math.sin(m))),s&&(T=Pt(v/s*Math.sin(m)))),c){y=c*Math.cos(u+S),x=c*Math.sin(u+S),b=c*Math.cos(f-S),_=c*Math.sin(f-S);var C=Math.abs(f-u-2*S)<=At?0:1;if(S&&Fo(y,x,b,_)===p^C){var L=(u+f)/2;y=c*Math.cos(L),x=c*Math.sin(L),b=_=null}}else y=x=0;if(s){w=s*Math.cos(f-T),k=s*Math.sin(f-T),M=s*Math.cos(u+T),A=s*Math.sin(u+T);var z=Math.abs(u-f+2*T)<=At?0:1;if(T&&Fo(w,k,M,A)===1-p^z){var O=(u+f)/2;w=s*Math.cos(O),k=s*Math.sin(O),M=A=null}}else w=k=0;if(h>kt&&(d=Math.min(Math.abs(c-s)/2,+r.apply(this,arguments)))>.001){g=s<c^p?0:1;var I=d,P=d;if(h<At){var D=null==M?[w,k]:null==b?[y,x]:si([y,x],[M,A],[b,_],[w,k]),R=y-D[0],B=x-D[1],F=b-D[0],N=_-D[1],j=1/Math.sin(Math.acos((R*F+B*N)/(Math.sqrt(R*R+B*B)*Math.sqrt(F*F+N*N)))/2),V=Math.sqrt(D[0]*D[0]+D[1]*D[1]);P=Math.min(d,(s-V)/(j-1)),I=Math.min(d,(c-V)/(j+1))}if(null!=b){var U=No(null==M?[w,k]:[M,A],[y,x],c,I,p),q=No([b,_],[w,k],c,I,p);d===I?E.push(\\\"M\\\",U[0],\\\"A\\\",I,\\\",\\\",I,\\\" 0 0,\\\",g,\\\" \\\",U[1],\\\"A\\\",c,\\\",\\\",c,\\\" 0 \\\",1-p^Fo(U[1][0],U[1][1],q[1][0],q[1][1]),\\\",\\\",p,\\\" \\\",q[1],\\\"A\\\",I,\\\",\\\",I,\\\" 0 0,\\\",g,\\\" \\\",q[0]):E.push(\\\"M\\\",U[0],\\\"A\\\",I,\\\",\\\",I,\\\" 0 1,\\\",g,\\\" \\\",q[0])}else E.push(\\\"M\\\",y,\\\",\\\",x);if(null!=M){var H=No([y,x],[M,A],s,-P,p),G=No([w,k],null==b?[y,x]:[b,_],s,-P,p);d===P?E.push(\\\"L\\\",G[0],\\\"A\\\",P,\\\",\\\",P,\\\" 0 0,\\\",g,\\\" \\\",G[1],\\\"A\\\",s,\\\",\\\",s,\\\" 0 \\\",p^Fo(G[1][0],G[1][1],H[1][0],H[1][1]),\\\",\\\",1-p,\\\" \\\",H[1],\\\"A\\\",P,\\\",\\\",P,\\\" 0 0,\\\",g,\\\" \\\",H[0]):E.push(\\\"L\\\",G[0],\\\"A\\\",P,\\\",\\\",P,\\\" 0 0,\\\",g,\\\" \\\",H[0])}else E.push(\\\"L\\\",w,\\\",\\\",k)}else E.push(\\\"M\\\",y,\\\",\\\",x),null!=b&&E.push(\\\"A\\\",c,\\\",\\\",c,\\\" 0 \\\",C,\\\",\\\",p,\\\" \\\",b,\\\",\\\",_),E.push(\\\"L\\\",w,\\\",\\\",k),null!=M&&E.push(\\\"A\\\",s,\\\",\\\",s,\\\" 0 \\\",z,\\\",\\\",1-p,\\\" \\\",M,\\\",\\\",A);return E.push(\\\"Z\\\"),E.join(\\\"\\\")}function l(t,e){return\\\"M0,\\\"+t+\\\"A\\\"+t+\\\",\\\"+t+\\\" 0 1,\\\"+e+\\\" 0,\\\"+-t+\\\"A\\\"+t+\\\",\\\"+t+\\\" 0 1,\\\"+e+\\\" 0,\\\"+t}return s.innerRadius=function(e){return arguments.length?(t=ve(e),s):t},s.outerRadius=function(t){return arguments.length?(e=ve(t),s):e},s.cornerRadius=function(t){return arguments.length?(r=ve(t),s):r},s.padRadius=function(t){return arguments.length?(n=t==Oo?Oo:ve(t),s):n},s.startAngle=function(t){return arguments.length?(i=ve(t),s):i},s.endAngle=function(t){return arguments.length?(a=ve(t),s):a},s.padAngle=function(t){return arguments.length?(o=ve(t),s):o},s.centroid=function(){var r=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,n=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-Et;return[Math.cos(n)*r,Math.sin(n)*r]},s};var Oo=\\\"auto\\\";function Io(t){return t.innerRadius}function Po(t){return t.outerRadius}function Do(t){return t.startAngle}function Ro(t){return t.endAngle}function Bo(t){return t&&t.padAngle}function Fo(t,e,r,n){return(t-r)*e-(e-n)*t>0?0:1}function No(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,c=-s*a,u=t[0]+l,f=t[1]+c,h=e[0]+l,p=e[1]+c,d=(u+h)/2,g=(f+p)/2,v=h-u,m=p-f,y=v*v+m*m,x=r-n,b=u*p-h*f,_=(m<0?-1:1)*Math.sqrt(Math.max(0,x*x*y-b*b)),w=(b*m-v*_)/y,k=(-b*v-m*_)/y,M=(b*m+v*_)/y,A=(-b*v+m*_)/y,T=w-d,S=k-g,E=M-d,C=A-g;return T*T+S*S>E*E+C*C&&(w=M,k=A),[[w-l,k-c],[w*r/x,k*r/x]]}function jo(t){var e=ei,r=ri,n=Wr,i=Uo,a=i.key,o=.7;function s(a){var s,l=[],c=[],u=-1,f=a.length,h=ve(e),p=ve(r);function d(){l.push(\\\"M\\\",i(t(c),o))}for(;++u<f;)n.call(this,s=a[u],u)?c.push([+h.call(this,s,u),+p.call(this,s,u)]):c.length&&(d(),c=[]);return c.length&&d(),l.length?l.join(\\\"\\\"):null}return s.x=function(t){return arguments.length?(e=t,s):e},s.y=function(t){return arguments.length?(r=t,s):r},s.defined=function(t){return arguments.length?(n=t,s):n},s.interpolate=function(t){return arguments.length?(a=\\\"function\\\"==typeof t?i=t:(i=Vo.get(t)||Uo).key,s):a},s.tension=function(t){return arguments.length?(o=t,s):o},s}t.svg.line=function(){return jo(z)};var Vo=t.map({linear:Uo,\\\"linear-closed\\\":qo,step:function(t){var e=0,r=t.length,n=t[0],i=[n[0],\\\",\\\",n[1]];for(;++e<r;)i.push(\\\"H\\\",(n[0]+(n=t[e])[0])/2,\\\"V\\\",n[1]);r>1&&i.push(\\\"H\\\",n[0]);return i.join(\\\"\\\")},\\\"step-before\\\":Ho,\\\"step-after\\\":Go,basis:Xo,\\\"basis-open\\\":function(t){if(t.length<4)return Uo(t);var e,r=[],n=-1,i=t.length,a=[0],o=[0];for(;++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);r.push(Zo(Ko,a)+\\\",\\\"+Zo(Ko,o)),--n;for(;++n<i;)e=t[n],a.shift(),a.push(e[0]),o.shift(),o.push(e[1]),Qo(r,a,o);return r.join(\\\"\\\")},\\\"basis-closed\\\":function(t){var e,r,n=-1,i=t.length,a=i+4,o=[],s=[];for(;++n<4;)r=t[n%i],o.push(r[0]),s.push(r[1]);e=[Zo(Ko,o),\\\",\\\",Zo(Ko,s)],--n;for(;++n<a;)r=t[n%i],o.shift(),o.push(r[0]),s.shift(),s.push(r[1]),Qo(e,o,s);return e.join(\\\"\\\")},bundle:function(t,e){var r=t.length-1;if(r)for(var n,i,a=t[0][0],o=t[0][1],s=t[r][0]-a,l=t[r][1]-o,c=-1;++c<=r;)n=t[c],i=c/r,n[0]=e*n[0]+(1-e)*(a+i*s),n[1]=e*n[1]+(1-e)*(o+i*l);return Xo(t)},cardinal:function(t,e){return t.length<3?Uo(t):t[0]+Wo(t,Yo(t,e))},\\\"cardinal-open\\\":function(t,e){return t.length<4?Uo(t):t[1]+Wo(t.slice(1,-1),Yo(t,e))},\\\"cardinal-closed\\\":function(t,e){return t.length<3?qo(t):t[0]+Wo((t.push(t[0]),t),Yo([t[t.length-2]].concat(t,[t[1]]),e))},monotone:function(t){return t.length<3?Uo(t):t[0]+Wo(t,function(t){var e,r,n,i,a=[],o=function(t){var e=0,r=t.length-1,n=[],i=t[0],a=t[1],o=n[0]=ts(i,a);for(;++e<r;)n[e]=(o+(o=ts(i=a,a=t[e+1])))/2;return n[e]=o,n}(t),s=-1,l=t.length-1;for(;++s<l;)e=ts(t[s],t[s+1]),y(e)<kt?o[s]=o[s+1]=0:(r=o[s]/e,n=o[s+1]/e,(i=r*r+n*n)>9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n));s=-1;for(;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Uo(t){return t.length>1?t.join(\\\"L\\\"):t+\\\"Z\\\"}function qo(t){return t.join(\\\"L\\\")+\\\"Z\\\"}function Ho(t){for(var e=0,r=t.length,n=t[0],i=[n[0],\\\",\\\",n[1]];++e<r;)i.push(\\\"V\\\",(n=t[e])[1],\\\"H\\\",n[0]);return i.join(\\\"\\\")}function Go(t){for(var e=0,r=t.length,n=t[0],i=[n[0],\\\",\\\",n[1]];++e<r;)i.push(\\\"H\\\",(n=t[e])[0],\\\"V\\\",n[1]);return i.join(\\\"\\\")}function Wo(t,e){if(e.length<1||t.length!=e.length&&t.length!=e.length+2)return Uo(t);var r=t.length!=e.length,n=\\\"\\\",i=t[0],a=t[1],o=e[0],s=o,l=1;if(r&&(n+=\\\"Q\\\"+(a[0]-2*o[0]/3)+\\\",\\\"+(a[1]-2*o[1]/3)+\\\",\\\"+a[0]+\\\",\\\"+a[1],i=t[1],l=2),e.length>1){s=e[1],a=t[l],l++,n+=\\\"C\\\"+(i[0]+o[0])+\\\",\\\"+(i[1]+o[1])+\\\",\\\"+(a[0]-s[0])+\\\",\\\"+(a[1]-s[1])+\\\",\\\"+a[0]+\\\",\\\"+a[1];for(var c=2;c<e.length;c++,l++)a=t[l],s=e[c],n+=\\\"S\\\"+(a[0]-s[0])+\\\",\\\"+(a[1]-s[1])+\\\",\\\"+a[0]+\\\",\\\"+a[1]}if(r){var u=t[l];n+=\\\"Q\\\"+(a[0]+2*s[0]/3)+\\\",\\\"+(a[1]+2*s[1]/3)+\\\",\\\"+u[0]+\\\",\\\"+u[1]}return n}function Yo(t,e){for(var r,n=[],i=(1-e)/2,a=t[0],o=t[1],s=1,l=t.length;++s<l;)r=a,a=o,o=t[s],n.push([i*(o[0]-r[0]),i*(o[1]-r[1])]);return n}function Xo(t){if(t.length<3)return Uo(t);var e=1,r=t.length,n=t[0],i=n[0],a=n[1],o=[i,i,i,(n=t[1])[0]],s=[a,a,a,n[1]],l=[i,\\\",\\\",a,\\\"L\\\",Zo(Ko,o),\\\",\\\",Zo(Ko,s)];for(t.push(t[r-1]);++e<=r;)n=t[e],o.shift(),o.push(n[0]),s.shift(),s.push(n[1]),Qo(l,o,s);return t.pop(),l.push(\\\"L\\\",n),l.join(\\\"\\\")}function Zo(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}Vo.forEach(function(t,e){e.key=t,e.closed=/-closed$/.test(t)});var $o=[0,2/3,1/3,0],Jo=[0,1/3,2/3,0],Ko=[0,1/6,2/3,1/6];function Qo(t,e,r){t.push(\\\"C\\\",Zo($o,e),\\\",\\\",Zo($o,r),\\\",\\\",Zo(Jo,e),\\\",\\\",Zo(Jo,r),\\\",\\\",Zo(Ko,e),\\\",\\\",Zo(Ko,r))}function ts(t,e){return(e[1]-t[1])/(e[0]-t[0])}function es(t){for(var e,r,n,i=-1,a=t.length;++i<a;)r=(e=t[i])[0],n=e[1]-Et,e[0]=r*Math.cos(n),e[1]=r*Math.sin(n);return t}function rs(t){var e=ei,r=ei,n=0,i=ri,a=Wr,o=Uo,s=o.key,l=o,c=\\\"L\\\",u=.7;function f(s){var f,h,p,d=[],g=[],v=[],m=-1,y=s.length,x=ve(e),b=ve(n),_=e===r?function(){return h}:ve(r),w=n===i?function(){return p}:ve(i);function k(){d.push(\\\"M\\\",o(t(v),u),c,l(t(g.reverse()),u),\\\"Z\\\")}for(;++m<y;)a.call(this,f=s[m],m)?(g.push([h=+x.call(this,f,m),p=+b.call(this,f,m)]),v.push([+_.call(this,f,m),+w.call(this,f,m)])):g.length&&(k(),g=[],v=[]);return g.length&&k(),d.length?d.join(\\\"\\\"):null}return f.x=function(t){return arguments.length?(e=r=t,f):r},f.x0=function(t){return arguments.length?(e=t,f):e},f.x1=function(t){return arguments.length?(r=t,f):r},f.y=function(t){return arguments.length?(n=i=t,f):i},f.y0=function(t){return arguments.length?(n=t,f):n},f.y1=function(t){return arguments.length?(i=t,f):i},f.defined=function(t){return arguments.length?(a=t,f):a},f.interpolate=function(t){return arguments.length?(s=\\\"function\\\"==typeof t?o=t:(o=Vo.get(t)||Uo).key,l=o.reverse||o,c=o.closed?\\\"M\\\":\\\"L\\\",f):s},f.tension=function(t){return arguments.length?(u=t,f):u},f}function ns(t){return t.radius}function is(t){return[t.x,t.y]}function as(){return 64}function os(){return\\\"circle\\\"}function ss(t){var e=Math.sqrt(t/At);return\\\"M0,\\\"+e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,\\\"+-e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,\\\"+e+\\\"Z\\\"}t.svg.line.radial=function(){var t=jo(es);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},Ho.reverse=Go,Go.reverse=Ho,t.svg.area=function(){return rs(z)},t.svg.area.radial=function(){var t=rs(es);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},t.svg.chord=function(){var t=Vn,e=Un,r=ns,n=Do,i=Ro;function a(r,n){var i,a,c=o(this,t,r,n),u=o(this,e,r,n);return\\\"M\\\"+c.p0+s(c.r,c.p1,c.a1-c.a0)+(a=u,(i=c).a0==a.a0&&i.a1==a.a1?l(c.r,c.p1,c.r,c.p0):l(c.r,c.p1,u.r,u.p0)+s(u.r,u.p1,u.a1-u.a0)+l(u.r,u.p1,c.r,c.p0))+\\\"Z\\\"}function o(t,e,a,o){var s=e.call(t,a,o),l=r.call(t,s,o),c=n.call(t,s,o)-Et,u=i.call(t,s,o)-Et;return{r:l,a0:c,a1:u,p0:[l*Math.cos(c),l*Math.sin(c)],p1:[l*Math.cos(u),l*Math.sin(u)]}}function s(t,e,r){return\\\"A\\\"+t+\\\",\\\"+t+\\\" 0 \\\"+ +(r>At)+\\\",1 \\\"+e}function l(t,e,r,n){return\\\"Q 0,0 \\\"+n}return a.radius=function(t){return arguments.length?(r=ve(t),a):r},a.source=function(e){return arguments.length?(t=ve(e),a):t},a.target=function(t){return arguments.length?(e=ve(t),a):e},a.startAngle=function(t){return arguments.length?(n=ve(t),a):n},a.endAngle=function(t){return arguments.length?(i=ve(t),a):i},a},t.svg.diagonal=function(){var t=Vn,e=Un,r=is;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return\\\"M\\\"+(l=l.map(r))[0]+\\\"C\\\"+l[1]+\\\" \\\"+l[2]+\\\" \\\"+l[3]}return n.source=function(e){return arguments.length?(t=ve(e),n):t},n.target=function(t){return arguments.length?(e=ve(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},t.svg.diagonal.radial=function(){var e=t.svg.diagonal(),r=is,n=e.projection;return e.projection=function(t){return arguments.length?n(function(t){return function(){var e=t.apply(this,arguments),r=e[0],n=e[1]-Et;return[r*Math.cos(n),r*Math.sin(n)]}}(r=t)):r},e},t.svg.symbol=function(){var t=os,e=as;function r(r,n){return(ls.get(t.call(this,r,n))||ss)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=ve(e),r):t},r.size=function(t){return arguments.length?(e=ve(t),r):e},r};var ls=t.map({circle:ss,cross:function(t){var e=Math.sqrt(t/5)/2;return\\\"M\\\"+-3*e+\\\",\\\"+-e+\\\"H\\\"+-e+\\\"V\\\"+-3*e+\\\"H\\\"+e+\\\"V\\\"+-e+\\\"H\\\"+3*e+\\\"V\\\"+e+\\\"H\\\"+e+\\\"V\\\"+3*e+\\\"H\\\"+-e+\\\"V\\\"+e+\\\"H\\\"+-3*e+\\\"Z\\\"},diamond:function(t){var e=Math.sqrt(t/(2*us)),r=e*us;return\\\"M0,\\\"+-e+\\\"L\\\"+r+\\\",0 0,\\\"+e+\\\" \\\"+-r+\\\",0Z\\\"},square:function(t){var e=Math.sqrt(t)/2;return\\\"M\\\"+-e+\\\",\\\"+-e+\\\"L\\\"+e+\\\",\\\"+-e+\\\" \\\"+e+\\\",\\\"+e+\\\" \\\"+-e+\\\",\\\"+e+\\\"Z\\\"},\\\"triangle-down\\\":function(t){var e=Math.sqrt(t/cs),r=e*cs/2;return\\\"M0,\\\"+r+\\\"L\\\"+e+\\\",\\\"+-r+\\\" \\\"+-e+\\\",\\\"+-r+\\\"Z\\\"},\\\"triangle-up\\\":function(t){var e=Math.sqrt(t/cs),r=e*cs/2;return\\\"M0,\\\"+-r+\\\"L\\\"+e+\\\",\\\"+r+\\\" \\\"+-e+\\\",\\\"+r+\\\"Z\\\"}});t.svg.symbolTypes=ls.keys();var cs=Math.sqrt(3),us=Math.tan(30*Ct);Y.transition=function(t){for(var e,r,n=ds||++ms,i=bs(t),a=[],o=gs||{time:Date.now(),ease:ia,delay:0,duration:250},s=-1,l=this.length;++s<l;){a.push(e=[]);for(var c=this[s],u=-1,f=c.length;++u<f;)(r=c[u])&&_s(r,u,i,n,o),e.push(r)}return ps(a,i,n)},Y.interrupt=function(t){return this.each(null==t?fs:hs(bs(t)))};var fs=hs(bs());function hs(t){return function(){var e,r,n;(e=this[t])&&(n=e[r=e.active])&&(n.timer.c=null,n.timer.t=NaN,--e.count?delete e[r]:delete this[t],e.active+=.5,n.event&&n.event.interrupt.call(this,this.__data__,n.index))}}function ps(t,e,r){return U(t,vs),t.namespace=e,t.id=r,t}var ds,gs,vs=[],ms=0;function ys(t,e,r,n){var i=t.id,a=t.namespace;return ut(t,\\\"function\\\"==typeof r?function(t,o,s){t[a][i].tween.set(e,n(r.call(t,t.__data__,o,s)))}:(r=n(r),function(t){t[a][i].tween.set(e,r)}))}function xs(t){return null==t&&(t=\\\"\\\"),function(){this.textContent=t}}function bs(t){return null==t?\\\"__transition__\\\":\\\"__transition_\\\"+t+\\\"__\\\"}function _s(t,e,r,n,i){var a,o,s,l,c,u=t[r]||(t[r]={active:0,count:0}),f=u[n];function h(r){var i=u.active,h=u[i];for(var d in h&&(h.timer.c=null,h.timer.t=NaN,--u.count,delete u[i],h.event&&h.event.interrupt.call(t,t.__data__,h.index)),u)if(+d<n){var g=u[d];g.timer.c=null,g.timer.t=NaN,--u.count,delete u[d]}o.c=p,Me(function(){return o.c&&p(r||1)&&(o.c=null,o.t=NaN),1},0,a),u.active=n,f.event&&f.event.start.call(t,t.__data__,e),c=[],f.tween.forEach(function(r,n){(n=n.call(t,t.__data__,e))&&c.push(n)}),l=f.ease,s=f.duration}function p(i){for(var a=i/s,o=l(a),h=c.length;h>0;)c[--h].call(t,o);if(a>=1)return f.event&&f.event.end.call(t,t.__data__,e),--u.count?delete u[n]:delete t[r],1}f||(a=i.time,o=Me(function(t){var e=f.delay;if(o.t=e+a,e<=t)return h(t-e);o.c=h},0,a),f=u[n]={tween:new b,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++u.count)}vs.call=Y.call,vs.empty=Y.empty,vs.node=Y.node,vs.size=Y.size,t.transition=function(e,r){return e&&e.transition?ds?e.transition(r):e:t.selection().transition(e)},t.transition.prototype=vs,vs.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=X(t);for(var s=-1,l=this.length;++s<l;){o.push(e=[]);for(var c=this[s],u=-1,f=c.length;++u<f;)(n=c[u])&&(r=t.call(n,n.__data__,u,s))?(\\\"__data__\\\"in n&&(r.__data__=n.__data__),_s(r,u,a,i,n[a][i]),e.push(r)):e.push(null)}return ps(o,a,i)},vs.selectAll=function(t){var e,r,n,i,a,o=this.id,s=this.namespace,l=[];t=Z(t);for(var c=-1,u=this.length;++c<u;)for(var f=this[c],h=-1,p=f.length;++h<p;)if(n=f[h]){a=n[s][o],r=t.call(n,n.__data__,h,c),l.push(e=[]);for(var d=-1,g=r.length;++d<g;)(i=r[d])&&_s(i,d,s,o,a),e.push(i)}return ps(l,s,o)},vs.filter=function(t){var e,r,n=[];\\\"function\\\"!=typeof t&&(t=ct(t));for(var i=0,a=this.length;i<a;i++){n.push(e=[]);for(var o,s=0,l=(o=this[i]).length;s<l;s++)(r=o[s])&&t.call(r,r.__data__,s,i)&&e.push(r)}return ps(n,this.namespace,this.id)},vs.tween=function(t,e){var r=this.id,n=this.namespace;return arguments.length<2?this.node()[n][r].tween.get(t):ut(this,null==e?function(e){e[n][r].tween.remove(t)}:function(i){i[n][r].tween.set(t,e)})},vs.attr=function(e,r){if(arguments.length<2){for(r in e)this.attr(r,e[r]);return this}var n=\\\"transform\\\"==e?ga:Zi,i=t.ns.qualify(e);function a(){this.removeAttribute(i)}function o(){this.removeAttributeNS(i.space,i.local)}return ys(this,\\\"attr.\\\"+e,r,i.local?function(t){return null==t?o:(t+=\\\"\\\",function(){var e,r=this.getAttributeNS(i.space,i.local);return r!==t&&(e=n(r,t),function(t){this.setAttributeNS(i.space,i.local,e(t))})})}:function(t){return null==t?a:(t+=\\\"\\\",function(){var e,r=this.getAttribute(i);return r!==t&&(e=n(r,t),function(t){this.setAttribute(i,e(t))})})})},vs.attrTween=function(e,r){var n=t.ns.qualify(e);return this.tween(\\\"attr.\\\"+e,n.local?function(t,e){var i=r.call(this,t,e,this.getAttributeNS(n.space,n.local));return i&&function(t){this.setAttributeNS(n.space,n.local,i(t))}}:function(t,e){var i=r.call(this,t,e,this.getAttribute(n));return i&&function(t){this.setAttribute(n,i(t))}})},vs.style=function(t,e,r){var n=arguments.length;if(n<3){if(\\\"string\\\"!=typeof t){for(r in n<2&&(e=\\\"\\\"),t)this.style(r,t[r],e);return this}r=\\\"\\\"}function i(){this.style.removeProperty(t)}return ys(this,\\\"style.\\\"+t,e,function(e){return null==e?i:(e+=\\\"\\\",function(){var n,i=o(this).getComputedStyle(this,null).getPropertyValue(t);return i!==e&&(n=Zi(i,e),function(e){this.style.setProperty(t,n(e),r)})})})},vs.styleTween=function(t,e,r){return arguments.length<3&&(r=\\\"\\\"),this.tween(\\\"style.\\\"+t,function(n,i){var a=e.call(this,n,i,o(this).getComputedStyle(this,null).getPropertyValue(t));return a&&function(e){this.style.setProperty(t,a(e),r)}})},vs.text=function(t){return ys(this,\\\"text\\\",t,xs)},vs.remove=function(){var t=this.namespace;return this.each(\\\"end.transition\\\",function(){var e;this[t].count<2&&(e=this.parentNode)&&e.removeChild(this)})},vs.ease=function(e){var r=this.id,n=this.namespace;return arguments.length<1?this.node()[n][r].ease:(\\\"function\\\"!=typeof e&&(e=t.ease.apply(t,arguments)),ut(this,function(t){t[n][r].ease=e}))},vs.delay=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].delay:ut(this,\\\"function\\\"==typeof t?function(n,i,a){n[r][e].delay=+t.call(n,n.__data__,i,a)}:(t=+t,function(n){n[r][e].delay=t}))},vs.duration=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].duration:ut(this,\\\"function\\\"==typeof t?function(n,i,a){n[r][e].duration=Math.max(1,t.call(n,n.__data__,i,a))}:(t=Math.max(1,t),function(n){n[r][e].duration=t}))},vs.each=function(e,r){var n=this.id,i=this.namespace;if(arguments.length<2){var a=gs,o=ds;try{ds=n,ut(this,function(t,r,a){gs=t[i][n],e.call(t,t.__data__,r,a)})}finally{gs=a,ds=o}}else ut(this,function(a){var o=a[i][n];(o.event||(o.event=t.dispatch(\\\"start\\\",\\\"end\\\",\\\"interrupt\\\"))).on(e,r)});return this},vs.transition=function(){for(var t,e,r,n=this.id,i=++ms,a=this.namespace,o=[],s=0,l=this.length;s<l;s++){o.push(t=[]);for(var c,u=0,f=(c=this[s]).length;u<f;u++)(e=c[u])&&_s(e,u,a,i,{time:(r=e[a][n]).time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration}),t.push(e)}return ps(o,a,i)},t.svg.axis=function(){var e,r=t.scale.linear(),i=ws,a=6,o=6,s=3,l=[10],c=null;function u(n){n.each(function(){var n,u=t.select(this),f=this.__chart__||r,h=this.__chart__=r.copy(),p=null==c?h.ticks?h.ticks.apply(h,l):h.domain():c,d=null==e?h.tickFormat?h.tickFormat.apply(h,l):z:e,g=u.selectAll(\\\".tick\\\").data(p,h),v=g.enter().insert(\\\"g\\\",\\\".domain\\\").attr(\\\"class\\\",\\\"tick\\\").style(\\\"opacity\\\",kt),m=t.transition(g.exit()).style(\\\"opacity\\\",kt).remove(),y=t.transition(g.order()).style(\\\"opacity\\\",1),x=Math.max(a,0)+s,b=uo(h),_=u.selectAll(\\\".domain\\\").data([0]),w=(_.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"domain\\\"),t.transition(_));v.append(\\\"line\\\"),v.append(\\\"text\\\");var k,M,A,T,S=v.select(\\\"line\\\"),E=y.select(\\\"line\\\"),C=g.select(\\\"text\\\").text(d),L=v.select(\\\"text\\\"),O=y.select(\\\"text\\\"),I=\\\"top\\\"===i||\\\"left\\\"===i?-1:1;if(\\\"bottom\\\"===i||\\\"top\\\"===i?(n=Ms,k=\\\"x\\\",A=\\\"y\\\",M=\\\"x2\\\",T=\\\"y2\\\",C.attr(\\\"dy\\\",I<0?\\\"0em\\\":\\\".71em\\\").style(\\\"text-anchor\\\",\\\"middle\\\"),w.attr(\\\"d\\\",\\\"M\\\"+b[0]+\\\",\\\"+I*o+\\\"V0H\\\"+b[1]+\\\"V\\\"+I*o)):(n=As,k=\\\"y\\\",A=\\\"x\\\",M=\\\"y2\\\",T=\\\"x2\\\",C.attr(\\\"dy\\\",\\\".32em\\\").style(\\\"text-anchor\\\",I<0?\\\"end\\\":\\\"start\\\"),w.attr(\\\"d\\\",\\\"M\\\"+I*o+\\\",\\\"+b[0]+\\\"H0V\\\"+b[1]+\\\"H\\\"+I*o)),S.attr(T,I*a),L.attr(A,I*x),E.attr(M,0).attr(T,I*a),O.attr(k,0).attr(A,I*x),h.rangeBand){var P=h,D=P.rangeBand()/2;f=h=function(t){return P(t)+D}}else f.rangeBand?f=h:m.call(n,h,f);v.call(n,f,h),y.call(n,h,h)})}return u.scale=function(t){return arguments.length?(r=t,u):r},u.orient=function(t){return arguments.length?(i=t in ks?t+\\\"\\\":ws,u):i},u.ticks=function(){return arguments.length?(l=n(arguments),u):l},u.tickValues=function(t){return arguments.length?(c=t,u):c},u.tickFormat=function(t){return arguments.length?(e=t,u):e},u.tickSize=function(t){var e=arguments.length;return e?(a=+t,o=+arguments[e-1],u):a},u.innerTickSize=function(t){return arguments.length?(a=+t,u):a},u.outerTickSize=function(t){return arguments.length?(o=+t,u):o},u.tickPadding=function(t){return arguments.length?(s=+t,u):s},u.tickSubdivide=function(){return arguments.length&&u},u};var ws=\\\"bottom\\\",ks={top:1,right:1,bottom:1,left:1};function Ms(t,e,r){t.attr(\\\"transform\\\",function(t){var n=e(t);return\\\"translate(\\\"+(isFinite(n)?n:r(t))+\\\",0)\\\"})}function As(t,e,r){t.attr(\\\"transform\\\",function(t){var n=e(t);return\\\"translate(0,\\\"+(isFinite(n)?n:r(t))+\\\")\\\"})}t.svg.brush=function(){var e,r,n=j(h,\\\"brushstart\\\",\\\"brush\\\",\\\"brushend\\\"),i=null,a=null,s=[0,0],l=[0,0],c=!0,u=!0,f=Ss[0];function h(e){e.each(function(){var e=t.select(this).style(\\\"pointer-events\\\",\\\"all\\\").style(\\\"-webkit-tap-highlight-color\\\",\\\"rgba(0,0,0,0)\\\").on(\\\"mousedown.brush\\\",v).on(\\\"touchstart.brush\\\",v),r=e.selectAll(\\\".background\\\").data([0]);r.enter().append(\\\"rect\\\").attr(\\\"class\\\",\\\"background\\\").style(\\\"visibility\\\",\\\"hidden\\\").style(\\\"cursor\\\",\\\"crosshair\\\"),e.selectAll(\\\".extent\\\").data([0]).enter().append(\\\"rect\\\").attr(\\\"class\\\",\\\"extent\\\").style(\\\"cursor\\\",\\\"move\\\");var n=e.selectAll(\\\".resize\\\").data(f,z);n.exit().remove(),n.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"resize \\\"+t}).style(\\\"cursor\\\",function(t){return Ts[t]}).append(\\\"rect\\\").attr(\\\"x\\\",function(t){return/[ew]$/.test(t)?-3:null}).attr(\\\"y\\\",function(t){return/^[ns]/.test(t)?-3:null}).attr(\\\"width\\\",6).attr(\\\"height\\\",6).style(\\\"visibility\\\",\\\"hidden\\\"),n.style(\\\"display\\\",h.empty()?\\\"none\\\":null);var o,s=t.transition(e),l=t.transition(r);i&&(o=uo(i),l.attr(\\\"x\\\",o[0]).attr(\\\"width\\\",o[1]-o[0]),d(s)),a&&(o=uo(a),l.attr(\\\"y\\\",o[0]).attr(\\\"height\\\",o[1]-o[0]),g(s)),p(s)})}function p(t){t.selectAll(\\\".resize\\\").attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+s[+/e$/.test(t)]+\\\",\\\"+l[+/^s/.test(t)]+\\\")\\\"})}function d(t){t.select(\\\".extent\\\").attr(\\\"x\\\",s[0]),t.selectAll(\\\".extent,.n>rect,.s>rect\\\").attr(\\\"width\\\",s[1]-s[0])}function g(t){t.select(\\\".extent\\\").attr(\\\"y\\\",l[0]),t.selectAll(\\\".extent,.e>rect,.w>rect\\\").attr(\\\"height\\\",l[1]-l[0])}function v(){var f,v,m=this,y=t.select(t.event.target),x=n.of(m,arguments),b=t.select(m),_=y.datum(),w=!/^(n|s)$/.test(_)&&i,k=!/^(e|w)$/.test(_)&&a,M=y.classed(\\\"extent\\\"),A=xt(m),T=t.mouse(m),S=t.select(o(m)).on(\\\"keydown.brush\\\",function(){32==t.event.keyCode&&(M||(f=null,T[0]-=s[1],T[1]-=l[1],M=2),F())}).on(\\\"keyup.brush\\\",function(){32==t.event.keyCode&&2==M&&(T[0]+=s[1],T[1]+=l[1],M=0,F())});if(t.event.changedTouches?S.on(\\\"touchmove.brush\\\",L).on(\\\"touchend.brush\\\",O):S.on(\\\"mousemove.brush\\\",L).on(\\\"mouseup.brush\\\",O),b.interrupt().selectAll(\\\"*\\\").interrupt(),M)T[0]=s[0]-T[0],T[1]=l[0]-T[1];else if(_){var E=+/w$/.test(_),C=+/^n/.test(_);v=[s[1-E]-T[0],l[1-C]-T[1]],T[0]=s[E],T[1]=l[C]}else t.event.altKey&&(f=T.slice());function L(){var e=t.mouse(m),r=!1;v&&(e[0]+=v[0],e[1]+=v[1]),M||(t.event.altKey?(f||(f=[(s[0]+s[1])/2,(l[0]+l[1])/2]),T[0]=s[+(e[0]<f[0])],T[1]=l[+(e[1]<f[1])]):f=null),w&&z(e,i,0)&&(d(b),r=!0),k&&z(e,a,1)&&(g(b),r=!0),r&&(p(b),x({type:\\\"brush\\\",mode:M?\\\"move\\\":\\\"resize\\\"}))}function z(t,n,i){var a,o,h=uo(n),p=h[0],d=h[1],g=T[i],v=i?l:s,m=v[1]-v[0];if(M&&(p-=g,d-=m+g),a=(i?u:c)?Math.max(p,Math.min(d,t[i])):t[i],M?o=(a+=g)+m:(f&&(g=Math.max(p,Math.min(d,2*f[i]-a))),g<a?(o=a,a=g):o=g),v[0]!=a||v[1]!=o)return i?r=null:e=null,v[0]=a,v[1]=o,!0}function O(){L(),b.style(\\\"pointer-events\\\",\\\"all\\\").selectAll(\\\".resize\\\").style(\\\"display\\\",h.empty()?\\\"none\\\":null),t.select(\\\"body\\\").style(\\\"cursor\\\",null),S.on(\\\"mousemove.brush\\\",null).on(\\\"mouseup.brush\\\",null).on(\\\"touchmove.brush\\\",null).on(\\\"touchend.brush\\\",null).on(\\\"keydown.brush\\\",null).on(\\\"keyup.brush\\\",null),A(),x({type:\\\"brushend\\\"})}b.style(\\\"pointer-events\\\",\\\"none\\\").selectAll(\\\".resize\\\").style(\\\"display\\\",null),t.select(\\\"body\\\").style(\\\"cursor\\\",y.style(\\\"cursor\\\")),x({type:\\\"brushstart\\\"}),L()}return h.event=function(i){i.each(function(){var i=n.of(this,arguments),a={x:s,y:l,i:e,j:r},o=this.__chart__||a;this.__chart__=a,ds?t.select(this).transition().each(\\\"start.brush\\\",function(){e=o.i,r=o.j,s=o.x,l=o.y,i({type:\\\"brushstart\\\"})}).tween(\\\"brush:brush\\\",function(){var t=$i(s,a.x),n=$i(l,a.y);return e=r=null,function(e){s=a.x=t(e),l=a.y=n(e),i({type:\\\"brush\\\",mode:\\\"resize\\\"})}}).each(\\\"end.brush\\\",function(){e=a.i,r=a.j,i({type:\\\"brush\\\",mode:\\\"resize\\\"}),i({type:\\\"brushend\\\"})}):(i({type:\\\"brushstart\\\"}),i({type:\\\"brush\\\",mode:\\\"resize\\\"}),i({type:\\\"brushend\\\"}))})},h.x=function(t){return arguments.length?(f=Ss[!(i=t)<<1|!a],h):i},h.y=function(t){return arguments.length?(f=Ss[!i<<1|!(a=t)],h):a},h.clamp=function(t){return arguments.length?(i&&a?(c=!!t[0],u=!!t[1]):i?c=!!t:a&&(u=!!t),h):i&&a?[c,u]:i?c:a?u:null},h.extent=function(t){var n,o,c,u,f;return arguments.length?(i&&(n=t[0],o=t[1],a&&(n=n[0],o=o[0]),e=[n,o],i.invert&&(n=i(n),o=i(o)),o<n&&(f=n,n=o,o=f),n==s[0]&&o==s[1]||(s=[n,o])),a&&(c=t[0],u=t[1],i&&(c=c[1],u=u[1]),r=[c,u],a.invert&&(c=a(c),u=a(u)),u<c&&(f=c,c=u,u=f),c==l[0]&&u==l[1]||(l=[c,u])),h):(i&&(e?(n=e[0],o=e[1]):(n=s[0],o=s[1],i.invert&&(n=i.invert(n),o=i.invert(o)),o<n&&(f=n,n=o,o=f))),a&&(r?(c=r[0],u=r[1]):(c=l[0],u=l[1],a.invert&&(c=a.invert(c),u=a.invert(u)),u<c&&(f=c,c=u,u=f))),i&&a?[[n,c],[o,u]]:i?[n,o]:a&&[c,u])},h.clear=function(){return h.empty()||(s=[0,0],l=[0,0],e=r=null),h},h.empty=function(){return!!i&&s[0]==s[1]||!!a&&l[0]==l[1]},t.rebind(h,n,\\\"on\\\")};var Ts={n:\\\"ns-resize\\\",e:\\\"ew-resize\\\",s:\\\"ns-resize\\\",w:\\\"ew-resize\\\",nw:\\\"nwse-resize\\\",ne:\\\"nesw-resize\\\",se:\\\"nwse-resize\\\",sw:\\\"nesw-resize\\\"},Ss=[[\\\"n\\\",\\\"e\\\",\\\"s\\\",\\\"w\\\",\\\"nw\\\",\\\"ne\\\",\\\"se\\\",\\\"sw\\\"],[\\\"e\\\",\\\"w\\\"],[\\\"n\\\",\\\"s\\\"],[]],Es=Ie.format=sr.timeFormat,Cs=Es.utc,Ls=Cs(\\\"%Y-%m-%dT%H:%M:%S.%LZ\\\");function zs(t){return t.toISOString()}function Os(e,r,n){function i(t){return e(t)}function a(e,n){var i=(e[1]-e[0])/n,a=t.bisect(Ps,i);return a==Ps.length?[r.year,xo(e.map(function(t){return t/31536e6}),n)[2]]:a?r[i/Ps[a-1]<Ps[a]/i?a-1:a]:[Bs,xo(e,n)[2]]}return i.invert=function(t){return Is(e.invert(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain().map(Is)},i.nice=function(t,e){var r=i.domain(),n=co(r),o=null==t?a(n,10):\\\"number\\\"==typeof t&&a(n,t);function s(r){return!isNaN(r)&&!t.range(r,Is(+r+1),e).length}return o&&(t=o[0],e=o[1]),i.domain(ho(r,e>1?{floor:function(e){for(;s(e=t.floor(e));)e=Is(e-1);return e},ceil:function(e){for(;s(e=t.ceil(e));)e=Is(+e+1);return e}}:t))},i.ticks=function(t,e){var r=co(i.domain()),n=null==t?a(r,10):\\\"number\\\"==typeof t?a(r,t):!t.range&&[{range:t},e];return n&&(t=n[0],e=n[1]),t.range(r[0],Is(+r[1]+1),e<1?1:e)},i.tickFormat=function(){return n},i.copy=function(){return Os(e.copy(),r,n)},mo(i,e)}function Is(t){return new Date(t)}Es.iso=Date.prototype.toISOString&&+new Date(\\\"2000-01-01T00:00:00.000Z\\\")?zs:Ls,zs.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},zs.toString=Ls.toString,Ie.second=Be(function(t){return new Pe(1e3*Math.floor(t/1e3))},function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))},function(t){return t.getSeconds()}),Ie.seconds=Ie.second.range,Ie.seconds.utc=Ie.second.utc.range,Ie.minute=Be(function(t){return new Pe(6e4*Math.floor(t/6e4))},function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))},function(t){return t.getMinutes()}),Ie.minutes=Ie.minute.range,Ie.minutes.utc=Ie.minute.utc.range,Ie.hour=Be(function(t){var e=t.getTimezoneOffset()/60;return new Pe(36e5*(Math.floor(t/36e5-e)+e))},function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))},function(t){return t.getHours()}),Ie.hours=Ie.hour.range,Ie.hours.utc=Ie.hour.utc.range,Ie.month=Be(function(t){return(t=Ie.day(t)).setDate(1),t},function(t,e){t.setMonth(t.getMonth()+e)},function(t){return t.getMonth()}),Ie.months=Ie.month.range,Ie.months.utc=Ie.month.utc.range;var Ps=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ds=[[Ie.second,1],[Ie.second,5],[Ie.second,15],[Ie.second,30],[Ie.minute,1],[Ie.minute,5],[Ie.minute,15],[Ie.minute,30],[Ie.hour,1],[Ie.hour,3],[Ie.hour,6],[Ie.hour,12],[Ie.day,1],[Ie.day,2],[Ie.week,1],[Ie.month,1],[Ie.month,3],[Ie.year,1]],Rs=Es.multi([[\\\".%L\\\",function(t){return t.getMilliseconds()}],[\\\":%S\\\",function(t){return t.getSeconds()}],[\\\"%I:%M\\\",function(t){return t.getMinutes()}],[\\\"%I %p\\\",function(t){return t.getHours()}],[\\\"%a %d\\\",function(t){return t.getDay()&&1!=t.getDate()}],[\\\"%b %d\\\",function(t){return 1!=t.getDate()}],[\\\"%B\\\",function(t){return t.getMonth()}],[\\\"%Y\\\",Wr]]),Bs={range:function(e,r,n){return t.range(Math.ceil(e/n)*n,+r,n).map(Is)},floor:z,ceil:z};Ds.year=Ie.year,Ie.scale=function(){return Os(t.scale.linear(),Ds,Rs)};var Fs=Ds.map(function(t){return[t[0].utc,t[1]]}),Ns=Cs.multi([[\\\".%L\\\",function(t){return t.getUTCMilliseconds()}],[\\\":%S\\\",function(t){return t.getUTCSeconds()}],[\\\"%I:%M\\\",function(t){return t.getUTCMinutes()}],[\\\"%I %p\\\",function(t){return t.getUTCHours()}],[\\\"%a %d\\\",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],[\\\"%b %d\\\",function(t){return 1!=t.getUTCDate()}],[\\\"%B\\\",function(t){return t.getUTCMonth()}],[\\\"%Y\\\",Wr]]);function js(t){return JSON.parse(t.responseText)}function Vs(t){var e=i.createRange();return e.selectNode(i.body),e.createContextualFragment(t.responseText)}Fs.year=Ie.year.utc,Ie.scale.utc=function(){return Os(t.scale.linear(),Fs,Ns)},t.text=me(function(t){return t.responseText}),t.json=function(t,e){return ye(t,\\\"application/json\\\",js,e)},t.html=function(t,e){return ye(t,\\\"text/html\\\",Vs,e)},t.xml=me(function(t){return t.responseXML}),\\\"object\\\"==typeof e&&e.exports?e.exports=t:this.d3=t}()},{}],149:[function(t,e,r){e.exports=function(){for(var t=0;t<arguments.length;t++)if(void 0!==arguments[t])return arguments[t]}},{}],150:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"incremental-convex-hull\\\"),i=t(\\\"uniq\\\");function a(t,e){this.point=t,this.index=e}function o(t,e){for(var r=t.point,n=e.point,i=r.length,a=0;a<i;++a){var o=n[a]-r[a];if(o)return o}return 0}e.exports=function(t,e){var r=t.length;if(0===r)return[];var s=t[0].length;if(s<1)return[];if(1===s)return function(t,e,r){if(1===t)return r?[[-1,0]]:[];var n=e.map(function(t,e){return[t[0],e]});n.sort(function(t,e){return t[0]-e[0]});for(var i=new Array(t-1),a=1;a<t;++a){var o=n[a-1],s=n[a];i[a-1]=[o[1],s[1]]}r&&i.push([-1,i[0][1]],[i[t-1][1],-1]);return i}(r,t,e);for(var l=new Array(r),c=1,u=0;u<r;++u){for(var f=t[u],h=new Array(s+1),p=0,d=0;d<s;++d){var g=f[d];h[d]=g,p+=g*g}h[s]=p,l[u]=new a(h,u),c=Math.max(p,c)}i(l,o),r=l.length;for(var v=new Array(r+s+1),m=new Array(r+s+1),y=(s+1)*(s+1)*c,x=new Array(s+1),u=0;u<=s;++u)x[u]=0;x[s]=y,v[0]=x.slice(),m[0]=-1;for(var u=0;u<=s;++u){var h=x.slice();h[u]=1,v[u+1]=h,m[u+1]=-1}for(var u=0;u<r;++u){var b=l[u];v[u+s+1]=b.point,m[u+s+1]=b.index}var _=n(v,!1);_=e?_.filter(function(t){for(var e=0,r=0;r<=s;++r){var n=m[t[r]];if(n<0&&++e>=2)return!1;t[r]=n}return!0}):_.filter(function(t){for(var e=0;e<=s;++e){var r=m[t[e]];if(r<0)return!1;t[e]=r}return!0});if(1&s)for(var u=0;u<_.length;++u){var b=_[u],h=b[0];b[0]=b[1],b[1]=h}return _}},{\\\"incremental-convex-hull\\\":396,uniq:524}],151:[function(t,e,r){\\\"use strict\\\";e.exports=a;var n=(a.canvas=document.createElement(\\\"canvas\\\")).getContext(\\\"2d\\\"),i=o([32,126]);function a(t,e){Array.isArray(t)&&(t=t.join(\\\", \\\"));var r,a={},s=16,l=.05;e&&(2===e.length&&\\\"number\\\"==typeof e[0]?r=o(e):Array.isArray(e)?r=e:(e.o?r=o(e.o):e.pairs&&(r=e.pairs),e.fontSize&&(s=e.fontSize),null!=e.threshold&&(l=e.threshold))),r||(r=i),n.font=s+\\\"px \\\"+t;for(var c=0;c<r.length;c++){var u=r[c],f=n.measureText(u[0]).width+n.measureText(u[1]).width,h=n.measureText(u).width;if(Math.abs(f-h)>s*l){var p=(h-f)/s;a[u]=1e3*p}}return a}function o(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),i=t[0];i<t[1];i++){var a=n+String.fromCharCode(i);e.push(a)}return e}a.createPairs=o,a.ascii=i},{}],152:[function(t,e,r){(function(t){var r=!1;if(\\\"undefined\\\"!=typeof Float64Array){var n=new Float64Array(1),i=new Uint32Array(n.buffer);if(n[0]=1,r=!0,1072693248===i[1]){e.exports=function(t){return n[0]=t,[i[0],i[1]]},e.exports.pack=function(t,e){return i[0]=t,i[1]=e,n[0]},e.exports.lo=function(t){return n[0]=t,i[0]},e.exports.hi=function(t){return n[0]=t,i[1]}}else if(1072693248===i[0]){e.exports=function(t){return n[0]=t,[i[1],i[0]]},e.exports.pack=function(t,e){return i[1]=t,i[0]=e,n[0]},e.exports.lo=function(t){return n[0]=t,i[1]},e.exports.hi=function(t){return n[0]=t,i[0]}}else r=!1}if(!r){var a=new t(8);e.exports=function(t){return a.writeDoubleLE(t,0,!0),[a.readUInt32LE(0,!0),a.readUInt32LE(4,!0)]},e.exports.pack=function(t,e){return a.writeUInt32LE(t,0,!0),a.writeUInt32LE(e,4,!0),a.readDoubleLE(0,!0)},e.exports.lo=function(t){return a.writeDoubleLE(t,0,!0),a.readUInt32LE(0,!0)},e.exports.hi=function(t){return a.writeDoubleLE(t,0,!0),a.readUInt32LE(4,!0)}}e.exports.sign=function(t){return e.exports.hi(t)>>>31},e.exports.exponent=function(t){return(e.exports.hi(t)<<1>>>21)-1023},e.exports.fraction=function(t){var r=e.exports.lo(t),n=e.exports.hi(t),i=1048575&n;return 2146435072&n&&(i+=1<<20),[r,i]},e.exports.denormalized=function(t){return!(2146435072&e.exports.hi(t))}}).call(this,t(\\\"buffer\\\").Buffer)},{buffer:93}],153:[function(t,e,r){var n=t(\\\"abs-svg-path\\\"),i=t(\\\"normalize-svg-path\\\"),a={M:\\\"moveTo\\\",C:\\\"bezierCurveTo\\\"};e.exports=function(t,e){t.beginPath(),i(n(e)).forEach(function(e){var r=e[0],n=e.slice(1);t[a[r]].apply(t,n)}),t.closePath()}},{\\\"abs-svg-path\\\":48,\\\"normalize-svg-path\\\":435}],154:[function(t,e,r){e.exports=function(t){switch(t){case\\\"int8\\\":return Int8Array;case\\\"int16\\\":return Int16Array;case\\\"int32\\\":return Int32Array;case\\\"uint8\\\":return Uint8Array;case\\\"uint16\\\":return Uint16Array;case\\\"uint32\\\":return Uint32Array;case\\\"float32\\\":return Float32Array;case\\\"float64\\\":return Float64Array;case\\\"array\\\":return Array;case\\\"uint8_clamped\\\":return Uint8ClampedArray}}},{}],155:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){switch(\\\"undefined\\\"==typeof e&&(e=0),typeof t){case\\\"number\\\":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n<t;++n)r[n]=e;return r}(0|t,e);break;case\\\"object\\\":if(\\\"number\\\"==typeof t.length)return function t(e,r,n){var i=0|e[n];if(i<=0)return[];var a,o=new Array(i);if(n===e.length-1)for(a=0;a<i;++a)o[a]=r;else for(a=0;a<i;++a)o[a]=t(e,r,n+1);return o}(t,e,0)}return[]}},{}],156:[function(t,e,r){\\\"use strict\\\";function n(t,e,r){r=r||2;var n,s,l,c,u,p,g,v=e&&e.length,m=v?e[0]*r:t.length,y=i(t,0,m,r,!0),x=[];if(!y)return x;if(v&&(y=function(t,e,r,n){var o,s,l,c,u,p=[];for(o=0,s=e.length;o<s;o++)l=e[o]*n,c=o<s-1?e[o+1]*n:t.length,(u=i(t,l,c,n,!1))===u.next&&(u.steiner=!0),p.push(d(u));for(p.sort(f),o=0;o<p.length;o++)h(p[o],r),r=a(r,r.next);return r}(t,e,y,r)),t.length>80*r){n=l=t[0],s=c=t[1];for(var b=r;b<m;b+=r)(u=t[b])<n&&(n=u),(p=t[b+1])<s&&(s=p),u>l&&(l=u),p>c&&(c=p);g=0!==(g=Math.max(l-n,c-s))?1/g:0}return o(y,x,r,n,s,g),x}function i(t,e,r,n,i){var a,o;if(i===A(t,e,r,n)>0)for(a=e;a<r;a+=n)o=w(a,t[a],t[a+1],o);else for(a=r-n;a>=e;a-=n)o=w(a,t[a],t[a+1],o);return o&&y(o,o.next)&&(k(o),o=o.next),o}function a(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!y(n,n.next)&&0!==m(n.prev,n,n.next))n=n.next;else{if(k(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function o(t,e,r,n,i,f,h){if(t){!h&&f&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=p(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e<c&&(s++,n=n.nextZ);e++);for(l=c;s>0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,f);for(var d,g,v=t;t.prev!==t.next;)if(d=t.prev,g=t.next,f?l(t,n,i,f):s(t))e.push(d.i/r),e.push(t.i/r),e.push(g.i/r),k(t),t=g.next,v=g.next;else if((t=g)===v){h?1===h?o(t=c(t,e,r),e,r,n,i,f,2):2===h&&u(t,e,r,n,i,f):o(a(t),e,r,n,i,f,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(m(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(g(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&m(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function l(t,e,r,n){var i=t.prev,a=t,o=t.next;if(m(i,a,o)>=0)return!1;for(var s=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,l=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(s,l,e,r,n),h=p(c,u,e,r,n),d=t.prevZ,v=t.nextZ;d&&d.z>=f&&v&&v.z<=h;){if(d!==t.prev&&d!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&m(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,v!==t.prev&&v!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&m(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;d&&d.z>=f;){if(d!==t.prev&&d!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&m(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;v&&v.z<=h;){if(v!==t.prev&&v!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&m(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function c(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!y(i,a)&&x(i,n,n.next,a)&&b(i,a)&&b(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),k(n),k(n.next),n=t=a),n=n.next}while(n!==t);return n}function u(t,e,r,n,i,s){var l=t;do{for(var c=l.next.next;c!==l.prev;){if(l.i!==c.i&&v(l,c)){var u=_(l,c);return l=a(l,l.next),u=a(u,u.next),o(l,e,r,n,i,s),void o(u,e,r,n,i,s)}c=c.next}l=l.next}while(l!==t)}function f(t,e){return t.x-e.x}function h(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===o)return r.prev;var l,c=r,u=r.x,f=r.y,h=1/0;n=r.next;for(;n!==c;)i>=n.x&&n.x>=u&&i!==n.x&&g(a<f?i:o,a,u,f,a<f?o:i,a,n.x,n.y)&&((l=Math.abs(a-n.y)/(i-n.x))<h||l===h&&n.x>r.x)&&b(n,t)&&(r=n,h=l),n=n.next;return r}(t,e)){var r=_(e,t);a(r,r.next)}}function p(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function d(t){var e=t,r=t;do{e.x<r.x&&(r=e),e=e.next}while(e!==t);return r}function g(t,e,r,n,i,a,o,s){return(i-o)*(e-s)-(t-o)*(a-s)>=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&x(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&b(t,e)&&b(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)}function m(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function y(t,e){return t.x===e.x&&t.y===e.y}function x(t,e,r,n){return!!(y(t,e)&&y(r,n)||y(t,n)&&y(r,e))||m(t,e,r)>0!=m(t,e,n)>0&&m(r,n,t)>0!=m(r,n,e)>0}function b(t,e){return m(t.prev,t,t.next)<0?m(t,e,t.next)>=0&&m(t,t.prev,e)>=0:m(t,e,t.prev)<0||m(t,t.next,e)<0}function _(t,e){var r=new M(t.i,t.x,t.y),n=new M(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function w(t,e,r,n){var i=new M(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function k(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function M(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function A(t,e,r,n){for(var i=0,a=e,o=r-n;a<r;a+=n)i+=(t[o]-t[a])*(t[a+1]+t[o+1]),o=a;return i}e.exports=n,e.exports.default=n,n.deviation=function(t,e,r,n){var i=e&&e.length,a=i?e[0]*r:t.length,o=Math.abs(A(t,0,a,r));if(i)for(var s=0,l=e.length;s<l;s++){var c=e[s]*r,u=s<l-1?e[s+1]*r:t.length;o-=Math.abs(A(t,c,u,r))}var f=0;for(s=0;s<n.length;s+=3){var h=n[s]*r,p=n[s+1]*r,d=n[s+2]*r;f+=Math.abs((t[h]-t[d])*(t[p+1]-t[h+1])-(t[h]-t[p])*(t[d+1]-t[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},n.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var a=0;a<t[i].length;a++)for(var o=0;o<e;o++)r.vertices.push(t[i][a][o]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],157:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=t.length;if(\\\"number\\\"!=typeof e){e=0;for(var i=0;i<r;++i){var a=t[i];e=Math.max(e,a[0],a[1])}e=1+(0|e)}e|=0;for(var o=new Array(e),i=0;i<e;++i)o[i]=[];for(var i=0;i<r;++i){var a=t[i];o[a[0]].push(a[1]),o[a[1]].push(a[0])}for(var s=0;s<e;++s)n(o[s],function(t,e){return t-e});return o};var n=t(\\\"uniq\\\")},{uniq:524}],158:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../object/valid-value\\\");e.exports=function(){return n(this).length=0,this}},{\\\"../../object/valid-value\\\":190}],159:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Array.from:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":160,\\\"./shim\\\":161}],160:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t,e,r=Array.from;return\\\"function\\\"==typeof r&&(e=r(t=[\\\"raz\\\",\\\"dwa\\\"]),Boolean(e&&e!==t&&\\\"dwa\\\"===e[1]))}},{}],161:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es6-symbol\\\").iterator,i=t(\\\"../../function/is-arguments\\\"),a=t(\\\"../../function/is-function\\\"),o=t(\\\"../../number/to-pos-integer\\\"),s=t(\\\"../../object/valid-callable\\\"),l=t(\\\"../../object/valid-value\\\"),c=t(\\\"../../object/is-value\\\"),u=t(\\\"../../string/is-string\\\"),f=Array.isArray,h=Function.prototype.call,p={configurable:!0,enumerable:!0,writable:!0,value:null},d=Object.defineProperty;e.exports=function(t){var e,r,g,v,m,y,x,b,_,w,k=arguments[1],M=arguments[2];if(t=Object(l(t)),c(k)&&s(k),this&&this!==Array&&a(this))e=this;else{if(!k){if(i(t))return 1!==(m=t.length)?Array.apply(null,t):((v=new Array(1))[0]=t[0],v);if(f(t)){for(v=new Array(m=t.length),r=0;r<m;++r)v[r]=t[r];return v}}v=[]}if(!f(t))if(void 0!==(_=t[n])){for(x=s(_).call(t),e&&(v=new e),b=x.next(),r=0;!b.done;)w=k?h.call(k,M,b.value,r):b.value,e?(p.value=w,d(v,r,p)):v[r]=w,b=x.next(),++r;m=r}else if(u(t)){for(m=t.length,e&&(v=new e),r=0,g=0;r<m;++r)w=t[r],r+1<m&&(y=w.charCodeAt(0))>=55296&&y<=56319&&(w+=t[++r]),w=k?h.call(k,M,w,g):w,e?(p.value=w,d(v,g,p)):v[g]=w,++g;m=g}if(void 0===m)for(m=o(t.length),e&&(v=new e(m)),r=0;r<m;++r)w=k?h.call(k,M,t[r],r):t[r],e?(p.value=w,d(v,r,p)):v[r]=w;return e&&(p.value=null,v.length=m),v}},{\\\"../../function/is-arguments\\\":162,\\\"../../function/is-function\\\":163,\\\"../../number/to-pos-integer\\\":169,\\\"../../object/is-value\\\":179,\\\"../../object/valid-callable\\\":188,\\\"../../object/valid-value\\\":190,\\\"../../string/is-string\\\":194,\\\"es6-symbol\\\":204}],162:[function(t,e,r){\\\"use strict\\\";var n=Object.prototype.toString,i=n.call(function(){return arguments}());e.exports=function(t){return n.call(t)===i}},{}],163:[function(t,e,r){\\\"use strict\\\";var n=Object.prototype.toString,i=n.call(t(\\\"./noop\\\"));e.exports=function(t){return\\\"function\\\"==typeof t&&n.call(t)===i}},{\\\"./noop\\\":164}],164:[function(t,e,r){\\\"use strict\\\";e.exports=function(){}},{}],165:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Math.sign:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":166,\\\"./shim\\\":167}],166:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t=Math.sign;return\\\"function\\\"==typeof t&&(1===t(10)&&-1===t(-20))}},{}],167:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t=Number(t),isNaN(t)||0===t?t:t>0?1:-1}},{}],168:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../math/sign\\\"),i=Math.abs,a=Math.floor;e.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*a(i(t)):t}},{\\\"../math/sign\\\":165}],169:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./to-integer\\\"),i=Math.max;e.exports=function(t){return i(0,n(t))}},{\\\"./to-integer\\\":168}],170:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./valid-callable\\\"),i=t(\\\"./valid-value\\\"),a=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;e.exports=function(t,e){return function(r,c){var u,f=arguments[2],h=arguments[3];return r=Object(i(r)),n(c),u=s(r),h&&u.sort(\\\"function\\\"==typeof h?a.call(h,r):void 0),\\\"function\\\"!=typeof t&&(t=u[t]),o.call(t,u,function(t,n){return l.call(r,t)?o.call(c,f,r[t],t,r,n):e})}}},{\\\"./valid-callable\\\":188,\\\"./valid-value\\\":190}],171:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Object.assign:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":172,\\\"./shim\\\":173}],172:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t,e=Object.assign;return\\\"function\\\"==typeof e&&(e(t={foo:\\\"raz\\\"},{bar:\\\"dwa\\\"},{trzy:\\\"trzy\\\"}),t.foo+t.bar+t.trzy===\\\"razdwatrzy\\\")}},{}],173:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../keys\\\"),i=t(\\\"../valid-value\\\"),a=Math.max;e.exports=function(t,e){var r,o,s,l=a(arguments.length,2);for(t=Object(i(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o<l;++o)e=arguments[o],n(e).forEach(s);if(void 0!==r)throw r;return t}},{\\\"../keys\\\":180,\\\"../valid-value\\\":190}],174:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../array/from\\\"),i=t(\\\"./assign\\\"),a=t(\\\"./valid-value\\\");e.exports=function(t){var e=Object(a(t)),r=arguments[1],o=Object(arguments[2]);if(e!==t&&!r)return e;var s={};return r?n(r,function(e){(o.ensure||e in t)&&(s[e]=t[e])}):i(s,t),s}},{\\\"../array/from\\\":159,\\\"./assign\\\":171,\\\"./valid-value\\\":190}],175:[function(t,e,r){\\\"use strict\\\";var n,i,a,o,s=Object.create;t(\\\"./set-prototype-of/is-implemented\\\")()||(n=t(\\\"./set-prototype-of/shim\\\")),e.exports=n?1!==n.level?s:(i={},a={},o={configurable:!1,enumerable:!1,writable:!0,value:void 0},Object.getOwnPropertyNames(Object.prototype).forEach(function(t){a[t]=\\\"__proto__\\\"!==t?o:{configurable:!0,enumerable:!1,writable:!0,value:void 0}}),Object.defineProperties(i,a),Object.defineProperty(n,\\\"nullPolyfill\\\",{configurable:!1,enumerable:!1,writable:!1,value:i}),function(t,e){return s(null===t?i:t,e)}):s},{\\\"./set-prototype-of/is-implemented\\\":186,\\\"./set-prototype-of/shim\\\":187}],176:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./_iterate\\\")(\\\"forEach\\\")},{\\\"./_iterate\\\":170}],177:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return\\\"function\\\"==typeof t}},{}],178:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-value\\\"),i={function:!0,object:!0};e.exports=function(t){return n(t)&&i[typeof t]||!1}},{\\\"./is-value\\\":179}],179:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../function/noop\\\")();e.exports=function(t){return t!==n&&null!==t}},{\\\"../function/noop\\\":164}],180:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Object.keys:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":181,\\\"./shim\\\":182}],181:[function(t,e,r){\\\"use strict\\\";e.exports=function(){try{return Object.keys(\\\"primitive\\\"),!0}catch(t){return!1}}},{}],182:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../is-value\\\"),i=Object.keys;e.exports=function(t){return i(n(t)?Object(t):t)}},{\\\"../is-value\\\":179}],183:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./valid-callable\\\"),i=t(\\\"./for-each\\\"),a=Function.prototype.call;e.exports=function(t,e){var r={},o=arguments[2];return n(e),i(t,function(t,n,i,s){r[n]=a.call(e,o,t,n,i,s)}),r}},{\\\"./for-each\\\":176,\\\"./valid-callable\\\":188}],184:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-value\\\"),i=Array.prototype.forEach,a=Object.create;e.exports=function(t){var e=a(null);return i.call(arguments,function(t){n(t)&&function(t,e){var r;for(r in t)e[r]=t[r]}(Object(t),e)}),e}},{\\\"./is-value\\\":179}],185:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Object.setPrototypeOf:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":186,\\\"./shim\\\":187}],186:[function(t,e,r){\\\"use strict\\\";var n=Object.create,i=Object.getPrototypeOf,a={};e.exports=function(){var t=Object.setPrototypeOf,e=arguments[0]||n;return\\\"function\\\"==typeof t&&i(t(e(null),a))===a}},{}],187:[function(t,e,r){\\\"use strict\\\";var n,i,a,o,s=t(\\\"../is-object\\\"),l=t(\\\"../valid-value\\\"),c=Object.prototype.isPrototypeOf,u=Object.defineProperty,f={configurable:!0,enumerable:!1,writable:!0,value:void 0};n=function(t,e){if(l(t),null===e||s(e))return t;throw new TypeError(\\\"Prototype must be null or an object\\\")},e.exports=(i=function(){var t,e=Object.create(null),r={},n=Object.getOwnPropertyDescriptor(Object.prototype,\\\"__proto__\\\");if(n){try{(t=n.set).call(e,r)}catch(t){}if(Object.getPrototypeOf(e)===r)return{set:t,level:2}}return e.__proto__=r,Object.getPrototypeOf(e)===r?{level:2}:((e={}).__proto__=r,Object.getPrototypeOf(e)===r&&{level:1})}())?(2===i.level?i.set?(o=i.set,a=function(t,e){return o.call(n(t,e),e),t}):a=function(t,e){return n(t,e).__proto__=e,t}:a=function t(e,r){var i;return n(e,r),(i=c.call(t.nullPolyfill,e))&&delete t.nullPolyfill.__proto__,null===r&&(r=t.nullPolyfill),e.__proto__=r,i&&u(t.nullPolyfill,\\\"__proto__\\\",f),e},Object.defineProperty(a,\\\"level\\\",{configurable:!1,enumerable:!1,writable:!1,value:i.level})):null,t(\\\"../create\\\")},{\\\"../create\\\":175,\\\"../is-object\\\":178,\\\"../valid-value\\\":190}],188:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){if(\\\"function\\\"!=typeof t)throw new TypeError(t+\\\" is not a function\\\");return t}},{}],189:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-object\\\");e.exports=function(t){if(!n(t))throw new TypeError(t+\\\" is not an Object\\\");return t}},{\\\"./is-object\\\":178}],190:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-value\\\");e.exports=function(t){if(!n(t))throw new TypeError(\\\"Cannot use null or undefined\\\");return t}},{\\\"./is-value\\\":179}],191:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?String.prototype.contains:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":192,\\\"./shim\\\":193}],192:[function(t,e,r){\\\"use strict\\\";var n=\\\"razdwatrzy\\\";e.exports=function(){return\\\"function\\\"==typeof n.contains&&(!0===n.contains(\\\"dwa\\\")&&!1===n.contains(\\\"foo\\\"))}},{}],193:[function(t,e,r){\\\"use strict\\\";var n=String.prototype.indexOf;e.exports=function(t){return n.call(this,t,arguments[1])>-1}},{}],194:[function(t,e,r){\\\"use strict\\\";var n=Object.prototype.toString,i=n.call(\\\"\\\");e.exports=function(t){return\\\"string\\\"==typeof t||t&&\\\"object\\\"==typeof t&&(t instanceof String||n.call(t)===i)||!1}},{}],195:[function(t,e,r){\\\"use strict\\\";var n=Object.create(null),i=Math.random;e.exports=function(){var t;do{t=i().toString(36).slice(2)}while(n[t]);return t}},{}],196:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/object/set-prototype-of\\\"),a=t(\\\"es5-ext/string/#/contains\\\"),o=t(\\\"d\\\"),s=t(\\\"es6-symbol\\\"),l=t(\\\"./\\\"),c=Object.defineProperty;n=e.exports=function(t,e){if(!(this instanceof n))throw new TypeError(\\\"Constructor requires 'new'\\\");l.call(this,t),e=e?a.call(e,\\\"key+value\\\")?\\\"key+value\\\":a.call(e,\\\"key\\\")?\\\"key\\\":\\\"value\\\":\\\"value\\\",c(this,\\\"__kind__\\\",o(\\\"\\\",e))},i&&i(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o(function(t){return\\\"value\\\"===this.__kind__?this.__list__[t]:\\\"key+value\\\"===this.__kind__?[t,this.__list__[t]]:t})}),c(n.prototype,s.toStringTag,o(\\\"c\\\",\\\"Array Iterator\\\"))},{\\\"./\\\":199,d:139,\\\"es5-ext/object/set-prototype-of\\\":185,\\\"es5-ext/string/#/contains\\\":191,\\\"es6-symbol\\\":204}],197:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es5-ext/function/is-arguments\\\"),i=t(\\\"es5-ext/object/valid-callable\\\"),a=t(\\\"es5-ext/string/is-string\\\"),o=t(\\\"./get\\\"),s=Array.isArray,l=Function.prototype.call,c=Array.prototype.some;e.exports=function(t,e){var r,u,f,h,p,d,g,v,m=arguments[2];if(s(t)||n(t)?r=\\\"array\\\":a(t)?r=\\\"string\\\":t=o(t),i(e),f=function(){h=!0},\\\"array\\\"!==r)if(\\\"string\\\"!==r)for(u=t.next();!u.done;){if(l.call(e,m,u.value,f),h)return;u=t.next()}else for(d=t.length,p=0;p<d&&(g=t[p],p+1<d&&(v=g.charCodeAt(0))>=55296&&v<=56319&&(g+=t[++p]),l.call(e,m,g,f),!h);++p);else c.call(t,function(t){return l.call(e,m,t,f),h})}},{\\\"./get\\\":198,\\\"es5-ext/function/is-arguments\\\":162,\\\"es5-ext/object/valid-callable\\\":188,\\\"es5-ext/string/is-string\\\":194}],198:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es5-ext/function/is-arguments\\\"),i=t(\\\"es5-ext/string/is-string\\\"),a=t(\\\"./array\\\"),o=t(\\\"./string\\\"),s=t(\\\"./valid-iterable\\\"),l=t(\\\"es6-symbol\\\").iterator;e.exports=function(t){return\\\"function\\\"==typeof s(t)[l]?t[l]():n(t)?new a(t):i(t)?new o(t):new a(t)}},{\\\"./array\\\":196,\\\"./string\\\":201,\\\"./valid-iterable\\\":202,\\\"es5-ext/function/is-arguments\\\":162,\\\"es5-ext/string/is-string\\\":194,\\\"es6-symbol\\\":204}],199:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/array/#/clear\\\"),a=t(\\\"es5-ext/object/assign\\\"),o=t(\\\"es5-ext/object/valid-callable\\\"),s=t(\\\"es5-ext/object/valid-value\\\"),l=t(\\\"d\\\"),c=t(\\\"d/auto-bind\\\"),u=t(\\\"es6-symbol\\\"),f=Object.defineProperty,h=Object.defineProperties;e.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError(\\\"Constructor requires 'new'\\\");h(this,{__list__:l(\\\"w\\\",s(t)),__context__:l(\\\"w\\\",e),__nextIndex__:l(\\\"w\\\",0)}),e&&(o(e.on),e.on(\\\"_add\\\",this._onAdd),e.on(\\\"_delete\\\",this._onDelete),e.on(\\\"_clear\\\",this._onClear))},delete n.prototype.constructor,h(n.prototype,a({_next:l(function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__<this.__list__.length?this.__nextIndex__++:void this._unBind()}),next:l(function(){return this._createResult(this._next())}),_createResult:l(function(t){return void 0===t?{done:!0,value:void 0}:{done:!1,value:this._resolve(t)}}),_resolve:l(function(t){return this.__list__[t]}),_unBind:l(function(){this.__list__=null,delete this.__redo__,this.__context__&&(this.__context__.off(\\\"_add\\\",this._onAdd),this.__context__.off(\\\"_delete\\\",this._onDelete),this.__context__.off(\\\"_clear\\\",this._onClear),this.__context__=null)}),toString:l(function(){return\\\"[object \\\"+(this[u.toStringTag]||\\\"Object\\\")+\\\"]\\\"})},c({_onAdd:l(function(t){t>=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach(function(e,r){e>=t&&(this.__redo__[r]=++e)},this),this.__redo__.push(t)):f(this,\\\"__redo__\\\",l(\\\"c\\\",[t])))}),_onDelete:l(function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach(function(e,r){e>t&&(this.__redo__[r]=--e)},this)))}),_onClear:l(function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0})}))),f(n.prototype,u.iterator,l(function(){return this}))},{d:139,\\\"d/auto-bind\\\":138,\\\"es5-ext/array/#/clear\\\":158,\\\"es5-ext/object/assign\\\":171,\\\"es5-ext/object/valid-callable\\\":188,\\\"es5-ext/object/valid-value\\\":190,\\\"es6-symbol\\\":204}],200:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es5-ext/function/is-arguments\\\"),i=t(\\\"es5-ext/object/is-value\\\"),a=t(\\\"es5-ext/string/is-string\\\"),o=t(\\\"es6-symbol\\\").iterator,s=Array.isArray;e.exports=function(t){return!!i(t)&&(!!s(t)||(!!a(t)||(!!n(t)||\\\"function\\\"==typeof t[o])))}},{\\\"es5-ext/function/is-arguments\\\":162,\\\"es5-ext/object/is-value\\\":179,\\\"es5-ext/string/is-string\\\":194,\\\"es6-symbol\\\":204}],201:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/object/set-prototype-of\\\"),a=t(\\\"d\\\"),o=t(\\\"es6-symbol\\\"),s=t(\\\"./\\\"),l=Object.defineProperty;n=e.exports=function(t){if(!(this instanceof n))throw new TypeError(\\\"Constructor requires 'new'\\\");t=String(t),s.call(this,t),l(this,\\\"__length__\\\",a(\\\"\\\",t.length))},i&&i(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:a(function(){if(this.__list__)return this.__nextIndex__<this.__length__?this.__nextIndex__++:void this._unBind()}),_resolve:a(function(t){var e,r=this.__list__[t];return this.__nextIndex__===this.__length__?r:(e=r.charCodeAt(0))>=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r})}),l(n.prototype,o.toStringTag,a(\\\"c\\\",\\\"String Iterator\\\"))},{\\\"./\\\":199,d:139,\\\"es5-ext/object/set-prototype-of\\\":185,\\\"es6-symbol\\\":204}],202:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-iterable\\\");e.exports=function(t){if(!n(t))throw new TypeError(t+\\\" is not iterable\\\");return t}},{\\\"./is-iterable\\\":200}],203:[function(t,e,r){(function(n,i){!function(t,n){\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?e.exports=n():t.ES6Promise=n()}(this,function(){\\\"use strict\\\";function e(t){return\\\"function\\\"==typeof t}var r=Array.isArray?Array.isArray:function(t){return\\\"[object Array]\\\"===Object.prototype.toString.call(t)},a=0,o=void 0,s=void 0,l=function(t,e){g[a]=t,g[a+1]=e,2===(a+=2)&&(s?s(v):_())};var c=\\\"undefined\\\"!=typeof window?window:void 0,u=c||{},f=u.MutationObserver||u.WebKitMutationObserver,h=\\\"undefined\\\"==typeof self&&\\\"undefined\\\"!=typeof n&&\\\"[object process]\\\"==={}.toString.call(n),p=\\\"undefined\\\"!=typeof Uint8ClampedArray&&\\\"undefined\\\"!=typeof importScripts&&\\\"undefined\\\"!=typeof MessageChannel;function d(){var t=setTimeout;return function(){return t(v,1)}}var g=new Array(1e3);function v(){for(var t=0;t<a;t+=2){(0,g[t])(g[t+1]),g[t]=void 0,g[t+1]=void 0}a=0}var m,y,x,b,_=void 0;function w(t,e){var r=arguments,n=this,i=new this.constructor(A);void 0===i[M]&&U(i);var a,o=n._state;return o?(a=r[o-1],l(function(){return j(o,i,a,n._result)})):R(n,i,t,e),i}function k(t){if(t&&\\\"object\\\"==typeof t&&t.constructor===this)return t;var e=new this(A);return O(e,t),e}h?_=function(){return n.nextTick(v)}:f?(y=0,x=new f(v),b=document.createTextNode(\\\"\\\"),x.observe(b,{characterData:!0}),_=function(){b.data=y=++y%2}):p?((m=new MessageChannel).port1.onmessage=v,_=function(){return m.port2.postMessage(0)}):_=void 0===c&&\\\"function\\\"==typeof t?function(){try{var e=t(\\\"vertx\\\");return o=e.runOnLoop||e.runOnContext,function(){o(v)}}catch(t){return d()}}():d();var M=Math.random().toString(36).substring(16);function A(){}var T=void 0,S=1,E=2,C=new F;function L(t){try{return t.then}catch(t){return C.error=t,C}}function z(t,r,n){r.constructor===t.constructor&&n===w&&r.constructor.resolve===k?function(t,e){e._state===S?P(t,e._result):e._state===E?D(t,e._result):R(e,void 0,function(e){return O(t,e)},function(e){return D(t,e)})}(t,r):n===C?D(t,C.error):void 0===n?P(t,r):e(n)?function(t,e,r){l(function(t){var n=!1,i=function(t,e,r,n){try{t.call(e,r,n)}catch(t){return t}}(r,e,function(r){n||(n=!0,e!==r?O(t,r):P(t,r))},function(e){n||(n=!0,D(t,e))},t._label);!n&&i&&(n=!0,D(t,i))},t)}(t,r,n):P(t,r)}function O(t,e){var r;t===e?D(t,new TypeError(\\\"You cannot resolve a promise with itself\\\")):\\\"function\\\"==typeof(r=e)||\\\"object\\\"==typeof r&&null!==r?z(t,e,L(e)):P(t,e)}function I(t){t._onerror&&t._onerror(t._result),B(t)}function P(t,e){t._state===T&&(t._result=e,t._state=S,0!==t._subscribers.length&&l(B,t))}function D(t,e){t._state===T&&(t._state=E,t._result=e,l(I,t))}function R(t,e,r,n){var i=t._subscribers,a=i.length;t._onerror=null,i[a]=e,i[a+S]=r,i[a+E]=n,0===a&&t._state&&l(B,t)}function B(t){var e=t._subscribers,r=t._state;if(0!==e.length){for(var n=void 0,i=void 0,a=t._result,o=0;o<e.length;o+=3)n=e[o],i=e[o+r],n?j(r,n,i,a):i(a);t._subscribers.length=0}}function F(){this.error=null}var N=new F;function j(t,r,n,i){var a=e(n),o=void 0,s=void 0,l=void 0,c=void 0;if(a){if((o=function(t,e){try{return t(e)}catch(t){return N.error=t,N}}(n,i))===N?(c=!0,s=o.error,o=null):l=!0,r===o)return void D(r,new TypeError(\\\"A promises callback cannot return that same promise.\\\"))}else o=i,l=!0;r._state!==T||(a&&l?O(r,o):c?D(r,s):t===S?P(r,o):t===E&&D(r,o))}var V=0;function U(t){t[M]=V++,t._state=void 0,t._result=void 0,t._subscribers=[]}function q(t,e){this._instanceConstructor=t,this.promise=new t(A),this.promise[M]||U(this.promise),r(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?P(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&P(this.promise,this._result))):D(this.promise,new Error(\\\"Array Methods must be provided an Array\\\"))}function H(t){this[M]=V++,this._result=this._state=void 0,this._subscribers=[],A!==t&&(\\\"function\\\"!=typeof t&&function(){throw new TypeError(\\\"You must pass a resolver function as the first argument to the promise constructor\\\")}(),this instanceof H?function(t,e){try{e(function(e){O(t,e)},function(e){D(t,e)})}catch(e){D(t,e)}}(this,t):function(){throw new TypeError(\\\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\\\")}())}function G(){var t=void 0;if(\\\"undefined\\\"!=typeof i)t=i;else if(\\\"undefined\\\"!=typeof self)t=self;else try{t=Function(\\\"return this\\\")()}catch(t){throw new Error(\\\"polyfill failed because global object is unavailable in this environment\\\")}var e=t.Promise;if(e){var r=null;try{r=Object.prototype.toString.call(e.resolve())}catch(t){}if(\\\"[object Promise]\\\"===r&&!e.cast)return}t.Promise=H}return q.prototype._enumerate=function(){for(var t=this.length,e=this._input,r=0;this._state===T&&r<t;r++)this._eachEntry(e[r],r)},q.prototype._eachEntry=function(t,e){var r=this._instanceConstructor,n=r.resolve;if(n===k){var i=L(t);if(i===w&&t._state!==T)this._settledAt(t._state,e,t._result);else if(\\\"function\\\"!=typeof i)this._remaining--,this._result[e]=t;else if(r===H){var a=new r(A);z(a,t,i),this._willSettleAt(a,e)}else this._willSettleAt(new r(function(e){return e(t)}),e)}else this._willSettleAt(n(t),e)},q.prototype._settledAt=function(t,e,r){var n=this.promise;n._state===T&&(this._remaining--,t===E?D(n,r):this._result[e]=r),0===this._remaining&&P(n,this._result)},q.prototype._willSettleAt=function(t,e){var r=this;R(t,void 0,function(t){return r._settledAt(S,e,t)},function(t){return r._settledAt(E,e,t)})},H.all=function(t){return new q(this,t).promise},H.race=function(t){var e=this;return r(t)?new e(function(r,n){for(var i=t.length,a=0;a<i;a++)e.resolve(t[a]).then(r,n)}):new e(function(t,e){return e(new TypeError(\\\"You must pass an array to race.\\\"))})},H.resolve=k,H.reject=function(t){var e=new this(A);return D(e,t),e},H._setScheduler=function(t){s=t},H._setAsap=function(t){l=t},H._asap=l,H.prototype={constructor:H,then:w,catch:function(t){return this.then(null,t)}},G(),H.polyfill=G,H.Promise=H,H})}).call(this,t(\\\"_process\\\"),\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{_process:465}],204:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Symbol:t(\\\"./polyfill\\\")},{\\\"./is-implemented\\\":205,\\\"./polyfill\\\":207}],205:[function(t,e,r){\\\"use strict\\\";var n={object:!0,symbol:!0};e.exports=function(){var t;if(\\\"function\\\"!=typeof Symbol)return!1;t=Symbol(\\\"test symbol\\\");try{String(t)}catch(t){return!1}return!!n[typeof Symbol.iterator]&&(!!n[typeof Symbol.toPrimitive]&&!!n[typeof Symbol.toStringTag])}},{}],206:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return!!t&&(\\\"symbol\\\"==typeof t||!!t.constructor&&(\\\"Symbol\\\"===t.constructor.name&&\\\"Symbol\\\"===t[t.constructor.toStringTag]))}},{}],207:[function(t,e,r){\\\"use strict\\\";var n,i,a,o,s=t(\\\"d\\\"),l=t(\\\"./validate-symbol\\\"),c=Object.create,u=Object.defineProperties,f=Object.defineProperty,h=Object.prototype,p=c(null);if(\\\"function\\\"==typeof Symbol){n=Symbol;try{String(n()),o=!0}catch(t){}}var d,g=(d=c(null),function(t){for(var e,r,n=0;d[t+(n||\\\"\\\")];)++n;return d[t+=n||\\\"\\\"]=!0,f(h,e=\\\"@@\\\"+t,s.gs(null,function(t){r||(r=!0,f(this,e,s(t)),r=!1)})),e});a=function(t){if(this instanceof a)throw new TypeError(\\\"Symbol is not a constructor\\\");return i(t)},e.exports=i=function t(e){var r;if(this instanceof t)throw new TypeError(\\\"Symbol is not a constructor\\\");return o?n(e):(r=c(a.prototype),e=void 0===e?\\\"\\\":String(e),u(r,{__description__:s(\\\"\\\",e),__name__:s(\\\"\\\",g(e))}))},u(i,{for:s(function(t){return p[t]?p[t]:p[t]=i(String(t))}),keyFor:s(function(t){var e;for(e in l(t),p)if(p[e]===t)return e}),hasInstance:s(\\\"\\\",n&&n.hasInstance||i(\\\"hasInstance\\\")),isConcatSpreadable:s(\\\"\\\",n&&n.isConcatSpreadable||i(\\\"isConcatSpreadable\\\")),iterator:s(\\\"\\\",n&&n.iterator||i(\\\"iterator\\\")),match:s(\\\"\\\",n&&n.match||i(\\\"match\\\")),replace:s(\\\"\\\",n&&n.replace||i(\\\"replace\\\")),search:s(\\\"\\\",n&&n.search||i(\\\"search\\\")),species:s(\\\"\\\",n&&n.species||i(\\\"species\\\")),split:s(\\\"\\\",n&&n.split||i(\\\"split\\\")),toPrimitive:s(\\\"\\\",n&&n.toPrimitive||i(\\\"toPrimitive\\\")),toStringTag:s(\\\"\\\",n&&n.toStringTag||i(\\\"toStringTag\\\")),unscopables:s(\\\"\\\",n&&n.unscopables||i(\\\"unscopables\\\"))}),u(a.prototype,{constructor:s(i),toString:s(\\\"\\\",function(){return this.__name__})}),u(i.prototype,{toString:s(function(){return\\\"Symbol (\\\"+l(this).__description__+\\\")\\\"}),valueOf:s(function(){return l(this)})}),f(i.prototype,i.toPrimitive,s(\\\"\\\",function(){var t=l(this);return\\\"symbol\\\"==typeof t?t:t.toString()})),f(i.prototype,i.toStringTag,s(\\\"c\\\",\\\"Symbol\\\")),f(a.prototype,i.toStringTag,s(\\\"c\\\",i.prototype[i.toStringTag])),f(a.prototype,i.toPrimitive,s(\\\"c\\\",i.prototype[i.toPrimitive]))},{\\\"./validate-symbol\\\":208,d:139}],208:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-symbol\\\");e.exports=function(t){if(!n(t))throw new TypeError(t+\\\" is not a symbol\\\");return t}},{\\\"./is-symbol\\\":206}],209:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?WeakMap:t(\\\"./polyfill\\\")},{\\\"./is-implemented\\\":210,\\\"./polyfill\\\":212}],210:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t,e;if(\\\"function\\\"!=typeof WeakMap)return!1;try{t=new WeakMap([[e={},\\\"one\\\"],[{},\\\"two\\\"],[{},\\\"three\\\"]])}catch(t){return!1}return\\\"[object WeakMap]\\\"===String(t)&&(\\\"function\\\"==typeof t.set&&(t.set({},1)===t&&(\\\"function\\\"==typeof t.delete&&(\\\"function\\\"==typeof t.has&&\\\"one\\\"===t.get(e)))))}},{}],211:[function(t,e,r){\\\"use strict\\\";e.exports=\\\"function\\\"==typeof WeakMap&&\\\"[object WeakMap]\\\"===Object.prototype.toString.call(new WeakMap)},{}],212:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/object/set-prototype-of\\\"),a=t(\\\"es5-ext/object/valid-object\\\"),o=t(\\\"es5-ext/object/valid-value\\\"),s=t(\\\"es5-ext/string/random-uniq\\\"),l=t(\\\"d\\\"),c=t(\\\"es6-iterator/get\\\"),u=t(\\\"es6-iterator/for-of\\\"),f=t(\\\"es6-symbol\\\").toStringTag,h=t(\\\"./is-native-implemented\\\"),p=Array.isArray,d=Object.defineProperty,g=Object.prototype.hasOwnProperty,v=Object.getPrototypeOf;e.exports=n=function(){var t,e=arguments[0];if(!(this instanceof n))throw new TypeError(\\\"Constructor requires 'new'\\\");return t=h&&i&&WeakMap!==n?i(new WeakMap,v(this)):this,null!=e&&(p(e)||(e=c(e))),d(t,\\\"__weakMapData__\\\",l(\\\"c\\\",\\\"$weakMap$\\\"+s())),e?(u(e,function(e){o(e),t.set(e[0],e[1])}),t):t},h&&(i&&i(n,WeakMap),n.prototype=Object.create(WeakMap.prototype,{constructor:l(n)})),Object.defineProperties(n.prototype,{delete:l(function(t){return!!g.call(a(t),this.__weakMapData__)&&(delete t[this.__weakMapData__],!0)}),get:l(function(t){if(g.call(a(t),this.__weakMapData__))return t[this.__weakMapData__]}),has:l(function(t){return g.call(a(t),this.__weakMapData__)}),set:l(function(t,e){return d(a(t),this.__weakMapData__,l(\\\"c\\\",e)),this}),toString:l(function(){return\\\"[object WeakMap]\\\"})}),d(n.prototype,f,l(\\\"c\\\",\\\"WeakMap\\\"))},{\\\"./is-native-implemented\\\":211,d:139,\\\"es5-ext/object/set-prototype-of\\\":185,\\\"es5-ext/object/valid-object\\\":189,\\\"es5-ext/object/valid-value\\\":190,\\\"es5-ext/string/random-uniq\\\":195,\\\"es6-iterator/for-of\\\":197,\\\"es6-iterator/get\\\":198,\\\"es6-symbol\\\":204}],213:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n=e||0,i=r||1;return[[t[12]+t[0],t[13]+t[1],t[14]+t[2],t[15]+t[3]],[t[12]-t[0],t[13]-t[1],t[14]-t[2],t[15]-t[3]],[t[12]+t[4],t[13]+t[5],t[14]+t[6],t[15]+t[7]],[t[12]-t[4],t[13]-t[5],t[14]-t[6],t[15]-t[7]],[n*t[12]+t[8],n*t[13]+t[9],n*t[14]+t[10],n*t[15]+t[11]],[i*t[12]-t[8],i*t[13]-t[9],i*t[14]-t[10],i*t[15]-t[11]]]}},{}],214:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"is-string-blank\\\");e.exports=function(t){var e=typeof t;if(\\\"string\\\"===e){var r=t;if(0===(t=+t)&&n(r))return!1}else if(\\\"number\\\"!==e)return!1;return t-t<1}},{\\\"is-string-blank\\\":406}],215:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){switch(arguments.length){case 0:return new o([0],[0],0);case 1:if(\\\"number\\\"==typeof t){var n=l(t);return new o(n,n,0)}return new o(t,l(t.length),0);case 2:if(\\\"number\\\"==typeof e){var n=l(t.length);return new o(t,n,+e)}r=0;case 3:if(t.length!==e.length)throw new Error(\\\"state and velocity lengths must match\\\");return new o(t,e,r)}};var n=t(\\\"cubic-hermite\\\"),i=t(\\\"binary-search-bounds\\\");function a(t,e,r){return Math.min(e,Math.max(t,r))}function o(t,e,r){this.dimension=t.length,this.bounds=[new Array(this.dimension),new Array(this.dimension)];for(var n=0;n<this.dimension;++n)this.bounds[0][n]=-1/0,this.bounds[1][n]=1/0;this._state=t.slice().reverse(),this._velocity=e.slice().reverse(),this._time=[r],this._scratch=[t.slice(),t.slice(),t.slice(),t.slice(),t.slice()]}var s=o.prototype;function l(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=0;return e}s.flush=function(t){var e=i.gt(this._time,t)-1;e<=0||(this._time.splice(0,e),this._state.splice(0,e*this.dimension),this._velocity.splice(0,e*this.dimension))},s.curve=function(t){var e=this._time,r=e.length,o=i.le(e,t),s=this._scratch[0],l=this._state,c=this._velocity,u=this.dimension,f=this.bounds;if(o<0)for(var h=u-1,p=0;p<u;++p,--h)s[p]=l[h];else if(o>=r-1){h=l.length-1;var d=t-e[r-1];for(p=0;p<u;++p,--h)s[p]=l[h]+d*c[h]}else{h=u*(o+1)-1;var g=e[o],v=e[o+1]-g||1,m=this._scratch[1],y=this._scratch[2],x=this._scratch[3],b=this._scratch[4],_=!0;for(p=0;p<u;++p,--h)m[p]=l[h],x[p]=c[h]*v,y[p]=l[h+u],b[p]=c[h+u]*v,_=_&&m[p]===y[p]&&x[p]===b[p]&&0===x[p];if(_)for(p=0;p<u;++p)s[p]=m[p];else n(m,x,y,b,(t-g)/v,s)}var w=f[0],k=f[1];for(p=0;p<u;++p)s[p]=a(w[p],k[p],s[p]);return s},s.dcurve=function(t){var e=this._time,r=e.length,a=i.le(e,t),o=this._scratch[0],s=this._state,l=this._velocity,c=this.dimension;if(a>=r-1)for(var u=s.length-1,f=(e[r-1],0);f<c;++f,--u)o[f]=l[u];else{u=c*(a+1)-1;var h=e[a],p=e[a+1]-h||1,d=this._scratch[1],g=this._scratch[2],v=this._scratch[3],m=this._scratch[4],y=!0;for(f=0;f<c;++f,--u)d[f]=s[u],v[f]=l[u]*p,g[f]=s[u+c],m[f]=l[u+c]*p,y=y&&d[f]===g[f]&&v[f]===m[f]&&0===v[f];if(y)for(f=0;f<c;++f)o[f]=0;else{n.derivative(d,v,g,m,(t-h)/p,o);for(f=0;f<c;++f)o[f]/=p}}return o},s.lastT=function(){var t=this._time;return t[t.length-1]},s.stable=function(){for(var t=this._velocity,e=t.length,r=this.dimension-1;r>=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t<e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1];this._time.push(e,t);for(var u=0;u<2;++u)for(var f=0;f<r;++f)n.push(n[o++]),i.push(0);this._time.push(t);for(f=r;f>0;--f)n.push(a(l[f-1],c[f-1],arguments[f])),i.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t<e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=t-e,l=this.bounds,c=l[0],u=l[1],f=s>1e-6?1/s:0;this._time.push(t);for(var h=r;h>0;--h){var p=a(c[h-1],u[h-1],arguments[h]);n.push(p),i.push((p-n[o++])*f)}}},s.set=function(t){var e=this.dimension;if(!(t<this.lastT()||arguments.length!==e+1)){var r=this._state,n=this._velocity,i=this.bounds,o=i[0],s=i[1];this._time.push(t);for(var l=e;l>0;--l)r.push(a(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1],u=t-e,f=u>1e-6?1/u:0;this._time.push(t);for(var h=r;h>0;--h){var p=arguments[h];n.push(a(l[h-1],c[h-1],n[o++]+p)),i.push(p*f)}}},s.idle=function(t){var e=this.lastT();if(!(t<e)){var r=this.dimension,n=this._state,i=this._velocity,o=n.length-r,s=this.bounds,l=s[0],c=s[1],u=t-e;this._time.push(t);for(var f=r-1;f>=0;--f)n.push(a(l[f],c[f],n[o]+u*i[o])),i.push(0),o+=1}}},{\\\"binary-search-bounds\\\":79,\\\"cubic-hermite\\\":133}],216:[function(t,e,r){var n=t(\\\"dtype\\\");e.exports=function(t,e,r){if(!t)throw new TypeError(\\\"must specify data as first parameter\\\");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&\\\"number\\\"==typeof t[0][0]){var i,a,o,s,l=t[0].length,c=t.length*l;e&&\\\"string\\\"!=typeof e||(e=new(n(e||\\\"float32\\\"))(c+r));var u=e.length-r;if(c!==u)throw new Error(\\\"source length \\\"+c+\\\" (\\\"+l+\\\"x\\\"+t.length+\\\") does not match destination length \\\"+u);for(i=0,o=r;i<t.length;i++)for(a=0;a<l;a++)e[o++]=null===t[i][a]?NaN:t[i][a]}else if(e&&\\\"string\\\"!=typeof e)e.set(t,r);else{var f=n(e||\\\"float32\\\");if(Array.isArray(t)||\\\"array\\\"===e)for(e=new f(t.length+r),i=0,o=r,s=e.length;o<s;o++,i++)e[o]=null===t[i]?NaN:t[i];else 0===r?e=new f(t):(e=new f(t.length+r)).set(t,r)}return e}},{dtype:154}],217:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"css-font/stringify\\\"),i=[32,126];e.exports=function(t){var e=(t=t||{}).shape?t.shape:t.canvas?[t.canvas.width,t.canvas.height]:[512,512],r=t.canvas||document.createElement(\\\"canvas\\\"),a=t.font,o=\\\"number\\\"==typeof t.step?[t.step,t.step]:t.step||[32,32],s=t.chars||i;a&&\\\"string\\\"!=typeof a&&(a=n(a));if(Array.isArray(s)){if(2===s.length&&\\\"number\\\"==typeof s[0]&&\\\"number\\\"==typeof s[1]){for(var l=[],c=s[0],u=0;c<=s[1];c++)l[u++]=String.fromCharCode(c);s=l}}else s=String(s).split(\\\"\\\");e=e.slice(),r.width=e[0],r.height=e[1];var f=r.getContext(\\\"2d\\\");f.fillStyle=\\\"#000\\\",f.fillRect(0,0,r.width,r.height),f.font=a,f.textAlign=\\\"center\\\",f.textBaseline=\\\"middle\\\",f.fillStyle=\\\"#fff\\\";for(var h=o[0]/2,p=o[1]/2,c=0;c<s.length;c++)f.fillText(s[c],h,p),(h+=o[0])>e[0]-o[0]/2&&(h=o[0]/2,p+=o[1]);return r}},{\\\"css-font/stringify\\\":130}],218:[function(t,e,r){\\\"use strict\\\";function n(t,e){e||(e={}),(\\\"string\\\"==typeof t||Array.isArray(t))&&(e.family=t);var r=Array.isArray(e.family)?e.family.join(\\\", \\\"):e.family;if(!r)throw Error(\\\"`family` must be defined\\\");var s=e.size||e.fontSize||e.em||48,l=e.weight||e.fontWeight||\\\"\\\",c=(t=[e.style||e.fontStyle||\\\"\\\",l,s].join(\\\" \\\")+\\\"px \\\"+r,e.origin||\\\"top\\\");if(n.cache[r]&&s<=n.cache[r].em)return i(n.cache[r],c);var u=e.canvas||n.canvas,f=u.getContext(\\\"2d\\\"),h={upper:void 0!==e.upper?e.upper:\\\"H\\\",lower:void 0!==e.lower?e.lower:\\\"x\\\",descent:void 0!==e.descent?e.descent:\\\"p\\\",ascent:void 0!==e.ascent?e.ascent:\\\"h\\\",tittle:void 0!==e.tittle?e.tittle:\\\"i\\\",overshoot:void 0!==e.overshoot?e.overshoot:\\\"O\\\"},p=Math.ceil(1.5*s);u.height=p,u.width=.5*p,f.font=t;var d={top:0};f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillStyle=\\\"black\\\",f.fillText(\\\"H\\\",0,0);var g=a(f.getImageData(0,0,p,p));f.clearRect(0,0,p,p),f.textBaseline=\\\"bottom\\\",f.fillText(\\\"H\\\",0,p);var v=a(f.getImageData(0,0,p,p));d.lineHeight=d.bottom=p-v+g,f.clearRect(0,0,p,p),f.textBaseline=\\\"alphabetic\\\",f.fillText(\\\"H\\\",0,p);var m=p-a(f.getImageData(0,0,p,p))-1+g;d.baseline=d.alphabetic=m,f.clearRect(0,0,p,p),f.textBaseline=\\\"middle\\\",f.fillText(\\\"H\\\",0,.5*p);var y=a(f.getImageData(0,0,p,p));d.median=d.middle=p-y-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline=\\\"hanging\\\",f.fillText(\\\"H\\\",0,.5*p);var x=a(f.getImageData(0,0,p,p));d.hanging=p-x-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline=\\\"ideographic\\\",f.fillText(\\\"H\\\",0,p);var b=a(f.getImageData(0,0,p,p));if(d.ideographic=p-b-1+g,h.upper&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.upper,0,0),d.upper=a(f.getImageData(0,0,p,p)),d.capHeight=d.baseline-d.upper),h.lower&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.lower,0,0),d.lower=a(f.getImageData(0,0,p,p)),d.xHeight=d.baseline-d.lower),h.tittle&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.tittle,0,0),d.tittle=a(f.getImageData(0,0,p,p))),h.ascent&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.ascent,0,0),d.ascent=a(f.getImageData(0,0,p,p))),h.descent&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.descent,0,0),d.descent=o(f.getImageData(0,0,p,p))),h.overshoot){f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.overshoot,0,0);var _=o(f.getImageData(0,0,p,p));d.overshoot=_-m}for(var w in d)d[w]/=s;return d.em=s,n.cache[r]=d,i(d,c)}function i(t,e){var r={};for(var n in\\\"string\\\"==typeof e&&(e=t[e]),t)\\\"em\\\"!==n&&(r[n]=t[n]-e);return r}function a(t){for(var e=t.height,r=t.data,n=3;n<r.length;n+=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}function o(t){for(var e=t.height,r=t.data,n=r.length-1;n>0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}e.exports=n,n.canvas=document.createElement(\\\"canvas\\\"),n.cache={}},{}],219:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return new c(t||d,null)};var n=0,i=1;function a(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function o(t){return new a(t._color,t.key,t.value,t.left,t.right,t._count)}function s(t,e){return new a(t,e.key,e.value,e.left,e.right,e._count)}function l(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function c(t,e){this._compare=t,this.root=e}var u=c.prototype;function f(t,e){this.tree=t,this._stack=e}Object.defineProperty(u,\\\"keys\\\",{get:function(){var t=[];return this.forEach(function(e,r){t.push(e)}),t}}),Object.defineProperty(u,\\\"values\\\",{get:function(){var t=[];return this.forEach(function(e,r){t.push(r)}),t}}),Object.defineProperty(u,\\\"length\\\",{get:function(){return this.root?this.root._count:0}}),u.insert=function(t,e){for(var r=this._compare,o=this.root,u=[],f=[];o;){var h=r(t,o.key);u.push(o),f.push(h),o=h<=0?o.left:o.right}u.push(new a(n,t,e,null,null,1));for(var p=u.length-2;p>=0;--p){o=u[p];f[p]<=0?u[p]=new a(o._color,o.key,o.value,u[p+1],o.right,o._count+1):u[p]=new a(o._color,o.key,o.value,o.left,u[p+1],o._count+1)}for(p=u.length-1;p>1;--p){var d=u[p-1];o=u[p];if(d._color===i||o._color===i)break;var g=u[p-2];if(g.left===d)if(d.left===o){if(!(v=g.right)||v._color!==n){if(g._color=n,g.left=d.right,d._color=i,d.right=g,u[p-2]=d,u[p-1]=o,l(g),l(d),p>=3)(m=u[p-3]).left===g?m.left=d:m.right=d;break}d._color=i,g.right=s(i,v),g._color=n,p-=1}else{if(!(v=g.right)||v._color!==n){if(d.right=o.left,g._color=n,g.left=o.right,o._color=i,o.left=d,o.right=g,u[p-2]=o,u[p-1]=d,l(g),l(d),l(o),p>=3)(m=u[p-3]).left===g?m.left=o:m.right=o;break}d._color=i,g.right=s(i,v),g._color=n,p-=1}else if(d.right===o){if(!(v=g.left)||v._color!==n){if(g._color=n,g.right=d.left,d._color=i,d.left=g,u[p-2]=d,u[p-1]=o,l(g),l(d),p>=3)(m=u[p-3]).right===g?m.right=d:m.left=d;break}d._color=i,g.left=s(i,v),g._color=n,p-=1}else{var v;if(!(v=g.left)||v._color!==n){var m;if(d.left=o.right,g._color=n,g.right=o.left,o._color=i,o.right=d,o.left=g,u[p-2]=o,u[p-1]=d,l(g),l(d),l(o),p>=3)(m=u[p-3]).right===g?m.right=o:m.left=o;break}d._color=i,g.left=s(i,v),g._color=n,p-=1}}return u[0]._color=i,new c(r,u[0])},u.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return function t(e,r){var n;if(r.left&&(n=t(e,r.left)))return n;return(n=e(r.key,r.value))||(r.right?t(e,r.right):void 0)}(t,this.root);case 2:return function t(e,r,n,i){if(r(e,i.key)<=0){var a;if(i.left&&(a=t(e,r,n,i.left)))return a;if(a=n(i.key,i.value))return a}if(i.right)return t(e,r,n,i.right)}(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return function t(e,r,n,i,a){var o,s=n(e,a.key),l=n(r,a.key);if(s<=0){if(a.left&&(o=t(e,r,n,i,a.left)))return o;if(l>0&&(o=i(a.key,a.value)))return o}if(l>0&&a.right)return t(e,r,n,i,a.right)}(e,r,this._compare,t,this.root)}},Object.defineProperty(u,\\\"begin\\\",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new f(this,t)}}),Object.defineProperty(u,\\\"end\\\",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new f(this,t)}}),u.at=function(t){if(t<0)return new f(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t<e.left._count){e=e.left;continue}t-=e.left._count}if(!t)return new f(this,r);if(t-=1,!e.right)break;if(t>=e.right._count)break;e=e.right}return new f(this,[])},u.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new f(this,n)},u.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new f(this,n)},u.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new f(this,n)},u.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new f(this,n)},u.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new f(this,n);r=i<=0?r.left:r.right}return new f(this,[])},u.remove=function(t){var e=this.find(t);return e?e.remove():this},u.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var h=f.prototype;function p(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function d(t,e){return t<e?-1:t>e?1:0}Object.defineProperty(h,\\\"valid\\\",{get:function(){return this._stack.length>0}}),Object.defineProperty(h,\\\"node\\\",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),h.clone=function(){return new f(this.tree,this._stack.slice())},h.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var e=new Array(t.length),r=t[t.length-1];e[e.length-1]=new a(r._color,r.key,r.value,r.left,r.right,r._count);for(var u=t.length-2;u>=0;--u){(r=t[u]).left===t[u+1]?e[u]=new a(r._color,r.key,r.value,e[u+1],r.right,r._count):e[u]=new a(r._color,r.key,r.value,r.left,e[u+1],r._count)}if((r=e[e.length-1]).left&&r.right){var f=e.length;for(r=r.left;r.right;)e.push(r),r=r.right;var h=e[f-1];e.push(new a(r._color,h.key,h.value,r.left,r.right,r._count)),e[f-1].key=r.key,e[f-1].value=r.value;for(u=e.length-2;u>=f;--u)r=e[u],e[u]=new a(r._color,r.key,r.value,r.left,e[u+1],r._count);e[f-1].left=e[f]}if((r=e[e.length-1])._color===n){var d=e[e.length-2];d.left===r?d.left=null:d.right===r&&(d.right=null),e.pop();for(u=0;u<e.length;++u)e[u]._count--;return new c(this.tree._compare,e[0])}if(r.left||r.right){r.left?p(r,r.left):r.right&&p(r,r.right),r._color=i;for(u=0;u<e.length-1;++u)e[u]._count--;return new c(this.tree._compare,e[0])}if(1===e.length)return new c(this.tree._compare,null);for(u=0;u<e.length;++u)e[u]._count--;var g=e[e.length-2];return function(t){for(var e,r,a,c,u=t.length-1;u>=0;--u){if(e=t[u],0===u)return void(e._color=i);if((r=t[u-1]).left===e){if((a=r.right).right&&a.right._color===n)return c=(a=r.right=o(a)).right=o(a.right),r.right=a.left,a.left=r,a.right=c,a._color=r._color,e._color=i,r._color=i,c._color=i,l(r),l(a),u>1&&((f=t[u-2]).left===r?f.left=a:f.right=a),void(t[u-1]=a);if(a.left&&a.left._color===n)return c=(a=r.right=o(a)).left=o(a.left),r.right=c.left,a.left=c.right,c.left=r,c.right=a,c._color=r._color,r._color=i,a._color=i,e._color=i,l(r),l(a),l(c),u>1&&((f=t[u-2]).left===r?f.left=c:f.right=c),void(t[u-1]=c);if(a._color===i){if(r._color===n)return r._color=i,void(r.right=s(n,a));r.right=s(n,a);continue}a=o(a),r.right=a.left,a.left=r,a._color=r._color,r._color=n,l(r),l(a),u>1&&((f=t[u-2]).left===r?f.left=a:f.right=a),t[u-1]=a,t[u]=r,u+1<t.length?t[u+1]=e:t.push(e),u+=2}else{if((a=r.left).left&&a.left._color===n)return c=(a=r.left=o(a)).left=o(a.left),r.left=a.right,a.right=r,a.left=c,a._color=r._color,e._color=i,r._color=i,c._color=i,l(r),l(a),u>1&&((f=t[u-2]).right===r?f.right=a:f.left=a),void(t[u-1]=a);if(a.right&&a.right._color===n)return c=(a=r.left=o(a)).right=o(a.right),r.left=c.right,a.right=c.left,c.right=r,c.left=a,c._color=r._color,r._color=i,a._color=i,e._color=i,l(r),l(a),l(c),u>1&&((f=t[u-2]).right===r?f.right=c:f.left=c),void(t[u-1]=c);if(a._color===i){if(r._color===n)return r._color=i,void(r.left=s(n,a));r.left=s(n,a);continue}var f;a=o(a),r.left=a.right,a.right=r,a._color=r._color,r._color=n,l(r),l(a),u>1&&((f=t[u-2]).right===r?f.right=a:f.left=a),t[u-1]=a,t[u]=r,u+1<t.length?t[u+1]=e:t.push(e),u+=2}}}(e),g.left===r?g.left=null:g.right=null,new c(this.tree._compare,e[0])},Object.defineProperty(h,\\\"key\\\",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(h,\\\"value\\\",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(h,\\\"index\\\",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),h.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(h,\\\"hasNext\\\",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),h.update=function(t){var e=this._stack;if(0===e.length)throw new Error(\\\"Can't update empty node!\\\");var r=new Array(e.length),n=e[e.length-1];r[r.length-1]=new a(n._color,n.key,t,n.left,n.right,n._count);for(var i=e.length-2;i>=0;--i)(n=e[i]).left===e[i+1]?r[i]=new a(n._color,n.key,n.value,r[i+1],n.right,n._count):r[i]=new a(n._color,n.key,n.value,n.left,r[i+1],n._count);return new c(this.tree._compare,r[0])},h.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(h,\\\"hasPrev\\\",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},{}],220:[function(t,e,r){var n=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],i=607/128,a=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];function o(t){if(t<0)return Number(\\\"0/0\\\");for(var e=a[0],r=a.length-1;r>0;--r)e+=a[r]/(t+r);var n=t+i+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}e.exports=function t(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*t(1-e));if(e>100)return Math.exp(o(e));e-=1;for(var r=n[0],i=1;i<9;i++)r+=n[i]/(e+i);var a=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(a,e+.5)*Math.exp(-a)*r},e.exports.log=o},{}],221:[function(t,e,r){e.exports=function(t,e){if(\\\"string\\\"!=typeof t)throw new TypeError(\\\"must specify type string\\\");if(e=e||{},\\\"undefined\\\"==typeof document&&!e.canvas)return null;var r=e.canvas||document.createElement(\\\"canvas\\\");\\\"number\\\"==typeof e.width&&(r.width=e.width);\\\"number\\\"==typeof e.height&&(r.height=e.height);var n,i=e;try{var a=[t];0===t.indexOf(\\\"webgl\\\")&&a.push(\\\"experimental-\\\"+t);for(var o=0;o<a.length;o++)if(n=r.getContext(a[o],i))return n}catch(t){n=null}return n||null}},{}],222:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=new u(t);return r.update(e),r};var n=t(\\\"./lib/text.js\\\"),i=t(\\\"./lib/lines.js\\\"),a=t(\\\"./lib/background.js\\\"),o=t(\\\"./lib/cube.js\\\"),s=t(\\\"./lib/ticks.js\\\"),l=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);function c(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function u(t){this.gl=t,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=a(t)}var f=u.prototype;function h(){this.primalOffset=[0,0,0],this.primalMinor=[0,0,0],this.mirrorOffset=[0,0,0],this.mirrorMinor=[0,0,0]}f.update=function(t){function e(e,r,n){if(n in t){var i,a=t[n],o=this[n];(e?Array.isArray(a)&&Array.isArray(a[0]):Array.isArray(a))?this[n]=i=[r(a[0]),r(a[1]),r(a[2])]:this[n]=i=[r(a),r(a),r(a)];for(var s=0;s<3;++s)if(i[s]!==o[s])return!0}return!1}t=t||{};var r,a=e.bind(this,!1,Number),o=e.bind(this,!1,Boolean),l=e.bind(this,!1,String),c=e.bind(this,!0,function(t){if(Array.isArray(t)){if(3===t.length)return[+t[0],+t[1],+t[2],1];if(4===t.length)return[+t[0],+t[1],+t[2],+t[3]]}return[0,0,0,1]}),u=!1,f=!1;if(\\\"bounds\\\"in t)for(var h=t.bounds,p=0;p<2;++p)for(var d=0;d<3;++d)h[p][d]!==this.bounds[p][d]&&(f=!0),this.bounds[p][d]=h[p][d];if(\\\"ticks\\\"in t){r=t.ticks,u=!0,this.autoTicks=!1;for(p=0;p<3;++p)this.tickSpacing[p]=0}else a(\\\"tickSpacing\\\")&&(this.autoTicks=!0,f=!0);if(this._firstInit&&(\\\"ticks\\\"in t||\\\"tickSpacing\\\"in t||(this.autoTicks=!0),f=!0,u=!0,this._firstInit=!1),f&&this.autoTicks&&(r=s.create(this.bounds,this.tickSpacing),u=!0),u){for(p=0;p<3;++p)r[p].sort(function(t,e){return t.x-e.x});s.equal(r,this.ticks)?u=!1:this.ticks=r}o(\\\"tickEnable\\\"),l(\\\"tickFont\\\")&&(u=!0),a(\\\"tickSize\\\"),a(\\\"tickAngle\\\"),a(\\\"tickPad\\\"),c(\\\"tickColor\\\");var g=l(\\\"labels\\\");l(\\\"labelFont\\\")&&(g=!0),o(\\\"labelEnable\\\"),a(\\\"labelSize\\\"),a(\\\"labelPad\\\"),c(\\\"labelColor\\\"),o(\\\"lineEnable\\\"),o(\\\"lineMirror\\\"),a(\\\"lineWidth\\\"),c(\\\"lineColor\\\"),o(\\\"lineTickEnable\\\"),o(\\\"lineTickMirror\\\"),a(\\\"lineTickLength\\\"),a(\\\"lineTickWidth\\\"),c(\\\"lineTickColor\\\"),o(\\\"gridEnable\\\"),a(\\\"gridWidth\\\"),c(\\\"gridColor\\\"),o(\\\"zeroEnable\\\"),c(\\\"zeroLineColor\\\"),a(\\\"zeroLineWidth\\\"),o(\\\"backgroundEnable\\\"),c(\\\"backgroundColor\\\"),this._text?this._text&&(g||u)&&this._text.update(this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont):this._text=n(this.gl,this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont),this._lines&&u&&(this._lines.dispose(),this._lines=null),this._lines||(this._lines=i(this.gl,this.bounds,this.ticks))};var p=[new h,new h,new h];function d(t,e,r,n,i){for(var a=t.primalOffset,o=t.primalMinor,s=t.mirrorOffset,l=t.mirrorMinor,c=n[e],u=0;u<3;++u)if(e!==u){var f=a,h=s,p=o,d=l;c&1<<u&&(f=s,h=a,p=l,d=o),f[u]=r[0][u],h[u]=r[1][u],i[u]>0?(p[u]=-1,d[u]=0):(p[u]=0,d[u]=1)}}var g=[0,0,0],v={model:l,view:l,projection:l};f.isOpaque=function(){return!0},f.isTransparent=function(){return!1},f.drawTransparent=function(t){};var m=[0,0,0],y=[0,0,0],x=[0,0,0];f.draw=function(t){t=t||v;for(var e=this.gl,r=t.model||l,n=t.view||l,i=t.projection||l,a=this.bounds,s=o(r,n,i,a),u=s.cubeEdges,f=s.axis,h=n[12],b=n[13],_=n[14],w=n[15],k=this.pixelRatio*(i[3]*h+i[7]*b+i[11]*_+i[15]*w)/e.drawingBufferHeight,M=0;M<3;++M)this.lastCubeProps.cubeEdges[M]=u[M],this.lastCubeProps.axis[M]=f[M];var A=p;for(M=0;M<3;++M)d(p[M],M,this.bounds,u,f);e=this.gl;var T,S=g;for(M=0;M<3;++M)this.backgroundEnable[M]?S[M]=f[M]:S[M]=0;this._background.draw(r,n,i,a,S,this.backgroundColor),this._lines.bind(r,n,i,this);for(M=0;M<3;++M){var E=[0,0,0];f[M]>0?E[M]=a[1][M]:E[M]=a[0][M];for(var C=0;C<2;++C){var L=(M+1+C)%3,z=(M+1+(1^C))%3;this.gridEnable[L]&&this._lines.drawGrid(L,z,this.bounds,E,this.gridColor[L],this.gridWidth[L]*this.pixelRatio)}for(C=0;C<2;++C){L=(M+1+C)%3,z=(M+1+(1^C))%3;this.zeroEnable[z]&&Math.min(a[0][z],a[1][z])<=0&&Math.max(a[0][z],a[1][z])>=0&&this._lines.drawZero(L,z,this.bounds,E,this.zeroLineColor[z],this.zeroLineWidth[z]*this.pixelRatio)}}for(M=0;M<3;++M){this.lineEnable[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].primalOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio),this.lineMirror[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].mirrorOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio);var O=c(m,A[M].primalMinor),I=c(y,A[M].mirrorMinor),P=this.lineTickLength;for(C=0;C<3;++C){var D=k/r[5*C];O[C]*=P[C]*D,I[C]*=P[C]*D}this.lineTickEnable[M]&&this._lines.drawAxisTicks(M,A[M].primalOffset,O,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio),this.lineTickMirror[M]&&this._lines.drawAxisTicks(M,A[M].mirrorOffset,I,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio)}this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio);var R,B;function F(t){(B=[0,0,0])[t]=1}function N(t,e,r){var n=(t+1)%3,i=(t+2)%3,a=e[n],o=e[i],s=r[n],l=r[i];a>0&&l>0?F(n):a>0&&l<0?F(n):a<0&&l>0?F(n):a<0&&l<0?F(n):o>0&&s>0?F(i):o>0&&s<0?F(i):o<0&&s>0?F(i):o<0&&s<0&&F(i)}for(M=0;M<3;++M){var j=A[M].primalMinor,V=A[M].mirrorMinor,U=c(x,A[M].primalOffset);for(C=0;C<3;++C)this.lineTickEnable[M]&&(U[C]+=k*j[C]*Math.max(this.lineTickLength[C],0)/r[5*C]);var q=[0,0,0];if(q[M]=1,this.tickEnable[M]){-3600===this.tickAngle[M]?(this.tickAngle[M]=0,this._tickAlign[M]=\\\"auto\\\"):this._tickAlign[M]=-1,R=1,\\\"auto\\\"===(T=[this._tickAlign[M],.5,R])[0]?T[0]=0:T[0]=parseInt(\\\"\\\"+T[0]),B=[0,0,0],N(M,j,V);for(C=0;C<3;++C)U[C]+=k*j[C]*this.tickPad[C]/r[5*C];this._text.drawTicks(M,this.tickSize[M],this.tickAngle[M],U,this.tickColor[M],q,B,T)}if(this.labelEnable[M]){R=0,B=[0,0,0],this.labels[M].length>4&&(F(M),R=1),\\\"auto\\\"===(T=[this._labelAlign[M],.5,R])[0]?T[0]=0:T[0]=parseInt(\\\"\\\"+T[0]);for(C=0;C<3;++C)U[C]+=k*j[C]*this.labelPad[C]/r[5*C];U[M]+=.5*(a[0][M]+a[1][M]),this._text.drawLabel(M,this.labelSize[M],this._labelAngle[M],U,this.labelColor[M],[0,0,0],B,T)}}this._text.unbind()},f.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\\\":223,\\\"./lib/cube.js\\\":224,\\\"./lib/lines.js\\\":225,\\\"./lib/text.js\\\":227,\\\"./lib/ticks.js\\\":228}],223:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var c=(l+1)%3,u=(l+2)%3,f=[0,0,0],h=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),f[l]=p,h[l]=p;for(var d=-1;d<=1;d+=2){f[c]=d;for(var g=-1;g<=1;g+=2)f[u]=g,e.push(f[0],f[1],f[2],h[0],h[1],h[2]),s+=1}var v=c;c=u,u=v}var m=n(t,new Float32Array(e)),y=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=i(t,[{buffer:m,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:m,type:t.FLOAT,size:3,offset:12,stride:24}],y),b=a(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,m,x,b)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"./shaders\\\").bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":226,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310}],224:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,a){i(s,e,t),i(s,r,s);for(var p=0,y=0;y<2;++y){u[2]=a[y][2];for(var x=0;x<2;++x){u[1]=a[x][1];for(var b=0;b<2;++b)u[0]=a[b][0],h(l[p],u,s),p+=1}}for(var _=-1,y=0;y<8;++y){for(var w=l[y][3],k=0;k<3;++k)c[y][k]=l[y][k]/w;w<0&&(_<0?_=y:c[y][2]<c[_][2]&&(_=y))}if(_<0){_=0;for(var M=0;M<3;++M){for(var A=(M+2)%3,T=(M+1)%3,S=-1,E=-1,C=0;C<2;++C){var L=C<<M,z=L+(C<<A)+(1-C<<T),O=L+(1-C<<A)+(C<<T);o(c[L],c[z],c[O],f)<0||(C?S=1:E=1)}if(S<0||E<0)E>S&&(_|=1<<M);else{for(var C=0;C<2;++C){var L=C<<M,z=L+(C<<A)+(1-C<<T),O=L+(1-C<<A)+(C<<T),I=d([l[L],l[z],l[O],l[L+(1<<A)+(1<<T)]]);C?S=I:E=I}E>S&&(_|=1<<M)}}}for(var P=7^_,D=-1,y=0;y<8;++y)y!==_&&y!==P&&(D<0?D=y:c[D][1]>c[y][1]&&(D=y));for(var R=-1,y=0;y<3;++y){var B=D^1<<y;if(B!==_&&B!==P){R<0&&(R=B);var T=c[B];T[0]<c[R][0]&&(R=B)}}for(var F=-1,y=0;y<3;++y){var B=D^1<<y;if(B!==_&&B!==P&&B!==R){F<0&&(F=B);var T=c[B];T[0]>c[F][0]&&(F=B)}}var N=g;N[0]=N[1]=N[2]=0,N[n.log2(R^D)]=D&R,N[n.log2(D^F)]=D&F;var j=7^F;j===_||j===P?(j=7^R,N[n.log2(F^j)]=j&F):N[n.log2(R^j)]=j&R;for(var V=v,U=_,M=0;M<3;++M)V[M]=U&1<<M?-1:1;return m};var n=t(\\\"bit-twiddle\\\"),i=t(\\\"gl-mat4/multiply\\\"),a=(t(\\\"gl-mat4/invert\\\"),t(\\\"split-polygon\\\")),o=t(\\\"robust-orientation\\\"),s=new Array(16),l=(new Array(16),new Array(8)),c=new Array(8),u=new Array(3),f=[0,0,0];function h(t,e,r){for(var n=0;n<4;++n){t[n]=r[12+n];for(var i=0;i<3;++i)t[n]+=e[i]*r[4*i+n]}}!function(){for(var t=0;t<8;++t)l[t]=[1,1,1,1],c[t]=[1,1,1]}();var p=[[0,0,1,0,0],[0,0,-1,1,0],[0,-1,0,1,0],[0,1,0,1,0],[-1,0,0,1,0],[1,0,0,1,0]];function d(t){for(var e=0;e<p.length;++e)if((t=a.positive(t,p[e])).length<3)return 0;var r=t[0],n=r[0]/r[3],i=r[1]/r[3],o=0;for(e=1;e+1<t.length;++e){var s=t[e],l=t[e+1],c=s[0]/s[3]-n,u=s[1]/s[3]-i,f=l[0]/l[3]-n,h=l[1]/l[3]-i;o+=Math.abs(c*h-u*f)}return o}var g=[1,1,1],v=[0,0,0],m={cubeEdges:g,axis:v}},{\\\"bit-twiddle\\\":80,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"robust-orientation\\\":486,\\\"split-polygon\\\":503}],225:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var o=[],s=[0,0,0],l=[0,0,0],c=[0,0,0],u=[0,0,0];o.push(0,0,1,0,1,1,0,0,-1,0,0,-1,0,1,1,0,1,-1);for(var f=0;f<3;++f){for(var h=o.length/3|0,d=0;d<r[f].length;++d){var g=+r[f][d].x;o.push(g,0,1,g,1,1,g,0,-1,g,0,-1,g,1,1,g,1,-1)}var v=o.length/3|0;s[f]=h,l[f]=v-h;for(var h=o.length/3|0,m=0;m<r[f].length;++m){var g=+r[f][m].x;o.push(g,0,1,g,1,1,g,0,-1,g,0,-1,g,1,1,g,1,-1)}var v=o.length/3|0;c[f]=h,u[f]=v-h}var y=n(t,new Float32Array(o)),x=i(t,[{buffer:y,type:t.FLOAT,size:3,stride:0,offset:0}]),b=a(t);return b.attributes.position.location=0,new p(t,y,x,b,l,s,u,c)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"./shaders\\\").line,o=[0,0,0],s=[0,0,0],l=[0,0,0],c=[0,0,0],u=[1,1];function f(t){return t[0]=t[1]=t[2]=0,t}function h(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function p(t,e,r,n,i,a,o,s){this.gl=t,this.vertBuffer=e,this.vao=r,this.shader=n,this.tickCount=i,this.tickOffset=a,this.gridCount=o,this.gridOffset=s}var d=p.prototype;d.bind=function(t,e,r){this.shader.bind(),this.shader.uniforms.model=t,this.shader.uniforms.view=e,this.shader.uniforms.projection=r,u[0]=this.gl.drawingBufferWidth,u[1]=this.gl.drawingBufferHeight,this.shader.uniforms.screenShape=u,this.vao.bind()},d.unbind=function(){this.vao.unbind()},d.drawAxisLine=function(t,e,r,n,i){var a=f(s);this.shader.uniforms.majorAxis=s,a[t]=e[1][t]-e[0][t],this.shader.uniforms.minorAxis=a;var o,u=h(c,r);u[t]+=e[0][t],this.shader.uniforms.offset=u,this.shader.uniforms.lineWidth=i,this.shader.uniforms.color=n,(o=f(l))[(t+2)%3]=1,this.shader.uniforms.screenAxis=o,this.vao.draw(this.gl.TRIANGLES,6),(o=f(l))[(t+1)%3]=1,this.shader.uniforms.screenAxis=o,this.vao.draw(this.gl.TRIANGLES,6)},d.drawAxisTicks=function(t,e,r,n,i){if(this.tickCount[t]){var a=f(o);a[t]=1,this.shader.uniforms.majorAxis=a,this.shader.uniforms.offset=e,this.shader.uniforms.minorAxis=r,this.shader.uniforms.color=n,this.shader.uniforms.lineWidth=i;var s=f(l);s[t]=1,this.shader.uniforms.screenAxis=s,this.vao.draw(this.gl.TRIANGLES,this.tickCount[t],this.tickOffset[t])}},d.drawGrid=function(t,e,r,n,i,a){if(this.gridCount[t]){var u=f(s);u[e]=r[1][e]-r[0][e],this.shader.uniforms.minorAxis=u;var p=h(c,n);p[e]+=r[0][e],this.shader.uniforms.offset=p;var d=f(o);d[t]=1,this.shader.uniforms.majorAxis=d;var g=f(l);g[t]=1,this.shader.uniforms.screenAxis=g,this.shader.uniforms.lineWidth=a,this.shader.uniforms.color=i,this.vao.draw(this.gl.TRIANGLES,this.gridCount[t],this.gridOffset[t])}},d.drawZero=function(t,e,r,n,i,a){var o=f(s);this.shader.uniforms.majorAxis=o,o[t]=r[1][t]-r[0][t],this.shader.uniforms.minorAxis=o;var u=h(c,n);u[t]+=r[0][t],this.shader.uniforms.offset=u;var p=f(l);p[e]=1,this.shader.uniforms.screenAxis=p,this.shader.uniforms.lineWidth=a,this.shader.uniforms.color=i,this.vao.draw(this.gl.TRIANGLES,6)},d.dispose=function(){this.vao.dispose(),this.vertBuffer.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":226,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310}],226:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"#define GLSLIFY 1\\\\nattribute vec3 position;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 offset, majorAxis, minorAxis, screenAxis;\\\\nuniform float lineWidth;\\\\nuniform vec2 screenShape;\\\\n\\\\nvec3 project(vec3 p) {\\\\n  vec4 pp = projection * view * model * vec4(p, 1.0);\\\\n  return pp.xyz / max(pp.w, 0.0001);\\\\n}\\\\n\\\\nvoid main() {\\\\n  vec3 major = position.x * majorAxis;\\\\n  vec3 minor = position.y * minorAxis;\\\\n\\\\n  vec3 vPosition = major + minor + offset;\\\\n  vec3 pPosition = project(vPosition);\\\\n  vec3 offset = project(vPosition + screenAxis * position.z);\\\\n\\\\n  vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;\\\\n\\\\n  gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);\\\\n}\\\\n\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\nuniform vec4 color;\\\\nvoid main() {\\\\n  gl_FragColor = color;\\\\n}\\\"]);r.line=function(t){return i(t,a,o,null,[{name:\\\"position\\\",type:\\\"vec3\\\"}])};var s=n([\\\"#define GLSLIFY 1\\\\nattribute vec3 position;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 offset, axis, alignDir, alignOpt;\\\\nuniform float scale, angle, pixelScale;\\\\nuniform vec2 resolution;\\\\n\\\\nvec3 project(vec3 p) {\\\\n  vec4 pp = projection * view * model * vec4(p, 1.0);\\\\n  return pp.xyz / max(pp.w, 0.0001);\\\\n}\\\\n\\\\nfloat computeViewAngle(vec3 a, vec3 b) {\\\\n  vec3 A = project(a);\\\\n  vec3 B = project(b);\\\\n\\\\n  return atan(\\\\n    (B.y - A.y) * resolution.y,\\\\n    (B.x - A.x) * resolution.x\\\\n  );\\\\n}\\\\n\\\\nconst float PI = 3.141592;\\\\nconst float TWO_PI = 2.0 * PI;\\\\nconst float HALF_PI = 0.5 * PI;\\\\nconst float ONE_AND_HALF_PI = 1.5 * PI;\\\\n\\\\nint option = int(floor(alignOpt.x + 0.001));\\\\nfloat hv_ratio =       alignOpt.y;\\\\nbool enableAlign =    (alignOpt.z != 0.0);\\\\n\\\\nfloat mod_angle(float a) {\\\\n  return mod(a, PI);\\\\n}\\\\n\\\\nfloat positive_angle(float a) {\\\\n  return mod_angle((a < 0.0) ?\\\\n    a + TWO_PI :\\\\n    a\\\\n  );\\\\n}\\\\n\\\\nfloat look_upwards(float a) {\\\\n  float b = positive_angle(a);\\\\n  return ((b > HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\\\\n    b - PI :\\\\n    b;\\\\n}\\\\n\\\\nfloat look_horizontal_or_vertical(float a, float ratio) {\\\\n  // ratio controls the ratio between being horizontal to (vertical + horizontal)\\\\n  // if ratio is set to 0.5 then it is 50%, 50%.\\\\n  // when using a higher ratio e.g. 0.75 the result would\\\\n  // likely be more horizontal than vertical.\\\\n\\\\n  float b = positive_angle(a);\\\\n\\\\n  return\\\\n    (b < (      ratio) * HALF_PI) ? 0.0 :\\\\n    (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\\\\n    (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\\\\n    (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\\\\n                                    0.0;\\\\n}\\\\n\\\\nfloat roundTo(float a, float b) {\\\\n  return float(b * floor((a + 0.5 * b) / b));\\\\n}\\\\n\\\\nfloat look_round_n_directions(float a, int n) {\\\\n  float b = positive_angle(a);\\\\n  float div = TWO_PI / float(n);\\\\n  float c = roundTo(b, div);\\\\n  return look_upwards(c);\\\\n}\\\\n\\\\nfloat applyAlignOption(float rawAngle, float delta) {\\\\n  return\\\\n    (option >  2) ? look_round_n_directions(rawAngle + delta, option) :       // option 3-n: round to n directions\\\\n    (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\\\\n    (option == 1) ? rawAngle + delta :       // use free angle, and flip to align with one direction of the axis\\\\n    (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\\\\n    (option ==-1) ? 0.0 :                    // useful for backward compatibility, all texts remains horizontal\\\\n                    rawAngle;                // otherwise return back raw input angle\\\\n}\\\\n\\\\nbool isAxisTitle = (axis.x == 0.0) &&\\\\n                   (axis.y == 0.0) &&\\\\n                   (axis.z == 0.0);\\\\n\\\\nvoid main() {\\\\n  //Compute world offset\\\\n  float axisDistance = position.z;\\\\n  vec3 dataPosition = axisDistance * axis + offset;\\\\n\\\\n  float beta = angle; // i.e. user defined attributes for each tick\\\\n\\\\n  float axisAngle;\\\\n  float clipAngle;\\\\n  float flip;\\\\n\\\\n  if (enableAlign) {\\\\n    axisAngle = (isAxisTitle) ? HALF_PI :\\\\n                      computeViewAngle(dataPosition, dataPosition + axis);\\\\n    clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\\\\n\\\\n    axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\\\\n    clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\\\\n\\\\n    flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\\\\n                vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\\\\n\\\\n    beta += applyAlignOption(clipAngle, flip * PI);\\\\n  }\\\\n\\\\n  //Compute plane offset\\\\n  vec2 planeCoord = position.xy * pixelScale;\\\\n\\\\n  mat2 planeXform = scale * mat2(\\\\n     cos(beta), sin(beta),\\\\n    -sin(beta), cos(beta)\\\\n  );\\\\n\\\\n  vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\\\\n\\\\n  //Compute clip position\\\\n  vec3 clipPosition = project(dataPosition);\\\\n\\\\n  //Apply text offset in clip coordinates\\\\n  clipPosition += vec3(viewOffset, 0.0);\\\\n\\\\n  //Done\\\\n  gl_Position = vec4(clipPosition, 1.0);\\\\n}\\\"]),l=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\nuniform vec4 color;\\\\nvoid main() {\\\\n  gl_FragColor = color;\\\\n}\\\"]);r.text=function(t){return i(t,s,l,null,[{name:\\\"position\\\",type:\\\"vec3\\\"}])};var c=n([\\\"#define GLSLIFY 1\\\\nattribute vec3 position;\\\\nattribute vec3 normal;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 enable;\\\\nuniform vec3 bounds[2];\\\\n\\\\nvarying vec3 colorChannel;\\\\n\\\\nvoid main() {\\\\n\\\\n  vec3 signAxis = sign(bounds[1] - bounds[0]);\\\\n\\\\n  vec3 realNormal = signAxis * normal;\\\\n\\\\n  if(dot(realNormal, enable) > 0.0) {\\\\n    vec3 minRange = min(bounds[0], bounds[1]);\\\\n    vec3 maxRange = max(bounds[0], bounds[1]);\\\\n    vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\\\\n    gl_Position = projection * view * model * vec4(nPosition, 1.0);\\\\n  } else {\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  }\\\\n\\\\n  colorChannel = abs(realNormal);\\\\n}\\\"]),u=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform vec4 colors[3];\\\\n\\\\nvarying vec3 colorChannel;\\\\n\\\\nvoid main() {\\\\n  gl_FragColor = colorChannel.x * colors[0] +\\\\n                 colorChannel.y * colors[1] +\\\\n                 colorChannel.z * colors[2];\\\\n}\\\"]);r.bg=function(t){return i(t,c,u,null,[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"}])}},{\\\"gl-shader\\\":288,glslify:392}],227:[function(t,e,r){(function(r){\\\"use strict\\\";e.exports=function(t,e,r,a,s,l){var u=n(t),f=i(t,[{buffer:u,size:3}]),h=o(t);h.attributes.position.location=0;var p=new c(t,h,u,f);return p.update(e,r,a,s,l),p};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"vectorize-text\\\"),o=t(\\\"./shaders\\\").text,s=window||r.global||{},l=s.__TEXT_CACHE||{};s.__TEXT_CACHE={};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}var u=c.prototype,f=[0,0];u.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var i=this.shader.uniforms;i.model=t,i.view=e,i.projection=r,i.pixelScale=n,f[0]=this.gl.drawingBufferWidth,f[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=f},u.unbind=function(){this.vao.unbind()},u.update=function(t,e,r,n,i){this.gl;var o=[];function s(t,e,r,n){var i=l[r];i||(i=l[r]={});var s=i[e];s||(s=i[e]=function(t,e){try{return a(t,e)}catch(t){return console.warn(\\\"error vectorizing text:\\\",t),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:\\\"center\\\",textBaseline:\\\"middle\\\"}));for(var c=(n||12)/12,u=s.positions,f=s.cells,h=0,p=f.length;h<p;++h)for(var d=f[h],g=2;g>=0;--g){var v=u[d[g]];o.push(c*v[0],-c*v[1],t)}}for(var c=[0,0,0],u=[0,0,0],f=[0,0,0],h=[0,0,0],p=0;p<3;++p){f[p]=o.length/3|0,s(.5*(t[0][p]+t[1][p]),e[p],r),h[p]=(o.length/3|0)-f[p],c[p]=o.length/3|0;for(var d=0;d<n[p].length;++d)n[p][d].text&&s(n[p][d].x,n[p][d].text,n[p][d].font||i,n[p][d].fontSize||12);u[p]=(o.length/3|0)-c[p]}this.buffer.update(o),this.tickOffset=c,this.tickCount=u,this.labelOffset=f,this.labelCount=h},u.drawTicks=function(t,e,r,n,i,a,o,s){this.tickCount[t]&&(this.shader.uniforms.axis=a,this.shader.uniforms.color=i,this.shader.uniforms.angle=r,this.shader.uniforms.scale=e,this.shader.uniforms.offset=n,this.shader.uniforms.alignDir=o,this.shader.uniforms.alignOpt=s,this.vao.draw(this.gl.TRIANGLES,this.tickCount[t],this.tickOffset[t]))},u.drawLabel=function(t,e,r,n,i,a,o,s){this.labelCount[t]&&(this.shader.uniforms.axis=a,this.shader.uniforms.color=i,this.shader.uniforms.angle=r,this.shader.uniforms.scale=e,this.shader.uniforms.offset=n,this.shader.uniforms.alignDir=o,this.shader.uniforms.alignOpt=s,this.vao.draw(this.gl.TRIANGLES,this.labelCount[t],this.labelOffset[t]))},u.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()}}).call(this,t(\\\"_process\\\"))},{\\\"./shaders\\\":226,_process:465,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310,\\\"vectorize-text\\\":527}],228:[function(t,e,r){\\\"use strict\\\";function n(t,e){var r=t+\\\"\\\",n=r.indexOf(\\\".\\\"),i=0;n>=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+\\\"\\\";if(s.indexOf(\\\"e\\\")>=0)return s;var l=o/a,c=o%a;o<0?(l=0|-Math.ceil(l),c=0|-c):(l=0|Math.floor(l),c|=0);var u=\\\"\\\"+l;if(o<0&&(u=\\\"-\\\"+u),i){for(var f=\\\"\\\"+c;f.length<i;)f=\\\"0\\\"+f;return u+\\\".\\\"+f}return u}r.create=function(t,e){for(var r=[],i=0;i<3;++i){for(var a=[],o=(t[0][i],t[1][i],0);o*e[i]<=t[1][i];++o)a.push({x:o*e[i],text:n(e[i],o)});for(var o=-1;o*e[i]>=t[0][i];--o)a.push({x:o*e[i],text:n(e[i],o)});r.push(a)}return r},r.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n<t[r].length;++n){var i=t[r][n],a=e[r][n];if(i.x!==a.x||i.text!==a.text||i.font!==a.font||i.fontColor!==a.fontColor||i.fontSize!==a.fontSize||i.dx!==a.dx||i.dy!==a.dy)return!1}}return!0}},{}],229:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,l,f){var h=e.model||c,p=e.view||c,m=e.projection||c,y=t.bounds,x=(f=f||a(h,p,m,y)).axis;f.edges;o(u,p,h),o(u,m,u);for(var b=g,_=0;_<3;++_)b[_].lo=1/0,b[_].hi=-1/0,b[_].pixelsPerDataUnit=1/0;var w=n(s(u,u));s(u,u);for(var k=0;k<3;++k){var M=(k+1)%3,A=(k+2)%3,T=v;t:for(var _=0;_<2;++_){var S=[];if(x[k]<0!=!!_){T[k]=y[_][k];for(var E=0;E<2;++E){T[M]=y[E^_][M];for(var C=0;C<2;++C)T[A]=y[C^E^_][A],S.push(T.slice())}for(var E=0;E<w.length;++E){if(0===S.length)continue t;S=i.positive(S,w[E])}for(var E=0;E<S.length;++E)for(var A=S[E],L=d(v,u,A,r,l),C=0;C<3;++C)b[C].lo=Math.min(b[C].lo,A[C]),b[C].hi=Math.max(b[C].hi,A[C]),C!==k&&(b[C].pixelsPerDataUnit=Math.min(b[C].pixelsPerDataUnit,Math.abs(L[C])))}}}return b};var n=t(\\\"extract-frustum-planes\\\"),i=t(\\\"split-polygon\\\"),a=t(\\\"./lib/cube.js\\\"),o=t(\\\"gl-mat4/multiply\\\"),s=t(\\\"gl-mat4/transpose\\\"),l=t(\\\"gl-vec4/transformMat4\\\"),c=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),u=new Float32Array(16);function f(t,e,r){this.lo=t,this.hi=e,this.pixelsPerDataUnit=r}var h=[0,0,0,1],p=[0,0,0,1];function d(t,e,r,n,i){for(var a=0;a<3;++a){for(var o=h,s=p,c=0;c<3;++c)s[c]=o[c]=r[c];s[3]=o[3]=1,s[a]+=1,l(s,s,e),s[3]<0&&(t[a]=1/0),o[a]-=1,l(o,o,e),o[3]<0&&(t[a]=1/0);var u=(o[0]/o[3]-s[0]/s[3])*n,f=(o[1]/o[3]-s[1]/s[3])*i;t[a]=.25*Math.sqrt(u*u+f*f)}return t}var g=[new f(1/0,-1/0,1/0),new f(1/0,-1/0,1/0),new f(1/0,-1/0,1/0)],v=[0,0,0]},{\\\"./lib/cube.js\\\":224,\\\"extract-frustum-planes\\\":213,\\\"gl-mat4/multiply\\\":256,\\\"gl-mat4/transpose\\\":264,\\\"gl-vec4/transformMat4\\\":381,\\\"split-polygon\\\":503}],230:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"typedarray-pool\\\"),i=t(\\\"ndarray-ops\\\"),a=t(\\\"ndarray\\\"),o=[\\\"uint8\\\",\\\"uint8_clamped\\\",\\\"uint16\\\",\\\"uint32\\\",\\\"int8\\\",\\\"int16\\\",\\\"int32\\\",\\\"float32\\\"];function s(t,e,r,n,i){this.gl=t,this.type=e,this.handle=r,this.length=n,this.usage=i}var l=s.prototype;function c(t,e,r,n,i,a){var o=i.length*i.BYTES_PER_ELEMENT;if(a<0)return t.bufferData(e,i,n),o;if(o+a>r)throw new Error(\\\"gl-buffer: If resizing buffer, must not specify offset\\\");return t.bufferSubData(e,a,i),r}function u(t,e){for(var r=n.malloc(t.length,e),i=t.length,a=0;a<i;++a)r[a]=t[a];return r}l.bind=function(){this.gl.bindBuffer(this.type,this.handle)},l.unbind=function(){this.gl.bindBuffer(this.type,null)},l.dispose=function(){this.gl.deleteBuffer(this.handle)},l.update=function(t,e){if(\\\"number\\\"!=typeof e&&(e=-1),this.bind(),\\\"object\\\"==typeof t&&\\\"undefined\\\"!=typeof t.shape){var r=t.dtype;if(o.indexOf(r)<0&&(r=\\\"float32\\\"),this.type===this.gl.ELEMENT_ARRAY_BUFFER)r=gl.getExtension(\\\"OES_element_index_uint\\\")&&\\\"uint16\\\"!==r?\\\"uint32\\\":\\\"uint16\\\";if(r===t.dtype&&function(t,e){for(var r=1,n=e.length-1;n>=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=c(this.gl,this.type,this.length,this.usage,t.data,e):this.length=c(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=a(s,t.shape);i.assign(l,t),this.length=c(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var f;f=this.type===this.gl.ELEMENT_ARRAY_BUFFER?u(t,\\\"uint16\\\"):u(t,\\\"float32\\\"),this.length=c(this.gl,this.type,this.length,this.usage,e<0?f:f.subarray(0,t.length),e),n.free(f)}else if(\\\"object\\\"==typeof t&&\\\"number\\\"==typeof t.length)this.length=c(this.gl,this.type,this.length,this.usage,t,e);else{if(\\\"number\\\"!=typeof t&&void 0!==t)throw new Error(\\\"gl-buffer: Invalid data type\\\");if(e>=0)throw new Error(\\\"gl-buffer: Cannot specify offset when resizing buffer\\\");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},e.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.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(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.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 i=t.createBuffer(),a=new s(t,r,i,0,n);return a.update(e),a}},{ndarray:433,\\\"ndarray-ops\\\":427,\\\"typedarray-pool\\\":522}],231:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-vec3\\\"),i=(t(\\\"gl-vec4\\\"),function(t,e){for(var r=0;r<t.length;r++)if(t[r]>=e)return r-1;return r}),a=n.create(),o=n.create(),s=function(t,e,r){return t<e?e:t>r?r:t},l=function(t,e,r,l){var c=t[0],u=t[1],f=t[2],h=r[0].length,p=r[1].length,d=r[2].length,g=i(r[0],c),v=i(r[1],u),m=i(r[2],f),y=g+1,x=v+1,b=m+1;if(l&&(g=s(g,0,h-1),y=s(y,0,h-1),v=s(v,0,p-1),x=s(x,0,p-1),m=s(m,0,d-1),b=s(b,0,d-1)),g<0||v<0||m<0||y>=h||x>=p||b>=d)return n.create();var _=(c-r[0][g])/(r[0][y]-r[0][g]),w=(u-r[1][v])/(r[1][x]-r[1][v]),k=(f-r[2][m])/(r[2][b]-r[2][m]);(_<0||_>1||isNaN(_))&&(_=0),(w<0||w>1||isNaN(w))&&(w=0),(k<0||k>1||isNaN(k))&&(k=0);var M=m*h*p,A=b*h*p,T=v*h,S=x*h,E=g,C=y,L=e[T+M+E],z=e[T+M+C],O=e[S+M+E],I=e[S+M+C],P=e[T+A+E],D=e[T+A+C],R=e[S+A+E],B=e[S+A+C],F=n.create();return n.lerp(F,L,z,_),n.lerp(a,O,I,_),n.lerp(F,F,a,w),n.lerp(a,P,D,_),n.lerp(o,R,B,_),n.lerp(a,a,o,w),n.lerp(F,F,a,k),F};e.exports=function(t,e){var r;r=t.positions?t.positions:function(t){for(var e=t[0],r=t[1],n=t[2],i=[],a=0;a<n.length;a++)for(var o=0;o<r.length;o++)for(var s=0;s<e.length;s++)i.push([n[a],r[o],e[s]]);return i}(t.meshgrid);var i=t.meshgrid,a=t.vectors,o={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vertexNormals:[],vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),o;for(var s=0,c=1/0,u=-1/0,f=1/0,h=-1/0,p=1/0,d=-1/0,g=null,v=null,m=[],y=1/0,x=0;x<r.length;x++){var b,_=r[x];c=Math.min(_[0],c),u=Math.max(_[0],u),f=Math.min(_[1],f),h=Math.max(_[1],h),p=Math.min(_[2],p),d=Math.max(_[2],d),b=i?l(_,a,i,!0):a[x],n.length(b)>s&&(s=n.length(b)),x&&(y=Math.min(y,2*n.distance(g,_)/(n.length(v)+n.length(b)))),g=_,v=b,m.push(b)}var w=[c,f,p],k=[u,h,d];e&&(e[0]=w,e[1]=k),0===s&&(s=1);var M=1/s;isFinite(y)&&!isNaN(y)||(y=1),o.vectorScale=y;var A=function(t,e,r){var i=n.create();return void 0!==t&&n.set(i,t,e,r),i}(0,1,0),T=t.coneSize||.5;t.absoluteConeSize&&(T=t.absoluteConeSize*M),o.coneScale=T;x=0;for(var S=0;x<r.length;x++)for(var E=(_=r[x])[0],C=_[1],L=_[2],z=m[x],O=n.length(z)*M,I=0;I<8;I++){o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.vectors.push(z),o.vectors.push(z),o.vectors.push(z),o.vectors.push(z),o.vectors.push(z),o.vectors.push(z),o.vertexIntensity.push(O,O,O),o.vertexIntensity.push(O,O,O),o.vertexNormals.push(A,A,A),o.vertexNormals.push(A,A,A);var P=o.positions.length;o.cells.push([P-6,P-5,P-4],[P-3,P-2,P-1])}return o},e.exports.createConeMesh=t(\\\"./lib/conemesh\\\")},{\\\"./lib/conemesh\\\":233,\\\"gl-vec3\\\":329,\\\"gl-vec4\\\":365}],232:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"barycentric\\\"),i=t(\\\"polytope-closest-point/lib/closest_point_2d.js\\\");function a(t,e){for(var r=[0,0,0,0],n=0;n<4;++n)for(var i=0;i<4;++i)r[i]+=t[4*n+i]*e[n];return r}function o(t,e,r,n,i){for(var o=a(n,a(r,a(e,[t[0],t[1],t[2],1]))),s=0;s<3;++s)o[s]/=o[3];return[.5*i[0]*(1+o[0]),.5*i[1]*(1-o[1])]}e.exports=function(t,e,r,a,s,l){if(1===t.length)return[0,t[0].slice()];for(var c=new Array(t.length),u=0;u<t.length;++u)c[u]=o(t[u],r,a,s,l);for(var f=0,h=1/0,u=0;u<c.length;++u){for(var p=0,d=0;d<2;++d)p+=Math.pow(c[u][d]-e[d],2);p<h&&(h=p,f=u)}for(var g=function(t,e){if(2===t.length){for(var r=0,a=0,o=0;o<2;++o)r+=Math.pow(e[o]-t[0][o],2),a+=Math.pow(e[o]-t[1][o],2);return r=Math.sqrt(r),a=Math.sqrt(a),r+a<1e-6?[1,0]:[a/(r+a),r/(a+r)]}if(3===t.length){var s=[0,0];return i(t[0],t[1],t[2],e,s),n(t,s)}return[]}(c,e),v=0,u=0;u<3;++u){if(g[u]<-.001||g[u]>1.0001)return null;v+=g[u]}if(Math.abs(v-1)>.001)return null;return[f,function(t,e){for(var r=[0,0,0],n=0;n<t.length;++n)for(var i=t[n],a=e[n],o=0;o<3;++o)r[o]+=a*i[o];return r}(t,g),g]}},{barycentric:61,\\\"polytope-closest-point/lib/closest_point_2d.js\\\":464}],233:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"gl-texture2d\\\"),s=t(\\\"normals\\\"),l=t(\\\"gl-mat4/multiply\\\"),c=t(\\\"gl-mat4/invert\\\"),u=t(\\\"ndarray\\\"),f=t(\\\"colormap\\\"),h=t(\\\"simplicial-complex-contour\\\"),p=t(\\\"typedarray-pool\\\"),d=t(\\\"./shaders\\\"),g=(t(\\\"./closest-point\\\"),d.meshShader),v=d.pickShader,m=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function y(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,v,y,x,b,_,w,k,M,A,T,S,E){this.gl=t,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleVectors=c,this.triangleColors=f,this.triangleNormals=p,this.triangleUVs=h,this.triangleIds=u,this.triangleVAO=d,this.triangleCount=0,this.lineWidth=1,this.edgePositions=g,this.edgeColors=y,this.edgeUVs=x,this.edgeIds=v,this.edgeVAO=b,this.edgeCount=0,this.pointPositions=_,this.pointColors=k,this.pointUVs=M,this.pointSizes=A,this.pointIds=w,this.pointVAO=T,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=S,this.contourVAO=E,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!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.coneScale=2,this.vectorScale=1,this.coneOffset=.25,this._model=m,this._view=m,this._projection=m,this._resolution=[1,1]}var x=y.prototype;function b(t){var e=n(t,v.vertex,v.fragment,null,v.attributes);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.vector.location=5,e}x.isOpaque=function(){return this.opacity>=1},x.isTransparent=function(){return this.opacity<1},x.pickSlots=1,x.setPickBase=function(t){this.pickId=t},x.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l<a;++l)for(var c=r[l],u=0;u<2;++u){var f=c[0];2===c.length&&(f=c[u]);for(var d=n[f][0],g=n[f][1],v=i[f],m=1-v,y=this.positions[d],x=this.positions[g],b=0;b<3;++b)o[s++]=v*y[b]+m*x[b]}this.contourCount=s/3|0,this.contourPositions.update(o.subarray(0,s)),p.free(o)}else this.contourCount=0},x.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,\\\"contourEnable\\\"in t&&(this.contourEnable=t.contourEnable),\\\"contourColor\\\"in t&&(this.contourColor=t.contourColor),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"lightPosition\\\"in t&&(this.lightPosition=t.lightPosition),\\\"opacity\\\"in t&&(this.opacity=t.opacity),\\\"ambient\\\"in t&&(this.ambientLight=t.ambient),\\\"diffuse\\\"in t&&(this.diffuseLight=t.diffuse),\\\"specular\\\"in t&&(this.specularLight=t.specular),\\\"roughness\\\"in t&&(this.roughness=t.roughness),\\\"fresnel\\\"in t&&(this.fresnel=t.fresnel),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.texture?(this.texture.dispose(),this.texture=o(e,t.texture)):t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=f({colormap:t,nshades:256,format:\\\"rgba\\\"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){var a=[],l=[],c=[],h=[],p=[],d=[],g=[],v=[],m=[],y=[],x=[],b=[],_=[],w=[],k=[];this.cells=r,this.positions=n;var M=t.vertexNormals,A=t.cellNormals,T=void 0===t.vertexNormalsEpsilon?1e-6:t.vertexNormalsEpsilon,S=void 0===t.faceNormalsEpsilon?1e-6:t.faceNormalsEpsilon;t.useFacetNormals&&!A&&(A=s.faceNormals(r,n,S)),A||M||(M=s.vertexNormals(r,n,T));var E=t.vertexColors,C=t.cellColors,L=t.meshColor||[1,1,1,1],z=t.vertexUVs,O=t.vertexIntensity,I=t.cellUVs,P=t.cellIntensity,D=1/0,R=-1/0;if(!z&&!I)if(O)if(t.vertexIntensityBounds)D=+t.vertexIntensityBounds[0],R=+t.vertexIntensityBounds[1];else for(var B=0;B<O.length;++B){var F=O[B];D=Math.min(D,F),R=Math.max(R,F)}else if(P)for(B=0;B<P.length;++B){F=P[B];D=Math.min(D,F),R=Math.max(R,F)}else for(B=0;B<n.length;++B){F=n[B][2];D=Math.min(D,F),R=Math.max(R,F)}this.intensity=O||(P?function(t,e,r){for(var n=new Array(e),i=0;i<e;++i)n[i]=0;var a=t.length;for(i=0;i<a;++i)for(var o=t[i],s=0;s<o.length;++s)n[o[s]]=r[i];return n}(r,n.length,P):function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n));var N=t.pointSizes,j=t.pointSize||1;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(B=0;B<n.length;++B)for(var V=n[B],U=0;U<3;++U)!isNaN(V[U])&&isFinite(V[U])&&(this.bounds[0][U]=Math.min(this.bounds[0][U],V[U]),this.bounds[1][U]=Math.max(this.bounds[1][U],V[U]));var q=0,H=0,G=0;t:for(B=0;B<r.length;++B){var W=r[B];switch(W.length){case 1:for(V=n[X=W[0]],U=0;U<3;++U)if(isNaN(V[U])||!isFinite(V[U]))continue t;x.push(V[0],V[1],V[2],V[3]),3===(Z=E?E[X]:C?C[B]:L).length?b.push(Z[0],Z[1],Z[2],1):b.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],_.push($[0],$[1]),N?w.push(N[X]):w.push(j),k.push(B),G+=1;break;case 2:for(U=0;U<2;++U){V=n[X=W[U]];for(var Y=0;Y<3;++Y)if(isNaN(V[Y])||!isFinite(V[Y]))continue t}for(U=0;U<2;++U){V=n[X=W[U]];g.push(V[0],V[1],V[2]),3===(Z=E?E[X]:C?C[B]:L).length?v.push(Z[0],Z[1],Z[2],1):v.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],m.push($[0],$[1]),y.push(B)}H+=1;break;case 3:for(U=0;U<3;++U)for(V=n[X=W[U]],Y=0;Y<3;++Y)if(isNaN(V[Y])||!isFinite(V[Y]))continue t;for(U=0;U<3;++U){var X;V=n[X=W[U]];a.push(V[0],V[1],V[2],V[3]);var Z,$,J,K=i[X];l.push(K[0],K[1],K[2]),3===(Z=E?E[X]:C?C[B]:L).length?c.push(Z[0],Z[1],Z[2],1):c.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],p.push($[0],$[1]),J=M?M[X]:A[B],h.push(J[0],J[1],J[2]),d.push(B)}q+=1}}this.pointCount=G,this.edgeCount=H,this.triangleCount=q,this.pointPositions.update(x),this.pointColors.update(b),this.pointUVs.update(_),this.pointSizes.update(w),this.pointIds.update(new Uint32Array(k)),this.edgePositions.update(g),this.edgeColors.update(v),this.edgeUVs.update(m),this.edgeIds.update(new Uint32Array(y)),this.trianglePositions.update(a),this.triangleVectors.update(l),this.triangleColors.update(c),this.triangleUVs.update(p),this.triangleNormals.update(h),this.triangleIds.update(new Uint32Array(d))}},x.drawTransparent=x.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||m,n=t.view||m,i=t.projection||m,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);var s={model:r,view:n,projection:i,clipBounds:a,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],opacity:this.opacity,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,contourColor:this.contourColor,texture:0};this.texture.bind(0);var u=new Array(16);l(u,s.view,s.model),l(u,s.projection,u),c(u,u);for(o=0;o<3;++o)s.eyePosition[o]=u[12+o]/u[15];var f,h=u[15];for(o=0;o<3;++o)h+=this.lightPosition[o]*u[4*o+3];for(o=0;o<3;++o){for(var p=u[12+o],d=0;d<3;++d)p+=u[4*d+o]*this.lightPosition[d];s.lightPosition[o]=p/h}this.triangleCount>0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},x.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||m,n=t.view||m,i=t.projection||m,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},x.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3);return{index:Math.floor(r[1]/48),position:n,dataCoordinate:n}},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.triangleNormals.dispose(),this.triangleIds.dispose(),this.edgeVAO.dispose(),this.edgePositions.dispose(),this.edgeColors.dispose(),this.edgeUVs.dispose(),this.edgeIds.dispose(),this.pointVAO.dispose(),this.pointPositions.dispose(),this.pointColors.dispose(),this.pointUVs.dispose(),this.pointSizes.dispose(),this.pointIds.dispose(),this.contourVAO.dispose(),this.contourPositions.dispose()},e.exports=function(t,e){1===arguments.length&&(t=(e=t).gl);var r=e.triShader||function(t){var e=n(t,g.vertex,g.fragment,null,g.attributes);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.vector.location=5,e}(t),s=b(t),l=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));l.generateMipmap(),l.minFilter=t.LINEAR_MIPMAP_LINEAR,l.magFilter=t.LINEAR;var c=i(t),f=i(t),h=i(t),p=i(t),d=i(t),v=i(t),m=a(t,[{buffer:c,type:t.FLOAT,size:4},{buffer:v,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:h,type:t.FLOAT,size:4},{buffer:p,type:t.FLOAT,size:2},{buffer:d,type:t.FLOAT,size:3},{buffer:f,type:t.FLOAT,size:3}]),x=i(t),_=i(t),w=i(t),k=i(t),M=a(t,[{buffer:x,type:t.FLOAT,size:3},{buffer:k,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:_,type:t.FLOAT,size:4},{buffer:w,type:t.FLOAT,size:2}]),A=i(t),T=i(t),S=i(t),E=i(t),C=i(t),L=a(t,[{buffer:A,type:t.FLOAT,size:3},{buffer:C,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:T,type:t.FLOAT,size:4},{buffer:S,type:t.FLOAT,size:2},{buffer:E,type:t.FLOAT,size:1}]),z=i(t),O=new y(t,l,r,null,null,s,null,null,c,f,v,h,p,d,m,x,k,_,w,M,A,C,T,S,E,L,z,a(t,[{buffer:z,type:t.FLOAT,size:3}]));return O.update(e),O}},{\\\"./closest-point\\\":232,\\\"./shaders\\\":234,colormap:114,\\\"gl-buffer\\\":230,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"gl-shader\\\":288,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,ndarray:433,normals:436,\\\"simplicial-complex-contour\\\":494,\\\"typedarray-pool\\\":522}],234:[function(t,e,r){var n=t(\\\"glslify\\\"),i=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat inverse(float m) {\\\\n  return 1.0 / m;\\\\n}\\\\n\\\\nmat2 inverse(mat2 m) {\\\\n  return mat2(m[1][1],-m[0][1],\\\\n             -m[1][0], m[0][0]) / (m[0][0]*m[1][1] - m[0][1]*m[1][0]);\\\\n}\\\\n\\\\nmat3 inverse(mat3 m) {\\\\n  float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2];\\\\n  float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2];\\\\n  float a20 = m[2][0], a21 = m[2][1], a22 = m[2][2];\\\\n\\\\n  float b01 = a22 * a11 - a12 * a21;\\\\n  float b11 = -a22 * a10 + a12 * a20;\\\\n  float b21 = a21 * a10 - a11 * a20;\\\\n\\\\n  float det = a00 * b01 + a01 * b11 + a02 * b21;\\\\n\\\\n  return mat3(b01, (-a22 * a01 + a02 * a21), (a12 * a01 - a02 * a11),\\\\n              b11, (a22 * a00 - a02 * a20), (-a12 * a00 + a02 * a10),\\\\n              b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det;\\\\n}\\\\n\\\\nmat4 inverse(mat4 m) {\\\\n  float\\\\n      a00 = m[0][0], a01 = m[0][1], a02 = m[0][2], a03 = m[0][3],\\\\n      a10 = m[1][0], a11 = m[1][1], a12 = m[1][2], a13 = m[1][3],\\\\n      a20 = m[2][0], a21 = m[2][1], a22 = m[2][2], a23 = m[2][3],\\\\n      a30 = m[3][0], a31 = m[3][1], a32 = m[3][2], a33 = m[3][3],\\\\n\\\\n      b00 = a00 * a11 - a01 * a10,\\\\n      b01 = a00 * a12 - a02 * a10,\\\\n      b02 = a00 * a13 - a03 * a10,\\\\n      b03 = a01 * a12 - a02 * a11,\\\\n      b04 = a01 * a13 - a03 * a11,\\\\n      b05 = a02 * a13 - a03 * a12,\\\\n      b06 = a20 * a31 - a21 * a30,\\\\n      b07 = a20 * a32 - a22 * a30,\\\\n      b08 = a20 * a33 - a23 * a30,\\\\n      b09 = a21 * a32 - a22 * a31,\\\\n      b10 = a21 * a33 - a23 * a31,\\\\n      b11 = a22 * a33 - a23 * a32,\\\\n\\\\n      det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\\\\n\\\\n  return mat4(\\\\n      a11 * b11 - a12 * b10 + a13 * b09,\\\\n      a02 * b10 - a01 * b11 - a03 * b09,\\\\n      a31 * b05 - a32 * b04 + a33 * b03,\\\\n      a22 * b04 - a21 * b05 - a23 * b03,\\\\n      a12 * b08 - a10 * b11 - a13 * b07,\\\\n      a00 * b11 - a02 * b08 + a03 * b07,\\\\n      a32 * b02 - a30 * b05 - a33 * b01,\\\\n      a20 * b05 - a22 * b02 + a23 * b01,\\\\n      a10 * b10 - a11 * b08 + a13 * b06,\\\\n      a01 * b08 - a00 * b10 - a03 * b06,\\\\n      a30 * b04 - a31 * b02 + a33 * b00,\\\\n      a21 * b02 - a20 * b04 - a23 * b00,\\\\n      a11 * b07 - a10 * b09 - a12 * b06,\\\\n      a00 * b09 - a01 * b07 + a02 * b06,\\\\n      a31 * b01 - a30 * b03 - a32 * b00,\\\\n      a20 * b03 - a21 * b01 + a22 * b00) / det;\\\\n}\\\\n\\\\nvec3 getOrthogonalVector(vec3 v) {\\\\n  // Return up-vector for only-z vector.\\\\n  // 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).\\\\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\\\\n  // Assign z = 0, x = -b, y = a:\\\\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\\\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\\\n    return normalize(vec3(-v.y, v.x, 0.0));\\\\n  } else {\\\\n    return normalize(vec3(0.0, v.z, -v.y));\\\\n  }\\\\n}\\\\n\\\\n// Calculate the cone vertex and normal at the given index.\\\\n//\\\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\\\n// pointing in the direction of the vector attribute.\\\\n//\\\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\\\n// These vertices are used to make up the triangles of the cone by the following:\\\\n//   segment + 0 top vertex\\\\n//   segment + 1 perimeter vertex a+1\\\\n//   segment + 2 perimeter vertex a\\\\n//   segment + 3 center base vertex\\\\n//   segment + 4 perimeter vertex a\\\\n//   segment + 5 perimeter vertex a+1\\\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\\\n// To go from index to segment, floor(index / 6)\\\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\\\n// To go from index to segment index, index - (segment*6)\\\\n//\\\\nvec3 getConePosition(vec3 d, float index, float coneOffset, out vec3 normal) {\\\\n\\\\n  const float segmentCount = 8.0;\\\\n\\\\n  index = mod(index, segmentCount * 6.0);\\\\n\\\\n  float segment = floor(index/6.0);\\\\n  float segmentIndex = index - (segment*6.0);\\\\n\\\\n  normal = -normalize(d);\\\\n\\\\n  if (segmentIndex == 3.0) {\\\\n    return mix(vec3(0.0), -d, coneOffset);\\\\n  }\\\\n\\\\n  // angle = 2pi * ((segment + ((segmentIndex == 1.0 || segmentIndex == 5.0) ? 1.0 : 0.0)) / segmentCount)\\\\n  float nextAngle = float(segmentIndex == 1.0 || segmentIndex == 5.0);\\\\n  float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\\\n\\\\n  vec3 v1 = mix(d, vec3(0.0), coneOffset);\\\\n  vec3 v2 = v1 - d;\\\\n\\\\n  vec3 u = getOrthogonalVector(d);\\\\n  vec3 v = normalize(cross(u, d));\\\\n\\\\n  vec3 x = u * cos(angle) * length(d)*0.25;\\\\n  vec3 y = v * sin(angle) * length(d)*0.25;\\\\n  vec3 v3 = v2 + x + y;\\\\n  if (segmentIndex <= 2.0) {\\\\n    vec3 tx = u * sin(angle);\\\\n    vec3 ty = v * -cos(angle);\\\\n    vec3 tangent = tx + ty;\\\\n    normal = normalize(cross(v3 - v1, tangent));\\\\n  }\\\\n\\\\n  if (segmentIndex == 0.0) {\\\\n    return mix(d, vec3(0.0), coneOffset);\\\\n  }\\\\n  return v3;\\\\n}\\\\n\\\\nattribute vec3 vector;\\\\nattribute vec4 color, position;\\\\nattribute vec2 uv;\\\\nuniform float vectorScale;\\\\nuniform float coneScale;\\\\n\\\\nuniform float coneOffset;\\\\n\\\\nuniform mat4 model\\\\n           , view\\\\n           , projection;\\\\nuniform vec3 eyePosition\\\\n           , lightPosition;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data\\\\n           , f_position;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  // Scale the vector magnitude to stay constant with\\\\n  // model & view changes.\\\\n  vec3 normal;\\\\n  vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\\\\n  vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\\\n  normal = normalize(normal * inverse(mat3(model)));\\\\n\\\\n  // vec4 m_position  = model * vec4(conePosition, 1.0);\\\\n  vec4 t_position  = view * conePosition;\\\\n  gl_Position      = projection * t_position;\\\\n  f_color          = color; //vec4(position.w, color.r, 0, 0);\\\\n  f_normal         = normal;\\\\n  f_data           = conePosition.xyz;\\\\n  f_position       = position.xyz;\\\\n  f_eyeDirection   = eyePosition   - conePosition.xyz;\\\\n  f_lightDirection = lightPosition - conePosition.xyz;\\\\n  f_uv             = uv;\\\\n}\\\\n\\\"]),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat beckmannDistribution(float x, float roughness) {\\\\n  float NdotH = max(x, 0.0001);\\\\n  float cos2Alpha = NdotH * NdotH;\\\\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\\\n  float roughness2 = roughness * roughness;\\\\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\\\n  return exp(tan2Alpha / roughness2) / denom;\\\\n}\\\\n\\\\nfloat cookTorranceSpecular(\\\\n  vec3 lightDirection,\\\\n  vec3 viewDirection,\\\\n  vec3 surfaceNormal,\\\\n  float roughness,\\\\n  float fresnel) {\\\\n\\\\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\\\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\\\n\\\\n  //Half angle vector\\\\n  vec3 H = normalize(lightDirection + viewDirection);\\\\n\\\\n  //Geometric term\\\\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\\\\n  float VdotH = max(dot(viewDirection, H), 0.000001);\\\\n  float LdotH = max(dot(lightDirection, H), 0.000001);\\\\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\\\\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\\\\n  float G = min(1.0, min(G1, G2));\\\\n  \\\\n  //Distribution term\\\\n  float D = beckmannDistribution(NdotH, roughness);\\\\n\\\\n  //Fresnel term\\\\n  float F = pow(1.0 - VdotN, fresnel);\\\\n\\\\n  //Multiply terms and done\\\\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform float roughness\\\\n            , fresnel\\\\n            , kambient\\\\n            , kdiffuse\\\\n            , kspecular\\\\n            , opacity;\\\\nuniform sampler2D texture;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data\\\\n           , f_position;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  vec3 N = normalize(f_normal);\\\\n  vec3 L = normalize(f_lightDirection);\\\\n  vec3 V = normalize(f_eyeDirection);\\\\n\\\\n  if(!gl_FrontFacing) {\\\\n    N = -N;\\\\n  }\\\\n\\\\n  float specular = cookTorranceSpecular(L, V, N, roughness, fresnel);\\\\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\\\n\\\\n  vec4 surfaceColor =  texture2D(texture, f_uv);\\\\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\\\\n\\\\n  gl_FragColor = litColor * opacity;\\\\n}\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvec3 getOrthogonalVector(vec3 v) {\\\\n  // Return up-vector for only-z vector.\\\\n  // 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).\\\\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\\\\n  // Assign z = 0, x = -b, y = a:\\\\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\\\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\\\n    return normalize(vec3(-v.y, v.x, 0.0));\\\\n  } else {\\\\n    return normalize(vec3(0.0, v.z, -v.y));\\\\n  }\\\\n}\\\\n\\\\n// Calculate the cone vertex and normal at the given index.\\\\n//\\\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\\\n// pointing in the direction of the vector attribute.\\\\n//\\\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\\\n// These vertices are used to make up the triangles of the cone by the following:\\\\n//   segment + 0 top vertex\\\\n//   segment + 1 perimeter vertex a+1\\\\n//   segment + 2 perimeter vertex a\\\\n//   segment + 3 center base vertex\\\\n//   segment + 4 perimeter vertex a\\\\n//   segment + 5 perimeter vertex a+1\\\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\\\n// To go from index to segment, floor(index / 6)\\\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\\\n// To go from index to segment index, index - (segment*6)\\\\n//\\\\nvec3 getConePosition(vec3 d, float index, float coneOffset, out vec3 normal) {\\\\n\\\\n  const float segmentCount = 8.0;\\\\n\\\\n  index = mod(index, segmentCount * 6.0);\\\\n\\\\n  float segment = floor(index/6.0);\\\\n  float segmentIndex = index - (segment*6.0);\\\\n\\\\n  normal = -normalize(d);\\\\n\\\\n  if (segmentIndex == 3.0) {\\\\n    return mix(vec3(0.0), -d, coneOffset);\\\\n  }\\\\n\\\\n  // angle = 2pi * ((segment + ((segmentIndex == 1.0 || segmentIndex == 5.0) ? 1.0 : 0.0)) / segmentCount)\\\\n  float nextAngle = float(segmentIndex == 1.0 || segmentIndex == 5.0);\\\\n  float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\\\n\\\\n  vec3 v1 = mix(d, vec3(0.0), coneOffset);\\\\n  vec3 v2 = v1 - d;\\\\n\\\\n  vec3 u = getOrthogonalVector(d);\\\\n  vec3 v = normalize(cross(u, d));\\\\n\\\\n  vec3 x = u * cos(angle) * length(d)*0.25;\\\\n  vec3 y = v * sin(angle) * length(d)*0.25;\\\\n  vec3 v3 = v2 + x + y;\\\\n  if (segmentIndex <= 2.0) {\\\\n    vec3 tx = u * sin(angle);\\\\n    vec3 ty = v * -cos(angle);\\\\n    vec3 tangent = tx + ty;\\\\n    normal = normalize(cross(v3 - v1, tangent));\\\\n  }\\\\n\\\\n  if (segmentIndex == 0.0) {\\\\n    return mix(d, vec3(0.0), coneOffset);\\\\n  }\\\\n  return v3;\\\\n}\\\\n\\\\nattribute vec3 vector;\\\\nattribute vec4 position;\\\\nattribute vec4 id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\n\\\\nuniform float vectorScale;\\\\nuniform float coneScale;\\\\nuniform float coneOffset;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  vec3 normal;\\\\n  vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\\\\n  vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\\\n  gl_Position = projection * view * conePosition;\\\\n  f_id        = id;\\\\n  f_position  = position.xyz;\\\\n}\\\\n\\\"]),s=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3  clipBounds[2];\\\\nuniform float pickId;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickId, f_id.xyz);\\\\n}\\\"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:\\\"position\\\",type:\\\"vec4\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"},{name:\\\"vector\\\",type:\\\"vec3\\\"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:\\\"position\\\",type:\\\"vec4\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"},{name:\\\"vector\\\",type:\\\"vec3\\\"}]}},{glslify:392}],235:[function(t,e,r){e.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\\\",34000:\\\"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\\\"}},{}],236:[function(t,e,r){var n=t(\\\"./1.0/numbers\\\");e.exports=function(t){return n[t]}},{\\\"./1.0/numbers\\\":235}],237:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e),o=i(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=a(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var c=new s(e,r,o,l);return c.update(t),c};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"./shaders/index\\\"),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,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}var l=s.prototype;function c(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return this.opacity>=1},l.isTransparent=function(){return this.opacity<1},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,i=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],s=n[13],l=n[14],c=n[15],u=this.pixelRatio*(i[3]*a+i[7]*s+i[11]*l+i[15]*c)/e.drawingBufferHeight;this.vao.bind();for(var f=0;f<3;++f)e.lineWidth(this.lineWidth[f]),r.capSize=this.capSize[f]*u,this.lineCount[f]&&e.drawArrays(e.LINES,this.lineOffset[f],this.lineCount[f]);this.vao.unbind()};var u=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function f(t,e,r,n){for(var i=u[n],a=0;a<i.length;++a){var o=i[a];t.push(e[0],e[1],e[2],r[0],r[1],r[2],r[3],o[0],o[1],o[2])}return i.length}l.update=function(t){\\\"lineWidth\\\"in(t=t||{})&&(this.lineWidth=t.lineWidth,Array.isArray(this.lineWidth)||(this.lineWidth=[this.lineWidth,this.lineWidth,this.lineWidth])),\\\"capSize\\\"in t&&(this.capSize=t.capSize,Array.isArray(this.capSize)||(this.capSize=[this.capSize,this.capSize,this.capSize])),\\\"opacity\\\"in t&&(this.opacity=t.opacity);var e=t.color||[[0,0,0],[0,0,0],[0,0,0]],r=t.position,n=t.error;if(Array.isArray(e[0])||(e=[e,e,e]),r&&n){var i=[],a=r.length,o=0;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.lineCount=[0,0,0];for(var s=0;s<3;++s){this.lineOffset[s]=o;t:for(var l=0;l<a;++l){for(var u=r[l],h=0;h<3;++h)if(isNaN(u[h])||!isFinite(u[h]))continue t;var p=n[l],d=e[s];if(Array.isArray(d[0])&&(d=e[l]),3===d.length&&(d=[d[0],d[1],d[2],1]),!isNaN(p[0][s])&&!isNaN(p[1][s])){var g;if(p[0][s]<0)(g=u.slice())[s]+=p[0][s],i.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,g[0],g[1],g[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,g),o+=2+f(i,g,d,s);if(p[1][s]>0)(g=u.slice())[s]+=p[1][s],i.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,g[0],g[1],g[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,g),o+=2+f(i,g,d,s)}}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},{\\\"./shaders/index\\\":238,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310}],238:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position, offset;\\\\nattribute vec4 color;\\\\nuniform mat4 model, view, projection;\\\\nuniform float capSize;\\\\nvarying vec4 fragColor;\\\\nvarying vec3 fragPosition;\\\\n\\\\nvoid main() {\\\\n  vec4 worldPosition  = model * vec4(position, 1.0);\\\\n  worldPosition       = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\\\\n  gl_Position         = projection * view * worldPosition;\\\\n  fragColor           = color;\\\\n  fragPosition        = position;\\\\n}\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform float opacity;\\\\nvarying vec3 fragPosition;\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], fragPosition)) discard;\\\\n\\\\n  gl_FragColor = opacity * fragColor;\\\\n}\\\"]);e.exports=function(t){return i(t,a,o,null,[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"offset\\\",type:\\\"vec3\\\"}])}},{\\\"gl-shader\\\":288,glslify:392}],239:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-texture2d\\\");e.exports=function(t,e,r,n){i||(i=t.FRAMEBUFFER_UNSUPPORTED,a=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var c=t.getExtension(\\\"WEBGL_draw_buffers\\\");!l&&c&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;a<n;++a)i[a]=t.COLOR_ATTACHMENT0+a;for(var a=n;a<r;++a)i[a]=t.NONE;l[n]=i}}(t,c);Array.isArray(e)&&(n=r,r=0|e[1],e=0|e[0]);if(\\\"number\\\"!=typeof e)throw new Error(\\\"gl-fbo: Missing shape parameter\\\");var u=t.getParameter(t.MAX_RENDERBUFFER_SIZE);if(e<0||e>u||r<0||r>u)throw new Error(\\\"gl-fbo: Parameters are too large for FBO\\\");var f=1;if(\\\"color\\\"in(n=n||{})){if((f=Math.max(0|n.color,0))<0)throw new Error(\\\"gl-fbo: Must specify a nonnegative number of colors\\\");if(f>1){if(!c)throw new Error(\\\"gl-fbo: Multiple draw buffer extension not supported\\\");if(f>t.getParameter(c.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error(\\\"gl-fbo: Context does not support \\\"+f+\\\" draw buffers\\\")}}var h=t.UNSIGNED_BYTE,p=t.getExtension(\\\"OES_texture_float\\\");if(n.float&&f>0){if(!p)throw new Error(\\\"gl-fbo: Context does not support floating point textures\\\");h=t.FLOAT}else n.preferFloat&&f>0&&p&&(h=t.FLOAT);var g=!0;\\\"depth\\\"in n&&(g=!!n.depth);var v=!1;\\\"stencil\\\"in n&&(v=!!n.stencil);return new d(t,e,r,h,f,g,v,c)};var i,a,o,s,l=null;function c(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function u(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function f(t){switch(t){case i:throw new Error(\\\"gl-fbo: Framebuffer unsupported\\\");case a:throw new Error(\\\"gl-fbo: Framebuffer incomplete attachment\\\");case o:throw new Error(\\\"gl-fbo: Framebuffer incomplete dimensions\\\");case s:throw new Error(\\\"gl-fbo: Framebuffer incomplete missing attachment\\\");default:throw new Error(\\\"gl-fbo: Framebuffer failed for unspecified reason\\\")}}function h(t,e,r,i,a,o){if(!i)return null;var s=n(t,e,r,a,i);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function d(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var d=0;d<i;++d)this.color[d]=null;this._color_rb=null,this.depth=null,this._depth_rb=null,this._colorType=n,this._useDepth=a,this._useStencil=o;var g=this,v=[0|e,0|r];Object.defineProperties(v,{0:{get:function(){return g._shape[0]},set:function(t){return g.width=t}},1:{get:function(){return g._shape[1]},set:function(t){return g.height=t}}}),this._shapeVector=v,function(t){var e=c(t.gl),r=t.gl,n=t.handle=r.createFramebuffer(),i=t._shape[0],a=t._shape[1],o=t.color.length,s=t._ext,d=t._useStencil,g=t._useDepth,v=t._colorType;r.bindFramebuffer(r.FRAMEBUFFER,n);for(var m=0;m<o;++m)t.color[m]=h(r,i,a,v,r.RGBA,r.COLOR_ATTACHMENT0+m);0===o?(t._color_rb=p(r,i,a,r.RGBA4,r.COLOR_ATTACHMENT0),s&&s.drawBuffersWEBGL(l[0])):o>1&&s.drawBuffersWEBGL(l[o]);var y=r.getExtension(\\\"WEBGL_depth_texture\\\");y?d?t.depth=h(r,i,a,y.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g&&(t.depth=h(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):g&&d?t._depth_rb=p(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g?t._depth_rb=p(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){for(t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null),m=0;m<t.color.length;++m)t.color[m].dispose(),t.color[m]=null;t._color_rb&&(r.deleteRenderbuffer(t._color_rb),t._color_rb=null),u(r,e),f(x)}u(r,e)}(this)}var g=d.prototype;function v(t,e,r){if(t._destroyed)throw new Error(\\\"gl-fbo: Can't resize destroyed FBO\\\");if(t._shape[0]!==e||t._shape[1]!==r){var n=t.gl,i=n.getParameter(n.MAX_RENDERBUFFER_SIZE);if(e<0||e>i||r<0||r>i)throw new Error(\\\"gl-fbo: Can't resize FBO, invalid dimensions\\\");t._shape[0]=e,t._shape[1]=r;for(var a=c(n),o=0;o<t.color.length;++o)t.color[o].shape=t._shape;t._color_rb&&(n.bindRenderbuffer(n.RENDERBUFFER,t._color_rb),n.renderbufferStorage(n.RENDERBUFFER,n.RGBA4,t._shape[0],t._shape[1])),t.depth&&(t.depth.shape=t._shape),t._depth_rb&&(n.bindRenderbuffer(n.RENDERBUFFER,t._depth_rb),t._useDepth&&t._useStencil?n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,t._shape[0],t._shape[1]):t._useDepth?n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t._shape[0],t._shape[1]):t._useStencil&&n.renderbufferStorage(n.RENDERBUFFER,n.STENCIL_INDEX,t._shape[0],t._shape[1])),n.bindFramebuffer(n.FRAMEBUFFER,t.handle);var s=n.checkFramebufferStatus(n.FRAMEBUFFER);s!==n.FRAMEBUFFER_COMPLETE&&(t.dispose(),u(n,a),f(s)),u(n,a)}}Object.defineProperties(g,{shape:{get:function(){return this._destroyed?[0,0]:this._shapeVector},set:function(t){if(Array.isArray(t)||(t=[0|t,0|t]),2!==t.length)throw new Error(\\\"gl-fbo: Shape vector must be length 2\\\");var e=0|t[0],r=0|t[1];return v(this,e,r),[e,r]},enumerable:!1},width:{get:function(){return this._destroyed?0:this._shape[0]},set:function(t){return v(this,t|=0,this._shape[1]),t},enumerable:!1},height:{get:function(){return this._destroyed?0:this._shape[1]},set:function(t){return t|=0,v(this,this._shape[0],t),t},enumerable:!1}}),g.bind=function(){if(!this._destroyed){var t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.handle),t.viewport(0,0,this._shape[0],this._shape[1])}},g.dispose=function(){if(!this._destroyed){this._destroyed=!0;var t=this.gl;t.deleteFramebuffer(this.handle),this.handle=null,this.depth&&(this.depth.dispose(),this.depth=null),this._depth_rb&&(t.deleteRenderbuffer(this._depth_rb),this._depth_rb=null);for(var e=0;e<this.color.length;++e)this.color[e].dispose(),this.color[e]=null;this._color_rb&&(t.deleteRenderbuffer(this._color_rb),this._color_rb=null)}}},{\\\"gl-texture2d\\\":305}],240:[function(t,e,r){var n=t(\\\"sprintf-js\\\").sprintf,i=t(\\\"gl-constants/lookup\\\"),a=t(\\\"glsl-shader-name\\\"),o=t(\\\"add-line-numbers\\\");e.exports=function(t,e,r){\\\"use strict\\\";var s=a(e)||\\\"of unknown name (see npm glsl-shader-name)\\\",l=\\\"unknown type\\\";void 0!==r&&(l=r===i.FRAGMENT_SHADER?\\\"fragment\\\":\\\"vertex\\\");for(var c=n(\\\"Error compiling %s shader %s:\\\\n\\\",l,s),u=n(\\\"%s%s\\\",c,t),f=t.split(\\\"\\\\n\\\"),h={},p=0;p<f.length;p++){var d=f[p];if(\\\"\\\"!==d&&\\\"\\\\0\\\"!==d){var g=parseInt(d.split(\\\":\\\")[2]);if(isNaN(g))throw new Error(n(\\\"Could not parse error: %s\\\",d));h[g]=d}}for(var v=o(e).split(\\\"\\\\n\\\"),p=0;p<v.length;p++)if(h[p+3]||h[p+2]||h[p+1]){var m=v[p];if(c+=m+\\\"\\\\n\\\",h[p+1]){var y=h[p+1];y=y.substr(y.split(\\\":\\\",3).join(\\\":\\\").length+1).trim(),c+=n(\\\"^^^ %s\\\\n\\\\n\\\",y)}}return{long:c.trim(),short:u.trim()}}},{\\\"add-line-numbers\\\":49,\\\"gl-constants/lookup\\\":236,\\\"glsl-shader-name\\\":384,\\\"sprintf-js\\\":504}],241:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=t.gl,n=o(r,l.vertex,l.fragment),i=o(r,l.pickVertex,l.pickFragment),a=s(r),u=s(r),f=s(r),h=s(r),p=new c(t,n,i,a,u,f,h);return p.update(e),t.addObject(p),p};var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"iota-array\\\"),a=t(\\\"typedarray-pool\\\"),o=t(\\\"gl-shader\\\"),s=t(\\\"gl-buffer\\\"),l=t(\\\"./lib/shaders\\\");function c(t,e,r,n,i,a,o){this.plot=t,this.shader=e,this.pickShader=r,this.positionBuffer=n,this.weightBuffer=i,this.colorBuffer=a,this.idBuffer=o,this.xData=[],this.yData=[],this.shape=[0,0],this.bounds=[1/0,1/0,-1/0,-1/0],this.pickOffset=0}var u,f=c.prototype,h=[0,0,1,0,0,1,1,0,1,1,0,1];f.draw=(u=[1,0,0,0,1,0,0,0,1],function(){var t=this.plot,e=this.shader,r=this.bounds,n=this.numVertices;if(!(n<=0)){var i=t.gl,a=t.dataBox,o=r[2]-r[0],s=r[3]-r[1],l=a[2]-a[0],c=a[3]-a[1];u[0]=2*o/l,u[4]=2*s/c,u[6]=2*(r[0]-a[0])/l-1,u[7]=2*(r[1]-a[1])/c-1,e.bind();var f=e.uniforms;f.viewTransform=u,f.shape=this.shape;var h=e.attributes;this.positionBuffer.bind(),h.position.pointer(),this.weightBuffer.bind(),h.weight.pointer(i.UNSIGNED_BYTE,!1),this.colorBuffer.bind(),h.color.pointer(i.UNSIGNED_BYTE,!0),i.drawArrays(i.TRIANGLES,0,n)}}),f.drawPick=function(){var t=[1,0,0,0,1,0,0,0,1],e=[0,0,0,0];return function(r){var n=this.plot,i=this.pickShader,a=this.bounds,o=this.numVertices;if(!(o<=0)){var s=n.gl,l=n.dataBox,c=a[2]-a[0],u=a[3]-a[1],f=l[2]-l[0],h=l[3]-l[1];t[0]=2*c/f,t[4]=2*u/h,t[6]=2*(a[0]-l[0])/f-1,t[7]=2*(a[1]-l[1])/h-1;for(var p=0;p<4;++p)e[p]=r>>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var g=i.attributes;return this.positionBuffer.bind(),g.position.pointer(),this.weightBuffer.bind(),g.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),g.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),f.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r<n||r>=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},f.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||i(e[0]),o=t.y||i(e[1]),s=t.z||new Float32Array(e[0]*e[1]);this.xData=r,this.yData=o;var l=t.colorLevels||[0],c=t.colorValues||[0,0,0,1],u=l.length,f=this.bounds,p=f[0]=r[0],d=f[1]=o[0],g=1/((f[2]=r[r.length-1])-p),v=1/((f[3]=o[o.length-1])-d),m=e[0],y=e[1];this.shape=[m,y];var x=(m-1)*(y-1)*(h.length>>>1);this.numVertices=x;for(var b=a.mallocUint8(4*x),_=a.mallocFloat32(2*x),w=a.mallocUint8(2*x),k=a.mallocUint32(x),M=0,A=0;A<y-1;++A)for(var T=v*(o[A]-d),S=v*(o[A+1]-d),E=0;E<m-1;++E)for(var C=g*(r[E]-p),L=g*(r[E+1]-p),z=0;z<h.length;z+=2){var O,I,P,D,R=h[z],B=h[z+1],F=s[(A+B)*m+(E+R)],N=n.le(l,F);if(N<0)O=c[0],I=c[1],P=c[2],D=c[3];else if(N===u-1)O=c[4*u-4],I=c[4*u-3],P=c[4*u-2],D=c[4*u-1];else{var j=(F-l[N])/(l[N+1]-l[N]),V=1-j,U=4*N,q=4*(N+1);O=V*c[U]+j*c[q],I=V*c[U+1]+j*c[q+1],P=V*c[U+2]+j*c[q+2],D=V*c[U+3]+j*c[q+3]}b[4*M]=255*O,b[4*M+1]=255*I,b[4*M+2]=255*P,b[4*M+3]=255*D,_[2*M]=.5*C+.5*L,_[2*M+1]=.5*T+.5*S,w[2*M]=R,w[2*M+1]=B,k[M]=A*m+E,M+=1}this.positionBuffer.update(_),this.weightBuffer.update(w),this.colorBuffer.update(b),this.idBuffer.update(k),a.free(_),a.free(b),a.free(w),a.free(k)},f.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.positionBuffer.dispose(),this.weightBuffer.dispose(),this.colorBuffer.dispose(),this.idBuffer.dispose(),this.plot.removeObject(this)}},{\\\"./lib/shaders\\\":242,\\\"binary-search-bounds\\\":243,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288,\\\"iota-array\\\":399,\\\"typedarray-pool\\\":522}],242:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\");e.exports={fragment:n([\\\"precision lowp float;\\\\n#define GLSLIFY 1\\\\nvarying vec4 fragColor;\\\\nvoid main() {\\\\n  gl_FragColor = vec4(fragColor.rgb * fragColor.a, fragColor.a);\\\\n}\\\\n\\\"]),vertex:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position;\\\\nattribute vec4 color;\\\\nattribute vec2 weight;\\\\n\\\\nuniform vec2 shape;\\\\nuniform mat3 viewTransform;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\\\n  fragColor = color;\\\\n  gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\\\n}\\\\n\\\"]),pickFragment:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragId;\\\\nvarying vec2 vWeight;\\\\n\\\\nuniform vec2 shape;\\\\nuniform vec4 pickOffset;\\\\n\\\\nvoid main() {\\\\n  vec2 d = step(.5, vWeight);\\\\n  vec4 id = fragId + pickOffset;\\\\n  id.x += d.x + d.y*shape.x;\\\\n\\\\n  id.y += floor(id.x / 256.0);\\\\n  id.x -= floor(id.x / 256.0) * 256.0;\\\\n\\\\n  id.z += floor(id.y / 256.0);\\\\n  id.y -= floor(id.y / 256.0) * 256.0;\\\\n\\\\n  id.w += floor(id.z / 256.0);\\\\n  id.z -= floor(id.z / 256.0) * 256.0;\\\\n\\\\n  gl_FragColor = id/255.;\\\\n}\\\\n\\\"]),pickVertex:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position;\\\\nattribute vec4 pickId;\\\\nattribute vec2 weight;\\\\n\\\\nuniform vec2 shape;\\\\nuniform mat3 viewTransform;\\\\n\\\\nvarying vec4 fragId;\\\\nvarying vec2 vWeight;\\\\n\\\\nvoid main() {\\\\n  vWeight = weight;\\\\n\\\\n  fragId = pickId;\\\\n\\\\n  vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\\\n  gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\\\n}\\\\n\\\"])}},{glslify:392}],243:[function(t,e,r){arguments[4][99][0].apply(r,arguments)},{dup:99}],244:[function(t,e,r){var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position, nextPosition;\\\\nattribute float arcLength, lineWidth;\\\\nattribute vec4 color;\\\\n\\\\nuniform vec2 screenShape;\\\\nuniform float pixelRatio;\\\\nuniform mat4 model, view, projection;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec3 worldPosition;\\\\nvarying float pixelArcLength;\\\\n\\\\nvec4 project(vec3 p) {\\\\n  return projection * view * model * vec4(p, 1.0);\\\\n}\\\\n\\\\nvoid main() {\\\\n  vec4 startPoint = project(position);\\\\n  vec4 endPoint   = project(nextPosition);\\\\n\\\\n  vec2 A = startPoint.xy / startPoint.w;\\\\n  vec2 B =   endPoint.xy /   endPoint.w;\\\\n\\\\n  float clipAngle = atan(\\\\n    (B.y - A.y) * screenShape.y,\\\\n    (B.x - A.x) * screenShape.x\\\\n  );\\\\n\\\\n  vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(\\\\n    sin(clipAngle),\\\\n    -cos(clipAngle)\\\\n  ) / screenShape;\\\\n\\\\n  gl_Position = vec4(startPoint.xy + startPoint.w * offset, startPoint.zw);\\\\n\\\\n  worldPosition = position;\\\\n  pixelArcLength = arcLength;\\\\n  fragColor = color;\\\\n}\\\\n\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3      clipBounds[2];\\\\nuniform sampler2D dashTexture;\\\\nuniform float     dashScale;\\\\nuniform float     opacity;\\\\n\\\\nvarying vec3    worldPosition;\\\\nvarying float   pixelArcLength;\\\\nvarying vec4    fragColor;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\\\\n\\\\n  float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\\\\n  if(dashWeight < 0.5) {\\\\n    discard;\\\\n  }\\\\n  gl_FragColor = fragColor * opacity;\\\\n}\\\\n\\\"]),s=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\n#define FLOAT_MAX  1.70141184e38\\\\n#define FLOAT_MIN  1.17549435e-38\\\\n\\\\nlowp vec4 encode_float_1540259130(highp float v) {\\\\n  highp float av = abs(v);\\\\n\\\\n  //Handle special cases\\\\n  if(av < FLOAT_MIN) {\\\\n    return vec4(0.0, 0.0, 0.0, 0.0);\\\\n  } else if(v > FLOAT_MAX) {\\\\n    return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\\\\n  } else if(v < -FLOAT_MAX) {\\\\n    return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\\\\n  }\\\\n\\\\n  highp vec4 c = vec4(0,0,0,0);\\\\n\\\\n  //Compute exponent and mantissa\\\\n  highp float e = floor(log2(av));\\\\n  highp float m = av * pow(2.0, -e) - 1.0;\\\\n  \\\\n  //Unpack mantissa\\\\n  c[1] = floor(128.0 * m);\\\\n  m -= c[1] / 128.0;\\\\n  c[2] = floor(32768.0 * m);\\\\n  m -= c[2] / 32768.0;\\\\n  c[3] = floor(8388608.0 * m);\\\\n  \\\\n  //Unpack exponent\\\\n  highp float ebias = e + 127.0;\\\\n  c[0] = floor(ebias / 2.0);\\\\n  ebias -= c[0] * 2.0;\\\\n  c[1] += floor(ebias) * 128.0; \\\\n\\\\n  //Unpack sign bit\\\\n  c[0] += 128.0 * step(0.0, -v);\\\\n\\\\n  //Scale back to range\\\\n  return c / 255.0;\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform float pickId;\\\\nuniform vec3 clipBounds[2];\\\\n\\\\nvarying vec3 worldPosition;\\\\nvarying float pixelArcLength;\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickId/255.0, encode_float_1540259130(pixelArcLength).xyz);\\\\n}\\\"]),l=[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"nextPosition\\\",type:\\\"vec3\\\"},{name:\\\"arcLength\\\",type:\\\"float\\\"},{name:\\\"lineWidth\\\",type:\\\"float\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"}];r.createShader=function(t){return i(t,a,o,null,l)},r.createPickShader=function(t){return i(t,a,s,null,l)}},{\\\"gl-shader\\\":288,glslify:392}],245:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=u(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=f(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),c=i(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),h=l(new Array(1024),[256,1,4]),p=0;p<1024;++p)h.data[p]=255;var d=a(e,h);d.wrap=e.REPEAT;var g=new v(e,r,o,s,c,d);return g.update(t),g};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"gl-texture2d\\\"),o=t(\\\"glsl-read-float\\\"),s=t(\\\"binary-search-bounds\\\"),l=t(\\\"ndarray\\\"),c=t(\\\"./lib/shaders\\\"),u=c.createShader,f=c.createPickShader,h=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function p(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function d(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function g(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function v(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,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=a,this.dashScale=1,this.opacity=1,this.dirty=!0,this.pixelRatio=1}var m=v.prototype;m.isTransparent=function(){return this.opacity<1},m.isOpaque=function(){return this.opacity>=1},m.pickSlots=1,m.setPickBase=function(t){this.pickId=t},m.drawTransparent=m.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||h,view:t.view||h,projection:t.projection||h,clipBounds:d(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||h,view:t.view||h,projection:t.projection||h,pickId:this.pickId,clipBounds:d(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;\\\"dashScale\\\"in t&&(this.dashScale=t.dashScale),\\\"opacity\\\"in t&&(this.opacity=+t.opacity);var i=[],a=[],o=[],c=0,u=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],h=t.position||t.positions;if(h){var d=t.color||t.colors||[0,0,0,1],g=t.lineWidth||1,v=!1;t:for(e=1;e<h.length;++e){var m,y,x,b=h[e-1],_=h[e];for(a.push(c),o.push(b.slice()),r=0;r<3;++r){if(isNaN(b[r])||isNaN(_[r])||!isFinite(b[r])||!isFinite(_[r])){if(!n&&i.length>0){for(var w=0;w<24;++w)i.push(i[i.length-12]);u+=2,v=!0}continue t}f[0][r]=Math.min(f[0][r],b[r],_[r]),f[1][r]=Math.max(f[1][r],b[r],_[r])}Array.isArray(d[0])?(m=d.length>e-1?d[e-1]:d.length>0?d[d.length-1]:[0,0,0,1],y=d.length>e?d[e]:d.length>0?d[d.length-1]:[0,0,0,1]):m=y=d,3===m.length&&(m=[m[0],m[1],m[2],1]),3===y.length&&(y=[y[0],y[1],y[2],1]),x=Array.isArray(g)?g.length>e-1?g[e-1]:g.length>0?g[g.length-1]:[0,0,0,1]:g;var k=c;if(c+=p(b,_),v){for(r=0;r<2;++r)i.push(b[0],b[1],b[2],_[0],_[1],_[2],k,x,m[0],m[1],m[2],m[3]);u+=2,v=!1}i.push(b[0],b[1],b[2],_[0],_[1],_[2],k,x,m[0],m[1],m[2],m[3],b[0],b[1],b[2],_[0],_[1],_[2],k,-x,m[0],m[1],m[2],m[3],_[0],_[1],_[2],b[0],b[1],b[2],c,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],c,x,y[0],y[1],y[2],y[3]),u+=4}}if(this.buffer.update(i),a.push(c),o.push(h[h.length-1].slice()),this.bounds=f,this.vertexCount=u,this.points=o,this.arcLength=a,\\\"dashes\\\"in t){var M=t.dashes.slice();for(M.unshift(0),e=1;e<M.length;++e)M[e]=M[e-1]+M[e];var A=l(new Array(1024),[256,1,4]);for(e=0;e<256;++e){for(r=0;r<4;++r)A.set(e,0,r,0);1&s.le(M,M[M.length-1]*e/255)?A.set(e,0,0,0):A.set(e,0,0,255)}this.texture.setPixels(A)}},m.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()},m.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=o(t.value[0],t.value[1],t.value[2],0),r=s.le(this.arcLength,e);if(r<0)return null;if(r===this.arcLength.length-1)return new g(this.arcLength[this.arcLength.length-1],this.points[this.points.length-1].slice(),r);for(var n=this.points[r],i=this.points[Math.min(r+1,this.points.length-1)],a=(e-this.arcLength[r])/(this.arcLength[r+1]-this.arcLength[r]),l=1-a,c=[0,0,0],u=0;u<3;++u)c[u]=l*n[u]+a*i[u];var f=Math.min(a<.5?r:r+1,this.points.length-1);return new g(e,c,f,this.points[f])}},{\\\"./lib/shaders\\\":244,\\\"binary-search-bounds\\\":79,\\\"gl-buffer\\\":230,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,\\\"glsl-read-float\\\":383,ndarray:433}],246:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*a-i*n;return o?(o=1/o,t[0]=a*o,t[1]=-n*o,t[2]=-i*o,t[3]=r*o,t):null}},{}],247:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],f=u*o-s*c,h=-u*a+s*l,p=c*a-o*l,d=r*f+n*h+i*p;return d?(d=1/d,t[0]=f*d,t[1]=(-u*n+i*c)*d,t[2]=(s*n-i*o)*d,t[3]=h*d,t[4]=(u*r-i*l)*d,t[5]=(-s*r+i*a)*d,t[6]=p*d,t[7]=(-c*r+n*l)*d,t[8]=(o*r-n*a)*d,t):null}},{}],248:[function(t,e,r){e.exports=function(t){var e=new Float32Array(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},{}],249:[function(t,e,r){e.exports=function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],250:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],o=t[5],s=t[6],l=t[7],c=t[8],u=t[9],f=t[10],h=t[11],p=t[12],d=t[13],g=t[14],v=t[15];return(e*o-r*a)*(f*v-h*g)-(e*s-n*a)*(u*v-h*d)+(e*l-i*a)*(u*g-f*d)+(r*s-n*o)*(c*v-h*p)-(r*l-i*o)*(c*g-f*p)+(n*l-i*s)*(c*d-u*p)}},{}],251:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r+r,s=n+n,l=i+i,c=r*o,u=n*o,f=n*s,h=i*o,p=i*s,d=i*l,g=a*o,v=a*s,m=a*l;return t[0]=1-f-d,t[1]=u+m,t[2]=h-v,t[3]=0,t[4]=u-m,t[5]=1-c-d,t[6]=p+g,t[7]=0,t[8]=h+v,t[9]=p-g,t[10]=1-c-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],252:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=n+n,l=i+i,c=a+a,u=n*s,f=n*l,h=n*c,p=i*l,d=i*c,g=a*c,v=o*s,m=o*l,y=o*c;return t[0]=1-(p+g),t[1]=f+y,t[2]=h-m,t[3]=0,t[4]=f-y,t[5]=1-(u+g),t[6]=d+v,t[7]=0,t[8]=h+m,t[9]=d-v,t[10]=1-(u+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}},{}],253:[function(t,e,r){e.exports=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],254:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],f=e[9],h=e[10],p=e[11],d=e[12],g=e[13],v=e[14],m=e[15],y=r*s-n*o,x=r*l-i*o,b=r*c-a*o,_=n*l-i*s,w=n*c-a*s,k=i*c-a*l,M=u*g-f*d,A=u*v-h*d,T=u*m-p*d,S=f*v-h*g,E=f*m-p*g,C=h*m-p*v,L=y*C-x*E+b*S+_*T-w*A+k*M;if(!L)return null;return L=1/L,t[0]=(s*C-l*E+c*S)*L,t[1]=(i*E-n*C-a*S)*L,t[2]=(g*k-v*w+m*_)*L,t[3]=(h*w-f*k-p*_)*L,t[4]=(l*T-o*C-c*A)*L,t[5]=(r*C-i*T+a*A)*L,t[6]=(v*b-d*k-m*x)*L,t[7]=(u*k-h*b+p*x)*L,t[8]=(o*E-s*T+c*M)*L,t[9]=(n*T-r*E-a*M)*L,t[10]=(d*w-g*b+m*y)*L,t[11]=(f*b-u*w-p*y)*L,t[12]=(s*A-o*S-l*M)*L,t[13]=(r*S-n*A+i*M)*L,t[14]=(g*x-d*_-v*y)*L,t[15]=(u*_-f*x+h*y)*L,t}},{}],255:[function(t,e,r){var n=t(\\\"./identity\\\");e.exports=function(t,e,r,i){var a,o,s,l,c,u,f,h,p,d,g=e[0],v=e[1],m=e[2],y=i[0],x=i[1],b=i[2],_=r[0],w=r[1],k=r[2];if(Math.abs(g-_)<1e-6&&Math.abs(v-w)<1e-6&&Math.abs(m-k)<1e-6)return n(t);f=g-_,h=v-w,p=m-k,d=1/Math.sqrt(f*f+h*h+p*p),a=x*(p*=d)-b*(h*=d),o=b*(f*=d)-y*p,s=y*h-x*f,(d=Math.sqrt(a*a+o*o+s*s))?(a*=d=1/d,o*=d,s*=d):(a=0,o=0,s=0);l=h*s-p*o,c=p*a-f*s,u=f*o-h*a,(d=Math.sqrt(l*l+c*c+u*u))?(l*=d=1/d,c*=d,u*=d):(l=0,c=0,u=0);return t[0]=a,t[1]=l,t[2]=f,t[3]=0,t[4]=o,t[5]=c,t[6]=h,t[7]=0,t[8]=s,t[9]=u,t[10]=p,t[11]=0,t[12]=-(a*g+o*v+s*m),t[13]=-(l*g+c*v+u*m),t[14]=-(f*g+h*v+p*m),t[15]=1,t}},{\\\"./identity\\\":253}],256:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],g=e[12],v=e[13],m=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*g,t[1]=x*i+b*l+_*h+w*v,t[2]=x*a+b*c+_*p+w*m,t[3]=x*o+b*u+_*d+w*y,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*g,t[5]=x*i+b*l+_*h+w*v,t[6]=x*a+b*c+_*p+w*m,t[7]=x*o+b*u+_*d+w*y,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*g,t[9]=x*i+b*l+_*h+w*v,t[10]=x*a+b*c+_*p+w*m,t[11]=x*o+b*u+_*d+w*y,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*g,t[13]=x*i+b*l+_*h+w*v,t[14]=x*a+b*c+_*p+w*m,t[15]=x*o+b*u+_*d+w*y,t}},{}],257:[function(t,e,r){e.exports=function(t,e,r,n,i){var a=1/Math.tan(e/2),o=1/(n-i);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(i+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*i*n*o,t[15]=0,t}},{}],258:[function(t,e,r){e.exports=function(t,e,r,n){var i,a,o,s,l,c,u,f,h,p,d,g,v,m,y,x,b,_,w,k,M,A,T,S,E=n[0],C=n[1],L=n[2],z=Math.sqrt(E*E+C*C+L*L);if(Math.abs(z)<1e-6)return null;E*=z=1/z,C*=z,L*=z,i=Math.sin(r),a=Math.cos(r),o=1-a,s=e[0],l=e[1],c=e[2],u=e[3],f=e[4],h=e[5],p=e[6],d=e[7],g=e[8],v=e[9],m=e[10],y=e[11],x=E*E*o+a,b=C*E*o+L*i,_=L*E*o-C*i,w=E*C*o-L*i,k=C*C*o+a,M=L*C*o+E*i,A=E*L*o+C*i,T=C*L*o-E*i,S=L*L*o+a,t[0]=s*x+f*b+g*_,t[1]=l*x+h*b+v*_,t[2]=c*x+p*b+m*_,t[3]=u*x+d*b+y*_,t[4]=s*w+f*k+g*M,t[5]=l*w+h*k+v*M,t[6]=c*w+p*k+m*M,t[7]=u*w+d*k+y*M,t[8]=s*A+f*T+g*S,t[9]=l*A+h*T+v*S,t[10]=c*A+p*T+m*S,t[11]=u*A+d*T+y*S,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t}},{}],259:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],c=e[8],u=e[9],f=e[10],h=e[11];e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[4]=a*i+c*n,t[5]=o*i+u*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=c*i-a*n,t[9]=u*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t}},{}],260:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],c=e[8],u=e[9],f=e[10],h=e[11];e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[0]=a*i-c*n,t[1]=o*i-u*n,t[2]=s*i-f*n,t[3]=l*i-h*n,t[8]=a*n+c*i,t[9]=o*n+u*i,t[10]=s*n+f*i,t[11]=l*n+h*i,t}},{}],261:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],c=e[4],u=e[5],f=e[6],h=e[7];e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[0]=a*i+c*n,t[1]=o*i+u*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=c*i-a*n,t[5]=u*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t}},{}],262:[function(t,e,r){e.exports=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},{}],263:[function(t,e,r){e.exports=function(t,e,r){var n,i,a,o,s,l,c,u,f,h,p,d,g=r[0],v=r[1],m=r[2];e===t?(t[12]=e[0]*g+e[4]*v+e[8]*m+e[12],t[13]=e[1]*g+e[5]*v+e[9]*m+e[13],t[14]=e[2]*g+e[6]*v+e[10]*m+e[14],t[15]=e[3]*g+e[7]*v+e[11]*m+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=c,t[7]=u,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*g+s*v+f*m+e[12],t[13]=i*g+l*v+h*m+e[13],t[14]=a*g+c*v+p*m+e[14],t[15]=o*g+u*v+d*m+e[15]);return t}},{}],264:[function(t,e,r){e.exports=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[11]=e[14],t[12]=i,t[13]=o,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}},{}],265:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){switch(e.length){case 0:break;case 1:t[0]=1/e[0];break;case 4:n(t,e);break;case 9:i(t,e);break;case 16:a(t,e);break;default:throw new Error(\\\"currently supports matrices up to 4x4\\\")}return t};var n=t(\\\"gl-mat2/invert\\\"),i=t(\\\"gl-mat3/invert\\\"),a=t(\\\"gl-mat4/invert\\\")},{\\\"gl-mat2/invert\\\":246,\\\"gl-mat3/invert\\\":247,\\\"gl-mat4/invert\\\":254}],266:[function(t,e,r){arguments[4][232][0].apply(r,arguments)},{barycentric:61,dup:232,\\\"polytope-closest-point/lib/closest_point_2d.js\\\":464}],267:[function(t,e,r){var n=t(\\\"glslify\\\"),i=n([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position, normal;\\\\nattribute vec4 color;\\\\nattribute vec2 uv;\\\\n\\\\nuniform mat4 model\\\\n           , view\\\\n           , projection;\\\\nuniform vec3 eyePosition\\\\n           , lightPosition;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  vec4 m_position  = model * vec4(position, 1.0);\\\\n  vec4 t_position  = view * m_position;\\\\n  gl_Position      = projection * t_position;\\\\n  f_color          = color;\\\\n  f_normal         = normal;\\\\n  f_data           = position;\\\\n  f_eyeDirection   = eyePosition   - position;\\\\n  f_lightDirection = lightPosition - position;\\\\n  f_uv             = uv;\\\\n}\\\\n\\\"]),a=n([\\\"#extension GL_OES_standard_derivatives : enable\\\\n\\\\nprecision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat beckmannDistribution(float x, float roughness) {\\\\n  float NdotH = max(x, 0.0001);\\\\n  float cos2Alpha = NdotH * NdotH;\\\\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\\\n  float roughness2 = roughness * roughness;\\\\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\\\n  return exp(tan2Alpha / roughness2) / denom;\\\\n}\\\\n\\\\nfloat cookTorranceSpecular(\\\\n  vec3 lightDirection,\\\\n  vec3 viewDirection,\\\\n  vec3 surfaceNormal,\\\\n  float roughness,\\\\n  float fresnel) {\\\\n\\\\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\\\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\\\n\\\\n  //Half angle vector\\\\n  vec3 H = normalize(lightDirection + viewDirection);\\\\n\\\\n  //Geometric term\\\\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\\\\n  float VdotH = max(dot(viewDirection, H), 0.000001);\\\\n  float LdotH = max(dot(lightDirection, H), 0.000001);\\\\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\\\\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\\\\n  float G = min(1.0, min(G1, G2));\\\\n  \\\\n  //Distribution term\\\\n  float D = beckmannDistribution(NdotH, roughness);\\\\n\\\\n  //Fresnel term\\\\n  float F = pow(1.0 - VdotN, fresnel);\\\\n\\\\n  //Multiply terms and done\\\\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\\\\n}\\\\n\\\\nvec3 normals(vec3 pos) {\\\\n  vec3 fdx = dFdx(pos);\\\\n  vec3 fdy = dFdy(pos);\\\\n  return normalize(cross(fdx, fdy));\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform float roughness\\\\n            , fresnel\\\\n            , kambient\\\\n            , kdiffuse\\\\n            , kspecular\\\\n            , opacity;\\\\nuniform sampler2D texture;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\\\n\\\\n  vec3 N = normalize(f_normal);\\\\n  vec3 L = normalize(f_lightDirection);\\\\n  vec3 V = normalize(f_eyeDirection);\\\\n\\\\n  vec3 normal = normals(f_data);\\\\n\\\\n  if (dot(N, normal) < 0.0) {\\\\n    N = -N;\\\\n  }\\\\n\\\\n  float specular = cookTorranceSpecular(L, V, N, roughness, fresnel);\\\\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\\\n\\\\n  vec4 surfaceColor = f_color * texture2D(texture, f_uv);\\\\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\\\\n\\\\n  gl_FragColor = litColor * opacity;\\\\n}\\\\n\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 uv;\\\\n\\\\nuniform mat4 model, view, projection;\\\\n\\\\nvarying vec4 f_color;\\\\nvarying vec3 f_data;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  gl_Position = projection * view * model * vec4(position, 1.0);\\\\n  f_color = color;\\\\n  f_data  = position;\\\\n  f_uv    = uv;\\\\n}\\\"]),s=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform sampler2D texture;\\\\nuniform float opacity;\\\\n\\\\nvarying vec4 f_color;\\\\nvarying vec3 f_data;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\\\n\\\\n  gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\\\n}\\\"]),l=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 uv;\\\\nattribute float pointSize;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 clipBounds[2];\\\\n\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    gl_Position = projection * view * model * vec4(position, 1.0);\\\\n  }\\\\n  gl_PointSize = pointSize;\\\\n  f_color = color;\\\\n  f_uv = uv;\\\\n}\\\"]),c=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform sampler2D texture;\\\\nuniform float opacity;\\\\n\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  vec2 pointR = gl_PointCoord.xy - vec2(0.5,0.5);\\\\n  if(dot(pointR, pointR) > 0.25) {\\\\n    discard;\\\\n  }\\\\n  gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\\\n}\\\"]),u=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  gl_Position = projection * view * model * vec4(position, 1.0);\\\\n  f_id        = id;\\\\n  f_position  = position;\\\\n}\\\"]),f=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3  clipBounds[2];\\\\nuniform float pickId;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickId, f_id.xyz);\\\\n}\\\"]),h=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3  position;\\\\nattribute float pointSize;\\\\nattribute vec4  id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 clipBounds[2];\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    gl_Position  = projection * view * model * vec4(position, 1.0);\\\\n    gl_PointSize = pointSize;\\\\n  }\\\\n  f_id         = id;\\\\n  f_position   = position;\\\\n}\\\"]),p=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position;\\\\n\\\\nuniform mat4 model, view, projection;\\\\n\\\\nvoid main() {\\\\n  gl_Position = projection * view * model * vec4(position, 1.0);\\\\n}\\\"]),d=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform vec3 contourColor;\\\\n\\\\nvoid main() {\\\\n  gl_FragColor = vec4(contourColor,1);\\\\n}\\\\n\\\"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"}]},r.wireShader={vertex:o,fragment:s,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"}]},r.pointShader={vertex:l,fragment:c,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"},{name:\\\"pointSize\\\",type:\\\"float\\\"}]},r.pickShader={vertex:u,fragment:f,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"}]},r.pointPickShader={vertex:h,fragment:f,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"pointSize\\\",type:\\\"float\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"}]},r.contourShader={vertex:p,fragment:d,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"}]}},{glslify:392}],268:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"gl-texture2d\\\"),s=t(\\\"normals\\\"),l=t(\\\"gl-mat4/multiply\\\"),c=t(\\\"gl-mat4/invert\\\"),u=t(\\\"ndarray\\\"),f=t(\\\"colormap\\\"),h=t(\\\"simplicial-complex-contour\\\"),p=t(\\\"typedarray-pool\\\"),d=t(\\\"./lib/shaders\\\"),g=t(\\\"./lib/closest-point\\\"),v=d.meshShader,m=d.wireShader,y=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function k(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,v,m,y,x,b,_,k,M,A,T,S){this.gl=t,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=u,this.triangleNormals=h,this.triangleUVs=f,this.triangleIds=c,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=v,this.edgeUVs=m,this.edgeIds=g,this.edgeVAO=y,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=k,this.pointSizes=M,this.pointIds=b,this.pointVAO=A,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=T,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!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._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var M=k.prototype;function A(t){var e=n(t,y.vertex,y.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function T(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function S(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function E(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}M.isOpaque=function(){return this.opacity>=1},M.isTransparent=function(){return this.opacity<1},M.pickSlots=1,M.setPickBase=function(t){this.pickId=t},M.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l<a;++l)for(var c=r[l],u=0;u<2;++u){var f=c[0];2===c.length&&(f=c[u]);for(var d=n[f][0],g=n[f][1],v=i[f],m=1-v,y=this.positions[d],x=this.positions[g],b=0;b<3;++b)o[s++]=v*y[b]+m*x[b]}this.contourCount=s/3|0,this.contourPositions.update(o.subarray(0,s)),p.free(o)}else this.contourCount=0},M.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,\\\"contourEnable\\\"in t&&(this.contourEnable=t.contourEnable),\\\"contourColor\\\"in t&&(this.contourColor=t.contourColor),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"lightPosition\\\"in t&&(this.lightPosition=t.lightPosition),\\\"opacity\\\"in t&&(this.opacity=t.opacity),\\\"ambient\\\"in t&&(this.ambientLight=t.ambient),\\\"diffuse\\\"in t&&(this.diffuseLight=t.diffuse),\\\"specular\\\"in t&&(this.specularLight=t.specular),\\\"roughness\\\"in t&&(this.roughness=t.roughness),\\\"fresnel\\\"in t&&(this.fresnel=t.fresnel),t.texture?(this.texture.dispose(),this.texture=o(e,t.texture)):t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=f({colormap:t,nshades:256,format:\\\"rgba\\\"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions;if(n&&r){var i=[],a=[],l=[],c=[],h=[],p=[],d=[],g=[],v=[],m=[],y=[],x=[],b=[],_=[];this.cells=r,this.positions=n;var w=t.vertexNormals,k=t.cellNormals,M=void 0===t.vertexNormalsEpsilon?1e-6:t.vertexNormalsEpsilon,A=void 0===t.faceNormalsEpsilon?1e-6:t.faceNormalsEpsilon;t.useFacetNormals&&!k&&(k=s.faceNormals(r,n,A)),k||w||(w=s.vertexNormals(r,n,M));var T=t.vertexColors,S=t.cellColors,E=t.meshColor||[1,1,1,1],C=t.vertexUVs,L=t.vertexIntensity,z=t.cellUVs,O=t.cellIntensity,I=1/0,P=-1/0;if(!C&&!z)if(L)if(t.vertexIntensityBounds)I=+t.vertexIntensityBounds[0],P=+t.vertexIntensityBounds[1];else for(var D=0;D<L.length;++D){var R=L[D];I=Math.min(I,R),P=Math.max(P,R)}else if(O)for(D=0;D<O.length;++D){R=O[D];I=Math.min(I,R),P=Math.max(P,R)}else for(D=0;D<n.length;++D){R=n[D][2];I=Math.min(I,R),P=Math.max(P,R)}this.intensity=L||(O?function(t,e,r){for(var n=new Array(e),i=0;i<e;++i)n[i]=0;var a=t.length;for(i=0;i<a;++i)for(var o=t[i],s=0;s<o.length;++s)n[o[s]]=r[i];return n}(r,n.length,O):function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n));var B=t.pointSizes,F=t.pointSize||1;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(D=0;D<n.length;++D)for(var N=n[D],j=0;j<3;++j)!isNaN(N[j])&&isFinite(N[j])&&(this.bounds[0][j]=Math.min(this.bounds[0][j],N[j]),this.bounds[1][j]=Math.max(this.bounds[1][j],N[j]));var V=0,U=0,q=0;t:for(D=0;D<r.length;++D){var H=r[D];switch(H.length){case 1:for(N=n[W=H[0]],j=0;j<3;++j)if(isNaN(N[j])||!isFinite(N[j]))continue t;m.push(N[0],N[1],N[2]),3===(Y=T?T[W]:S?S[D]:E).length?y.push(Y[0],Y[1],Y[2],1):y.push(Y[0],Y[1],Y[2],Y[3]),X=C?C[W]:L?[(L[W]-I)/(P-I),0]:z?z[D]:O?[(O[D]-I)/(P-I),0]:[(N[2]-I)/(P-I),0],x.push(X[0],X[1]),B?b.push(B[W]):b.push(F),_.push(D),q+=1;break;case 2:for(j=0;j<2;++j){N=n[W=H[j]];for(var G=0;G<3;++G)if(isNaN(N[G])||!isFinite(N[G]))continue t}for(j=0;j<2;++j){N=n[W=H[j]];p.push(N[0],N[1],N[2]),3===(Y=T?T[W]:S?S[D]:E).length?d.push(Y[0],Y[1],Y[2],1):d.push(Y[0],Y[1],Y[2],Y[3]),X=C?C[W]:L?[(L[W]-I)/(P-I),0]:z?z[D]:O?[(O[D]-I)/(P-I),0]:[(N[2]-I)/(P-I),0],g.push(X[0],X[1]),v.push(D)}U+=1;break;case 3:for(j=0;j<3;++j)for(N=n[W=H[j]],G=0;G<3;++G)if(isNaN(N[G])||!isFinite(N[G]))continue t;for(j=0;j<3;++j){var W,Y,X,Z;N=n[W=H[j]];i.push(N[0],N[1],N[2]),3===(Y=T?T[W]:S?S[D]:E).length?a.push(Y[0],Y[1],Y[2],1):a.push(Y[0],Y[1],Y[2],Y[3]),X=C?C[W]:L?[(L[W]-I)/(P-I),0]:z?z[D]:O?[(O[D]-I)/(P-I),0]:[(N[2]-I)/(P-I),0],c.push(X[0],X[1]),Z=w?w[W]:k[D],l.push(Z[0],Z[1],Z[2]),h.push(D)}V+=1}}this.pointCount=q,this.edgeCount=U,this.triangleCount=V,this.pointPositions.update(m),this.pointColors.update(y),this.pointUVs.update(x),this.pointSizes.update(b),this.pointIds.update(new Uint32Array(_)),this.edgePositions.update(p),this.edgeColors.update(d),this.edgeUVs.update(g),this.edgeIds.update(new Uint32Array(v)),this.trianglePositions.update(i),this.triangleColors.update(a),this.triangleUVs.update(c),this.triangleNormals.update(l),this.triangleIds.update(new Uint32Array(h))}},M.drawTransparent=M.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);var s={model:r,view:n,projection:i,clipBounds:a,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],opacity:this.opacity,contourColor:this.contourColor,texture:0};this.texture.bind(0);var u=new Array(16);l(u,s.view,s.model),l(u,s.projection,u),c(u,u);for(o=0;o<3;++o)s.eyePosition[o]=u[12+o]/u[15];var f,h=u[15];for(o=0;o<3;++o)h+=this.lightPosition[o]*u[4*o+3];for(o=0;o<3;++o){for(var p=u[12+o],d=0;d<3;++d)p+=u[4*d+o]*this.lightPosition[d];s.lightPosition[o]=p/h}this.triangleCount>0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},M.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},M.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;a<r.length;++a)i[a]=n[r[a]];var o=g(i,[t.coord[0],this._resolution[1]-t.coord[1]],this._model,this._view,this._projection,this._resolution);if(!o)return null;var s=o[2],l=0;for(a=0;a<r.length;++a)l+=s[a]*this.intensity[r[a]];return{position:o[1],index:r[o[0]],cell:r,cellId:e,intensity:l,dataCoordinate:this.positions[r[o[0]]]}},M.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.lineShader.dispose(),this.pointShader.dispose(),this.pickShader.dispose(),this.pointPickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleNormals.dispose(),this.triangleIds.dispose(),this.edgeVAO.dispose(),this.edgePositions.dispose(),this.edgeColors.dispose(),this.edgeUVs.dispose(),this.edgeIds.dispose(),this.pointVAO.dispose(),this.pointPositions.dispose(),this.pointColors.dispose(),this.pointUVs.dispose(),this.pointSizes.dispose(),this.pointIds.dispose(),this.contourVAO.dispose(),this.contourPositions.dispose(),this.contourShader.dispose()},e.exports=function(t,e){if(1===arguments.length&&(t=(e=t).gl),!(t.getExtension(\\\"OES_standard_derivatives\\\")||t.getExtension(\\\"MOZ_OES_standard_derivatives\\\")||t.getExtension(\\\"WEBKIT_OES_standard_derivatives\\\")))throw new Error(\\\"derivatives not supported\\\");var r=function(t){var e=n(t,v.vertex,v.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.normal.location=4,e}(t),s=function(t){var e=n(t,m.vertex,m.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e}(t),l=A(t),c=T(t),f=S(t),h=E(t),p=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));p.generateMipmap(),p.minFilter=t.LINEAR_MIPMAP_LINEAR,p.magFilter=t.LINEAR;var d=i(t),g=i(t),y=i(t),x=i(t),b=i(t),_=a(t,[{buffer:d,type:t.FLOAT,size:3},{buffer:b,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:g,type:t.FLOAT,size:4},{buffer:y,type:t.FLOAT,size:2},{buffer:x,type:t.FLOAT,size:3}]),w=i(t),M=i(t),C=i(t),L=i(t),z=a(t,[{buffer:w,type:t.FLOAT,size:3},{buffer:L,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:M,type:t.FLOAT,size:4},{buffer:C,type:t.FLOAT,size:2}]),O=i(t),I=i(t),P=i(t),D=i(t),R=i(t),B=a(t,[{buffer:O,type:t.FLOAT,size:3},{buffer:R,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:I,type:t.FLOAT,size:4},{buffer:P,type:t.FLOAT,size:2},{buffer:D,type:t.FLOAT,size:1}]),F=i(t),N=new k(t,p,r,s,l,c,f,h,d,b,g,y,x,_,w,L,M,C,z,O,R,I,P,D,B,F,a(t,[{buffer:F,type:t.FLOAT,size:3}]));return N.update(e),N}},{\\\"./lib/closest-point\\\":266,\\\"./lib/shaders\\\":267,colormap:114,\\\"gl-buffer\\\":230,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"gl-shader\\\":288,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,ndarray:433,normals:436,\\\"simplicial-complex-contour\\\":494,\\\"typedarray-pool\\\":522}],269:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e,[0,0,0,1,1,0,1,1]),s=i(e,a.boxVert,a.lineFrag);return new o(t,r,s)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-shader\\\"),a=t(\\\"./shaders\\\");function o(t,e,r){this.plot=t,this.vbo=e,this.shader=r}var s,l,c=o.prototype;c.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},c.drawBox=(s=[0,0],l=[0,0],function(t,e,r,n,i){var a=this.plot,o=this.shader,c=a.gl;s[0]=t,s[1]=e,l[0]=r,l[1]=n,o.uniforms.lo=s,o.uniforms.hi=l,o.uniforms.color=i,c.drawArrays(c.TRIANGLE_STRIP,0,4)}),c.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":272,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288}],270:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e),a=i(e,o.gridVert,o.gridFrag),l=i(e,o.tickVert,o.gridFrag);return new s(t,r,a,l)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-shader\\\"),a=t(\\\"binary-search-bounds\\\"),o=t(\\\"./shaders\\\");function s(t,e,r,n){this.plot=t,this.vbo=e,this.shader=r,this.tickShader=n,this.ticks=[[],[]]}function l(t,e){return t-e}var c,u,f,h,p,d=s.prototype;d.draw=(c=[0,0],u=[0,0],f=[0,0],function(){for(var t=this.plot,e=this.vbo,r=this.shader,n=this.ticks,i=t.gl,a=t._tickBounds,o=t.dataBox,s=t.viewBox,l=t.gridLineWidth,h=t.gridLineColor,p=t.gridLineEnable,d=t.pixelRatio,g=0;g<2;++g){var v=a[g],m=a[g+2]-v,y=.5*(o[g+2]+o[g]),x=o[g+2]-o[g];u[g]=2*m/x,c[g]=2*(v-y)/x}r.bind(),e.bind(),r.attributes.dataCoord.pointer(),r.uniforms.dataShift=c,r.uniforms.dataScale=u;var b=0;for(g=0;g<2;++g){f[0]=f[1]=0,f[g]=1,r.uniforms.dataAxis=f,r.uniforms.lineWidth=l[g]/(s[g+2]-s[g])*d,r.uniforms.color=h[g];var _=6*n[g].length;p[g]&&_&&i.drawArrays(i.TRIANGLES,b,_),b+=_}}),d.drawTickMarks=function(){var t=[0,0],e=[0,0],r=[1,0],n=[0,1],i=[0,0],o=[0,0];return function(){for(var s=this.plot,c=this.vbo,u=this.tickShader,f=this.ticks,h=s.gl,p=s._tickBounds,d=s.dataBox,g=s.viewBox,v=s.pixelRatio,m=s.screenBox,y=m[2]-m[0],x=m[3]-m[1],b=g[2]-g[0],_=g[3]-g[1],w=0;w<2;++w){var k=p[w],M=p[w+2]-k,A=.5*(d[w+2]+d[w]),T=d[w+2]-d[w];e[w]=2*M/T,t[w]=2*(k-A)/T}e[0]*=b/y,t[0]*=b/y,e[1]*=_/x,t[1]*=_/x,u.bind(),c.bind(),u.attributes.dataCoord.pointer();var S=u.uniforms;S.dataShift=t,S.dataScale=e;var E=s.tickMarkLength,C=s.tickMarkWidth,L=s.tickMarkColor,z=6*f[0].length,O=Math.min(a.ge(f[0],(d[0]-p[0])/(p[2]-p[0]),l),f[0].length),I=Math.min(a.gt(f[0],(d[2]-p[0])/(p[2]-p[0]),l),f[0].length),P=0+6*O,D=6*Math.max(0,I-O),R=Math.min(a.ge(f[1],(d[1]-p[1])/(p[3]-p[1]),l),f[1].length),B=Math.min(a.gt(f[1],(d[3]-p[1])/(p[3]-p[1]),l),f[1].length),F=z+6*R,N=6*Math.max(0,B-R);i[0]=2*(g[0]-E[1])/y-1,i[1]=(g[3]+g[1])/x-1,o[0]=E[1]*v/y,o[1]=C[1]*v/x,N&&(S.color=L[1],S.tickScale=o,S.dataAxis=n,S.screenOffset=i,h.drawArrays(h.TRIANGLES,F,N)),i[0]=(g[2]+g[0])/y-1,i[1]=2*(g[1]-E[0])/x-1,o[0]=C[0]*v/y,o[1]=E[0]*v/x,D&&(S.color=L[0],S.tickScale=o,S.dataAxis=r,S.screenOffset=i,h.drawArrays(h.TRIANGLES,P,D)),i[0]=2*(g[2]+E[3])/y-1,i[1]=(g[3]+g[1])/x-1,o[0]=E[3]*v/y,o[1]=C[3]*v/x,N&&(S.color=L[3],S.tickScale=o,S.dataAxis=n,S.screenOffset=i,h.drawArrays(h.TRIANGLES,F,N)),i[0]=(g[2]+g[0])/y-1,i[1]=2*(g[3]+E[2])/x-1,o[0]=C[2]*v/y,o[1]=E[2]*v/x,D&&(S.color=L[2],S.tickScale=o,S.dataAxis=r,S.screenOffset=i,h.drawArrays(h.TRIANGLES,P,D))}}(),d.update=(h=[1,1,-1,-1,1,-1],p=[1,-1,1,1,-1,-1],function(t){for(var e=t.ticks,r=t.bounds,n=new Float32Array(18*(e[0].length+e[1].length)),i=(this.plot.zeroLineEnable,0),a=[[],[]],o=0;o<2;++o)for(var s=a[o],l=e[o],c=r[o],u=r[o+2],f=0;f<l.length;++f){var d=(l[f].x-c)/(u-c);s.push(d);for(var g=0;g<6;++g)n[i++]=d,n[i++]=h[g],n[i++]=p[g]}this.ticks=a,this.vbo.update(n)}),d.dispose=function(){this.vbo.dispose(),this.shader.dispose(),this.tickShader.dispose()}},{\\\"./shaders\\\":272,\\\"binary-search-bounds\\\":274,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288}],271:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e,[-1,-1,-1,1,1,-1,1,1]),s=i(e,a.lineVert,a.lineFrag);return new o(t,r,s)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-shader\\\"),a=t(\\\"./shaders\\\");function o(t,e,r){this.plot=t,this.vbo=e,this.shader=r}var s,l,c=o.prototype;c.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},c.drawLine=(s=[0,0],l=[0,0],function(t,e,r,n,i,a){var o=this.plot,c=this.shader,u=o.gl;s[0]=t,s[1]=e,l[0]=r,l[1]=n,c.uniforms.start=s,c.uniforms.end=l,c.uniforms.width=i*o.pixelRatio,c.uniforms.color=a,u.drawArrays(u.TRIANGLE_STRIP,0,4)}),c.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":272,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288}],272:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=n([\\\"precision lowp float;\\\\n#define GLSLIFY 1\\\\nuniform vec4 color;\\\\nvoid main() {\\\\n  gl_FragColor = vec4(color.xyz * color.w, color.w);\\\\n}\\\\n\\\"]);e.exports={lineVert:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 coord;\\\\n\\\\nuniform vec4 screenBox;\\\\nuniform vec2 start, end;\\\\nuniform float width;\\\\n\\\\nvec2 perp(vec2 v) {\\\\n  return vec2(v.y, -v.x);\\\\n}\\\\n\\\\nvec2 screen(vec2 v) {\\\\n  return 2.0 * (v - screenBox.xy) / (screenBox.zw - screenBox.xy) - 1.0;\\\\n}\\\\n\\\\nvoid main() {\\\\n  vec2 delta = normalize(perp(start - end));\\\\n  vec2 offset = mix(start, end, 0.5 * (coord.y+1.0));\\\\n  gl_Position = vec4(screen(offset + 0.5 * width * delta * coord.x), 0, 1);\\\\n}\\\\n\\\"]),lineFrag:i,textVert:n([\\\"#define GLSLIFY 1\\\\nattribute vec3 textCoordinate;\\\\n\\\\nuniform vec2 dataScale, dataShift, dataAxis, screenOffset, textScale;\\\\nuniform float angle;\\\\n\\\\nvoid main() {\\\\n  float dataOffset  = textCoordinate.z;\\\\n  vec2 glyphOffset  = textCoordinate.xy;\\\\n  mat2 glyphMatrix = mat2(cos(angle), sin(angle), -sin(angle), cos(angle));\\\\n  vec2 screenCoordinate = dataAxis * (dataScale * dataOffset + dataShift) +\\\\n    glyphMatrix * glyphOffset * textScale + screenOffset;\\\\n  gl_Position = vec4(screenCoordinate, 0, 1);\\\\n}\\\\n\\\"]),textFrag:i,gridVert:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 dataCoord;\\\\n\\\\nuniform vec2 dataAxis, dataShift, dataScale;\\\\nuniform float lineWidth;\\\\n\\\\nvoid main() {\\\\n  vec2 pos = dataAxis * (dataScale * dataCoord.x + dataShift);\\\\n  pos += 10.0 * dataCoord.y * vec2(dataAxis.y, -dataAxis.x) + dataCoord.z * lineWidth;\\\\n  gl_Position = vec4(pos, 0, 1);\\\\n}\\\\n\\\"]),gridFrag:i,boxVert:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 coord;\\\\n\\\\nuniform vec4 screenBox;\\\\nuniform vec2 lo, hi;\\\\n\\\\nvec2 screen(vec2 v) {\\\\n  return 2.0 * (v - screenBox.xy) / (screenBox.zw - screenBox.xy) - 1.0;\\\\n}\\\\n\\\\nvoid main() {\\\\n  gl_Position = vec4(screen(mix(lo, hi, coord)), 0, 1);\\\\n}\\\\n\\\"]),tickVert:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 dataCoord;\\\\n\\\\nuniform vec2 dataAxis, dataShift, dataScale, screenOffset, tickScale;\\\\n\\\\nvoid main() {\\\\n  vec2 pos = dataAxis * (dataScale * dataCoord.x + dataShift);\\\\n  gl_Position = vec4(pos + tickScale*dataCoord.yz + screenOffset, 0, 1);\\\\n}\\\\n\\\"])}},{glslify:392}],273:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e),a=i(e,s.textVert,s.textFrag);return new l(t,r,a)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-shader\\\"),a=t(\\\"text-cache\\\"),o=t(\\\"binary-search-bounds\\\"),s=t(\\\"./shaders\\\");function l(t,e,r){this.plot=t,this.vbo=e,this.shader=r,this.tickOffset=[[],[]],this.tickX=[[],[]],this.labelOffset=[0,0],this.labelCount=[0,0]}var c,u,f,h,p,d,g=l.prototype;g.drawTicks=(c=[0,0],u=[0,0],f=[0,0],function(t){var e=this.plot,r=this.shader,n=this.tickX[t],i=this.tickOffset[t],a=e.gl,s=e.viewBox,l=e.dataBox,h=e.screenBox,p=e.pixelRatio,d=e.tickEnable,g=e.tickPad,v=e.tickColor,m=e.tickAngle,y=e.labelEnable,x=e.labelPad,b=e.labelColor,_=e.labelAngle,w=this.labelOffset[t],k=this.labelCount[t],M=o.lt(n,l[t]),A=o.le(n,l[t+2]);c[0]=c[1]=0,c[t]=1,u[t]=(s[2+t]+s[t])/(h[2+t]-h[t])-1;var T=2/h[2+(1^t)]-h[1^t];u[1^t]=T*s[1^t]-1,d[t]&&(u[1^t]-=T*p*g[t],M<A&&i[A]>i[M]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=v[t],r.uniforms.angle=m[t],a.drawArrays(a.TRIANGLES,i[M],i[A]-i[M]))),y[t]&&k&&(u[1^t]-=T*p*x[t],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t],r.uniforms.angle=_[t],a.drawArrays(a.TRIANGLES,w,k)),u[1^t]=T*s[2+(1^t)]-1,d[t+2]&&(u[1^t]+=T*p*g[t+2],M<A&&i[A]>i[M]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=v[t+2],r.uniforms.angle=m[t+2],a.drawArrays(a.TRIANGLES,i[M],i[A]-i[M]))),y[t+2]&&k&&(u[1^t]+=T*p*x[t+2],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],a.drawArrays(a.TRIANGLES,w,k))}),g.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,c=r.pixelRatio;if(this.titleCount){for(var u=0;u<2;++u)e[u]=2*(o[u]*c-a[u])/(a[2+u]-a[u])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),g.bind=(h=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,i=t.screenBox,a=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,c=.5*(n[o+2]+n[o]),u=n[o+2]-n[o],f=a[o],g=a[o+2]-f,v=i[o],m=i[o+2]-v;p[o]=2*l/u*g/m,h[o]=2*(s-c)/u*g/m}d[1]=2*t.pixelRatio/(i[3]-i[1]),d[0]=d[1]*(i[3]-i[1])/(i[2]-i[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=h,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),g.update=function(t){var e,r,n,i,o,s=[],l=t.ticks,c=t.bounds;for(o=0;o<2;++o){var u=[Math.floor(s.length/3)],f=[-1/0],h=l[o];for(e=0;e<h.length;++e){var p=h[e],d=p.x,g=p.text,v=p.font||\\\"sans-serif\\\";i=p.fontSize||12;for(var m=1/(c[o+2]-c[o]),y=c[o],x=g.split(\\\"\\\\n\\\"),b=0;b<x.length;b++)for(n=a(v,x[b]).data,r=0;r<n.length;r+=2)s.push(n[r]*i,-n[r+1]*i-b*i*1.2,(d-y)*m);u.push(Math.floor(s.length/3)),f.push(d)}this.tickOffset[o]=u,this.tickX[o]=f}for(o=0;o<2;++o){for(this.labelOffset[o]=Math.floor(s.length/3),n=a(t.labelFont[o],t.labels[o],{textAlign:\\\"center\\\"}).data,i=t.labelSize[o],e=0;e<n.length;e+=2)s.push(n[e]*i,-n[e+1]*i,0);this.labelCount[o]=Math.floor(s.length/3)-this.labelOffset[o]}for(this.titleOffset=Math.floor(s.length/3),n=a(t.titleFont,t.title).data,i=t.titleSize,e=0;e<n.length;e+=2)s.push(n[e]*i,-n[e+1]*i,0);this.titleCount=Math.floor(s.length/3)-this.titleOffset,this.vbo.update(s)},g.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":272,\\\"binary-search-bounds\\\":274,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288,\\\"text-cache\\\":513}],274:[function(t,e,r){arguments[4][99][0].apply(r,arguments)},{dup:99}],275:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e,[e.drawingBufferWidth,e.drawingBufferHeight]),c=new l(e,r);return c.grid=i(c),c.text=a(c),c.line=o(c),c.box=s(c),c.update(t),c};var n=t(\\\"gl-select-static\\\"),i=t(\\\"./lib/grid\\\"),a=t(\\\"./lib/text\\\"),o=t(\\\"./lib/line\\\"),s=t(\\\"./lib/box\\\");function l(t,e){this.gl=t,this.pickBuffer=e,this.screenBox=[0,0,t.drawingBufferWidth,t.drawingBufferHeight],this.viewBox=[0,0,0,0],this.dataBox=[-10,-10,10,10],this.gridLineEnable=[!0,!0],this.gridLineWidth=[1,1],this.gridLineColor=[[0,0,0,1],[0,0,0,1]],this.pixelRatio=1,this.tickMarkLength=[0,0,0,0],this.tickMarkWidth=[0,0,0,0],this.tickMarkColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[15,15,15,15],this.tickAngle=[0,0,0,0],this.tickEnable=[!0,!0,!0,!0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[15,15,15,15],this.labelAngle=[0,Math.PI/2,0,3*Math.PI/2],this.labelEnable=[!0,!0,!0,!0],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.titleCenter=[0,0],this.titleEnable=!0,this.titleAngle=0,this.titleColor=[0,0,0,1],this.borderColor=[0,0,0,0],this.backgroundColor=[0,0,0,0],this.zeroLineEnable=[!0,!0],this.zeroLineWidth=[4,4],this.zeroLineColor=[[0,0,0,1],[0,0,0,1]],this.borderLineEnable=[!0,!0,!0,!0],this.borderLineWidth=[2,2,2,2],this.borderLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.grid=null,this.text=null,this.line=null,this.box=null,this.objects=[],this.overlays=[],this._tickBounds=[1/0,1/0,-1/0,-1/0],this.static=!1,this.dirty=!1,this.pickDirty=!1,this.pickDelay=120,this.pickRadius=10,this._pickTimeout=null,this._drawPick=this.drawPick.bind(this),this._depthCounter=0}var c=l.prototype;function u(t){for(var e=t.slice(),r=0;r<e.length;++r)e[r]=e[r].slice();return e}function f(t,e){return t.x-e.x}c.setDirty=function(){this.dirty=this.pickDirty=!0},c.setOverlayDirty=function(){this.dirty=!0},c.nextDepthValue=function(){return this._depthCounter++/65536},c.draw=function(){var t=this.gl,e=this.screenBox,r=this.viewBox,n=this.dataBox,i=this.pixelRatio,a=this.grid,o=this.line,s=this.text,l=this.objects;if(this._depthCounter=0,this.pickDirty&&(this._pickTimeout&&clearTimeout(this._pickTimeout),this.pickDirty=!1,this._pickTimeout=setTimeout(this._drawPick,this.pickDelay)),this.dirty){if(this.dirty=!1,t.bindFramebuffer(t.FRAMEBUFFER,null),t.enable(t.SCISSOR_TEST),t.disable(t.DEPTH_TEST),t.depthFunc(t.LESS),t.depthMask(!1),t.enable(t.BLEND),t.blendEquation(t.FUNC_ADD,t.FUNC_ADD),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.borderColor){t.scissor(e[0],e[1],e[2]-e[0],e[3]-e[1]);var c=this.borderColor;t.clearColor(c[0]*c[3],c[1]*c[3],c[2]*c[3],c[3]),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}t.scissor(r[0],r[1],r[2]-r[0],r[3]-r[1]),t.viewport(r[0],r[1],r[2]-r[0],r[3]-r[1]);var u=this.backgroundColor;t.clearColor(u[0]*u[3],u[1]*u[3],u[2]*u[3],u[3]),t.clear(t.COLOR_BUFFER_BIT),a.draw();var f=this.zeroLineEnable,h=this.zeroLineColor,p=this.zeroLineWidth;if(f[0]||f[1]){o.bind();for(var d=0;d<2;++d)if(f[d]&&n[d]<=0&&n[d+2]>=0){var g=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(g,e[1],g,e[3],p[d],h[d]):o.drawLine(e[0],g,e[2],g,p[d],h[d])}}for(d=0;d<l.length;++d)l[d].draw();t.viewport(e[0],e[1],e[2]-e[0],e[3]-e[1]),t.scissor(e[0],e[1],e[2]-e[0],e[3]-e[1]),this.grid.drawTickMarks(),o.bind();var v=this.borderLineEnable,m=this.borderLineWidth,y=this.borderLineColor;for(v[1]&&o.drawLine(r[0],r[1]-.5*m[1]*i,r[0],r[3]+.5*m[3]*i,m[1],y[1]),v[0]&&o.drawLine(r[0]-.5*m[0]*i,r[1],r[2]+.5*m[2]*i,r[1],m[0],y[0]),v[3]&&o.drawLine(r[2],r[1]-.5*m[1]*i,r[2],r[3]+.5*m[3]*i,m[3],y[3]),v[2]&&o.drawLine(r[0]-.5*m[0]*i,r[3],r[2]+.5*m[2]*i,r[3],m[2],y[2]),s.bind(),d=0;d<2;++d)s.drawTicks(d);this.titleEnable&&s.drawTitle();var x=this.overlays;for(d=0;d<x.length;++d)x[d].draw();t.disable(t.SCISSOR_TEST),t.disable(t.BLEND),t.depthMask(!0)}},c.drawPick=function(){if(!this.static){var t=this.pickBuffer;this.gl;this._pickTimeout=null,t.begin();for(var e=1,r=this.objects,n=0;n<r.length;++n)e=r[n].drawPick(e);t.end()}},c.pick=function(t,e){if(!this.static){var r=this.pixelRatio,n=this.pickPixelRatio,i=this.viewBox,a=0|Math.round((t-i[0]/r)*n),o=0|Math.round((e-i[1]/r)*n),s=this.pickBuffer.query(a,o,this.pickRadius);if(!s)return null;for(var l=s.id+(s.value[0]<<8)+(s.value[1]<<16)+(s.value[2]<<24),c=this.objects,u=0;u<c.length;++u){var f=c[u].pick(a,o,l);if(f)return f}return null}},c.setScreenBox=function(t){var e=this.screenBox,r=this.pixelRatio;e[0]=0|Math.round(t[0]*r),e[1]=0|Math.round(t[1]*r),e[2]=0|Math.round(t[2]*r),e[3]=0|Math.round(t[3]*r),this.setDirty()},c.setDataBox=function(t){var e=this.dataBox;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3])&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],this.setDirty())},c.setViewBox=function(t){var e=this.pixelRatio,r=this.viewBox;r[0]=0|Math.round(t[0]*e),r[1]=0|Math.round(t[1]*e),r[2]=0|Math.round(t[2]*e),r[3]=0|Math.round(t[3]*e);var n=this.pickPixelRatio;this.pickBuffer.shape=[0|Math.round((t[2]-t[0])*n),0|Math.round((t[3]-t[1])*n)],this.setDirty()},c.update=function(t){t=t||{};var e=this.gl;this.pixelRatio=t.pixelRatio||1;var r=this.pixelRatio;this.pickPixelRatio=Math.max(r,1),this.setScreenBox(t.screenBox||[0,0,e.drawingBufferWidth/r,e.drawingBufferHeight/r]);this.screenBox;this.setViewBox(t.viewBox||[.125*(this.screenBox[2]-this.screenBox[0])/r,.125*(this.screenBox[3]-this.screenBox[1])/r,.875*(this.screenBox[2]-this.screenBox[0])/r,.875*(this.screenBox[3]-this.screenBox[1])/r]);var n=this.viewBox,i=(n[2]-n[0])/(n[3]-n[1]);this.setDataBox(t.dataBox||[-10,-10/i,10,10/i]),this.borderColor=!1!==t.borderColor&&(t.borderColor||[0,0,0,0]).slice(),this.backgroundColor=(t.backgroundColor||[0,0,0,0]).slice(),this.gridLineEnable=(t.gridLineEnable||[!0,!0]).slice(),this.gridLineWidth=(t.gridLineWidth||[1,1]).slice(),this.gridLineColor=u(t.gridLineColor||[[.5,.5,.5,1],[.5,.5,.5,1]]),this.zeroLineEnable=(t.zeroLineEnable||[!0,!0]).slice(),this.zeroLineWidth=(t.zeroLineWidth||[4,4]).slice(),this.zeroLineColor=u(t.zeroLineColor||[[0,0,0,1],[0,0,0,1]]),this.tickMarkLength=(t.tickMarkLength||[0,0,0,0]).slice(),this.tickMarkWidth=(t.tickMarkWidth||[0,0,0,0]).slice(),this.tickMarkColor=u(t.tickMarkColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.titleCenter=(t.titleCenter||[.5*(n[0]+n[2])/r,(n[3]+120)/r]).slice(),this.titleEnable=!(\\\"titleEnable\\\"in t&&!t.titleEnable),this.titleAngle=t.titleAngle||0,this.titleColor=(t.titleColor||[0,0,0,1]).slice(),this.labelPad=(t.labelPad||[15,15,15,15]).slice(),this.labelAngle=(t.labelAngle||[0,Math.PI/2,0,3*Math.PI/2]).slice(),this.labelEnable=(t.labelEnable||[!0,!0,!0,!0]).slice(),this.labelColor=u(t.labelColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.tickPad=(t.tickPad||[15,15,15,15]).slice(),this.tickAngle=(t.tickAngle||[0,0,0,0]).slice(),this.tickEnable=(t.tickEnable||[!0,!0,!0,!0]).slice(),this.tickColor=u(t.tickColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.borderLineEnable=(t.borderLineEnable||[!0,!0,!0,!0]).slice(),this.borderLineWidth=(t.borderLineWidth||[2,2,2,2]).slice(),this.borderLineColor=u(t.borderLineColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]);var a=t.ticks||[[],[]],o=this._tickBounds;o[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(var s=0;s<2;++s){var l=a[s].slice(0);0!==l.length&&(l.sort(f),o[s]=Math.min(o[s],l[0].x),o[s+2]=Math.max(o[s+2],l[l.length-1].x))}this.grid.update({bounds:o,ticks:a}),this.text.update({bounds:o,ticks:a,labels:t.labels||[\\\"x\\\",\\\"y\\\"],labelSize:t.labelSize||[12,12],labelFont:t.labelFont||[\\\"sans-serif\\\",\\\"sans-serif\\\"],title:t.title||\\\"\\\",titleSize:t.titleSize||18,titleFont:t.titleFont||\\\"sans-serif\\\"}),this.static=!!t.static,this.setDirty()},c.dispose=function(){this.box.dispose(),this.grid.dispose(),this.text.dispose(),this.line.dispose();for(var t=this.objects.length-1;t>=0;--t)this.objects[t].dispose();this.objects.length=0;for(t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},c.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},c.removeObject=function(t){for(var e=this.objects,r=0;r<e.length;++r)if(e[r]===t){e.splice(r,1),this.setDirty();break}},c.addOverlay=function(t){this.overlays.indexOf(t)<0&&(this.overlays.push(t),this.setOverlayDirty())},c.removeOverlay=function(t){for(var e=this.overlays,r=0;r<e.length;++r)if(e[r]===t){e.splice(r,1),this.setOverlayDirty();break}}},{\\\"./lib/box\\\":269,\\\"./lib/grid\\\":270,\\\"./lib/line\\\":271,\\\"./lib/text\\\":273,\\\"gl-select-static\\\":287}],276:[function(t,e,r){var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\nattribute vec2 position;\\\\nvarying vec2 uv;\\\\nvoid main() {\\\\n  uv = position;\\\\n  gl_Position = vec4(position, 0, 1);\\\\n}\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform sampler2D accumBuffer;\\\\nvarying vec2 uv;\\\\n\\\\nvoid main() {\\\\n  vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\\\\n  gl_FragColor = min(vec4(1,1,1,1), accum);\\\\n}\\\"]);e.exports=function(t){return i(t,a,o,null,[{name:\\\"position\\\",type:\\\"vec2\\\"}])}},{\\\"gl-shader\\\":288,glslify:392}],277:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=!1,r=((t=t||{}).pixelRatio||parseFloat(window.devicePixelRatio),t.canvas);if(!r)if(r=document.createElement(\\\"canvas\\\"),t.container){var m=t.container;m.appendChild(r)}else document.body.appendChild(r);var y=t.gl;y||(y=function(t,e){var r=null;try{(r=t.getContext(\\\"webgl\\\",e))||(r=t.getContext(\\\"experimental-webgl\\\",e))}catch(t){return null}return r}(r,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:p}));if(!y)throw new Error(\\\"webgl not supported\\\");var x=t.bounds||[[-10,-10,-10],[10,10,10]],b=new d,_=l(y,[y.drawingBufferWidth,y.drawingBufferHeight],{preferFloat:!p}),w=h(y),k=t.camera||{eye:[2,0,0],center:[0,0,0],up:[0,1,0],zoomMin:.1,zoomMax:100,mode:\\\"turntable\\\"},M=t.axes||{},A=i(y,M);A.enable=!M.disable;var T=t.spikes||{},S=o(y,T),E=[],C=[],L=[],z=[],O=!0,I=!0,P=new Array(16),D=new Array(16),R={view:null,projection:P,model:D},I=!0,B=[y.drawingBufferWidth,y.drawingBufferHeight],F={gl:y,contextLost:!1,pixelRatio:t.pixelRatio||parseFloat(window.devicePixelRatio),canvas:r,selection:b,camera:n(r,k),axes:A,axesPixels:null,spikes:S,bounds:x,objects:E,shape:B,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:v(t.autoResize),autoBounds:v(t.autoBounds),autoScale:!!t.autoScale,autoCenter:v(t.autoCenter),clipToBounds:v(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:R,oncontextloss:null,mouseListener:null},N=[y.drawingBufferWidth/F.pixelRatio|0,y.drawingBufferHeight/F.pixelRatio|0];function j(){if(!e&&F.autoResize){var t=r.parentNode,n=1,i=1;t&&t!==document.body?(n=t.clientWidth,i=t.clientHeight):(n=window.innerWidth,i=window.innerHeight);var a=0|Math.ceil(n*F.pixelRatio),o=0|Math.ceil(i*F.pixelRatio);if(a!==r.width||o!==r.height){r.width=a,r.height=o;var s=r.style;s.position=s.position||\\\"absolute\\\",s.left=\\\"0px\\\",s.top=\\\"0px\\\",s.width=n+\\\"px\\\",s.height=i+\\\"px\\\",O=!0}}}F.autoResize&&j();function V(){for(var t=E.length,e=z.length,r=0;r<e;++r)L[r]=0;t:for(var r=0;r<t;++r){var n=E[r],i=n.pickSlots;if(i){for(var a=0;a<e;++a)if(L[a]+i<255){C[r]=a,n.setPickBase(L[a]+1),L[a]+=i;continue t}var o=s(y,B);C[r]=e,z.push(o),L.push(i),n.setPickBase(1),e+=1}else C[r]=-1}for(;e>0&&0===L[e-1];)L.pop(),z.pop().dispose()}window.addEventListener(\\\"resize\\\",j),F.update=function(t){e||(t=t||{},O=!0,I=!0)},F.add=function(t){e||(t.axes=A,E.push(t),C.push(-1),O=!0,I=!0,V())},F.remove=function(t){if(!e){var r=E.indexOf(t);r<0||(E.splice(r,1),C.pop(),O=!0,I=!0,V())}},F.dispose=function(){if(!e&&(e=!0,window.removeEventListener(\\\"resize\\\",j),r.removeEventListener(\\\"webglcontextlost\\\",H),F.mouseListener.enabled=!1,!F.contextLost)){A.dispose(),S.dispose();for(var t=0;t<E.length;++t)E[t].dispose();_.dispose();for(var t=0;t<z.length;++t)z[t].dispose();w.dispose(),y=null,A=null,S=null,E=[]}};var U=!1,q=0;function H(){if(F.contextLost)return!0;y.isContextLost()&&(F.contextLost=!0,F.mouseListener.enabled=!1,F.selection.object=null,F.oncontextloss&&F.oncontextloss())}F.mouseListener=u(r,function(t,r,n){if(!e){var i=z.length,a=E.length,o=b.object;b.distance=1/0,b.mouse[0]=r,b.mouse[1]=n,b.object=null,b.screen=null,b.dataCoordinate=b.dataPosition=null;var s=!1;if(t&&q)U=!0;else{U&&(I=!0),U=!1;for(var l=0;l<i;++l){var c=z[l].query(r,N[1]-n-1,F.pickRadius);if(c){if(c.distance>b.distance)continue;for(var u=0;u<a;++u){var f=E[u];if(C[u]===l){var h=f.pick(c);h&&(b.buttons=t,b.screen=c.coord,b.distance=c.distance,b.object=f,b.index=h.distance,b.dataPosition=h.position,b.dataCoordinate=h.dataCoordinate,b.data=h,s=!0)}}}}}o&&o!==b.object&&(o.highlight&&o.highlight(null),O=!0),b.object&&(b.object.highlight&&b.object.highlight(b.data),O=!0),(s=s||b.object!==o)&&F.onselect&&F.onselect(b),1&t&&!(1&q)&&F.onclick&&F.onclick(b),q=t}}),r.addEventListener(\\\"webglcontextlost\\\",H);var G=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],W=[G[0].slice(),G[1].slice()];function Y(){if(!H()){j();var t=F.camera.tick();R.view=F.camera.matrix,O=O||t,I=I||t,A.pixelRatio=F.pixelRatio,S.pixelRatio=F.pixelRatio;var e=E.length,r=G[0],n=G[1];r[0]=r[1]=r[2]=1/0,n[0]=n[1]=n[2]=-1/0;for(var i=0;i<e;++i){var o=E[i];o.pixelRatio=F.pixelRatio,o.axes=F.axes,O=O||!!o.dirty,I=I||!!o.dirty;var s=o.bounds;if(s)for(var l=s[0],u=s[1],h=0;h<3;++h)r[h]=Math.min(r[h],l[h]),n[h]=Math.max(n[h],u[h])}var p=F.bounds;if(F.autoBounds)for(var h=0;h<3;++h){if(n[h]<r[h])r[h]=-1,n[h]=1;else{r[h]===n[h]&&(r[h]-=1,n[h]+=1);var d=.05*(n[h]-r[h]);r[h]=r[h]-d,n[h]=n[h]+d}p[0][h]=r[h],p[1][h]=n[h]}for(var v=!1,h=0;h<3;++h)v=v||W[0][h]!==p[0][h]||W[1][h]!==p[1][h],W[0][h]=p[0][h],W[1][h]=p[1][h];if(I=I||v,O=O||v){if(v){for(var m=[0,0,0],i=0;i<3;++i)m[i]=g((p[1][i]-p[0][i])/10);A.autoTicks?A.update({bounds:p,tickSpacing:m}):A.update({bounds:p})}var x=y.drawingBufferWidth,k=y.drawingBufferHeight;B[0]=x,B[1]=k,N[0]=0|Math.max(x/F.pixelRatio,1),N[1]=0|Math.max(k/F.pixelRatio,1),f(P,F.fovy,x/k,F.zNear,F.zFar);for(var i=0;i<16;++i)D[i]=0;D[15]=1;for(var M=0,i=0;i<3;++i)M=Math.max(M,p[1][i]-p[0][i]);for(var i=0;i<3;++i)F.autoScale?D[5*i]=F.aspect[i]/(p[1][i]-p[0][i]):D[5*i]=1/M,F.autoCenter&&(D[12+i]=.5*-D[5*i]*(p[0][i]+p[1][i]));for(var i=0;i<e;++i){var o=E[i];o.axesBounds=p,F.clipToBounds&&(o.clipBounds=p)}b.object&&(F.snapToData?S.position=b.dataCoordinate:S.position=b.dataPosition,S.bounds=p),I&&(I=!1,function(){if(H())return;y.colorMask(!0,!0,!0,!0),y.depthMask(!0),y.disable(y.BLEND),y.enable(y.DEPTH_TEST);for(var t=E.length,e=z.length,r=0;r<e;++r){var n=z[r];n.shape=N,n.begin();for(var i=0;i<t;++i)if(C[i]===r){var a=E[i];a.drawPick&&(a.pixelRatio=1,a.drawPick(R))}n.end()}}()),F.axesPixels=a(F.axes,R,x,k),F.onrender&&F.onrender(),y.bindFramebuffer(y.FRAMEBUFFER,null),y.viewport(0,0,x,k);var T=F.clearColor;y.clearColor(T[0],T[1],T[2],T[3]),y.clear(y.COLOR_BUFFER_BIT|y.DEPTH_BUFFER_BIT),y.depthMask(!0),y.colorMask(!0,!0,!0,!0),y.enable(y.DEPTH_TEST),y.depthFunc(y.LEQUAL),y.disable(y.BLEND),y.disable(y.CULL_FACE);var L=!1;A.enable&&(L=L||A.isTransparent(),A.draw(R)),S.axes=A,b.object&&S.draw(R),y.disable(y.CULL_FACE);for(var i=0;i<e;++i){var o=E[i];o.axes=A,o.pixelRatio=F.pixelRatio,o.isOpaque&&o.isOpaque()&&o.draw(R),o.isTransparent&&o.isTransparent()&&(L=!0)}if(L){_.shape=B,_.bind(),y.clear(y.DEPTH_BUFFER_BIT),y.colorMask(!1,!1,!1,!1),y.depthMask(!0),y.depthFunc(y.LESS),A.enable&&A.isTransparent()&&A.drawTransparent(R);for(var i=0;i<e;++i){var o=E[i];o.isOpaque&&o.isOpaque()&&o.draw(R)}y.enable(y.BLEND),y.blendEquation(y.FUNC_ADD),y.blendFunc(y.ONE,y.ONE_MINUS_SRC_ALPHA),y.colorMask(!0,!0,!0,!0),y.depthMask(!1),y.clearColor(0,0,0,0),y.clear(y.COLOR_BUFFER_BIT),A.isTransparent()&&A.drawTransparent(R);for(var i=0;i<e;++i){var o=E[i];o.isTransparent&&o.isTransparent()&&o.drawTransparent(R)}y.bindFramebuffer(y.FRAMEBUFFER,null),y.blendFunc(y.ONE,y.ONE_MINUS_SRC_ALPHA),y.disable(y.DEPTH_TEST),w.bind(),_.color[0].bind(0),w.uniforms.accumBuffer=0,c(y),y.disable(y.BLEND)}O=!1;for(var i=0;i<e;++i)E[i].dirty=!1}}}return function t(){e||F.contextLost||(Y(),requestAnimationFrame(t))}(),F.redraw=function(){e||(O=!0,Y())},F};var n=t(\\\"3d-view-controls\\\"),i=t(\\\"gl-axes3d\\\"),a=t(\\\"gl-axes3d/properties\\\"),o=t(\\\"gl-spikes3d\\\"),s=t(\\\"gl-select-static\\\"),l=t(\\\"gl-fbo\\\"),c=t(\\\"a-big-triangle\\\"),u=t(\\\"mouse-change\\\"),f=t(\\\"gl-mat4/perspective\\\"),h=t(\\\"./lib/shader\\\"),p=t(\\\"is-mobile\\\")({tablet:!0});function d(){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 g(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}if(e>0){r=Math.round(Math.pow(10,e));return Math.ceil(t/r)*r}return Math.ceil(t)}function v(t){return\\\"boolean\\\"!=typeof t||t}},{\\\"./lib/shader\\\":276,\\\"3d-view-controls\\\":44,\\\"a-big-triangle\\\":47,\\\"gl-axes3d\\\":222,\\\"gl-axes3d/properties\\\":229,\\\"gl-fbo\\\":239,\\\"gl-mat4/perspective\\\":257,\\\"gl-select-static\\\":287,\\\"gl-spikes3d\\\":297,\\\"is-mobile\\\":403,\\\"mouse-change\\\":418}],278:[function(t,e,r){var n=t(\\\"glslify\\\");r.pointVertex=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position;\\\\n\\\\nuniform mat3 matrix;\\\\nuniform float pointSize;\\\\nuniform float pointCloud;\\\\n\\\\nhighp float rand(vec2 co) {\\\\n  highp float a = 12.9898;\\\\n  highp float b = 78.233;\\\\n  highp float c = 43758.5453;\\\\n  highp float d = dot(co.xy, vec2(a, b));\\\\n  highp float e = mod(d, 3.14);\\\\n  return fract(sin(e) * c);\\\\n}\\\\n\\\\nvoid main() {\\\\n  vec3 hgPosition = matrix * vec3(position, 1);\\\\n  gl_Position  = vec4(hgPosition.xy, 0, hgPosition.z);\\\\n    // if we don't jitter the point size a bit, overall point cloud\\\\n    // saturation 'jumps' on zooming, which is disturbing and confusing\\\\n  gl_PointSize = pointSize * ((19.5 + rand(position)) / 20.0);\\\\n  if(pointCloud != 0.0) { // pointCloud is truthy\\\\n    // get the same square surface as circle would be\\\\n    gl_PointSize *= 0.886;\\\\n  }\\\\n}\\\"]),r.pointFragment=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform vec4 color, borderColor;\\\\nuniform float centerFraction;\\\\nuniform float pointCloud;\\\\n\\\\nvoid main() {\\\\n  float radius;\\\\n  vec4 baseColor;\\\\n  if(pointCloud != 0.0) { // pointCloud is truthy\\\\n    if(centerFraction == 1.0) {\\\\n      gl_FragColor = color;\\\\n    } else {\\\\n      gl_FragColor = mix(borderColor, color, centerFraction);\\\\n    }\\\\n  } else {\\\\n    radius = length(2.0 * gl_PointCoord.xy - 1.0);\\\\n    if(radius > 1.0) {\\\\n      discard;\\\\n    }\\\\n    baseColor = mix(borderColor, color, step(radius, centerFraction));\\\\n    gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\\\\n  }\\\\n}\\\\n\\\"]),r.pickVertex=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position;\\\\nattribute vec4 pickId;\\\\n\\\\nuniform mat3 matrix;\\\\nuniform float pointSize;\\\\nuniform vec4 pickOffset;\\\\n\\\\nvarying vec4 fragId;\\\\n\\\\nvoid main() {\\\\n  vec3 hgPosition = matrix * vec3(position, 1);\\\\n  gl_Position  = vec4(hgPosition.xy, 0, hgPosition.z);\\\\n  gl_PointSize = pointSize;\\\\n\\\\n  vec4 id = pickId + pickOffset;\\\\n  id.y += floor(id.x / 256.0);\\\\n  id.x -= floor(id.x / 256.0) * 256.0;\\\\n\\\\n  id.z += floor(id.y / 256.0);\\\\n  id.y -= floor(id.y / 256.0) * 256.0;\\\\n\\\\n  id.w += floor(id.z / 256.0);\\\\n  id.z -= floor(id.z / 256.0) * 256.0;\\\\n\\\\n  fragId = id;\\\\n}\\\\n\\\"]),r.pickFragment=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragId;\\\\n\\\\nvoid main() {\\\\n  float radius = length(2.0 * gl_PointCoord.xy - 1.0);\\\\n  if(radius > 1.0) {\\\\n    discard;\\\\n  }\\\\n  gl_FragColor = fragId / 255.0;\\\\n}\\\\n\\\"])},{glslify:392}],279:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"typedarray-pool\\\"),o=t(\\\"./lib/shader\\\");function s(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,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}e.exports=function(t,e){var r=t.gl,a=i(r),l=i(r),c=n(r,o.pointVertex,o.pointFragment),u=n(r,o.pickVertex,o.pickFragment),f=new s(t,a,l,c,u);return f.update(e),t.addObject(f),f};var l,c,u=s.prototype;u.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},u.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r(\\\"sizeMin\\\",.5),this.sizeMax=r(\\\"sizeMax\\\",20),this.color=r(\\\"color\\\",[1,0,0,1]).slice(),this.areaRatio=r(\\\"areaRatio\\\",1),this.borderColor=r(\\\"borderColor\\\",[0,0,0,1]).slice(),this.blend=r(\\\"blend\\\",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=i?s:a.mallocFloat32(s.length),c=o?t.idToIndex:a.mallocInt32(n);if(i||l.set(s),!o)for(l.set(s),e=0;e<n;e++)c[e]=e;this.points=s,this.offsetBuffer.update(l),this.pickBuffer.update(c),i||a.free(l),o||a.free(c),this.pointCount=n,this.pickOffset=0},u.unifiedDraw=(l=[1,0,0,0,1,0,0,0,1],c=[0,0,0,0],function(t){var e=void 0!==t,r=e?this.pickShader:this.shader,n=this.plot.gl,i=this.plot.dataBox;if(0===this.pointCount)return t;var a=i[2]-i[0],o=i[3]-i[1],s=function(t,e){var r,n=0,i=t.length>>>1;for(r=0;r<i;r++){var a=t[2*r],o=t[2*r+1];a>=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,i),u=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/a,l[4]=2/o,l[6]=-2*i[0]/a-1,l[7]=-2*i[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=u<5,r.uniforms.pointSize=u,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(c[0]=255&t,c[1]=t>>8&255,c[2]=t>>16&255,c[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=c,this.pickOffset=t);var f=n.getParameter(n.BLEND),h=n.getParameter(n.DITHER);return f&&!this.blend&&n.disable(n.BLEND),h&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),f&&!this.blend&&n.enable(n.BLEND),h&&n.enable(n.DITHER),t+this.pointCount}),u.draw=u.unifiedDraw,u.drawPick=u.unifiedDraw,u.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r<n||r>=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}}},{\\\"./lib/shader\\\":278,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288,\\\"typedarray-pool\\\":522}],280:[function(t,e,r){e.exports=function(t,e,r,n){var i,a,o,s,l,c=e[0],u=e[1],f=e[2],h=e[3],p=r[0],d=r[1],g=r[2],v=r[3];(a=c*p+u*d+f*g+h*v)<0&&(a=-a,p=-p,d=-d,g=-g,v=-v);1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n);return t[0]=s*c+l*p,t[1]=s*u+l*d,t[2]=s*f+l*g,t[3]=s*h+l*v,t}},{}],281:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t||0===t?t.toString():\\\"\\\"}},{}],282:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"vectorize-text\\\");e.exports=function(t,e){var r=i[e];r||(r=i[e]={});if(t in r)return r[t];for(var a=n(t,{textAlign:\\\"center\\\",textBaseline:\\\"middle\\\",lineHeight:1,font:e}),o=n(t,{triangles:!0,textAlign:\\\"center\\\",textBaseline:\\\"middle\\\",lineHeight:1,font:e}),s=[[1/0,1/0],[-1/0,-1/0]],l=0;l<a.positions.length;++l)for(var c=a.positions[l],u=0;u<2;++u)s[0][u]=Math.min(s[0][u],c[u]),s[1][u]=Math.max(s[1][u],c[u]);return r[t]=[o,a,s]};var i={}},{\\\"vectorize-text\\\":527}],283:[function(t,e,r){var n=t(\\\"gl-shader\\\"),i=t(\\\"glslify\\\"),a=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 glyph;\\\\nattribute vec4 id;\\\\n\\\\nuniform vec4 highlightId;\\\\nuniform float highlightScale;\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 clipBounds[2];\\\\n\\\\nvarying vec4 interpColor;\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    float scale = 1.0;\\\\n    if(distance(highlightId, id) < 0.0001) {\\\\n      scale = highlightScale;\\\\n    }\\\\n\\\\n    vec4 worldPosition = model * vec4(position, 1);\\\\n    vec4 viewPosition = view * worldPosition;\\\\n    viewPosition = viewPosition / viewPosition.w;\\\\n    vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\\\\n\\\\n    gl_Position = clipPosition;\\\\n    interpColor = color;\\\\n    pickId = id;\\\\n    dataCoordinate = position;\\\\n  }\\\\n}\\\"]),o=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 glyph;\\\\nattribute vec4 id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec2 screenSize;\\\\nuniform vec3 clipBounds[2];\\\\nuniform float highlightScale, pixelRatio;\\\\nuniform vec4 highlightId;\\\\n\\\\nvarying vec4 interpColor;\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    float scale = pixelRatio;\\\\n    if(distance(highlightId.bgr, id.bgr) < 0.001) {\\\\n      scale *= highlightScale;\\\\n    }\\\\n\\\\n    vec4 worldPosition = model * vec4(position, 1.0);\\\\n    vec4 viewPosition = view * worldPosition;\\\\n    vec4 clipPosition = projection * viewPosition;\\\\n    clipPosition /= clipPosition.w;\\\\n\\\\n    gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\\\\n    interpColor = color;\\\\n    pickId = id;\\\\n    dataCoordinate = position;\\\\n  }\\\\n}\\\"]),s=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 glyph;\\\\nattribute vec4 id;\\\\n\\\\nuniform float highlightScale;\\\\nuniform vec4 highlightId;\\\\nuniform vec3 axes[2];\\\\nuniform mat4 model, view, projection;\\\\nuniform vec2 screenSize;\\\\nuniform vec3 clipBounds[2];\\\\nuniform float scale, pixelRatio;\\\\n\\\\nvarying vec4 interpColor;\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    float lscale = pixelRatio * scale;\\\\n    if(distance(highlightId, id) < 0.0001) {\\\\n      lscale *= highlightScale;\\\\n    }\\\\n\\\\n    vec4 clipCenter   = projection * view * model * vec4(position, 1);\\\\n    vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\\\\n    vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\\\\n\\\\n    gl_Position = clipPosition;\\\\n    interpColor = color;\\\\n    pickId = id;\\\\n    dataCoordinate = dataPosition;\\\\n  }\\\\n}\\\\n\\\"]),l=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 fragClipBounds[2];\\\\nuniform float opacity;\\\\n\\\\nvarying vec4 interpColor;\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\\\n\\\\n  gl_FragColor = interpColor * opacity;\\\\n}\\\\n\\\"]),c=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 fragClipBounds[2];\\\\nuniform float pickGroup;\\\\n\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickGroup, pickId.bgr);\\\\n}\\\"]),u=[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"glyph\\\",type:\\\"vec2\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"}],f={vertex:a,fragment:l,attributes:u},h={vertex:o,fragment:l,attributes:u},p={vertex:s,fragment:l,attributes:u},d={vertex:a,fragment:c,attributes:u},g={vertex:o,fragment:c,attributes:u},v={vertex:s,fragment:c,attributes:u};function m(t,e){var r=n(t,e),i=r.attributes;return i.position.location=0,i.color.location=1,i.glyph.location=2,i.id.location=3,r}r.createPerspective=function(t){return m(t,f)},r.createOrtho=function(t){return m(t,h)},r.createProject=function(t){return m(t,p)},r.createPickPerspective=function(t){return m(t,d)},r.createPickOrtho=function(t){return m(t,g)},r.createPickProject=function(t){return m(t,v)}},{\\\"gl-shader\\\":288,glslify:392}],284:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"is-string-blank\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"typedarray-pool\\\"),s=t(\\\"gl-mat4/multiply\\\"),l=t(\\\"./lib/shaders\\\"),c=t(\\\"./lib/glyphs\\\"),u=t(\\\"./lib/get-simple-string\\\"),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,t[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,t[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,t[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,t}function p(t,e,r,n){return h(n,n),h(n,n),h(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function g(t,e,r,n,i,a,o,s,l,c,u,f){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=i,this.colorBuffer=a,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.pickId=0,this.pickPerspectiveShader=c,this.pickOrthoShader=u,this.pickProjectShader=f,this.points=[],this._selectResult=new d(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}e.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),c=l.createPickOrtho(e),u=l.createPickProject(e),f=i(e),h=i(e),p=i(e),d=i(e),v=a(e,[{buffer:f,size:3,type:e.FLOAT},{buffer:h,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),m=new g(e,r,n,o,f,h,p,d,v,s,c,u);return m.update(t),m};var v=g.prototype;v.pickSlots=1,v.setPickBase=function(t){this.pickId=t},v.isTransparent=function(){if(this.opacity<1)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectOpacity[t]<1)return!0;return!1},v.isOpaque=function(){if(this.opacity>=1)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectOpacity[t]>=1)return!0;return!1};var m=[0,0],y=[0,0,0],x=[0,0,0],b=[0,0,0,1],_=[0,0,0,1],w=f.slice(),k=[0,0,0],M=[[0,0,0],[0,0,0]];function A(t){return t[0]=t[1]=t[2]=0,t}function T(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function S(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}function E(t,e,r,n,i){var a,o=e.axesProject,l=e.gl,c=t.uniforms,u=r.model||f,h=r.view||f,d=r.projection||f,g=e.axesBounds,v=function(t){for(var e=M,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);a=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],m[0]=2/l.drawingBufferWidth,m[1]=2/l.drawingBufferHeight,t.bind(),c.view=h,c.projection=d,c.screenSize=m,c.highlightId=e.highlightId,c.highlightScale=e.highlightScale,c.clipBounds=v,c.pickGroup=e.pickId/255,c.pixelRatio=e.pixelRatio;for(var E=0;E<3;++E)if(o[E]&&e.projectOpacity[E]<1===n){c.scale=e.projectScale[E],c.opacity=e.projectOpacity[E];for(var C=w,L=0;L<16;++L)C[L]=0;for(L=0;L<4;++L)C[5*L]=1;C[5*E]=0,a[E]<0?C[12+E]=g[0][E]:C[12+E]=g[1][E],s(C,u,C),c.model=C;var z=(E+1)%3,O=(E+2)%3,I=A(y),P=A(x);I[z]=1,P[O]=1;var D=p(0,0,0,T(b,I)),R=p(0,0,0,T(_,P));if(Math.abs(D[1])>Math.abs(R[1])){var B=D;D=R,R=B,B=I,I=P,P=B;var F=z;z=O,O=F}D[0]<0&&(I[z]=-1),R[1]>0&&(P[O]=-1);var N=0,j=0;for(L=0;L<4;++L)N+=Math.pow(u[4*z+L],2),j+=Math.pow(u[4*O+L],2);I[z]/=Math.sqrt(N),P[O]/=Math.sqrt(j),c.axes[0]=I,c.axes[1]=P,c.fragClipBounds[0]=S(k,v[0],E,-1e8),c.fragClipBounds[1]=S(k,v[1],E,1e8),e.vao.draw(l.TRIANGLES,e.vertexCount),e.lineWidth>0&&(l.lineWidth(e.lineWidth),e.vao.draw(l.LINES,e.lineVertexCount,e.vertexCount))}}var C=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function L(t,e,r,n,i,a){var o=r.gl;if(r.vao.bind(),i===r.opacity<1||a){t.bind();var s=t.uniforms;s.model=n.model||f,s.view=n.view||f,s.projection=n.projection||f,m[0]=2/o.drawingBufferWidth,m[1]=2/o.drawingBufferHeight,s.screenSize=m,s.highlightId=r.highlightId,s.highlightScale=r.highlightScale,s.fragClipBounds=C,s.clipBounds=r.axes.bounds,s.opacity=r.opacity,s.pickGroup=r.pickId/255,s.pixelRatio=r.pixelRatio,r.vao.draw(o.TRIANGLES,r.vertexCount),r.lineWidth>0&&(o.lineWidth(r.lineWidth),r.vao.draw(o.LINES,r.lineVertexCount,r.vertexCount))}E(e,r,n,i),r.vao.unbind()}function z(t,e,r){var i;i=Array.isArray(t)?e<t.length?t[e]:void 0:t,i=u(i);var a=!0;n(i)&&(i=\\\"\\\\u25bc\\\",a=!1);var o=c(i,r);return{mesh:o[0],lines:o[1],bounds:o[2],visible:a}}v.draw=function(t){L(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,!1,!1)},v.drawTransparent=function(t){L(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,!0,!1)},v.drawPick=function(t){L(this.useOrtho?this.pickOrthoShader:this.pickPerspectiveShader,this.pickProjectShader,this,t,!1,!0)},v.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[2]+(t.value[1]<<8)+(t.value[0]<<16);if(e>=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},v.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},v.update=function(t){if(\\\"perspective\\\"in(t=t||{})&&(this.useOrtho=!t.perspective),\\\"orthographic\\\"in t&&(this.useOrtho=!!t.orthographic),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"project\\\"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if(\\\"projectScale\\\"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(\\\"projectOpacity\\\"in t)if(Array.isArray(t.projectOpacity))this.projectOpacity=t.projectOpacity.slice();else{r=+t.projectOpacity;this.projectOpacity=[r,r,r]}\\\"opacity\\\"in t&&(this.opacity=t.opacity),this.dirty=!0;var n=t.position,i=t.font||\\\"normal\\\",a=t.alignment||[0,0],s=[1/0,1/0,1/0],l=[-1/0,-1/0,-1/0],c=t.glyph,u=t.color,f=t.size,h=t.angle,p=t.lineColor,d=-1,g=0,v=0,m=0;if(n.length){m=n.length;t:for(var y=0;y<m;++y){for(var x=n[y],b=0;b<3;++b)if(isNaN(x[b])||!isFinite(x[b]))continue t;var _=(R=z(c,y,i)).mesh,w=R.lines,k=R.bounds;g+=3*_.cells.length,v+=2*w.edges.length}}var M=g+v,A=o.mallocFloat(3*M),T=o.mallocFloat(4*M),S=o.mallocFloat(2*M),E=o.mallocUint32(M);if(M>0){var C=0,L=g,O=[0,0,0,1],I=[0,0,0,1],P=Array.isArray(u)&&Array.isArray(u[0]),D=Array.isArray(p)&&Array.isArray(p[0]);t:for(y=0;y<m;++y){d+=1;for(x=n[y],b=0;b<3;++b){if(isNaN(x[b])||!isFinite(x[b]))continue t;l[b]=Math.max(l[b],x[b]),s[b]=Math.min(s[b],x[b])}_=(R=z(c,y,i)).mesh,w=R.lines,k=R.bounds;var R,B=R.visible;if(B)if(Array.isArray(u)){if(3===(F=P?y<u.length?u[y]:[0,0,0,0]:u).length){for(b=0;b<3;++b)O[b]=F[b];O[3]=1}else if(4===F.length)for(b=0;b<4;++b)O[b]=F[b]}else O[0]=O[1]=O[2]=0,O[3]=1;else O=[1,1,1,0];if(B)if(Array.isArray(p)){var F;if(3===(F=D?y<p.length?p[y]:[0,0,0,0]:p).length){for(b=0;b<3;++b)I[b]=F[b];I[b]=1}else if(4===F.length)for(b=0;b<4;++b)I[b]=F[b]}else I[0]=I[1]=I[2]=0,I[3]=1;else I=[1,1,1,0];var N=.5;B?Array.isArray(f)?N=y<f.length?+f[y]:12:f?N=+f:this.useOrtho&&(N=12):N=0;var j=0;Array.isArray(h)?j=y<h.length?+h[y]:0:h&&(j=+h);var V=Math.cos(j),U=Math.sin(j);for(x=n[y],b=0;b<3;++b)l[b]=Math.max(l[b],x[b]),s[b]=Math.min(s[b],x[b]);var q=[a[0],a[1]];for(b=0;b<2;++b)a[b]>0?q[b]*=1-k[0][b]:a[b]<0&&(q[b]*=1+k[1][b]);var H=_.cells||[],G=_.positions||[];for(b=0;b<H.length;++b)for(var W=H[b],Y=0;Y<3;++Y){for(var X=0;X<3;++X)A[3*C+X]=x[X];for(X=0;X<4;++X)T[4*C+X]=O[X];E[C]=d;var Z=G[W[Y]];S[2*C]=N*(V*Z[0]-U*Z[1]+q[0]),S[2*C+1]=N*(U*Z[0]+V*Z[1]+q[1]),C+=1}for(H=w.edges,G=w.positions,b=0;b<H.length;++b)for(W=H[b],Y=0;Y<2;++Y){for(X=0;X<3;++X)A[3*L+X]=x[X];for(X=0;X<4;++X)T[4*L+X]=I[X];E[L]=d;Z=G[W[Y]];S[2*L]=N*(V*Z[0]-U*Z[1]+q[0]),S[2*L+1]=N*(U*Z[0]+V*Z[1]+q[1]),L+=1}}}this.bounds=[s,l],this.points=n,this.pointCount=n.length,this.vertexCount=g,this.lineVertexCount=v,this.pointBuffer.update(A),this.colorBuffer.update(T),this.glyphBuffer.update(S),this.idBuffer.update(E),o.free(A),o.free(T),o.free(S),o.free(E)},v.dispose=function(){this.shader.dispose(),this.orthoShader.dispose(),this.pickPerspectiveShader.dispose(),this.pickOrthoShader.dispose(),this.vao.dispose(),this.pointBuffer.dispose(),this.colorBuffer.dispose(),this.glyphBuffer.dispose(),this.idBuffer.dispose()}},{\\\"./lib/get-simple-string\\\":281,\\\"./lib/glyphs\\\":282,\\\"./lib/shaders\\\":283,\\\"gl-buffer\\\":230,\\\"gl-mat4/multiply\\\":256,\\\"gl-vao\\\":310,\\\"is-string-blank\\\":406,\\\"typedarray-pool\\\":522}],285:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\");r.boxVertex=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 vertex;\\\\n\\\\nuniform vec2 cornerA, cornerB;\\\\n\\\\nvoid main() {\\\\n  gl_Position = vec4(mix(cornerA, cornerB, vertex), 0, 1);\\\\n}\\\\n\\\"]),r.boxFragment=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform vec4 color;\\\\n\\\\nvoid main() {\\\\n  gl_FragColor = color;\\\\n}\\\\n\\\"])},{glslify:392}],286:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"./lib/shaders\\\");function o(t,e,r){this.plot=t,this.boxBuffer=e,this.boxShader=r,this.enabled=!0,this.selectBox=[1/0,1/0,-1/0,-1/0],this.borderColor=[0,0,0,1],this.innerFill=!1,this.innerColor=[0,0,0,.25],this.outerFill=!0,this.outerColor=[0,0,0,.5],this.borderWidth=10}e.exports=function(t,e){var r=t.gl,s=i(r,[0,0,0,1,1,0,1,1]),l=n(r,a.boxVertex,a.boxFragment),c=new o(t,s,l);return c.update(e),t.addOverlay(c),c};var s=o.prototype;s.draw=function(){if(this.enabled){var t=this.plot,e=this.selectBox,r=this.borderWidth,n=(this.innerFill,this.innerColor),i=(this.outerFill,this.outerColor),a=this.borderColor,o=t.box,s=t.screenBox,l=t.dataBox,c=t.viewBox,u=t.pixelRatio,f=(e[0]-l[0])*(c[2]-c[0])/(l[2]-l[0])+c[0],h=(e[1]-l[1])*(c[3]-c[1])/(l[3]-l[1])+c[1],p=(e[2]-l[0])*(c[2]-c[0])/(l[2]-l[0])+c[0],d=(e[3]-l[1])*(c[3]-c[1])/(l[3]-l[1])+c[1];if(f=Math.max(f,c[0]),h=Math.max(h,c[1]),p=Math.min(p,c[2]),d=Math.min(d,c[3]),!(p<f||d<h)){o.bind();var g=s[2]-s[0],v=s[3]-s[1];if(this.outerFill&&(o.drawBox(0,0,g,h,i),o.drawBox(0,h,f,d,i),o.drawBox(0,d,g,v,i),o.drawBox(p,h,g,d,i)),this.innerFill&&o.drawBox(f,h,p,d,n),r>0){var m=r*u;o.drawBox(f-m,h-m,p+m,h+m,a),o.drawBox(f-m,d-m,p+m,d+m,a),o.drawBox(f-m,h-m,f+m,d+m,a),o.drawBox(p-m,h-m,p+m,d+m,a)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},{\\\"./lib/shaders\\\":285,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288}],287:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=n(t,e),a=i.mallocUint8(e[0]*e[1]*4);return new c(t,r,a)};var n=t(\\\"gl-fbo\\\"),i=t(\\\"typedarray-pool\\\"),a=t(\\\"ndarray\\\"),o=t(\\\"bit-twiddle\\\").nextPow2,s=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"array\\\",{offset:[0,0,1],array:0},{offset:[0,0,2],array:0},{offset:[0,0,3],array:0},\\\"scalar\\\",\\\"scalar\\\",\\\"index\\\"],pre:{body:\\\"{this_closestD2=1e8,this_closestX=-1,this_closestY=-1}\\\",args:[],thisVars:[\\\"this_closestD2\\\",\\\"this_closestX\\\",\\\"this_closestY\\\"],localVars:[]},body:{body:\\\"{if(_inline_16_arg0_<255||_inline_16_arg1_<255||_inline_16_arg2_<255||_inline_16_arg3_<255){var _inline_16_l=_inline_16_arg4_-_inline_16_arg6_[0],_inline_16_a=_inline_16_arg5_-_inline_16_arg6_[1],_inline_16_f=_inline_16_l*_inline_16_l+_inline_16_a*_inline_16_a;_inline_16_f<this_closestD2&&(this_closestD2=_inline_16_f,this_closestX=_inline_16_arg6_[0],this_closestY=_inline_16_arg6_[1])}}\\\",args:[{name:\\\"_inline_16_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg1_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg4_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg5_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg6_\\\",lvalue:!1,rvalue:!0,count:4}],thisVars:[\\\"this_closestD2\\\",\\\"this_closestX\\\",\\\"this_closestY\\\"],localVars:[\\\"_inline_16_a\\\",\\\"_inline_16_f\\\",\\\"_inline_16_l\\\"]},post:{body:\\\"{return[this_closestX,this_closestY,this_closestD2]}\\\",args:[],thisVars:[\\\"this_closestD2\\\",\\\"this_closestX\\\",\\\"this_closestY\\\"],localVars:[]},debug:!1,funcName:\\\"cwise\\\",blockSize:64});function l(t,e,r,n,i){this.coord=[t,e],this.id=r,this.value=n,this.distance=i}function c(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var u=c.prototype;Object.defineProperty(u,\\\"shape\\\",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){i.free(this.buffer);for(var n=this.buffer=i.mallocUint8(o(r*e*4)),a=0;a<r*e*4;++a)n[a]=255}return t}}}),u.begin=function(){var t=this.gl;this.shape;t&&(this.fbo.bind(),t.clearColor(1,1,1,1),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT))},u.end=function(){var t=this.gl;t&&(t.bindFramebuffer(t.FRAMEBUFFER,null),this._readTimeout||clearTimeout(this._readTimeout),this._readTimeout=setTimeout(this._readCallback,1))},u.query=function(t,e,r){if(!this.gl)return null;var n=this.fbo.shape.slice();t|=0,e|=0,\\\"number\\\"!=typeof r&&(r=1);var i=0|Math.min(Math.max(t-r,0),n[0]),o=0|Math.min(Math.max(t+r,0),n[0]),c=0|Math.min(Math.max(e-r,0),n[1]),u=0|Math.min(Math.max(e+r,0),n[1]);if(o<=i||u<=c)return null;var f=[o-i,u-c],h=a(this.buffer,[f[0],f[1],4],[4,4*n[0],1],4*(i+n[0]*c)),p=s(h.hi(f[0],f[1],1),r,r),d=p[0],g=p[1];return d<0||Math.pow(this.radius,2)<p[2]?null:new l(d+i|0,g+c|0,h.get(d,g,0),[h.get(d,g,1),h.get(d,g,2),h.get(d,g,3)],Math.sqrt(p[2]))},u.dispose=function(){this.gl&&(this.fbo.dispose(),i.free(this.buffer),this.gl=null,this._readTimeout&&clearTimeout(this._readTimeout))}},{\\\"bit-twiddle\\\":80,\\\"cwise/lib/wrapper\\\":137,\\\"gl-fbo\\\":239,ndarray:433,\\\"typedarray-pool\\\":522}],288:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/create-uniforms\\\"),i=t(\\\"./lib/create-attributes\\\"),a=t(\\\"./lib/reflect\\\"),o=t(\\\"./lib/shader-cache\\\"),s=t(\\\"./lib/runtime-reflect\\\"),l=t(\\\"./lib/GLError\\\");function c(t){this.gl=t,this.gl.lastAttribCount=0,this._vref=this._fref=this._relink=this.vertShader=this.fragShader=this.program=this.attributes=this.uniforms=this.types=null}var u=c.prototype;function f(t,e){return t.name<e.name?-1:1}u.bind=function(){var t;this.program||this._relink();var e=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_ATTRIBUTES),r=this.gl.lastAttribCount;if(e>r)for(t=r;t<e;t++)this.gl.enableVertexAttribArray(t);else if(r>e)for(t=e;t<r;t++)this.gl.disableVertexAttribArray(t);this.gl.lastAttribCount=e,this.gl.useProgram(this.program)},u.dispose=function(){for(var t=this.gl.lastAttribCount,e=0;e<t;e++)this.gl.disableVertexAttribArray(e);this.gl.lastAttribCount=0,this._fref&&this._fref.dispose(),this._vref&&this._vref.dispose(),this.attributes=this.types=this.vertShader=this.fragShader=this.program=this._relink=this._fref=this._vref=null},u.update=function(t,e,r,c){if(!e||1===arguments.length){var u=t;t=u.vertex,e=u.fragment,r=u.uniforms,c=u.attributes}var h=this,p=h.gl,d=h._vref;h._vref=o.shader(p,p.VERTEX_SHADER,t),d&&d.dispose(),h.vertShader=h._vref.shader;var g=this._fref;if(h._fref=o.shader(p,p.FRAGMENT_SHADER,e),g&&g.dispose(),h.fragShader=h._fref.shader,!r||!c){var v=p.createProgram();if(p.attachShader(v,h.fragShader),p.attachShader(v,h.vertShader),p.linkProgram(v),!p.getProgramParameter(v,p.LINK_STATUS)){var m=p.getProgramInfoLog(v);throw new l(m,\\\"Error linking program:\\\"+m)}r=r||s.uniforms(p,v),c=c||s.attributes(p,v),p.deleteProgram(v)}(c=c.slice()).sort(f);var y,x=[],b=[],_=[];for(y=0;y<c.length;++y){var w=c[y];if(w.type.indexOf(\\\"mat\\\")>=0){for(var k=0|w.type.charAt(w.type.length-1),M=new Array(k),A=0;A<k;++A)M[A]=_.length,b.push(w.name+\\\"[\\\"+A+\\\"]\\\"),\\\"number\\\"==typeof w.location?_.push(w.location+A):Array.isArray(w.location)&&w.location.length===k&&\\\"number\\\"==typeof w.location[A]?_.push(0|w.location[A]):_.push(-1);x.push({name:w.name,type:w.type,locations:M})}else x.push({name:w.name,type:w.type,locations:[_.length]}),b.push(w.name),\\\"number\\\"==typeof w.location?_.push(0|w.location):_.push(-1)}var T=0;for(y=0;y<_.length;++y)if(_[y]<0){for(;_.indexOf(T)>=0;)T+=1;_[y]=T}var S=new Array(r.length);function E(){h.program=o.program(p,h._vref,h._fref,b,_);for(var t=0;t<r.length;++t)S[t]=p.getUniformLocation(h.program,r[t].name)}E(),h._relink=E,h.types={uniforms:a(r),attributes:a(c)},h.attributes=i(p,h,x,_),Object.defineProperty(h,\\\"uniforms\\\",n(p,h,r,S))},e.exports=function(t,e,r,n,i){var a=new c(t);return a.update(e,r,n,i),a}},{\\\"./lib/GLError\\\":289,\\\"./lib/create-attributes\\\":290,\\\"./lib/create-uniforms\\\":291,\\\"./lib/reflect\\\":292,\\\"./lib/runtime-reflect\\\":293,\\\"./lib/shader-cache\\\":294}],289:[function(t,e,r){function n(t,e,r){this.shortMessage=e||\\\"\\\",this.longMessage=r||\\\"\\\",this.rawError=t||\\\"\\\",this.message=\\\"gl-shader: \\\"+(e||t||\\\"\\\")+(r?\\\"\\\\n\\\"+r:\\\"\\\"),this.stack=(new Error).stack}n.prototype=new Error,n.prototype.name=\\\"GLError\\\",n.prototype.constructor=n,e.exports=n},{}],290:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,i){for(var a={},l=0,c=r.length;l<c;++l){var u=r[l],f=u.name,h=u.type,p=u.locations;switch(h){case\\\"bool\\\":case\\\"int\\\":case\\\"float\\\":o(t,e,p[0],i,1,a,f);break;default:if(h.indexOf(\\\"vec\\\")>=0){var d=h.charCodeAt(h.length-1)-48;if(d<2||d>4)throw new n(\\\"\\\",\\\"Invalid data type for attribute \\\"+f+\\\": \\\"+h);o(t,e,p[0],i,d,a,f)}else{if(!(h.indexOf(\\\"mat\\\")>=0))throw new n(\\\"\\\",\\\"Unknown data type for attribute \\\"+f+\\\": \\\"+h);var d=h.charCodeAt(h.length-1)-48;if(d<2||d>4)throw new n(\\\"\\\",\\\"Invalid data type for attribute \\\"+f+\\\": \\\"+h);s(t,e,p,i,d,a,f)}}}return a};var n=t(\\\"./GLError\\\");function i(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var a=i.prototype;function o(t,e,r,n,a,o,s){for(var l=[\\\"gl\\\",\\\"v\\\"],c=[],u=0;u<a;++u)l.push(\\\"x\\\"+u),c.push(\\\"x\\\"+u);l.push(\\\"if(x0.length===void 0){return gl.vertexAttrib\\\"+a+\\\"f(v,\\\"+c.join()+\\\")}else{return gl.vertexAttrib\\\"+a+\\\"fv(v,x0)}\\\");var f=Function.apply(null,l),h=new i(t,e,r,n,a,f);Object.defineProperty(o,s,{set:function(e){return t.disableVertexAttribArray(n[r]),f(t,n[r],e),e},get:function(){return h},enumerable:!0})}function s(t,e,r,n,i,a,s){for(var l=new Array(i),c=new Array(i),u=0;u<i;++u)o(t,e,r[u],n,i,l,u),c[u]=l[u];Object.defineProperty(l,\\\"location\\\",{set:function(t){if(Array.isArray(t))for(var e=0;e<i;++e)c[e].location=t[e];else for(e=0;e<i;++e)c[e].location=t+e;return t},get:function(){for(var t=new Array(i),e=0;e<i;++e)t[e]=n[r[e]];return t},enumerable:!0}),l.pointer=function(e,a,o,s){e=e||t.FLOAT,a=!!a,o=o||i*i,s=s||0;for(var l=0;l<i;++l){var c=n[r[l]];t.vertexAttribPointer(c,i,e,a,o,s+l*i),t.enableVertexAttribArray(c)}};var f=new Array(i),h=t[\\\"vertexAttrib\\\"+i+\\\"fv\\\"];Object.defineProperty(a,s,{set:function(e){for(var a=0;a<i;++a){var o=n[r[a]];if(t.disableVertexAttribArray(o),Array.isArray(e[0]))h.call(t,o,e[a]);else{for(var s=0;s<i;++s)f[s]=e[i*a+s];h.call(t,o,f)}}return e},get:function(){return l},enumerable:!0})}a.pointer=function(t,e,r,n){var i=this._gl,a=this._locations[this._index];i.vertexAttribPointer(a,this._dimension,t||i.FLOAT,!!e,r||0,n||0),i.enableVertexAttribArray(a)},a.set=function(t,e,r,n){return this._constFunc(this._locations[this._index],t,e,r,n)},Object.defineProperty(a,\\\"location\\\",{get:function(){return this._locations[this._index]},set:function(t){return t!==this._locations[this._index]&&(this._locations[this._index]=0|t,this._wrapper.program=null),0|t}})},{\\\"./GLError\\\":289}],291:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./reflect\\\"),i=t(\\\"./GLError\\\");function a(t){return new Function(\\\"y\\\",\\\"return function(){return y}\\\")(t)}function o(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=e;return r}e.exports=function(t,e,r,s){function l(t,e,r){switch(r){case\\\"bool\\\":case\\\"int\\\":case\\\"sampler2D\\\":case\\\"samplerCube\\\":return\\\"gl.uniform1i(locations[\\\"+e+\\\"],obj\\\"+t+\\\")\\\";case\\\"float\\\":return\\\"gl.uniform1f(locations[\\\"+e+\\\"],obj\\\"+t+\\\")\\\";default:var n=r.indexOf(\\\"vec\\\");if(!(0<=n&&n<=1&&r.length===4+n)){if(0===r.indexOf(\\\"mat\\\")&&4===r.length){var a=r.charCodeAt(r.length-1)-48;if(a<2||a>4)throw new i(\\\"\\\",\\\"Invalid uniform dimension type for matrix \\\"+name+\\\": \\\"+r);return\\\"gl.uniformMatrix\\\"+a+\\\"fv(locations[\\\"+e+\\\"],false,obj\\\"+t+\\\")\\\"}throw new i(\\\"\\\",\\\"Unknown uniform data type for \\\"+name+\\\": \\\"+r)}var a=r.charCodeAt(r.length-1)-48;if(a<2||a>4)throw new i(\\\"\\\",\\\"Invalid data type\\\");switch(r.charAt(0)){case\\\"b\\\":case\\\"i\\\":return\\\"gl.uniform\\\"+a+\\\"iv(locations[\\\"+e+\\\"],obj\\\"+t+\\\")\\\";case\\\"v\\\":return\\\"gl.uniform\\\"+a+\\\"fv(locations[\\\"+e+\\\"],obj\\\"+t+\\\")\\\";default:throw new i(\\\"\\\",\\\"Unrecognized data type for vector \\\"+name+\\\": \\\"+r)}}}function c(e){for(var n=[\\\"return function updateProperty(obj){\\\"],i=function t(e,r){if(\\\"object\\\"!=typeof r)return[[e,r]];var n=[];for(var i in r){var a=r[i],o=e;parseInt(i)+\\\"\\\"===i?o+=\\\"[\\\"+i+\\\"]\\\":o+=\\\".\\\"+i,\\\"object\\\"==typeof a?n.push.apply(n,t(o,a)):n.push([o,a])}return n}(\\\"\\\",e),a=0;a<i.length;++a){var o=i[a],c=o[0],u=o[1];s[u]&&n.push(l(c,u,r[u].type))}n.push(\\\"return obj}\\\");var f=new Function(\\\"gl\\\",\\\"locations\\\",n.join(\\\"\\\\n\\\"));return f(t,s)}function u(n,l,u){if(\\\"object\\\"==typeof u){var h=f(u);Object.defineProperty(n,l,{get:a(h),set:c(u),enumerable:!0,configurable:!1})}else s[u]?Object.defineProperty(n,l,{get:(p=u,new Function(\\\"gl\\\",\\\"wrapper\\\",\\\"locations\\\",\\\"return function(){return gl.getUniform(wrapper.program,locations[\\\"+p+\\\"])}\\\")(t,e,s)),set:c(u),enumerable:!0,configurable:!1}):n[l]=function(t){switch(t){case\\\"bool\\\":return!1;case\\\"int\\\":case\\\"sampler2D\\\":case\\\"samplerCube\\\":case\\\"float\\\":return 0;default:var e=t.indexOf(\\\"vec\\\");if(0<=e&&e<=1&&t.length===4+e){var r=t.charCodeAt(t.length-1)-48;if(r<2||r>4)throw new i(\\\"\\\",\\\"Invalid data type\\\");return\\\"b\\\"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf(\\\"mat\\\")&&4===t.length){var r=t.charCodeAt(t.length-1)-48;if(r<2||r>4)throw new i(\\\"\\\",\\\"Invalid uniform dimension type for matrix \\\"+name+\\\": \\\"+t);return o(r*r,0)}throw new i(\\\"\\\",\\\"Unknown uniform data type for \\\"+name+\\\": \\\"+t)}}(r[u].type);var p}function f(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r<t.length;++r)u(e,r,t[r])}else for(var n in e={},t)u(e,n,t[n]);return e}var h=n(r,!0);return{get:a(f(h)),set:c(h),enumerable:!0,configurable:!0}}},{\\\"./GLError\\\":289,\\\"./reflect\\\":292}],292:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r={},n=0;n<t.length;++n)for(var i=t[n].name,a=i.split(\\\".\\\"),o=r,s=0;s<a.length;++s){var l=a[s].split(\\\"[\\\");if(l.length>1){l[0]in o||(o[l[0]]=[]),o=o[l[0]];for(var c=1;c<l.length;++c){var u=parseInt(l[c]);c<l.length-1||s<a.length-1?(u in o||(c<l.length-1?o[u]=[]:o[u]={}),o=o[u]):o[u]=e?n:t[n].type}}else s<a.length-1?(l[0]in o||(o[l[0]]={}),o=o[l[0]]):o[l[0]]=e?n:t[n].type}return r}},{}],293:[function(t,e,r){\\\"use strict\\\";r.uniforms=function(t,e){for(var r=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),n=[],i=0;i<r;++i){var o=t.getActiveUniform(e,i);if(o){var s=a(t,o.type);if(o.size>1)for(var l=0;l<o.size;++l)n.push({name:o.name.replace(\\\"[0]\\\",\\\"[\\\"+l+\\\"]\\\"),type:s});else n.push({name:o.name,type:s})}}return n},r.attributes=function(t,e){for(var r=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES),n=[],i=0;i<r;++i){var o=t.getActiveAttrib(e,i);o&&n.push({name:o.name,type:a(t,o.type)})}return n};var n={FLOAT:\\\"float\\\",FLOAT_VEC2:\\\"vec2\\\",FLOAT_VEC3:\\\"vec3\\\",FLOAT_VEC4:\\\"vec4\\\",INT:\\\"int\\\",INT_VEC2:\\\"ivec2\\\",INT_VEC3:\\\"ivec3\\\",INT_VEC4:\\\"ivec4\\\",BOOL:\\\"bool\\\",BOOL_VEC2:\\\"bvec2\\\",BOOL_VEC3:\\\"bvec3\\\",BOOL_VEC4:\\\"bvec4\\\",FLOAT_MAT2:\\\"mat2\\\",FLOAT_MAT3:\\\"mat3\\\",FLOAT_MAT4:\\\"mat4\\\",SAMPLER_2D:\\\"sampler2D\\\",SAMPLER_CUBE:\\\"samplerCube\\\"},i=null;function a(t,e){if(!i){var r=Object.keys(n);i={};for(var a=0;a<r.length;++a){var o=r[a];i[t[o]]=n[o]}}return i[e]}},{}],294:[function(t,e,r){\\\"use strict\\\";r.shader=function(t,e,r){return u(t).getShaderReference(e,r)},r.program=function(t,e,r,n,i){return u(t).getProgram(e,r,n,i)};var n=t(\\\"./GLError\\\"),i=t(\\\"gl-format-compiler-error\\\"),a=new(\\\"undefined\\\"==typeof WeakMap?t(\\\"weakmap-shim\\\"):WeakMap),o=0;function s(t,e,r,n,i,a,o){this.id=t,this.src=e,this.type=r,this.shader=n,this.count=a,this.programs=[],this.cache=o}function l(t){this.gl=t,this.shaders=[{},{}],this.programs={}}s.prototype.dispose=function(){if(0==--this.count){for(var t=this.cache,e=t.gl,r=this.programs,n=0,i=r.length;n<i;++n){var a=t.programs[r[n]];a&&(delete t.programs[n],e.deleteProgram(a))}e.deleteShader(this.shader),delete t.shaders[this.type===e.FRAGMENT_SHADER|0][this.src]}};var c=l.prototype;function u(t){var e=a.get(t);return e||(e=new l(t),a.set(t,e)),e}c.getShaderReference=function(t,e){var r=this.gl,a=this.shaders[t===r.FRAGMENT_SHADER|0],l=a[e];if(l&&r.isShader(l.shader))l.count+=1;else{var c=function(t,e,r){var a=t.createShader(e);if(t.shaderSource(a,r),t.compileShader(a),!t.getShaderParameter(a,t.COMPILE_STATUS)){var o=t.getShaderInfoLog(a);try{var s=i(o,r,e)}catch(t){throw console.warn(\\\"Failed to format compiler error: \\\"+t),new n(o,\\\"Error compiling shader:\\\\n\\\"+o)}throw new n(o,s.short,s.long)}return a}(r,t,e);l=a[e]=new s(o++,e,t,c,[],1,this)}return l},c.getProgram=function(t,e,r,i){var a=[t.id,e.id,r.join(\\\":\\\"),i.join(\\\":\\\")].join(\\\"@\\\"),o=this.programs[a];return o&&this.gl.isProgram(o)||(this.programs[a]=o=function(t,e,r,i,a){var o=t.createProgram();t.attachShader(o,e),t.attachShader(o,r);for(var s=0;s<i.length;++s)t.bindAttribLocation(o,a[s],i[s]);if(t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS)){var l=t.getProgramInfoLog(o);throw new n(l,\\\"Error linking program: \\\"+l)}return o}(this.gl,t.shader,e.shader,r,i),t.programs.push(a),e.programs.push(a)),o}},{\\\"./GLError\\\":289,\\\"gl-format-compiler-error\\\":240,\\\"weakmap-shim\\\":532}],295:[function(t,e,r){\\\"use strict\\\";function n(t){this.plot=t,this.enable=[!0,!0,!1,!1],this.width=[1,1,1,1],this.color=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.center=[1/0,1/0]}e.exports=function(t,e){var r=new n(t);return r.update(e),t.addOverlay(r),r};var i=n.prototype;i.update=function(t){t=t||{},this.enable=(t.enable||[!0,!0,!1,!1]).slice(),this.width=(t.width||[1,1,1,1]).slice(),this.color=(t.color||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]).map(function(t){return t.slice()}),this.center=(t.center||[1/0,1/0]).slice(),this.plot.setOverlayDirty()},i.draw=function(){var t=this.enable,e=this.width,r=this.color,n=this.center,i=this.plot,a=i.line,o=i.dataBox,s=i.viewBox;if(a.bind(),o[0]<=n[0]&&n[0]<=o[2]&&o[1]<=n[1]&&n[1]<=o[3]){var l=s[0]+(n[0]-o[0])/(o[2]-o[0])*(s[2]-s[0]),c=s[1]+(n[1]-o[1])/(o[3]-o[1])*(s[3]-s[1]);t[0]&&a.drawLine(l,c,s[0],c,e[0],r[0]),t[1]&&a.drawLine(l,c,l,s[1],e[1],r[1]),t[2]&&a.drawLine(l,c,s[2],c,e[2],r[2]),t[3]&&a.drawLine(l,c,l,s[3],e[3],r[3])}},i.dispose=function(){this.plot.removeOverlay(this)}},{}],296:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position, color;\\\\nattribute float weight;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 coordinates[3];\\\\nuniform vec4 colors[3];\\\\nuniform vec2 screenShape;\\\\nuniform float lineWidth;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  vec3 vertexPosition = mix(coordinates[0],\\\\n    mix(coordinates[2], coordinates[1], 0.5 * (position + 1.0)), abs(position));\\\\n\\\\n  vec4 clipPos = projection * view * model * vec4(vertexPosition, 1.0);\\\\n  vec2 clipOffset = (projection * view * model * vec4(color, 0.0)).xy;\\\\n  vec2 delta = weight * clipOffset * screenShape;\\\\n  vec2 lineOffset = normalize(vec2(delta.y, -delta.x)) / screenShape;\\\\n\\\\n  gl_Position   = vec4(clipPos.xy + clipPos.w * 0.5 * lineWidth * lineOffset, clipPos.z, clipPos.w);\\\\n  fragColor     = color.x * colors[0] + color.y * colors[1] + color.z * colors[2];\\\\n}\\\\n\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  gl_FragColor = fragColor;\\\\n}\\\"]);e.exports=function(t){return i(t,a,o,null,[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec3\\\"},{name:\\\"weight\\\",type:\\\"float\\\"}])}},{\\\"gl-shader\\\":288,glslify:392}],297:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"./shaders/index\\\");e.exports=function(t,e){var r=[];function o(t,e,n,i,a,o){var s=[t,e,n,0,0,0,1];s[i+3]=1,s[i]=a,r.push.apply(r,s),s[6]=-1,r.push.apply(r,s),s[i]=o,r.push.apply(r,s),r.push.apply(r,s),s[6]=1,r.push.apply(r,s),s[i]=a,r.push.apply(r,s)}o(0,0,0,0,0,1),o(0,0,0,1,0,1),o(0,0,0,2,0,1),o(1,0,0,1,-1,1),o(1,0,0,2,-1,1),o(0,1,0,0,-1,1),o(0,1,0,2,-1,1),o(0,0,1,0,-1,1),o(0,0,1,1,-1,1);var l=n(t,r),c=i(t,[{type:t.FLOAT,buffer:l,size:3,offset:0,stride:28},{type:t.FLOAT,buffer:l,size:3,offset:12,stride:28},{type:t.FLOAT,buffer:l,size:1,offset:24,stride:28}]),u=a(t);u.attributes.position.location=0,u.attributes.color.location=1,u.attributes.weight.location=2;var f=new s(t,l,c,u);return f.update(e),f};var o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n,this.pixelRatio=1,this.bounds=[[-1e3,-1e3,-1e3],[1e3,1e3,1e3]],this.position=[0,0,0],this.lineWidth=[2,2,2],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.enabled=[!0,!0,!0],this.drawSides=[!0,!0,!0],this.axes=null}var l=s.prototype,c=[0,0,0],u=[0,0,0],f=[0,0];l.isTransparent=function(){return!1},l.drawTransparent=function(t){},l.draw=function(t){var e=this.gl,r=this.vao,n=this.shader;r.bind(),n.bind();var i,a=t.model||o,s=t.view||o,l=t.projection||o;this.axes&&(i=this.axes.lastCubeProps.axis);for(var h=c,p=u,d=0;d<3;++d)i&&i[d]<0?(h[d]=this.bounds[0][d],p[d]=this.bounds[1][d]):(h[d]=this.bounds[1][d],p[d]=this.bounds[0][d]);f[0]=e.drawingBufferWidth,f[1]=e.drawingBufferHeight,n.uniforms.model=a,n.uniforms.view=s,n.uniforms.projection=l,n.uniforms.coordinates=[this.position,h,p],n.uniforms.colors=this.colors,n.uniforms.screenShape=f;for(d=0;d<3;++d)n.uniforms.lineWidth=this.lineWidth[d]*this.pixelRatio,this.enabled[d]&&(r.draw(e.TRIANGLES,6,6*d),this.drawSides[d]&&r.draw(e.TRIANGLES,12,18+12*d));r.unbind()},l.update=function(t){t&&(\\\"bounds\\\"in t&&(this.bounds=t.bounds),\\\"position\\\"in t&&(this.position=t.position),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"colors\\\"in t&&(this.colors=t.colors),\\\"enabled\\\"in t&&(this.enabled=t.enabled),\\\"drawSides\\\"in t&&(this.drawSides=t.drawSides))},l.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{\\\"./shaders/index\\\":296,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310}],298:[function(t,e,r){arguments[4][232][0].apply(r,arguments)},{barycentric:61,dup:232,\\\"polytope-closest-point/lib/closest_point_2d.js\\\":464}],299:[function(t,e,r){var n=t(\\\"glslify\\\"),i=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat inverse(float m) {\\\\n  return 1.0 / m;\\\\n}\\\\n\\\\nmat2 inverse(mat2 m) {\\\\n  return mat2(m[1][1],-m[0][1],\\\\n             -m[1][0], m[0][0]) / (m[0][0]*m[1][1] - m[0][1]*m[1][0]);\\\\n}\\\\n\\\\nmat3 inverse(mat3 m) {\\\\n  float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2];\\\\n  float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2];\\\\n  float a20 = m[2][0], a21 = m[2][1], a22 = m[2][2];\\\\n\\\\n  float b01 = a22 * a11 - a12 * a21;\\\\n  float b11 = -a22 * a10 + a12 * a20;\\\\n  float b21 = a21 * a10 - a11 * a20;\\\\n\\\\n  float det = a00 * b01 + a01 * b11 + a02 * b21;\\\\n\\\\n  return mat3(b01, (-a22 * a01 + a02 * a21), (a12 * a01 - a02 * a11),\\\\n              b11, (a22 * a00 - a02 * a20), (-a12 * a00 + a02 * a10),\\\\n              b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det;\\\\n}\\\\n\\\\nmat4 inverse(mat4 m) {\\\\n  float\\\\n      a00 = m[0][0], a01 = m[0][1], a02 = m[0][2], a03 = m[0][3],\\\\n      a10 = m[1][0], a11 = m[1][1], a12 = m[1][2], a13 = m[1][3],\\\\n      a20 = m[2][0], a21 = m[2][1], a22 = m[2][2], a23 = m[2][3],\\\\n      a30 = m[3][0], a31 = m[3][1], a32 = m[3][2], a33 = m[3][3],\\\\n\\\\n      b00 = a00 * a11 - a01 * a10,\\\\n      b01 = a00 * a12 - a02 * a10,\\\\n      b02 = a00 * a13 - a03 * a10,\\\\n      b03 = a01 * a12 - a02 * a11,\\\\n      b04 = a01 * a13 - a03 * a11,\\\\n      b05 = a02 * a13 - a03 * a12,\\\\n      b06 = a20 * a31 - a21 * a30,\\\\n      b07 = a20 * a32 - a22 * a30,\\\\n      b08 = a20 * a33 - a23 * a30,\\\\n      b09 = a21 * a32 - a22 * a31,\\\\n      b10 = a21 * a33 - a23 * a31,\\\\n      b11 = a22 * a33 - a23 * a32,\\\\n\\\\n      det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\\\\n\\\\n  return mat4(\\\\n      a11 * b11 - a12 * b10 + a13 * b09,\\\\n      a02 * b10 - a01 * b11 - a03 * b09,\\\\n      a31 * b05 - a32 * b04 + a33 * b03,\\\\n      a22 * b04 - a21 * b05 - a23 * b03,\\\\n      a12 * b08 - a10 * b11 - a13 * b07,\\\\n      a00 * b11 - a02 * b08 + a03 * b07,\\\\n      a32 * b02 - a30 * b05 - a33 * b01,\\\\n      a20 * b05 - a22 * b02 + a23 * b01,\\\\n      a10 * b10 - a11 * b08 + a13 * b06,\\\\n      a01 * b08 - a00 * b10 - a03 * b06,\\\\n      a30 * b04 - a31 * b02 + a33 * b00,\\\\n      a21 * b02 - a20 * b04 - a23 * b00,\\\\n      a11 * b07 - a10 * b09 - a12 * b06,\\\\n      a00 * b09 - a01 * b07 + a02 * b06,\\\\n      a31 * b01 - a30 * b03 - a32 * b00,\\\\n      a20 * b03 - a21 * b01 + a22 * b00) / det;\\\\n}\\\\n\\\\nvec3 getOrthogonalVector(vec3 v) {\\\\n  // Return up-vector for only-z vector.\\\\n  // 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).\\\\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\\\\n  // Assign z = 0, x = -b, y = a:\\\\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\\\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\\\n    return normalize(vec3(-v.y, v.x, 0.0));\\\\n  } else {\\\\n    return normalize(vec3(0.0, v.z, -v.y));\\\\n  }\\\\n}\\\\n\\\\n// Calculate the tube vertex and normal at the given index.\\\\n//\\\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\\\n//\\\\n// Each tube segment is made up of a ring of vertices.\\\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\\\n// The indexes of tube segments run from 0 to 8.\\\\n//\\\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\\\n  float segmentCount = 8.0;\\\\n\\\\n  float angle = 2.0 * 3.14159 * (index / segmentCount);\\\\n\\\\n  vec3 u = getOrthogonalVector(d);\\\\n  vec3 v = normalize(cross(u, d));\\\\n\\\\n  vec3 x = u * cos(angle) * length(d);\\\\n  vec3 y = v * sin(angle) * length(d);\\\\n  vec3 v3 = x + y;\\\\n\\\\n  normal = normalize(v3);\\\\n\\\\n  return v3;\\\\n}\\\\n\\\\nattribute vec4 vector;\\\\nattribute vec4 color, position;\\\\nattribute vec2 uv;\\\\nuniform float tubeScale;\\\\n\\\\nuniform mat4 model\\\\n           , view\\\\n           , projection;\\\\nuniform vec3 eyePosition\\\\n           , lightPosition;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data\\\\n           , f_position;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  // Scale the vector magnitude to stay constant with\\\\n  // model & view changes.\\\\n  vec3 normal;\\\\n  vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\\\n  vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\\\n  normal = normalize(normal * inverse(mat3(model)));\\\\n\\\\n  gl_Position      = projection * view * tubePosition;\\\\n  f_color          = color;\\\\n  f_normal         = normal;\\\\n  f_data           = tubePosition.xyz;\\\\n  f_position       = position.xyz;\\\\n  f_eyeDirection   = eyePosition   - tubePosition.xyz;\\\\n  f_lightDirection = lightPosition - tubePosition.xyz;\\\\n  f_uv             = uv;\\\\n}\\\\n\\\"]),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat beckmannDistribution(float x, float roughness) {\\\\n  float NdotH = max(x, 0.0001);\\\\n  float cos2Alpha = NdotH * NdotH;\\\\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\\\n  float roughness2 = roughness * roughness;\\\\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\\\n  return exp(tan2Alpha / roughness2) / denom;\\\\n}\\\\n\\\\nfloat cookTorranceSpecular(\\\\n  vec3 lightDirection,\\\\n  vec3 viewDirection,\\\\n  vec3 surfaceNormal,\\\\n  float roughness,\\\\n  float fresnel) {\\\\n\\\\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\\\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\\\n\\\\n  //Half angle vector\\\\n  vec3 H = normalize(lightDirection + viewDirection);\\\\n\\\\n  //Geometric term\\\\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\\\\n  float VdotH = max(dot(viewDirection, H), 0.000001);\\\\n  float LdotH = max(dot(lightDirection, H), 0.000001);\\\\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\\\\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\\\\n  float G = min(1.0, min(G1, G2));\\\\n  \\\\n  //Distribution term\\\\n  float D = beckmannDistribution(NdotH, roughness);\\\\n\\\\n  //Fresnel term\\\\n  float F = pow(1.0 - VdotN, fresnel);\\\\n\\\\n  //Multiply terms and done\\\\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform float roughness\\\\n            , fresnel\\\\n            , kambient\\\\n            , kdiffuse\\\\n            , kspecular\\\\n            , opacity;\\\\nuniform sampler2D texture;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data\\\\n           , f_position;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  vec3 N = normalize(f_normal);\\\\n  vec3 L = normalize(f_lightDirection);\\\\n  vec3 V = normalize(f_eyeDirection);\\\\n\\\\n  if(!gl_FrontFacing) {\\\\n    N = -N;\\\\n  }\\\\n\\\\n  float specular = cookTorranceSpecular(L, V, N, roughness, fresnel);\\\\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\\\n\\\\n  vec4 surfaceColor =  texture2D(texture, f_uv);\\\\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\\\\n\\\\n  gl_FragColor = litColor * opacity;\\\\n}\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvec3 getOrthogonalVector(vec3 v) {\\\\n  // Return up-vector for only-z vector.\\\\n  // 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).\\\\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\\\\n  // Assign z = 0, x = -b, y = a:\\\\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\\\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\\\n    return normalize(vec3(-v.y, v.x, 0.0));\\\\n  } else {\\\\n    return normalize(vec3(0.0, v.z, -v.y));\\\\n  }\\\\n}\\\\n\\\\n// Calculate the tube vertex and normal at the given index.\\\\n//\\\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\\\n//\\\\n// Each tube segment is made up of a ring of vertices.\\\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\\\n// The indexes of tube segments run from 0 to 8.\\\\n//\\\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\\\n  float segmentCount = 8.0;\\\\n\\\\n  float angle = 2.0 * 3.14159 * (index / segmentCount);\\\\n\\\\n  vec3 u = getOrthogonalVector(d);\\\\n  vec3 v = normalize(cross(u, d));\\\\n\\\\n  vec3 x = u * cos(angle) * length(d);\\\\n  vec3 y = v * sin(angle) * length(d);\\\\n  vec3 v3 = x + y;\\\\n\\\\n  normal = normalize(v3);\\\\n\\\\n  return v3;\\\\n}\\\\n\\\\nattribute vec4 vector;\\\\nattribute vec4 position;\\\\nattribute vec4 id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform float tubeScale;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  vec3 normal;\\\\n  vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\\\n  vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\\\n\\\\n  gl_Position = projection * view * tubePosition;\\\\n  f_id        = id;\\\\n  f_position  = position.xyz;\\\\n}\\\\n\\\"]),s=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3  clipBounds[2];\\\\nuniform float pickId;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickId, f_id.xyz);\\\\n}\\\"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:\\\"position\\\",type:\\\"vec4\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"},{name:\\\"vector\\\",type:\\\"vec4\\\"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:\\\"position\\\",type:\\\"vec4\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"},{name:\\\"vector\\\",type:\\\"vec4\\\"}]}},{glslify:392}],300:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"gl-texture2d\\\"),s=t(\\\"normals\\\"),l=t(\\\"gl-mat4/multiply\\\"),c=t(\\\"gl-mat4/invert\\\"),u=t(\\\"ndarray\\\"),f=t(\\\"colormap\\\"),h=t(\\\"simplicial-complex-contour\\\"),p=t(\\\"typedarray-pool\\\"),d=t(\\\"./shaders\\\"),g=(t(\\\"./closest-point\\\"),d.meshShader),v=d.pickShader,m=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function y(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,v,y,x,b,_,w,k,M,A,T,S,E){this.gl=t,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleVectors=c,this.triangleColors=f,this.triangleNormals=p,this.triangleUVs=h,this.triangleIds=u,this.triangleVAO=d,this.triangleCount=0,this.lineWidth=1,this.edgePositions=g,this.edgeColors=y,this.edgeUVs=x,this.edgeIds=v,this.edgeVAO=b,this.edgeCount=0,this.pointPositions=_,this.pointColors=k,this.pointUVs=M,this.pointSizes=A,this.pointIds=w,this.pointVAO=T,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=S,this.contourVAO=E,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!1,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.tubeScale=1,this._model=m,this._view=m,this._projection=m,this._resolution=[1,1]}var x=y.prototype;function b(t){var e=n(t,v.vertex,v.fragment,null,v.attributes);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.vector.location=5,e}x.isOpaque=function(){return this.opacity>=1},x.isTransparent=function(){return this.opacity<1},x.pickSlots=1,x.setPickBase=function(t){this.pickId=t},x.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l<a;++l)for(var c=r[l],u=0;u<2;++u){var f=c[0];2===c.length&&(f=c[u]);for(var d=n[f][0],g=n[f][1],v=i[f],m=1-v,y=this.positions[d],x=this.positions[g],b=0;b<3;++b)o[s++]=v*y[b]+m*x[b]}this.contourCount=s/3|0,this.contourPositions.update(o.subarray(0,s)),p.free(o)}else this.contourCount=0},x.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,\\\"contourEnable\\\"in t&&(this.contourEnable=t.contourEnable),\\\"contourColor\\\"in t&&(this.contourColor=t.contourColor),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"lightPosition\\\"in t&&(this.lightPosition=t.lightPosition),\\\"opacity\\\"in t&&(this.opacity=t.opacity),\\\"ambient\\\"in t&&(this.ambientLight=t.ambient),\\\"diffuse\\\"in t&&(this.diffuseLight=t.diffuse),\\\"specular\\\"in t&&(this.specularLight=t.specular),\\\"roughness\\\"in t&&(this.roughness=t.roughness),\\\"fresnel\\\"in t&&(this.fresnel=t.fresnel),t.texture?(this.texture.dispose(),this.texture=o(e,t.texture)):t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=f({colormap:t,nshades:256,format:\\\"rgba\\\"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale);var a=[],l=[],c=[],h=[],p=[],d=[],g=[],v=[],m=[],y=[],x=[],b=[],_=[],w=[],k=[];this.cells=r,this.positions=n,this.vectors=i;var M=t.vertexNormals,A=t.cellNormals,T=void 0===t.vertexNormalsEpsilon?1e-6:t.vertexNormalsEpsilon,S=void 0===t.faceNormalsEpsilon?1e-6:t.faceNormalsEpsilon;t.useFacetNormals&&!A&&(A=s.faceNormals(r,n,S)),A||M||(M=s.vertexNormals(r,n,T));var E=t.vertexColors,C=t.cellColors,L=t.meshColor||[1,1,1,1],z=t.vertexUVs,O=t.vertexIntensity,I=t.cellUVs,P=t.cellIntensity,D=1/0,R=-1/0;if(!z&&!I)if(O)if(t.vertexIntensityBounds)D=+t.vertexIntensityBounds[0],R=+t.vertexIntensityBounds[1];else for(var B=0;B<O.length;++B){var F=O[B];D=Math.min(D,F),R=Math.max(R,F)}else if(P)for(B=0;B<P.length;++B){F=P[B];D=Math.min(D,F),R=Math.max(R,F)}else for(B=0;B<n.length;++B){F=n[B][2];D=Math.min(D,F),R=Math.max(R,F)}this.intensity=O||(P?function(t,e,r){for(var n=new Array(e),i=0;i<e;++i)n[i]=0;var a=t.length;for(i=0;i<a;++i)for(var o=t[i],s=0;s<o.length;++s)n[o[s]]=r[i];return n}(r,n.length,P):function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n));var N=t.pointSizes,j=t.pointSize||1;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(B=0;B<n.length;++B)for(var V=n[B],U=0;U<3;++U)!isNaN(V[U])&&isFinite(V[U])&&(this.bounds[0][U]=Math.min(this.bounds[0][U],V[U]),this.bounds[1][U]=Math.max(this.bounds[1][U],V[U]));var q=0,H=0,G=0;t:for(B=0;B<r.length;++B){var W=r[B];switch(W.length){case 1:for(V=n[X=W[0]],U=0;U<3;++U)if(isNaN(V[U])||!isFinite(V[U]))continue t;x.push(V[0],V[1],V[2],V[3]),3===(Z=E?E[X]:C?C[B]:L).length?b.push(Z[0],Z[1],Z[2],1):b.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],_.push($[0],$[1]),N?w.push(N[X]):w.push(j),k.push(B),G+=1;break;case 2:for(U=0;U<2;++U){V=n[X=W[U]];for(var Y=0;Y<3;++Y)if(isNaN(V[Y])||!isFinite(V[Y]))continue t}for(U=0;U<2;++U){V=n[X=W[U]];g.push(V[0],V[1],V[2]),3===(Z=E?E[X]:C?C[B]:L).length?v.push(Z[0],Z[1],Z[2],1):v.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],m.push($[0],$[1]),y.push(B)}H+=1;break;case 3:for(U=0;U<3;++U)for(V=n[X=W[U]],Y=0;Y<3;++Y)if(isNaN(V[Y])||!isFinite(V[Y]))continue t;for(U=0;U<3;++U){var X;V=n[X=W[U]];a.push(V[0],V[1],V[2],V[3]);var Z,$,J,K=i[X];l.push(K[0],K[1],K[2],K[3]),3===(Z=E?E[X]:C?C[B]:L).length?c.push(Z[0],Z[1],Z[2],1):c.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],p.push($[0],$[1]),J=M?M[X]:A[B],h.push(J[0],J[1],J[2]),d.push(B)}q+=1}}this.pointCount=G,this.edgeCount=H,this.triangleCount=q,this.pointPositions.update(x),this.pointColors.update(b),this.pointUVs.update(_),this.pointSizes.update(w),this.pointIds.update(new Uint32Array(k)),this.edgePositions.update(g),this.edgeColors.update(v),this.edgeUVs.update(m),this.edgeIds.update(new Uint32Array(y)),this.trianglePositions.update(a),this.triangleVectors.update(l),this.triangleColors.update(c),this.triangleUVs.update(p),this.triangleNormals.update(h),this.triangleIds.update(new Uint32Array(d))}},x.drawTransparent=x.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||m,n=t.view||m,i=t.projection||m,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);var s={model:r,view:n,projection:i,clipBounds:a,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],opacity:this.opacity,tubeScale:this.tubeScale,contourColor:this.contourColor,texture:0};this.texture.bind(0);var u=new Array(16);l(u,s.view,s.model),l(u,s.projection,u),c(u,u);for(o=0;o<3;++o)s.eyePosition[o]=u[12+o]/u[15];var f,h=u[15];for(o=0;o<3;++o)h+=this.lightPosition[o]*u[4*o+3];for(o=0;o<3;++o){for(var p=u[12+o],d=0;d<3;++d)p+=u[4*d+o]*this.lightPosition[d];s.lightPosition[o]=p/h}this.triangleCount>0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},x.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||m,n=t.view||m,i=t.projection||m,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,tubeScale:this.tubeScale,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},x.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3);return{index:e,position:n,intensity:this.intensity[r[1]],velocity:this.vectors[r[1]].slice(0,3),divergence:this.vectors[r[1]][3],dataCoordinate:n}},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.triangleNormals.dispose(),this.triangleIds.dispose(),this.edgeVAO.dispose(),this.edgePositions.dispose(),this.edgeColors.dispose(),this.edgeUVs.dispose(),this.edgeIds.dispose(),this.pointVAO.dispose(),this.pointPositions.dispose(),this.pointColors.dispose(),this.pointUVs.dispose(),this.pointSizes.dispose(),this.pointIds.dispose(),this.contourVAO.dispose(),this.contourPositions.dispose()},e.exports=function(t,e){1===arguments.length&&(t=(e=t).gl);var r=e.triShader||function(t){var e=n(t,g.vertex,g.fragment,null,g.attributes);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.vector.location=5,e}(t),s=b(t),l=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));l.generateMipmap(),l.minFilter=t.LINEAR_MIPMAP_LINEAR,l.magFilter=t.LINEAR;var c=i(t),f=i(t),h=i(t),p=i(t),d=i(t),v=i(t),m=a(t,[{buffer:c,type:t.FLOAT,size:4},{buffer:v,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:h,type:t.FLOAT,size:4},{buffer:p,type:t.FLOAT,size:2},{buffer:d,type:t.FLOAT,size:3},{buffer:f,type:t.FLOAT,size:4}]),x=i(t),_=i(t),w=i(t),k=i(t),M=a(t,[{buffer:x,type:t.FLOAT,size:3},{buffer:k,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:_,type:t.FLOAT,size:4},{buffer:w,type:t.FLOAT,size:2}]),A=i(t),T=i(t),S=i(t),E=i(t),C=i(t),L=a(t,[{buffer:A,type:t.FLOAT,size:3},{buffer:C,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:T,type:t.FLOAT,size:4},{buffer:S,type:t.FLOAT,size:2},{buffer:E,type:t.FLOAT,size:1}]),z=i(t),O=new y(t,l,r,null,null,s,null,null,c,f,v,h,p,d,m,x,k,_,w,M,A,C,T,S,E,L,z,a(t,[{buffer:z,type:t.FLOAT,size:3}]));return O.update(e),O}},{\\\"./closest-point\\\":298,\\\"./shaders\\\":299,colormap:114,\\\"gl-buffer\\\":230,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"gl-shader\\\":288,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,ndarray:433,normals:436,\\\"simplicial-complex-contour\\\":494,\\\"typedarray-pool\\\":522}],301:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-vec3\\\"),i=t(\\\"gl-vec4\\\"),a=function(t,e,r,a){for(var o=0,s=0;s<t.length;s++)for(var l=t[s].velocities,c=0;c<l.length;c++){var u=n.length(l[c]);u>o&&(o=u)}var f=t.map(function(t){return function(t,e,r,a){var o,s,l,c=t.points,u=t.velocities,f=t.divergences;n.set(n.create(),0,1,0),n.create(),n.create();n.create();for(var h=[],p=[],d=[],g=[],v=[],m=[],y=0,x=0,b=i.create(),_=i.create(),w=0;w<c.length;w++){o=c[w],s=u[w],l=f[w],0===e&&(l=.05*r),x=n.length(s)/a,b=i.create(),n.copy(b,s),b[3]=l;for(var k=0;k<8;k++)v[k]=[o[0],o[1],o[2],k];if(g.length>0)for(k=0;k<8;k++){var M=(k+1)%8;h.push(g[k],v[k],v[M],v[M],g[M],g[k]),d.push(_,b,b,b,_,_),m.push(y,x,x,x,y,y),p.push([h.length-6,h.length-5,h.length-4],[h.length-3,h.length-2,h.length-1])}var A=g;g=v,v=A,A=_,_=b,b=A,A=y,y=x,x=A}return{positions:h,cells:p,vectors:d,vertexIntensity:m}}(t,r,a,o)}),h=[],p=[],d=[],g=[];for(s=0;s<f.length;s++){var v=f[s],m=h.length;h=h.concat(v.positions),d=d.concat(v.vectors),g=g.concat(v.vertexIntensity);for(c=0;c<v.cells.length;c++){var y=v.cells[c],x=[];p.push(x);for(var b=0;b<y.length;b++)x.push(y[b]+m)}}return{positions:h,cells:p,vectors:d,vertexIntensity:g,colormap:e}},o=function(t,e){var r=n.create(),i=1e-4;n.add(r,t,[i,0,0]);var a=this.getVelocity(r);n.subtract(a,a,e),n.scale(a,a,1e4),n.add(r,t,[0,i,0]);var o=this.getVelocity(r);n.subtract(o,o,e),n.scale(o,o,1e4),n.add(r,t,[0,0,i]);var s=this.getVelocity(r);return n.subtract(s,s,e),n.scale(s,s,1e4),n.add(r,a,o),n.add(r,r,s),r},s=function(t){return h(t,this.vectors,this.meshgrid,this.clampBorders)},l=function(t,e){for(var r=0;r<t.length;r++){var n=t[r];if(n===e)return r;if(n>e)return r-1}return r},c=n.create(),u=n.create(),f=function(t,e,r){return t<e?e:t>r?r:t},h=function(t,e,r,i){var a=t[0],o=t[1],s=t[2],h=r[0].length,p=r[1].length,d=r[2].length,g=l(r[0],a),v=l(r[1],o),m=l(r[2],s),y=g+1,x=v+1,b=m+1;if(r[0][g]===a&&(y=g),r[1][v]===o&&(x=v),r[2][m]===s&&(b=m),i&&(g=f(g,0,h-1),y=f(y,0,h-1),v=f(v,0,p-1),x=f(x,0,p-1),m=f(m,0,d-1),b=f(b,0,d-1)),g<0||v<0||m<0||y>=h||x>=p||b>=d)return n.create();var _=(a-r[0][g])/(r[0][y]-r[0][g]),w=(o-r[1][v])/(r[1][x]-r[1][v]),k=(s-r[2][m])/(r[2][b]-r[2][m]);(_<0||_>1||isNaN(_))&&(_=0),(w<0||w>1||isNaN(w))&&(w=0),(k<0||k>1||isNaN(k))&&(k=0);var M=m*h*p,A=b*h*p,T=v*h,S=x*h,E=g,C=y,L=e[T+M+E],z=e[T+M+C],O=e[S+M+E],I=e[S+M+C],P=e[T+A+E],D=e[T+A+C],R=e[S+A+E],B=e[S+A+C],F=n.create();return n.lerp(F,L,z,_),n.lerp(c,O,I,_),n.lerp(F,F,c,w),n.lerp(c,P,D,_),n.lerp(u,R,B,_),n.lerp(c,c,u,w),n.lerp(F,F,c,k),F},p=function(t){var e=1/0;t.sort(function(t,e){return t-e});for(var r=1;r<t.length;r++){var n=Math.abs(t[r]-t[r-1]);n<e&&(e=n)}return e};e.exports=function(t,e){var r=t.startingPositions,i=t.maxLength||1e3,l=t.tubeSize||1,c=t.absoluteTubeSize;t.getDivergence||(t.getDivergence=o),t.getVelocity||(t.getVelocity=s),void 0===t.clampBorders&&(t.clampBorders=!0);var u=[],f=e[0][0],h=e[0][1],d=e[0][2],g=e[1][0],v=e[1][1],m=e[1][2],y=function(t,e){var r=e[0],n=e[1],i=e[2];return r>=f&&r<=g&&n>=h&&n<=v&&i>=d&&i<=m},x=10*n.distance(e[0],e[1])/i,b=x*x,_=1,w=0;n.create();r.length>=2&&(_=function(t){for(var e=[],r=[],n=[],i={},a={},o={},s=0;s<t.length;s++){var l=t[s],c=l[0],u=l[1],f=l[2];i[c]||(e.push(c),i[c]=!0),a[u]||(r.push(u),a[u]=!0),o[f]||(n.push(f),o[f]=!0)}var h=p(e),d=p(r),g=p(n),v=Math.min(h,d,g);return isFinite(v)?v:1}(r));for(var k=0;k<r.length;k++){var M=n.create();n.copy(M,r[k]);var A=[M],T=[],S=t.getVelocity(M),E=M;T.push(S);var C=[],L=t.getDivergence(M,S);(P=n.length(L))>w&&!isNaN(P)&&isFinite(P)&&(w=P),C.push(P),u.push({points:A,velocities:T,divergences:C});for(var z=0;z<100*i&&A.length<i&&y(0,M);){z++;var O=n.clone(S),I=n.squaredLength(O);if(0===I)break;if(I>b&&n.scale(O,O,x/Math.sqrt(I)),n.add(O,O,M),S=t.getVelocity(O),n.squaredDistance(E,O)-b>-1e-4*b){A.push(O),E=O,T.push(S);L=t.getDivergence(O,S);(P=n.length(L))>w&&!isNaN(P)&&isFinite(P)&&(w=P),C.push(P)}M=O}}for(k=0;k<C.length;k++){var P=C[k];!isNaN(P)&&isFinite(P)||(C[k]=w)}var D=a(u,t.colormap,w,_);return c?D.tubeScale=c:(0===w&&(w=1),D.tubeScale=.5*l*_/w),D},e.exports.createTubeMesh=t(\\\"./lib/tubemesh\\\")},{\\\"./lib/tubemesh\\\":300,\\\"gl-vec3\\\":329,\\\"gl-vec4\\\":365}],302:[function(t,e,r){var n=t(\\\"gl-shader\\\"),i=t(\\\"glslify\\\"),a=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 uv;\\\\nattribute vec3 f;\\\\nattribute vec3 normal;\\\\n\\\\nuniform mat4 model, view, projection, inverseModel;\\\\nuniform vec3 lightPosition, eyePosition;\\\\nuniform sampler2D colormap;\\\\n\\\\nvarying float value, kill;\\\\nvarying vec3 worldCoordinate;\\\\nvarying vec2 planeCoordinate;\\\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\\\nvarying vec4 vColor;\\\\n\\\\nvoid main() {\\\\n  worldCoordinate = vec3(uv.zw, f.x);\\\\n  vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\\\n  vec4 clipPosition = projection * view * worldPosition;\\\\n  gl_Position = clipPosition;\\\\n  kill = f.y;\\\\n  value = f.z;\\\\n  planeCoordinate = uv.xy;\\\\n\\\\n  vColor = texture2D(colormap, vec2(value, value));\\\\n\\\\n  //Lighting geometry parameters\\\\n  vec4 cameraCoordinate = view * worldPosition;\\\\n  cameraCoordinate.xyz /= cameraCoordinate.w;\\\\n  lightDirection = lightPosition - cameraCoordinate.xyz;\\\\n  eyeDirection   = eyePosition - cameraCoordinate.xyz;\\\\n  surfaceNormal  = normalize((vec4(normal,0) * inverseModel).xyz);\\\\n}\\\\n\\\"]),o=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat beckmannDistribution(float x, float roughness) {\\\\n  float NdotH = max(x, 0.0001);\\\\n  float cos2Alpha = NdotH * NdotH;\\\\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\\\n  float roughness2 = roughness * roughness;\\\\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\\\n  return exp(tan2Alpha / roughness2) / denom;\\\\n}\\\\n\\\\nfloat beckmannSpecular(\\\\n  vec3 lightDirection,\\\\n  vec3 viewDirection,\\\\n  vec3 surfaceNormal,\\\\n  float roughness) {\\\\n  return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 lowerBound, upperBound;\\\\nuniform float contourTint;\\\\nuniform vec4 contourColor;\\\\nuniform sampler2D colormap;\\\\nuniform vec3 clipBounds[2];\\\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\\\nuniform float vertexColor;\\\\n\\\\nvarying float value, kill;\\\\nvarying vec3 worldCoordinate;\\\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\\\nvarying vec4 vColor;\\\\n\\\\nvoid main() {\\\\n  if ((kill > 0.0) ||\\\\n      (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\\\n\\\\n  vec3 N = normalize(surfaceNormal);\\\\n  vec3 V = normalize(eyeDirection);\\\\n  vec3 L = normalize(lightDirection);\\\\n\\\\n  if(gl_FrontFacing) {\\\\n    N = -N;\\\\n  }\\\\n\\\\n  float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\\\\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\\\n\\\\n  //decide how to interpolate color \\\\u2014 in vertex or in fragment\\\\n  vec4 surfaceColor = step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) + step(.5, vertexColor) * vColor;\\\\n\\\\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\\\\n\\\\n  gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\\\\n}\\\\n\\\"]),s=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 uv;\\\\nattribute float f;\\\\n\\\\nuniform mat3 permutation;\\\\nuniform mat4 model, view, projection;\\\\nuniform float height, zOffset;\\\\nuniform sampler2D colormap;\\\\n\\\\nvarying float value, kill;\\\\nvarying vec3 worldCoordinate;\\\\nvarying vec2 planeCoordinate;\\\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\\\nvarying vec4 vColor;\\\\n\\\\nvoid main() {\\\\n  vec3 dataCoordinate = permutation * vec3(uv.xy, height);\\\\n  vec4 worldPosition = model * vec4(dataCoordinate, 1.0);\\\\n\\\\n  vec4 clipPosition = projection * view * worldPosition;\\\\n  clipPosition.z = clipPosition.z + zOffset;\\\\n\\\\n  gl_Position = clipPosition;\\\\n  value = f;\\\\n  kill = -1.0;\\\\n  worldCoordinate = dataCoordinate;\\\\n  planeCoordinate = uv.zw;\\\\n\\\\n  vColor = texture2D(colormap, vec2(value, value));\\\\n\\\\n  //Don't do lighting for contours\\\\n  surfaceNormal   = vec3(1,0,0);\\\\n  eyeDirection    = vec3(0,1,0);\\\\n  lightDirection  = vec3(0,0,1);\\\\n}\\\\n\\\"]),l=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec2 shape;\\\\nuniform vec3 clipBounds[2];\\\\nuniform float pickId;\\\\n\\\\nvarying float value, kill;\\\\nvarying vec3 worldCoordinate;\\\\nvarying vec2 planeCoordinate;\\\\nvarying vec3 surfaceNormal;\\\\n\\\\nvec2 splitFloat(float v) {\\\\n  float vh = 255.0 * v;\\\\n  float upper = floor(vh);\\\\n  float lower = fract(vh);\\\\n  return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\\\\n}\\\\n\\\\nvoid main() {\\\\n  if ((kill > 0.0) ||\\\\n      (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\\\n\\\\n  vec2 ux = splitFloat(planeCoordinate.x / shape.x);\\\\n  vec2 uy = splitFloat(planeCoordinate.y / shape.y);\\\\n  gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\\\\n}\\\\n\\\"]);r.createShader=function(t){var e=n(t,a,o,null,[{name:\\\"uv\\\",type:\\\"vec4\\\"},{name:\\\"f\\\",type:\\\"vec3\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createPickShader=function(t){var e=n(t,a,l,null,[{name:\\\"uv\\\",type:\\\"vec4\\\"},{name:\\\"f\\\",type:\\\"vec3\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createContourShader=function(t){var e=n(t,s,o,null,[{name:\\\"uv\\\",type:\\\"vec4\\\"},{name:\\\"f\\\",type:\\\"float\\\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},r.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:\\\"uv\\\",type:\\\"vec4\\\"},{name:\\\"f\\\",type:\\\"float\\\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},{\\\"gl-shader\\\":288,glslify:392}],303:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=y(e),n=b(e),s=x(e),l=_(e),c=i(e),u=a(e,[{buffer:c,size:4,stride:w,offset:0},{buffer:c,size:3,stride:w,offset:16},{buffer:c,size:3,stride:w,offset:28}]),f=i(e),h=a(e,[{buffer:f,size:4,stride:20,offset:0},{buffer:f,size:1,stride:20,offset:16}]),p=i(e),d=a(e,[{buffer:p,size:2,type:e.FLOAT}]),g=o(e,1,S,e.RGBA,e.UNSIGNED_BYTE);g.minFilter=e.LINEAR,g.magFilter=e.LINEAR;var v=new E(e,[0,0],[[0,0,0],[0,0,0]],r,n,c,u,g,s,l,f,h,p,d),m={levels:[[],[],[]]};for(var k in t)m[k]=t[k];return m.colormap=m.colormap||\\\"jet\\\",v.update(m),v};var n=t(\\\"bit-twiddle\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"gl-texture2d\\\"),s=t(\\\"typedarray-pool\\\"),l=t(\\\"colormap\\\"),c=t(\\\"ndarray-ops\\\"),u=t(\\\"ndarray-pack\\\"),f=t(\\\"ndarray\\\"),h=t(\\\"surface-nets\\\"),p=t(\\\"gl-mat4/multiply\\\"),d=t(\\\"gl-mat4/invert\\\"),g=t(\\\"binary-search-bounds\\\"),v=t(\\\"ndarray-gradient\\\"),m=t(\\\"./lib/shaders\\\"),y=m.createShader,x=m.createContourShader,b=m.createPickShader,_=m.createPickContourShader,w=40,k=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],M=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],A=[[0,0,0,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 T(t,e,r,n,i){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=i}!function(){for(var t=0;t<3;++t){var e=A[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();var S=256;function E(t,e,r,n,i,a,o,l,c,u,h,p,d,g){this.gl=t,this.shape=e,this.bounds=r,this.intensityBounds=[],this._shader=n,this._pickShader=i,this._coordinateBuffer=a,this._vao=o,this._colorMap=l,this._contourShader=c,this._contourPickShader=u,this._contourBuffer=h,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new T([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=g,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=[f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0]),f(s.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.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 C=E.prototype;C.isTransparent=function(){return this.opacity<1},C.isOpaque=function(){if(this.opacity>=1)return!0;for(var t=0;t<3;++t)if(this._contourCounts[t].length>0||this._dynamicCounts[t]>0)return!0;return!1},C.pickSlots=1,C.setPickBase=function(t){this.pickId=t};var L=[0,0,0],z={showSurface:!1,showContour:!1,projections:[k.slice(),k.slice(),k.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function O(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||L,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=z.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],p(l,t.model,l);var c=z.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)c[i][n]=t.clipBounds[i][n];c[0][r]=-1e8,c[1][r]=1e8}return z.showSurface=o,z.showContour=s,z}var I={model:k,view:k,projection:k,inverseModel:k.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,kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},P=k.slice(),D=[1,0,0,0,1,0,0,0,1];function R(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=I;n.model=t.model||k,n.view=t.view||k,n.projection=t.projection||k,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=D,n.vertexColor=this.vertexColor;var s=P;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var c=s[12+i];for(o=0;o<3;++o)c+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=c/l}var u=O(n,this);if(u.showSurface&&e===this.opacity<1){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=u.projections[i],this._shader.uniforms.clipBounds=u.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(u.showContour&&!e){var f=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,f.bind(),f.uniforms=n;var h=this._contourVAO;for(h.bind(),i=0;i<3;++i)for(f.uniforms.permutation=A[i],r.lineWidth(this.contourWidth[i]),o=0;o<this.contourLevels[i].length;++o)o===this.highlightLevel[i]?(f.uniforms.contourColor=this.highlightColor[i],f.uniforms.contourTint=this.highlightTint[i]):0!==o&&o-1!==this.highlightLevel[i]||(f.uniforms.contourColor=this.contourColor[i],f.uniforms.contourTint=this.contourTint[i]),this._contourCounts[i][o]&&(f.uniforms.height=this.contourLevels[i][o],h.draw(r.LINES,this._contourCounts[i][o],this._contourOffsets[i][o]));for(i=0;i<3;++i)for(f.uniforms.model=u.projections[i],f.uniforms.clipBounds=u.clipBounds[i],o=0;o<3;++o)if(this.contourProject[i][o]){f.uniforms.permutation=A[o],r.lineWidth(this.contourWidth[o]);for(var g=0;g<this.contourLevels[o].length;++g)g===this.highlightLevel[o]?(f.uniforms.contourColor=this.highlightColor[o],f.uniforms.contourTint=this.highlightTint[o]):0!==g&&g-1!==this.highlightLevel[o]||(f.uniforms.contourColor=this.contourColor[o],f.uniforms.contourTint=this.contourTint[o]),f.uniforms.height=this.contourLevels[o][g],h.draw(r.LINES,this._contourCounts[o][g],this._contourOffsets[o][g])}for(h.unbind(),(h=this._dynamicVAO).bind(),i=0;i<3;++i)if(0!==this._dynamicCounts[i])for(f.uniforms.model=n.model,f.uniforms.clipBounds=n.clipBounds,f.uniforms.permutation=A[i],r.lineWidth(this.dynamicWidth[i]),f.uniforms.contourColor=this.dynamicColor[i],f.uniforms.contourTint=this.dynamicTint[i],f.uniforms.height=this.dynamicLevel[i],h.draw(r.LINES,this._dynamicCounts[i],this._dynamicOffsets[i]),o=0;o<3;++o)this.contourProject[o][i]&&(f.uniforms.model=u.projections[o],f.uniforms.clipBounds=u.clipBounds[o],h.draw(r.LINES,this._dynamicCounts[i],this._dynamicOffsets[i]));h.unbind()}}C.draw=function(t){return R.call(this,t,!1)},C.drawTransparent=function(t){return R.call(this,t,!0)};var B={model:k,view:k,projection:k,inverseModel:k,clipBounds:[[0,0,0],[0,0,0]],height:0,shape:[0,0],pickId:0,lowerBound:[0,0,0],upperBound:[0,0,0],zOffset:0,permutation:[1,0,0,0,1,0,0,0,1],lightPosition:[0,0,0],eyePosition:[0,0,0]};function F(t,e){var r=e.shape.slice(),n=t.shape.slice();c.assign(t.lo(1,1).hi(r[0],r[1]),e),c.assign(t.lo(1).hi(r[0],1),e.hi(r[0],1)),c.assign(t.lo(1,n[1]-1).hi(r[0],1),e.lo(0,r[1]-1).hi(r[0],1)),c.assign(t.lo(0,1).hi(1,r[1]),e.hi(1)),c.assign(t.lo(n[0]-1,1).hi(1,r[1]),e.lo(r[0]-1)),t.set(0,0,e.get(0,0)),t.set(0,n[1]-1,e.get(0,r[1]-1)),t.set(n[0]-1,0,e.get(r[0]-1,0)),t.set(n[0]-1,n[1]-1,e.get(r[0]-1,r[1]-1))}function N(t,e){return Array.isArray(t)?[e(t[0]),e(t[1]),e(t[2])]:[e(t),e(t),e(t)]}function j(t){return Array.isArray(t)?3===t.length?[t[0],t[1],t[2],1]:[t[0],t[1],t[2],t[3]]:[0,0,0,1]}function V(t){if(Array.isArray(t)){if(Array.isArray(t))return[j(t[0]),j(t[1]),j(t[2])];var e=j(t);return[e.slice(),e.slice(),e.slice()]}}C.drawPick=function(t){t=t||{};var e=this.gl;e.disable(e.CULL_FACE);var r=B;r.model=t.model||k,r.view=t.view||k,r.projection=t.projection||k,r.shape=this._field[2].shape,r.pickId=this.pickId/255,r.lowerBound=this.bounds[0],r.upperBound=this.bounds[1],r.permutation=D;for(var n=0;n<2;++n)for(var i=r.clipBounds[n],a=0;a<3;++a)i[a]=Math.min(Math.max(this.clipBounds[n][a],-1e8),1e8);var o=O(r,this);if(o.showSurface){for(this._pickShader.bind(),this._pickShader.uniforms=r,this._vao.bind(),this._vao.draw(e.TRIANGLES,this._vertexCount),n=0;n<3;++n)this.surfaceProject[n]&&(this._pickShader.uniforms.model=o.projections[n],this._pickShader.uniforms.clipBounds=o.clipBounds[n],this._vao.draw(e.TRIANGLES,this._vertexCount));this._vao.unbind()}if(o.showContour){var s=this._contourPickShader;s.bind(),s.uniforms=r;var l=this._contourVAO;for(l.bind(),a=0;a<3;++a)for(e.lineWidth(this.contourWidth[a]),s.uniforms.permutation=A[a],n=0;n<this.contourLevels[a].length;++n)this._contourCounts[a][n]&&(s.uniforms.height=this.contourLevels[a][n],l.draw(e.LINES,this._contourCounts[a][n],this._contourOffsets[a][n]));for(n=0;n<3;++n)for(s.uniforms.model=o.projections[n],s.uniforms.clipBounds=o.clipBounds[n],a=0;a<3;++a)if(this.contourProject[n][a]){s.uniforms.permutation=A[a],e.lineWidth(this.contourWidth[a]);for(var c=0;c<this.contourLevels[a].length;++c)this._contourCounts[a][c]&&(s.uniforms.height=this.contourLevels[a][c],l.draw(e.LINES,this._contourCounts[a][c],this._contourOffsets[a][c]))}l.unbind()}},C.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=this._field[2].shape,r=this._pickResult,n=e[0]*(t.value[0]+(t.value[2]>>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var c=r.position;c[0]=c[1]=c[2]=0;for(var u=0;u<2;++u)for(var f=u?a:1-a,h=0;h<2;++h)for(var p=i+u,d=s+h,v=f*(h?l:1-l),m=0;m<3;++m)c[m]+=this._field[m].get(p,d)*v;for(var y=this._pickResult.level,x=0;x<3;++x)if(y[x]=g.le(this.contourLevels[x],c[x]),y[x]<0)this.contourLevels[x].length>0&&(y[x]=0);else if(y[x]<this.contourLevels[x].length-1){var b=this.contourLevels[x][y[x]],_=this.contourLevels[x][y[x]+1];Math.abs(b-c[x])>Math.abs(_-c[x])&&(y[x]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],m=0;m<3;++m)r.dataCoordinate[m]=this._field[m].get(r.index[0],r.index[1]);return r},C.update=function(t){t=t||{},this.dirty=!0,\\\"contourWidth\\\"in t&&(this.contourWidth=N(t.contourWidth,Number)),\\\"showContour\\\"in t&&(this.showContour=N(t.showContour,Boolean)),\\\"showSurface\\\"in t&&(this.showSurface=!!t.showSurface),\\\"contourTint\\\"in t&&(this.contourTint=N(t.contourTint,Boolean)),\\\"contourColor\\\"in t&&(this.contourColor=V(t.contourColor)),\\\"contourProject\\\"in t&&(this.contourProject=N(t.contourProject,function(t){return N(t,Boolean)})),\\\"surfaceProject\\\"in t&&(this.surfaceProject=t.surfaceProject),\\\"dynamicColor\\\"in t&&(this.dynamicColor=V(t.dynamicColor)),\\\"dynamicTint\\\"in t&&(this.dynamicTint=N(t.dynamicTint,Number)),\\\"dynamicWidth\\\"in t&&(this.dynamicWidth=N(t.dynamicWidth,Number)),\\\"opacity\\\"in t&&(this.opacity=t.opacity),\\\"colorBounds\\\"in t&&(this.colorBounds=t.colorBounds),\\\"vertexColor\\\"in t&&(this.vertexColor=t.vertexColor?1:0);var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=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 t||\\\"coords\\\"in t){var i=(e.shape[0]+2)*(e.shape[1]+2);i>this._field[2].data.length&&(s.freeFloat(this._field[2].data),this._field[2].data=s.mallocFloat(n.nextPow2(i))),this._field[2]=f(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),F(this._field[2],e),this.shape=e.shape.slice();for(var a=this.shape,o=0;o<2;++o)this._field[2].size>this._field[o].data.length&&(s.freeFloat(this._field[o].data),this._field[o].data=s.mallocFloat(this._field[2].size)),this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2]);if(t.coords){var p=t.coords;if(!Array.isArray(p)||3!==p.length)throw new Error(\\\"gl-surface: invalid coordinates for x/y\\\");for(o=0;o<2;++o){var d=p[o];for(b=0;b<2;++b)if(d.shape[b]!==a[b])throw new Error(\\\"gl-surface: coords have incorrect shape\\\");F(this._field[o],d)}}else if(t.ticks){var g=t.ticks;if(!Array.isArray(g)||2!==g.length)throw new Error(\\\"gl-surface: invalid ticks\\\");for(o=0;o<2;++o){var m=g[o];if((Array.isArray(m)||m.length)&&(m=f(m)),m.shape[0]!==a[o])throw new Error(\\\"gl-surface: invalid tick length\\\");var y=f(m.data,a);y.stride[o]=m.stride[0],y.stride[1^o]=0,F(this._field[o],y)}}else{for(o=0;o<2;++o){var x=[0,0];x[o]=1,this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2],x,0)}this._field[0].set(0,0,0);for(var b=0;b<a[0];++b)this._field[0].set(b+1,0,b);for(this._field[0].set(a[0]+1,0,a[0]-1),this._field[1].set(0,0,0),b=0;b<a[1];++b)this._field[1].set(0,b+1,b);this._field[1].set(0,a[1]+1,a[1]-1)}var _=this._field,w=f(s.mallocFloat(3*_[2].size*2),[3,a[0]+2,a[1]+2,2]);for(o=0;o<3;++o)v(w.pick(o),_[o],\\\"mirror\\\");var k=f(s.mallocFloat(3*_[2].size),[a[0]+2,a[1]+2,3]);for(o=0;o<a[0]+2;++o)for(b=0;b<a[1]+2;++b){var A=w.get(0,o,b,0),T=w.get(0,o,b,1),E=w.get(1,o,b,0),C=w.get(1,o,b,1),L=w.get(2,o,b,0),z=w.get(2,o,b,1),O=E*z-C*L,I=L*T-z*A,P=A*C-T*E,D=Math.sqrt(O*O+I*I+P*P);D<1e-8?(D=Math.max(Math.abs(O),Math.abs(I),Math.abs(P)))<1e-8?(P=1,I=O=0,D=1):D=1/D:D=1/Math.sqrt(D),k.set(o,b,0,O*D),k.set(o,b,1,I*D),k.set(o,b,2,P*D)}s.free(w.data);var R=[1/0,1/0,1/0],B=[-1/0,-1/0,-1/0],j=1/0,U=-1/0,q=(a[0]-1)*(a[1]-1)*6,H=s.mallocFloat(n.nextPow2(10*q)),G=0,W=0;for(o=0;o<a[0]-1;++o)t:for(b=0;b<a[1]-1;++b){for(var Y=0;Y<2;++Y)for(var X=0;X<2;++X)for(var Z=0;Z<3;++Z){var $=this._field[Z].get(1+o+Y,1+b+X);if(isNaN($)||!isFinite($))continue t}for(Z=0;Z<6;++Z){var J=o+M[Z][0],K=b+M[Z][1],Q=this._field[0].get(J+1,K+1),tt=this._field[1].get(J+1,K+1),et=$=this._field[2].get(J+1,K+1);O=k.get(J+1,K+1,0),I=k.get(J+1,K+1,1),P=k.get(J+1,K+1,2),t.intensity&&(et=t.intensity.get(J,K)),H[G++]=J,H[G++]=K,H[G++]=Q,H[G++]=tt,H[G++]=$,H[G++]=0,H[G++]=et,H[G++]=O,H[G++]=I,H[G++]=P,R[0]=Math.min(R[0],Q),R[1]=Math.min(R[1],tt),R[2]=Math.min(R[2],$),j=Math.min(j,et),B[0]=Math.max(B[0],Q),B[1]=Math.max(B[1],tt),B[2]=Math.max(B[2],$),U=Math.max(U,et),W+=1}}for(t.intensityBounds&&(j=+t.intensityBounds[0],U=+t.intensityBounds[1]),o=6;o<G;o+=10)H[o]=(H[o]-j)/(U-j);this._vertexCount=W,this._coordinateBuffer.update(H.subarray(0,G)),s.freeFloat(H),s.free(k.data),this.bounds=[R,B],this.intensity=t.intensity||this._field[2],this.intensityBounds[0]===j&&this.intensityBounds[1]===U||(r=!0),this.intensityBounds=[j,U]}if(\\\"levels\\\"in t){var rt=t.levels;for(rt=Array.isArray(rt[0])?rt.slice():[[],[],rt],o=0;o<3;++o)rt[o]=rt[o].slice(),rt.sort(function(t,e){return t-e});t:for(o=0;o<3;++o){if(rt[o].length!==this.contourLevels[o].length){r=!0;break}for(b=0;b<rt[o].length;++b)if(rt[o][b]!==this.contourLevels[o][b]){r=!0;break t}}this.contourLevels=rt}if(r){_=this._field,a=this.shape;for(var nt=[],it=0;it<3;++it){rt=this.contourLevels[it];var at=[],ot=[],st=[0,0,0];for(o=0;o<rt.length;++o){var lt=h(this._field[it],rt[o]);at.push(nt.length/5|0),W=0;t:for(b=0;b<lt.cells.length;++b){var ct=lt.cells[b];for(Z=0;Z<2;++Z){var ut=lt.positions[ct[Z]],ft=ut[0],ht=0|Math.floor(ft),pt=ft-ht,dt=ut[1],gt=0|Math.floor(dt),vt=dt-gt,mt=!1;e:for(var yt=0;yt<3;++yt){st[yt]=0;var xt=(it+yt+1)%3;for(Y=0;Y<2;++Y){var bt=Y?pt:1-pt;for(J=0|Math.min(Math.max(ht+Y,0),a[0]),X=0;X<2;++X){var _t=X?vt:1-vt;if(K=0|Math.min(Math.max(gt+X,0),a[1]),$=yt<2?this._field[xt].get(J,K):(this.intensity.get(J,K)-this.intensityBounds[0])/(this.intensityBounds[1]-this.intensityBounds[0]),!isFinite($)||isNaN($)){mt=!0;break e}var wt=bt*_t;st[yt]+=wt*$}}}if(mt){if(Z>0){for(var kt=0;kt<5;++kt)nt.pop();W-=1}continue t}nt.push(st[0],st[1],ut[0],ut[1],st[2]),W+=1}}ot.push(W)}this._contourOffsets[it]=at,this._contourCounts[it]=ot}var Mt=s.mallocFloat(nt.length);for(o=0;o<nt.length;++o)Mt[o]=nt[o];this._contourBuffer.update(Mt),s.freeFloat(Mt)}t.colormap&&this._colorMap.setPixels(function(t){var e=u([l({colormap:t,nshades:S,format:\\\"rgba\\\"}).map(function(t){return[t[0],t[1],t[2],255*t[3]]})]);return c.divseq(e,255),e}(t.colormap))},C.dispose=function(){this._shader.dispose(),this._vao.dispose(),this._coordinateBuffer.dispose(),this._colorMap.dispose(),this._contourBuffer.dispose(),this._contourVAO.dispose(),this._contourShader.dispose(),this._contourPickShader.dispose(),this._dynamicBuffer.dispose(),this._dynamicVAO.dispose();for(var t=0;t<3;++t)s.freeFloat(this._field[t].data)},C.highlight=function(t){if(!t)return this._dynamicCounts=[0,0,0],this.dyanamicLevel=[NaN,NaN,NaN],void(this.highlightLevel=[-1,-1,-1]);for(var e=0;e<3;++e)this.enableHighlight[e]?this.highlightLevel[e]=t.level[e]:this.highlightLevel[e]=-1;var r;if(r=this.snapToData?t.dataCoordinate:t.position,this.enableDynamic[0]&&r[0]!==this.dynamicLevel[0]||this.enableDynamic[1]&&r[1]!==this.dynamicLevel[1]||this.enableDynamic[2]&&r[2]!==this.dynamicLevel[2]){for(var n=0,i=this.shape,a=s.mallocFloat(12*i[0]*i[1]),o=0;o<3;++o)if(this.enableDynamic[o]){this.dynamicLevel[o]=r[o];var l=(o+1)%3,c=(o+2)%3,u=this._field[o],f=this._field[l],p=this._field[c],d=(this.intensity,h(u,r[o])),g=d.cells,v=d.positions;for(this._dynamicOffsets[o]=n,e=0;e<g.length;++e)for(var m=g[e],y=0;y<2;++y){var x=v[m[y]],b=+x[0],_=0|b,w=0|Math.min(_+1,i[0]),k=b-_,M=1-k,A=+x[1],T=0|A,S=0|Math.min(T+1,i[1]),E=A-T,C=1-E,L=M*C,z=M*E,O=k*C,I=k*E,P=L*f.get(_,T)+z*f.get(_,S)+O*f.get(w,T)+I*f.get(w,S),D=L*p.get(_,T)+z*p.get(_,S)+O*p.get(w,T)+I*p.get(w,S);if(isNaN(P)||isNaN(D)){y&&(n-=1);break}a[2*n+0]=P,a[2*n+1]=D,n+=1}this._dynamicCounts[o]=n-this._dynamicOffsets[o]}else this.dynamicLevel[o]=NaN,this._dynamicCounts[o]=0;this._dynamicBuffer.update(a.subarray(0,2*n)),s.freeFloat(a)}}},{\\\"./lib/shaders\\\":302,\\\"binary-search-bounds\\\":79,\\\"bit-twiddle\\\":80,colormap:114,\\\"gl-buffer\\\":230,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,ndarray:433,\\\"ndarray-gradient\\\":424,\\\"ndarray-ops\\\":427,\\\"ndarray-pack\\\":428,\\\"surface-nets\\\":508,\\\"typedarray-pool\\\":522}],304:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"css-font\\\"),i=t(\\\"pick-by-alias\\\"),a=t(\\\"regl\\\"),o=t(\\\"gl-util/context\\\"),s=t(\\\"es6-weak-map\\\"),l=t(\\\"color-normalize\\\"),c=t(\\\"font-atlas\\\"),u=t(\\\"typedarray-pool\\\"),f=t(\\\"parse-rect\\\"),h=t(\\\"is-plain-obj\\\"),p=t(\\\"parse-unit\\\"),d=t(\\\"to-px\\\"),g=t(\\\"detect-kerning\\\"),v=t(\\\"object-assign\\\"),m=t(\\\"font-measure\\\"),y=t(\\\"flatten-vertex-data\\\"),x=t(\\\"bit-twiddle\\\").nextPow2,b=new s,_=!1;if(document.body){var w=document.body.appendChild(document.createElement(\\\"div\\\"));w.style.font=\\\"italic small-caps bold condensed 16px/2 cursive\\\",getComputedStyle(w).fontStretch&&(_=!0),document.body.removeChild(w)}var k=function(t){!function(t){return\\\"function\\\"==typeof t&&t._gl&&t.prop&&t.texture&&t.buffer}(t)?this.gl=o(t):(t={regl:t},this.gl=t.regl._gl),this.shader=b.get(this.gl),this.shader?this.regl=this.shader.regl:this.regl=t.regl||a({gl:this.gl}),this.charBuffer=this.regl.buffer({type:\\\"uint8\\\",usage:\\\"stream\\\"}),this.sizeBuffer=this.regl.buffer({type:\\\"float\\\",usage:\\\"stream\\\"}),this.shader||(this.shader=this.createShader(),b.set(this.gl,this.shader)),this.batch=[],this.fontSize=[],this.font=[],this.fontAtlas=[],this.draw=this.shader.draw.bind(this),this.render=function(){this.regl._refresh(),this.draw(this.batch)},this.canvas=this.gl.canvas,this.update(h(t)?t:{})};k.prototype.createShader=function(){var t=this.regl,e=t({blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:\\\"one minus dst alpha\\\",dstAlpha:\\\"one\\\"}},stencil:{enable:!1},depth:{enable:!1},count:t.prop(\\\"count\\\"),offset:t.prop(\\\"offset\\\"),attributes:{charOffset:{offset:4,stride:8,buffer:t.this(\\\"sizeBuffer\\\")},width:{offset:0,stride:8,buffer:t.this(\\\"sizeBuffer\\\")},char:t.this(\\\"charBuffer\\\"),position:t.this(\\\"position\\\")},uniforms:{atlasSize:function(t,e){return[e.atlas.width,e.atlas.height]},atlasDim:function(t,e){return[e.atlas.cols,e.atlas.rows]},atlas:function(t,e){return e.atlas.texture},charStep:function(t,e){return e.atlas.step},em:function(t,e){return e.atlas.em},color:t.prop(\\\"color\\\"),opacity:t.prop(\\\"opacity\\\"),viewport:t.this(\\\"viewportArray\\\"),scale:t.this(\\\"scale\\\"),align:t.prop(\\\"align\\\"),baseline:t.prop(\\\"baseline\\\"),translate:t.this(\\\"translate\\\"),positionOffset:t.prop(\\\"positionOffset\\\")},primitive:\\\"points\\\",viewport:t.this(\\\"viewport\\\"),vert:\\\"\\\\n\\\\t\\\\t\\\\tprecision highp float;\\\\n\\\\t\\\\t\\\\tattribute float width, charOffset, char;\\\\n\\\\t\\\\t\\\\tattribute vec2 position;\\\\n\\\\t\\\\t\\\\tuniform float fontSize, charStep, em, align, baseline;\\\\n\\\\t\\\\t\\\\tuniform vec4 viewport;\\\\n\\\\t\\\\t\\\\tuniform vec4 color;\\\\n\\\\t\\\\t\\\\tuniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;\\\\n\\\\t\\\\t\\\\tvarying vec2 charCoord, charId;\\\\n\\\\t\\\\t\\\\tvarying float charWidth;\\\\n\\\\t\\\\t\\\\tvarying vec4 fontColor;\\\\n\\\\t\\\\t\\\\tvoid main () {\\\\n\\\\t\\\\t\\\\t\\\\t\\\"+(k.normalViewport?\\\"\\\":\\\"vec2 positionOffset = vec2(positionOffset.x,- positionOffset.y);\\\")+\\\"\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvec2 offset = floor(em * (vec2(align + charOffset, baseline)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t+ positionOffset))\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t/ (viewport.zw * scale.xy);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvec2 position = (position + translate) * scale;\\\\n\\\\t\\\\t\\\\t\\\\tposition += offset * scale;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\"+(k.normalViewport?\\\"position.y = 1. - position.y;\\\":\\\"\\\")+\\\"\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tcharCoord = position * viewport.zw + viewport.xy;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tgl_Position = vec4(position * 2. - 1., 0, 1);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tgl_PointSize = charStep;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tcharId.x = mod(char, atlasDim.x);\\\\n\\\\t\\\\t\\\\t\\\\tcharId.y = floor(char / atlasDim.x);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tcharWidth = width * em;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfontColor = color / 255.;\\\\n\\\\t\\\\t\\\\t}\\\",frag:\\\"\\\\n\\\\t\\\\t\\\\tprecision highp float;\\\\n\\\\t\\\\t\\\\tuniform sampler2D atlas;\\\\n\\\\t\\\\t\\\\tuniform float fontSize, charStep, opacity;\\\\n\\\\t\\\\t\\\\tuniform vec2 atlasSize;\\\\n\\\\t\\\\t\\\\tuniform vec4 viewport;\\\\n\\\\t\\\\t\\\\tvarying vec4 fontColor;\\\\n\\\\t\\\\t\\\\tvarying vec2 charCoord, charId;\\\\n\\\\t\\\\t\\\\tvarying float charWidth;\\\\n\\\\n\\\\t\\\\t\\\\tfloat lightness(vec4 color) {\\\\n\\\\t\\\\t\\\\t\\\\treturn color.r * 0.299 + color.g * 0.587 + color.b * 0.114;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\tvoid main () {\\\\n\\\\t\\\\t\\\\t\\\\tvec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;\\\\n\\\\t\\\\t\\\\t\\\\tfloat halfCharStep = floor(charStep * .5 + .5);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// invert y and shift by 1px (FF expecially needs that)\\\\n\\\\t\\\\t\\\\t\\\\tuv.y = charStep - uv.y;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// ignore points outside of character bounding box\\\\n\\\\t\\\\t\\\\t\\\\tfloat halfCharWidth = ceil(charWidth * .5);\\\\n\\\\t\\\\t\\\\t\\\\tif (floor(uv.x) > halfCharStep + halfCharWidth ||\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tuv += charId * charStep;\\\\n\\\\t\\\\t\\\\t\\\\tuv = uv / atlasSize;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvec4 color = fontColor;\\\\n\\\\t\\\\t\\\\t\\\\tvec4 mask = texture2D(atlas, uv);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfloat maskY = lightness(mask);\\\\n\\\\t\\\\t\\\\t\\\\t// float colorY = lightness(color);\\\\n\\\\t\\\\t\\\\t\\\\tcolor.a *= maskY;\\\\n\\\\t\\\\t\\\\t\\\\tcolor.a *= opacity;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// color.a += .1;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// antialiasing, see yiq color space y-channel formula\\\\n\\\\t\\\\t\\\\t\\\\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tgl_FragColor = color;\\\\n\\\\t\\\\t\\\\t}\\\"});return{regl:t,draw:e,atlas:{}}},k.prototype.update=function(t){var e=this;if(\\\"string\\\"==typeof t)t={text:t};else if(!t)return;null!=(t=i(t,{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&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map(function(t){return parseFloat(t)}):this.opacity=parseFloat(t.opacity)),null!=t.viewport&&(this.viewport=f(t.viewport),k.normalViewport&&(this.viewport.y=this.canvas.height-this.viewport.y-this.viewport.height),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null==this.viewport&&(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]),null!=t.kerning&&(this.kerning=t.kerning),null!=t.offset&&(\\\"number\\\"==typeof t.offset&&(t.offset=[t.offset,0]),this.positionOffset=y(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||t.font||(t.font=k.baseFontSize+\\\"px sans-serif\\\");var r,a=!1,o=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach(function(t,r){if(\\\"string\\\"==typeof t)try{t=n.parse(t)}catch(e){t=n.parse(k.baseFontSize+\\\"px \\\"+t)}else t=n.parse(n.stringify(t));var i=n.stringify({size:k.baseFontSize,family:t.family,stretch:_?t.stretch:void 0,variant:t.variant,weight:t.weight,style:t.style}),s=p(t.size),l=Math.round(s[0]*d(s[1]));if(l!==e.fontSize[r]&&(o=!0,e.fontSize[r]=l),!(e.font[r]&&i==e.font[r].baseString||(a=!0,e.font[r]=k.fonts[i],e.font[r]))){var c=t.family.join(\\\", \\\"),u=[t.style];t.style!=t.variant&&u.push(t.variant),t.variant!=t.weight&&u.push(t.weight),_&&t.weight!=t.stretch&&u.push(t.stretch),e.font[r]={baseString:i,family:c,weight:t.weight,stretch:t.stretch,style:t.style,variant:t.variant,width:{},kerning:{},metrics:m(c,{origin:\\\"top\\\",fontSize:k.baseFontSize,fontStyle:u.join(\\\" \\\")})},k.fonts[i]=e.font[r]}}),(a||o)&&this.font.forEach(function(r,i){var a=n.stringify({size:e.fontSize[i],family:r.family,stretch:_?r.stretch:void 0,variant:r.variant,weight:r.weight,style:r.style});if(e.fontAtlas[i]=e.shader.atlas[a],!e.fontAtlas[i]){var o=r.metrics;e.shader.atlas[a]=e.fontAtlas[i]={fontString:a,step:2*Math.ceil(e.fontSize[i]*o.bottom*.5),em:e.fontSize[i],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:e.regl.texture()}}null==t.text&&(t.text=e.text)}),\\\"string\\\"==typeof t.text&&t.position&&t.position.length>2){for(var s=Array(.5*t.position.length),h=0;h<s.length;h++)s[h]=t.text;t.text=s}if(null!=t.text||a){if(this.textOffsets=[0],Array.isArray(t.text)){this.count=t.text[0].length,this.counts=[this.count];for(var b=1;b<t.text.length;b++)e.textOffsets[b]=e.textOffsets[b-1]+t.text[b-1].length,e.count+=t.text[b].length,e.counts.push(t.text[b].length);this.text=t.text.join(\\\"\\\")}else this.text=t.text,this.count=this.text.length,this.counts=[this.count];r=[],this.font.forEach(function(t,n){k.atlasContext.font=t.baseString;for(var i=e.fontAtlas[n],a=0;a<e.text.length;a++){var o=e.text.charAt(a);if(null==i.ids[o]&&(i.ids[o]=i.chars.length,i.chars.push(o),r.push(o)),null==t.width[o]&&(t.width[o]=k.atlasContext.measureText(o).width/k.baseFontSize,e.kerning)){var s=[];for(var l in t.width)s.push(l+o,o+l);v(t.kerning,g(t.family,{pairs:s}))}}})}if(t.position)if(t.position.length>2){for(var w=!t.position[0].length,M=u.mallocFloat(2*this.count),A=0,T=0;A<this.counts.length;A++){var S=e.counts[A];if(w)for(var E=0;E<S;E++)M[T++]=t.position[2*A],M[T++]=t.position[2*A+1];else for(var C=0;C<S;C++)M[T++]=t.position[A][0],M[T++]=t.position[A][1]}this.position.call?this.position({type:\\\"float\\\",data:M}):this.position=this.regl.buffer({type:\\\"float\\\",data:M}),u.freeFloat(M)}else this.position.destroy&&this.position.destroy(),this.position={constant:t.position};if(t.text||a){var L=u.mallocUint8(this.count),z=u.mallocFloat(2*this.count);this.textWidth=[];for(var O=0,I=0;O<this.counts.length;O++){for(var P=e.counts[O],D=e.font[O]||e.font[0],R=e.fontAtlas[O]||e.fontAtlas[0],B=0;B<P;B++){var F=e.text.charAt(I),N=e.text.charAt(I-1);if(L[I]=R.ids[F],z[2*I]=D.width[F],B){var j=z[2*I-2],V=z[2*I],U=z[2*I-1]+.5*j+.5*V;if(e.kerning){var q=D.kerning[N+F];q&&(U+=.001*q)}z[2*I+1]=U}else z[2*I+1]=.5*z[2*I];I++}e.textWidth.push(z.length?.5*z[2*I-2]+z[2*I-1]:0)}t.align||(t.align=this.align),this.charBuffer({data:L,type:\\\"uint8\\\",usage:\\\"stream\\\"}),this.sizeBuffer({data:z,type:\\\"float\\\",usage:\\\"stream\\\"}),u.freeUint8(L),u.freeFloat(z),r.length&&this.font.forEach(function(t,r){var n=e.fontAtlas[r],i=n.step,a=Math.floor(k.maxAtlasSize/i),o=Math.min(a,n.chars.length),s=Math.ceil(n.chars.length/o),l=x(o*i),u=x(s*i);n.width=l,n.height=u,n.rows=s,n.cols=o,n.em&&n.texture({data:c({canvas:k.atlasCanvas,font:n.fontString,chars:n.chars,shape:[l,u],step:[i,i]})})})}if(t.align&&(this.align=t.align,this.alignOffset=this.textWidth.map(function(t,r){var n=Array.isArray(e.align)?e.align.length>1?e.align[r]:e.align[0]:e.align;if(\\\"number\\\"==typeof n)return n;switch(n){case\\\"right\\\":case\\\"end\\\":return-t;case\\\"center\\\":case\\\"centre\\\":case\\\"middle\\\":return.5*-t}return 0})),null==this.baseline&&null==t.baseline&&(t.baseline=0),null!=t.baseline&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map(function(t,r){var n=(e.font[r]||e.font[0]).metrics,i=0;return i+=.5*n.bottom,i+=\\\"number\\\"==typeof t?t-n.baseline:-n[t],k.normalViewport||(i*=-1),i})),null!=t.color)if(t.color||(t.color=\\\"transparent\\\"),\\\"string\\\"!=typeof t.color&&isNaN(t.color)){var H;if(\\\"number\\\"==typeof t.color[0]&&t.color.length>this.counts.length){var G=t.color.length;H=u.mallocUint8(G);for(var W=(t.color.subarray||t.color.slice).bind(t.color),Y=0;Y<G;Y+=4)H.set(l(W(Y,Y+4),\\\"uint8\\\"),Y)}else{var X=t.color.length;H=u.mallocUint8(4*X);for(var Z=0;Z<X;Z++)H.set(l(t.color[Z]||0,\\\"uint8\\\"),4*Z)}this.color=H}else this.color=l(t.color,\\\"uint8\\\");if(t.position||t.text||t.color||t.baseline||t.align||t.font||t.offset||t.opacity)if(this.color.length>4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var $=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($);for(var J=0;J<this.batch.length;J++)e.batch[J]={count:e.counts.length>1?e.counts[J]:e.counts[0],offset:e.textOffsets.length>1?e.textOffsets[J]:e.textOffsets[0],color:e.color?e.color.length<=4?e.color:e.color.subarray(4*J,4*J+4):[0,0,0,255],opacity:Array.isArray(e.opacity)?e.opacity[J]:e.opacity,baseline:null!=e.baselineOffset[J]?e.baselineOffset[J]:e.baselineOffset[0],align:e.align?null!=e.alignOffset[J]?e.alignOffset[J]:e.alignOffset[0]:0,atlas:e.fontAtlas[J]||e.fontAtlas[0],positionOffset:e.positionOffset.length>2?e.positionOffset.subarray(2*J,2*J+2):e.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=[]},k.prototype.destroy=function(){},k.prototype.kerning=!0,k.prototype.position={constant:new Float32Array(2)},k.prototype.translate=null,k.prototype.scale=null,k.prototype.font=null,k.prototype.text=\\\"\\\",k.prototype.positionOffset=[0,0],k.prototype.opacity=1,k.prototype.color=new Uint8Array([0,0,0,255]),k.prototype.alignOffset=[0,0],k.normalViewport=!1,k.maxAtlasSize=1024,k.atlasCanvas=document.createElement(\\\"canvas\\\"),k.atlasContext=k.atlasCanvas.getContext(\\\"2d\\\",{alpha:!1}),k.baseFontSize=64,k.fonts={},e.exports=k},{\\\"bit-twiddle\\\":80,\\\"color-normalize\\\":108,\\\"css-font\\\":127,\\\"detect-kerning\\\":151,\\\"es6-weak-map\\\":209,\\\"flatten-vertex-data\\\":216,\\\"font-atlas\\\":217,\\\"font-measure\\\":218,\\\"gl-util/context\\\":306,\\\"is-plain-obj\\\":405,\\\"object-assign\\\":437,\\\"parse-rect\\\":442,\\\"parse-unit\\\":444,\\\"pick-by-alias\\\":448,regl:478,\\\"to-px\\\":516,\\\"typedarray-pool\\\":522}],305:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"ndarray\\\"),i=t(\\\"ndarray-ops\\\"),a=t(\\\"typedarray-pool\\\");e.exports=function(t){if(arguments.length<=1)throw new Error(\\\"gl-texture2d: Missing arguments for texture2d constructor\\\");o||function(t){o=[t.LINEAR,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_NEAREST],s=[t.NEAREST,t.LINEAR,t.NEAREST_MIPMAP_NEAREST,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_LINEAR],l=[t.REPEAT,t.CLAMP_TO_EDGE,t.MIRRORED_REPEAT]}(t);if(\\\"number\\\"==typeof arguments[1])return v(t,arguments[1],arguments[2],arguments[3]||t.RGBA,arguments[4]||t.UNSIGNED_BYTE);if(Array.isArray(arguments[1]))return v(t,0|arguments[1][0],0|arguments[1][1],arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if(\\\"object\\\"==typeof arguments[1]){var e=arguments[1],r=c(e)?e:e.raw;if(r)return function(t,e,r,n,i,a){var o=g(t);return t.texImage2D(t.TEXTURE_2D,0,i,i,a,e),new h(t,o,r,n,i,a)}(t,r,0|e.width,0|e.height,arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if(e.shape&&e.data&&e.stride)return function(t,e){var r=e.dtype,o=e.shape.slice(),s=t.getParameter(t.MAX_TEXTURE_SIZE);if(o[0]<0||o[0]>s||o[1]<0||o[1]>s)throw new Error(\\\"gl-texture2d: Invalid texture size\\\");var l=d(o,e.stride.slice()),c=0;\\\"float32\\\"===r?c=t.FLOAT:\\\"float64\\\"===r?(c=t.FLOAT,l=!1,r=\\\"float32\\\"):\\\"uint8\\\"===r?c=t.UNSIGNED_BYTE:(c=t.UNSIGNED_BYTE,l=!1,r=\\\"uint8\\\");var f,p,v=0;if(2===o.length)v=t.LUMINANCE,o=[o[0],o[1],1],e=n(e.data,o,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==o.length)throw new Error(\\\"gl-texture2d: Invalid shape for texture\\\");if(1===o[2])v=t.ALPHA;else if(2===o[2])v=t.LUMINANCE_ALPHA;else if(3===o[2])v=t.RGB;else{if(4!==o[2])throw new Error(\\\"gl-texture2d: Invalid shape for pixel coords\\\");v=t.RGBA}}c!==t.FLOAT||t.getExtension(\\\"OES_texture_float\\\")||(c=t.UNSIGNED_BYTE,l=!1);var m=e.size;if(l)f=0===e.offset&&e.data.length===m?e.data:e.data.subarray(e.offset,e.offset+m);else{var y=[o[2],o[2]*o[0],1];p=a.malloc(m,r);var x=n(p,o,y,0);\\\"float32\\\"!==r&&\\\"float64\\\"!==r||c!==t.UNSIGNED_BYTE?i.assign(x,e):u(x,e),f=p.subarray(0,m)}var b=g(t);t.texImage2D(t.TEXTURE_2D,0,v,o[0],o[1],0,v,c,f),l||a.free(p);return new h(t,b,o[0],o[1],v,c)}(t,e)}throw new Error(\\\"gl-texture2d: Invalid arguments for texture2d constructor\\\")};var o=null,s=null,l=null;function c(t){return\\\"undefined\\\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\\\"undefined\\\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\\\"undefined\\\"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||\\\"undefined\\\"!=typeof ImageData&&t instanceof ImageData}var u=function(t,e){i.muls(t,e,255)};function f(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error(\\\"gl-texture2d: Invalid texture size\\\");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function h(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var p=h.prototype;function d(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function g(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function v(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error(\\\"gl-texture2d: Invalid texture shape\\\");if(i===t.FLOAT&&!t.getExtension(\\\"OES_texture_float\\\"))throw new Error(\\\"gl-texture2d: Floating point textures not supported on this platform\\\");var o=g(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new h(t,o,e,r,n,i)}Object.defineProperties(p,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension(\\\"OES_texture_float_linear\\\")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error(\\\"gl-texture2d: Unknown filter mode \\\"+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension(\\\"OES_texture_float_linear\\\")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error(\\\"gl-texture2d: Unknown filter mode \\\"+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension(\\\"EXT_texture_filter_anisotropic\\\");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error(\\\"gl-texture2d: Unknown wrap mode \\\"+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error(\\\"gl-texture2d: Unknown wrap mode \\\"+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error(\\\"gl-texture2d: Must specify wrap mode for rows and columns\\\");for(var e=0;e<2;++e)if(l.indexOf(t[e])<0)throw new Error(\\\"gl-texture2d: Unknown wrap mode \\\"+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error(\\\"gl-texture2d: Invalid texture shape\\\")}else t=[0|t,0|t];return f(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return f(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,f(this,this._shape[0],t),t}}}),p.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},p.dispose=function(){this.gl.deleteTexture(this.handle)},p.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},p.setPixels=function(t,e,r,o){var s=this.gl;this.bind(),Array.isArray(e)?(o=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),o=o||0;var l=c(t)?t:t.raw;if(l){this._mipLevels.indexOf(o)<0?(s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,this.type,l),this._mipLevels.push(o)):s.texSubImage2D(s.TEXTURE_2D,o,e,r,this.format,this.type,l)}else{if(!(t.shape&&t.stride&&t.data))throw new Error(\\\"gl-texture2d: Unsupported data type\\\");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>o||r+t.shape[0]>this._shape[0]>>>o||e<0||r<0)throw new Error(\\\"gl-texture2d: Texture dimensions are out of bounds\\\");!function(t,e,r,o,s,l,c,f){var h=f.dtype,p=f.shape.slice();if(p.length<2||p.length>3)throw new Error(\\\"gl-texture2d: Invalid ndarray, must be 2d or 3d\\\");var g=0,v=0,m=d(p,f.stride.slice());\\\"float32\\\"===h?g=t.FLOAT:\\\"float64\\\"===h?(g=t.FLOAT,m=!1,h=\\\"float32\\\"):\\\"uint8\\\"===h?g=t.UNSIGNED_BYTE:(g=t.UNSIGNED_BYTE,m=!1,h=\\\"uint8\\\");if(2===p.length)v=t.LUMINANCE,p=[p[0],p[1],1],f=n(f.data,p,[f.stride[0],f.stride[1],1],f.offset);else{if(3!==p.length)throw new Error(\\\"gl-texture2d: Invalid shape for texture\\\");if(1===p[2])v=t.ALPHA;else if(2===p[2])v=t.LUMINANCE_ALPHA;else if(3===p[2])v=t.RGB;else{if(4!==p[2])throw new Error(\\\"gl-texture2d: Invalid shape for pixel coords\\\");v=t.RGBA}p[2]}v!==t.LUMINANCE&&v!==t.ALPHA||s!==t.LUMINANCE&&s!==t.ALPHA||(v=s);if(v!==s)throw new Error(\\\"gl-texture2d: Incompatible texture format for setPixels\\\");var y=f.size,x=c.indexOf(o)<0;x&&c.push(o);if(g===l&&m)0===f.offset&&f.data.length===y?x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,f.data):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,f.data):x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,f.data.subarray(f.offset,f.offset+y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,f.data.subarray(f.offset,f.offset+y));else{var b;b=l===t.FLOAT?a.mallocFloat32(y):a.mallocUint8(y);var _=n(b,p,[p[2],p[2]*p[0],1]);g===t.FLOAT&&l===t.UNSIGNED_BYTE?u(_,f):i.assign(_,f),x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,b.subarray(0,y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,b.subarray(0,y)),l===t.FLOAT?a.freeFloat32(b):a.freeUint8(b)}}(s,e,r,o,this.format,this.type,this._mipLevels,t)}}},{ndarray:433,\\\"ndarray-ops\\\":427,\\\"typedarray-pool\\\":522}],306:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"pick-by-alias\\\");function i(t){if(t.container)if(t.container==document.body)document.body.style.width||(t.canvas.width=t.width||t.pixelRatio*window.innerWidth),document.body.style.height||(t.canvas.height=t.height||t.pixelRatio*window.innerHeight);else{var e=t.container.getBoundingClientRect();t.canvas.width=t.width||e.right-e.left,t.canvas.height=t.height||e.bottom-e.top}}function a(t){return\\\"function\\\"==typeof t.getContext&&\\\"width\\\"in t&&\\\"height\\\"in t}e.exports=function(t){var e;if(t?\\\"string\\\"==typeof t&&(t={container:t}):t={},a(t)?t={container:t}:t=\\\"string\\\"==typeof(e=t).nodeName&&\\\"function\\\"==typeof e.appendChild&&\\\"function\\\"==typeof e.getBoundingClientRect?{container:t}:function(t){return\\\"function\\\"==typeof t.drawArrays||\\\"function\\\"==typeof t.drawElements}(t)?{gl:t}:n(t,{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\\\"},!0),t.pixelRatio||(t.pixelRatio=window.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if(\\\"string\\\"==typeof t.container){var r=document.querySelector(t.container);if(!r)throw Error(\\\"Element \\\"+t.container+\\\" is not found\\\");t.container=r}a(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=document.createElement(\\\"canvas\\\"),t.container.appendChild(t.canvas),i(t))}else t.canvas||(t.container=document.body||document.documentElement,t.canvas=document.createElement(\\\"canvas\\\"),t.canvas.style.position=\\\"absolute\\\",t.canvas.style.top=0,t.canvas.style.left=0,t.container.appendChild(t.canvas),i(t));if(!t.gl)try{t.gl=t.canvas.getContext(\\\"webgl\\\",t.attrs)}catch(e){try{t.gl=t.canvas.getContext(\\\"experimental-webgl\\\",t.attrs)}catch(e){t.gl=t.canvas.getContext(\\\"webgl-experimental\\\",t.attrs)}}return t.gl}},{\\\"pick-by-alias\\\":448}],307:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error(\\\"gl-vao: Too many vertex attributes\\\");for(var i=0;i<r.length;++i){var a=r[i];if(a.buffer){var o=a.buffer,s=a.size||4,l=a.type||t.FLOAT,c=!!a.normalized,u=a.stride||0,f=a.offset||0;o.bind(),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,s,l,c,u,f)}else{if(\\\"number\\\"==typeof a)t.vertexAttrib1f(i,a);else if(1===a.length)t.vertexAttrib1f(i,a[0]);else if(2===a.length)t.vertexAttrib2f(i,a[0],a[1]);else if(3===a.length)t.vertexAttrib3f(i,a[0],a[1],a[2]);else{if(4!==a.length)throw new Error(\\\"gl-vao: Invalid vertex attribute\\\");t.vertexAttrib4f(i,a[0],a[1],a[2],a[3])}t.disableVertexAttribArray(i)}}for(;i<n;++i)t.disableVertexAttribArray(i)}else for(t.bindBuffer(t.ARRAY_BUFFER,null),i=0;i<n;++i)t.disableVertexAttribArray(i)}},{}],308:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./do-bind.js\\\");function i(t){this.gl=t,this._elements=null,this._attributes=null,this._elementsType=t.UNSIGNED_SHORT}i.prototype.bind=function(){n(this.gl,this._elements,this._attributes)},i.prototype.update=function(t,e,r){this._elements=e,this._attributes=t,this._elementsType=r||this.gl.UNSIGNED_SHORT},i.prototype.dispose=function(){},i.prototype.unbind=function(){},i.prototype.draw=function(t,e,r){r=r||0;var n=this.gl;this._elements?n.drawElements(t,e,this._elementsType,r):n.drawArrays(t,r,e)},e.exports=function(t){return new i(t)}},{\\\"./do-bind.js\\\":307}],309:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./do-bind.js\\\");function i(t,e,r,n,i,a){this.location=t,this.dimension=e,this.a=r,this.b=n,this.c=i,this.d=a}function a(t,e,r){this.gl=t,this._ext=e,this.handle=r,this._attribs=[],this._useElements=!1,this._elementsType=t.UNSIGNED_SHORT}i.prototype.bind=function(t){switch(this.dimension){case 1:t.vertexAttrib1f(this.location,this.a);break;case 2:t.vertexAttrib2f(this.location,this.a,this.b);break;case 3:t.vertexAttrib3f(this.location,this.a,this.b,this.c);break;case 4:t.vertexAttrib4f(this.location,this.a,this.b,this.c,this.d)}},a.prototype.bind=function(){this._ext.bindVertexArrayOES(this.handle);for(var t=0;t<this._attribs.length;++t)this._attribs[t].bind(this.gl)},a.prototype.unbind=function(){this._ext.bindVertexArrayOES(null)},a.prototype.dispose=function(){this._ext.deleteVertexArrayOES(this.handle)},a.prototype.update=function(t,e,r){if(this.bind(),n(this.gl,e,t),this.unbind(),this._attribs.length=0,t)for(var a=0;a<t.length;++a){var o=t[a];\\\"number\\\"==typeof o?this._attribs.push(new i(a,1,o)):Array.isArray(o)&&this._attribs.push(new i(a,o.length,o[0],o[1],o[2],o[3]))}this._useElements=!!e,this._elementsType=r||this.gl.UNSIGNED_SHORT},a.prototype.draw=function(t,e,r){r=r||0;var n=this.gl;this._useElements?n.drawElements(t,e,this._elementsType,r):n.drawArrays(t,r,e)},e.exports=function(t,e){return new a(t,e,e.createVertexArrayOES())}},{\\\"./do-bind.js\\\":307}],310:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/vao-native.js\\\"),i=t(\\\"./lib/vao-emulated.js\\\");function a(t){this.bindVertexArrayOES=t.bindVertexArray.bind(t),this.createVertexArrayOES=t.createVertexArray.bind(t),this.deleteVertexArrayOES=t.deleteVertexArray.bind(t)}e.exports=function(t,e,r,o){var s,l=t.createVertexArray?new a(t):t.getExtension(\\\"OES_vertex_array_object\\\");return(s=l?n(t,l):i(t)).update(e,r,o),s}},{\\\"./lib/vao-emulated.js\\\":308,\\\"./lib/vao-native.js\\\":309}],311:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}},{}],312:[function(t,e,r){e.exports=function(t,e){var r=n(t[0],t[1],t[2]),o=n(e[0],e[1],e[2]);i(r,r),i(o,o);var s=a(r,o);return s>1?0:Math.acos(s)};var n=t(\\\"./fromValues\\\"),i=t(\\\"./normalize\\\"),a=t(\\\"./dot\\\")},{\\\"./dot\\\":322,\\\"./fromValues\\\":328,\\\"./normalize\\\":339}],313:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}},{}],314:[function(t,e,r){e.exports=function(t){var e=new Float32Array(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},{}],315:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},{}],316:[function(t,e,r){e.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},{}],317:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t}},{}],318:[function(t,e,r){e.exports=t(\\\"./distance\\\")},{\\\"./distance\\\":319}],319:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}},{}],320:[function(t,e,r){e.exports=t(\\\"./divide\\\")},{\\\"./divide\\\":321}],321:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}},{}],322:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},{}],323:[function(t,e,r){e.exports=1e-6},{}],324:[function(t,e,r){e.exports=function(t,e){var r=t[0],i=t[1],a=t[2],o=e[0],s=e[1],l=e[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=n*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-l)<=n*Math.max(1,Math.abs(a),Math.abs(l))};var n=t(\\\"./epsilon\\\")},{\\\"./epsilon\\\":323}],325:[function(t,e,r){e.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},{}],326:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}},{}],327:[function(t,e,r){e.exports=function(t,e,r,i,a,o){var s,l;e||(e=3);r||(r=0);l=i?Math.min(i*e+r,t.length):t.length;for(s=r;s<l;s+=e)n[0]=t[s],n[1]=t[s+1],n[2]=t[s+2],a(n,n,o),t[s]=n[0],t[s+1]=n[1],t[s+2]=n[2];return t};var n=t(\\\"./create\\\")()},{\\\"./create\\\":316}],328:[function(t,e,r){e.exports=function(t,e,r){var n=new Float32Array(3);return n[0]=t,n[1]=e,n[2]=r,n}},{}],329:[function(t,e,r){e.exports={EPSILON:t(\\\"./epsilon\\\"),create:t(\\\"./create\\\"),clone:t(\\\"./clone\\\"),angle:t(\\\"./angle\\\"),fromValues:t(\\\"./fromValues\\\"),copy:t(\\\"./copy\\\"),set:t(\\\"./set\\\"),equals:t(\\\"./equals\\\"),exactEquals:t(\\\"./exactEquals\\\"),add:t(\\\"./add\\\"),subtract:t(\\\"./subtract\\\"),sub:t(\\\"./sub\\\"),multiply:t(\\\"./multiply\\\"),mul:t(\\\"./mul\\\"),divide:t(\\\"./divide\\\"),div:t(\\\"./div\\\"),min:t(\\\"./min\\\"),max:t(\\\"./max\\\"),floor:t(\\\"./floor\\\"),ceil:t(\\\"./ceil\\\"),round:t(\\\"./round\\\"),scale:t(\\\"./scale\\\"),scaleAndAdd:t(\\\"./scaleAndAdd\\\"),distance:t(\\\"./distance\\\"),dist:t(\\\"./dist\\\"),squaredDistance:t(\\\"./squaredDistance\\\"),sqrDist:t(\\\"./sqrDist\\\"),length:t(\\\"./length\\\"),len:t(\\\"./len\\\"),squaredLength:t(\\\"./squaredLength\\\"),sqrLen:t(\\\"./sqrLen\\\"),negate:t(\\\"./negate\\\"),inverse:t(\\\"./inverse\\\"),normalize:t(\\\"./normalize\\\"),dot:t(\\\"./dot\\\"),cross:t(\\\"./cross\\\"),lerp:t(\\\"./lerp\\\"),random:t(\\\"./random\\\"),transformMat4:t(\\\"./transformMat4\\\"),transformMat3:t(\\\"./transformMat3\\\"),transformQuat:t(\\\"./transformQuat\\\"),rotateX:t(\\\"./rotateX\\\"),rotateY:t(\\\"./rotateY\\\"),rotateZ:t(\\\"./rotateZ\\\"),forEach:t(\\\"./forEach\\\")}},{\\\"./add\\\":311,\\\"./angle\\\":312,\\\"./ceil\\\":313,\\\"./clone\\\":314,\\\"./copy\\\":315,\\\"./create\\\":316,\\\"./cross\\\":317,\\\"./dist\\\":318,\\\"./distance\\\":319,\\\"./div\\\":320,\\\"./divide\\\":321,\\\"./dot\\\":322,\\\"./epsilon\\\":323,\\\"./equals\\\":324,\\\"./exactEquals\\\":325,\\\"./floor\\\":326,\\\"./forEach\\\":327,\\\"./fromValues\\\":328,\\\"./inverse\\\":330,\\\"./len\\\":331,\\\"./length\\\":332,\\\"./lerp\\\":333,\\\"./max\\\":334,\\\"./min\\\":335,\\\"./mul\\\":336,\\\"./multiply\\\":337,\\\"./negate\\\":338,\\\"./normalize\\\":339,\\\"./random\\\":340,\\\"./rotateX\\\":341,\\\"./rotateY\\\":342,\\\"./rotateZ\\\":343,\\\"./round\\\":344,\\\"./scale\\\":345,\\\"./scaleAndAdd\\\":346,\\\"./set\\\":347,\\\"./sqrDist\\\":348,\\\"./sqrLen\\\":349,\\\"./squaredDistance\\\":350,\\\"./squaredLength\\\":351,\\\"./sub\\\":352,\\\"./subtract\\\":353,\\\"./transformMat3\\\":354,\\\"./transformMat4\\\":355,\\\"./transformQuat\\\":356}],330:[function(t,e,r){e.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}},{}],331:[function(t,e,r){e.exports=t(\\\"./length\\\")},{\\\"./length\\\":332}],332:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}},{}],333:[function(t,e,r){e.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t}},{}],334:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}},{}],335:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}},{}],336:[function(t,e,r){e.exports=t(\\\"./multiply\\\")},{\\\"./multiply\\\":337}],337:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}},{}],338:[function(t,e,r){e.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}},{}],339:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=r*r+n*n+i*i;a>0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a);return t}},{}],340:[function(t,e,r){e.exports=function(t,e){e=e||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}},{}],341:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[1],a=r[2],o=e[1]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=e[0],t[1]=i+o*c-s*l,t[2]=a+o*l+s*c,t}},{}],342:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[2],o=e[0]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+s*l+o*c,t[1]=e[1],t[2]=a+s*c-o*l,t}},{}],343:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[1],o=e[0]-i,s=e[1]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+o*c-s*l,t[1]=a+o*l+s*c,t[2]=e[2],t}},{}],344:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}},{}],345:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}},{}],346:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}},{}],347:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},{}],348:[function(t,e,r){e.exports=t(\\\"./squaredDistance\\\")},{\\\"./squaredDistance\\\":350}],349:[function(t,e,r){e.exports=t(\\\"./squaredLength\\\")},{\\\"./squaredLength\\\":351}],350:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}},{}],351:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}},{}],352:[function(t,e,r){e.exports=t(\\\"./subtract\\\")},{\\\"./subtract\\\":353}],353:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}},{}],354:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},{}],355:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,t}},{}],356:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t}},{}],357:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}},{}],358:[function(t,e,r){e.exports=function(t){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},{}],359:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}},{}],360:[function(t,e,r){e.exports=function(){var t=new Float32Array(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}},{}],361:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+a*a)}},{}],362:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}},{}],363:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}},{}],364:[function(t,e,r){e.exports=function(t,e,r,n){var i=new Float32Array(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}},{}],365:[function(t,e,r){e.exports={create:t(\\\"./create\\\"),clone:t(\\\"./clone\\\"),fromValues:t(\\\"./fromValues\\\"),copy:t(\\\"./copy\\\"),set:t(\\\"./set\\\"),add:t(\\\"./add\\\"),subtract:t(\\\"./subtract\\\"),multiply:t(\\\"./multiply\\\"),divide:t(\\\"./divide\\\"),min:t(\\\"./min\\\"),max:t(\\\"./max\\\"),scale:t(\\\"./scale\\\"),scaleAndAdd:t(\\\"./scaleAndAdd\\\"),distance:t(\\\"./distance\\\"),squaredDistance:t(\\\"./squaredDistance\\\"),length:t(\\\"./length\\\"),squaredLength:t(\\\"./squaredLength\\\"),negate:t(\\\"./negate\\\"),inverse:t(\\\"./inverse\\\"),normalize:t(\\\"./normalize\\\"),dot:t(\\\"./dot\\\"),lerp:t(\\\"./lerp\\\"),random:t(\\\"./random\\\"),transformMat4:t(\\\"./transformMat4\\\"),transformQuat:t(\\\"./transformQuat\\\")}},{\\\"./add\\\":357,\\\"./clone\\\":358,\\\"./copy\\\":359,\\\"./create\\\":360,\\\"./distance\\\":361,\\\"./divide\\\":362,\\\"./dot\\\":363,\\\"./fromValues\\\":364,\\\"./inverse\\\":366,\\\"./length\\\":367,\\\"./lerp\\\":368,\\\"./max\\\":369,\\\"./min\\\":370,\\\"./multiply\\\":371,\\\"./negate\\\":372,\\\"./normalize\\\":373,\\\"./random\\\":374,\\\"./scale\\\":375,\\\"./scaleAndAdd\\\":376,\\\"./set\\\":377,\\\"./squaredDistance\\\":378,\\\"./squaredLength\\\":379,\\\"./subtract\\\":380,\\\"./transformMat4\\\":381,\\\"./transformQuat\\\":382}],366:[function(t,e,r){e.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}},{}],367:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}},{}],368:[function(t,e,r){e.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2],s=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t[3]=s+n*(r[3]-s),t}},{}],369:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}},{}],370:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}},{}],371:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}},{}],372:[function(t,e,r){e.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}},{}],373:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*r+n*n+i*i+a*a;o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=a*o);return t}},{}],374:[function(t,e,r){var n=t(\\\"./normalize\\\"),i=t(\\\"./scale\\\");e.exports=function(t,e){return e=e||1,t[0]=Math.random(),t[1]=Math.random(),t[2]=Math.random(),t[3]=Math.random(),n(t,t),i(t,t,e),t}},{\\\"./normalize\\\":373,\\\"./scale\\\":375}],375:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}},{}],376:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}},{}],377:[function(t,e,r){e.exports=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}},{}],378:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}},{}],379:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}},{}],380:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}},{}],381:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},{}],382:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t[3]=e[3],t}},{}],383:[function(t,e,r){e.exports=function(t,e,r,a){return n[0]=a,n[1]=r,n[2]=e,n[3]=t,i[0]};var n=new Uint8Array(4),i=new Float32Array(n.buffer)},{}],384:[function(t,e,r){var n=t(\\\"glsl-tokenizer\\\"),i=t(\\\"atob-lite\\\");e.exports=function(t){for(var e=Array.isArray(t)?t:n(t),r=0;r<e.length;r++){var a=e[r];if(\\\"preprocessor\\\"===a.type){var o=a.data.match(/\\\\#define\\\\s+SHADER_NAME(_B64)?\\\\s+(.+)$/);if(o&&o[2]){var s=o[1],l=o[2];return(s?i(l):l).trim()}}}}},{\\\"atob-lite\\\":60,\\\"glsl-tokenizer\\\":391}],385:[function(t,e,r){e.exports=function(t){var e,r,k,M=0,A=0,T=l,S=[],E=[],C=1,L=0,z=0,O=!1,I=!1,P=\\\"\\\",D=a,R=n;\\\"300 es\\\"===(t=t||{}).version&&(D=s,R=o);return function(t){return E=[],null!==t?function(t){var r;M=0,k=(P+=t).length;for(;e=P[M],M<k;){switch(r=M,T){case u:M=V();break;case f:case h:M=j();break;case p:M=U();break;case d:M=G();break;case _:M=H();break;case g:M=W();break;case c:M=Y();break;case x:M=N();break;case l:M=F()}if(r!==M)switch(P[r]){case\\\"\\\\n\\\":L=0,++C;break;default:++L}}return A+=M,P=P.slice(M),E}(t.replace?t.replace(/\\\\r\\\\n/g,\\\"\\\\n\\\"):t):function(t){S.length&&B(S.join(\\\"\\\"));return T=b,B(\\\"(eof)\\\"),E}()};function B(t){t.length&&E.push({type:w[T],data:t,position:z,line:C,column:L})}function F(){return S=S.length?[]:S,\\\"/\\\"===r&&\\\"*\\\"===e?(z=A+M-1,T=u,r=e,M+1):\\\"/\\\"===r&&\\\"/\\\"===e?(z=A+M-1,T=f,r=e,M+1):\\\"#\\\"===e?(T=h,z=A+M,M):/\\\\s/.test(e)?(T=x,z=A+M,M):(O=/\\\\d/.test(e),I=/[^\\\\w_]/.test(e),z=A+M,T=O?d:I?p:c,M)}function N(){return/[^\\\\s]/g.test(e)?(B(S.join(\\\"\\\")),T=l,M):(S.push(e),r=e,M+1)}function j(){return\\\"\\\\r\\\"!==e&&\\\"\\\\n\\\"!==e||\\\"\\\\\\\\\\\"===r?(S.push(e),r=e,M+1):(B(S.join(\\\"\\\")),T=l,M)}function V(){return\\\"/\\\"===e&&\\\"*\\\"===r?(S.push(e),B(S.join(\\\"\\\")),T=l,M+1):(S.push(e),r=e,M+1)}function U(){if(\\\".\\\"===r&&/\\\\d/.test(e))return T=g,M;if(\\\"/\\\"===r&&\\\"*\\\"===e)return T=u,M;if(\\\"/\\\"===r&&\\\"/\\\"===e)return T=f,M;if(\\\".\\\"===e&&S.length){for(;q(S););return T=g,M}if(\\\";\\\"===e||\\\")\\\"===e||\\\"(\\\"===e){if(S.length)for(;q(S););return B(e),T=l,M+1}var t=2===S.length&&\\\"=\\\"!==e;if(/[\\\\w_\\\\d\\\\s]/.test(e)||t){for(;q(S););return T=l,M}return S.push(e),r=e,M+1}function q(t){for(var e,r,n=0;;){if(e=i.indexOf(t.slice(0,t.length+n).join(\\\"\\\")),r=i[e],-1===e){if(n--+t.length>0)continue;r=t.slice(0,1).join(\\\"\\\")}return B(r),z+=r.length,(S=S.slice(r.length)).length}}function H(){return/[^a-fA-F0-9]/.test(e)?(B(S.join(\\\"\\\")),T=l,M):(S.push(e),r=e,M+1)}function G(){return\\\".\\\"===e?(S.push(e),T=g,r=e,M+1):/[eE]/.test(e)?(S.push(e),T=g,r=e,M+1):\\\"x\\\"===e&&1===S.length&&\\\"0\\\"===S[0]?(T=_,S.push(e),r=e,M+1):/[^\\\\d]/.test(e)?(B(S.join(\\\"\\\")),T=l,M):(S.push(e),r=e,M+1)}function W(){return\\\"f\\\"===e&&(S.push(e),r=e,M+=1),/[eE]/.test(e)?(S.push(e),r=e,M+1):\\\"-\\\"===e&&/[eE]/.test(r)?(S.push(e),r=e,M+1):/[^\\\\d]/.test(e)?(B(S.join(\\\"\\\")),T=l,M):(S.push(e),r=e,M+1)}function Y(){if(/[^\\\\d\\\\w_]/.test(e)){var t=S.join(\\\"\\\");return T=R.indexOf(t)>-1?y:D.indexOf(t)>-1?m:v,B(S.join(\\\"\\\")),T=l,M}return S.push(e),r=e,M+1}};var n=t(\\\"./lib/literals\\\"),i=t(\\\"./lib/operators\\\"),a=t(\\\"./lib/builtins\\\"),o=t(\\\"./lib/literals-300es\\\"),s=t(\\\"./lib/builtins-300es\\\"),l=999,c=9999,u=0,f=1,h=2,p=3,d=4,g=5,v=6,m=7,y=8,x=9,b=10,_=11,w=[\\\"block-comment\\\",\\\"line-comment\\\",\\\"preprocessor\\\",\\\"operator\\\",\\\"integer\\\",\\\"float\\\",\\\"ident\\\",\\\"builtin\\\",\\\"keyword\\\",\\\"whitespace\\\",\\\"eof\\\",\\\"integer\\\"]},{\\\"./lib/builtins\\\":387,\\\"./lib/builtins-300es\\\":386,\\\"./lib/literals\\\":389,\\\"./lib/literals-300es\\\":388,\\\"./lib/operators\\\":390}],386:[function(t,e,r){var n=t(\\\"./builtins\\\");n=n.slice().filter(function(t){return!/^(gl\\\\_|texture)/.test(t)}),e.exports=n.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\\\":387}],387:[function(t,e,r){e.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\\\"]},{}],388:[function(t,e,r){var n=t(\\\"./literals\\\");e.exports=n.slice().concat([\\\"layout\\\",\\\"centroid\\\",\\\"smooth\\\",\\\"case\\\",\\\"mat2x2\\\",\\\"mat2x3\\\",\\\"mat2x4\\\",\\\"mat3x2\\\",\\\"mat3x3\\\",\\\"mat3x4\\\",\\\"mat4x2\\\",\\\"mat4x3\\\",\\\"mat4x4\\\",\\\"uint\\\",\\\"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\\\":389}],389:[function(t,e,r){e.exports=[\\\"precision\\\",\\\"highp\\\",\\\"mediump\\\",\\\"lowp\\\",\\\"attribute\\\",\\\"const\\\",\\\"uniform\\\",\\\"varying\\\",\\\"break\\\",\\\"continue\\\",\\\"do\\\",\\\"for\\\",\\\"while\\\",\\\"if\\\",\\\"else\\\",\\\"in\\\",\\\"out\\\",\\\"inout\\\",\\\"float\\\",\\\"int\\\",\\\"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\\\"]},{}],390:[function(t,e,r){e.exports=[\\\"<<=\\\",\\\">>=\\\",\\\"++\\\",\\\"--\\\",\\\"<<\\\",\\\">>\\\",\\\"<=\\\",\\\">=\\\",\\\"==\\\",\\\"!=\\\",\\\"&&\\\",\\\"||\\\",\\\"+=\\\",\\\"-=\\\",\\\"*=\\\",\\\"/=\\\",\\\"%=\\\",\\\"&=\\\",\\\"^^\\\",\\\"^=\\\",\\\"|=\\\",\\\"(\\\",\\\")\\\",\\\"[\\\",\\\"]\\\",\\\".\\\",\\\"!\\\",\\\"~\\\",\\\"*\\\",\\\"/\\\",\\\"%\\\",\\\"+\\\",\\\"-\\\",\\\"<\\\",\\\">\\\",\\\"&\\\",\\\"^\\\",\\\"|\\\",\\\"?\\\",\\\":\\\",\\\"=\\\",\\\",\\\",\\\";\\\",\\\"{\\\",\\\"}\\\"]},{}],391:[function(t,e,r){var n=t(\\\"./index\\\");e.exports=function(t,e){var r=n(e),i=[];return i=(i=i.concat(r(t))).concat(r(null))}},{\\\"./index\\\":385}],392:[function(t,e,r){e.exports=function(t){\\\"string\\\"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n<t.length-1;n++)r.push(t[n],e[n]||\\\"\\\");return r.push(t[n]),r.join(\\\"\\\")}},{}],393:[function(t,e,r){(function(r){\\\"use strict\\\";var n,i=t(\\\"is-browser\\\");n=\\\"function\\\"==typeof r.matchMedia?!r.matchMedia(\\\"(hover: none)\\\").matches:i,e.exports=n}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"is-browser\\\":400}],394:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"is-browser\\\");e.exports=n&&function(){var t=!1;try{var e=Object.defineProperty({},\\\"passive\\\",{get:function(){t=!0}});window.addEventListener(\\\"test\\\",null,e),window.removeEventListener(\\\"test\\\",null,e)}catch(e){t=!1}return t}()},{\\\"is-browser\\\":400}],395:[function(t,e,r){r.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<<s)-1,c=l>>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},r.write=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<<c)-1,f=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*g}},{}],396:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=t.length;if(0===r)throw new Error(\\\"Must have at least d+1 points\\\");var i=t[0].length;if(r<=i)throw new Error(\\\"Must input at least d+1 points\\\");var o=t.slice(0,i+1),s=n.apply(void 0,o);if(0===s)throw new Error(\\\"Input not in general position\\\");for(var l=new Array(i+1),u=0;u<=i;++u)l[u]=u;s<0&&(l[0]=1,l[1]=0);for(var f=new a(l,new Array(i+1),!1),h=f.adjacent,p=new Array(i+2),u=0;u<=i;++u){for(var d=l.slice(),g=0;g<=i;++g)g===u&&(d[g]=-1);var v=d[0];d[0]=d[1],d[1]=v;var m=new a(d,new Array(i+1),!0);h[u]=m,p[u]=m}p[i+1]=f;for(var u=0;u<=i;++u)for(var d=h[u].vertices,y=h[u].adjacent,g=0;g<=i;++g){var x=d[g];if(x<0)y[g]=f;else for(var b=0;b<=i;++b)h[b].vertices.indexOf(x)<0&&(y[g]=h[b])}for(var _=new c(i,o,p),w=!!e,u=i+1;u<r;++u)_.insert(t[u],w);return _.boundary()};var n=t(\\\"robust-orientation\\\"),i=t(\\\"simplicial-complex\\\").compareCells;function a(t,e,r){this.vertices=t,this.adjacent=e,this.boundary=r,this.lastVisited=-1}function o(t,e,r){this.vertices=t,this.cell=e,this.index=r}function s(t,e){return i(t.vertices,e.vertices)}a.prototype.flip=function(){var t=this.vertices[0];this.vertices[0]=this.vertices[1],this.vertices[1]=t;var e=this.adjacent[0];this.adjacent[0]=this.adjacent[1],this.adjacent[1]=e};var l=[];function c(t,e,r){this.dimension=t,this.vertices=e,this.simplices=r,this.interior=r.filter(function(t){return!t.boundary}),this.tuple=new Array(t+1);for(var i=0;i<=t;++i)this.tuple[i]=this.vertices[i];var a=l[t];a||(a=l[t]=function(t){for(var e=[\\\"function orient(){var tuple=this.tuple;return test(\\\"],r=0;r<=t;++r)r>0&&e.push(\\\",\\\"),e.push(\\\"tuple[\\\",r,\\\"]\\\");e.push(\\\")}return orient\\\");var i=new Function(\\\"test\\\",e.join(\\\"\\\")),a=n[t+1];return a||(a=n),i(a)}(t)),this.orient=a}var u=c.prototype;u.handleBoundaryDegeneracy=function(t,e){var r=this.dimension,n=this.vertices.length-1,i=this.tuple,a=this.vertices,o=[t];for(t.lastVisited=-n;o.length>0;){(t=o.pop()).vertices;for(var s=t.adjacent,l=0;l<=r;++l){var c=s[l];if(c.boundary&&!(c.lastVisited<=-n)){for(var u=c.vertices,f=0;f<=r;++f){var h=u[f];i[f]=h<0?e:a[h]}var p=this.orient();if(p>0)return c;c.lastVisited=-n,0===p&&o.push(c)}}}return null},u.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,c=s.adjacent,u=0;u<=n;++u)a[u]=i[l[u]];s.lastVisited=r;for(u=0;u<=n;++u){var f=c[u];if(!(f.lastVisited>=r)){var h=a[u];a[u]=t;var p=this.orient();if(a[u]=h,p<0){s=f;continue t}f.boundary?f.lastVisited=-r:f.lastVisited=r}}return}return s},u.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,l=this.tuple,c=this.interior,u=this.simplices,f=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,c.push(e);for(var h=[];f.length>0;){var p=(e=f.pop()).vertices,d=e.adjacent,g=p.indexOf(r);if(!(g<0))for(var v=0;v<=n;++v)if(v!==g){var m=d[v];if(m.boundary&&!(m.lastVisited>=r)){var y=m.vertices;if(m.lastVisited!==-r){for(var x=0,b=0;b<=n;++b)y[b]<0?(x=b,l[b]=t):l[b]=i[y[b]];if(this.orient()>0){y[x]=r,m.boundary=!1,c.push(m),f.push(m),m.lastVisited=r;continue}m.lastVisited=-r}var _=m.adjacent,w=p.slice(),k=d.slice(),M=new a(w,k,!0);u.push(M);var A=_.indexOf(e);if(!(A<0)){_[A]=M,k[g]=m,w[v]=-1,k[v]=e,d[v]=M,M.flip();for(b=0;b<=n;++b){var T=w[b];if(!(T<0||T===r)){for(var S=new Array(n-1),E=0,C=0;C<=n;++C){var L=w[C];L<0||C===b||(S[E++]=L)}h.push(new o(S,M,b))}}}}}}h.sort(s);for(v=0;v+1<h.length;v+=2){var z=h[v],O=h[v+1],I=z.index,P=O.index;I<0||P<0||(z.cell.adjacent[z.index]=O.cell,O.cell.adjacent[O.index]=z.cell)}},u.insert=function(t,e){var r=this.vertices;r.push(t);var n=this.walk(t,e);if(n){for(var i=this.dimension,a=this.tuple,o=0;o<=i;++o){var s=n.vertices[o];a[o]=s<0?t:r[s]}var l=this.orient(a);l<0||(0!==l||(n=this.handleBoundaryDegeneracy(n,t)))&&this.addPeaks(t,n)}},u.boundary=function(){for(var t=this.dimension,e=[],r=this.simplices,n=r.length,i=0;i<n;++i){var a=r[i];if(a.boundary){for(var o=new Array(t),s=a.vertices,l=0,c=0,u=0;u<=t;++u)s[u]>=0?o[l++]=s[u]:c=1&u;if(c===(1&t)){var f=o[0];o[0]=o[1],o[1]=f}e.push(o)}}return e}},{\\\"robust-orientation\\\":486,\\\"simplicial-complex\\\":496}],397:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\"),i=0,a=1;function o(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}e.exports=function(t){if(!t||0===t.length)return new x(null);return new x(y(t))};var s=o.prototype;function l(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function c(t,e){var r=y(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function u(t,e){var r=t.intervals([]);r.push(e),c(t,r)}function f(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?i:(r.splice(n,1),c(t,r),a)}function h(t,e,r){for(var n=0;n<t.length&&t[n][0]<=e;++n){var i=r(t[n]);if(i)return i}}function p(t,e,r){for(var n=t.length-1;n>=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function d(t,e){for(var r=0;r<t.length;++r){var n=e(t[r]);if(n)return n}}function g(t,e){return t-e}function v(t,e){var r=t[0]-e[0];return r||t[1]-e[1]}function m(t,e){var r=t[1]-e[1];return r||t[0]-e[0]}function y(t){if(0===t.length)return null;for(var e=[],r=0;r<t.length;++r)e.push(t[r][0],t[r][1]);e.sort(g);var n=e[e.length>>1],i=[],a=[],s=[];for(r=0;r<t.length;++r){var l=t[r];l[1]<n?i.push(l):n<l[0]?a.push(l):s.push(l)}var c=s,u=s.slice();return c.sort(v),u.sort(m),new o(n,y(i),y(a),c,u)}function x(t){this.root=t}s.intervals=function(t){return t.push.apply(t,this.leftPoints),this.left&&this.left.intervals(t),this.right&&this.right.intervals(t),t},s.insert=function(t){var e=this.count-this.leftPoints.length;if(this.count+=1,t[1]<this.mid)this.left?4*(this.left.count+1)>3*(e+1)?u(this,t):this.left.insert(t):this.left=y([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?u(this,t):this.right.insert(t):this.right=y([t]);else{var r=n.ge(this.leftPoints,t,v),i=n.ge(this.rightPoints,t,m);this.leftPoints.splice(r,0,t),this.rightPoints.splice(i,0,t)}},s.remove=function(t){var e=this.count-this.leftPoints;if(t[1]<this.mid)return this.left?4*(this.right?this.right.count:0)>3*(e-1)?f(this,t):2===(c=this.left.remove(t))?(this.left=null,this.count-=1,a):(c===a&&(this.count-=1),c):i;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?f(this,t):2===(c=this.right.remove(t))?(this.right=null,this.count-=1,a):(c===a&&(this.count-=1),c):i;if(1===this.count)return this.leftPoints[0]===t?2:i;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,o=this.left;o.right;)r=o,o=o.right;if(r===this)o.right=this.right;else{var s=this.left,c=this.right;r.count-=o.count,r.right=o.left,o.left=s,o.right=c}l(this,o),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?l(this,this.left):l(this,this.right);return a}for(s=n.ge(this.leftPoints,t,v);s<this.leftPoints.length&&this.leftPoints[s][0]===t[0];++s)if(this.leftPoints[s]===t){this.count-=1,this.leftPoints.splice(s,1);for(c=n.ge(this.rightPoints,t,m);c<this.rightPoints.length&&this.rightPoints[c][1]===t[1];++c)if(this.rightPoints[c]===t)return this.rightPoints.splice(c,1),a}return i},s.queryPoint=function(t,e){if(t<this.mid){if(this.left)if(r=this.left.queryPoint(t,e))return r;return h(this.leftPoints,t,e)}if(t>this.mid){var r;if(this.right)if(r=this.right.queryPoint(t,e))return r;return p(this.rightPoints,t,e)}return d(this.leftPoints,e)},s.queryInterval=function(t,e,r){var n;if(t<this.mid&&this.left&&(n=this.left.queryInterval(t,e,r)))return n;if(e>this.mid&&this.right&&(n=this.right.queryInterval(t,e,r)))return n;return e<this.mid?h(this.leftPoints,e,r):t>this.mid?p(this.rightPoints,t,r):d(this.leftPoints,r)};var b=x.prototype;b.insert=function(t){this.root?this.root.insert(t):this.root=new o(t[0],null,null,[t],[t])},b.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),e!==i}return!1},b.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},b.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(b,\\\"count\\\",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(b,\\\"intervals\\\",{get:function(){return this.root?this.root.intervals([]):[]}})},{\\\"binary-search-bounds\\\":79}],398:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){e=e||new Array(t.length);for(var r=0;r<t.length;++r)e[t[r]]=r;return e}},{}],399:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=r;return e}},{}],400:[function(t,e,r){e.exports=!0},{}],401:[function(t,e,r){function n(t){return!!t.constructor&&\\\"function\\\"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}e.exports=function(t){return null!=t&&(n(t)||function(t){return\\\"function\\\"==typeof t.readFloatLE&&\\\"function\\\"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},{}],402:[function(t,e,r){\\\"use strict\\\";e.exports=\\\"undefined\\\"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\\\\//.test(navigator.appVersion))},{}],403:[function(t,e,r){\\\"use strict\\\";e.exports=a,e.exports.isMobile=a;var n=/(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(4|6)0|symbian|treo|up\\\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,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(4|6)0|symbian|treo|up\\\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function a(t){t||(t={});var e=t.ua;return e||\\\"undefined\\\"==typeof navigator||(e=navigator.userAgent),e&&e.headers&&\\\"string\\\"==typeof e.headers[\\\"user-agent\\\"]&&(e=e.headers[\\\"user-agent\\\"]),\\\"string\\\"==typeof e&&(t.tablet?i.test(e):n.test(e))}},{}],404:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=typeof t;return null!==t&&(\\\"object\\\"===e||\\\"function\\\"===e)}},{}],405:[function(t,e,r){\\\"use strict\\\";var n=Object.prototype.toString;e.exports=function(t){var e;return\\\"[object Object]\\\"===n.call(t)&&(null===(e=Object.getPrototypeOf(t))||e===Object.getPrototypeOf({}))}},{}],406:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e,r=t.length,n=0;n<r;n++)if(((e=t.charCodeAt(n))<9||e>13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},{}],407:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return\\\"string\\\"==typeof t&&(t=t.trim(),!!(/^[mzlhvcsqta]\\\\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\\\\dz]$/i.test(t)&&t.length>4))}},{}],408:[function(t,e,r){e.exports=function(t,e,r){return t*(1-r)+e*r}},{}],409:[function(t,e,r){(function(t){!function(t,n){\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?e.exports=n():t.mapboxgl=n()}(this,function(){\\\"use strict\\\";var e,r,n;function i(t,i){if(e)if(r){var a=\\\"var sharedChunk = {}; (\\\"+e+\\\")(sharedChunk); (\\\"+r+\\\")(sharedChunk);\\\",o={};e(o),(n=i(o)).workerUrl=window.URL.createObjectURL(new Blob([a],{type:\\\"text/javascript\\\"}))}else r=i;else e=i}return i(0,function(e){var r=\\\"undefined\\\"!=typeof window?window:\\\"undefined\\\"!=typeof t?t:\\\"undefined\\\"!=typeof self?self:{};function n(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\\\"default\\\")?t.default:t}function i(t,e){return t(e={exports:{}},e.exports),e.exports}var a=o;function o(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}o.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},o.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},o.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},o.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)<e)return i;var s=this.sampleCurveDerivativeX(i);if(Math.abs(s)<1e-6)break;i-=a/s}if((i=t)<(r=0))return r;if(i>(n=1))return n;for(;r<n;){if(a=this.sampleCurveX(i),Math.abs(a-t)<e)return i;t>a?r=i:n=i,i=.5*(n-r)+r}return i},o.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var s=function(t,e,r){this.column=t,this.row=e,this.zoom=r};s.prototype.clone=function(){return new s(this.column,this.row,this.zoom)},s.prototype.zoomTo=function(t){return this.clone()._zoomTo(t)},s.prototype.sub=function(t){return this.clone()._sub(t)},s.prototype._zoomTo=function(t){var e=Math.pow(2,t-this.zoom);return this.column*=e,this.row*=e,this.zoom=t,this},s.prototype._sub=function(t){return t=t.zoomTo(this.zoom),this.column-=t.column,this.row-=t.row,this};var l=c;function c(t,e){this.x=t,this.y=e}function u(t,e,r,n){var i=new a(t,e,r,n);return function(t){return i.solve(t)}}c.prototype={clone:function(){return new c(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},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(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=e*this.x-r*this.y,i=r*this.x+e*this.y;return this.x=n,this.y=i,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.x+r*(this.x-e.x)-n*(this.y-e.y),a=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=i,this.y=a,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},c.convert=function(t){return t instanceof c?t:Array.isArray(t)?new c(t[0],t[1]):t};var f=u(.25,.1,.25,1);function h(t,e,r){return Math.min(r,Math.max(e,t))}function p(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n<i.length;n+=1){var a=i[n];for(var o in a)t[o]=a[o]}return t}var d=1;function g(t,e){t.forEach(function(t){e[t]&&(e[t]=e[t].bind(e))})}function v(t,e){return-1!==t.indexOf(e,t.length-e.length)}function m(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function y(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function x(t){return Array.isArray(t)?t.map(x):\\\"object\\\"==typeof t&&t?m(t,x):t}var b={};function _(t){b[t]||(\\\"undefined\\\"!=typeof console&&console.warn(t),b[t]=!0)}function w(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function k(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r<n;i=r++)a=t[r],e+=((o=t[i]).x-a.x)*(a.y+o.y);return e}var M={Unknown:\\\"Unknown\\\",Style:\\\"Style\\\",Source:\\\"Source\\\",Tile:\\\"Tile\\\",Glyphs:\\\"Glyphs\\\",SpriteImage:\\\"SpriteImage\\\",SpriteJSON:\\\"SpriteJSON\\\",Image:\\\"Image\\\"};\\\"function\\\"==typeof Object.freeze&&Object.freeze(M);var A=function(t){function e(e,r,n){t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.name+\\\": \\\"+this.message+\\\" (\\\"+this.status+\\\"): \\\"+this.url},e}(Error);function T(t){var e=new self.XMLHttpRequest;for(var r in e.open(\\\"GET\\\",t.url,!0),t.headers)e.setRequestHeader(r,t.headers[r]);return e.withCredentials=\\\"include\\\"===t.credentials,e}var S=function(t,e){var r=T(t);return r.responseType=\\\"arraybuffer\\\",r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){var n=r.response;if(0===n.byteLength&&200===r.status)return e(new Error(\\\"http status 200 returned without content.\\\"));r.status>=200&&r.status<300&&r.response?e(null,{data:n,cacheControl:r.getResponseHeader(\\\"Cache-Control\\\"),expires:r.getResponseHeader(\\\"Expires\\\")}):e(new A(r.statusText,r.status,t.url))},r.send(),r};function E(t,e,r){r[t]=r[t]||[],r[t].push(e)}function C(t,e,r){if(r&&r[t]){var n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1)}}var L=function(t,e){void 0===e&&(e={}),p(this,e),this.type=t},z=function(t){function e(e,r){void 0===r&&(r={}),t.call(this,\\\"error\\\",p({error:e},r))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(L),O=function(){};O.prototype.on=function(t,e){return this._listeners=this._listeners||{},E(t,e,this._listeners),this},O.prototype.off=function(t,e){return C(t,e,this._listeners),C(t,e,this._oneTimeListeners),this},O.prototype.once=function(t,e){return this._oneTimeListeners=this._oneTimeListeners||{},E(t,e,this._oneTimeListeners),this},O.prototype.fire=function(t){\\\"string\\\"==typeof t&&(t=new L(t,arguments[1]||{}));var e=t.type;if(this.listens(e)){t.target=this;for(var r=0,n=this._listeners&&this._listeners[e]?this._listeners[e].slice():[];r<n.length;r+=1)n[r].call(this,t);for(var i=0,a=this._oneTimeListeners&&this._oneTimeListeners[e]?this._oneTimeListeners[e].slice():[];i<a.length;i+=1){var o=a[i];C(e,o,this._oneTimeListeners),o.call(this,t)}var s=this._eventedParent;s&&(p(t,\\\"function\\\"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),s.fire(t))}else v(e,\\\"error\\\")?console.error(t&&t.error||t||\\\"Empty error event\\\"):v(e,\\\"warning\\\")&&console.warn(t&&t.warning||t||\\\"Empty warning event\\\");return this},O.prototype.listens=function(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},O.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var I={$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.0511,180,85.0511]},minzoom:{type:\\\"number\\\",default:0},maxzoom:{type:\\\"number\\\",default:22},attribution:{type:\\\"string\\\"},\\\"*\\\":{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.0511,180,85.0511]},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.0511,180,85.0511]},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},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\\\"},lineMetrics:{type:\\\"boolean\\\",default:!1}},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\\\"}},layout_fill:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_circle:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_heatmap:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_line:{\\\"line-cap\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{butt:{},round:{},square:{}},default:\\\"butt\\\"},\\\"line-join\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{bevel:{},round:{},miter:{}},default:\\\"miter\\\"},\\\"line-miter-limit\\\":{type:\\\"number\\\",default:2,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[{\\\"line-join\\\":\\\"miter\\\"}]},\\\"line-round-limit\\\":{type:\\\"number\\\",default:1.05,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[{\\\"line-join\\\":\\\"round\\\"}]},visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_symbol:{\\\"symbol-placement\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{point:{},line:{}},default:\\\"point\\\"},\\\"symbol-spacing\\\":{type:\\\"number\\\",default:250,minimum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,units:\\\"pixels\\\",requires:[{\\\"symbol-placement\\\":\\\"line\\\"}]},\\\"symbol-avoid-edges\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1},\\\"icon-allow-overlap\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"icon-image\\\"]},\\\"icon-ignore-placement\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"icon-image\\\"]},\\\"icon-optional\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"icon-image\\\",\\\"text-field\\\"]},\\\"icon-rotation-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{},auto:{}},default:\\\"auto\\\",requires:[\\\"icon-image\\\"]},\\\"icon-size\\\":{type:\\\"number\\\",default:1,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,units:\\\"factor of the original icon size\\\",requires:[\\\"icon-image\\\"]},\\\"icon-text-fit\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{none:{},width:{},height:{},both:{}},default:\\\"none\\\",requires:[\\\"icon-image\\\",\\\"text-field\\\"]},\\\"icon-text-fit-padding\\\":{type:\\\"array\\\",value:\\\"number\\\",length:4,default:[0,0,0,0],units:\\\"pixels\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[\\\"icon-image\\\",\\\"text-field\\\",{\\\"icon-text-fit\\\":[\\\"both\\\",\\\"width\\\",\\\"height\\\"]}]},\\\"icon-image\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,tokens:!0},\\\"icon-rotate\\\":{type:\\\"number\\\",default:0,period:360,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,units:\\\"degrees\\\",requires:[\\\"icon-image\\\"]},\\\"icon-padding\\\":{type:\\\"number\\\",default:2,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,units:\\\"pixels\\\",requires:[\\\"icon-image\\\"]},\\\"icon-keep-upright\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"icon-image\\\",{\\\"icon-rotation-alignment\\\":\\\"map\\\"},{\\\"symbol-placement\\\":\\\"line\\\"}]},\\\"icon-offset\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"icon-image\\\"]},\\\"icon-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{center:{},left:{},right:{},top:{},bottom:{},\\\"top-left\\\":{},\\\"top-right\\\":{},\\\"bottom-left\\\":{},\\\"bottom-right\\\":{}},default:\\\"center\\\",requires:[\\\"icon-image\\\"]},\\\"icon-pitch-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{},auto:{}},default:\\\"auto\\\",requires:[\\\"icon-image\\\"]},\\\"text-pitch-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{},auto:{}},default:\\\"auto\\\",requires:[\\\"text-field\\\"]},\\\"text-rotation-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{},auto:{}},default:\\\"auto\\\",requires:[\\\"text-field\\\"]},\\\"text-field\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:\\\"\\\",tokens:!0},\\\"text-font\\\":{type:\\\"array\\\",value:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:[\\\"Open Sans Regular\\\",\\\"Arial Unicode MS Regular\\\"],requires:[\\\"text-field\\\"]},\\\"text-size\\\":{type:\\\"number\\\",default:16,minimum:0,units:\\\"pixels\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-max-width\\\":{type:\\\"number\\\",default:10,minimum:0,units:\\\"ems\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-line-height\\\":{type:\\\"number\\\",default:1.2,units:\\\"ems\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-letter-spacing\\\":{type:\\\"number\\\",default:0,units:\\\"ems\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-justify\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{left:{},center:{},right:{}},default:\\\"center\\\",requires:[\\\"text-field\\\"]},\\\"text-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{center:{},left:{},right:{},top:{},bottom:{},\\\"top-left\\\":{},\\\"top-right\\\":{},\\\"bottom-left\\\":{},\\\"bottom-right\\\":{}},default:\\\"center\\\",requires:[\\\"text-field\\\"]},\\\"text-max-angle\\\":{type:\\\"number\\\",default:45,units:\\\"degrees\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[\\\"text-field\\\",{\\\"symbol-placement\\\":\\\"line\\\"}]},\\\"text-rotate\\\":{type:\\\"number\\\",default:0,period:360,units:\\\"degrees\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-padding\\\":{type:\\\"number\\\",default:2,minimum:0,units:\\\"pixels\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-keep-upright\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!0,requires:[\\\"text-field\\\",{\\\"text-rotation-alignment\\\":\\\"map\\\"},{\\\"symbol-placement\\\":\\\"line\\\"}]},\\\"text-transform\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{none:{},uppercase:{},lowercase:{}},default:\\\"none\\\",requires:[\\\"text-field\\\"]},\\\"text-offset\\\":{type:\\\"array\\\",value:\\\"number\\\",units:\\\"ems\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,length:2,default:[0,0],requires:[\\\"text-field\\\"]},\\\"text-allow-overlap\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"text-field\\\"]},\\\"text-ignore-placement\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"text-field\\\"]},\\\"text-optional\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"text-field\\\",\\\"icon-image\\\"]},visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_raster:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_hillshade:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},filter:{type:\\\"array\\\",value:\\\"*\\\"},filter_operator:{type:\\\"enum\\\",values:{\\\"==\\\":{},\\\"!=\\\":{},\\\">\\\":{},\\\">=\\\":{},\\\"<\\\":{},\\\"<=\\\":{},in:{},\\\"!in\\\":{},all:{},any:{},none:{},has:{},\\\"!has\\\":{}}},geometry_type:{type:\\\"enum\\\",values:{Point:{},LineString:{},Polygon:{}}},function_stop:{type:\\\"array\\\",minimum:0,maximum:22,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\\\"},case:{group:\\\"Decision\\\"},match:{group:\\\"Decision\\\"},coalesce:{group:\\\"Decision\\\"},step:{group:\\\"Ramps, scales, curves\\\"},interpolate:{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\\\"},\\\"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\\\"},\\\"geometry-type\\\":{group:\\\"Feature data\\\"},id:{group:\\\"Feature data\\\"},zoom:{group:\\\"Zoom\\\"},\\\"heatmap-density\\\":{group:\\\"Heatmap\\\"},\\\"line-progress\\\":{group:\\\"Heatmap\\\"},\\\"+\\\":{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\\\"},\\\"==\\\":{group:\\\"Decision\\\"},\\\"!=\\\":{group:\\\"Decision\\\"},\\\">\\\":{group:\\\"Decision\\\"},\\\"<\\\":{group:\\\"Decision\\\"},\\\">=\\\":{group:\\\"Decision\\\"},\\\"<=\\\":{group:\\\"Decision\\\"},all:{group:\\\"Decision\\\"},any:{group:\\\"Decision\\\"},\\\"!\\\":{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:{}},transition:!1,\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,function:\\\"piecewise-constant\\\"},position:{type:\\\"array\\\",default:[1.15,210,30],length:3,value:\\\"number\\\",transition:!0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1},color:{type:\\\"color\\\",default:\\\"#ffffff\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,transition:!0},intensity:{type:\\\"number\\\",default:.5,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,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\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!0},\\\"fill-opacity\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:1,minimum:0,maximum:1,transition:!0},\\\"fill-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"fill-pattern\\\"}]},\\\"fill-outline-color\\\":{type:\\\"color\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"fill-pattern\\\"},{\\\"fill-antialias\\\":!0}]},\\\"fill-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"fill-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"fill-translate\\\"]},\\\"fill-pattern\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,transition:!0}},paint_line:{\\\"line-opacity\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:1,minimum:0,maximum:1,transition:!0},\\\"line-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"line-pattern\\\"}]},\\\"line-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"line-translate\\\"]},\\\"line-width\\\":{type:\\\"number\\\",default:1,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-gap-width\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-offset\\\":{type:\\\"number\\\",default:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-blur\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-dasharray\\\":{type:\\\"array\\\",value:\\\"number\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,minimum:0,transition:!0,units:\\\"line widths\\\",requires:[{\\\"!\\\":\\\"line-pattern\\\"}]},\\\"line-pattern\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"line-gradient\\\":{type:\\\"color\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!1,\\\"property-function\\\":!1,transition:!1,requires:[{\\\"!\\\":\\\"line-dasharray\\\"},{\\\"!\\\":\\\"line-pattern\\\"},{source:\\\"geojson\\\",has:{lineMetrics:!0}}]}},paint_circle:{\\\"circle-radius\\\":{type:\\\"number\\\",default:5,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"circle-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0},\\\"circle-blur\\\":{type:\\\"number\\\",default:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0},\\\"circle-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0},\\\"circle-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"circle-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"circle-translate\\\"]},\\\"circle-pitch-scale\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\"},\\\"circle-pitch-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"viewport\\\"},\\\"circle-stroke-width\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"circle-stroke-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0},\\\"circle-stroke-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0}},paint_heatmap:{\\\"heatmap-radius\\\":{type:\\\"number\\\",default:30,minimum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"heatmap-weight\\\":{type:\\\"number\\\",default:1,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!1},\\\"heatmap-intensity\\\":{type:\\\"number\\\",default:1,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,transition:!0},\\\"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\\\"],function:\\\"interpolated\\\",\\\"zoom-function\\\":!1,\\\"property-function\\\":!1,transition:!1},\\\"heatmap-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,transition:!0}},paint_symbol:{\\\"icon-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"icon-image\\\"]},\\\"icon-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"icon-image\\\"]},\\\"icon-halo-color\\\":{type:\\\"color\\\",default:\\\"rgba(0, 0, 0, 0)\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"icon-image\\\"]},\\\"icon-halo-width\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"icon-image\\\"]},\\\"icon-halo-blur\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"icon-image\\\"]},\\\"icon-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"icon-image\\\"]},\\\"icon-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"icon-image\\\",\\\"icon-translate\\\"]},\\\"text-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"text-field\\\"]},\\\"text-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"text-field\\\"]},\\\"text-halo-color\\\":{type:\\\"color\\\",default:\\\"rgba(0, 0, 0, 0)\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"text-field\\\"]},\\\"text-halo-width\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"text-field\\\"]},\\\"text-halo-blur\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"text-field\\\"]},\\\"text-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"text-field\\\"]},\\\"text-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"text-field\\\",\\\"text-translate\\\"]}},paint_raster:{\\\"raster-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"raster-hue-rotate\\\":{type:\\\"number\\\",default:0,period:360,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"degrees\\\"},\\\"raster-brightness-min\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,default:0,minimum:0,maximum:1,transition:!0},\\\"raster-brightness-max\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,default:1,minimum:0,maximum:1,transition:!0},\\\"raster-saturation\\\":{type:\\\"number\\\",default:0,minimum:-1,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"raster-contrast\\\":{type:\\\"number\\\",default:0,minimum:-1,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"raster-fade-duration\\\":{type:\\\"number\\\",default:300,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!1,units:\\\"milliseconds\\\"}},paint_hillshade:{\\\"hillshade-illumination-direction\\\":{type:\\\"number\\\",default:335,minimum:0,maximum:359,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!1},\\\"hillshade-illumination-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"viewport\\\"},\\\"hillshade-exaggeration\\\":{type:\\\"number\\\",default:.5,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"hillshade-shadow-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"hillshade-highlight-color\\\":{type:\\\"color\\\",default:\\\"#FFFFFF\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"hillshade-accent-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0}},paint_background:{\\\"background-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"background-pattern\\\"}]},\\\"background-pattern\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"background-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0}},transition:{duration:{type:\\\"number\\\",default:300,minimum:0,units:\\\"milliseconds\\\"},delay:{type:\\\"number\\\",default:0,minimum:0,units:\\\"milliseconds\\\"}},\\\"layout_fill-extrusion\\\":{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},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}},\\\"paint_fill-extrusion\\\":{\\\"fill-extrusion-opacity\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,default:1,minimum:0,maximum:1,transition:!0},\\\"fill-extrusion-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"fill-extrusion-pattern\\\"}]},\\\"fill-extrusion-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"fill-extrusion-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"fill-extrusion-translate\\\"]},\\\"fill-extrusion-pattern\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"fill-extrusion-height\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:0,minimum:0,units:\\\"meters\\\",transition:!0},\\\"fill-extrusion-base\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:0,minimum:0,units:\\\"meters\\\",transition:!0,requires:[\\\"fill-extrusion-height\\\"]}}},P=function(t,e,r,n){this.message=(t?t+\\\": \\\":\\\"\\\")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__)};function D(t){var e=t.key,r=t.value;return r?[new P(e,r,\\\"constants have been deprecated as of v8\\\")]:[]}function R(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n<i.length;n+=1){var a=i[n];for(var o in a)t[o]=a[o]}return t}function B(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function F(t){return Array.isArray(t)?t.map(F):B(t)}var N=function(t){function e(e,r){t.call(this,r),this.message=r,this.key=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error),j=function(t,e){void 0===e&&(e=[]),this.parent=t,this.bindings={};for(var r=0,n=e;r<n.length;r+=1){var i=n[r],a=i[0],o=i[1];this.bindings[a]=o}};j.prototype.concat=function(t){return new j(this,t)},j.prototype.get=function(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+\\\" not found in scope.\\\")},j.prototype.has=function(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)};var V={kind:\\\"null\\\"},U={kind:\\\"number\\\"},q={kind:\\\"string\\\"},H={kind:\\\"boolean\\\"},G={kind:\\\"color\\\"},W={kind:\\\"object\\\"},Y={kind:\\\"value\\\"},X={kind:\\\"collator\\\"};function Z(t,e){return{kind:\\\"array\\\",itemType:t,N:e}}function $(t){if(\\\"array\\\"===t.kind){var e=$(t.itemType);return\\\"number\\\"==typeof t.N?\\\"array<\\\"+e+\\\", \\\"+t.N+\\\">\\\":\\\"value\\\"===t.itemType.kind?\\\"array\\\":\\\"array<\\\"+e+\\\">\\\"}return t.kind}var J=[V,U,q,H,G,W,Z(Y)];function K(t,e){if(\\\"error\\\"===e.kind)return null;if(\\\"array\\\"===t.kind){if(\\\"array\\\"===e.kind&&!K(t.itemType,e.itemType)&&(\\\"number\\\"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if(\\\"value\\\"===t.kind)for(var r=0,n=J;r<n.length;r+=1)if(!K(n[r],e))return null}return\\\"Expected \\\"+$(t)+\\\" but found \\\"+$(e)+\\\" instead.\\\"}var Q=i(function(t,e){var r={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function n(t){return(t=Math.round(t))<0?0:t>255?255:t}function i(t){return t<0?0:t>1?1:t}function a(t){return\\\"%\\\"===t[t.length-1]?n(parseFloat(t)/100*255):n(parseInt(t))}function o(t){return\\\"%\\\"===t[t.length-1]?i(parseFloat(t)/100):i(parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,i=t.replace(/ /g,\\\"\\\").toLowerCase();if(i in r)return r[i].slice();if(\\\"#\\\"===i[0])return 4===i.length?(e=parseInt(i.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&(e=parseInt(i.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=i.indexOf(\\\"(\\\"),c=i.indexOf(\\\")\\\");if(-1!==l&&c+1===i.length){var u=i.substr(0,l),f=i.substr(l+1,c-(l+1)).split(\\\",\\\"),h=1;switch(u){case\\\"rgba\\\":if(4!==f.length)return null;h=o(f.pop());case\\\"rgb\\\":return 3!==f.length?null:[a(f[0]),a(f[1]),a(f[2]),h];case\\\"hsla\\\":if(4!==f.length)return null;h=o(f.pop());case\\\"hsl\\\":if(3!==f.length)return null;var p=(parseFloat(f[0])%360+360)%360/360,d=o(f[1]),g=o(f[2]),v=g<=.5?g*(d+1):g+d-g*d,m=2*g-v;return[n(255*s(m,v,p+1/3)),n(255*s(m,v,p)),n(255*s(m,v,p-1/3)),h];default:return null}}return null}}catch(t){}}).parseCSSColor,tt=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};tt.parse=function(t){if(t){if(t instanceof tt)return t;if(\\\"string\\\"==typeof t){var e=Q(t);if(e)return new tt(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},tt.prototype.toString=function(){var t=this.toArray(),e=t[0],r=t[1],n=t[2],i=t[3];return\\\"rgba(\\\"+Math.round(e)+\\\",\\\"+Math.round(r)+\\\",\\\"+Math.round(n)+\\\",\\\"+i+\\\")\\\"},tt.prototype.toArray=function(){var t=this.r,e=this.g,r=this.b,n=this.a;return 0===n?[0,0,0,0]:[255*t/n,255*e/n,255*r/n,n]},tt.black=new tt(0,0,0,1),tt.white=new tt(1,1,1,1),tt.transparent=new tt(0,0,0,0);var et=function(t,e,r){this.sensitivity=t?e?\\\"variant\\\":\\\"case\\\":e?\\\"accent\\\":\\\"base\\\",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\\\"search\\\"})};et.prototype.compare=function(t,e){return this.collator.compare(t,e)},et.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var rt=function(t,e,r){this.type=X,this.locale=r,this.caseSensitive=t,this.diacriticSensitive=e};function nt(t,e,r,n){return\\\"number\\\"==typeof t&&t>=0&&t<=255&&\\\"number\\\"==typeof e&&e>=0&&e<=255&&\\\"number\\\"==typeof r&&r>=0&&r<=255?void 0===n||\\\"number\\\"==typeof n&&n>=0&&n<=1?null:\\\"Invalid rgba value [\\\"+[t,e,r,n].join(\\\", \\\")+\\\"]: 'a' must be between 0 and 1.\\\":\\\"Invalid rgba value [\\\"+(\\\"number\\\"==typeof n?[t,e,r,n]:[t,e,r]).join(\\\", \\\")+\\\"]: 'r', 'g', and 'b' must be between 0 and 255.\\\"}function it(t){if(null===t)return V;if(\\\"string\\\"==typeof t)return q;if(\\\"boolean\\\"==typeof t)return H;if(\\\"number\\\"==typeof t)return U;if(t instanceof tt)return G;if(t instanceof et)return X;if(Array.isArray(t)){for(var e,r=t.length,n=0,i=t;n<i.length;n+=1){var a=it(i[n]);if(e){if(e===a)continue;e=Y;break}e=a}return Z(e||Y,r)}return W}rt.parse=function(t,e){if(2!==t.length)return e.error(\\\"Expected one argument.\\\");var r=t[1];if(\\\"object\\\"!=typeof r||Array.isArray(r))return e.error(\\\"Collator options argument must be an object.\\\");var n=e.parse(void 0!==r[\\\"case-sensitive\\\"]&&r[\\\"case-sensitive\\\"],1,H);if(!n)return null;var i=e.parse(void 0!==r[\\\"diacritic-sensitive\\\"]&&r[\\\"diacritic-sensitive\\\"],1,H);if(!i)return null;var a=null;return r.locale&&!(a=e.parse(r.locale,1,q))?null:new rt(n,i,a)},rt.prototype.evaluate=function(t){return new et(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)},rt.prototype.eachChild=function(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)},rt.prototype.possibleOutputs=function(){return[void 0]},rt.prototype.serialize=function(){var t={};return t[\\\"case-sensitive\\\"]=this.caseSensitive.serialize(),t[\\\"diacritic-sensitive\\\"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),[\\\"collator\\\",t]};var at=function(t,e){this.type=t,this.value=e};at.parse=function(t,e){if(2!==t.length)return e.error(\\\"'literal' expression requires exactly one argument, but found \\\"+(t.length-1)+\\\" instead.\\\");if(!function t(e){if(null===e)return!0;if(\\\"string\\\"==typeof e)return!0;if(\\\"boolean\\\"==typeof e)return!0;if(\\\"number\\\"==typeof e)return!0;if(e instanceof tt)return!0;if(e instanceof et)return!0;if(Array.isArray(e)){for(var r=0,n=e;r<n.length;r+=1)if(!t(n[r]))return!1;return!0}if(\\\"object\\\"==typeof e){for(var i in e)if(!t(e[i]))return!1;return!0}return!1}(t[1]))return e.error(\\\"invalid value\\\");var r=t[1],n=it(r),i=e.expectedType;return\\\"array\\\"!==n.kind||0!==n.N||!i||\\\"array\\\"!==i.kind||\\\"number\\\"==typeof i.N&&0!==i.N||(n=i),new at(n,r)},at.prototype.evaluate=function(){return this.value},at.prototype.eachChild=function(){},at.prototype.possibleOutputs=function(){return[this.value]},at.prototype.serialize=function(){return\\\"array\\\"===this.type.kind||\\\"object\\\"===this.type.kind?[\\\"literal\\\",this.value]:this.value instanceof tt?[\\\"rgba\\\"].concat(this.value.toArray()):this.value};var ot=function(t){this.name=\\\"ExpressionEvaluationError\\\",this.message=t};ot.prototype.toJSON=function(){return this.message};var st={string:q,number:U,boolean:H,object:W},lt=function(t,e){this.type=t,this.args=e};lt.parse=function(t,e){if(t.length<2)return e.error(\\\"Expected at least one argument.\\\");for(var r=t[0],n=st[r],i=[],a=1;a<t.length;a++){var o=e.parse(t[a],a,Y);if(!o)return null;i.push(o)}return new lt(n,i)},lt.prototype.evaluate=function(t){for(var e=0;e<this.args.length;e++){var r=this.args[e].evaluate(t);if(!K(this.type,it(r)))return r;if(e===this.args.length-1)throw new ot(\\\"Expected value to be of type \\\"+$(this.type)+\\\", but found \\\"+$(it(r))+\\\" instead.\\\")}return null},lt.prototype.eachChild=function(t){this.args.forEach(t)},lt.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}));var t},lt.prototype.serialize=function(){return[this.type.kind].concat(this.args.map(function(t){return t.serialize()}))};var ct={string:q,number:U,boolean:H},ut=function(t,e){this.type=t,this.input=e};ut.parse=function(t,e){if(t.length<2||t.length>4)return e.error(\\\"Expected 1, 2, or 3 arguments, but found \\\"+(t.length-1)+\\\" instead.\\\");var r,n;if(t.length>2){var i=t[1];if(\\\"string\\\"!=typeof i||!(i in ct))return e.error('The item type argument of \\\"array\\\" must be one of string, number, boolean',1);r=ct[i]}else r=Y;if(t.length>3){if(\\\"number\\\"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2]))return e.error('The length argument to \\\"array\\\" must be a positive integer literal',2);n=t[2]}var a=Z(r,n),o=e.parse(t[t.length-1],t.length-1,Y);return o?new ut(a,o):null},ut.prototype.evaluate=function(t){var e=this.input.evaluate(t);if(K(this.type,it(e)))throw new ot(\\\"Expected value to be of type \\\"+$(this.type)+\\\", but found \\\"+$(it(e))+\\\" instead.\\\");return e},ut.prototype.eachChild=function(t){t(this.input)},ut.prototype.possibleOutputs=function(){return this.input.possibleOutputs()},ut.prototype.serialize=function(){var t=[\\\"array\\\"],e=this.type.itemType;if(\\\"string\\\"===e.kind||\\\"number\\\"===e.kind||\\\"boolean\\\"===e.kind){t.push(e.kind);var r=this.type.N;\\\"number\\\"==typeof r&&t.push(r)}return t.push(this.input.serialize()),t};var ft={\\\"to-number\\\":U,\\\"to-color\\\":G},ht=function(t,e){this.type=t,this.args=e};ht.parse=function(t,e){if(t.length<2)return e.error(\\\"Expected at least one argument.\\\");for(var r=t[0],n=ft[r],i=[],a=1;a<t.length;a++){var o=e.parse(t[a],a,Y);if(!o)return null;i.push(o)}return new ht(n,i)},ht.prototype.evaluate=function(t){if(\\\"color\\\"===this.type.kind){for(var e,r,n=0,i=this.args;n<i.length;n+=1)if(r=null,\\\"string\\\"==typeof(e=i[n].evaluate(t))){var a=t.parseColor(e);if(a)return a}else if(Array.isArray(e)&&!(r=e.length<3||e.length>4?\\\"Invalid rbga value \\\"+JSON.stringify(e)+\\\": expected an array containing either three or four numeric values.\\\":nt(e[0],e[1],e[2],e[3])))return new tt(e[0]/255,e[1]/255,e[2]/255,e[3]);throw new ot(r||\\\"Could not parse color from value '\\\"+(\\\"string\\\"==typeof e?e:JSON.stringify(e))+\\\"'\\\")}for(var o=null,s=0,l=this.args;s<l.length;s+=1)if(null!==(o=l[s].evaluate(t))){var c=Number(o);if(!isNaN(c))return c}throw new ot(\\\"Could not convert \\\"+JSON.stringify(o)+\\\" to number.\\\")},ht.prototype.eachChild=function(t){this.args.forEach(t)},ht.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}));var t},ht.prototype.serialize=function(){var t=[\\\"to-\\\"+this.type.kind];return this.eachChild(function(e){t.push(e.serialize())}),t};var pt=[\\\"Unknown\\\",\\\"Point\\\",\\\"LineString\\\",\\\"Polygon\\\"],dt=function(){this._parseColorCache={}};dt.prototype.id=function(){return this.feature&&\\\"id\\\"in this.feature?this.feature.id:null},dt.prototype.geometryType=function(){return this.feature?\\\"number\\\"==typeof this.feature.type?pt[this.feature.type]:this.feature.type:null},dt.prototype.properties=function(){return this.feature&&this.feature.properties||{}},dt.prototype.parseColor=function(t){var e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=tt.parse(t)),e};var gt=function(t,e,r,n){this.name=t,this.type=e,this._evaluate=r,this.args=n};function vt(t){if(t instanceof gt){if(\\\"get\\\"===t.name&&1===t.args.length)return!1;if(\\\"has\\\"===t.name&&1===t.args.length)return!1;if(\\\"properties\\\"===t.name||\\\"geometry-type\\\"===t.name||\\\"id\\\"===t.name)return!1;if(/^filter-/.test(t.name))return!1}var e=!0;return t.eachChild(function(t){e&&!vt(t)&&(e=!1)}),e}function mt(t,e){if(t instanceof gt&&e.indexOf(t.name)>=0)return!1;var r=!0;return t.eachChild(function(t){r&&!mt(t,e)&&(r=!1)}),r}gt.prototype.evaluate=function(t){return this._evaluate(t,this.args)},gt.prototype.eachChild=function(t){this.args.forEach(t)},gt.prototype.possibleOutputs=function(){return[void 0]},gt.prototype.serialize=function(){return[this.name].concat(this.args.map(function(t){return t.serialize()}))},gt.parse=function(t,e){var r=t[0],n=gt.definitions[r];if(!n)return e.error('Unknown expression \\\"'+r+'\\\". If you wanted a literal array, use [\\\"literal\\\", [...]].',0);for(var i=Array.isArray(n)?n[0]:n.type,a=Array.isArray(n)?[[n[1],n[2]]]:n.overloads,o=a.filter(function(e){var r=e[0];return!Array.isArray(r)||r.length===t.length-1}),s=[],l=1;l<t.length;l++){var c=t[l],u=void 0;if(1===o.length){var f=o[0][0];u=Array.isArray(f)?f[l-1]:f.type}var h=e.parse(c,1+s.length,u);if(!h)return null;s.push(h)}for(var p=null,d=0,g=o;d<g.length;d+=1){var v=g[d],m=v[0],y=v[1];if(p=new xt(e.registry,e.path,null,e.scope),Array.isArray(m)&&m.length!==s.length)p.error(\\\"Expected \\\"+m.length+\\\" arguments, but found \\\"+s.length+\\\" instead.\\\");else{for(var x=0;x<s.length;x++){var b=Array.isArray(m)?m[x]:m.type,_=s[x];p.concat(x+1).checkSubtype(b,_.type)}if(0===p.errors.length)return new gt(r,i,y,s)}}if(1===o.length)e.errors.push.apply(e.errors,p.errors);else{var w=(o.length?o:a).map(function(t){var e;return e=t[0],Array.isArray(e)?\\\"(\\\"+e.map($).join(\\\", \\\")+\\\")\\\":\\\"(\\\"+$(e.type)+\\\"...)\\\"}).join(\\\" | \\\"),k=s.map(function(t){return $(t.type)}).join(\\\", \\\");e.error(\\\"Expected arguments of type \\\"+w+\\\", but found (\\\"+k+\\\") instead.\\\")}return null},gt.register=function(t,e){for(var r in gt.definitions=e,e)t[r]=gt};var yt=function(t,e){this.type=e.type,this.name=t,this.boundExpression=e};yt.parse=function(t,e){if(2!==t.length||\\\"string\\\"!=typeof t[1])return e.error(\\\"'var' expression requires exactly one string literal argument.\\\");var r=t[1];return e.scope.has(r)?new yt(r,e.scope.get(r)):e.error('Unknown variable \\\"'+r+'\\\". Make sure \\\"'+r+'\\\" has been bound in an enclosing \\\"let\\\" expression before using it.',1)},yt.prototype.evaluate=function(t){return this.boundExpression.evaluate(t)},yt.prototype.eachChild=function(){},yt.prototype.possibleOutputs=function(){return[void 0]},yt.prototype.serialize=function(){return[\\\"var\\\",this.name]};var xt=function(t,e,r,n,i){void 0===e&&(e=[]),void 0===n&&(n=new j),void 0===i&&(i=[]),this.registry=t,this.path=e,this.key=e.map(function(t){return\\\"[\\\"+t+\\\"]\\\"}).join(\\\"\\\"),this.scope=n,this.errors=i,this.expectedType=r};function bt(t,e){for(var r,n,i=0,a=t.length-1,o=0;i<=a;){if(r=t[o=Math.floor((i+a)/2)],n=t[o+1],e===r||e>r&&e<n)return o;if(r<e)i=o+1;else{if(!(r>e))throw new ot(\\\"Input is not a number.\\\");a=o-1}}return Math.max(o-1,0)}xt.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},xt.prototype._parse=function(t,e){if(null!==t&&\\\"string\\\"!=typeof t&&\\\"boolean\\\"!=typeof t&&\\\"number\\\"!=typeof t||(t=[\\\"literal\\\",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\\\"literal\\\", []].');var r=t[0];if(\\\"string\\\"!=typeof r)return this.error(\\\"Expression name must be a string, but found \\\"+typeof r+' instead. If you wanted a literal array, use [\\\"literal\\\", [...]].',0),null;var n=this.registry[r];if(n){var i=n.parse(t,this);if(!i)return null;if(this.expectedType){var a=this.expectedType,o=i.type;if(\\\"string\\\"!==a.kind&&\\\"number\\\"!==a.kind&&\\\"boolean\\\"!==a.kind&&\\\"object\\\"!==a.kind||\\\"value\\\"!==o.kind)if(\\\"array\\\"===a.kind&&\\\"value\\\"===o.kind)e.omitTypeAnnotations||(i=new ut(a,i));else if(\\\"color\\\"!==a.kind||\\\"value\\\"!==o.kind&&\\\"string\\\"!==o.kind){if(this.checkSubtype(this.expectedType,i.type))return null}else e.omitTypeAnnotations||(i=new ht(a,[i]));else e.omitTypeAnnotations||(i=new lt(a,[i]))}if(!(i instanceof at)&&function t(e){if(e instanceof yt)return t(e.boundExpression);if(e instanceof gt&&\\\"error\\\"===e.name)return!1;if(e instanceof rt)return!1;var r=e instanceof ht||e instanceof lt||e instanceof ut,n=!0;return e.eachChild(function(e){n=r?n&&t(e):n&&e instanceof at}),!!n&&(vt(e)&&mt(e,[\\\"zoom\\\",\\\"heatmap-density\\\",\\\"line-progress\\\",\\\"is-supported-script\\\"]))}(i)){var s=new dt;try{i=new at(i.type,i.evaluate(s))}catch(t){return this.error(t.message),null}}return i}return this.error('Unknown expression \\\"'+r+'\\\". If you wanted a literal array, use [\\\"literal\\\", [...]].',0)}return void 0===t?this.error(\\\"'undefined' value invalid. Use null instead.\\\"):\\\"object\\\"==typeof t?this.error('Bare objects invalid. Use [\\\"literal\\\", {...}] instead.'):this.error(\\\"Expected an array, but found \\\"+typeof t+\\\" instead.\\\")},xt.prototype.concat=function(t,e,r){var n=\\\"number\\\"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new xt(this.registry,n,e||null,i,this.errors)},xt.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=\\\"\\\"+this.key+e.map(function(t){return\\\"[\\\"+t+\\\"]\\\"}).join(\\\"\\\");this.errors.push(new N(n,t))},xt.prototype.checkSubtype=function(t,e){var r=K(t,e);return r&&this.error(r),r};var _t=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n<i.length;n+=1){var a=i[n],o=a[0],s=a[1];this.labels.push(o),this.outputs.push(s)}};function wt(t,e,r){return t*(1-r)+e*r}_t.parse=function(t,e){var r=t[1],n=t.slice(2);if(t.length-1<4)return e.error(\\\"Expected at least 4 arguments, but found only \\\"+(t.length-1)+\\\".\\\");if((t.length-1)%2!=0)return e.error(\\\"Expected an even number of arguments.\\\");if(!(r=e.parse(r,1,U)))return null;var i=[],a=null;e.expectedType&&\\\"value\\\"!==e.expectedType.kind&&(a=e.expectedType),n.unshift(-1/0);for(var o=0;o<n.length;o+=2){var s=n[o],l=n[o+1],c=o+1,u=o+2;if(\\\"number\\\"!=typeof s)return e.error('Input/output pairs for \\\"step\\\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',c);if(i.length&&i[i.length-1][0]>=s)return e.error('Input/output pairs for \\\"step\\\" expressions must be arranged with input values in strictly ascending order.',c);var f=e.parse(l,u,a);if(!f)return null;a=a||f.type,i.push([s,f])}return new _t(a,r,i)},_t.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[bt(e,n)].evaluate(t)},_t.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e<r.length;e+=1)t(r[e])},_t.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()}));var t},_t.prototype.serialize=function(){for(var t=[\\\"step\\\",this.input.serialize()],e=0;e<this.labels.length;e++)e>0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var kt=Object.freeze({number:wt,color:function(t,e,r){return new tt(wt(t.r,e.r,r),wt(t.g,e.g,r),wt(t.b,e.b,r),wt(t.a,e.a,r))},array:function(t,e,r){return t.map(function(t,n){return wt(t,e[n],r)})}}),Mt=function(t,e,r,n){this.type=t,this.interpolation=e,this.input=r,this.labels=[],this.outputs=[];for(var i=0,a=n;i<a.length;i+=1){var o=a[i],s=o[0],l=o[1];this.labels.push(s),this.outputs.push(l)}};function At(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}Mt.interpolationFactor=function(t,e,r,n){var i=0;if(\\\"exponential\\\"===t.name)i=At(e,t.base,r,n);else if(\\\"linear\\\"===t.name)i=At(e,1,r,n);else if(\\\"cubic-bezier\\\"===t.name){var o=t.controlPoints;i=new a(o[0],o[1],o[2],o[3]).solve(At(e,1,r,n))}return i},Mt.parse=function(t,e){var r=t[1],n=t[2],i=t.slice(3);if(!Array.isArray(r)||0===r.length)return e.error(\\\"Expected an interpolation type expression.\\\",1);if(\\\"linear\\\"===r[0])r={name:\\\"linear\\\"};else if(\\\"exponential\\\"===r[0]){var a=r[1];if(\\\"number\\\"!=typeof a)return e.error(\\\"Exponential interpolation requires a numeric base.\\\",1,1);r={name:\\\"exponential\\\",base:a}}else{if(\\\"cubic-bezier\\\"!==r[0])return e.error(\\\"Unknown interpolation type \\\"+String(r[0]),1,0);var o=r.slice(1);if(4!==o.length||o.some(function(t){return\\\"number\\\"!=typeof t||t<0||t>1}))return e.error(\\\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\\\",1);r={name:\\\"cubic-bezier\\\",controlPoints:o}}if(t.length-1<4)return e.error(\\\"Expected at least 4 arguments, but found only \\\"+(t.length-1)+\\\".\\\");if((t.length-1)%2!=0)return e.error(\\\"Expected an even number of arguments.\\\");if(!(n=e.parse(n,2,U)))return null;var s=[],l=null;e.expectedType&&\\\"value\\\"!==e.expectedType.kind&&(l=e.expectedType);for(var c=0;c<i.length;c+=2){var u=i[c],f=i[c+1],h=c+3,p=c+4;if(\\\"number\\\"!=typeof u)return e.error('Input/output pairs for \\\"interpolate\\\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',h);if(s.length&&s[s.length-1][0]>=u)return e.error('Input/output pairs for \\\"interpolate\\\" expressions must be arranged with input values in strictly ascending order.',h);var d=e.parse(f,p,l);if(!d)return null;l=l||d.type,s.push([u,d])}return\\\"number\\\"===l.kind||\\\"color\\\"===l.kind||\\\"array\\\"===l.kind&&\\\"number\\\"===l.itemType.kind&&\\\"number\\\"==typeof l.N?new Mt(l,r,n,s):e.error(\\\"Type \\\"+$(l)+\\\" is not interpolatable.\\\")},Mt.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=bt(e,n),o=e[a],s=e[a+1],l=Mt.interpolationFactor(this.interpolation,n,o,s),c=r[a].evaluate(t),u=r[a+1].evaluate(t);return kt[this.type.kind.toLowerCase()](c,u,l)},Mt.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e<r.length;e+=1)t(r[e])},Mt.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()}));var t},Mt.prototype.serialize=function(){for(var t=[\\\"interpolate\\\",\\\"linear\\\"===this.interpolation.name?[\\\"linear\\\"]:\\\"exponential\\\"===this.interpolation.name?1===this.interpolation.base?[\\\"linear\\\"]:[\\\"exponential\\\",this.interpolation.base]:[\\\"cubic-bezier\\\"].concat(this.interpolation.controlPoints),this.input.serialize()],e=0;e<this.labels.length;e++)t.push(this.labels[e],this.outputs[e].serialize());return t};var Tt=function(t,e){this.type=t,this.args=e};Tt.parse=function(t,e){if(t.length<2)return e.error(\\\"Expectected at least one argument.\\\");var r=null,n=e.expectedType;n&&\\\"value\\\"!==n.kind&&(r=n);for(var i=[],a=0,o=t.slice(1);a<o.length;a+=1){var s=o[a],l=e.parse(s,1+i.length,r,void 0,{omitTypeAnnotations:!0});if(!l)return null;r=r||l.type,i.push(l)}var c=n&&i.some(function(t){return K(n,t.type)});return new Tt(c?Y:r,i)},Tt.prototype.evaluate=function(t){for(var e=null,r=0,n=this.args;r<n.length&&null===(e=n[r].evaluate(t));r+=1);return e},Tt.prototype.eachChild=function(t){this.args.forEach(t)},Tt.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}));var t},Tt.prototype.serialize=function(){var t=[\\\"coalesce\\\"];return this.eachChild(function(e){t.push(e.serialize())}),t};var St=function(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e};St.prototype.evaluate=function(t){return this.result.evaluate(t)},St.prototype.eachChild=function(t){for(var e=0,r=this.bindings;e<r.length;e+=1)t(r[e][1]);t(this.result)},St.parse=function(t,e){if(t.length<4)return e.error(\\\"Expected at least 3 arguments, but found \\\"+(t.length-1)+\\\" instead.\\\");for(var r=[],n=1;n<t.length-1;n+=2){var i=t[n];if(\\\"string\\\"!=typeof i)return e.error(\\\"Expected string, but found \\\"+typeof i+\\\" instead.\\\",n);if(/[^a-zA-Z0-9_]/.test(i))return e.error(\\\"Variable names must contain only alphanumeric characters or '_'.\\\",n);var a=e.parse(t[n+1],n+1);if(!a)return null;r.push([i,a])}var o=e.parse(t[t.length-1],t.length-1,void 0,r);return o?new St(r,o):null},St.prototype.possibleOutputs=function(){return this.result.possibleOutputs()},St.prototype.serialize=function(){for(var t=[\\\"let\\\"],e=0,r=this.bindings;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];t.push(i,a.serialize())}return t.push(this.result.serialize()),t};var Et=function(t,e,r){this.type=t,this.index=e,this.input=r};Et.parse=function(t,e){if(3!==t.length)return e.error(\\\"Expected 2 arguments, but found \\\"+(t.length-1)+\\\" instead.\\\");var r=e.parse(t[1],1,U),n=e.parse(t[2],2,Z(e.expectedType||Y));if(!r||!n)return null;var i=n.type;return new Et(i.itemType,r,n)},Et.prototype.evaluate=function(t){var e=this.index.evaluate(t),r=this.input.evaluate(t);if(e<0)throw new ot(\\\"Array index out of bounds: \\\"+e+\\\" < 0.\\\");if(e>=r.length)throw new ot(\\\"Array index out of bounds: \\\"+e+\\\" > \\\"+(r.length-1)+\\\".\\\");if(e!==Math.floor(e))throw new ot(\\\"Array index must be an integer, but found \\\"+e+\\\" instead.\\\");return r[e]},Et.prototype.eachChild=function(t){t(this.index),t(this.input)},Et.prototype.possibleOutputs=function(){return[void 0]},Et.prototype.serialize=function(){return[\\\"at\\\",this.index.serialize(),this.input.serialize()]};var Ct=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a};Ct.parse=function(t,e){if(t.length<5)return e.error(\\\"Expected at least 4 arguments, but found only \\\"+(t.length-1)+\\\".\\\");if(t.length%2!=1)return e.error(\\\"Expected an even number of arguments.\\\");var r,n;e.expectedType&&\\\"value\\\"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;o<t.length-1;o+=2){var s=t[o],l=t[o+1];Array.isArray(s)||(s=[s]);var c=e.concat(o);if(0===s.length)return c.error(\\\"Expected at least one branch label.\\\");for(var u=0,f=s;u<f.length;u+=1){var h=f[u];if(\\\"number\\\"!=typeof h&&\\\"string\\\"!=typeof h)return c.error(\\\"Branch labels must be numbers or strings.\\\");if(\\\"number\\\"==typeof h&&Math.abs(h)>Number.MAX_SAFE_INTEGER)return c.error(\\\"Branch labels must be integers no larger than \\\"+Number.MAX_SAFE_INTEGER+\\\".\\\");if(\\\"number\\\"==typeof h&&Math.floor(h)!==h)return c.error(\\\"Numeric branch labels must be integer values.\\\");if(r){if(c.checkSubtype(r,it(h)))return null}else r=it(h);if(void 0!==i[String(h)])return c.error(\\\"Branch labels must be unique.\\\");i[String(h)]=a.length}var p=e.parse(l,o,n);if(!p)return null;n=n||p.type,a.push(p)}var d=e.parse(t[1],1,r);if(!d)return null;var g=e.parse(t[t.length-1],t.length-1,n);return g?new Ct(r,n,d,i,a,g):null},Ct.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},Ct.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},Ct.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()})).concat(this.otherwise.possibleOutputs());var t},Ct.prototype.serialize=function(){for(var t=this,e=[\\\"match\\\",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i<a.length;i+=1){var o=a[i],s=n[t.cases[o]];void 0===s?(n[t.cases[o]]=r.length,r.push([t.cases[o],[o]])):r[s][1].push(o)}for(var l=function(e){return\\\"number\\\"===t.input.type.kind?Number(e):e},c=0,u=r;c<u.length;c+=1){var f=u[c],h=f[0],p=f[1];1===p.length?e.push(l(p[0])):e.push(p.map(l)),e.push(t.outputs[h].serialize())}return e.push(this.otherwise.serialize()),e};var Lt=function(t,e,r){this.type=t,this.branches=e,this.otherwise=r};function zt(t){return\\\"string\\\"===t.kind||\\\"number\\\"===t.kind||\\\"boolean\\\"===t.kind||\\\"null\\\"===t.kind}function Ot(t,e){return function(){function r(t,e,r){this.type=H,this.lhs=t,this.rhs=e,this.collator=r}return r.parse=function(t,e){if(3!==t.length&&4!==t.length)return e.error(\\\"Expected two or three arguments.\\\");var n=e.parse(t[1],1,Y);if(!n)return null;var i=e.parse(t[2],2,Y);if(!i)return null;if(!zt(n.type)&&!zt(i.type))return e.error(\\\"Expected at least one argument to be a string, number, boolean, or null, but found (\\\"+$(n.type)+\\\", \\\"+$(i.type)+\\\") instead.\\\");if(n.type.kind!==i.type.kind&&\\\"value\\\"!==n.type.kind&&\\\"value\\\"!==i.type.kind)return e.error(\\\"Cannot compare \\\"+$(n.type)+\\\" and \\\"+$(i.type)+\\\".\\\");var a=null;if(4===t.length){if(\\\"string\\\"!==n.type.kind&&\\\"string\\\"!==i.type.kind)return e.error(\\\"Cannot use collator to compare non-string types.\\\");if(!(a=e.parse(t[3],3,X)))return null}return new r(n,i,a)},r.prototype.evaluate=function(t){var r=this.collator?0===this.collator.evaluate(t).compare(this.lhs.evaluate(t),this.rhs.evaluate(t)):this.lhs.evaluate(t)===this.rhs.evaluate(t);return e?!r:r},r.prototype.eachChild=function(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)},r.prototype.possibleOutputs=function(){return[!0,!1]},r.prototype.serialize=function(){var e=[t];return this.eachChild(function(t){e.push(t.serialize())}),e},r}()}Lt.parse=function(t,e){if(t.length<4)return e.error(\\\"Expected at least 3 arguments, but found only \\\"+(t.length-1)+\\\".\\\");if(t.length%2!=0)return e.error(\\\"Expected an odd number of arguments.\\\");var r;e.expectedType&&\\\"value\\\"!==e.expectedType.kind&&(r=e.expectedType);for(var n=[],i=1;i<t.length-1;i+=2){var a=e.parse(t[i],i,H);if(!a)return null;var o=e.parse(t[i+1],i+1,r);if(!o)return null;n.push([a,o]),r=r||o.type}var s=e.parse(t[t.length-1],t.length-1,r);return s?new Lt(r,n,s):null},Lt.prototype.evaluate=function(t){for(var e=0,r=this.branches;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];if(i.evaluate(t))return a.evaluate(t)}return this.otherwise.evaluate(t)},Lt.prototype.eachChild=function(t){for(var e=0,r=this.branches;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];t(i),t(a)}t(this.otherwise)},Lt.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.branches.map(function(t){return t[0],t[1].possibleOutputs()})).concat(this.otherwise.possibleOutputs());var t},Lt.prototype.serialize=function(){var t=[\\\"case\\\"];return this.eachChild(function(e){t.push(e.serialize())}),t};var It=Ot(\\\"==\\\",!1),Pt=Ot(\\\"!=\\\",!0),Dt=function(t){this.type=U,this.input=t};Dt.parse=function(t,e){if(2!==t.length)return e.error(\\\"Expected 1 argument, but found \\\"+(t.length-1)+\\\" instead.\\\");var r=e.parse(t[1],1);return r?\\\"array\\\"!==r.type.kind&&\\\"string\\\"!==r.type.kind&&\\\"value\\\"!==r.type.kind?e.error(\\\"Expected argument of type string or array, but found \\\"+$(r.type)+\\\" instead.\\\"):new Dt(r):null},Dt.prototype.evaluate=function(t){var e=this.input.evaluate(t);if(\\\"string\\\"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new ot(\\\"Expected value to be of type string or array, but found \\\"+$(it(e))+\\\" instead.\\\")},Dt.prototype.eachChild=function(t){t(this.input)},Dt.prototype.possibleOutputs=function(){return[void 0]},Dt.prototype.serialize=function(){var t=[\\\"length\\\"];return this.eachChild(function(e){t.push(e.serialize())}),t};var Rt={\\\"==\\\":It,\\\"!=\\\":Pt,array:ut,at:Et,boolean:lt,case:Lt,coalesce:Tt,collator:rt,interpolate:Mt,length:Dt,let:St,literal:at,match:Ct,number:lt,object:lt,step:_t,string:lt,\\\"to-color\\\":ht,\\\"to-number\\\":ht,var:yt};function Bt(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=nt(r,n,i,o);if(s)throw new ot(s);return new tt(r/255*o,n/255*o,i/255*o,o)}function Ft(t,e){return t in e}function Nt(t,e){var r=e[t];return void 0===r?null:r}function jt(t,e){var r=e[0],n=e[1];return r.evaluate(t)<n.evaluate(t)}function Vt(t,e){var r=e[0],n=e[1];return r.evaluate(t)>n.evaluate(t)}function Ut(t,e){var r=e[0],n=e[1];return r.evaluate(t)<=n.evaluate(t)}function qt(t,e){var r=e[0],n=e[1];return r.evaluate(t)>=n.evaluate(t)}function Ht(t){return{type:t}}function Gt(t){return{result:\\\"success\\\",value:t}}function Wt(t){return{result:\\\"error\\\",value:t}}gt.register(Rt,{error:[{kind:\\\"error\\\"},[q],function(t,e){var r=e[0];throw new ot(r.evaluate(t))}],typeof:[q,[Y],function(t,e){return $(it(e[0].evaluate(t)))}],\\\"to-string\\\":[q,[Y],function(t,e){var r=e[0],n=typeof(r=r.evaluate(t));return null===r?\\\"\\\":\\\"string\\\"===n||\\\"number\\\"===n||\\\"boolean\\\"===n?String(r):r instanceof tt?r.toString():JSON.stringify(r)}],\\\"to-boolean\\\":[H,[Y],function(t,e){var r=e[0];return Boolean(r.evaluate(t))}],\\\"to-rgba\\\":[Z(U,4),[G],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[G,[U,U,U],Bt],rgba:[G,[U,U,U,U],Bt],has:{type:H,overloads:[[[q],function(t,e){return Ft(e[0].evaluate(t),t.properties())}],[[q,W],function(t,e){var r=e[0],n=e[1];return Ft(r.evaluate(t),n.evaluate(t))}]]},get:{type:Y,overloads:[[[q],function(t,e){return Nt(e[0].evaluate(t),t.properties())}],[[q,W],function(t,e){var r=e[0],n=e[1];return Nt(r.evaluate(t),n.evaluate(t))}]]},properties:[W,[],function(t){return t.properties()}],\\\"geometry-type\\\":[q,[],function(t){return t.geometryType()}],id:[Y,[],function(t){return t.id()}],zoom:[U,[],function(t){return t.globals.zoom}],\\\"heatmap-density\\\":[U,[],function(t){return t.globals.heatmapDensity||0}],\\\"line-progress\\\":[U,[],function(t){return t.globals.lineProgress||0}],\\\"+\\\":[U,Ht(U),function(t,e){for(var r=0,n=0,i=e;n<i.length;n+=1)r+=i[n].evaluate(t);return r}],\\\"*\\\":[U,Ht(U),function(t,e){for(var r=1,n=0,i=e;n<i.length;n+=1)r*=i[n].evaluate(t);return r}],\\\"-\\\":{type:U,overloads:[[[U,U],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)-n.evaluate(t)}],[[U],function(t,e){return-e[0].evaluate(t)}]]},\\\"/\\\":[U,[U,U],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)/n.evaluate(t)}],\\\"%\\\":[U,[U,U],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)%n.evaluate(t)}],ln2:[U,[],function(){return Math.LN2}],pi:[U,[],function(){return Math.PI}],e:[U,[],function(){return Math.E}],\\\"^\\\":[U,[U,U],function(t,e){var r=e[0],n=e[1];return Math.pow(r.evaluate(t),n.evaluate(t))}],sqrt:[U,[U],function(t,e){var r=e[0];return Math.sqrt(r.evaluate(t))}],log10:[U,[U],function(t,e){var r=e[0];return Math.log10(r.evaluate(t))}],ln:[U,[U],function(t,e){var r=e[0];return Math.log(r.evaluate(t))}],log2:[U,[U],function(t,e){var r=e[0];return Math.log2(r.evaluate(t))}],sin:[U,[U],function(t,e){var r=e[0];return Math.sin(r.evaluate(t))}],cos:[U,[U],function(t,e){var r=e[0];return Math.cos(r.evaluate(t))}],tan:[U,[U],function(t,e){var r=e[0];return Math.tan(r.evaluate(t))}],asin:[U,[U],function(t,e){var r=e[0];return Math.asin(r.evaluate(t))}],acos:[U,[U],function(t,e){var r=e[0];return Math.acos(r.evaluate(t))}],atan:[U,[U],function(t,e){var r=e[0];return Math.atan(r.evaluate(t))}],min:[U,Ht(U),function(t,e){return Math.min.apply(Math,e.map(function(e){return e.evaluate(t)}))}],max:[U,Ht(U),function(t,e){return Math.max.apply(Math,e.map(function(e){return e.evaluate(t)}))}],abs:[U,[U],function(t,e){var r=e[0];return Math.abs(r.evaluate(t))}],round:[U,[U],function(t,e){var r=e[0].evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[U,[U],function(t,e){var r=e[0];return Math.floor(r.evaluate(t))}],ceil:[U,[U],function(t,e){var r=e[0];return Math.ceil(r.evaluate(t))}],\\\"filter-==\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1];return t.properties()[r.value]===n.value}],\\\"filter-id-==\\\":[H,[Y],function(t,e){var r=e[0];return t.id()===r.value}],\\\"filter-type-==\\\":[H,[q],function(t,e){var r=e[0];return t.geometryType()===r.value}],\\\"filter-<\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<a}],\\\"filter-id-<\\\":[H,[Y],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<i}],\\\"filter->\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],\\\"filter-id->\\\":[H,[Y],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],\\\"filter-<=\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],\\\"filter-id-<=\\\":[H,[Y],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],\\\"filter->=\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],\\\"filter-id->=\\\":[H,[Y],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],\\\"filter-has\\\":[H,[Y],function(t,e){return e[0].value in t.properties()}],\\\"filter-has-id\\\":[H,[],function(t){return null!==t.id()}],\\\"filter-type-in\\\":[H,[Z(q)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],\\\"filter-id-in\\\":[H,[Z(Y)],function(t,e){return e[0].value.indexOf(t.id())>=0}],\\\"filter-in-small\\\":[H,[q,Z(Y)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],\\\"filter-in-large\\\":[H,[q,Z(Y)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],\\\">\\\":{type:H,overloads:[[[U,U],Vt],[[q,q],Vt],[[q,q,X],function(t,e){var r=e[0],n=e[1];return e[2].evaluate(t).compare(r.evaluate(t),n.evaluate(t))>0}]]},\\\"<\\\":{type:H,overloads:[[[U,U],jt],[[q,q],jt],[[q,q,X],function(t,e){var r=e[0],n=e[1];return e[2].evaluate(t).compare(r.evaluate(t),n.evaluate(t))<0}]]},\\\">=\\\":{type:H,overloads:[[[U,U],qt],[[q,q],qt],[[q,q,X],function(t,e){var r=e[0],n=e[1];return e[2].evaluate(t).compare(r.evaluate(t),n.evaluate(t))>=0}]]},\\\"<=\\\":{type:H,overloads:[[[U,U],Ut],[[q,q],Ut],[[q,q,X],function(t,e){var r=e[0],n=e[1];return e[2].evaluate(t).compare(r.evaluate(t),n.evaluate(t))<=0}]]},all:{type:H,overloads:[[[H,H],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)&&n.evaluate(t)}],[Ht(H),function(t,e){for(var r=0,n=e;r<n.length;r+=1)if(!n[r].evaluate(t))return!1;return!0}]]},any:{type:H,overloads:[[[H,H],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)||n.evaluate(t)}],[Ht(H),function(t,e){for(var r=0,n=e;r<n.length;r+=1)if(n[r].evaluate(t))return!0;return!1}]]},\\\"!\\\":[H,[H],function(t,e){return!e[0].evaluate(t)}],\\\"is-supported-script\\\":[H,[q],function(t,e){var r=e[0],n=t.globals&&t.globals.isSupportedScript;return!n||n(r.evaluate(t))}],upcase:[q,[q],function(t,e){return e[0].evaluate(t).toUpperCase()}],downcase:[q,[q],function(t,e){return e[0].evaluate(t).toLowerCase()}],concat:[q,Ht(q),function(t,e){return e.map(function(e){return e.evaluate(t)}).join(\\\"\\\")}],\\\"resolved-locale\\\":[q,[X],function(t,e){return e[0].evaluate(t).resolvedLocale()}]});var Yt=.95047,Xt=1,Zt=1.08883,$t=4/29,Jt=6/29,Kt=3*Jt*Jt,Qt=Jt*Jt*Jt,te=Math.PI/180,ee=180/Math.PI;function re(t){return t>Qt?Math.pow(t,1/3):t/Kt+$t}function ne(t){return t>Jt?t*t*t:Kt*(t-$t)}function ie(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ae(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function oe(t){var e=ae(t.r),r=ae(t.g),n=ae(t.b),i=re((.4124564*e+.3575761*r+.1804375*n)/Yt),a=re((.2126729*e+.7151522*r+.072175*n)/Xt);return{l:116*a-16,a:500*(i-a),b:200*(a-re((.0193339*e+.119192*r+.9503041*n)/Zt)),alpha:t.a}}function se(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=Xt*ne(e),r=Yt*ne(r),n=Zt*ne(n),new tt(ie(3.2404542*r-1.5371385*e-.4985314*n),ie(-.969266*r+1.8760108*e+.041556*n),ie(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}var le={forward:oe,reverse:se,interpolate:function(t,e,r){return{l:wt(t.l,e.l,r),a:wt(t.a,e.a,r),b:wt(t.b,e.b,r),alpha:wt(t.alpha,e.alpha,r)}}},ce={forward:function(t){var e=oe(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*ee;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*te,r=t.c;return se({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:function(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}(t.h,e.h,r),c:wt(t.c,e.c,r),l:wt(t.l,e.l,r),alpha:wt(t.alpha,e.alpha,r)}}},ue=Object.freeze({lab:le,hcl:ce});function fe(t){return t instanceof Number?\\\"number\\\":t instanceof String?\\\"string\\\":t instanceof Boolean?\\\"boolean\\\":Array.isArray(t)?\\\"array\\\":null===t?\\\"null\\\":typeof t}function he(t){return\\\"object\\\"==typeof t&&null!==t&&!Array.isArray(t)}function pe(t){return t}function de(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function ge(t,e,r,n,i){return de(typeof r===i?n[r]:void 0,t.default,e.default)}function ve(t,e,r){if(\\\"number\\\"!==fe(r))return de(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];var i=xe(t.stops,r);return t.stops[i][1]}function me(t,e,r){var n=void 0!==t.base?t.base:1;if(\\\"number\\\"!==fe(r))return de(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=xe(t.stops,r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],l=t.stops[a+1][1],c=kt[e.type]||pe;if(t.colorSpace&&\\\"rgb\\\"!==t.colorSpace){var u=ue[t.colorSpace];c=function(t,e){return u.reverse(u.interpolate(u.forward(t),u.forward(e),o))}}return\\\"function\\\"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=l.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return c(r,n,o)}}:c(s,l,o)}function ye(t,e,r){return\\\"color\\\"===e.type?r=tt.parse(r):fe(r)===e.type||\\\"enum\\\"===e.type&&e.values[r]||(r=void 0),de(r,t.default,e.default)}function xe(t,e){for(var r,n,i=0,a=t.length-1,o=0;i<=a;){if(r=t[o=Math.floor((i+a)/2)][0],n=t[o+1][0],e===r||e>r&&e<n)return o;r<e?i=o+1:r>e&&(a=o-1)}return Math.max(o-1,0)}var be=function(t,e){var r;this.expression=t,this._warningHistory={},this._defaultValue=\\\"color\\\"===(r=e).type&&he(r.default)?new tt(0,0,0,0):\\\"color\\\"===r.type?tt.parse(r.default)||null:void 0===r.default?null:r.default,\\\"enum\\\"===e.type&&(this._enumValues=e.values)};function _e(t){return Array.isArray(t)&&t.length>0&&\\\"string\\\"==typeof t[0]&&t[0]in Rt}function we(t,e){var r=new xt(Rt,[],function(t){var e={color:G,string:q,number:U,enum:q,boolean:H};return\\\"array\\\"===t.type?Z(e[t.value]||Y,t.length):e[t.type]||null}(e)),n=r.parse(t);return n?Gt(new be(n,e)):Wt(r.errors)}be.prototype.evaluateWithoutErrorHandling=function(t,e){return this._evaluator||(this._evaluator=new dt),this._evaluator.globals=t,this._evaluator.feature=e,this.expression.evaluate(this._evaluator)},be.prototype.evaluate=function(t,e){this._evaluator||(this._evaluator=new dt),this._evaluator.globals=t,this._evaluator.feature=e;try{var r=this.expression.evaluate(this._evaluator);if(null==r)return this._defaultValue;if(this._enumValues&&!(r in this._enumValues))throw new ot(\\\"Expected value to be one of \\\"+Object.keys(this._enumValues).map(function(t){return JSON.stringify(t)}).join(\\\", \\\")+\\\", but found \\\"+JSON.stringify(r)+\\\" instead.\\\");return r}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,\\\"undefined\\\"!=typeof console&&console.warn(t.message)),this._defaultValue}};var ke=function(t,e){this.kind=t,this._styleExpression=e};ke.prototype.evaluateWithoutErrorHandling=function(t,e){return this._styleExpression.evaluateWithoutErrorHandling(t,e)},ke.prototype.evaluate=function(t,e){return this._styleExpression.evaluate(t,e)};var Me=function(t,e,r){this.kind=t,this.zoomStops=r.labels,this._styleExpression=e,r instanceof Mt&&(this._interpolationType=r.interpolation)};function Ae(t,e){if(\\\"error\\\"===(t=we(t,e)).result)return t;var r=t.value.expression,n=vt(r);if(!n&&!e[\\\"property-function\\\"])return Wt([new N(\\\"\\\",\\\"property expressions not supported\\\")]);var i=mt(r,[\\\"zoom\\\"]);if(!i&&!1===e[\\\"zoom-function\\\"])return Wt([new N(\\\"\\\",\\\"zoom expressions not supported\\\")]);var a=function t(e){var r=null;if(e instanceof St)r=t(e.result);else if(e instanceof Tt)for(var n=0,i=e.args;n<i.length;n+=1){var a=i[n];if(r=t(a))break}else(e instanceof _t||e instanceof Mt)&&e.input instanceof gt&&\\\"zoom\\\"===e.input.name&&(r=e);return r instanceof N?r:(e.eachChild(function(e){var n=t(e);n instanceof N?r=n:!r&&n?r=new N(\\\"\\\",'\\\"zoom\\\" expression may only be used as input to a top-level \\\"step\\\" or \\\"interpolate\\\" expression.'):r&&n&&r!==n&&(r=new N(\\\"\\\",'Only one zoom-based \\\"step\\\" or \\\"interpolate\\\" subexpression may be used in an expression.'))}),r)}(r);return a||i?a instanceof N?Wt([a]):a instanceof Mt&&\\\"piecewise-constant\\\"===e.function?Wt([new N(\\\"\\\",'\\\"interpolate\\\" expressions cannot be used with this property')]):Gt(a?new Me(n?\\\"camera\\\":\\\"composite\\\",t.value,a):new ke(n?\\\"constant\\\":\\\"source\\\",t.value)):Wt([new N(\\\"\\\",'\\\"zoom\\\" expression may only be used as input to a top-level \\\"step\\\" or \\\"interpolate\\\" expression.')])}Me.prototype.evaluateWithoutErrorHandling=function(t,e){return this._styleExpression.evaluateWithoutErrorHandling(t,e)},Me.prototype.evaluate=function(t,e){return this._styleExpression.evaluate(t,e)},Me.prototype.interpolationFactor=function(t,e,r){return this._interpolationType?Mt.interpolationFactor(this._interpolationType,t,e,r):0};var Te=function(t,e){this._parameters=t,this._specification=e,R(this,function t(e,r){var n,i,a,o=\\\"color\\\"===r.type,s=e.stops&&\\\"object\\\"==typeof e.stops[0][0],l=s||void 0!==e.property,c=s||!l,u=e.type||(\\\"interpolated\\\"===r.function?\\\"exponential\\\":\\\"interval\\\");if(o&&((e=R({},e)).stops&&(e.stops=e.stops.map(function(t){return[t[0],tt.parse(t[1])]})),e.default?e.default=tt.parse(e.default):e.default=tt.parse(r.default)),e.colorSpace&&\\\"rgb\\\"!==e.colorSpace&&!ue[e.colorSpace])throw new Error(\\\"Unknown color space: \\\"+e.colorSpace);if(\\\"exponential\\\"===u)n=me;else if(\\\"interval\\\"===u)n=ve;else if(\\\"categorical\\\"===u){n=ge,i=Object.create(null);for(var f=0,h=e.stops;f<h.length;f+=1){var p=h[f];i[p[0]]=p[1]}a=typeof e.stops[0][0]}else{if(\\\"identity\\\"!==u)throw new Error('Unknown function type \\\"'+u+'\\\"');n=ye}if(s){for(var d={},g=[],v=0;v<e.stops.length;v++){var m=e.stops[v],y=m[0].zoom;void 0===d[y]&&(d[y]={zoom:y,type:e.type,property:e.property,default:e.default,stops:[]},g.push(y)),d[y].stops.push([m[0].value,m[1]])}for(var x=[],b=0,_=g;b<_.length;b+=1){var w=_[b];x.push([d[w].zoom,t(d[w],r)])}return{kind:\\\"composite\\\",interpolationFactor:Mt.interpolationFactor.bind(void 0,{name:\\\"linear\\\"}),zoomStops:x.map(function(t){return t[0]}),evaluate:function(t,n){var i=t.zoom;return me({stops:x,base:e.base},r,i).evaluate(i,n)}}}return c?{kind:\\\"camera\\\",interpolationFactor:\\\"exponential\\\"===u?Mt.interpolationFactor.bind(void 0,{name:\\\"exponential\\\",base:void 0!==e.base?e.base:1}):function(){return 0},zoomStops:e.stops.map(function(t){return t[0]}),evaluate:function(t){var o=t.zoom;return n(e,r,o,i,a)}}:{kind:\\\"source\\\",evaluate:function(t,o){var s=o&&o.properties?o.properties[e.property]:void 0;return void 0===s?de(e.default,r.default):n(e,r,s,i,a)}}}(this._parameters,this._specification))};function Se(t,e){if(he(t))return new Te(t,e);if(_e(t)){var r=Ae(t,e);if(\\\"error\\\"===r.result)throw new Error(r.value.map(function(t){return t.key+\\\": \\\"+t.message}).join(\\\", \\\"));return r.value}var n=t;return\\\"string\\\"==typeof t&&\\\"color\\\"===e.type&&(n=tt.parse(t)),{kind:\\\"constant\\\",evaluate:function(){return n}}}function Ee(t){var e=t.key,r=t.value,n=t.valueSpec||{},i=t.objectElementValidators||{},a=t.style,o=t.styleSpec,s=[],l=fe(r);if(\\\"object\\\"!==l)return[new P(e,r,\\\"object expected, \\\"+l+\\\" found\\\")];for(var c in r){var u=c.split(\\\".\\\")[0],f=n[u]||n[\\\"*\\\"],h=void 0;if(i[u])h=i[u];else if(n[u])h=Ke;else if(i[\\\"*\\\"])h=i[\\\"*\\\"];else{if(!n[\\\"*\\\"]){s.push(new P(e,r[c],'unknown property \\\"'+c+'\\\"'));continue}h=Ke}s=s.concat(h({key:(e?e+\\\".\\\":e)+c,value:r[c],valueSpec:f,style:a,styleSpec:o,object:r,objectKey:c},r))}for(var p in n)i[p]||n[p].required&&void 0===n[p].default&&void 0===r[p]&&s.push(new P(e,r,'missing required property \\\"'+p+'\\\"'));return s}function Ce(t){var e=t.value,r=t.valueSpec,n=t.style,i=t.styleSpec,a=t.key,o=t.arrayElementValidator||Ke;if(\\\"array\\\"!==fe(e))return[new P(a,e,\\\"array expected, \\\"+fe(e)+\\\" found\\\")];if(r.length&&e.length!==r.length)return[new P(a,e,\\\"array length \\\"+r.length+\\\" expected, length \\\"+e.length+\\\" found\\\")];if(r[\\\"min-length\\\"]&&e.length<r[\\\"min-length\\\"])return[new P(a,e,\\\"array length at least \\\"+r[\\\"min-length\\\"]+\\\" expected, length \\\"+e.length+\\\" found\\\")];var s={type:r.value};i.$version<7&&(s.function=r.function),\\\"object\\\"===fe(r.value)&&(s=r.value);for(var l=[],c=0;c<e.length;c++)l=l.concat(o({array:e,arrayIndex:c,value:e[c],valueSpec:s,style:n,styleSpec:i,key:a+\\\"[\\\"+c+\\\"]\\\"}));return l}function Le(t){var e=t.key,r=t.value,n=t.valueSpec,i=fe(r);return\\\"number\\\"!==i?[new P(e,r,\\\"number expected, \\\"+i+\\\" found\\\")]:\\\"minimum\\\"in n&&r<n.minimum?[new P(e,r,r+\\\" is less than the minimum value \\\"+n.minimum)]:\\\"maximum\\\"in n&&r>n.maximum?[new P(e,r,r+\\\" is greater than the maximum value \\\"+n.maximum)]:[]}function ze(t){var e,r,n,i=t.valueSpec,a=B(t.value.type),o={},s=\\\"categorical\\\"!==a&&void 0===t.value.property,l=!s,c=\\\"array\\\"===fe(t.value.stops)&&\\\"array\\\"===fe(t.value.stops[0])&&\\\"object\\\"===fe(t.value.stops[0][0]),u=Ee({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if(\\\"identity\\\"===a)return[new P(t.key,t.value,'identity function may not have a \\\"stops\\\" property')];var e=[],r=t.value;return e=e.concat(Ce({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),\\\"array\\\"===fe(r)&&0===r.length&&e.push(new P(t.key,r,\\\"array must have at least one stop\\\")),e},default:function(t){return Ke({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return\\\"identity\\\"===a&&s&&u.push(new P(t.key,t.value,'missing required property \\\"property\\\"')),\\\"identity\\\"===a||t.value.stops||u.push(new P(t.key,t.value,'missing required property \\\"stops\\\"')),\\\"exponential\\\"===a&&\\\"piecewise-constant\\\"===t.valueSpec.function&&u.push(new P(t.key,t.value,\\\"exponential functions not supported\\\")),t.styleSpec.$version>=8&&(l&&!t.valueSpec[\\\"property-function\\\"]?u.push(new P(t.key,t.value,\\\"property functions not supported\\\")):s&&!t.valueSpec[\\\"zoom-function\\\"]&&\\\"heatmap-color\\\"!==t.objectKey&&\\\"line-gradient\\\"!==t.objectKey&&u.push(new P(t.key,t.value,\\\"zoom functions not supported\\\"))),\\\"categorical\\\"!==a&&!c||void 0!==t.value.property||u.push(new P(t.key,t.value,'\\\"property\\\" property is required')),u;function f(t){var e=[],a=t.value,s=t.key;if(\\\"array\\\"!==fe(a))return[new P(s,a,\\\"array expected, \\\"+fe(a)+\\\" found\\\")];if(2!==a.length)return[new P(s,a,\\\"array length 2 expected, length \\\"+a.length+\\\" found\\\")];if(c){if(\\\"object\\\"!==fe(a[0]))return[new P(s,a,\\\"object expected, \\\"+fe(a[0])+\\\" found\\\")];if(void 0===a[0].zoom)return[new P(s,a,\\\"object stop key must have zoom\\\")];if(void 0===a[0].value)return[new P(s,a,\\\"object stop key must have value\\\")];if(n&&n>B(a[0].zoom))return[new P(s,a[0].zoom,\\\"stop zoom values must appear in ascending order\\\")];B(a[0].zoom)!==n&&(n=B(a[0].zoom),r=void 0,o={}),e=e.concat(Ee({key:s+\\\"[0]\\\",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Le,value:h}}))}else e=e.concat(h({key:s+\\\"[0]\\\",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return e.concat(Ke({key:s+\\\"[1]\\\",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=fe(t.value),l=B(t.value),c=null!==t.value?t.value:n;if(e){if(s!==e)return[new P(t.key,c,s+\\\" stop domain type must match previous stop domain type \\\"+e)]}else e=s;if(\\\"number\\\"!==s&&\\\"string\\\"!==s&&\\\"boolean\\\"!==s)return[new P(t.key,c,\\\"stop domain value must be a number, string, or boolean\\\")];if(\\\"number\\\"!==s&&\\\"categorical\\\"!==a){var u=\\\"number expected, \\\"+s+\\\" found\\\";return i[\\\"property-function\\\"]&&void 0===a&&(u+='\\\\nIf you intended to use a categorical function, specify `\\\"type\\\": \\\"categorical\\\"`.'),[new P(t.key,c,u)]}return\\\"categorical\\\"!==a||\\\"number\\\"!==s||isFinite(l)&&Math.floor(l)===l?\\\"categorical\\\"!==a&&\\\"number\\\"===s&&void 0!==r&&l<r?[new P(t.key,c,\\\"stop domain values must appear in ascending order\\\")]:(r=l,\\\"categorical\\\"===a&&l in o?[new P(t.key,c,\\\"stop domain values must be unique\\\")]:(o[l]=!0,[])):[new P(t.key,c,\\\"integer expected, found \\\"+l)]}}function Oe(t){var e=(\\\"property\\\"===t.expressionContext?Ae:we)(F(t.value),t.valueSpec);return\\\"error\\\"===e.result?e.value.map(function(e){return new P(\\\"\\\"+t.key+e.key,t.value,e.message)}):\\\"property\\\"===t.expressionContext&&\\\"text-font\\\"===t.propertyKey&&-1!==e.value._styleExpression.expression.possibleOutputs().indexOf(void 0)?[new P(t.key,t.value,'Invalid data expression for \\\"text-font\\\". Output values must be contained as literals within the expression.')]:[]}function Ie(t){var e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(B(r))&&i.push(new P(e,r,\\\"expected one of [\\\"+n.values.join(\\\", \\\")+\\\"], \\\"+JSON.stringify(r)+\\\" found\\\")):-1===Object.keys(n.values).indexOf(B(r))&&i.push(new P(e,r,\\\"expected one of [\\\"+Object.keys(n.values).join(\\\", \\\")+\\\"], \\\"+JSON.stringify(r)+\\\" found\\\")),i}function Pe(t){if(!Array.isArray(t)||0===t.length)return!1;switch(t[0]){case\\\"has\\\":return t.length>=2&&\\\"$id\\\"!==t[1]&&\\\"$type\\\"!==t[1];case\\\"in\\\":case\\\"!in\\\":case\\\"!has\\\":case\\\"none\\\":return!1;case\\\"==\\\":case\\\"!=\\\":case\\\">\\\":case\\\">=\\\":case\\\"<\\\":case\\\"<=\\\":return 3===t.length&&(Array.isArray(t[1])||Array.isArray(t[2]));case\\\"any\\\":case\\\"all\\\":for(var e=0,r=t.slice(1);e<r.length;e+=1){var n=r[e];if(!Pe(n)&&\\\"boolean\\\"!=typeof n)return!1}return!0;default:return!0}}Te.deserialize=function(t){return new Te(t._parameters,t._specification)},Te.serialize=function(t){return{_parameters:t._parameters,_specification:t._specification}};var De={type:\\\"boolean\\\",default:!1,function:!0,\\\"property-function\\\":!0,\\\"zoom-function\\\":!0};function Re(t){if(!t)return function(){return!0};Pe(t)||(t=Fe(t));var e=we(t,De);if(\\\"error\\\"===e.result)throw new Error(e.value.map(function(t){return t.key+\\\": \\\"+t.message}).join(\\\", \\\"));return function(t,r){return e.value.evaluate(t,r)}}function Be(t,e){return t<e?-1:t>e?1:0}function Fe(t){if(!t)return!0;var e,r=t[0];return t.length<=1?\\\"any\\\"!==r:\\\"==\\\"===r?Ne(t[1],t[2],\\\"==\\\"):\\\"!=\\\"===r?Ue(Ne(t[1],t[2],\\\"==\\\")):\\\"<\\\"===r||\\\">\\\"===r||\\\"<=\\\"===r||\\\">=\\\"===r?Ne(t[1],t[2],r):\\\"any\\\"===r?(e=t.slice(1),[\\\"any\\\"].concat(e.map(Fe))):\\\"all\\\"===r?[\\\"all\\\"].concat(t.slice(1).map(Fe)):\\\"none\\\"===r?[\\\"all\\\"].concat(t.slice(1).map(Fe).map(Ue)):\\\"in\\\"===r?je(t[1],t.slice(2)):\\\"!in\\\"===r?Ue(je(t[1],t.slice(2))):\\\"has\\\"===r?Ve(t[1]):\\\"!has\\\"!==r||Ue(Ve(t[1]))}function Ne(t,e,r){switch(t){case\\\"$type\\\":return[\\\"filter-type-\\\"+r,e];case\\\"$id\\\":return[\\\"filter-id-\\\"+r,e];default:return[\\\"filter-\\\"+r,t,e]}}function je(t,e){if(0===e.length)return!1;switch(t){case\\\"$type\\\":return[\\\"filter-type-in\\\",[\\\"literal\\\",e]];case\\\"$id\\\":return[\\\"filter-id-in\\\",[\\\"literal\\\",e]];default:return e.length>200&&!e.some(function(t){return typeof t!=typeof e[0]})?[\\\"filter-in-large\\\",t,[\\\"literal\\\",e.sort(Be)]]:[\\\"filter-in-small\\\",t,[\\\"literal\\\",e]]}}function Ve(t){switch(t){case\\\"$type\\\":return!0;case\\\"$id\\\":return[\\\"filter-has-id\\\"];default:return[\\\"filter-has\\\",t]}}function Ue(t){return[\\\"!\\\",t]}function qe(t){return Pe(F(t.value))?Oe(R({},t,{expressionContext:\\\"filter\\\",valueSpec:{value:\\\"boolean\\\"}})):function t(e){var r=e.value,n=e.key;if(\\\"array\\\"!==fe(r))return[new P(n,r,\\\"array expected, \\\"+fe(r)+\\\" found\\\")];var i,a=e.styleSpec,o=[];if(r.length<1)return[new P(n,r,\\\"filter array must have at least 1 element\\\")];switch(o=o.concat(Ie({key:n+\\\"[0]\\\",value:r[0],valueSpec:a.filter_operator,style:e.style,styleSpec:e.styleSpec})),B(r[0])){case\\\"<\\\":case\\\"<=\\\":case\\\">\\\":case\\\">=\\\":r.length>=2&&\\\"$type\\\"===B(r[1])&&o.push(new P(n,r,'\\\"$type\\\" cannot be use with operator \\\"'+r[0]+'\\\"'));case\\\"==\\\":case\\\"!=\\\":3!==r.length&&o.push(new P(n,r,'filter array for operator \\\"'+r[0]+'\\\" must have 3 elements'));case\\\"in\\\":case\\\"!in\\\":r.length>=2&&\\\"string\\\"!==(i=fe(r[1]))&&o.push(new P(n+\\\"[1]\\\",r[1],\\\"string expected, \\\"+i+\\\" found\\\"));for(var s=2;s<r.length;s++)i=fe(r[s]),\\\"$type\\\"===B(r[1])?o=o.concat(Ie({key:n+\\\"[\\\"+s+\\\"]\\\",value:r[s],valueSpec:a.geometry_type,style:e.style,styleSpec:e.styleSpec})):\\\"string\\\"!==i&&\\\"number\\\"!==i&&\\\"boolean\\\"!==i&&o.push(new P(n+\\\"[\\\"+s+\\\"]\\\",r[s],\\\"string, number, or boolean expected, \\\"+i+\\\" found\\\"));break;case\\\"any\\\":case\\\"all\\\":case\\\"none\\\":for(var l=1;l<r.length;l++)o=o.concat(t({key:n+\\\"[\\\"+l+\\\"]\\\",value:r[l],style:e.style,styleSpec:e.styleSpec}));break;case\\\"has\\\":case\\\"!has\\\":i=fe(r[1]),2!==r.length?o.push(new P(n,r,'filter array for \\\"'+r[0]+'\\\" operator must have 2 elements')):\\\"string\\\"!==i&&o.push(new P(n+\\\"[1]\\\",r[1],\\\"string expected, \\\"+i+\\\" found\\\"))}return o}(t)}function He(t,e){var r=t.key,n=t.style,i=t.styleSpec,a=t.value,o=t.objectKey,s=i[e+\\\"_\\\"+t.layerType];if(!s)return[];var l=o.match(/^(.*)-transition$/);if(\\\"paint\\\"===e&&l&&s[l[1]]&&s[l[1]].transition)return Ke({key:r,value:a,valueSpec:i.transition,style:n,styleSpec:i});var c,u=t.valueSpec||s[o];if(!u)return[new P(r,a,'unknown property \\\"'+o+'\\\"')];if(\\\"string\\\"===fe(a)&&u[\\\"property-function\\\"]&&!u.tokens&&(c=/^{([^}]+)}$/.exec(a)))return[new P(r,a,'\\\"'+o+'\\\" does not support interpolation syntax\\\\nUse an identity property function instead: `{ \\\"type\\\": \\\"identity\\\", \\\"property\\\": '+JSON.stringify(c[1])+\\\" }`.\\\")];var f=[];return\\\"symbol\\\"===t.layerType&&(\\\"text-field\\\"===o&&n&&!n.glyphs&&f.push(new P(r,a,'use of \\\"text-field\\\" requires a style \\\"glyphs\\\" property')),\\\"text-font\\\"===o&&he(F(a))&&\\\"identity\\\"===B(a.type)&&f.push(new P(r,a,'\\\"text-font\\\" does not support identity functions'))),f.concat(Ke({key:t.key,value:a,valueSpec:u,style:n,styleSpec:i,expressionContext:\\\"property\\\",propertyKey:o}))}function Ge(t){return He(t,\\\"paint\\\")}function We(t){return He(t,\\\"layout\\\")}function Ye(t){var e=[],r=t.value,n=t.key,i=t.style,a=t.styleSpec;r.type||r.ref||e.push(new P(n,r,'either \\\"type\\\" or \\\"ref\\\" is required'));var o,s=B(r.type),l=B(r.ref);if(r.id)for(var c=B(r.id),u=0;u<t.arrayIndex;u++){var f=i.layers[u];B(f.id)===c&&e.push(new P(n,r.id,'duplicate layer id \\\"'+r.id+'\\\", previously used at line '+f.id.__line__))}if(\\\"ref\\\"in r)[\\\"type\\\",\\\"source\\\",\\\"source-layer\\\",\\\"filter\\\",\\\"layout\\\"].forEach(function(t){t in r&&e.push(new P(n,r[t],'\\\"'+t+'\\\" is prohibited for ref layers'))}),i.layers.forEach(function(t){B(t.id)===l&&(o=t)}),o?o.ref?e.push(new P(n,r.ref,\\\"ref cannot reference another ref layer\\\")):s=B(o.type):e.push(new P(n,r.ref,'ref layer \\\"'+l+'\\\" not found'));else if(\\\"background\\\"!==s)if(r.source){var h=i.sources&&i.sources[r.source],p=h&&B(h.type);h?\\\"vector\\\"===p&&\\\"raster\\\"===s?e.push(new P(n,r.source,'layer \\\"'+r.id+'\\\" requires a raster source')):\\\"raster\\\"===p&&\\\"raster\\\"!==s?e.push(new P(n,r.source,'layer \\\"'+r.id+'\\\" requires a vector source')):\\\"vector\\\"!==p||r[\\\"source-layer\\\"]?\\\"raster-dem\\\"===p&&\\\"hillshade\\\"!==s?e.push(new P(n,r.source,\\\"raster-dem source can only be used with layer type 'hillshade'.\\\")):\\\"line\\\"!==s||!r.paint||!r.paint[\\\"line-gradient\\\"]||\\\"geojson\\\"===p&&h.lineMetrics||e.push(new P(n,r,'layer \\\"'+r.id+'\\\" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')):e.push(new P(n,r,'layer \\\"'+r.id+'\\\" must specify a \\\"source-layer\\\"')):e.push(new P(n,r.source,'source \\\"'+r.source+'\\\" not found'))}else e.push(new P(n,r,'missing required property \\\"source\\\"'));return e=e.concat(Ee({key:n,value:r,valueSpec:a.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\\\"*\\\":function(){return[]},type:function(){return Ke({key:n+\\\".type\\\",value:r.type,valueSpec:a.layer.type,style:t.style,styleSpec:t.styleSpec,object:r,objectKey:\\\"type\\\"})},filter:qe,layout:function(t){return Ee({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\\\"*\\\":function(t){return We(R({layerType:s},t))}}})},paint:function(t){return Ee({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\\\"*\\\":function(t){return Ge(R({layerType:s},t))}}})}}}))}function Xe(t){var e=t.value,r=t.key,n=t.styleSpec,i=t.style;if(!e.type)return[new P(r,e,'\\\"type\\\" is required')];var a=B(e.type),o=[];switch(a){case\\\"vector\\\":case\\\"raster\\\":case\\\"raster-dem\\\":if(o=o.concat(Ee({key:r,value:e,valueSpec:n[\\\"source_\\\"+a.replace(\\\"-\\\",\\\"_\\\")],style:t.style,styleSpec:n})),\\\"url\\\"in e)for(var s in e)[\\\"type\\\",\\\"url\\\",\\\"tileSize\\\"].indexOf(s)<0&&o.push(new P(r+\\\".\\\"+s,e[s],'a source with a \\\"url\\\" property may not include a \\\"'+s+'\\\" property'));return o;case\\\"geojson\\\":return Ee({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n});case\\\"video\\\":return Ee({key:r,value:e,valueSpec:n.source_video,style:i,styleSpec:n});case\\\"image\\\":return Ee({key:r,value:e,valueSpec:n.source_image,style:i,styleSpec:n});case\\\"canvas\\\":return o.push(new P(r,null,\\\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\\\",\\\"source.canvas\\\")),o;default:return Ie({key:r+\\\".type\\\",value:e.type,valueSpec:{values:[\\\"vector\\\",\\\"raster\\\",\\\"raster-dem\\\",\\\"geojson\\\",\\\"video\\\",\\\"image\\\"]},style:i,styleSpec:n})}}function Ze(t){var e=t.value,r=t.styleSpec,n=r.light,i=t.style,a=[],o=fe(e);if(void 0===e)return a;if(\\\"object\\\"!==o)return a.concat([new P(\\\"light\\\",e,\\\"object expected, \\\"+o+\\\" found\\\")]);for(var s in e){var l=s.match(/^(.*)-transition$/);a=l&&n[l[1]]&&n[l[1]].transition?a.concat(Ke({key:s,value:e[s],valueSpec:r.transition,style:i,styleSpec:r})):n[s]?a.concat(Ke({key:s,value:e[s],valueSpec:n[s],style:i,styleSpec:r})):a.concat([new P(s,e[s],'unknown property \\\"'+s+'\\\"')])}return a}function $e(t){var e=t.value,r=t.key,n=fe(e);return\\\"string\\\"!==n?[new P(r,e,\\\"string expected, \\\"+n+\\\" found\\\")]:[]}var Je={\\\"*\\\":function(){return[]},array:Ce,boolean:function(t){var e=t.value,r=t.key,n=fe(e);return\\\"boolean\\\"!==n?[new P(r,e,\\\"boolean expected, \\\"+n+\\\" found\\\")]:[]},number:Le,color:function(t){var e=t.key,r=t.value,n=fe(r);return\\\"string\\\"!==n?[new P(e,r,\\\"color expected, \\\"+n+\\\" found\\\")]:null===Q(r)?[new P(e,r,'color expected, \\\"'+r+'\\\" found')]:[]},constants:D,enum:Ie,filter:qe,function:ze,layer:Ye,object:Ee,source:Xe,light:Ze,string:$e};function Ke(t){var e=t.value,r=t.valueSpec,n=t.styleSpec;return r.function&&he(B(e))?ze(t):r.function&&_e(F(e))?Oe(t):r.type&&Je[r.type]?Je[r.type](t):Ee(R({},t,{valueSpec:r.type?n[r.type]:r}))}function Qe(t){var e=t.value,r=t.key,n=$e(t);return n.length?n:(-1===e.indexOf(\\\"{fontstack}\\\")&&n.push(new P(r,e,'\\\"glyphs\\\" url must include a \\\"{fontstack}\\\" token')),-1===e.indexOf(\\\"{range}\\\")&&n.push(new P(r,e,'\\\"glyphs\\\" url must include a \\\"{range}\\\" token')),n)}function tr(t,e){e=e||I;var r=[];return r=r.concat(Ke({key:\\\"\\\",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:Qe,\\\"*\\\":function(){return[]}}})),t.constants&&(r=r.concat(D({key:\\\"constants\\\",value:t.constants,style:t,styleSpec:e}))),er(r)}function er(t){return[].concat(t).sort(function(t,e){return t.line-e.line})}function rr(t){return function(){return er(t.apply(this,arguments))}}tr.source=rr(Xe),tr.light=rr(Ze),tr.layer=rr(Ye),tr.filter=rr(qe),tr.paintProperty=rr(Ge),tr.layoutProperty=rr(We);var nr=tr,ir=tr.light,ar=tr.paintProperty,or=tr.layoutProperty;function sr(t,e){var r=!1;if(e&&e.length)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];t.fire(new z(new Error(a.message))),r=!0}return r}var lr=ur,cr=3;function ur(t,e,r){var n=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;var i=new Int32Array(this.arrayBuffer);t=i[0],e=i[1],r=i[2],this.d=e+2*r;for(var a=0;a<this.d*this.d;a++){var o=i[cr+a],s=i[cr+a+1];n.push(o===s?null:i.subarray(o,s))}var l=i[cr+n.length],c=i[cr+n.length+1];this.keys=i.subarray(l,c),this.bboxes=i.subarray(c),this.insert=this._insertReadonly}else{this.d=e+2*r;for(var u=0;u<this.d*this.d;u++)n.push([]);this.keys=[],this.bboxes=[]}this.n=e,this.extent=t,this.padding=r,this.scale=e/t,this.uid=0;var f=r/e*t;this.min=-f,this.max=t+f}ur.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertCell,this.uid++),this.keys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},ur.prototype._insertReadonly=function(){throw\\\"Cannot insert into a GridIndex created from an ArrayBuffer.\\\"},ur.prototype._insertCell=function(t,e,r,n,i,a){this.cells[i].push(a)},ur.prototype.query=function(t,e,r,n){var i=this.min,a=this.max;if(t<=i&&e<=i&&a<=r&&a<=n)return Array.prototype.slice.call(this.keys);var o=[];return this._forEachCell(t,e,r,n,this._queryCell,o,{}),o},ur.prototype._queryCell=function(t,e,r,n,i,a,o){var s=this.cells[i];if(null!==s)for(var l=this.keys,c=this.bboxes,u=0;u<s.length;u++){var f=s[u];if(void 0===o[f]){var h=4*f;t<=c[h+2]&&e<=c[h+3]&&r>=c[h+0]&&n>=c[h+1]?(o[f]=!0,a.push(l[f])):o[f]=!1}}},ur.prototype._forEachCell=function(t,e,r,n,i,a,o){for(var s=this._convertToCellCoord(t),l=this._convertToCellCoord(e),c=this._convertToCellCoord(r),u=this._convertToCellCoord(n),f=s;f<=c;f++)for(var h=l;h<=u;h++){var p=this.d*h+f;if(i.call(this,t,e,r,n,p,a,o))return}},ur.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},ur.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=cr+this.cells.length+1+1,r=0,n=0;n<this.cells.length;n++)r+=this.cells[n].length;var i=new Int32Array(e+r+this.keys.length+this.bboxes.length);i[0]=this.extent,i[1]=this.n,i[2]=this.padding;for(var a=e,o=0;o<t.length;o++){var s=t[o];i[cr+o]=a,i.set(s,a),a+=s.length}return i[cr+t.length]=a,i.set(this.keys,a),a+=this.keys.length,i[cr+t.length+1]=a,i.set(this.bboxes,a),a+=this.bboxes.length,i.buffer};var fr=self.ImageData,hr={};function pr(t,e,r){void 0===r&&(r={}),Object.defineProperty(e,\\\"_classRegistryKey\\\",{value:t,writeable:!1}),hr[t]={klass:e,omit:r.omit||[],shallow:r.shallow||[]}}for(var dr in pr(\\\"Object\\\",Object),lr.serialize=function(t,e){var r=t.toArrayBuffer();return e&&e.push(r),r},lr.deserialize=function(t){return new lr(t)},pr(\\\"Grid\\\",lr),pr(\\\"Color\\\",tt),pr(\\\"Error\\\",Error),pr(\\\"StylePropertyFunction\\\",Te),pr(\\\"StyleExpression\\\",be,{omit:[\\\"_evaluator\\\"]}),pr(\\\"ZoomDependentExpression\\\",Me),pr(\\\"ZoomConstantExpression\\\",ke),pr(\\\"CompoundExpression\\\",gt,{omit:[\\\"_evaluate\\\"]}),Rt)Rt[dr]._classRegistryKey||pr(\\\"Expression_\\\"+dr,Rt[dr]);function gr(t,e){if(null==t||\\\"boolean\\\"==typeof t||\\\"number\\\"==typeof t||\\\"string\\\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp)return t;if(t instanceof ArrayBuffer)return e&&e.push(t),t;if(ArrayBuffer.isView(t)){var r=t;return e&&e.push(r.buffer),r}if(t instanceof fr)return e&&e.push(t.data.buffer),t;if(Array.isArray(t)){for(var n=[],i=0,a=t;i<a.length;i+=1){var o=a[i];n.push(gr(o,e))}return n}if(\\\"object\\\"==typeof t){var s=t.constructor,l=s._classRegistryKey;if(!l)throw new Error(\\\"can't serialize object of unregistered class\\\");var c={};if(s.serialize)c._serialized=s.serialize(t,e);else{for(var u in t)if(t.hasOwnProperty(u)&&!(hr[l].omit.indexOf(u)>=0)){var f=t[u];c[u]=hr[l].shallow.indexOf(u)>=0?f:gr(f,e)}t instanceof Error&&(c.message=t.message)}return{name:l,properties:c}}throw new Error(\\\"can't serialize object of type \\\"+typeof t)}function vr(t){if(null==t||\\\"boolean\\\"==typeof t||\\\"number\\\"==typeof t||\\\"string\\\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||t instanceof fr)return t;if(Array.isArray(t))return t.map(function(t){return vr(t)});if(\\\"object\\\"==typeof t){var e=t,r=e.name,n=e.properties;if(!r)throw new Error(\\\"can't deserialize object of anonymous class\\\");var i=hr[r].klass;if(!i)throw new Error(\\\"can't deserialize unregistered class \\\"+r);if(i.deserialize)return i.deserialize(n._serialized);for(var a=Object.create(i.prototype),o=0,s=Object.keys(n);o<s.length;o+=1){var l=s[o];a[l]=hr[r].shallow.indexOf(l)>=0?n[l]:vr(n[l])}return a}throw new Error(\\\"can't deserialize object of type \\\"+typeof t)}var mr=function(){this.first=!0};mr.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom<r&&(this.lastIntegerZoom=r,this.lastIntegerZoomTime=e),t!==this.lastZoom&&(this.lastZoom=t,this.lastFloorZoom=r,!0))};var yr={\\\"Latin-1 Supplement\\\":function(t){return t>=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},\\\"Arabic Supplement\\\":function(t){return t>=1872&&t<=1919},\\\"Arabic Extended-A\\\":function(t){return t>=2208&&t<=2303},\\\"Hangul Jamo\\\":function(t){return t>=4352&&t<=4607},\\\"Unified Canadian Aboriginal Syllabics\\\":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},\\\"Unified Canadian Aboriginal Syllabics Extended\\\":function(t){return t>=6320&&t<=6399},\\\"General Punctuation\\\":function(t){return t>=8192&&t<=8303},\\\"Letterlike Symbols\\\":function(t){return t>=8448&&t<=8527},\\\"Number Forms\\\":function(t){return t>=8528&&t<=8591},\\\"Miscellaneous Technical\\\":function(t){return t>=8960&&t<=9215},\\\"Control Pictures\\\":function(t){return t>=9216&&t<=9279},\\\"Optical Character Recognition\\\":function(t){return t>=9280&&t<=9311},\\\"Enclosed Alphanumerics\\\":function(t){return t>=9312&&t<=9471},\\\"Geometric Shapes\\\":function(t){return t>=9632&&t<=9727},\\\"Miscellaneous Symbols\\\":function(t){return t>=9728&&t<=9983},\\\"Miscellaneous Symbols and Arrows\\\":function(t){return t>=11008&&t<=11263},\\\"CJK Radicals Supplement\\\":function(t){return t>=11904&&t<=12031},\\\"Kangxi Radicals\\\":function(t){return t>=12032&&t<=12255},\\\"Ideographic Description Characters\\\":function(t){return t>=12272&&t<=12287},\\\"CJK Symbols and Punctuation\\\":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},\\\"Hangul Compatibility Jamo\\\":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},\\\"Bopomofo Extended\\\":function(t){return t>=12704&&t<=12735},\\\"CJK Strokes\\\":function(t){return t>=12736&&t<=12783},\\\"Katakana Phonetic Extensions\\\":function(t){return t>=12784&&t<=12799},\\\"Enclosed CJK Letters and Months\\\":function(t){return t>=12800&&t<=13055},\\\"CJK Compatibility\\\":function(t){return t>=13056&&t<=13311},\\\"CJK Unified Ideographs Extension A\\\":function(t){return t>=13312&&t<=19903},\\\"Yijing Hexagram Symbols\\\":function(t){return t>=19904&&t<=19967},\\\"CJK Unified Ideographs\\\":function(t){return t>=19968&&t<=40959},\\\"Yi Syllables\\\":function(t){return t>=40960&&t<=42127},\\\"Yi Radicals\\\":function(t){return t>=42128&&t<=42191},\\\"Hangul Jamo Extended-A\\\":function(t){return t>=43360&&t<=43391},\\\"Hangul Syllables\\\":function(t){return t>=44032&&t<=55215},\\\"Hangul Jamo Extended-B\\\":function(t){return t>=55216&&t<=55295},\\\"Private Use Area\\\":function(t){return t>=57344&&t<=63743},\\\"CJK Compatibility Ideographs\\\":function(t){return t>=63744&&t<=64255},\\\"Arabic Presentation Forms-A\\\":function(t){return t>=64336&&t<=65023},\\\"Vertical Forms\\\":function(t){return t>=65040&&t<=65055},\\\"CJK Compatibility Forms\\\":function(t){return t>=65072&&t<=65103},\\\"Small Form Variants\\\":function(t){return t>=65104&&t<=65135},\\\"Arabic Presentation Forms-B\\\":function(t){return t>=65136&&t<=65279},\\\"Halfwidth and Fullwidth Forms\\\":function(t){return t>=65280&&t<=65519}};function xr(t){for(var e=0,r=t;e<r.length;e+=1)if(_r(r[e].charCodeAt(0)))return!0;return!1}function br(t){return!(yr.Arabic(t)||yr[\\\"Arabic Supplement\\\"](t)||yr[\\\"Arabic Extended-A\\\"](t)||yr[\\\"Arabic Presentation Forms-A\\\"](t)||yr[\\\"Arabic Presentation Forms-B\\\"](t))}function _r(t){return!!(746===t||747===t||!(t<4352)&&(yr[\\\"Bopomofo Extended\\\"](t)||yr.Bopomofo(t)||yr[\\\"CJK Compatibility Forms\\\"](t)&&!(t>=65097&&t<=65103)||yr[\\\"CJK Compatibility Ideographs\\\"](t)||yr[\\\"CJK Compatibility\\\"](t)||yr[\\\"CJK Radicals Supplement\\\"](t)||yr[\\\"CJK Strokes\\\"](t)||!(!yr[\\\"CJK Symbols and Punctuation\\\"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||yr[\\\"CJK Unified Ideographs Extension A\\\"](t)||yr[\\\"CJK Unified Ideographs\\\"](t)||yr[\\\"Enclosed CJK Letters and Months\\\"](t)||yr[\\\"Hangul Compatibility Jamo\\\"](t)||yr[\\\"Hangul Jamo Extended-A\\\"](t)||yr[\\\"Hangul Jamo Extended-B\\\"](t)||yr[\\\"Hangul Jamo\\\"](t)||yr[\\\"Hangul Syllables\\\"](t)||yr.Hiragana(t)||yr[\\\"Ideographic Description Characters\\\"](t)||yr.Kanbun(t)||yr[\\\"Kangxi Radicals\\\"](t)||yr[\\\"Katakana Phonetic Extensions\\\"](t)||yr.Katakana(t)&&12540!==t||!(!yr[\\\"Halfwidth and Fullwidth Forms\\\"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!yr[\\\"Small Form Variants\\\"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||yr[\\\"Unified Canadian Aboriginal Syllabics\\\"](t)||yr[\\\"Unified Canadian Aboriginal Syllabics Extended\\\"](t)||yr[\\\"Vertical Forms\\\"](t)||yr[\\\"Yijing Hexagram Symbols\\\"](t)||yr[\\\"Yi Syllables\\\"](t)||yr[\\\"Yi Radicals\\\"](t)))}function wr(t){return!(_r(t)||function(t){return!!(yr[\\\"Latin-1 Supplement\\\"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||yr[\\\"General Punctuation\\\"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||yr[\\\"Letterlike Symbols\\\"](t)||yr[\\\"Number Forms\\\"](t)||yr[\\\"Miscellaneous Technical\\\"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||yr[\\\"Control Pictures\\\"](t)&&9251!==t||yr[\\\"Optical Character Recognition\\\"](t)||yr[\\\"Enclosed Alphanumerics\\\"](t)||yr[\\\"Geometric Shapes\\\"](t)||yr[\\\"Miscellaneous Symbols\\\"](t)&&!(t>=9754&&t<=9759)||yr[\\\"Miscellaneous Symbols and Arrows\\\"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||yr[\\\"CJK Symbols and Punctuation\\\"](t)||yr.Katakana(t)||yr[\\\"Private Use Area\\\"](t)||yr[\\\"CJK Compatibility Forms\\\"](t)||yr[\\\"Small Form Variants\\\"](t)||yr[\\\"Halfwidth and Fullwidth Forms\\\"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function kr(t,e){return!(!e&&(t>=1424&&t<=2303||yr[\\\"Arabic Presentation Forms-A\\\"](t)||yr[\\\"Arabic Presentation Forms-B\\\"](t))||t>=2304&&t<=3583||t>=3840&&t<=4255||yr.Khmer(t))}var Mr,Ar=!1,Tr=null,Sr=!1,Er=new O,Cr={applyArabicShaping:null,processBidirectionalText:null,isLoaded:function(){return Sr||null!=Cr.applyArabicShaping}},Lr=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new mr,this.transition={})};Lr.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;r<n.length;r+=1)if(!kr(n[r].charCodeAt(0),e))return!1;return!0}(t,Cr.isLoaded())},Lr.prototype.crossFadingFactor=function(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)};var zr=function(t,e){this.property=t,this.value=e,this.expression=Se(void 0===e?t.specification.default:e,t.specification)};zr.prototype.isDataDriven=function(){return\\\"source\\\"===this.expression.kind||\\\"composite\\\"===this.expression.kind},zr.prototype.possiblyEvaluate=function(t){return this.property.possiblyEvaluate(this,t)};var Or=function(t){this.property=t,this.value=new zr(t,void 0)};Or.prototype.transitioned=function(t,e){return new Pr(this.property,this.value,e,p({},t.transition,this.transition),t.now)},Or.prototype.untransitioned=function(){return new Pr(this.property,this.value,null,{},0)};var Ir=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};Ir.prototype.getValue=function(t){return x(this._values[t].value.value)},Ir.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Or(this._values[t].property)),this._values[t].value=new zr(this._values[t].property,null===e?void 0:x(e))},Ir.prototype.getTransition=function(t){return x(this._values[t].transition)},Ir.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Or(this._values[t].property)),this._values[t].transition=x(e)||void 0},Ir.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e],i=this.getValue(n);void 0!==i&&(t[n]=i);var a=this.getTransition(n);void 0!==a&&(t[n+\\\"-transition\\\"]=a)}return t},Ir.prototype.transitioned=function(t,e){for(var r=new Dr(this._properties),n=0,i=Object.keys(this._values);n<i.length;n+=1){var a=i[n];r._values[a]=this._values[a].transitioned(t,e._values[a])}return r},Ir.prototype.untransitioned=function(){for(var t=new Dr(this._properties),e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e];t._values[n]=this._values[n].untransitioned()}return t};var Pr=function(t,e,r,n,i){this.property=t,this.value=e,this.begin=i+n.delay||0,this.end=this.begin+n.duration||0,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r)};Pr.prototype.possiblyEvaluate=function(t){var e=t.now||0,r=this.value.possiblyEvaluate(t),n=this.prior;if(n){if(e>this.end)return this.prior=null,r;if(this.value.isDataDriven())return this.prior=null,r;if(e<this.begin)return n.possiblyEvaluate(t);var i=(e-this.begin)/(this.end-this.begin);return this.property.interpolate(n.possiblyEvaluate(t),r,function(t){if(i<=0)return 0;if(i>=1)return 1;var e=i*i,r=e*i;return 4*(i<.5?r:3*(i-e)+r-.75)}())}return r};var Dr=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};Dr.prototype.possiblyEvaluate=function(t){for(var e=new Fr(this._properties),r=0,n=Object.keys(this._values);r<n.length;r+=1){var i=n[r];e._values[i]=this._values[i].possiblyEvaluate(t)}return e},Dr.prototype.hasTransition=function(){for(var t=0,e=Object.keys(this._values);t<e.length;t+=1){var r=e[t];if(this._values[r].prior)return!0}return!1};var Rr=function(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues)};Rr.prototype.getValue=function(t){return x(this._values[t].value)},Rr.prototype.setValue=function(t,e){this._values[t]=new zr(this._values[t].property,null===e?void 0:x(e))},Rr.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e],i=this.getValue(n);void 0!==i&&(t[n]=i)}return t},Rr.prototype.possiblyEvaluate=function(t){for(var e=new Fr(this._properties),r=0,n=Object.keys(this._values);r<n.length;r+=1){var i=n[r];e._values[i]=this._values[i].possiblyEvaluate(t)}return e};var Br=function(t,e,r){this.property=t,this.value=e,this.globals=r};Br.prototype.isConstant=function(){return\\\"constant\\\"===this.value.kind},Br.prototype.constantOr=function(t){return\\\"constant\\\"===this.value.kind?this.value.value:t},Br.prototype.evaluate=function(t){return this.property.evaluate(this.value,this.globals,t)};var Fr=function(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues)};Fr.prototype.get=function(t){return this._values[t]};var Nr=function(t){this.specification=t};Nr.prototype.possiblyEvaluate=function(t,e){return t.expression.evaluate(e)},Nr.prototype.interpolate=function(t,e,r){var n=kt[this.specification.type];return n?n(t,e,r):t};var jr=function(t){this.specification=t};jr.prototype.possiblyEvaluate=function(t,e){return\\\"constant\\\"===t.expression.kind||\\\"camera\\\"===t.expression.kind?new Br(this,{kind:\\\"constant\\\",value:t.expression.evaluate(e)},e):new Br(this,t.expression,e)},jr.prototype.interpolate=function(t,e,r){if(\\\"constant\\\"!==t.value.kind||\\\"constant\\\"!==e.value.kind)return t;if(void 0===t.value.value||void 0===e.value.value)return new Br(this,{kind:\\\"constant\\\",value:void 0},t.globals);var n=kt[this.specification.type];return n?new Br(this,{kind:\\\"constant\\\",value:n(t.value.value,e.value.value,r)},t.globals):t},jr.prototype.evaluate=function(t,e,r){return\\\"constant\\\"===t.kind?t.value:t.evaluate(e,r)};var Vr=function(t){this.specification=t};Vr.prototype.possiblyEvaluate=function(t,e){if(void 0!==t.value){if(\\\"constant\\\"===t.expression.kind){var r=t.expression.evaluate(e);return this._calculate(r,r,r,e)}return this._calculate(t.expression.evaluate(new Lr(Math.floor(e.zoom-1),e)),t.expression.evaluate(new Lr(Math.floor(e.zoom),e)),t.expression.evaluate(new Lr(Math.floor(e.zoom+1),e)),e)}},Vr.prototype._calculate=function(t,e,r,n){var i=n.zoom,a=i-Math.floor(i),o=n.crossFadingFactor();return i>n.zoomHistory.lastIntegerZoom?{from:t,to:e,fromScale:2,toScale:1,t:a+(1-a)*o}:{from:r,to:e,fromScale:.5,toScale:1,t:1-(1-o)*a}},Vr.prototype.interpolate=function(t){return t};var Ur=function(t){this.specification=t};Ur.prototype.possiblyEvaluate=function(t,e){return!!t.expression.evaluate(e)},Ur.prototype.interpolate=function(){return!1};var qr=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},t){var r=t[e],n=this.defaultPropertyValues[e]=new zr(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new Or(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({})}};pr(\\\"DataDrivenProperty\\\",jr),pr(\\\"DataConstantProperty\\\",Nr),pr(\\\"CrossFadedProperty\\\",Vr),pr(\\\"ColorRampProperty\\\",Ur);var Hr=function(t){function e(e,r){for(var n in t.call(this),this.id=e.id,this.metadata=e.metadata,this.type=e.type,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,this.visibility=\\\"visible\\\",\\\"background\\\"!==e.type&&(this.source=e.source,this.sourceLayer=e[\\\"source-layer\\\"],this.filter=e.filter),this._featureFilter=function(){return!0},r.layout&&(this._unevaluatedLayout=new Rr(r.layout)),this._transitionablePaint=new Ir(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getLayoutProperty=function(t){return\\\"visibility\\\"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){if(null!=e){var n=\\\"layers.\\\"+this.id+\\\".layout.\\\"+t;if(this._validate(or,n,t,e,r))return}\\\"visibility\\\"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=\\\"none\\\"===e?e:\\\"visible\\\"},e.prototype.getPaintProperty=function(t){return v(t,\\\"-transition\\\")?this._transitionablePaint.getTransition(t.slice(0,-\\\"-transition\\\".length)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(null!=e){var n=\\\"layers.\\\"+this.id+\\\".paint.\\\"+t;if(this._validate(ar,n,t,e,r))return}v(t,\\\"-transition\\\")?this._transitionablePaint.setTransition(t.slice(0,-\\\"-transition\\\".length),e||void 0):this._transitionablePaint.setValue(t,e)},e.prototype.isHidden=function(t){return!!(this.minzoom&&t<this.minzoom)||!!(this.maxzoom&&t>=this.maxzoom)||\\\"none\\\"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t)),this.paint=this._transitioningPaint.possiblyEvaluate(t)},e.prototype.serialize=function(){var t={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\\\"none\\\"===this.visibility&&(t.layout=t.layout||{},t.layout.visibility=\\\"none\\\"),y(t,function(t,e){return!(void 0===t||\\\"layout\\\"===e&&!Object.keys(t).length||\\\"paint\\\"===e&&!Object.keys(t).length)})},e.prototype._validate=function(t,e,r,n,i){return(!i||!1!==i.validate)&&sr(this,t.call(nr,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:I,style:{glyphs:!0,sprite:!0}}))},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e}(O),Gr={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Wr=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Yr=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Xr(t,e){void 0===e&&(e=1);var r=0,n=0;return{members:t.map(function(t){var i,a=(i=t.type,Gr[i].BYTES_PER_ELEMENT),o=r=Zr(r,Math.max(e,a)),s=t.components||1;return n=Math.max(n,a),r+=a*s,{name:t.name,type:t.type,components:s,offset:o}}),size:Zr(r,Math.max(n,e)),alignment:e}}function Zr(t,e){return Math.ceil(t/e)*e}Yr.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},Yr.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},Yr.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Yr.prototype.clear=function(){this.length=0},Yr.prototype.resize=function(t){this.reserve(t),this.length=t},Yr.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},Yr.prototype._refreshViews=function(){throw new Error(\\\"_refreshViews() must be implemented by each concrete StructArray layout\\\")};var $r=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;this.resize(r+1);var n=2*r;return this.int16[n+0]=t,this.int16[n+1]=e,r},e}(Yr);$r.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout2i4\\\",$r);var Jr=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;this.resize(i+1);var a=4*i;return this.int16[a+0]=t,this.int16[a+1]=e,this.int16[a+2]=r,this.int16[a+3]=n,i},e}(Yr);Jr.prototype.bytesPerElement=8,pr(\\\"StructArrayLayout4i8\\\",Jr);var Kr=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;this.resize(o+1);var s=6*o;return this.int16[s+0]=t,this.int16[s+1]=e,this.int16[s+2]=r,this.int16[s+3]=n,this.int16[s+4]=i,this.int16[s+5]=a,o},e}(Yr);Kr.prototype.bytesPerElement=12,pr(\\\"StructArrayLayout2i4i12\\\",Kr);var Qr=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s){var l=this.length;this.resize(l+1);var c=6*l,u=12*l;return this.int16[c+0]=t,this.int16[c+1]=e,this.int16[c+2]=r,this.int16[c+3]=n,this.uint8[u+8]=i,this.uint8[u+9]=a,this.uint8[u+10]=o,this.uint8[u+11]=s,l},e}(Yr);Qr.prototype.bytesPerElement=12,pr(\\\"StructArrayLayout4i4ub12\\\",Qr);var tn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s){var l=this.length;this.resize(l+1);var c=8*l;return this.int16[c+0]=t,this.int16[c+1]=e,this.int16[c+2]=r,this.int16[c+3]=n,this.uint16[c+4]=i,this.uint16[c+5]=a,this.uint16[c+6]=o,this.uint16[c+7]=s,l},e}(Yr);tn.prototype.bytesPerElement=16,pr(\\\"StructArrayLayout4i4ui16\\\",tn);var en=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;this.resize(n+1);var i=3*n;return this.float32[i+0]=t,this.float32[i+1]=e,this.float32[i+2]=r,n},e}(Yr);en.prototype.bytesPerElement=12,pr(\\\"StructArrayLayout3f12\\\",en);var rn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;this.resize(e+1);var r=1*e;return this.uint32[r+0]=t,e},e}(Yr);rn.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout1ul4\\\",rn);var nn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.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)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u){var f=this.length;this.resize(f+1);var h=12*f,p=6*f;return this.int16[h+0]=t,this.int16[h+1]=e,this.int16[h+2]=r,this.int16[h+3]=n,this.int16[h+4]=i,this.int16[h+5]=a,this.uint32[p+3]=o,this.uint16[h+8]=s,this.uint16[h+9]=l,this.int16[h+10]=c,this.int16[h+11]=u,f},e}(Yr);nn.prototype.bytesPerElement=24,pr(\\\"StructArrayLayout6i1ul2ui2i24\\\",nn);var an=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;this.resize(o+1);var s=6*o;return this.int16[s+0]=t,this.int16[s+1]=e,this.int16[s+2]=r,this.int16[s+3]=n,this.int16[s+4]=i,this.int16[s+5]=a,o},e}(Yr);an.prototype.bytesPerElement=12,pr(\\\"StructArrayLayout2i2i2i12\\\",an);var on=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;this.resize(r+1);var n=4*r;return this.uint8[n+0]=t,this.uint8[n+1]=e,r},e}(Yr);on.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout2ub4\\\",on);var sn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.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)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p){var d=this.length;this.resize(d+1);var g=20*d,v=10*d,m=40*d;return this.int16[g+0]=t,this.int16[g+1]=e,this.uint16[g+2]=r,this.uint16[g+3]=n,this.uint32[v+2]=i,this.uint32[v+3]=a,this.uint32[v+4]=o,this.uint16[g+10]=s,this.uint16[g+11]=l,this.uint16[g+12]=c,this.float32[v+7]=u,this.float32[v+8]=f,this.uint8[m+36]=h,this.uint8[m+37]=p,d},e}(Yr);sn.prototype.bytesPerElement=40,pr(\\\"StructArrayLayout2i2ui3ul3ui2f2ub40\\\",sn);var ln=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;this.resize(e+1);var r=1*e;return this.float32[r+0]=t,e},e}(Yr);ln.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout1f4\\\",ln);var cn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;this.resize(n+1);var i=3*n;return this.int16[i+0]=t,this.int16[i+1]=e,this.int16[i+2]=r,n},e}(Yr);cn.prototype.bytesPerElement=6,pr(\\\"StructArrayLayout3i6\\\",cn);var un=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;this.resize(n+1);var i=2*n,a=4*n;return this.uint32[i+0]=t,this.uint16[a+2]=e,this.uint16[a+3]=r,n},e}(Yr);un.prototype.bytesPerElement=8,pr(\\\"StructArrayLayout1ul2ui8\\\",un);var fn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;this.resize(n+1);var i=3*n;return this.uint16[i+0]=t,this.uint16[i+1]=e,this.uint16[i+2]=r,n},e}(Yr);fn.prototype.bytesPerElement=6,pr(\\\"StructArrayLayout3ui6\\\",fn);var hn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;this.resize(r+1);var n=2*r;return this.uint16[n+0]=t,this.uint16[n+1]=e,r},e}(Yr);hn.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout2ui4\\\",hn);var pn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;this.resize(r+1);var n=2*r;return this.float32[n+0]=t,this.float32[n+1]=e,r},e}(Yr);pn.prototype.bytesPerElement=8,pr(\\\"StructArrayLayout2f8\\\",pn);var dn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;this.resize(i+1);var a=4*i;return this.float32[a+0]=t,this.float32[a+1]=e,this.float32[a+2]=r,this.float32[a+3]=n,i},e}(Yr);dn.prototype.bytesPerElement=16,pr(\\\"StructArrayLayout4f16\\\",dn);var gn=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={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},radius:{configurable:!0},signedDistanceFromAnchor:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointX.set=function(t){this._structArray.int16[this._pos2+0]=t},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.anchorPointY.set=function(t){this._structArray.int16[this._pos2+1]=t},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.x1.set=function(t){this._structArray.int16[this._pos2+2]=t},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.y1.set=function(t){this._structArray.int16[this._pos2+3]=t},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.x2.set=function(t){this._structArray.int16[this._pos2+4]=t},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.y2.set=function(t){this._structArray.int16[this._pos2+5]=t},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.featureIndex.set=function(t){this._structArray.uint32[this._pos4+3]=t},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.sourceLayerIndex.set=function(t){this._structArray.uint16[this._pos2+8]=t},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.bucketIndex.set=function(t){this._structArray.uint16[this._pos2+9]=t},r.radius.get=function(){return this._structArray.int16[this._pos2+10]},r.radius.set=function(t){this._structArray.int16[this._pos2+10]=t},r.signedDistanceFromAnchor.get=function(){return this._structArray.int16[this._pos2+11]},r.signedDistanceFromAnchor.set=function(t){this._structArray.int16[this._pos2+11]=t},r.anchorPoint.get=function(){return new l(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(Wr);gn.prototype.size=24;var vn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new gn(this,t)},e}(nn);pr(\\\"CollisionBoxArray\\\",vn);var mn=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={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},hidden:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorX.set=function(t){this._structArray.int16[this._pos2+0]=t},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.anchorY.set=function(t){this._structArray.int16[this._pos2+1]=t},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.glyphStartIndex.set=function(t){this._structArray.uint16[this._pos2+2]=t},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.numGlyphs.set=function(t){this._structArray.uint16[this._pos2+3]=t},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.vertexStartIndex.set=function(t){this._structArray.uint32[this._pos4+2]=t},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineStartIndex.set=function(t){this._structArray.uint32[this._pos4+3]=t},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.lineLength.set=function(t){this._structArray.uint32[this._pos4+4]=t},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.segment.set=function(t){this._structArray.uint16[this._pos2+10]=t},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.lowerSize.set=function(t){this._structArray.uint16[this._pos2+11]=t},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.upperSize.set=function(t){this._structArray.uint16[this._pos2+12]=t},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetX.set=function(t){this._structArray.float32[this._pos4+7]=t},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.lineOffsetY.set=function(t){this._structArray.float32[this._pos4+8]=t},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.writingMode.set=function(t){this._structArray.uint8[this._pos1+36]=t},r.hidden.get=function(){return this._structArray.uint8[this._pos1+37]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+37]=t},Object.defineProperties(e.prototype,r),e}(Wr);mn.prototype.size=40;var yn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new mn(this,t)},e}(sn);pr(\\\"PlacedSymbolArray\\\",yn);var xn=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={offsetX:{configurable:!0}};return r.offsetX.get=function(){return this._structArray.float32[this._pos4+0]},r.offsetX.set=function(t){this._structArray.float32[this._pos4+0]=t},Object.defineProperties(e.prototype,r),e}(Wr);xn.prototype.size=4;var bn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e.prototype.get=function(t){return new xn(this,t)},e}(ln);pr(\\\"GlyphOffsetArray\\\",bn);var _n=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={x:{configurable:!0},y:{configurable:!0},tileUnitDistanceFromAnchor:{configurable:!0}};return r.x.get=function(){return this._structArray.int16[this._pos2+0]},r.x.set=function(t){this._structArray.int16[this._pos2+0]=t},r.y.get=function(){return this._structArray.int16[this._pos2+1]},r.y.set=function(t){this._structArray.int16[this._pos2+1]=t},r.tileUnitDistanceFromAnchor.get=function(){return this._structArray.int16[this._pos2+2]},r.tileUnitDistanceFromAnchor.set=function(t){this._structArray.int16[this._pos2+2]=t},Object.defineProperties(e.prototype,r),e}(Wr);_n.prototype.size=6;var wn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e.prototype.get=function(t){return new _n(this,t)},e}(cn);pr(\\\"SymbolLineVertexArray\\\",wn);var kn=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.featureIndex.set=function(t){this._structArray.uint32[this._pos4+0]=t},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.sourceLayerIndex.set=function(t){this._structArray.uint16[this._pos2+2]=t},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},r.bucketIndex.set=function(t){this._structArray.uint16[this._pos2+3]=t},Object.defineProperties(e.prototype,r),e}(Wr);kn.prototype.size=8;var Mn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new kn(this,t)},e}(un);pr(\\\"FeatureIndexArray\\\",Mn);var An=Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"}],4).members,Tn=function(t){void 0===t&&(t=[]),this.segments=t};Tn.prototype.prepareSegment=function(t,e,r){var n=this.segments[this.segments.length-1];return t>Tn.MAX_VERTEX_ARRAY_LENGTH&&_(\\\"Max vertices per segment is \\\"+Tn.MAX_VERTEX_ARRAY_LENGTH+\\\": bucket requested \\\"+t),(!n||n.vertexLength+t>Tn.MAX_VERTEX_ARRAY_LENGTH)&&(n={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},this.segments.push(n)),n},Tn.prototype.get=function(){return this.segments},Tn.prototype.destroy=function(){for(var t=0,e=this.segments;t<e.length;t+=1){var r=e[t];for(var n in r.vaos)r.vaos[n].destroy()}},Tn.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,pr(\\\"SegmentVector\\\",Tn);var Sn=function(t,e){return 256*(t=h(Math.floor(t),0,255))+h(Math.floor(e),0,255)};function En(t){return[Sn(255*t.r,255*t.g),Sn(255*t.b,255*t.a)]}var Cn=function(t,e,r){this.value=t,this.name=e,this.type=r,this.statistics={max:-1/0}};Cn.prototype.defines=function(){return[\\\"#define HAS_UNIFORM_u_\\\"+this.name]},Cn.prototype.populatePaintArray=function(){},Cn.prototype.upload=function(){},Cn.prototype.destroy=function(){},Cn.prototype.setUniforms=function(t,e,r,n){var i=n.constantOr(this.value),a=t.gl;\\\"color\\\"===this.type?a.uniform4f(e.uniforms[\\\"u_\\\"+this.name],i.r,i.g,i.b,i.a):a.uniform1f(e.uniforms[\\\"u_\\\"+this.name],i)};var Ln=function(t,e,r){this.expression=t,this.name=e,this.type=r,this.statistics={max:-1/0};var n=\\\"color\\\"===r?pn:ln;this.paintVertexAttributes=[{name:\\\"a_\\\"+e,type:\\\"Float32\\\",components:\\\"color\\\"===r?2:1,offset:0}],this.paintVertexArray=new n};Ln.prototype.defines=function(){return[]},Ln.prototype.populatePaintArray=function(t,e){var r=this.paintVertexArray,n=r.length;r.reserve(t);var i=this.expression.evaluate(new Lr(0),e);if(\\\"color\\\"===this.type)for(var a=En(i),o=n;o<t;o++)r.emplaceBack(a[0],a[1]);else{for(var s=n;s<t;s++)r.emplaceBack(i);this.statistics.max=Math.max(this.statistics.max,i)}},Ln.prototype.upload=function(t){this.paintVertexArray&&(this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes))},Ln.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},Ln.prototype.setUniforms=function(t,e){t.gl.uniform1f(e.uniforms[\\\"a_\\\"+this.name+\\\"_t\\\"],0)};var zn=function(t,e,r,n,i){this.expression=t,this.name=e,this.type=r,this.useIntegerZoom=n,this.zoom=i,this.statistics={max:-1/0};var a=\\\"color\\\"===r?dn:pn;this.paintVertexAttributes=[{name:\\\"a_\\\"+e,type:\\\"Float32\\\",components:\\\"color\\\"===r?4:2,offset:0}],this.paintVertexArray=new a};zn.prototype.defines=function(){return[]},zn.prototype.populatePaintArray=function(t,e){var r=this.paintVertexArray,n=r.length;r.reserve(t);var i=this.expression.evaluate(new Lr(this.zoom),e),a=this.expression.evaluate(new Lr(this.zoom+1),e);if(\\\"color\\\"===this.type)for(var o=En(i),s=En(a),l=n;l<t;l++)r.emplaceBack(o[0],o[1],s[0],s[1]);else{for(var c=n;c<t;c++)r.emplaceBack(i,a);this.statistics.max=Math.max(this.statistics.max,i,a)}},zn.prototype.upload=function(t){this.paintVertexArray&&(this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes))},zn.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},zn.prototype.interpolationFactor=function(t){return this.useIntegerZoom?this.expression.interpolationFactor(Math.floor(t),this.zoom,this.zoom+1):this.expression.interpolationFactor(t,this.zoom,this.zoom+1)},zn.prototype.setUniforms=function(t,e,r){t.gl.uniform1f(e.uniforms[\\\"a_\\\"+this.name+\\\"_t\\\"],this.interpolationFactor(r.zoom))};var On=function(){this.binders={},this.cacheKey=\\\"\\\",this._buffers=[]};On.createDynamic=function(t,e,r){var n=new On,i=[];for(var a in t.paint._values)if(r(a)){var o=t.paint.get(a);if(o instanceof Br&&o.property.specification[\\\"property-function\\\"]){var s=Pn(a,t.type),l=o.property.specification.type,c=o.property.useIntegerZoom;\\\"constant\\\"===o.value.kind?(n.binders[a]=new Cn(o.value,s,l),i.push(\\\"/u_\\\"+s)):\\\"source\\\"===o.value.kind?(n.binders[a]=new Ln(o.value,s,l),i.push(\\\"/a_\\\"+s)):(n.binders[a]=new zn(o.value,s,l,c,e),i.push(\\\"/z_\\\"+s))}}return n.cacheKey=i.sort().join(\\\"\\\"),n},On.prototype.populatePaintArrays=function(t,e){for(var r in this.binders)this.binders[r].populatePaintArray(t,e)},On.prototype.defines=function(){var t=[];for(var e in this.binders)t.push.apply(t,this.binders[e].defines());return t},On.prototype.setUniforms=function(t,e,r,n){for(var i in this.binders)this.binders[i].setUniforms(t,e,n,r.get(i))},On.prototype.getPaintVertexBuffers=function(){return this._buffers},On.prototype.upload=function(t){for(var e in this.binders)this.binders[e].upload(t);var r=[];for(var n in this.binders){var i=this.binders[n];(i instanceof Ln||i instanceof zn)&&i.paintVertexBuffer&&r.push(i.paintVertexBuffer)}this._buffers=r},On.prototype.destroy=function(){for(var t in this.binders)this.binders[t].destroy()};var In=function(t,e,r,n){void 0===n&&(n=function(){return!0}),this.programConfigurations={};for(var i=0,a=e;i<a.length;i+=1){var o=a[i];this.programConfigurations[o.id]=On.createDynamic(o,r,n),this.programConfigurations[o.id].layoutAttributes=t}};function Pn(t,e){return{\\\"text-opacity\\\":\\\"opacity\\\",\\\"icon-opacity\\\":\\\"opacity\\\",\\\"text-color\\\":\\\"fill_color\\\",\\\"icon-color\\\":\\\"fill_color\\\",\\\"text-halo-color\\\":\\\"halo_color\\\",\\\"icon-halo-color\\\":\\\"halo_color\\\",\\\"text-halo-blur\\\":\\\"halo_blur\\\",\\\"icon-halo-blur\\\":\\\"halo_blur\\\",\\\"text-halo-width\\\":\\\"halo_width\\\",\\\"icon-halo-width\\\":\\\"halo_width\\\",\\\"line-gap-width\\\":\\\"gapwidth\\\"}[t]||t.replace(e+\\\"-\\\",\\\"\\\").replace(/-/g,\\\"_\\\")}In.prototype.populatePaintArrays=function(t,e){for(var r in this.programConfigurations)this.programConfigurations[r].populatePaintArrays(t,e)},In.prototype.get=function(t){return this.programConfigurations[t]},In.prototype.upload=function(t){for(var e in this.programConfigurations)this.programConfigurations[e].upload(t)},In.prototype.destroy=function(){for(var t in this.programConfigurations)this.programConfigurations[t].destroy()},pr(\\\"ConstantBinder\\\",Cn),pr(\\\"SourceExpressionBinder\\\",Ln),pr(\\\"CompositeExpressionBinder\\\",zn),pr(\\\"ProgramConfiguration\\\",On,{omit:[\\\"_buffers\\\"]}),pr(\\\"ProgramConfigurationSet\\\",In);var Dn=8192,Rn=(16,{min:-1*Math.pow(2,15),max:Math.pow(2,15)-1});function Bn(t){for(var e=Dn/t.extent,r=t.loadGeometry(),n=0;n<r.length;n++)for(var i=r[n],a=0;a<i.length;a++){var o=i[a];o.x=Math.round(o.x*e),o.y=Math.round(o.y*e),(o.x<Rn.min||o.x>Rn.max||o.y<Rn.min||o.y>Rn.max)&&_(\\\"Geometry exceeds allowed extent, reduce your vector tile buffer size\\\")}return r}function Fn(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2)}var Nn=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new $r,this.indexArray=new fn,this.segments=new Tn,this.programConfigurations=new In(An,t.layers,t.zoom)};function jn(t,e,r){for(var n=0;n<t.length;n++){var i=t[n];if(Zn(i,e))return!0;if(Wn(e,i,r))return!0}return!1}function Vn(t,e){if(1===t.length&&1===t[0].length)return Xn(e,t[0][0]);for(var r=0;r<e.length;r++)for(var n=e[r],i=0;i<n.length;i++)if(Xn(t,n[i]))return!0;for(var a=0;a<t.length;a++){for(var o=t[a],s=0;s<o.length;s++)if(Xn(e,o[s]))return!0;for(var l=0;l<e.length;l++)if(Hn(o,e[l]))return!0}return!1}function Un(t,e,r){for(var n=0;n<e.length;n++)for(var i=e[n],a=0;a<t.length;a++){var o=t[a];if(o.length>=3)for(var s=0;s<i.length;s++)if(Zn(o,i[s]))return!0;if(qn(o,i,r))return!0}return!1}function qn(t,e,r){if(t.length>1){if(Hn(t,e))return!0;for(var n=0;n<e.length;n++)if(Wn(e[n],t,r))return!0}for(var i=0;i<t.length;i++)if(Wn(t[i],e,r))return!0;return!1}function Hn(t,e){if(0===t.length||0===e.length)return!1;for(var r=0;r<t.length-1;r++)for(var n=t[r],i=t[r+1],a=0;a<e.length-1;a++)if(Gn(n,i,e[a],e[a+1]))return!0;return!1}function Gn(t,e,r,n){return w(t,r,n)!==w(e,r,n)&&w(t,e,r)!==w(t,e,n)}function Wn(t,e,r){var n=r*r;if(1===e.length)return t.distSqr(e[0])<n;for(var i=1;i<e.length;i++)if(Yn(t,e[i-1],e[i])<n)return!0;return!1}function Yn(t,e,r){var n=e.distSqr(r);if(0===n)return t.distSqr(e);var i=((t.x-e.x)*(r.x-e.x)+(t.y-e.y)*(r.y-e.y))/n;return i<0?t.distSqr(e):i>1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function Xn(t,e){for(var r,n,i,a=!1,o=0;o<t.length;o++)for(var s=0,l=(r=t[o]).length-1;s<r.length;l=s++)n=r[s],i=r[l],n.y>e.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Zn(t,e){for(var r=!1,n=0,i=t.length-1;n<t.length;i=n++){var a=t[n],o=t[i];a.y>e.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}function $n(t,e,r){var n=e.paint.get(t).value;return\\\"constant\\\"===n.kind?n.value:r.programConfigurations.get(e.id).binders[t].statistics.max}function Jn(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Kn(t,e,r,n,i){if(!e[0]&&!e[1])return t;var a=l.convert(e);\\\"viewport\\\"===r&&a._rotate(-n);for(var o=[],s=0;s<t.length;s++){for(var c=t[s],u=[],f=0;f<c.length;f++)u.push(c[f].sub(a._mult(i)));o.push(u)}return o}Nn.prototype.populate=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.feature,o=i.index,s=i.sourceLayerIndex;if(this.layers[0]._featureFilter(new Lr(this.zoom),a)){var l=Bn(a);this.addFeature(a,l),e.featureIndex.insert(a,l,o,s,this.index)}}},Nn.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Nn.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,An),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.programConfigurations.upload(t)},Nn.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},Nn.prototype.addFeature=function(t,e){for(var r=0,n=e;r<n.length;r+=1)for(var i=0,a=n[r];i<a.length;i+=1){var o=a[i],s=o.x,l=o.y;if(!(s<0||s>=Dn||l<0||l>=Dn)){var c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),u=c.vertexLength;Fn(this.layoutVertexArray,s,l,-1,-1),Fn(this.layoutVertexArray,s,l,1,-1),Fn(this.layoutVertexArray,s,l,1,1),Fn(this.layoutVertexArray,s,l,-1,1),this.indexArray.emplaceBack(u,u+1,u+2),this.indexArray.emplaceBack(u,u+3,u+2),c.vertexLength+=4,c.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t)},pr(\\\"CircleBucket\\\",Nn,{omit:[\\\"layers\\\"]});var Qn={paint:new qr({\\\"circle-radius\\\":new jr(I.paint_circle[\\\"circle-radius\\\"]),\\\"circle-color\\\":new jr(I.paint_circle[\\\"circle-color\\\"]),\\\"circle-blur\\\":new jr(I.paint_circle[\\\"circle-blur\\\"]),\\\"circle-opacity\\\":new jr(I.paint_circle[\\\"circle-opacity\\\"]),\\\"circle-translate\\\":new Nr(I.paint_circle[\\\"circle-translate\\\"]),\\\"circle-translate-anchor\\\":new Nr(I.paint_circle[\\\"circle-translate-anchor\\\"]),\\\"circle-pitch-scale\\\":new Nr(I.paint_circle[\\\"circle-pitch-scale\\\"]),\\\"circle-pitch-alignment\\\":new Nr(I.paint_circle[\\\"circle-pitch-alignment\\\"]),\\\"circle-stroke-width\\\":new jr(I.paint_circle[\\\"circle-stroke-width\\\"]),\\\"circle-stroke-color\\\":new jr(I.paint_circle[\\\"circle-stroke-color\\\"]),\\\"circle-stroke-opacity\\\":new jr(I.paint_circle[\\\"circle-stroke-opacity\\\"])})},ti=i(function(t,e){var r;t.exports=((r=new Float32Array(3))[0]=0,r[1]=0,r[2]=0,function(){var t=new Float32Array(4);t[0]=0,t[1]=0,t[2]=0,t[3]=0}(),{vec3:{transformMat3:function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},vec4:{transformMat4:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},mat2:{create:function(){var t=new Float32Array(4);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},rotate:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=Math.sin(r),l=Math.cos(r);return t[0]=n*l+a*s,t[1]=i*l+o*s,t[2]=n*-s+a*l,t[3]=i*-s+o*l,t},scale:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=r[0],l=r[1];return t[0]=n*s,t[1]=i*s,t[2]=a*l,t[3]=o*l,t}},mat3:{create:function(){var t=new Float32Array(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},fromRotation:function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=-r,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}},mat4:{create:function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},translate:function(t,e,r){var n,i,a,o,s,l,c,u,f,h,p,d,g=r[0],v=r[1],m=r[2];return e===t?(t[12]=e[0]*g+e[4]*v+e[8]*m+e[12],t[13]=e[1]*g+e[5]*v+e[9]*m+e[13],t[14]=e[2]*g+e[6]*v+e[10]*m+e[14],t[15]=e[3]*g+e[7]*v+e[11]*m+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=c,t[7]=u,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*g+s*v+f*m+e[12],t[13]=i*g+l*v+h*m+e[13],t[14]=a*g+c*v+p*m+e[14],t[15]=o*g+u*v+d*m+e[15]),t},scale:function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},multiply:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],g=e[12],v=e[13],m=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*g,t[1]=x*i+b*l+_*h+w*v,t[2]=x*a+b*c+_*p+w*m,t[3]=x*o+b*u+_*d+w*y,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*g,t[5]=x*i+b*l+_*h+w*v,t[6]=x*a+b*c+_*p+w*m,t[7]=x*o+b*u+_*d+w*y,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*g,t[9]=x*i+b*l+_*h+w*v,t[10]=x*a+b*c+_*p+w*m,t[11]=x*o+b*u+_*d+w*y,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*g,t[13]=x*i+b*l+_*h+w*v,t[14]=x*a+b*c+_*p+w*m,t[15]=x*o+b*u+_*d+w*y,t},perspective:function(t,e,r,n,i){var a=1/Math.tan(e/2),o=1/(n-i);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(i+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*i*n*o,t[15]=0,t},rotateX:function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],c=e[8],u=e[9],f=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+c*n,t[5]=o*i+u*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=c*i-a*n,t[9]=u*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t},rotateZ:function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],c=e[4],u=e[5],f=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+c*n,t[1]=o*i+u*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=c*i-a*n,t[5]=u*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t},invert:function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],f=e[9],h=e[10],p=e[11],d=e[12],g=e[13],v=e[14],m=e[15],y=r*s-n*o,x=r*l-i*o,b=r*c-a*o,_=n*l-i*s,w=n*c-a*s,k=i*c-a*l,M=u*g-f*d,A=u*v-h*d,T=u*m-p*d,S=f*v-h*g,E=f*m-p*g,C=h*m-p*v,L=y*C-x*E+b*S+_*T-w*A+k*M;return L?(L=1/L,t[0]=(s*C-l*E+c*S)*L,t[1]=(i*E-n*C-a*S)*L,t[2]=(g*k-v*w+m*_)*L,t[3]=(h*w-f*k-p*_)*L,t[4]=(l*T-o*C-c*A)*L,t[5]=(r*C-i*T+a*A)*L,t[6]=(v*b-d*k-m*x)*L,t[7]=(u*k-h*b+p*x)*L,t[8]=(o*E-s*T+c*M)*L,t[9]=(n*T-r*E-a*M)*L,t[10]=(d*w-g*b+m*y)*L,t[11]=(f*b-u*w-p*y)*L,t[12]=(s*A-o*S-l*M)*L,t[13]=(r*S-n*A+i*M)*L,t[14]=(g*x-d*_-v*y)*L,t[15]=(u*_-f*x+h*y)*L,t):null},ortho:function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),c=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*c,t[15]=1,t}}})}),ei=(ti.vec3,ti.vec4),ri=(ti.mat2,ti.mat3,ti.mat4),ni=function(t){function e(e){t.call(this,e,Qn)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new Nn(t)},e.prototype.queryRadius=function(t){var e=t;return $n(\\\"circle-radius\\\",this,e)+$n(\\\"circle-stroke-width\\\",this,e)+Jn(this.paint.get(\\\"circle-translate\\\"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o){for(var s=Kn(t,this.paint.get(\\\"circle-translate\\\"),this.paint.get(\\\"circle-translate-anchor\\\"),i.angle,a),l=this.paint.get(\\\"circle-radius\\\").evaluate(e)+this.paint.get(\\\"circle-stroke-width\\\").evaluate(e),c=\\\"map\\\"===this.paint.get(\\\"circle-pitch-alignment\\\"),u=c?s:function(t,e,r){return s.map(function(t){return t.map(function(t){return ii(t,e,r)})})}(0,o,i),f=c?l*a:l,h=0,p=r;h<p.length;h+=1)for(var d=0,g=p[h];d<g.length;d+=1){var v=g[d],m=c?v:ii(v,o,i),y=f,x=ei.transformMat4([],[v.x,v.y,0,1],o);if(\\\"viewport\\\"===this.paint.get(\\\"circle-pitch-scale\\\")&&\\\"map\\\"===this.paint.get(\\\"circle-pitch-alignment\\\")?y*=x[3]/i.cameraToCenterDistance:\\\"map\\\"===this.paint.get(\\\"circle-pitch-scale\\\")&&\\\"viewport\\\"===this.paint.get(\\\"circle-pitch-alignment\\\")&&(y*=i.cameraToCenterDistance/x[3]),jn(u,m,y))return!0}return!1},e}(Hr);function ii(t,e,r){var n=ei.transformMat4([],[t.x,t.y,0,1],e);return new l((n[0]/n[3]+1)*r.width*.5,(n[1]/n[3]+1)*r.height*.5)}var ai=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Nn);function oi(t,e,r,n){var i=e.width,a=e.height;if(n){if(n.length!==i*a*r)throw new RangeError(\\\"mismatched image size\\\")}else n=new Uint8Array(i*a*r);return t.width=i,t.height=a,t.data=n,t}function si(t,e,r){var n=e.width,i=e.height;if(n!==t.width||i!==t.height){var a=oi({},{width:n,height:i},r);li(t,a,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,i)},r),t.width=n,t.height=i,t.data=a.data}}function li(t,e,r,n,i,a){if(0===i.width||0===i.height)return e;if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError(\\\"out of range source coordinates for image copy\\\");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError(\\\"out of range destination coordinates for image copy\\\");for(var o=t.data,s=e.data,l=0;l<i.height;l++)for(var c=((r.y+l)*t.width+r.x)*a,u=((n.y+l)*e.width+n.x)*a,f=0;f<i.width*a;f++)s[u+f]=o[c+f];return e}pr(\\\"HeatmapBucket\\\",ai,{omit:[\\\"layers\\\"]});var ci=function(t,e){oi(this,t,1,e)};ci.prototype.resize=function(t){si(this,t,1)},ci.prototype.clone=function(){return new ci({width:this.width,height:this.height},new Uint8Array(this.data))},ci.copy=function(t,e,r,n,i){li(t,e,r,n,i,1)};var ui=function(t,e){oi(this,t,4,e)};ui.prototype.resize=function(t){si(this,t,4)},ui.prototype.clone=function(){return new ui({width:this.width,height:this.height},new Uint8Array(this.data))},ui.copy=function(t,e,r,n,i){li(t,e,r,n,i,4)},pr(\\\"AlphaImage\\\",ci),pr(\\\"RGBAImage\\\",ui);var fi={paint:new qr({\\\"heatmap-radius\\\":new jr(I.paint_heatmap[\\\"heatmap-radius\\\"]),\\\"heatmap-weight\\\":new jr(I.paint_heatmap[\\\"heatmap-weight\\\"]),\\\"heatmap-intensity\\\":new Nr(I.paint_heatmap[\\\"heatmap-intensity\\\"]),\\\"heatmap-color\\\":new Ur(I.paint_heatmap[\\\"heatmap-color\\\"]),\\\"heatmap-opacity\\\":new Nr(I.paint_heatmap[\\\"heatmap-opacity\\\"])})};function hi(t,e){for(var r=new Uint8Array(1024),n={},i=0,a=0;i<256;i++,a+=4){n[e]=i/255;var o=t.evaluate(n);r[a+0]=Math.floor(255*o.r/o.a),r[a+1]=Math.floor(255*o.g/o.a),r[a+2]=Math.floor(255*o.b/o.a),r[a+3]=Math.floor(255*o.a)}return new ui({width:256,height:1},r)}var pi=function(t){function e(e){t.call(this,e,fi),this._updateColorRamp()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new ai(t)},e.prototype.setPaintProperty=function(e,r,n){t.prototype.setPaintProperty.call(this,e,r,n),\\\"heatmap-color\\\"===e&&this._updateColorRamp()},e.prototype._updateColorRamp=function(){var t=this._transitionablePaint._values[\\\"heatmap-color\\\"].value.expression;this.colorRamp=hi(t,\\\"heatmapDensity\\\"),this.colorRampTexture=null},e.prototype.resize=function(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)},e.prototype.queryRadius=function(){return 0},e.prototype.queryIntersectsFeature=function(){return!1},e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get(\\\"heatmap-opacity\\\")&&\\\"none\\\"!==this.visibility},e}(Hr),di={paint:new qr({\\\"hillshade-illumination-direction\\\":new Nr(I.paint_hillshade[\\\"hillshade-illumination-direction\\\"]),\\\"hillshade-illumination-anchor\\\":new Nr(I.paint_hillshade[\\\"hillshade-illumination-anchor\\\"]),\\\"hillshade-exaggeration\\\":new Nr(I.paint_hillshade[\\\"hillshade-exaggeration\\\"]),\\\"hillshade-shadow-color\\\":new Nr(I.paint_hillshade[\\\"hillshade-shadow-color\\\"]),\\\"hillshade-highlight-color\\\":new Nr(I.paint_hillshade[\\\"hillshade-highlight-color\\\"]),\\\"hillshade-accent-color\\\":new Nr(I.paint_hillshade[\\\"hillshade-accent-color\\\"])})},gi=function(t){function e(e){t.call(this,e,di)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get(\\\"hillshade-exaggeration\\\")&&\\\"none\\\"!==this.visibility},e}(Hr),vi=Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"}],4).members,mi=xi,yi=xi;function xi(t,e,r){r=r||2;var n,i,a,o,s,l,c,u=e&&e.length,f=u?e[0]*r:t.length,h=bi(t,0,f,r,!0),p=[];if(!h)return p;if(u&&(h=function(t,e,r,n){var i,a,o,s=[];for(i=0,a=e.length;i<a;i++)(o=bi(t,e[i]*n,i<a-1?e[i+1]*n:t.length,n,!1))===o.next&&(o.steiner=!0),s.push(Li(o));for(s.sort(Si),i=0;i<s.length;i++)Ei(s[i],r),r=_i(r,r.next);return r}(t,e,h,r)),t.length>80*r){n=a=t[0],i=o=t[1];for(var d=r;d<f;d+=r)(s=t[d])<n&&(n=s),(l=t[d+1])<i&&(i=l),s>a&&(a=s),l>o&&(o=l);c=0!==(c=Math.max(a-n,o-i))?1/c:0}return wi(h,p,r,n,i,c),p}function bi(t,e,r,n,i){var a,o;if(i===Vi(t,e,r,n)>0)for(a=e;a<r;a+=n)o=Fi(a,t[a],t[a+1],o);else for(a=r-n;a>=e;a-=n)o=Fi(a,t[a],t[a+1],o);return o&&Pi(o,o.next)&&(Ni(o),o=o.next),o}function _i(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!Pi(n,n.next)&&0!==Ii(n.prev,n,n.next))n=n.next;else{if(Ni(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function wi(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=Ci(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e<c&&(s++,n=n.nextZ);e++);for(l=c;s>0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,c=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?Mi(t,n,i,a):ki(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),Ni(t),t=l.next,c=l.next;else if((t=l)===c){o?1===o?wi(t=Ai(t,e,r),e,r,n,i,a,2):2===o&&Ti(t,e,r,n,i,a):wi(_i(t),e,r,n,i,a,1);break}}}function ki(t){var e=t.prev,r=t,n=t.next;if(Ii(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(zi(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&Ii(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function Mi(t,e,r,n){var i=t.prev,a=t,o=t.next;if(Ii(i,a,o)>=0)return!1;for(var s=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,l=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=Ci(s,l,e,r,n),h=Ci(c,u,e,r,n),p=t.prevZ,d=t.nextZ;p&&p.z>=f&&d&&d.z<=h;){if(p!==t.prev&&p!==t.next&&zi(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&Ii(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,d!==t.prev&&d!==t.next&&zi(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&Ii(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&zi(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&Ii(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;d&&d.z<=h;){if(d!==t.prev&&d!==t.next&&zi(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&Ii(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function Ai(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!Pi(i,a)&&Di(i,n,n.next,a)&&Ri(i,a)&&Ri(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Ni(n),Ni(n.next),n=t=a),n=n.next}while(n!==t);return n}function Ti(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Oi(o,s)){var l=Bi(o,s);return o=_i(o,o.next),l=_i(l,l.next),wi(o,e,r,n,i,a),void wi(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function Si(t,e){return t.x-e.x}function Ei(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===o)return r.prev;var l,c=r,u=r.x,f=r.y,h=1/0;for(n=r.next;n!==c;)i>=n.x&&n.x>=u&&i!==n.x&&zi(a<f?i:o,a,u,f,a<f?o:i,a,n.x,n.y)&&((l=Math.abs(a-n.y)/(i-n.x))<h||l===h&&n.x>r.x)&&Ri(n,t)&&(r=n,h=l),n=n.next;return r}(t,e)){var r=Bi(e,t);_i(r,r.next)}}function Ci(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Li(t){var e=t,r=t;do{e.x<r.x&&(r=e),e=e.next}while(e!==t);return r}function zi(t,e,r,n,i,a,o,s){return(i-o)*(e-s)-(t-o)*(a-s)>=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function Oi(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&Di(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&Ri(t,e)&&Ri(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)}function Ii(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Pi(t,e){return t.x===e.x&&t.y===e.y}function Di(t,e,r,n){return!!(Pi(t,e)&&Pi(r,n)||Pi(t,n)&&Pi(r,e))||Ii(t,e,r)>0!=Ii(t,e,n)>0&&Ii(r,n,t)>0!=Ii(r,n,e)>0}function Ri(t,e){return Ii(t.prev,t,t.next)<0?Ii(t,e,t.next)>=0&&Ii(t,t.prev,e)>=0:Ii(t,e,t.prev)<0||Ii(t,t.next,e)<0}function Bi(t,e){var r=new ji(t.i,t.x,t.y),n=new ji(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function Fi(t,e,r,n){var i=new ji(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Ni(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function ji(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Vi(t,e,r,n){for(var i=0,a=e,o=r-n;a<r;a+=n)i+=(t[o]-t[a])*(t[a+1]+t[o+1]),o=a;return i}xi.deviation=function(t,e,r,n){var i=e&&e.length,a=i?e[0]*r:t.length,o=Math.abs(Vi(t,0,a,r));if(i)for(var s=0,l=e.length;s<l;s++){var c=e[s]*r,u=s<l-1?e[s+1]*r:t.length;o-=Math.abs(Vi(t,c,u,r))}var f=0;for(s=0;s<n.length;s+=3){var h=n[s]*r,p=n[s+1]*r,d=n[s+2]*r;f+=Math.abs((t[h]-t[d])*(t[p+1]-t[h+1])-(t[h]-t[p])*(t[d+1]-t[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},xi.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var a=0;a<t[i].length;a++)for(var o=0;o<e;o++)r.vertices.push(t[i][a][o]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r},mi.default=yi;var Ui=Hi,qi=Hi;function Hi(t,e,r,n,i){!function t(e,r,n,i,a){for(;i>n;){if(i-n>600){var o=i-n+1,s=r-n+1,l=Math.log(o),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(o-c)/o)*(s-o/2<0?-1:1);t(e,r,Math.max(n,Math.floor(r-s*c/o+u)),Math.min(i,Math.floor(r+(o-s)*c/o+u)),a)}var f=e[r],h=n,p=i;for(Gi(e,n,r),a(e[i],f)>0&&Gi(e,n,i);h<p;){for(Gi(e,h,p),h++,p--;a(e[h],f)<0;)h++;for(;a(e[p],f)>0;)p--}0===a(e[n],f)?Gi(e,n,p):Gi(e,++p,i),p<=r&&(n=p+1),r<=p&&(i=p-1)}}(t,e,r||0,n||t.length-1,i||Wi)}function Gi(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Wi(t,e){return t<e?-1:t>e?1:0}function Yi(t,e){var r=t.length;if(r<=1)return[t];for(var n,i,a=[],o=0;o<r;o++){var s=k(t[o]);0!==s&&(t[o].area=Math.abs(s),void 0===i&&(i=s<0),i===s<0?(n&&a.push(n),n=[t[o]]):n.push(t[o]))}if(n&&a.push(n),e>1)for(var l=0;l<a.length;l++)a[l].length<=e||(Ui(a[l],e,1,a[l].length-1,Xi),a[l]=a[l].slice(0,e));return a}function Xi(t,e){return e.area-t.area}Ui.default=qi;var Zi=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new $r,this.indexArray=new fn,this.indexArray2=new hn,this.programConfigurations=new In(vi,t.layers,t.zoom),this.segments=new Tn,this.segments2=new Tn};Zi.prototype.populate=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.feature,o=i.index,s=i.sourceLayerIndex;if(this.layers[0]._featureFilter(new Lr(this.zoom),a)){var l=Bn(a);this.addFeature(a,l),e.featureIndex.insert(a,l,o,s,this.index)}}},Zi.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Zi.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,vi),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2),this.programConfigurations.upload(t)},Zi.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())},Zi.prototype.addFeature=function(t,e){for(var r=0,n=Yi(e,500);r<n.length;r+=1){for(var i=n[r],a=0,o=0,s=i;o<s.length;o+=1)a+=s[o].length;for(var l=this.segments.prepareSegment(a,this.layoutVertexArray,this.indexArray),c=l.vertexLength,u=[],f=[],h=0,p=i;h<p.length;h+=1){var d=p[h];if(0!==d.length){d!==i[0]&&f.push(u.length/2);var g=this.segments2.prepareSegment(d.length,this.layoutVertexArray,this.indexArray2),v=g.vertexLength;this.layoutVertexArray.emplaceBack(d[0].x,d[0].y),this.indexArray2.emplaceBack(v+d.length-1,v),u.push(d[0].x),u.push(d[0].y);for(var m=1;m<d.length;m++)this.layoutVertexArray.emplaceBack(d[m].x,d[m].y),this.indexArray2.emplaceBack(v+m-1,v+m),u.push(d[m].x),u.push(d[m].y);g.vertexLength+=d.length,g.primitiveLength+=d.length}}for(var y=mi(u,f),x=0;x<y.length;x+=3)this.indexArray.emplaceBack(c+y[x],c+y[x+1],c+y[x+2]);l.vertexLength+=a,l.primitiveLength+=y.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t)},pr(\\\"FillBucket\\\",Zi,{omit:[\\\"layers\\\"]});var $i={paint:new qr({\\\"fill-antialias\\\":new Nr(I.paint_fill[\\\"fill-antialias\\\"]),\\\"fill-opacity\\\":new jr(I.paint_fill[\\\"fill-opacity\\\"]),\\\"fill-color\\\":new jr(I.paint_fill[\\\"fill-color\\\"]),\\\"fill-outline-color\\\":new jr(I.paint_fill[\\\"fill-outline-color\\\"]),\\\"fill-translate\\\":new Nr(I.paint_fill[\\\"fill-translate\\\"]),\\\"fill-translate-anchor\\\":new Nr(I.paint_fill[\\\"fill-translate-anchor\\\"]),\\\"fill-pattern\\\":new Vr(I.paint_fill[\\\"fill-pattern\\\"])})},Ji=function(t){function e(e){t.call(this,e,$i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(t){this.paint=this._transitioningPaint.possiblyEvaluate(t);var e=this.paint._values[\\\"fill-outline-color\\\"];\\\"constant\\\"===e.value.kind&&void 0===e.value.value&&(this.paint._values[\\\"fill-outline-color\\\"]=this.paint._values[\\\"fill-color\\\"])},e.prototype.createBucket=function(t){return new Zi(t)},e.prototype.queryRadius=function(){return Jn(this.paint.get(\\\"fill-translate\\\"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a){return Vn(Kn(t,this.paint.get(\\\"fill-translate\\\"),this.paint.get(\\\"fill-translate-anchor\\\"),i.angle,a),r)},e}(Hr),Ki=Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_normal_ed\\\",components:4,type:\\\"Int16\\\"}],4).members,Qi=Math.pow(2,13);function ta(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*Qi)+o,i*Qi*2,a*Qi*2,Math.round(s))}var ea=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new Kr,this.indexArray=new fn,this.programConfigurations=new In(Ki,t.layers,t.zoom),this.segments=new Tn};function ra(t,e){return t.x===e.x&&(t.x<0||t.x>Dn)||t.y===e.y&&(t.y<0||t.y>Dn)}function na(t){return t.every(function(t){return t.x<0})||t.every(function(t){return t.x>Dn})||t.every(function(t){return t.y<0})||t.every(function(t){return t.y>Dn})}ea.prototype.populate=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.feature,o=i.index,s=i.sourceLayerIndex;if(this.layers[0]._featureFilter(new Lr(this.zoom),a)){var l=Bn(a);this.addFeature(a,l),e.featureIndex.insert(a,l,o,s,this.index)}}},ea.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ea.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Ki),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.programConfigurations.upload(t)},ea.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},ea.prototype.addFeature=function(t,e){for(var r=0,n=Yi(e,500);r<n.length;r+=1){for(var i=n[r],a=0,o=0,s=i;o<s.length;o+=1)a+=s[o].length;for(var l=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),c=0,u=i;c<u.length;c+=1){var f=u[c];if(0!==f.length&&!na(f))for(var h=0,p=0;p<f.length;p++){var d=f[p];if(p>=1){var g=f[p-1];if(!ra(d,g)){l.vertexLength+4>Tn.MAX_VERTEX_ARRAY_LENGTH&&(l=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var v=d.sub(g)._perp()._unit(),m=g.dist(d);h+m>32768&&(h=0),ta(this.layoutVertexArray,d.x,d.y,v.x,v.y,0,0,h),ta(this.layoutVertexArray,d.x,d.y,v.x,v.y,0,1,h),h+=m,ta(this.layoutVertexArray,g.x,g.y,v.x,v.y,0,0,h),ta(this.layoutVertexArray,g.x,g.y,v.x,v.y,0,1,h);var y=l.vertexLength;this.indexArray.emplaceBack(y,y+1,y+2),this.indexArray.emplaceBack(y+1,y+2,y+3),l.vertexLength+=4,l.primitiveLength+=2}}}}l.vertexLength+a>Tn.MAX_VERTEX_ARRAY_LENGTH&&(l=this.segments.prepareSegment(a,this.layoutVertexArray,this.indexArray));for(var x=[],b=[],_=l.vertexLength,w=0,k=i;w<k.length;w+=1){var M=k[w];if(0!==M.length){M!==i[0]&&b.push(x.length/2);for(var A=0;A<M.length;A++){var T=M[A];ta(this.layoutVertexArray,T.x,T.y,0,0,1,1,0),x.push(T.x),x.push(T.y)}}}for(var S=mi(x,b),E=0;E<S.length;E+=3)this.indexArray.emplaceBack(_+S[E],_+S[E+1],_+S[E+2]);l.primitiveLength+=S.length/3,l.vertexLength+=a}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t)},pr(\\\"FillExtrusionBucket\\\",ea,{omit:[\\\"layers\\\"]});var ia={paint:new qr({\\\"fill-extrusion-opacity\\\":new Nr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-opacity\\\"]),\\\"fill-extrusion-color\\\":new jr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-color\\\"]),\\\"fill-extrusion-translate\\\":new Nr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-translate\\\"]),\\\"fill-extrusion-translate-anchor\\\":new Nr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-translate-anchor\\\"]),\\\"fill-extrusion-pattern\\\":new Vr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-pattern\\\"]),\\\"fill-extrusion-height\\\":new jr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-height\\\"]),\\\"fill-extrusion-base\\\":new jr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-base\\\"])})},aa=function(t){function e(e){t.call(this,e,ia)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new ea(t)},e.prototype.queryRadius=function(){return Jn(this.paint.get(\\\"fill-extrusion-translate\\\"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a){return Vn(Kn(t,this.paint.get(\\\"fill-extrusion-translate\\\"),this.paint.get(\\\"fill-extrusion-translate-anchor\\\"),i.angle,a),r)},e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get(\\\"fill-extrusion-opacity\\\")&&\\\"none\\\"!==this.visibility},e.prototype.resize=function(){this.viewportFrame&&(this.viewportFrame.destroy(),this.viewportFrame=null)},e}(Hr),oa=Xr([{name:\\\"a_pos_normal\\\",components:4,type:\\\"Int16\\\"},{name:\\\"a_data\\\",components:4,type:\\\"Uint8\\\"}],4).members,sa=la;function la(t,e,r,n,i){this.properties={},this.extent=r,this.type=0,this._pbf=t,this._geometry=-1,this._keys=n,this._values=i,t.readFields(ca,this,e)}function ca(t,e,r){1==t?e.id=r.readVarint():2==t?function(t,e){for(var r=t.readVarint()+t.pos;t.pos<r;){var n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i}}(r,e):3==t?e.type=r.readVarint():4==t&&(e._geometry=r.pos)}function ua(t){for(var e,r,n=0,i=0,a=t.length,o=a-1;i<a;o=i++)e=t[i],n+=((r=t[o]).x-e.x)*(e.y+r.y);return n}la.types=[\\\"Unknown\\\",\\\"Point\\\",\\\"LineString\\\",\\\"Polygon\\\"],la.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,r=t.readVarint()+t.pos,n=1,i=0,a=0,o=0,s=[];t.pos<r;){if(i<=0){var c=t.readVarint();n=7&c,i=c>>3}if(i--,1===n||2===n)a+=t.readSVarint(),o+=t.readSVarint(),1===n&&(e&&s.push(e),e=[]),e.push(new l(a,o));else{if(7!==n)throw new Error(\\\"unknown command \\\"+n);e&&e.push(e[0].clone())}}return e&&s.push(e),s},la.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,c=-1/0;t.pos<e;){if(n<=0){var u=t.readVarint();r=7&u,n=u>>3}if(n--,1===r||2===r)(i+=t.readSVarint())<o&&(o=i),i>s&&(s=i),(a+=t.readSVarint())<l&&(l=a),a>c&&(c=a);else if(7!==r)throw new Error(\\\"unknown command \\\"+r)}return[o,l,s,c]},la.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,l=this.loadGeometry(),c=la.types[this.type];function u(t){for(var e=0;e<t.length;e++){var r=t[e],n=180-360*(r.y+s)/a;t[e]=[360*(r.x+o)/a-180,360/Math.PI*Math.atan(Math.exp(n*Math.PI/180))-90]}}switch(this.type){case 1:var f=[];for(n=0;n<l.length;n++)f[n]=l[n][0];u(l=f);break;case 2:for(n=0;n<l.length;n++)u(l[n]);break;case 3:for(l=function(t){var e=t.length;if(e<=1)return[t];for(var r,n,i=[],a=0;a<e;a++){var o=ua(t[a]);0!==o&&(void 0===n&&(n=o<0),n===o<0?(r&&i.push(r),r=[t[a]]):r.push(t[a]))}return r&&i.push(r),i}(l),n=0;n<l.length;n++)for(i=0;i<l[n].length;i++)u(l[n][i])}1===l.length?l=l[0]:c=\\\"Multi\\\"+c;var h={type:\\\"Feature\\\",geometry:{type:c,coordinates:l},properties:this.properties};return\\\"id\\\"in this&&(h.id=this.id),h};var fa=ha;function ha(t,e){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(pa,this,e),this.length=this._features.length}function pa(t,e,r){15===t?e.version=r.readVarint():1===t?e.name=r.readString():5===t?e.extent=r.readVarint():2===t?e._features.push(r.pos):3===t?e._keys.push(r.readString()):4===t&&e._values.push(function(t){for(var e=null,r=t.readVarint()+t.pos;t.pos<r;){var n=t.readVarint()>>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}function da(t,e,r){if(3===t){var n=new fa(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}ha.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error(\\\"feature index out of bounds\\\");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new sa(this._pbf,e,this.extent,this._keys,this._values)};var ga={VectorTile:function(t,e){this.layers=t.readFields(da,{},e)},VectorTileFeature:sa,VectorTileLayer:fa},va=ga.VectorTileFeature.types,ma=63,ya=Math.cos(Math.PI/180*37.5),xa=.5,ba=Math.pow(2,14)/xa;function _a(t,e,r,n,i,a,o){t.emplaceBack(e.x,e.y,n?1:0,i?1:-1,Math.round(ma*r.x)+128,Math.round(ma*r.y)+128,1+(0===a?0:a<0?-1:1)|(o*xa&63)<<2,o*xa>>6)}var wa=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new Qr,this.indexArray=new fn,this.programConfigurations=new In(oa,t.layers,t.zoom),this.segments=new Tn};function ka(t,e){return(t/e.tileTotal*(e.end-e.start)+e.start)*(ba-1)}wa.prototype.populate=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.feature,o=i.index,s=i.sourceLayerIndex;if(this.layers[0]._featureFilter(new Lr(this.zoom),a)){var l=Bn(a);this.addFeature(a,l),e.featureIndex.insert(a,l,o,s,this.index)}}},wa.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},wa.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,oa),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.programConfigurations.upload(t)},wa.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},wa.prototype.addFeature=function(t,e){for(var r=this.layers[0].layout,n=r.get(\\\"line-join\\\").evaluate(t),i=r.get(\\\"line-cap\\\"),a=r.get(\\\"line-miter-limit\\\"),o=r.get(\\\"line-round-limit\\\"),s=0,l=e;s<l.length;s+=1){var c=l[s];this.addLine(c,t,n,i,a,o)}},wa.prototype.addLine=function(t,e,r,n,i,a){var o=null;e.properties&&e.properties.hasOwnProperty(\\\"mapbox_clip_start\\\")&&e.properties.hasOwnProperty(\\\"mapbox_clip_end\\\")&&(o={start:e.properties.mapbox_clip_start,end:e.properties.mapbox_clip_end,tileTotal:void 0});for(var s=\\\"Polygon\\\"===va[e.type],l=t.length;l>=2&&t[l-1].equals(t[l-2]);)l--;for(var c=0;c<l-1&&t[c].equals(t[c+1]);)c++;if(!(l<(s?3:2))){o&&(o.tileTotal=function(t,e,r){for(var n,i,a=0,o=c;o<r-1;o++)n=t[o],i=t[o+1],a+=n.dist(i);return a}(t,0,l)),\\\"bevel\\\"===r&&(i=1.05);var u=Dn/(512*this.overscaling)*15,f=t[c],h=this.segments.prepareSegment(10*l,this.layoutVertexArray,this.indexArray);this.distance=0;var p,d,g,v=n,m=s?\\\"butt\\\":n,y=!0,x=void 0,b=void 0,_=void 0,w=void 0;this.e1=this.e2=this.e3=-1,s&&(p=t[l-2],w=f.sub(p)._unit()._perp());for(var k=c;k<l;k++)if(!(b=s&&k===l-1?t[c+1]:t[k+1])||!t[k].equals(b)){w&&(_=w),p&&(x=p),p=t[k],w=b?b.sub(p)._unit()._perp():_;var M=(_=_||w).add(w);0===M.x&&0===M.y||M._unit();var A=M.x*w.x+M.y*w.y,T=0!==A?1/A:1/0,S=A<ya&&x&&b;if(S&&k>c){var E=p.dist(x);if(E>2*u){var C=p.sub(p.sub(x)._mult(u/E)._round());this.distance+=C.dist(x),this.addCurrentVertex(C,this.distance,_.mult(1),0,0,!1,h,o),x=C}}var L=x&&b,z=L?r:b?v:m;if(L&&\\\"round\\\"===z&&(T<a?z=\\\"miter\\\":T<=2&&(z=\\\"fakeround\\\")),\\\"miter\\\"===z&&T>i&&(z=\\\"bevel\\\"),\\\"bevel\\\"===z&&(T>2&&(z=\\\"flipbevel\\\"),T<i&&(z=\\\"miter\\\")),x&&(this.distance+=p.dist(x)),\\\"miter\\\"===z)M._mult(T),this.addCurrentVertex(p,this.distance,M,0,0,!1,h,o);else if(\\\"flipbevel\\\"===z){if(T>100)M=w.clone().mult(-1);else{var O=_.x*w.y-_.y*w.x>0?-1:1,I=T*_.add(w).mag()/_.sub(w).mag();M._perp()._mult(I*O)}this.addCurrentVertex(p,this.distance,M,0,0,!1,h,o),this.addCurrentVertex(p,this.distance,M.mult(-1),0,0,!1,h,o)}else if(\\\"bevel\\\"===z||\\\"fakeround\\\"===z){var P=_.x*w.y-_.y*w.x>0,D=-Math.sqrt(T*T-1);if(P?(g=0,d=D):(d=0,g=D),y||this.addCurrentVertex(p,this.distance,_,d,g,!1,h,o),\\\"fakeround\\\"===z){for(var R=Math.floor(8*(.5-(A-.5))),B=void 0,F=0;F<R;F++)B=w.mult((F+1)/(R+1))._add(_)._unit(),this.addPieSliceVertex(p,this.distance,B,P,h,o);this.addPieSliceVertex(p,this.distance,M,P,h,o);for(var N=R-1;N>=0;N--)B=_.mult((N+1)/(R+1))._add(w)._unit(),this.addPieSliceVertex(p,this.distance,B,P,h,o)}b&&this.addCurrentVertex(p,this.distance,w,-d,-g,!1,h,o)}else\\\"butt\\\"===z?(y||this.addCurrentVertex(p,this.distance,_,0,0,!1,h,o),b&&this.addCurrentVertex(p,this.distance,w,0,0,!1,h,o)):\\\"square\\\"===z?(y||(this.addCurrentVertex(p,this.distance,_,1,1,!1,h,o),this.e1=this.e2=-1),b&&this.addCurrentVertex(p,this.distance,w,-1,-1,!1,h,o)):\\\"round\\\"===z&&(y||(this.addCurrentVertex(p,this.distance,_,0,0,!1,h,o),this.addCurrentVertex(p,this.distance,_,1,1,!0,h,o),this.e1=this.e2=-1),b&&(this.addCurrentVertex(p,this.distance,w,-1,-1,!0,h,o),this.addCurrentVertex(p,this.distance,w,0,0,!1,h,o)));if(S&&k<l-1){var j=p.dist(b);if(j>2*u){var V=p.add(b.sub(p)._mult(u/j)._round());this.distance+=V.dist(p),this.addCurrentVertex(V,this.distance,w.mult(1),0,0,!1,h,o),p=V}}y=!1}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e)}},wa.prototype.addCurrentVertex=function(t,e,r,n,i,a,o,s){var l,c=this.layoutVertexArray,u=this.indexArray;s&&(e=ka(e,s)),l=r.clone(),n&&l._sub(r.perp()._mult(n)),_a(c,t,l,a,!1,n,e),this.e3=o.vertexLength++,this.e1>=0&&this.e2>=0&&(u.emplaceBack(this.e1,this.e2,this.e3),o.primitiveLength++),this.e1=this.e2,this.e2=this.e3,l=r.mult(-1),i&&l._sub(r.perp()._mult(i)),_a(c,t,l,a,!0,-i,e),this.e3=o.vertexLength++,this.e1>=0&&this.e2>=0&&(u.emplaceBack(this.e1,this.e2,this.e3),o.primitiveLength++),this.e1=this.e2,this.e2=this.e3,e>ba/2&&!s&&(this.distance=0,this.addCurrentVertex(t,this.distance,r,n,i,a,o))},wa.prototype.addPieSliceVertex=function(t,e,r,n,i,a){r=r.mult(n?-1:1);var o=this.layoutVertexArray,s=this.indexArray;a&&(e=ka(e,a)),_a(o,t,r,!1,n,0,e),this.e3=i.vertexLength++,this.e1>=0&&this.e2>=0&&(s.emplaceBack(this.e1,this.e2,this.e3),i.primitiveLength++),n?this.e2=this.e3:this.e1=this.e3},pr(\\\"LineBucket\\\",wa,{omit:[\\\"layers\\\"]});var Ma=new qr({\\\"line-cap\\\":new Nr(I.layout_line[\\\"line-cap\\\"]),\\\"line-join\\\":new jr(I.layout_line[\\\"line-join\\\"]),\\\"line-miter-limit\\\":new Nr(I.layout_line[\\\"line-miter-limit\\\"]),\\\"line-round-limit\\\":new Nr(I.layout_line[\\\"line-round-limit\\\"])}),Aa={paint:new qr({\\\"line-opacity\\\":new jr(I.paint_line[\\\"line-opacity\\\"]),\\\"line-color\\\":new jr(I.paint_line[\\\"line-color\\\"]),\\\"line-translate\\\":new Nr(I.paint_line[\\\"line-translate\\\"]),\\\"line-translate-anchor\\\":new Nr(I.paint_line[\\\"line-translate-anchor\\\"]),\\\"line-width\\\":new jr(I.paint_line[\\\"line-width\\\"]),\\\"line-gap-width\\\":new jr(I.paint_line[\\\"line-gap-width\\\"]),\\\"line-offset\\\":new jr(I.paint_line[\\\"line-offset\\\"]),\\\"line-blur\\\":new jr(I.paint_line[\\\"line-blur\\\"]),\\\"line-dasharray\\\":new Vr(I.paint_line[\\\"line-dasharray\\\"]),\\\"line-pattern\\\":new Vr(I.paint_line[\\\"line-pattern\\\"]),\\\"line-gradient\\\":new Ur(I.paint_line[\\\"line-gradient\\\"])}),layout:Ma},Ta=new(function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new Lr(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n){return r=p({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n)},e}(jr))(Aa.paint.properties[\\\"line-width\\\"].specification);Ta.useIntegerZoom=!0;var Sa=function(t){function e(e){t.call(this,e,Aa)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setPaintProperty=function(e,r,n){t.prototype.setPaintProperty.call(this,e,r,n),\\\"line-gradient\\\"===e&&this._updateGradient()},e.prototype._updateGradient=function(){var t=this._transitionablePaint._values[\\\"line-gradient\\\"].value.expression;this.gradient=hi(t,\\\"lineProgress\\\"),this.gradientTexture=null},e.prototype.recalculate=function(e){t.prototype.recalculate.call(this,e),this.paint._values[\\\"line-floorwidth\\\"]=Ta.possiblyEvaluate(this._transitioningPaint._values[\\\"line-width\\\"].value,e)},e.prototype.createBucket=function(t){return new wa(t)},e.prototype.queryRadius=function(t){var e=t,r=Ea($n(\\\"line-width\\\",this,e),$n(\\\"line-gap-width\\\",this,e)),n=$n(\\\"line-offset\\\",this,e);return r/2+Math.abs(n)+Jn(this.paint.get(\\\"line-translate\\\"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a){var o=Kn(t,this.paint.get(\\\"line-translate\\\"),this.paint.get(\\\"line-translate-anchor\\\"),i.angle,a),s=a/2*Ea(this.paint.get(\\\"line-width\\\").evaluate(e),this.paint.get(\\\"line-gap-width\\\").evaluate(e)),c=this.paint.get(\\\"line-offset\\\").evaluate(e);return c&&(r=function(t,e){for(var r=[],n=new l(0,0),i=0;i<t.length;i++){for(var a=t[i],o=[],s=0;s<a.length;s++){var c=a[s-1],u=a[s],f=a[s+1],h=0===s?n:u.sub(c)._unit()._perp(),p=s===a.length-1?n:f.sub(u)._unit()._perp(),d=h._add(p)._unit(),g=d.x*p.x+d.y*p.y;d._mult(1/g),o.push(d._mult(e)._add(u))}r.push(o)}return r}(r,c*a)),Un(o,r,s)},e}(Hr);function Ea(t,e){return e>0?e+2*t:t}var Ca=Xr([{name:\\\"a_pos_offset\\\",components:4,type:\\\"Int16\\\"},{name:\\\"a_data\\\",components:4,type:\\\"Uint16\\\"}]),La=Xr([{name:\\\"a_projected_pos\\\",components:3,type:\\\"Float32\\\"}],4),za=(Xr([{name:\\\"a_fade_opacity\\\",components:1,type:\\\"Uint32\\\"}],4),Xr([{name:\\\"a_placed\\\",components:2,type:\\\"Uint8\\\"}],4)),Oa=(Xr([{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\\\"},{type:\\\"Int16\\\",name:\\\"radius\\\"},{type:\\\"Int16\\\",name:\\\"signedDistanceFromAnchor\\\"}]),Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_anchor_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_extrude\\\",components:2,type:\\\"Int16\\\"}],4)),Ia=Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_anchor_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_extrude\\\",components:2,type:\\\"Int16\\\"}],4);function Pa(t,e,r){var n=e.layout.get(\\\"text-transform\\\").evaluate(r);return\\\"uppercase\\\"===n?t=t.toLocaleUpperCase():\\\"lowercase\\\"===n&&(t=t.toLocaleLowerCase()),Cr.applyArabicShaping&&(t=Cr.applyArabicShaping(t)),t}Xr([{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:\\\"hidden\\\"}]),Xr([{type:\\\"Float32\\\",name:\\\"offsetX\\\"}]),Xr([{type:\\\"Int16\\\",name:\\\"x\\\"},{type:\\\"Int16\\\",name:\\\"y\\\"},{type:\\\"Int16\\\",name:\\\"tileUnitDistanceFromAnchor\\\"}]);var Da={\\\"!\\\":\\\"\\\\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\\\"},Ra=function(t){function e(e,r,n,i){t.call(this,e,r),this.angle=n,void 0!==i&&(this.segment=i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.x,this.y,this.angle,this.segment)},e}(l);function Ba(t,e){var r=e.expression;if(\\\"constant\\\"===r.kind)return{functionType:\\\"constant\\\",layoutSize:r.evaluate(new Lr(t+1))};if(\\\"source\\\"===r.kind)return{functionType:\\\"source\\\"};for(var n=r.zoomStops,i=0;i<n.length&&n[i]<=t;)i++;for(var a=i=Math.max(0,i-1);a<n.length&&n[a]<t+1;)a++;a=Math.min(n.length-1,a);var o={min:n[i],max:n[a]};return\\\"composite\\\"===r.kind?{functionType:\\\"composite\\\",zoomRange:o,propertyValue:e.value}:{functionType:\\\"camera\\\",layoutSize:r.evaluate(new Lr(t+1)),zoomRange:o,sizeRange:{min:r.evaluate(new Lr(o.min)),max:r.evaluate(new Lr(o.max))},propertyValue:e.value}}pr(\\\"Anchor\\\",Ra);var Fa=ga.VectorTileFeature.types,Na=[{name:\\\"a_fade_opacity\\\",components:1,type:\\\"Uint8\\\",offset:0}];function ja(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,Math.round(32*n),Math.round(32*i),a,o,s?s[0]:0,s?s[1]:0)}function Va(t,e,r){t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r)}var Ua=function(t){this.layoutVertexArray=new tn,this.indexArray=new fn,this.programConfigurations=t,this.segments=new Tn,this.dynamicLayoutVertexArray=new en,this.opacityVertexArray=new rn,this.placedSymbolArray=new yn};Ua.prototype.upload=function(t,e){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Ca.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.programConfigurations.upload(t),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,La.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,Na,!0),this.opacityVertexBuffer.itemSize=1},Ua.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())},pr(\\\"SymbolBuffers\\\",Ua);var qa=function(t,e,r){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new r,this.segments=new Tn,this.collisionVertexArray=new on};qa.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,za.members,!0)},qa.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())},pr(\\\"CollisionBuffers\\\",qa);var Ha=function(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex;var e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Ba(this.zoom,e[\\\"text-size\\\"]),this.iconSizeData=Ba(this.zoom,e[\\\"icon-size\\\"]);var r=this.layers[0].layout;this.sortFeaturesByY=r.get(\\\"text-allow-overlap\\\")||r.get(\\\"icon-allow-overlap\\\")||r.get(\\\"text-ignore-placement\\\")||r.get(\\\"icon-ignore-placement\\\")};Ha.prototype.createArrays=function(){this.text=new Ua(new In(Ca.members,this.layers,this.zoom,function(t){return/^text/.test(t)})),this.icon=new Ua(new In(Ca.members,this.layers,this.zoom,function(t){return/^icon/.test(t)})),this.collisionBox=new qa(an,Oa.members,hn),this.collisionCircle=new qa(an,Ia.members,fn),this.glyphOffsetArray=new bn,this.lineVertexArray=new wn},Ha.prototype.populate=function(t,e){var r=this.layers[0],n=r.layout,i=n.get(\\\"text-font\\\"),a=n.get(\\\"text-field\\\"),o=n.get(\\\"icon-image\\\"),s=(\\\"constant\\\"!==a.value.kind||a.value.value.length>0)&&(\\\"constant\\\"!==i.value.kind||i.value.value.length>0),l=\\\"constant\\\"!==o.value.kind||o.value.value&&o.value.value.length>0;if(this.features=[],s||l){for(var c=e.iconDependencies,u=e.glyphDependencies,f=new Lr(this.zoom),h=0,p=t;h<p.length;h+=1){var d=p[h],g=d.feature,v=d.index,m=d.sourceLayerIndex;if(r._featureFilter(f,g)){var y=void 0;s&&(y=Pa(y=r.getValueAndResolveTokens(\\\"text-field\\\",g),r,g));var x=void 0;if(l&&(x=r.getValueAndResolveTokens(\\\"icon-image\\\",g)),y||x){var b={text:y,icon:x,index:v,sourceLayerIndex:m,geometry:Bn(g),properties:g.properties,type:Fa[g.type]};if(void 0!==g.id&&(b.id=g.id),this.features.push(b),x&&(c[x]=!0),y)for(var _=i.evaluate(g).join(\\\",\\\"),w=u[_]=u[_]||{},k=\\\"map\\\"===n.get(\\\"text-rotation-alignment\\\")&&\\\"line\\\"===n.get(\\\"symbol-placement\\\"),M=xr(y),A=0;A<y.length;A++)if(w[y.charCodeAt(A)]=!0,k&&M){var T=Da[y.charAt(A)];T&&(w[T.charCodeAt(0)]=!0)}}}}\\\"line\\\"===n.get(\\\"symbol-placement\\\")&&(this.features=function(t){var e={},r={},n=[],i=0;function a(e){n.push(t[e]),i++}function o(t,e,i){var a=r[t];return delete r[t],r[e]=a,n[a].geometry[0].pop(),n[a].geometry[0]=n[a].geometry[0].concat(i[0]),a}function s(t,r,i){var a=e[r];return delete e[r],e[t]=a,n[a].geometry[0].shift(),n[a].geometry[0]=i[0].concat(n[a].geometry[0]),a}function l(t,e,r){var n=r?e[0][e[0].length-1]:e[0][0];return t+\\\":\\\"+n.x+\\\":\\\"+n.y}for(var c=0;c<t.length;c++){var u=t[c],f=u.geometry,h=u.text;if(h){var p=l(h,f),d=l(h,f,!0);if(p in r&&d in e&&r[p]!==e[d]){var g=s(p,d,f),v=o(p,d,n[g].geometry);delete e[p],delete r[d],r[l(h,n[v].geometry,!0)]=v,n[g].geometry=null}else p in r?o(p,d,f):d in e?s(p,d,f):(a(c),e[p]=i-1,r[d]=i-1)}else a(c)}return n.filter(function(t){return t.geometry})}(this.features))}},Ha.prototype.isEmpty=function(){return 0===this.symbolInstances.length},Ha.prototype.upload=function(t){this.text.upload(t,this.sortFeaturesByY),this.icon.upload(t,this.sortFeaturesByY),this.collisionBox.upload(t),this.collisionCircle.upload(t)},Ha.prototype.destroy=function(){this.text.destroy(),this.icon.destroy(),this.collisionBox.destroy(),this.collisionCircle.destroy()},Ha.prototype.addToLineVertexArray=function(t,e){var r=this.lineVertexArray.length;if(void 0!==t.segment){for(var n=t.dist(e[t.segment+1]),i=t.dist(e[t.segment]),a={},o=t.segment+1;o<e.length;o++)a[o]={x:e[o].x,y:e[o].y,tileUnitDistanceFromAnchor:n},o<e.length-1&&(n+=e[o+1].dist(e[o]));for(var s=t.segment||0;s>=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l<e.length;l++){var c=a[l];this.lineVertexArray.emplaceBack(c.x,c.y,c.tileUnitDistanceFromAnchor)}}return{lineStartIndex:r,lineLength:this.lineVertexArray.length-r}},Ha.prototype.addSymbols=function(t,e,r,n,i,a,o,s,l,c){for(var u=t.indexArray,f=t.layoutVertexArray,h=t.dynamicLayoutVertexArray,p=t.segments.prepareSegment(4*e.length,t.layoutVertexArray,t.indexArray),d=this.glyphOffsetArray.length,g=p.vertexLength,v=0,m=e;v<m.length;v+=1){var y=m[v],x=y.tl,b=y.tr,_=y.bl,w=y.br,k=y.tex,M=p.vertexLength,A=y.glyphOffset[1];ja(f,s.x,s.y,x.x,A+x.y,k.x,k.y,r),ja(f,s.x,s.y,b.x,A+b.y,k.x+k.w,k.y,r),ja(f,s.x,s.y,_.x,A+_.y,k.x,k.y+k.h,r),ja(f,s.x,s.y,w.x,A+w.y,k.x+k.w,k.y+k.h,r),Va(h,s,0),u.emplaceBack(M,M+1,M+2),u.emplaceBack(M+1,M+2,M+3),p.vertexLength+=4,p.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(y.glyphOffset[0])}t.placedSymbolArray.emplaceBack(s.x,s.y,d,this.glyphOffsetArray.length-d,g,l,c,s.segment,r?r[0]:0,r?r[1]:0,n[0],n[1],o,!1),t.programConfigurations.populatePaintArrays(t.layoutVertexArray.length,a)},Ha.prototype._addCollisionDebugVertex=function(t,e,r,n,i){return e.emplaceBack(0,0),t.emplaceBack(r.x,r.y,n.x,n.y,Math.round(i.x),Math.round(i.y))},Ha.prototype.addCollisionDebugVertices=function(t,e,r,n,i,a,o,s){var c=i.segments.prepareSegment(4,i.layoutVertexArray,i.indexArray),u=c.vertexLength,f=i.layoutVertexArray,h=i.collisionVertexArray;if(this._addCollisionDebugVertex(f,h,a,o.anchor,new l(t,e)),this._addCollisionDebugVertex(f,h,a,o.anchor,new l(r,e)),this._addCollisionDebugVertex(f,h,a,o.anchor,new l(r,n)),this._addCollisionDebugVertex(f,h,a,o.anchor,new l(t,n)),c.vertexLength+=4,s){var p=i.indexArray;p.emplaceBack(u,u+1,u+2),p.emplaceBack(u,u+2,u+3),c.primitiveLength+=2}else{var d=i.indexArray;d.emplaceBack(u,u+1),d.emplaceBack(u+1,u+2),d.emplaceBack(u+2,u+3),d.emplaceBack(u+3,u),c.primitiveLength+=4}},Ha.prototype.generateCollisionDebugBuffers=function(){for(var t=0,e=this.symbolInstances;t<e.length;t+=1){var r=e[t];r.textCollisionFeature={boxStartIndex:r.textBoxStartIndex,boxEndIndex:r.textBoxEndIndex},r.iconCollisionFeature={boxStartIndex:r.iconBoxStartIndex,boxEndIndex:r.iconBoxEndIndex};for(var n=0;n<2;n++){var i=r[0===n?\\\"textCollisionFeature\\\":\\\"iconCollisionFeature\\\"];if(i)for(var a=i.boxStartIndex;a<i.boxEndIndex;a++){var o=this.collisionBoxArray.get(a),s=o.x1,l=o.y1,c=o.x2,u=o.y2,f=o.radius>0;this.addCollisionDebugVertices(s,l,c,u,f?this.collisionCircle:this.collisionBox,o.anchorPoint,r,f)}}}},Ha.prototype.deserializeCollisionBoxes=function(t,e,r,n,i){for(var a={},o=e;o<r;o++){var s=t.get(o);if(0===s.radius){a.textBox={x1:s.x1,y1:s.y1,x2:s.x2,y2:s.y2,anchorPointX:s.anchorPointX,anchorPointY:s.anchorPointY},a.textFeatureIndex=s.featureIndex;break}a.textCircles||(a.textCircles=[],a.textFeatureIndex=s.featureIndex),a.textCircles.push(s.anchorPointX,s.anchorPointY,s.radius,s.signedDistanceFromAnchor,1)}for(var l=n;l<i;l++){var c=t.get(l);if(0===c.radius){a.iconBox={x1:c.x1,y1:c.y1,x2:c.x2,y2:c.y2,anchorPointX:c.anchorPointX,anchorPointY:c.anchorPointY},a.iconFeatureIndex=c.featureIndex;break}}return a},Ha.prototype.hasTextData=function(){return this.text.segments.get().length>0},Ha.prototype.hasIconData=function(){return this.icon.segments.get().length>0},Ha.prototype.hasCollisionBoxData=function(){return this.collisionBox.segments.get().length>0},Ha.prototype.hasCollisionCircleData=function(){return this.collisionCircle.segments.get().length>0},Ha.prototype.sortFeatures=function(t){var e=this;if(this.sortFeaturesByY&&this.sortedAngle!==t&&(this.sortedAngle=t,!(this.text.segments.get().length>1||this.icon.segments.get().length>1))){for(var r=[],n=0;n<this.symbolInstances.length;n++)r.push(n);var i=Math.sin(t),a=Math.cos(t);r.sort(function(t,r){var n=e.symbolInstances[t],o=e.symbolInstances[r];return(i*n.anchor.x+a*n.anchor.y|0)-(i*o.anchor.x+a*o.anchor.y|0)||o.featureIndex-n.featureIndex}),this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var o=0,s=r;o<s.length;o+=1){var l=s[o],c=e.symbolInstances[l];e.featureSortOrder.push(c.featureIndex);for(var u=0,f=c.placedTextSymbolIndices;u<f.length;u+=1)for(var h=f[u],p=e.text.placedSymbolArray.get(h),d=p.vertexStartIndex+4*p.numGlyphs,g=p.vertexStartIndex;g<d;g+=4)e.text.indexArray.emplaceBack(g,g+1,g+2),e.text.indexArray.emplaceBack(g+1,g+2,g+3);var v=e.icon.placedSymbolArray.get(l);if(v.numGlyphs){var m=v.vertexStartIndex;e.icon.indexArray.emplaceBack(m,m+1,m+2),e.icon.indexArray.emplaceBack(m+1,m+2,m+3)}}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},pr(\\\"SymbolBucket\\\",Ha,{omit:[\\\"layers\\\",\\\"collisionBoxArray\\\",\\\"features\\\",\\\"compareText\\\"],shallow:[\\\"symbolInstances\\\"]}),Ha.MAX_GLYPHS=65535,Ha.addDynamicAttributes=Va;var Ga=new qr({\\\"symbol-placement\\\":new Nr(I.layout_symbol[\\\"symbol-placement\\\"]),\\\"symbol-spacing\\\":new Nr(I.layout_symbol[\\\"symbol-spacing\\\"]),\\\"symbol-avoid-edges\\\":new Nr(I.layout_symbol[\\\"symbol-avoid-edges\\\"]),\\\"icon-allow-overlap\\\":new Nr(I.layout_symbol[\\\"icon-allow-overlap\\\"]),\\\"icon-ignore-placement\\\":new Nr(I.layout_symbol[\\\"icon-ignore-placement\\\"]),\\\"icon-optional\\\":new Nr(I.layout_symbol[\\\"icon-optional\\\"]),\\\"icon-rotation-alignment\\\":new Nr(I.layout_symbol[\\\"icon-rotation-alignment\\\"]),\\\"icon-size\\\":new jr(I.layout_symbol[\\\"icon-size\\\"]),\\\"icon-text-fit\\\":new Nr(I.layout_symbol[\\\"icon-text-fit\\\"]),\\\"icon-text-fit-padding\\\":new Nr(I.layout_symbol[\\\"icon-text-fit-padding\\\"]),\\\"icon-image\\\":new jr(I.layout_symbol[\\\"icon-image\\\"]),\\\"icon-rotate\\\":new jr(I.layout_symbol[\\\"icon-rotate\\\"]),\\\"icon-padding\\\":new Nr(I.layout_symbol[\\\"icon-padding\\\"]),\\\"icon-keep-upright\\\":new Nr(I.layout_symbol[\\\"icon-keep-upright\\\"]),\\\"icon-offset\\\":new jr(I.layout_symbol[\\\"icon-offset\\\"]),\\\"icon-anchor\\\":new jr(I.layout_symbol[\\\"icon-anchor\\\"]),\\\"icon-pitch-alignment\\\":new Nr(I.layout_symbol[\\\"icon-pitch-alignment\\\"]),\\\"text-pitch-alignment\\\":new Nr(I.layout_symbol[\\\"text-pitch-alignment\\\"]),\\\"text-rotation-alignment\\\":new Nr(I.layout_symbol[\\\"text-rotation-alignment\\\"]),\\\"text-field\\\":new jr(I.layout_symbol[\\\"text-field\\\"]),\\\"text-font\\\":new jr(I.layout_symbol[\\\"text-font\\\"]),\\\"text-size\\\":new jr(I.layout_symbol[\\\"text-size\\\"]),\\\"text-max-width\\\":new jr(I.layout_symbol[\\\"text-max-width\\\"]),\\\"text-line-height\\\":new Nr(I.layout_symbol[\\\"text-line-height\\\"]),\\\"text-letter-spacing\\\":new jr(I.layout_symbol[\\\"text-letter-spacing\\\"]),\\\"text-justify\\\":new jr(I.layout_symbol[\\\"text-justify\\\"]),\\\"text-anchor\\\":new jr(I.layout_symbol[\\\"text-anchor\\\"]),\\\"text-max-angle\\\":new Nr(I.layout_symbol[\\\"text-max-angle\\\"]),\\\"text-rotate\\\":new jr(I.layout_symbol[\\\"text-rotate\\\"]),\\\"text-padding\\\":new Nr(I.layout_symbol[\\\"text-padding\\\"]),\\\"text-keep-upright\\\":new Nr(I.layout_symbol[\\\"text-keep-upright\\\"]),\\\"text-transform\\\":new jr(I.layout_symbol[\\\"text-transform\\\"]),\\\"text-offset\\\":new jr(I.layout_symbol[\\\"text-offset\\\"]),\\\"text-allow-overlap\\\":new Nr(I.layout_symbol[\\\"text-allow-overlap\\\"]),\\\"text-ignore-placement\\\":new Nr(I.layout_symbol[\\\"text-ignore-placement\\\"]),\\\"text-optional\\\":new Nr(I.layout_symbol[\\\"text-optional\\\"])}),Wa={paint:new qr({\\\"icon-opacity\\\":new jr(I.paint_symbol[\\\"icon-opacity\\\"]),\\\"icon-color\\\":new jr(I.paint_symbol[\\\"icon-color\\\"]),\\\"icon-halo-color\\\":new jr(I.paint_symbol[\\\"icon-halo-color\\\"]),\\\"icon-halo-width\\\":new jr(I.paint_symbol[\\\"icon-halo-width\\\"]),\\\"icon-halo-blur\\\":new jr(I.paint_symbol[\\\"icon-halo-blur\\\"]),\\\"icon-translate\\\":new Nr(I.paint_symbol[\\\"icon-translate\\\"]),\\\"icon-translate-anchor\\\":new Nr(I.paint_symbol[\\\"icon-translate-anchor\\\"]),\\\"text-opacity\\\":new jr(I.paint_symbol[\\\"text-opacity\\\"]),\\\"text-color\\\":new jr(I.paint_symbol[\\\"text-color\\\"]),\\\"text-halo-color\\\":new jr(I.paint_symbol[\\\"text-halo-color\\\"]),\\\"text-halo-width\\\":new jr(I.paint_symbol[\\\"text-halo-width\\\"]),\\\"text-halo-blur\\\":new jr(I.paint_symbol[\\\"text-halo-blur\\\"]),\\\"text-translate\\\":new Nr(I.paint_symbol[\\\"text-translate\\\"]),\\\"text-translate-anchor\\\":new Nr(I.paint_symbol[\\\"text-translate-anchor\\\"])}),layout:Ga},Ya=function(t){function e(e){t.call(this,e,Wa)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(e){t.prototype.recalculate.call(this,e),\\\"auto\\\"===this.layout.get(\\\"icon-rotation-alignment\\\")&&(\\\"line\\\"===this.layout.get(\\\"symbol-placement\\\")?this.layout._values[\\\"icon-rotation-alignment\\\"]=\\\"map\\\":this.layout._values[\\\"icon-rotation-alignment\\\"]=\\\"viewport\\\"),\\\"auto\\\"===this.layout.get(\\\"text-rotation-alignment\\\")&&(\\\"line\\\"===this.layout.get(\\\"symbol-placement\\\")?this.layout._values[\\\"text-rotation-alignment\\\"]=\\\"map\\\":this.layout._values[\\\"text-rotation-alignment\\\"]=\\\"viewport\\\"),\\\"auto\\\"===this.layout.get(\\\"text-pitch-alignment\\\")&&(this.layout._values[\\\"text-pitch-alignment\\\"]=this.layout.get(\\\"text-rotation-alignment\\\")),\\\"auto\\\"===this.layout.get(\\\"icon-pitch-alignment\\\")&&(this.layout._values[\\\"icon-pitch-alignment\\\"]=this.layout.get(\\\"icon-rotation-alignment\\\"))},e.prototype.getValueAndResolveTokens=function(t,e){var r,n=this.layout.get(t).evaluate(e),i=this._unevaluatedLayout._values[t];return i.isDataDriven()||_e(i.value)?n:(r=e.properties,n.replace(/{([^{}]+)}/g,function(t,e){return e in r?String(r[e]):\\\"\\\"}))},e.prototype.createBucket=function(t){return new Ha(t)},e.prototype.queryRadius=function(){return 0},e.prototype.queryIntersectsFeature=function(){return!1},e}(Hr),Xa={paint:new qr({\\\"background-color\\\":new Nr(I.paint_background[\\\"background-color\\\"]),\\\"background-pattern\\\":new Vr(I.paint_background[\\\"background-pattern\\\"]),\\\"background-opacity\\\":new Nr(I.paint_background[\\\"background-opacity\\\"])})},Za=function(t){function e(e){t.call(this,e,Xa)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Hr),$a={paint:new qr({\\\"raster-opacity\\\":new Nr(I.paint_raster[\\\"raster-opacity\\\"]),\\\"raster-hue-rotate\\\":new Nr(I.paint_raster[\\\"raster-hue-rotate\\\"]),\\\"raster-brightness-min\\\":new Nr(I.paint_raster[\\\"raster-brightness-min\\\"]),\\\"raster-brightness-max\\\":new Nr(I.paint_raster[\\\"raster-brightness-max\\\"]),\\\"raster-saturation\\\":new Nr(I.paint_raster[\\\"raster-saturation\\\"]),\\\"raster-contrast\\\":new Nr(I.paint_raster[\\\"raster-contrast\\\"]),\\\"raster-fade-duration\\\":new Nr(I.paint_raster[\\\"raster-fade-duration\\\"])})},Ja={circle:ni,heatmap:pi,hillshade:gi,fill:Ji,\\\"fill-extrusion\\\":aa,line:Sa,symbol:Ya,background:Za,raster:function(t){function e(e){t.call(this,e,$a)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Hr)},Ka=i(function(t,e){t.exports=function(){function t(t,e,r){r=r||{},this.w=t||64,this.h=e||64,this.autoResize=!!r.autoResize,this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0}function e(t,e,r){this.x=0,this.y=t,this.w=this.free=e,this.h=r}return t.prototype.pack=function(t,e){t=[].concat(t),e=e||{};for(var r,n,i,a,o=[],s=0;s<t.length;s++)if(r=t[s].w||t[s].width,n=t[s].h||t[s].height,i=t[s].id,r&&n){if(!(a=this.packOne(r,n,i)))continue;e.inPlace&&(t[s].x=a.x,t[s].y=a.y,t[s].id=a.id),o.push(a)}return this.shrink(),o},t.prototype.packOne=function(t,r,n){var i,a,o,s,l,c,u,f,h={freebin:-1,shelf:-1,waste:1/0},p=0;if(\\\"string\\\"==typeof n||\\\"number\\\"==typeof n){if(i=this.getBin(n))return this.ref(i),i;\\\"number\\\"==typeof n&&(this.maxId=Math.max(n,this.maxId))}else n=++this.maxId;for(s=0;s<this.freebins.length;s++){if(r===(i=this.freebins[s]).maxh&&t===i.maxw)return this.allocFreebin(s,t,r,n);r>i.maxh||t>i.maxw||r<=i.maxh&&t<=i.maxw&&(o=i.maxw*i.maxh-t*r)<h.waste&&(h.waste=o,h.freebin=s)}for(s=0;s<this.shelves.length;s++)if(p+=(a=this.shelves[s]).h,!(t>a.free)){if(r===a.h)return this.allocShelf(s,t,r,n);r>a.h||r<a.h&&(o=(a.h-r)*t)<h.waste&&(h.freebin=-1,h.waste=o,h.shelf=s)}return-1!==h.freebin?this.allocFreebin(h.freebin,t,r,n):-1!==h.shelf?this.allocShelf(h.shelf,t,r,n):r<=this.h-p&&t<=this.w?(a=new e(p,this.w,r),this.allocShelf(this.shelves.push(a)-1,t,r,n)):this.autoResize?(l=c=this.h,((u=f=this.w)<=l||t>u)&&(f=2*Math.max(t,u)),(l<u||r>l)&&(c=2*Math.max(r,l)),this.resize(f,c),this.packOne(t,r,n)):null},t.prototype.allocFreebin=function(t,e,r,n){var i=this.freebins.splice(t,1)[0];return i.id=n,i.w=e,i.h=r,i.refcount=0,this.bins[n]=i,this.ref(i),i},t.prototype.allocShelf=function(t,e,r,n){var i=this.shelves[t].alloc(e,r,n);return this.bins[n]=i,this.ref(i),i},t.prototype.shrink=function(){if(this.shelves.length>0){for(var t=0,e=0,r=0;r<this.shelves.length;r++){var n=this.shelves[r];e+=n.h,t=Math.max(n.w-n.free,t)}this.resize(t,e)}},t.prototype.getBin=function(t){return this.bins[t]},t.prototype.ref=function(t){if(1==++t.refcount){var e=t.h;this.stats[e]=1+(0|this.stats[e])}return t.refcount},t.prototype.unref=function(t){return 0===t.refcount?0:(0==--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},t.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var r=0;r<this.shelves.length;r++)this.shelves[r].resize(t);return!0},e.prototype.alloc=function(t,e,r){if(t>this.free||e>this.h)return null;var n=this.x;return this.x+=t,this.free-=t,new function(t,e,r,n,i,a,o){this.id=t,this.x=e,this.y=r,this.w=n,this.h=i,this.maxw=a||n,this.maxh=o||i,this.refcount=0}(r,n,this.y,t,e,t,this.h)},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t}()}),Qa=function(t,e){var r=e.pixelRatio;this.paddedRect=t,this.pixelRatio=r},to={tl:{configurable:!0},br:{configurable:!0},displaySize:{configurable:!0}};to.tl.get=function(){return[this.paddedRect.x+1,this.paddedRect.y+1]},to.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},to.displaySize.get=function(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(Qa.prototype,to);var eo=function(t){var e=new ui({width:0,height:0}),r={},n=new Ka(0,0,{autoResize:!0});for(var i in t){var a=t[i],o=n.packOne(a.data.width+2,a.data.height+2);e.resize({width:n.w,height:n.h}),ui.copy(a.data,e,{x:0,y:0},{x:o.x+1,y:o.y+1},a.data),r[i]=new Qa(o,a)}n.shrink(),e.resize({width:n.w,height:n.h}),this.image=e,this.positions=r};pr(\\\"ImagePosition\\\",Qa),pr(\\\"ImageAtlas\\\",eo);var ro=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<<s)-1,c=l>>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},no=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<<c)-1,f=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*g},io=ao;function ao(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}function oo(t){return t.type===ao.Bytes?t.readVarint()+t.pos:t.pos+1}function so(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function lo(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function co(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function uo(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function fo(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function ho(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function po(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function go(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function vo(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function mo(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function yo(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function xo(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function bo(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function _o(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}ao.Varint=0,ao.Fixed64=1,ao.Bytes=2,ao.Fixed32=5,ao.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),i=n>>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=xo(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=_o(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=xo(this.buf,this.pos)+4294967296*xo(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=xo(this.buf,this.pos)+4294967296*_o(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=ro(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ro(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return so(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return so(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return so(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return so(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return so(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return so(t,n,e);throw new Error(\\\"Expected varint not more than 10 bytes\\\")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,r){for(var n=\\\"\\\",i=e;i<r;){var a,o,s,l=t[i],c=null,u=l>239?4:l>223?3:l>191?2:1;if(i+u>r)break;1===u?l<128&&(c=l):2===u?128==(192&(a=t[i+1]))&&(c=(31&l)<<6|63&a)<=127&&(c=null):3===u?(a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&((c=(15&l)<<12|(63&a)<<6|63&o)<=2047||c>=55296&&c<=57343)&&(c=null)):4===u&&(a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&((c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||c>=1114112)&&(c=null)),null===c?(c=65533,u=1):c>65535&&(c-=65536,n+=String.fromCharCode(c>>>10&1023|55296),c=56320|1023&c),n+=String.fromCharCode(c),i+=u}return n}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var r=oo(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===ao.Varint)for(;this.buf[this.pos++]>127;);else if(e===ao.Bytes)this.pos=this.readVarint()+this.pos;else if(e===ao.Fixed32)this.pos+=4;else{if(e!==ao.Fixed64)throw new Error(\\\"Unimplemented type: \\\"+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),bo(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),bo(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),bo(this.buf,-1&t,this.pos),bo(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),bo(this.buf,-1&t,this.pos),bo(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error(\\\"Given varint doesn't fit into 10 bytes\\\");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a<e.length;a++){if((n=e.charCodeAt(a))>55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&lo(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),no(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),no(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&lo(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,ao.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,co,e)},writePackedSVarint:function(t,e){this.writeMessage(t,uo,e)},writePackedBoolean:function(t,e){this.writeMessage(t,po,e)},writePackedFloat:function(t,e){this.writeMessage(t,fo,e)},writePackedDouble:function(t,e){this.writeMessage(t,ho,e)},writePackedFixed32:function(t,e){this.writeMessage(t,go,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,vo,e)},writePackedFixed64:function(t,e){this.writeMessage(t,mo,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,yo,e)},writeBytesField:function(t,e){this.writeTag(t,ao.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,ao.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,ao.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,ao.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,ao.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,ao.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,ao.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,ao.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,ao.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,ao.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var wo=3;function ko(t,e,r){1===t&&r.readMessage(Mo,e)}function Mo(t,e,r){if(3===t){var n=r.readMessage(Ao,{}),i=n.id,a=n.bitmap,o=n.width,s=n.height,l=n.left,c=n.top,u=n.advance;e.push({id:i,bitmap:new ci({width:o+2*wo,height:s+2*wo},a),metrics:{width:o,height:s,left:l,top:c,advance:u}})}}function Ao(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}var To=wo,So=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.callbackID=0,g([\\\"receive\\\"],this),this.target.addEventListener(\\\"message\\\",this.receive,!1)};So.prototype.send=function(t,e,r,n){var i=r?this.mapId+\\\":\\\"+this.callbackID++:null;r&&(this.callbacks[i]=r);var a=[];this.target.postMessage({targetMapId:n,sourceMapId:this.mapId,type:t,id:String(i),data:gr(e,a)},a)},So.prototype.receive=function(t){var e,r=this,n=t.data,i=n.id;if(!n.targetMapId||this.mapId===n.targetMapId){var a=function(t,e){var n=[];r.target.postMessage({sourceMapId:r.mapId,type:\\\"<response>\\\",id:String(i),error:t?gr(t):null,data:gr(e,n)},n)};if(\\\"<response>\\\"===n.type)e=this.callbacks[n.id],delete this.callbacks[n.id],e&&n.error?e(vr(n.error)):e&&e(null,vr(n.data));else if(void 0!==n.id&&this.parent[n.type])this.parent[n.type](n.sourceMapId,vr(n.data),a);else if(void 0!==n.id&&this.parent.getWorkerSource){var o=n.type.split(\\\".\\\");this.parent.getWorkerSource(n.sourceMapId,o[0],o[1])[o[2]](vr(n.data),a)}else this.parent[n.type](vr(n.data))}},So.prototype.remove=function(){this.target.removeEventListener(\\\"message\\\",this.receive,!1)};var Eo=n(i(function(t,e){!function(t){function e(t,e,n){var i=r(256*t,256*(e=Math.pow(2,n)-e-1),n),a=r(256*(t+1),256*(e+1),n);return i[0]+\\\",\\\"+i[1]+\\\",\\\"+a[0]+\\\",\\\"+a[1]}function r(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return[t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}t.getURL=function(t,r,n,i,a,o){return o=o||{},t+\\\"?\\\"+[\\\"bbox=\\\"+e(n,i,a),\\\"format=\\\"+(o.format||\\\"image/png\\\"),\\\"service=\\\"+(o.service||\\\"WMS\\\"),\\\"version=\\\"+(o.version||\\\"1.1.1\\\"),\\\"request=\\\"+(o.request||\\\"GetMap\\\"),\\\"srs=\\\"+(o.srs||\\\"EPSG:3857\\\"),\\\"width=\\\"+(o.width||256),\\\"height=\\\"+(o.height||256),\\\"layers=\\\"+r].join(\\\"&\\\")},t.getTileBBox=e,t.getMercCoords=r,Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(e)})),Co=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=Oo(0,t,e,r)};Co.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Co.prototype.url=function(t,e){var r=Eo.getTileBBox(this.x,this.y,this.z),n=function(t,e,r){for(var n,i=\\\"\\\",a=t;a>0;a--)i+=(e&(n=1<<a-1)?1:0)+(r&n?2:0);return i}(this.z,this.x,this.y);return t[(this.x+this.y)%t.length].replace(\\\"{prefix}\\\",(this.x%16).toString(16)+(this.y%16).toString(16)).replace(\\\"{z}\\\",String(this.z)).replace(\\\"{x}\\\",String(this.x)).replace(\\\"{y}\\\",String(\\\"tms\\\"===e?Math.pow(2,this.z)-this.y-1:this.y)).replace(\\\"{quadkey}\\\",n).replace(\\\"{bbox-epsg-3857}\\\",r)};var Lo=function(t,e){this.wrap=t,this.canonical=e,this.key=Oo(t,e.z,e.x,e.y)},zo=function(t,e,r,n,i){this.overscaledZ=t,this.wrap=e,this.canonical=new Co(r,+n,+i),this.key=Oo(e,t,n,i)};function Oo(t,e,r,n){(t*=2)<0&&(t=-1*t-1);var i=1<<e;return 32*(i*i*t+i*n+r)+e}zo.prototype.equals=function(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)},zo.prototype.scaledTo=function(t){var e=this.canonical.z-t;return t>this.canonical.z?new zo(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new zo(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},zo.prototype.isChildOf=function(t){var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ<this.overscaledZ&&t.canonical.x===this.canonical.x>>e&&t.canonical.y===this.canonical.y>>e},zo.prototype.children=function(t){if(this.overscaledZ>=t)return[new zo(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new zo(e,this.wrap,e,r,n),new zo(e,this.wrap,e,r+1,n),new zo(e,this.wrap,e,r,n+1),new zo(e,this.wrap,e,r+1,n+1)]},zo.prototype.isLessThan=function(t){return this.wrap<t.wrap||!(this.wrap>t.wrap)&&(this.overscaledZ<t.overscaledZ||!(this.overscaledZ>t.overscaledZ)&&(this.canonical.x<t.canonical.x||!(this.canonical.x>t.canonical.x)&&this.canonical.y<t.canonical.y))},zo.prototype.wrapped=function(){return new zo(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)},zo.prototype.unwrapTo=function(t){return new zo(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)},zo.prototype.overscaleFactor=function(){return Math.pow(2,this.overscaledZ-this.canonical.z)},zo.prototype.toUnwrapped=function(){return new Lo(this.wrap,this.canonical)},zo.prototype.toString=function(){return this.overscaledZ+\\\"/\\\"+this.canonical.x+\\\"/\\\"+this.canonical.y},zo.prototype.toCoordinate=function(){return new s(this.canonical.x+Math.pow(2,this.wrap),this.canonical.y,this.canonical.z)},pr(\\\"CanonicalTileID\\\",Co),pr(\\\"OverscaledTileID\\\",zo,{omit:[\\\"posMatrix\\\"]});var Io=function(t,e,r){if(t<=0)throw new RangeError(\\\"Level must have positive dimension\\\");this.dim=t,this.border=e,this.stride=this.dim+2*this.border,this.data=r||new Int32Array((this.dim+2*this.border)*(this.dim+2*this.border))};Io.prototype.set=function(t,e,r){this.data[this._idx(t,e)]=r+65536},Io.prototype.get=function(t,e){return this.data[this._idx(t,e)]-65536},Io.prototype._idx=function(t,e){if(t<-this.border||t>=this.dim+this.border||e<-this.border||e>=this.dim+this.border)throw new RangeError(\\\"out of range source coordinates for DEM data\\\");return(e+this.border)*this.stride+(t+this.border)},pr(\\\"Level\\\",Io);var Po=function(t,e,r){this.uid=t,this.scale=e||1,this.level=r||new Io(256,512),this.loaded=!!r};Po.prototype.loadFromImage=function(t,e){if(t.height!==t.width)throw new RangeError(\\\"DEM tiles must be square\\\");if(e&&\\\"mapbox\\\"!==e&&\\\"terrarium\\\"!==e)return _('\\\"'+e+'\\\" is not a valid encoding type. Valid types include \\\"mapbox\\\" and \\\"terrarium\\\".');var r=this.level=new Io(t.width,t.width/2),n=t.data;this._unpackData(r,n,e||\\\"mapbox\\\");for(var i=0;i<r.dim;i++)r.set(-1,i,r.get(0,i)),r.set(r.dim,i,r.get(r.dim-1,i)),r.set(i,-1,r.get(i,0)),r.set(i,r.dim,r.get(i,r.dim-1));r.set(-1,-1,r.get(0,0)),r.set(r.dim,-1,r.get(r.dim-1,0)),r.set(-1,r.dim,r.get(0,r.dim-1)),r.set(r.dim,r.dim,r.get(r.dim-1,r.dim-1)),this.loaded=!0},Po.prototype._unpackMapbox=function(t,e,r){return(256*t*256+256*e+r)/10-1e4},Po.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Po.prototype._unpackData=function(t,e,r){for(var n={mapbox:this._unpackMapbox,terrarium:this._unpackTerrarium}[r],i=0;i<t.dim;i++)for(var a=0;a<t.dim;a++){var o=4*(i*t.dim+a);t.set(a,i,this.scale*n(e[o],e[o+1],e[o+2]))}},Po.prototype.getPixels=function(){return new ui({width:this.level.dim+2*this.level.border,height:this.level.dim+2*this.level.border},new Uint8Array(this.level.data.buffer))},Po.prototype.backfillBorder=function(t,e,r){var n=this.level,i=t.level;if(n.dim!==i.dim)throw new Error(\\\"level mismatch (dem dimension)\\\");var a=e*n.dim,o=e*n.dim+n.dim,s=r*n.dim,l=r*n.dim+n.dim;switch(e){case-1:a=o-1;break;case 1:o=a+1}switch(r){case-1:s=l-1;break;case 1:l=s+1}for(var c=h(a,-n.border,n.dim+n.border),u=h(o,-n.border,n.dim+n.border),f=h(s,-n.border,n.dim+n.border),p=h(l,-n.border,n.dim+n.border),d=-e*n.dim,g=-r*n.dim,v=f;v<p;v++)for(var m=c;m<u;m++)n.set(m,v,i.get(m+d,v+g))},pr(\\\"DEMData\\\",Po);var Do=function(t){this._stringToNumber={},this._numberToString=[];for(var e=0;e<t.length;e++){var r=t[e];this._stringToNumber[r]=e,this._numberToString[e]=r}};Do.prototype.encode=function(t){return this._stringToNumber[t]},Do.prototype.decode=function(t){return this._numberToString[t]};var Ro=function(t,e,r,n){this.type=\\\"Feature\\\",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,null!=t.id&&(this.id=t.id)},Bo={geometry:{configurable:!0}};Bo.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},Bo.geometry.set=function(t){this._geometry=t},Ro.prototype.toJSON=function(){var t={geometry:this.geometry};for(var e in this)\\\"_geometry\\\"!==e&&\\\"_vectorTileFeature\\\"!==e&&(t[e]=this[e]);return t},Object.defineProperties(Ro.prototype,Bo);var Fo=function(t,e,r){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=e||new lr(Dn,16,0),this.featureIndexArray=r||new Mn};function No(t,e){return e-t}Fo.prototype.insert=function(t,e,r,n,i){var a=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(r,n,i);for(var o=0;o<e.length;o++){for(var s=e[o],l=[1/0,1/0,-1/0,-1/0],c=0;c<s.length;c++){var u=s[c];l[0]=Math.min(l[0],u.x),l[1]=Math.min(l[1],u.y),l[2]=Math.max(l[2],u.x),l[3]=Math.max(l[3],u.y)}l[0]<Dn&&l[1]<Dn&&l[2]>=0&&l[3]>=0&&this.grid.insert(a,l[0],l[1],l[2],l[3])}},Fo.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new ga.VectorTile(new io(this.rawTileData)).layers,this.sourceLayerCoder=new Do(this.vtLayers?Object.keys(this.vtLayers).sort():[\\\"_geojsonTileLayer\\\"])),this.vtLayers},Fo.prototype.query=function(t,e){var r=this;this.loadVTLayers();for(var n=t.params||{},i=Dn/t.tileSize/t.scale,a=Re(n.filter),o=t.queryGeometry,s=t.queryPadding*i,l=1/0,c=1/0,u=-1/0,f=-1/0,h=0;h<o.length;h++)for(var p=o[h],d=0;d<p.length;d++){var g=p[d];l=Math.min(l,g.x),c=Math.min(c,g.y),u=Math.max(u,g.x),f=Math.max(f,g.y)}var v=this.grid.query(l-s,c-s,u+s,f+s);v.sort(No);for(var m,y={},x=function(s){var l=v[s];if(l!==m){m=l;var c=r.featureIndexArray.get(l),u=null;r.loadMatchingFeature(y,c.bucketIndex,c.sourceLayerIndex,c.featureIndex,a,n.layers,e,function(e,n){return u||(u=Bn(e)),n.queryIntersectsFeature(o,e,u,r.z,t.transform,i,t.posMatrix)})}},b=0;b<v.length;b++)x(b);return y},Fo.prototype.loadMatchingFeature=function(t,e,r,n,i,a,o,s){var l=this.bucketLayerIDs[e];if(!a||function(t,e){for(var r=0;r<t.length;r++)if(e.indexOf(t[r])>=0)return!0;return!1}(a,l)){var c=this.sourceLayerCoder.decode(r),u=this.vtLayers[c].feature(n);if(i(new Lr(this.tileID.overscaledZ),u))for(var f=0;f<l.length;f++){var h=l[f];if(!(a&&a.indexOf(h)<0)){var p=o[h];if(p&&(!s||s(u,p))){var d=new Ro(u,this.z,this.x,this.y);d.layer=p.serialize();var g=t[h];void 0===g&&(g=t[h]=[]),g.push({featureIndex:n,feature:d})}}}}},Fo.prototype.lookupSymbolFeatures=function(t,e,r,n,i,a){var o={};this.loadVTLayers();for(var s=Re(n),l=0,c=t;l<c.length;l+=1){var u=c[l];this.loadMatchingFeature(o,e,r,u,s,i,a)}return o},Fo.prototype.hasLayer=function(t){for(var e=0,r=this.bucketLayerIDs;e<r.length;e+=1)for(var n=0,i=r[e];n<i.length;n+=1)if(t===i[n])return!0;return!1},pr(\\\"FeatureIndex\\\",Fo,{omit:[\\\"rawTileData\\\",\\\"sourceLayerCoder\\\"]});var jo={horizontal:1,vertical:2,horizontalOnly:3},Vo={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Uo={};function qo(t,e,r,n){var i=Math.pow(t-e,2);return n?t<e?i/2:2*i:i+Math.abs(r)*r}function Ho(t,e){var r=0;return 10===t&&(r-=1e4),40!==t&&65288!==t||(r+=50),41!==e&&65289!==e||(r+=50),r}function Go(t,e,r,n,i,a){for(var o=null,s=qo(e,r,i,a),l=0,c=n;l<c.length;l+=1){var u=c[l],f=qo(e-u.x,r,i,a)+u.badness;f<=s&&(o=u,s=f)}return{index:t,x:e,priorBreak:o,badness:s}}function Wo(t,e,r,n){if(!r)return[];if(!t)return[];for(var i,a=[],o=function(t,e,r,n){for(var i=0,a=0;a<t.length;a++){var o=n[t.charCodeAt(a)];o&&(i+=o.metrics.advance+e)}return i/Math.max(1,Math.ceil(i/r))}(t,e,r,n),s=0,l=0;l<t.length;l++){var c=t.charCodeAt(l),u=n[c];u&&!Vo[c]&&(s+=u.metrics.advance+e),l<t.length-1&&(Uo[c]||!((i=c)<11904)&&(yr[\\\"Bopomofo Extended\\\"](i)||yr.Bopomofo(i)||yr[\\\"CJK Compatibility Forms\\\"](i)||yr[\\\"CJK Compatibility Ideographs\\\"](i)||yr[\\\"CJK Compatibility\\\"](i)||yr[\\\"CJK Radicals Supplement\\\"](i)||yr[\\\"CJK Strokes\\\"](i)||yr[\\\"CJK Symbols and Punctuation\\\"](i)||yr[\\\"CJK Unified Ideographs Extension A\\\"](i)||yr[\\\"CJK Unified Ideographs\\\"](i)||yr[\\\"Enclosed CJK Letters and Months\\\"](i)||yr[\\\"Halfwidth and Fullwidth Forms\\\"](i)||yr.Hiragana(i)||yr[\\\"Ideographic Description Characters\\\"](i)||yr[\\\"Kangxi Radicals\\\"](i)||yr[\\\"Katakana Phonetic Extensions\\\"](i)||yr.Katakana(i)||yr[\\\"Vertical Forms\\\"](i)||yr[\\\"Yi Radicals\\\"](i)||yr[\\\"Yi Syllables\\\"](i)))&&a.push(Go(l+1,s,o,a,Ho(c,t.charCodeAt(l+1)),!1))}return function t(e){return e?t(e.priorBreak).concat(e.index):[]}(Go(t.length,s,o,a,0,!0))}function Yo(t){var e=.5,r=.5;switch(t){case\\\"right\\\":case\\\"top-right\\\":case\\\"bottom-right\\\":e=1;break;case\\\"left\\\":case\\\"top-left\\\":case\\\"bottom-left\\\":e=0}switch(t){case\\\"bottom\\\":case\\\"bottom-right\\\":case\\\"bottom-left\\\":r=1;break;case\\\"top\\\":case\\\"top-right\\\":case\\\"top-left\\\":r=0}return{horizontalAlign:e,verticalAlign:r}}function Xo(t,e,r,n,i){if(i){var a=e[t[n].glyph];if(a)for(var o=a.metrics.advance,s=(t[n].x+o)*i,l=r;l<=n;l++)t[l].x-=s}}Uo[10]=!0,Uo[32]=!0,Uo[38]=!0,Uo[40]=!0,Uo[41]=!0,Uo[43]=!0,Uo[45]=!0,Uo[47]=!0,Uo[173]=!0,Uo[183]=!0,Uo[8203]=!0,Uo[8208]=!0,Uo[8211]=!0,Uo[8231]=!0,e.commonjsGlobal=r,e.unwrapExports=n,e.createCommonjsModule=i,e.default=self,e.default$1=l,e.getJSON=function(t,e){var r=T(t);return r.setRequestHeader(\\\"Accept\\\",\\\"application/json\\\"),r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var n;try{n=JSON.parse(r.response)}catch(t){return e(t)}e(null,n)}else 401===r.status&&t.url.match(/mapbox.com/)?e(new A(r.statusText+\\\": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens\\\",r.status,t.url)):e(new A(r.statusText,r.status,t.url))},r.send(),r},e.getImage=function(t,e){return S(t,function(t,r){if(t)e(t);else if(r){var n=new self.Image,i=self.URL||self.webkitURL;n.onload=function(){e(null,n),i.revokeObjectURL(n.src)};var a=new self.Blob([new Uint8Array(r.data)],{type:\\\"image/png\\\"});n.cacheControl=r.cacheControl,n.expires=r.expires,n.src=r.data.byteLength?i.createObjectURL(a):\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\\\"}})},e.ResourceType=M,e.RGBAImage=ui,e.default$2=Ka,e.ImagePosition=Qa,e.getArrayBuffer=S,e.default$3=function(t){return new io(t).readFields(ko,[])},e.default$4=yr,e.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var n=t.length,i=new Array(t.length),a=null;t.forEach(function(t,o){e(t,function(t,e){t&&(a=t),i[o]=e,0==--n&&r(a,i)})})},e.AlphaImage=ci,e.default$5=I,e.endsWith=v,e.extend=p,e.sphericalToCartesian=function(t){var e=t[0],r=t[1],n=t[2];return r+=90,r*=Math.PI/180,n*=Math.PI/180,{x:e*Math.cos(r)*Math.sin(n),y:e*Math.sin(r)*Math.sin(n),z:e*Math.cos(n)}},e.Evented=O,e.validateStyle=nr,e.validateLight=ir,e.emitValidationErrors=sr,e.default$6=tt,e.number=wt,e.Properties=qr,e.Transitionable=Ir,e.Transitioning=Dr,e.PossiblyEvaluated=Fr,e.DataConstantProperty=Nr,e.warnOnce=_,e.uniqueId=function(){return d++},e.default$7=So,e.pick=function(t,e){for(var r={},n=0;n<e.length;n++){var i=e[n];i in t&&(r[i]=t[i])}return r},e.wrap=function(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i},e.clamp=h,e.Event=L,e.ErrorEvent=z,e.OverscaledTileID=zo,e.default$8=Dn,e.createLayout=Xr,e.getCoordinatesCenter=function(t){for(var e=1/0,r=1/0,n=-1/0,i=-1/0,a=0;a<t.length;a++)e=Math.min(e,t[a].column),r=Math.min(r,t[a].row),n=Math.max(n,t[a].column),i=Math.max(i,t[a].row);var o=n-e,l=i-r,c=Math.max(o,l),u=Math.max(0,Math.floor(-Math.log(c)/Math.LN2));return new s((e+n)/2,(r+i)/2,0).zoomTo(u)},e.CanonicalTileID=Co,e.RasterBoundsArray=Jr,e.getVideo=function(t,e){var r,n,i=self.document.createElement(\\\"video\\\");i.onloadstart=function(){e(null,i)};for(var a=0;a<t.length;a++){var o=self.document.createElement(\\\"source\\\");r=t[a],n=void 0,(n=self.document.createElement(\\\"a\\\")).href=r,(n.protocol!==self.document.location.protocol||n.host!==self.document.location.host)&&(i.crossOrigin=\\\"Anonymous\\\"),o.src=t[a],i.appendChild(o)}return i},e.default$9=P,e.bindAll=g,e.default$10=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n<e.length;n++)if(!t(e[n],r[n]))return!1;return!0}if(\\\"object\\\"==typeof e&&null!==e&&null!==r){if(\\\"object\\\"!=typeof r)return!1;if(Object.keys(e).length!==Object.keys(r).length)return!1;for(var i in e)if(!t(e[i],r[i]))return!1;return!0}return e===r},e.parseCacheControl=function(t){var e={};if(t.replace(/(?:^|(?:\\\\s*\\\\,\\\\s*))([^\\\\x00-\\\\x20\\\\(\\\\)<>@\\\\,;\\\\:\\\\\\\\\\\"\\\\/\\\\[\\\\]\\\\?\\\\=\\\\{\\\\}\\\\x7F]+)(?:\\\\=(?:([^\\\\x00-\\\\x20\\\\(\\\\)<>@\\\\,;\\\\:\\\\\\\\\\\"\\\\/\\\\[\\\\]\\\\?\\\\=\\\\{\\\\}\\\\x7F]+)|(?:\\\\\\\"((?:[^\\\"\\\\\\\\]|\\\\\\\\.)*)\\\\\\\")))?/g,function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),\\\"\\\"}),e[\\\"max-age\\\"]){var r=parseInt(e[\\\"max-age\\\"],10);isNaN(r)?delete e[\\\"max-age\\\"]:e[\\\"max-age\\\"]=r}return e},e.default$11=Fo,e.default$12=Ro,e.default$13=Re,e.default$14=Ha,e.CollisionBoxArray=vn,e.default$15=Tn,e.TriangleIndexArray=fn,e.default$16=Lr,e.default$17=s,e.keysDifference=function(t,e){var r=[];for(var n in t)n in e||r.push(n);return r},e.default$18=[\\\"type\\\",\\\"source\\\",\\\"source-layer\\\",\\\"minzoom\\\",\\\"maxzoom\\\",\\\"filter\\\",\\\"layout\\\"],e.mat4=ri,e.vec4=ei,e.getSizeData=Ba,e.evaluateSizeForFeature=function(t,e,r){var n=e;return\\\"source\\\"===t.functionType?r.lowerSize/10:\\\"composite\\\"===t.functionType?wt(r.lowerSize/10,r.upperSize/10,n.uSizeT):n.uSize},e.evaluateSizeForZoom=function(t,e,r){if(\\\"constant\\\"===t.functionType)return{uSizeT:0,uSize:t.layoutSize};if(\\\"source\\\"===t.functionType)return{uSizeT:0,uSize:0};if(\\\"camera\\\"===t.functionType){var n=t.propertyValue,i=t.zoomRange,a=t.sizeRange,o=h(Se(n,r.specification).interpolationFactor(e,i.min,i.max),0,1);return{uSizeT:0,uSize:a.min+o*(a.max-a.min)}}var s=t.propertyValue,l=t.zoomRange;return{uSizeT:h(Se(s,r.specification).interpolationFactor(e,l.min,l.max),0,1),uSize:0}},e.addDynamicAttributes=Va,e.default$19=Wa,e.WritingMode=jo,e.multiPolygonIntersectsBufferedPoint=jn,e.multiPolygonIntersectsMultiPolygon=Vn,e.multiPolygonIntersectsBufferedMultiLine=Un,e.polygonIntersectsPolygon=function(t,e){for(var r=0;r<t.length;r++)if(Zn(e,t[r]))return!0;for(var n=0;n<e.length;n++)if(Zn(t,e[n]))return!0;return!!Hn(t,e)},e.distToSegmentSquared=Yn,e.default$20=ti,e.default$21=Hr,e.default$22=function(t){return new Ja[t.type](t)},e.clone=x,e.filterObject=y,e.mapObject=m,e.registerForPluginAvailability=function(t){return Tr?t({pluginURL:Tr,completionCallback:Mr}):Er.once(\\\"pluginAvailable\\\",t),t},e.evented=Er,e.default$23=mr,e.default$24=On,e.PosArray=$r,e.UnwrappedTileID=Lo,e.ease=f,e.bezier=u,e.setRTLTextPlugin=function(t,e){if(Ar)throw new Error(\\\"setRTLTextPlugin cannot be called multiple times.\\\");Ar=!0,Tr=t,Mr=function(t){t?(Ar=!1,Tr=null,e&&e(t)):Sr=!0},Er.fire(new L(\\\"pluginAvailable\\\",{pluginURL:Tr,completionCallback:Mr}))},e.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},e.default$25=Ra,e.register=pr,e.GLYPH_PBF_BORDER=To,e.shapeText=function(t,e,r,n,i,a,o,s,l,c){var u=t.trim();c===jo.vertical&&(u=function(t){for(var e=\\\"\\\",r=0;r<t.length;r++){var n=t.charCodeAt(r+1)||null,i=t.charCodeAt(r-1)||null;n&&wr(n)&&!Da[t[r+1]]||i&&wr(i)&&!Da[t[r-1]]||!Da[t[r]]?e+=t[r]:e+=Da[t[r]]}return e}(u));var f=[],h={positionedGlyphs:f,text:u,top:s[1],bottom:s[1],left:s[0],right:s[0],writingMode:c},p=Cr.processBidirectionalText;return function(t,e,r,n,i,a,o,s,l){for(var c=0,u=-17,f=0,h=t.positionedGlyphs,p=\\\"right\\\"===a?1:\\\"left\\\"===a?0:.5,d=0,g=r;d<g.length;d+=1){var v=g[d];if((v=v.trim()).length){for(var m=h.length,y=0;y<v.length;y++){var x=v.charCodeAt(y),b=e[x];b&&(_r(x)&&o!==jo.horizontal?(h.push({glyph:x,x:c,y:0,vertical:!0}),c+=l+s):(h.push({glyph:x,x:c,y:u,vertical:!1}),c+=b.metrics.advance+s))}if(h.length!==m){var _=c-s;f=Math.max(_,f),Xo(h,e,m,h.length-1,p)}c=0,u+=n}else u+=n}var w=Yo(i),k=w.horizontalAlign,M=w.verticalAlign;!function(t,e,r,n,i,a,o){for(var s=(e-r)*i,l=(-n*o+.5)*a,c=0;c<t.length;c++)t[c].x+=s,t[c].y+=l}(h,p,k,M,f,n,r.length);var A=r.length*n;t.top+=-M*A,t.bottom=t.top+A,t.left+=-k*f,t.right=t.left+f}(h,e,p?p(u,Wo(u,o,r,e)):function(t,e){for(var r=[],n=0,i=0,a=e;i<a.length;i+=1){var o=a[i];r.push(t.substring(n,o)),n=o}return n<t.length&&r.push(t.substring(n,t.length)),r}(u,Wo(u,o,r,e)),n,i,a,c,o,l),!!f.length&&h},e.shapeIcon=function(t,e,r){var n=Yo(r),i=n.horizontalAlign,a=n.verticalAlign,o=e[0],s=e[1],l=o-t.displaySize[0]*i,c=l+t.displaySize[0],u=s-t.displaySize[1]*a;return{image:t,top:u,bottom:u+t.displaySize[1],left:l,right:c}},e.allowsVerticalWritingMode=xr,e.allowsLetterSpacing=function(t){for(var e=0,r=t;e<r.length;e+=1)if(!br(r[e].charCodeAt(0)))return!1;return!0},e.default$26=Yi,e.default$27=Do,e.default$28=eo,e.default$29=ga,e.default$30=io,e.default$31=Po,e.__moduleExports=ga,e.default$32=l,e.__moduleExports$1=io,e.plugin=Cr}),i(0,function(t){function e(t){var r=typeof t;if(\\\"number\\\"===r||\\\"boolean\\\"===r||\\\"string\\\"===r||null==t)return JSON.stringify(t);if(Array.isArray(t)){for(var n=\\\"[\\\",i=0,a=t;i<a.length;i+=1)n+=e(a[i])+\\\",\\\";return n+\\\"]\\\"}for(var o=Object.keys(t).sort(),s=\\\"{\\\",l=0;l<o.length;l++)s+=JSON.stringify(o[l])+\\\":\\\"+e(t[o[l]])+\\\",\\\";return s+\\\"}\\\"}function r(r){for(var n=\\\"\\\",i=0,a=t.default$18;i<a.length;i+=1)n+=\\\"/\\\"+e(r[a[i]]);return n}var n=function(t){t&&this.replace(t)};function i(t,e,r,n,i){if(void 0===e.segment)return!0;for(var a=e,o=e.segment+1,s=0;s>-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],c=0;s<r/2;){var u=t[o-1],f=t[o],h=t[o+1];if(!h)return!1;var p=u.angleTo(f)-f.angleTo(h);for(p=Math.abs((p+3*Math.PI)%(2*Math.PI)-Math.PI),l.push({distance:s,angleDelta:p}),c+=p;s-l[0].distance>n;)c-=l.shift().angleDelta;if(c>i)return!1;o++,s+=f.dist(h)}return!0}function a(e,r,n,a,o,s,l,c,u){var f=a?.6*s*l:0,h=Math.max(a?a.right-a.left:0,o?o.right-o.left:0),p=0===e[0].x||e[0].x===u||0===e[0].y||e[0].y===u;return r-h*l<r/4&&(r=h*l+r/4),function e(r,n,a,o,s,l,c,u,f){for(var h=l/2,p=0,d=0;d<r.length-1;d++)p+=r[d].dist(r[d+1]);for(var g=0,v=n-a,m=[],y=0;y<r.length-1;y++){for(var x=r[y],b=r[y+1],_=x.dist(b),w=b.angleTo(x);v+a<g+_;){var k=((v+=a)-g)/_,M=t.number(x.x,b.x,k),A=t.number(x.y,b.y,k);if(M>=0&&M<f&&A>=0&&A<f&&v-h>=0&&v+h<=p){var T=new t.default$25(M,A,w,y);T._round(),o&&!i(r,T,l,o,s)||m.push(T)}}g+=_}return u||m.length||c||(m=e(r,g/2,a,o,s,l,c,!0,f)),m}(e,p?r/2*c%r:(h/2+2*s)*l*c%r,r,f,n,h*l,p,!1,u)}n.prototype.replace=function(t){this._layerConfigs={},this._layers={},this.update(t,[])},n.prototype.update=function(e,n){for(var i=this,a=0,o=e;a<o.length;a+=1){var s=o[a];i._layerConfigs[s.id]=s;var l=i._layers[s.id]=t.default$22(s);l._featureFilter=t.default$13(l.filter)}for(var c=0,u=n;c<u.length;c+=1){var f=u[c];delete i._layerConfigs[f],delete i._layers[f]}this.familiesBySource={};for(var h=0,p=function(t){for(var e={},n=0;n<t.length;n++){var i=r(t[n]),a=e[i];a||(a=e[i]=[]),a.push(t[n])}var o=[];for(var s in e)o.push(e[s]);return o}(t.values(this._layerConfigs));h<p.length;h+=1){var d=p[h].map(function(t){return i._layers[t.id]}),g=d[0];if(\\\"none\\\"!==g.visibility){var v=g.source||\\\"\\\",m=i.familiesBySource[v];m||(m=i.familiesBySource[v]={});var y=g.sourceLayer||\\\"_geojsonTileLayer\\\",x=m[y];x||(x=m[y]=[]),x.push(d)}}};var o=function(){this.opacity=0,this.targetOpacity=0,this.time=0};o.prototype.clone=function(){var t=new o;return t.opacity=this.opacity,t.targetOpacity=this.targetOpacity,t.time=this.time,t},t.register(\\\"OpacityState\\\",o);var s=function(t,e,r,n,i,a,o,s,l,c,u){var f=o.top*s-l,h=o.bottom*s+l,p=o.left*s-l,d=o.right*s+l;if(this.boxStartIndex=t.length,c){var g=h-f,v=d-p;g>0&&(g=Math.max(10*s,g),this._addLineCollisionCircles(t,e,r,r.segment,v,g,n,i,a,u))}else t.emplaceBack(r.x,r.y,p,f,d,h,n,i,a,0,0);this.boxEndIndex=t.length};s.prototype._addLineCollisionCircles=function(t,e,r,n,i,a,o,s,l,c){var u=a/2,f=Math.floor(i/u),h=1+.4*Math.log(c)/Math.LN2,p=Math.floor(f*h/2),d=-a/2,g=r,v=n+1,m=d,y=-i/2,x=y-i/4;do{if(--v<0){if(m>y)return;v=0;break}m-=e[v].dist(g),g=e[v]}while(m>x);for(var b=e[v].dist(e[v+1]),_=-p;_<f+p;_++){var w=_*u,k=y+w;if(w<0&&(k+=w),w>i&&(k+=w-i),!(k<m)){for(;m+b<k;){if(m+=b,++v+1>=e.length)return;b=e[v].dist(e[v+1])}var M=k-m,A=e[v],T=e[v+1].sub(A)._unit()._mult(M)._add(A)._round(),S=Math.abs(k-d)<u?0:.8*(k-d);t.emplaceBack(T.x,T.y,-a/2,-a/2,a/2,a/2,o,s,l,a/2,S)}}};var l=u,c=u;function u(t,e){if(!(this instanceof u))return new u(t,e);if(this.data=t||[],this.length=this.data.length,this.compare=e||f,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)}function f(t,e){return t<e?-1:t>e?1:0}function h(e,r,n){void 0===r&&(r=1),void 0===n&&(n=!1);for(var i=1/0,a=1/0,o=-1/0,s=-1/0,c=e[0],u=0;u<c.length;u++){var f=c[u];(!u||f.x<i)&&(i=f.x),(!u||f.y<a)&&(a=f.y),(!u||f.x>o)&&(o=f.x),(!u||f.y>s)&&(s=f.y)}var h=o-i,g=s-a,v=Math.min(h,g),m=v/2,y=new l(null,p);if(0===v)return new t.default$1(i,a);for(var x=i;x<o;x+=v)for(var b=a;b<s;b+=v)y.push(new d(x+m,b+m,m,e));for(var _=function(t){for(var e=0,r=0,n=0,i=t[0],a=0,o=i.length,s=o-1;a<o;s=a++){var l=i[a],c=i[s],u=l.x*c.y-c.x*l.y;r+=(l.x+c.x)*u,n+=(l.y+c.y)*u,e+=3*u}return new d(r/e,n/e,0,t)}(e),w=y.length;y.length;){var k=y.pop();(k.d>_.d||!_.d)&&(_=k,n&&console.log(\\\"found best %d after %d probes\\\",Math.round(1e4*k.d)/1e4,w)),k.max-_.d<=r||(m=k.h/2,y.push(new d(k.p.x-m,k.p.y-m,m,e)),y.push(new d(k.p.x+m,k.p.y-m,m,e)),y.push(new d(k.p.x-m,k.p.y+m,m,e)),y.push(new d(k.p.x+m,k.p.y+m,m,e)),w+=4)}return n&&(console.log(\\\"num probes: \\\"+w),console.log(\\\"best distance: \\\"+_.d)),_.p}function p(t,e){return e.max-t.max}function d(e,r,n,i){this.p=new t.default$1(e,r),this.h=n,this.d=function(e,r){for(var n=!1,i=1/0,a=0;a<r.length;a++)for(var o=r[a],s=0,l=o.length,c=l-1;s<l;c=s++){var u=o[s],f=o[c];u.y>e.y!=f.y>e.y&&e.x<(f.x-u.x)*(e.y-u.y)/(f.y-u.y)+u.x&&(n=!n),i=Math.min(i,t.distToSegmentSquared(e,u,f))}return(n?1:-1)*Math.sqrt(i)}(this.p,i),this.max=this.d+this.h*Math.SQRT2}function g(e,r,n,i,a,o){e.createArrays(),e.symbolInstances=[];var s=512*e.overscaling;e.tilePixelRatio=t.default$8/s,e.compareText={},e.iconsNeedLinear=!1;var l=e.layers[0].layout,c=e.layers[0]._unevaluatedLayout._values,u={};if(\\\"composite\\\"===e.textSizeData.functionType){var f=e.textSizeData.zoomRange,h=f.min,p=f.max;u.compositeTextSizes=[c[\\\"text-size\\\"].possiblyEvaluate(new t.default$16(h)),c[\\\"text-size\\\"].possiblyEvaluate(new t.default$16(p))]}if(\\\"composite\\\"===e.iconSizeData.functionType){var d=e.iconSizeData.zoomRange,g=d.min,m=d.max;u.compositeIconSizes=[c[\\\"icon-size\\\"].possiblyEvaluate(new t.default$16(g)),c[\\\"icon-size\\\"].possiblyEvaluate(new t.default$16(m))]}u.layoutTextSize=c[\\\"text-size\\\"].possiblyEvaluate(new t.default$16(e.zoom+1)),u.layoutIconSize=c[\\\"icon-size\\\"].possiblyEvaluate(new t.default$16(e.zoom+1)),u.textMaxSize=c[\\\"text-size\\\"].possiblyEvaluate(new t.default$16(18));for(var y=24*l.get(\\\"text-line-height\\\"),x=\\\"map\\\"===l.get(\\\"text-rotation-alignment\\\")&&\\\"line\\\"===l.get(\\\"symbol-placement\\\"),b=l.get(\\\"text-keep-upright\\\"),_=0,w=e.features;_<w.length;_+=1){var k=w[_],M=l.get(\\\"text-font\\\").evaluate(k).join(\\\",\\\"),A=r[M]||{},T=n[M]||{},S={},E=k.text;if(E){var C=l.get(\\\"text-offset\\\").evaluate(k).map(function(t){return 24*t}),L=24*l.get(\\\"text-letter-spacing\\\").evaluate(k),z=t.allowsLetterSpacing(E)?L:0,O=l.get(\\\"text-anchor\\\").evaluate(k),I=l.get(\\\"text-justify\\\").evaluate(k),P=\\\"line\\\"!==l.get(\\\"symbol-placement\\\")?24*l.get(\\\"text-max-width\\\").evaluate(k):0;S.horizontal=t.shapeText(E,A,P,y,O,I,z,C,24,t.WritingMode.horizontal),t.allowsVerticalWritingMode(E)&&x&&b&&(S.vertical=t.shapeText(E,A,P,y,O,I,z,C,24,t.WritingMode.vertical))}var D=void 0;if(k.icon){var R=i[k.icon];R&&(D=t.shapeIcon(a[k.icon],l.get(\\\"icon-offset\\\").evaluate(k),l.get(\\\"icon-anchor\\\").evaluate(k)),void 0===e.sdfIcons?e.sdfIcons=R.sdf:e.sdfIcons!==R.sdf&&t.warnOnce(\\\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\\\"),R.pixelRatio!==e.pixelRatio?e.iconsNeedLinear=!0:0!==l.get(\\\"icon-rotate\\\").constantOr(1)&&(e.iconsNeedLinear=!0))}(S.horizontal||D)&&v(e,k,S,D,T,u)}o&&e.generateCollisionDebugBuffers()}function v(e,r,n,i,l,c){var u=c.layoutTextSize.evaluate(r),f=c.layoutIconSize.evaluate(r),p=c.textMaxSize.evaluate(r);void 0===p&&(p=u);var d=e.layers[0].layout,g=d.get(\\\"text-offset\\\").evaluate(r),v=d.get(\\\"icon-offset\\\").evaluate(r),x=u/24,b=e.tilePixelRatio*x,_=e.tilePixelRatio*p/24,w=e.tilePixelRatio*f,k=e.tilePixelRatio*d.get(\\\"symbol-spacing\\\"),M=d.get(\\\"text-padding\\\")*e.tilePixelRatio,A=d.get(\\\"icon-padding\\\")*e.tilePixelRatio,T=d.get(\\\"text-max-angle\\\")/180*Math.PI,S=\\\"map\\\"===d.get(\\\"text-rotation-alignment\\\")&&\\\"line\\\"===d.get(\\\"symbol-placement\\\"),E=\\\"map\\\"===d.get(\\\"icon-rotation-alignment\\\")&&\\\"line\\\"===d.get(\\\"symbol-placement\\\"),C=k/2,L=function(a,u){u.x<0||u.x>=t.default$8||u.y<0||u.y>=t.default$8||e.symbolInstances.push(function(e,r,n,i,a,l,c,u,f,h,p,d,g,v,y,x,b,_,w,k,M){var A,T,S=e.addToLineVertexArray(r,n),E=0,C=0,L=0,z=i.horizontal?i.horizontal.text:\\\"\\\",O=[];i.horizontal&&(A=new s(c,n,r,u,f,h,i.horizontal,p,d,g,e.overscaling),C+=m(e,r,i.horizontal,l,g,w,v,S,i.vertical?t.WritingMode.horizontal:t.WritingMode.horizontalOnly,O,k,M),i.vertical&&(L+=m(e,r,i.vertical,l,g,w,v,S,t.WritingMode.vertical,O,k,M)));var I=A?A.boxStartIndex:e.collisionBoxArray.length,P=A?A.boxEndIndex:e.collisionBoxArray.length;if(a){var D=function(e,r,n,i,a,o){var s,l,c,u,f=r.image,h=n.layout,p=r.top-1/f.pixelRatio,d=r.left-1/f.pixelRatio,g=r.bottom+1/f.pixelRatio,v=r.right+1/f.pixelRatio;if(\\\"none\\\"!==h.get(\\\"icon-text-fit\\\")&&a){var m=v-d,y=g-p,x=h.get(\\\"text-size\\\").evaluate(o)/24,b=a.left*x,_=a.right*x,w=a.top*x,k=_-b,M=a.bottom*x-w,A=h.get(\\\"icon-text-fit-padding\\\")[0],T=h.get(\\\"icon-text-fit-padding\\\")[1],S=h.get(\\\"icon-text-fit-padding\\\")[2],E=h.get(\\\"icon-text-fit-padding\\\")[3],C=\\\"width\\\"===h.get(\\\"icon-text-fit\\\")?.5*(M-y):0,L=\\\"height\\\"===h.get(\\\"icon-text-fit\\\")?.5*(k-m):0,z=\\\"width\\\"===h.get(\\\"icon-text-fit\\\")||\\\"both\\\"===h.get(\\\"icon-text-fit\\\")?k:m,O=\\\"height\\\"===h.get(\\\"icon-text-fit\\\")||\\\"both\\\"===h.get(\\\"icon-text-fit\\\")?M:y;s=new t.default$1(b+L-E,w+C-A),l=new t.default$1(b+L+T+z,w+C-A),c=new t.default$1(b+L+T+z,w+C+S+O),u=new t.default$1(b+L-E,w+C+S+O)}else s=new t.default$1(d,p),l=new t.default$1(v,p),c=new t.default$1(v,g),u=new t.default$1(d,g);var I=n.layout.get(\\\"icon-rotate\\\").evaluate(o)*Math.PI/180;if(I){var P=Math.sin(I),D=Math.cos(I),R=[D,-P,P,D];s._matMult(R),l._matMult(R),u._matMult(R),c._matMult(R)}return[{tl:s,tr:l,bl:u,br:c,tex:f.paddedRect,writingMode:void 0,glyphOffset:[0,0]}]}(0,a,l,0,i.horizontal,w);T=new s(c,n,r,u,f,h,a,y,x,!1,e.overscaling),E=4*D.length;var R=e.iconSizeData,B=null;\\\"source\\\"===R.functionType?B=[10*l.layout.get(\\\"icon-size\\\").evaluate(w)]:\\\"composite\\\"===R.functionType&&(B=[10*M.compositeIconSizes[0].evaluate(w),10*M.compositeIconSizes[1].evaluate(w)]),e.addSymbols(e.icon,D,B,_,b,w,!1,r,S.lineStartIndex,S.lineLength)}var F=T?T.boxStartIndex:e.collisionBoxArray.length,N=T?T.boxEndIndex:e.collisionBoxArray.length;return e.glyphOffsetArray.length>=t.default$14.MAX_GLYPHS&&t.warnOnce(\\\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\\\"),{key:z,textBoxStartIndex:I,textBoxEndIndex:P,iconBoxStartIndex:F,iconBoxEndIndex:N,textOffset:v,iconOffset:_,anchor:r,line:n,featureIndex:u,feature:w,numGlyphVertices:C,numVerticalGlyphVertices:L,numIconVertices:E,textOpacityState:new o,iconOpacityState:new o,isDuplicate:!1,placedTextSymbolIndices:O,crossTileID:0}}(e,u,a,n,i,e.layers[0],e.collisionBoxArray,r.index,r.sourceLayerIndex,e.index,b,M,S,g,w,A,E,v,r,l,c))};if(\\\"line\\\"===d.get(\\\"symbol-placement\\\"))for(var z=0,O=function(e,r,n,i,a){for(var o=[],s=0;s<e.length;s++)for(var l=e[s],c=void 0,u=0;u<l.length-1;u++){var f=l[u],h=l[u+1];f.x<0&&h.x<0||(f.x<0?f=new t.default$1(0,f.y+(h.y-f.y)*((0-f.x)/(h.x-f.x)))._round():h.x<0&&(h=new t.default$1(0,f.y+(h.y-f.y)*((0-f.x)/(h.x-f.x)))._round()),f.y<0&&h.y<0||(f.y<0?f=new t.default$1(f.x+(h.x-f.x)*((0-f.y)/(h.y-f.y)),0)._round():h.y<0&&(h=new t.default$1(f.x+(h.x-f.x)*((0-f.y)/(h.y-f.y)),0)._round()),f.x>=i&&h.x>=i||(f.x>=i?f=new t.default$1(i,f.y+(h.y-f.y)*((i-f.x)/(h.x-f.x)))._round():h.x>=i&&(h=new t.default$1(i,f.y+(h.y-f.y)*((i-f.x)/(h.x-f.x)))._round()),f.y>=a&&h.y>=a||(f.y>=a?f=new t.default$1(f.x+(h.x-f.x)*((a-f.y)/(h.y-f.y)),a)._round():h.y>=a&&(h=new t.default$1(f.x+(h.x-f.x)*((a-f.y)/(h.y-f.y)),a)._round()),c&&f.equals(c[c.length-1])||(c=[f],o.push(c)),c.push(h)))))}return o}(r.geometry,0,0,t.default$8,t.default$8);z<O.length;z+=1)for(var I=O[z],P=0,D=a(I,k,T,n.vertical||n.horizontal,i,24,_,e.overscaling,t.default$8);P<D.length;P+=1){var R=D[P],B=n.horizontal;B&&y(e,B.text,C,R)||L(I,R)}else if(\\\"Polygon\\\"===r.type)for(var F=0,N=t.default$26(r.geometry,0);F<N.length;F+=1){var j=N[F],V=h(j,16);L(j[0],new t.default$25(V.x,V.y,0))}else if(\\\"LineString\\\"===r.type)for(var U=0,q=r.geometry;U<q.length;U+=1){var H=q[U];L(H,new t.default$25(H[0].x,H[0].y,0))}else if(\\\"Point\\\"===r.type)for(var G=0,W=r.geometry;G<W.length;G+=1)for(var Y=0,X=W[G];Y<X.length;Y+=1){var Z=X[Y];L([Z],new t.default$25(Z.x,Z.y,0))}}function m(e,r,n,i,a,o,s,l,c,u,f,h){var p=function(e,r,n,i,a,o){for(var s=n.layout.get(\\\"text-rotate\\\").evaluate(a)*Math.PI/180,l=n.layout.get(\\\"text-offset\\\").evaluate(a).map(function(t){return 24*t}),c=r.positionedGlyphs,u=[],f=0;f<c.length;f++){var h=c[f],p=o[h.glyph];if(p){var d=p.rect;if(d){var g=t.GLYPH_PBF_BORDER+1,v=p.metrics.advance/2,m=i?[h.x+v,h.y]:[0,0],y=i?[0,0]:[h.x+v+l[0],h.y+l[1]],x=p.metrics.left-g-v+y[0],b=-p.metrics.top-g+y[1],_=x+d.w,w=b+d.h,k=new t.default$1(x,b),M=new t.default$1(_,b),A=new t.default$1(x,w),T=new t.default$1(_,w);if(i&&h.vertical){var S=new t.default$1(-v,v),E=-Math.PI/2,C=new t.default$1(5,0);k._rotateAround(E,S)._add(C),M._rotateAround(E,S)._add(C),A._rotateAround(E,S)._add(C),T._rotateAround(E,S)._add(C)}if(s){var L=Math.sin(s),z=Math.cos(s),O=[z,-L,L,z];k._matMult(O),M._matMult(O),A._matMult(O),T._matMult(O)}u.push({tl:k,tr:M,bl:A,br:T,tex:d,writingMode:r.writingMode,glyphOffset:m})}}}return u}(0,n,i,a,o,f),d=e.textSizeData,g=null;return\\\"source\\\"===d.functionType?g=[10*i.layout.get(\\\"text-size\\\").evaluate(o)]:\\\"composite\\\"===d.functionType&&(g=[10*h.compositeTextSizes[0].evaluate(o),10*h.compositeTextSizes[1].evaluate(o)]),e.addSymbols(e.text,p,g,s,a,o,c,r,l.lineStartIndex,l.lineLength),u.push(e.text.placedSymbolArray.length-1),4*p.length}function y(t,e,r,n){var i=t.compareText;if(e in i){for(var a=i[e],o=a.length-1;o>=0;o--)if(n.dist(a[o])<r)return!0}else i[e]=[];return i[e].push(n),!1}u.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t}},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},_down:function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t<n;){var a=1+(t<<1),o=a+1,s=e[a];if(o<this.length&&r(e[o],s)<0&&(a=o,s=e[o]),r(s,i)>=0)break;e[t]=s,t=a}e[t]=i}},l.default=c;var x=function(e){var r=new t.AlphaImage({width:0,height:0}),n={},i=new t.default$2(0,0,{autoResize:!0});for(var a in e){var o=e[a],s=n[a]={};for(var l in o){var c=o[+l];if(c&&0!==c.bitmap.width&&0!==c.bitmap.height){var u=i.packOne(c.bitmap.width+2,c.bitmap.height+2);r.resize({width:i.w,height:i.h}),t.AlphaImage.copy(c.bitmap,r,{x:0,y:0},{x:u.x+1,y:u.y+1},c.bitmap),s[l]={rect:u,metrics:c.metrics}}}}i.shrink(),r.resize({width:i.w,height:i.h}),this.image=r,this.positions=n};t.register(\\\"GlyphAtlas\\\",x);var b=function(e){this.tileID=new t.OverscaledTileID(e.tileID.overscaledZ,e.tileID.wrap,e.tileID.canonical.z,e.tileID.canonical.x,e.tileID.canonical.y),this.uid=e.uid,this.zoom=e.zoom,this.pixelRatio=e.pixelRatio,this.tileSize=e.tileSize,this.source=e.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=e.showCollisionBoxes,this.collectResourceTiming=!!e.collectResourceTiming};function _(e,r){for(var n=new t.default$16(r),i=0,a=e;i<a.length;i+=1)a[i].recalculate(n)}b.prototype.parse=function(e,r,n,i){var a=this;this.status=\\\"parsing\\\",this.data=e,this.collisionBoxArray=new t.CollisionBoxArray;var o=new t.default$27(Object.keys(e.layers).sort()),s=new t.default$11(this.tileID);s.bucketLayerIDs=[];var l,c,u,f={},h={featureIndex:s,iconDependencies:{},glyphDependencies:{}},p=r.familiesBySource[this.source];for(var d in p){var v=e.layers[d];if(v){1===v.version&&t.warnOnce('Vector tile source \\\"'+a.source+'\\\" layer \\\"'+d+'\\\" does not use vector tile spec v2 and therefore may have some rendering errors.');for(var m=o.encode(d),y=[],b=0;b<v.length;b++){var w=v.feature(b);y.push({feature:w,index:b,sourceLayerIndex:m})}for(var k=0,M=p[d];k<M.length;k+=1){var A=M[k],T=A[0];T.minzoom&&a.zoom<Math.floor(T.minzoom)||T.maxzoom&&a.zoom>=T.maxzoom||\\\"none\\\"!==T.visibility&&(_(A,a.zoom),(f[T.id]=T.createBucket({index:s.bucketLayerIDs.length,layers:A,zoom:a.zoom,pixelRatio:a.pixelRatio,overscaling:a.overscaling,collisionBoxArray:a.collisionBoxArray,sourceLayerIndex:m})).populate(y,h),s.bucketLayerIDs.push(A.map(function(t){return t.id})))}}}var S=t.mapObject(h.glyphDependencies,function(t){return Object.keys(t).map(Number)});Object.keys(S).length?n.send(\\\"getGlyphs\\\",{uid:this.uid,stacks:S},function(t,e){l||(l=t,c=e,C.call(a))}):c={};var E=Object.keys(h.iconDependencies);function C(){if(l)return i(l);if(c&&u){var e=new x(c),r=new t.default$28(u);for(var n in f){var a=f[n];a instanceof t.default$14&&(_(a.layers,this.zoom),g(a,c,e.positions,u,r.positions,this.showCollisionBoxes))}this.status=\\\"done\\\",i(null,{buckets:t.values(f).filter(function(t){return!t.isEmpty()}),featureIndex:s,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,iconAtlasImage:r.image})}}E.length?n.send(\\\"getImages\\\",{icons:E},function(t,e){l||(l=t,u=e,C.call(a))}):u={},C.call(this)};var w=function(t){return!(!performance||!performance.getEntriesByName)&&performance.getEntriesByName(t)};function k(e,r){var n=t.getArrayBuffer(e.request,function(e,n){e?r(e):n&&r(null,{vectorTile:new t.default$29.VectorTile(new t.default$30(n.data)),rawData:n.data,cacheControl:n.cacheControl,expires:n.expires})});return function(){n.abort(),r()}}var M=function(t,e,r){this.actor=t,this.layerIndex=e,this.loadVectorData=r||k,this.loading={},this.loaded={}};M.prototype.loadTile=function(e,r){var n=this,i=e.uid;this.loading||(this.loading={});var a=this.loading[i]=new b(e);a.abort=this.loadVectorData(e,function(o,s){if(delete n.loading[i],o||!s)return r(o);var l=s.rawData,c={};s.expires&&(c.expires=s.expires),s.cacheControl&&(c.cacheControl=s.cacheControl);var u={};if(e.request&&e.request.collectResourceTiming){var f=w(e.request.url);f&&(u.resourceTiming=JSON.parse(JSON.stringify(f)))}a.vectorTile=s.vectorTile,a.parse(s.vectorTile,n.layerIndex,n.actor,function(e,n){if(e||!n)return r(e);r(null,t.extend({rawTileData:l.slice(0)},n,c,u))}),n.loaded=n.loaded||{},n.loaded[i]=a})},M.prototype.reloadTile=function(t,e){var r=this.loaded,n=t.uid,i=this;if(r&&r[n]){var a=r[n];a.showCollisionBoxes=t.showCollisionBoxes;var o=function(t,r){var n=a.reloadCallback;n&&(delete a.reloadCallback,a.parse(a.vectorTile,i.layerIndex,i.actor,n)),e(t,r)};\\\"parsing\\\"===a.status?a.reloadCallback=o:\\\"done\\\"===a.status&&a.parse(a.vectorTile,this.layerIndex,this.actor,o)}},M.prototype.abortTile=function(t,e){var r=this.loading,n=t.uid;r&&r[n]&&r[n].abort&&(r[n].abort(),delete r[n]),e()},M.prototype.removeTile=function(t,e){var r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e()};var A=function(){this.loading={},this.loaded={}};A.prototype.loadTile=function(e,r){var n=e.uid,i=e.encoding,a=new t.default$31(n);this.loading[n]=a,a.loadFromImage(e.rawImageData,i),delete this.loading[n],this.loaded=this.loaded||{},this.loaded[n]=a,r(null,a)},A.prototype.removeTile=function(t){var e=this.loaded,r=t.uid;e&&e[r]&&delete e[r]};var T={RADIUS:6378137,FLATTENING:1/298.257223563,POLAR_RADIUS:6356752.3142};function S(t){var e=0;if(t&&t.length>0){e+=Math.abs(E(t[0]));for(var r=1;r<t.length;r++)e-=Math.abs(E(t[r]))}return e}function E(t){var e,r,n,i,a,o,s=0,l=t.length;if(l>2){for(o=0;o<l;o++)o===l-2?(n=l-2,i=l-1,a=0):o===l-1?(n=l-1,i=0,a=1):(n=o,i=o+1,a=o+2),e=t[n],r=t[i],s+=(C(t[a][0])-C(e[0]))*Math.sin(C(r[1]));s=s*T.RADIUS*T.RADIUS/2}return s}function C(t){return t*Math.PI/180}var L={geometry:function t(e){var r,n=0;switch(e.type){case\\\"Polygon\\\":return S(e.coordinates);case\\\"MultiPolygon\\\":for(r=0;r<e.coordinates.length;r++)n+=S(e.coordinates[r]);return n;case\\\"Point\\\":case\\\"MultiPoint\\\":case\\\"LineString\\\":case\\\"MultiLineString\\\":return 0;case\\\"GeometryCollection\\\":for(r=0;r<e.geometries.length;r++)n+=t(e.geometries[r]);return n}},ring:E};function z(t,e){return function(r){return t(r,e)}}function O(t,e){e=!!e,t[0]=I(t[0],e);for(var r=1;r<t.length;r++)t[r]=I(t[r],!e);return t}function I(t,e){return function(t){return L.ring(t)>=0}(t)===e?t:t.reverse()}var P=t.default$29.VectorTileFeature.prototype.toGeoJSON,D=function(e){this._feature=e,this.extent=t.default$8,this.type=e.type,this.properties=e.tags,\\\"id\\\"in e&&!isNaN(e.id)&&(this.id=parseInt(e.id,10))};D.prototype.loadGeometry=function(){if(1===this._feature.type){for(var e=[],r=0,n=this._feature.geometry;r<n.length;r+=1){var i=n[r];e.push([new t.default$1(i[0],i[1])])}return e}for(var a=[],o=0,s=this._feature.geometry;o<s.length;o+=1){for(var l=[],c=0,u=s[o];c<u.length;c+=1){var f=u[c];l.push(new t.default$1(f[0],f[1]))}a.push(l)}return a},D.prototype.toGeoJSON=function(t,e,r){return P.call(this,t,e,r)};var R=function(e){this.layers={_geojsonTileLayer:this},this.name=\\\"_geojsonTileLayer\\\",this.extent=t.default$8,this.length=e.length,this._features=e};R.prototype.feature=function(t){return new D(this._features[t])};var B=t.__moduleExports.VectorTileFeature,F=N;function N(t,e){this.options=e||{},this.features=t,this.length=t.length}function j(t,e){this.id=\\\"number\\\"==typeof t.id?t.id:void 0,this.type=t.type,this.rawGeometry=1===t.type?[t.geometry]:t.geometry,this.properties=t.tags,this.extent=e||4096}N.prototype.feature=function(t){return new j(this.features[t],this.options.extent)},j.prototype.loadGeometry=function(){var e=this.rawGeometry;this.geometry=[];for(var r=0;r<e.length;r++){for(var n=e[r],i=[],a=0;a<n.length;a++)i.push(new t.default$32(n[a][0],n[a][1]));this.geometry.push(i)}return this.geometry},j.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var t=this.geometry,e=1/0,r=-1/0,n=1/0,i=-1/0,a=0;a<t.length;a++)for(var o=t[a],s=0;s<o.length;s++){var l=o[s];e=Math.min(e,l.x),r=Math.max(r,l.x),n=Math.min(n,l.y),i=Math.max(i,l.y)}return[e,n,r,i]},j.prototype.toGeoJSON=B.prototype.toGeoJSON;var V=H,U=H,q=F;function H(e){var r=new t.__moduleExports$1;return function(t,e){for(var r in t.layers)e.writeMessage(3,G,t.layers[r])}(e,r),r.finish()}function G(t,e){var r;e.writeVarintField(15,t.version||1),e.writeStringField(1,t.name||\\\"\\\"),e.writeVarintField(5,t.extent||4096);var n={keys:[],values:[],keycache:{},valuecache:{}};for(r=0;r<t.length;r++)n.feature=t.feature(r),e.writeMessage(2,W,n);var i=n.keys;for(r=0;r<i.length;r++)e.writeStringField(3,i[r]);var a=n.values;for(r=0;r<a.length;r++)e.writeMessage(4,J,a[r])}function W(t,e){var r=t.feature;void 0!==r.id&&e.writeVarintField(1,r.id),e.writeMessage(2,Y,t),e.writeVarintField(3,r.type),e.writeMessage(4,$,r)}function Y(t,e){var r=t.feature,n=t.keys,i=t.values,a=t.keycache,o=t.valuecache;for(var s in r.properties){var l=a[s];void 0===l&&(n.push(s),l=n.length-1,a[s]=l),e.writeVarint(l);var c=r.properties[s],u=typeof c;\\\"string\\\"!==u&&\\\"boolean\\\"!==u&&\\\"number\\\"!==u&&(c=JSON.stringify(c));var f=u+\\\":\\\"+c,h=o[f];void 0===h&&(i.push(c),h=i.length-1,o[f]=h),e.writeVarint(h)}}function X(t,e){return(e<<3)+(7&t)}function Z(t){return t<<1^t>>31}function $(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,s=0;s<o;s++){var l=r[s],c=1;1===n&&(c=l.length),e.writeVarint(X(1,c));for(var u=3===n?l.length-1:l.length,f=0;f<u;f++){1===f&&1!==n&&e.writeVarint(X(2,u-1));var h=l[f].x-i,p=l[f].y-a;e.writeVarint(Z(h)),e.writeVarint(Z(p)),i+=h,a+=p}3===n&&e.writeVarint(X(7,0))}}function J(t,e){var r=typeof t;\\\"string\\\"===r?e.writeStringField(1,t):\\\"boolean\\\"===r?e.writeBooleanField(7,t):\\\"number\\\"===r&&(t%1!=0?e.writeDoubleField(3,t):t<0?e.writeSVarintField(6,t):e.writeVarintField(5,t))}V.fromVectorTileJs=U,V.fromGeojsonVt=function(t,e){e=e||{};var r={};for(var n in t)r[n]=new F(t[n].features,e),r[n].name=n,r[n].version=e.version,r[n].extent=e.extent;return H({layers:r})},V.GeoJSONWrapper=q;var K=function t(e,r,n,i,a,o){if(!(a-i<=n)){var s=Math.floor((i+a)/2);!function t(e,r,n,i,a,o){for(;a>i;){if(a-i>600){var s=a-i+1,l=n-i+1,c=Math.log(s),u=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*u*(s-u)/s)*(l-s/2<0?-1:1);t(e,r,n,Math.max(i,Math.floor(n-l*u/s+f)),Math.min(a,Math.floor(n+(s-l)*u/s+f)),o)}var h=r[2*n+o],p=i,d=a;for(Q(e,r,i,n),r[2*a+o]>h&&Q(e,r,i,a);p<d;){for(Q(e,r,p,d),p++,d--;r[2*p+o]<h;)p++;for(;r[2*d+o]>h;)d--}r[2*i+o]===h?Q(e,r,i,d):Q(e,r,++d,a),d<=n&&(i=d+1),n<=d&&(a=d-1)}}(e,r,s,i,a,o%2),t(e,r,n,i,s-1,o+1),t(e,r,n,s+1,a,o+1)}};function Q(t,e,r,n){tt(t,r,n),tt(e,2*r,2*n),tt(e,2*r+1,2*n+1)}function tt(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function et(t,e,r,n){var i=t-r,a=e-n;return i*i+a*a}var rt=function(t,e,r,n,i){return new nt(t,e,r,n,i)};function nt(t,e,r,n,i){e=e||it,r=r||at,i=i||Array,this.nodeSize=n||64,this.points=t,this.ids=new i(t.length),this.coords=new i(2*t.length);for(var a=0;a<t.length;a++)this.ids[a]=a,this.coords[2*a]=e(t[a]),this.coords[2*a+1]=r(t[a]);K(this.ids,this.coords,this.nodeSize,0,this.ids.length-1,0)}function it(t){return t[0]}function at(t){return t[1]}nt.prototype={range:function(t,e,r,n){return function(t,e,r,n,i,a,o){for(var s,l,c=[0,t.length-1,0],u=[];c.length;){var f=c.pop(),h=c.pop(),p=c.pop();if(h-p<=o)for(var d=p;d<=h;d++)s=e[2*d],l=e[2*d+1],s>=r&&s<=i&&l>=n&&l<=a&&u.push(t[d]);else{var g=Math.floor((p+h)/2);s=e[2*g],l=e[2*g+1],s>=r&&s<=i&&l>=n&&l<=a&&u.push(t[g]);var v=(f+1)%2;(0===f?r<=s:n<=l)&&(c.push(p),c.push(g-1),c.push(v)),(0===f?i>=s:a>=l)&&(c.push(g+1),c.push(h),c.push(v))}}return u}(this.ids,this.coords,t,e,r,n,this.nodeSize)},within:function(t,e,r){return function(t,e,r,n,i,a){for(var o=[0,t.length-1,0],s=[],l=i*i;o.length;){var c=o.pop(),u=o.pop(),f=o.pop();if(u-f<=a)for(var h=f;h<=u;h++)et(e[2*h],e[2*h+1],r,n)<=l&&s.push(t[h]);else{var p=Math.floor((f+u)/2),d=e[2*p],g=e[2*p+1];et(d,g,r,n)<=l&&s.push(t[p]);var v=(c+1)%2;(0===c?r-i<=d:n-i<=g)&&(o.push(f),o.push(p-1),o.push(v)),(0===c?r+i>=d:n+i>=g)&&(o.push(p+1),o.push(u),o.push(v))}}return s}(this.ids,this.coords,t,e,r,this.nodeSize)}};function ot(t){this.options=pt(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function st(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:n,properties:i,parentId:-1,numPoints:r}}function lt(t,e){var r=t.geometry.coordinates;return{x:ft(r[0]),y:ht(r[1]),zoom:1/0,id:e,parentId:-1}}function ct(t){return{type:\\\"Feature\\\",properties:ut(t),geometry:{type:\\\"Point\\\",coordinates:[(n=t.x,360*(n-.5)),(e=t.y,r=(180-360*e)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var e,r,n}function ut(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+\\\"k\\\":e>=1e3?Math.round(e/100)/10+\\\"k\\\":e;return pt(pt({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function ft(t){return t/360+.5}function ht(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function pt(t,e){for(var r in e)t[r]=e[r];return t}function dt(t){return t.x}function gt(t){return t.y}function vt(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}function mt(t,e,r,n){var i={id:t||null,type:e,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,r=t.type;if(\\\"Point\\\"===r||\\\"MultiPoint\\\"===r||\\\"LineString\\\"===r)yt(t,e);else if(\\\"Polygon\\\"===r||\\\"MultiLineString\\\"===r)for(var n=0;n<e.length;n++)yt(t,e[n]);else if(\\\"MultiPolygon\\\"===r)for(n=0;n<e.length;n++)for(var i=0;i<e[n].length;i++)yt(t,e[n][i])}(i),i}function yt(t,e){for(var r=0;r<e.length;r+=3)t.minX=Math.min(t.minX,e[r]),t.minY=Math.min(t.minY,e[r+1]),t.maxX=Math.max(t.maxX,e[r]),t.maxY=Math.max(t.maxY,e[r+1])}function xt(t,e,r){if(e.geometry){var n=e.geometry.coordinates,i=e.geometry.type,a=Math.pow(r.tolerance/((1<<r.maxZoom)*r.extent),2),o=[];if(\\\"Point\\\"===i)bt(n,o);else if(\\\"MultiPoint\\\"===i)for(var s=0;s<n.length;s++)bt(n[s],o);else if(\\\"LineString\\\"===i)_t(n,o,a,!1);else if(\\\"MultiLineString\\\"===i)if(r.lineMetrics)for(s=0;s<n.length;s++)return o=[],_t(n[s],o,a,!1),void t.push(mt(e.id,\\\"LineString\\\",o,e.properties));else wt(n,o,a,!1);else if(\\\"Polygon\\\"===i)wt(n,o,a,!0);else{if(\\\"MultiPolygon\\\"!==i){if(\\\"GeometryCollection\\\"===i){for(s=0;s<e.geometry.geometries.length;s++)xt(t,{id:e.id,geometry:e.geometry.geometries[s],properties:e.properties},r);return}throw new Error(\\\"Input data is not a valid GeoJSON object.\\\")}for(s=0;s<n.length;s++){var l=[];wt(n[s],l,a,!0),o.push(l)}}t.push(mt(e.id,i,o,e.properties))}}function bt(t,e){e.push(kt(t[0])),e.push(Mt(t[1])),e.push(0)}function _t(t,e,r,n){for(var i,a,o=0,s=0;s<t.length;s++){var l=kt(t[s][0]),c=Mt(t[s][1]);e.push(l),e.push(c),e.push(0),s>0&&(o+=n?(i*c-l*a)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(c-a,2))),i=l,a=c}var u=e.length-3;e[2]=1,function t(e,r,n,i){for(var a,o=i,s=e[r],l=e[r+1],c=e[n],u=e[n+1],f=r+3;f<n;f+=3){var h=vt(e[f],e[f+1],s,l,c,u);h>o&&(a=f,o=h)}o>i&&(a-r>3&&t(e,r,a,i),e[a+2]=o,n-a>3&&t(e,a,n,i))}(e,0,u,r),e[u+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function wt(t,e,r,n){for(var i=0;i<t.length;i++){var a=[];_t(t[i],a,r,n),e.push(a)}}function kt(t){return t/360+.5}function Mt(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function At(t,e,r,n,i,a,o,s){if(n/=e,a>=(r/=e)&&o<=n)return t;if(a>n||o<r)return null;for(var l=[],c=0;c<t.length;c++){var u=t[c],f=u.geometry,h=u.type,p=0===i?u.minX:u.minY,d=0===i?u.maxX:u.maxY;if(p>=r&&d<=n)l.push(u);else if(!(p>n||d<r)){var g=[];if(\\\"Point\\\"===h||\\\"MultiPoint\\\"===h)Tt(f,g,r,n,i);else if(\\\"LineString\\\"===h)St(f,g,r,n,i,!1,s.lineMetrics);else if(\\\"MultiLineString\\\"===h)Ct(f,g,r,n,i,!1);else if(\\\"Polygon\\\"===h)Ct(f,g,r,n,i,!0);else if(\\\"MultiPolygon\\\"===h)for(var v=0;v<f.length;v++){var m=[];Ct(f[v],m,r,n,i,!0),m.length&&g.push(m)}if(g.length){if(s.lineMetrics&&\\\"LineString\\\"===h){for(v=0;v<g.length;v++)l.push(mt(u.id,h,g[v],u.tags));continue}\\\"LineString\\\"!==h&&\\\"MultiLineString\\\"!==h||(1===g.length?(h=\\\"LineString\\\",g=g[0]):h=\\\"MultiLineString\\\"),\\\"Point\\\"!==h&&\\\"MultiPoint\\\"!==h||(h=3===g.length?\\\"Point\\\":\\\"MultiPoint\\\"),l.push(mt(u.id,h,g,u.tags))}}}return l.length?l:null}function Tt(t,e,r,n,i){for(var a=0;a<t.length;a+=3){var o=t[a+i];o>=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function St(t,e,r,n,i,a,o){for(var s,l,c=Et(t),u=0===i?zt:Ot,f=t.start,h=0;h<t.length-3;h+=3){var p=t[h],d=t[h+1],g=t[h+2],v=t[h+3],m=t[h+4],y=0===i?p:d,x=0===i?v:m,b=!1;o&&(s=Math.sqrt(Math.pow(p-v,2)+Math.pow(d-m,2))),y<r?x>=r&&(l=u(c,p,d,v,m,r),o&&(c.start=f+s*l)):y>n?x<=n&&(l=u(c,p,d,v,m,n),o&&(c.start=f+s*l)):Lt(c,p,d,g),x<r&&y>=r&&(l=u(c,p,d,v,m,r),b=!0),x>n&&y<=n&&(l=u(c,p,d,v,m,n),b=!0),!a&&b&&(o&&(c.end=f+s*l),e.push(c),c=Et(t)),o&&(f+=s)}var _=t.length-3;p=t[_],d=t[_+1],g=t[_+2],(y=0===i?p:d)>=r&&y<=n&&Lt(c,p,d,g),_=c.length-3,a&&_>=3&&(c[_]!==c[0]||c[_+1]!==c[1])&&Lt(c,c[0],c[1],c[2]),c.length&&e.push(c)}function Et(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function Ct(t,e,r,n,i,a){for(var o=0;o<t.length;o++)St(t[o],e,r,n,i,a,!1)}function Lt(t,e,r,n){t.push(e),t.push(r),t.push(n)}function zt(t,e,r,n,i,a){var o=(a-e)/(n-e);return t.push(a),t.push(r+(i-r)*o),t.push(1),o}function Ot(t,e,r,n,i,a){var o=(a-r)/(i-r);return t.push(e+(n-e)*o),t.push(a),t.push(1),o}function It(t,e){for(var r=[],n=0;n<t.length;n++){var i,a=t[n],o=a.type;if(\\\"Point\\\"===o||\\\"MultiPoint\\\"===o||\\\"LineString\\\"===o)i=Pt(a.geometry,e);else if(\\\"MultiLineString\\\"===o||\\\"Polygon\\\"===o){i=[];for(var s=0;s<a.geometry.length;s++)i.push(Pt(a.geometry[s],e))}else if(\\\"MultiPolygon\\\"===o)for(i=[],s=0;s<a.geometry.length;s++){for(var l=[],c=0;c<a.geometry[s].length;c++)l.push(Pt(a.geometry[s][c],e));i.push(l)}r.push(mt(a.id,o,i,a.tags))}return r}function Pt(t,e){var r=[];r.size=t.size,void 0!==t.start&&(r.start=t.start,r.end=t.end);for(var n=0;n<t.length;n+=3)r.push(t[n]+e,t[n+1],t[n+2]);return r}function Dt(t,e){if(t.transformed)return t;var r,n,i,a=1<<t.z,o=t.x,s=t.y;for(r=0;r<t.features.length;r++){var l=t.features[r],c=l.geometry,u=l.type;if(l.geometry=[],1===u)for(n=0;n<c.length;n+=2)l.geometry.push(Rt(c[n],c[n+1],e,a,o,s));else for(n=0;n<c.length;n++){var f=[];for(i=0;i<c[n].length;i+=2)f.push(Rt(c[n][i],c[n][i+1],e,a,o,s));l.geometry.push(f)}}return t.transformed=!0,t}function Rt(t,e,r,n,i,a){return[Math.round(r*(t*n-i)),Math.round(r*(e*n-a))]}function Bt(t,e,r,n,i){for(var a=e===i.maxZoom?0:i.tolerance/((1<<e)*i.extent),o={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:n,z:e,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},s=0;s<t.length;s++){o.numFeatures++,Ft(o,t[s],a,i);var l=t[s].minX,c=t[s].minY,u=t[s].maxX,f=t[s].maxY;l<o.minX&&(o.minX=l),c<o.minY&&(o.minY=c),u>o.maxX&&(o.maxX=u),f>o.maxY&&(o.maxY=f)}return o}function Ft(t,e,r,n){var i=e.geometry,a=e.type,o=[];if(\\\"Point\\\"===a||\\\"MultiPoint\\\"===a)for(var s=0;s<i.length;s+=3)o.push(i[s]),o.push(i[s+1]),t.numPoints++,t.numSimplified++;else if(\\\"LineString\\\"===a)Nt(o,i,t,r,!1,!1);else if(\\\"MultiLineString\\\"===a||\\\"Polygon\\\"===a)for(s=0;s<i.length;s++)Nt(o,i[s],t,r,\\\"Polygon\\\"===a,0===s);else if(\\\"MultiPolygon\\\"===a)for(var l=0;l<i.length;l++){var c=i[l];for(s=0;s<c.length;s++)Nt(o,c[s],t,r,!0,0===s)}if(o.length){var u=e.tags||null;if(\\\"LineString\\\"===a&&n.lineMetrics){for(var f in u={},e.tags)u[f]=e.tags[f];u.mapbox_clip_start=i.start/i.size,u.mapbox_clip_end=i.end/i.size}var h={geometry:o,type:\\\"Polygon\\\"===a||\\\"MultiPolygon\\\"===a?3:\\\"LineString\\\"===a||\\\"MultiLineString\\\"===a?2:1,tags:u};null!==e.id&&(h.id=e.id),t.features.push(h)}}function Nt(t,e,r,n,i,a){var o=n*n;if(n>0&&e.size<(i?o:n))r.numPoints+=e.length/3;else{for(var s=[],l=0;l<e.length;l+=3)(0===n||e[l+2]>o)&&(r.numSimplified++,s.push(e[l]),s.push(e[l+1])),r.numPoints++;i&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n<i;a=n,n+=2)r+=(t[n]-t[a])*(t[n+1]+t[a+1]);if(r>0===e)for(n=0,i=t.length;n<i/2;n+=2){var o=t[n],s=t[n+1];t[n]=t[i-2-n],t[n+1]=t[i-1-n],t[i-2-n]=o,t[i-1-n]=s}}(s,a),t.push(s)}}function jt(t,e){var r=(e=this.options=function(t,e){for(var r in e)t[r]=e[r];return t}(Object.create(this.options),e)).debug;if(r&&console.time(\\\"preprocess data\\\"),e.maxZoom<0||e.maxZoom>24)throw new Error(\\\"maxZoom should be in the 0-24 range\\\");var n=function(t,e){var r=[];if(\\\"FeatureCollection\\\"===t.type)for(var n=0;n<t.features.length;n++)xt(r,t.features[n],e);else\\\"Feature\\\"===t.type?xt(r,t,e):xt(r,{geometry:t},e);return r}(t,e);this.tiles={},this.tileCoords=[],r&&(console.timeEnd(\\\"preprocess data\\\"),console.log(\\\"index: maxZoom: %d, maxPoints: %d\\\",e.indexMaxZoom,e.indexMaxPoints),console.time(\\\"generate tiles\\\"),this.stats={},this.total=0),(n=function(t,e){var r=e.buffer/e.extent,n=t,i=At(t,1,-1-r,r,0,-1,2,e),a=At(t,1,1-r,2+r,0,-1,2,e);return(i||a)&&(n=At(t,1,-r,1+r,0,-1,2,e)||[],i&&(n=It(i,1).concat(n)),a&&(n=n.concat(It(a,-1)))),n}(n,e)).length&&this.splitTile(n,0,0,0),r&&(n.length&&console.log(\\\"features: %d, points: %d\\\",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd(\\\"generate tiles\\\"),console.log(\\\"tiles generated:\\\",this.total,JSON.stringify(this.stats)))}function Vt(t,e,r){return 32*((1<<t)*r+e)+t}function Ut(t,e){var r=t.tileID.canonical;if(!this._geoJSONIndex)return e(null,null);var n=this._geoJSONIndex.getTile(r.z,r.x,r.y);if(!n)return e(null,null);var i=new R(n.features),a=V(i);0===a.byteOffset&&a.byteLength===a.buffer.byteLength||(a=new Uint8Array(a)),e(null,{vectorTile:i,rawData:a.buffer})}ot.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,reduce:null,initial:function(){return{}},map:function(t){return t}},load:function(t){var e=this.options.log;e&&console.time(\\\"total time\\\");var r=\\\"prepare \\\"+t.length+\\\" points\\\";e&&console.time(r),this.points=t;var n=t.map(lt);e&&console.timeEnd(r);for(var i=this.options.maxZoom;i>=this.options.minZoom;i--){var a=+Date.now();this.trees[i+1]=rt(n,dt,gt,this.options.nodeSize,Float32Array),n=this._cluster(n,i),e&&console.log(\\\"z%d: %d clusters in %dms\\\",i,n.length,+Date.now()-a)}return this.trees[this.options.minZoom]=rt(n,dt,gt,this.options.nodeSize,Float32Array),e&&console.timeEnd(\\\"total time\\\"),this},getClusters:function(t,e){for(var r=this.trees[this._limitZoom(e)],n=r.range(ft(t[0]),ht(t[3]),ft(t[2]),ht(t[1])),i=[],a=0;a<n.length;a++){var o=r.points[n[a]];i.push(o.numPoints?ct(o):this.points[o.id])}return i},getChildren:function(t,e){for(var r=this.trees[e+1].points[t],n=this.options.radius/(this.options.extent*Math.pow(2,e)),i=this.trees[e+1].within(r.x,r.y,n),a=[],o=0;o<i.length;o++){var s=this.trees[e+1].points[i[o]];s.parentId===t&&a.push(s.numPoints?ct(s):this.points[s.id])}return a},getLeaves:function(t,e,r,n){r=r||10,n=n||0;var i=[];return this._appendLeaves(i,t,e,r,n,0),i},getTile:function(t,e,r){var n=this.trees[this._limitZoom(t)],i=Math.pow(2,t),a=this.options.extent,o=this.options.radius/a,s=(r-o)/i,l=(r+1+o)/i,c={features:[]};return this._addTileFeatures(n.range((e-o)/i,s,(e+1+o)/i,l),n.points,e,r,i,c),0===e&&this._addTileFeatures(n.range(1-o/i,s,1,l),n.points,i,r,i,c),e===i-1&&this._addTileFeatures(n.range(0,s,o/i,l),n.points,-1,r,i,c),c.features.length?c:null},getClusterExpansionZoom:function(t,e){for(;e<this.options.maxZoom;){var r=this.getChildren(t,e);if(e++,1!==r.length)break;t=r[0].properties.cluster_id}return e},_appendLeaves:function(t,e,r,n,i,a){for(var o=this.getChildren(e,r),s=0;s<o.length;s++){var l=o[s].properties;if(l.cluster?a+l.point_count<=i?a+=l.point_count:a=this._appendLeaves(t,l.cluster_id,r+1,n,i,a):a<i?a++:t.push(o[s]),t.length===n)break}return a},_addTileFeatures:function(t,e,r,n,i,a){for(var o=0;o<t.length;o++){var s=e[t[o]];a.features.push({type:1,geometry:[[Math.round(this.options.extent*(s.x*i-r)),Math.round(this.options.extent*(s.y*i-n))]],tags:s.numPoints?ut(s):this.points[s.id].properties})}},_limitZoom:function(t){return Math.max(this.options.minZoom,Math.min(t,this.options.maxZoom+1))},_cluster:function(t,e){for(var r=[],n=this.options.radius/(this.options.extent*Math.pow(2,e)),i=0;i<t.length;i++){var a=t[i];if(!(a.zoom<=e)){a.zoom=e;var o=this.trees[e+1],s=o.within(a.x,a.y,n),l=a.numPoints||1,c=a.x*l,u=a.y*l,f=null;this.options.reduce&&(f=this.options.initial(),this._accumulate(f,a));for(var h=0;h<s.length;h++){var p=o.points[s[h]];if(e<p.zoom){var d=p.numPoints||1;p.zoom=e,c+=p.x*d,u+=p.y*d,l+=d,p.parentId=i,this.options.reduce&&this._accumulate(f,p)}}1===l?r.push(a):(a.parentId=i,r.push(st(c/l,u/l,l,i,f)))}}return r},_accumulate:function(t,e){var r=e.numPoints?e.properties:this.options.map(this.points[e.id].properties);this.options.reduce(t,r)}},jt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,debug:0},jt.prototype.splitTile=function(t,e,r,n,i,a,o){for(var s=[t,e,r,n],l=this.options,c=l.debug;s.length;){n=s.pop(),r=s.pop(),e=s.pop(),t=s.pop();var u=1<<e,f=Vt(e,r,n),h=this.tiles[f];if(!h&&(c>1&&console.time(\\\"creation\\\"),h=this.tiles[f]=Bt(t,e,r,n,l),this.tileCoords.push({z:e,x:r,y:n}),c)){c>1&&(console.log(\\\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\\\",e,r,n,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd(\\\"creation\\\"));var p=\\\"z\\\"+e;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(h.source=t,i){if(e===l.maxZoom||e===i)continue;var d=1<<i-e;if(r!==Math.floor(a/d)||n!==Math.floor(o/d))continue}else if(e===l.indexMaxZoom||h.numPoints<=l.indexMaxPoints)continue;if(h.source=null,0!==t.length){c>1&&console.time(\\\"clipping\\\");var g,v,m,y,x,b,_=.5*l.buffer/l.extent,w=.5-_,k=.5+_,M=1+_;g=v=m=y=null,x=At(t,u,r-_,r+k,0,h.minX,h.maxX,l),b=At(t,u,r+w,r+M,0,h.minX,h.maxX,l),t=null,x&&(g=At(x,u,n-_,n+k,1,h.minY,h.maxY,l),v=At(x,u,n+w,n+M,1,h.minY,h.maxY,l),x=null),b&&(m=At(b,u,n-_,n+k,1,h.minY,h.maxY,l),y=At(b,u,n+w,n+M,1,h.minY,h.maxY,l),b=null),c>1&&console.timeEnd(\\\"clipping\\\"),s.push(g||[],e+1,2*r,2*n),s.push(v||[],e+1,2*r,2*n+1),s.push(m||[],e+1,2*r+1,2*n),s.push(y||[],e+1,2*r+1,2*n+1)}}},jt.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug;if(t<0||t>24)return null;var o=1<<t,s=Vt(t,e=(e%o+o)%o,r);if(this.tiles[s])return Dt(this.tiles[s],i);a>1&&console.log(\\\"drilling down to z%d-%d-%d\\\",t,e,r);for(var l,c=t,u=e,f=r;!l&&c>0;)c--,u=Math.floor(u/2),f=Math.floor(f/2),l=this.tiles[Vt(c,u,f)];return l&&l.source?(a>1&&console.log(\\\"found parent tile z%d-%d-%d\\\",c,u,f),a>1&&console.time(\\\"drilling down\\\"),this.splitTile(l.source,c,u,f,t,e,r),a>1&&console.timeEnd(\\\"drilling down\\\"),this.tiles[s]?Dt(this.tiles[s],i):null):null};var qt=function(e){function r(t,r,n){e.call(this,t,r,Ut),n&&(this.loadGeoJSON=n)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&\\\"Idle\\\"!==this._state?this._state=\\\"NeedsLoadData\\\":(this._state=\\\"Coalescing\\\",this._loadData())},r.prototype._loadData=function(){var t=this;if(this._pendingCallback&&this._pendingLoadDataParams){var e=this._pendingCallback,r=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams,this.loadGeoJSON(r,function(n,i){if(n||!i)return e(n);if(\\\"object\\\"!=typeof i)return e(new Error(\\\"Input data is not a valid GeoJSON object.\\\"));!function t(e,r){switch(e&&e.type||null){case\\\"FeatureCollection\\\":return e.features=e.features.map(z(t,r)),e;case\\\"Feature\\\":return e.geometry=t(e.geometry,r),e;case\\\"Polygon\\\":case\\\"MultiPolygon\\\":return function(t,e){return\\\"Polygon\\\"===t.type?t.coordinates=O(t.coordinates,e):\\\"MultiPolygon\\\"===t.type&&(t.coordinates=t.coordinates.map(z(O,e))),t}(e,r);default:return e}}(i,!0);try{t._geoJSONIndex=r.cluster?function(t){return new ot(t)}(r.superclusterOptions).load(i.features):new jt(i,r.geojsonVtOptions)}catch(n){return e(n)}t.loaded={};var a={};if(r.request&&r.request.collectResourceTiming){var o=w(r.request.url);o&&(a.resourceTiming={},a.resourceTiming[r.source]=JSON.parse(JSON.stringify(o)))}e(null,a)})}},r.prototype.coalesce=function(){\\\"Coalescing\\\"===this._state?this._state=\\\"Idle\\\":\\\"NeedsLoadData\\\"===this._state&&(this._state=\\\"Coalescing\\\",this._loadData())},r.prototype.reloadTile=function(t,r){var n=this.loaded,i=t.uid;return n&&n[i]?e.prototype.reloadTile.call(this,t,r):this.loadTile(t,r)},r.prototype.loadGeoJSON=function(e,r){if(e.request)t.getJSON(e.request,r);else{if(\\\"string\\\"!=typeof e.data)return r(new Error(\\\"Input data is not a valid GeoJSON object.\\\"));try{return r(null,JSON.parse(e.data))}catch(t){return r(new Error(\\\"Input data is not a valid GeoJSON object.\\\"))}}},r.prototype.removeSource=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),e()},r}(M),Ht=function(e){var r=this;this.self=e,this.actor=new t.default$7(e,this),this.layerIndexes={},this.workerSourceTypes={vector:M,geojson:qt},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=function(t,e){if(r.workerSourceTypes[t])throw new Error('Worker source with name \\\"'+t+'\\\" already registered.');r.workerSourceTypes[t]=e},this.self.registerRTLTextPlugin=function(e){if(t.plugin.isLoaded())throw new Error(\\\"RTL text plugin already registered.\\\");t.plugin.applyArabicShaping=e.applyArabicShaping,t.plugin.processBidirectionalText=e.processBidirectionalText}};return Ht.prototype.setLayers=function(t,e,r){this.getLayerIndex(t).replace(e),r()},Ht.prototype.updateLayers=function(t,e,r){this.getLayerIndex(t).update(e.layers,e.removedIds),r()},Ht.prototype.loadTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).loadTile(e,r)},Ht.prototype.loadDEMTile=function(t,e,r){this.getDEMWorkerSource(t,e.source).loadTile(e,r)},Ht.prototype.reloadTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).reloadTile(e,r)},Ht.prototype.abortTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).abortTile(e,r)},Ht.prototype.removeTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).removeTile(e,r)},Ht.prototype.removeDEMTile=function(t,e){this.getDEMWorkerSource(t,e.source).removeTile(e)},Ht.prototype.removeSource=function(t,e,r){if(this.workerSources[t]&&this.workerSources[t][e.type]&&this.workerSources[t][e.type][e.source]){var n=this.workerSources[t][e.type][e.source];delete this.workerSources[t][e.type][e.source],void 0!==n.removeSource?n.removeSource(e,r):r()}},Ht.prototype.loadWorkerSource=function(t,e,r){try{this.self.importScripts(e.url),r()}catch(t){r(t.toString())}},Ht.prototype.loadRTLTextPlugin=function(e,r,n){try{t.plugin.isLoaded()||(this.self.importScripts(r),n(t.plugin.isLoaded()?null:new Error(\\\"RTL Text Plugin failed to import scripts from \\\"+r)))}catch(t){n(t.toString())}},Ht.prototype.getLayerIndex=function(t){var e=this.layerIndexes[t];return e||(e=this.layerIndexes[t]=new n),e},Ht.prototype.getWorkerSource=function(t,e,r){var n=this;if(this.workerSources[t]||(this.workerSources[t]={}),this.workerSources[t][e]||(this.workerSources[t][e]={}),!this.workerSources[t][e][r]){var i={send:function(e,r,i){n.actor.send(e,r,i,t)}};this.workerSources[t][e][r]=new this.workerSourceTypes[e](i,this.getLayerIndex(t))}return this.workerSources[t][e][r]},Ht.prototype.getDEMWorkerSource=function(t,e){return this.demWorkerSources[t]||(this.demWorkerSources[t]={}),this.demWorkerSources[t][e]||(this.demWorkerSources[t][e]=new A),this.demWorkerSources[t][e]},\\\"undefined\\\"!=typeof WorkerGlobalScope&&\\\"undefined\\\"!=typeof self&&self instanceof WorkerGlobalScope&&new Ht(self),Ht}),i(0,function(t){var e=t.createCommonjsModule(function(t){function e(t){return!!(\\\"undefined\\\"!=typeof window&&\\\"undefined\\\"!=typeof document&&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 t,e,r=new Blob([\\\"\\\"],{type:\\\"text/javascript\\\"}),n=URL.createObjectURL(r);try{e=new Worker(n),t=!0}catch(e){t=!1}return e&&e.terminate(),URL.revokeObjectURL(n),t}()&&\\\"Uint8ClampedArray\\\"in window&&function(t){return void 0===r[t]&&(r[t]=function(t){var r=document.createElement(\\\"canvas\\\"),n=Object.create(e.webGLContextAttributes);return n.failIfMajorPerformanceCaveat=t,r.probablySupportsContext?r.probablySupportsContext(\\\"webgl\\\",n)||r.probablySupportsContext(\\\"experimental-webgl\\\",n):r.supportsContext?r.supportsContext(\\\"webgl\\\",n)||r.supportsContext(\\\"experimental-webgl\\\",n):r.getContext(\\\"webgl\\\",n)||r.getContext(\\\"experimental-webgl\\\",n)}(t)),r[t]}(t&&t.failIfMajorPerformanceCaveat))}t.exports?t.exports=e:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=e);var r={};e.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}}),r=t.default.performance&&t.default.performance.now?t.default.performance.now.bind(t.default.performance):Date.now.bind(Date),n=t.default.requestAnimationFrame||t.default.mozRequestAnimationFrame||t.default.webkitRequestAnimationFrame||t.default.msRequestAnimationFrame,i=t.default.cancelAnimationFrame||t.default.mozCancelAnimationFrame||t.default.webkitCancelAnimationFrame||t.default.msCancelAnimationFrame,a={now:r,frame:function(t){return n(t)},cancelFrame:function(t){return i(t)},getImageData:function(e){var r=t.default.document.createElement(\\\"canvas\\\"),n=r.getContext(\\\"2d\\\");if(!n)throw new Error(\\\"failed to create canvas 2d context\\\");return r.width=e.width,r.height=e.height,n.drawImage(e,0,0,e.width,e.height),n.getImageData(0,0,e.width,e.height)},hardwareConcurrency:t.default.navigator.hardwareConcurrency||4,get devicePixelRatio(){return t.default.devicePixelRatio},supportsWebp:!1};if(t.default.document){var o=t.default.document.createElement(\\\"img\\\");o.onload=function(){a.supportsWebp=!0},o.src=\\\"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\\\"}var s={create:function(e,r,n){var i=t.default.document.createElement(e);return r&&(i.className=r),n&&n.appendChild(i),i},createNS:function(e,r){return t.default.document.createElementNS(e,r)}},l=t.default.document?t.default.document.documentElement.style:null;function c(t){if(!l)return null;for(var e=0;e<t.length;e++)if(t[e]in l)return t[e];return t[0]}var u,f=c([\\\"userSelect\\\",\\\"MozUserSelect\\\",\\\"WebkitUserSelect\\\",\\\"msUserSelect\\\"]);s.disableDrag=function(){l&&f&&(u=l[f],l[f]=\\\"none\\\")},s.enableDrag=function(){l&&f&&(l[f]=u)};var h=c([\\\"transform\\\",\\\"WebkitTransform\\\"]);s.setTransform=function(t,e){t.style[h]=e};var p=!1;try{var d=Object.defineProperty({},\\\"passive\\\",{get:function(){p=!0}});t.default.addEventListener(\\\"test\\\",d,d),t.default.removeEventListener(\\\"test\\\",d,d)}catch(t){p=!1}s.addEventListener=function(t,e,r,n){void 0===n&&(n={}),\\\"passive\\\"in n&&p?t.addEventListener(e,r,n):t.addEventListener(e,r,n.capture)},s.removeEventListener=function(t,e,r,n){void 0===n&&(n={}),\\\"passive\\\"in n&&p?t.removeEventListener(e,r,n):t.removeEventListener(e,r,n.capture)};var g=function(e){e.preventDefault(),e.stopPropagation(),t.default.removeEventListener(\\\"click\\\",g,!0)};s.suppressClick=function(){t.default.addEventListener(\\\"click\\\",g,!0),t.default.setTimeout(function(){t.default.removeEventListener(\\\"click\\\",g,!0)},0)},s.mousePos=function(e,r){var n=e.getBoundingClientRect();return r=r.touches?r.touches[0]:r,new t.default$1(r.clientX-n.left-e.clientLeft,r.clientY-n.top-e.clientTop)},s.touchPos=function(e,r){for(var n=e.getBoundingClientRect(),i=[],a=\\\"touchend\\\"===r.type?r.changedTouches:r.touches,o=0;o<a.length;o++)i.push(new t.default$1(a[o].clientX-n.left-e.clientLeft,a[o].clientY-n.top-e.clientTop));return i},s.mouseButton=function(e){return void 0!==t.default.InstallTrigger&&2===e.button&&e.ctrlKey&&t.default.navigator.platform.toUpperCase().indexOf(\\\"MAC\\\")>=0?0:e.button},s.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var v={API_URL:\\\"https://api.mapbox.com\\\",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null},m=\\\"See https://www.mapbox.com/api-documentation/#access-tokens\\\";function y(t,e){var r=A(v.API_URL);if(t.protocol=r.protocol,t.authority=r.authority,\\\"/\\\"!==r.path&&(t.path=\\\"\\\"+r.path+t.path),!v.REQUIRE_ACCESS_TOKEN)return T(t);if(!(e=e||v.ACCESS_TOKEN))throw new Error(\\\"An API access token is required to use Mapbox GL. \\\"+m);if(\\\"s\\\"===e[0])throw new Error(\\\"Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). \\\"+m);return t.params.push(\\\"access_token=\\\"+e),T(t)}function x(t){return 0===t.indexOf(\\\"mapbox:\\\")}var b=function(t,e){if(!x(t))return t;var r=A(t);return r.path=\\\"/v4/\\\"+r.authority+\\\".json\\\",r.params.push(\\\"secure\\\"),y(r,e)},_=function(t,e,r,n){var i=A(t);return x(t)?(i.path=\\\"/styles/v1\\\"+i.path+\\\"/sprite\\\"+e+r,y(i,n)):(i.path+=\\\"\\\"+e+r,T(i))},w=/(\\\\.(png|jpg)\\\\d*)(?=$)/,k=function(t,e,r){if(!e||!x(e))return t;var n=A(t),i=a.devicePixelRatio>=2||512===r?\\\"@2x\\\":\\\"\\\",o=a.supportsWebp?\\\".webp\\\":\\\"$1\\\";return n.path=n.path.replace(w,\\\"\\\"+i+o),function(t){for(var e=0;e<t.length;e++)0===t[e].indexOf(\\\"access_token=tk.\\\")&&(t[e]=\\\"access_token=\\\"+(v.ACCESS_TOKEN||\\\"\\\"))}(n.params),T(n)},M=/^(\\\\w+):\\\\/\\\\/([^\\\\/?]*)(\\\\/[^?]+)?\\\\??(.+)?/;function A(t){var e=t.match(M);if(!e)throw new Error(\\\"Unable to parse URL object\\\");return{protocol:e[1],authority:e[2],path:e[3]||\\\"/\\\",params:e[4]?e[4].split(\\\"&\\\"):[]}}function T(t){var e=t.params.length?\\\"?\\\"+t.params.join(\\\"&\\\"):\\\"\\\";return t.protocol+\\\"://\\\"+t.authority+t.path+e}var S=t.default.HTMLImageElement,E=t.default.HTMLCanvasElement,C=t.default.HTMLVideoElement,L=t.default.ImageData,z=function(t,e,r,n){this.context=t,this.format=r,this.texture=t.gl.createTexture(),this.update(e,n)};z.prototype.update=function(t,e){var r=t.width,n=t.height,i=!this.size||this.size[0]!==r||this.size[1]!==n,a=this.context,o=a.gl;this.useMipmap=Boolean(e&&e.useMipmap),o.bindTexture(o.TEXTURE_2D,this.texture),i?(this.size=[r,n],a.pixelStoreUnpack.set(1),this.format!==o.RGBA||e&&!1===e.premultiply||a.pixelStoreUnpackPremultiplyAlpha.set(!0),t instanceof S||t instanceof E||t instanceof C||t instanceof L?o.texImage2D(o.TEXTURE_2D,0,this.format,this.format,o.UNSIGNED_BYTE,t):o.texImage2D(o.TEXTURE_2D,0,this.format,r,n,0,this.format,o.UNSIGNED_BYTE,t.data)):t instanceof S||t instanceof E||t instanceof C||t instanceof L?o.texSubImage2D(o.TEXTURE_2D,0,0,0,o.RGBA,o.UNSIGNED_BYTE,t):o.texSubImage2D(o.TEXTURE_2D,0,0,0,r,n,o.RGBA,o.UNSIGNED_BYTE,t.data),this.useMipmap&&this.isSizePowerOfTwo()&&o.generateMipmap(o.TEXTURE_2D)},z.prototype.bind=function(t,e,r){var n=this.context.gl;n.bindTexture(n.TEXTURE_2D,this.texture),r!==n.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(r=n.LINEAR),t!==this.filter&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,t),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,r||t),this.filter=t),e!==this.wrap&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,e),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,e),this.wrap=e)},z.prototype.isSizePowerOfTwo=function(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0},z.prototype.destroy=function(){this.context.gl.deleteTexture(this.texture),this.texture=null};var O=function(){this.images={},this.loaded=!1,this.requestors=[],this.shelfPack=new t.default$2(64,64,{autoResize:!0}),this.patterns={},this.atlasImage=new t.RGBAImage({width:64,height:64}),this.dirty=!0};O.prototype.isLoaded=function(){return this.loaded},O.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,r=this.requestors;e<r.length;e+=1){var n=r[e],i=n.ids,a=n.callback;this._notify(i,a)}this.requestors=[]}},O.prototype.getImage=function(t){return this.images[t]},O.prototype.addImage=function(t,e){this.images[t]=e},O.prototype.removeImage=function(t){delete this.images[t];var e=this.patterns[t];e&&(this.shelfPack.unref(e.bin),delete this.patterns[t])},O.prototype.getImages=function(t,e){var r=!0;if(!this.isLoaded())for(var n=0,i=t;n<i.length;n+=1){var a=i[n];this.images[a]||(r=!1)}this.isLoaded()||r?this._notify(t,e):this.requestors.push({ids:t,callback:e})},O.prototype._notify=function(t,e){for(var r={},n=0,i=t;n<i.length;n+=1){var a=i[n],o=this.images[a];o&&(r[a]={data:o.data.clone(),pixelRatio:o.pixelRatio,sdf:o.sdf})}e(null,r)},O.prototype.getPixelSize=function(){return{width:this.shelfPack.w,height:this.shelfPack.h}},O.prototype.getPattern=function(e){var r=this.patterns[e];if(r)return r.position;var n=this.getImage(e);if(!n)return null;var i=n.data.width+2,a=n.data.height+2,o=this.shelfPack.packOne(i,a);if(!o)return null;this.atlasImage.resize(this.getPixelSize());var s=n.data,l=this.atlasImage,c=o.x+1,u=o.y+1,f=s.width,h=s.height;t.RGBAImage.copy(s,l,{x:0,y:0},{x:c,y:u},{width:f,height:h}),t.RGBAImage.copy(s,l,{x:0,y:h-1},{x:c,y:u-1},{width:f,height:1}),t.RGBAImage.copy(s,l,{x:0,y:0},{x:c,y:u+h},{width:f,height:1}),t.RGBAImage.copy(s,l,{x:f-1,y:0},{x:c-1,y:u},{width:1,height:h}),t.RGBAImage.copy(s,l,{x:0,y:0},{x:c+f,y:u},{width:1,height:h}),this.dirty=!0;var p=new t.ImagePosition(o,n);return this.patterns[e]={bin:o,position:p},p},O.prototype.bind=function(t){var e=t.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new z(t,this.atlasImage,e.RGBA),this.atlasTexture.bind(e.LINEAR,e.CLAMP_TO_EDGE)};var I=D,P=1e20;function D(t,e,r,n,i,a){this.fontSize=t||24,this.buffer=void 0===e?3:e,this.cutoff=n||.25,this.fontFamily=i||\\\"sans-serif\\\",this.fontWeight=a||\\\"normal\\\",this.radius=r||8;var o=this.size=this.fontSize+2*this.buffer;this.canvas=document.createElement(\\\"canvas\\\"),this.canvas.width=this.canvas.height=o,this.ctx=this.canvas.getContext(\\\"2d\\\"),this.ctx.font=this.fontWeight+\\\" \\\"+this.fontSize+\\\"px \\\"+this.fontFamily,this.ctx.textBaseline=\\\"middle\\\",this.ctx.fillStyle=\\\"black\\\",this.gridOuter=new Float64Array(o*o),this.gridInner=new Float64Array(o*o),this.f=new Float64Array(o),this.d=new Float64Array(o),this.z=new Float64Array(o+1),this.v=new Int16Array(o),this.middle=Math.round(o/2*(navigator.userAgent.indexOf(\\\"Gecko/\\\")>=0?1.2:1))}function R(t,e,r,n,i,a,o){for(var s=0;s<e;s++){for(var l=0;l<r;l++)n[l]=t[l*e+s];for(B(n,i,a,o,r),l=0;l<r;l++)t[l*e+s]=i[l]}for(l=0;l<r;l++){for(s=0;s<e;s++)n[s]=t[l*e+s];for(B(n,i,a,o,e),s=0;s<e;s++)t[l*e+s]=Math.sqrt(i[s])}}function B(t,e,r,n,i){r[0]=0,n[0]=-P,n[1]=+P;for(var a=1,o=0;a<i;a++){for(var s=(t[a]+a*a-(t[r[o]]+r[o]*r[o]))/(2*a-2*r[o]);s<=n[o];)o--,s=(t[a]+a*a-(t[r[o]]+r[o]*r[o]))/(2*a-2*r[o]);r[++o]=a,n[o]=s,n[o+1]=+P}for(a=0,o=0;a<i;a++){for(;n[o+1]<a;)o++;e[a]=(a-r[o])*(a-r[o])+t[r[o]]}}D.prototype.draw=function(t){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.fillText(t,this.buffer,this.middle);for(var e=this.ctx.getImageData(0,0,this.size,this.size),r=new Uint8ClampedArray(this.size*this.size),n=0;n<this.size*this.size;n++){var i=e.data[4*n+3]/255;this.gridOuter[n]=1===i?0:0===i?P:Math.pow(Math.max(0,.5-i),2),this.gridInner[n]=1===i?P:0===i?0:Math.pow(Math.max(0,i-.5),2)}for(R(this.gridOuter,this.size,this.size,this.f,this.d,this.v,this.z),R(this.gridInner,this.size,this.size,this.f,this.d,this.v,this.z),n=0;n<this.size*this.size;n++){var a=this.gridOuter[n]-this.gridInner[n];r[n]=Math.max(0,Math.min(255,Math.round(255-255*(a/this.radius+this.cutoff))))}return r};var F=function(t,e){this.requestTransform=t,this.localIdeographFontFamily=e,this.entries={}};F.prototype.setURL=function(t){this.url=t},F.prototype.getGlyphs=function(e,r){var n=this,i=[];for(var a in e)for(var o=0,s=e[a];o<s.length;o+=1){var l=s[o];i.push({stack:a,id:l})}t.asyncAll(i,function(t,e){var r=t.stack,i=t.id,a=n.entries[r];a||(a=n.entries[r]={glyphs:{},requests:{}});var o=a.glyphs[i];if(void 0===o)if(o=n._tinySDF(a,r,i))e(null,{stack:r,id:i,glyph:o});else{var s=Math.floor(i/256);if(256*s>65535)e(new Error(\\\"glyphs > 65535 not supported\\\"));else{var l=a.requests[s];l||(l=a.requests[s]=[],F.loadGlyphRange(r,s,n.url,n.requestTransform,function(t,e){if(e)for(var r in e)a.glyphs[+r]=e[+r];for(var n=0,i=l;n<i.length;n+=1)(0,i[n])(t,e);delete a.requests[s]})),l.push(function(t,n){t?e(t):n&&e(null,{stack:r,id:i,glyph:n[i]||null})})}}else e(null,{stack:r,id:i,glyph:o})},function(t,e){if(t)r(t);else if(e){for(var n={},i=0,a=e;i<a.length;i+=1){var o=a[i],s=o.stack,l=o.id,c=o.glyph;(n[s]||(n[s]={}))[l]=c&&{id:c.id,bitmap:c.bitmap.clone(),metrics:c.metrics}}r(null,n)}})},F.prototype._tinySDF=function(e,r,n){var i=this.localIdeographFontFamily;if(i&&(t.default$4[\\\"CJK Unified Ideographs\\\"](n)||t.default$4[\\\"Hangul Syllables\\\"](n))){var a=e.tinySDF;if(!a){var o=\\\"400\\\";/bold/i.test(r)?o=\\\"900\\\":/medium/i.test(r)?o=\\\"500\\\":/light/i.test(r)&&(o=\\\"200\\\"),a=e.tinySDF=new F.TinySDF(24,3,8,.25,i,o)}return{id:n,bitmap:new t.AlphaImage({width:30,height:30},a.draw(String.fromCharCode(n))),metrics:{width:24,height:24,left:0,top:-8,advance:24}}}},F.loadGlyphRange=function(e,r,n,i,a){var o=256*r,s=o+255,l=i(function(t,e){if(!x(t))return t;var r=A(t);return r.path=\\\"/fonts/v1\\\"+r.path,y(r,e)}(n).replace(\\\"{fontstack}\\\",e).replace(\\\"{range}\\\",o+\\\"-\\\"+s),t.ResourceType.Glyphs);t.getArrayBuffer(l,function(e,r){if(e)a(e);else if(r){for(var n={},i=0,o=t.default$3(r.data);i<o.length;i+=1){var s=o[i];n[s.id]=s}a(null,n)}})},F.TinySDF=I;var N=function(){this.specification=t.default$5.light.position};N.prototype.possiblyEvaluate=function(e,r){return t.sphericalToCartesian(e.expression.evaluate(r))},N.prototype.interpolate=function(e,r,n){return{x:t.number(e.x,r.x,n),y:t.number(e.y,r.y,n),z:t.number(e.z,r.z,n)}};var j=new t.Properties({anchor:new t.DataConstantProperty(t.default$5.light.anchor),position:new N,color:new t.DataConstantProperty(t.default$5.light.color),intensity:new t.DataConstantProperty(t.default$5.light.intensity)}),V=function(e){function r(r){e.call(this),this._transitionable=new t.Transitionable(j),this.setLight(r),this._transitioning=this._transitionable.untransitioned()}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.getLight=function(){return this._transitionable.serialize()},r.prototype.setLight=function(e){if(!this._validate(t.validateLight,e))for(var r in e){var n=e[r];t.endsWith(r,\\\"-transition\\\")?this._transitionable.setTransition(r.slice(0,-\\\"-transition\\\".length),n):this._transitionable.setValue(r,n)}},r.prototype.updateTransitions=function(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)},r.prototype.hasTransition=function(){return this._transitioning.hasTransition()},r.prototype.recalculate=function(t){this.properties=this._transitioning.possiblyEvaluate(t)},r.prototype._validate=function(e,r){return t.emitValidationErrors(this,e.call(t.validateStyle,t.extend({value:r,style:{glyphs:!0,sprite:!0},styleSpec:t.default$5})))},r}(t.Evented),U=function(t,e){this.width=t,this.height=e,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};U.prototype.getDash=function(t,e){var r=t.join(\\\",\\\")+String(e);return this.positions[r]||(this.positions[r]=this.addDash(t,e)),this.positions[r]},U.prototype.addDash=function(e,r){var n=r?7:0,i=2*n+1;if(this.nextRow+i>this.height)return t.warnOnce(\\\"LineAtlas out of space\\\"),null;for(var a=0,o=0;o<e.length;o++)a+=e[o];for(var s=this.width/a,l=s/2,c=e.length%2==1,u=-n;u<=n;u++)for(var f=this.nextRow+n+u,h=this.width*f,p=c?-e[e.length-1]:0,d=e[0],g=1,v=0;v<this.width;v++){for(;d<v/s;)p=d,d+=e[g],c&&g===e.length-1&&(d+=e[0]),g++;var m=Math.abs(v-p*s),y=Math.abs(v-d*s),x=Math.min(m,y),b=g%2==1,_=void 0;if(r){var w=n?u/n*(l+1):0;if(b){var k=l-Math.abs(w);_=Math.sqrt(x*x+k*k)}else _=l-Math.sqrt(x*x+w*w)}else _=(b?1:-1)*x;this.data[3+4*(h+v)]=Math.max(0,Math.min(255,_+128))}var M={y:(this.nextRow+n+.5)/this.height,height:2*n/this.height,width:a};return this.nextRow+=i,this.dirty=!0,M},U.prototype.bind=function(t){var e=t.gl;this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,e.texSubImage2D(e.TEXTURE_2D,0,0,0,this.width,this.height,e.RGBA,e.UNSIGNED_BYTE,this.data))):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.width,this.height,0,e.RGBA,e.UNSIGNED_BYTE,this.data))};var q=function e(r,n){this.workerPool=r,this.actors=[],this.currentActor=0,this.id=t.uniqueId();for(var i=this.workerPool.acquire(this.id),a=0;a<i.length;a++){var o=i[a],s=new e.Actor(o,n,this.id);s.name=\\\"Worker \\\"+a,this.actors.push(s)}};function H(e,r,n){var i=function(e,r){if(e)return n(e);if(r){var i=t.pick(r,[\\\"tiles\\\",\\\"minzoom\\\",\\\"maxzoom\\\",\\\"attribution\\\",\\\"mapbox_logo\\\",\\\"bounds\\\"]);r.vector_layers&&(i.vectorLayers=r.vector_layers,i.vectorLayerIds=i.vectorLayers.map(function(t){return t.id})),n(null,i)}};e.url?t.getJSON(r(b(e.url),t.ResourceType.Source),i):a.frame(function(){return i(null,e)})}q.prototype.broadcast=function(e,r,n){n=n||function(){},t.asyncAll(this.actors,function(t,n){t.send(e,r,n)},n)},q.prototype.send=function(t,e,r,n){return(\\\"number\\\"!=typeof n||isNaN(n))&&(n=this.currentActor=(this.currentActor+1)%this.actors.length),this.actors[n].send(t,e,r),n},q.prototype.remove=function(){this.actors.forEach(function(t){t.remove()}),this.actors=[],this.workerPool.release(this.id)},q.Actor=t.default$7;var G=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\\\"Invalid LngLat object: (\\\"+t+\\\", \\\"+e+\\\")\\\");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error(\\\"Invalid LngLat latitude value: must be between -90 and 90\\\")};G.prototype.wrap=function(){return new G(t.wrap(this.lng,-180,180),this.lat)},G.prototype.toArray=function(){return[this.lng,this.lat]},G.prototype.toString=function(){return\\\"LngLat(\\\"+this.lng+\\\", \\\"+this.lat+\\\")\\\"},G.prototype.toBounds=function(t){var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new W(new G(this.lng-r,this.lat-e),new G(this.lng+r,this.lat+e))},G.convert=function(t){if(t instanceof G)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new G(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&\\\"object\\\"==typeof t&&null!==t)return new G(Number(t.lng),Number(t.lat));throw new Error(\\\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]\\\")};var W=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};W.prototype.setNorthEast=function(t){return this._ne=t instanceof G?new G(t.lng,t.lat):G.convert(t),this},W.prototype.setSouthWest=function(t){return this._sw=t instanceof G?new G(t.lng,t.lat):G.convert(t),this},W.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof G)e=t,r=t;else{if(!(t instanceof W))return Array.isArray(t)?t.every(Array.isArray)?this.extend(W.convert(t)):this.extend(G.convert(t)):this;if(e=t._sw,r=t._ne,!e||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new G(e.lng,e.lat),this._ne=new G(r.lng,r.lat)),this},W.prototype.getCenter=function(){return new G((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},W.prototype.getSouthWest=function(){return this._sw},W.prototype.getNorthEast=function(){return this._ne},W.prototype.getNorthWest=function(){return new G(this.getWest(),this.getNorth())},W.prototype.getSouthEast=function(){return new G(this.getEast(),this.getSouth())},W.prototype.getWest=function(){return this._sw.lng},W.prototype.getSouth=function(){return this._sw.lat},W.prototype.getEast=function(){return this._ne.lng},W.prototype.getNorth=function(){return this._ne.lat},W.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},W.prototype.toString=function(){return\\\"LngLatBounds(\\\"+this._sw.toString()+\\\", \\\"+this._ne.toString()+\\\")\\\"},W.prototype.isEmpty=function(){return!(this._sw&&this._ne)},W.convert=function(t){return!t||t instanceof W?t:new W(t)};var Y=function(t,e,r){this.bounds=W.convert(this.validateBounds(t)),this.minzoom=e||0,this.maxzoom=r||24};Y.prototype.validateBounds=function(t){return Array.isArray(t)&&4===t.length?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]},Y.prototype.contains=function(t){var e=Math.floor(this.lngX(this.bounds.getWest(),t.z)),r=Math.floor(this.latY(this.bounds.getNorth(),t.z)),n=Math.ceil(this.lngX(this.bounds.getEast(),t.z)),i=Math.ceil(this.latY(this.bounds.getSouth(),t.z));return t.x>=e&&t.x<n&&t.y>=r&&t.y<i},Y.prototype.lngX=function(t,e){return(t+180)*(Math.pow(2,e)/360)},Y.prototype.latY=function(e,r){var n=t.clamp(Math.sin(Math.PI/180*e),-.9999,.9999),i=Math.pow(2,r)/(2*Math.PI);return Math.pow(2,r-1)+.5*Math.log((1+n)/(1-n))*-i};var X=function(e){function r(r,n,i,a){if(e.call(this),this.id=r,this.dispatcher=i,this.type=\\\"vector\\\",this.minzoom=0,this.maxzoom=22,this.scheme=\\\"xyz\\\",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,t.extend(this,t.pick(n,[\\\"url\\\",\\\"scheme\\\",\\\"tileSize\\\"])),this._options=t.extend({type:\\\"vector\\\"},n),this._collectResourceTiming=n.collectResourceTiming,512!==this.tileSize)throw new Error(\\\"vector tile sources must have a tileSize of 512\\\");this.setEventedParent(a)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),H(this._options,this.map._transformRequest,function(r,n){r?e.fire(new t.ErrorEvent(r)):n&&(t.extend(e,n),n.bounds&&(e.tileBounds=new Y(n.bounds,e.minzoom,e.maxzoom)),e.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"metadata\\\"})),e.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"content\\\"})))})},r.prototype.hasTile=function(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.serialize=function(){return t.extend({},this._options)},r.prototype.loadTile=function(e,r){var n=k(e.tileID.canonical.url(this.tiles,this.scheme),this.url),i={request:this.map._transformRequest(n,t.ResourceType.Tile),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:a.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes};function o(t,n){return e.aborted?r(null):t?r(t):(n&&n.resourceTiming&&(e.resourceTiming=n.resourceTiming),this.map._refreshExpiredTiles&&e.setExpiryData(n),e.loadVectorData(n,this.map.painter),r(null),void(e.reloadCallback&&(this.loadTile(e,e.reloadCallback),e.reloadCallback=null)))}i.request.collectResourceTiming=this._collectResourceTiming,void 0===e.workerID||\\\"expired\\\"===e.state?e.workerID=this.dispatcher.send(\\\"loadTile\\\",i,o.bind(this)):\\\"loading\\\"===e.state?e.reloadCallback=r:this.dispatcher.send(\\\"reloadTile\\\",i,o.bind(this),e.workerID)},r.prototype.abortTile=function(t){this.dispatcher.send(\\\"abortTile\\\",{uid:t.uid,type:this.type,source:this.id},void 0,t.workerID)},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send(\\\"removeTile\\\",{uid:t.uid,type:this.type,source:this.id},void 0,t.workerID)},r.prototype.hasTransition=function(){return!1},r}(t.Evented),Z=function(e){function r(r,n,i,a){e.call(this),this.id=r,this.dispatcher=i,this.setEventedParent(a),this.type=\\\"raster\\\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\\\"xyz\\\",this.tileSize=512,this._loaded=!1,this._options=t.extend({},n),t.extend(this,t.pick(n,[\\\"url\\\",\\\"scheme\\\",\\\"tileSize\\\"]))}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),H(this._options,this.map._transformRequest,function(r,n){r?e.fire(new t.ErrorEvent(r)):n&&(t.extend(e,n),n.bounds&&(e.tileBounds=new Y(n.bounds,e.minzoom,e.maxzoom)),e.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"metadata\\\"})),e.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"content\\\"})))})},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.serialize=function(){return t.extend({},this._options)},r.prototype.hasTile=function(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)},r.prototype.loadTile=function(e,r){var n=this,i=k(e.tileID.canonical.url(this.tiles,this.scheme),this.url,this.tileSize);e.request=t.getImage(this.map._transformRequest(i,t.ResourceType.Tile),function(t,i){if(delete e.request,e.aborted)e.state=\\\"unloaded\\\",r(null);else if(t)e.state=\\\"errored\\\",r(t);else if(i){n.map._refreshExpiredTiles&&e.setExpiryData(i),delete i.cacheControl,delete i.expires;var a=n.map.painter.context,o=a.gl;e.texture=n.map.painter.getTileTexture(i.width),e.texture?e.texture.update(i,{useMipmap:!0}):(e.texture=new z(a,i,o.RGBA,{useMipmap:!0}),e.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE,o.LINEAR_MIPMAP_NEAREST),a.extTextureFilterAnisotropic&&o.texParameterf(o.TEXTURE_2D,a.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,a.extTextureFilterAnisotropicMax)),e.state=\\\"loaded\\\",r(null)}})},r.prototype.abortTile=function(t,e){t.request&&(t.request.abort(),delete t.request),e()},r.prototype.unloadTile=function(t,e){t.texture&&this.map.painter.saveTileTexture(t.texture),e()},r.prototype.hasTransition=function(){return!1},r}(t.Evented),$=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),this.type=\\\"raster-dem\\\",this.maxzoom=22,this._options=t.extend({},n),this.encoding=n.encoding||\\\"mapbox\\\"}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.serialize=function(){return{type:\\\"raster-dem\\\",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}},r.prototype.loadTile=function(e,r){var n=k(e.tileID.canonical.url(this.tiles,this.scheme),this.url,this.tileSize);e.request=t.getImage(this.map._transformRequest(n,t.ResourceType.Tile),function(t,n){if(delete e.request,e.aborted)e.state=\\\"unloaded\\\",r(null);else if(t)e.state=\\\"errored\\\",r(t);else if(n){this.map._refreshExpiredTiles&&e.setExpiryData(n),delete n.cacheControl,delete n.expires;var i=a.getImageData(n),o={uid:e.uid,coord:e.tileID,source:this.id,rawImageData:i,encoding:this.encoding};e.workerID&&\\\"expired\\\"!==e.state||(e.workerID=this.dispatcher.send(\\\"loadDEMTile\\\",o,function(t,n){t&&(e.state=\\\"errored\\\",r(t)),n&&(e.dem=n,e.needsHillshadePrepare=!0,e.state=\\\"loaded\\\",r(null))}.bind(this)))}}.bind(this)),e.neighboringTiles=this._getNeighboringTiles(e.tileID)},r.prototype._getNeighboringTiles=function(e){var r=e.canonical,n=Math.pow(2,r.z),i=(r.x-1+n)%n,a=0===r.x?e.wrap-1:e.wrap,o=(r.x+1+n)%n,s=r.x+1===n?e.wrap+1:e.wrap,l={};return l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y).key]={backfilled:!1},r.y>0&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y-1).key]={backfilled:!1}),r.y+1<n&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y+1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y+1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y+1).key]={backfilled:!1}),l},r.prototype.unloadTile=function(t){t.demTexture&&this.map.painter.saveTileTexture(t.demTexture),t.fbo&&(t.fbo.destroy(),delete t.fbo),t.dem&&delete t.dem,delete t.neighboringTiles,t.state=\\\"unloaded\\\",this.dispatcher.send(\\\"removeDEMTile\\\",{uid:t.uid,source:this.id},void 0,t.workerID)},r}(Z),J=function(e){function r(r,n,i,a){e.call(this),this.id=r,this.type=\\\"geojson\\\",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this.dispatcher=i,this.setEventedParent(a),this._data=n.data,this._options=t.extend({},n),this._collectResourceTiming=n.collectResourceTiming,this._resourceTiming=[],void 0!==n.maxzoom&&(this.maxzoom=n.maxzoom),n.type&&(this.type=n.type);var o=t.default$8/this.tileSize;this.workerOptions=t.extend({source:this.id,cluster:n.cluster||!1,geojsonVtOptions:{buffer:(void 0!==n.buffer?n.buffer:128)*o,tolerance:(void 0!==n.tolerance?n.tolerance:.375)*o,extent:t.default$8,maxZoom:this.maxzoom,lineMetrics:n.lineMetrics||!1},superclusterOptions:{maxZoom:void 0!==n.clusterMaxZoom?Math.min(n.clusterMaxZoom,this.maxzoom-1):this.maxzoom-1,extent:t.default$8,radius:(n.clusterRadius||50)*o,log:!1}},n.workerOptions)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),this._updateWorkerData(function(r){if(r)e.fire(new t.ErrorEvent(r));else{var n={dataType:\\\"source\\\",sourceDataType:\\\"metadata\\\"};e._collectResourceTiming&&e._resourceTiming&&e._resourceTiming.length>0&&(n.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event(\\\"data\\\",n))}})},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setData=function(e){var r=this;return this._data=e,this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),this._updateWorkerData(function(e){if(e)return r.fire(new t.ErrorEvent(e));var n={dataType:\\\"source\\\",sourceDataType:\\\"content\\\"};r._collectResourceTiming&&r._resourceTiming&&r._resourceTiming.length>0&&(n.resourceTiming=r._resourceTiming,r._resourceTiming=[]),r.fire(new t.Event(\\\"data\\\",n))}),this},r.prototype._updateWorkerData=function(e){var r,n,i=this,a=t.extend({},this.workerOptions),o=this._data;\\\"string\\\"==typeof o?(a.request=this.map._transformRequest((r=o,(n=t.default.document.createElement(\\\"a\\\")).href=r,n.href),t.ResourceType.Source),a.request.collectResourceTiming=this._collectResourceTiming):a.data=JSON.stringify(o),this.workerID=this.dispatcher.send(this.type+\\\".\\\"+a.source+\\\".loadData\\\",a,function(t,r){i._removed||r&&r.abandoned||(i._loaded=!0,r&&r.resourceTiming&&r.resourceTiming[i.id]&&(i._resourceTiming=r.resourceTiming[i.id].slice(0)),i.dispatcher.send(i.type+\\\".\\\"+a.source+\\\".coalesce\\\",null,null,i.workerID),e(t))},this.workerID)},r.prototype.loadTile=function(t,e){var r=this,n=void 0===t.workerID?\\\"loadTile\\\":\\\"reloadTile\\\",i={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:a.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send(n,i,function(i,a){return t.unloadVectorData(),t.aborted?e(null):i?e(i):(t.loadVectorData(a,r.map.painter,\\\"reloadTile\\\"===n),e(null))},this.workerID)},r.prototype.abortTile=function(t){t.aborted=!0},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send(\\\"removeTile\\\",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},r.prototype.onRemove=function(){this._removed=!0,this.dispatcher.send(\\\"removeSource\\\",{type:this.type,source:this.id},null,this.workerID)},r.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},r.prototype.hasTransition=function(){return!1},r}(t.Evented),K=t.createLayout([{name:\\\"a_pos\\\",type:\\\"Int16\\\",components:2},{name:\\\"a_texture_pos\\\",type:\\\"Int16\\\",components:2}]),Q=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};Q.prototype.bind=function(t,e,r,n,i,a,o,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==n.length,c=0;!l&&c<n.length;c++)this.boundPaintVertexBuffers[c]!==n[c]&&(l=!0);var u=!this.vao||this.boundProgram!==e||this.boundLayoutVertexBuffer!==r||l||this.boundIndexBuffer!==i||this.boundVertexOffset!==a||this.boundDynamicVertexBuffer!==o||this.boundDynamicVertexBuffer2!==s;!t.extVertexArrayObject||u?this.freshBind(e,r,n,i,a,o,s):(t.bindVertexArrayOES.set(this.vao),o&&o.bind(),i&&i.dynamicDraw&&i.bind(),s&&s.bind())},Q.prototype.freshBind=function(t,e,r,n,i,a,o){var s,l=t.numAttributes,c=this.context,u=c.gl;if(c.extVertexArrayObject)this.vao&&this.destroy(),this.vao=c.extVertexArrayObject.createVertexArrayOES(),c.bindVertexArrayOES.set(this.vao),s=0,this.boundProgram=t,this.boundLayoutVertexBuffer=e,this.boundPaintVertexBuffers=r,this.boundIndexBuffer=n,this.boundVertexOffset=i,this.boundDynamicVertexBuffer=a,this.boundDynamicVertexBuffer2=o;else{s=c.currentNumAttributes||0;for(var f=l;f<s;f++)u.disableVertexAttribArray(f)}e.enableAttributes(u,t);for(var h=0,p=r;h<p.length;h+=1)p[h].enableAttributes(u,t);a&&a.enableAttributes(u,t),o&&o.enableAttributes(u,t),e.bind(),e.setVertexAttribPointers(u,t,i);for(var d=0,g=r;d<g.length;d+=1){var v=g[d];v.bind(),v.setVertexAttribPointers(u,t,i)}a&&(a.bind(),a.setVertexAttribPointers(u,t,i)),n&&n.bind(),o&&(o.bind(),o.setVertexAttribPointers(u,t,i)),c.currentNumAttributes=l},Q.prototype.destroy=function(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null)};var tt=function(e){function r(t,r,n,i){e.call(this),this.id=t,this.dispatcher=n,this.coordinates=r.coordinates,this.type=\\\"image\\\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this.setEventedParent(i),this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),this.url=this.options.url,t.getImage(this.map._transformRequest(this.url,t.ResourceType.Image),function(r,n){r?e.fire(new t.ErrorEvent(r)):n&&(e.image=a.getImageData(n),e._finishLoading())})},r.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"metadata\\\"})))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setCoordinates=function(e){this.coordinates=e;var r=this.map,n=e.map(function(t){return r.transform.locationCoordinate(G.convert(t)).zoomTo(0)}),i=this.centerCoord=t.getCoordinatesCenter(n);i.column=Math.floor(i.column),i.row=Math.floor(i.row),this.tileID=new t.CanonicalTileID(i.zoom,i.column,i.row),this.minzoom=this.maxzoom=i.zoom;var a=n.map(function(e){var r=e.zoomTo(i.zoom);return new t.default$1(Math.round((r.column-i.column)*t.default$8),Math.round((r.row-i.row)*t.default$8))});return this._boundsArray=new t.RasterBoundsArray,this._boundsArray.emplaceBack(a[0].x,a[0].y,0,0),this._boundsArray.emplaceBack(a[1].x,a[1].y,t.default$8,0),this._boundsArray.emplaceBack(a[3].x,a[3].y,0,t.default$8),this._boundsArray.emplaceBack(a[2].x,a[2].y,t.default$8,t.default$8),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"content\\\"})),this},r.prototype.prepare=function(){if(0!==Object.keys(this.tiles).length&&this.image){var t=this.map.painter.context,e=t.gl;for(var r in this.boundsBuffer||(this.boundsBuffer=t.createVertexBuffer(this._boundsArray,K.members)),this.boundsVAO||(this.boundsVAO=new Q),this.texture||(this.texture=new z(t,this.image,e.RGBA),this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE)),this.tiles){var n=this.tiles[r];\\\"loaded\\\"!==n.state&&(n.state=\\\"loaded\\\",n.texture=this.texture)}}},r.prototype.loadTile=function(t,e){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={},e(null)):(t.state=\\\"errored\\\",e(null))},r.prototype.serialize=function(){return{type:\\\"image\\\",url:this.options.url,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return!1},r}(t.Evented),et=function(e){function r(t,r,n,i){e.call(this,t,r,n,i),this.roundZoom=!0,this.type=\\\"video\\\",this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this,r=this.options;this.urls=[];for(var n=0,i=r.urls;n<i.length;n+=1){var a=i[n];e.urls.push(e.map._transformRequest(a,t.ResourceType.Source).url)}t.getVideo(this.urls,function(r,n){r?e.fire(new t.ErrorEvent(r)):n&&(e.video=n,e.video.loop=!0,e.video.addEventListener(\\\"playing\\\",function(){e.map._rerender()}),e.map&&e.video.play(),e._finishLoading())})},r.prototype.getVideo=function(){return this.video},r.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},r.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var t=this.map.painter.context,e=t.gl;for(var r in this.boundsBuffer||(this.boundsBuffer=t.createVertexBuffer(this._boundsArray,K.members)),this.boundsVAO||(this.boundsVAO=new Q),this.texture?this.video.paused||(this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE),e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,this.video)):(this.texture=new z(t,this.video,e.RGBA),this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE)),this.tiles){var n=this.tiles[r];\\\"loaded\\\"!==n.state&&(n.state=\\\"loaded\\\",n.texture=this.texture)}}},r.prototype.serialize=function(){return{type:\\\"video\\\",urls:this.urls,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this.video&&!this.video.paused},r}(tt),rt=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some(function(t){return!Array.isArray(t)||2!==t.length||t.some(function(t){return\\\"number\\\"!=typeof t})})||this.fire(new t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,null,'\\\"coordinates\\\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,null,'missing required property \\\"coordinates\\\"'))),n.animate&&\\\"boolean\\\"!=typeof n.animate&&this.fire(new t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,null,'optional \\\"animate\\\" property must be a boolean value'))),n.canvas?\\\"string\\\"==typeof n.canvas||n.canvas instanceof t.default.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,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 t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,null,'missing required property \\\"canvas\\\"'))),this.options=n,this.animate=void 0===n.animate||n.animate}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){this.canvas||(this.canvas=this.options.canvas instanceof t.default.HTMLCanvasElement?this.options.canvas:t.default.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error(\\\"Canvas dimensions cannot be less than or equal to zero.\\\"))):(this.play=function(){this._playing=!0,this.map._rerender()},this.pause=function(){this._playing=!1},this._finishLoading())},r.prototype.getCanvas=function(){return this.canvas},r.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},r.prototype.onRemove=function(){this.pause()},r.prototype.prepare=function(){var t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,K.members)),this.boundsVAO||(this.boundsVAO=new Q),this.texture?t?this.texture.update(this.canvas):this._playing&&(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.canvas)):(this.texture=new z(e,this.canvas,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];\\\"loaded\\\"!==i.state&&(i.state=\\\"loaded\\\",i.texture=this.texture)}}},r.prototype.serialize=function(){return{type:\\\"canvas\\\",coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this._playing},r.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];t<e.length;t+=1){var r=e[t];if(isNaN(r)||r<=0)return!0}return!1},r}(tt),nt={vector:X,raster:Z,\\\"raster-dem\\\":$,geojson:J,video:et,image:tt,canvas:rt},it=function(e,r,n,i){var a=new nt[r.type](e,r,n,i);if(a.id!==e)throw new Error(\\\"Expected Source id to be \\\"+e+\\\" instead of \\\"+a.id);return t.bindAll([\\\"load\\\",\\\"abort\\\",\\\"unload\\\",\\\"serialize\\\",\\\"prepare\\\"],a),a};function at(t,e,r,n,i){var a=i.maxPitchScaleFactor(),o=t.tilesIn(r,a);o.sort(ot);for(var s=[],l=0,c=o;l<c.length;l+=1){var u=c[l];s.push({wrappedTileID:u.tileID.wrapped().key,queryResults:u.tile.queryRenderedFeatures(e,u.queryGeometry,u.scale,n,i,a,t.transform.calculatePosMatrix(u.tileID.toUnwrapped()))})}return function(t){for(var e={},r={},n=0,i=t;n<i.length;n+=1){var a=i[n],o=a.queryResults,s=a.wrappedTileID,l=r[s]=r[s]||{};for(var c in o)for(var u=o[c],f=l[c]=l[c]||{},h=e[c]=e[c]||[],p=0,d=u;p<d.length;p+=1){var g=d[p];f[g.featureIndex]||(f[g.featureIndex]=!0,h.push(g.feature))}}return e}(s)}function ot(t,e){var r=t.tileID,n=e.tileID;return r.overscaledZ-n.overscaledZ||r.canonical.y-n.canonical.y||r.wrap-n.wrap||r.canonical.x-n.canonical.x}var st=function(e,r){this.tileID=e,this.uid=t.uniqueId(),this.uses=0,this.tileSize=r,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.expiredRequestCount=0,this.state=\\\"loading\\\"};st.prototype.registerFadeDuration=function(t){var e=t+this.timeAdded;e<a.now()||this.fadeEndTime&&e<this.fadeEndTime||(this.fadeEndTime=e)},st.prototype.wasRequested=function(){return\\\"errored\\\"===this.state||\\\"loaded\\\"===this.state||\\\"reloading\\\"===this.state},st.prototype.loadVectorData=function(e,r,n){if(this.hasData()&&this.unloadVectorData(),this.state=\\\"loaded\\\",e){if(e.featureIndex&&(this.latestFeatureIndex=e.featureIndex,e.rawTileData?(this.latestRawTileData=e.rawTileData,this.latestFeatureIndex.rawTileData=e.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=e.collisionBoxArray,this.buckets=function(t,e){var r={};if(!e)return r;for(var n=0,i=t;n<i.length;n+=1){var a=i[n],o=a.layerIds.map(function(t){return e.getLayer(t)}).filter(Boolean);if(0!==o.length){a.layers=o;for(var s=0,l=o;s<l.length;s+=1)r[l[s].id]=a}}return r}(e.buckets,r.style),n)for(var i in this.buckets){var a=this.buckets[i];a instanceof t.default$14&&(a.justReloaded=!0)}for(var o in this.queryPadding=0,this.buckets){var s=this.buckets[o];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(s.layerIds[0]).queryRadius(s))}e.iconAtlasImage&&(this.iconAtlasImage=e.iconAtlasImage),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage)}else this.collisionBoxArray=new t.CollisionBoxArray},st.prototype.unloadVectorData=function(){for(var t in this.buckets)this.buckets[t].destroy();this.buckets={},this.iconAtlasTexture&&this.iconAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state=\\\"unloaded\\\"},st.prototype.unloadDEMData=function(){this.dem=null,this.neighboringTiles=null,this.state=\\\"unloaded\\\"},st.prototype.getBucket=function(t){return this.buckets[t.id]},st.prototype.upload=function(t){for(var e in this.buckets){var r=this.buckets[e];r.uploaded||(r.upload(t),r.uploaded=!0)}var n=t.gl;this.iconAtlasImage&&(this.iconAtlasTexture=new z(t,this.iconAtlasImage,n.RGBA),this.iconAtlasImage=null),this.glyphAtlasImage&&(this.glyphAtlasTexture=new z(t,this.glyphAtlasImage,n.ALPHA),this.glyphAtlasImage=null)},st.prototype.queryRenderedFeatures=function(t,e,r,n,i,a,o){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:e,scale:r,tileSize:this.tileSize,posMatrix:o,transform:i,params:n,queryPadding:this.queryPadding*a},t):{}},st.prototype.querySourceFeatures=function(e,r){if(this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData){var n=this.latestFeatureIndex.loadVTLayers(),i=r?r.sourceLayer:\\\"\\\",a=n._geojsonTileLayer||n[i];if(a)for(var o=t.default$13(r&&r.filter),s={z:this.tileID.overscaledZ,x:this.tileID.canonical.x,y:this.tileID.canonical.y},l=0;l<a.length;l++){var c=a.feature(l);if(o(new t.default$16(this.tileID.overscaledZ),c)){var u=new t.default$12(c,s.z,s.x,s.y);u.tile=s,e.push(u)}}}},st.prototype.clearMask=function(){this.segments&&(this.segments.destroy(),delete this.segments),this.maskedBoundsBuffer&&(this.maskedBoundsBuffer.destroy(),delete this.maskedBoundsBuffer),this.maskedIndexBuffer&&(this.maskedIndexBuffer.destroy(),delete this.maskedIndexBuffer)},st.prototype.setMask=function(e,r){if(!t.default$10(this.mask,e)&&(this.mask=e,this.clearMask(),!t.default$10(e,{0:!0}))){var n=new t.RasterBoundsArray,i=new t.TriangleIndexArray;this.segments=new t.default$15,this.segments.prepareSegment(0,n,i);for(var a=Object.keys(e),o=0;o<a.length;o++){var s=e[a[o]],l=t.default$8>>s.z,c=new t.default$1(s.x*l,s.y*l),u=new t.default$1(c.x+l,c.y+l),f=this.segments.prepareSegment(4,n,i);n.emplaceBack(c.x,c.y,c.x,c.y),n.emplaceBack(u.x,c.y,u.x,c.y),n.emplaceBack(c.x,u.y,c.x,u.y),n.emplaceBack(u.x,u.y,u.x,u.y);var h=f.vertexLength;i.emplaceBack(h,h+1,h+2),i.emplaceBack(h+1,h+2,h+3),f.vertexLength+=4,f.primitiveLength+=2}this.maskedBoundsBuffer=r.createVertexBuffer(n,K.members),this.maskedIndexBuffer=r.createIndexBuffer(i)}},st.prototype.hasData=function(){return\\\"loaded\\\"===this.state||\\\"reloading\\\"===this.state||\\\"expired\\\"===this.state},st.prototype.setExpiryData=function(e){var r=this.expirationTime;if(e.cacheControl){var n=t.parseCacheControl(e.cacheControl);n[\\\"max-age\\\"]&&(this.expirationTime=Date.now()+1e3*n[\\\"max-age\\\"])}else e.expires&&(this.expirationTime=new Date(e.expires).getTime());if(this.expirationTime){var i=Date.now(),a=!1;if(this.expirationTime>i)a=!1;else if(r)if(this.expirationTime<r)a=!0;else{var o=this.expirationTime-r;o?this.expirationTime=i+Math.max(o,3e4):a=!0}else a=!0;a?(this.expiredRequestCount++,this.state=\\\"expired\\\"):this.expiredRequestCount=0}},st.prototype.getExpiryTimeout=function(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-(new Date).getTime(),Math.pow(2,31)-1)};var lt=function(t,e){this.max=t,this.onRemove=e,this.reset()};lt.prototype.reset=function(){for(var t in this.data)for(var e=0,r=this.data[t];e<r.length;e+=1){var n=r[e];n.timeout&&clearTimeout(n.timeout),this.onRemove(n.value)}return this.data={},this.order=[],this},lt.prototype.add=function(t,e,r){var n=this,i=t.wrapped().key;void 0===this.data[i]&&(this.data[i]=[]);var a={value:e,timeout:void 0};if(void 0!==r&&(a.timeout=setTimeout(function(){n.remove(t,a)},r)),this.data[i].push(a),this.order.push(i),this.order.length>this.max){var o=this._getAndRemoveByKey(this.order[0]);o&&this.onRemove(o)}return this},lt.prototype.has=function(t){return t.wrapped().key in this.data},lt.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},lt.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},lt.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},lt.prototype.remove=function(t,e){if(!this.has(t))return this;var r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this},lt.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this};var ct=function(t,e,r){this.context=t;var n=t.gl;this.buffer=n.createBuffer(),this.dynamicDraw=Boolean(r),this.unbindVAO(),t.bindElementBuffer.set(this.buffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?n.DYNAMIC_DRAW:n.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer};ct.prototype.unbindVAO=function(){this.context.extVertexArrayObject&&this.context.bindVertexArrayOES.set(null)},ct.prototype.bind=function(){this.context.bindElementBuffer.set(this.buffer)},ct.prototype.updateData=function(t){var e=this.context.gl;this.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer)},ct.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)};var ut={Int8:\\\"BYTE\\\",Uint8:\\\"UNSIGNED_BYTE\\\",Int16:\\\"SHORT\\\",Uint16:\\\"UNSIGNED_SHORT\\\",Int32:\\\"INT\\\",Uint32:\\\"UNSIGNED_INT\\\",Float32:\\\"FLOAT\\\"},ft=function(t,e,r,n){this.length=e.length,this.attributes=r,this.itemSize=e.bytesPerElement,this.dynamicDraw=n,this.context=t;var i=t.gl;this.buffer=i.createBuffer(),t.bindVertexBuffer.set(this.buffer),i.bufferData(i.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?i.DYNAMIC_DRAW:i.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer};ft.prototype.bind=function(){this.context.bindVertexBuffer.set(this.buffer)},ft.prototype.updateData=function(t){var e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer)},ft.prototype.enableAttributes=function(t,e){for(var r=0;r<this.attributes.length;r++){var n=this.attributes[r],i=e.attributes[n.name];void 0!==i&&t.enableVertexAttribArray(i)}},ft.prototype.setVertexAttribPointers=function(t,e,r){for(var n=0;n<this.attributes.length;n++){var i=this.attributes[n],a=e.attributes[i.name];void 0!==a&&t.vertexAttribPointer(a,i.components,t[ut[i.type]],!1,this.itemSize,i.offset+this.itemSize*(r||0))}},ft.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)};var ht=function(e){this.context=e,this.current=t.default$6.transparent};ht.prototype.get=function(){return this.current},ht.prototype.set=function(t){var e=this.current;t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a||(this.context.gl.clearColor(t.r,t.g,t.b,t.a),this.current=t)};var pt=function(t){this.context=t,this.current=1};pt.prototype.get=function(){return this.current},pt.prototype.set=function(t){this.current!==t&&(this.context.gl.clearDepth(t),this.current=t)};var dt=function(t){this.context=t,this.current=0};dt.prototype.get=function(){return this.current},dt.prototype.set=function(t){this.current!==t&&(this.context.gl.clearStencil(t),this.current=t)};var gt=function(t){this.context=t,this.current=[!0,!0,!0,!0]};gt.prototype.get=function(){return this.current},gt.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]||(this.context.gl.colorMask(t[0],t[1],t[2],t[3]),this.current=t)};var vt=function(t){this.context=t,this.current=!0};vt.prototype.get=function(){return this.current},vt.prototype.set=function(t){this.current!==t&&(this.context.gl.depthMask(t),this.current=t)};var mt=function(t){this.context=t,this.current=255};mt.prototype.get=function(){return this.current},mt.prototype.set=function(t){this.current!==t&&(this.context.gl.stencilMask(t),this.current=t)};var yt=function(t){this.context=t,this.current={func:t.gl.ALWAYS,ref:0,mask:255}};yt.prototype.get=function(){return this.current},yt.prototype.set=function(t){var e=this.current;t.func===e.func&&t.ref===e.ref&&t.mask===e.mask||(this.context.gl.stencilFunc(t.func,t.ref,t.mask),this.current=t)};var xt=function(t){this.context=t;var e=this.context.gl;this.current=[e.KEEP,e.KEEP,e.KEEP]};xt.prototype.get=function(){return this.current},xt.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]||(this.context.gl.stencilOp(t[0],t[1],t[2]),this.current=t)};var bt=function(t){this.context=t,this.current=!1};bt.prototype.get=function(){return this.current},bt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this.current=t}};var _t=function(t){this.context=t,this.current=[0,1]};_t.prototype.get=function(){return this.current},_t.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]||(this.context.gl.depthRange(t[0],t[1]),this.current=t)};var wt=function(t){this.context=t,this.current=!1};wt.prototype.get=function(){return this.current},wt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this.current=t}};var kt=function(t){this.context=t,this.current=t.gl.LESS};kt.prototype.get=function(){return this.current},kt.prototype.set=function(t){this.current!==t&&(this.context.gl.depthFunc(t),this.current=t)};var Mt=function(t){this.context=t,this.current=!1};Mt.prototype.get=function(){return this.current},Mt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.BLEND):e.disable(e.BLEND),this.current=t}};var At=function(t){this.context=t;var e=this.context.gl;this.current=[e.ONE,e.ZERO]};At.prototype.get=function(){return this.current},At.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]||(this.context.gl.blendFunc(t[0],t[1]),this.current=t)};var Tt=function(e){this.context=e,this.current=t.default$6.transparent};Tt.prototype.get=function(){return this.current},Tt.prototype.set=function(t){var e=this.current;t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a||(this.context.gl.blendColor(t.r,t.g,t.b,t.a),this.current=t)};var St=function(t){this.context=t,this.current=null};St.prototype.get=function(){return this.current},St.prototype.set=function(t){this.current!==t&&(this.context.gl.useProgram(t),this.current=t)};var Et=function(t){this.context=t,this.current=1};Et.prototype.get=function(){return this.current},Et.prototype.set=function(e){var r=this.context.lineWidthRange,n=t.clamp(e,r[0],r[1]);this.current!==n&&(this.context.gl.lineWidth(n),this.current=e)};var Ct=function(t){this.context=t,this.current=t.gl.TEXTURE0};Ct.prototype.get=function(){return this.current},Ct.prototype.set=function(t){this.current!==t&&(this.context.gl.activeTexture(t),this.current=t)};var Lt=function(t){this.context=t;var e=this.context.gl;this.current=[0,0,e.drawingBufferWidth,e.drawingBufferHeight]};Lt.prototype.get=function(){return this.current},Lt.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]||(this.context.gl.viewport(t[0],t[1],t[2],t[3]),this.current=t)};var zt=function(t){this.context=t,this.current=null};zt.prototype.get=function(){return this.current},zt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindFramebuffer(e.FRAMEBUFFER,t),this.current=t}};var Ot=function(t){this.context=t,this.current=null};Ot.prototype.get=function(){return this.current},Ot.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindRenderbuffer(e.RENDERBUFFER,t),this.current=t}};var It=function(t){this.context=t,this.current=null};It.prototype.get=function(){return this.current},It.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindTexture(e.TEXTURE_2D,t),this.current=t}};var Pt=function(t){this.context=t,this.current=null};Pt.prototype.get=function(){return this.current},Pt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindBuffer(e.ARRAY_BUFFER,t),this.current=t}};var Dt=function(t){this.context=t,this.current=null};Dt.prototype.get=function(){return this.current},Dt.prototype.set=function(t){var e=this.context.gl;e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),this.current=t};var Rt=function(t){this.context=t,this.current=null};Rt.prototype.get=function(){return this.current},Rt.prototype.set=function(t){this.current!==t&&this.context.extVertexArrayObject&&(this.context.extVertexArrayObject.bindVertexArrayOES(t),this.current=t)};var Bt=function(t){this.context=t,this.current=4};Bt.prototype.get=function(){return this.current},Bt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.pixelStorei(e.UNPACK_ALIGNMENT,t),this.current=t}};var Ft=function(t){this.context=t,this.current=!1};Ft.prototype.get=function(){return this.current},Ft.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t),this.current=t}};var Nt=function(t,e){this.context=t,this.current=null,this.parent=e};Nt.prototype.get=function(){return this.current};var jt=function(t){function e(e,r){t.call(this,e,r),this.dirty=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){if(this.dirty||this.current!==t){var e=this.context.gl;this.context.bindFramebuffer.set(this.parent),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0),this.current=t,this.dirty=!1}},e.prototype.setDirty=function(){this.dirty=!0},e}(Nt),Vt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;this.context.bindFramebuffer.set(this.parent),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t),this.current=t}},e}(Nt),Ut=function(t,e,r){this.context=t,this.width=e,this.height=r;var n=t.gl,i=this.framebuffer=n.createFramebuffer();this.colorAttachment=new jt(t,i),this.depthAttachment=new Vt(t,i)};Ut.prototype.destroy=function(){var t=this.context.gl,e=this.colorAttachment.get();e&&t.deleteTexture(e);var r=this.depthAttachment.get();r&&t.deleteRenderbuffer(r),t.deleteFramebuffer(this.framebuffer)};var qt=function(t,e,r){this.func=t,this.mask=e,this.range=r};qt.ReadOnly=!1,qt.ReadWrite=!0,qt.disabled=new qt(519,qt.ReadOnly,[0,1]);var Ht=function(t,e,r,n,i,a){this.test=t,this.ref=e,this.mask=r,this.fail=n,this.depthFail=i,this.pass=a};Ht.disabled=new Ht({func:519,mask:0},0,0,7680,7680,7680);var Gt=function(t,e,r){this.blendFunction=t,this.blendColor=e,this.mask=r};Gt.disabled=new Gt(Gt.Replace=[1,0],t.default$6.transparent,[!1,!1,!1,!1]),Gt.unblended=new Gt(Gt.Replace,t.default$6.transparent,[!0,!0,!0,!0]),Gt.alphaBlended=new Gt([1,771],t.default$6.transparent,[!0,!0,!0,!0]);var Wt=function(t){this.gl=t,this.extVertexArrayObject=this.gl.getExtension(\\\"OES_vertex_array_object\\\"),this.lineWidthRange=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE),this.clearColor=new ht(this),this.clearDepth=new pt(this),this.clearStencil=new dt(this),this.colorMask=new gt(this),this.depthMask=new vt(this),this.stencilMask=new mt(this),this.stencilFunc=new yt(this),this.stencilOp=new xt(this),this.stencilTest=new bt(this),this.depthRange=new _t(this),this.depthTest=new wt(this),this.depthFunc=new kt(this),this.blend=new Mt(this),this.blendFunc=new At(this),this.blendColor=new Tt(this),this.program=new St(this),this.lineWidth=new Et(this),this.activeTexture=new Ct(this),this.viewport=new Lt(this),this.bindFramebuffer=new zt(this),this.bindRenderbuffer=new Ot(this),this.bindTexture=new It(this),this.bindVertexBuffer=new Pt(this),this.bindElementBuffer=new Dt(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new Rt(this),this.pixelStoreUnpack=new Bt(this),this.pixelStoreUnpackPremultiplyAlpha=new Ft(this),this.extTextureFilterAnisotropic=t.getExtension(\\\"EXT_texture_filter_anisotropic\\\")||t.getExtension(\\\"MOZ_EXT_texture_filter_anisotropic\\\")||t.getExtension(\\\"WEBKIT_EXT_texture_filter_anisotropic\\\"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=t.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureHalfFloat=t.getExtension(\\\"OES_texture_half_float\\\"),this.extTextureHalfFloat&&t.getExtension(\\\"OES_texture_half_float_linear\\\")};Wt.prototype.createIndexBuffer=function(t,e){return new ct(this,t,e)},Wt.prototype.createVertexBuffer=function(t,e,r){return new ft(this,t,e,r)},Wt.prototype.createRenderbuffer=function(t,e,r){var n=this.gl,i=n.createRenderbuffer();return this.bindRenderbuffer.set(i),n.renderbufferStorage(n.RENDERBUFFER,t,e,r),this.bindRenderbuffer.set(null),i},Wt.prototype.createFramebuffer=function(t,e){return new Ut(this,t,e)},Wt.prototype.clear=function(t){var e=t.color,r=t.depth,n=this.gl,i=0;e&&(i|=n.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),void 0!==r&&(i|=n.DEPTH_BUFFER_BIT,this.clearDepth.set(r),this.depthMask.set(!0)),n.clear(i)},Wt.prototype.setDepthMode=function(t){t.func!==this.gl.ALWAYS||t.mask?(this.depthTest.set(!0),this.depthFunc.set(t.func),this.depthMask.set(t.mask),this.depthRange.set(t.range)):this.depthTest.set(!1)},Wt.prototype.setStencilMode=function(t){t.test.func!==this.gl.ALWAYS||t.mask?(this.stencilTest.set(!0),this.stencilMask.set(t.mask),this.stencilOp.set([t.fail,t.depthFail,t.pass]),this.stencilFunc.set({func:t.test.func,ref:t.ref,mask:t.test.mask})):this.stencilTest.set(!1)},Wt.prototype.setColorMode=function(e){t.default$10(e.blendFunction,Gt.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask)};var Yt=function(e){function r(t,r,n){var i=this;e.call(this),this.id=t,this.dispatcher=n,this.on(\\\"data\\\",function(t){\\\"source\\\"===t.dataType&&\\\"metadata\\\"===t.sourceDataType&&(i._sourceLoaded=!0),i._sourceLoaded&&!i._paused&&\\\"source\\\"===t.dataType&&\\\"content\\\"===t.sourceDataType&&(i.reload(),i.transform&&i.update(i.transform))}),this.on(\\\"error\\\",function(){i._sourceErrored=!0}),this._source=it(t,r,n,this),this._tiles={},this._cache=new lt(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._isIdRenderable=this._isIdRenderable.bind(this),this._coveredTiles={}}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.onAdd=function(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._source&&this._source.onAdd&&this._source.onAdd(t)},r.prototype.onRemove=function(t){this._source&&this._source.onRemove&&this._source.onRemove(t)},r.prototype.loaded=function(){if(this._sourceErrored)return!0;if(!this._sourceLoaded)return!1;for(var t in this._tiles){var e=this._tiles[t];if(\\\"loaded\\\"!==e.state&&\\\"errored\\\"!==e.state)return!1}return!0},r.prototype.getSource=function(){return this._source},r.prototype.pause=function(){this._paused=!0},r.prototype.resume=function(){if(this._paused){var t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform)}},r.prototype._loadTile=function(t,e){return this._source.loadTile(t,e)},r.prototype._unloadTile=function(t){if(this._source.unloadTile)return this._source.unloadTile(t,function(){})},r.prototype._abortTile=function(t){if(this._source.abortTile)return this._source.abortTile(t,function(){})},r.prototype.serialize=function(){return this._source.serialize()},r.prototype.prepare=function(t){for(var e in this._source.prepare&&this._source.prepare(),this._tiles)this._tiles[e].upload(t)},r.prototype.getIds=function(){var e=this;return Object.keys(this._tiles).map(Number).sort(function(r,n){var i=e._tiles[r].tileID,a=e._tiles[n].tileID,o=new t.default$1(i.canonical.x,i.canonical.y).rotate(e.transform.angle),s=new t.default$1(a.canonical.x,a.canonical.y).rotate(e.transform.angle);return i.overscaledZ-a.overscaledZ||s.y-o.y||s.x-o.x})},r.prototype.getRenderableIds=function(){return this.getIds().filter(this._isIdRenderable)},r.prototype.hasRenderableParent=function(t){var e=this.findLoadedParent(t,0,{});return!!e&&this._isIdRenderable(e.tileID.key)},r.prototype._isIdRenderable=function(t){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]},r.prototype.reload=function(){if(this._paused)this._shouldReloadOnResume=!0;else for(var t in this._cache.reset(),this._tiles)this._reloadTile(t,\\\"reloading\\\")},r.prototype._reloadTile=function(t,e){var r=this._tiles[t];r&&(\\\"loading\\\"!==r.state&&(r.state=e),this._loadTile(r,this._tileLoaded.bind(this,r,t,e)))},r.prototype._tileLoaded=function(e,r,n,i){if(i)return e.state=\\\"errored\\\",void(404!==i.status?this._source.fire(new t.ErrorEvent(i,{tile:e})):this.update(this.transform));e.timeAdded=a.now(),\\\"expired\\\"===n&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(r,e),\\\"raster-dem\\\"===this.getSource().type&&e.dem&&this._backfillDEM(e),this._source.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",tile:e,coord:e.tileID})),this.map&&(this.map.painter.tileExtentVAO.vao=null)},r.prototype._backfillDEM=function(t){for(var e=this.getRenderableIds(),r=0;r<e.length;r++){var n=e[r];if(t.neighboringTiles&&t.neighboringTiles[n]){var i=this.getTileByID(n);a(t,i),a(i,t)}}function a(t,e){t.needsHillshadePrepare=!0;var r=e.tileID.canonical.x-t.tileID.canonical.x,n=e.tileID.canonical.y-t.tileID.canonical.y,i=Math.pow(2,t.tileID.canonical.z),a=e.tileID.key;0===r&&0===n||Math.abs(n)>1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}},r.prototype.getTile=function(t){return this.getTileByID(t.key)},r.prototype.getTileByID=function(t){return this._tiles[t]},r.prototype.getZoom=function(t){return t.zoom+t.scaleZoom(t.tileSize/this._source.tileSize)},r.prototype._findLoadedChildren=function(t,e,r){var n=!1;for(var i in this._tiles){var a=this._tiles[i];if(!(r[i]||!a.hasData()||a.tileID.overscaledZ<=t.overscaledZ||a.tileID.overscaledZ>e)){var o=Math.pow(2,a.tileID.canonical.z-t.canonical.z);if(Math.floor(a.tileID.canonical.x/o)===t.canonical.x&&Math.floor(a.tileID.canonical.y/o)===t.canonical.y)for(r[i]=a.tileID,n=!0;a&&a.tileID.overscaledZ-1>t.overscaledZ;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);if(!s)break;(a=this._tiles[s.key])&&a.hasData()&&(delete r[i],r[s.key]=s)}}}return n},r.prototype.findLoadedParent=function(t,e,r){for(var n=t.overscaledZ-1;n>=e;n--){var i=t.scaledTo(n);if(!i)return;var a=String(i.key),o=this._tiles[a];if(o&&o.hasData())return r[a]=i,o;if(this._cache.has(i))return r[a]=i,this._cache.get(i)}},r.prototype.updateCacheSize=function(t){var e=(Math.ceil(t.width/this._source.tileSize)+1)*(Math.ceil(t.height/this._source.tileSize)+1),r=Math.floor(5*e),n=\\\"number\\\"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,r):r;this._cache.setMaxSize(n)},r.prototype.handleWrapJump=function(t){var e=(t-(void 0===this._prevLng?t:this._prevLng))/360,r=Math.round(e);if(this._prevLng=t,r){var n={};for(var i in this._tiles){var a=this._tiles[i];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+r),n[a.tileID.key]=a}for(var o in this._tiles=n,this._timers)clearTimeout(this._timers[o]),delete this._timers[o];for(var s in this._tiles){var l=this._tiles[s];this._setTileReloadTimer(s,l)}}},r.prototype.update=function(e){var n=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)}):(i=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter(function(t){return n._source.hasTile(t)}))):i=[];var o,s=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(e)),l=Math.max(s-r.maxOverzooming,this._source.minzoom),c=Math.max(s+r.maxUnderzooming,this._source.minzoom),u=this._updateRetainedTiles(i,s),f={};if(Zt(this._source.type))for(var h=Object.keys(u),p=0;p<h.length;p++){var d=h[p],g=u[d],v=n._tiles[d];if(v&&(void 0===v.fadeEndTime||v.fadeEndTime>=a.now())){n._findLoadedChildren(g,c,u)&&(u[d]=g);var m=n.findLoadedParent(g,l,f);m&&n._addTile(m.tileID)}}for(o in f)u[o]||(n._coveredTiles[o]=!0);for(o in f)u[o]=f[o];for(var y=t.keysDifference(this._tiles,u),x=0;x<y.length;x++)n._removeTile(y[x])}},r.prototype._updateRetainedTiles=function(t,e){for(var n={},i={},a=Math.max(e-r.maxOverzooming,this._source.minzoom),o=Math.max(e+r.maxUnderzooming,this._source.minzoom),s=0;s<t.length;s++){var l=t[s],c=this._addTile(l),u=!1;if(c.hasData())n[l.key]=l;else{u=c.wasRequested(),n[l.key]=l;var f=!0;if(e+1>this._source.maxzoom){var h=l.children(this._source.maxzoom)[0],p=this.getTile(h);p&&p.hasData()?n[h.key]=h:f=!1}else{this._findLoadedChildren(l,o,n);for(var d=l.children(this._source.maxzoom),g=0;g<d.length;g++)if(!n[d[g].key]){f=!1;break}}if(!f)for(var v=l.overscaledZ-1;v>=a;--v){var m=l.scaledTo(v);if(i[m.key])break;if(i[m.key]=!0,!(c=this.getTile(m))&&u&&(c=this._addTile(m)),c&&(n[m.key]=m,u=c.wasRequested(),c.hasData()))break}}}return n},r.prototype._addTile=function(e){var r=this._tiles[e.key];if(r)return r;(r=this._cache.getAndRemove(e))&&(this._setTileReloadTimer(e.key,r),r.tileID=e);var n=Boolean(r);return n||(r=new st(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(r,this._tileLoaded.bind(this,r,e.key,r.state))),r?(r.uses++,this._tiles[e.key]=r,n||this._source.fire(new t.Event(\\\"dataloading\\\",{tile:r,coord:r.tileID,dataType:\\\"source\\\"})),r):null},r.prototype._setTileReloadTimer=function(t,e){var r=this;t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);var n=e.getExpiryTimeout();n&&(this._timers[t]=setTimeout(function(){r._reloadTile(t,\\\"expired\\\"),delete r._timers[t]},n))},r.prototype._removeTile=function(t){var e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},r.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},r.prototype.tilesIn=function(e,r){for(var n=[],i=this.getIds(),a=1/0,o=1/0,s=-1/0,l=-1/0,c=e[0].zoom,u=0;u<e.length;u++){var f=e[u];a=Math.min(a,f.column),o=Math.min(o,f.row),s=Math.max(s,f.column),l=Math.max(l,f.row)}for(var h=0;h<i.length;h++){var p=this._tiles[i[h]],d=p.tileID,g=Math.pow(2,this.transform.zoom-p.tileID.overscaledZ),v=r*p.queryPadding*t.default$8/p.tileSize/g,m=[Xt(d,new t.default$17(a,o,c)),Xt(d,new t.default$17(s,l,c))];if(m[0].x-v<t.default$8&&m[0].y-v<t.default$8&&m[1].x+v>=0&&m[1].y+v>=0){for(var y=[],x=0;x<e.length;x++)y.push(Xt(d,e[x]));n.push({tile:p,tileID:d,queryGeometry:[y],scale:g})}}return n},r.prototype.getVisibleCoordinates=function(){for(var t=this,e=this.getRenderableIds().map(function(e){return t._tiles[e].tileID}),r=0,n=e;r<n.length;r+=1){var i=n[r];i.posMatrix=t.transform.calculatePosMatrix(i.toUnwrapped())}return e},r.prototype.hasTransition=function(){if(this._source.hasTransition())return!0;if(Zt(this._source.type))for(var t in this._tiles){var e=this._tiles[t];if(void 0!==e.fadeEndTime&&e.fadeEndTime>=a.now())return!0}return!1},r}(t.Evented);function Xt(e,r){var n=r.zoomTo(e.canonical.z);return new t.default$1((n.column-(e.canonical.x+e.wrap*Math.pow(2,e.canonical.z)))*t.default$8,(n.row-e.canonical.y)*t.default$8)}function Zt(t){return\\\"raster\\\"===t||\\\"image\\\"===t||\\\"video\\\"===t}function $t(){return new t.default.Worker(En.workerUrl)}Yt.maxOverzooming=10,Yt.maxUnderzooming=3;var Jt,Kt=function(){this.active={}};function Qt(e,r){var n={};for(var i in e)\\\"ref\\\"!==i&&(n[i]=e[i]);return t.default$18.forEach(function(t){t in r&&(n[t]=r[t])}),n}function te(t){t=t.slice();for(var e=Object.create(null),r=0;r<t.length;r++)e[t[r].id]=t[r];for(var n=0;n<t.length;n++)\\\"ref\\\"in t[n]&&(t[n]=Qt(t[n],e[t[n].ref]));return t}Kt.prototype.acquire=function(t){if(!this.workers){var e=En.workerCount;for(this.workers=[];this.workers.length<e;)this.workers.push(new $t)}return this.active[t]=!0,this.workers.slice()},Kt.prototype.release=function(t){delete this.active[t],0===Object.keys(this.active).length&&(this.workers.forEach(function(t){t.terminate()}),this.workers=null)};var ee={setStyle:\\\"setStyle\\\",addLayer:\\\"addLayer\\\",removeLayer:\\\"removeLayer\\\",setPaintProperty:\\\"setPaintProperty\\\",setLayoutProperty:\\\"setLayoutProperty\\\",setFilter:\\\"setFilter\\\",addSource:\\\"addSource\\\",removeSource:\\\"removeSource\\\",setGeoJSONSourceData:\\\"setGeoJSONSourceData\\\",setLayerZoomRange:\\\"setLayerZoomRange\\\",setLayerProperty:\\\"setLayerProperty\\\",setCenter:\\\"setCenter\\\",setZoom:\\\"setZoom\\\",setBearing:\\\"setBearing\\\",setPitch:\\\"setPitch\\\",setSprite:\\\"setSprite\\\",setGlyphs:\\\"setGlyphs\\\",setTransition:\\\"setTransition\\\",setLight:\\\"setLight\\\"};function re(t,e,r){r.push({command:ee.addSource,args:[t,e[t]]})}function ne(t,e,r){e.push({command:ee.removeSource,args:[t]}),r[t]=!0}function ie(t,e,r,n){ne(t,r,n),re(t,e,r)}function ae(e,r,n){var i;for(i in e[n])if(e[n].hasOwnProperty(i)&&\\\"data\\\"!==i&&!t.default$10(e[n][i],r[n][i]))return!1;for(i in r[n])if(r[n].hasOwnProperty(i)&&\\\"data\\\"!==i&&!t.default$10(e[n][i],r[n][i]))return!1;return!0}function oe(e,r,n,i,a,o){var s;for(s in r=r||{},e=e||{})e.hasOwnProperty(s)&&(t.default$10(e[s],r[s])||n.push({command:o,args:[i,s,r[s],a]}));for(s in r)r.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(t.default$10(e[s],r[s])||n.push({command:o,args:[i,s,r[s],a]}))}function se(t){return t.id}function le(t,e){return t[e.id]=e,t}var ce=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;a<this.xCellCount*this.yCellCount;a++)n.push([]),i.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=t,this.height=e,this.xScale=this.xCellCount/t,this.yScale=this.yCellCount/e,this.boxUid=0,this.circleUid=0};ce.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},ce.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},ce.prototype.insertCircle=function(t,e,r,n){this._forEachCell(e-n,r-n,e+n,r+n,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(r),this.circles.push(n)},ce.prototype._insertBoxCell=function(t,e,r,n,i,a){this.boxCells[i].push(a)},ce.prototype._insertCircleCell=function(t,e,r,n,i,a){this.circleCells[i].push(a)},ce.prototype._query=function(t,e,r,n,i){if(r<0||t>this.width||n<0||e>this.height)return!i&&[];var a=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n){if(i)return!0;for(var o=0;o<this.boxKeys.length;o++)a.push({key:this.boxKeys[o],x1:this.bboxes[4*o],y1:this.bboxes[4*o+1],x2:this.bboxes[4*o+2],y2:this.bboxes[4*o+3]});for(var s=0;s<this.circleKeys.length;s++){var l=this.circles[3*s],c=this.circles[3*s+1],u=this.circles[3*s+2];a.push({key:this.circleKeys[s],x1:l-u,y1:c-u,x2:l+u,y2:c+u})}}else{var f={hitTest:i,seenUids:{box:{},circle:{}}};this._forEachCell(t,e,r,n,this._queryCell,a,f)}return i?a.length>0:a},ce.prototype._queryCircle=function(t,e,r,n){var i=t-r,a=t+r,o=e-r,s=e+r;if(a<0||i>this.width||s<0||o>this.height)return!n&&[];var l=[],c={hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}};return this._forEachCell(i,o,a,s,this._queryCellCircle,l,c),n?l.length>0:l},ce.prototype.query=function(t,e,r,n){return this._query(t,e,r,n,!1)},ce.prototype.hitTest=function(t,e,r,n){return this._query(t,e,r,n,!0)},ce.prototype.hitTestCircle=function(t,e,r){return this._queryCircle(t,e,r,!0)},ce.prototype._queryCell=function(t,e,r,n,i,a,o){var s=o.seenUids,l=this.boxCells[i];if(null!==l)for(var c=this.bboxes,u=0,f=l;u<f.length;u+=1){var h=f[u];if(!s.box[h]){s.box[h]=!0;var p=4*h;if(t<=c[p+2]&&e<=c[p+3]&&r>=c[p+0]&&n>=c[p+1]){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[h],x1:c[p],y1:c[p+1],x2:c[p+2],y2:c[p+3]})}}}var d=this.circleCells[i];if(null!==d)for(var g=this.circles,v=0,m=d;v<m.length;v+=1){var y=m[v];if(!s.circle[y]){s.circle[y]=!0;var x=3*y;if(this._circleAndRectCollide(g[x],g[x+1],g[x+2],t,e,r,n)){if(o.hitTest)return a.push(!0),!0;var b=g[x],_=g[x+1],w=g[x+2];a.push({key:this.circleKeys[y],x1:b-w,y1:_-w,x2:b+w,y2:_+w})}}}},ce.prototype._queryCellCircle=function(t,e,r,n,i,a,o){var s=o.circle,l=o.seenUids,c=this.boxCells[i];if(null!==c)for(var u=this.bboxes,f=0,h=c;f<h.length;f+=1){var p=h[f];if(!l.box[p]){l.box[p]=!0;var d=4*p;if(this._circleAndRectCollide(s.x,s.y,s.radius,u[d+0],u[d+1],u[d+2],u[d+3]))return a.push(!0),!0}}var g=this.circleCells[i];if(null!==g)for(var v=this.circles,m=0,y=g;m<y.length;m+=1){var x=y[m];if(!l.circle[x]){l.circle[x]=!0;var b=3*x;if(this._circlesCollide(v[b],v[b+1],v[b+2],s.x,s.y,s.radius))return a.push(!0),!0}}},ce.prototype._forEachCell=function(t,e,r,n,i,a,o){for(var s=this._convertToXCellCoord(t),l=this._convertToYCellCoord(e),c=this._convertToXCellCoord(r),u=this._convertToYCellCoord(n),f=s;f<=c;f++)for(var h=l;h<=u;h++){var p=this.xCellCount*h+f;if(i.call(this,t,e,r,n,p,a,o))return}},ce.prototype._convertToXCellCoord=function(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))},ce.prototype._convertToYCellCoord=function(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))},ce.prototype._circlesCollide=function(t,e,r,n,i,a){var o=n-t,s=i-e,l=r+a;return l*l>o*o+s*s},ce.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var c=(o-i)/2,u=Math.abs(e-(i+c));if(u>c+r)return!1;if(l<=s||u<=c)return!0;var f=l-s,h=u-c;return f*f+h*h<=r*r};var ue=t.default$19.layout;function fe(e,r,n,i,a){var o=t.mat4.identity(new Float32Array(16));return r?(t.mat4.identity(o),t.mat4.scale(o,o,[1/a,1/a,1]),n||t.mat4.rotateZ(o,o,i.angle)):(t.mat4.scale(o,o,[i.width/2,-i.height/2,1]),t.mat4.translate(o,o,[1,-1,0]),t.mat4.multiply(o,o,e)),o}function he(e,r,n,i,a){var o=t.mat4.identity(new Float32Array(16));return r?(t.mat4.multiply(o,o,e),t.mat4.scale(o,o,[a,a,1]),n||t.mat4.rotateZ(o,o,-i.angle)):(t.mat4.scale(o,o,[1,-1,1]),t.mat4.translate(o,o,[-1,-1,0]),t.mat4.scale(o,o,[2/i.width,2/i.height,1])),o}function pe(e,r){var n=[e.x,e.y,0,1];ke(n,n,r);var i=n[3];return{point:new t.default$1(n[0]/i,n[1]/i),signedDistanceFromCamera:i}}function de(t,e){var r=t[0]/t[3],n=t[1]/t[3];return r>=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function ge(e,r,n,i,a,o,s,l){var c=i?e.textSizeData:e.iconSizeData,u=t.evaluateSizeForZoom(c,n.transform.zoom,ue.properties[i?\\\"text-size\\\":\\\"icon-size\\\"]),f=[256/n.width*2+1,256/n.height*2+1],h=i?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();for(var p=e.lineVertexArray,d=i?e.text.placedSymbolArray:e.icon.placedSymbolArray,g=n.transform.width/n.transform.height,v=!1,m=0;m<d.length;m++){var y=d.get(m);if(y.hidden||y.writingMode===t.WritingMode.vertical&&!v)we(y.numGlyphs,h);else{v=!1;var x=[y.anchorX,y.anchorY,0,1];if(t.vec4.transformMat4(x,x,r),de(x,f)){var b=.5+x[3]/n.transform.cameraToCenterDistance*.5,_=t.evaluateSizeForFeature(c,u,y),w=s?_*b:_/b,k=new t.default$1(y.anchorX,y.anchorY),M=pe(k,a).point,A={},T=ye(y,w,!1,l,r,a,o,e.glyphOffsetArray,p,h,M,k,A,g);v=T.useVertical,(T.notEnoughRoom||v||T.needsFlipping&&ye(y,w,!0,l,r,a,o,e.glyphOffsetArray,p,h,M,k,A,g).notEnoughRoom)&&we(y.numGlyphs,h)}else we(y.numGlyphs,h)}}i?e.text.dynamicLayoutVertexBuffer.updateData(h):e.icon.dynamicLayoutVertexBuffer.updateData(h)}function ve(t,e,r,n,i,a,o,s,l,c,u,f){var h=s.glyphStartIndex+s.numGlyphs,p=s.lineStartIndex,d=s.lineStartIndex+s.lineLength,g=e.getoffsetX(s.glyphStartIndex),v=e.getoffsetX(h-1),m=be(t*g,r,n,i,a,o,s.segment,p,d,l,c,u,f);if(!m)return null;var y=be(t*v,r,n,i,a,o,s.segment,p,d,l,c,u,f);return y?{first:m,last:y}:null}function me(e,r,n,i){return e===t.WritingMode.horizontal&&Math.abs(n.y-r.y)>Math.abs(n.x-r.x)*i?{useVertical:!0}:(e===t.WritingMode.vertical?r.y<n.y:r.x>n.x)?{needsFlipping:!0}:null}function ye(e,r,n,i,a,o,s,l,c,u,f,h,p,d){var g,v=r/24,m=e.lineOffsetX*r,y=e.lineOffsetY*r;if(e.numGlyphs>1){var x=e.glyphStartIndex+e.numGlyphs,b=e.lineStartIndex,_=e.lineStartIndex+e.lineLength,w=ve(v,l,m,y,n,f,h,e,c,o,p,!1);if(!w)return{notEnoughRoom:!0};var k=pe(w.first.point,s).point,M=pe(w.last.point,s).point;if(i&&!n){var A=me(e.writingMode,k,M,d);if(A)return A}g=[w.first];for(var T=e.glyphStartIndex+1;T<x-1;T++)g.push(be(v*l.getoffsetX(T),m,y,n,f,h,e.segment,b,_,c,o,p,!1));g.push(w.last)}else{if(i&&!n){var S=pe(h,a).point,E=e.lineStartIndex+e.segment+1,C=new t.default$1(c.getx(E),c.gety(E)),L=pe(C,a),z=L.signedDistanceFromCamera>0?L.point:xe(h,C,S,1,a),O=me(e.writingMode,S,z,d);if(O)return O}var I=be(v*l.getoffsetX(e.glyphStartIndex),m,y,n,f,h,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,o,p,!1);if(!I)return{notEnoughRoom:!0};g=[I]}for(var P=0,D=g;P<D.length;P+=1){var R=D[P];t.addDynamicAttributes(u,R.point,R.angle)}return{}}function xe(t,e,r,n,i){var a=pe(t.add(t.sub(e)._unit()),i).point,o=r.sub(a);return r.add(o._mult(n/o.mag()))}function be(e,r,n,i,a,o,s,l,c,u,f,h,p){var d=i?e-r:e+r,g=d>0?1:-1,v=0;i&&(g*=-1,v=Math.PI),g<0&&(v+=Math.PI);for(var m=g>0?l+s:l+s+1,y=m,x=a,b=a,_=0,w=0,k=Math.abs(d);_+w<=k;){if((m+=g)<l||m>=c)return null;if(b=x,void 0===(x=h[m])){var M=new t.default$1(u.getx(m),u.gety(m)),A=pe(M,f);if(A.signedDistanceFromCamera>0)x=h[m]=A.point;else{var T=m-g;x=xe(0===_?o:new t.default$1(u.getx(T),u.gety(T)),M,b,k-_+1,f)}}_+=w,w=b.dist(x)}var S=(k-_)/w,E=x.sub(b),C=E.mult(S)._add(b);return C._add(E._unit()._perp()._mult(n*g)),{point:C,angle:v+Math.atan2(x.y-b.y,x.x-b.x),tileDistance:p?{prevTileDistance:m-g===y?0:u.gettileUnitDistanceFromAnchor(m-g),lastSegmentViewportDistance:k-_}:null}}var _e=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function we(t,e){for(var r=0;r<t;r++){var n=e.length;e.resize(n+4),e.float32.set(_e,3*n)}}function ke(t,e,r){var n=e[0],i=e[1];return t[0]=r[0]*n+r[4]*i+r[12],t[1]=r[1]*n+r[5]*i+r[13],t[3]=r[3]*n+r[7]*i+r[15],t}t.default$20.mat4;var Me=function(t,e,r){void 0===e&&(e=new ce(t.width+200,t.height+200,25)),void 0===r&&(r=new ce(t.width+200,t.height+200,25)),this.transform=t,this.grid=e,this.ignoredGrid=r,this.pitchfactor=Math.cos(t._pitch)*t.cameraToCenterDistance,this.screenRightBoundary=t.width+100,this.screenBottomBoundary=t.height+100};function Ae(t,e,r){t[e+4]=r?1:0}function Te(e,r,n){return r*(t.default$8/(e.tileSize*Math.pow(2,n-e.tileID.overscaledZ)))}Me.prototype.placeCollisionBox=function(t,e,r,n){var i=this.projectAndGetPerspectiveRatio(n,t.anchorPointX,t.anchorPointY),a=r*i.perspectiveRatio,o=t.x1*a+i.point.x,s=t.y1*a+i.point.y,l=t.x2*a+i.point.x,c=t.y2*a+i.point.y;return!e&&this.grid.hitTest(o,s,l,c)?{box:[],offscreen:!1}:{box:[o,s,l,c],offscreen:this.isOffscreen(o,s,l,c)}},Me.prototype.approximateTileDistance=function(t,e,r,n,i){var a=i?1:n/this.pitchfactor,o=t.lastSegmentViewportDistance*r;return t.prevTileDistance+o+(a-1)*o*Math.abs(Math.sin(e))},Me.prototype.placeCollisionCircles=function(e,r,n,i,a,o,s,l,c,u,f,h,p){var d=[],g=this.projectAnchor(u,o.anchorX,o.anchorY),v=c/24,m=o.lineOffsetX*c,y=o.lineOffsetY*c,x=new t.default$1(o.anchorX,o.anchorY),b=ve(v,l,m,y,!1,pe(x,f).point,x,o,s,f,{},!0),_=!1,w=!0,k=g.perspectiveRatio*i,M=1/(i*n),A=0,T=0;b&&(A=this.approximateTileDistance(b.first.tileDistance,b.first.angle,M,g.cameraDistance,p),T=this.approximateTileDistance(b.last.tileDistance,b.last.angle,M,g.cameraDistance,p));for(var S=0;S<e.length;S+=5){var E=e[S],C=e[S+1],L=e[S+2],z=e[S+3];if(!b||z<-A||z>T)Ae(e,S,!1);else{var O=this.projectPoint(u,E,C),I=L*k;if(d.length>0){var P=O.x-d[d.length-4],D=O.y-d[d.length-3];if(I*I*2>P*P+D*D&&S+8<e.length){var R=e[S+8];if(R>-A&&R<T){Ae(e,S,!1);continue}}}var B=S/5;if(d.push(O.x,O.y,I,B),Ae(e,S,!0),w=w&&this.isOffscreen(O.x-I,O.y-I,O.x+I,O.y+I),!r&&this.grid.hitTestCircle(O.x,O.y,I)){if(!h)return{circles:[],offscreen:!1};_=!0}}}return{circles:_?[]:d,offscreen:w}},Me.prototype.queryRenderedSymbols=function(e){if(0===e.length||0===this.grid.keysLength()&&0===this.ignoredGrid.keysLength())return{};for(var r=[],n=1/0,i=1/0,a=-1/0,o=-1/0,s=0,l=e;s<l.length;s+=1){var c=l[s],u=new t.default$1(c.x+100,c.y+100);n=Math.min(n,u.x),i=Math.min(i,u.y),a=Math.max(a,u.x),o=Math.max(o,u.y),r.push(u)}for(var f={},h={},p=0,d=this.grid.query(n,i,a,o).concat(this.ignoredGrid.query(n,i,a,o));p<d.length;p+=1){var g=d[p],v=g.key;if(void 0===f[v.bucketInstanceId]&&(f[v.bucketInstanceId]={}),!f[v.bucketInstanceId][v.featureIndex]){var m=[new t.default$1(g.x1,g.y1),new t.default$1(g.x2,g.y1),new t.default$1(g.x2,g.y2),new t.default$1(g.x1,g.y2)];t.polygonIntersectsPolygon(r,m)&&(f[v.bucketInstanceId][v.featureIndex]=!0,void 0===h[v.bucketInstanceId]&&(h[v.bucketInstanceId]=[]),h[v.bucketInstanceId].push(v.featureIndex))}}return h},Me.prototype.insertCollisionBox=function(t,e,r,n){var i={bucketInstanceId:r,featureIndex:n};(e?this.ignoredGrid:this.grid).insert(i,t[0],t[1],t[2],t[3])},Me.prototype.insertCollisionCircles=function(t,e,r,n){for(var i=e?this.ignoredGrid:this.grid,a={bucketInstanceId:r,featureIndex:n},o=0;o<t.length;o+=4)i.insertCircle(a,t[o],t[o+1],t[o+2])},Me.prototype.projectAnchor=function(t,e,r){var n=[e,r,0,1];return ke(n,n,t),{perspectiveRatio:.5+this.transform.cameraToCenterDistance/n[3]*.5,cameraDistance:n[3]}},Me.prototype.projectPoint=function(e,r,n){var i=[r,n,0,1];return ke(i,i,e),new t.default$1((i[0]/i[3]+1)/2*this.transform.width+100,(-i[1]/i[3]+1)/2*this.transform.height+100)},Me.prototype.projectAndGetPerspectiveRatio=function(e,r,n){var i=[r,n,0,1];return ke(i,i,e),{point:new t.default$1((i[0]/i[3]+1)/2*this.transform.width+100,(-i[1]/i[3]+1)/2*this.transform.height+100),perspectiveRatio:.5+this.transform.cameraToCenterDistance/i[3]*.5}},Me.prototype.isOffscreen=function(t,e,r,n){return r<100||t>=this.screenRightBoundary||n<100||e>this.screenBottomBoundary};var Se=t.default$19.layout,Ee=function(t,e,r,n){this.opacity=t?Math.max(0,Math.min(1,t.opacity+(t.placed?e:-e))):n&&r?1:0,this.placed=r};Ee.prototype.isHidden=function(){return 0===this.opacity&&!this.placed};var Ce=function(t,e,r,n,i){this.text=new Ee(t?t.text:null,e,r,i),this.icon=new Ee(t?t.icon:null,e,n,i)};Ce.prototype.isHidden=function(){return this.text.isHidden()&&this.icon.isHidden()};var Le=function(t,e,r){this.text=t,this.icon=e,this.skipFade=r},ze=function(t,e){this.transform=t.clone(),this.collisionIndex=new Me(this.transform),this.placements={},this.opacities={},this.stale=!1,this.fadeDuration=e,this.retainedQueryData={}};function Oe(t,e,r){t.emplaceBack(e?1:0,r?1:0),t.emplaceBack(e?1:0,r?1:0),t.emplaceBack(e?1:0,r?1:0),t.emplaceBack(e?1:0,r?1:0)}ze.prototype.placeLayerTile=function(e,r,n,i){var a=r.getBucket(e),o=r.latestFeatureIndex;if(a&&o&&e.id===a.layerIds[0]){var s=r.collisionBoxArray,l=a.layers[0].layout,c=Math.pow(2,this.transform.zoom-r.tileID.overscaledZ),u=r.tileSize/t.default$8,f=this.transform.calculatePosMatrix(r.tileID.toUnwrapped()),h=fe(f,\\\"map\\\"===l.get(\\\"text-pitch-alignment\\\"),\\\"map\\\"===l.get(\\\"text-rotation-alignment\\\"),this.transform,Te(r,1,this.transform.zoom)),p=fe(f,\\\"map\\\"===l.get(\\\"icon-pitch-alignment\\\"),\\\"map\\\"===l.get(\\\"icon-rotation-alignment\\\"),this.transform,Te(r,1,this.transform.zoom));this.retainedQueryData[a.bucketInstanceId]=new function(t,e,r,n,i){this.bucketInstanceId=t,this.featureIndex=e,this.sourceLayerIndex=r,this.bucketIndex=n,this.tileID=i}(a.bucketInstanceId,o,a.sourceLayerIndex,a.index,r.tileID),this.placeLayerBucket(a,f,h,p,c,u,n,i,s)}},ze.prototype.placeLayerBucket=function(e,r,n,i,a,o,s,l,c){for(var u=e.layers[0].layout,f=t.evaluateSizeForZoom(e.textSizeData,this.transform.zoom,Se.properties[\\\"text-size\\\"]),h=!e.hasTextData()||u.get(\\\"text-optional\\\"),p=!e.hasIconData()||u.get(\\\"icon-optional\\\"),d=0,g=e.symbolInstances;d<g.length;d+=1){var v=g[d];if(!l[v.crossTileID]){var m=void 0!==v.feature.text,y=void 0!==v.feature.icon,x=!0,b=null,_=null,w=null,k=0,M=0;v.collisionArrays||(v.collisionArrays=e.deserializeCollisionBoxes(c,v.textBoxStartIndex,v.textBoxEndIndex,v.iconBoxStartIndex,v.iconBoxEndIndex)),v.collisionArrays.textFeatureIndex&&(k=v.collisionArrays.textFeatureIndex),v.collisionArrays.textBox&&(m=(b=this.collisionIndex.placeCollisionBox(v.collisionArrays.textBox,u.get(\\\"text-allow-overlap\\\"),o,r)).box.length>0,x=x&&b.offscreen);var A=v.collisionArrays.textCircles;if(A){var T=e.text.placedSymbolArray.get(v.placedTextSymbolIndices[0]),S=t.evaluateSizeForFeature(e.textSizeData,f,T);_=this.collisionIndex.placeCollisionCircles(A,u.get(\\\"text-allow-overlap\\\"),a,o,v.key,T,e.lineVertexArray,e.glyphOffsetArray,S,r,n,s,\\\"map\\\"===u.get(\\\"text-pitch-alignment\\\")),m=u.get(\\\"text-allow-overlap\\\")||_.circles.length>0,x=x&&_.offscreen}v.collisionArrays.iconFeatureIndex&&(M=v.collisionArrays.iconFeatureIndex),v.collisionArrays.iconBox&&(y=(w=this.collisionIndex.placeCollisionBox(v.collisionArrays.iconBox,u.get(\\\"icon-allow-overlap\\\"),o,r)).box.length>0,x=x&&w.offscreen),h||p?p?h||(y=y&&m):m=y&&m:y=m=y&&m,m&&b&&this.collisionIndex.insertCollisionBox(b.box,u.get(\\\"text-ignore-placement\\\"),e.bucketInstanceId,k),y&&w&&this.collisionIndex.insertCollisionBox(w.box,u.get(\\\"icon-ignore-placement\\\"),e.bucketInstanceId,M),m&&_&&this.collisionIndex.insertCollisionCircles(_.circles,u.get(\\\"text-ignore-placement\\\"),e.bucketInstanceId,k),this.placements[v.crossTileID]=new Le(m,y,x||e.justReloaded),l[v.crossTileID]=!0}}e.justReloaded=!1},ze.prototype.commit=function(t,e){this.commitTime=e;var r=!1,n=t&&0!==this.fadeDuration?(this.commitTime-t.commitTime)/this.fadeDuration:1,i=t?t.opacities:{};for(var a in this.placements){var o=this.placements[a],s=i[a];s?(this.opacities[a]=new Ce(s,n,o.text,o.icon),r=r||o.text!==s.text.placed||o.icon!==s.icon.placed):(this.opacities[a]=new Ce(null,n,o.text,o.icon,o.skipFade),r=r||o.text||o.icon)}for(var l in i){var c=i[l];if(!this.opacities[l]){var u=new Ce(c,n,!1,!1);u.isHidden()||(this.opacities[l]=u,r=r||c.text.placed||c.icon.placed)}}r?this.lastPlacementChangeTime=e:\\\"number\\\"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e)},ze.prototype.updateLayerOpacities=function(t,e){for(var r={},n=0,i=e;n<i.length;n+=1){var a=i[n],o=a.getBucket(t);o&&a.latestFeatureIndex&&t.id===o.layerIds[0]&&this.updateBucketOpacities(o,r,a.collisionBoxArray)}},ze.prototype.updateBucketOpacities=function(t,e,r){t.hasTextData()&&t.text.opacityVertexArray.clear(),t.hasIconData()&&t.icon.opacityVertexArray.clear(),t.hasCollisionBoxData()&&t.collisionBox.collisionVertexArray.clear(),t.hasCollisionCircleData()&&t.collisionCircle.collisionVertexArray.clear();for(var n=t.layers[0].layout,i=new Ce(null,0,!1,!1,!0),a=new Ce(null,0,n.get(\\\"text-allow-overlap\\\"),n.get(\\\"icon-allow-overlap\\\"),!0),o=0;o<t.symbolInstances.length;o++){var s=t.symbolInstances[o],l=e[s.crossTileID],c=this.opacities[s.crossTileID];l?c=i:c||(c=a,this.opacities[s.crossTileID]=c),e[s.crossTileID]=!0;var u=s.numGlyphVertices>0||s.numVerticalGlyphVertices>0,f=s.numIconVertices>0;if(u){for(var h=je(c.text),p=(s.numGlyphVertices+s.numVerticalGlyphVertices)/4,d=0;d<p;d++)t.text.opacityVertexArray.emplaceBack(h);for(var g=0,v=s.placedTextSymbolIndices;g<v.length;g+=1){var m=v[g];t.text.placedSymbolArray.get(m).hidden=c.text.isHidden()}}if(f){for(var y=je(c.icon),x=0;x<s.numIconVertices/4;x++)t.icon.opacityVertexArray.emplaceBack(y);t.icon.placedSymbolArray.get(o).hidden=c.icon.isHidden()}s.collisionArrays||(s.collisionArrays=t.deserializeCollisionBoxes(r,s.textBoxStartIndex,s.textBoxEndIndex,s.iconBoxStartIndex,s.iconBoxEndIndex));var b=s.collisionArrays;if(b){b.textBox&&t.hasCollisionBoxData()&&Oe(t.collisionBox.collisionVertexArray,c.text.placed,!1),b.iconBox&&t.hasCollisionBoxData()&&Oe(t.collisionBox.collisionVertexArray,c.icon.placed,!1);var _=b.textCircles;if(_&&t.hasCollisionCircleData())for(var w=0;w<_.length;w+=5){var k=l||0===_[w+4];Oe(t.collisionCircle.collisionVertexArray,c.text.placed,k)}}}t.sortFeatures(this.transform.angle),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasCollisionBoxData()&&t.collisionBox.collisionVertexBuffer&&t.collisionBox.collisionVertexBuffer.updateData(t.collisionBox.collisionVertexArray),t.hasCollisionCircleData()&&t.collisionCircle.collisionVertexBuffer&&t.collisionCircle.collisionVertexBuffer.updateData(t.collisionCircle.collisionVertexArray)},ze.prototype.symbolFadeChange=function(t){return 0===this.fadeDuration?1:(t-this.commitTime)/this.fadeDuration},ze.prototype.hasTransitions=function(t){return this.stale||t-this.lastPlacementChangeTime<this.fadeDuration},ze.prototype.stillRecent=function(t){return\\\"undefined\\\"!==this.commitTime&&this.commitTime+this.fadeDuration>t},ze.prototype.setStale=function(){this.stale=!0};var Ie=Math.pow(2,25),Pe=Math.pow(2,24),De=Math.pow(2,17),Re=Math.pow(2,16),Be=Math.pow(2,9),Fe=Math.pow(2,8),Ne=Math.pow(2,1);function je(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,r=Math.floor(127*t.opacity);return r*Ie+e*Pe+r*De+e*Re+r*Be+e*Fe+r*Ne+e}var Ve=function(){this._currentTileIndex=0,this._seenCrossTileIDs={}};Ve.prototype.continuePlacement=function(t,e,r,n,i){for(;this._currentTileIndex<t.length;){var a=t[this._currentTileIndex];if(e.placeLayerTile(n,a,r,this._seenCrossTileIDs),this._currentTileIndex++,i())return!0}};var Ue=function(t,e,r,n,i){this.placement=new ze(t,i),this._currentPlacementIndex=e.length-1,this._forceFullPlacement=r,this._showCollisionBoxes=n,this._done=!1};Ue.prototype.isDone=function(){return this._done},Ue.prototype.continuePlacement=function(t,e,r){for(var n=this,i=a.now(),o=function(){var t=a.now()-i;return!n._forceFullPlacement&&t>2};this._currentPlacementIndex>=0;){var s=e[t[n._currentPlacementIndex]],l=n.placement.collisionIndex.transform.zoom;if(\\\"symbol\\\"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(n._inProgressLayer||(n._inProgressLayer=new Ve),n._inProgressLayer.continuePlacement(r[s.source],n.placement,n._showCollisionBoxes,s,o))return;delete n._inProgressLayer}n._currentPlacementIndex--}this._done=!0},Ue.prototype.commit=function(t,e){return this.placement.commit(t,e),this.placement};var qe=512/t.default$8/2,He=function(t,e,r){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var n=0,i=e;n<i.length;n+=1){var a=i[n],o=a.key;this.indexedSymbolInstances[o]||(this.indexedSymbolInstances[o]=[]),this.indexedSymbolInstances[o].push({crossTileID:a.crossTileID,coord:this.getScaledCoordinates(a,t)})}};He.prototype.getScaledCoordinates=function(e,r){var n=r.canonical.z-this.tileID.canonical.z,i=qe/Math.pow(2,n),a=e.anchor;return{x:Math.floor((r.canonical.x*t.default$8+a.x)*i),y:Math.floor((r.canonical.y*t.default$8+a.y)*i)}},He.prototype.findMatches=function(t,e,r){for(var n=this.tileID.canonical.z<e.canonical.z?1:Math.pow(2,this.tileID.canonical.z-e.canonical.z),i=0,a=t;i<a.length;i+=1){var o=a[i];if(!o.crossTileID){var s=this.indexedSymbolInstances[o.key];if(s)for(var l=this.getScaledCoordinates(o,e),c=0,u=s;c<u.length;c+=1){var f=u[c];if(Math.abs(f.coord.x-l.x)<=n&&Math.abs(f.coord.y-l.y)<=n&&!r[f.crossTileID]){r[f.crossTileID]=!0,o.crossTileID=f.crossTileID;break}}}}};var Ge=function(){this.maxCrossTileID=0};Ge.prototype.generate=function(){return++this.maxCrossTileID};var We=function(){this.indexes={},this.usedCrossTileIDs={},this.lng=0};We.prototype.handleWrapJump=function(t){var e=Math.round((t-this.lng)/360);if(0!==e)for(var r in this.indexes){var n=this.indexes[r],i={};for(var a in n){var o=n[a];o.tileID=o.tileID.unwrapTo(o.tileID.wrap+e),i[o.tileID.key]=o}this.indexes[r]=i}this.lng=t},We.prototype.addBucket=function(t,e,r){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===e.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key])}for(var n=0,i=e.symbolInstances;n<i.length;n+=1)i[n].crossTileID=0;this.usedCrossTileIDs[t.overscaledZ]||(this.usedCrossTileIDs[t.overscaledZ]={});var a=this.usedCrossTileIDs[t.overscaledZ];for(var o in this.indexes){var s=this.indexes[o];if(Number(o)>t.overscaledZ)for(var l in s){var c=s[l];c.tileID.isChildOf(t)&&c.findMatches(e.symbolInstances,t,a)}else{var u=s[t.scaledTo(Number(o)).key];u&&u.findMatches(e.symbolInstances,t,a)}}for(var f=0,h=e.symbolInstances;f<h.length;f+=1){var p=h[f];p.crossTileID||(p.crossTileID=r.generate(),a[p.crossTileID]=!0)}return void 0===this.indexes[t.overscaledZ]&&(this.indexes[t.overscaledZ]={}),this.indexes[t.overscaledZ][t.key]=new He(t,e.symbolInstances,e.bucketInstanceId),!0},We.prototype.removeBucketCrossTileIDs=function(t,e){for(var r in e.indexedSymbolInstances)for(var n=0,i=e.indexedSymbolInstances[r];n<i.length;n+=1){var a=i[n];delete this.usedCrossTileIDs[t][a.crossTileID]}},We.prototype.removeStaleBuckets=function(t){var e=!1;for(var r in this.indexes){var n=this.indexes[r];for(var i in n)t[n[i].bucketInstanceId]||(this.removeBucketCrossTileIDs(r,n[i]),delete n[i],e=!0)}return e};var Ye=function(){this.layerIndexes={},this.crossTileIDs=new Ge,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}};Ye.prototype.addLayer=function(t,e,r){var n=this.layerIndexes[t.id];void 0===n&&(n=this.layerIndexes[t.id]=new We);var i=!1,a={};n.handleWrapJump(r);for(var o=0,s=e;o<s.length;o+=1){var l=s[o],c=l.getBucket(t);c&&t.id===c.layerIds[0]&&(c.bucketInstanceId||(c.bucketInstanceId=++this.maxBucketInstanceId),n.addBucket(l.tileID,c,this.crossTileIDs)&&(i=!0),a[c.bucketInstanceId]=!0)}return n.removeStaleBuckets(a)&&(i=!0),i},Ye.prototype.pruneUnusedLayers=function(t){var e={};for(var r in t.forEach(function(t){e[t]=!0}),this.layerIndexes)e[r]||delete this.layerIndexes[r]};var Xe=function(e,r){return t.emitValidationErrors(e,r&&r.filter(function(t){return\\\"source.canvas\\\"!==t.identifier}))},Ze=t.pick(ee,[\\\"addLayer\\\",\\\"removeLayer\\\",\\\"setPaintProperty\\\",\\\"setLayoutProperty\\\",\\\"setFilter\\\",\\\"addSource\\\",\\\"removeSource\\\",\\\"setLayerZoomRange\\\",\\\"setLight\\\",\\\"setTransition\\\",\\\"setGeoJSONSourceData\\\"]),$e=t.pick(ee,[\\\"setCenter\\\",\\\"setZoom\\\",\\\"setBearing\\\",\\\"setPitch\\\"]),Je=function(e){function r(n,i){var a=this;void 0===i&&(i={}),e.call(this),this.map=n,this.dispatcher=new q((Jt||(Jt=new Kt),Jt),this),this.imageManager=new O,this.glyphManager=new F(n._transformRequest,i.localIdeographFontFamily),this.lineAtlas=new U(256,512),this.crossTileSymbolIndex=new Ye,this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new t.default$23,this._loaded=!1,this._resetUpdates();var o=this;this._rtlTextPluginCallback=r.registerForPluginAvailability(function(t){for(var e in o.dispatcher.broadcast(\\\"loadRTLTextPlugin\\\",t.pluginURL,t.completionCallback),o.sourceCaches)o.sourceCaches[e].reload()}),this.on(\\\"data\\\",function(t){if(\\\"source\\\"===t.dataType&&\\\"metadata\\\"===t.sourceDataType){var e=a.sourceCaches[t.sourceId];if(e){var r=e.getSource();if(r&&r.vectorLayerIds)for(var n in a._layers){var i=a._layers[n];i.source===r.id&&a._validateLayer(i)}}}})}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadURL=function(e,r){var n=this;void 0===r&&(r={}),this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"style\\\"}));var i=\\\"boolean\\\"==typeof r.validate?r.validate:!x(e);e=function(t,e){if(!x(t))return t;var r=A(t);return r.path=\\\"/styles/v1\\\"+r.path,y(r,e)}(e,r.accessToken);var a=this.map._transformRequest(e,t.ResourceType.Style);t.getJSON(a,function(e,r){e?n.fire(new t.ErrorEvent(e)):r&&n._load(r,i)})},r.prototype.loadJSON=function(e,r){var n=this;void 0===r&&(r={}),this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"style\\\"})),a.frame(function(){n._load(e,!1!==r.validate)})},r.prototype._load=function(e,r){var n=this;if(!r||!Xe(this,t.validateStyle(e))){for(var i in this._loaded=!0,this.stylesheet=e,e.sources)n.addSource(i,e.sources[i],{validate:!1});e.sprite?function(e,r,n){var i,o,s,l=a.devicePixelRatio>1?\\\"@2x\\\":\\\"\\\";function c(){if(s)n(s);else if(i&&o){var e=a.getImageData(o),r={};for(var l in i){var c=i[l],u=c.width,f=c.height,h=c.x,p=c.y,d=c.sdf,g=c.pixelRatio,v=new t.RGBAImage({width:u,height:f});t.RGBAImage.copy(e,v,{x:h,y:p},{x:0,y:0},{width:u,height:f}),r[l]={data:v,pixelRatio:g,sdf:d}}n(null,r)}}t.getJSON(r(_(e,l,\\\".json\\\"),t.ResourceType.SpriteJSON),function(t,e){s||(s=t,i=e,c())}),t.getImage(r(_(e,l,\\\".png\\\"),t.ResourceType.SpriteImage),function(t,e){s||(s=t,o=e,c())})}(e.sprite,this.map._transformRequest,function(e,r){if(e)n.fire(new t.ErrorEvent(e));else if(r)for(var i in r)n.imageManager.addImage(i,r[i]);n.imageManager.setLoaded(!0),n.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"}))}):this.imageManager.setLoaded(!0),this.glyphManager.setURL(e.glyphs);var o=te(this.stylesheet.layers);this._order=o.map(function(t){return t.id}),this._layers={};for(var s=0,l=o;s<l.length;s+=1){var c=l[s];(c=t.default$22(c)).setEventedParent(n,{layer:{id:c.id}}),n._layers[c.id]=c}this.dispatcher.broadcast(\\\"setLayers\\\",this._serializeLayers(this._order)),this.light=new V(this.stylesheet.light),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"})),this.fire(new t.Event(\\\"style.load\\\"))}},r.prototype._validateLayer=function(e){var r=this.sourceCaches[e.source];if(r){var n=e.sourceLayer;if(n){var i=r.getSource();(\\\"geojson\\\"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(n))&&this.fire(new t.ErrorEvent(new Error('Source layer \\\"'+n+'\\\" does not exist on source \\\"'+i.id+'\\\" as specified by style layer \\\"'+e.id+'\\\"')))}}},r.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},r.prototype._serializeLayers=function(t){var e=this;return t.map(function(t){return e._layers[t].serialize()})},r.prototype.hasTransitions=function(){if(this.light&&this.light.hasTransition())return!0;for(var t in this.sourceCaches)if(this.sourceCaches[t].hasTransition())return!0;for(var e in this._layers)if(this._layers[e].hasTransition())return!0;return!1},r.prototype._checkLoaded=function(){if(!this._loaded)throw new Error(\\\"Style is not done loading\\\")},r.prototype.update=function(e){if(this._loaded){if(this._changed){var r=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);for(var i in(r.length||n.length)&&this._updateWorkerLayers(r,n),this._updatedSources){var a=this._updatedSources[i];\\\"reload\\\"===a?this._reloadSource(i):\\\"clear\\\"===a&&this._clearSource(i)}for(var o in this._updatedPaintProps)this._layers[o].updateTransitions(e);this.light.updateTransitions(e),this._resetUpdates(),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"}))}for(var s in this.sourceCaches)this.sourceCaches[s].used=!1;for(var l=0,c=this._order;l<c.length;l+=1){var u=c[l],f=this._layers[u];f.recalculate(e),!f.isHidden(e.zoom)&&f.source&&(this.sourceCaches[f.source].used=!0)}this.light.recalculate(e),this.z=e.zoom}},r.prototype._updateWorkerLayers=function(t,e){this.dispatcher.broadcast(\\\"updateLayers\\\",{layers:this._serializeLayers(t),removedIds:e})},r.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={}},r.prototype.setState=function(e){var r=this;if(this._checkLoaded(),Xe(this,t.validateStyle(e)))return!1;(e=t.clone(e)).layers=te(e.layers);var n=function(e,r){if(!e)return[{command:ee.setStyle,args:[r]}];var n=[];try{if(!t.default$10(e.version,r.version))return[{command:ee.setStyle,args:[r]}];t.default$10(e.center,r.center)||n.push({command:ee.setCenter,args:[r.center]}),t.default$10(e.zoom,r.zoom)||n.push({command:ee.setZoom,args:[r.zoom]}),t.default$10(e.bearing,r.bearing)||n.push({command:ee.setBearing,args:[r.bearing]}),t.default$10(e.pitch,r.pitch)||n.push({command:ee.setPitch,args:[r.pitch]}),t.default$10(e.sprite,r.sprite)||n.push({command:ee.setSprite,args:[r.sprite]}),t.default$10(e.glyphs,r.glyphs)||n.push({command:ee.setGlyphs,args:[r.glyphs]}),t.default$10(e.transition,r.transition)||n.push({command:ee.setTransition,args:[r.transition]}),t.default$10(e.light,r.light)||n.push({command:ee.setLight,args:[r.light]});var i={},a=[];!function(e,r,n,i){var a;for(a in r=r||{},e=e||{})e.hasOwnProperty(a)&&(r.hasOwnProperty(a)||ne(a,n,i));for(a in r)r.hasOwnProperty(a)&&(e.hasOwnProperty(a)?t.default$10(e[a],r[a])||(\\\"geojson\\\"===e[a].type&&\\\"geojson\\\"===r[a].type&&ae(e,r,a)?n.push({command:ee.setGeoJSONSourceData,args:[a,r[a].data]}):ie(a,r,n,i)):re(a,r,n))}(e.sources,r.sources,a,i);var o=[];e.layers&&e.layers.forEach(function(t){i[t.source]?n.push({command:ee.removeLayer,args:[t.id]}):o.push(t)}),n=n.concat(a),function(e,r,n){r=r||[];var i,a,o,s,l,c,u,f=(e=e||[]).map(se),h=r.map(se),p=e.reduce(le,{}),d=r.reduce(le,{}),g=f.slice(),v=Object.create(null);for(i=0,a=0;i<f.length;i++)o=f[i],d.hasOwnProperty(o)?a++:(n.push({command:ee.removeLayer,args:[o]}),g.splice(g.indexOf(o,a),1));for(i=0,a=0;i<h.length;i++)o=h[h.length-1-i],g[g.length-1-i]!==o&&(p.hasOwnProperty(o)?(n.push({command:ee.removeLayer,args:[o]}),g.splice(g.lastIndexOf(o,g.length-a),1)):a++,c=g[g.length-i],n.push({command:ee.addLayer,args:[d[o],c]}),g.splice(g.length-i,0,o),v[o]=!0);for(i=0;i<h.length;i++)if(s=p[o=h[i]],l=d[o],!v[o]&&!t.default$10(s,l))if(t.default$10(s.source,l.source)&&t.default$10(s[\\\"source-layer\\\"],l[\\\"source-layer\\\"])&&t.default$10(s.type,l.type)){for(u in oe(s.layout,l.layout,n,o,null,ee.setLayoutProperty),oe(s.paint,l.paint,n,o,null,ee.setPaintProperty),t.default$10(s.filter,l.filter)||n.push({command:ee.setFilter,args:[o,l.filter]}),t.default$10(s.minzoom,l.minzoom)&&t.default$10(s.maxzoom,l.maxzoom)||n.push({command:ee.setLayerZoomRange,args:[o,l.minzoom,l.maxzoom]}),s)s.hasOwnProperty(u)&&\\\"layout\\\"!==u&&\\\"paint\\\"!==u&&\\\"filter\\\"!==u&&\\\"metadata\\\"!==u&&\\\"minzoom\\\"!==u&&\\\"maxzoom\\\"!==u&&(0===u.indexOf(\\\"paint.\\\")?oe(s[u],l[u],n,o,u.slice(6),ee.setPaintProperty):t.default$10(s[u],l[u])||n.push({command:ee.setLayerProperty,args:[o,u,l[u]]}));for(u in l)l.hasOwnProperty(u)&&!s.hasOwnProperty(u)&&\\\"layout\\\"!==u&&\\\"paint\\\"!==u&&\\\"filter\\\"!==u&&\\\"metadata\\\"!==u&&\\\"minzoom\\\"!==u&&\\\"maxzoom\\\"!==u&&(0===u.indexOf(\\\"paint.\\\")?oe(s[u],l[u],n,o,u.slice(6),ee.setPaintProperty):t.default$10(s[u],l[u])||n.push({command:ee.setLayerProperty,args:[o,u,l[u]]}))}else n.push({command:ee.removeLayer,args:[o]}),c=g[g.lastIndexOf(o)+1],n.push({command:ee.addLayer,args:[l,c]})}(o,r.layers,n)}catch(t){console.warn(\\\"Unable to compute style diff:\\\",t),n=[{command:ee.setStyle,args:[r]}]}return n}(this.serialize(),e).filter(function(t){return!(t.command in $e)});if(0===n.length)return!1;var i=n.filter(function(t){return!(t.command in Ze)});if(i.length>0)throw new Error(\\\"Unimplemented: \\\"+i.map(function(t){return t.command}).join(\\\", \\\")+\\\".\\\");return n.forEach(function(t){\\\"setTransition\\\"!==t.command&&r[t.command].apply(r,t.args)}),this.stylesheet=e,!0},r.prototype.addImage=function(e,r){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error(\\\"An image with this name already exists.\\\")));this.imageManager.addImage(e,r),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"}))},r.prototype.getImage=function(t){return this.imageManager.getImage(t)},r.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error(\\\"No image with this name exists.\\\")));this.imageManager.removeImage(e),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"}))},r.prototype.addSource=function(e,r,n){var i=this;if(this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error(\\\"There is already a source with this ID\\\");if(!r.type)throw new Error(\\\"The type property must be defined, but the only the following properties were given: \\\"+Object.keys(r).join(\\\", \\\")+\\\".\\\");if(!([\\\"vector\\\",\\\"raster\\\",\\\"geojson\\\",\\\"video\\\",\\\"image\\\"].indexOf(r.type)>=0&&this._validate(t.validateStyle.source,\\\"sources.\\\"+e,r,null,n))){this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Yt(e,r,this.dispatcher);a.style=this,a.setEventedParent(this,function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}}),a.onAdd(this.map),this._changed=!0}},r.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error(\\\"There is no source with this ID\\\");for(var r in this._layers)if(this._layers[r].source===e)return this.fire(new t.ErrorEvent(new Error('Source \\\"'+e+'\\\" cannot be removed while layer \\\"'+r+'\\\" is using it.')));var n=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],n.fire(new t.Event(\\\"data\\\",{sourceDataType:\\\"metadata\\\",dataType:\\\"source\\\",sourceId:e})),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},r.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},r.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},r.prototype.addLayer=function(e,r,n){this._checkLoaded();var i=e.id;if(this.getLayer(i))this.fire(new t.ErrorEvent(new Error('Layer with id \\\"'+i+'\\\" already exists on this map')));else if(\\\"object\\\"==typeof e.source&&(this.addSource(i,e.source),e=t.clone(e),e=t.extend(e,{source:i})),!this._validate(t.validateStyle.layer,\\\"layers.\\\"+i,e,{arrayIndex:-1},n)){var a=t.default$22(e);this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}});var o=r?this._order.indexOf(r):this._order.length;if(r&&-1===o)this.fire(new t.ErrorEvent(new Error('Layer with id \\\"'+r+'\\\" does not exist on this map.')));else{if(this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a,this._removedLayers[i]&&a.source){var s=this._removedLayers[i];delete this._removedLayers[i],s.type!==a.type?this._updatedSources[a.source]=\\\"clear\\\":(this._updatedSources[a.source]=\\\"reload\\\",this.sourceCaches[a.source].pause())}this._updateLayer(a)}}},r.prototype.moveLayer=function(e,r){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==r){var n=this._order.indexOf(e);this._order.splice(n,1);var i=r?this._order.indexOf(r):this._order.length;r&&-1===i?this.fire(new t.ErrorEvent(new Error('Layer with id \\\"'+r+'\\\" does not exist on this map.'))):(this._order.splice(i,0,e),this._layerOrderChanged=!0)}}else this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be moved.\\\")))},r.prototype.removeLayer=function(e){this._checkLoaded();var r=this._layers[e];if(r){r.setEventedParent(null);var n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e]}else this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be removed.\\\")))},r.prototype.getLayer=function(t){return this._layers[t]},r.prototype.setLayerZoomRange=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?i.minzoom===r&&i.maxzoom===n||(null!=r&&(i.minzoom=r),null!=n&&(i.maxzoom=n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot have zoom extent.\\\")))},r.prototype.setFilter=function(e,r){this._checkLoaded();var n=this.getLayer(e);if(n){if(!t.default$10(n.filter,r))return null==r?(n.filter=void 0,void this._updateLayer(n)):void(this._validate(t.validateStyle.filter,\\\"layers.\\\"+n.id+\\\".filter\\\",r)||(n.filter=t.clone(r),this._updateLayer(n)))}else this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be filtered.\\\")))},r.prototype.getFilter=function(e){return t.clone(this.getLayer(e).filter)},r.prototype.setLayoutProperty=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?t.default$10(i.getLayoutProperty(r),n)||(i.setLayoutProperty(r,n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be styled.\\\")))},r.prototype.getLayoutProperty=function(t,e){return this.getLayer(t).getLayoutProperty(e)},r.prototype.setPaintProperty=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);if(i){if(!t.default$10(i.getPaintProperty(r),n)){var a=i._transitionablePaint._values[r].value.isDataDriven();i.setPaintProperty(r,n),(i._transitionablePaint._values[r].value.isDataDriven()||a)&&this._updateLayer(i),this._changed=!0,this._updatedPaintProps[e]=!0}}else this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be styled.\\\")))},r.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},r.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},r.prototype.serialize=function(){var e=this;return t.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:t.mapObject(this.sourceCaches,function(t){return t.serialize()}),layers:this._order.map(function(t){return e._layers[t].serialize()})},function(t){return void 0!==t})},r.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&(this._updatedSources[t.source]=\\\"reload\\\",this.sourceCaches[t.source].pause()),this._changed=!0},r.prototype._flattenRenderedFeatures=function(t){for(var e=[],r=this._order.length-1;r>=0;r--)for(var n=this._order[r],i=0,a=t;i<a.length;i+=1){var o=a[i][n];if(o)for(var s=0,l=o;s<l.length;s+=1){var c=l[s];e.push(c)}}return e},r.prototype.queryRenderedFeatures=function(e,r,n){r&&r.filter&&this._validate(t.validateStyle.filter,\\\"queryRenderedFeatures.filter\\\",r.filter);var i={};if(r&&r.layers){if(!Array.isArray(r.layers))return this.fire(new t.ErrorEvent(new Error(\\\"parameters.layers must be an Array.\\\"))),[];for(var a=0,o=r.layers;a<o.length;a+=1){var s=o[a],l=this._layers[s];if(!l)return this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+s+\\\"' does not exist in the map's style and cannot be queried for features.\\\"))),[];i[l.source]=!0}}var c=[];for(var u in this.sourceCaches)r.layers&&!i[u]||c.push(at(this.sourceCaches[u],this._layers,e.worldCoordinate,r,n));return this.placement&&c.push(function(t,e,r,n,i){for(var a={},o=n.queryRenderedSymbols(e),s=[],l=0,c=Object.keys(o).map(Number);l<c.length;l+=1){var u=c[l];s.push(i[u])}s.sort(ot);for(var f=function(){var e=p[h],n=e.featureIndex.lookupSymbolFeatures(o[e.bucketInstanceId],e.bucketIndex,e.sourceLayerIndex,r.filter,r.layers,t);for(var i in n){var s=a[i]=a[i]||[],l=n[i];l.sort(function(t,r){var n=e.featureSortOrder;if(n){var i=n.indexOf(t.featureIndex);return n.indexOf(r.featureIndex)-i}return r.featureIndex-t.featureIndex});for(var c=0,u=l;c<u.length;c+=1){var f=u[c];s.push(f.feature)}}},h=0,p=s;h<p.length;h+=1)f();return a}(this._layers,e.viewport,r,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenRenderedFeatures(c)},r.prototype.querySourceFeatures=function(e,r){r&&r.filter&&this._validate(t.validateStyle.filter,\\\"querySourceFeatures.filter\\\",r.filter);var n=this.sourceCaches[e];return n?function(t,e){for(var r=t.getRenderableIds().map(function(e){return t.getTileByID(e)}),n=[],i={},a=0;a<r.length;a++){var o=r[a],s=o.tileID.canonical.key;i[s]||(i[s]=!0,o.querySourceFeatures(n,e))}return n}(n,r):[]},r.prototype.addSourceType=function(t,e,n){return r.getSourceType(t)?n(new Error('A source type called \\\"'+t+'\\\" already exists.')):(r.setSourceType(t,e),e.workerSourceURL?void this.dispatcher.broadcast(\\\"loadWorkerSource\\\",{name:t,url:e.workerSourceURL},n):n(null,null))},r.prototype.getLight=function(){return this.light.getLight()},r.prototype.setLight=function(e){this._checkLoaded();var r=this.light.getLight(),n=!1;for(var i in e)if(!t.default$10(e[i],r[i])){n=!0;break}if(n){var o={now:a.now(),transition:t.extend({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e),this.light.updateTransitions(o)}},r.prototype._validate=function(e,r,n,i,a){return(!a||!1!==a.validate)&&Xe(this,e.call(t.validateStyle,t.extend({key:r,style:this.serialize(),value:n,styleSpec:t.default$5},i)))},r.prototype._remove=function(){for(var e in t.evented.off(\\\"pluginAvailable\\\",this._rtlTextPluginCallback),this.sourceCaches)this.sourceCaches[e].clearTiles();this.dispatcher.remove()},r.prototype._clearSource=function(t){this.sourceCaches[t].clearTiles()},r.prototype._reloadSource=function(t){this.sourceCaches[t].resume(),this.sourceCaches[t].reload()},r.prototype._updateSources=function(t){for(var e in this.sourceCaches)this.sourceCaches[e].update(t)},r.prototype._generateCollisionBoxes=function(){for(var t in this.sourceCaches)this._reloadSource(t)},r.prototype._updatePlacement=function(t,e,r){for(var n=!1,i=!1,o={},s=0,l=this._order;s<l.length;s+=1){var c=l[s],u=this._layers[c];if(\\\"symbol\\\"===u.type){if(!o[u.source]){var f=this.sourceCaches[u.source];o[u.source]=f.getRenderableIds().map(function(t){return f.getTileByID(t)}).sort(function(t,e){return e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)})}var h=this.crossTileSymbolIndex.addLayer(u,o[u.source],t.center.lng);n=n||h}}this.crossTileSymbolIndex.pruneUnusedLayers(this._order);var p=this._layerOrderChanged;if((p||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(a.now()))&&(this.pauseablePlacement=new Ue(t,this._order,p,e,r),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,o),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(this.placement,a.now()),i=!0),n&&this.pauseablePlacement.placement.setStale()),i||n)for(var d=0,g=this._order;d<g.length;d+=1){var v=g[d],m=this._layers[v];\\\"symbol\\\"===m.type&&this.placement.updateLayerOpacities(m,o[m.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(a.now())},r.prototype.getImages=function(t,e,r){this.imageManager.getImages(e.icons,r)},r.prototype.getGlyphs=function(t,e,r){this.glyphManager.getGlyphs(e.stacks,r)},r}(t.Evented);Je.getSourceType=function(t){return nt[t]},Je.setSourceType=function(t,e){nt[t]=e},Je.registerForPluginAvailability=t.registerForPluginAvailability;var Ke=t.createLayout([{name:\\\"a_pos\\\",type:\\\"Int16\\\",components:2}]),Qe={prelude:{fragmentSource:\\\"#ifdef GL_ES\\\\nprecision mediump float;\\\\n#else\\\\n\\\\n#if !defined(lowp)\\\\n#define lowp\\\\n#endif\\\\n\\\\n#if !defined(mediump)\\\\n#define mediump\\\\n#endif\\\\n\\\\n#if !defined(highp)\\\\n#define highp\\\\n#endif\\\\n\\\\n#endif\\\\n\\\",vertexSource:\\\"#ifdef GL_ES\\\\nprecision highp float;\\\\n#else\\\\n\\\\n#if !defined(lowp)\\\\n#define lowp\\\\n#endif\\\\n\\\\n#if !defined(mediump)\\\\n#define mediump\\\\n#endif\\\\n\\\\n#if !defined(highp)\\\\n#define highp\\\\n#endif\\\\n\\\\n#endif\\\\n\\\\n// Unpack a pair of values that have been packed into a single float.\\\\n// The packed values are assumed to be 8-bit unsigned integers, and are\\\\n// packed like so:\\\\n// packedValue = floor(input[0]) * 256 + input[1],\\\\nvec2 unpack_float(const float packedValue) {\\\\n    int packedIntValue = int(packedValue);\\\\n    int v0 = packedIntValue / 256;\\\\n    return vec2(v0, packedIntValue - v0 * 256);\\\\n}\\\\n\\\\nvec2 unpack_opacity(const float packedOpacity) {\\\\n    int intOpacity = int(packedOpacity) / 2;\\\\n    return vec2(float(intOpacity) / 127.0, mod(packedOpacity, 2.0));\\\\n}\\\\n\\\\n// To minimize the number of attributes needed, we encode a 4-component\\\\n// color into a pair of floats (i.e. a vec2) as follows:\\\\n// [ floor(color.r * 255) * 256 + color.g * 255,\\\\n//   floor(color.b * 255) * 256 + color.g * 255 ]\\\\nvec4 decode_color(const vec2 encodedColor) {\\\\n    return vec4(\\\\n        unpack_float(encodedColor[0]) / 255.0,\\\\n        unpack_float(encodedColor[1]) / 255.0\\\\n    );\\\\n}\\\\n\\\\n// Unpack a pair of paint values and interpolate between them.\\\\nfloat unpack_mix_vec2(const vec2 packedValue, const float t) {\\\\n    return mix(packedValue[0], packedValue[1], t);\\\\n}\\\\n\\\\n// Unpack a pair of paint values and interpolate between them.\\\\nvec4 unpack_mix_vec4(const vec4 packedColors, const float t) {\\\\n    vec4 minColor = decode_color(vec2(packedColors[0], packedColors[1]));\\\\n    vec4 maxColor = decode_color(vec2(packedColors[2], packedColors[3]));\\\\n    return mix(minColor, maxColor, t);\\\\n}\\\\n\\\\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\\\\n// vec2 offset = mod(pixel_coord, size)\\\\n//\\\\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\\\\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\\\\n//\\\\n// The pixel_coord is passed in as two 16 bit values:\\\\n// pixel_coord_upper = floor(pixel_coord / 2^16)\\\\n// pixel_coord_lower = mod(pixel_coord, 2^16)\\\\n//\\\\n// The offset is calculated in a series of steps that should preserve this precision:\\\\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\\\\n    const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\\\\n\\\\n    vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\\\\n    return (tile_units_to_pixels * pos + offset) / pattern_size;\\\\n}\\\\n\\\"},background:{fragmentSource:\\\"uniform vec4 u_color;\\\\nuniform float u_opacity;\\\\n\\\\nvoid main() {\\\\n    gl_FragColor = u_color * u_opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n}\\\\n\\\"},backgroundPattern:{fragmentSource:\\\"uniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_mix;\\\\nuniform float u_opacity;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\n\\\\nvoid main() {\\\\n    vec2 imagecoord = mod(v_pos_a, 1.0);\\\\n    vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\\\\n    vec4 color1 = texture2D(u_image, pos);\\\\n\\\\n    vec2 imagecoord_b = mod(v_pos_b, 1.0);\\\\n    vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\\\\n    vec4 color2 = texture2D(u_image, pos2);\\\\n\\\\n    gl_FragColor = mix(color1, color2, u_mix) * u_opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pixel_coord_upper;\\\\nuniform vec2 u_pixel_coord_lower;\\\\nuniform float u_scale_a;\\\\nuniform float u_scale_b;\\\\nuniform float u_tile_units_to_pixels;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n\\\\n    v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\\\\n    v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\\\\n}\\\\n\\\"},circle:{fragmentSource:\\\"#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define mediump float radius\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define highp vec4 stroke_color\\\\n#pragma mapbox: define mediump float stroke_width\\\\n#pragma mapbox: define lowp float stroke_opacity\\\\n\\\\nvarying vec3 v_data;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize mediump float radius\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize highp vec4 stroke_color\\\\n    #pragma mapbox: initialize mediump float stroke_width\\\\n    #pragma mapbox: initialize lowp float stroke_opacity\\\\n\\\\n    vec2 extrude = v_data.xy;\\\\n    float extrude_length = length(extrude);\\\\n\\\\n    lowp float antialiasblur = v_data.z;\\\\n    float antialiased_blur = -max(blur, antialiasblur);\\\\n\\\\n    float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\\\\n\\\\n    float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\\\\n        antialiased_blur,\\\\n        0.0,\\\\n        extrude_length - radius / (radius + stroke_width)\\\\n    );\\\\n\\\\n    gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform bool u_scale_with_map;\\\\nuniform bool u_pitch_with_map;\\\\nuniform vec2 u_extrude_scale;\\\\nuniform highp float u_camera_to_center_distance;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define mediump float radius\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define highp vec4 stroke_color\\\\n#pragma mapbox: define mediump float stroke_width\\\\n#pragma mapbox: define lowp float stroke_opacity\\\\n\\\\nvarying vec3 v_data;\\\\n\\\\nvoid main(void) {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize mediump float radius\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize highp vec4 stroke_color\\\\n    #pragma mapbox: initialize mediump float stroke_width\\\\n    #pragma mapbox: initialize lowp float stroke_opacity\\\\n\\\\n    // unencode the extrusion vector that we snuck into the a_pos vector\\\\n    vec2 extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\\\\n\\\\n    // multiply a_pos by 0.5, since we had it * 2 in order to sneak\\\\n    // in extrusion data\\\\n    vec2 circle_center = floor(a_pos * 0.5);\\\\n    if (u_pitch_with_map) {\\\\n        vec2 corner_position = circle_center;\\\\n        if (u_scale_with_map) {\\\\n            corner_position += extrude * (radius + stroke_width) * u_extrude_scale;\\\\n        } else {\\\\n            // Pitching the circle with the map effectively scales it with the map\\\\n            // To counteract the effect for pitch-scale: viewport, we rescale the\\\\n            // whole circle based on the pitch scaling effect at its central point\\\\n            vec4 projected_center = u_matrix * vec4(circle_center, 0, 1);\\\\n            corner_position += extrude * (radius + stroke_width) * u_extrude_scale * (projected_center.w / u_camera_to_center_distance);\\\\n        }\\\\n\\\\n        gl_Position = u_matrix * vec4(corner_position, 0, 1);\\\\n    } else {\\\\n        gl_Position = u_matrix * vec4(circle_center, 0, 1);\\\\n\\\\n        if (u_scale_with_map) {\\\\n            gl_Position.xy += extrude * (radius + stroke_width) * u_extrude_scale * u_camera_to_center_distance;\\\\n        } else {\\\\n            gl_Position.xy += extrude * (radius + stroke_width) * u_extrude_scale * gl_Position.w;\\\\n        }\\\\n    }\\\\n\\\\n    // This is a minimum blur distance that serves as a faux-antialiasing for\\\\n    // the circle. since blur is a ratio of the circle's size and the intent is\\\\n    // to keep the blur at roughly 1px, the two are inversely related.\\\\n    lowp float antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\\\\n\\\\n    v_data = vec3(extrude.x, extrude.y, antialiasblur);\\\\n}\\\\n\\\"},clippingMask:{fragmentSource:\\\"void main() {\\\\n    gl_FragColor = vec4(1.0);\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n}\\\\n\\\"},heatmap:{fragmentSource:\\\"#pragma mapbox: define highp float weight\\\\n\\\\nuniform highp float u_intensity;\\\\nvarying vec2 v_extrude;\\\\n\\\\n// Gaussian kernel coefficient: 1 / sqrt(2 * PI)\\\\n#define GAUSS_COEF 0.3989422804014327\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp float weight\\\\n\\\\n    // Kernel density estimation with a Gaussian kernel of size 5x5\\\\n    float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude);\\\\n    float val = weight * u_intensity * GAUSS_COEF * exp(d);\\\\n\\\\n    gl_FragColor = vec4(val, 1.0, 1.0, 1.0);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"#pragma mapbox: define highp float weight\\\\n#pragma mapbox: define mediump float radius\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform float u_extrude_scale;\\\\nuniform float u_opacity;\\\\nuniform float u_intensity;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\nvarying vec2 v_extrude;\\\\n\\\\n// Effective \\\\\\\"0\\\\\\\" in the kernel density texture to adjust the kernel size to;\\\\n// this empirically chosen number minimizes artifacts on overlapping kernels\\\\n// for typical heatmap cases (assuming clustered source)\\\\nconst highp float ZERO = 1.0 / 255.0 / 16.0;\\\\n\\\\n// Gaussian kernel coefficient: 1 / sqrt(2 * PI)\\\\n#define GAUSS_COEF 0.3989422804014327\\\\n\\\\nvoid main(void) {\\\\n    #pragma mapbox: initialize highp float weight\\\\n    #pragma mapbox: initialize mediump float radius\\\\n\\\\n    // unencode the extrusion vector that we snuck into the a_pos vector\\\\n    vec2 unscaled_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\\\\n\\\\n    // This 'extrude' comes in ranging from [-1, -1], to [1, 1].  We'll use\\\\n    // it to produce the vertices of a square mesh framing the point feature\\\\n    // we're adding to the kernel density texture.  We'll also pass it as\\\\n    // a varying, so that the fragment shader can determine the distance of\\\\n    // each fragment from the point feature.\\\\n    // Before we do so, we need to scale it up sufficiently so that the\\\\n    // kernel falls effectively to zero at the edge of the mesh.\\\\n    // That is, we want to know S such that\\\\n    // weight * u_intensity * GAUSS_COEF * exp(-0.5 * 3.0^2 * S^2) == ZERO\\\\n    // Which solves to:\\\\n    // S = sqrt(-2.0 * log(ZERO / (weight * u_intensity * GAUSS_COEF))) / 3.0\\\\n    float S = sqrt(-2.0 * log(ZERO / weight / u_intensity / GAUSS_COEF)) / 3.0;\\\\n\\\\n    // Pass the varying in units of radius\\\\n    v_extrude = S * unscaled_extrude;\\\\n\\\\n    // Scale by radius and the zoom-based scale factor to produce actual\\\\n    // mesh position\\\\n    vec2 extrude = v_extrude * radius * u_extrude_scale;\\\\n\\\\n    // multiply a_pos by 0.5, since we had it * 2 in order to sneak\\\\n    // in extrusion data\\\\n    vec4 pos = vec4(floor(a_pos * 0.5) + extrude, 0, 1);\\\\n\\\\n    gl_Position = u_matrix * pos;\\\\n}\\\\n\\\"},heatmapTexture:{fragmentSource:\\\"uniform sampler2D u_image;\\\\nuniform sampler2D u_color_ramp;\\\\nuniform float u_opacity;\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    float t = texture2D(u_image, v_pos).r;\\\\n    vec4 color = texture2D(u_color_ramp, vec2(t, 0.5));\\\\n    gl_FragColor = color * u_opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(0.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_world;\\\\nattribute vec2 a_pos;\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos * u_world, 0, 1);\\\\n\\\\n    v_pos.x = a_pos.x;\\\\n    v_pos.y = 1.0 - a_pos.y;\\\\n}\\\\n\\\"},collisionBox:{fragmentSource:\\\"\\\\nvarying float v_placed;\\\\nvarying float v_notUsed;\\\\n\\\\nvoid main() {\\\\n\\\\n    float alpha = 0.5;\\\\n\\\\n    // Red = collision, hide label\\\\n    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\\\\n\\\\n    // Blue = no collision, label is showing\\\\n    if (v_placed > 0.5) {\\\\n        gl_FragColor = vec4(0.0, 0.0, 1.0, 0.5) * alpha;\\\\n    }\\\\n\\\\n    if (v_notUsed > 0.5) {\\\\n        // This box not used, fade it out\\\\n        gl_FragColor *= .1;\\\\n    }\\\\n}\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\nattribute vec2 a_anchor_pos;\\\\nattribute vec2 a_extrude;\\\\nattribute vec2 a_placed;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform vec2 u_extrude_scale;\\\\nuniform float u_camera_to_center_distance;\\\\n\\\\nvarying float v_placed;\\\\nvarying float v_notUsed;\\\\n\\\\nvoid main() {\\\\n    vec4 projectedPoint = u_matrix * vec4(a_anchor_pos, 0, 1);\\\\n    highp float camera_to_anchor_distance = projectedPoint.w;\\\\n    highp float collision_perspective_ratio = clamp(\\\\n        0.5 + 0.5 * (u_camera_to_center_distance / camera_to_anchor_distance),\\\\n        0.0, // Prevents oversized near-field boxes in pitched/overzoomed tiles\\\\n        4.0);\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0.0, 1.0);\\\\n    gl_Position.xy += a_extrude * u_extrude_scale * gl_Position.w * collision_perspective_ratio;\\\\n\\\\n    v_placed = a_placed.x;\\\\n    v_notUsed = a_placed.y;\\\\n}\\\\n\\\"},collisionCircle:{fragmentSource:\\\"uniform float u_overscale_factor;\\\\n\\\\nvarying float v_placed;\\\\nvarying float v_notUsed;\\\\nvarying float v_radius;\\\\nvarying vec2 v_extrude;\\\\nvarying vec2 v_extrude_scale;\\\\n\\\\nvoid main() {\\\\n    float alpha = 0.5;\\\\n\\\\n    // Red = collision, hide label\\\\n    vec4 color = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\\\\n\\\\n    // Blue = no collision, label is showing\\\\n    if (v_placed > 0.5) {\\\\n        color = vec4(0.0, 0.0, 1.0, 0.5) * alpha;\\\\n    }\\\\n\\\\n    if (v_notUsed > 0.5) {\\\\n        // This box not used, fade it out\\\\n        color *= .2;\\\\n    }\\\\n\\\\n    float extrude_scale_length = length(v_extrude_scale);\\\\n    float extrude_length = length(v_extrude) * extrude_scale_length;\\\\n    float stroke_width = 15.0 * extrude_scale_length / u_overscale_factor;\\\\n    float radius = v_radius * extrude_scale_length;\\\\n\\\\n    float distance_to_edge = abs(extrude_length - radius);\\\\n    float opacity_t = smoothstep(-stroke_width, 0.0, -distance_to_edge);\\\\n\\\\n    gl_FragColor = opacity_t * color;\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\nattribute vec2 a_anchor_pos;\\\\nattribute vec2 a_extrude;\\\\nattribute vec2 a_placed;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform vec2 u_extrude_scale;\\\\nuniform float u_camera_to_center_distance;\\\\n\\\\nvarying float v_placed;\\\\nvarying float v_notUsed;\\\\nvarying float v_radius;\\\\n\\\\nvarying vec2 v_extrude;\\\\nvarying vec2 v_extrude_scale;\\\\n\\\\nvoid main() {\\\\n    vec4 projectedPoint = u_matrix * vec4(a_anchor_pos, 0, 1);\\\\n    highp float camera_to_anchor_distance = projectedPoint.w;\\\\n    highp float collision_perspective_ratio = clamp(\\\\n        0.5 + 0.5 * (u_camera_to_center_distance / camera_to_anchor_distance),\\\\n        0.0, // Prevents oversized near-field circles in pitched/overzoomed tiles\\\\n        4.0);\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0.0, 1.0);\\\\n\\\\n    highp float padding_factor = 1.2; // Pad the vertices slightly to make room for anti-alias blur\\\\n    gl_Position.xy += a_extrude * u_extrude_scale * padding_factor * gl_Position.w * collision_perspective_ratio;\\\\n\\\\n    v_placed = a_placed.x;\\\\n    v_notUsed = a_placed.y;\\\\n    v_radius = abs(a_extrude.y); // We don't pitch the circles, so both units of the extrusion vector are equal in magnitude to the radius\\\\n\\\\n    v_extrude = a_extrude * padding_factor;\\\\n    v_extrude_scale = u_extrude_scale * u_camera_to_center_distance * collision_perspective_ratio;\\\\n}\\\\n\\\"},debug:{fragmentSource:\\\"uniform highp vec4 u_color;\\\\n\\\\nvoid main() {\\\\n    gl_FragColor = u_color;\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n}\\\\n\\\"},fill:{fragmentSource:\\\"#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_FragColor = color * opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n}\\\\n\\\"},fillOutline:{fragmentSource:\\\"#pragma mapbox: define highp vec4 outline_color\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 outline_color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    float dist = length(v_pos - gl_FragCoord.xy);\\\\n    float alpha = 1.0 - smoothstep(0.0, 1.0, dist);\\\\n    gl_FragColor = outline_color * (alpha * opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform vec2 u_world;\\\\n\\\\nvarying vec2 v_pos;\\\\n\\\\n#pragma mapbox: define highp vec4 outline_color\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 outline_color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n    v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\\\\n}\\\\n\\\"},fillOutlinePattern:{fragmentSource:\\\"uniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_mix;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\nvarying vec2 v_pos;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    vec2 imagecoord = mod(v_pos_a, 1.0);\\\\n    vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\\\\n    vec4 color1 = texture2D(u_image, pos);\\\\n\\\\n    vec2 imagecoord_b = mod(v_pos_b, 1.0);\\\\n    vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\\\\n    vec4 color2 = texture2D(u_image, pos2);\\\\n\\\\n    // find distance to outline for alpha interpolation\\\\n\\\\n    float dist = length(v_pos - gl_FragCoord.xy);\\\\n    float alpha = 1.0 - smoothstep(0.0, 1.0, dist);\\\\n\\\\n\\\\n    gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_world;\\\\nuniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pixel_coord_upper;\\\\nuniform vec2 u_pixel_coord_lower;\\\\nuniform float u_scale_a;\\\\nuniform float u_scale_b;\\\\nuniform float u_tile_units_to_pixels;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\nvarying vec2 v_pos;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n\\\\n    v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\\\\n    v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\\\\n\\\\n    v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\\\\n}\\\\n\\\"},fillPattern:{fragmentSource:\\\"uniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_mix;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    vec2 imagecoord = mod(v_pos_a, 1.0);\\\\n    vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\\\\n    vec4 color1 = texture2D(u_image, pos);\\\\n\\\\n    vec2 imagecoord_b = mod(v_pos_b, 1.0);\\\\n    vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\\\\n    vec4 color2 = texture2D(u_image, pos2);\\\\n\\\\n    gl_FragColor = mix(color1, color2, u_mix) * opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pixel_coord_upper;\\\\nuniform vec2 u_pixel_coord_lower;\\\\nuniform float u_scale_a;\\\\nuniform float u_scale_b;\\\\nuniform float u_tile_units_to_pixels;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n\\\\n    v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\\\\n    v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\\\\n}\\\\n\\\"},fillExtrusion:{fragmentSource:\\\"varying vec4 v_color;\\\\n#pragma mapbox: define lowp float base\\\\n#pragma mapbox: define lowp float height\\\\n#pragma mapbox: define highp vec4 color\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float base\\\\n    #pragma mapbox: initialize lowp float height\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n\\\\n    gl_FragColor = v_color;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec3 u_lightcolor;\\\\nuniform lowp vec3 u_lightpos;\\\\nuniform lowp float u_lightintensity;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec4 a_normal_ed;\\\\n\\\\nvarying vec4 v_color;\\\\n\\\\n#pragma mapbox: define lowp float base\\\\n#pragma mapbox: define lowp float height\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float base\\\\n    #pragma mapbox: initialize lowp float height\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n\\\\n    vec3 normal = a_normal_ed.xyz;\\\\n\\\\n    base = max(0.0, base);\\\\n    height = max(0.0, height);\\\\n\\\\n    float t = mod(normal.x, 2.0);\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\\\\n\\\\n    // Relative luminance (how dark/bright is the surface color?)\\\\n    float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\\\\n\\\\n    v_color = vec4(0.0, 0.0, 0.0, 1.0);\\\\n\\\\n    // Add slight ambient lighting so no extrusions are totally black\\\\n    vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\\\\n    color += ambientlight;\\\\n\\\\n    // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\\\\n    float directional = clamp(dot(normal / 16384.0, u_lightpos), 0.0, 1.0);\\\\n\\\\n    // Adjust directional so that\\\\n    // the range of values for highlight/shading is narrower\\\\n    // with lower light intensity\\\\n    // and with lighter/brighter surface colors\\\\n    directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\\\\n\\\\n    // Add gradient along z axis of side surfaces\\\\n    if (normal.y != 0.0) {\\\\n        directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\\\\n    }\\\\n\\\\n    // Assign final color based on surface + ambient light color, diffuse light directional, and light color\\\\n    // with lower bounds adjusted to hue of light\\\\n    // so that shading is tinted with the complementary (opposite) color to the light color\\\\n    v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\\\\n    v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\\\\n    v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\\\\n}\\\\n\\\"},fillExtrusionPattern:{fragmentSource:\\\"uniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_mix;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\nvarying vec4 v_lighting;\\\\n\\\\n#pragma mapbox: define lowp float base\\\\n#pragma mapbox: define lowp float height\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float base\\\\n    #pragma mapbox: initialize lowp float height\\\\n\\\\n    vec2 imagecoord = mod(v_pos_a, 1.0);\\\\n    vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\\\\n    vec4 color1 = texture2D(u_image, pos);\\\\n\\\\n    vec2 imagecoord_b = mod(v_pos_b, 1.0);\\\\n    vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\\\\n    vec4 color2 = texture2D(u_image, pos2);\\\\n\\\\n    vec4 mixedColor = mix(color1, color2, u_mix);\\\\n\\\\n    gl_FragColor = mixedColor * v_lighting;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pixel_coord_upper;\\\\nuniform vec2 u_pixel_coord_lower;\\\\nuniform float u_scale_a;\\\\nuniform float u_scale_b;\\\\nuniform float u_tile_units_to_pixels;\\\\nuniform float u_height_factor;\\\\n\\\\nuniform vec3 u_lightcolor;\\\\nuniform lowp vec3 u_lightpos;\\\\nuniform lowp float u_lightintensity;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec4 a_normal_ed;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\nvarying vec4 v_lighting;\\\\nvarying float v_directional;\\\\n\\\\n#pragma mapbox: define lowp float base\\\\n#pragma mapbox: define lowp float height\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float base\\\\n    #pragma mapbox: initialize lowp float height\\\\n\\\\n    vec3 normal = a_normal_ed.xyz;\\\\n    float edgedistance = a_normal_ed.w;\\\\n\\\\n    base = max(0.0, base);\\\\n    height = max(0.0, height);\\\\n\\\\n    float t = mod(normal.x, 2.0);\\\\n    float z = t > 0.0 ? height : base;\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, z, 1);\\\\n\\\\n    vec2 pos = normal.x == 1.0 && normal.y == 0.0 && normal.z == 16384.0\\\\n        ? a_pos // extrusion top\\\\n        : vec2(edgedistance, z * u_height_factor); // extrusion side\\\\n\\\\n    v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, pos);\\\\n    v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, pos);\\\\n\\\\n    v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\\\\n    float directional = clamp(dot(normal / 16383.0, u_lightpos), 0.0, 1.0);\\\\n    directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\\\\n\\\\n    if (normal.y != 0.0) {\\\\n        directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\\\\n    }\\\\n\\\\n    v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\\\\n}\\\\n\\\"},extrusionTexture:{fragmentSource:\\\"uniform sampler2D u_image;\\\\nuniform float u_opacity;\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_FragColor = texture2D(u_image, v_pos) * u_opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(0.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_world;\\\\nattribute vec2 a_pos;\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos * u_world, 0, 1);\\\\n\\\\n    v_pos.x = a_pos.x;\\\\n    v_pos.y = 1.0 - a_pos.y;\\\\n}\\\\n\\\"},hillshadePrepare:{fragmentSource:\\\"#ifdef GL_ES\\\\nprecision highp float;\\\\n#endif\\\\n\\\\nuniform sampler2D u_image;\\\\nvarying vec2 v_pos;\\\\nuniform vec2 u_dimension;\\\\nuniform float u_zoom;\\\\nuniform float u_maxzoom;\\\\n\\\\nfloat getElevation(vec2 coord, float bias) {\\\\n    // Convert encoded elevation value to meters\\\\n    vec4 data = texture2D(u_image, coord) * 255.0;\\\\n    return (data.r + data.g * 256.0 + data.b * 256.0 * 256.0) / 4.0;\\\\n}\\\\n\\\\nvoid main() {\\\\n    vec2 epsilon = 1.0 / u_dimension;\\\\n\\\\n    // queried pixels:\\\\n    // +-----------+\\\\n    // |   |   |   |\\\\n    // | a | b | c |\\\\n    // |   |   |   |\\\\n    // +-----------+\\\\n    // |   |   |   |\\\\n    // | d | e | f |\\\\n    // |   |   |   |\\\\n    // +-----------+\\\\n    // |   |   |   |\\\\n    // | g | h | i |\\\\n    // |   |   |   |\\\\n    // +-----------+\\\\n\\\\n    float a = getElevation(v_pos + vec2(-epsilon.x, -epsilon.y), 0.0);\\\\n    float b = getElevation(v_pos + vec2(0, -epsilon.y), 0.0);\\\\n    float c = getElevation(v_pos + vec2(epsilon.x, -epsilon.y), 0.0);\\\\n    float d = getElevation(v_pos + vec2(-epsilon.x, 0), 0.0);\\\\n    float e = getElevation(v_pos, 0.0);\\\\n    float f = getElevation(v_pos + vec2(epsilon.x, 0), 0.0);\\\\n    float g = getElevation(v_pos + vec2(-epsilon.x, epsilon.y), 0.0);\\\\n    float h = getElevation(v_pos + vec2(0, epsilon.y), 0.0);\\\\n    float i = getElevation(v_pos + vec2(epsilon.x, epsilon.y), 0.0);\\\\n\\\\n    // here we divide the x and y slopes by 8 * pixel size\\\\n    // where pixel size (aka meters/pixel) is:\\\\n    // circumference of the world / (pixels per tile * number of tiles)\\\\n    // which is equivalent to: 8 * 40075016.6855785 / (512 * pow(2, u_zoom))\\\\n    // which can be reduced to: pow(2, 19.25619978527 - u_zoom)\\\\n    // we want to vertically exaggerate the hillshading though, because otherwise\\\\n    // it is barely noticeable at low zooms. to do this, we multiply this by some\\\\n    // scale factor pow(2, (u_zoom - u_maxzoom) * a) where a is an arbitrary value\\\\n    // Here we use a=0.3 which works out to the expression below. see \\\\n    // nickidlugash's awesome breakdown for more info\\\\n    // https://github.com/mapbox/mapbox-gl-js/pull/5286#discussion_r148419556\\\\n    float exaggeration = u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;\\\\n\\\\n    vec2 deriv = vec2(\\\\n        (c + f + f + i) - (a + d + d + g),\\\\n        (g + h + h + i) - (a + b + b + c)\\\\n    ) /  pow(2.0, (u_zoom - u_maxzoom) * exaggeration + 19.2562 - u_zoom);\\\\n\\\\n    gl_FragColor = clamp(vec4(\\\\n        deriv.x / 2.0 + 0.5,\\\\n        deriv.y / 2.0 + 0.5,\\\\n        1.0,\\\\n        1.0), 0.0, 1.0);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec2 a_texture_pos;\\\\n\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n    v_pos = (a_texture_pos / 8192.0) / 2.0 + 0.25;\\\\n}\\\\n\\\"},hillshade:{fragmentSource:\\\"uniform sampler2D u_image;\\\\nvarying vec2 v_pos;\\\\n\\\\nuniform vec2 u_latrange;\\\\nuniform vec2 u_light;\\\\nuniform vec4 u_shadow;\\\\nuniform vec4 u_highlight;\\\\nuniform vec4 u_accent;\\\\n\\\\n#define PI 3.141592653589793\\\\n\\\\nvoid main() {\\\\n    vec4 pixel = texture2D(u_image, v_pos);\\\\n\\\\n    vec2 deriv = ((pixel.rg * 2.0) - 1.0);\\\\n\\\\n    // We divide the slope by a scale factor based on the cosin of the pixel's approximate latitude\\\\n    // to account for mercator projection distortion. see #4807 for details\\\\n    float scaleFactor = cos(radians((u_latrange[0] - u_latrange[1]) * (1.0 - v_pos.y) + u_latrange[1]));\\\\n    // We also multiply the slope by an arbitrary z-factor of 1.25\\\\n    float slope = atan(1.25 * length(deriv) / scaleFactor);\\\\n    float aspect = deriv.x != 0.0 ? atan(deriv.y, -deriv.x) : PI / 2.0 * (deriv.y > 0.0 ? 1.0 : -1.0);\\\\n\\\\n    float intensity = u_light.x;\\\\n    // We add PI to make this property match the global light object, which adds PI/2 to the light's azimuthal\\\\n    // position property to account for 0deg corresponding to north/the top of the viewport in the style spec\\\\n    // and the original shader was written to accept (-illuminationDirection - 90) as the azimuthal.\\\\n    float azimuth = u_light.y + PI;\\\\n\\\\n    // We scale the slope exponentially based on intensity, using a calculation similar to\\\\n    // the exponential interpolation function in the style spec:\\\\n    // https://github.com/mapbox/mapbox-gl-js/blob/master/src/style-spec/expression/definitions/interpolate.js#L217-L228\\\\n    // so that higher intensity values create more opaque hillshading.\\\\n    float base = 1.875 - intensity * 1.75;\\\\n    float maxValue = 0.5 * PI;\\\\n    float scaledSlope = intensity != 0.5 ? ((pow(base, slope) - 1.0) / (pow(base, maxValue) - 1.0)) * maxValue : slope;\\\\n\\\\n    // The accent color is calculated with the cosine of the slope while the shade color is calculated with the sine\\\\n    // so that the accent color's rate of change eases in while the shade color's eases out.\\\\n    float accent = cos(scaledSlope);\\\\n    // We multiply both the accent and shade color by a clamped intensity value\\\\n    // so that intensities >= 0.5 do not additionally affect the color values\\\\n    // while intensity values < 0.5 make the overall color more transparent.\\\\n    vec4 accent_color = (1.0 - accent) * u_accent * clamp(intensity * 2.0, 0.0, 1.0);\\\\n    float shade = abs(mod((aspect + azimuth) / PI + 0.5, 2.0) - 1.0);\\\\n    vec4 shade_color = mix(u_shadow, u_highlight, shade) * sin(scaledSlope) * clamp(intensity * 2.0, 0.0, 1.0);\\\\n    gl_FragColor = accent_color * (1.0 - shade_color.a) + shade_color;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec2 a_texture_pos;\\\\n\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n    v_pos = a_texture_pos / 8192.0;\\\\n}\\\\n\\\"},line:{fragmentSource:\\\"#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvarying vec2 v_width2;\\\\nvarying vec2 v_normal;\\\\nvarying float v_gamma_scale;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    // Calculate the distance of the pixel from the line in pixels.\\\\n    float dist = length(v_normal) * v_width2.s;\\\\n\\\\n    // Calculate the antialiasing fade factor. This is either when fading in\\\\n    // the line in case of an offset line (v_width2.t) or when fading out\\\\n    // (v_width2.s)\\\\n    float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\\\\n    float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\\\\n\\\\n    gl_FragColor = color * (alpha * opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"\\\\n\\\\n// the distance over which the line edge fades out.\\\\n// Retina devices need a smaller distance to avoid aliasing.\\\\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\\\\n\\\\n// floor(127 / 2) == 63.0\\\\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\\\\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\\\\n// there are also \\\\\\\"special\\\\\\\" normals that have a bigger length (of up to 126 in\\\\n// this case).\\\\n// #define scale 63.0\\\\n#define scale 0.015873016\\\\n\\\\nattribute vec4 a_pos_normal;\\\\nattribute vec4 a_data;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mediump float u_ratio;\\\\nuniform vec2 u_gl_units_to_pixels;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying float v_gamma_scale;\\\\nvarying highp float v_linesofar;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define mediump float gapwidth\\\\n#pragma mapbox: define lowp float offset\\\\n#pragma mapbox: define mediump float width\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize mediump float gapwidth\\\\n    #pragma mapbox: initialize lowp float offset\\\\n    #pragma mapbox: initialize mediump float width\\\\n\\\\n    vec2 a_extrude = a_data.xy - 128.0;\\\\n    float a_direction = mod(a_data.z, 4.0) - 1.0;\\\\n\\\\n    v_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * 2.0;\\\\n\\\\n    vec2 pos = a_pos_normal.xy;\\\\n\\\\n    // x is 1 if it's a round cap, 0 otherwise\\\\n    // y is 1 if the normal points up, and -1 if it points down\\\\n    mediump vec2 normal = a_pos_normal.zw;\\\\n    v_normal = normal;\\\\n\\\\n    // these transformations used to be applied in the JS and native code bases.\\\\n    // moved them into the shader for clarity and simplicity.\\\\n    gapwidth = gapwidth / 2.0;\\\\n    float halfwidth = width / 2.0;\\\\n    offset = -1.0 * offset;\\\\n\\\\n    float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\\\\n    float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\\\\n\\\\n    // Scale the extrusion vector down to a normal and then up by the line width\\\\n    // of this vertex.\\\\n    mediump vec2 dist = outset * a_extrude * scale;\\\\n\\\\n    // Calculate the offset when drawing a line that is to the side of the actual line.\\\\n    // We do this by creating a vector that points towards the extrude, but rotate\\\\n    // it when we're drawing round end points (a_direction = -1 or 1) since their\\\\n    // extrude vector points in another direction.\\\\n    mediump float u = 0.5 * a_direction;\\\\n    mediump float t = 1.0 - abs(u);\\\\n    mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\\\\n\\\\n    vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\\\\n    gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\\\\n\\\\n    // calculate how much the perspective view squishes or stretches the extrude\\\\n    float extrude_length_without_perspective = length(dist);\\\\n    float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\\\\n    v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\\\\n\\\\n    v_width2 = vec2(outset, inset);\\\\n}\\\\n\\\"},lineGradient:{fragmentSource:\\\"\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_width2;\\\\nvarying vec2 v_normal;\\\\nvarying float v_gamma_scale;\\\\nvarying highp float v_lineprogress;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    // Calculate the distance of the pixel from the line in pixels.\\\\n    float dist = length(v_normal) * v_width2.s;\\\\n\\\\n    // Calculate the antialiasing fade factor. This is either when fading in\\\\n    // the line in case of an offset line (v_width2.t) or when fading out\\\\n    // (v_width2.s)\\\\n    float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\\\\n    float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\\\\n\\\\n    // For gradient lines, v_lineprogress is the ratio along the entire line,\\\\n    // scaled to [0, 2^15), and the gradient ramp is stored in a texture.\\\\n    vec4 color = texture2D(u_image, vec2(v_lineprogress, 0.5));\\\\n\\\\n    gl_FragColor = color * (alpha * opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"\\\\n// the attribute conveying progress along a line is scaled to [0, 2^15)\\\\n#define MAX_LINE_DISTANCE 32767.0\\\\n\\\\n// the distance over which the line edge fades out.\\\\n// Retina devices need a smaller distance to avoid aliasing.\\\\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\\\\n\\\\n// floor(127 / 2) == 63.0\\\\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\\\\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\\\\n// there are also \\\\\\\"special\\\\\\\" normals that have a bigger length (of up to 126 in\\\\n// this case).\\\\n// #define scale 63.0\\\\n#define scale 0.015873016\\\\n\\\\nattribute vec4 a_pos_normal;\\\\nattribute vec4 a_data;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mediump float u_ratio;\\\\nuniform vec2 u_gl_units_to_pixels;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying float v_gamma_scale;\\\\nvarying highp float v_lineprogress;\\\\n\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define mediump float gapwidth\\\\n#pragma mapbox: define lowp float offset\\\\n#pragma mapbox: define mediump float width\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize mediump float gapwidth\\\\n    #pragma mapbox: initialize lowp float offset\\\\n    #pragma mapbox: initialize mediump float width\\\\n\\\\n    vec2 a_extrude = a_data.xy - 128.0;\\\\n    float a_direction = mod(a_data.z, 4.0) - 1.0;\\\\n\\\\n    v_lineprogress = (floor(a_data.z / 4.0) + a_data.w * 64.0) * 2.0 / MAX_LINE_DISTANCE;\\\\n\\\\n    vec2 pos = a_pos_normal.xy;\\\\n\\\\n    // x is 1 if it's a round cap, 0 otherwise\\\\n    // y is 1 if the normal points up, and -1 if it points down\\\\n    mediump vec2 normal = a_pos_normal.zw;\\\\n    v_normal = normal;\\\\n\\\\n    // these transformations used to be applied in the JS and native code bases.\\\\n    // moved them into the shader for clarity and simplicity.\\\\n    gapwidth = gapwidth / 2.0;\\\\n    float halfwidth = width / 2.0;\\\\n    offset = -1.0 * offset;\\\\n\\\\n    float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\\\\n    float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\\\\n\\\\n    // Scale the extrusion vector down to a normal and then up by the line width\\\\n    // of this vertex.\\\\n    mediump vec2 dist = outset * a_extrude * scale;\\\\n\\\\n    // Calculate the offset when drawing a line that is to the side of the actual line.\\\\n    // We do this by creating a vector that points towards the extrude, but rotate\\\\n    // it when we're drawing round end points (a_direction = -1 or 1) since their\\\\n    // extrude vector points in another direction.\\\\n    mediump float u = 0.5 * a_direction;\\\\n    mediump float t = 1.0 - abs(u);\\\\n    mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\\\\n\\\\n    vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\\\\n    gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\\\\n\\\\n    // calculate how much the perspective view squishes or stretches the extrude\\\\n    float extrude_length_without_perspective = length(dist);\\\\n    float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\\\\n    v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\\\\n\\\\n    v_width2 = vec2(outset, inset);\\\\n}\\\\n\\\"},linePattern:{fragmentSource:\\\"uniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_fade;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying float v_linesofar;\\\\nvarying float v_gamma_scale;\\\\n\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    // Calculate the distance of the pixel from the line in pixels.\\\\n    float dist = length(v_normal) * v_width2.s;\\\\n\\\\n    // Calculate the antialiasing fade factor. This is either when fading in\\\\n    // the line in case of an offset line (v_width2.t) or when fading out\\\\n    // (v_width2.s)\\\\n    float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\\\\n    float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\\\\n\\\\n    float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\\\\n    float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\\\\n\\\\n    // v_normal.y is 0 at the midpoint of the line, -1 at the lower edge, 1 at the upper edge\\\\n    // we clamp the line width outset to be between 0 and half the pattern height plus padding (2.0)\\\\n    // to ensure we don't sample outside the designated symbol on the sprite sheet.\\\\n    // 0.5 is added to shift the component to be bounded between 0 and 1 for interpolation of\\\\n    // the texture coordinate\\\\n    float y_a = 0.5 + (v_normal.y * clamp(v_width2.s, 0.0, (u_pattern_size_a.y + 2.0) / 2.0) / u_pattern_size_a.y);\\\\n    float y_b = 0.5 + (v_normal.y * clamp(v_width2.s, 0.0, (u_pattern_size_b.y + 2.0) / 2.0) / u_pattern_size_b.y);\\\\n    vec2 pos_a = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, vec2(x_a, y_a));\\\\n    vec2 pos_b = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, vec2(x_b, y_b));\\\\n\\\\n    vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\\\\n\\\\n    gl_FragColor = color * alpha * opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"// floor(127 / 2) == 63.0\\\\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\\\\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\\\\n// there are also \\\\\\\"special\\\\\\\" normals that have a bigger length (of up to 126 in\\\\n// this case).\\\\n// #define scale 63.0\\\\n#define scale 0.015873016\\\\n\\\\n// We scale the distance before adding it to the buffers so that we can store\\\\n// long distances for long segments. Use this value to unscale the distance.\\\\n#define LINE_DISTANCE_SCALE 2.0\\\\n\\\\n// the distance over which the line edge fades out.\\\\n// Retina devices need a smaller distance to avoid aliasing.\\\\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\\\\n\\\\nattribute vec4 a_pos_normal;\\\\nattribute vec4 a_data;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mediump float u_ratio;\\\\nuniform vec2 u_gl_units_to_pixels;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying float v_linesofar;\\\\nvarying float v_gamma_scale;\\\\n\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define lowp float offset\\\\n#pragma mapbox: define mediump float gapwidth\\\\n#pragma mapbox: define mediump float width\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize lowp float offset\\\\n    #pragma mapbox: initialize mediump float gapwidth\\\\n    #pragma mapbox: initialize mediump float width\\\\n\\\\n    vec2 a_extrude = a_data.xy - 128.0;\\\\n    float a_direction = mod(a_data.z, 4.0) - 1.0;\\\\n    float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\\\\n\\\\n    vec2 pos = a_pos_normal.xy;\\\\n\\\\n    // x is 1 if it's a round cap, 0 otherwise\\\\n    // y is 1 if the normal points up, and -1 if it points down\\\\n    mediump vec2 normal = a_pos_normal.zw;\\\\n    v_normal = normal;\\\\n\\\\n    // these transformations used to be applied in the JS and native code bases.\\\\n    // moved them into the shader for clarity and simplicity.\\\\n    gapwidth = gapwidth / 2.0;\\\\n    float halfwidth = width / 2.0;\\\\n    offset = -1.0 * offset;\\\\n\\\\n    float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\\\\n    float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\\\\n\\\\n    // Scale the extrusion vector down to a normal and then up by the line width\\\\n    // of this vertex.\\\\n    mediump vec2 dist = outset * a_extrude * scale;\\\\n\\\\n    // Calculate the offset when drawing a line that is to the side of the actual line.\\\\n    // We do this by creating a vector that points towards the extrude, but rotate\\\\n    // it when we're drawing round end points (a_direction = -1 or 1) since their\\\\n    // extrude vector points in another direction.\\\\n    mediump float u = 0.5 * a_direction;\\\\n    mediump float t = 1.0 - abs(u);\\\\n    mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\\\\n\\\\n    vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\\\\n    gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\\\\n\\\\n    // calculate how much the perspective view squishes or stretches the extrude\\\\n    float extrude_length_without_perspective = length(dist);\\\\n    float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\\\\n    v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\\\\n\\\\n    v_linesofar = a_linesofar;\\\\n    v_width2 = vec2(outset, inset);\\\\n}\\\\n\\\"},lineSDF:{fragmentSource:\\\"\\\\nuniform sampler2D u_image;\\\\nuniform float u_sdfgamma;\\\\nuniform float u_mix;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying vec2 v_tex_a;\\\\nvarying vec2 v_tex_b;\\\\nvarying float v_gamma_scale;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define mediump float width\\\\n#pragma mapbox: define lowp float floorwidth\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize mediump float width\\\\n    #pragma mapbox: initialize lowp float floorwidth\\\\n\\\\n    // Calculate the distance of the pixel from the line in pixels.\\\\n    float dist = length(v_normal) * v_width2.s;\\\\n\\\\n    // Calculate the antialiasing fade factor. This is either when fading in\\\\n    // the line in case of an offset line (v_width2.t) or when fading out\\\\n    // (v_width2.s)\\\\n    float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\\\\n    float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\\\\n\\\\n    float sdfdist_a = texture2D(u_image, v_tex_a).a;\\\\n    float sdfdist_b = texture2D(u_image, v_tex_b).a;\\\\n    float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\\\\n    alpha *= smoothstep(0.5 - u_sdfgamma / floorwidth, 0.5 + u_sdfgamma / floorwidth, sdfdist);\\\\n\\\\n    gl_FragColor = color * (alpha * opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"// floor(127 / 2) == 63.0\\\\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\\\\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\\\\n// there are also \\\\\\\"special\\\\\\\" normals that have a bigger length (of up to 126 in\\\\n// this case).\\\\n// #define scale 63.0\\\\n#define scale 0.015873016\\\\n\\\\n// We scale the distance before adding it to the buffers so that we can store\\\\n// long distances for long segments. Use this value to unscale the distance.\\\\n#define LINE_DISTANCE_SCALE 2.0\\\\n\\\\n// the distance over which the line edge fades out.\\\\n// Retina devices need a smaller distance to avoid aliasing.\\\\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\\\\n\\\\nattribute vec4 a_pos_normal;\\\\nattribute vec4 a_data;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mediump float u_ratio;\\\\nuniform vec2 u_patternscale_a;\\\\nuniform float u_tex_y_a;\\\\nuniform vec2 u_patternscale_b;\\\\nuniform float u_tex_y_b;\\\\nuniform vec2 u_gl_units_to_pixels;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying vec2 v_tex_a;\\\\nvarying vec2 v_tex_b;\\\\nvarying float v_gamma_scale;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define mediump float gapwidth\\\\n#pragma mapbox: define lowp float offset\\\\n#pragma mapbox: define mediump float width\\\\n#pragma mapbox: define lowp float floorwidth\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize mediump float gapwidth\\\\n    #pragma mapbox: initialize lowp float offset\\\\n    #pragma mapbox: initialize mediump float width\\\\n    #pragma mapbox: initialize lowp float floorwidth\\\\n\\\\n    vec2 a_extrude = a_data.xy - 128.0;\\\\n    float a_direction = mod(a_data.z, 4.0) - 1.0;\\\\n    float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\\\\n\\\\n    vec2 pos = a_pos_normal.xy;\\\\n\\\\n    // x is 1 if it's a round cap, 0 otherwise\\\\n    // y is 1 if the normal points up, and -1 if it points down\\\\n    mediump vec2 normal = a_pos_normal.zw;\\\\n    v_normal = normal;\\\\n\\\\n    // these transformations used to be applied in the JS and native code bases.\\\\n    // moved them into the shader for clarity and simplicity.\\\\n    gapwidth = gapwidth / 2.0;\\\\n    float halfwidth = width / 2.0;\\\\n    offset = -1.0 * offset;\\\\n\\\\n    float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\\\\n    float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\\\\n\\\\n    // Scale the extrusion vector down to a normal and then up by the line width\\\\n    // of this vertex.\\\\n    mediump vec2 dist =outset * a_extrude * scale;\\\\n\\\\n    // Calculate the offset when drawing a line that is to the side of the actual line.\\\\n    // We do this by creating a vector that points towards the extrude, but rotate\\\\n    // it when we're drawing round end points (a_direction = -1 or 1) since their\\\\n    // extrude vector points in another direction.\\\\n    mediump float u = 0.5 * a_direction;\\\\n    mediump float t = 1.0 - abs(u);\\\\n    mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\\\\n\\\\n    vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\\\\n    gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\\\\n\\\\n    // calculate how much the perspective view squishes or stretches the extrude\\\\n    float extrude_length_without_perspective = length(dist);\\\\n    float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\\\\n    v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\\\\n\\\\n    v_tex_a = vec2(a_linesofar * u_patternscale_a.x / floorwidth, normal.y * u_patternscale_a.y + u_tex_y_a);\\\\n    v_tex_b = vec2(a_linesofar * u_patternscale_b.x / floorwidth, normal.y * u_patternscale_b.y + u_tex_y_b);\\\\n\\\\n    v_width2 = vec2(outset, inset);\\\\n}\\\\n\\\"},raster:{fragmentSource:\\\"uniform float u_fade_t;\\\\nuniform float u_opacity;\\\\nuniform sampler2D u_image0;\\\\nuniform sampler2D u_image1;\\\\nvarying vec2 v_pos0;\\\\nvarying vec2 v_pos1;\\\\n\\\\nuniform float u_brightness_low;\\\\nuniform float u_brightness_high;\\\\n\\\\nuniform float u_saturation_factor;\\\\nuniform float u_contrast_factor;\\\\nuniform vec3 u_spin_weights;\\\\n\\\\nvoid main() {\\\\n\\\\n    // read and cross-fade colors from the main and parent tiles\\\\n    vec4 color0 = texture2D(u_image0, v_pos0);\\\\n    vec4 color1 = texture2D(u_image1, v_pos1);\\\\n    if (color0.a > 0.0) {\\\\n        color0.rgb = color0.rgb / color0.a;\\\\n    }\\\\n    if (color1.a > 0.0) {\\\\n        color1.rgb = color1.rgb / color1.a;\\\\n    }\\\\n    vec4 color = mix(color0, color1, u_fade_t);\\\\n    color.a *= u_opacity;\\\\n    vec3 rgb = color.rgb;\\\\n\\\\n    // spin\\\\n    rgb = vec3(\\\\n        dot(rgb, u_spin_weights.xyz),\\\\n        dot(rgb, u_spin_weights.zxy),\\\\n        dot(rgb, u_spin_weights.yzx));\\\\n\\\\n    // saturation\\\\n    float average = (color.r + color.g + color.b) / 3.0;\\\\n    rgb += (average - rgb) * u_saturation_factor;\\\\n\\\\n    // contrast\\\\n    rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\\\\n\\\\n    // brightness\\\\n    vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\\\\n    vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\\\\n\\\\n    gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_tl_parent;\\\\nuniform float u_scale_parent;\\\\nuniform float u_buffer_scale;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec2 a_texture_pos;\\\\n\\\\nvarying vec2 v_pos0;\\\\nvarying vec2 v_pos1;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n    // We are using Int16 for texture position coordinates to give us enough precision for\\\\n    // fractional coordinates. We use 8192 to scale the texture coordinates in the buffer\\\\n    // as an arbitrarily high number to preserve adequate precision when rendering.\\\\n    // This is also the same value as the EXTENT we are using for our tile buffer pos coordinates,\\\\n    // so math for modifying either is consistent.\\\\n    v_pos0 = (((a_texture_pos / 8192.0) - 0.5) / u_buffer_scale ) + 0.5;\\\\n    v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\\\\n}\\\\n\\\"},symbolIcon:{fragmentSource:\\\"uniform sampler2D u_texture;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvarying vec2 v_tex;\\\\nvarying float v_fade_opacity;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    lowp float alpha = opacity * v_fade_opacity;\\\\n    gl_FragColor = texture2D(u_texture, v_tex) * alpha;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"const float PI = 3.141592653589793;\\\\n\\\\nattribute vec4 a_pos_offset;\\\\nattribute vec4 a_data;\\\\nattribute vec3 a_projected_pos;\\\\nattribute float a_fade_opacity;\\\\n\\\\nuniform bool u_is_size_zoom_constant;\\\\nuniform bool u_is_size_feature_constant;\\\\nuniform highp float u_size_t; // used to interpolate between zoom stops when size is a composite function\\\\nuniform highp float u_size; // used when size is both zoom and feature constant\\\\nuniform highp float u_camera_to_center_distance;\\\\nuniform highp float u_pitch;\\\\nuniform bool u_rotate_symbol;\\\\nuniform highp float u_aspect_ratio;\\\\nuniform float u_fade_change;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mat4 u_label_plane_matrix;\\\\nuniform mat4 u_gl_coord_matrix;\\\\n\\\\nuniform bool u_is_text;\\\\nuniform bool u_pitch_with_map;\\\\n\\\\nuniform vec2 u_texsize;\\\\n\\\\nvarying vec2 v_tex;\\\\nvarying float v_fade_opacity;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    vec2 a_pos = a_pos_offset.xy;\\\\n    vec2 a_offset = a_pos_offset.zw;\\\\n\\\\n    vec2 a_tex = a_data.xy;\\\\n    vec2 a_size = a_data.zw;\\\\n\\\\n    highp float segment_angle = -a_projected_pos[2];\\\\n\\\\n    float size;\\\\n    if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\\\\n        size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\\\\n    } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\\\\n        size = a_size[0] / 10.0;\\\\n    } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\\\\n        size = u_size;\\\\n    } else {\\\\n        size = u_size;\\\\n    }\\\\n\\\\n    vec4 projectedPoint = u_matrix * vec4(a_pos, 0, 1);\\\\n    highp float camera_to_anchor_distance = projectedPoint.w;\\\\n    // See comments in symbol_sdf.vertex\\\\n    highp float distance_ratio = u_pitch_with_map ?\\\\n        camera_to_anchor_distance / u_camera_to_center_distance :\\\\n        u_camera_to_center_distance / camera_to_anchor_distance;\\\\n    highp float perspective_ratio = clamp(\\\\n            0.5 + 0.5 * distance_ratio,\\\\n            0.0, // Prevents oversized near-field symbols in pitched/overzoomed tiles\\\\n            4.0);\\\\n\\\\n    size *= perspective_ratio;\\\\n\\\\n    float fontScale = u_is_text ? size / 24.0 : size;\\\\n\\\\n    highp float symbol_rotation = 0.0;\\\\n    if (u_rotate_symbol) {\\\\n        // See comments in symbol_sdf.vertex\\\\n        vec4 offsetProjectedPoint = u_matrix * vec4(a_pos + vec2(1, 0), 0, 1);\\\\n\\\\n        vec2 a = projectedPoint.xy / projectedPoint.w;\\\\n        vec2 b = offsetProjectedPoint.xy / offsetProjectedPoint.w;\\\\n\\\\n        symbol_rotation = atan((b.y - a.y) / u_aspect_ratio, b.x - a.x);\\\\n    }\\\\n\\\\n    highp float angle_sin = sin(segment_angle + symbol_rotation);\\\\n    highp float angle_cos = cos(segment_angle + symbol_rotation);\\\\n    mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\\\\n\\\\n    vec4 projected_pos = u_label_plane_matrix * vec4(a_projected_pos.xy, 0.0, 1.0);\\\\n    gl_Position = u_gl_coord_matrix * vec4(projected_pos.xy / projected_pos.w + rotation_matrix * (a_offset / 32.0 * fontScale), 0.0, 1.0);\\\\n\\\\n    v_tex = a_tex / u_texsize;\\\\n    vec2 fade_opacity = unpack_opacity(a_fade_opacity);\\\\n    float fade_change = fade_opacity[1] > 0.5 ? u_fade_change : -u_fade_change;\\\\n    v_fade_opacity = max(0.0, min(1.0, fade_opacity[0] + fade_change));\\\\n}\\\\n\\\"},symbolSDF:{fragmentSource:\\\"#define SDF_PX 8.0\\\\n#define EDGE_GAMMA 0.105/DEVICE_PIXEL_RATIO\\\\n\\\\nuniform bool u_is_halo;\\\\n#pragma mapbox: define highp vec4 fill_color\\\\n#pragma mapbox: define highp vec4 halo_color\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define lowp float halo_width\\\\n#pragma mapbox: define lowp float halo_blur\\\\n\\\\nuniform sampler2D u_texture;\\\\nuniform highp float u_gamma_scale;\\\\nuniform bool u_is_text;\\\\n\\\\nvarying vec2 v_data0;\\\\nvarying vec3 v_data1;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 fill_color\\\\n    #pragma mapbox: initialize highp vec4 halo_color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize lowp float halo_width\\\\n    #pragma mapbox: initialize lowp float halo_blur\\\\n\\\\n    vec2 tex = v_data0.xy;\\\\n    float gamma_scale = v_data1.x;\\\\n    float size = v_data1.y;\\\\n    float fade_opacity = v_data1[2];\\\\n\\\\n    float fontScale = u_is_text ? size / 24.0 : size;\\\\n\\\\n    lowp vec4 color = fill_color;\\\\n    highp float gamma = EDGE_GAMMA / (fontScale * u_gamma_scale);\\\\n    lowp float buff = (256.0 - 64.0) / 256.0;\\\\n    if (u_is_halo) {\\\\n        color = halo_color;\\\\n        gamma = (halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (fontScale * u_gamma_scale);\\\\n        buff = (6.0 - halo_width / fontScale) / SDF_PX;\\\\n    }\\\\n\\\\n    lowp float dist = texture2D(u_texture, tex).a;\\\\n    highp float gamma_scaled = gamma * gamma_scale;\\\\n    highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist);\\\\n\\\\n    gl_FragColor = color * (alpha * opacity * fade_opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"const float PI = 3.141592653589793;\\\\n\\\\nattribute vec4 a_pos_offset;\\\\nattribute vec4 a_data;\\\\nattribute vec3 a_projected_pos;\\\\nattribute float a_fade_opacity;\\\\n\\\\n// contents of a_size vary based on the type of property value\\\\n// used for {text,icon}-size.\\\\n// For constants, a_size is disabled.\\\\n// For source functions, we bind only one value per vertex: the value of {text,icon}-size evaluated for the current feature.\\\\n// For composite functions:\\\\n// [ text-size(lowerZoomStop, feature),\\\\n//   text-size(upperZoomStop, feature) ]\\\\nuniform bool u_is_size_zoom_constant;\\\\nuniform bool u_is_size_feature_constant;\\\\nuniform highp float u_size_t; // used to interpolate between zoom stops when size is a composite function\\\\nuniform highp float u_size; // used when size is both zoom and feature constant\\\\n\\\\n#pragma mapbox: define highp vec4 fill_color\\\\n#pragma mapbox: define highp vec4 halo_color\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define lowp float halo_width\\\\n#pragma mapbox: define lowp float halo_blur\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mat4 u_label_plane_matrix;\\\\nuniform mat4 u_gl_coord_matrix;\\\\n\\\\nuniform bool u_is_text;\\\\nuniform bool u_pitch_with_map;\\\\nuniform highp float u_pitch;\\\\nuniform bool u_rotate_symbol;\\\\nuniform highp float u_aspect_ratio;\\\\nuniform highp float u_camera_to_center_distance;\\\\nuniform float u_fade_change;\\\\n\\\\nuniform vec2 u_texsize;\\\\n\\\\nvarying vec2 v_data0;\\\\nvarying vec3 v_data1;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 fill_color\\\\n    #pragma mapbox: initialize highp vec4 halo_color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize lowp float halo_width\\\\n    #pragma mapbox: initialize lowp float halo_blur\\\\n\\\\n    vec2 a_pos = a_pos_offset.xy;\\\\n    vec2 a_offset = a_pos_offset.zw;\\\\n\\\\n    vec2 a_tex = a_data.xy;\\\\n    vec2 a_size = a_data.zw;\\\\n\\\\n    highp float segment_angle = -a_projected_pos[2];\\\\n    float size;\\\\n\\\\n    if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\\\\n        size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\\\\n    } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\\\\n        size = a_size[0] / 10.0;\\\\n    } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\\\\n        size = u_size;\\\\n    } else {\\\\n        size = u_size;\\\\n    }\\\\n\\\\n    vec4 projectedPoint = u_matrix * vec4(a_pos, 0, 1);\\\\n    highp float camera_to_anchor_distance = projectedPoint.w;\\\\n    // If the label is pitched with the map, layout is done in pitched space,\\\\n    // which makes labels in the distance smaller relative to viewport space.\\\\n    // We counteract part of that effect by multiplying by the perspective ratio.\\\\n    // If the label isn't pitched with the map, we do layout in viewport space,\\\\n    // which makes labels in the distance larger relative to the features around\\\\n    // them. We counteract part of that effect by dividing by the perspective ratio.\\\\n    highp float distance_ratio = u_pitch_with_map ?\\\\n        camera_to_anchor_distance / u_camera_to_center_distance :\\\\n        u_camera_to_center_distance / camera_to_anchor_distance;\\\\n    highp float perspective_ratio = clamp(\\\\n        0.5 + 0.5 * distance_ratio,\\\\n        0.0, // Prevents oversized near-field symbols in pitched/overzoomed tiles\\\\n        4.0);\\\\n\\\\n    size *= perspective_ratio;\\\\n\\\\n    float fontScale = u_is_text ? size / 24.0 : size;\\\\n\\\\n    highp float symbol_rotation = 0.0;\\\\n    if (u_rotate_symbol) {\\\\n        // Point labels with 'rotation-alignment: map' are horizontal with respect to tile units\\\\n        // To figure out that angle in projected space, we draw a short horizontal line in tile\\\\n        // space, project it, and measure its angle in projected space.\\\\n        vec4 offsetProjectedPoint = u_matrix * vec4(a_pos + vec2(1, 0), 0, 1);\\\\n\\\\n        vec2 a = projectedPoint.xy / projectedPoint.w;\\\\n        vec2 b = offsetProjectedPoint.xy / offsetProjectedPoint.w;\\\\n\\\\n        symbol_rotation = atan((b.y - a.y) / u_aspect_ratio, b.x - a.x);\\\\n    }\\\\n\\\\n    highp float angle_sin = sin(segment_angle + symbol_rotation);\\\\n    highp float angle_cos = cos(segment_angle + symbol_rotation);\\\\n    mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\\\\n\\\\n    vec4 projected_pos = u_label_plane_matrix * vec4(a_projected_pos.xy, 0.0, 1.0);\\\\n    gl_Position = u_gl_coord_matrix * vec4(projected_pos.xy / projected_pos.w + rotation_matrix * (a_offset / 32.0 * fontScale), 0.0, 1.0);\\\\n    float gamma_scale = gl_Position.w;\\\\n\\\\n    vec2 tex = a_tex / u_texsize;\\\\n    vec2 fade_opacity = unpack_opacity(a_fade_opacity);\\\\n    float fade_change = fade_opacity[1] > 0.5 ? u_fade_change : -u_fade_change;\\\\n    float interpolated_fade_opacity = max(0.0, min(1.0, fade_opacity[0] + fade_change));\\\\n\\\\n    v_data0 = vec2(tex.x, tex.y);\\\\n    v_data1 = vec3(gamma_scale, size, interpolated_fade_opacity);\\\\n}\\\\n\\\"}},tr=/#pragma mapbox: ([\\\\w]+) ([\\\\w]+) ([\\\\w]+) ([\\\\w]+)/g,er=function(t){var e=Qe[t],r={};e.fragmentSource=e.fragmentSource.replace(tr,function(t,e,n,i,a){return r[a]=!0,\\\"define\\\"===e?\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\nvarying \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\";\\\\n#else\\\\nuniform \\\"+n+\\\" \\\"+i+\\\" u_\\\"+a+\\\";\\\\n#endif\\\\n\\\":\\\"\\\\n#ifdef HAS_UNIFORM_u_\\\"+a+\\\"\\\\n    \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\" = u_\\\"+a+\\\";\\\\n#endif\\\\n\\\"}),e.vertexSource=e.vertexSource.replace(tr,function(t,e,n,i,a){var o=\\\"float\\\"===i?\\\"vec2\\\":\\\"vec4\\\";return r[a]?\\\"define\\\"===e?\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\nuniform lowp float a_\\\"+a+\\\"_t;\\\\nattribute \\\"+n+\\\" \\\"+o+\\\" a_\\\"+a+\\\";\\\\nvarying \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\";\\\\n#else\\\\nuniform \\\"+n+\\\" \\\"+i+\\\" u_\\\"+a+\\\";\\\\n#endif\\\\n\\\":\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\n    \\\"+a+\\\" = unpack_mix_\\\"+o+\\\"(a_\\\"+a+\\\", a_\\\"+a+\\\"_t);\\\\n#else\\\\n    \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\" = u_\\\"+a+\\\";\\\\n#endif\\\\n\\\":\\\"define\\\"===e?\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\nuniform lowp float a_\\\"+a+\\\"_t;\\\\nattribute \\\"+n+\\\" \\\"+o+\\\" a_\\\"+a+\\\";\\\\n#else\\\\nuniform \\\"+n+\\\" \\\"+i+\\\" u_\\\"+a+\\\";\\\\n#endif\\\\n\\\":\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\n    \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\" = unpack_mix_\\\"+o+\\\"(a_\\\"+a+\\\", a_\\\"+a+\\\"_t);\\\\n#else\\\\n    \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\" = u_\\\"+a+\\\";\\\\n#endif\\\\n\\\"})};for(var rr in Qe)er(rr);var nr=Qe,ir=function(t,e,r,n){var i=t.gl;this.program=i.createProgram();var o=r.defines().concat(\\\"#define DEVICE_PIXEL_RATIO \\\"+a.devicePixelRatio.toFixed(1));n&&o.push(\\\"#define OVERDRAW_INSPECTOR;\\\");var s=o.concat(nr.prelude.fragmentSource,e.fragmentSource).join(\\\"\\\\n\\\"),l=o.concat(nr.prelude.vertexSource,e.vertexSource).join(\\\"\\\\n\\\"),c=i.createShader(i.FRAGMENT_SHADER);i.shaderSource(c,s),i.compileShader(c),i.attachShader(this.program,c);var u=i.createShader(i.VERTEX_SHADER);i.shaderSource(u,l),i.compileShader(u),i.attachShader(this.program,u);for(var f=r.layoutAttributes||[],h=0;h<f.length;h++)i.bindAttribLocation(this.program,h,f[h].name);i.linkProgram(this.program),this.numAttributes=i.getProgramParameter(this.program,i.ACTIVE_ATTRIBUTES),this.attributes={},this.uniforms={};for(var p=0;p<this.numAttributes;p++){var d=i.getActiveAttrib(this.program,p);d&&(this.attributes[d.name]=i.getAttribLocation(this.program,d.name))}for(var g=i.getProgramParameter(this.program,i.ACTIVE_UNIFORMS),v=0;v<g;v++){var m=i.getActiveUniform(this.program,v);m&&(this.uniforms[m.name]=i.getUniformLocation(this.program,m.name))}};function ar(e,r,n,i,a){for(var o=0;o<n.length;o++){var s=n[o];if(i.isLessThan(s.tileID))break;if(r.key===s.tileID.key)return;if(s.tileID.isChildOf(r)){for(var l=r.children(1/0),c=0;c<l.length;c++)ar(e,l[c],n.slice(o),i,a);return}}var u=r.overscaledZ-e.overscaledZ,f=new t.CanonicalTileID(u,r.canonical.x-(e.canonical.x<<u),r.canonical.y-(e.canonical.y<<u));a[f.key]=a[f.key]||f}function or(t,e,r,n,i){var a=t.context,o=a.gl,s=i?t.useProgram(\\\"collisionCircle\\\"):t.useProgram(\\\"collisionBox\\\");a.setDepthMode(qt.disabled),a.setStencilMode(Ht.disabled),a.setColorMode(t.colorModeForRenderPass());for(var l=0;l<n.length;l++){var c=n[l],u=e.getTile(c),f=u.getBucket(r);if(f){var h=i?f.collisionCircle:f.collisionBox;if(h){o.uniformMatrix4fv(s.uniforms.u_matrix,!1,c.posMatrix),i||a.lineWidth.set(1),o.uniform1f(s.uniforms.u_camera_to_center_distance,t.transform.cameraToCenterDistance);var p=Te(u,1,t.transform.zoom),d=Math.pow(2,t.transform.zoom-u.tileID.overscaledZ);o.uniform1f(s.uniforms.u_pixels_to_tile_units,p),o.uniform2f(s.uniforms.u_extrude_scale,t.transform.pixelsToGLUnits[0]/(p*d),t.transform.pixelsToGLUnits[1]/(p*d)),o.uniform1f(s.uniforms.u_overscale_factor,u.tileID.overscaleFactor()),s.draw(a,i?o.TRIANGLES:o.LINES,r.id,h.layoutVertexBuffer,h.indexBuffer,h.segments,null,h.collisionVertexBuffer,null)}}}}ir.prototype.draw=function(t,e,r,n,i,a,o,s,l){for(var c,u=t.gl,f=(c={},c[u.LINES]=2,c[u.TRIANGLES]=3,c)[e],h=0,p=a.get();h<p.length;h+=1){var d=p[h],g=d.vaos||(d.vaos={});(g[r]||(g[r]=new Q)).bind(t,this,n,o?o.getPaintVertexBuffers():[],i,d.vertexOffset,s,l),u.drawElements(e,d.primitiveLength*f,u.UNSIGNED_SHORT,d.primitiveOffset*f*2)}};var sr=t.mat4.identity(new Float32Array(16)),lr=t.default$19.layout;function cr(t,e,r,n,i,a,o,s,l,c){var u,f=t.context,h=f.gl,p=t.transform,d=\\\"map\\\"===s,g=\\\"map\\\"===l,v=d&&\\\"line\\\"===r.layout.get(\\\"symbol-placement\\\"),m=d&&!g&&!v,y=g;f.setDepthMode(y?t.depthModeForSublayer(0,qt.ReadOnly):qt.disabled);for(var x=0,b=n;x<b.length;x+=1){var _=b[x],w=e.getTile(_),k=w.getBucket(r);if(k){var M=i?k.text:k.icon;if(M&&M.segments.get().length){var A=M.programConfigurations.get(r.id),T=i||k.sdfIcons,S=i?k.textSizeData:k.iconSizeData;if(u||(u=t.useProgram(T?\\\"symbolSDF\\\":\\\"symbolIcon\\\",A),A.setUniforms(t.context,u,r.paint,{zoom:t.transform.zoom}),ur(u,t,r,i,m,g,S)),f.activeTexture.set(h.TEXTURE0),h.uniform1i(u.uniforms.u_texture,0),i)w.glyphAtlasTexture.bind(h.LINEAR,h.CLAMP_TO_EDGE),h.uniform2fv(u.uniforms.u_texsize,w.glyphAtlasTexture.size);else{var E=1!==r.layout.get(\\\"icon-size\\\").constantOr(0)||k.iconsNeedLinear,C=g||0!==p.pitch;w.iconAtlasTexture.bind(T||t.options.rotating||t.options.zooming||E||C?h.LINEAR:h.NEAREST,h.CLAMP_TO_EDGE),h.uniform2fv(u.uniforms.u_texsize,w.iconAtlasTexture.size)}h.uniformMatrix4fv(u.uniforms.u_matrix,!1,t.translatePosMatrix(_.posMatrix,w,a,o));var L=Te(w,1,t.transform.zoom),z=fe(_.posMatrix,g,d,t.transform,L),O=he(_.posMatrix,g,d,t.transform,L);h.uniformMatrix4fv(u.uniforms.u_gl_coord_matrix,!1,t.translatePosMatrix(O,w,a,o,!0)),v?(h.uniformMatrix4fv(u.uniforms.u_label_plane_matrix,!1,sr),ge(k,_.posMatrix,t,i,z,O,g,c)):h.uniformMatrix4fv(u.uniforms.u_label_plane_matrix,!1,z),h.uniform1f(u.uniforms.u_fade_change,t.options.fadeDuration?t.symbolFadeChange:1),fr(u,A,t,r,w,M,i,T,g)}}}}function ur(e,r,n,i,a,o,s){var l=r.context.gl,c=r.transform;l.uniform1i(e.uniforms.u_pitch_with_map,o?1:0),l.uniform1f(e.uniforms.u_is_text,i?1:0),l.uniform1f(e.uniforms.u_pitch,c.pitch/360*2*Math.PI);var u=\\\"constant\\\"===s.functionType||\\\"source\\\"===s.functionType,f=\\\"constant\\\"===s.functionType||\\\"camera\\\"===s.functionType;l.uniform1i(e.uniforms.u_is_size_zoom_constant,u?1:0),l.uniform1i(e.uniforms.u_is_size_feature_constant,f?1:0),l.uniform1f(e.uniforms.u_camera_to_center_distance,c.cameraToCenterDistance);var h=t.evaluateSizeForZoom(s,c.zoom,lr.properties[i?\\\"text-size\\\":\\\"icon-size\\\"]);void 0!==h.uSizeT&&l.uniform1f(e.uniforms.u_size_t,h.uSizeT),void 0!==h.uSize&&l.uniform1f(e.uniforms.u_size,h.uSize),l.uniform1f(e.uniforms.u_aspect_ratio,c.width/c.height),l.uniform1i(e.uniforms.u_rotate_symbol,a?1:0)}function fr(t,e,r,n,i,a,o,s,l){var c=r.context,u=c.gl,f=r.transform;if(s){var h=0!==n.paint.get(o?\\\"text-halo-width\\\":\\\"icon-halo-width\\\").constantOr(1),p=l?Math.cos(f._pitch)*f.cameraToCenterDistance:1;u.uniform1f(t.uniforms.u_gamma_scale,p),h&&(u.uniform1f(t.uniforms.u_is_halo,1),hr(a,n,c,t)),u.uniform1f(t.uniforms.u_is_halo,0)}hr(a,n,c,t)}function hr(t,e,r,n){n.draw(r,r.gl.TRIANGLES,e.id,t.layoutVertexBuffer,t.indexBuffer,t.segments,t.programConfigurations.get(e.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer)}function pr(t,e,r,n,i,o,s,l,c){var u,f,h,p,d=e.context,g=d.gl,v=i.paint.get(\\\"line-dasharray\\\"),m=i.paint.get(\\\"line-pattern\\\");if(l||c){var y=1/Te(r,1,e.transform.tileZoom);if(v){u=e.lineAtlas.getDash(v.from,\\\"round\\\"===i.layout.get(\\\"line-cap\\\")),f=e.lineAtlas.getDash(v.to,\\\"round\\\"===i.layout.get(\\\"line-cap\\\"));var x=u.width*v.fromScale,b=f.width*v.toScale;g.uniform2f(t.uniforms.u_patternscale_a,y/x,-u.height/2),g.uniform2f(t.uniforms.u_patternscale_b,y/b,-f.height/2),g.uniform1f(t.uniforms.u_sdfgamma,e.lineAtlas.width/(256*Math.min(x,b)*a.devicePixelRatio)/2)}else if(m){if(h=e.imageManager.getPattern(m.from),p=e.imageManager.getPattern(m.to),!h||!p)return;g.uniform2f(t.uniforms.u_pattern_size_a,h.displaySize[0]*m.fromScale/y,h.displaySize[1]),g.uniform2f(t.uniforms.u_pattern_size_b,p.displaySize[0]*m.toScale/y,p.displaySize[1]);var _=e.imageManager.getPixelSize(),w=_.width,k=_.height;g.uniform2fv(t.uniforms.u_texsize,[w,k])}g.uniform2f(t.uniforms.u_gl_units_to_pixels,1/e.transform.pixelsToGLUnits[0],1/e.transform.pixelsToGLUnits[1])}l&&(v?(g.uniform1i(t.uniforms.u_image,0),d.activeTexture.set(g.TEXTURE0),e.lineAtlas.bind(d),g.uniform1f(t.uniforms.u_tex_y_a,u.y),g.uniform1f(t.uniforms.u_tex_y_b,f.y),g.uniform1f(t.uniforms.u_mix,v.t)):m&&(g.uniform1i(t.uniforms.u_image,0),d.activeTexture.set(g.TEXTURE0),e.imageManager.bind(d),g.uniform2fv(t.uniforms.u_pattern_tl_a,h.tl),g.uniform2fv(t.uniforms.u_pattern_br_a,h.br),g.uniform2fv(t.uniforms.u_pattern_tl_b,p.tl),g.uniform2fv(t.uniforms.u_pattern_br_b,p.br),g.uniform1f(t.uniforms.u_fade,m.t))),d.setStencilMode(e.stencilModeForClipping(o));var M=e.translatePosMatrix(o.posMatrix,r,i.paint.get(\\\"line-translate\\\"),i.paint.get(\\\"line-translate-anchor\\\"));if(g.uniformMatrix4fv(t.uniforms.u_matrix,!1,M),g.uniform1f(t.uniforms.u_ratio,1/Te(r,1,e.transform.zoom)),i.paint.get(\\\"line-gradient\\\")){d.activeTexture.set(g.TEXTURE0);var A=i.gradientTexture;if(!i.gradient)return;A||(A=i.gradientTexture=new z(d,i.gradient,g.RGBA)),A.bind(g.LINEAR,g.CLAMP_TO_EDGE),g.uniform1i(t.uniforms.u_image,0)}t.draw(d,g.TRIANGLES,i.id,n.layoutVertexBuffer,n.indexBuffer,n.segments,s)}var dr=function(t,e){if(!t)return!1;var r=e.imageManager.getPattern(t.from),n=e.imageManager.getPattern(t.to);return!r||!n},gr=function(t,e,r){var n=e.context,i=n.gl,a=e.imageManager.getPattern(t.from),o=e.imageManager.getPattern(t.to);i.uniform1i(r.uniforms.u_image,0),i.uniform2fv(r.uniforms.u_pattern_tl_a,a.tl),i.uniform2fv(r.uniforms.u_pattern_br_a,a.br),i.uniform2fv(r.uniforms.u_pattern_tl_b,o.tl),i.uniform2fv(r.uniforms.u_pattern_br_b,o.br);var s=e.imageManager.getPixelSize(),l=s.width,c=s.height;i.uniform2fv(r.uniforms.u_texsize,[l,c]),i.uniform1f(r.uniforms.u_mix,t.t),i.uniform2fv(r.uniforms.u_pattern_size_a,a.displaySize),i.uniform2fv(r.uniforms.u_pattern_size_b,o.displaySize),i.uniform1f(r.uniforms.u_scale_a,t.fromScale),i.uniform1f(r.uniforms.u_scale_b,t.toScale),n.activeTexture.set(i.TEXTURE0),e.imageManager.bind(e.context)},vr=function(t,e,r){var n=e.context.gl;n.uniform1f(r.uniforms.u_tile_units_to_pixels,1/Te(t,1,e.transform.tileZoom));var i=Math.pow(2,t.tileID.overscaledZ),a=t.tileSize*Math.pow(2,e.transform.tileZoom)/i,o=a*(t.tileID.canonical.x+t.tileID.wrap*i),s=a*t.tileID.canonical.y;n.uniform2f(r.uniforms.u_pixel_coord_upper,o>>16,s>>16),n.uniform2f(r.uniforms.u_pixel_coord_lower,65535&o,65535&s)};function mr(t,e,r,n,i){if(!dr(r.paint.get(\\\"fill-pattern\\\"),t))for(var a=!0,o=0,s=n;o<s.length;o+=1){var l=s[o],c=e.getTile(l),u=c.getBucket(r);u&&(t.context.setStencilMode(t.stencilModeForClipping(l)),i(t,e,r,c,l,u,a),a=!1)}}function yr(t,e,r,n,i,a,o){var s=t.context.gl,l=a.programConfigurations.get(r.id);br(\\\"fill\\\",r.paint.get(\\\"fill-pattern\\\"),t,l,r,n,i,o).draw(t.context,s.TRIANGLES,r.id,a.layoutVertexBuffer,a.indexBuffer,a.segments,l)}function xr(t,e,r,n,i,a,o){var s=t.context.gl,l=a.programConfigurations.get(r.id),c=br(\\\"fillOutline\\\",r.getPaintProperty(\\\"fill-outline-color\\\")?null:r.paint.get(\\\"fill-pattern\\\"),t,l,r,n,i,o);s.uniform2f(c.uniforms.u_world,s.drawingBufferWidth,s.drawingBufferHeight),c.draw(t.context,s.LINES,r.id,a.layoutVertexBuffer,a.indexBuffer2,a.segments2,l)}function br(t,e,r,n,i,a,o,s){var l,c=r.context.program.get();return e?(l=r.useProgram(t+\\\"Pattern\\\",n),(s||l.program!==c)&&(n.setUniforms(r.context,l,i.paint,{zoom:r.transform.zoom}),gr(e,r,l)),vr(a,r,l)):(l=r.useProgram(t,n),(s||l.program!==c)&&n.setUniforms(r.context,l,i.paint,{zoom:r.transform.zoom})),r.context.gl.uniformMatrix4fv(l.uniforms.u_matrix,!1,r.translatePosMatrix(o.posMatrix,a,i.paint.get(\\\"fill-translate\\\"),i.paint.get(\\\"fill-translate-anchor\\\"))),l}var _r=t.default$20.mat3,wr=t.default$20.mat4,kr=t.default$20.vec3;function Mr(t,e,r,n,i,a,o){var s=t.context,l=s.gl,c=r.paint.get(\\\"fill-extrusion-pattern\\\"),u=t.context.program.get(),f=a.programConfigurations.get(r.id),h=t.useProgram(c?\\\"fillExtrusionPattern\\\":\\\"fillExtrusion\\\",f);if((o||h.program!==u)&&f.setUniforms(s,h,r.paint,{zoom:t.transform.zoom}),c){if(dr(c,t))return;gr(c,t,h),vr(n,t,h),l.uniform1f(h.uniforms.u_height_factor,-Math.pow(2,i.overscaledZ)/n.tileSize/8)}t.context.gl.uniformMatrix4fv(h.uniforms.u_matrix,!1,t.translatePosMatrix(i.posMatrix,n,r.paint.get(\\\"fill-extrusion-translate\\\"),r.paint.get(\\\"fill-extrusion-translate-anchor\\\"))),function(t,e){var r=e.context.gl,n=e.style.light,i=n.properties.get(\\\"position\\\"),a=[i.x,i.y,i.z],o=_r.create();\\\"viewport\\\"===n.properties.get(\\\"anchor\\\")&&_r.fromRotation(o,-e.transform.angle),kr.transformMat3(a,a,o);var s=n.properties.get(\\\"color\\\");r.uniform3fv(t.uniforms.u_lightpos,a),r.uniform1f(t.uniforms.u_lightintensity,n.properties.get(\\\"intensity\\\")),r.uniform3f(t.uniforms.u_lightcolor,s.r,s.g,s.b)}(h,t),h.draw(s,l.TRIANGLES,r.id,a.layoutVertexBuffer,a.indexBuffer,a.segments,f)}function Ar(e,r,n){var i=e.context,a=i.gl,o=r.fbo;if(o){var s=e.useProgram(\\\"hillshade\\\"),l=e.transform.calculatePosMatrix(r.tileID.toUnwrapped(),!0);!function(t,e,r){var n=r.paint.get(\\\"hillshade-illumination-direction\\\")*(Math.PI/180);\\\"viewport\\\"===r.paint.get(\\\"hillshade-illumination-anchor\\\")&&(n-=e.transform.angle),e.context.gl.uniform2f(t.uniforms.u_light,r.paint.get(\\\"hillshade-exaggeration\\\"),n)}(s,e,n);var c=function(e,r){var n=r.toCoordinate(),i=new t.default$17(n.column,n.row+1,n.zoom);return[e.transform.coordinateLocation(n).lat,e.transform.coordinateLocation(i).lat]}(e,r.tileID);i.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,o.colorAttachment.get()),a.uniformMatrix4fv(s.uniforms.u_matrix,!1,l),a.uniform2fv(s.uniforms.u_latrange,c),a.uniform1i(s.uniforms.u_image,0);var u=n.paint.get(\\\"hillshade-shadow-color\\\");a.uniform4f(s.uniforms.u_shadow,u.r,u.g,u.b,u.a);var f=n.paint.get(\\\"hillshade-highlight-color\\\");a.uniform4f(s.uniforms.u_highlight,f.r,f.g,f.b,f.a);var h=n.paint.get(\\\"hillshade-accent-color\\\");if(a.uniform4f(s.uniforms.u_accent,h.r,h.g,h.b,h.a),r.maskedBoundsBuffer&&r.maskedIndexBuffer&&r.segments)s.draw(i,a.TRIANGLES,n.id,r.maskedBoundsBuffer,r.maskedIndexBuffer,r.segments);else{var p=e.rasterBoundsBuffer;e.rasterBoundsVAO.bind(i,s,p,[]),a.drawArrays(a.TRIANGLE_STRIP,0,p.length)}}}function Tr(e,r,n){var i=e.context,a=i.gl;if(r.dem&&r.dem.level){var o=r.dem.level.dim,s=r.dem.getPixels();if(i.activeTexture.set(a.TEXTURE1),i.pixelStoreUnpackPremultiplyAlpha.set(!1),r.demTexture=r.demTexture||e.getTileTexture(r.tileSize),r.demTexture){var l=r.demTexture;l.update(s,{premultiply:!1}),l.bind(a.NEAREST,a.CLAMP_TO_EDGE)}else r.demTexture=new z(i,s,a.RGBA,{premultiply:!1}),r.demTexture.bind(a.NEAREST,a.CLAMP_TO_EDGE);i.activeTexture.set(a.TEXTURE0);var c=r.fbo;if(!c){var u=new z(i,{width:o,height:o,data:null},a.RGBA);u.bind(a.LINEAR,a.CLAMP_TO_EDGE),(c=r.fbo=i.createFramebuffer(o,o)).colorAttachment.set(u.texture)}i.bindFramebuffer.set(c.framebuffer),i.viewport.set([0,0,o,o]);var f=t.mat4.create();t.mat4.ortho(f,0,t.default$8,-t.default$8,0,0,1),t.mat4.translate(f,f,[0,-t.default$8,0]);var h=e.useProgram(\\\"hillshadePrepare\\\");a.uniformMatrix4fv(h.uniforms.u_matrix,!1,f),a.uniform1f(h.uniforms.u_zoom,r.tileID.overscaledZ),a.uniform2fv(h.uniforms.u_dimension,[2*o,2*o]),a.uniform1i(h.uniforms.u_image,1),a.uniform1f(h.uniforms.u_maxzoom,n);var p=e.rasterBoundsBuffer;e.rasterBoundsVAO.bind(i,h,p,[]),a.drawArrays(a.TRIANGLE_STRIP,0,p.length),r.needsHillshadePrepare=!1}}function Sr(e,r,n,i,o){var s=i.paint.get(\\\"raster-fade-duration\\\");if(s>0){var l=a.now(),c=(l-e.timeAdded)/s,u=r?(l-r.timeAdded)/s:-1,f=n.getSource(),h=o.coveringZoomLevel({tileSize:f.tileSize,roundZoom:f.roundZoom}),p=!r||Math.abs(r.tileID.overscaledZ-h)>Math.abs(e.tileID.overscaledZ-h),d=p&&e.refreshedUponExpiration?1:t.clamp(p?c:1-u,0,1);return e.refreshedUponExpiration&&c>=1&&(e.refreshedUponExpiration=!1),r?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return{opacity:1,mix:0}}function Er(e,r,n){var i=e.context,o=i.gl;i.lineWidth.set(1*a.devicePixelRatio);var s=n.posMatrix,l=e.useProgram(\\\"debug\\\");i.setDepthMode(qt.disabled),i.setStencilMode(Ht.disabled),i.setColorMode(e.colorModeForRenderPass()),o.uniformMatrix4fv(l.uniforms.u_matrix,!1,s),o.uniform4f(l.uniforms.u_color,1,0,0,1),e.debugVAO.bind(i,l,e.debugBuffer,[]),o.drawArrays(o.LINE_STRIP,0,e.debugBuffer.length);for(var c=function(t,e,r,n){n=n||1;var i,a,o,s,l,c,u,f,h=[];for(i=0,a=t.length;i<a;i++)if(l=Cr[t[i]]){for(f=null,o=0,s=l[1].length;o<s;o+=2)-1===l[1][o]&&-1===l[1][o+1]?f=null:(c=e+l[1][o]*n,u=200-l[1][o+1]*n,f&&h.push(f.x,f.y,c,u),f={x:c,y:u});e+=l[0]*n}return h}(n.toString(),50,0,5),u=new t.PosArray,f=0;f<c.length;f+=2)u.emplaceBack(c[f],c[f+1]);var h=i.createVertexBuffer(u,Ke.members);(new Q).bind(i,l,h,[]),o.uniform4f(l.uniforms.u_color,1,1,1,1);for(var p=r.getTile(n).tileSize,d=t.default$8/(Math.pow(2,e.transform.zoom-n.overscaledZ)*p),g=[[-1,-1],[-1,1],[1,-1],[1,1]],v=0;v<g.length;v++){var m=g[v];o.uniformMatrix4fv(l.uniforms.u_matrix,!1,t.mat4.translate([],s,[d*m[0],d*m[1],0])),o.drawArrays(o.LINES,0,h.length)}o.uniform4f(l.uniforms.u_color,0,0,0,1),o.uniformMatrix4fv(l.uniforms.u_matrix,!1,s),o.drawArrays(o.LINES,0,h.length)}var Cr={\\\" \\\":[16,[]],\\\"!\\\":[10,[5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2]],'\\\"':[16,[4,21,4,14,-1,-1,12,21,12,14]],\\\"#\\\":[21,[11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6]],$:[20,[8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],\\\"%\\\":[24,[21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7]],\\\"&\\\":[26,[23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2]],\\\"'\\\":[10,[5,19,4,20,5,21,6,20,6,18,5,16,4,15]],\\\"(\\\":[14,[11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7]],\\\")\\\":[14,[3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7]],\\\"*\\\":[16,[8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12]],\\\"+\\\":[26,[13,18,13,0,-1,-1,4,9,22,9]],\\\",\\\":[10,[6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],\\\"-\\\":[26,[4,9,22,9]],\\\".\\\":[10,[5,2,4,1,5,0,6,1,5,2]],\\\"/\\\":[22,[20,25,2,-7]],0:[20,[9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21]],1:[20,[6,17,8,18,11,21,11,0]],2:[20,[4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0]],3:[20,[5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],4:[20,[13,21,3,7,18,7,-1,-1,13,21,13,0]],5:[20,[15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],6:[20,[16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7]],7:[20,[17,21,7,0,-1,-1,3,21,17,21]],8:[20,[8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21]],9:[20,[16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3]],\\\":\\\":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2]],\\\";\\\":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],\\\"<\\\":[24,[20,18,4,9,20,0]],\\\"=\\\":[26,[4,12,22,12,-1,-1,4,6,22,6]],\\\">\\\":[24,[4,18,20,9,4,0]],\\\"?\\\":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],\\\"@\\\":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],\\\"[\\\":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],\\\"\\\\\\\\\\\":[14,[0,21,14,-3]],\\\"]\\\":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],\\\"^\\\":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],\\\"`\\\":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],\\\"{\\\":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],\\\"|\\\":[8,[4,25,4,-7]],\\\"}\\\":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],\\\"~\\\":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]},Lr={symbol:function(t,e,r,n){if(\\\"translucent\\\"===t.renderPass){var i=t.context;i.setStencilMode(Ht.disabled),i.setColorMode(t.colorModeForRenderPass()),0!==r.paint.get(\\\"icon-opacity\\\").constantOr(1)&&cr(t,e,r,n,!1,r.paint.get(\\\"icon-translate\\\"),r.paint.get(\\\"icon-translate-anchor\\\"),r.layout.get(\\\"icon-rotation-alignment\\\"),r.layout.get(\\\"icon-pitch-alignment\\\"),r.layout.get(\\\"icon-keep-upright\\\")),0!==r.paint.get(\\\"text-opacity\\\").constantOr(1)&&cr(t,e,r,n,!0,r.paint.get(\\\"text-translate\\\"),r.paint.get(\\\"text-translate-anchor\\\"),r.layout.get(\\\"text-rotation-alignment\\\"),r.layout.get(\\\"text-pitch-alignment\\\"),r.layout.get(\\\"text-keep-upright\\\")),e.map.showCollisionBoxes&&function(t,e,r,n){or(t,e,r,n,!1),or(t,e,r,n,!0)}(t,e,r,n)}},circle:function(t,e,r,n){if(\\\"translucent\\\"===t.renderPass){var i=r.paint.get(\\\"circle-opacity\\\"),a=r.paint.get(\\\"circle-stroke-width\\\"),o=r.paint.get(\\\"circle-stroke-opacity\\\");if(0!==i.constantOr(1)||0!==a.constantOr(1)&&0!==o.constantOr(1)){var s=t.context,l=s.gl;s.setDepthMode(t.depthModeForSublayer(0,qt.ReadOnly)),s.setStencilMode(Ht.disabled),s.setColorMode(t.colorModeForRenderPass());for(var c=!0,u=0;u<n.length;u++){var f=n[u],h=e.getTile(f),p=h.getBucket(r);if(p){var d=t.context.program.get(),g=p.programConfigurations.get(r.id),v=t.useProgram(\\\"circle\\\",g);if((c||v.program!==d)&&(g.setUniforms(s,v,r.paint,{zoom:t.transform.zoom}),c=!1),l.uniform1f(v.uniforms.u_camera_to_center_distance,t.transform.cameraToCenterDistance),l.uniform1i(v.uniforms.u_scale_with_map,\\\"map\\\"===r.paint.get(\\\"circle-pitch-scale\\\")?1:0),\\\"map\\\"===r.paint.get(\\\"circle-pitch-alignment\\\")){l.uniform1i(v.uniforms.u_pitch_with_map,1);var m=Te(h,1,t.transform.zoom);l.uniform2f(v.uniforms.u_extrude_scale,m,m)}else l.uniform1i(v.uniforms.u_pitch_with_map,0),l.uniform2fv(v.uniforms.u_extrude_scale,t.transform.pixelsToGLUnits);l.uniformMatrix4fv(v.uniforms.u_matrix,!1,t.translatePosMatrix(f.posMatrix,h,r.paint.get(\\\"circle-translate\\\"),r.paint.get(\\\"circle-translate-anchor\\\"))),v.draw(s,l.TRIANGLES,r.id,p.layoutVertexBuffer,p.indexBuffer,p.segments,g)}}}}},heatmap:function(e,r,n,i){if(0!==n.paint.get(\\\"heatmap-opacity\\\"))if(\\\"offscreen\\\"===e.renderPass){var a=e.context,o=a.gl;a.setDepthMode(e.depthModeForSublayer(0,qt.ReadOnly)),a.setStencilMode(Ht.disabled),function(t,e,r){var n=t.gl;t.activeTexture.set(n.TEXTURE1),t.viewport.set([0,0,e.width/4,e.height/4]);var i=r.heatmapFbo;if(i)n.bindTexture(n.TEXTURE_2D,i.colorAttachment.get()),t.bindFramebuffer.set(i.framebuffer);else{var a=n.createTexture();n.bindTexture(n.TEXTURE_2D,a),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),i=r.heatmapFbo=t.createFramebuffer(e.width/4,e.height/4),function t(e,r,n,i){var a=e.gl;a.texImage2D(a.TEXTURE_2D,0,a.RGBA,r.width/4,r.height/4,0,a.RGBA,e.extTextureHalfFloat?e.extTextureHalfFloat.HALF_FLOAT_OES:a.UNSIGNED_BYTE,null),i.colorAttachment.set(n),e.extTextureHalfFloat&&a.checkFramebufferStatus(a.FRAMEBUFFER)!==a.FRAMEBUFFER_COMPLETE&&(e.extTextureHalfFloat=null,i.colorAttachment.setDirty(),t(e,r,n,i))}(t,e,a,i)}}(a,e,n),a.clear({color:t.default$6.transparent}),a.setColorMode(new Gt([o.ONE,o.ONE],t.default$6.transparent,[!0,!0,!0,!0]));for(var s=!0,l=0;l<i.length;l++){var c=i[l];if(!r.hasRenderableParent(c)){var u=r.getTile(c),f=u.getBucket(n);if(f){var h=e.context.program.get(),p=f.programConfigurations.get(n.id),d=e.useProgram(\\\"heatmap\\\",p),g=e.transform.zoom;(s||d.program!==h)&&(p.setUniforms(e.context,d,n.paint,{zoom:g}),s=!1),o.uniform1f(d.uniforms.u_extrude_scale,Te(u,1,g)),o.uniform1f(d.uniforms.u_intensity,n.paint.get(\\\"heatmap-intensity\\\")),o.uniformMatrix4fv(d.uniforms.u_matrix,!1,c.posMatrix),d.draw(a,o.TRIANGLES,n.id,f.layoutVertexBuffer,f.indexBuffer,f.segments,p)}}}a.viewport.set([0,0,e.width,e.height])}else\\\"translucent\\\"===e.renderPass&&(e.context.setColorMode(e.colorModeForRenderPass()),function(e,r){var n=e.context,i=n.gl,a=r.heatmapFbo;if(a){n.activeTexture.set(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,a.colorAttachment.get()),n.activeTexture.set(i.TEXTURE1);var o=r.colorRampTexture;o||(o=r.colorRampTexture=new z(n,r.colorRamp,i.RGBA)),o.bind(i.LINEAR,i.CLAMP_TO_EDGE),n.setDepthMode(qt.disabled);var s=e.useProgram(\\\"heatmapTexture\\\"),l=r.paint.get(\\\"heatmap-opacity\\\");i.uniform1f(s.uniforms.u_opacity,l),i.uniform1i(s.uniforms.u_image,0),i.uniform1i(s.uniforms.u_color_ramp,1);var c=t.mat4.create();t.mat4.ortho(c,0,e.width,e.height,0,0,1),i.uniformMatrix4fv(s.uniforms.u_matrix,!1,c),i.uniform2f(s.uniforms.u_world,i.drawingBufferWidth,i.drawingBufferHeight),e.viewportVAO.bind(e.context,s,e.viewportBuffer,[]),i.drawArrays(i.TRIANGLE_STRIP,0,4)}}(e,n))},line:function(t,e,r,n){if(\\\"translucent\\\"===t.renderPass&&0!==r.paint.get(\\\"line-opacity\\\").constantOr(1)){var i=t.context;i.setDepthMode(t.depthModeForSublayer(0,qt.ReadOnly)),i.setColorMode(t.colorModeForRenderPass());for(var a,o=r.paint.get(\\\"line-dasharray\\\")?\\\"lineSDF\\\":r.paint.get(\\\"line-pattern\\\")?\\\"linePattern\\\":r.paint.get(\\\"line-gradient\\\")?\\\"lineGradient\\\":\\\"line\\\",s=!0,l=0,c=n;l<c.length;l+=1){var u=c[l],f=e.getTile(u),h=f.getBucket(r);if(h){var p=h.programConfigurations.get(r.id),d=t.context.program.get(),g=t.useProgram(o,p),v=s||g.program!==d,m=a!==f.tileID.overscaledZ;v&&p.setUniforms(t.context,g,r.paint,{zoom:t.transform.zoom}),pr(g,t,f,h,r,u,p,v,m),a=f.tileID.overscaledZ,s=!1}}}},fill:function(e,r,n,i){var a=n.paint.get(\\\"fill-color\\\"),o=n.paint.get(\\\"fill-opacity\\\");if(0!==o.constantOr(1)){var s=e.context;s.setColorMode(e.colorModeForRenderPass());var l=n.paint.get(\\\"fill-pattern\\\")||1!==a.constantOr(t.default$6.transparent).a||1!==o.constantOr(0)?\\\"translucent\\\":\\\"opaque\\\";e.renderPass===l&&(s.setDepthMode(e.depthModeForSublayer(1,\\\"opaque\\\"===e.renderPass?qt.ReadWrite:qt.ReadOnly)),mr(e,r,n,i,yr)),\\\"translucent\\\"===e.renderPass&&n.paint.get(\\\"fill-antialias\\\")&&(s.lineWidth.set(2),s.setDepthMode(e.depthModeForSublayer(n.getPaintProperty(\\\"fill-outline-color\\\")?2:0,qt.ReadOnly)),mr(e,r,n,i,xr))}},\\\"fill-extrusion\\\":function(e,r,n,i){if(0!==n.paint.get(\\\"fill-extrusion-opacity\\\"))if(\\\"offscreen\\\"===e.renderPass){!function(e,r){var n=e.context,i=n.gl,a=r.viewportFrame;if(e.depthRboNeedsClear&&e.setupOffscreenDepthRenderbuffer(),!a){var o=new z(n,{width:e.width,height:e.height,data:null},i.RGBA);o.bind(i.LINEAR,i.CLAMP_TO_EDGE),(a=r.viewportFrame=n.createFramebuffer(e.width,e.height)).colorAttachment.set(o.texture)}n.bindFramebuffer.set(a.framebuffer),a.depthAttachment.set(e.depthRbo),e.depthRboNeedsClear&&(n.clear({depth:1}),e.depthRboNeedsClear=!1),n.clear({color:t.default$6.transparent}),n.setStencilMode(Ht.disabled),n.setDepthMode(new qt(i.LEQUAL,qt.ReadWrite,[0,1])),n.setColorMode(e.colorModeForRenderPass())}(e,n);for(var a=!0,o=0,s=i;o<s.length;o+=1){var l=s[o],c=r.getTile(l),u=c.getBucket(n);u&&(Mr(e,0,n,c,l,u,a),a=!1)}}else\\\"translucent\\\"===e.renderPass&&function(t,e){var r=e.viewportFrame;if(r){var n=t.context,i=n.gl,a=t.useProgram(\\\"extrusionTexture\\\");n.setStencilMode(Ht.disabled),n.setDepthMode(qt.disabled),n.setColorMode(t.colorModeForRenderPass()),n.activeTexture.set(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,r.colorAttachment.get()),i.uniform1f(a.uniforms.u_opacity,e.paint.get(\\\"fill-extrusion-opacity\\\")),i.uniform1i(a.uniforms.u_image,0);var o=wr.create();wr.ortho(o,0,t.width,t.height,0,0,1),i.uniformMatrix4fv(a.uniforms.u_matrix,!1,o),i.uniform2f(a.uniforms.u_world,i.drawingBufferWidth,i.drawingBufferHeight),t.viewportVAO.bind(n,a,t.viewportBuffer,[]),i.drawArrays(i.TRIANGLE_STRIP,0,4)}}(e,n)},hillshade:function(t,e,r,n){if(\\\"offscreen\\\"===t.renderPass||\\\"translucent\\\"===t.renderPass){var i=t.context,a=e.getSource().maxzoom;i.setDepthMode(t.depthModeForSublayer(0,qt.ReadOnly)),i.setStencilMode(Ht.disabled),i.setColorMode(t.colorModeForRenderPass());for(var o=0,s=n;o<s.length;o+=1){var l=s[o],c=e.getTile(l);c.needsHillshadePrepare&&\\\"offscreen\\\"===t.renderPass?Tr(t,c,a):\\\"translucent\\\"===t.renderPass&&Ar(t,c,r)}i.viewport.set([0,0,t.width,t.height])}},raster:function(t,e,r,n){if(\\\"translucent\\\"===t.renderPass&&0!==r.paint.get(\\\"raster-opacity\\\")){var i,a,o=t.context,s=o.gl,l=e.getSource(),c=t.useProgram(\\\"raster\\\");o.setStencilMode(Ht.disabled),o.setColorMode(t.colorModeForRenderPass()),s.uniform1f(c.uniforms.u_brightness_low,r.paint.get(\\\"raster-brightness-min\\\")),s.uniform1f(c.uniforms.u_brightness_high,r.paint.get(\\\"raster-brightness-max\\\")),s.uniform1f(c.uniforms.u_saturation_factor,(i=r.paint.get(\\\"raster-saturation\\\"))>0?1-1/(1.001-i):-i),s.uniform1f(c.uniforms.u_contrast_factor,(a=r.paint.get(\\\"raster-contrast\\\"))>0?1/(1-a):1+a),s.uniform3fv(c.uniforms.u_spin_weights,function(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}(r.paint.get(\\\"raster-hue-rotate\\\"))),s.uniform1f(c.uniforms.u_buffer_scale,1),s.uniform1i(c.uniforms.u_image0,0),s.uniform1i(c.uniforms.u_image1,1);for(var u=n.length&&n[0].overscaledZ,f=0,h=n;f<h.length;f+=1){var p=h[f];o.setDepthMode(t.depthModeForSublayer(p.overscaledZ-u,1===r.paint.get(\\\"raster-opacity\\\")?qt.ReadWrite:qt.ReadOnly,s.LESS));var d=e.getTile(p),g=t.transform.calculatePosMatrix(p.toUnwrapped(),!0);d.registerFadeDuration(r.paint.get(\\\"raster-fade-duration\\\")),s.uniformMatrix4fv(c.uniforms.u_matrix,!1,g);var v=e.findLoadedParent(p,0,{}),m=Sr(d,v,e,r,t.transform),y=void 0,x=void 0;if(o.activeTexture.set(s.TEXTURE0),d.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),o.activeTexture.set(s.TEXTURE1),v?(v.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),y=Math.pow(2,v.tileID.overscaledZ-d.tileID.overscaledZ),x=[d.tileID.canonical.x*y%1,d.tileID.canonical.y*y%1]):d.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),s.uniform2fv(c.uniforms.u_tl_parent,x||[0,0]),s.uniform1f(c.uniforms.u_scale_parent,y||1),s.uniform1f(c.uniforms.u_fade_t,m.mix),s.uniform1f(c.uniforms.u_opacity,m.opacity*r.paint.get(\\\"raster-opacity\\\")),l instanceof tt){var b=l.boundsBuffer;l.boundsVAO.bind(o,c,b,[]),s.drawArrays(s.TRIANGLE_STRIP,0,b.length)}else if(d.maskedBoundsBuffer&&d.maskedIndexBuffer&&d.segments)c.draw(o,s.TRIANGLES,r.id,d.maskedBoundsBuffer,d.maskedIndexBuffer,d.segments);else{var _=t.rasterBoundsBuffer;t.rasterBoundsVAO.bind(o,c,_,[]),s.drawArrays(s.TRIANGLE_STRIP,0,_.length)}}}},background:function(t,e,r){var n=r.paint.get(\\\"background-color\\\"),i=r.paint.get(\\\"background-opacity\\\");if(0!==i){var a=t.context,o=a.gl,s=t.transform,l=s.tileSize,c=r.paint.get(\\\"background-pattern\\\"),u=c||1!==n.a||1!==i?\\\"translucent\\\":\\\"opaque\\\";if(t.renderPass===u){var f;if(a.setStencilMode(Ht.disabled),a.setDepthMode(t.depthModeForSublayer(0,\\\"opaque\\\"===u?qt.ReadWrite:qt.ReadOnly)),a.setColorMode(t.colorModeForRenderPass()),c){if(dr(c,t))return;f=t.useProgram(\\\"backgroundPattern\\\"),gr(c,t,f),t.tileExtentPatternVAO.bind(a,f,t.tileExtentBuffer,[])}else f=t.useProgram(\\\"background\\\"),o.uniform4fv(f.uniforms.u_color,[n.r,n.g,n.b,n.a]),t.tileExtentVAO.bind(a,f,t.tileExtentBuffer,[]);o.uniform1f(f.uniforms.u_opacity,i);for(var h=0,p=s.coveringTiles({tileSize:l});h<p.length;h+=1){var d=p[h];c&&vr({tileID:d,tileSize:l},t,f),o.uniformMatrix4fv(f.uniforms.u_matrix,!1,t.transform.calculatePosMatrix(d.toUnwrapped())),o.drawArrays(o.TRIANGLE_STRIP,0,t.tileExtentBuffer.length)}}}},debug:function(t,e,r){for(var n=0;n<r.length;n++)Er(t,e,r[n])}},zr=function(e,r){this.context=new Wt(e),this.transform=r,this._tileTextures={},this.setup(),this.numSublayers=Yt.maxUnderzooming+Yt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.depthRboNeedsClear=!0,this.emptyProgramConfiguration=new t.default$24,this.crossTileSymbolIndex=new Ye};function Or(t,e){if(t.row>e.row){var r=t;t=e,e=r}return{x0:t.column,y0:t.row,x1:e.column,y1:e.row,dx:e.column-t.column,dy:e.row-t.row}}function Ir(t,e,r,n,i){var a=Math.max(r,Math.floor(e.y0)),o=Math.min(n,Math.ceil(e.y1));if(t.x0===e.x0&&t.y0===e.y0?t.x0+e.dy/t.dy*t.dx<e.x1:t.x1-e.dy/t.dy*t.dx<e.x0){var s=t;t=e,e=s}for(var l=t.dx/t.dy,c=e.dx/e.dy,u=t.dx>0,f=e.dx<0,h=a;h<o;h++){var p=l*Math.max(0,Math.min(t.dy,h+u-t.y0))+t.x0,d=c*Math.max(0,Math.min(e.dy,h+f-e.y0))+e.x0;i(Math.floor(d),Math.ceil(p),h)}}function Pr(t,e,r,n,i,a){var o,s=Or(t,e),l=Or(e,r),c=Or(r,t);s.dy>l.dy&&(o=s,s=l,l=o),s.dy>c.dy&&(o=s,s=c,c=o),l.dy>c.dy&&(o=l,l=c,c=o),s.dy&&Ir(c,s,n,i,a),l.dy&&Ir(c,l,n,i,a)}zr.prototype.resize=function(t,e){var r=this.context.gl;if(this.width=t*a.devicePixelRatio,this.height=e*a.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var n=0,i=this.style._order;n<i.length;n+=1){var o=i[n];this.style._layers[o].resize()}this.depthRbo&&(r.deleteRenderbuffer(this.depthRbo),this.depthRbo=null)},zr.prototype.setup=function(){var e=this.context,r=new t.PosArray;r.emplaceBack(0,0),r.emplaceBack(t.default$8,0),r.emplaceBack(0,t.default$8),r.emplaceBack(t.default$8,t.default$8),this.tileExtentBuffer=e.createVertexBuffer(r,Ke.members),this.tileExtentVAO=new Q,this.tileExtentPatternVAO=new Q;var n=new t.PosArray;n.emplaceBack(0,0),n.emplaceBack(t.default$8,0),n.emplaceBack(t.default$8,t.default$8),n.emplaceBack(0,t.default$8),n.emplaceBack(0,0),this.debugBuffer=e.createVertexBuffer(n,Ke.members),this.debugVAO=new Q;var i=new t.RasterBoundsArray;i.emplaceBack(0,0,0,0),i.emplaceBack(t.default$8,0,t.default$8,0),i.emplaceBack(0,t.default$8,0,t.default$8),i.emplaceBack(t.default$8,t.default$8,t.default$8,t.default$8),this.rasterBoundsBuffer=e.createVertexBuffer(i,K.members),this.rasterBoundsVAO=new Q;var a=new t.PosArray;a.emplaceBack(0,0),a.emplaceBack(1,0),a.emplaceBack(0,1),a.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(a,Ke.members),this.viewportVAO=new Q},zr.prototype.clearStencil=function(){var e=this.context,r=e.gl;e.setColorMode(Gt.disabled),e.setDepthMode(qt.disabled),e.setStencilMode(new Ht({func:r.ALWAYS,mask:0},0,255,r.ZERO,r.ZERO,r.ZERO));var n=t.mat4.create();t.mat4.ortho(n,0,this.width,this.height,0,0,1),t.mat4.scale(n,n,[r.drawingBufferWidth,r.drawingBufferHeight,0]);var i=this.useProgram(\\\"clippingMask\\\");r.uniformMatrix4fv(i.uniforms.u_matrix,!1,n),this.viewportVAO.bind(e,i,this.viewportBuffer,[]),r.drawArrays(r.TRIANGLE_STRIP,0,4)},zr.prototype._renderTileClippingMasks=function(t){var e=this.context,r=e.gl;e.setColorMode(Gt.disabled),e.setDepthMode(qt.disabled);var n=1;this._tileClippingMaskIDs={};for(var i=0,a=t;i<a.length;i+=1){var o=a[i],s=this._tileClippingMaskIDs[o.key]=n++;e.setStencilMode(new Ht({func:r.ALWAYS,mask:0},s,255,r.KEEP,r.KEEP,r.REPLACE));var l=this.useProgram(\\\"clippingMask\\\");r.uniformMatrix4fv(l.uniforms.u_matrix,!1,o.posMatrix),this.tileExtentVAO.bind(this.context,l,this.tileExtentBuffer,[]),r.drawArrays(r.TRIANGLE_STRIP,0,this.tileExtentBuffer.length)}},zr.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new Ht({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},zr.prototype.colorModeForRenderPass=function(){var e=this.context.gl;return this._showOverdrawInspector?new Gt([e.CONSTANT_COLOR,e.ONE],new t.default$6(1/8,1/8,1/8,0),[!0,!0,!0,!0]):\\\"opaque\\\"===this.renderPass?Gt.unblended:Gt.alphaBlended},zr.prototype.depthModeForSublayer=function(t,e,r){var n=1-((1+this.currentLayer)*this.numSublayers+t)*this.depthEpsilon,i=n-1+this.depthRange;return new qt(r||this.context.gl.LEQUAL,e,[i,n])},zr.prototype.render=function(e,r){var n=this;for(var i in this.style=e,this.options=r,this.lineAtlas=e.lineAtlas,this.imageManager=e.imageManager,this.glyphManager=e.glyphManager,this.symbolFadeChange=e.placement.symbolFadeChange(a.now()),e.sourceCaches){var o=n.style.sourceCaches[i];o.used&&o.prepare(n.context)}var s=this.style._order,l=t.filterObject(this.style.sourceCaches,function(t){return\\\"raster\\\"===t.getSource().type||\\\"raster-dem\\\"===t.getSource().type}),c=function(e){var r=l[e];!function(e,r){for(var n=e.sort(function(t,e){return t.tileID.isLessThan(e.tileID)?-1:e.tileID.isLessThan(t.tileID)?1:0}),i=0;i<n.length;i++){var a={},o=n[i],s=n.slice(i+1);ar(o.tileID.wrapped(),o.tileID,s,new t.OverscaledTileID(0,o.tileID.wrap+1,0,0,0),a),o.setMask(a,r)}}(r.getVisibleCoordinates().map(function(t){return r.getTile(t)}),n.context)};for(var u in l)c(u);this.renderPass=\\\"offscreen\\\";var f,h=[];this.depthRboNeedsClear=!0;for(var p=0;p<s.length;p++){var d=n.style._layers[s[p]];d.hasOffscreenPass()&&!d.isHidden(n.transform.zoom)&&(d.source!==(f&&f.id)&&(h=[],(f=n.style.sourceCaches[d.source])&&(h=f.getVisibleCoordinates()).reverse()),h.length&&n.renderLayer(n,f,d,h))}this.context.bindFramebuffer.set(null),this.context.clear({color:r.showOverdrawInspector?t.default$6.black:t.default$6.transparent,depth:1}),this._showOverdrawInspector=r.showOverdrawInspector,this.depthRange=(e._order.length+2)*this.numSublayers*this.depthEpsilon,this.renderPass=\\\"opaque\\\";var g,v=[];for(this.currentLayer=s.length-1,this.currentLayer;this.currentLayer>=0;this.currentLayer--){var m=n.style._layers[s[n.currentLayer]];m.source!==(g&&g.id)&&(v=[],(g=n.style.sourceCaches[m.source])&&(n.clearStencil(),v=g.getVisibleCoordinates(),g.getSource().isTileClipped&&n._renderTileClippingMasks(v))),n.renderLayer(n,g,m,v)}this.renderPass=\\\"translucent\\\";var y,x=[];for(this.currentLayer=0,this.currentLayer;this.currentLayer<s.length;this.currentLayer++){var b=n.style._layers[s[n.currentLayer]];b.source!==(y&&y.id)&&(x=[],(y=n.style.sourceCaches[b.source])&&(n.clearStencil(),x=y.getVisibleCoordinates(),y.getSource().isTileClipped&&n._renderTileClippingMasks(x)),x.reverse()),n.renderLayer(n,y,b,x)}if(this.options.showTileBoundaries){var _=this.style.sourceCaches[Object.keys(this.style.sourceCaches)[0]];_&&Lr.debug(this,_,_.getVisibleCoordinates())}},zr.prototype.setupOffscreenDepthRenderbuffer=function(){var t=this.context;this.depthRbo||(this.depthRbo=t.createRenderbuffer(t.gl.DEPTH_COMPONENT16,this.width,this.height))},zr.prototype.renderLayer=function(t,e,r,n){r.isHidden(this.transform.zoom)||(\\\"background\\\"===r.type||n.length)&&(this.id=r.id,Lr[r.type](t,e,r,n))},zr.prototype.translatePosMatrix=function(e,r,n,i,a){if(!n[0]&&!n[1])return e;var o=a?\\\"map\\\"===i?this.transform.angle:0:\\\"viewport\\\"===i?-this.transform.angle:0;if(o){var s=Math.sin(o),l=Math.cos(o);n=[n[0]*l-n[1]*s,n[0]*s+n[1]*l]}var c=[a?n[0]:Te(r,n[0],this.transform.zoom),a?n[1]:Te(r,n[1],this.transform.zoom),0],u=new Float32Array(16);return t.mat4.translate(u,e,c),u},zr.prototype.saveTileTexture=function(t){var e=this._tileTextures[t.size[0]];e?e.push(t):this._tileTextures[t.size[0]]=[t]},zr.prototype.getTileTexture=function(t){var e=this._tileTextures[t];return e&&e.length>0?e.pop():null},zr.prototype._createProgramCached=function(t,e){this.cache=this.cache||{};var r=\\\"\\\"+t+(e.cacheKey||\\\"\\\")+(this._showOverdrawInspector?\\\"/overdraw\\\":\\\"\\\");return this.cache[r]||(this.cache[r]=new ir(this.context,nr[t],e,this._showOverdrawInspector)),this.cache[r]},zr.prototype.useProgram=function(t,e){var r=this._createProgramCached(t,e||this.emptyProgramConfiguration);return this.context.program.set(r.program),r};var Dr=t.default$20.vec4,Rr=t.default$20.mat4,Br=t.default$20.mat2,Fr=function(t,e,r){this.tileSize=512,this._renderWorldCopies=void 0===r||r,this._minZoom=t||0,this._maxZoom=e||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new G(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._posMatrixCache={},this._alignedPosMatrixCache={}},Nr={minZoom:{configurable:!0},maxZoom:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerPoint:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},unmodified:{configurable:!0},x:{configurable:!0},y:{configurable:!0},point:{configurable:!0}};Fr.prototype.clone=function(){var t=new Fr(this._minZoom,this._maxZoom,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._calcMatrices(),t},Nr.minZoom.get=function(){return this._minZoom},Nr.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},Nr.maxZoom.get=function(){return this._maxZoom},Nr.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},Nr.renderWorldCopies.get=function(){return this._renderWorldCopies},Nr.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},Nr.worldSize.get=function(){return this.tileSize*this.scale},Nr.centerPoint.get=function(){return this.size._div(2)},Nr.size.get=function(){return new t.default$1(this.width,this.height)},Nr.bearing.get=function(){return-this.angle/Math.PI*180},Nr.bearing.set=function(e){var r=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==r&&(this._unmodified=!1,this.angle=r,this._calcMatrices(),this.rotationMatrix=Br.create(),Br.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Nr.pitch.get=function(){return this._pitch/Math.PI*180},Nr.pitch.set=function(e){var r=t.clamp(e,0,60)/180*Math.PI;this._pitch!==r&&(this._unmodified=!1,this._pitch=r,this._calcMatrices())},Nr.fov.get=function(){return this._fov/Math.PI*180},Nr.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},Nr.zoom.get=function(){return this._zoom},Nr.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},Nr.center.get=function(){return this._center},Nr.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Fr.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},Fr.prototype.getVisibleUnwrappedCoordinates=function(e){var r=this.pointCoordinate(new t.default$1(0,0),0),n=this.pointCoordinate(new t.default$1(this.width,0),0),i=Math.floor(r.column),a=Math.floor(n.column),o=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var s=i;s<=a;s++)0!==s&&o.push(new t.UnwrappedTileID(s,e));return o},Fr.prototype.coveringTiles=function(e){var r=this.coveringZoomLevel(e),n=r;if(void 0!==e.minzoom&&r<e.minzoom)return[];void 0!==e.maxzoom&&r>e.maxzoom&&(r=e.maxzoom);var i=this.pointCoordinate(this.centerPoint,r),a=new t.default$1(i.column-.5,i.row-.5);return function(e,r,n,i){void 0===i&&(i=!0);var a=1<<e,o={};function s(r,s,l){var c,u,f,h;if(l>=0&&l<=a)for(c=r;c<s;c++)u=Math.floor(c/a),f=(c%a+a)%a,0!==u&&!0!==i||(h=new t.OverscaledTileID(n,u,e,f,l),o[h.key]=h)}return Pr(r[0],r[1],r[2],0,a,s),Pr(r[2],r[3],r[0],0,a,s),Object.keys(o).map(function(t){return o[t]})}(r,[this.pointCoordinate(new t.default$1(0,0),r),this.pointCoordinate(new t.default$1(this.width,0),r),this.pointCoordinate(new t.default$1(this.width,this.height),r),this.pointCoordinate(new t.default$1(0,this.height),r)],e.reparseOverscaled?n:r,this._renderWorldCopies).sort(function(t,e){return a.dist(t.canonical)-a.dist(e.canonical)})},Fr.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},Nr.unmodified.get=function(){return this._unmodified},Fr.prototype.zoomScale=function(t){return Math.pow(2,t)},Fr.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Fr.prototype.project=function(e){return new t.default$1(this.lngX(e.lng),this.latY(e.lat))},Fr.prototype.unproject=function(t){return new G(this.xLng(t.x),this.yLat(t.y))},Nr.x.get=function(){return this.lngX(this.center.lng)},Nr.y.get=function(){return this.latY(this.center.lat)},Nr.point.get=function(){return new t.default$1(this.x,this.y)},Fr.prototype.lngX=function(t){return(180+t)*this.worldSize/360},Fr.prototype.latY=function(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))*this.worldSize/360},Fr.prototype.xLng=function(t){return 360*t/this.worldSize-180},Fr.prototype.yLat=function(t){var e=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90},Fr.prototype.setLocationAtPoint=function(t,e){var r=this.pointCoordinate(e)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(r)),this._renderWorldCopies&&(this.center=this.center.wrap())},Fr.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Fr.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Fr.prototype.locationCoordinate=function(e){return new t.default$17(this.lngX(e.lng)/this.tileSize,this.latY(e.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},Fr.prototype.coordinateLocation=function(t){var e=t.zoomTo(this.zoom);return new G(this.xLng(e.column*this.tileSize),this.yLat(e.row*this.tileSize))},Fr.prototype.pointCoordinate=function(e,r){void 0===r&&(r=this.tileZoom);var n=[e.x,e.y,0,1],i=[e.x,e.y,1,1];Dr.transformMat4(n,n,this.pixelMatrixInverse),Dr.transformMat4(i,i,this.pixelMatrixInverse);var a=n[3],o=i[3],s=n[0]/a,l=i[0]/o,c=n[1]/a,u=i[1]/o,f=n[2]/a,h=i[2]/o,p=f===h?0:(0-f)/(h-f);return new t.default$17(t.number(s,l,p)/this.tileSize,t.number(c,u,p)/this.tileSize,this.zoom)._zoomTo(r)},Fr.prototype.coordinatePoint=function(e){var r=e.zoomTo(this.zoom),n=[r.column*this.tileSize,r.row*this.tileSize,0,1];return Dr.transformMat4(n,n,this.pixelMatrix),new t.default$1(n[0]/n[3],n[1]/n[3])},Fr.prototype.calculatePosMatrix=function(e,r){void 0===r&&(r=!1);var n=e.key,i=r?this._alignedPosMatrixCache:this._posMatrixCache;if(i[n])return i[n];var a=e.canonical,o=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=Rr.identity(new Float64Array(16));return Rr.translate(l,l,[s*o,a.y*o,0]),Rr.scale(l,l,[o/t.default$8,o/t.default$8,1]),Rr.multiply(l,r?this.alignedProjMatrix:this.projMatrix,l),i[n]=new Float32Array(l),i[n]},Fr.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,r,n,i,a=-90,o=90,s=-180,l=180,c=this.size,u=this._unmodified;if(this.latRange){var f=this.latRange;a=this.latY(f[1]),e=(o=this.latY(f[0]))-a<c.y?c.y/(o-a):0}if(this.lngRange){var h=this.lngRange;s=this.lngX(h[0]),r=(l=this.lngX(h[1]))-s<c.x?c.x/(l-s):0}var p=Math.max(r||0,e||0);if(p)return this.center=this.unproject(new t.default$1(r?(l+s)/2:this.x,e?(o+a)/2:this.y)),this.zoom+=this.scaleZoom(p),this._unmodified=u,void(this._constraining=!1);if(this.latRange){var d=this.y,g=c.y/2;d-g<a&&(i=a+g),d+g>o&&(i=o-g)}if(this.lngRange){var v=this.x,m=c.x/2;v-m<s&&(n=s+m),v+m>l&&(n=l-m)}void 0===n&&void 0===i||(this.center=this.unproject(new t.default$1(void 0!==n?n:this.x,void 0!==i?i:this.y))),this._unmodified=u,this._constraining=!1}},Fr.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,e=Math.PI/2+this._pitch,r=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-e-t),n=this.x,i=this.y,a=1.01*(Math.cos(Math.PI/2-this._pitch)*r+this.cameraToCenterDistance),o=new Float64Array(16);Rr.perspective(o,this._fov,this.width/this.height,1,a),Rr.scale(o,o,[1,-1,1]),Rr.translate(o,o,[0,0,-this.cameraToCenterDistance]),Rr.rotateX(o,o,this._pitch),Rr.rotateZ(o,o,this.angle),Rr.translate(o,o,[-n,-i,0]);var s=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));Rr.scale(o,o,[1,1,s,1]),this.projMatrix=o;var l=this.width%2/2,c=this.height%2/2,u=Math.cos(this.angle),f=Math.sin(this.angle),h=n-Math.round(n)+u*l+f*c,p=i-Math.round(i)+u*c+f*l,d=new Float64Array(o);if(Rr.translate(d,d,[h>.5?h-1:h,p>.5?p-1:p,0]),this.alignedProjMatrix=d,o=Rr.create(),Rr.scale(o,o,[this.width/2,-this.height/2,1]),Rr.translate(o,o,[1,-1,0]),this.pixelMatrix=Rr.multiply(new Float64Array(16),o,this.projMatrix),!(o=Rr.invert(new Float64Array(16),this.pixelMatrix)))throw new Error(\\\"failed to invert matrix\\\");this.pixelMatrixInverse=o,this._posMatrixCache={},this._alignedPosMatrixCache={}}},Fr.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.default$1(0,0)).zoomTo(this.zoom),r=[e.column*this.tileSize,e.row*this.tileSize,0,1];return Dr.transformMat4(r,r,this.pixelMatrix)[3]/this.cameraToCenterDistance},Object.defineProperties(Fr.prototype,Nr);var jr=function(){var e,r,n,i;t.bindAll([\\\"_onHashChange\\\",\\\"_updateHash\\\"],this),this._updateHash=(e=this._updateHashUnthrottled.bind(this),300,r=!1,n=0,i=function(){n=0,r&&(e(),n=setTimeout(i,300),r=!1)},function(){return r=!0,n||i(),n})};jr.prototype.addTo=function(e){return this._map=e,t.default.addEventListener(\\\"hashchange\\\",this._onHashChange,!1),this._map.on(\\\"moveend\\\",this._updateHash),this},jr.prototype.remove=function(){return t.default.removeEventListener(\\\"hashchange\\\",this._onHashChange,!1),this._map.off(\\\"moveend\\\",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},jr.prototype.getHashString=function(t){var e=this._map.getCenter(),r=Math.round(100*this._map.getZoom())/100,n=Math.ceil((r*Math.LN2+Math.log(512/360/.5))/Math.LN10),i=Math.pow(10,n),a=Math.round(e.lng*i)/i,o=Math.round(e.lat*i)/i,s=this._map.getBearing(),l=this._map.getPitch(),c=\\\"\\\";return c+=t?\\\"#/\\\"+a+\\\"/\\\"+o+\\\"/\\\"+r:\\\"#\\\"+r+\\\"/\\\"+o+\\\"/\\\"+a,(s||l)&&(c+=\\\"/\\\"+Math.round(10*s)/10),l&&(c+=\\\"/\\\"+Math.round(l)),c},jr.prototype._onHashChange=function(){var e=t.default.location.hash.replace(\\\"#\\\",\\\"\\\").split(\\\"/\\\");return e.length>=3&&(this._map.jumpTo({center:[+e[2],+e[1]],zoom:+e[0],bearing:+(e[3]||0),pitch:+(e[4]||0)}),!0)},jr.prototype._updateHashUnthrottled=function(){var e=this.getHashString();t.default.history.replaceState(t.default.history.state,\\\"\\\",e)};var Vr=function(e){function r(r,n,i,a){void 0===a&&(a={});var o=s.mousePos(n.getCanvasContainer(),i),l=n.unproject(o);e.call(this,r,t.extend({point:o,lngLat:l,originalEvent:i},a)),this._defaultPrevented=!1,this.target=n}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var n={defaultPrevented:{configurable:!0}};return r.prototype.preventDefault=function(){this._defaultPrevented=!0},n.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(r.prototype,n),r}(t.Event),Ur=function(e){function r(r,n,i){var a=s.touchPos(n.getCanvasContainer(),i),o=a.map(function(t){return n.unproject(t)}),l=a.reduce(function(t,e,r,n){return t.add(e.div(n.length))},new t.default$1(0,0)),c=n.unproject(l);e.call(this,r,{points:a,point:l,lngLats:o,lngLat:c,originalEvent:i}),this._defaultPrevented=!1}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var n={defaultPrevented:{configurable:!0}};return r.prototype.preventDefault=function(){this._defaultPrevented=!0},n.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(r.prototype,n),r}(t.Event),qr=function(t){function e(e,r,n){t.call(this,e,{originalEvent:n}),this._defaultPrevented=!1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={defaultPrevented:{configurable:!0}};return e.prototype.preventDefault=function(){this._defaultPrevented=!0},r.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(e.prototype,r),e}(t.Event),Hr=function(e){this._map=e,this._el=e.getCanvasContainer(),this._delta=0,t.bindAll([\\\"_onWheel\\\",\\\"_onTimeout\\\",\\\"_onScrollFrame\\\",\\\"_onScrollFinished\\\"],this)};Hr.prototype.isEnabled=function(){return!!this._enabled},Hr.prototype.isActive=function(){return!!this._active},Hr.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&\\\"center\\\"===t.around)},Hr.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Hr.prototype.onWheel=function(e){if(this.isEnabled()){var r=e.deltaMode===t.default.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,n=a.now(),i=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,0!==r&&r%4.000244140625==0?this._type=\\\"wheel\\\":0!==r&&Math.abs(r)<4?this._type=\\\"trackpad\\\":i>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(i*r)<200?\\\"trackpad\\\":\\\"wheel\\\",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this.isActive()||this._start(e)),e.preventDefault()}},Hr.prototype._onTimeout=function(t){this._type=\\\"wheel\\\",this._delta-=this._lastValue,this.isActive()||this._start(t)},Hr.prototype._start=function(e){if(this._delta){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),this._active=!0,this._map.fire(new t.Event(\\\"movestart\\\",{originalEvent:e})),this._map.fire(new t.Event(\\\"zoomstart\\\",{originalEvent:e})),this._finishTimeout&&clearTimeout(this._finishTimeout);var r=s.mousePos(this._el,e);this._around=G.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(r)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onScrollFrame))}},Hr.prototype._onScrollFrame=function(){var e=this;if(this._frameId=null,this.isActive()){var r=this._map.transform;if(0!==this._delta){var n=\\\"wheel\\\"===this._type&&Math.abs(this._delta)>4.000244140625?1/450:.01,i=2/(1+Math.exp(-Math.abs(this._delta*n)));this._delta<0&&0!==i&&(i=1/i);var o=\\\"number\\\"==typeof this._targetZoom?r.zoomScale(this._targetZoom):r.scale;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(o*i))),\\\"wheel\\\"===this._type&&(this._startZoom=r.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var s=!1;if(\\\"wheel\\\"===this._type){var l=Math.min((a.now()-this._lastWheelEventTime)/200,1),c=this._easing(l);r.zoom=t.number(this._startZoom,this._targetZoom,c),l<1?this._frameId||(this._frameId=this._map._requestRenderFrame(this._onScrollFrame)):s=!0}else r.zoom=this._targetZoom,s=!0;r.setLocationAtPoint(this._around,this._aroundPoint),this._map.fire(new t.Event(\\\"move\\\",{originalEvent:this._lastWheelEvent})),this._map.fire(new t.Event(\\\"zoom\\\",{originalEvent:this._lastWheelEvent})),s&&(this._active=!1,this._finishTimeout=setTimeout(function(){e._map.fire(new t.Event(\\\"zoomend\\\",{originalEvent:e._lastWheelEvent})),e._map.fire(new t.Event(\\\"moveend\\\",{originalEvent:e._lastWheelEvent})),delete e._targetZoom},200))}},Hr.prototype._smoothOutEasing=function(e){var r=t.ease;if(this._prevEase){var n=this._prevEase,i=(a.now()-n.start)/n.duration,o=n.easing(i+.01)-n.easing(i),s=.27/Math.sqrt(o*o+1e-4)*.01,l=Math.sqrt(.0729-s*s);r=t.bezier(s,l,.25,1)}return this._prevEase={start:a.now(),duration:e,easing:r},r};var Gr=function(e){this._map=e,this._el=e.getCanvasContainer(),this._container=e.getContainer(),t.bindAll([\\\"_onMouseMove\\\",\\\"_onMouseUp\\\",\\\"_onKeyDown\\\"],this)};Gr.prototype.isEnabled=function(){return!!this._enabled},Gr.prototype.isActive=function(){return!!this._active},Gr.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},Gr.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Gr.prototype.onMouseDown=function(e){this.isEnabled()&&e.shiftKey&&0===e.button&&(t.default.document.addEventListener(\\\"mousemove\\\",this._onMouseMove,!1),t.default.document.addEventListener(\\\"keydown\\\",this._onKeyDown,!1),t.default.document.addEventListener(\\\"mouseup\\\",this._onMouseUp,!1),s.disableDrag(),this._startPos=s.mousePos(this._el,e),this._active=!0)},Gr.prototype._onMouseMove=function(t){var e=this._startPos,r=s.mousePos(this._el,t);this._box||(this._box=s.create(\\\"div\\\",\\\"mapboxgl-boxzoom\\\",this._container),this._container.classList.add(\\\"mapboxgl-crosshair\\\"),this._fireEvent(\\\"boxzoomstart\\\",t));var n=Math.min(e.x,r.x),i=Math.max(e.x,r.x),a=Math.min(e.y,r.y),o=Math.max(e.y,r.y);s.setTransform(this._box,\\\"translate(\\\"+n+\\\"px,\\\"+a+\\\"px)\\\"),this._box.style.width=i-n+\\\"px\\\",this._box.style.height=o-a+\\\"px\\\"},Gr.prototype._onMouseUp=function(e){if(0===e.button){var r=this._startPos,n=s.mousePos(this._el,e),i=(new W).extend(this._map.unproject(r)).extend(this._map.unproject(n));this._finish(),s.suppressClick(),r.x===n.x&&r.y===n.y?this._fireEvent(\\\"boxzoomcancel\\\",e):this._map.fitBounds(i,{linear:!0}).fire(new t.Event(\\\"boxzoomend\\\",{originalEvent:e,boxZoomBounds:i}))}},Gr.prototype._onKeyDown=function(t){27===t.keyCode&&(this._finish(),this._fireEvent(\\\"boxzoomcancel\\\",t))},Gr.prototype._finish=function(){this._active=!1,t.default.document.removeEventListener(\\\"mousemove\\\",this._onMouseMove,!1),t.default.document.removeEventListener(\\\"keydown\\\",this._onKeyDown,!1),t.default.document.removeEventListener(\\\"mouseup\\\",this._onMouseUp,!1),this._container.classList.remove(\\\"mapboxgl-crosshair\\\"),this._box&&(s.remove(this._box),this._box=null),s.enableDrag()},Gr.prototype._fireEvent=function(e,r){return this._map.fire(new t.Event(e,{originalEvent:r}))};var Wr=t.bezier(0,0,.25,1),Yr=function(e,r){this._map=e,this._el=r.element||e.getCanvasContainer(),this._state=\\\"disabled\\\",this._button=r.button||\\\"right\\\",this._bearingSnap=r.bearingSnap||0,this._pitchWithRotate=!1!==r.pitchWithRotate,t.bindAll([\\\"_onMouseMove\\\",\\\"_onMouseUp\\\",\\\"_onBlur\\\",\\\"_onDragFrame\\\"],this)};Yr.prototype.isEnabled=function(){return\\\"disabled\\\"!==this._state},Yr.prototype.isActive=function(){return\\\"active\\\"===this._state},Yr.prototype.enable=function(){this.isEnabled()||(this._state=\\\"enabled\\\")},Yr.prototype.disable=function(){if(this.isEnabled())switch(this._state){case\\\"active\\\":this._state=\\\"disabled\\\",this._unbind(),this._deactivate(),this._fireEvent(\\\"rotateend\\\"),this._pitchWithRotate&&this._fireEvent(\\\"pitchend\\\"),this._fireEvent(\\\"moveend\\\");break;case\\\"pending\\\":this._state=\\\"disabled\\\",this._unbind();break;default:this._state=\\\"disabled\\\"}},Yr.prototype.onMouseDown=function(e){if(\\\"enabled\\\"===this._state){if(\\\"right\\\"===this._button){if(this._eventButton=s.mouseButton(e),this._eventButton!==(e.ctrlKey?0:2))return}else{if(e.ctrlKey||0!==s.mouseButton(e))return;this._eventButton=0}s.disableDrag(),t.default.document.addEventListener(\\\"mousemove\\\",this._onMouseMove,{capture:!0}),t.default.document.addEventListener(\\\"mouseup\\\",this._onMouseUp),t.default.addEventListener(\\\"blur\\\",this._onBlur),this._state=\\\"pending\\\",this._inertia=[[a.now(),this._map.getBearing()]],this._previousPos=s.mousePos(this._el,e),this._center=this._map.transform.centerPoint,e.preventDefault()}},Yr.prototype._onMouseMove=function(t){this._lastMoveEvent=t,this._pos=s.mousePos(this._el,t),\\\"pending\\\"===this._state&&(this._state=\\\"active\\\",this._fireEvent(\\\"rotatestart\\\",t),this._fireEvent(\\\"movestart\\\",t),this._pitchWithRotate&&this._fireEvent(\\\"pitchstart\\\",t)),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onDragFrame))},Yr.prototype._onDragFrame=function(){this._frameId=null;var t=this._lastMoveEvent;if(t){var e=this._map.transform,r=this._previousPos,n=this._pos,i=.8*(r.x-n.x),o=-.5*(r.y-n.y),s=e.bearing-i,l=e.pitch-o,c=this._inertia,u=c[c.length-1];this._drainInertiaBuffer(),c.push([a.now(),this._map._normalizeBearing(s,u[1])]),e.bearing=s,this._pitchWithRotate&&(this._fireEvent(\\\"pitch\\\",t),e.pitch=l),this._fireEvent(\\\"rotate\\\",t),this._fireEvent(\\\"move\\\",t),delete this._lastMoveEvent,this._previousPos=this._pos}},Yr.prototype._onMouseUp=function(t){if(s.mouseButton(t)===this._eventButton)switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",s.suppressClick(),this._unbind(),this._deactivate(),this._inertialRotate(t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Yr.prototype._onBlur=function(t){switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",this._unbind(),this._deactivate(),this._fireEvent(\\\"rotateend\\\",t),this._pitchWithRotate&&this._fireEvent(\\\"pitchend\\\",t),this._fireEvent(\\\"moveend\\\",t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Yr.prototype._unbind=function(){t.default.document.removeEventListener(\\\"mousemove\\\",this._onMouseMove,{capture:!0}),t.default.document.removeEventListener(\\\"mouseup\\\",this._onMouseUp),t.default.removeEventListener(\\\"blur\\\",this._onBlur),s.enableDrag()},Yr.prototype._deactivate=function(){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._lastMoveEvent,delete this._previousPos},Yr.prototype._inertialRotate=function(t){var e=this;this._fireEvent(\\\"rotateend\\\",t),this._drainInertiaBuffer();var r=this._map,n=r.getBearing(),i=this._inertia,a=function(){Math.abs(n)<e._bearingSnap?r.resetNorth({noMoveStart:!0},{originalEvent:t}):e._fireEvent(\\\"moveend\\\",t),e._pitchWithRotate&&e._fireEvent(\\\"pitchend\\\",t)};if(i.length<2)a();else{var o=i[0],s=i[i.length-1],l=i[i.length-2],c=r._normalizeBearing(n,l[1]),u=s[1]-o[1],f=u<0?-1:1,h=(s[0]-o[0])/1e3;if(0!==u&&0!==h){var p=Math.abs(u*(.25/h));p>180&&(p=180);var d=p/180;c+=f*p*(d/2),Math.abs(r._normalizeBearing(c,0))<this._bearingSnap&&(c=r._normalizeBearing(0,c)),r.rotateTo(c,{duration:1e3*d,easing:Wr,noMoveStart:!0},{originalEvent:t})}else a()}},Yr.prototype._fireEvent=function(e,r){return this._map.fire(new t.Event(e,r?{originalEvent:r}:{}))},Yr.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=a.now();t.length>0&&e-t[0][0]>160;)t.shift()};var Xr=t.bezier(0,0,.3,1),Zr=function(e){this._map=e,this._el=e.getCanvasContainer(),this._state=\\\"disabled\\\",t.bindAll([\\\"_onMove\\\",\\\"_onMouseUp\\\",\\\"_onTouchEnd\\\",\\\"_onBlur\\\",\\\"_onDragFrame\\\"],this)};Zr.prototype.isEnabled=function(){return\\\"disabled\\\"!==this._state},Zr.prototype.isActive=function(){return\\\"active\\\"===this._state},Zr.prototype.enable=function(){this.isEnabled()||(this._el.classList.add(\\\"mapboxgl-touch-drag-pan\\\"),this._state=\\\"enabled\\\")},Zr.prototype.disable=function(){if(this.isEnabled())switch(this._el.classList.remove(\\\"mapboxgl-touch-drag-pan\\\"),this._state){case\\\"active\\\":this._state=\\\"disabled\\\",this._unbind(),this._deactivate(),this._fireEvent(\\\"dragend\\\"),this._fireEvent(\\\"moveend\\\");break;case\\\"pending\\\":this._state=\\\"disabled\\\",this._unbind();break;default:this._state=\\\"disabled\\\"}},Zr.prototype.onMouseDown=function(e){\\\"enabled\\\"===this._state&&(e.ctrlKey||0!==s.mouseButton(e)||(s.addEventListener(t.default.document,\\\"mousemove\\\",this._onMove,{capture:!0}),s.addEventListener(t.default.document,\\\"mouseup\\\",this._onMouseUp),this._start(e)))},Zr.prototype.onTouchStart=function(e){\\\"enabled\\\"===this._state&&(e.touches.length>1||(s.addEventListener(t.default.document,\\\"touchmove\\\",this._onMove,{capture:!0,passive:!1}),s.addEventListener(t.default.document,\\\"touchend\\\",this._onTouchEnd),this._start(e)))},Zr.prototype._start=function(e){t.default.addEventListener(\\\"blur\\\",this._onBlur),this._state=\\\"pending\\\",this._previousPos=s.mousePos(this._el,e),this._inertia=[[a.now(),this._previousPos]]},Zr.prototype._onMove=function(t){this._lastMoveEvent=t,t.preventDefault(),this._pos=s.mousePos(this._el,t),this._drainInertiaBuffer(),this._inertia.push([a.now(),this._pos]),\\\"pending\\\"===this._state&&(this._state=\\\"active\\\",this._fireEvent(\\\"dragstart\\\",t),this._fireEvent(\\\"movestart\\\",t)),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onDragFrame))},Zr.prototype._onDragFrame=function(){this._frameId=null;var t=this._lastMoveEvent;if(t){var e=this._map.transform;e.setLocationAtPoint(e.pointLocation(this._previousPos),this._pos),this._fireEvent(\\\"drag\\\",t),this._fireEvent(\\\"move\\\",t),this._previousPos=this._pos,delete this._lastMoveEvent}},Zr.prototype._onMouseUp=function(t){if(0===s.mouseButton(t))switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",s.suppressClick(),this._unbind(),this._deactivate(),this._inertialPan(t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Zr.prototype._onTouchEnd=function(t){switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",this._unbind(),this._deactivate(),this._inertialPan(t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Zr.prototype._onBlur=function(t){switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",this._unbind(),this._deactivate(),this._fireEvent(\\\"dragend\\\",t),this._fireEvent(\\\"moveend\\\",t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Zr.prototype._unbind=function(){s.removeEventListener(t.default.document,\\\"touchmove\\\",this._onMove,{capture:!0,passive:!1}),s.removeEventListener(t.default.document,\\\"touchend\\\",this._onTouchEnd),s.removeEventListener(t.default.document,\\\"mousemove\\\",this._onMove,{capture:!0}),s.removeEventListener(t.default.document,\\\"mouseup\\\",this._onMouseUp),s.removeEventListener(t.default,\\\"blur\\\",this._onBlur)},Zr.prototype._deactivate=function(){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._lastMoveEvent,delete this._previousPos,delete this._pos},Zr.prototype._inertialPan=function(t){this._fireEvent(\\\"dragend\\\",t),this._drainInertiaBuffer();var e=this._inertia;if(e.length<2)this._fireEvent(\\\"moveend\\\",t);else{var r=e[e.length-1],n=e[0],i=r[1].sub(n[1]),a=(r[0]-n[0])/1e3;if(0===a||r[1].equals(n[1]))this._fireEvent(\\\"moveend\\\",t);else{var o=i.mult(.3/a),s=o.mag();s>1400&&(s=1400,o._unit()._mult(s));var l=s/750,c=o.mult(-l/2);this._map.panBy(c,{duration:1e3*l,easing:Xr,noMoveStart:!0},{originalEvent:t})}}},Zr.prototype._fireEvent=function(e,r){return this._map.fire(new t.Event(e,r?{originalEvent:r}:{}))},Zr.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=a.now();t.length>0&&e-t[0][0]>160;)t.shift()};var $r=function(e){this._map=e,this._el=e.getCanvasContainer(),t.bindAll([\\\"_onKeyDown\\\"],this)};function Jr(t){return t*(2-t)}$r.prototype.isEnabled=function(){return!!this._enabled},$r.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener(\\\"keydown\\\",this._onKeyDown,!1),this._enabled=!0)},$r.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener(\\\"keydown\\\",this._onKeyDown),this._enabled=!1)},$r.prototype._onKeyDown=function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e=0,r=0,n=0,i=0,a=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?r=-1:(t.preventDefault(),i=-1);break;case 39:t.shiftKey?r=1:(t.preventDefault(),i=1);break;case 38:t.shiftKey?n=1:(t.preventDefault(),a=-1);break;case 40:t.shiftKey?n=-1:(a=1,t.preventDefault());break;default:return}var o=this._map,s=o.getZoom(),l={duration:300,delayEndEvents:500,easing:Jr,zoom:e?Math.round(s)+e*(t.shiftKey?2:1):s,bearing:o.getBearing()+15*r,pitch:o.getPitch()+10*n,offset:[100*-i,100*-a],center:o.getCenter()};o.easeTo(l,{originalEvent:t})}};var Kr=function(e){this._map=e,t.bindAll([\\\"_onDblClick\\\",\\\"_onZoomEnd\\\"],this)};Kr.prototype.isEnabled=function(){return!!this._enabled},Kr.prototype.isActive=function(){return!!this._active},Kr.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},Kr.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Kr.prototype.onTouchStart=function(t){var e=this;this.isEnabled()&&(t.points.length>1||(this._tapped?(clearTimeout(this._tapped),this._tapped=null,this._zoom(t)):this._tapped=setTimeout(function(){e._tapped=null},300)))},Kr.prototype.onDblClick=function(t){this.isEnabled()&&(t.originalEvent.preventDefault(),this._zoom(t))},Kr.prototype._zoom=function(t){this._active=!0,this._map.on(\\\"zoomend\\\",this._onZoomEnd),this._map.zoomTo(this._map.getZoom()+(t.originalEvent.shiftKey?-1:1),{around:t.lngLat},t)},Kr.prototype._onZoomEnd=function(){this._active=!1,this._map.off(\\\"zoomend\\\",this._onZoomEnd)};var Qr=t.bezier(0,0,.15,1),tn=function(e){this._map=e,this._el=e.getCanvasContainer(),t.bindAll([\\\"_onMove\\\",\\\"_onEnd\\\",\\\"_onTouchFrame\\\"],this)};tn.prototype.isEnabled=function(){return!!this._enabled},tn.prototype.enable=function(t){this.isEnabled()||(this._el.classList.add(\\\"mapboxgl-touch-zoom-rotate\\\"),this._enabled=!0,this._aroundCenter=!!t&&\\\"center\\\"===t.around)},tn.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove(\\\"mapboxgl-touch-zoom-rotate\\\"),this._enabled=!1)},tn.prototype.disableRotation=function(){this._rotationDisabled=!0},tn.prototype.enableRotation=function(){this._rotationDisabled=!1},tn.prototype.onStart=function(e){if(this.isEnabled()&&2===e.touches.length){var r=s.mousePos(this._el,e.touches[0]),n=s.mousePos(this._el,e.touches[1]);this._startVec=r.sub(n),this._gestureIntent=void 0,this._inertia=[],s.addEventListener(t.default.document,\\\"touchmove\\\",this._onMove,{passive:!1}),s.addEventListener(t.default.document,\\\"touchend\\\",this._onEnd)}},tn.prototype._getTouchEventData=function(t){var e=s.mousePos(this._el,t.touches[0]),r=s.mousePos(this._el,t.touches[1]),n=e.sub(r);return{vec:n,center:e.add(r).div(2),scale:n.mag()/this._startVec.mag(),bearing:this._rotationDisabled?0:180*n.angleWith(this._startVec)/Math.PI}},tn.prototype._onMove=function(e){if(2===e.touches.length){var r=this._getTouchEventData(e),n=r.vec,i=r.scale,a=r.bearing;if(!this._gestureIntent){var o=Math.abs(1-i)>.15;Math.abs(a)>10?this._gestureIntent=\\\"rotate\\\":o&&(this._gestureIntent=\\\"zoom\\\"),this._gestureIntent&&(this._map.fire(new t.Event(this._gestureIntent+\\\"start\\\",{originalEvent:e})),this._map.fire(new t.Event(\\\"movestart\\\",{originalEvent:e})),this._startVec=n)}this._lastTouchEvent=e,this._frameId||(this._frameId=this._map._requestRenderFrame(this._onTouchFrame)),e.preventDefault()}},tn.prototype._onTouchFrame=function(){this._frameId=null;var e=this._gestureIntent;if(e){var r=this._map.transform;this._startScale||(this._startScale=r.scale,this._startBearing=r.bearing);var n=this._getTouchEventData(this._lastTouchEvent),i=n.center,o=n.bearing,s=n.scale,l=r.pointLocation(i),c=r.locationPoint(l);\\\"rotate\\\"===e&&(r.bearing=this._startBearing+o),r.zoom=r.scaleZoom(this._startScale*s),r.setLocationAtPoint(l,c),this._map.fire(new t.Event(e,{originalEvent:this._lastTouchEvent})),this._map.fire(new t.Event(\\\"move\\\",{originalEvent:this._lastTouchEvent})),this._drainInertiaBuffer(),this._inertia.push([a.now(),s,i])}},tn.prototype._onEnd=function(e){s.removeEventListener(t.default.document,\\\"touchmove\\\",this._onMove,{passive:!1}),s.removeEventListener(t.default.document,\\\"touchend\\\",this._onEnd);var r=this._gestureIntent,n=this._startScale;if(this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._gestureIntent,delete this._startScale,delete this._startBearing,delete this._lastTouchEvent,r){this._map.fire(new t.Event(r+\\\"end\\\",{originalEvent:e})),this._drainInertiaBuffer();var i=this._inertia,a=this._map;if(i.length<2)a.snapToNorth({},{originalEvent:e});else{var o=i[i.length-1],l=i[0],c=a.transform.scaleZoom(n*o[1]),u=a.transform.scaleZoom(n*l[1]),f=c-u,h=(o[0]-l[0])/1e3,p=o[2];if(0!==h&&c!==u){var d=.15*f/h;Math.abs(d)>2.5&&(d=d>0?2.5:-2.5);var g=1e3*Math.abs(d/(12*.15)),v=c+d*g/2e3;v<0&&(v=0),a.easeTo({zoom:v,duration:g,easing:Qr,around:this._aroundCenter?a.getCenter():a.unproject(p),noMoveStart:!0},{originalEvent:e})}else a.snapToNorth({},{originalEvent:e})}}},tn.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=a.now();t.length>2&&e-t[0][0]>160;)t.shift()};var en={scrollZoom:Hr,boxZoom:Gr,dragRotate:Yr,dragPan:Zr,keyboard:$r,doubleClickZoom:Kr,touchZoomRotate:tn},rn=function(e){function r(r,n){e.call(this),this._moving=!1,this._zooming=!1,this.transform=r,this._bearingSnap=n.bearingSnap,t.bindAll([\\\"_renderFrameCallback\\\"],this)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.getCenter=function(){return this.transform.center},r.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e)},r.prototype.panBy=function(e,r,n){return e=t.default$1.convert(e).mult(-1),this.panTo(this.transform.center,t.extend({offset:e},r),n)},r.prototype.panTo=function(e,r,n){return this.easeTo(t.extend({center:e},r),n)},r.prototype.getZoom=function(){return this.transform.zoom},r.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},r.prototype.zoomTo=function(e,r,n){return this.easeTo(t.extend({zoom:e},r),n)},r.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},r.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},r.prototype.getBearing=function(){return this.transform.bearing},r.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},r.prototype.rotateTo=function(e,r,n){return this.easeTo(t.extend({bearing:e},r),n)},r.prototype.resetNorth=function(e,r){return this.rotateTo(0,t.extend({duration:1e3},e),r),this},r.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(t,e):this},r.prototype.getPitch=function(){return this.transform.pitch},r.prototype.setPitch=function(t,e){return this.jumpTo({pitch:t},e),this},r.prototype.fitBounds=function(e,r,n){if(\\\"number\\\"==typeof(r=t.extend({padding:{top:0,bottom:0,right:0,left:0},offset:[0,0],maxZoom:this.transform.maxZoom},r)).padding){var i=r.padding;r.padding={top:i,bottom:i,right:i,left:i}}if(!t.default$10(Object.keys(r.padding).sort(function(t,e){return t<e?-1:t>e?1:0}),[\\\"bottom\\\",\\\"left\\\",\\\"right\\\",\\\"top\\\"]))return t.warnOnce(\\\"options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'\\\"),this;e=W.convert(e);var a=[(r.padding.left-r.padding.right)/2,(r.padding.top-r.padding.bottom)/2],o=Math.min(r.padding.right,r.padding.left),s=Math.min(r.padding.top,r.padding.bottom);r.offset=[r.offset[0]+a[0],r.offset[1]+a[1]];var l=t.default$1.convert(r.offset),c=this.transform,u=c.project(e.getNorthWest()),f=c.project(e.getSouthEast()),h=f.sub(u),p=(c.width-2*o-2*Math.abs(l.x))/h.x,d=(c.height-2*s-2*Math.abs(l.y))/h.y;return d<0||p<0?(t.warnOnce(\\\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\\\"),this):(r.center=c.unproject(u.add(f).div(2)),r.zoom=Math.min(c.scaleZoom(c.scale*Math.min(p,d)),r.maxZoom),r.bearing=0,r.linear?this.easeTo(r,n):this.flyTo(r,n))},r.prototype.jumpTo=function(e,r){this.stop();var n=this.transform,i=!1,a=!1,o=!1;return\\\"zoom\\\"in e&&n.zoom!==+e.zoom&&(i=!0,n.zoom=+e.zoom),void 0!==e.center&&(n.center=G.convert(e.center)),\\\"bearing\\\"in e&&n.bearing!==+e.bearing&&(a=!0,n.bearing=+e.bearing),\\\"pitch\\\"in e&&n.pitch!==+e.pitch&&(o=!0,n.pitch=+e.pitch),this.fire(new t.Event(\\\"movestart\\\",r)).fire(new t.Event(\\\"move\\\",r)),i&&this.fire(new t.Event(\\\"zoomstart\\\",r)).fire(new t.Event(\\\"zoom\\\",r)).fire(new t.Event(\\\"zoomend\\\",r)),a&&this.fire(new t.Event(\\\"rotatestart\\\",r)).fire(new t.Event(\\\"rotate\\\",r)).fire(new t.Event(\\\"rotateend\\\",r)),o&&this.fire(new t.Event(\\\"pitchstart\\\",r)).fire(new t.Event(\\\"pitch\\\",r)).fire(new t.Event(\\\"pitchend\\\",r)),this.fire(new t.Event(\\\"moveend\\\",r))},r.prototype.easeTo=function(e,r){var n=this;this.stop(),!1===(e=t.extend({offset:[0,0],duration:500,easing:t.ease},e)).animate&&(e.duration=0);var i=this.transform,a=this.getZoom(),o=this.getBearing(),s=this.getPitch(),l=\\\"zoom\\\"in e?+e.zoom:a,c=\\\"bearing\\\"in e?this._normalizeBearing(e.bearing,o):o,u=\\\"pitch\\\"in e?+e.pitch:s,f=i.centerPoint.add(t.default$1.convert(e.offset)),h=i.pointLocation(f),p=G.convert(e.center||h);this._normalizeCenter(p);var d,g,v=i.project(h),m=i.project(p).sub(v),y=i.zoomScale(l-a);return e.around&&(d=G.convert(e.around),g=i.locationPoint(d)),this._zooming=l!==a,this._rotating=o!==c,this._pitching=u!==s,this._prepareEase(r,e.noMoveStart),clearTimeout(this._easeEndTimeoutID),this._ease(function(e){if(n._zooming&&(i.zoom=t.number(a,l,e)),n._rotating&&(i.bearing=t.number(o,c,e)),n._pitching&&(i.pitch=t.number(s,u,e)),d)i.setLocationAtPoint(d,g);else{var h=i.zoomScale(i.zoom-a),p=l>a?Math.min(2,y):Math.max(.5,y),x=Math.pow(p,1-e),b=i.unproject(v.add(m.mult(e*x)).mult(h));i.setLocationAtPoint(i.renderWorldCopies?b.wrap():b,f)}n._fireMoveEvents(r)},function(){e.delayEndEvents?n._easeEndTimeoutID=setTimeout(function(){return n._afterEase(r)},e.delayEndEvents):n._afterEase(r)},e),this},r.prototype._prepareEase=function(e,r){this._moving=!0,r||this.fire(new t.Event(\\\"movestart\\\",e)),this._zooming&&this.fire(new t.Event(\\\"zoomstart\\\",e)),this._rotating&&this.fire(new t.Event(\\\"rotatestart\\\",e)),this._pitching&&this.fire(new t.Event(\\\"pitchstart\\\",e))},r.prototype._fireMoveEvents=function(e){this.fire(new t.Event(\\\"move\\\",e)),this._zooming&&this.fire(new t.Event(\\\"zoom\\\",e)),this._rotating&&this.fire(new t.Event(\\\"rotate\\\",e)),this._pitching&&this.fire(new t.Event(\\\"pitch\\\",e))},r.prototype._afterEase=function(e){var r=this._zooming,n=this._rotating,i=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,r&&this.fire(new t.Event(\\\"zoomend\\\",e)),n&&this.fire(new t.Event(\\\"rotateend\\\",e)),i&&this.fire(new t.Event(\\\"pitchend\\\",e)),this.fire(new t.Event(\\\"moveend\\\",e))},r.prototype.flyTo=function(e,r){var n=this;this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var i=this.transform,a=this.getZoom(),o=this.getBearing(),s=this.getPitch(),l=\\\"zoom\\\"in e?t.clamp(+e.zoom,i.minZoom,i.maxZoom):a,c=\\\"bearing\\\"in e?this._normalizeBearing(e.bearing,o):o,u=\\\"pitch\\\"in e?+e.pitch:s,f=i.zoomScale(l-a),h=i.centerPoint.add(t.default$1.convert(e.offset)),p=i.pointLocation(h),d=G.convert(e.center||p);this._normalizeCenter(d);var g=i.project(p),v=i.project(d).sub(g),m=e.curve,y=Math.max(i.width,i.height),x=y/f,b=v.mag();if(\\\"minZoom\\\"in e){var _=t.clamp(Math.min(e.minZoom,a,l),i.minZoom,i.maxZoom),w=y/i.zoomScale(_-a);m=Math.sqrt(w/b*2)}var k=m*m;function M(t){var e=(x*x-y*y+(t?-1:1)*k*k*b*b)/(2*(t?x:y)*k*b);return Math.log(Math.sqrt(e*e+1)-e)}function A(t){return(Math.exp(t)-Math.exp(-t))/2}function T(t){return(Math.exp(t)+Math.exp(-t))/2}var S=M(0),E=function(t){return T(S)/T(S+m*t)},C=function(t){return y*((T(S)*(A(e=S+m*t)/T(e))-A(S))/k)/b;var e},L=(M(1)-S)/m;if(Math.abs(b)<1e-6||!isFinite(L)){if(Math.abs(y-x)<1e-6)return this.easeTo(e,r);var z=x<y?-1:1;L=Math.abs(Math.log(x/y))/m,C=function(){return 0},E=function(t){return Math.exp(z*m*t)}}if(\\\"duration\\\"in e)e.duration=+e.duration;else{var O=\\\"screenSpeed\\\"in e?+e.screenSpeed/m:+e.speed;e.duration=1e3*L/O}return e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=o!==c,this._pitching=u!==s,this._prepareEase(r,!1),this._ease(function(e){var l=e*L,f=1/E(l);i.zoom=a+i.scaleZoom(f),n._rotating&&(i.bearing=t.number(o,c,e)),n._pitching&&(i.pitch=t.number(s,u,e));var p=i.unproject(g.add(v.mult(C(l))).mult(f));i.setLocationAtPoint(i.renderWorldCopies?p.wrap():p,h),n._fireMoveEvents(r)},function(){return n._afterEase(r)},e),this},r.prototype.isEasing=function(){return!!this._easeFrameId},r.prototype.stop=function(){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var t=this._onEaseEnd;delete this._onEaseEnd,t.call(this)}return this},r.prototype._ease=function(t,e,r){!1===r.animate||0===r.duration?(t(1),e()):(this._easeStart=a.now(),this._easeOptions=r,this._onEaseFrame=t,this._onEaseEnd=e,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},r.prototype._renderFrameCallback=function(){var t=Math.min((a.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(t)),t<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},r.prototype._normalizeBearing=function(e,r){e=t.wrap(e,-180,180);var n=Math.abs(e-r);return Math.abs(e-360-r)<n&&(e-=360),Math.abs(e+360-r)<n&&(e+=360),e},r.prototype._normalizeCenter=function(t){var e=this.transform;if(e.renderWorldCopies&&!e.lngRange){var r=t.lng-e.center.lng;t.lng+=r>180?-360:r<-180?360:0}},r}(t.Evented),nn=function(e){void 0===e&&(e={}),this.options=e,t.bindAll([\\\"_updateEditLink\\\",\\\"_updateData\\\",\\\"_updateCompact\\\"],this)};nn.prototype.getDefaultPosition=function(){return\\\"bottom-right\\\"},nn.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl mapboxgl-ctrl-attrib\\\"),e&&this._container.classList.add(\\\"mapboxgl-compact\\\"),this._updateAttributions(),this._updateEditLink(),this._map.on(\\\"sourcedata\\\",this._updateData),this._map.on(\\\"moveend\\\",this._updateEditLink),void 0===e&&(this._map.on(\\\"resize\\\",this._updateCompact),this._updateCompact()),this._container},nn.prototype.onRemove=function(){s.remove(this._container),this._map.off(\\\"sourcedata\\\",this._updateData),this._map.off(\\\"moveend\\\",this._updateEditLink),this._map.off(\\\"resize\\\",this._updateCompact),this._map=void 0},nn.prototype._updateEditLink=function(){var t=this._editLink;t||(t=this._editLink=this._container.querySelector(\\\".mapbox-improve-map\\\"));var e=[{key:\\\"owner\\\",value:this.styleOwner},{key:\\\"id\\\",value:this.styleId},{key:\\\"access_token\\\",value:v.ACCESS_TOKEN}];if(t){var r=e.reduce(function(t,r,n){return r.value&&(t+=r.key+\\\"=\\\"+r.value+(n<e.length-1?\\\"&\\\":\\\"\\\")),t},\\\"?\\\");t.href=\\\"https://www.mapbox.com/feedback/\\\"+r+(this._map._hash?this._map._hash.getHashString(!0):\\\"\\\")}},nn.prototype._updateData=function(t){t&&\\\"metadata\\\"===t.sourceDataType&&(this._updateAttributions(),this._updateEditLink())},nn.prototype._updateAttributions=function(){if(this._map.style){var t=[];if(this._map.style.stylesheet){var e=this._map.style.stylesheet;this.styleOwner=e.owner,this.styleId=e.id}var r=this._map.style.sourceCaches;for(var n in r){var i=r[n].getSource();i.attribution&&t.indexOf(i.attribution)<0&&t.push(i.attribution)}t.sort(function(t,e){return t.length-e.length}),(t=t.filter(function(e,r){for(var n=r+1;n<t.length;n++)if(t[n].indexOf(e)>=0)return!1;return!0})).length?(this._container.innerHTML=t.join(\\\" | \\\"),this._container.classList.remove(\\\"mapboxgl-attrib-empty\\\")):this._container.classList.add(\\\"mapboxgl-attrib-empty\\\"),this._editLink=null}},nn.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add(\\\"mapboxgl-compact\\\"):this._container.classList.remove(\\\"mapboxgl-compact\\\")};var an=function(){t.bindAll([\\\"_updateLogo\\\"],this)};an.prototype.onAdd=function(t){this._map=t,this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl\\\");var e=s.create(\\\"a\\\",\\\"mapboxgl-ctrl-logo\\\");return e.target=\\\"_blank\\\",e.href=\\\"https://www.mapbox.com/\\\",e.setAttribute(\\\"aria-label\\\",\\\"Mapbox logo\\\"),this._container.appendChild(e),this._container.style.display=\\\"none\\\",this._map.on(\\\"sourcedata\\\",this._updateLogo),this._updateLogo(),this._container},an.prototype.onRemove=function(){s.remove(this._container),this._map.off(\\\"sourcedata\\\",this._updateLogo)},an.prototype.getDefaultPosition=function(){return\\\"bottom-left\\\"},an.prototype._updateLogo=function(t){t&&\\\"metadata\\\"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?\\\"block\\\":\\\"none\\\")},an.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}};var on=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};on.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},on.prototype.remove=function(t){for(var e=this._currentlyRunning,r=0,n=e?this._queue.concat(e):this._queue;r<n.length;r+=1){var i=n[r];if(i.id===t)return void(i.cancelled=!0)}},on.prototype.run=function(){var t=this._currentlyRunning=this._queue;this._queue=[];for(var e=0,r=t;e<r.length;e+=1){var n=r[e];if(!n.cancelled&&(n.callback(),this._cleared))break}this._cleared=!1,this._currentlyRunning=!1},on.prototype.clear=function(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]};var sn=t.default.HTMLImageElement,ln=t.default.HTMLElement,cn={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:0,maxZoom:22,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,transformRequest:null,fadeDuration:300},un=function(r){function n(e){if(null!=(e=t.extend({},cn,e)).minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error(\\\"maxZoom must be greater than minZoom\\\");var n=new Fr(e.minZoom,e.maxZoom,e.renderWorldCopies);r.call(this,n,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new on;var i=e.transformRequest;if(this._transformRequest=i?function(t,e){return i(t,e)||{url:t}}:function(t){return{url:t}},\\\"string\\\"==typeof e.container){var a=t.default.document.getElementById(e.container);if(!a)throw new Error(\\\"Container '\\\"+e.container+\\\"' not found.\\\");this._container=a}else{if(!(e.container instanceof ln))throw new Error(\\\"Invalid type: 'container' must be a String or HTMLElement.\\\");this._container=e.container}e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll([\\\"_onWindowOnline\\\",\\\"_onWindowResize\\\",\\\"_contextLost\\\",\\\"_contextRestored\\\",\\\"_update\\\",\\\"_render\\\",\\\"_onData\\\",\\\"_onDataLoading\\\"],this),this._setupContainer(),this._setupPainter(),this.on(\\\"move\\\",this._update.bind(this,!1)),this.on(\\\"zoom\\\",this._update.bind(this,!0)),void 0!==t.default&&(t.default.addEventListener(\\\"online\\\",this._onWindowOnline,!1),t.default.addEventListener(\\\"resize\\\",this._onWindowResize,!1)),function(t,e){var r=t.getCanvasContainer(),n=null,i=!1;for(var a in en)t[a]=new en[a](t,e),e.interactive&&e[a]&&t[a].enable(e[a]);s.addEventListener(r,\\\"mouseout\\\",function(e){t.fire(new Vr(\\\"mouseout\\\",t,e))}),s.addEventListener(r,\\\"mousedown\\\",function(r){i=!0;var n=new Vr(\\\"mousedown\\\",t,r);t.fire(n),n.defaultPrevented||(e.interactive&&!t.doubleClickZoom.isActive()&&t.stop(),t.boxZoom.onMouseDown(r),t.boxZoom.isActive()||t.dragPan.isActive()||t.dragRotate.onMouseDown(r),t.boxZoom.isActive()||t.dragRotate.isActive()||t.dragPan.onMouseDown(r))}),s.addEventListener(r,\\\"mouseup\\\",function(e){var r=t.dragRotate.isActive();n&&!r&&t.fire(new Vr(\\\"contextmenu\\\",t,n)),n=null,i=!1,t.fire(new Vr(\\\"mouseup\\\",t,e))}),s.addEventListener(r,\\\"mousemove\\\",function(e){if(!t.dragPan.isActive()&&!t.dragRotate.isActive()){for(var n=e.toElement||e.target;n&&n!==r;)n=n.parentNode;n===r&&t.fire(new Vr(\\\"mousemove\\\",t,e))}}),s.addEventListener(r,\\\"mouseover\\\",function(e){for(var n=e.toElement||e.target;n&&n!==r;)n=n.parentNode;n===r&&t.fire(new Vr(\\\"mouseover\\\",t,e))}),s.addEventListener(r,\\\"touchstart\\\",function(r){var n=new Ur(\\\"touchstart\\\",t,r);t.fire(n),n.defaultPrevented||(e.interactive&&t.stop(),t.boxZoom.isActive()||t.dragRotate.isActive()||t.dragPan.onTouchStart(r),t.touchZoomRotate.onStart(r),t.doubleClickZoom.onTouchStart(n))},{passive:!1}),s.addEventListener(r,\\\"touchmove\\\",function(e){t.fire(new Ur(\\\"touchmove\\\",t,e))},{passive:!1}),s.addEventListener(r,\\\"touchend\\\",function(e){t.fire(new Ur(\\\"touchend\\\",t,e))}),s.addEventListener(r,\\\"touchcancel\\\",function(e){t.fire(new Ur(\\\"touchcancel\\\",t,e))}),s.addEventListener(r,\\\"click\\\",function(e){t.fire(new Vr(\\\"click\\\",t,e))}),s.addEventListener(r,\\\"dblclick\\\",function(e){var r=new Vr(\\\"dblclick\\\",t,e);t.fire(r),r.defaultPrevented||t.doubleClickZoom.onDblClick(r)}),s.addEventListener(r,\\\"contextmenu\\\",function(e){var r=t.dragRotate.isActive();i||r?i&&(n=e):t.fire(new Vr(\\\"contextmenu\\\",t,e)),e.preventDefault()}),s.addEventListener(r,\\\"wheel\\\",function(e){var r=new qr(\\\"wheel\\\",t,e);t.fire(r),r.defaultPrevented||t.scrollZoom.onWheel(e)},{passive:!1})}(this,e),this._hash=e.hash&&(new jr).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this.resize(),e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new nn),this.addControl(new an,e.logoPosition),this.on(\\\"style.load\\\",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on(\\\"data\\\",this._onData),this.on(\\\"dataloading\\\",this._onDataLoading)}r&&(n.__proto__=r),n.prototype=Object.create(r&&r.prototype),n.prototype.constructor=n;var i={showTileBoundaries:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0}};return n.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e=\\\"top-right\\\");var r=t.onAdd(this),n=this._controlPositions[e];return-1!==e.indexOf(\\\"bottom\\\")?n.insertBefore(r,n.firstChild):n.appendChild(r),this},n.prototype.removeControl=function(t){return t.onRemove(this),this},n.prototype.resize=function(e){var r=this._containerDimensions(),n=r[0],i=r[1];return this._resizeCanvas(n,i),this.transform.resize(n,i),this.painter.resize(n,i),this.fire(new t.Event(\\\"movestart\\\",e)).fire(new t.Event(\\\"move\\\",e)).fire(new t.Event(\\\"resize\\\",e)).fire(new t.Event(\\\"moveend\\\",e))},n.prototype.getBounds=function(){var e=new W(this.transform.pointLocation(new t.default$1(0,this.transform.height)),this.transform.pointLocation(new t.default$1(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(e.extend(this.transform.pointLocation(new t.default$1(this.transform.size.x,0))),e.extend(this.transform.pointLocation(new t.default$1(0,this.transform.size.y)))),e},n.prototype.getMaxBounds=function(){return this.transform.latRange&&2===this.transform.latRange.length&&this.transform.lngRange&&2===this.transform.lngRange.length?new W([this.transform.lngRange[0],this.transform.latRange[0]],[this.transform.lngRange[1],this.transform.latRange[1]]):null},n.prototype.setMaxBounds=function(t){if(t){var e=W.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null==t&&(this.transform.lngRange=null,this.transform.latRange=null,this._update());return this},n.prototype.setMinZoom=function(t){if((t=null==t?0:t)>=0&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()<t&&this.setZoom(t),this;throw new Error(\\\"minZoom must be between 0 and the current maxZoom, inclusive\\\")},n.prototype.getMinZoom=function(){return this.transform.minZoom},n.prototype.setMaxZoom=function(t){if((t=null==t?22:t)>=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error(\\\"maxZoom must be greater than the current minZoom\\\")},n.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},n.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update(),this},n.prototype.getMaxZoom=function(){return this.transform.maxZoom},n.prototype.project=function(t){return this.transform.locationPoint(G.convert(t))},n.prototype.unproject=function(e){return this.transform.pointLocation(t.default$1.convert(e))},n.prototype.isMoving=function(){return this._moving||this.dragPan.isActive()||this.dragRotate.isActive()||this.scrollZoom.isActive()},n.prototype.isZooming=function(){return this._zooming||this.scrollZoom.isActive()},n.prototype.isRotating=function(){return this._rotating||this.dragRotate.isActive()},n.prototype.on=function(t,e,n){var i,a=this;if(void 0===n)return r.prototype.on.call(this,t,e);var o=function(){if(\\\"mouseenter\\\"===t||\\\"mouseover\\\"===t){var r=!1;return{layer:e,listener:n,delegates:{mousemove:function(i){var o=a.getLayer(e)?a.queryRenderedFeatures(i.point,{layers:[e]}):[];o.length?r||(r=!0,n.call(a,new Vr(t,a,i.originalEvent,{features:o}))):r=!1},mouseout:function(){r=!1}}}}if(\\\"mouseleave\\\"===t||\\\"mouseout\\\"===t){var o=!1;return{layer:e,listener:n,delegates:{mousemove:function(r){(a.getLayer(e)?a.queryRenderedFeatures(r.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,n.call(a,new Vr(t,a,r.originalEvent)))},mouseout:function(e){o&&(o=!1,n.call(a,new Vr(t,a,e.originalEvent)))}}}}return{layer:e,listener:n,delegates:(i={},i[t]=function(t){var r=a.getLayer(e)?a.queryRenderedFeatures(t.point,{layers:[e]}):[];r.length&&(t.features=r,n.call(a,t),delete t.features)},i)}}();for(var s in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(o),o.delegates)a.on(s,o.delegates[s]);return this},n.prototype.off=function(t,e,n){if(void 0===n)return r.prototype.off.call(this,t,e);if(this._delegatedListeners&&this._delegatedListeners[t])for(var i=this._delegatedListeners[t],a=0;a<i.length;a++){var o=i[a];if(o.layer===e&&o.listener===n){for(var s in o.delegates)this.off(s,o.delegates[s]);return i.splice(a,1),this}}return this},n.prototype.queryRenderedFeatures=function(e,r){var n;return 2===arguments.length?(e=arguments[0],r=arguments[1]):1===arguments.length&&((n=arguments[0])instanceof t.default$1||Array.isArray(n))?(e=arguments[0],r={}):1===arguments.length?(e=void 0,r=arguments[0]):(e=void 0,r={}),this.style?this.style.queryRenderedFeatures(this._makeQueryGeometry(e),r,this.transform):[]},n.prototype._makeQueryGeometry=function(e){var r,n=this;if(void 0===e&&(e=[t.default$1.convert([0,0]),t.default$1.convert([this.transform.width,this.transform.height])]),e instanceof t.default$1||\\\"number\\\"==typeof e[0])r=[t.default$1.convert(e)];else{var i=[t.default$1.convert(e[0]),t.default$1.convert(e[1])];r=[i[0],new t.default$1(i[1].x,i[0].y),i[1],new t.default$1(i[0].x,i[1].y),i[0]]}return{viewport:r,worldCoordinate:r.map(function(t){return n.transform.pointCoordinate(t)})}},n.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},n.prototype.setStyle=function(e,r){if((!r||!1!==r.diff&&!r.localIdeographFontFamily)&&this.style&&e&&\\\"object\\\"==typeof e)try{return this.style.setState(e)&&this._update(!0),this}catch(e){t.warnOnce(\\\"Unable to perform style diff: \\\"+(e.message||e.error||e)+\\\".  Rebuilding the style from scratch.\\\")}return this.style&&(this.style.setEventedParent(null),this.style._remove()),e?(this.style=new Je(this,r||{}),this.style.setEventedParent(this,{style:this.style}),\\\"string\\\"==typeof e?this.style.loadURL(e):this.style.loadJSON(e),this):(delete this.style,this)},n.prototype.getStyle=function(){if(this.style)return this.style.serialize()},n.prototype.isStyleLoaded=function(){return this.style?this.style.loaded():t.warnOnce(\\\"There is no style added to the map.\\\")},n.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},n.prototype.isSourceLoaded=function(e){var r=this.style&&this.style.sourceCaches[e];if(void 0!==r)return r.loaded();this.fire(new t.ErrorEvent(new Error(\\\"There is no source with ID '\\\"+e+\\\"'\\\")))},n.prototype.areTilesLoaded=function(){var t=this.style&&this.style.sourceCaches;for(var e in t){var r=t[e]._tiles;for(var n in r){var i=r[n];if(\\\"loaded\\\"!==i.state&&\\\"errored\\\"!==i.state)return!1}}return!0},n.prototype.addSourceType=function(t,e,r){return this.style.addSourceType(t,e,r)},n.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},n.prototype.getSource=function(t){return this.style.getSource(t)},n.prototype.addImage=function(e,r,n){void 0===n&&(n={});var i=n.pixelRatio;void 0===i&&(i=1);var o=n.sdf;if(void 0===o&&(o=!1),r instanceof sn){var s=a.getImageData(r),l=s.width,c=s.height,u=s.data;this.style.addImage(e,{data:new t.RGBAImage({width:l,height:c},u),pixelRatio:i,sdf:o})}else{if(void 0===r.width||void 0===r.height)return this.fire(new t.ErrorEvent(new Error(\\\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\\\")));var f=r.width,h=r.height,p=r.data;this.style.addImage(e,{data:new t.RGBAImage({width:f,height:h},p.slice(0)),pixelRatio:i,sdf:o})}},n.prototype.hasImage=function(e){return e?!!this.style.getImage(e):(this.fire(new t.ErrorEvent(new Error(\\\"Missing required image id\\\"))),!1)},n.prototype.removeImage=function(t){this.style.removeImage(t)},n.prototype.loadImage=function(e,r){t.getImage(this._transformRequest(e,t.ResourceType.Image),r)},n.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},n.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},n.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},n.prototype.getLayer=function(t){return this.style.getLayer(t)},n.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},n.prototype.setLayerZoomRange=function(t,e,r){return this.style.setLayerZoomRange(t,e,r),this._update(!0),this},n.prototype.getFilter=function(t){return this.style.getFilter(t)},n.prototype.setPaintProperty=function(t,e,r){return this.style.setPaintProperty(t,e,r),this._update(!0),this},n.prototype.getPaintProperty=function(t,e){return this.style.getPaintProperty(t,e)},n.prototype.setLayoutProperty=function(t,e,r){return this.style.setLayoutProperty(t,e,r),this._update(!0),this},n.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},n.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},n.prototype.getLight=function(){return this.style.getLight()},n.prototype.getContainer=function(){return this._container},n.prototype.getCanvasContainer=function(){return this._canvasContainer},n.prototype.getCanvas=function(){return this._canvas},n.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},n.prototype._setupContainer=function(){var t=this._container;t.classList.add(\\\"mapboxgl-map\\\"),(this._missingCSSContainer=s.create(\\\"div\\\",\\\"mapboxgl-missing-css\\\",t)).innerHTML=\\\"Missing Mapbox GL JS CSS\\\";var e=this._canvasContainer=s.create(\\\"div\\\",\\\"mapboxgl-canvas-container\\\",t);this._interactive&&e.classList.add(\\\"mapboxgl-interactive\\\"),this._canvas=s.create(\\\"canvas\\\",\\\"mapboxgl-canvas\\\",e),this._canvas.style.position=\\\"absolute\\\",this._canvas.addEventListener(\\\"webglcontextlost\\\",this._contextLost,!1),this._canvas.addEventListener(\\\"webglcontextrestored\\\",this._contextRestored,!1),this._canvas.setAttribute(\\\"tabindex\\\",\\\"0\\\"),this._canvas.setAttribute(\\\"aria-label\\\",\\\"Map\\\");var r=this._containerDimensions();this._resizeCanvas(r[0],r[1]);var n=this._controlContainer=s.create(\\\"div\\\",\\\"mapboxgl-control-container\\\",t),i=this._controlPositions={};[\\\"top-left\\\",\\\"top-right\\\",\\\"bottom-left\\\",\\\"bottom-right\\\"].forEach(function(t){i[t]=s.create(\\\"div\\\",\\\"mapboxgl-ctrl-\\\"+t,n)})},n.prototype._resizeCanvas=function(e,r){var n=t.default.devicePixelRatio||1;this._canvas.width=n*e,this._canvas.height=n*r,this._canvas.style.width=e+\\\"px\\\",this._canvas.style.height=r+\\\"px\\\"},n.prototype._setupPainter=function(){var r=t.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},e.webGLContextAttributes),n=this._canvas.getContext(\\\"webgl\\\",r)||this._canvas.getContext(\\\"experimental-webgl\\\",r);n?this.painter=new zr(n,this.transform):this.fire(new t.ErrorEvent(new Error(\\\"Failed to initialize WebGL\\\")))},n.prototype._contextLost=function(e){e.preventDefault(),this._frameId&&(a.cancelFrame(this._frameId),this._frameId=null),this.fire(new t.Event(\\\"webglcontextlost\\\",{originalEvent:e}))},n.prototype._contextRestored=function(e){this._setupPainter(),this.resize(),this._update(),this.fire(new t.Event(\\\"webglcontextrestored\\\",{originalEvent:e}))},n.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},n.prototype._update=function(t){this.style&&(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender())},n.prototype._requestRenderFrame=function(t){return this._update(),this._renderTaskQueue.add(t)},n.prototype._cancelRenderFrame=function(t){this._renderTaskQueue.remove(t)},n.prototype._render=function(){this._renderTaskQueue.run();var e=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;var r=this.transform.zoom,n=a.now();this.style.zoomHistory.update(r,n);var i=new t.default$16(r,{now:n,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),o=i.crossFadingFactor();1===o&&o===this._crossFadingFactor||(e=!0,this._crossFadingFactor=o),this.style.update(i)}return this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),fadeDuration:this._fadeDuration}),this.fire(new t.Event(\\\"render\\\")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new t.Event(\\\"load\\\"))),this.style&&(this.style.hasTransitions()||e)&&(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty||this._placementDirty)&&this._rerender(),this},n.prototype.remove=function(){this._hash&&this._hash.remove(),a.cancelFrame(this._frameId),this._renderTaskQueue.clear(),this._frameId=null,this.setStyle(null),void 0!==t.default&&(t.default.removeEventListener(\\\"resize\\\",this._onWindowResize,!1),t.default.removeEventListener(\\\"online\\\",this._onWindowOnline,!1));var e=this.painter.context.gl.getExtension(\\\"WEBGL_lose_context\\\");e&&e.loseContext(),fn(this._canvasContainer),fn(this._controlContainer),fn(this._missingCSSContainer),this._container.classList.remove(\\\"mapboxgl-map\\\"),this.fire(new t.Event(\\\"remove\\\"))},n.prototype._rerender=function(){var t=this;this.style&&!this._frameId&&(this._frameId=a.frame(function(){t._frameId=null,t._render()}))},n.prototype._onWindowOnline=function(){this._update()},n.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},i.showTileBoundaries.get=function(){return!!this._showTileBoundaries},i.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},i.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},i.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,t?this.style._generateCollisionBoxes():this._update())},i.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},i.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},i.repaint.get=function(){return!!this._repaint},i.repaint.set=function(t){this._repaint=t,this._update()},i.vertices.get=function(){return!!this._vertices},i.vertices.set=function(t){this._vertices=t,this._update()},n.prototype._onData=function(e){this._update(\\\"style\\\"===e.dataType),this.fire(new t.Event(e.dataType+\\\"data\\\",e))},n.prototype._onDataLoading=function(e){this.fire(new t.Event(e.dataType+\\\"dataloading\\\",e))},Object.defineProperties(n.prototype,i),n}(rn);function fn(t){t.parentNode&&t.parentNode.removeChild(t)}var hn={showCompass:!0,showZoom:!0},pn=function(e){var r=this;this.options=t.extend({},hn,e),this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl mapboxgl-ctrl-group\\\"),this._container.addEventListener(\\\"contextmenu\\\",function(t){return t.preventDefault()}),this.options.showZoom&&(this._zoomInButton=this._createButton(\\\"mapboxgl-ctrl-icon mapboxgl-ctrl-zoom-in\\\",\\\"Zoom In\\\",function(){return r._map.zoomIn()}),this._zoomOutButton=this._createButton(\\\"mapboxgl-ctrl-icon mapboxgl-ctrl-zoom-out\\\",\\\"Zoom Out\\\",function(){return r._map.zoomOut()})),this.options.showCompass&&(t.bindAll([\\\"_rotateCompassArrow\\\"],this),this._compass=this._createButton(\\\"mapboxgl-ctrl-icon mapboxgl-ctrl-compass\\\",\\\"Reset North\\\",function(){return r._map.resetNorth()}),this._compassArrow=s.create(\\\"span\\\",\\\"mapboxgl-ctrl-compass-arrow\\\",this._compass))};function dn(t,e,r){if(t=new G(t.lng,t.lat),e){var n=new G(t.lng-360,t.lat),i=new G(t.lng+360,t.lat),a=r.locationPoint(t).distSqr(e);r.locationPoint(n).distSqr(e)<a?t=n:r.locationPoint(i).distSqr(e)<a&&(t=i)}for(;Math.abs(t.lng-r.center.lng)>180;){var o=r.locationPoint(t);if(o.x>=0&&o.y>=0&&o.x<=r.width&&o.y<=r.height)break;t.lng>r.center.lng?t.lng-=360:t.lng+=360}return t}pn.prototype._rotateCompassArrow=function(){var t=\\\"rotate(\\\"+this._map.transform.angle*(180/Math.PI)+\\\"deg)\\\";this._compassArrow.style.transform=t},pn.prototype.onAdd=function(t){return this._map=t,this.options.showCompass&&(this._map.on(\\\"rotate\\\",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Yr(t,{button:\\\"left\\\",element:this._compass}),this._handler.enable()),this._container},pn.prototype.onRemove=function(){s.remove(this._container),this.options.showCompass&&(this._map.off(\\\"rotate\\\",this._rotateCompassArrow),this._handler.disable(),delete this._handler),delete this._map},pn.prototype._createButton=function(t,e,r){var n=s.create(\\\"button\\\",t,this._container);return n.type=\\\"button\\\",n.setAttribute(\\\"aria-label\\\",e),n.addEventListener(\\\"click\\\",r),n};var gn={center:\\\"translate(-50%,-50%)\\\",top:\\\"translate(-50%,0)\\\",\\\"top-left\\\":\\\"translate(0,0)\\\",\\\"top-right\\\":\\\"translate(-100%,0)\\\",bottom:\\\"translate(-50%,-100%)\\\",\\\"bottom-left\\\":\\\"translate(0,-100%)\\\",\\\"bottom-right\\\":\\\"translate(-100%,-100%)\\\",left:\\\"translate(0,-50%)\\\",right:\\\"translate(-100%,-50%)\\\"};function vn(t,e,r){var n=t.classList;for(var i in gn)n.remove(\\\"mapboxgl-\\\"+r+\\\"-anchor-\\\"+i);n.add(\\\"mapboxgl-\\\"+r+\\\"-anchor-\\\"+e)}var mn=function(e){if((arguments[0]instanceof t.default.HTMLElement||2===arguments.length)&&(e=t.extend({element:e},arguments[1])),t.bindAll([\\\"_update\\\",\\\"_onMapClick\\\"],this),this._anchor=e&&e.anchor||\\\"center\\\",this._color=e&&e.color||\\\"#3FB1CE\\\",e&&e.element)this._element=e.element,this._offset=t.default$1.convert(e&&e.offset||[0,0]);else{this._defaultMarker=!0,this._element=s.create(\\\"div\\\");var r=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"svg\\\");r.setAttributeNS(null,\\\"height\\\",\\\"41px\\\"),r.setAttributeNS(null,\\\"width\\\",\\\"27px\\\"),r.setAttributeNS(null,\\\"viewBox\\\",\\\"0 0 27 41\\\");var n=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");n.setAttributeNS(null,\\\"stroke\\\",\\\"none\\\"),n.setAttributeNS(null,\\\"stroke-width\\\",\\\"1\\\"),n.setAttributeNS(null,\\\"fill\\\",\\\"none\\\"),n.setAttributeNS(null,\\\"fill-rule\\\",\\\"evenodd\\\");var i=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");i.setAttributeNS(null,\\\"fill-rule\\\",\\\"nonzero\\\");var a=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");a.setAttributeNS(null,\\\"transform\\\",\\\"translate(3.0, 29.0)\\\"),a.setAttributeNS(null,\\\"fill\\\",\\\"#000000\\\");for(var o=0,l=[{rx:\\\"10.5\\\",ry:\\\"5.25002273\\\"},{rx:\\\"10.5\\\",ry:\\\"5.25002273\\\"},{rx:\\\"9.5\\\",ry:\\\"4.77275007\\\"},{rx:\\\"8.5\\\",ry:\\\"4.29549936\\\"},{rx:\\\"7.5\\\",ry:\\\"3.81822308\\\"},{rx:\\\"6.5\\\",ry:\\\"3.34094679\\\"},{rx:\\\"5.5\\\",ry:\\\"2.86367051\\\"},{rx:\\\"4.5\\\",ry:\\\"2.38636864\\\"}];o<l.length;o+=1){var c=l[o],u=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"ellipse\\\");u.setAttributeNS(null,\\\"opacity\\\",\\\"0.04\\\"),u.setAttributeNS(null,\\\"cx\\\",\\\"10.5\\\"),u.setAttributeNS(null,\\\"cy\\\",\\\"5.80029008\\\"),u.setAttributeNS(null,\\\"rx\\\",c.rx),u.setAttributeNS(null,\\\"ry\\\",c.ry),a.appendChild(u)}var f=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");f.setAttributeNS(null,\\\"fill\\\",this._color);var h=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"path\\\");h.setAttributeNS(null,\\\"d\\\",\\\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\\\"),f.appendChild(h);var p=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");p.setAttributeNS(null,\\\"opacity\\\",\\\"0.25\\\"),p.setAttributeNS(null,\\\"fill\\\",\\\"#000000\\\");var d=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"path\\\");d.setAttributeNS(null,\\\"d\\\",\\\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\\\"),p.appendChild(d);var g=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");g.setAttributeNS(null,\\\"transform\\\",\\\"translate(6.0, 7.0)\\\"),g.setAttributeNS(null,\\\"fill\\\",\\\"#FFFFFF\\\");var v=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");v.setAttributeNS(null,\\\"transform\\\",\\\"translate(8.0, 8.0)\\\");var m=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"circle\\\");m.setAttributeNS(null,\\\"fill\\\",\\\"#000000\\\"),m.setAttributeNS(null,\\\"opacity\\\",\\\"0.25\\\"),m.setAttributeNS(null,\\\"cx\\\",\\\"5.5\\\"),m.setAttributeNS(null,\\\"cy\\\",\\\"5.5\\\"),m.setAttributeNS(null,\\\"r\\\",\\\"5.4999962\\\");var y=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"circle\\\");y.setAttributeNS(null,\\\"fill\\\",\\\"#FFFFFF\\\"),y.setAttributeNS(null,\\\"cx\\\",\\\"5.5\\\"),y.setAttributeNS(null,\\\"cy\\\",\\\"5.5\\\"),y.setAttributeNS(null,\\\"r\\\",\\\"5.4999962\\\"),v.appendChild(m),v.appendChild(y),i.appendChild(a),i.appendChild(f),i.appendChild(p),i.appendChild(g),i.appendChild(v),r.appendChild(i),this._element.appendChild(r),this._offset=t.default$1.convert(e&&e.offset||[0,-14])}this._element.classList.add(\\\"mapboxgl-marker\\\"),this._popup=null};mn.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on(\\\"move\\\",this._update),t.on(\\\"moveend\\\",this._update),this._update(),this._map.on(\\\"click\\\",this._onMapClick),this},mn.prototype.remove=function(){return this._map&&(this._map.off(\\\"click\\\",this._onMapClick),this._map.off(\\\"move\\\",this._update),this._map.off(\\\"moveend\\\",this._update),delete this._map),s.remove(this._element),this._popup&&this._popup.remove(),this},mn.prototype.getLngLat=function(){return this._lngLat},mn.prototype.setLngLat=function(t){return this._lngLat=G.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},mn.prototype.getElement=function(){return this._element},mn.prototype.setPopup=function(t){if(this._popup&&(this._popup.remove(),this._popup=null),t){if(!(\\\"offset\\\"in t.options)){var e=Math.sqrt(Math.pow(13.5,2)/2);t.options.offset=this._defaultMarker?{top:[0,0],\\\"top-left\\\":[0,0],\\\"top-right\\\":[0,0],bottom:[0,-38.1],\\\"bottom-left\\\":[e,-1*(24.6+e)],\\\"bottom-right\\\":[-e,-1*(24.6+e)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=t,this._lngLat&&this._popup.setLngLat(this._lngLat)}return this},mn.prototype._onMapClick=function(t){var e=t.originalEvent.target,r=this._element;this._popup&&(e===r||r.contains(e))&&this.togglePopup()},mn.prototype.getPopup=function(){return this._popup},mn.prototype.togglePopup=function(){var t=this._popup;return t?(t.isOpen()?t.remove():t.addTo(this._map),this):this},mn.prototype._update=function(t){this._map&&(this._map.transform.renderWorldCopies&&(this._lngLat=dn(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset),t&&\\\"moveend\\\"!==t.type||(this._pos=this._pos.round()),s.setTransform(this._element,gn[this._anchor]+\\\" translate(\\\"+this._pos.x+\\\"px, \\\"+this._pos.y+\\\"px)\\\"),vn(this._element,this._anchor,\\\"marker\\\"))},mn.prototype.getOffset=function(){return this._offset},mn.prototype.setOffset=function(e){return this._offset=t.default$1.convert(e),this._update(),this};var yn,xn={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showUserLocation:!0},bn=function(e){function r(r){e.call(this),this.options=t.extend({},xn,r),t.bindAll([\\\"_onSuccess\\\",\\\"_onError\\\",\\\"_finish\\\",\\\"_setupUI\\\",\\\"_updateCamera\\\",\\\"_updateMarker\\\"],this)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.onAdd=function(e){var r;return this._map=e,this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl mapboxgl-ctrl-group\\\"),r=this._setupUI,void 0!==yn?r(yn):void 0!==t.default.navigator.permissions?t.default.navigator.permissions.query({name:\\\"geolocation\\\"}).then(function(t){yn=\\\"denied\\\"!==t.state,r(yn)}):(yn=!!t.default.navigator.geolocation,r(yn)),this._container},r.prototype.onRemove=function(){void 0!==this._geolocationWatchID&&(t.default.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker.remove(),s.remove(this._container),this._map=void 0},r.prototype._onSuccess=function(e){if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,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&&\\\"OFF\\\"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&\\\"ACTIVE_LOCK\\\"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove(\\\"mapboxgl-user-location-dot-stale\\\"),this.fire(new t.Event(\\\"geolocate\\\",e)),this._finish()},r.prototype._updateCamera=function(t){var e=new G(t.coords.longitude,t.coords.latitude),r=t.coords.accuracy;this._map.fitBounds(e.toBounds(r),this.options.fitBoundsOptions,{geolocateSource:!0})},r.prototype._updateMarker=function(t){t?this._userLocationDotMarker.setLngLat([t.coords.longitude,t.coords.latitude]).addTo(this._map):this._userLocationDotMarker.remove()},r.prototype._onError=function(e){if(this.options.trackUserLocation)if(1===e.code)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\\\"),void 0!==this._geolocationWatchID&&this._clearWatch();else 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\\\")}\\\"OFF\\\"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add(\\\"mapboxgl-user-location-dot-stale\\\"),this.fire(new t.Event(\\\"error\\\",e)),this._finish()},r.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},r.prototype._setupUI=function(e){var r=this;!1!==e&&(this._container.addEventListener(\\\"contextmenu\\\",function(t){return t.preventDefault()}),this._geolocateButton=s.create(\\\"button\\\",\\\"mapboxgl-ctrl-icon mapboxgl-ctrl-geolocate\\\",this._container),this._geolocateButton.type=\\\"button\\\",this._geolocateButton.setAttribute(\\\"aria-label\\\",\\\"Geolocate\\\"),this.options.trackUserLocation&&(this._geolocateButton.setAttribute(\\\"aria-pressed\\\",\\\"false\\\"),this._watchState=\\\"OFF\\\"),this.options.showUserLocation&&(this._dotElement=s.create(\\\"div\\\",\\\"mapboxgl-user-location-dot\\\"),this._userLocationDotMarker=new mn(this._dotElement),this.options.trackUserLocation&&(this._watchState=\\\"OFF\\\")),this._geolocateButton.addEventListener(\\\"click\\\",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on(\\\"movestart\\\",function(e){e.geolocateSource||\\\"ACTIVE_LOCK\\\"!==r._watchState||(r._watchState=\\\"BACKGROUND\\\",r._geolocateButton.classList.add(\\\"mapboxgl-ctrl-geolocate-background\\\"),r._geolocateButton.classList.remove(\\\"mapboxgl-ctrl-geolocate-active\\\"),r.fire(new t.Event(\\\"trackuserlocationend\\\")))}))},r.prototype.trigger=function(){if(!this._setup)return t.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 t.Event(\\\"trackuserlocationstart\\\"));break;case\\\"WAITING_ACTIVE\\\":case\\\"ACTIVE_LOCK\\\":case\\\"ACTIVE_ERROR\\\":case\\\"BACKGROUND_ERROR\\\":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 t.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 t.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\\\")}\\\"OFF\\\"===this._watchState&&void 0!==this._geolocationWatchID?this._clearWatch():void 0===this._geolocationWatchID&&(this._geolocateButton.classList.add(\\\"mapboxgl-ctrl-geolocate-waiting\\\"),this._geolocateButton.setAttribute(\\\"aria-pressed\\\",\\\"true\\\"),this._geolocationWatchID=t.default.navigator.geolocation.watchPosition(this._onSuccess,this._onError,this.options.positionOptions))}else t.default.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},r.prototype._clearWatch=function(){t.default.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)},r}(t.Evented),_n={maxWidth:100,unit:\\\"metric\\\"},wn=function(e){this.options=t.extend({},_n,e),t.bindAll([\\\"_onMove\\\",\\\"setUnit\\\"],this)};function kn(t,e,r){var n,i,a,o,s,l,c=r&&r.maxWidth||100,u=t._container.clientHeight/2,f=(n=t.unproject([0,u]),i=t.unproject([c,u]),a=Math.PI/180,o=n.lat*a,s=i.lat*a,l=Math.sin(o)*Math.sin(s)+Math.cos(o)*Math.cos(s)*Math.cos((i.lng-n.lng)*a),6371e3*Math.acos(Math.min(l,1)));if(r&&\\\"imperial\\\"===r.unit){var h=3.2808*f;h>5280?Mn(e,c,h/5280,\\\"mi\\\"):Mn(e,c,h,\\\"ft\\\")}else r&&\\\"nautical\\\"===r.unit?Mn(e,c,f/1852,\\\"nm\\\"):Mn(e,c,f,\\\"m\\\")}function Mn(t,e,r,n){var i,a,o,s=(i=r,(a=Math.pow(10,(\\\"\\\"+Math.floor(i)).length-1))*(o=(o=i/a)>=10?10:o>=5?5:o>=3?3:o>=2?2:1)),l=s/r;\\\"m\\\"===n&&s>=1e3&&(s/=1e3,n=\\\"km\\\"),t.style.width=e*l+\\\"px\\\",t.innerHTML=s+n}wn.prototype.getDefaultPosition=function(){return\\\"bottom-left\\\"},wn.prototype._onMove=function(){kn(this._map,this._container,this.options)},wn.prototype.onAdd=function(t){return this._map=t,this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl mapboxgl-ctrl-scale\\\",t.getContainer()),this._map.on(\\\"move\\\",this._onMove),this._onMove(),this._container},wn.prototype.onRemove=function(){s.remove(this._container),this._map.off(\\\"move\\\",this._onMove),this._map=void 0},wn.prototype.setUnit=function(t){this.options.unit=t,kn(this._map,this._container,this.options)};var An=function(){this._fullscreen=!1,t.bindAll([\\\"_onClickFullscreen\\\",\\\"_changeIcon\\\"],this),\\\"onfullscreenchange\\\"in t.default.document?this._fullscreenchange=\\\"fullscreenchange\\\":\\\"onmozfullscreenchange\\\"in t.default.document?this._fullscreenchange=\\\"mozfullscreenchange\\\":\\\"onwebkitfullscreenchange\\\"in t.default.document?this._fullscreenchange=\\\"webkitfullscreenchange\\\":\\\"onmsfullscreenchange\\\"in t.default.document&&(this._fullscreenchange=\\\"MSFullscreenChange\\\"),this._className=\\\"mapboxgl-ctrl\\\"};An.prototype.onAdd=function(e){return this._map=e,this._mapContainer=this._map.getContainer(),this._container=s.create(\\\"div\\\",this._className+\\\" mapboxgl-ctrl-group\\\"),this._checkFullscreenSupport()?this._setupUI():(this._container.style.display=\\\"none\\\",t.warnOnce(\\\"This device does not support fullscreen mode.\\\")),this._container},An.prototype.onRemove=function(){s.remove(this._container),this._map=null,t.default.document.removeEventListener(this._fullscreenchange,this._changeIcon)},An.prototype._checkFullscreenSupport=function(){return!!(t.default.document.fullscreenEnabled||t.default.document.mozFullScreenEnabled||t.default.document.msFullscreenEnabled||t.default.document.webkitFullscreenEnabled)},An.prototype._setupUI=function(){var e=this._fullscreenButton=s.create(\\\"button\\\",this._className+\\\"-icon \\\"+this._className+\\\"-fullscreen\\\",this._container);e.setAttribute(\\\"aria-label\\\",\\\"Toggle fullscreen\\\"),e.type=\\\"button\\\",this._fullscreenButton.addEventListener(\\\"click\\\",this._onClickFullscreen),t.default.document.addEventListener(this._fullscreenchange,this._changeIcon)},An.prototype._isFullscreen=function(){return this._fullscreen},An.prototype._changeIcon=function(){(t.default.document.fullscreenElement||t.default.document.mozFullScreenElement||t.default.document.webkitFullscreenElement||t.default.document.msFullscreenElement)===this._mapContainer!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(this._className+\\\"-shrink\\\"),this._fullscreenButton.classList.toggle(this._className+\\\"-fullscreen\\\"))},An.prototype._onClickFullscreen=function(){this._isFullscreen()?t.default.document.exitFullscreen?t.default.document.exitFullscreen():t.default.document.mozCancelFullScreen?t.default.document.mozCancelFullScreen():t.default.document.msExitFullscreen?t.default.document.msExitFullscreen():t.default.document.webkitCancelFullScreen&&t.default.document.webkitCancelFullScreen():this._mapContainer.requestFullscreen?this._mapContainer.requestFullscreen():this._mapContainer.mozRequestFullScreen?this._mapContainer.mozRequestFullScreen():this._mapContainer.msRequestFullscreen?this._mapContainer.msRequestFullscreen():this._mapContainer.webkitRequestFullscreen&&this._mapContainer.webkitRequestFullscreen()};var Tn={closeButton:!0,closeOnClick:!0},Sn=function(e){function r(r){e.call(this),this.options=t.extend(Object.create(Tn),r),t.bindAll([\\\"_update\\\",\\\"_onClickClose\\\"],this)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addTo=function(e){return this._map=e,this._map.on(\\\"move\\\",this._update),this.options.closeOnClick&&this._map.on(\\\"click\\\",this._onClickClose),this._update(),this.fire(new t.Event(\\\"open\\\")),this},r.prototype.isOpen=function(){return!!this._map},r.prototype.remove=function(){return this._content&&s.remove(this._content),this._container&&(s.remove(this._container),delete this._container),this._map&&(this._map.off(\\\"move\\\",this._update),this._map.off(\\\"click\\\",this._onClickClose),delete this._map),this.fire(new t.Event(\\\"close\\\")),this},r.prototype.getLngLat=function(){return this._lngLat},r.prototype.setLngLat=function(t){return this._lngLat=G.convert(t),this._pos=null,this._update(),this},r.prototype.setText=function(e){return this.setDOMContent(t.default.document.createTextNode(e))},r.prototype.setHTML=function(e){var r,n=t.default.document.createDocumentFragment(),i=t.default.document.createElement(\\\"body\\\");for(i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return this.setDOMContent(n)},r.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},r.prototype._createContent=function(){this._content&&s.remove(this._content),this._content=s.create(\\\"div\\\",\\\"mapboxgl-popup-content\\\",this._container),this.options.closeButton&&(this._closeButton=s.create(\\\"button\\\",\\\"mapboxgl-popup-close-button\\\",this._content),this._closeButton.type=\\\"button\\\",this._closeButton.setAttribute(\\\"aria-label\\\",\\\"Close popup\\\"),this._closeButton.innerHTML=\\\"&#215;\\\",this._closeButton.addEventListener(\\\"click\\\",this._onClickClose))},r.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=s.create(\\\"div\\\",\\\"mapboxgl-popup\\\",this._map.getContainer()),this._tip=s.create(\\\"div\\\",\\\"mapboxgl-popup-tip\\\",this._container),this._container.appendChild(this._content)),this._map.transform.renderWorldCopies&&(this._lngLat=dn(this._lngLat,this._pos,this._map.transform));var e=this._pos=this._map.project(this._lngLat),r=this.options.anchor,n=function e(r){if(r){if(\\\"number\\\"==typeof r){var n=Math.round(Math.sqrt(.5*Math.pow(r,2)));return{center:new t.default$1(0,0),top:new t.default$1(0,r),\\\"top-left\\\":new t.default$1(n,n),\\\"top-right\\\":new t.default$1(-n,n),bottom:new t.default$1(0,-r),\\\"bottom-left\\\":new t.default$1(n,-n),\\\"bottom-right\\\":new t.default$1(-n,-n),left:new t.default$1(r,0),right:new t.default$1(-r,0)}}if(r instanceof t.default$1||Array.isArray(r)){var i=t.default$1.convert(r);return{center:i,top:i,\\\"top-left\\\":i,\\\"top-right\\\":i,bottom:i,\\\"bottom-left\\\":i,\\\"bottom-right\\\":i,left:i,right:i}}return{center:t.default$1.convert(r.center||[0,0]),top:t.default$1.convert(r.top||[0,0]),\\\"top-left\\\":t.default$1.convert(r[\\\"top-left\\\"]||[0,0]),\\\"top-right\\\":t.default$1.convert(r[\\\"top-right\\\"]||[0,0]),bottom:t.default$1.convert(r.bottom||[0,0]),\\\"bottom-left\\\":t.default$1.convert(r[\\\"bottom-left\\\"]||[0,0]),\\\"bottom-right\\\":t.default$1.convert(r[\\\"bottom-right\\\"]||[0,0]),left:t.default$1.convert(r.left||[0,0]),right:t.default$1.convert(r.right||[0,0])}}return e(new t.default$1(0,0))}(this.options.offset);if(!r){var i,a=this._container.offsetWidth,o=this._container.offsetHeight;i=e.y+n.bottom.y<o?[\\\"top\\\"]:e.y>this._map.transform.height-o?[\\\"bottom\\\"]:[],e.x<a/2?i.push(\\\"left\\\"):e.x>this._map.transform.width-a/2&&i.push(\\\"right\\\"),r=0===i.length?\\\"bottom\\\":i.join(\\\"-\\\")}var l=e.add(n[r]).round();s.setTransform(this._container,gn[r]+\\\" translate(\\\"+l.x+\\\"px,\\\"+l.y+\\\"px)\\\"),vn(this._container,r,\\\"popup\\\")}},r.prototype._onClickClose=function(){this.remove()},r}(t.Evented),En={version:\\\"0.45.0\\\",supported:e,workerCount:Math.max(Math.floor(a.hardwareConcurrency/2),1),setRTLTextPlugin:t.setRTLTextPlugin,Map:un,NavigationControl:pn,GeolocateControl:bn,AttributionControl:nn,ScaleControl:wn,FullscreenControl:An,Popup:Sn,Marker:mn,Style:Je,LngLat:G,LngLatBounds:W,Point:t.default$1,Evented:t.Evented,config:v,get accessToken(){return v.ACCESS_TOKEN},set accessToken(t){v.ACCESS_TOKEN=t},workerUrl:\\\"\\\"};return En}),n})}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{}],410:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=1<<t+1,r=new Array(e),n=0;n<e;++n)r[n]=a(t,n);return r};var n=t(\\\"convex-hull\\\");function i(t,e,r){for(var n=new Array(t),i=0;i<t;++i)n[i]=0,i===e&&(n[i]+=.5),i===r&&(n[i]+=.5);return n}function a(t,e){if(0===e||e===(1<<t+1)-1)return[];for(var r=[],a=[],o=0;o<=t;++o)if(e&1<<o){r.push(i(t,o-1,o-1)),a.push(null);for(var s=0;s<=t;++s)~e&1<<s&&(r.push(i(t,o-1,s-1)),a.push([o,s]))}var l=n(r),c=[];t:for(o=0;o<l.length;++o){var u=l[o],f=[];for(s=0;s<u.length;++s){if(!a[u[s]])continue t;f.push(a[u[s]].slice())}c.push(f)}return c}},{\\\"convex-hull\\\":118}],411:[function(t,e,r){var n=t(\\\"./normalize\\\"),i=t(\\\"gl-mat4/create\\\"),a=t(\\\"gl-mat4/clone\\\"),o=t(\\\"gl-mat4/determinant\\\"),s=t(\\\"gl-mat4/invert\\\"),l=t(\\\"gl-mat4/transpose\\\"),c={length:t(\\\"gl-vec3/length\\\"),normalize:t(\\\"gl-vec3/normalize\\\"),dot:t(\\\"gl-vec3/dot\\\"),cross:t(\\\"gl-vec3/cross\\\")},u=i(),f=i(),h=[0,0,0,0],p=[[0,0,0],[0,0,0],[0,0,0]],d=[0,0,0];function g(t,e,r,n,i){t[0]=e[0]*n+r[0]*i,t[1]=e[1]*n+r[1]*i,t[2]=e[2]*n+r[2]*i}e.exports=function(t,e,r,i,v,m){if(e||(e=[0,0,0]),r||(r=[0,0,0]),i||(i=[0,0,0]),v||(v=[0,0,0,1]),m||(m=[0,0,0,1]),!n(u,t))return!1;if(a(f,u),f[3]=0,f[7]=0,f[11]=0,f[15]=1,Math.abs(o(f)<1e-8))return!1;var y,x,b,_,w,k,M,A=u[3],T=u[7],S=u[11],E=u[12],C=u[13],L=u[14],z=u[15];if(0!==A||0!==T||0!==S){if(h[0]=A,h[1]=T,h[2]=S,h[3]=z,!s(f,f))return!1;l(f,f),y=v,b=f,_=(x=h)[0],w=x[1],k=x[2],M=x[3],y[0]=b[0]*_+b[4]*w+b[8]*k+b[12]*M,y[1]=b[1]*_+b[5]*w+b[9]*k+b[13]*M,y[2]=b[2]*_+b[6]*w+b[10]*k+b[14]*M,y[3]=b[3]*_+b[7]*w+b[11]*k+b[15]*M}else v[0]=v[1]=v[2]=0,v[3]=1;if(e[0]=E,e[1]=C,e[2]=L,function(t,e){t[0][0]=e[0],t[0][1]=e[1],t[0][2]=e[2],t[1][0]=e[4],t[1][1]=e[5],t[1][2]=e[6],t[2][0]=e[8],t[2][1]=e[9],t[2][2]=e[10]}(p,u),r[0]=c.length(p[0]),c.normalize(p[0],p[0]),i[0]=c.dot(p[0],p[1]),g(p[1],p[1],p[0],1,-i[0]),r[1]=c.length(p[1]),c.normalize(p[1],p[1]),i[0]/=r[1],i[1]=c.dot(p[0],p[2]),g(p[2],p[2],p[0],1,-i[1]),i[2]=c.dot(p[1],p[2]),g(p[2],p[2],p[1],1,-i[2]),r[2]=c.length(p[2]),c.normalize(p[2],p[2]),i[1]/=r[2],i[2]/=r[2],c.cross(d,p[1],p[2]),c.dot(p[0],d)<0)for(var O=0;O<3;O++)r[O]*=-1,p[O][0]*=-1,p[O][1]*=-1,p[O][2]*=-1;return m[0]=.5*Math.sqrt(Math.max(1+p[0][0]-p[1][1]-p[2][2],0)),m[1]=.5*Math.sqrt(Math.max(1-p[0][0]+p[1][1]-p[2][2],0)),m[2]=.5*Math.sqrt(Math.max(1-p[0][0]-p[1][1]+p[2][2],0)),m[3]=.5*Math.sqrt(Math.max(1+p[0][0]+p[1][1]+p[2][2],0)),p[2][1]>p[1][2]&&(m[0]=-m[0]),p[0][2]>p[2][0]&&(m[1]=-m[1]),p[1][0]>p[0][1]&&(m[2]=-m[2]),!0}},{\\\"./normalize\\\":412,\\\"gl-mat4/clone\\\":248,\\\"gl-mat4/create\\\":249,\\\"gl-mat4/determinant\\\":250,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/transpose\\\":264,\\\"gl-vec3/cross\\\":317,\\\"gl-vec3/dot\\\":322,\\\"gl-vec3/length\\\":332,\\\"gl-vec3/normalize\\\":339}],412:[function(t,e,r){e.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},{}],413:[function(t,e,r){var n=t(\\\"gl-vec3/lerp\\\"),i=t(\\\"mat4-recompose\\\"),a=t(\\\"mat4-decompose\\\"),o=t(\\\"gl-mat4/determinant\\\"),s=t(\\\"quat-slerp\\\"),l=f(),c=f(),u=f();function f(){return{translate:h(),scale:h(1),skew:h(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function h(t){return[t||0,t||0,t||0]}e.exports=function(t,e,r,f){if(0===o(e)||0===o(r))return!1;var h=a(e,l.translate,l.scale,l.skew,l.perspective,l.quaternion),p=a(r,c.translate,c.scale,c.skew,c.perspective,c.quaternion);return!(!h||!p||(n(u.translate,l.translate,c.translate,f),n(u.skew,l.skew,c.skew,f),n(u.scale,l.scale,c.scale,f),n(u.perspective,l.perspective,c.perspective,f),s(u.quaternion,l.quaternion,c.quaternion,f),i(t,u.translate,u.scale,u.skew,u.perspective,u.quaternion),0))}},{\\\"gl-mat4/determinant\\\":250,\\\"gl-vec3/lerp\\\":333,\\\"mat4-decompose\\\":411,\\\"mat4-recompose\\\":414,\\\"quat-slerp\\\":466}],414:[function(t,e,r){var n={identity:t(\\\"gl-mat4/identity\\\"),translate:t(\\\"gl-mat4/translate\\\"),multiply:t(\\\"gl-mat4/multiply\\\"),create:t(\\\"gl-mat4/create\\\"),scale:t(\\\"gl-mat4/scale\\\"),fromRotationTranslation:t(\\\"gl-mat4/fromRotationTranslation\\\")},i=(n.create(),n.create());e.exports=function(t,e,r,a,o,s){return n.identity(t),n.fromRotationTranslation(t,s,e),t[3]=o[0],t[7]=o[1],t[11]=o[2],t[15]=o[3],n.identity(i),0!==a[2]&&(i[9]=a[2],n.multiply(t,t,i)),0!==a[1]&&(i[9]=0,i[8]=a[1],n.multiply(t,t,i)),0!==a[0]&&(i[8]=0,i[4]=a[0],n.multiply(t,t,i)),n.scale(t,t,r),t}},{\\\"gl-mat4/create\\\":249,\\\"gl-mat4/fromRotationTranslation\\\":252,\\\"gl-mat4/identity\\\":253,\\\"gl-mat4/multiply\\\":256,\\\"gl-mat4/scale\\\":262,\\\"gl-mat4/translate\\\":263}],415:[function(t,e,r){\\\"use strict\\\";e.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},{}],416:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"mat4-interpolate\\\"),a=t(\\\"gl-mat4/invert\\\"),o=t(\\\"gl-mat4/rotateX\\\"),s=t(\\\"gl-mat4/rotateY\\\"),l=t(\\\"gl-mat4/rotateZ\\\"),c=t(\\\"gl-mat4/lookAt\\\"),u=t(\\\"gl-mat4/translate\\\"),f=(t(\\\"gl-mat4/scale\\\"),t(\\\"gl-vec3/normalize\\\")),h=[0,0,0];function p(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.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]}e.exports=function(t){return new p((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var d=p.prototype;d.recalcMatrix=function(t){var e=this._time,r=n.le(e,t),o=this.computedMatrix;if(!(r<0)){var s=this._components;if(r===e.length-1)for(var l=16*r,c=0;c<16;++c)o[c]=s[l++];else{var u=e[r+1]-e[r],h=(l=16*r,this.prevMatrix),p=!0;for(c=0;c<16;++c)h[c]=s[l++];var d=this.nextMatrix;for(c=0;c<16;++c)d[c]=s[l++],p=p&&h[c]===d[c];if(u<1e-6||p)for(c=0;c<16;++c)o[c]=h[c];else i(o,h,d,(t-e[r])/u)}var g=this.computedUp;g[0]=o[1],g[1]=o[5],g[2]=o[9],f(g,g);var v=this.computedInverse;a(v,o);var m=this.computedEye,y=v[15];m[0]=v[12]/y,m[1]=v[13]/y,m[2]=v[14]/y;var x=this.computedCenter,b=Math.exp(this.computedRadius[0]);for(c=0;c<3;++c)x[c]=m[c]-o[2+4*c]*b}},d.idle=function(t){if(!(t<this.lastT())){for(var e=this._components,r=e.length-16,n=0;n<16;++n)e.push(e[r++]);this._time.push(t)}},d.flush=function(t){var e=n.gt(this._time,t)-2;e<0||(this._time.splice(0,e),this._components.splice(0,16*e))},d.lastT=function(){return this._time[this._time.length-1]},d.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||h,n=n||this.computedUp,this.setMatrix(t,c(this.computedMatrix,e,r,n));for(var i=0,a=0;a<3;++a)i+=Math.pow(r[a]-e[a],2);i=Math.log(Math.sqrt(i)),this.computedRadius[0]=i},d.rotate=function(t,e,r,n){this.recalcMatrix(t);var i=this.computedInverse;e&&s(i,i,e),r&&o(i,i,r),n&&l(i,i,n),this.setMatrix(t,a(this.computedMatrix,i))};var g=[0,0,0];d.pan=function(t,e,r,n){g[0]=-(e||0),g[1]=-(r||0),g[2]=-(n||0),this.recalcMatrix(t);var i=this.computedInverse;u(i,i,g),this.setMatrix(t,a(i,i))},d.translate=function(t,e,r,n){g[0]=e||0,g[1]=r||0,g[2]=n||0,this.recalcMatrix(t);var i=this.computedMatrix;u(i,i,g),this.setMatrix(t,i)},d.setMatrix=function(t,e){if(!(t<this.lastT())){this._time.push(t);for(var r=0;r<16;++r)this._components.push(e[r])}},d.setDistance=function(t,e){this.computedRadius[0]=e},d.setDistanceLimits=function(t,e){var r=this._limits;r[0]=t,r[1]=e},d.getDistanceLimits=function(t){var e=this._limits;return t?(t[0]=e[0],t[1]=e[1],t):e}},{\\\"binary-search-bounds\\\":79,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/lookAt\\\":255,\\\"gl-mat4/rotateX\\\":259,\\\"gl-mat4/rotateY\\\":260,\\\"gl-mat4/rotateZ\\\":261,\\\"gl-mat4/scale\\\":262,\\\"gl-mat4/translate\\\":263,\\\"gl-vec3/normalize\\\":339,\\\"mat4-interpolate\\\":413}],417:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.length;if(e<3){for(var r=new Array(e),i=0;i<e;++i)r[i]=i;return 2===e&&t[0][0]===t[1][0]&&t[0][1]===t[1][1]?[0]:r}for(var a=new Array(e),i=0;i<e;++i)a[i]=i;a.sort(function(e,r){var n=t[e][0]-t[r][0];return n||t[e][1]-t[r][1]});for(var o=[a[0],a[1]],s=[a[0],a[1]],i=2;i<e;++i){for(var l=a[i],c=t[l],u=o.length;u>1&&n(t[o[u-2]],t[o[u-1]],c)<=0;)u-=1,o.pop();for(o.push(l),u=s.length;u>1&&n(t[s[u-2]],t[s[u-1]],c)>=0;)u-=1,s.pop();s.push(l)}for(var r=new Array(s.length+o.length-2),f=0,i=0,h=o.length;i<h;++i)r[f++]=o[i];for(var p=s.length-2;p>0;--p)r[f++]=s[p];return r};var n=t(\\\"robust-orientation\\\")[3]},{\\\"robust-orientation\\\":486}],418:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return\\\"altKey\\\"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),\\\"shiftKey\\\"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),\\\"ctrlKey\\\"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),\\\"metaKey\\\"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function c(t,s){var c=n.x(s),u=n.y(s);\\\"buttons\\\"in s&&(t=0|s.buttons),(t!==r||c!==i||u!==a||l(s))&&(r=0|t,i=c||0,a=u||0,e&&e(r,i,a,o))}function u(t){c(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?c(0,t):c(r,t)}function d(t){c(r|n.buttons(t),t)}function g(t){c(r&~n.buttons(t),t)}function v(){s||(s=!0,t.addEventListener(\\\"mousemove\\\",p),t.addEventListener(\\\"mousedown\\\",d),t.addEventListener(\\\"mouseup\\\",g),t.addEventListener(\\\"mouseleave\\\",u),t.addEventListener(\\\"mouseenter\\\",u),t.addEventListener(\\\"mouseout\\\",u),t.addEventListener(\\\"mouseover\\\",u),t.addEventListener(\\\"blur\\\",f),t.addEventListener(\\\"keyup\\\",h),t.addEventListener(\\\"keydown\\\",h),t.addEventListener(\\\"keypress\\\",h),t!==window&&(window.addEventListener(\\\"blur\\\",f),window.addEventListener(\\\"keyup\\\",h),window.addEventListener(\\\"keydown\\\",h),window.addEventListener(\\\"keypress\\\",h)))}v();var m={element:t};return Object.defineProperties(m,{enabled:{get:function(){return s},set:function(e){e?v():s&&(s=!1,t.removeEventListener(\\\"mousemove\\\",p),t.removeEventListener(\\\"mousedown\\\",d),t.removeEventListener(\\\"mouseup\\\",g),t.removeEventListener(\\\"mouseleave\\\",u),t.removeEventListener(\\\"mouseenter\\\",u),t.removeEventListener(\\\"mouseout\\\",u),t.removeEventListener(\\\"mouseover\\\",u),t.removeEventListener(\\\"blur\\\",f),t.removeEventListener(\\\"keyup\\\",h),t.removeEventListener(\\\"keydown\\\",h),t.removeEventListener(\\\"keypress\\\",h),t!==window&&(window.removeEventListener(\\\"blur\\\",f),window.removeEventListener(\\\"keyup\\\",h),window.removeEventListener(\\\"keydown\\\",h),window.removeEventListener(\\\"keypress\\\",h)))},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),m};var n=t(\\\"mouse-event\\\")},{\\\"mouse-event\\\":420}],419:[function(t,e,r){var n={left:0,top:0};e.exports=function(t,e,r){e=e||t.currentTarget||t.srcElement,Array.isArray(r)||(r=[0,0]);var i=t.clientX||0,a=t.clientY||0,o=(s=e,s===window||s===document||s===document.body?n:s.getBoundingClientRect());var s;return r[0]=i-o.left,r[1]=a-o.top,r}},{}],420:[function(t,e,r){\\\"use strict\\\";function n(t){return t.target||t.srcElement||window}r.buttons=function(t){if(\\\"object\\\"==typeof t){if(\\\"buttons\\\"in t)return t.buttons;if(\\\"which\\\"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<<e-1}else if(\\\"button\\\"in t){var e;if(1===(e=t.button))return 4;if(2===e)return 2;if(e>=0)return 1<<e}}return 0},r.element=n,r.x=function(t){if(\\\"object\\\"==typeof t){if(\\\"offsetX\\\"in t)return t.offsetX;var e=n(t).getBoundingClientRect();return t.clientX-e.left}return 0},r.y=function(t){if(\\\"object\\\"==typeof t){if(\\\"offsetY\\\"in t)return t.offsetY;var e=n(t).getBoundingClientRect();return t.clientY-e.top}return 0}},{}],421:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"to-px\\\");e.exports=function(t,e,r){\\\"function\\\"==typeof t&&(r=!!e,e=t,t=window);var i=n(\\\"ex\\\",t),a=function(t){r&&t.preventDefault();var n=t.deltaX||0,a=t.deltaY||0,o=t.deltaZ||0,s=t.deltaMode,l=1;switch(s){case 1:l=i;break;case 2:l=window.innerHeight}if(a*=l,o*=l,(n*=l)||a||o)return e(n,a,o,t)};return t.addEventListener(\\\"wheel\\\",a),a}},{\\\"to-px\\\":516}],422:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"typedarray-pool\\\");function i(t){return\\\"a\\\"+t}function a(t){return\\\"d\\\"+t}function o(t,e){return\\\"c\\\"+t+\\\"_\\\"+e}function s(t){return\\\"s\\\"+t}function l(t,e){return\\\"t\\\"+t+\\\"_\\\"+e}function c(t){return\\\"o\\\"+t}function u(t){return\\\"x\\\"+t}function f(t){return\\\"p\\\"+t}function h(t,e){return\\\"d\\\"+t+\\\"_\\\"+e}function p(t){return\\\"i\\\"+t}function d(t,e){return\\\"u\\\"+t+\\\"_\\\"+e}function g(t){return\\\"b\\\"+t}function v(t){return\\\"y\\\"+t}function m(t){return\\\"e\\\"+t}function y(t){return\\\"v\\\"+t}e.exports=function(t){function e(t){throw new Error(\\\"ndarray-extract-contour: \\\"+t)}\\\"object\\\"!=typeof t&&e(\\\"Must specify arguments\\\");var r=t.order;Array.isArray(r)||e(\\\"Must specify order\\\");var T=t.arrayArguments||1;T<1&&e(\\\"Must have at least one array argument\\\");var S=t.scalarArguments||0;S<0&&e(\\\"Scalar arg count must be > 0\\\");\\\"function\\\"!=typeof t.vertex&&e(\\\"Must specify vertex creation function\\\");\\\"function\\\"!=typeof t.cell&&e(\\\"Must specify cell creation function\\\");\\\"function\\\"!=typeof t.phase&&e(\\\"Must specify phase function\\\");for(var E=t.getters||[],C=new Array(T),L=0;L<T;++L)E.indexOf(L)>=0?C[L]=!0:C[L]=!1;return function(t,e,r,T,S,E){var C=E.length,L=S.length;if(L<2)throw new Error(\\\"ndarray-extract-contour: Dimension must be at least 2\\\");for(var z=\\\"extractContour\\\"+S.join(\\\"_\\\"),O=[],I=[],P=[],D=0;D<C;++D)P.push(i(D));for(var D=0;D<T;++D)P.push(u(D));for(var D=0;D<L;++D)I.push(s(D)+\\\"=\\\"+i(0)+\\\".shape[\\\"+D+\\\"]|0\\\");for(var D=0;D<C;++D){I.push(a(D)+\\\"=\\\"+i(D)+\\\".data\\\",c(D)+\\\"=\\\"+i(D)+\\\".offset|0\\\");for(var R=0;R<L;++R)I.push(l(D,R)+\\\"=\\\"+i(D)+\\\".stride[\\\"+R+\\\"]|0\\\")}for(var D=0;D<C;++D){I.push(f(D)+\\\"=\\\"+c(D)),I.push(o(D,0));for(var R=1;R<1<<L;++R){for(var B=[],F=0;F<L;++F)R&1<<F&&B.push(\\\"-\\\"+l(D,F));I.push(h(D,R)+\\\"=(\\\"+B.join(\\\"\\\")+\\\")|0\\\"),I.push(o(D,R)+\\\"=0\\\")}}for(var D=0;D<C;++D)for(var R=0;R<L;++R){var N=[l(D,S[R])];R>0&&N.push(l(D,S[R-1])+\\\"*\\\"+s(S[R-1])),I.push(d(D,S[R])+\\\"=(\\\"+N.join(\\\"-\\\")+\\\")|0\\\")}for(var D=0;D<L;++D)I.push(p(D)+\\\"=0\\\");I.push(_+\\\"=0\\\");for(var j=[\\\"2\\\"],D=L-2;D>=0;--D)j.push(s(S[D]));I.push(w+\\\"=(\\\"+j.join(\\\"*\\\")+\\\")|0\\\",b+\\\"=mallocUint32(\\\"+w+\\\")\\\",x+\\\"=mallocUint32(\\\"+w+\\\")\\\",k+\\\"=0\\\"),I.push(g(0)+\\\"=0\\\");for(var R=1;R<1<<L;++R){for(var V=[],U=[],F=0;F<L;++F)R&1<<F&&(0===U.length?V.push(\\\"1\\\"):V.unshift(U.join(\\\"*\\\"))),U.push(s(S[F]));var q=\\\"\\\";V[0].indexOf(s(S[L-2]))<0&&(q=\\\"-\\\");var H=A(L,R,S);I.push(m(H)+\\\"=(-\\\"+V.join(\\\"-\\\")+\\\")|0\\\",v(H)+\\\"=(\\\"+q+V.join(\\\"-\\\")+\\\")|0\\\",g(H)+\\\"=0\\\")}function G(t,e){O.push(\\\"for(\\\",p(S[t]),\\\"=\\\",e,\\\";\\\",p(S[t]),\\\"<\\\",s(S[t]),\\\";\\\",\\\"++\\\",p(S[t]),\\\"){\\\")}function W(t){for(var e=0;e<C;++e)O.push(f(e),\\\"+=\\\",d(e,S[t]),\\\";\\\");O.push(\\\"}\\\")}function Y(){for(var t=1;t<1<<L;++t)O.push(M,\\\"=\\\",m(t),\\\";\\\",m(t),\\\"=\\\",v(t),\\\";\\\",v(t),\\\"=\\\",M,\\\";\\\")}I.push(y(0)+\\\"=0\\\",M+\\\"=0\\\"),function t(e,r){if(e<0)return void function(t){for(var e=0;e<C;++e)E[e]?O.push(o(e,0),\\\"=\\\",a(e),\\\".get(\\\",f(e),\\\");\\\"):O.push(o(e,0),\\\"=\\\",a(e),\\\"[\\\",f(e),\\\"];\\\");for(var r=[],e=0;e<C;++e)r.push(o(e,0));for(var e=0;e<T;++e)r.push(u(e));O.push(g(0),\\\"=\\\",b,\\\"[\\\",k,\\\"]=phase(\\\",r.join(),\\\");\\\");for(var n=1;n<1<<L;++n)O.push(g(n),\\\"=\\\",b,\\\"[\\\",k,\\\"+\\\",m(n),\\\"];\\\");for(var i=[],n=1;n<1<<L;++n)i.push(\\\"(\\\"+g(0)+\\\"!==\\\"+g(n)+\\\")\\\");O.push(\\\"if(\\\",i.join(\\\"||\\\"),\\\"){\\\");for(var s=[],e=0;e<L;++e)s.push(p(e));for(var e=0;e<C;++e){s.push(o(e,0));for(var n=1;n<1<<L;++n)E[e]?O.push(o(e,n),\\\"=\\\",a(e),\\\".get(\\\",f(e),\\\"+\\\",h(e,n),\\\");\\\"):O.push(o(e,n),\\\"=\\\",a(e),\\\"[\\\",f(e),\\\"+\\\",h(e,n),\\\"];\\\"),s.push(o(e,n))}for(var e=0;e<1<<L;++e)s.push(g(e));for(var e=0;e<T;++e)s.push(u(e));O.push(\\\"vertex(\\\",s.join(),\\\");\\\",y(0),\\\"=\\\",x,\\\"[\\\",k,\\\"]=\\\",_,\\\"++;\\\");for(var l=(1<<L)-1,c=g(l),n=0;n<L;++n)if(0==(t&~(1<<n))){for(var d=l^1<<n,v=g(d),w=[],M=d;M>0;M=M-1&d)w.push(x+\\\"[\\\"+k+\\\"+\\\"+m(M)+\\\"]\\\");w.push(y(0));for(var M=0;M<C;++M)1&n?w.push(o(M,l),o(M,d)):w.push(o(M,d),o(M,l));1&n?w.push(c,v):w.push(v,c);for(var M=0;M<T;++M)w.push(u(M));O.push(\\\"if(\\\",c,\\\"!==\\\",v,\\\"){\\\",\\\"face(\\\",w.join(),\\\")}\\\")}O.push(\\\"}\\\",k,\\\"+=1;\\\")}(r);!function(t){for(var e=t-1;e>=0;--e)G(e,0);for(var r=[],e=0;e<C;++e)E[e]?r.push(a(e)+\\\".get(\\\"+f(e)+\\\")\\\"):r.push(a(e)+\\\"[\\\"+f(e)+\\\"]\\\");for(var e=0;e<T;++e)r.push(u(e));O.push(b,\\\"[\\\",k,\\\"++]=phase(\\\",r.join(),\\\");\\\");for(var e=0;e<t;++e)W(e);for(var n=0;n<C;++n)O.push(f(n),\\\"+=\\\",d(n,S[t]),\\\";\\\")}(e);O.push(\\\"if(\\\",s(S[e]),\\\">0){\\\",p(S[e]),\\\"=1;\\\");t(e-1,r|1<<S[e]);for(var n=0;n<C;++n)O.push(f(n),\\\"+=\\\",d(n,S[e]),\\\";\\\");e===L-1&&(O.push(k,\\\"=0;\\\"),Y());G(e,2);t(e-1,r);e===L-1&&(O.push(\\\"if(\\\",p(S[L-1]),\\\"&1){\\\",k,\\\"=0;}\\\"),Y());W(e);O.push(\\\"}\\\")}(L-1,0),O.push(\\\"freeUint32(\\\",x,\\\");freeUint32(\\\",b,\\\");\\\");var X=[\\\"'use strict';\\\",\\\"function \\\",z,\\\"(\\\",P.join(),\\\"){\\\",\\\"var \\\",I.join(),\\\";\\\",O.join(\\\"\\\"),\\\"}\\\",\\\"return \\\",z].join(\\\"\\\");return new Function(\\\"vertex\\\",\\\"face\\\",\\\"phase\\\",\\\"mallocUint32\\\",\\\"freeUint32\\\",X)(t,e,r,n.mallocUint32,n.freeUint32)}(t.vertex,t.cell,t.phase,S,r,C)};var x=\\\"V\\\",b=\\\"P\\\",_=\\\"N\\\",w=\\\"Q\\\",k=\\\"X\\\",M=\\\"T\\\";function A(t,e,r){for(var n=0,i=0;i<t;++i)e&1<<i&&(n|=1<<r[i]);return n}},{\\\"typedarray-pool\\\":522}],423:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\"],pre:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},body:{body:\\\"{_inline_1_arg1_=_inline_1_arg2_.apply(void 0,_inline_1_arg0_)}\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_1_arg2_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"cwise\\\",blockSize:64});e.exports=function(t,e){return n(t,e),t}},{\\\"cwise/lib/wrapper\\\":137}],424:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){if(Array.isArray(r)){if(r.length!==e.dimension)throw new Error(\\\"ndarray-gradient: invalid boundary conditions\\\")}else r=n(e.dimension,\\\"string\\\"==typeof r?r:\\\"clamp\\\");if(t.dimension!==e.dimension+1)throw new Error(\\\"ndarray-gradient: output dimension must be +1 input dimension\\\");if(t.shape[e.dimension]!==e.dimension)throw new Error(\\\"ndarray-gradient: output shape must match input shape\\\");for(var i=0;i<e.dimension;++i)if(t.shape[i]!==e.shape[i])throw new Error(\\\"ndarray-gradient: shape mismatch\\\");if(0===e.size)return t;if(e.dimension<=0)return t.set(0),t;return function(t){var e=t.join();if(m=o[e])return m;var r=t.length,n=[\\\"function gradient(dst,src){var s=src.shape.slice();\\\"];function i(e){for(var i=r-e.length,a=[],o=[],s=[],l=0;l<r;++l)e.indexOf(l+1)>=0?s.push(\\\"0\\\"):e.indexOf(-(l+1))>=0?s.push(\\\"s[\\\"+l+\\\"]-1\\\"):(s.push(\\\"-1\\\"),a.push(\\\"1\\\"),o.push(\\\"s[\\\"+l+\\\"]-2\\\"));var c=\\\".lo(\\\"+a.join()+\\\").hi(\\\"+o.join()+\\\")\\\";if(0===a.length&&(c=\\\"\\\"),i>0){n.push(\\\"if(1\\\");for(var l=0;l<r;++l)e.indexOf(l+1)>=0||e.indexOf(-(l+1))>=0||n.push(\\\"&&s[\\\",l,\\\"]>2\\\");n.push(\\\"){grad\\\",i,\\\"(src.pick(\\\",s.join(),\\\")\\\",c);for(var l=0;l<r;++l)e.indexOf(l+1)>=0||e.indexOf(-(l+1))>=0||n.push(\\\",dst.pick(\\\",s.join(),\\\",\\\",l,\\\")\\\",c);n.push(\\\");\\\")}for(var l=0;l<e.length;++l){var u=Math.abs(e[l])-1,f=\\\"dst.pick(\\\"+s.join()+\\\",\\\"+u+\\\")\\\"+c;switch(t[u]){case\\\"clamp\\\":var h=s.slice(),p=s.slice();e[l]<0?h[u]=\\\"s[\\\"+u+\\\"]-2\\\":p[u]=\\\"1\\\",0===i?n.push(\\\"if(s[\\\",u,\\\"]>1){dst.set(\\\",s.join(),\\\",\\\",u,\\\",0.5*(src.get(\\\",h.join(),\\\")-src.get(\\\",p.join(),\\\")))}else{dst.set(\\\",s.join(),\\\",\\\",u,\\\",0)};\\\"):n.push(\\\"if(s[\\\",u,\\\"]>1){diff(\\\",f,\\\",src.pick(\\\",h.join(),\\\")\\\",c,\\\",src.pick(\\\",p.join(),\\\")\\\",c,\\\");}else{zero(\\\",f,\\\");};\\\");break;case\\\"mirror\\\":0===i?n.push(\\\"dst.set(\\\",s.join(),\\\",\\\",u,\\\",0);\\\"):n.push(\\\"zero(\\\",f,\\\");\\\");break;case\\\"wrap\\\":var d=s.slice(),g=s.slice();e[l]<0?(d[u]=\\\"s[\\\"+u+\\\"]-2\\\",g[u]=\\\"0\\\"):(d[u]=\\\"s[\\\"+u+\\\"]-1\\\",g[u]=\\\"1\\\"),0===i?n.push(\\\"if(s[\\\",u,\\\"]>2){dst.set(\\\",s.join(),\\\",\\\",u,\\\",0.5*(src.get(\\\",d.join(),\\\")-src.get(\\\",g.join(),\\\")))}else{dst.set(\\\",s.join(),\\\",\\\",u,\\\",0)};\\\"):n.push(\\\"if(s[\\\",u,\\\"]>2){diff(\\\",f,\\\",src.pick(\\\",d.join(),\\\")\\\",c,\\\",src.pick(\\\",g.join(),\\\")\\\",c,\\\");}else{zero(\\\",f,\\\");};\\\");break;default:throw new Error(\\\"ndarray-gradient: Invalid boundary condition\\\")}}i>0&&n.push(\\\"};\\\")}for(var s=0;s<1<<r;++s){for(var f=[],h=0;h<r;++h)s&1<<h&&f.push(h+1);for(var p=0;p<1<<f.length;++p){for(var d=f.slice(),h=0;h<f.length;++h)p&1<<h&&(d[h]=-d[h]);i(d)}}n.push(\\\"return dst;};return gradient\\\");for(var g=[\\\"diff\\\",\\\"zero\\\"],v=[l,c],s=1;s<=r;++s)g.push(\\\"grad\\\"+s),v.push(u(s));g.push(n.join(\\\"\\\"));var m=Function.apply(void 0,g).apply(void 0,v);return a[e]=m,m}(r)(t,e)};var n=t(\\\"dup\\\"),i=t(\\\"cwise-compiler\\\"),a={},o={},s={body:\\\"\\\",args:[],thisVars:[],localVars:[]},l=i({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],pre:s,post:s,body:{args:[{name:\\\"out\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"left\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"right\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"out=0.5*(left-right)\\\",thisVars:[],localVars:[]},funcName:\\\"cdiff\\\"}),c=i({args:[\\\"array\\\"],pre:s,post:s,body:{args:[{name:\\\"out\\\",lvalue:!0,rvalue:!1,count:1}],body:\\\"out=0\\\",thisVars:[],localVars:[]},funcName:\\\"zero\\\"});function u(t){if(t in a)return a[t];for(var e=[],r=0;r<t;++r)e.push(\\\"out\\\",r,\\\"s=0.5*(inp\\\",r,\\\"l-inp\\\",r,\\\"r);\\\");var o=[\\\"array\\\"],l=[\\\"junk\\\"];for(r=0;r<t;++r){o.push(\\\"array\\\"),l.push(\\\"out\\\"+r+\\\"s\\\");var c=n(t);c[r]=-1,o.push({array:0,offset:c.slice()}),c[r]=1,o.push({array:0,offset:c.slice()}),l.push(\\\"inp\\\"+r+\\\"l\\\",\\\"inp\\\"+r+\\\"r\\\")}return a[t]=i({args:o,pre:s,post:s,body:{body:e.join(\\\"\\\"),args:l.map(function(t){return{name:t,lvalue:0===t.indexOf(\\\"out\\\"),rvalue:0===t.indexOf(\\\"inp\\\"),count:\\\"junk\\\"!==t|0}}),thisVars:[],localVars:[]},funcName:\\\"fdTemplate\\\"+t})}},{\\\"cwise-compiler\\\":134,dup:155}],425:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"ndarray-warp\\\"),i=t(\\\"gl-matrix-invert\\\");e.exports=function(t,e,r){var a=e.dimension,o=i([],r);return n(t,e,function(t,e){for(var r=0;r<a;++r){t[r]=o[(a+1)*a+r];for(var n=0;n<a;++n)t[r]+=o[(a+1)*n+r]*e[n]}var i=o[(a+1)*(a+1)-1];for(n=0;n<a;++n)i+=o[(a+1)*n+a]*e[n];var s=1/i;for(r=0;r<a;++r)t[r]*=s;return t}),t}},{\\\"gl-matrix-invert\\\":265,\\\"ndarray-warp\\\":432}],426:[function(t,e,r){\\\"use strict\\\";function n(t,e){var r=Math.floor(e),n=e-r,i=0<=r&&r<t.shape[0],a=0<=r+1&&r+1<t.shape[0];return(1-n)*(i?+t.get(r):0)+n*(a?+t.get(r+1):0)}function i(t,e,r){var n=Math.floor(e),i=e-n,a=0<=n&&n<t.shape[0],o=0<=n+1&&n+1<t.shape[0],s=Math.floor(r),l=r-s,c=0<=s&&s<t.shape[1],u=0<=s+1&&s+1<t.shape[1],f=a&&c?t.get(n,s):0,h=a&&u?t.get(n,s+1):0;return(1-l)*((1-i)*f+i*(o&&c?t.get(n+1,s):0))+l*((1-i)*h+i*(o&&u?t.get(n+1,s+1):0))}function a(t,e,r,n){var i=Math.floor(e),a=e-i,o=0<=i&&i<t.shape[0],s=0<=i+1&&i+1<t.shape[0],l=Math.floor(r),c=r-l,u=0<=l&&l<t.shape[1],f=0<=l+1&&l+1<t.shape[1],h=Math.floor(n),p=n-h,d=0<=h&&h<t.shape[2],g=0<=h+1&&h+1<t.shape[2],v=o&&u&&d?t.get(i,l,h):0,m=o&&f&&d?t.get(i,l+1,h):0,y=s&&u&&d?t.get(i+1,l,h):0,x=s&&f&&d?t.get(i+1,l+1,h):0,b=o&&u&&g?t.get(i,l,h+1):0,_=o&&f&&g?t.get(i,l+1,h+1):0;return(1-p)*((1-c)*((1-a)*v+a*y)+c*((1-a)*m+a*x))+p*((1-c)*((1-a)*b+a*(s&&u&&g?t.get(i+1,l,h+1):0))+c*((1-a)*_+a*(s&&f&&g?t.get(i+1,l+1,h+1):0)))}e.exports=function(t,e,r,o){switch(t.shape.length){case 0:return 0;case 1:return n(t,e);case 2:return i(t,e,r);case 3:return a(t,e,r,o);default:return function(t){var e,r,n=0|t.shape.length,i=new Array(n),a=new Array(n),o=new Array(n),s=new Array(n);for(e=0;e<n;++e)r=+arguments[e+1],i[e]=Math.floor(r),a[e]=r-i[e],o[e]=0<=i[e]&&i[e]<t.shape[e],s[e]=0<=i[e]+1&&i[e]+1<t.shape[e];var l,c,u,f=0;t:for(e=0;e<1<<n;++e){for(c=1,u=t.offset,l=0;l<n;++l)if(e&1<<l){if(!s[l])continue t;c*=a[l],u+=t.stride[l]*(i[l]+1)}else{if(!o[l])continue t;c*=1-a[l],u+=t.stride[l]*i[l]}f+=c*t.data[u]}return f}.apply(void 0,arguments)}},e.exports.d1=n,e.exports.d2=i,e.exports.d3=a},{}],427:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"cwise-compiler\\\"),i={body:\\\"\\\",args:[],thisVars:[],localVars:[]};function a(t){if(!t)return i;for(var e=0;e<t.args.length;++e){var r=t.args[e];t.args[e]=0===e?{name:r,lvalue:!0,rvalue:!!t.rvalue,count:t.count||1}:{name:r,lvalue:!1,rvalue:!0,count:1}}return t.thisVars||(t.thisVars=[]),t.localVars||(t.localVars=[]),t}function o(t){for(var e=[],r=0;r<t.args.length;++r)e.push(\\\"a\\\"+r);return new Function(\\\"P\\\",[\\\"return function \\\",t.funcName,\\\"_ndarrayops(\\\",e.join(\\\",\\\"),\\\") {P(\\\",e.join(\\\",\\\"),\\\");return a0}\\\"].join(\\\"\\\"))(function(t){return n({args:t.args,pre:a(t.pre),body:a(t.body),post:a(t.proc),funcName:t.funcName})}(t))}var s={add:\\\"+\\\",sub:\\\"-\\\",mul:\\\"*\\\",div:\\\"/\\\",mod:\\\"%\\\",band:\\\"&\\\",bor:\\\"|\\\",bxor:\\\"^\\\",lshift:\\\"<<\\\",rshift:\\\">>\\\",rrshift:\\\">>>\\\"};!function(){for(var t in s){var e=s[t];r[t]=o({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=b\\\"+e+\\\"c\\\"},funcName:t}),r[t+\\\"eq\\\"]=o({args:[\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a\\\"+e+\\\"=b\\\"},rvalue:!0,funcName:t+\\\"eq\\\"}),r[t+\\\"s\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"b\\\",\\\"s\\\"],body:\\\"a=b\\\"+e+\\\"s\\\"},funcName:t+\\\"s\\\"}),r[t+\\\"seq\\\"]=o({args:[\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"s\\\"],body:\\\"a\\\"+e+\\\"=s\\\"},rvalue:!0,funcName:t+\\\"seq\\\"})}}();var l={not:\\\"!\\\",bnot:\\\"~\\\",neg:\\\"-\\\",recip:\\\"1.0/\\\"};!function(){for(var t in l){var e=l[t];r[t]=o({args:[\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=\\\"+e+\\\"b\\\"},funcName:t}),r[t+\\\"eq\\\"]=o({args:[\\\"array\\\"],body:{args:[\\\"a\\\"],body:\\\"a=\\\"+e+\\\"a\\\"},rvalue:!0,count:2,funcName:t+\\\"eq\\\"})}}();var c={and:\\\"&&\\\",or:\\\"||\\\",eq:\\\"===\\\",neq:\\\"!==\\\",lt:\\\"<\\\",gt:\\\">\\\",leq:\\\"<=\\\",geq:\\\">=\\\"};!function(){for(var t in c){var e=c[t];r[t]=o({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=b\\\"+e+\\\"c\\\"},funcName:t}),r[t+\\\"s\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"b\\\",\\\"s\\\"],body:\\\"a=b\\\"+e+\\\"s\\\"},funcName:t+\\\"s\\\"}),r[t+\\\"eq\\\"]=o({args:[\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=a\\\"+e+\\\"b\\\"},rvalue:!0,count:2,funcName:t+\\\"eq\\\"}),r[t+\\\"seq\\\"]=o({args:[\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"s\\\"],body:\\\"a=a\\\"+e+\\\"s\\\"},rvalue:!0,count:2,funcName:t+\\\"seq\\\"})}}();var u=[\\\"abs\\\",\\\"acos\\\",\\\"asin\\\",\\\"atan\\\",\\\"ceil\\\",\\\"cos\\\",\\\"exp\\\",\\\"floor\\\",\\\"log\\\",\\\"round\\\",\\\"sin\\\",\\\"sqrt\\\",\\\"tan\\\"];!function(){for(var t=0;t<u.length;++t){var e=u[t];r[e]=o({args:[\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(b)\\\",thisVars:[\\\"this_f\\\"]},funcName:e}),r[e+\\\"eq\\\"]=o({args:[\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\"],body:\\\"a=this_f(a)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"eq\\\"})}}();var f=[\\\"max\\\",\\\"min\\\",\\\"atan2\\\",\\\"pow\\\"];!function(){for(var t=0;t<f.length;++t){var e=f[t];r[e]=o({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=this_f(b,c)\\\",thisVars:[\\\"this_f\\\"]},funcName:e}),r[e+\\\"s\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"scalar\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=this_f(b,c)\\\",thisVars:[\\\"this_f\\\"]},funcName:e+\\\"s\\\"}),r[e+\\\"eq\\\"]=o({args:[\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(a,b)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"eq\\\"}),r[e+\\\"seq\\\"]=o({args:[\\\"array\\\",\\\"scalar\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(a,b)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"seq\\\"})}}();var h=[\\\"atan2\\\",\\\"pow\\\"];!function(){for(var t=0;t<h.length;++t){var e=h[t];r[e+\\\"op\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=this_f(c,b)\\\",thisVars:[\\\"this_f\\\"]},funcName:e+\\\"op\\\"}),r[e+\\\"ops\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"scalar\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=this_f(c,b)\\\",thisVars:[\\\"this_f\\\"]},funcName:e+\\\"ops\\\"}),r[e+\\\"opeq\\\"]=o({args:[\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(b,a)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"opeq\\\"}),r[e+\\\"opseq\\\"]=o({args:[\\\"array\\\",\\\"scalar\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(b,a)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"opseq\\\"})}}(),r.any=n({args:[\\\"array\\\"],pre:i,body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"if(a){return true}\\\",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:\\\"return false\\\"},funcName:\\\"any\\\"}),r.all=n({args:[\\\"array\\\"],pre:i,body:{args:[{name:\\\"x\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"if(!x){return false}\\\",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:\\\"return true\\\"},funcName:\\\"all\\\"}),r.sum=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"this_s+=a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"sum\\\"}),r.prod=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=1\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"this_s*=a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"prod\\\"}),r.norm2squared=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:2}],body:\\\"this_s+=a*a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"norm2squared\\\"}),r.norm2=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:2}],body:\\\"this_s+=a*a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return Math.sqrt(this_s)\\\"},funcName:\\\"norm2\\\"}),r.norminf=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:4}],body:\\\"if(-a>this_s){this_s=-a}else if(a>this_s){this_s=a}\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"norminf\\\"}),r.norm1=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:3}],body:\\\"this_s+=a<0?-a:a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"norm1\\\"}),r.sup=n({args:[\\\"array\\\"],pre:{body:\\\"this_h=-Infinity\\\",args:[],thisVars:[\\\"this_h\\\"],localVars:[]},body:{body:\\\"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:2}],thisVars:[\\\"this_h\\\"],localVars:[]},post:{body:\\\"return this_h\\\",args:[],thisVars:[\\\"this_h\\\"],localVars:[]}}),r.inf=n({args:[\\\"array\\\"],pre:{body:\\\"this_h=Infinity\\\",args:[],thisVars:[\\\"this_h\\\"],localVars:[]},body:{body:\\\"if(_inline_1_arg0_<this_h)this_h=_inline_1_arg0_\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:2}],thisVars:[\\\"this_h\\\"],localVars:[]},post:{body:\\\"return this_h\\\",args:[],thisVars:[\\\"this_h\\\"],localVars:[]}}),r.argmin=n({args:[\\\"index\\\",\\\"array\\\",\\\"shape\\\"],pre:{body:\\\"{this_v=Infinity;this_i=_inline_0_arg2_.slice(0)}\\\",args:[{name:\\\"_inline_0_arg0_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_0_arg1_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_0_arg2_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_i\\\",\\\"this_v\\\"],localVars:[]},body:{body:\\\"{if(_inline_1_arg1_<this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:2},{name:\\\"_inline_1_arg1_\\\",lvalue:!1,rvalue:!0,count:2}],thisVars:[\\\"this_i\\\",\\\"this_v\\\"],localVars:[\\\"_inline_1_k\\\"]},post:{body:\\\"{return this_i}\\\",args:[],thisVars:[\\\"this_i\\\"],localVars:[]}}),r.argmax=n({args:[\\\"index\\\",\\\"array\\\",\\\"shape\\\"],pre:{body:\\\"{this_v=-Infinity;this_i=_inline_0_arg2_.slice(0)}\\\",args:[{name:\\\"_inline_0_arg0_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_0_arg1_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_0_arg2_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_i\\\",\\\"this_v\\\"],localVars:[]},body:{body:\\\"{if(_inline_1_arg1_>this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:2},{name:\\\"_inline_1_arg1_\\\",lvalue:!1,rvalue:!0,count:2}],thisVars:[\\\"this_i\\\",\\\"this_v\\\"],localVars:[\\\"_inline_1_k\\\"]},post:{body:\\\"{return this_i}\\\",args:[],thisVars:[\\\"this_i\\\"],localVars:[]}}),r.random=o({args:[\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.random\\\",thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\"],body:\\\"a=this_f()\\\",thisVars:[\\\"this_f\\\"]},funcName:\\\"random\\\"}),r.assign=o({args:[\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=b\\\"},funcName:\\\"assign\\\"}),r.assigns=o({args:[\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=b\\\"},funcName:\\\"assigns\\\"}),r.equals=n({args:[\\\"array\\\",\\\"array\\\"],pre:i,body:{args:[{name:\\\"x\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"y\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"if(x!==y){return false}\\\",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:\\\"return true\\\"},funcName:\\\"equals\\\"})},{\\\"cwise-compiler\\\":134}],428:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"ndarray\\\"),i=t(\\\"./doConvert.js\\\");e.exports=function(t,e){for(var r=[],a=t,o=1;Array.isArray(a);)r.push(a.length),o*=a.length,a=a[0];return 0===r.length?n():(e||(e=n(new Float64Array(o),r)),i(e,t),e)}},{\\\"./doConvert.js\\\":429,ndarray:433}],429:[function(t,e,r){e.exports=t(\\\"cwise-compiler\\\")({args:[\\\"array\\\",\\\"scalar\\\",\\\"index\\\"],pre:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},body:{body:\\\"{\\\\nvar _inline_1_v=_inline_1_arg1_,_inline_1_i\\\\nfor(_inline_1_i=0;_inline_1_i<_inline_1_arg2_.length-1;++_inline_1_i) {\\\\n_inline_1_v=_inline_1_v[_inline_1_arg2_[_inline_1_i]]\\\\n}\\\\n_inline_1_arg0_=_inline_1_v[_inline_1_arg2_[_inline_1_arg2_.length-1]]\\\\n}\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_1_arg1_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg2_\\\",lvalue:!1,rvalue:!0,count:4}],thisVars:[],localVars:[\\\"_inline_1_i\\\",\\\"_inline_1_v\\\"]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},funcName:\\\"convert\\\",blockSize:64})},{\\\"cwise-compiler\\\":134}],430:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"typedarray-pool\\\"),i=32;function a(t){switch(t){case\\\"uint8\\\":return[n.mallocUint8,n.freeUint8];case\\\"uint16\\\":return[n.mallocUint16,n.freeUint16];case\\\"uint32\\\":return[n.mallocUint32,n.freeUint32];case\\\"int8\\\":return[n.mallocInt8,n.freeInt8];case\\\"int16\\\":return[n.mallocInt16,n.freeInt16];case\\\"int32\\\":return[n.mallocInt32,n.freeInt32];case\\\"float32\\\":return[n.mallocFloat,n.freeFloat];case\\\"float64\\\":return[n.mallocDouble,n.freeDouble];default:return null}}function o(t){for(var e=[],r=0;r<t;++r)e.push(\\\"s\\\"+r);for(r=0;r<t;++r)e.push(\\\"n\\\"+r);for(r=1;r<t;++r)e.push(\\\"d\\\"+r);for(r=1;r<t;++r)e.push(\\\"e\\\"+r);for(r=1;r<t;++r)e.push(\\\"f\\\"+r);return e}e.exports=function(t,e){var r=[\\\"'use strict'\\\"],n=[\\\"ndarraySortWrapper\\\",t.join(\\\"d\\\"),e].join(\\\"\\\");r.push([\\\"function \\\",n,\\\"(\\\",[\\\"array\\\"].join(\\\",\\\"),\\\"){\\\"].join(\\\"\\\"));for(var s=[\\\"data=array.data,offset=array.offset|0,shape=array.shape,stride=array.stride\\\"],l=0;l<t.length;++l)s.push([\\\"s\\\",l,\\\"=stride[\\\",l,\\\"]|0,n\\\",l,\\\"=shape[\\\",l,\\\"]|0\\\"].join(\\\"\\\"));var c=new Array(t.length),u=[];for(l=0;l<t.length;++l)0!==(p=t[l])&&(0===u.length?c[p]=\\\"1\\\":c[p]=u.join(\\\"*\\\"),u.push(\\\"n\\\"+p));var f=-1,h=-1;for(l=0;l<t.length;++l){var p,d=t[l];0!==d&&(f>0?s.push([\\\"d\\\",d,\\\"=s\\\",d,\\\"-d\\\",f,\\\"*n\\\",f].join(\\\"\\\")):s.push([\\\"d\\\",d,\\\"=s\\\",d].join(\\\"\\\")),f=d),0!=(p=t.length-1-l)&&(h>0?s.push([\\\"e\\\",p,\\\"=s\\\",p,\\\"-e\\\",h,\\\"*n\\\",h,\\\",f\\\",p,\\\"=\\\",c[p],\\\"-f\\\",h,\\\"*n\\\",h].join(\\\"\\\")):s.push([\\\"e\\\",p,\\\"=s\\\",p,\\\",f\\\",p,\\\"=\\\",c[p]].join(\\\"\\\")),h=p)}r.push(\\\"var \\\"+s.join(\\\",\\\"));var g=[\\\"0\\\",\\\"n0-1\\\",\\\"data\\\",\\\"offset\\\"].concat(o(t.length));r.push([\\\"if(n0<=\\\",i,\\\"){\\\",\\\"insertionSort(\\\",g.join(\\\",\\\"),\\\")}else{\\\",\\\"quickSort(\\\",g.join(\\\",\\\"),\\\")}\\\"].join(\\\"\\\")),r.push(\\\"}return \\\"+n);var v=new Function(\\\"insertionSort\\\",\\\"quickSort\\\",r.join(\\\"\\\\n\\\")),m=function(t,e){var r=[\\\"'use strict'\\\"],n=[\\\"ndarrayInsertionSort\\\",t.join(\\\"d\\\"),e].join(\\\"\\\"),i=[\\\"left\\\",\\\"right\\\",\\\"data\\\",\\\"offset\\\"].concat(o(t.length)),s=a(e),l=[\\\"i,j,cptr,ptr=left*s0+offset\\\"];if(t.length>1){for(var c=[],u=1;u<t.length;++u)l.push(\\\"i\\\"+u),c.push(\\\"n\\\"+u);s?l.push(\\\"scratch=malloc(\\\"+c.join(\\\"*\\\")+\\\")\\\"):l.push(\\\"scratch=new Array(\\\"+c.join(\\\"*\\\")+\\\")\\\"),l.push(\\\"dptr\\\",\\\"sptr\\\",\\\"a\\\",\\\"b\\\")}else l.push(\\\"scratch\\\");function f(t){return\\\"generic\\\"===e?[\\\"data.get(\\\",t,\\\")\\\"].join(\\\"\\\"):[\\\"data[\\\",t,\\\"]\\\"].join(\\\"\\\")}function h(t,r){return\\\"generic\\\"===e?[\\\"data.set(\\\",t,\\\",\\\",r,\\\")\\\"].join(\\\"\\\"):[\\\"data[\\\",t,\\\"]=\\\",r].join(\\\"\\\")}if(r.push([\\\"function \\\",n,\\\"(\\\",i.join(\\\",\\\"),\\\"){var \\\",l.join(\\\",\\\")].join(\\\"\\\"),\\\"for(i=left+1;i<=right;++i){\\\",\\\"j=i;ptr+=s0\\\",\\\"cptr=ptr\\\"),t.length>1){for(r.push(\\\"dptr=0;sptr=ptr\\\"),u=t.length-1;u>=0;--u)0!==(p=t[u])&&r.push([\\\"for(i\\\",p,\\\"=0;i\\\",p,\\\"<n\\\",p,\\\";++i\\\",p,\\\"){\\\"].join(\\\"\\\"));for(r.push(\\\"scratch[dptr++]=\\\",f(\\\"sptr\\\")),u=0;u<t.length;++u)0!==(p=t[u])&&r.push(\\\"sptr+=d\\\"+p,\\\"}\\\");for(r.push(\\\"__g:while(j--\\\\x3eleft){\\\",\\\"dptr=0\\\",\\\"sptr=cptr-s0\\\"),u=1;u<t.length;++u)1===u&&r.push(\\\"__l:\\\"),r.push([\\\"for(i\\\",u,\\\"=0;i\\\",u,\\\"<n\\\",u,\\\";++i\\\",u,\\\"){\\\"].join(\\\"\\\"));for(r.push([\\\"a=\\\",f(\\\"sptr\\\"),\\\"\\\\nb=scratch[dptr]\\\\nif(a<b){break __g}\\\\nif(a>b){break __l}\\\"].join(\\\"\\\")),u=t.length-1;u>=1;--u)r.push(\\\"sptr+=e\\\"+u,\\\"dptr+=f\\\"+u,\\\"}\\\");for(r.push(\\\"dptr=cptr;sptr=cptr-s0\\\"),u=t.length-1;u>=0;--u)0!==(p=t[u])&&r.push([\\\"for(i\\\",p,\\\"=0;i\\\",p,\\\"<n\\\",p,\\\";++i\\\",p,\\\"){\\\"].join(\\\"\\\"));for(r.push(h(\\\"dptr\\\",f(\\\"sptr\\\"))),u=0;u<t.length;++u)0!==(p=t[u])&&r.push([\\\"dptr+=d\\\",p,\\\";sptr+=d\\\",p].join(\\\"\\\"),\\\"}\\\");for(r.push(\\\"cptr-=s0\\\\n}\\\"),r.push(\\\"dptr=cptr;sptr=0\\\"),u=t.length-1;u>=0;--u)0!==(p=t[u])&&r.push([\\\"for(i\\\",p,\\\"=0;i\\\",p,\\\"<n\\\",p,\\\";++i\\\",p,\\\"){\\\"].join(\\\"\\\"));for(r.push(h(\\\"dptr\\\",\\\"scratch[sptr++]\\\")),u=0;u<t.length;++u){var p;0!==(p=t[u])&&r.push(\\\"dptr+=d\\\"+p,\\\"}\\\")}}else r.push(\\\"scratch=\\\"+f(\\\"ptr\\\"),\\\"while((j--\\\\x3eleft)&&(\\\"+f(\\\"cptr-s0\\\")+\\\">scratch)){\\\",h(\\\"cptr\\\",f(\\\"cptr-s0\\\")),\\\"cptr-=s0\\\",\\\"}\\\",h(\\\"cptr\\\",\\\"scratch\\\"));return r.push(\\\"}\\\"),t.length>1&&s&&r.push(\\\"free(scratch)\\\"),r.push(\\\"} return \\\"+n),s?new Function(\\\"malloc\\\",\\\"free\\\",r.join(\\\"\\\\n\\\"))(s[0],s[1]):new Function(r.join(\\\"\\\\n\\\"))()}(t,e),y=function(t,e,r){var n=[\\\"'use strict'\\\"],s=[\\\"ndarrayQuickSort\\\",t.join(\\\"d\\\"),e].join(\\\"\\\"),l=[\\\"left\\\",\\\"right\\\",\\\"data\\\",\\\"offset\\\"].concat(o(t.length)),c=a(e),u=0;n.push([\\\"function \\\",s,\\\"(\\\",l.join(\\\",\\\"),\\\"){\\\"].join(\\\"\\\"));var f=[\\\"sixth=((right-left+1)/6)|0\\\",\\\"index1=left+sixth\\\",\\\"index5=right-sixth\\\",\\\"index3=(left+right)>>1\\\",\\\"index2=index3-sixth\\\",\\\"index4=index3+sixth\\\",\\\"el1=index1\\\",\\\"el2=index2\\\",\\\"el3=index3\\\",\\\"el4=index4\\\",\\\"el5=index5\\\",\\\"less=left+1\\\",\\\"great=right-1\\\",\\\"pivots_are_equal=true\\\",\\\"tmp\\\",\\\"tmp0\\\",\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"k\\\",\\\"ptr0\\\",\\\"ptr1\\\",\\\"ptr2\\\",\\\"comp_pivot1=0\\\",\\\"comp_pivot2=0\\\",\\\"comp=0\\\"];if(t.length>1){for(var h=[],p=1;p<t.length;++p)h.push(\\\"n\\\"+p),f.push(\\\"i\\\"+p);for(p=0;p<8;++p)f.push(\\\"b_ptr\\\"+p);f.push(\\\"ptr3\\\",\\\"ptr4\\\",\\\"ptr5\\\",\\\"ptr6\\\",\\\"ptr7\\\",\\\"pivot_ptr\\\",\\\"ptr_shift\\\",\\\"elementSize=\\\"+h.join(\\\"*\\\")),c?f.push(\\\"pivot1=malloc(elementSize)\\\",\\\"pivot2=malloc(elementSize)\\\"):f.push(\\\"pivot1=new Array(elementSize),pivot2=new Array(elementSize)\\\")}else f.push(\\\"pivot1\\\",\\\"pivot2\\\");function d(t){return[\\\"(offset+\\\",t,\\\"*s0)\\\"].join(\\\"\\\")}function g(t){return\\\"generic\\\"===e?[\\\"data.get(\\\",t,\\\")\\\"].join(\\\"\\\"):[\\\"data[\\\",t,\\\"]\\\"].join(\\\"\\\")}function v(t,r){return\\\"generic\\\"===e?[\\\"data.set(\\\",t,\\\",\\\",r,\\\")\\\"].join(\\\"\\\"):[\\\"data[\\\",t,\\\"]=\\\",r].join(\\\"\\\")}function m(e,r,i){if(1===e.length)n.push(\\\"ptr0=\\\"+d(e[0]));else for(var a=0;a<e.length;++a)n.push([\\\"b_ptr\\\",a,\\\"=s0*\\\",e[a]].join(\\\"\\\"));for(r&&n.push(\\\"pivot_ptr=0\\\"),n.push(\\\"ptr_shift=offset\\\"),a=t.length-1;a>=0;--a)0!==(o=t[a])&&n.push([\\\"for(i\\\",o,\\\"=0;i\\\",o,\\\"<n\\\",o,\\\";++i\\\",o,\\\"){\\\"].join(\\\"\\\"));if(e.length>1)for(a=0;a<e.length;++a)n.push([\\\"ptr\\\",a,\\\"=b_ptr\\\",a,\\\"+ptr_shift\\\"].join(\\\"\\\"));for(n.push(i),r&&n.push(\\\"++pivot_ptr\\\"),a=0;a<t.length;++a){var o;0!==(o=t[a])&&(e.length>1?n.push(\\\"ptr_shift+=d\\\"+o):n.push(\\\"ptr0+=d\\\"+o),n.push(\\\"}\\\"))}}function y(e,r,i,a){if(1===r.length)n.push(\\\"ptr0=\\\"+d(r[0]));else{for(var o=0;o<r.length;++o)n.push([\\\"b_ptr\\\",o,\\\"=s0*\\\",r[o]].join(\\\"\\\"));n.push(\\\"ptr_shift=offset\\\")}for(i&&n.push(\\\"pivot_ptr=0\\\"),e&&n.push(e+\\\":\\\"),o=1;o<t.length;++o)n.push([\\\"for(i\\\",o,\\\"=0;i\\\",o,\\\"<n\\\",o,\\\";++i\\\",o,\\\"){\\\"].join(\\\"\\\"));if(r.length>1)for(o=0;o<r.length;++o)n.push([\\\"ptr\\\",o,\\\"=b_ptr\\\",o,\\\"+ptr_shift\\\"].join(\\\"\\\"));for(n.push(a),o=t.length-1;o>=1;--o)i&&n.push(\\\"pivot_ptr+=f\\\"+o),r.length>1?n.push(\\\"ptr_shift+=e\\\"+o):n.push(\\\"ptr0+=e\\\"+o),n.push(\\\"}\\\")}function x(){t.length>1&&c&&n.push(\\\"free(pivot1)\\\",\\\"free(pivot2)\\\")}function b(e,r){var i=\\\"el\\\"+e,a=\\\"el\\\"+r;if(t.length>1){var o=\\\"__l\\\"+ ++u;y(o,[i,a],!1,[\\\"comp=\\\",g(\\\"ptr0\\\"),\\\"-\\\",g(\\\"ptr1\\\"),\\\"\\\\n\\\",\\\"if(comp>0){tmp0=\\\",i,\\\";\\\",i,\\\"=\\\",a,\\\";\\\",a,\\\"=tmp0;break \\\",o,\\\"}\\\\n\\\",\\\"if(comp<0){break \\\",o,\\\"}\\\"].join(\\\"\\\"))}else n.push([\\\"if(\\\",g(d(i)),\\\">\\\",g(d(a)),\\\"){tmp0=\\\",i,\\\";\\\",i,\\\"=\\\",a,\\\";\\\",a,\\\"=tmp0}\\\"].join(\\\"\\\"))}function _(e,r){t.length>1?m([e,r],!1,v(\\\"ptr0\\\",g(\\\"ptr1\\\"))):n.push(v(d(e),g(d(r))))}function w(e,r,i){if(t.length>1){var a=\\\"__l\\\"+ ++u;y(a,[r],!0,[e,\\\"=\\\",g(\\\"ptr0\\\"),\\\"-pivot\\\",i,\\\"[pivot_ptr]\\\\n\\\",\\\"if(\\\",e,\\\"!==0){break \\\",a,\\\"}\\\"].join(\\\"\\\"))}else n.push([e,\\\"=\\\",g(d(r)),\\\"-pivot\\\",i].join(\\\"\\\"))}function k(e,r){t.length>1?m([e,r],!1,[\\\"tmp=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",\\\"tmp\\\")].join(\\\"\\\")):n.push([\\\"ptr0=\\\",d(e),\\\"\\\\n\\\",\\\"ptr1=\\\",d(r),\\\"\\\\n\\\",\\\"tmp=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",\\\"tmp\\\")].join(\\\"\\\"))}function M(e,r,i){t.length>1?(m([e,r,i],!1,[\\\"tmp=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",g(\\\"ptr2\\\")),\\\"\\\\n\\\",v(\\\"ptr2\\\",\\\"tmp\\\")].join(\\\"\\\")),n.push(\\\"++\\\"+r,\\\"--\\\"+i)):n.push([\\\"ptr0=\\\",d(e),\\\"\\\\n\\\",\\\"ptr1=\\\",d(r),\\\"\\\\n\\\",\\\"ptr2=\\\",d(i),\\\"\\\\n\\\",\\\"++\\\",r,\\\"\\\\n\\\",\\\"--\\\",i,\\\"\\\\n\\\",\\\"tmp=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",g(\\\"ptr2\\\")),\\\"\\\\n\\\",v(\\\"ptr2\\\",\\\"tmp\\\")].join(\\\"\\\"))}function A(t,e){k(t,e),n.push(\\\"--\\\"+e)}function T(e,r,i){t.length>1?m([e,r],!0,[v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",[\\\"pivot\\\",i,\\\"[pivot_ptr]\\\"].join(\\\"\\\"))].join(\\\"\\\")):n.push(v(d(e),g(d(r))),v(d(r),\\\"pivot\\\"+i))}function S(e,r){n.push([\\\"if((\\\",r,\\\"-\\\",e,\\\")<=\\\",i,\\\"){\\\\n\\\",\\\"insertionSort(\\\",e,\\\",\\\",r,\\\",data,offset,\\\",o(t.length).join(\\\",\\\"),\\\")\\\\n\\\",\\\"}else{\\\\n\\\",s,\\\"(\\\",e,\\\",\\\",r,\\\",data,offset,\\\",o(t.length).join(\\\",\\\"),\\\")\\\\n\\\",\\\"}\\\"].join(\\\"\\\"))}function E(e,r,i){t.length>1?(n.push([\\\"__l\\\",++u,\\\":while(true){\\\"].join(\\\"\\\")),m([e],!0,[\\\"if(\\\",g(\\\"ptr0\\\"),\\\"!==pivot\\\",r,\\\"[pivot_ptr]){break __l\\\",u,\\\"}\\\"].join(\\\"\\\")),n.push(i,\\\"}\\\")):n.push([\\\"while(\\\",g(d(e)),\\\"===pivot\\\",r,\\\"){\\\",i,\\\"}\\\"].join(\\\"\\\"))}return n.push(\\\"var \\\"+f.join(\\\",\\\")),b(1,2),b(4,5),b(1,3),b(2,3),b(1,4),b(3,4),b(2,5),b(2,3),b(4,5),t.length>1?m([\\\"el1\\\",\\\"el2\\\",\\\"el3\\\",\\\"el4\\\",\\\"el5\\\",\\\"index1\\\",\\\"index3\\\",\\\"index5\\\"],!0,[\\\"pivot1[pivot_ptr]=\\\",g(\\\"ptr1\\\"),\\\"\\\\n\\\",\\\"pivot2[pivot_ptr]=\\\",g(\\\"ptr3\\\"),\\\"\\\\n\\\",\\\"pivots_are_equal=pivots_are_equal&&(pivot1[pivot_ptr]===pivot2[pivot_ptr])\\\\n\\\",\\\"x=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",\\\"y=\\\",g(\\\"ptr2\\\"),\\\"\\\\n\\\",\\\"z=\\\",g(\\\"ptr4\\\"),\\\"\\\\n\\\",v(\\\"ptr5\\\",\\\"x\\\"),\\\"\\\\n\\\",v(\\\"ptr6\\\",\\\"y\\\"),\\\"\\\\n\\\",v(\\\"ptr7\\\",\\\"z\\\")].join(\\\"\\\")):n.push([\\\"pivot1=\\\",g(d(\\\"el2\\\")),\\\"\\\\n\\\",\\\"pivot2=\\\",g(d(\\\"el4\\\")),\\\"\\\\n\\\",\\\"pivots_are_equal=pivot1===pivot2\\\\n\\\",\\\"x=\\\",g(d(\\\"el1\\\")),\\\"\\\\n\\\",\\\"y=\\\",g(d(\\\"el3\\\")),\\\"\\\\n\\\",\\\"z=\\\",g(d(\\\"el5\\\")),\\\"\\\\n\\\",v(d(\\\"index1\\\"),\\\"x\\\"),\\\"\\\\n\\\",v(d(\\\"index3\\\"),\\\"y\\\"),\\\"\\\\n\\\",v(d(\\\"index5\\\"),\\\"z\\\")].join(\\\"\\\")),_(\\\"index2\\\",\\\"left\\\"),_(\\\"index4\\\",\\\"right\\\"),n.push(\\\"if(pivots_are_equal){\\\"),n.push(\\\"for(k=less;k<=great;++k){\\\"),w(\\\"comp\\\",\\\"k\\\",1),n.push(\\\"if(comp===0){continue}\\\"),n.push(\\\"if(comp<0){\\\"),n.push(\\\"if(k!==less){\\\"),k(\\\"k\\\",\\\"less\\\"),n.push(\\\"}\\\"),n.push(\\\"++less\\\"),n.push(\\\"}else{\\\"),n.push(\\\"while(true){\\\"),w(\\\"comp\\\",\\\"great\\\",1),n.push(\\\"if(comp>0){\\\"),n.push(\\\"great--\\\"),n.push(\\\"}else if(comp<0){\\\"),M(\\\"k\\\",\\\"less\\\",\\\"great\\\"),n.push(\\\"break\\\"),n.push(\\\"}else{\\\"),A(\\\"k\\\",\\\"great\\\"),n.push(\\\"break\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}else{\\\"),n.push(\\\"for(k=less;k<=great;++k){\\\"),w(\\\"comp_pivot1\\\",\\\"k\\\",1),n.push(\\\"if(comp_pivot1<0){\\\"),n.push(\\\"if(k!==less){\\\"),k(\\\"k\\\",\\\"less\\\"),n.push(\\\"}\\\"),n.push(\\\"++less\\\"),n.push(\\\"}else{\\\"),w(\\\"comp_pivot2\\\",\\\"k\\\",2),n.push(\\\"if(comp_pivot2>0){\\\"),n.push(\\\"while(true){\\\"),w(\\\"comp\\\",\\\"great\\\",2),n.push(\\\"if(comp>0){\\\"),n.push(\\\"if(--great<k){break}\\\"),n.push(\\\"continue\\\"),n.push(\\\"}else{\\\"),w(\\\"comp\\\",\\\"great\\\",1),n.push(\\\"if(comp<0){\\\"),M(\\\"k\\\",\\\"less\\\",\\\"great\\\"),n.push(\\\"}else{\\\"),A(\\\"k\\\",\\\"great\\\"),n.push(\\\"}\\\"),n.push(\\\"break\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),T(\\\"left\\\",\\\"(less-1)\\\",1),T(\\\"right\\\",\\\"(great+1)\\\",2),S(\\\"left\\\",\\\"(less-2)\\\"),S(\\\"(great+2)\\\",\\\"right\\\"),n.push(\\\"if(pivots_are_equal){\\\"),x(),n.push(\\\"return\\\"),n.push(\\\"}\\\"),n.push(\\\"if(less<index1&&great>index5){\\\"),E(\\\"less\\\",1,\\\"++less\\\"),E(\\\"great\\\",2,\\\"--great\\\"),n.push(\\\"for(k=less;k<=great;++k){\\\"),w(\\\"comp_pivot1\\\",\\\"k\\\",1),n.push(\\\"if(comp_pivot1===0){\\\"),n.push(\\\"if(k!==less){\\\"),k(\\\"k\\\",\\\"less\\\"),n.push(\\\"}\\\"),n.push(\\\"++less\\\"),n.push(\\\"}else{\\\"),w(\\\"comp_pivot2\\\",\\\"k\\\",2),n.push(\\\"if(comp_pivot2===0){\\\"),n.push(\\\"while(true){\\\"),w(\\\"comp\\\",\\\"great\\\",2),n.push(\\\"if(comp===0){\\\"),n.push(\\\"if(--great<k){break}\\\"),n.push(\\\"continue\\\"),n.push(\\\"}else{\\\"),w(\\\"comp\\\",\\\"great\\\",1),n.push(\\\"if(comp<0){\\\"),M(\\\"k\\\",\\\"less\\\",\\\"great\\\"),n.push(\\\"}else{\\\"),A(\\\"k\\\",\\\"great\\\"),n.push(\\\"}\\\"),n.push(\\\"break\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),x(),S(\\\"less\\\",\\\"great\\\"),n.push(\\\"}return \\\"+s),t.length>1&&c?new Function(\\\"insertionSort\\\",\\\"malloc\\\",\\\"free\\\",n.join(\\\"\\\\n\\\"))(r,c[0],c[1]):new Function(\\\"insertionSort\\\",n.join(\\\"\\\\n\\\"))(r)}(t,e,m);return v(m,y)}},{\\\"typedarray-pool\\\":522}],431:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/compile_sort.js\\\"),i={};e.exports=function(t){var e=t.order,r=t.dtype,a=[e,r].join(\\\":\\\"),o=i[a];return o||(i[a]=o=n(e,r)),o(t),t}},{\\\"./lib/compile_sort.js\\\":430}],432:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"ndarray-linear-interpolate\\\"),i=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\",\\\"scalar\\\",\\\"scalar\\\"],pre:{body:\\\"{this_warped=new Array(_inline_3_arg4_)}\\\",args:[{name:\\\"_inline_3_arg0_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_3_arg1_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_3_arg2_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_3_arg3_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_3_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_warped\\\"],localVars:[]},body:{body:\\\"{_inline_4_arg2_(this_warped,_inline_4_arg0_),_inline_4_arg1_=_inline_4_arg3_.apply(void 0,this_warped)}\\\",args:[{name:\\\"_inline_4_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_4_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_4_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_4_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_4_arg4_\\\",lvalue:!1,rvalue:!1,count:0}],thisVars:[\\\"this_warped\\\"],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"warpND\\\",blockSize:64}),a=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\",\\\"scalar\\\",\\\"scalar\\\"],pre:{body:\\\"{this_warped=[0]}\\\",args:[],thisVars:[\\\"this_warped\\\"],localVars:[]},body:{body:\\\"{_inline_7_arg2_(this_warped,_inline_7_arg0_),_inline_7_arg1_=_inline_7_arg3_(_inline_7_arg4_,this_warped[0])}\\\",args:[{name:\\\"_inline_7_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_7_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_7_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_7_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_7_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_warped\\\"],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"warp1D\\\",blockSize:64}),o=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\",\\\"scalar\\\",\\\"scalar\\\"],pre:{body:\\\"{this_warped=[0,0]}\\\",args:[],thisVars:[\\\"this_warped\\\"],localVars:[]},body:{body:\\\"{_inline_10_arg2_(this_warped,_inline_10_arg0_),_inline_10_arg1_=_inline_10_arg3_(_inline_10_arg4_,this_warped[0],this_warped[1])}\\\",args:[{name:\\\"_inline_10_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_10_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_10_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_10_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_10_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_warped\\\"],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"warp2D\\\",blockSize:64}),s=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\",\\\"scalar\\\",\\\"scalar\\\"],pre:{body:\\\"{this_warped=[0,0,0]}\\\",args:[],thisVars:[\\\"this_warped\\\"],localVars:[]},body:{body:\\\"{_inline_13_arg2_(this_warped,_inline_13_arg0_),_inline_13_arg1_=_inline_13_arg3_(_inline_13_arg4_,this_warped[0],this_warped[1],this_warped[2])}\\\",args:[{name:\\\"_inline_13_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_13_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_13_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_13_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_13_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_warped\\\"],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"warp3D\\\",blockSize:64});e.exports=function(t,e,r){switch(e.shape.length){case 1:a(t,r,n.d1,e);break;case 2:o(t,r,n.d2,e);break;case 3:s(t,r,n.d3,e);break;default:i(t,r,n.bind(void 0,e),e.shape.length)}return t}},{\\\"cwise/lib/wrapper\\\":137,\\\"ndarray-linear-interpolate\\\":426}],433:[function(t,e,r){var n=t(\\\"iota-array\\\"),i=t(\\\"is-buffer\\\"),a=\\\"undefined\\\"!=typeof Float64Array;function o(t,e){return t[0]-e[0]}function s(){var t,e=this.stride,r=new Array(e.length);for(t=0;t<r.length;++t)r[t]=[Math.abs(e[t]),t];r.sort(o);var n=new Array(r.length);for(t=0;t<n.length;++t)n[t]=r[t][1];return n}function l(t,e){var r=[\\\"View\\\",e,\\\"d\\\",t].join(\\\"\\\");e<0&&(r=\\\"View_Nil\\\"+t);var i=\\\"generic\\\"===t;if(-1===e){var a=\\\"function \\\"+r+\\\"(a){this.data=a;};var proto=\\\"+r+\\\".prototype;proto.dtype='\\\"+t+\\\"';proto.index=function(){return -1};proto.size=0;proto.dimension=-1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function(){return new \\\"+r+\\\"(this.data);};proto.get=proto.set=function(){};proto.pick=function(){return null};return function construct_\\\"+r+\\\"(a){return new \\\"+r+\\\"(a);}\\\";return new Function(a)()}if(0===e){a=\\\"function \\\"+r+\\\"(a,d) {this.data = a;this.offset = d};var proto=\\\"+r+\\\".prototype;proto.dtype='\\\"+t+\\\"';proto.index=function(){return this.offset};proto.dimension=0;proto.size=1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function \\\"+r+\\\"_copy() {return new \\\"+r+\\\"(this.data,this.offset)};proto.pick=function \\\"+r+\\\"_pick(){return TrivialArray(this.data);};proto.valueOf=proto.get=function \\\"+r+\\\"_get(){return \\\"+(i?\\\"this.data.get(this.offset)\\\":\\\"this.data[this.offset]\\\")+\\\"};proto.set=function \\\"+r+\\\"_set(v){return \\\"+(i?\\\"this.data.set(this.offset,v)\\\":\\\"this.data[this.offset]=v\\\")+\\\"};return function construct_\\\"+r+\\\"(a,b,c,d){return new \\\"+r+\\\"(a,d)}\\\";return new Function(\\\"TrivialArray\\\",a)(c[t][0])}a=[\\\"'use strict'\\\"];var o=n(e),l=o.map(function(t){return\\\"i\\\"+t}),u=\\\"this.offset+\\\"+o.map(function(t){return\\\"this.stride[\\\"+t+\\\"]*i\\\"+t}).join(\\\"+\\\"),f=o.map(function(t){return\\\"b\\\"+t}).join(\\\",\\\"),h=o.map(function(t){return\\\"c\\\"+t}).join(\\\",\\\");a.push(\\\"function \\\"+r+\\\"(a,\\\"+f+\\\",\\\"+h+\\\",d){this.data=a\\\",\\\"this.shape=[\\\"+f+\\\"]\\\",\\\"this.stride=[\\\"+h+\\\"]\\\",\\\"this.offset=d|0}\\\",\\\"var proto=\\\"+r+\\\".prototype\\\",\\\"proto.dtype='\\\"+t+\\\"'\\\",\\\"proto.dimension=\\\"+e),a.push(\\\"Object.defineProperty(proto,'size',{get:function \\\"+r+\\\"_size(){return \\\"+o.map(function(t){return\\\"this.shape[\\\"+t+\\\"]\\\"}).join(\\\"*\\\"),\\\"}})\\\"),1===e?a.push(\\\"proto.order=[0]\\\"):(a.push(\\\"Object.defineProperty(proto,'order',{get:\\\"),e<4?(a.push(\\\"function \\\"+r+\\\"_order(){\\\"),2===e?a.push(\\\"return (Math.abs(this.stride[0])>Math.abs(this.stride[1]))?[1,0]:[0,1]}})\\\"):3===e&&a.push(\\\"var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})\\\")):a.push(\\\"ORDER})\\\")),a.push(\\\"proto.set=function \\\"+r+\\\"_set(\\\"+l.join(\\\",\\\")+\\\",v){\\\"),i?a.push(\\\"return this.data.set(\\\"+u+\\\",v)}\\\"):a.push(\\\"return this.data[\\\"+u+\\\"]=v}\\\"),a.push(\\\"proto.get=function \\\"+r+\\\"_get(\\\"+l.join(\\\",\\\")+\\\"){\\\"),i?a.push(\\\"return this.data.get(\\\"+u+\\\")}\\\"):a.push(\\\"return this.data[\\\"+u+\\\"]}\\\"),a.push(\\\"proto.index=function \\\"+r+\\\"_index(\\\",l.join(),\\\"){return \\\"+u+\\\"}\\\"),a.push(\\\"proto.hi=function \\\"+r+\\\"_hi(\\\"+l.join(\\\",\\\")+\\\"){return new \\\"+r+\\\"(this.data,\\\"+o.map(function(t){return[\\\"(typeof i\\\",t,\\\"!=='number'||i\\\",t,\\\"<0)?this.shape[\\\",t,\\\"]:i\\\",t,\\\"|0\\\"].join(\\\"\\\")}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"this.stride[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",this.offset)}\\\");var p=o.map(function(t){return\\\"a\\\"+t+\\\"=this.shape[\\\"+t+\\\"]\\\"}),d=o.map(function(t){return\\\"c\\\"+t+\\\"=this.stride[\\\"+t+\\\"]\\\"});a.push(\\\"proto.lo=function \\\"+r+\\\"_lo(\\\"+l.join(\\\",\\\")+\\\"){var b=this.offset,d=0,\\\"+p.join(\\\",\\\")+\\\",\\\"+d.join(\\\",\\\"));for(var g=0;g<e;++g)a.push(\\\"if(typeof i\\\"+g+\\\"==='number'&&i\\\"+g+\\\">=0){d=i\\\"+g+\\\"|0;b+=c\\\"+g+\\\"*d;a\\\"+g+\\\"-=d}\\\");a.push(\\\"return new \\\"+r+\\\"(this.data,\\\"+o.map(function(t){return\\\"a\\\"+t}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"c\\\"+t}).join(\\\",\\\")+\\\",b)}\\\"),a.push(\\\"proto.step=function \\\"+r+\\\"_step(\\\"+l.join(\\\",\\\")+\\\"){var \\\"+o.map(function(t){return\\\"a\\\"+t+\\\"=this.shape[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"b\\\"+t+\\\"=this.stride[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",c=this.offset,d=0,ceil=Math.ceil\\\");for(g=0;g<e;++g)a.push(\\\"if(typeof i\\\"+g+\\\"==='number'){d=i\\\"+g+\\\"|0;if(d<0){c+=b\\\"+g+\\\"*(a\\\"+g+\\\"-1);a\\\"+g+\\\"=ceil(-a\\\"+g+\\\"/d)}else{a\\\"+g+\\\"=ceil(a\\\"+g+\\\"/d)}b\\\"+g+\\\"*=d}\\\");a.push(\\\"return new \\\"+r+\\\"(this.data,\\\"+o.map(function(t){return\\\"a\\\"+t}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"b\\\"+t}).join(\\\",\\\")+\\\",c)}\\\");var v=new Array(e),m=new Array(e);for(g=0;g<e;++g)v[g]=\\\"a[i\\\"+g+\\\"]\\\",m[g]=\\\"b[i\\\"+g+\\\"]\\\";a.push(\\\"proto.transpose=function \\\"+r+\\\"_transpose(\\\"+l+\\\"){\\\"+l.map(function(t,e){return t+\\\"=(\\\"+t+\\\"===undefined?\\\"+e+\\\":\\\"+t+\\\"|0)\\\"}).join(\\\";\\\"),\\\"var a=this.shape,b=this.stride;return new \\\"+r+\\\"(this.data,\\\"+v.join(\\\",\\\")+\\\",\\\"+m.join(\\\",\\\")+\\\",this.offset)}\\\"),a.push(\\\"proto.pick=function \\\"+r+\\\"_pick(\\\"+l+\\\"){var a=[],b=[],c=this.offset\\\");for(g=0;g<e;++g)a.push(\\\"if(typeof i\\\"+g+\\\"==='number'&&i\\\"+g+\\\">=0){c=(c+this.stride[\\\"+g+\\\"]*i\\\"+g+\\\")|0}else{a.push(this.shape[\\\"+g+\\\"]);b.push(this.stride[\\\"+g+\\\"])}\\\");return a.push(\\\"var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}\\\"),a.push(\\\"return function construct_\\\"+r+\\\"(data,shape,stride,offset){return new \\\"+r+\\\"(data,\\\"+o.map(function(t){return\\\"shape[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"stride[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",offset)}\\\"),new Function(\\\"CTOR_LIST\\\",\\\"ORDER\\\",a.join(\\\"\\\\n\\\"))(c[t],s)}var c={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],buffer:[],generic:[]};e.exports=function(t,e,r,n){if(void 0===t)return(0,c.array[0])([]);\\\"number\\\"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var s=o-1,u=1;s>=0;--s)r[s]=u,u*=e[s]}if(void 0===n)for(n=0,s=0;s<o;++s)r[s]<0&&(n-=(e[s]-1)*r[s]);for(var f=function(t){if(i(t))return\\\"buffer\\\";if(a)switch(Object.prototype.toString.call(t)){case\\\"[object Float64Array]\\\":return\\\"float64\\\";case\\\"[object Float32Array]\\\":return\\\"float32\\\";case\\\"[object Int8Array]\\\":return\\\"int8\\\";case\\\"[object Int16Array]\\\":return\\\"int16\\\";case\\\"[object Int32Array]\\\":return\\\"int32\\\";case\\\"[object Uint8Array]\\\":return\\\"uint8\\\";case\\\"[object Uint16Array]\\\":return\\\"uint16\\\";case\\\"[object Uint32Array]\\\":return\\\"uint32\\\";case\\\"[object Uint8ClampedArray]\\\":return\\\"uint8_clamped\\\"}return Array.isArray(t)?\\\"array\\\":\\\"generic\\\"}(t),h=c[f];h.length<=o+1;)h.push(l(f,h.length-1));return(0,h[o+1])(t,e,r,n)}},{\\\"iota-array\\\":399,\\\"is-buffer\\\":401}],434:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"double-bits\\\"),i=Math.pow(2,-1074),a=-1>>>0;e.exports=function(t,e){if(isNaN(t)||isNaN(e))return NaN;if(t===e)return t;if(0===t)return e<0?-i:i;var r=n.hi(t),o=n.lo(t);e>t==t>0?o===a?(r+=1,o=0):o+=1:0===o?(o=a,r-=1):o-=1;return n.pack(o,r)}},{\\\"double-bits\\\":152}],435:[function(t,e,r){var n=Math.PI,i=c(120);function a(t,e,r,n){return[\\\"C\\\",t,e,r,n,r,n]}function o(t,e,r,n,i,a){return[\\\"C\\\",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function s(t,e,r,a,o,c,u,f,h,p){if(p)k=p[0],M=p[1],_=p[2],w=p[3];else{var d=l(t,e,-o);t=d.x,e=d.y;var g=(t-(f=(d=l(f,h,-o)).x))/2,v=(e-(h=d.y))/2,m=g*g/(r*r)+v*v/(a*a);m>1&&(r*=m=Math.sqrt(m),a*=m);var y=r*r,x=a*a,b=(c==u?-1:1)*Math.sqrt(Math.abs((y*x-y*v*v-x*g*g)/(y*v*v+x*g*g)));b==1/0&&(b=1);var _=b*r*v/a+(t+f)/2,w=b*-a*g/r+(e+h)/2,k=Math.asin(((e-w)/a).toFixed(9)),M=Math.asin(((h-w)/a).toFixed(9));(k=t<_?n-k:k)<0&&(k=2*n+k),(M=f<_?n-M:M)<0&&(M=2*n+M),u&&k>M&&(k-=2*n),!u&&M>k&&(M-=2*n)}if(Math.abs(M-k)>i){var A=M,T=f,S=h;M=k+i*(u&&M>k?1:-1);var E=s(f=_+r*Math.cos(M),h=w+a*Math.sin(M),r,a,o,0,u,T,S,[M,A,_,w])}var C=Math.tan((M-k)/4),L=4/3*r*C,z=4/3*a*C,O=[2*t-(t+L*Math.sin(k)),2*e-(e-z*Math.cos(k)),f+L*Math.sin(M),h-z*Math.cos(M),f,h];if(p)return O;E&&(O=O.concat(E));for(var I=0;I<O.length;){var P=l(O[I],O[I+1],o);O[I++]=P.x,O[I++]=P.y}return O}function l(t,e,r){return{x:t*Math.cos(r)-e*Math.sin(r),y:t*Math.sin(r)+e*Math.cos(r)}}function c(t){return t*(n/180)}e.exports=function(t){for(var e,r=[],n=0,i=0,l=0,u=0,f=null,h=null,p=0,d=0,g=0,v=t.length;g<v;g++){var m=t[g],y=m[0];switch(y){case\\\"M\\\":l=m[1],u=m[2];break;case\\\"A\\\":(m=s(p,d,m[1],m[2],c(m[3]),m[4],m[5],m[6],m[7])).unshift(\\\"C\\\"),m.length>7&&(r.push(m.splice(0,7)),m.unshift(\\\"C\\\"));break;case\\\"S\\\":var x=p,b=d;\\\"C\\\"!=e&&\\\"S\\\"!=e||(x+=x-n,b+=b-i),m=[\\\"C\\\",x,b,m[1],m[2],m[3],m[4]];break;case\\\"T\\\":\\\"Q\\\"==e||\\\"T\\\"==e?(f=2*p-f,h=2*d-h):(f=p,h=d),m=o(p,d,f,h,m[1],m[2]);break;case\\\"Q\\\":f=m[1],h=m[2],m=o(p,d,m[1],m[2],m[3],m[4]);break;case\\\"L\\\":m=a(p,d,m[1],m[2]);break;case\\\"H\\\":m=a(p,d,m[1],d);break;case\\\"V\\\":m=a(p,d,p,m[1]);break;case\\\"Z\\\":m=a(p,d,l,u)}e=y,p=m[m.length-2],d=m[m.length-1],m.length>4?(n=m[m.length-4],i=m[m.length-3]):(n=p,i=d),r.push(m)}return r}},{}],436:[function(t,e,r){r.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;o<n;++o)i[o]=[0,0,0];for(o=0;o<t.length;++o)for(var s=t[o],l=0,c=s[s.length-1],u=s[0],f=0;f<s.length;++f){l=c,c=u,u=s[(f+1)%s.length];for(var h=e[l],p=e[c],d=e[u],g=new Array(3),v=0,m=new Array(3),y=0,x=0;x<3;++x)g[x]=h[x]-p[x],v+=g[x]*g[x],m[x]=d[x]-p[x],y+=m[x]*m[x];if(v*y>a){var b=i[c],_=1/Math.sqrt(v*y);for(x=0;x<3;++x){var w=(x+1)%3,k=(x+2)%3;b[x]+=_*(m[w]*g[k]-m[k]*g[w])}}}for(o=0;o<n;++o){b=i[o];var M=0;for(x=0;x<3;++x)M+=b[x]*b[x];if(M>a)for(_=1/Math.sqrt(M),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},r.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;o<n;++o){for(var s=t[o],l=new Array(3),c=0;c<3;++c)l[c]=e[s[c]];var u=new Array(3),f=new Array(3);for(c=0;c<3;++c)u[c]=l[1][c]-l[0][c],f[c]=l[2][c]-l[0][c];var h=new Array(3),p=0;for(c=0;c<3;++c){var d=(c+1)%3,g=(c+2)%3;h[c]=u[d]*f[g]-u[g]*f[d],p+=h[c]*h[c]}p=p>a?1/Math.sqrt(p):0;for(c=0;c<3;++c)h[c]*=p;i[o]=h}return i}},{}],437:[function(t,e,r){\\\"use strict\\\";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var t=new String(\\\"abc\\\");if(t[5]=\\\"de\\\",\\\"5\\\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e[\\\"_\\\"+String.fromCharCode(r)]=r;if(\\\"0123456789\\\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\\\"\\\"))return!1;var n={};return\\\"abcdefghijklmnopqrst\\\".split(\\\"\\\").forEach(function(t){n[t]=t}),\\\"abcdefghijklmnopqrst\\\"===Object.keys(Object.assign({},n)).join(\\\"\\\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,o,s=function(t){if(null==t)throw new TypeError(\\\"Object.assign cannot be called with null or undefined\\\");return Object(t)}(t),l=1;l<arguments.length;l++){for(var c in r=Object(arguments[l]))i.call(r,c)&&(s[c]=r[c]);if(n){o=n(r);for(var u=0;u<o.length;u++)a.call(r,o[u])&&(s[o[u]]=r[o[u]])}}return s}},{}],438:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i,a,o,s,l,c){var u=e+a+c;if(f>0){var f=Math.sqrt(u+1);t[0]=.5*(o-l)/f,t[1]=.5*(s-n)/f,t[2]=.5*(r-a)/f,t[3]=.5*f}else{var h=Math.max(e,a,c),f=Math.sqrt(2*h-u+1);e>=h?(t[0]=.5*f,t[1]=.5*(i+r)/f,t[2]=.5*(s+n)/f,t[3]=.5*(o-l)/f):a>=h?(t[0]=.5*(r+i)/f,t[1]=.5*f,t[2]=.5*(l+o)/f,t[3]=.5*(s-n)/f):(t[0]=.5*(n+s)/f,t[1]=.5*(o+l)/f,t[2]=.5*f,t[3]=.5*(r-i)/f)}return t}},{}],439:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),u(r=[].slice.call(r,0,4),r);var i=new f(r,e,Math.log(n));i.setDistanceLimits(t.zoomMin,t.zoomMax),(\\\"eye\\\"in t||\\\"up\\\"in t)&&i.lookAt(0,t.eye,t.center,t.up);return i};var n=t(\\\"filtered-vector\\\"),i=t(\\\"gl-mat4/lookAt\\\"),a=t(\\\"gl-mat4/fromQuat\\\"),o=t(\\\"gl-mat4/invert\\\"),s=t(\\\"./lib/quatFromFrame\\\");function l(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function c(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function u(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=c(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function f(t,e,r){this.radius=n([r]),this.center=n(e),this.rotation=n(t),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 h=f.prototype;h.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},h.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;u(e,e);var r=this.computedMatrix;a(r,e);var n=this.computedCenter,i=this.computedEye,o=this.computedUp,s=Math.exp(this.computedRadius[0]);i[0]=n[0]+s*r[2],i[1]=n[1]+s*r[6],i[2]=n[2]+s*r[10],o[0]=r[1],o[1]=r[5],o[2]=r[9];for(var l=0;l<3;++l){for(var c=0,f=0;f<3;++f)c+=r[l+4*f]*i[f];r[12+l]=-c}},h.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},h.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},h.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},h.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],c=l(a,o,s);a/=c,o/=c,s/=c;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=l(u-=a*p,f-=o*p,h-=s*p);u/=d,f/=d,h/=d;var g=i[2],v=i[6],m=i[10],y=g*a+v*o+m*s,x=g*u+v*f+m*h,b=l(g-=y*a+x*u,v-=y*o+x*f,m-=y*s+x*h);g/=b,v/=b,m/=b;var _=u*e+a*r,w=f*e+o*r,k=h*e+s*r;this.center.move(t,_,w,k);var M=Math.exp(this.computedRadius[0]);M=Math.max(1e-4,M+n),this.radius.set(t,Math.log(M))},h.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],u=i[1],f=i[5],h=i[9],p=i[2],d=i[6],g=i[10],v=e*a+r*u,m=e*o+r*f,y=e*s+r*h,x=-(d*y-g*m),b=-(g*v-p*y),_=-(p*m-d*v),w=Math.sqrt(Math.max(0,1-Math.pow(x,2)-Math.pow(b,2)-Math.pow(_,2))),k=c(x,b,_,w);k>1e-6?(x/=k,b/=k,_/=k,w/=k):(x=b=_=0,w=1);var M=this.computedRotation,A=M[0],T=M[1],S=M[2],E=M[3],C=A*w+E*x+T*_-S*b,L=T*w+E*b+S*x-A*_,z=S*w+E*_+A*b-T*x,O=E*w-A*x-T*b-S*_;if(n){x=p,b=d,_=g;var I=Math.sin(n)/l(x,b,_);x*=I,b*=I,_*=I,O=O*(w=Math.cos(e))-(C=C*w+O*x+L*_-z*b)*x-(L=L*w+O*b+z*x-C*_)*b-(z=z*w+O*_+C*b-L*x)*_}var P=c(C,L,z,O);P>1e-6?(C/=P,L/=P,z/=P,O/=P):(C=L=z=0,O=1),this.rotation.set(t,C,L,z,O)},h.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var a=this.computedMatrix;i(a,e,r,n);var o=this.computedRotation;s(o,a[0],a[1],a[2],a[4],a[5],a[6],a[8],a[9],a[10]),u(o,o),this.rotation.set(t,o[0],o[1],o[2],o[3]);for(var l=0,c=0;c<3;++c)l+=Math.pow(r[c]-e[c],2);this.radius.set(t,.5*Math.log(Math.max(l,1e-6))),this.center.set(t,r[0],r[1],r[2])},h.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},h.setMatrix=function(t,e){var r=this.computedRotation;s(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),u(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;o(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,l=n[13]/i,c=n[14]/i;this.recalcMatrix(t);var f=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*f,l-n[6]*f,c-n[10]*f),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},h.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},h.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},h.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},h.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]}},h.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)}},{\\\"./lib/quatFromFrame\\\":438,\\\"filtered-vector\\\":215,\\\"gl-mat4/fromQuat\\\":251,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/lookAt\\\":255}],440:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"repeat-string\\\");e.exports=function(t,e,r){return n(r=\\\"undefined\\\"!=typeof r?r+\\\"\\\":\\\" \\\",e)+t}},{\\\"repeat-string\\\":479}],441:[function(t,e,r){\\\"use strict\\\";function n(t,e){if(\\\"string\\\"!=typeof t)return[t];var r=[t];\\\"string\\\"==typeof e||Array.isArray(e)?e={brackets:e}:e||(e={});var n=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:[\\\"{}\\\",\\\"[]\\\",\\\"()\\\"],i=e.escape||\\\"___\\\",a=!!e.flat;n.forEach(function(t){var e=new RegExp([\\\"\\\\\\\\\\\",t[0],\\\"[^\\\\\\\\\\\",t[0],\\\"\\\\\\\\\\\",t[1],\\\"]*\\\\\\\\\\\",t[1]].join(\\\"\\\")),n=[];function a(e,a,o){var s=r.push(e.slice(t[0].length,-t[1].length))-1;return n.push(s),i+s}r.forEach(function(t,n){for(var i,o=0;t!=i;)if(i=t,t=t.replace(e,a),o++>1e4)throw Error(\\\"References have circular dependency. Please, check them.\\\");r[n]=t}),n=n.reverse(),r=r.map(function(e){return n.forEach(function(r){e=e.replace(new RegExp(\\\"(\\\\\\\\\\\"+i+r+\\\"(?![0-9]))\\\",\\\"g\\\"),t[0]+\\\"$1\\\"+t[1])}),e})});var o=new RegExp(\\\"\\\\\\\\\\\"+i+\\\"([0-9]+)\\\");return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error(\\\"Circular references in parenthesis\\\");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function i(t,e){if(e&&e.flat){var r,n=e&&e.escape||\\\"___\\\",i=t[0];if(!i)return\\\"\\\";for(var a=new RegExp(\\\"\\\\\\\\\\\"+n+\\\"([0-9]+)\\\"),o=0;i!=r;){if(o++>1e4)throw Error(\\\"Circular references in \\\"+t);r=i,i=i.replace(a,s)}return i}return t.reduce(function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,\\\"\\\")),e+r},\\\"\\\");function s(e,r){if(null==t[r])throw Error(\\\"Reference \\\"+r+\\\"is undefined\\\");return t[r]}}function a(t,e){return Array.isArray(t)?i(t,e):n(t,e)}a.parse=n,a.stringify=i,e.exports=a},{}],442:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"pick-by-alias\\\");e.exports=function(t){var e;arguments.length>1&&(t=arguments);\\\"string\\\"==typeof t?t=t.split(/\\\\s/).map(parseFloat):\\\"number\\\"==typeof t&&(t=[t]);t.length&&\\\"number\\\"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(t=n(t,{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\\\"}),e={x:t.left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height);return e}},{\\\"pick-by-alias\\\":448}],443:[function(t,e,r){e.exports=function(t){var e=[];return t.replace(i,function(t,r,i){var o=r.toLowerCase();for(i=function(t){var e=t.match(a);return e?e.map(Number):[]}(i),\\\"m\\\"==o&&i.length>2&&(e.push([r].concat(i.splice(0,2))),o=\\\"l\\\",r=\\\"m\\\"==r?\\\"l\\\":\\\"L\\\");;){if(i.length==n[o])return i.unshift(r),e.push(i);if(i.length<n[o])throw new Error(\\\"malformed path data\\\");e.push([r].concat(i.splice(0,n[o])))}}),e};var n={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},i=/([astvzqmhlc])([^astvzqmhlc]*)/gi;var a=/-?[0-9]*\\\\.?[0-9]+(?:e[-+]?\\\\d+)?/gi},{}],444:[function(t,e,r){e.exports=function(t,e){e||(e=[0,\\\"\\\"]),t=String(t);var r=parseFloat(t,10);return e[0]=r,e[1]=t.match(/[\\\\d.\\\\-\\\\+]*\\\\s*(.*)/)[1]||\\\"\\\",e}},{}],445:[function(t,e,r){(function(t){(function(){var r,n,i,a,o,s;\\\"undefined\\\"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:\\\"undefined\\\"!=typeof t&&null!==t&&t.hrtime?(e.exports=function(){return(r()-o)/1e6},n=t.hrtime,a=(r=function(){var t;return 1e9*(t=n())[0]+t[1]})(),s=1e9*t.uptime(),o=a-s):Date.now?(e.exports=function(){return Date.now()-i},i=Date.now()):(e.exports=function(){return(new Date).getTime()-i},i=(new Date).getTime())}).call(this)}).call(this,t(\\\"_process\\\"))},{_process:465}],446:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.length;if(e<n){for(var r=1,a=0;a<e;++a)for(var o=0;o<a;++o)if(t[a]<t[o])r=-r;else if(t[a]===t[o])return 0;return r}for(var s=i.mallocUint8(e),a=0;a<e;++a)s[a]=0;for(var r=1,a=0;a<e;++a)if(!s[a]){var l=1;s[a]=1;for(var o=t[a];o!==a;o=t[o]){if(s[o])return i.freeUint8(s),0;l+=1,s[o]=1}1&l||(r=-r)}return i.freeUint8(s),r};var n=32,i=t(\\\"typedarray-pool\\\")},{\\\"typedarray-pool\\\":522}],447:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"typedarray-pool\\\"),i=t(\\\"invert-permutation\\\");r.rank=function(t){var e=t.length;switch(e){case 0:case 1:return 0;case 2:return t[1]}var r,a,o,s=n.mallocUint32(e),l=n.mallocUint32(e),c=0;for(i(t,l),o=0;o<e;++o)s[o]=t[o];for(o=e-1;o>0;--o)a=l[o],r=s[o],s[o]=s[a],s[a]=r,l[o]=l[r],l[r]=a,c=(c+r)*o;return n.freeUint32(l),n.freeUint32(s),c},r.unrank=function(t,e,r){switch(t){case 0:return r||[];case 1:return r?(r[0]=0,r):[0];case 2:return r?(e?(r[0]=0,r[1]=1):(r[0]=1,r[1]=0),r):e?[0,1]:[1,0]}var n,i,a,o=1;for((r=r||new Array(t))[0]=0,a=1;a<t;++a)r[a]=a,o=o*a|0;for(a=t-1;a>0;--a)e=e-(n=e/o|0)*o|0,o=o/a|0,i=0|r[a],r[a]=0|r[n],r[n]=0|i;return r}},{\\\"invert-permutation\\\":398,\\\"typedarray-pool\\\":522}],448:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n,a,o={};if(\\\"string\\\"==typeof e&&(e=i(e)),Array.isArray(e)){var s={};for(a=0;a<e.length;a++)s[e[a]]=!0;e=s}for(n in e)e[n]=i(e[n]);var l={};for(n in e){var c=e[n];if(Array.isArray(c))for(a=0;a<c.length;a++){var u=c[a];if(r&&(l[u]=!0),u in t){if(o[n]=t[u],r)for(var f=a;f<c.length;f++)l[c[f]]=!0;break}}else n in t&&(e[n]&&(o[n]=t[n]),r&&(l[n]=!0))}if(r)for(n in t)l[n]||(o[n]=t[n]);return o};var n={};function i(t){return n[t]?n[t]:(\\\"string\\\"==typeof t&&(t=n[t]=t.split(/\\\\s*,\\\\s*|\\\\s+/)),t)}},{}],449:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r=0|e.length,i=t.length,a=[new Array(r),new Array(r)],o=0;o<r;++o)a[0][o]=[],a[1][o]=[];for(var o=0;o<i;++o){var s=t[o];a[0][s[0]].push(s),a[1][s[1]].push(s)}for(var l=[],o=0;o<r;++o)a[0][o].length+a[1][o].length===0&&l.push([o]);function c(t,e){var r=a[e][t[e]];r.splice(r.indexOf(t),1)}function u(t,r,i){for(var o,s,l,u=0;u<2;++u)if(a[u][r].length>0){o=a[u][r][0],l=u;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p<h.length;++p){var d=h[p],g=d[1^f],v=n(e[t],e[r],e[s],e[g]);v>0&&(o=d,s=g,l=f)}return i?s:(o&&c(o,l),s)}function f(t,r){var i=a[r][t][0],o=[t];c(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=u(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=u(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=u(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(var o=0;o<r;++o)for(var p=0;p<2;++p){for(var d=[];a[p][o].length>0;){a[0][o].length;var g=f(o,p);h(d,g)?d.push.apply(d,g):(d.length>0&&l.push(d),d=g)}d.length>0&&l.push(d)}return l};var n=t(\\\"compare-angle\\\")},{\\\"compare-angle\\\":115}],450:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s<e.length;++s){var l=r[s].length;a[s]=l,i[s]=!0,l<=1&&o.push(s)}for(;o.length>0;){var c=o.pop();i[c]=!1;for(var u=r[c],s=0;s<u.length;++s){var f=u[s];0==--a[f]&&o.push(f)}}for(var h=new Array(e.length),p=[],s=0;s<e.length;++s)if(i[s]){var c=p.length;h[s]=c,p.push(e[s])}else h[s]=-1;for(var d=[],s=0;s<t.length;++s){var g=t[s];i[g[0]]&&i[g[1]]&&d.push([h[g[0]],h[g[1]]])}return[d,p]};var n=t(\\\"edges-to-adjacency-list\\\")},{\\\"edges-to-adjacency-list\\\":157}],451:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=c(t,e);t=r[0];for(var f=(e=r[1]).length,h=(t.length,n(t,e.length)),p=0;p<f;++p)if(h[p].length%2==1)throw new Error(\\\"planar-graph-to-polyline: graph must be manifold\\\");var d=i(t,e);for(var g=(d=d.filter(function(t){for(var r=t.length,n=[0],i=0;i<r;++i){var a=e[t[i]],l=e[t[(i+1)%r]],c=o(-a[0],a[1]),u=o(-a[0],l[1]),f=o(l[0],a[1]),h=o(l[0],l[1]);n=s(n,s(s(c,u),s(f,h)))}return n[n.length-1]>0})).length,v=new Array(g),m=new Array(g),p=0;p<g;++p){v[p]=p;var y=new Array(g),x=d[p].map(function(t){return e[t]}),b=a([x]),_=0;t:for(var w=0;w<g;++w)if(y[w]=0,p!==w){for(var k=d[w],M=k.length,A=0;A<M;++A){var T=b(e[k[A]]);if(0!==T){T<0&&(y[w]=1,_+=1);continue t}}y[w]=1,_+=1}m[p]=[_,p,y]}m.sort(function(t,e){return e[0]-t[0]});for(var p=0;p<g;++p)for(var y=m[p],S=y[1],E=y[2],w=0;w<g;++w)E[w]&&(v[w]=S);for(var C=function(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=[];return e}(g),p=0;p<g;++p)C[p].push(v[p]),C[v[p]].push(p);for(var L={},z=u(f,!1),p=0;p<g;++p)for(var k=d[p],M=k.length,w=0;w<M;++w){var O=k[w],I=k[(w+1)%M],P=Math.min(O,I)+\\\":\\\"+Math.max(O,I);if(P in L){var D=L[P];C[D].push(p),C[p].push(D),z[O]=z[I]=!0}else L[P]=p}function R(t){for(var e=t.length,r=0;r<e;++r)if(!z[t[r]])return!1;return!0}for(var B=[],F=u(g,-1),p=0;p<g;++p)v[p]!==p||R(d[p])?F[p]=-1:(B.push(p),F[p]=0);var r=[];for(;B.length>0;){var N=B.pop(),j=C[N];l(j,function(t,e){return t-e});var V,U=j.length,q=F[N];if(0===q){var k=d[N];V=[k]}for(var p=0;p<U;++p){var H=j[p];if(!(F[H]>=0)&&(F[H]=1^q,B.push(H),0===q)){var k=d[H];R(k)||(k.reverse(),V.push(k))}}0===q&&r.push(V)}return r};var n=t(\\\"edges-to-adjacency-list\\\"),i=t(\\\"planar-dual\\\"),a=t(\\\"point-in-big-polygon\\\"),o=t(\\\"two-product\\\"),s=t(\\\"robust-sum\\\"),l=t(\\\"uniq\\\"),c=t(\\\"./lib/trim-leaves\\\");function u(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=e;return r}},{\\\"./lib/trim-leaves\\\":450,\\\"edges-to-adjacency-list\\\":157,\\\"planar-dual\\\":449,\\\"point-in-big-polygon\\\":455,\\\"robust-sum\\\":491,\\\"two-product\\\":520,uniq:524}],452:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./quad\\\")},{\\\"./quad\\\":454}],453:[function(t,e,r){arguments[4][99][0].apply(r,arguments)},{dup:99}],454:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"clamp\\\"),a=t(\\\"parse-rect\\\"),o=t(\\\"array-bounds\\\"),s=t(\\\"pick-by-alias\\\"),l=t(\\\"defined\\\"),c=t(\\\"flatten-vertex-data\\\"),u=t(\\\"is-obj\\\"),f=t(\\\"dtype\\\"),h=t(\\\"math-log2\\\");function p(t,e){for(var r=e[0],n=e[1],a=1/(e[2]-r),o=1/(e[3]-n),s=new Array(t.length),l=0,c=t.length/2;l<c;l++)s[2*l]=i((t[2*l]-r)*a,0,1),s[2*l+1]=i((t[2*l+1]-n)*o,0,1);return s}e.exports=function(t,e){e||(e={}),t=c(t,\\\"float64\\\"),e=s(e,{bounds:\\\"range bounds dataBox databox\\\",maxDepth:\\\"depth maxDepth maxdepth level maxLevel maxlevel levels\\\",dtype:\\\"type dtype format out dst output destination\\\"});var r=l(e.maxDepth,255),i=l(e.bounds,o(t,2));i[0]===i[2]&&i[2]++,i[1]===i[3]&&i[3]++;var d,g=p(t,i),v=t.length>>>1;e.dtype||(e.dtype=\\\"array\\\"),\\\"string\\\"==typeof e.dtype?d=new(f(e.dtype))(v):e.dtype&&(d=e.dtype,Array.isArray(d)&&(d.length=v));for(var m=0;m<v;++m)d[m]=m;var y=[],x=[],b=[],_=[];!function t(e,n,i,a,o,s){if(!a.length)return null;var l=y[o]||(y[o]=[]);var c=b[o]||(b[o]=[]);var u=x[o]||(x[o]=[]);var f=l.length;o++;if(o>r){for(var h=0;h<a.length;h++)l.push(a[h]),c.push(s),u.push(null,null,null,null);return f}l.push(a[0]);c.push(s);if(a.length<=1)return u.push(null,null,null,null),f;var p=.5*i;var d=e+p,v=n+p;var m=[],_=[],w=[],k=[];for(var M=1,A=a.length;M<A;M++){var T=a[M],S=g[2*T],E=g[2*T+1];S<d?E<v?m.push(T):_.push(T):E<v?w.push(T):k.push(T)}s<<=2;u.push(t(e,n,p,m,o,s),t(e,v,p,_,o,s+1),t(d,n,p,w,o,s+2),t(d,v,p,k,o,s+3));return f}(0,0,1,d,0,1);for(var w=0,k=0;k<y.length;k++){var M=y[k];if(d.set)d.set(M,w);else for(var A=0,T=M.length;A<T;A++)d[A+w]=M[A];var S=w+y[k].length;_[k]=[w,S],w=S}return d.range=function(){var e,r=[],o=arguments.length;for(;o--;)r[o]=arguments[o];if(u(r[r.length-1])){var c=r.pop();r.length||null==c.x&&null==c.l&&null==c.left||(r=[c],e={}),e=s(c,{level:\\\"level maxLevel\\\",d:\\\"d diam diameter r radius px pxSize pixel pixelSize maxD size minSize\\\",lod:\\\"lod details ranges offsets\\\"})}else e={};r.length||(r=i);var f=a.apply(void 0,r),d=[Math.min(f.x,f.x+f.width),Math.min(f.y,f.y+f.height),Math.max(f.x,f.x+f.width),Math.max(f.y,f.y+f.height)],g=d[0],v=d[1],m=d[2],w=d[3],k=p([g,v,m,w],i),M=k[0],A=k[1],T=k[2],S=k[3],C=l(e.level,y.length);if(null!=e.d){var L;\\\"number\\\"==typeof e.d?L=[e.d,e.d]:e.d.length&&(L=e.d),C=Math.min(Math.max(Math.ceil(-h(Math.abs(L[0])/(i[2]-i[0]))),Math.ceil(-h(Math.abs(L[1])/(i[3]-i[1])))),C)}if(C=Math.min(C,y.length),e.lod)return function(t,e,r,i,a){for(var o=[],s=0;s<a;s++){var l=b[s],c=_[s][0],u=E(t,e,s),f=E(r,i,s),h=n.ge(l,u),p=n.gt(l,f,h,l.length-1);o[s]=[h+c,p+c]}return o}(M,A,T,S,C);var z=[];return function e(r,n,i,a,o,s){if(null!==o&&null!==s){var l=r+i,c=n+i;if(!(M>l||A>c||T<r||S<n||a>=C||o===s)){var u=y[a];void 0===s&&(s=u.length);for(var f=o;f<s;f++){var h=u[f],p=t[2*h],d=t[2*h+1];p>=g&&p<=m&&d>=v&&d<=w&&z.push(h)}var b=x[a],_=b[4*o+0],k=b[4*o+1],E=b[4*o+2],L=b[4*o+3],O=function(t,e){for(var r=null,n=0;null===r;)if(r=t[4*e+n],++n>t.length)return null;return r}(b,o+1),I=.5*i,P=a+1;e(r,n,I,P,_,k||E||L||O),e(r,n+I,I,P,k,E||L||O),e(r+I,n,I,P,E,L||O),e(r+I,n+I,I,P,L,O)}}}(0,0,1,0,0,1),z},d;function E(t,e,r){for(var n=1,i=.5,a=.5,o=.5,s=0;s<r;s++)n<<=2,n+=t<i?e<a?0:1:e<a?2:3,o*=.5,i+=t<i?-o:o,a+=e<a?-o:o;return n}}},{\\\"array-bounds\\\":53,\\\"binary-search-bounds\\\":453,clamp:103,defined:149,dtype:154,\\\"flatten-vertex-data\\\":216,\\\"is-obj\\\":404,\\\"math-log2\\\":415,\\\"parse-rect\\\":442,\\\"pick-by-alias\\\":448}],455:[function(t,e,r){e.exports=function(t){for(var e=t.length,r=[],a=[],s=0;s<e;++s)for(var u=t[s],f=u.length,h=f-1,p=0;p<f;h=p++){var d=u[h],g=u[p];d[0]===g[0]?a.push([d,g]):r.push([d,g])}if(0===r.length)return 0===a.length?c:(v=l(a),function(t){return v(t[0],t[1])?0:1});var v;var m=i(r),y=function(t,e){return function(r){var i=o.le(e,r[0]);if(i<0)return 1;var a=t[i];if(!a){if(!(i>0&&e[i]===r[0]))return 1;a=t[i-1]}for(var s=1;a;){var l=a.key,c=n(r,l[0],l[1]);if(l[0][0]<l[1][0])if(c<0)a=a.left;else{if(!(c>0))return 0;s=-1,a=a.right}else if(c>0)a=a.left;else{if(!(c<0))return 0;s=1,a=a.right}}return s}}(m.slabs,m.coordinates);return 0===a.length?y:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(l(a),y)};var n=t(\\\"robust-orientation\\\")[3],i=t(\\\"slab-decomposition\\\"),a=t(\\\"interval-tree-1d\\\"),o=t(\\\"binary-search-bounds\\\");function s(){return!0}function l(t){for(var e={},r=0;r<t.length;++r){var n=t[r],i=n[0][0],o=n[0][1],l=n[1][1],c=[Math.min(o,l),Math.max(o,l)];i in e?e[i].push(c):e[i]=[c]}var u={},f=Object.keys(e);for(r=0;r<f.length;++r){var h=e[f[r]];u[f[r]]=a(h)}return function(t){return function(e,r){var n=t[e];return!!n&&!!n.queryPoint(r,s)}}(u)}function c(t){return 1}},{\\\"binary-search-bounds\\\":79,\\\"interval-tree-1d\\\":397,\\\"robust-orientation\\\":486,\\\"slab-decomposition\\\":502}],456:[function(t,e,r){var n,i=t(\\\"./lib/build-log\\\"),a=t(\\\"./lib/epsilon\\\"),o=t(\\\"./lib/intersecter\\\"),s=t(\\\"./lib/segment-chainer\\\"),l=t(\\\"./lib/segment-selector\\\"),c=t(\\\"./lib/geojson\\\"),u=!1,f=a();function h(t,e,r){var i=n.segments(t),a=n.segments(e),o=r(n.combine(i,a));return n.polygon(o)}n={buildLog:function(t){return!0===t?u=i():!1===t&&(u=!1),!1!==u&&u.list},epsilon:function(t){return f.epsilon(t)},segments:function(t){var e=o(!0,f,u);return t.regions.forEach(e.addRegion),{segments:e.calculate(t.inverted),inverted:t.inverted}},combine:function(t,e){return{combined:o(!1,f,u).calculate(t.segments,t.inverted,e.segments,e.inverted),inverted1:t.inverted,inverted2:e.inverted}},selectUnion:function(t){return{segments:l.union(t.combined,u),inverted:t.inverted1||t.inverted2}},selectIntersect:function(t){return{segments:l.intersect(t.combined,u),inverted:t.inverted1&&t.inverted2}},selectDifference:function(t){return{segments:l.difference(t.combined,u),inverted:t.inverted1&&!t.inverted2}},selectDifferenceRev:function(t){return{segments:l.differenceRev(t.combined,u),inverted:!t.inverted1&&t.inverted2}},selectXor:function(t){return{segments:l.xor(t.combined,u),inverted:t.inverted1!==t.inverted2}},polygon:function(t){return{regions:s(t.segments,f,u),inverted:t.inverted}},polygonFromGeoJSON:function(t){return c.toPolygon(n,t)},polygonToGeoJSON:function(t){return c.fromPolygon(n,f,t)},union:function(t,e){return h(t,e,n.selectUnion)},intersect:function(t,e){return h(t,e,n.selectIntersect)},difference:function(t,e){return h(t,e,n.selectDifference)},differenceRev:function(t,e){return h(t,e,n.selectDifferenceRev)},xor:function(t,e){return h(t,e,n.selectXor)}},\\\"object\\\"==typeof window&&(window.PolyBool=n),e.exports=n},{\\\"./lib/build-log\\\":457,\\\"./lib/epsilon\\\":458,\\\"./lib/geojson\\\":459,\\\"./lib/intersecter\\\":460,\\\"./lib/segment-chainer\\\":462,\\\"./lib/segment-selector\\\":463}],457:[function(t,e,r){e.exports=function(){var t,e=0,r=!1;function n(e,r){return t.list.push({type:e,data:r?JSON.parse(JSON.stringify(r)):void 0}),t}return t={list:[],segmentId:function(){return e++},checkIntersection:function(t,e){return n(\\\"check\\\",{seg1:t,seg2:e})},segmentChop:function(t,e){return n(\\\"div_seg\\\",{seg:t,pt:e}),n(\\\"chop\\\",{seg:t,pt:e})},statusRemove:function(t){return n(\\\"pop_seg\\\",{seg:t})},segmentUpdate:function(t){return n(\\\"seg_update\\\",{seg:t})},segmentNew:function(t,e){return n(\\\"new_seg\\\",{seg:t,primary:e})},segmentRemove:function(t){return n(\\\"rem_seg\\\",{seg:t})},tempStatus:function(t,e,r){return n(\\\"temp_status\\\",{seg:t,above:e,below:r})},rewind:function(t){return n(\\\"rewind\\\",{seg:t})},status:function(t,e,r){return n(\\\"status\\\",{seg:t,above:e,below:r})},vert:function(e){return e===r?t:(r=e,n(\\\"vert\\\",{x:e}))},log:function(t){return\\\"string\\\"!=typeof t&&(t=JSON.stringify(t,!1,\\\"  \\\")),n(\\\"log\\\",{txt:t})},reset:function(){return n(\\\"reset\\\")},selected:function(t){return n(\\\"selected\\\",{segs:t})},chainStart:function(t){return n(\\\"chain_start\\\",{seg:t})},chainRemoveHead:function(t,e){return n(\\\"chain_rem_head\\\",{index:t,pt:e})},chainRemoveTail:function(t,e){return n(\\\"chain_rem_tail\\\",{index:t,pt:e})},chainNew:function(t,e){return n(\\\"chain_new\\\",{pt1:t,pt2:e})},chainMatch:function(t){return n(\\\"chain_match\\\",{index:t})},chainClose:function(t){return n(\\\"chain_close\\\",{index:t})},chainAddHead:function(t,e){return n(\\\"chain_add_head\\\",{index:t,pt:e})},chainAddTail:function(t,e){return n(\\\"chain_add_tail\\\",{index:t,pt:e})},chainConnect:function(t,e){return n(\\\"chain_con\\\",{index1:t,index2:e})},chainReverse:function(t){return n(\\\"chain_rev\\\",{index:t})},chainJoin:function(t,e){return n(\\\"chain_join\\\",{index1:t,index2:e})},done:function(){return n(\\\"done\\\")}}}},{}],458:[function(t,e,r){e.exports=function(t){\\\"number\\\"!=typeof t&&(t=1e-10);var e={epsilon:function(e){return\\\"number\\\"==typeof e&&(t=e),t},pointAboveOrOnLine:function(e,r,n){var i=r[0],a=r[1],o=n[0],s=n[1],l=e[0];return(o-i)*(e[1]-a)-(s-a)*(l-i)>=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l<t||l-(a*a+s*s)>-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])<t},pointsSameY:function(e,r){return Math.abs(e[1]-r[1])<t},pointsSame:function(t,r){return e.pointsSameX(t,r)&&e.pointsSameY(t,r)},pointsCompare:function(t,r){return e.pointsSameX(t,r)?e.pointsSameY(t,r)?0:t[1]<r[1]?-1:1:t[0]<r[0]?-1:1},pointsCollinear:function(e,r,n){var i=e[0]-r[0],a=e[1]-r[1],o=r[0]-n[0],s=r[1]-n[1];return Math.abs(i*s-o*a)<t},linesIntersect:function(e,r,n,i){var a=r[0]-e[0],o=r[1]-e[1],s=i[0]-n[0],l=i[1]-n[1],c=a*l-o*s;if(Math.abs(c)<t)return!1;var u=e[0]-n[0],f=e[1]-n[1],h=(s*f-l*u)/c,p=(a*f-o*u)/c,d={alongA:0,alongB:0,pt:[e[0]+h*a,e[1]+h*o]};return d.alongA=h<=-t?-2:h<t?-1:h-1<=-t?0:h-1<t?1:2,d.alongB=p<=-t?-2:p<t?-1:p-1<=-t?0:p-1<t?1:2,d},pointInsideRegion:function(e,r){for(var n=e[0],i=e[1],a=r[r.length-1][0],o=r[r.length-1][1],s=!1,l=0;l<r.length;l++){var c=r[l][0],u=r[l][1];u-i>t!=o-i>t&&(a-c)*(i-u)/(o-u)+c-n>t&&(s=!s),a=c,o=u}return s}};return e}},{}],459:[function(t,e,r){var n={toPolygon:function(t,e){function r(e){if(e.length<=0)return t.segments({inverted:!1,regions:[]});function r(e){var r=e.slice(0,e.length-1);return t.segments({inverted:!1,regions:[r]})}for(var n=r(e[0]),i=1;i<e.length;i++)n=t.selectDifference(t.combine(n,r(e[i])));return n}if(\\\"Polygon\\\"===e.type)return t.polygon(r(e.coordinates));if(\\\"MultiPolygon\\\"===e.type){for(var n=t.segments({inverted:!1,regions:[]}),i=0;i<e.coordinates.length;i++)n=t.selectUnion(t.combine(n,r(e.coordinates[i])));return t.polygon(n)}throw new Error(\\\"PolyBool: Cannot convert GeoJSON object to PolyBool polygon\\\")},fromPolygon:function(t,e,r){function n(t,r){return e.pointInsideRegion([.5*(t[0][0]+t[1][0]),.5*(t[0][1]+t[1][1])],r)}function i(t){return{region:t,children:[]}}r=t.polygon(t.segments(r));var a=i(null);function o(t,e){for(var r=0;r<t.children.length;r++){if(n(e,(s=t.children[r]).region))return void o(s,e)}var a=i(e);for(r=0;r<t.children.length;r++){var s;n((s=t.children[r]).region,e)&&(a.children.push(s),t.children.splice(r,1),r--)}t.children.push(a)}for(var s=0;s<r.regions.length;s++){var l=r.regions[s];l.length<3||o(a,l)}function c(t,e){for(var r=0,n=t[t.length-1][0],i=t[t.length-1][1],a=[],o=0;o<t.length;o++){var s=t[o][0],l=t[o][1];a.push([s,l]),r+=l*n-s*i,n=s,i=l}return r<0!==e&&a.reverse(),a.push([a[0][0],a[0][1]]),a}var u=[];function f(t){var e=[c(t.region,!1)];u.push(e);for(var r=0;r<t.children.length;r++)e.push(h(t.children[r]))}function h(t){for(var e=0;e<t.children.length;e++)f(t.children[e]);return c(t.region,!0)}for(s=0;s<a.children.length;s++)f(a.children[s]);return u.length<=0?{type:\\\"Polygon\\\",coordinates:[]}:1==u.length?{type:\\\"Polygon\\\",coordinates:u[0]}:{type:\\\"MultiPolygon\\\",coordinates:u}}};e.exports=n},{}],460:[function(t,e,r){var n=t(\\\"./linked-list\\\");e.exports=function(t,e,r){function i(t,e,n){return{id:r?r.segmentId():-1,start:t,end:e,myFill:{above:n.myFill.above,below:n.myFill.below},otherFill:null}}var a=n.create();function o(t,r){a.insertBefore(t,function(n){return function(t,r,n,i,a,o){var s=e.pointsCompare(r,a);return 0!==s?s:e.pointsSame(n,o)?0:t!==i?t?1:-1:e.pointAboveOrOnLine(n,i?a:o,i?o:a)?1:-1}(t.isStart,t.pt,r,n.isStart,n.pt,n.other.pt)<0})}function s(t,e){var r=function(t,e){var r=n.node({isStart:!0,pt:t.start,seg:t,primary:e,other:null,status:null});return o(r,t.end),r}(t,e);return function(t,e,r){var i=n.node({isStart:!1,pt:e.end,seg:e,primary:r,other:t,status:null});t.other=i,o(i,t.pt)}(r,t,e),r}function l(t,e){var n=i(e,t.seg.end,t.seg);return function(t,e){r&&r.segmentChop(t.seg,e),t.other.remove(),t.seg.end=e,t.other.pt=e,o(t.other,t.pt)}(t,e),s(n,t.primary)}function c(i,o){var s=n.create();function c(t){return s.findTransition(function(r){var n,i,a,o,s,l;return n=t,i=r.ev,a=n.seg.start,o=n.seg.end,s=i.seg.start,l=i.seg.end,(e.pointsCollinear(a,s,l)?e.pointsCollinear(o,s,l)?1:e.pointAboveOrOnLine(o,s,l)?1:-1:e.pointAboveOrOnLine(a,s,l)?1:-1)>0})}function u(t,n){var i=t.seg,a=n.seg,o=i.start,s=i.end,c=a.start,u=a.end;r&&r.checkIntersection(i,a);var f=e.linesIntersect(o,s,c,u);if(!1===f){if(!e.pointsCollinear(o,s,c))return!1;if(e.pointsSame(o,u)||e.pointsSame(s,c))return!1;var h=e.pointsSame(o,c),p=e.pointsSame(s,u);if(h&&p)return n;var d=!h&&e.pointBetween(o,c,u),g=!p&&e.pointBetween(s,c,u);if(h)return g?l(n,s):l(t,u),n;d&&(p||(g?l(n,s):l(t,u)),l(n,o))}else 0===f.alongA&&(-1===f.alongB?l(t,c):0===f.alongB?l(t,f.pt):1===f.alongB&&l(t,u)),0===f.alongB&&(-1===f.alongA?l(n,o):0===f.alongA?l(n,f.pt):1===f.alongA&&l(n,s));return!1}for(var f=[];!a.isEmpty();){var h=a.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var p=c(h),d=p.before?p.before.ev:null,g=p.after?p.after.ev:null;function v(){if(d){var t=u(h,d);if(t)return t}return!!g&&u(h,g)}r&&r.tempStatus(h.seg,!!d&&d.seg,!!g&&g.seg);var m,y,x=v();if(x)t?(y=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(x.seg.myFill.above=!x.seg.myFill.above):x.seg.otherFill=h.seg.myFill,r&&r.segmentUpdate(x.seg),h.other.remove(),h.remove();if(a.getHead()!==h){r&&r.rewind(h.seg);continue}t?(y=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=g?g.seg.myFill.above:i,h.seg.myFill.above=y?!h.seg.myFill.below:h.seg.myFill.below):null===h.seg.otherFill&&(m=g?h.primary===g.primary?g.seg.otherFill.above:g.seg.myFill.above:h.primary?o:i,h.seg.otherFill={above:m,below:m}),r&&r.status(h.seg,!!d&&d.seg,!!g&&g.seg),h.other.status=p.insert(n.node({ev:h}))}else{var b=h.status;if(null===b)throw new Error(\\\"PolyBool: Zero-length segment detected; your epsilon is probably too small or too large\\\");if(s.exists(b.prev)&&s.exists(b.next)&&u(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!h.primary){var _=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=_}f.push(h.seg)}a.getHead().remove()}return r&&r.done(),f}return t?{addRegion:function(t){for(var n,i,a,o=t[t.length-1],l=0;l<t.length;l++){n=o,o=t[l];var c=e.pointsCompare(n,o);0!==c&&s((i=c<0?n:o,a=c<0?o:n,{id:r?r.segmentId():-1,start:i,end:a,myFill:{above:null,below:null},otherFill:null}),!0)}},calculate:function(t){return c(t,!1)}}:{calculate:function(t,e,r,n){return t.forEach(function(t){s(i(t.start,t.end,t),!0)}),r.forEach(function(t){s(i(t.start,t.end,t),!1)}),c(e,n)}}}},{\\\"./linked-list\\\":461}],461:[function(t,e,r){e.exports={create:function(){var t={root:{root:!0,next:null},exists:function(e){return null!==e&&e!==t.root},isEmpty:function(){return null===t.root.next},getHead:function(){return t.root.next},insertBefore:function(e,r){for(var n=t.root,i=t.root.next;null!==i;){if(r(i))return e.prev=i.prev,e.next=i,i.prev.next=e,void(i.prev=e);n=i,i=i.next}n.next=e,e.prev=n,e.next=null},findTransition:function(e){for(var r=t.root,n=t.root.next;null!==n&&!e(n);)r=n,n=n.next;return{before:r===t.root?null:r,after:n,insert:function(t){return t.prev=r,t.next=n,r.next=t,null!==n&&(n.prev=t),t}}}};return t},node:function(t){return t.prev=null,t.next=null,t.remove=function(){t.prev.next=t.next,t.next&&(t.next.prev=t.prev),t.prev=null,t.next=null},t}}},{}],462:[function(t,e,r){e.exports=function(t,e,r){var n=[],i=[];return t.forEach(function(t){var a=t.start,o=t.end;if(e.pointsSame(a,o))console.warn(\\\"PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large\\\");else{r&&r.chainStart(t);for(var s={index:0,matches_head:!1,matches_pt1:!1},l={index:0,matches_head:!1,matches_pt1:!1},c=s,u=0;u<n.length;u++){var f=(v=n[u])[0],h=(v[1],v[v.length-1]);if(v[v.length-2],e.pointsSame(f,a)){if(M(u,!0,!0))break}else if(e.pointsSame(f,o)){if(M(u,!0,!1))break}else if(e.pointsSame(h,a)){if(M(u,!1,!0))break}else if(e.pointsSame(h,o)&&M(u,!1,!1))break}if(c===s)return n.push([a,o]),void(r&&r.chainNew(a,o));if(c===l){r&&r.chainMatch(s.index);var p=s.index,d=s.matches_pt1?o:a,g=s.matches_head,v=n[p],m=g?v[0]:v[v.length-1],y=g?v[1]:v[v.length-2],x=g?v[v.length-1]:v[0],b=g?v[v.length-2]:v[1];return e.pointsCollinear(y,m,d)&&(g?(r&&r.chainRemoveHead(s.index,d),v.shift()):(r&&r.chainRemoveTail(s.index,d),v.pop()),m=y),e.pointsSame(x,d)?(n.splice(p,1),e.pointsCollinear(b,x,m)&&(g?(r&&r.chainRemoveTail(s.index,m),v.pop()):(r&&r.chainRemoveHead(s.index,m),v.shift())),r&&r.chainClose(s.index),void i.push(v)):void(g?(r&&r.chainAddHead(s.index,d),v.unshift(d)):(r&&r.chainAddTail(s.index,d),v.push(d)))}var _=s.index,w=l.index;r&&r.chainConnect(_,w);var k=n[_].length<n[w].length;s.matches_head?l.matches_head?k?(A(_),T(_,w)):(A(w),T(w,_)):T(w,_):l.matches_head?T(_,w):k?(A(_),T(w,_)):(A(w),T(_,w))}function M(t,e,r){return c.index=t,c.matches_head=e,c.matches_pt1=r,c===s?(c=l,!1):(c=null,!0)}function A(t){r&&r.chainReverse(t),n[t].reverse()}function T(t,i){var a=n[t],o=n[i],s=a[a.length-1],l=a[a.length-2],c=o[0],u=o[1];e.pointsCollinear(l,s,c)&&(r&&r.chainRemoveTail(t,s),a.pop(),s=l),e.pointsCollinear(s,c,u)&&(r&&r.chainRemoveHead(i,c),o.shift()),r&&r.chainJoin(t,i),n[t]=a.concat(o),n.splice(i,1)}}),i}},{}],463:[function(t,e,r){function n(t,e,r){var n=[];return t.forEach(function(t){var i=(t.myFill.above?8:0)+(t.myFill.below?4:0)+(t.otherFill&&t.otherFill.above?2:0)+(t.otherFill&&t.otherFill.below?1:0);0!==e[i]&&n.push({id:r?r.segmentId():-1,start:t.start,end:t.end,myFill:{above:1===e[i],below:2===e[i]},otherFill:null})}),r&&r.selected(n),n}var i={union:function(t,e){return n(t,[0,2,1,0,2,2,0,0,1,0,1,0,0,0,0,0],e)},intersect:function(t,e){return n(t,[0,0,0,0,0,2,0,2,0,0,1,1,0,2,1,0],e)},difference:function(t,e){return n(t,[0,0,0,0,2,0,2,0,1,1,0,0,0,1,2,0],e)},differenceRev:function(t,e){return n(t,[0,2,1,0,0,0,1,1,0,2,0,2,0,0,0,0],e)},xor:function(t,e){return n(t,[0,2,1,0,2,0,0,1,1,0,0,2,0,1,2,0],e)}};e.exports=i},{}],464:[function(t,e,r){\\\"use strict\\\";var n=new Float64Array(4),i=new Float64Array(4),a=new Float64Array(4);e.exports=function(t,e,r,o,s){n.length<o.length&&(n=new Float64Array(o.length),i=new Float64Array(o.length),a=new Float64Array(o.length));for(var l=0;l<o.length;++l)n[l]=t[l]-o[l],i[l]=e[l]-t[l],a[l]=r[l]-t[l];var c=0,u=0,f=0,h=0,p=0,d=0;for(l=0;l<o.length;++l){var g=i[l],v=a[l],m=n[l];c+=g*g,u+=g*v,f+=v*v,h+=m*g,p+=m*v,d+=m*m}var y,x,b,_,w,k=Math.abs(c*f-u*u),M=u*p-f*h,A=u*h-c*p;if(M+A<=k)if(M<0)A<0&&h<0?(A=0,-h>=c?(M=1,y=c+2*h+d):y=h*(M=-h/c)+d):(M=0,p>=0?(A=0,y=d):-p>=f?(A=1,y=f+2*p+d):y=p*(A=-p/f)+d);else if(A<0)A=0,h>=0?(M=0,y=d):-h>=c?(M=1,y=c+2*h+d):y=h*(M=-h/c)+d;else{var T=1/k;y=(M*=T)*(c*M+u*(A*=T)+2*h)+A*(u*M+f*A+2*p)+d}else M<0?(b=f+p)>(x=u+h)?(_=b-x)>=(w=c-2*u+f)?(M=1,A=0,y=c+2*h+d):y=(M=_/w)*(c*M+u*(A=1-M)+2*h)+A*(u*M+f*A+2*p)+d:(M=0,b<=0?(A=1,y=f+2*p+d):p>=0?(A=0,y=d):y=p*(A=-p/f)+d):A<0?(b=c+h)>(x=u+p)?(_=b-x)>=(w=c-2*u+f)?(A=1,M=0,y=f+2*p+d):y=(M=1-(A=_/w))*(c*M+u*A+2*h)+A*(u*M+f*A+2*p)+d:(A=0,b<=0?(M=1,y=c+2*h+d):h>=0?(M=0,y=d):y=h*(M=-h/c)+d):(_=f+p-u-h)<=0?(M=0,A=1,y=f+2*p+d):_>=(w=c-2*u+f)?(M=1,A=0,y=c+2*h+d):y=(M=_/w)*(c*M+u*(A=1-M)+2*h)+A*(u*M+f*A+2*p)+d;var S=1-M-A;for(l=0;l<o.length;++l)s[l]=S*t[l]+M*e[l]+A*r[l];return y<0?0:y}},{}],465:[function(t,e,r){var n,i,a=e.exports={};function o(){throw new Error(\\\"setTimeout has not been defined\\\")}function s(){throw new Error(\\\"clearTimeout has not been defined\\\")}function l(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n=\\\"function\\\"==typeof setTimeout?setTimeout:o}catch(t){n=o}try{i=\\\"function\\\"==typeof clearTimeout?clearTimeout:s}catch(t){i=s}}();var c,u=[],f=!1,h=-1;function p(){f&&c&&(f=!1,c.length?u=c.concat(u):h=-1,u.length&&d())}function d(){if(!f){var t=l(p);f=!0;for(var e=u.length;e;){for(c=u,u=[];++h<e;)c&&c[h].run();h=-1,e=u.length}c=null,f=!1,function(t){if(i===clearTimeout)return clearTimeout(t);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(t);try{i(t)}catch(e){try{return i.call(null,t)}catch(e){return i.call(this,t)}}}(t)}}function g(t,e){this.fun=t,this.array=e}function v(){}a.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];u.push(new g(t,e)),1!==u.length||f||l(d)},g.prototype.run=function(){this.fun.apply(null,this.array)},a.title=\\\"browser\\\",a.browser=!0,a.env={},a.argv=[],a.version=\\\"\\\",a.versions={},a.on=v,a.addListener=v,a.once=v,a.off=v,a.removeListener=v,a.removeAllListeners=v,a.emit=v,a.prependListener=v,a.prependOnceListener=v,a.listeners=function(t){return[]},a.binding=function(t){throw new Error(\\\"process.binding is not supported\\\")},a.cwd=function(){return\\\"/\\\"},a.chdir=function(t){throw new Error(\\\"process.chdir is not supported\\\")},a.umask=function(){return 0}},{}],466:[function(t,e,r){e.exports=t(\\\"gl-quat/slerp\\\")},{\\\"gl-quat/slerp\\\":280}],467:[function(t,e,r){(function(r){for(var n=t(\\\"performance-now\\\"),i=\\\"undefined\\\"==typeof window?r:window,a=[\\\"moz\\\",\\\"webkit\\\"],o=\\\"AnimationFrame\\\",s=i[\\\"request\\\"+o],l=i[\\\"cancel\\\"+o]||i[\\\"cancelRequest\\\"+o],c=0;!s&&c<a.length;c++)s=i[a[c]+\\\"Request\\\"+o],l=i[a[c]+\\\"Cancel\\\"+o]||i[a[c]+\\\"CancelRequest\\\"+o];if(!s||!l){var u=0,f=0,h=[];s=function(t){if(0===h.length){var e=n(),r=Math.max(0,1e3/60-(e-u));u=r+e,setTimeout(function(){var t=h.slice(0);h.length=0;for(var e=0;e<t.length;e++)if(!t[e].cancelled)try{t[e].callback(u)}catch(t){setTimeout(function(){throw t},0)}},Math.round(r))}return h.push({handle:++f,callback:t,cancelled:!1}),f},l=function(t){for(var e=0;e<h.length;e++)h[e].handle===t&&(h[e].cancelled=!0)}}e.exports=function(t){return s.call(i,t)},e.exports.cancel=function(){l.apply(i,arguments)},e.exports.polyfill=function(t){t||(t=i),t.requestAnimationFrame=s,t.cancelAnimationFrame=l}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"performance-now\\\":445}],468:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"big-rat/add\\\");e.exports=function(t,e){for(var r=t.length,i=new Array(r),a=0;a<r;++a)i[a]=n(t[a],e[a]);return i}},{\\\"big-rat/add\\\":63}],469:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=new Array(t.length),r=0;r<t.length;++r)e[r]=n(t[r]);return e};var n=t(\\\"big-rat\\\")},{\\\"big-rat\\\":66}],470:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"big-rat\\\"),i=t(\\\"big-rat/mul\\\");e.exports=function(t,e){for(var r=n(e),a=t.length,o=new Array(a),s=0;s<a;++s)o[s]=i(t[s],r);return o}},{\\\"big-rat\\\":66,\\\"big-rat/mul\\\":75}],471:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"big-rat/sub\\\");e.exports=function(t,e){for(var r=t.length,i=new Array(r),a=0;a<r;++a)i[a]=n(t[a],e[a]);return i}},{\\\"big-rat/sub\\\":77}],472:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"compare-cell\\\"),i=t(\\\"compare-oriented-cell\\\"),a=t(\\\"cell-orientation\\\");e.exports=function(t){t.sort(i);for(var e=t.length,r=0,o=0;o<e;++o){var s=t[o],l=a(s);if(0!==l){if(r>0){var c=t[r-1];if(0===n(s,c)&&a(c)!==l){r-=1;continue}}t[r++]=s}}return t.length=r,t}},{\\\"cell-orientation\\\":100,\\\"compare-cell\\\":116,\\\"compare-oriented-cell\\\":117}],473:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"array-bounds\\\"),i=t(\\\"color-normalize\\\"),a=t(\\\"update-diff\\\"),o=t(\\\"pick-by-alias\\\"),s=t(\\\"object-assign\\\"),l=t(\\\"flatten-vertex-data\\\"),c=t(\\\"to-float32\\\"),u=c.float32,f=c.fract32;e.exports=function(t,e){\\\"function\\\"==typeof t?(e||(e={}),e.regl=t):e=t;e.length&&(e.positions=e);if(!(t=e.regl).hasExtension(\\\"ANGLE_instanced_arrays\\\"))throw Error(\\\"regl-error2d: `ANGLE_instanced_arrays` extension should be enabled\\\");var r,c,p,d,g,v,m=t._gl,y={color:\\\"black\\\",capSize:5,lineWidth:1,opacity:1,viewport:null,range:null,offset:0,count:0,bounds:null,positions:[],errors:[]},x=[];return d=t.buffer({usage:\\\"dynamic\\\",type:\\\"uint8\\\",data:new Uint8Array(0)}),c=t.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array(0)}),p=t.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array(0)}),g=t.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array(0)}),v=t.buffer({usage:\\\"static\\\",type:\\\"float\\\",data:h}),k(e),r=t({vert:\\\"\\\\n\\\\t\\\\tprecision highp float;\\\\n\\\\n\\\\t\\\\tattribute vec2 position, positionFract;\\\\n\\\\t\\\\tattribute vec4 error;\\\\n\\\\t\\\\tattribute vec4 color;\\\\n\\\\n\\\\t\\\\tattribute vec2 direction, lineOffset, capOffset;\\\\n\\\\n\\\\t\\\\tuniform vec4 viewport;\\\\n\\\\t\\\\tuniform float lineWidth, capSize;\\\\n\\\\t\\\\tuniform vec2 scale, scaleFract, translate, translateFract;\\\\n\\\\n\\\\t\\\\tvarying vec4 fragColor;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\tfragColor = color / 255.;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 position = position + dxy;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 pos = (position + translate) * scale\\\\n\\\\t\\\\t\\\\t\\\\t+ (positionFract + translateFract) * scale\\\\n\\\\t\\\\t\\\\t\\\\t+ (position + translate) * scaleFract\\\\n\\\\t\\\\t\\\\t\\\\t+ (positionFract + translateFract) * scaleFract;\\\\n\\\\n\\\\t\\\\t\\\\tpos += pixelOffset / viewport.zw;\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position = vec4(pos * 2. - 1., 0, 1);\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t\\\",frag:\\\"\\\\n\\\\t\\\\tprecision mediump float;\\\\n\\\\n\\\\t\\\\tvarying vec4 fragColor;\\\\n\\\\n\\\\t\\\\tuniform float opacity;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\tgl_FragColor = fragColor;\\\\n\\\\t\\\\t\\\\tgl_FragColor.a *= opacity;\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t\\\",uniforms:{range:t.prop(\\\"range\\\"),lineWidth:t.prop(\\\"lineWidth\\\"),capSize:t.prop(\\\"capSize\\\"),opacity:t.prop(\\\"opacity\\\"),scale:t.prop(\\\"scale\\\"),translate:t.prop(\\\"translate\\\"),scaleFract:t.prop(\\\"scaleFract\\\"),translateFract:t.prop(\\\"translateFract\\\"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{color:{buffer:d,offset:function(t,e){return 4*e.offset},divisor:1},position:{buffer:c,offset:function(t,e){return 8*e.offset},divisor:1},positionFract:{buffer:p,offset:function(t,e){return 8*e.offset},divisor:1},error:{buffer:g,offset:function(t,e){return 16*e.offset},divisor:1},direction:{buffer:v,stride:24,offset:0},lineOffset:{buffer:v,stride:24,offset:8},capOffset:{buffer:v,stride:24,offset:16}},primitive:\\\"triangles\\\",blend:{enable:!0,color:[0,0,0,0],equation:{rgb:\\\"add\\\",alpha:\\\"add\\\"},func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:\\\"one minus dst alpha\\\",dstAlpha:\\\"one\\\"}},depth:{enable:!1},scissor:{enable:!0,box:t.prop(\\\"viewport\\\")},viewport:t.prop(\\\"viewport\\\"),stencil:!1,instances:t.prop(\\\"count\\\"),count:h.length}),s(b,{update:k,draw:_,destroy:M,regl:t,gl:m,canvas:m.canvas,groups:x}),b;function b(t){t?k(t):null===t&&M(),_()}function _(e){if(\\\"number\\\"==typeof e)return w(e);e&&!Array.isArray(e)&&(e=[e]),t._refresh(),x.forEach(function(t,r){t&&(e&&(e[r]?t.draw=!0:t.draw=!1),t.draw?w(r):t.draw=!0)})}function w(t){\\\"number\\\"==typeof t&&(t=x[t]),null!=t&&t&&t.count&&t.color&&t.opacity&&t.positions&&t.positions.length>1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function k(t){if(t){null!=t.length?\\\"number\\\"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(b.groups=x=t.map(function(t,c){var u=x[c];return t?(\\\"function\\\"==typeof t?t={after:t}:\\\"number\\\"==typeof t[0]&&(t={positions:t}),t=o(t,{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\\\"}),u||(x[c]=u={id:c,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=s({},y,t)),a(u,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=l(t),r+=t.length,t},positions:function(t,r){return t=l(t,\\\"float64\\\"),r.count=Math.floor(t.length/2),r.bounds=n(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t=\\\"transparent\\\"),!Array.isArray(t)||\\\"number\\\"==typeof t[0]){var n=t;t=Array(r);for(var a=0;a<r;a++)t[a]=n}if(t.length<r)throw Error(\\\"Not enough colors\\\");for(var o=new Uint8Array(4*r),s=0;s<r;s++){var l=i(t[s],\\\"uint8\\\");o.set(l,4*s)}return o},range:function(t,e,r){var n=e.bounds;return t||(t=n),e.scale=[1/(t[2]-t[0]),1/(t[3]-t[1])],e.translate=[-t[0],-t[1]],e.scaleFract=f(e.scale),e.translateFract=f(e.translate),t},viewport:function(t){var e;return Array.isArray(t)?e={x:t[0],y:t[1],width:t[2]-t[0],height:t[3]-t[1]}:t?(e={x:t.x||t.left||0,y:t.y||t.top||0},t.right?e.width=t.right-e.x:e.width=t.w||t.width||0,t.bottom?e.height=t.bottom-e.y:e.height=t.h||t.height||0):e={x:0,y:0,width:m.drawingBufferWidth,height:m.drawingBufferHeight},e}}]),u):u}),e||r){var h=x.reduce(function(t,e,r){return t+(e?e.count:0)},0),v=new Float64Array(2*h),_=new Uint8Array(4*h),w=new Float32Array(4*h);x.forEach(function(t,e){if(t){var r=t.positions,n=t.count,i=t.offset,a=t.color,o=t.errors;n&&(_.set(a,4*i),w.set(o,4*i),v.set(r,2*i))}}),c(u(v)),p(f(v)),d(_),g(w)}}}function M(){c.destroy(),p.destroy(),d.destroy(),g.destroy(),v.destroy()}};var h=[[1,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,0,1,0,0],[1,0,0,1,0,0],[1,0,-1,0,0,1],[1,0,-1,0,0,-1],[1,0,1,0,0,-1],[1,0,1,0,0,-1],[1,0,1,0,0,1],[1,0,-1,0,0,1],[-1,0,-1,0,0,1],[-1,0,-1,0,0,-1],[-1,0,1,0,0,-1],[-1,0,1,0,0,-1],[-1,0,1,0,0,1],[-1,0,-1,0,0,1],[0,1,1,0,0,0],[0,1,-1,0,0,0],[0,-1,-1,0,0,0],[0,-1,-1,0,0,0],[0,1,1,0,0,0],[0,-1,1,0,0,0],[0,1,0,-1,1,0],[0,1,0,-1,-1,0],[0,1,0,1,-1,0],[0,1,0,1,1,0],[0,1,0,-1,1,0],[0,1,0,1,-1,0],[0,-1,0,-1,1,0],[0,-1,0,-1,-1,0],[0,-1,0,1,-1,0],[0,-1,0,1,1,0],[0,-1,0,-1,1,0],[0,-1,0,1,-1,0]]},{\\\"array-bounds\\\":53,\\\"color-normalize\\\":108,\\\"flatten-vertex-data\\\":216,\\\"object-assign\\\":437,\\\"pick-by-alias\\\":448,\\\"to-float32\\\":515,\\\"update-diff\\\":526}],474:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-normalize\\\"),i=t(\\\"array-bounds\\\"),a=t(\\\"object-assign\\\"),o=t(\\\"glslify\\\"),s=t(\\\"pick-by-alias\\\"),l=t(\\\"flatten-vertex-data\\\"),c=t(\\\"earcut\\\"),u=t(\\\"array-normalize\\\"),f=t(\\\"to-float32\\\"),h=f.float32,p=f.fract32,d=t(\\\"es6-weak-map\\\"),g=t(\\\"parse-rect\\\");function v(t,e){if(!(this instanceof v))return new v(t,e);if(\\\"function\\\"==typeof t?(e||(e={}),e.regl=t):e=t,e.length&&(e.positions=e),!(t=e.regl).hasExtension(\\\"ANGLE_instanced_arrays\\\"))throw Error(\\\"regl-error2d: `ANGLE_instanced_arrays` extension should be enabled\\\");this.gl=t._gl,this.regl=t,this.passes=[],this.shaders=v.shaders.has(t)?v.shaders.get(t):v.shaders.set(t,v.createShaders(t)).get(t),this.update(e)}e.exports=v,v.dashMult=2,v.maxPatternLength=256,v.precisionThreshold=3e6,v.maxPoints=1e4,v.maxLines=2048,v.shaders=new d,v.createShaders=function(t){var e,r=t.buffer({usage:\\\"static\\\",type:\\\"float\\\",data:[0,1,0,0,1,1,1,0]}),n={primitive:\\\"triangle strip\\\",instances:t.prop(\\\"count\\\"),count:4,offset:0,uniforms:{miterMode:function(t,e){return\\\"round\\\"===e.join?2:1},miterLimit:t.prop(\\\"miterLimit\\\"),scale:t.prop(\\\"scale\\\"),scaleFract:t.prop(\\\"scaleFract\\\"),translateFract:t.prop(\\\"translateFract\\\"),translate:t.prop(\\\"translate\\\"),thickness:t.prop(\\\"thickness\\\"),dashPattern:t.prop(\\\"dashTexture\\\"),opacity:t.prop(\\\"opacity\\\"),pixelRatio:t.context(\\\"pixelRatio\\\"),id:t.prop(\\\"id\\\"),dashSize:t.prop(\\\"dashLength\\\"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]},depth:t.prop(\\\"depth\\\")},blend:{enable:!0,color:[0,0,0,0],equation:{rgb:\\\"add\\\",alpha:\\\"add\\\"},func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:\\\"one minus dst alpha\\\",dstAlpha:\\\"one\\\"}},depth:{enable:function(t,e){return!e.overlay}},stencil:{enable:!1},scissor:{enable:!0,box:t.prop(\\\"viewport\\\")},viewport:t.prop(\\\"viewport\\\")},i=t(a({vert:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 aCoord, bCoord, aCoordFract, bCoordFract;\\\\nattribute vec4 color;\\\\nattribute float lineEnd, lineTop;\\\\n\\\\nuniform vec2 scale, scaleFract, translate, translateFract;\\\\nuniform float thickness, pixelRatio, id, depth;\\\\nuniform vec4 viewport;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec2 tangent;\\\\n\\\\nvec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) {\\\\n\\\\t// the order is important\\\\n\\\\treturn position * scale + translate\\\\n       + positionFract * scale + translateFract\\\\n       + position * scaleFract\\\\n       + positionFract * scaleFract;\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\tfloat lineStart = 1. - lineEnd;\\\\n\\\\tfloat lineOffset = lineTop * 2. - 1.;\\\\n\\\\n\\\\tvec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract);\\\\n\\\\ttangent = normalize(diff * scale * viewport.zw);\\\\n\\\\tvec2 normal = vec2(-tangent.y, tangent.x);\\\\n\\\\n\\\\tvec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart\\\\n\\\\t\\\\t+ project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd\\\\n\\\\n\\\\t\\\\t+ thickness * normal * .5 * lineOffset / viewport.zw;\\\\n\\\\n\\\\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\\\\n\\\\n\\\\tfragColor = color / 255.;\\\\n}\\\\n\\\"]),frag:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform sampler2D dashPattern;\\\\n\\\\nuniform float dashSize, pixelRatio, thickness, opacity, id;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec2 tangent;\\\\n\\\\nvoid main() {\\\\n\\\\tfloat alpha = 1.;\\\\n\\\\n\\\\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\\\\n\\\\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\\\\n\\\\n\\\\tgl_FragColor = fragColor;\\\\n\\\\tgl_FragColor.a *= alpha * opacity * dash;\\\\n}\\\\n\\\"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:16,divisor:1},aCoordFract:{buffer:t.prop(\\\"positionFractBuffer\\\"),stride:8,offset:8,divisor:1},bCoordFract:{buffer:t.prop(\\\"positionFractBuffer\\\"),stride:8,offset:16,divisor:1},color:{buffer:t.prop(\\\"colorBuffer\\\"),stride:4,offset:0,divisor:1}}},n));try{e=t(a({cull:{enable:!0,face:\\\"back\\\"},vert:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 aCoord, bCoord, nextCoord, prevCoord;\\\\nattribute vec4 aColor, bColor;\\\\nattribute float lineEnd, lineTop;\\\\n\\\\nuniform vec2 scale, translate;\\\\nuniform float thickness, pixelRatio, id, depth;\\\\nuniform vec4 viewport;\\\\nuniform float miterLimit, miterMode;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec4 startCutoff, endCutoff;\\\\nvarying vec2 tangent;\\\\nvarying vec2 startCoord, endCoord;\\\\nvarying float enableStartMiter, enableEndMiter;\\\\n\\\\nconst float REVERSE_THRESHOLD = -.875;\\\\nconst float MIN_DIFF = 1e-6;\\\\n\\\\n// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead\\\\n// TODO: precalculate dot products, normalize things beforehead etc.\\\\n// TODO: refactor to rectangular algorithm\\\\n\\\\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\\\\n\\\\tvec2 diff = b - a;\\\\n\\\\tvec2 perp = normalize(vec2(-diff.y, diff.x));\\\\n\\\\treturn dot(p - a, perp);\\\\n}\\\\n\\\\nbool isNaN( float val ){\\\\n  return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\tvec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;\\\\n\\\\n  vec2 adjustedScale;\\\\n  adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;\\\\n  adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;\\\\n\\\\n  vec2 scaleRatio = adjustedScale * viewport.zw;\\\\n\\\\tvec2 normalWidth = thickness / scaleRatio;\\\\n\\\\n\\\\tfloat lineStart = 1. - lineEnd;\\\\n\\\\tfloat lineBot = 1. - lineTop;\\\\n\\\\n\\\\tfragColor = (lineStart * aColor + lineEnd * bColor) / 255.;\\\\n\\\\n\\\\tif (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;\\\\n\\\\n\\\\tif (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);\\\\n\\\\tif (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);\\\\n\\\\n\\\\tvec2 prevDiff = aCoord - prevCoord;\\\\n\\\\tvec2 currDiff = bCoord - aCoord;\\\\n\\\\tvec2 nextDiff = nextCoord - bCoord;\\\\n\\\\n\\\\tvec2 prevTangent = normalize(prevDiff * scaleRatio);\\\\n\\\\tvec2 currTangent = normalize(currDiff * scaleRatio);\\\\n\\\\tvec2 nextTangent = normalize(nextDiff * scaleRatio);\\\\n\\\\n\\\\tvec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);\\\\n\\\\tvec2 currNormal = vec2(-currTangent.y, currTangent.x);\\\\n\\\\tvec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);\\\\n\\\\n\\\\tvec2 startJoinDirection = normalize(prevTangent - currTangent);\\\\n\\\\tvec2 endJoinDirection = normalize(currTangent - nextTangent);\\\\n\\\\n\\\\t// collapsed/unidirectional segment cases\\\\n\\\\t// FIXME: there should be more elegant solution\\\\n\\\\tvec2 prevTanDiff = abs(prevTangent - currTangent);\\\\n\\\\tvec2 nextTanDiff = abs(nextTangent - currTangent);\\\\n\\\\tif (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {\\\\n\\\\t\\\\tstartJoinDirection = currNormal;\\\\n\\\\t}\\\\n\\\\tif (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {\\\\n\\\\t\\\\tendJoinDirection = currNormal;\\\\n\\\\t}\\\\n\\\\tif (aCoord == bCoord) {\\\\n\\\\t\\\\tendJoinDirection = startJoinDirection;\\\\n\\\\t\\\\tcurrNormal = prevNormal;\\\\n\\\\t\\\\tcurrTangent = prevTangent;\\\\n\\\\t}\\\\n\\\\n\\\\ttangent = currTangent;\\\\n\\\\n\\\\t//calculate join shifts relative to normals\\\\n\\\\tfloat startJoinShift = dot(currNormal, startJoinDirection);\\\\n\\\\tfloat endJoinShift = dot(currNormal, endJoinDirection);\\\\n\\\\n\\\\tfloat startMiterRatio = abs(1. / startJoinShift);\\\\n\\\\tfloat endMiterRatio = abs(1. / endJoinShift);\\\\n\\\\n\\\\tvec2 startJoin = startJoinDirection * startMiterRatio;\\\\n\\\\tvec2 endJoin = endJoinDirection * endMiterRatio;\\\\n\\\\n\\\\tvec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;\\\\n\\\\tstartTopJoin = sign(startJoinShift) * startJoin * .5;\\\\n\\\\tstartBotJoin = -startTopJoin;\\\\n\\\\n\\\\tendTopJoin = sign(endJoinShift) * endJoin * .5;\\\\n\\\\tendBotJoin = -endTopJoin;\\\\n\\\\n\\\\tvec2 aTopCoord = aCoord + normalWidth * startTopJoin;\\\\n\\\\tvec2 bTopCoord = bCoord + normalWidth * endTopJoin;\\\\n\\\\tvec2 aBotCoord = aCoord + normalWidth * startBotJoin;\\\\n\\\\tvec2 bBotCoord = bCoord + normalWidth * endBotJoin;\\\\n\\\\n\\\\t//miter anti-clipping\\\\n\\\\tfloat baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));\\\\n\\\\tfloat abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));\\\\n\\\\n\\\\t//prevent close to reverse direction switch\\\\n\\\\tbool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) <  length(normalWidth * currNormal);\\\\n\\\\tbool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) <  length(normalWidth * currNormal);\\\\n\\\\n\\\\tif (prevReverse) {\\\\n\\\\t\\\\t//make join rectangular\\\\n\\\\t\\\\tvec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;\\\\n\\\\t\\\\tfloat normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);\\\\n\\\\t\\\\taBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\\\\n\\\\t\\\\taTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\\\\n\\\\t}\\\\n\\\\telse if (!nextReverse && baClipping > 0. && baClipping < length(normalWidth * endBotJoin)) {\\\\n\\\\t\\\\t//handle miter clipping\\\\n\\\\t\\\\tbTopCoord -= normalWidth * endTopJoin;\\\\n\\\\t\\\\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\\\\n\\\\t}\\\\n\\\\n\\\\tif (nextReverse) {\\\\n\\\\t\\\\t//make join rectangular\\\\n\\\\t\\\\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\\\\n\\\\t\\\\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\\\\n\\\\t\\\\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\\\\n\\\\t\\\\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\\\\n\\\\t}\\\\n\\\\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\\\\n\\\\t\\\\t//handle miter clipping\\\\n\\\\t\\\\taBotCoord -= normalWidth * startBotJoin;\\\\n\\\\t\\\\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\\\\n\\\\t}\\\\n\\\\n\\\\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\\\\n\\\\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\\\\n\\\\n\\\\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\\\\n\\\\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\\\\n\\\\n\\\\t//position is normalized 0..1 coord on the screen\\\\n\\\\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\\\\n\\\\n\\\\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\\\\n\\\\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\\\\n\\\\n\\\\tgl_Position = vec4(position  * 2.0 - 1.0, depth, 1);\\\\n\\\\n\\\\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\\\\n\\\\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\\\\n\\\\n\\\\t//bevel miter cutoffs\\\\n\\\\tif (miterMode == 1.) {\\\\n\\\\t\\\\tif (enableStartMiter == 1.) {\\\\n\\\\t\\\\t\\\\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\\\\n\\\\t\\\\t\\\\tstartCutoff = vec4(aCoord, aCoord);\\\\n\\\\t\\\\t\\\\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\\\\n\\\\t\\\\t\\\\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\\\\n\\\\t\\\\t\\\\tstartCutoff += viewport.xyxy;\\\\n\\\\t\\\\t\\\\tstartCutoff += startMiterWidth.xyxy;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tif (enableEndMiter == 1.) {\\\\n\\\\t\\\\t\\\\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\\\\n\\\\t\\\\t\\\\tendCutoff = vec4(bCoord, bCoord);\\\\n\\\\t\\\\t\\\\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x)  / scaleRatio;\\\\n\\\\t\\\\t\\\\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\\\\n\\\\t\\\\t\\\\tendCutoff += viewport.xyxy;\\\\n\\\\t\\\\t\\\\tendCutoff += endMiterWidth.xyxy;\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\n\\\\t//round miter cutoffs\\\\n\\\\telse if (miterMode == 2.) {\\\\n\\\\t\\\\tif (enableStartMiter == 1.) {\\\\n\\\\t\\\\t\\\\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\\\\n\\\\t\\\\t\\\\tstartCutoff = vec4(aCoord, aCoord);\\\\n\\\\t\\\\t\\\\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\\\\n\\\\t\\\\t\\\\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\\\\n\\\\t\\\\t\\\\tstartCutoff += viewport.xyxy;\\\\n\\\\t\\\\t\\\\tstartCutoff += startMiterWidth.xyxy;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tif (enableEndMiter == 1.) {\\\\n\\\\t\\\\t\\\\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\\\\n\\\\t\\\\t\\\\tendCutoff = vec4(bCoord, bCoord);\\\\n\\\\t\\\\t\\\\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x)  / scaleRatio;\\\\n\\\\t\\\\t\\\\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\\\\n\\\\t\\\\t\\\\tendCutoff += viewport.xyxy;\\\\n\\\\t\\\\t\\\\tendCutoff += endMiterWidth.xyxy;\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n}\\\\n\\\"]),frag:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform sampler2D dashPattern;\\\\nuniform float dashSize, pixelRatio, thickness, opacity, id, miterMode;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec2 tangent;\\\\nvarying vec4 startCutoff, endCutoff;\\\\nvarying vec2 startCoord, endCoord;\\\\nvarying float enableStartMiter, enableEndMiter;\\\\n\\\\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\\\\n\\\\tvec2 diff = b - a;\\\\n\\\\tvec2 perp = normalize(vec2(-diff.y, diff.x));\\\\n\\\\treturn dot(p - a, perp);\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\tfloat alpha = 1., distToStart, distToEnd;\\\\n\\\\tfloat cutoff = thickness * .5;\\\\n\\\\n\\\\t//bevel miter\\\\n\\\\tif (miterMode == 1.) {\\\\n\\\\t\\\\tif (enableStartMiter == 1.) {\\\\n\\\\t\\\\t\\\\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\\\\n\\\\t\\\\t\\\\tif (distToStart < -1.) {\\\\n\\\\t\\\\t\\\\t\\\\tdiscard;\\\\n\\\\t\\\\t\\\\t\\\\treturn;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\talpha *= min(max(distToStart + 1., 0.), 1.);\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tif (enableEndMiter == 1.) {\\\\n\\\\t\\\\t\\\\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\\\\n\\\\t\\\\t\\\\tif (distToEnd < -1.) {\\\\n\\\\t\\\\t\\\\t\\\\tdiscard;\\\\n\\\\t\\\\t\\\\t\\\\treturn;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\talpha *= min(max(distToEnd + 1., 0.), 1.);\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\n\\\\t// round miter\\\\n\\\\telse if (miterMode == 2.) {\\\\n\\\\t\\\\tif (enableStartMiter == 1.) {\\\\n\\\\t\\\\t\\\\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\\\\n\\\\t\\\\t\\\\tif (distToStart < 0.) {\\\\n\\\\t\\\\t\\\\t\\\\tfloat radius = length(gl_FragCoord.xy - startCoord);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tif(radius > cutoff + .5) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tdiscard;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tif (enableEndMiter == 1.) {\\\\n\\\\t\\\\t\\\\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\\\\n\\\\t\\\\t\\\\tif (distToEnd < 0.) {\\\\n\\\\t\\\\t\\\\t\\\\tfloat radius = length(gl_FragCoord.xy - endCoord);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tif(radius > cutoff + .5) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tdiscard;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\n\\\\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\\\\n\\\\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\\\\n\\\\n\\\\tgl_FragColor = fragColor;\\\\n\\\\tgl_FragColor.a *= alpha * opacity * dash;\\\\n}\\\\n\\\"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aColor:{buffer:t.prop(\\\"colorBuffer\\\"),stride:4,offset:0,divisor:1},bColor:{buffer:t.prop(\\\"colorBuffer\\\"),stride:4,offset:4,divisor:1},prevCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:0,divisor:1},aCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:16,divisor:1},nextCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:24,divisor:1}}},n))}catch(t){e=i}return{fill:t({primitive:\\\"triangle\\\",elements:function(t,e){return e.triangles},offset:0,vert:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position, positionFract;\\\\n\\\\nuniform vec4 color;\\\\nuniform vec2 scale, scaleFract, translate, translateFract;\\\\nuniform float pixelRatio, id;\\\\nuniform vec4 viewport;\\\\nuniform float opacity;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nconst float MAX_LINES = 256.;\\\\n\\\\nvoid main() {\\\\n\\\\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\\\\n\\\\n\\\\tvec2 position = position * scale + translate\\\\n       + positionFract * scale + translateFract\\\\n       + position * scaleFract\\\\n       + positionFract * scaleFract;\\\\n\\\\n\\\\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\\\\n\\\\n\\\\tfragColor = color / 255.;\\\\n\\\\tfragColor.a *= opacity;\\\\n}\\\\n\\\"]),frag:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n\\\\tgl_FragColor = fragColor;\\\\n}\\\\n\\\"]),uniforms:{scale:t.prop(\\\"scale\\\"),color:t.prop(\\\"fill\\\"),scaleFract:t.prop(\\\"scaleFract\\\"),translateFract:t.prop(\\\"translateFract\\\"),translate:t.prop(\\\"translate\\\"),opacity:t.prop(\\\"opacity\\\"),pixelRatio:t.context(\\\"pixelRatio\\\"),id:t.prop(\\\"id\\\"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:8},positionFract:{buffer:t.prop(\\\"positionFractBuffer\\\"),stride:8,offset:8}},blend:n.blend,depth:{enable:!1},scissor:n.scissor,stencil:n.stencil,viewport:n.viewport}),rect:i,miter:e}},v.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},v.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];e.length&&(t=this).update.apply(t,e),this.draw()},v.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];return(e.length?e:this.passes).forEach(function(e,r){var n;if(e&&Array.isArray(e))return(n=t).draw.apply(n,e);\\\"number\\\"==typeof e&&(e=t.passes[e]),e&&e.count>1&&e.opacity&&(t.regl._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&t.shaders.fill(e),e.thickness&&(e.scale[0]*e.viewport.width>v.precisionThreshold||e.scale[1]*e.viewport.height>v.precisionThreshold?t.shaders.rect(e):\\\"rect\\\"===e.join||!e.join&&(e.thickness<=2||e.count>=v.maxPoints)?t.shaders.rect(e):t.shaders.miter(e)))}),this},v.prototype.update=function(t){var e=this;if(t){null!=t.length?\\\"number\\\"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var r=this.regl,o=this.gl;if(t.forEach(function(t,f){var d=e.passes[f];if(void 0!==t)if(null!==t){if(\\\"number\\\"==typeof t[0]&&(t={positions:t}),t=s(t,{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\\\"}),d||(e.passes[f]=d={id:f,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:r.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:\\\"linear\\\",min:\\\"linear\\\"}),colorBuffer:r.buffer({usage:\\\"dynamic\\\",type:\\\"uint8\\\",data:new Uint8Array}),positionBuffer:r.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array}),positionFractBuffer:r.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array})},t=a({},v.defaults,t)),null!=t.thickness&&(d.thickness=parseFloat(t.thickness)),null!=t.opacity&&(d.opacity=parseFloat(t.opacity)),null!=t.miterLimit&&(d.miterLimit=parseFloat(t.miterLimit)),null!=t.overlay&&(d.overlay=!!t.overlay,f<v.maxLines&&(d.depth=2*(v.maxLines-1-f%v.maxLines)/v.maxLines-1)),null!=t.join&&(d.join=t.join),null!=t.hole&&(d.hole=t.hole),null!=t.fill&&(d.fill=t.fill?n(t.fill,\\\"uint8\\\"):null),null!=t.viewport&&(d.viewport=g(t.viewport)),d.viewport||(d.viewport=g([o.drawingBufferWidth,o.drawingBufferHeight])),null!=t.close&&(d.close=t.close),null===t.positions&&(t.positions=[]),t.positions){var m,y;if(t.positions.x&&t.positions.y){var x=t.positions.x,b=t.positions.y;y=d.count=Math.max(x.length,b.length),m=new Float64Array(2*y);for(var _=0;_<y;_++)m[2*_]=x[_],m[2*_+1]=b[_]}else m=l(t.positions,\\\"float64\\\"),y=d.count=Math.floor(m.length/2);var w=d.bounds=i(m,2);if(d.fill){for(var k=[],M={},A=0,T=0,S=0,E=d.count;T<E;T++){var C=m[2*T],L=m[2*T+1];isNaN(C)||isNaN(L)||null==C||null==L?(C=m[2*A],L=m[2*A+1],M[T]=A):A=T,k[S++]=C,k[S++]=L}for(var z=c(k,d.hole||[]),O=0,I=z.length;O<I;O++)null!=M[z[O]]&&(z[O]=M[z[O]]);d.triangles=z}var P=new Float64Array(m);u(P,2,w);var D=new Float64Array(2*y+6);d.close?m[0]===m[2*y-2]&&m[1]===m[2*y-1]?(D[0]=P[2*y-4],D[1]=P[2*y-3]):(D[0]=P[2*y-2],D[1]=P[2*y-1]):(D[0]=P[0],D[1]=P[1]),D.set(P,2),d.close?m[0]===m[2*y-2]&&m[1]===m[2*y-1]?(D[2*y+2]=P[2],D[2*y+3]=P[3],d.count-=1):(D[2*y+2]=P[0],D[2*y+3]=P[1],D[2*y+4]=P[2],D[2*y+5]=P[3]):(D[2*y+2]=P[2*y-2],D[2*y+3]=P[2*y-1],D[2*y+4]=P[2*y-2],D[2*y+5]=P[2*y-1]),d.positionBuffer(h(D)),d.positionFractBuffer(p(D))}if(t.range?d.range=t.range:d.range||(d.range=d.bounds),(t.range||t.positions)&&d.count){var R=d.bounds,B=R[2]-R[0],F=R[3]-R[1],N=d.range[2]-d.range[0],j=d.range[3]-d.range[1];d.scale=[B/N,F/j],d.translate=[-d.range[0]/N+R[0]/N||0,-d.range[1]/j+R[1]/j||0],d.scaleFract=p(d.scale),d.translateFract=p(d.translate)}if(t.dashes){var V,U=0;if(!t.dashes||t.dashes.length<2)U=1,V=new Uint8Array([255,255,255,255,255,255,255,255]);else{U=0;for(var q=0;q<t.dashes.length;++q)U+=t.dashes[q];V=new Uint8Array(U*v.dashMult);for(var H=0,G=255,W=0;W<2;W++)for(var Y=0;Y<t.dashes.length;++Y){for(var X=0,Z=t.dashes[Y]*v.dashMult*.5;X<Z;++X)V[H++]=G;G^=255}}d.dashLength=U,d.dashTexture({channels:1,data:V,width:V.length,height:1,mag:\\\"linear\\\",min:\\\"linear\\\"},0,0)}if(t.color){var $=d.count,J=t.color;J||(J=\\\"transparent\\\");var K=new Uint8Array(4*$+4);if(Array.isArray(J)&&\\\"number\\\"!=typeof J[0]){for(var Q=0;Q<$;Q++){var tt=n(J[Q],\\\"uint8\\\");K.set(tt,4*Q)}K.set(n(J[0],\\\"uint8\\\"),4*$)}else for(var et=n(J,\\\"uint8\\\"),rt=0;rt<$+1;rt++)K.set(et,4*rt);d.colorBuffer({usage:\\\"dynamic\\\",type:\\\"uint8\\\",data:K})}}else e.passes[f]=null}),t.length<this.passes.length){for(var f=t.length;f<this.passes.length;f++){var d=e.passes[f];d&&(d.colorBuffer.destroy(),d.positionBuffer.destroy(),d.dashTexture.destroy())}this.passes.length=t.length}for(var m=[],y=0;y<this.passes.length;y++)null!==e.passes[y]&&m.push(e.passes[y]);return this.passes=m,this}},v.prototype.destroy=function(){return this.passes.forEach(function(t){t.colorBuffer.destroy(),t.positionBuffer.destroy(),t.dashTexture.destroy()}),this.passes.length=0,this}},{\\\"array-bounds\\\":53,\\\"array-normalize\\\":54,\\\"color-normalize\\\":108,earcut:156,\\\"es6-weak-map\\\":209,\\\"flatten-vertex-data\\\":216,glslify:392,\\\"object-assign\\\":437,\\\"parse-rect\\\":442,\\\"pick-by-alias\\\":448,\\\"to-float32\\\":515}],475:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scatter\\\"),i=t(\\\"object-assign\\\");e.exports=function(t,e){var r=new n(t,e),a=r.render.bind(r);return i(a,{render:a,update:r.update.bind(r),draw:r.draw.bind(r),destroy:r.destroy.bind(r),regl:r.regl,gl:r.gl,canvas:r.gl.canvas,groups:r.groups,markers:r.markerCache,palette:r.palette}),a}},{\\\"./scatter\\\":476,\\\"object-assign\\\":437}],476:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-normalize\\\"),i=t(\\\"array-bounds\\\"),a=t(\\\"color-id\\\"),o=t(\\\"point-cluster\\\"),s=t(\\\"object-assign\\\"),l=t(\\\"glslify\\\"),c=t(\\\"pick-by-alias\\\"),u=t(\\\"update-diff\\\"),f=t(\\\"flatten-vertex-data\\\"),h=t(\\\"is-iexplorer\\\"),p=t(\\\"to-float32\\\"),d=t(\\\"parse-rect\\\");function g(t,e){var r=this;if(!(this instanceof g))return new g(t,e);\\\"function\\\"==typeof t?(e||(e={}),e.regl=t):(e=t,t=null),e&&e.length&&(e.positions=e);var n,i=(t=e.regl)._gl,a=[];this.tooManyColors=h,n=t.texture({data:new Uint8Array(1020),width:255,height:1,type:\\\"uint8\\\",format:\\\"rgba\\\",wrapS:\\\"clamp\\\",wrapT:\\\"clamp\\\",mag:\\\"nearest\\\",min:\\\"nearest\\\"}),s(this,{regl:t,gl:i,groups:[],markerCache:[null],markerTextures:[null],palette:a,paletteIds:{},paletteTexture:n,maxColors:255,maxSize:100,canvas:i.canvas}),this.update(e);var o={uniforms:{pixelRatio:t.context(\\\"pixelRatio\\\"),palette:n,paletteSize:function(t,e){return[r.tooManyColors?0:255,n.height]},scale:t.prop(\\\"scale\\\"),scaleFract:t.prop(\\\"scaleFract\\\"),translate:t.prop(\\\"translate\\\"),translateFract:t.prop(\\\"translateFract\\\"),opacity:t.prop(\\\"opacity\\\"),marker:t.prop(\\\"markerTexture\\\")},attributes:{x:function(t,e){return e.xAttr||{buffer:e.positionBuffer,stride:8,offset:0}},y:function(t,e){return e.yAttr||{buffer:e.positionBuffer,stride:8,offset:4}},xFract:function(t,e){return e.xAttr?{constant:[0,0]}:{buffer:e.positionFractBuffer,stride:8,offset:0}},yFract:function(t,e){return e.yAttr?{constant:[0,0]}:{buffer:e.positionFractBuffer,stride:8,offset:4}},size:function(t,e){return e.size.length?{buffer:e.sizeBuffer,stride:2,offset:0}:{constant:[Math.round(255*e.size/r.maxSize)]}},borderSize:function(t,e){return e.borderSize.length?{buffer:e.sizeBuffer,stride:2,offset:1}:{constant:[Math.round(255*e.borderSize/r.maxSize)]}},colorId:function(t,e){return e.color.length?{buffer:e.colorBuffer,stride:r.tooManyColors?8:4,offset:0}:{constant:r.tooManyColors?a.slice(4*e.color,4*e.color+4):[e.color]}},borderColorId:function(t,e){return e.borderColor.length?{buffer:e.colorBuffer,stride:r.tooManyColors?8:4,offset:r.tooManyColors?4:2}:{constant:r.tooManyColors?a.slice(4*e.borderColor,4*e.borderColor+4):[e.borderColor]}},isActive:function(t,e){return!0===e.activation?{constant:[1]}:e.activation?e.activation:{constant:[0]}}},blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:\\\"one minus dst alpha\\\",dstAlpha:\\\"one\\\"}},scissor:{enable:!0,box:t.prop(\\\"viewport\\\")},viewport:t.prop(\\\"viewport\\\"),stencil:{enable:!1},depth:{enable:!1},elements:t.prop(\\\"elements\\\"),count:t.prop(\\\"count\\\"),offset:t.prop(\\\"offset\\\"),primitive:\\\"points\\\"},c=s({},o);c.frag=l([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor, fragBorderColor;\\\\nvarying float fragWidth, fragBorderColorLevel, fragColorLevel;\\\\n\\\\nuniform sampler2D marker;\\\\nuniform float pixelRatio, opacity;\\\\n\\\\nfloat smoothStep(float x, float y) {\\\\n  return 1.0 / (1.0 + exp(50.0*(x - y)));\\\\n}\\\\n\\\\nvoid main() {\\\\n  float dist = texture2D(marker, gl_PointCoord).r, delta = fragWidth;\\\\n\\\\n  // max-distance alpha\\\\n  if (dist < 0.003) discard;\\\\n\\\\n  // null-border case\\\\n  if (fragBorderColorLevel == fragColorLevel || fragBorderColor.a == 0.) {\\\\n    float colorAmt = smoothstep(.5 - delta, .5 + delta, dist);\\\\n    gl_FragColor = vec4(fragColor.rgb, colorAmt * fragColor.a * opacity);\\\\n  }\\\\n  else {\\\\n    float borderColorAmt = smoothstep(fragBorderColorLevel - delta, fragBorderColorLevel + delta, dist);\\\\n    float colorAmt = smoothstep(fragColorLevel - delta, fragColorLevel + delta, dist);\\\\n\\\\n    vec4 color = fragBorderColor;\\\\n    color.a *= borderColorAmt;\\\\n    color = mix(color, fragColor, colorAmt);\\\\n    color.a *= opacity;\\\\n\\\\n    gl_FragColor = color;\\\\n  }\\\\n\\\\n}\\\\n\\\"]),c.vert=l([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute float x, y, xFract, yFract;\\\\nattribute float size, borderSize;\\\\nattribute vec4 colorId, borderColorId;\\\\nattribute float isActive;\\\\n\\\\nuniform vec2 scale, scaleFract, translate, translateFract, paletteSize;\\\\nuniform float pixelRatio;\\\\nuniform sampler2D palette;\\\\n\\\\nconst float maxSize = 100.;\\\\nconst float borderLevel = .5;\\\\n\\\\nvarying vec4 fragColor, fragBorderColor;\\\\nvarying float fragPointSize, fragBorderRadius,\\\\n    fragWidth, fragBorderColorLevel, fragColorLevel;\\\\n\\\\nvec2 paletteCoord(float id) {\\\\n  return vec2(\\\\n    (mod(id, paletteSize.x) + .5) / paletteSize.x,\\\\n    (floor(id / paletteSize.x) + .5) / paletteSize.y\\\\n  );\\\\n}\\\\nvec2 paletteCoord(vec2 id) {\\\\n  return vec2(\\\\n    (id.x + .5) / paletteSize.x,\\\\n    (id.y + .5) / paletteSize.y\\\\n  );\\\\n}\\\\nvec4 getColor(vec4 id) {\\\\n  // zero-palette means we deal with direct buffer\\\\n  if (paletteSize.x == 0.) return id / 255.;\\\\n  return texture2D(palette, paletteCoord(id.xy));\\\\n}\\\\n\\\\nvoid main() {\\\\n  if (isActive == 0.) return;\\\\n\\\\n  vec2 position = vec2(x, y);\\\\n  vec2 positionFract = vec2(xFract, yFract);\\\\n\\\\n  vec4 color = getColor(colorId);\\\\n  vec4 borderColor = getColor(borderColorId);\\\\n\\\\n  float size = size * maxSize / 255.;\\\\n  float borderSize = borderSize * maxSize / 255.;\\\\n\\\\n  gl_PointSize = 2. * size * pixelRatio;\\\\n  fragPointSize = size * pixelRatio;\\\\n\\\\n  vec2 pos = (position + translate) * scale\\\\n      + (positionFract + translateFract) * scale\\\\n      + (position + translate) * scaleFract\\\\n      + (positionFract + translateFract) * scaleFract;\\\\n\\\\n  gl_Position = vec4(pos * 2. - 1., 0, 1);\\\\n\\\\n  fragColor = color;\\\\n  fragBorderColor = borderColor;\\\\n  fragWidth = 1. / gl_PointSize;\\\\n\\\\n  fragBorderColorLevel = clamp(borderLevel - borderLevel * borderSize / size, 0., 1.);\\\\n  fragColorLevel = clamp(borderLevel + (1. - borderLevel) * borderSize / size, 0., 1.);\\\\n}\\\\n\\\"]),this.drawMarker=t(c);var u=s({},o);u.frag=l([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor, fragBorderColor;\\\\n\\\\nuniform float opacity;\\\\nvarying float fragBorderRadius, fragWidth;\\\\n\\\\nfloat smoothStep(float edge0, float edge1, float x) {\\\\n\\\\tfloat t;\\\\n\\\\tt = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\\\\n\\\\treturn t * t * (3.0 - 2.0 * t);\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\tfloat radius, alpha = 1.0, delta = fragWidth;\\\\n\\\\n\\\\tradius = length(2.0 * gl_PointCoord.xy - 1.0);\\\\n\\\\n\\\\tif (radius > 1.0 + delta) {\\\\n\\\\t\\\\tdiscard;\\\\n\\\\t}\\\\n\\\\n\\\\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\\\\n\\\\n\\\\tfloat borderRadius = fragBorderRadius;\\\\n\\\\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\\\\n\\\\tvec4 color = mix(fragColor, fragBorderColor, ratio);\\\\n\\\\tcolor.a *= alpha * opacity;\\\\n\\\\tgl_FragColor = color;\\\\n}\\\\n\\\"]),u.vert=l([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute float x, y, xFract, yFract;\\\\nattribute float size, borderSize;\\\\nattribute vec4 colorId, borderColorId;\\\\nattribute float isActive;\\\\n\\\\nuniform vec2 scale, scaleFract, translate, translateFract;\\\\nuniform float pixelRatio;\\\\nuniform sampler2D palette;\\\\nuniform vec2 paletteSize;\\\\n\\\\nconst float maxSize = 100.;\\\\n\\\\nvarying vec4 fragColor, fragBorderColor;\\\\nvarying float fragBorderRadius, fragWidth;\\\\n\\\\nvec2 paletteCoord(float id) {\\\\n  return vec2(\\\\n    (mod(id, paletteSize.x) + .5) / paletteSize.x,\\\\n    (floor(id / paletteSize.x) + .5) / paletteSize.y\\\\n  );\\\\n}\\\\nvec2 paletteCoord(vec2 id) {\\\\n  return vec2(\\\\n    (id.x + .5) / paletteSize.x,\\\\n    (id.y + .5) / paletteSize.y\\\\n  );\\\\n}\\\\n\\\\nvec4 getColor(vec4 id) {\\\\n  // zero-palette means we deal with direct buffer\\\\n  if (paletteSize.x == 0.) return id / 255.;\\\\n  return texture2D(palette, paletteCoord(id.xy));\\\\n}\\\\n\\\\nvoid main() {\\\\n  // ignore inactive points\\\\n  if (isActive == 0.) return;\\\\n\\\\n  vec2 position = vec2(x, y);\\\\n  vec2 positionFract = vec2(xFract, yFract);\\\\n\\\\n  vec4 color = getColor(colorId);\\\\n  vec4 borderColor = getColor(borderColorId);\\\\n\\\\n  float size = size * maxSize / 255.;\\\\n  float borderSize = borderSize * maxSize / 255.;\\\\n\\\\n  gl_PointSize = (size + borderSize) * pixelRatio;\\\\n\\\\n  vec2 pos = (position + translate) * scale\\\\n      + (positionFract + translateFract) * scale\\\\n      + (position + translate) * scaleFract\\\\n      + (positionFract + translateFract) * scaleFract;\\\\n\\\\n  gl_Position = vec4(pos * 2. - 1., 0, 1);\\\\n\\\\n  fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\\\\n  fragColor = color;\\\\n  fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\\\\n  fragWidth = 1. / gl_PointSize;\\\\n}\\\\n\\\"]),h&&(u.frag=u.frag.replace(\\\"smoothstep\\\",\\\"smoothStep\\\"),c.frag=c.frag.replace(\\\"smoothstep\\\",\\\"smoothStep\\\")),this.drawCircle=t(u)}e.exports=g,g.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},g.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];return e.length&&(t=this).update.apply(t,e),this.draw(),this},g.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];var n=this.groups;if(1===e.length&&Array.isArray(e[0])&&(null===e[0][0]||Array.isArray(e[0][0]))&&(e=e[0]),this.regl._refresh(),e.length)for(var i=0;i<e.length;i++)t.drawItem(i,e[i]);else n.forEach(function(e,r){t.drawItem(r)});return this},g.prototype.drawItem=function(t,e){var r=this.groups,n=r[t];if(\\\"number\\\"==typeof e&&(t=e,n=r[e],e=null),n&&n.count&&n.opacity){n.activation[0]&&this.drawCircle(this.getMarkerDrawOptions(0,n,e));for(var i=[],a=1;a<n.activation.length;a++)n.activation[a]&&(!0===n.activation[a]||n.activation[a].data.length)&&i.push.apply(i,this.getMarkerDrawOptions(a,n,e));i.length&&this.drawMarker(i)}},g.prototype.getMarkerDrawOptions=function(t,e,r){var n=e.range,i=e.tree,a=e.viewport,o=e.activation,l=e.selectionBuffer,c=e.count;this.regl;if(!i)return r?[s({},e,{markerTexture:this.markerTextures[t],activation:o[t],count:r.length,elements:r,offset:0})]:[s({},e,{markerTexture:this.markerTextures[t],activation:o[t],offset:0})];var u=[],f=i.range(n,{lod:!0,px:[(n[2]-n[0])/a.width,(n[3]-n[1])/a.height]});if(r){for(var h=o[t].data,p=new Uint8Array(c),d=0;d<r.length;d++){var g=r[d];p[g]=h?h[g]:1}l.subdata(p)}for(var v=f.length;v--;){var m=f[v],y=m[0],x=m[1];u.push(s({},e,{markerTexture:this.markerTextures[t],activation:r?l:o[t],offset:y,count:x-y}))}return u},g.prototype.update=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){1===e.length&&Array.isArray(e[0])&&(e=e[0]);var n=this.groups,a=this.gl,l=this.regl,h=this.maxSize,v=this.maxColors,m=this.palette;this.groups=n=e.map(function(e,r){var y=n[r];if(void 0===e)return y;null===e?e={positions:null}:\\\"function\\\"==typeof e?e={ondraw:e}:\\\"number\\\"==typeof e[0]&&(e={positions:e}),null===(e=c(e,{positions:\\\"positions data points\\\",snap:\\\"snap cluster lod tree\\\",size:\\\"sizes size radius\\\",borderSize:\\\"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline\\\",color:\\\"colors color fill fill-color fillColor\\\",borderColor:\\\"borderColors borderColor stroke stroke-color strokeColor\\\",marker:\\\"markers marker shape\\\",range:\\\"range dataBox databox\\\",viewport:\\\"viewport viewPort viewBox viewbox\\\",opacity:\\\"opacity alpha transparency\\\",bounds:\\\"bound bounds boundaries limits\\\"})).positions&&(e.positions=[]),y||(n[r]=y={id:r,scale:null,translate:null,scaleFract:null,translateFract:null,activation:[],selectionBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"stream\\\",type:\\\"uint8\\\"}),sizeBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"dynamic\\\",type:\\\"uint8\\\"}),colorBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"dynamic\\\",type:\\\"uint8\\\"}),positionBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"dynamic\\\",type:\\\"float\\\"}),positionFractBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"dynamic\\\",type:\\\"float\\\"})},e=s({},g.defaults,e)),!e.positions||\\\"marker\\\"in e||(e.marker=y.marker,delete y.marker),!e.marker||\\\"positions\\\"in e||(e.positions=y.positions,delete y.positions);var x=0,b=0;if(u(y,e,[{snap:!0,size:function(t,e){return null==t&&(t=g.defaults.size),x+=t&&t.length?1:0,t},borderSize:function(t,e){return null==t&&(t=g.defaults.borderSize),x+=t&&t.length?1:0,t},opacity:parseFloat,color:function(e,r){return null==e&&(e=g.defaults.color),e=t.updateColor(e),b++,e},borderColor:function(e,r){return null==e&&(e=g.defaults.borderColor),e=t.updateColor(e),b++,e},bounds:function(t,e,r){return\\\"range\\\"in r||(r.range=null),t},positions:function(t,e,r){var n=e.snap,a=e.positionBuffer,s=e.positionFractBuffer,c=e.selectionBuffer;if(t.x||t.y)return t.x.length?e.xAttr={buffer:l.buffer(t.x),offset:0,stride:4,count:t.x.length}:e.xAttr={buffer:t.x.buffer,offset:4*t.x.offset||0,stride:4*(t.x.stride||1),count:t.x.count},t.y.length?e.yAttr={buffer:l.buffer(t.y),offset:0,stride:4,count:t.y.length}:e.yAttr={buffer:t.y.buffer,offset:4*t.y.offset||0,stride:4*(t.y.stride||1),count:t.y.count},e.count=Math.max(e.xAttr.count,e.yAttr.count),t;t=f(t,\\\"float64\\\");var u=e.count=Math.floor(t.length/2),h=e.bounds=u?i(t,2):null;if(r.range||e.range||(delete e.range,r.range=h),r.marker||e.marker||(delete e.marker,r.marker=null),n&&(!0===n||u>n)?e.tree=o(t,{bounds:h}):n&&n.length&&(e.tree=n),e.tree){var d={primitive:\\\"points\\\",usage:\\\"static\\\",data:e.tree,type:\\\"uint32\\\"};e.elements?e.elements(d):e.elements=l.elements(d)}return a({data:p.float(t),usage:\\\"dynamic\\\"}),s({data:p.fract(t),usage:\\\"dynamic\\\"}),c({data:new Uint8Array(u),type:\\\"uint8\\\",usage:\\\"stream\\\"}),t}},{marker:function(e,r,n){var i=r.activation;if(i.forEach(function(t){return t&&t.destroy&&t.destroy()}),i.length=0,e&&\\\"number\\\"!=typeof e[0]){for(var a=[],o=0,s=Math.min(e.length,r.count);o<s;o++){var c=t.addMarker(e[o]);a[c]||(a[c]=new Uint8Array(r.count)),a[c][o]=1}for(var u=0;u<a.length;u++)if(a[u]){var f={data:a[u],type:\\\"uint8\\\",usage:\\\"static\\\"};i[u]?i[u](f):i[u]=l.buffer(f),i[u].data=a[u]}}else{i[t.addMarker(e)]=!0}return e},range:function(t,e,r){var n=e.bounds;if(n)return t||(t=n),e.scale=[1/(t[2]-t[0]),1/(t[3]-t[1])],e.translate=[-t[0],-t[1]],e.scaleFract=p.fract(e.scale),e.translateFract=p.fract(e.translate),t},viewport:function(t){return d(t||[a.drawingBufferWidth,a.drawingBufferHeight])}}]),x){var _=y.count,w=y.size,k=y.borderSize,M=y.sizeBuffer,A=new Uint8Array(2*_);if(w.length||k.length)for(var T=0;T<_;T++)A[2*T]=Math.round(255*(null==w[T]?w:w[T])/h),A[2*T+1]=Math.round(255*(null==k[T]?k:k[T])/h);M({data:A,usage:\\\"dynamic\\\"})}if(b){var S,E=y.count,C=y.color,L=y.borderColor,z=y.colorBuffer;if(t.tooManyColors){if(C.length||L.length){S=new Uint8Array(8*E);for(var O=0;O<E;O++){var I=C[O];S[8*O]=m[4*I],S[8*O+1]=m[4*I+1],S[8*O+2]=m[4*I+2],S[8*O+3]=m[4*I+3];var P=L[O];S[8*O+4]=m[4*P],S[8*O+5]=m[4*P+1],S[8*O+6]=m[4*P+2],S[8*O+7]=m[4*P+3]}}}else if(C.length||L.length){S=new Uint8Array(4*E+2);for(var D=0;D<E;D++)null!=C[D]&&(S[4*D]=C[D]%v,S[4*D+1]=Math.floor(C[D]/v)),null!=L[D]&&(S[4*D+2]=L[D]%v,S[4*D+3]=Math.floor(L[D]/v))}z({data:S||new Uint8Array(0),type:\\\"uint8\\\",usage:\\\"dynamic\\\"})}return y})}},g.prototype.addMarker=function(t){var e,r=this.markerTextures,n=this.regl,i=this.markerCache,a=null==t?0:i.indexOf(t);if(a>=0)return a;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)e=t;else{e=new Uint8Array(t.length);for(var o=0,s=t.length;o<s;o++)e[o]=255*t[o]}var l=Math.floor(Math.sqrt(e.length));return a=r.length,i.push(t),r.push(n.texture({channels:1,data:e,radius:l,mag:\\\"linear\\\",min:\\\"linear\\\"})),a},g.prototype.updateColor=function(t){var e=this.paletteIds,r=this.palette,i=this.maxColors;Array.isArray(t)||(t=[t]);var o=[];if(\\\"number\\\"==typeof t[0]){var s=[];if(Array.isArray(t))for(var l=0;l<t.length;l+=4)s.push(t.slice(l,l+4));else for(var c=0;c<t.length;c+=4)s.push(t.subarray(c,c+4));t=s}for(var u=0;u<t.length;u++){var f=t[u];f=n(f,\\\"uint8\\\");var h=a(f,!1);if(null==e[h]){var p=r.length;e[h]=Math.floor(p/4),r[p]=f[0],r[p+1]=f[1],r[p+2]=f[2],r[p+3]=f[3]}o[u]=e[h]}return!this.tooManyColors&&r.length>i*i*4&&(this.tooManyColors=!0),this.updatePalette(r),1===o.length?o[0]:o},g.prototype.updatePalette=function(t){if(!this.tooManyColors){var e=this.maxColors,r=this.paletteTexture,n=Math.ceil(.25*t.length/e);if(n>1)for(var i=.25*(t=t.slice()).length%e;i<n*e;i++)t.push(0,0,0,0);r.height<n&&r.resize(e,n),r.subimage({width:Math.min(.25*t.length,e),height:n,data:t},0,0)}},g.prototype.destroy=function(){return this.groups.forEach(function(t){t.sizeBuffer.destroy(),t.positionBuffer.destroy(),t.positionFractBuffer.destroy(),t.colorBuffer.destroy(),t.activation.forEach(function(t){return t&&t.destroy&&t.destroy()}),t.selectionBuffer.destroy(),t.elements&&t.elements.destroy()}),this.groups.length=0,this.paletteTexture.destroy(),this.markerTextures.forEach(function(t){return t&&t.destroy&&t.destroy()}),this}},{\\\"array-bounds\\\":53,\\\"color-id\\\":106,\\\"color-normalize\\\":108,\\\"flatten-vertex-data\\\":216,glslify:392,\\\"is-iexplorer\\\":402,\\\"object-assign\\\":437,\\\"parse-rect\\\":442,\\\"pick-by-alias\\\":448,\\\"point-cluster\\\":452,\\\"to-float32\\\":515,\\\"update-diff\\\":526}],477:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"regl-scatter2d/scatter\\\"),i=t(\\\"pick-by-alias\\\"),a=t(\\\"array-bounds\\\"),o=t(\\\"raf\\\"),s=t(\\\"array-range\\\"),l=t(\\\"parse-rect\\\"),c=t(\\\"flatten-vertex-data\\\");function u(t,e){if(!(this instanceof u))return new u(t,e);this.traces=[],this.passes={},this.regl=t,this.scatter=n(t),this.canvas=this.scatter.canvas}function f(t,e,r){return(null!=t.id?t.id:t)<<16|(255&e)<<8|255&r}function h(t,e,r){var n,i,a,o,s=t[e],l=t[r];return s.length>2?(s[0],s[2],n=s[1],i=s[3]):s.length?(n=s[0],i=s[1]):(s.x,n=s.y,s.x+s.width,i=s.y+s.height),l.length>2?(a=l[0],o=l[2],l[1],l[3]):l.length?(a=l[0],o=l[1]):(a=l.x,l.y,o=l.x+l.width,l.y+l.height),[a,n,o,i]}function p(t){if(\\\"number\\\"==typeof t)return[t,t,t,t];if(2===t.length)return[t[0],t[1],t[0],t[1]];var e=l(t);return[e.x,e.y,e.x+e.width,e.y+e.height]}e.exports=u,u.prototype.render=function(){for(var t,e=this,r=[],n=arguments.length;n--;)r[n]=arguments[n];return r.length&&(t=this).update.apply(t,r),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?null==this.planned&&(this.planned=o(function(){e.draw(),e.dirty=!0,e.planned=null})):(this.draw(),this.dirty=!0,o(function(){e.dirty=!1})),this)},u.prototype.update=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=0;n<e.length;n++)this.updateItem(n,e[n]);this.traces=this.traces.filter(Boolean);for(var i=[],a=0,o=0;o<this.traces.length;o++){for(var s=this.traces[o],l=this.traces[o].passes,c=0;c<l.length;c++)i.push(this.passes[l[c]]);s.passOffset=a,a+=s.passes.length}return(t=this.scatter).update.apply(t,i),this}},u.prototype.updateItem=function(t,e){var r=this.regl;if(null===e)return this.traces[t]=null,this;if(!e)return this;var n,o=i(e,{data:\\\"data items columns rows values dimensions samples x\\\",snap:\\\"snap cluster\\\",size:\\\"sizes size radius\\\",color:\\\"colors color fill fill-color fillColor\\\",opacity:\\\"opacity alpha transparency opaque\\\",borderSize:\\\"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline\\\",borderColor:\\\"borderColors borderColor bordercolor stroke stroke-color strokeColor\\\",marker:\\\"markers marker shape\\\",range:\\\"range ranges databox dataBox\\\",viewport:\\\"viewport viewBox viewbox\\\",domain:\\\"domain domains area areas\\\",padding:\\\"pad padding paddings pads margin margins\\\",transpose:\\\"transpose transposed\\\",diagonal:\\\"diagonal diag showDiagonal\\\",upper:\\\"upper up top upperhalf upperHalf showupperhalf showUpper showUpperHalf\\\",lower:\\\"lower low bottom lowerhalf lowerHalf showlowerhalf showLowerHalf showLower\\\"}),s=this.traces[t]||(this.traces[t]={id:t,buffer:r.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array}),color:\\\"black\\\",marker:null,size:12,borderColor:\\\"transparent\\\",borderSize:1,viewport:l([r._gl.drawingBufferWidth,r._gl.drawingBufferHeight]),padding:[0,0,0,0],opacity:1,diagonal:!0,upper:!0,lower:!0});if(null!=o.color&&(s.color=o.color),null!=o.size&&(s.size=o.size),null!=o.marker&&(s.marker=o.marker),null!=o.borderColor&&(s.borderColor=o.borderColor),null!=o.borderSize&&(s.borderSize=o.borderSize),null!=o.opacity&&(s.opacity=o.opacity),o.viewport&&(s.viewport=l(o.viewport)),null!=o.diagonal&&(s.diagonal=o.diagonal),null!=o.upper&&(s.upper=o.upper),null!=o.lower&&(s.lower=o.lower),o.data){s.buffer(c(o.data)),s.columns=o.data.length,s.count=o.data[0].length,s.bounds=[];for(var u=0;u<s.columns;u++)s.bounds[u]=a(o.data[u],1)}o.range&&(s.range=o.range,n=s.range&&\\\"number\\\"!=typeof s.range[0]),o.domain&&(s.domain=o.domain);var d=!1;null!=o.padding&&(Array.isArray(o.padding)&&o.padding.length===s.columns&&\\\"number\\\"==typeof o.padding[o.padding.length-1]?(s.padding=o.padding.map(p),d=!0):s.padding=p(o.padding));var g=s.columns,v=s.count,m=s.viewport.width,y=s.viewport.height,x=s.viewport.x,b=s.viewport.y,_=m/g,w=y/g;s.passes=[];for(var k=0;k<g;k++)for(var M=0;M<g;M++)if((s.diagonal||M!==k)&&(s.upper||!(k>M))&&(s.lower||!(k<M))){var A=f(s.id,k,M),T=this.passes[A]||(this.passes[A]={});if(o.data&&(o.transpose?T.positions={x:{buffer:s.buffer,offset:M,count:v,stride:g},y:{buffer:s.buffer,offset:k,count:v,stride:g}}:T.positions={x:{buffer:s.buffer,offset:M*v,count:v},y:{buffer:s.buffer,offset:k*v,count:v}},T.bounds=h(s.bounds,k,M)),o.domain||o.viewport||o.data){var S=d?h(s.padding,k,M):s.padding;if(s.domain){var E=h(s.domain,k,M),C=E[0],L=E[1],z=E[2],O=E[3];T.viewport=[x+C*m+S[0],b+L*y+S[1],x+z*m-S[2],b+O*y-S[3]]}else T.viewport=[x+M*_+_*S[0],b+k*w+w*S[1],x+(M+1)*_-_*S[2],b+(k+1)*w-w*S[3]]}o.color&&(T.color=s.color),o.size&&(T.size=s.size),o.marker&&(T.marker=s.marker),o.borderSize&&(T.borderSize=s.borderSize),o.borderColor&&(T.borderColor=s.borderColor),o.opacity&&(T.opacity=s.opacity),o.range&&(T.range=n?h(s.range,k,M):s.range||T.bounds),s.passes.push(A)}return this},u.prototype.draw=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=[],i=0;i<e.length;i++)if(\\\"number\\\"==typeof e[i]){var a=this.traces[e[i]],o=a.passes,l=a.passOffset;n.push.apply(n,s(l,l+o.length))}else if(e[i].length){var c=e[i],u=this.traces[i],f=u.passes,h=u.passOffset;f=f.map(function(t,e){n[h+e]=c})}(t=this.scatter).draw.apply(t,n)}else this.scatter.draw();return this},u.prototype.destroy=function(){return this.traces.forEach(function(t){t.buffer&&t.buffer.destroy&&t.buffer.destroy()}),this.traces=null,this.passes=null,this.scatter.destroy(),this}},{\\\"array-bounds\\\":53,\\\"array-range\\\":55,\\\"flatten-vertex-data\\\":216,\\\"parse-rect\\\":442,\\\"pick-by-alias\\\":448,raf:467,\\\"regl-scatter2d/scatter\\\":476}],478:[function(t,e,r){var n,i;n=this,i=function(){function t(t,e){this.id=V++,this.type=t,this.data=e}function e(t){return\\\"[\\\"+function t(e){if(0===e.length)return[];var r=e.charAt(0),n=e.charAt(e.length-1);if(1<e.length&&r===n&&('\\\"'===r||\\\"'\\\"===r))return['\\\"'+e.substr(1,e.length-2).replace(/\\\\\\\\/g,\\\"\\\\\\\\\\\\\\\\\\\").replace(/\\\"/g,'\\\\\\\\\\\"')+'\\\"'];if(r=/\\\\[(false|true|null|\\\\d+|'[^']*'|\\\"[^\\\"]*\\\")\\\\]/.exec(e))return t(e.substr(0,r.index)).concat(t(r[1])).concat(t(e.substr(r.index+r[0].length)));if(1===(r=e.split(\\\".\\\")).length)return['\\\"'+e.replace(/\\\\\\\\/g,\\\"\\\\\\\\\\\\\\\\\\\").replace(/\\\"/g,'\\\\\\\\\\\"')+'\\\"'];for(e=[],n=0;n<r.length;++n)e=e.concat(t(r[n]));return e}(t).join(\\\"][\\\")+\\\"]\\\"}function r(t){return\\\"string\\\"==typeof t?t.split():t}function n(t){return\\\"string\\\"==typeof t?document.querySelector(t):t}function i(t){var e,i,a,o,s=t||{};t={};var l=[],c=[],u=\\\"undefined\\\"==typeof window?1:window.devicePixelRatio,f=!1,h=function(t){},p=function(){};if(\\\"string\\\"==typeof s?e=document.querySelector(s):\\\"object\\\"==typeof s&&(\\\"string\\\"==typeof s.nodeName&&\\\"function\\\"==typeof s.appendChild&&\\\"function\\\"==typeof s.getBoundingClientRect?e=s:\\\"function\\\"==typeof s.drawArrays||\\\"function\\\"==typeof s.drawElements?a=(o=s).canvas:(\\\"gl\\\"in s?o=s.gl:\\\"canvas\\\"in s?a=n(s.canvas):\\\"container\\\"in s&&(i=n(s.container)),\\\"attributes\\\"in s&&(t=s.attributes),\\\"extensions\\\"in s&&(l=r(s.extensions)),\\\"optionalExtensions\\\"in s&&(c=r(s.optionalExtensions)),\\\"onDone\\\"in s&&(h=s.onDone),\\\"profile\\\"in s&&(f=!!s.profile),\\\"pixelRatio\\\"in s&&(u=+s.pixelRatio))),e&&(\\\"canvas\\\"===e.nodeName.toLowerCase()?a=e:i=e),!o){if(!a){if(!(e=function(t,e,r){function n(){var e=window.innerWidth,n=window.innerHeight;t!==document.body&&(e=(n=t.getBoundingClientRect()).right-n.left,n=n.bottom-n.top),i.width=r*e,i.height=r*n,j(i.style,{width:e+\\\"px\\\",height:n+\\\"px\\\"})}var i=document.createElement(\\\"canvas\\\");return j(i.style,{border:0,margin:0,padding:0,top:0,left:0}),t.appendChild(i),t===document.body&&(i.style.position=\\\"absolute\\\",j(t.style,{margin:0,padding:0})),window.addEventListener(\\\"resize\\\",n,!1),n(),{canvas:i,onDestroy:function(){window.removeEventListener(\\\"resize\\\",n),t.removeChild(i)}}}(i||document.body,0,u)))return null;a=e.canvas,p=e.onDestroy}o=function(t,e){function r(r){try{return t.getContext(r,e)}catch(t){return null}}return r(\\\"webgl\\\")||r(\\\"experimental-webgl\\\")||r(\\\"webgl-experimental\\\")}(a,t)}return o?{gl:o,canvas:a,container:i,extensions:l,optionalExtensions:c,pixelRatio:u,profile:f,onDone:h,onDestroy:p}:(p(),h(\\\"webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org\\\"),null)}function a(t,e){for(var r=Array(t),n=0;n<t;++n)r[n]=e(n);return r}function o(t){var e,r;return e=(65535<t)<<4,e|=r=(255<(t>>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function s(){function t(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=r[o(t)>>2]).length?e.pop():new ArrayBuffer(t)}function e(t){r[o(t.byteLength)>>2].push(t)}var r=a(8,function(){return[]});return{alloc:t,free:e,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(t){e(t.buffer)}}}function l(t){return!!t&&\\\"object\\\"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&\\\"number\\\"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||Y(t.data))}function c(t,e,r,n,i,a){for(var o=0;o<e;++o)for(var s=t[o],l=0;l<r;++l)for(var c=s[l],u=0;u<n;++u)i[a++]=c[u]}function u(t){return 0|$[Object.prototype.toString.call(t)]}function f(t,e){for(var r=0;r<e.length;++r)t[r]=e[r]}function h(t,e,r,n,i,a,o){for(var s=0,l=0;l<r;++l)for(var c=0;c<n;++c)t[s++]=e[i*l+a*c+o]}function p(t,e,r,n){function i(e){this.id=c++,this.buffer=t.createBuffer(),this.type=e,this.usage=35044,this.byteLength=0,this.dimension=1,this.dtype=5121,this.persistentData=null,r.profile&&(this.stats={size:0})}function a(e,r,n){e.byteLength=r.byteLength,t.bufferData(e.type,r,n)}function o(t,e,r,n,i,o){if(t.usage=r,Array.isArray(e)){if(t.dtype=n||5126,0<e.length)if(Array.isArray(e[0])){i=tt(e);for(var s=n=1;s<i.length;++s)n*=i[s];t.dimension=n,a(t,e=Q(e,i,t.dtype),r),o?t.persistentData=e:G.freeType(e)}else\\\"number\\\"==typeof e[0]?(t.dimension=i,f(i=G.allocType(t.dtype,e.length),e),a(t,i,r),o?t.persistentData=i:G.freeType(i)):Y(e[0])&&(t.dimension=e[0].length,t.dtype=n||u(e[0])||5126,a(t,e=Q(e,[e.length,e[0].length],t.dtype),r),o?t.persistentData=e:G.freeType(e))}else if(Y(e))t.dtype=n||u(e),t.dimension=i,a(t,e,r),o&&(t.persistentData=new Uint8Array(new Uint8Array(e.buffer)));else if(l(e)){i=e.shape;var c=e.stride,p=(s=e.offset,0),d=0,g=0,v=0;1===i.length?(p=i[0],d=1,g=c[0],v=0):2===i.length&&(p=i[0],d=i[1],g=c[0],v=c[1]),t.dtype=n||u(e.data)||5126,t.dimension=d,h(i=G.allocType(t.dtype,p*d),e.data,p,d,g,v,s),a(t,i,r),o?t.persistentData=i:G.freeType(i)}}function s(r){e.bufferCount--;for(var i=0;i<n.state.length;++i){var a=n.state[i];a.buffer===r&&(t.disableVertexAttribArray(i),a.buffer=null)}t.deleteBuffer(r.buffer),r.buffer=null,delete p[r.id]}var c=0,p={};i.prototype.bind=function(){t.bindBuffer(this.type,this.buffer)},i.prototype.destroy=function(){s(this)};var d=[];return r.profile&&(e.getTotalBufferSize=function(){var t=0;return Object.keys(p).forEach(function(e){t+=p[e].stats.size}),t}),{create:function(n,a,c,d){function g(e){var n=35044,i=null,a=0,s=0,c=1;return Array.isArray(e)||Y(e)||l(e)?i=e:\\\"number\\\"==typeof e?a=0|e:e&&(\\\"data\\\"in e&&(i=e.data),\\\"usage\\\"in e&&(n=K[e.usage]),\\\"type\\\"in e&&(s=J[e.type]),\\\"dimension\\\"in e&&(c=0|e.dimension),\\\"length\\\"in e&&(a=0|e.length)),v.bind(),i?o(v,i,n,s,c,d):(a&&t.bufferData(v.type,a,n),v.dtype=s||5121,v.usage=n,v.dimension=c,v.byteLength=a),r.profile&&(v.stats.size=v.byteLength*et[v.dtype]),g}e.bufferCount++;var v=new i(a);return p[v.id]=v,c||g(n),g._reglType=\\\"buffer\\\",g._buffer=v,g.subdata=function(e,r){var n,i=0|(r||0);if(v.bind(),Y(e))t.bufferSubData(v.type,i,e);else if(Array.isArray(e)){if(0<e.length)if(\\\"number\\\"==typeof e[0]){var a=G.allocType(v.dtype,e.length);f(a,e),t.bufferSubData(v.type,i,a),G.freeType(a)}else(Array.isArray(e[0])||Y(e[0]))&&(n=tt(e),a=Q(e,n,v.dtype),t.bufferSubData(v.type,i,a),G.freeType(a))}else if(l(e)){n=e.shape;var o=e.stride,s=a=0,c=0,p=0;1===n.length?(a=n[0],s=1,c=o[0],p=0):2===n.length&&(a=n[0],s=n[1],c=o[0],p=o[1]),n=Array.isArray(e.data)?v.dtype:u(e.data),h(n=G.allocType(n,a*s),e.data,a,s,c,p,e.offset),t.bufferSubData(v.type,i,n),G.freeType(n)}return g},r.profile&&(g.stats=v.stats),g.destroy=function(){s(v)},g},createStream:function(t,e){var r=d.pop();return r||(r=new i(t)),r.bind(),o(r,e,35040,0,1,!1),r},destroyStream:function(t){d.push(t)},clear:function(){X(p).forEach(s),d.forEach(s)},getBuffer:function(t){return t&&t._buffer instanceof i?t._buffer:null},restore:function(){X(p).forEach(function(e){e.buffer=t.createBuffer(),t.bindBuffer(e.type,e.buffer),t.bufferData(e.type,e.persistentData||e.byteLength,e.usage)})},_initBuffer:o}}function d(t,e,r,n){function i(t){this.id=c++,s[this.id]=this,this.buffer=t,this.primType=4,this.type=this.vertCount=0}function a(n,i,a,o,s,c,u){if(n.buffer.bind(),i){var f=u;u||Y(i)&&(!l(i)||Y(i.data))||(f=e.oes_element_index_uint?5125:5123),r._initBuffer(n.buffer,i,a,f,3)}else t.bufferData(34963,c,a),n.buffer.dtype=f||5121,n.buffer.usage=a,n.buffer.dimension=3,n.buffer.byteLength=c;if(f=u,!u){switch(n.buffer.dtype){case 5121:case 5120:f=5121;break;case 5123:case 5122:f=5123;break;case 5125:case 5124:f=5125}n.buffer.dtype=f}n.type=f,0>(i=s)&&(i=n.buffer.byteLength,5123===f?i>>=1:5125===f&&(i>>=2)),n.vertCount=i,i=o,0>o&&(i=4,1===(o=n.buffer.dimension)&&(i=0),2===o&&(i=1),3===o&&(i=4)),n.primType=i}function o(t){n.elementsCount--,delete s[t.id],t.buffer.destroy(),t.buffer=null}var s={},c=0,u={uint8:5121,uint16:5123};e.oes_element_index_uint&&(u.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var f=[];return{create:function(t,e){function s(t){if(t)if(\\\"number\\\"==typeof t)c(t),f.primType=4,f.vertCount=0|t,f.type=5121;else{var e=null,r=35044,n=-1,i=-1,o=0,h=0;Array.isArray(t)||Y(t)||l(t)?e=t:(\\\"data\\\"in t&&(e=t.data),\\\"usage\\\"in t&&(r=K[t.usage]),\\\"primitive\\\"in t&&(n=rt[t.primitive]),\\\"count\\\"in t&&(i=0|t.count),\\\"type\\\"in t&&(h=u[t.type]),\\\"length\\\"in t?o=0|t.length:(o=i,5123===h||5122===h?o*=2:5125!==h&&5124!==h||(o*=4))),a(f,e,r,n,i,o,h)}else c(),f.primType=4,f.vertCount=0,f.type=5121;return s}var c=r.create(null,34963,!0),f=new i(c._buffer);return n.elementsCount++,s(t),s._reglType=\\\"elements\\\",s._elements=f,s.subdata=function(t,e){return c.subdata(t,e),s},s.destroy=function(){o(f)},s},createStream:function(t){var e=f.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),a(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){f.push(t)},getElements:function(t){return\\\"function\\\"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){X(s).forEach(o)}}}function g(t){for(var e=G.allocType(5123,t.length),r=0;r<t.length;++r)if(isNaN(t[r]))e[r]=65535;else if(1/0===t[r])e[r]=31744;else if(-1/0===t[r])e[r]=64512;else{nt[0]=t[r];var n=(a=it[0])>>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15<i?n+31744:n+(i+15<<10)+a}return e}function v(t){return Array.isArray(t)||Y(t)}function m(t){return\\\"[object \\\"+t+\\\"]\\\"}function y(t){return Array.isArray(t)&&(0===t.length||\\\"number\\\"==typeof t[0])}function x(t){return!(!Array.isArray(t)||0===t.length||!v(t[0]))}function b(t){return Object.prototype.toString.call(t)}function _(t){if(!t)return!1;var e=b(t);return 0<=pt.indexOf(e)||(y(t)||x(t)||l(t))}function w(t,e){36193===t.type?(t.data=g(e),G.freeType(e)):t.data=e}function k(t,e,r,n,i,a){if(t=\\\"undefined\\\"!=typeof gt[t]?gt[t]:st[t]*dt[e],a&&(t*=6),i){for(n=0;1<=r;)n+=t*r*r,r/=2;return n}return t*r*n}function M(t,e,r,n,i,a,o){function s(){this.format=this.internalformat=6408,this.type=5121,this.flipY=this.premultiplyAlpha=this.compressed=!1,this.unpackAlignment=1,this.colorSpace=37444,this.channels=this.height=this.width=0}function c(t,e){t.internalformat=e.internalformat,t.format=e.format,t.type=e.type,t.compressed=e.compressed,t.premultiplyAlpha=e.premultiplyAlpha,t.flipY=e.flipY,t.unpackAlignment=e.unpackAlignment,t.colorSpace=e.colorSpace,t.width=e.width,t.height=e.height,t.channels=e.channels}function u(t,e){if(\\\"object\\\"==typeof e&&e){\\\"premultiplyAlpha\\\"in e&&(t.premultiplyAlpha=e.premultiplyAlpha),\\\"flipY\\\"in e&&(t.flipY=e.flipY),\\\"alignment\\\"in e&&(t.unpackAlignment=e.alignment),\\\"colorSpace\\\"in e&&(t.colorSpace=q[e.colorSpace]),\\\"type\\\"in e&&(t.type=H[e.type]);var r=t.width,n=t.height,i=t.channels,a=!1;\\\"shape\\\"in e?(r=e.shape[0],n=e.shape[1],3===e.shape.length&&(i=e.shape[2],a=!0)):(\\\"radius\\\"in e&&(r=n=e.radius),\\\"width\\\"in e&&(r=e.width),\\\"height\\\"in e&&(n=e.height),\\\"channels\\\"in e&&(i=e.channels,a=!0)),t.width=0|r,t.height=0|n,t.channels=0|i,r=!1,\\\"format\\\"in e&&(r=e.format,n=t.internalformat=W[r],t.format=pt[n],r in H&&!(\\\"type\\\"in e)&&(t.type=H[r]),r in J&&(t.compressed=!0),r=!0),!a&&r?t.channels=st[t.format]:a&&!r&&t.channels!==ot[t.format]&&(t.format=t.internalformat=ot[t.channels])}}function f(e){t.pixelStorei(37440,e.flipY),t.pixelStorei(37441,e.premultiplyAlpha),t.pixelStorei(37443,e.colorSpace),t.pixelStorei(3317,e.unpackAlignment)}function h(){s.call(this),this.yOffset=this.xOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function p(t,e){var r=null;if(_(e)?r=e:e&&(u(t,e),\\\"x\\\"in e&&(t.xOffset=0|e.x),\\\"y\\\"in e&&(t.yOffset=0|e.y),_(e.data)&&(r=e.data)),e.copy){var n=i.viewportWidth,a=i.viewportHeight;t.width=t.width||n-t.xOffset,t.height=t.height||a-t.yOffset,t.needsCopy=!0}else if(r){if(Y(r))t.channels=t.channels||4,t.data=r,\\\"type\\\"in e||5121!==t.type||(t.type=0|$[Object.prototype.toString.call(r)]);else if(y(r)){switch(t.channels=t.channels||4,a=(n=r).length,t.type){case 5121:case 5123:case 5125:case 5126:(a=G.allocType(t.type,a)).set(n),t.data=a;break;case 36193:t.data=g(n)}t.alignment=1,t.needsFree=!0}else if(l(r)){n=r.data,Array.isArray(n)||5121!==t.type||(t.type=0|$[Object.prototype.toString.call(n)]);a=r.shape;var o,s,c,f,h=r.stride;3===a.length?(c=a[2],f=h[2]):f=c=1,o=a[0],s=a[1],a=h[0],h=h[1],t.alignment=1,t.width=o,t.height=s,t.channels=c,t.format=t.internalformat=ot[c],t.needsFree=!0,o=f,r=r.offset,c=t.width,f=t.height,s=t.channels;for(var p=G.allocType(36193===t.type?5126:t.type,c*f*s),d=0,m=0;m<f;++m)for(var k=0;k<c;++k)for(var M=0;M<s;++M)p[d++]=n[a*k+h*m+o*M+r];w(t,p)}else if(b(r)===lt||b(r)===ct)b(r)===lt?t.element=r:t.element=r.canvas,t.width=t.element.width,t.height=t.element.height,t.channels=4;else if(b(r)===ut)t.element=r,t.width=r.width,t.height=r.height,t.channels=4;else if(b(r)===ft)t.element=r,t.width=r.naturalWidth,t.height=r.naturalHeight,t.channels=4;else if(b(r)===ht)t.element=r,t.width=r.videoWidth,t.height=r.videoHeight,t.channels=4;else if(x(r)){for(n=t.width||r[0].length,a=t.height||r.length,h=t.channels,h=v(r[0][0])?h||r[0][0].length:h||1,o=Z.shape(r),c=1,f=0;f<o.length;++f)c*=o[f];c=G.allocType(36193===t.type?5126:t.type,c),Z.flatten(r,o,\\\"\\\",c),w(t,c),t.alignment=1,t.width=n,t.height=a,t.channels=h,t.format=t.internalformat=ot[h],t.needsFree=!0}}else t.width=t.width||1,t.height=t.height||1,t.channels=t.channels||4}function d(e,r,i,a,o){var s=e.element,l=e.data,c=e.internalformat,u=e.format,h=e.type,p=e.width,d=e.height;f(e),s?t.texSubImage2D(r,o,i,a,u,h,s):e.compressed?t.compressedTexSubImage2D(r,o,i,a,c,p,d,l):e.needsCopy?(n(),t.copyTexSubImage2D(r,o,i,a,e.xOffset,e.yOffset,p,d)):t.texSubImage2D(r,o,i,a,p,d,u,h,l)}function m(){return dt.pop()||new h}function M(t){t.needsFree&&G.freeType(t.data),h.call(t),dt.push(t)}function A(){s.call(this),this.genMipmaps=!1,this.mipmapHint=4352,this.mipmask=0,this.images=Array(16)}function T(t,e,r){var n=t.images[0]=m();t.mipmask=1,n.width=t.width=e,n.height=t.height=r,n.channels=t.channels=4}function S(t,e){var r=null;if(_(e))c(r=t.images[0]=m(),t),p(r,e),t.mipmask=1;else if(u(t,e),Array.isArray(e.mipmap))for(var n=e.mipmap,i=0;i<n.length;++i)c(r=t.images[i]=m(),t),r.width>>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<<i;else c(r=t.images[0]=m(),t),p(r,e),t.mipmask=1;c(t,t.images[0])}function E(e,r){for(var i=e.images,a=0;a<i.length&&i[a];++a){var o=i[a],s=r,l=a,c=o.element,u=o.data,h=o.internalformat,p=o.format,d=o.type,g=o.width,v=o.height,m=o.channels;f(o),c?t.texImage2D(s,l,p,p,d,c):o.compressed?t.compressedTexImage2D(s,l,h,g,v,0,u):o.needsCopy?(n(),t.copyTexImage2D(s,l,p,o.xOffset,o.yOffset,g,v,0)):((o=!u)&&(u=G.zero.allocType(d,g*v*m)),t.texImage2D(s,l,p,g,v,0,p,d,u),o&&u&&G.zero.freeType(u))}}function C(){var t=gt.pop()||new A;s.call(t);for(var e=t.mipmask=0;16>e;++e)t.images[e]=null;return t}function L(t){for(var e=t.images,r=0;r<e.length;++r)e[r]&&M(e[r]),e[r]=null;gt.push(t)}function z(){this.magFilter=this.minFilter=9728,this.wrapT=this.wrapS=33071,this.anisotropic=1,this.genMipmaps=!1,this.mipmapHint=4352}function O(t,e){\\\"min\\\"in e&&(t.minFilter=U[e.min],0<=at.indexOf(t.minFilter)&&!(\\\"faces\\\"in e)&&(t.genMipmaps=!0)),\\\"mag\\\"in e&&(t.magFilter=V[e.mag]);var r=t.wrapS,n=t.wrapT;if(\\\"wrap\\\"in e){var i=e.wrap;\\\"string\\\"==typeof i?r=n=N[i]:Array.isArray(i)&&(r=N[i[0]],n=N[i[1]])}else\\\"wrapS\\\"in e&&(r=N[e.wrapS]),\\\"wrapT\\\"in e&&(n=N[e.wrapT]);if(t.wrapS=r,t.wrapT=n,\\\"anisotropic\\\"in e&&(t.anisotropic=e.anisotropic),\\\"mipmap\\\"in e){switch(r=!1,typeof e.mipmap){case\\\"string\\\":t.mipmapHint=F[e.mipmap],r=t.genMipmaps=!0;break;case\\\"boolean\\\":r=t.genMipmaps=e.mipmap;break;case\\\"object\\\":t.genMipmaps=!1,r=!0}!r||\\\"min\\\"in e||(t.minFilter=9984)}}function I(r,n){t.texParameteri(n,10241,r.minFilter),t.texParameteri(n,10240,r.magFilter),t.texParameteri(n,10242,r.wrapS),t.texParameteri(n,10243,r.wrapT),e.ext_texture_filter_anisotropic&&t.texParameteri(n,34046,r.anisotropic),r.genMipmaps&&(t.hint(33170,r.mipmapHint),t.generateMipmap(n))}function P(e){s.call(this),this.mipmask=0,this.internalformat=6408,this.id=vt++,this.refCount=1,this.target=e,this.texture=t.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new z,o.profile&&(this.stats={size:0})}function D(e){t.activeTexture(33984),t.bindTexture(e.target,e.texture)}function R(){var e=xt[0];e?t.bindTexture(e.target,e.texture):t.bindTexture(3553,null)}function B(e){var r=e.texture,n=e.unit,i=e.target;0<=n&&(t.activeTexture(33984+n),t.bindTexture(i,null),xt[n]=null),t.deleteTexture(r),e.texture=null,e.params=null,e.pixels=null,e.refCount=0,delete mt[e.id],a.textureCount--}var F={\\\"don't care\\\":4352,\\\"dont care\\\":4352,nice:4354,fast:4353},N={repeat:10497,clamp:33071,mirror:33648},V={nearest:9728,linear:9729},U=j({mipmap:9987,\\\"nearest mipmap nearest\\\":9984,\\\"linear mipmap nearest\\\":9985,\\\"nearest mipmap linear\\\":9986,\\\"linear mipmap linear\\\":9987},V),q={none:0,browser:37444},H={uint8:5121,rgba4:32819,rgb565:33635,\\\"rgb5 a1\\\":32820},W={alpha:6406,luminance:6409,\\\"luminance alpha\\\":6410,rgb:6407,rgba:6408,rgba4:32854,\\\"rgb5 a1\\\":32855,rgb565:36194},J={};e.ext_srgb&&(W.srgb=35904,W.srgba=35906),e.oes_texture_float&&(H.float32=H.float=5126),e.oes_texture_half_float&&(H.float16=H[\\\"half float\\\"]=36193),e.webgl_depth_texture&&(j(W,{depth:6402,\\\"depth stencil\\\":34041}),j(H,{uint16:5123,uint32:5125,\\\"depth stencil\\\":34042})),e.webgl_compressed_texture_s3tc&&j(J,{\\\"rgb s3tc dxt1\\\":33776,\\\"rgba s3tc dxt1\\\":33777,\\\"rgba s3tc dxt3\\\":33778,\\\"rgba s3tc dxt5\\\":33779}),e.webgl_compressed_texture_atc&&j(J,{\\\"rgb atc\\\":35986,\\\"rgba atc explicit alpha\\\":35987,\\\"rgba atc interpolated alpha\\\":34798}),e.webgl_compressed_texture_pvrtc&&j(J,{\\\"rgb pvrtc 4bppv1\\\":35840,\\\"rgb pvrtc 2bppv1\\\":35841,\\\"rgba pvrtc 4bppv1\\\":35842,\\\"rgba pvrtc 2bppv1\\\":35843}),e.webgl_compressed_texture_etc1&&(J[\\\"rgb etc1\\\"]=36196);var K=Array.prototype.slice.call(t.getParameter(34467));Object.keys(J).forEach(function(t){var e=J[t];0<=K.indexOf(e)&&(W[t]=e)});var Q=Object.keys(W);r.textureFormats=Q;var tt=[];Object.keys(W).forEach(function(t){tt[W[t]]=t});var et=[];Object.keys(H).forEach(function(t){et[H[t]]=t});var rt=[];Object.keys(V).forEach(function(t){rt[V[t]]=t});var nt=[];Object.keys(U).forEach(function(t){nt[U[t]]=t});var it=[];Object.keys(N).forEach(function(t){it[N[t]]=t});var pt=Q.reduce(function(t,e){var r=W[e];return 6409===r||6406===r||6409===r||6410===r||6402===r||34041===r?t[r]=r:32855===r||0<=e.indexOf(\\\"rgba\\\")?t[r]=6408:t[r]=6407,t},{}),dt=[],gt=[],vt=0,mt={},yt=r.maxTextureUnits,xt=Array(yt).map(function(){return null});return j(P.prototype,{bind:function(){this.bindCount+=1;var e=this.unit;if(0>e){for(var r=0;r<yt;++r){var n=xt[r];if(n){if(0<n.bindCount)continue;n.unit=-1}xt[r]=this,e=r;break}o.profile&&a.maxTextureUnits<e+1&&(a.maxTextureUnits=e+1),this.unit=e,t.activeTexture(33984+e),t.bindTexture(this.target,this.texture)}return e},unbind:function(){--this.bindCount},decRef:function(){0>=--this.refCount&&B(this)}}),o.profile&&(a.getTotalTextureSize=function(){var t=0;return Object.keys(mt).forEach(function(e){t+=mt[e].stats.size}),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;z.call(r);var a=C();return\\\"number\\\"==typeof t?T(a,0|t,\\\"number\\\"==typeof e?0|e:0|t):t?(O(r,t),S(a,t)):T(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,c(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,D(i),E(a,3553),I(r,3553),R(),L(a),o.profile&&(i.stats.size=k(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=tt[i.internalformat],n.type=et[i.type],n.mag=rt[r.magFilter],n.min=nt[r.minFilter],n.wrapS=it[r.wrapS],n.wrapT=it[r.wrapT],n}var i=new P(3553);return mt[i.id]=i,a.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=m();return c(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,D(i),d(o,3553,e,r,a),R(),M(o),n},n.resize=function(e,r){var a=0|e,s=0|r||a;if(a===i.width&&s===i.height)return n;n.width=i.width=a,n.height=i.height=s,D(i);for(var l,c=i.channels,u=i.type,f=0;i.mipmask>>f;++f){var h=a>>f,p=s>>f;if(!h||!p)break;l=G.zero.allocType(u,h*p*c),t.texImage2D(3553,f,i.format,h,p,0,i.format,i.type,l),l&&G.zero.freeType(l)}return R(),o.profile&&(i.stats.size=k(i.internalformat,i.type,a,s,!1,!1)),n},n._reglType=\\\"texture2d\\\",n._texture=i,o.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,s,l){function f(t,e,r,n,i,a){var s,l=h.texInfo;for(z.call(l),s=0;6>s;++s)g[s]=C();if(\\\"number\\\"!=typeof t&&t){if(\\\"object\\\"==typeof t)if(e)S(g[0],t),S(g[1],e),S(g[2],r),S(g[3],n),S(g[4],i),S(g[5],a);else if(O(l,t),u(h,t),\\\"faces\\\"in t)for(t=t.faces,s=0;6>s;++s)c(g[s],h),S(g[s],t[s]);else for(s=0;6>s;++s)S(g[s],t)}else for(t=0|t||1,s=0;6>s;++s)T(g[s],t,t);for(c(h,g[0]),h.mipmask=l.genMipmaps?(g[0].width<<1)-1:g[0].mipmask,h.internalformat=g[0].internalformat,f.width=g[0].width,f.height=g[0].height,D(h),s=0;6>s;++s)E(g[s],34069+s);for(I(l,34067),R(),o.profile&&(h.stats.size=k(h.internalformat,h.type,f.width,f.height,l.genMipmaps,!0)),f.format=tt[h.internalformat],f.type=et[h.type],f.mag=rt[l.magFilter],f.min=nt[l.minFilter],f.wrapS=it[l.wrapS],f.wrapT=it[l.wrapT],s=0;6>s;++s)L(g[s]);return f}var h=new P(34067);mt[h.id]=h,a.cubeCount++;var g=Array(6);return f(e,r,n,i,s,l),f.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=m();return c(a,h),a.width=0,a.height=0,p(a,e),a.width=a.width||(h.width>>i)-r,a.height=a.height||(h.height>>i)-n,D(h),d(a,34069+t,r,n,i),R(),M(a),f},f.resize=function(e){if((e|=0)!==h.width){f.width=h.width=e,f.height=h.height=e,D(h);for(var r=0;6>r;++r)for(var n=0;h.mipmask>>n;++n)t.texImage2D(34069+r,n,h.format,e>>n,e>>n,0,h.format,h.type,null);return R(),o.profile&&(h.stats.size=k(h.internalformat,h.type,f.width,f.height,!1,!0)),f}},f._reglType=\\\"textureCube\\\",f._texture=h,o.profile&&(f.stats=h.stats),f.destroy=function(){h.decRef()},f},clear:function(){for(var e=0;e<yt;++e)t.activeTexture(33984+e),t.bindTexture(3553,null),xt[e]=null;X(mt).forEach(B),a.cubeCount=0,a.textureCount=0},getTexture:function(t){return null},restore:function(){X(mt).forEach(function(e){e.texture=t.createTexture(),t.bindTexture(e.target,e.texture);for(var r=0;32>r;++r)if(0!=(e.mipmask&1<<r))if(3553===e.target)t.texImage2D(3553,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);I(e.texInfo,e.target)})}}}function A(t,e,r,n,i,a){function o(t,e,r){this.target=t,this.texture=e,this.renderbuffer=r;var n=t=0;e?(t=e.width,n=e.height):r&&(t=r.width,n=r.height),this.width=t,this.height=n}function s(t){t&&(t.texture&&t.texture._texture.decRef(),t.renderbuffer&&t.renderbuffer._renderbuffer.decRef())}function l(t,e,r){t&&(t.texture?t.texture._texture.refCount+=1:t.renderbuffer._renderbuffer.refCount+=1)}function c(e,r){r&&(r.texture?t.framebufferTexture2D(36160,e,r.target,r.texture._texture.texture,0):t.framebufferRenderbuffer(36160,e,36161,r.renderbuffer._renderbuffer.renderbuffer))}function u(t){var e=3553,r=null,n=null,i=t;return\\\"object\\\"==typeof t&&(i=t.data,\\\"target\\\"in t&&(e=0|t.target)),\\\"texture2d\\\"===(t=i._reglType)?r=i:\\\"textureCube\\\"===t?r=i:\\\"renderbuffer\\\"===t&&(n=i,e=36161),new o(e,r,n)}function f(t,e,r,a,s){return r?((t=n.create2D({width:t,height:e,format:a,type:s}))._texture.refCount=0,new o(3553,t,null)):((t=i.create({width:t,height:e,format:a}))._renderbuffer.refCount=0,new o(36161,null,t))}function h(t){return t&&(t.texture||t.renderbuffer)}function p(t,e,r){t&&(t.texture?t.texture.resize(e,r):t.renderbuffer&&t.renderbuffer.resize(e,r))}function d(){this.id=k++,M[this.id]=this,this.framebuffer=t.createFramebuffer(),this.height=this.width=0,this.colorAttachments=[],this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function g(t){t.colorAttachments.forEach(s),s(t.depthAttachment),s(t.stencilAttachment),s(t.depthStencilAttachment)}function v(e){t.deleteFramebuffer(e.framebuffer),e.framebuffer=null,a.framebufferCount--,delete M[e.id]}function m(e){var n;t.bindFramebuffer(36160,e.framebuffer);var i=e.colorAttachments;for(n=0;n<i.length;++n)c(36064+n,i[n]);for(n=i.length;n<r.maxColorAttachments;++n)t.framebufferTexture2D(36160,36064+n,3553,null,0);t.framebufferTexture2D(36160,33306,3553,null,0),t.framebufferTexture2D(36160,36096,3553,null,0),t.framebufferTexture2D(36160,36128,3553,null,0),c(36096,e.depthAttachment),c(36128,e.stencilAttachment),c(33306,e.depthStencilAttachment),t.checkFramebufferStatus(36160),t.bindFramebuffer(36160,x.next?x.next.framebuffer:null),x.cur=x.next,t.getError()}function y(t,e){function r(t,e){var i,a=0,o=0,s=!0,c=!0;i=null;var p=!0,d=\\\"rgba\\\",v=\\\"uint8\\\",y=1,x=null,w=null,k=null,M=!1;\\\"number\\\"==typeof t?(a=0|t,o=0|e||a):t?(\\\"shape\\\"in t?(a=(o=t.shape)[0],o=o[1]):(\\\"radius\\\"in t&&(a=o=t.radius),\\\"width\\\"in t&&(a=t.width),\\\"height\\\"in t&&(o=t.height)),(\\\"color\\\"in t||\\\"colors\\\"in t)&&(i=t.color||t.colors,Array.isArray(i)),i||(\\\"colorCount\\\"in t&&(y=0|t.colorCount),\\\"colorTexture\\\"in t&&(p=!!t.colorTexture,d=\\\"rgba4\\\"),\\\"colorType\\\"in t&&(v=t.colorType,!p)&&(\\\"half float\\\"===v||\\\"float16\\\"===v?d=\\\"rgba16f\\\":\\\"float\\\"!==v&&\\\"float32\\\"!==v||(d=\\\"rgba32f\\\")),\\\"colorFormat\\\"in t&&(d=t.colorFormat,0<=b.indexOf(d)?p=!0:0<=_.indexOf(d)&&(p=!1))),(\\\"depthTexture\\\"in t||\\\"depthStencilTexture\\\"in t)&&(M=!(!t.depthTexture&&!t.depthStencilTexture)),\\\"depth\\\"in t&&(\\\"boolean\\\"==typeof t.depth?s=t.depth:(x=t.depth,c=!1)),\\\"stencil\\\"in t&&(\\\"boolean\\\"==typeof t.stencil?c=t.stencil:(w=t.stencil,s=!1)),\\\"depthStencil\\\"in t&&(\\\"boolean\\\"==typeof t.depthStencil?s=c=t.depthStencil:(k=t.depthStencil,c=s=!1))):a=o=1;var A=null,T=null,S=null,E=null;if(Array.isArray(i))A=i.map(u);else if(i)A=[u(i)];else for(A=Array(y),i=0;i<y;++i)A[i]=f(a,o,p,d,v);for(a=a||A[0].width,o=o||A[0].height,x?T=u(x):s&&!c&&(T=f(a,o,M,\\\"depth\\\",\\\"uint32\\\")),w?S=u(w):c&&!s&&(S=f(a,o,!1,\\\"stencil\\\",\\\"uint8\\\")),k?E=u(k):!x&&!w&&c&&s&&(E=f(a,o,M,\\\"depth stencil\\\",\\\"depth stencil\\\")),s=null,i=0;i<A.length;++i)l(A[i]),A[i]&&A[i].texture&&(c=yt[A[i].texture._texture.format]*xt[A[i].texture._texture.type],null===s&&(s=c));return l(T),l(S),l(E),g(n),n.width=a,n.height=o,n.colorAttachments=A,n.depthAttachment=T,n.stencilAttachment=S,n.depthStencilAttachment=E,r.color=A.map(h),r.depth=h(T),r.stencil=h(S),r.depthStencil=h(E),r.width=n.width,r.height=n.height,m(n),r}var n=new d;return a.framebufferCount++,r(t,e),j(r,{resize:function(t,e){var i=0|t,a=0|e||i;if(i===n.width&&a===n.height)return r;for(var o=n.colorAttachments,s=0;s<o.length;++s)p(o[s],i,a);return p(n.depthAttachment,i,a),p(n.stencilAttachment,i,a),p(n.depthStencilAttachment,i,a),n.width=r.width=i,n.height=r.height=a,m(n),r},_reglType:\\\"framebuffer\\\",_framebuffer:n,destroy:function(){v(n),g(n)},use:function(t){x.setFBO({framebuffer:r},t)}})}var x={cur:null,next:null,dirty:!1,setFBO:null},b=[\\\"rgba\\\"],_=[\\\"rgba4\\\",\\\"rgb565\\\",\\\"rgb5 a1\\\"];e.ext_srgb&&_.push(\\\"srgba\\\"),e.ext_color_buffer_half_float&&_.push(\\\"rgba16f\\\",\\\"rgb16f\\\"),e.webgl_color_buffer_float&&_.push(\\\"rgba32f\\\");var w=[\\\"uint8\\\"];e.oes_texture_half_float&&w.push(\\\"half float\\\",\\\"float16\\\"),e.oes_texture_float&&w.push(\\\"float\\\",\\\"float32\\\");var k=0,M={};return j(x,{getFramebuffer:function(t){return\\\"function\\\"==typeof t&&\\\"framebuffer\\\"===t._reglType&&(t=t._framebuffer)instanceof d?t:null},create:y,createCube:function(t){function e(t){var i,a={color:null},o=0,s=null;i=\\\"rgba\\\";var l=\\\"uint8\\\",c=1;if(\\\"number\\\"==typeof t?o=0|t:t?(\\\"shape\\\"in t?o=t.shape[0]:(\\\"radius\\\"in t&&(o=0|t.radius),\\\"width\\\"in t?o=0|t.width:\\\"height\\\"in t&&(o=0|t.height)),(\\\"color\\\"in t||\\\"colors\\\"in t)&&(s=t.color||t.colors,Array.isArray(s)),s||(\\\"colorCount\\\"in t&&(c=0|t.colorCount),\\\"colorType\\\"in t&&(l=t.colorType),\\\"colorFormat\\\"in t&&(i=t.colorFormat)),\\\"depth\\\"in t&&(a.depth=t.depth),\\\"stencil\\\"in t&&(a.stencil=t.stencil),\\\"depthStencil\\\"in t&&(a.depthStencil=t.depthStencil)):o=1,s)if(Array.isArray(s))for(t=[],i=0;i<s.length;++i)t[i]=s[i];else t=[s];else for(t=Array(c),s={radius:o,format:i,type:l},i=0;i<c;++i)t[i]=n.createCube(s);for(a.color=Array(t.length),i=0;i<t.length;++i)c=t[i],o=o||c.width,a.color[i]={target:34069,data:t[i]};for(i=0;6>i;++i){for(c=0;c<t.length;++c)a.color[c].target=34069+i;0<i&&(a.depth=r[0].depth,a.stencil=r[0].stencil,a.depthStencil=r[0].depthStencil),r[i]?r[i](a):r[i]=y(a)}return j(e,{width:o,height:o,color:t})}var r=Array(6);return e(t),j(e,{faces:r,resize:function(t){var n=0|t;if(n===e.width)return e;var i=e.color;for(t=0;t<i.length;++t)i[t].resize(n);for(t=0;6>t;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:\\\"framebufferCube\\\",destroy:function(){r.forEach(function(t){t.destroy()})}})},clear:function(){X(M).forEach(v)},restore:function(){X(M).forEach(function(e){e.framebuffer=t.createFramebuffer(),m(e)})}})}function T(){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 S(t,e,r,n){function i(t,e,r,n){this.name=t,this.id=e,this.location=r,this.info=n}function a(t,e){for(var r=0;r<t.length;++r)if(t[r].id===e.id)return void(t[r].location=e.location);t.push(e)}function o(r,n,i){if(!(o=(i=35632===r?c:u)[n])){var a=e.str(n),o=t.createShader(r);t.shaderSource(o,a),t.compileShader(o),i[n]=o}return o}function s(t,e){this.id=p++,this.fragId=t,this.vertId=e,this.program=null,this.uniforms=[],this.attributes=[],n.profile&&(this.stats={uniformsCount:0,attributesCount:0})}function l(r,s){var l,c;l=o(35632,r.fragId),c=o(35633,r.vertId);var u=r.program=t.createProgram();t.attachShader(u,l),t.attachShader(u,c),t.linkProgram(u);var f=t.getProgramParameter(u,35718);n.profile&&(r.stats.uniformsCount=f);var h=r.uniforms;for(l=0;l<f;++l)if(c=t.getActiveUniform(u,l))if(1<c.size)for(var p=0;p<c.size;++p){var d=c.name.replace(\\\"[0]\\\",\\\"[\\\"+p+\\\"]\\\");a(h,new i(d,e.id(d),t.getUniformLocation(u,d),c))}else a(h,new i(c.name,e.id(c.name),t.getUniformLocation(u,c.name),c));for(f=t.getProgramParameter(u,35721),n.profile&&(r.stats.attributesCount=f),h=r.attributes,l=0;l<f;++l)(c=t.getActiveAttrib(u,l))&&a(h,new i(c.name,e.id(c.name),t.getAttribLocation(u,c.name),c))}var c={},u={},f={},h=[],p=0;return n.profile&&(r.getMaxUniformsCount=function(){var t=0;return h.forEach(function(e){e.stats.uniformsCount>t&&(t=e.stats.uniformsCount)}),t},r.getMaxAttributesCount=function(){var t=0;return h.forEach(function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)}),t}),{clear:function(){var e=t.deleteShader.bind(t);X(c).forEach(e),c={},X(u).forEach(e),u={},h.forEach(function(e){t.deleteProgram(e.program)}),h.length=0,f={},r.shaderCount=0},program:function(t,e,n){var i=f[e];i||(i=f[e]={});var a=i[t];return a||(a=new s(e,t),r.shaderCount++,l(a),i[t]=a,h.push(a)),a},restore:function(){c={},u={};for(var t=0;t<h.length;++t)l(h[t])},shader:o,frag:-1,vert:-1}}function E(t,e,r,n,i,a,o){function s(i){var a;a=null===e.next?5121:e.next.colorAttachments[0].texture._texture.type;var o=0,s=0,l=n.framebufferWidth,c=n.framebufferHeight,u=null;return Y(i)?u=i:i&&(o=0|i.x,s=0|i.y,l=0|(i.width||n.framebufferWidth-o),c=0|(i.height||n.framebufferHeight-s),u=i.data||null),r(),i=l*c*4,u||(5121===a?u=new Uint8Array(i):5126===a&&(u=u||new Float32Array(i))),t.pixelStorei(3333,4),t.readPixels(o,s,l,c,6408,a,u),u}return function(t){return t&&\\\"framebuffer\\\"in t?function(t){var r;return e.setFBO({framebuffer:t.framebuffer},function(){r=s(t)}),r}(t):s(t)}}function C(t){return Array.prototype.slice.call(t)}function L(t){return C(t).join(\\\"\\\")}function z(){function t(){var t=[],e=[];return j(function(){t.push.apply(t,C(arguments))},{def:function(){var n=\\\"v\\\"+r++;return e.push(n),0<arguments.length&&(t.push(n,\\\"=\\\"),t.push.apply(t,C(arguments)),t.push(\\\";\\\")),n},toString:function(){return L([0<e.length?\\\"var \\\"+e+\\\";\\\":\\\"\\\",L(t)])}})}function e(){function e(t,e){n(t,e,\\\"=\\\",r.def(t,e),\\\";\\\")}var r=t(),n=t(),i=r.toString,a=n.toString;return j(function(){r.apply(r,C(arguments))},{def:r.def,entry:r,exit:n,save:e,set:function(t,n,i){e(t,n),r(t,n,\\\"=\\\",i,\\\";\\\")},toString:function(){return i()+a()}})}var r=0,n=[],i=[],a=t(),o={};return{global:a,link:function(t){for(var e=0;e<i.length;++e)if(i[e]===t)return n[e];return e=\\\"g\\\"+r++,n.push(e),i.push(t),e},block:t,proc:function(t,r){function n(){var t=\\\"a\\\"+i.length;return i.push(t),t}var i=[];r=r||0;for(var a=0;a<r;++a)n();var s=(a=e()).toString;return o[t]=j(a,{arg:n,toString:function(){return L([\\\"function(\\\",i.join(),\\\"){\\\",s(),\\\"}\\\"])}})},scope:e,cond:function(){var t=L(arguments),r=e(),n=e(),i=r.toString,a=n.toString;return j(r,{then:function(){return r.apply(r,C(arguments)),this},else:function(){return n.apply(n,C(arguments)),this},toString:function(){var e=a();return e&&(e=\\\"else{\\\"+e+\\\"}\\\"),L([\\\"if(\\\",t,\\\"){\\\",i(),\\\"}\\\",e])}})},compile:function(){var t=['\\\"use strict\\\";',a,\\\"return {\\\"];Object.keys(o).forEach(function(e){t.push('\\\"',e,'\\\":',o[e].toString(),\\\",\\\")}),t.push(\\\"}\\\");var e=L(t).replace(/;/g,\\\";\\\\n\\\").replace(/}/g,\\\"}\\\\n\\\").replace(/{/g,\\\"{\\\\n\\\");return Function.apply(null,n.concat(e)).apply(null,i)}}}function O(t){return Array.isArray(t)||Y(t)||l(t)}function I(t){return t.sort(function(t,e){return\\\"viewport\\\"===t?-1:\\\"viewport\\\"===e?1:t<e?-1:1})}function P(t,e,r,n){this.thisDep=t,this.contextDep=e,this.propDep=r,this.append=n}function D(t){return t&&!(t.thisDep||t.contextDep||t.propDep)}function R(t){return new P(!1,!1,!1,t)}function B(t,e){var r=t.type;return 0===r?new P(!0,1<=(r=t.data.length),2<=r,e):4===r?new P((r=t.data).thisDep,r.contextDep,r.propDep,e):new P(3===r,2===r,1===r,e)}function F(t,e,r,n,i,o,s,l,c,u,f,h,p,d,g){function m(t){return t.replace(\\\".\\\",\\\"_\\\")}function y(t,e,r){var n=m(t);nt.push(t),et[n]=tt[n]=!!r,it[n]=e}function x(t,e,r){var n=m(t);nt.push(t),Array.isArray(r)?(tt[n]=r.slice(),et[n]=r.slice()):tt[n]=et[n]=r,at[n]=e}function b(){var t=z(),r=t.link,n=t.global;t.id=lt++,t.batchId=\\\"0\\\";var i=r(ot),a=t.shared={props:\\\"a0\\\"};Object.keys(ot).forEach(function(t){a[t]=n.def(i,\\\".\\\",t)});var o=t.next={},s=t.current={};Object.keys(at).forEach(function(t){Array.isArray(tt[t])&&(o[t]=n.def(a.next,\\\".\\\",t),s[t]=n.def(a.current,\\\".\\\",t))});var l=t.constants={};Object.keys(st).forEach(function(t){l[t]=n.def(JSON.stringify(st[t]))}),t.invoke=function(e,n){switch(n.type){case 0:var i=[\\\"this\\\",a.context,a.props,t.batchId];return e.def(r(n.data),\\\".call(\\\",i.slice(0,Math.max(n.data.length+1,4)),\\\")\\\");case 1:return e.def(a.props,n.data);case 2:return e.def(a.context,n.data);case 3:return e.def(\\\"this\\\",n.data);case 4:return n.data.append(t,e),n.data.ref}},t.attribCache={};var c={};return t.scopeAttrib=function(t){if((t=e.id(t))in c)return c[t];var n=u.scope[t];return n||(n=u.scope[t]=new Z),c[t]=r(n)},t}function _(t,e){var r=t.static,n=t.dynamic;if(\\\"framebuffer\\\"in r){var i=r.framebuffer;return i?(i=l.getFramebuffer(i),R(function(t,e){var r=t.link(i),n=t.shared;return e.set(n.framebuffer,\\\".next\\\",r),n=n.context,e.set(n,\\\".framebufferWidth\\\",r+\\\".width\\\"),e.set(n,\\\".framebufferHeight\\\",r+\\\".height\\\"),r})):R(function(t,e){var r=t.shared;return e.set(r.framebuffer,\\\".next\\\",\\\"null\\\"),r=r.context,e.set(r,\\\".framebufferWidth\\\",r+\\\".drawingBufferWidth\\\"),e.set(r,\\\".framebufferHeight\\\",r+\\\".drawingBufferHeight\\\"),\\\"null\\\"})}if(\\\"framebuffer\\\"in n){var a=n.framebuffer;return B(a,function(t,e){var r=t.invoke(e,a),n=t.shared,i=n.framebuffer;r=e.def(i,\\\".getFramebuffer(\\\",r,\\\")\\\");return e.set(i,\\\".next\\\",r),n=n.context,e.set(n,\\\".framebufferWidth\\\",r+\\\"?\\\"+r+\\\".width:\\\"+n+\\\".drawingBufferWidth\\\"),e.set(n,\\\".framebufferHeight\\\",r+\\\"?\\\"+r+\\\".height:\\\"+n+\\\".drawingBufferHeight\\\"),r})}return null}function w(t){function r(t){if(t in n){var r=e.id(n[t]);return(t=R(function(){return r})).id=r,t}if(t in i){var a=i[t];return B(a,function(t,e){var r=t.invoke(e,a);return e.def(t.shared.strings,\\\".id(\\\",r,\\\")\\\")})}return null}var n=t.static,i=t.dynamic,a=r(\\\"frag\\\"),o=r(\\\"vert\\\"),s=null;return D(a)&&D(o)?(s=f.program(o.id,a.id),t=R(function(t,e){return t.link(s)})):t=new P(a&&a.thisDep||o&&o.thisDep,a&&a.contextDep||o&&o.contextDep,a&&a.propDep||o&&o.propDep,function(t,e){var r,n,i=t.shared.shader;return r=a?a.append(t,e):e.def(i,\\\".\\\",\\\"frag\\\"),n=o?o.append(t,e):e.def(i,\\\".\\\",\\\"vert\\\"),e.def(i+\\\".program(\\\"+n+\\\",\\\"+r+\\\")\\\")}),{frag:a,vert:o,progVar:t,program:s}}function k(t,e){function r(t,e){if(t in n){var r=0|n[t];return R(function(t,n){return e&&(t.OFFSET=r),r})}if(t in i){var o=i[t];return B(o,function(t,r){var n=t.invoke(r,o);return e&&(t.OFFSET=n),n})}return e&&a?R(function(t,e){return t.OFFSET=\\\"0\\\",0}):null}var n=t.static,i=t.dynamic,a=function(){if(\\\"elements\\\"in n){var t=n.elements;O(t)?t=o.getElements(o.create(t,!0)):t&&(t=o.getElements(t));var e=R(function(e,r){if(t){var n=e.link(t);return e.ELEMENTS=n}return e.ELEMENTS=null});return e.value=t,e}if(\\\"elements\\\"in i){var r=i.elements;return B(r,function(t,e){var n=(i=t.shared).isBufferArgs,i=i.elements,a=t.invoke(e,r),o=e.def(\\\"null\\\");n=e.def(n,\\\"(\\\",a,\\\")\\\"),a=t.cond(n).then(o,\\\"=\\\",i,\\\".createStream(\\\",a,\\\");\\\").else(o,\\\"=\\\",i,\\\".getElements(\\\",a,\\\");\\\");return e.entry(a),e.exit(t.cond(n).then(i,\\\".destroyStream(\\\",o,\\\");\\\")),t.ELEMENTS=o})}return null}(),s=r(\\\"offset\\\",!0);return{elements:a,primitive:function(){if(\\\"primitive\\\"in n){var t=n.primitive;return R(function(e,r){return rt[t]})}if(\\\"primitive\\\"in i){var e=i.primitive;return B(e,function(t,r){var n=t.constants.primTypes,i=t.invoke(r,e);return r.def(n,\\\"[\\\",i,\\\"]\\\")})}return a?D(a)?a.value?R(function(t,e){return e.def(t.ELEMENTS,\\\".primType\\\")}):R(function(){return 4}):new P(a.thisDep,a.contextDep,a.propDep,function(t,e){var r=t.ELEMENTS;return e.def(r,\\\"?\\\",r,\\\".primType:\\\",4)}):null}(),count:function(){if(\\\"count\\\"in n){var t=0|n.count;return R(function(){return t})}if(\\\"count\\\"in i){var e=i.count;return B(e,function(t,r){return t.invoke(r,e)})}return a?D(a)?a?s?new P(s.thisDep,s.contextDep,s.propDep,function(t,e){return e.def(t.ELEMENTS,\\\".vertCount-\\\",t.OFFSET)}):R(function(t,e){return e.def(t.ELEMENTS,\\\".vertCount\\\")}):R(function(){return-1}):new P(a.thisDep||s.thisDep,a.contextDep||s.contextDep,a.propDep||s.propDep,function(t,e){var r=t.ELEMENTS;return t.OFFSET?e.def(r,\\\"?\\\",r,\\\".vertCount-\\\",t.OFFSET,\\\":-1\\\"):e.def(r,\\\"?\\\",r,\\\".vertCount:-1\\\")}):null}(),instances:r(\\\"instances\\\",!1),offset:s}}function M(t,r){var n=t.static,a=t.dynamic,o={};return Object.keys(n).forEach(function(t){var r=n[t],a=e.id(t),s=new Z;if(O(r))s.state=1,s.buffer=i.getBuffer(i.create(r,34962,!1,!0)),s.type=0;else if(c=i.getBuffer(r))s.state=1,s.buffer=c,s.type=0;else if(\\\"constant\\\"in r){var l=r.constant;s.buffer=\\\"null\\\",s.state=2,\\\"number\\\"==typeof l?s.x=l:bt.forEach(function(t,e){e<l.length&&(s[t]=l[e])})}else{var c=O(r.buffer)?i.getBuffer(i.create(r.buffer,34962,!1,!0)):i.getBuffer(r.buffer),u=0|r.offset,f=0|r.stride,h=0|r.size,p=!!r.normalized,d=0;\\\"type\\\"in r&&(d=J[r.type]),r=0|r.divisor,s.buffer=c,s.state=1,s.size=h,s.normalized=p,s.type=d||c.dtype,s.offset=u,s.stride=f,s.divisor=r}o[t]=R(function(t,e){var r=t.attribCache;if(a in r)return r[a];var n={isStream:!1};return Object.keys(s).forEach(function(t){n[t]=s[t]}),s.buffer&&(n.buffer=t.link(s.buffer),n.type=n.type||n.buffer+\\\".dtype\\\"),r[a]=n})}),Object.keys(a).forEach(function(t){var e=a[t];o[t]=B(e,function(t,r){function n(t){r(l[t],\\\"=\\\",i,\\\".\\\",t,\\\"|0;\\\")}var i=t.invoke(r,e),a=t.shared,o=a.isBufferArgs,s=a.buffer,l={isStream:r.def(!1)},c=new Z;c.state=1,Object.keys(c).forEach(function(t){l[t]=r.def(\\\"\\\"+c[t])});var u=l.buffer,f=l.type;return r(\\\"if(\\\",o,\\\"(\\\",i,\\\")){\\\",l.isStream,\\\"=true;\\\",u,\\\"=\\\",s,\\\".createStream(\\\",34962,\\\",\\\",i,\\\");\\\",f,\\\"=\\\",u,\\\".dtype;\\\",\\\"}else{\\\",u,\\\"=\\\",s,\\\".getBuffer(\\\",i,\\\");\\\",\\\"if(\\\",u,\\\"){\\\",f,\\\"=\\\",u,\\\".dtype;\\\",'}else if(\\\"constant\\\" in ',i,\\\"){\\\",l.state,\\\"=\\\",2,\\\";\\\",\\\"if(typeof \\\"+i+'.constant === \\\"number\\\"){',l[bt[0]],\\\"=\\\",i,\\\".constant;\\\",bt.slice(1).map(function(t){return l[t]}).join(\\\"=\\\"),\\\"=0;\\\",\\\"}else{\\\",bt.map(function(t,e){return l[t]+\\\"=\\\"+i+\\\".constant.length>\\\"+e+\\\"?\\\"+i+\\\".constant[\\\"+e+\\\"]:0;\\\"}).join(\\\"\\\"),\\\"}}else{\\\",\\\"if(\\\",o,\\\"(\\\",i,\\\".buffer)){\\\",u,\\\"=\\\",s,\\\".createStream(\\\",34962,\\\",\\\",i,\\\".buffer);\\\",\\\"}else{\\\",u,\\\"=\\\",s,\\\".getBuffer(\\\",i,\\\".buffer);\\\",\\\"}\\\",f,'=\\\"type\\\" in ',i,\\\"?\\\",a.glTypes,\\\"[\\\",i,\\\".type]:\\\",u,\\\".dtype;\\\",l.normalized,\\\"=!!\\\",i,\\\".normalized;\\\"),n(\\\"size\\\"),n(\\\"offset\\\"),n(\\\"stride\\\"),n(\\\"divisor\\\"),r(\\\"}}\\\"),r.exit(\\\"if(\\\",l.isStream,\\\"){\\\",s,\\\".destroyStream(\\\",u,\\\");\\\",\\\"}\\\"),l})}),o}function A(t,e,r,n,i){var o=_(t),s=function(t,e,r){function n(t){if(t in i){var r=i[t];t=!0;var n,o,s=0|r.x,l=0|r.y;return\\\"width\\\"in r?n=0|r.width:t=!1,\\\"height\\\"in r?o=0|r.height:t=!1,new P(!t&&e&&e.thisDep,!t&&e&&e.contextDep,!t&&e&&e.propDep,function(t,e){var i=t.shared.context,a=n;\\\"width\\\"in r||(a=e.def(i,\\\".\\\",\\\"framebufferWidth\\\",\\\"-\\\",s));var c=o;return\\\"height\\\"in r||(c=e.def(i,\\\".\\\",\\\"framebufferHeight\\\",\\\"-\\\",l)),[s,l,a,c]})}if(t in a){var c=a[t];return t=B(c,function(t,e){var r=t.invoke(e,c),n=t.shared.context,i=e.def(r,\\\".x|0\\\"),a=e.def(r,\\\".y|0\\\");return[i,a,e.def('\\\"width\\\" in ',r,\\\"?\\\",r,\\\".width|0:\\\",\\\"(\\\",n,\\\".\\\",\\\"framebufferWidth\\\",\\\"-\\\",i,\\\")\\\"),r=e.def('\\\"height\\\" in ',r,\\\"?\\\",r,\\\".height|0:\\\",\\\"(\\\",n,\\\".\\\",\\\"framebufferHeight\\\",\\\"-\\\",a,\\\")\\\")]}),e&&(t.thisDep=t.thisDep||e.thisDep,t.contextDep=t.contextDep||e.contextDep,t.propDep=t.propDep||e.propDep),t}return e?new P(e.thisDep,e.contextDep,e.propDep,function(t,e){var r=t.shared.context;return[0,0,e.def(r,\\\".\\\",\\\"framebufferWidth\\\"),e.def(r,\\\".\\\",\\\"framebufferHeight\\\")]}):null}var i=t.static,a=t.dynamic;if(t=n(\\\"viewport\\\")){var o=t;t=new P(t.thisDep,t.contextDep,t.propDep,function(t,e){var r=o.append(t,e),n=t.shared.context;return e.set(n,\\\".viewportWidth\\\",r[2]),e.set(n,\\\".viewportHeight\\\",r[3]),r})}return{viewport:t,scissor_box:n(\\\"scissor.box\\\")}}(t,o),l=k(t),c=function(t,e){var r=t.static,n=t.dynamic,i={};return nt.forEach(function(t){function e(e,a){if(t in r){var s=e(r[t]);i[o]=R(function(){return s})}else if(t in n){var l=n[t];i[o]=B(l,function(t,e){return a(t,e,t.invoke(e,l))})}}var o=m(t);switch(t){case\\\"cull.enable\\\":case\\\"blend.enable\\\":case\\\"dither\\\":case\\\"stencil.enable\\\":case\\\"depth.enable\\\":case\\\"scissor.enable\\\":case\\\"polygonOffset.enable\\\":case\\\"sample.alpha\\\":case\\\"sample.enable\\\":case\\\"depth.mask\\\":return e(function(t){return t},function(t,e,r){return r});case\\\"depth.func\\\":return e(function(t){return kt[t]},function(t,e,r){return e.def(t.constants.compareFuncs,\\\"[\\\",r,\\\"]\\\")});case\\\"depth.range\\\":return e(function(t){return t},function(t,e,r){return[e.def(\\\"+\\\",r,\\\"[0]\\\"),e=e.def(\\\"+\\\",r,\\\"[1]\\\")]});case\\\"blend.func\\\":return e(function(t){return[wt[\\\"srcRGB\\\"in t?t.srcRGB:t.src],wt[\\\"dstRGB\\\"in t?t.dstRGB:t.dst],wt[\\\"srcAlpha\\\"in t?t.srcAlpha:t.src],wt[\\\"dstAlpha\\\"in t?t.dstAlpha:t.dst]]},function(t,e,r){function n(t,n){return e.def('\\\"',t,n,'\\\" in ',r,\\\"?\\\",r,\\\".\\\",t,n,\\\":\\\",r,\\\".\\\",t)}t=t.constants.blendFuncs;var i=n(\\\"src\\\",\\\"RGB\\\"),a=n(\\\"dst\\\",\\\"RGB\\\"),o=(i=e.def(t,\\\"[\\\",i,\\\"]\\\"),e.def(t,\\\"[\\\",n(\\\"src\\\",\\\"Alpha\\\"),\\\"]\\\"));return[i,a=e.def(t,\\\"[\\\",a,\\\"]\\\"),o,t=e.def(t,\\\"[\\\",n(\\\"dst\\\",\\\"Alpha\\\"),\\\"]\\\")]});case\\\"blend.equation\\\":return e(function(t){return\\\"string\\\"==typeof t?[$[t],$[t]]:\\\"object\\\"==typeof t?[$[t.rgb],$[t.alpha]]:void 0},function(t,e,r){var n=t.constants.blendEquations,i=e.def(),a=e.def();return(t=t.cond(\\\"typeof \\\",r,'===\\\"string\\\"')).then(i,\\\"=\\\",a,\\\"=\\\",n,\\\"[\\\",r,\\\"];\\\"),t.else(i,\\\"=\\\",n,\\\"[\\\",r,\\\".rgb];\\\",a,\\\"=\\\",n,\\\"[\\\",r,\\\".alpha];\\\"),e(t),[i,a]});case\\\"blend.color\\\":return e(function(t){return a(4,function(e){return+t[e]})},function(t,e,r){return a(4,function(t){return e.def(\\\"+\\\",r,\\\"[\\\",t,\\\"]\\\")})});case\\\"stencil.mask\\\":return e(function(t){return 0|t},function(t,e,r){return e.def(r,\\\"|0\\\")});case\\\"stencil.func\\\":return e(function(t){return[kt[t.cmp||\\\"keep\\\"],t.ref||0,\\\"mask\\\"in t?t.mask:-1]},function(t,e,r){return[t=e.def('\\\"cmp\\\" in ',r,\\\"?\\\",t.constants.compareFuncs,\\\"[\\\",r,\\\".cmp]\\\",\\\":\\\",7680),e.def(r,\\\".ref|0\\\"),e=e.def('\\\"mask\\\" in ',r,\\\"?\\\",r,\\\".mask|0:-1\\\")]});case\\\"stencil.opFront\\\":case\\\"stencil.opBack\\\":return e(function(e){return[\\\"stencil.opBack\\\"===t?1029:1028,Mt[e.fail||\\\"keep\\\"],Mt[e.zfail||\\\"keep\\\"],Mt[e.zpass||\\\"keep\\\"]]},function(e,r,n){function i(t){return r.def('\\\"',t,'\\\" in ',n,\\\"?\\\",a,\\\"[\\\",n,\\\".\\\",t,\\\"]:\\\",7680)}var a=e.constants.stencilOps;return[\\\"stencil.opBack\\\"===t?1029:1028,i(\\\"fail\\\"),i(\\\"zfail\\\"),i(\\\"zpass\\\")]});case\\\"polygonOffset.offset\\\":return e(function(t){return[0|t.factor,0|t.units]},function(t,e,r){return[e.def(r,\\\".factor|0\\\"),e=e.def(r,\\\".units|0\\\")]});case\\\"cull.face\\\":return e(function(t){var e=0;return\\\"front\\\"===t?e=1028:\\\"back\\\"===t&&(e=1029),e},function(t,e,r){return e.def(r,'===\\\"front\\\"?',1028,\\\":\\\",1029)});case\\\"lineWidth\\\":return e(function(t){return t},function(t,e,r){return r});case\\\"frontFace\\\":return e(function(t){return At[t]},function(t,e,r){return e.def(r+'===\\\"cw\\\"?2304:2305')});case\\\"colorMask\\\":return e(function(t){return t.map(function(t){return!!t})},function(t,e,r){return a(4,function(t){return\\\"!!\\\"+r+\\\"[\\\"+t+\\\"]\\\"})});case\\\"sample.coverage\\\":return e(function(t){return[\\\"value\\\"in t?t.value:1,!!t.invert]},function(t,e,r){return[e.def('\\\"value\\\" in ',r,\\\"?+\\\",r,\\\".value:1\\\"),e=e.def(\\\"!!\\\",r,\\\".invert\\\")]})}}),i}(t),u=w(t),f=s.viewport;return f&&(c.viewport=f),(s=s[f=m(\\\"scissor.box\\\")])&&(c[f]=s),(o={framebuffer:o,draw:l,shader:u,state:c,dirty:s=0<Object.keys(c).length}).profile=function(t){var e,r=t.static;if(t=t.dynamic,\\\"profile\\\"in r){var n=!!r.profile;(e=R(function(t,e){return n})).enable=n}else if(\\\"profile\\\"in t){var i=t.profile;e=B(i,function(t,e){return t.invoke(e,i)})}return e}(t),o.uniforms=function(t,e){var r=t.static,n=t.dynamic,i={};return Object.keys(r).forEach(function(t){var e,n=r[t];if(\\\"number\\\"==typeof n||\\\"boolean\\\"==typeof n)e=R(function(){return n});else if(\\\"function\\\"==typeof n){var o=n._reglType;\\\"texture2d\\\"===o||\\\"textureCube\\\"===o?e=R(function(t){return t.link(n)}):\\\"framebuffer\\\"!==o&&\\\"framebufferCube\\\"!==o||(e=R(function(t){return t.link(n.color[0])}))}else v(n)&&(e=R(function(t){return t.global.def(\\\"[\\\",a(n.length,function(t){return n[t]}),\\\"]\\\")}));e.value=n,i[t]=e}),Object.keys(n).forEach(function(t){var e=n[t];i[t]=B(e,function(t,r){return t.invoke(r,e)})}),i}(r),o.attributes=M(e),o.context=function(t){var e=t.static,r=t.dynamic,n={};return Object.keys(e).forEach(function(t){var r=e[t];n[t]=R(function(t,e){return\\\"number\\\"==typeof r||\\\"boolean\\\"==typeof r?\\\"\\\"+r:t.link(r)})}),Object.keys(r).forEach(function(t){var e=r[t];n[t]=B(e,function(t,r){return t.invoke(r,e)})}),n}(n),o}function T(t,e,r){var n=t.shared.context,i=t.scope();Object.keys(r).forEach(function(a){e.save(n,\\\".\\\"+a),i(n,\\\".\\\",a,\\\"=\\\",r[a].append(t,e),\\\";\\\")}),e(i)}function S(t,e,r,n){var i,a=(s=t.shared).gl,o=s.framebuffer;Q&&(i=e.def(s.extensions,\\\".webgl_draw_buffers\\\"));var s=(l=t.constants).drawBuffer,l=l.backBuffer;t=r?r.append(t,e):e.def(o,\\\".next\\\"),n||e(\\\"if(\\\",t,\\\"!==\\\",o,\\\".cur){\\\"),e(\\\"if(\\\",t,\\\"){\\\",a,\\\".bindFramebuffer(\\\",36160,\\\",\\\",t,\\\".framebuffer);\\\"),Q&&e(i,\\\".drawBuffersWEBGL(\\\",s,\\\"[\\\",t,\\\".colorAttachments.length]);\\\"),e(\\\"}else{\\\",a,\\\".bindFramebuffer(\\\",36160,\\\",null);\\\"),Q&&e(i,\\\".drawBuffersWEBGL(\\\",l,\\\");\\\"),e(\\\"}\\\",o,\\\".cur=\\\",t,\\\";\\\"),n||e(\\\"}\\\")}function E(t,e,r){var n=t.shared,i=n.gl,o=t.current,s=t.next,l=n.current,c=n.next,u=t.cond(l,\\\".dirty\\\");nt.forEach(function(e){var n,f;if(!((e=m(e))in r.state))if(e in s){n=s[e],f=o[e];var h=a(tt[e].length,function(t){return u.def(n,\\\"[\\\",t,\\\"]\\\")});u(t.cond(h.map(function(t,e){return t+\\\"!==\\\"+f+\\\"[\\\"+e+\\\"]\\\"}).join(\\\"||\\\")).then(i,\\\".\\\",at[e],\\\"(\\\",h,\\\");\\\",h.map(function(t,e){return f+\\\"[\\\"+e+\\\"]=\\\"+t}).join(\\\";\\\"),\\\";\\\"))}else n=u.def(c,\\\".\\\",e),h=t.cond(n,\\\"!==\\\",l,\\\".\\\",e),u(h),e in it?h(t.cond(n).then(i,\\\".enable(\\\",it[e],\\\");\\\").else(i,\\\".disable(\\\",it[e],\\\");\\\"),l,\\\".\\\",e,\\\"=\\\",n,\\\";\\\"):h(i,\\\".\\\",at[e],\\\"(\\\",n,\\\");\\\",l,\\\".\\\",e,\\\"=\\\",n,\\\";\\\")}),0===Object.keys(r.state).length&&u(l,\\\".dirty=false;\\\"),e(u)}function C(t,e,r,n){var i=t.shared,a=t.current,o=i.current,s=i.gl;I(Object.keys(r)).forEach(function(i){var l=r[i];if(!n||n(l)){var c=l.append(t,e);if(it[i]){var u=it[i];D(l)?e(s,c?\\\".enable(\\\":\\\".disable(\\\",u,\\\");\\\"):e(t.cond(c).then(s,\\\".enable(\\\",u,\\\");\\\").else(s,\\\".disable(\\\",u,\\\");\\\")),e(o,\\\".\\\",i,\\\"=\\\",c,\\\";\\\")}else if(v(c)){var f=a[i];e(s,\\\".\\\",at[i],\\\"(\\\",c,\\\");\\\",c.map(function(t,e){return f+\\\"[\\\"+e+\\\"]=\\\"+t}).join(\\\";\\\"),\\\";\\\")}else e(s,\\\".\\\",at[i],\\\"(\\\",c,\\\");\\\",o,\\\".\\\",i,\\\"=\\\",c,\\\";\\\")}})}function L(t,e){K&&(t.instancing=e.def(t.shared.extensions,\\\".angle_instanced_arrays\\\"))}function F(t,e,r,n,i){function a(){return\\\"undefined\\\"==typeof performance?\\\"Date.now()\\\":\\\"performance.now()\\\"}function o(t){t(c=e.def(),\\\"=\\\",a(),\\\";\\\"),\\\"string\\\"==typeof i?t(h,\\\".count+=\\\",i,\\\";\\\"):t(h,\\\".count++;\\\"),d&&(n?t(u=e.def(),\\\"=\\\",g,\\\".getNumPendingQueries();\\\"):t(g,\\\".beginQuery(\\\",h,\\\");\\\"))}function s(t){t(h,\\\".cpuTime+=\\\",a(),\\\"-\\\",c,\\\";\\\"),d&&(n?t(g,\\\".pushScopeStats(\\\",u,\\\",\\\",g,\\\".getNumPendingQueries(),\\\",h,\\\");\\\"):t(g,\\\".endQuery();\\\"))}function l(t){var r=e.def(p,\\\".profile\\\");e(p,\\\".profile=\\\",t,\\\";\\\"),e.exit(p,\\\".profile=\\\",r,\\\";\\\")}var c,u,f=t.shared,h=t.stats,p=f.current,g=f.timer;if(r=r.profile){if(D(r))return void(r.enable?(o(e),s(e.exit),l(\\\"true\\\")):l(\\\"false\\\"));l(r=r.append(t,e))}else r=e.def(p,\\\".profile\\\");o(f=t.block()),e(\\\"if(\\\",r,\\\"){\\\",f,\\\"}\\\"),s(t=t.block()),e.exit(\\\"if(\\\",r,\\\"){\\\",t,\\\"}\\\")}function N(t,e,r,n,i){function a(r,n,i){function a(){e(\\\"if(!\\\",u,\\\".buffer){\\\",l,\\\".enableVertexAttribArray(\\\",c,\\\");}\\\");var r,a=i.type;r=i.size?e.def(i.size,\\\"||\\\",n):n,e(\\\"if(\\\",u,\\\".type!==\\\",a,\\\"||\\\",u,\\\".size!==\\\",r,\\\"||\\\",p.map(function(t){return u+\\\".\\\"+t+\\\"!==\\\"+i[t]}).join(\\\"||\\\"),\\\"){\\\",l,\\\".bindBuffer(\\\",34962,\\\",\\\",f,\\\".buffer);\\\",l,\\\".vertexAttribPointer(\\\",[c,r,a,i.normalized,i.stride,i.offset],\\\");\\\",u,\\\".type=\\\",a,\\\";\\\",u,\\\".size=\\\",r,\\\";\\\",p.map(function(t){return u+\\\".\\\"+t+\\\"=\\\"+i[t]+\\\";\\\"}).join(\\\"\\\"),\\\"}\\\"),K&&(a=i.divisor,e(\\\"if(\\\",u,\\\".divisor!==\\\",a,\\\"){\\\",t.instancing,\\\".vertexAttribDivisorANGLE(\\\",[c,a],\\\");\\\",u,\\\".divisor=\\\",a,\\\";}\\\"))}function s(){e(\\\"if(\\\",u,\\\".buffer){\\\",l,\\\".disableVertexAttribArray(\\\",c,\\\");\\\",\\\"}if(\\\",bt.map(function(t,e){return u+\\\".\\\"+t+\\\"!==\\\"+h[e]}).join(\\\"||\\\"),\\\"){\\\",l,\\\".vertexAttrib4f(\\\",c,\\\",\\\",h,\\\");\\\",bt.map(function(t,e){return u+\\\".\\\"+t+\\\"=\\\"+h[e]+\\\";\\\"}).join(\\\"\\\"),\\\"}\\\")}var l=o.gl,c=e.def(r,\\\".location\\\"),u=e.def(o.attributes,\\\"[\\\",c,\\\"]\\\");r=i.state;var f=i.buffer,h=[i.x,i.y,i.z,i.w],p=[\\\"buffer\\\",\\\"normalized\\\",\\\"offset\\\",\\\"stride\\\"];1===r?a():2===r?s():(e(\\\"if(\\\",r,\\\"===\\\",1,\\\"){\\\"),a(),e(\\\"}else{\\\"),s(),e(\\\"}\\\"))}var o=t.shared;n.forEach(function(n){var o,s=n.name,l=r.attributes[s];if(l){if(!i(l))return;o=l.append(t,e)}else{if(!i(Tt))return;var c=t.scopeAttrib(s);o={},Object.keys(new Z).forEach(function(t){o[t]=e.def(c,\\\".\\\",t)})}a(t.link(n),function(t){switch(t){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}}(n.info.type),o)})}function j(t,r,n,i,o){for(var s,l=t.shared,c=l.gl,u=0;u<i.length;++u){var f,h=(g=i[u]).name,p=g.info.type,d=n.uniforms[h],g=t.link(g)+\\\".location\\\";if(d){if(!o(d))continue;if(D(d)){if(h=d.value,35678===p||35680===p)r(c,\\\".uniform1i(\\\",g,\\\",\\\",(p=t.link(h._texture||h.color[0]._texture))+\\\".bind());\\\"),r.exit(p,\\\".unbind();\\\");else if(35674===p||35675===p||35676===p)d=2,35675===p?d=3:35676===p&&(d=4),r(c,\\\".uniformMatrix\\\",d,\\\"fv(\\\",g,\\\",false,\\\",h=t.global.def(\\\"new Float32Array([\\\"+Array.prototype.slice.call(h)+\\\"])\\\"),\\\");\\\");else{switch(p){case 5126:s=\\\"1f\\\";break;case 35664:s=\\\"2f\\\";break;case 35665:s=\\\"3f\\\";break;case 35666:s=\\\"4f\\\";break;case 35670:case 5124:s=\\\"1i\\\";break;case 35671:case 35667:s=\\\"2i\\\";break;case 35672:case 35668:s=\\\"3i\\\";break;case 35673:s=\\\"4i\\\";break;case 35669:s=\\\"4i\\\"}r(c,\\\".uniform\\\",s,\\\"(\\\",g,\\\",\\\",v(h)?Array.prototype.slice.call(h):h,\\\");\\\")}continue}f=d.append(t,r)}else{if(!o(Tt))continue;f=r.def(l.uniforms,\\\"[\\\",e.id(h),\\\"]\\\")}switch(35678===p?r(\\\"if(\\\",f,\\\"&&\\\",f,'._reglType===\\\"framebuffer\\\"){',f,\\\"=\\\",f,\\\".color[0];\\\",\\\"}\\\"):35680===p&&r(\\\"if(\\\",f,\\\"&&\\\",f,'._reglType===\\\"framebufferCube\\\"){',f,\\\"=\\\",f,\\\".color[0];\\\",\\\"}\\\"),h=1,p){case 35678:case 35680:p=r.def(f,\\\"._texture\\\"),r(c,\\\".uniform1i(\\\",g,\\\",\\\",p,\\\".bind());\\\"),r.exit(p,\\\".unbind();\\\");continue;case 5124:case 35670:s=\\\"1i\\\";break;case 35667:case 35671:s=\\\"2i\\\",h=2;break;case 35668:case 35672:s=\\\"3i\\\",h=3;break;case 35669:case 35673:s=\\\"4i\\\",h=4;break;case 5126:s=\\\"1f\\\";break;case 35664:s=\\\"2f\\\",h=2;break;case 35665:s=\\\"3f\\\",h=3;break;case 35666:s=\\\"4f\\\",h=4;break;case 35674:s=\\\"Matrix2fv\\\";break;case 35675:s=\\\"Matrix3fv\\\";break;case 35676:s=\\\"Matrix4fv\\\"}if(r(c,\\\".uniform\\\",s,\\\"(\\\",g,\\\",\\\"),\\\"M\\\"===s.charAt(0)){g=Math.pow(p-35674+2,2);var m=t.global.def(\\\"new Float32Array(\\\",g,\\\")\\\");r(\\\"false,(Array.isArray(\\\",f,\\\")||\\\",f,\\\" instanceof Float32Array)?\\\",f,\\\":(\\\",a(g,function(t){return m+\\\"[\\\"+t+\\\"]=\\\"+f+\\\"[\\\"+t+\\\"]\\\"}),\\\",\\\",m,\\\")\\\")}else r(1<h?a(h,function(t){return f+\\\"[\\\"+t+\\\"]\\\"}):f);r(\\\");\\\")}}function V(t,e,r,n){function i(i){var a=h[i];return a?a.contextDep&&n.contextDynamic||a.propDep?a.append(t,r):a.append(t,e):e.def(f,\\\".\\\",i)}function a(){function t(){r(l,\\\".drawElementsInstancedANGLE(\\\",[d,v,m,g+\\\"<<((\\\"+m+\\\"-5121)>>1)\\\",s],\\\");\\\")}function e(){r(l,\\\".drawArraysInstancedANGLE(\\\",[d,g,v,s],\\\");\\\")}p?y?t():(r(\\\"if(\\\",p,\\\"){\\\"),t(),r(\\\"}else{\\\"),e(),r(\\\"}\\\")):e()}function o(){function t(){r(u+\\\".drawElements(\\\"+[d,v,m,g+\\\"<<((\\\"+m+\\\"-5121)>>1)\\\"]+\\\");\\\")}function e(){r(u+\\\".drawArrays(\\\"+[d,g,v]+\\\");\\\")}p?y?t():(r(\\\"if(\\\",p,\\\"){\\\"),t(),r(\\\"}else{\\\"),e(),r(\\\"}\\\")):e()}var s,l,c=t.shared,u=c.gl,f=c.draw,h=n.draw,p=function(){var i=h.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,\\\".\\\",\\\"elements\\\"),i&&a(\\\"if(\\\"+i+\\\")\\\"+u+\\\".bindBuffer(34963,\\\"+i+\\\".buffer.buffer);\\\"),i}(),d=i(\\\"primitive\\\"),g=i(\\\"offset\\\"),v=function(){var i=h.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,\\\".\\\",\\\"count\\\"),i}();if(\\\"number\\\"==typeof v){if(0===v)return}else r(\\\"if(\\\",v,\\\"){\\\"),r.exit(\\\"}\\\");K&&(s=i(\\\"instances\\\"),l=t.instancing);var m=p+\\\".type\\\",y=h.elements&&D(h.elements);K&&(\\\"number\\\"!=typeof s||0<=s)?\\\"string\\\"==typeof s?(r(\\\"if(\\\",s,\\\">0){\\\"),a(),r(\\\"}else if(\\\",s,\\\"<0){\\\"),o(),r(\\\"}\\\")):a():o()}function q(t,e,r,n,i){return i=(e=b()).proc(\\\"body\\\",i),K&&(e.instancing=i.def(e.shared.extensions,\\\".angle_instanced_arrays\\\")),t(e,i,r,n),e.compile().body}function H(t,e,r,n){L(t,e),N(t,e,r,n.attributes,function(){return!0}),j(t,e,r,n.uniforms,function(){return!0}),V(t,e,e,r)}function G(t,e,r,n){function i(){return!0}t.batchId=\\\"a1\\\",L(t,e),N(t,e,r,n.attributes,i),j(t,e,r,n.uniforms,i),V(t,e,e,r)}function W(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}L(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var c=t.scope(),u=t.scope();e(c.entry,\\\"for(\\\",s,\\\"=0;\\\",s,\\\"<\\\",\\\"a1\\\",\\\";++\\\",s,\\\"){\\\",l,\\\"=\\\",\\\"a0\\\",\\\"[\\\",s,\\\"];\\\",u,\\\"}\\\",c.exit),r.needsContext&&T(t,u,r.context),r.needsFramebuffer&&S(t,u,r.framebuffer),C(t,u,r.state,i),r.profile&&i(r.profile)&&F(t,u,r,!1,!0),n?(N(t,c,r,n.attributes,a),N(t,u,r,n.attributes,i),j(t,c,r,n.uniforms,a),j(t,u,r,n.uniforms,i),V(t,c,u,r)):(e=t.global.def(\\\"{}\\\"),n=r.shader.progVar.append(t,u),l=u.def(n,\\\".id\\\"),c=u.def(e,\\\"[\\\",l,\\\"]\\\"),u(t.shared.gl,\\\".useProgram(\\\",n,\\\".program);\\\",\\\"if(!\\\",c,\\\"){\\\",c,\\\"=\\\",e,\\\"[\\\",l,\\\"]=\\\",t.link(function(e){return q(G,t,r,e,2)}),\\\"(\\\",n,\\\");}\\\",c,\\\".call(this,a0[\\\",s,\\\"],\\\",s,\\\");\\\"))}function Y(t,r){function n(e){var n=r.shader[e];n&&i.set(a.shader,\\\".\\\"+e,n.append(t,i))}var i=t.proc(\\\"scope\\\",3);t.batchId=\\\"a2\\\";var a=t.shared,o=a.current;T(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),I(Object.keys(r.state)).forEach(function(e){var n=r.state[e].append(t,i);v(n)?n.forEach(function(r,n){i.set(t.next[e],\\\"[\\\"+n+\\\"]\\\",r)}):i.set(a.next,\\\".\\\"+e,n)}),F(t,i,r,!0,!0),[\\\"elements\\\",\\\"offset\\\",\\\"count\\\",\\\"instances\\\",\\\"primitive\\\"].forEach(function(e){var n=r.draw[e];n&&i.set(a.draw,\\\".\\\"+e,\\\"\\\"+n.append(t,i))}),Object.keys(r.uniforms).forEach(function(n){i.set(a.uniforms,\\\"[\\\"+e.id(n)+\\\"]\\\",r.uniforms[n].append(t,i))}),Object.keys(r.attributes).forEach(function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new Z).forEach(function(t){i.set(a,\\\".\\\"+t,n[t])})}),n(\\\"vert\\\"),n(\\\"frag\\\"),0<Object.keys(r.state).length&&(i(o,\\\".dirty=true;\\\"),i.exit(o,\\\".dirty=true;\\\")),i(\\\"a1(\\\",t.shared.context,\\\",a0,\\\",t.batchId,\\\");\\\")}function X(t,e,r){var n=e.static[r];if(n&&function(t){if(\\\"object\\\"==typeof t&&!v(t)){for(var e=Object.keys(t),r=0;r<e.length;++r)if(U.isDynamic(t[e[r]]))return!0;return!1}}(n)){var i=t.global,a=Object.keys(n),o=!1,s=!1,l=!1,c=t.global.def(\\\"{}\\\");a.forEach(function(e){var r=n[e];if(U.isDynamic(r))\\\"function\\\"==typeof r&&(r=n[e]=U.unbox(r)),e=B(r,null),o=o||e.thisDep,l=l||e.propDep,s=s||e.contextDep;else{switch(i(c,\\\".\\\",e,\\\"=\\\"),typeof r){case\\\"number\\\":i(r);break;case\\\"string\\\":i('\\\"',r,'\\\"');break;case\\\"object\\\":Array.isArray(r)&&i(\\\"[\\\",r.join(),\\\"]\\\");break;default:i(t.link(r))}i(\\\";\\\")}}),e.dynamic[r]=new U.DynamicVariable(4,{thisDep:o,contextDep:s,propDep:l,ref:c,append:function(t,e){a.forEach(function(r){var i=n[r];U.isDynamic(i)&&(i=t.invoke(e,i),e(c,\\\".\\\",r,\\\"=\\\",i,\\\";\\\"))})}}),delete e.static[r]}}var Z=u.Record,$={add:32774,subtract:32778,\\\"reverse subtract\\\":32779};r.ext_blend_minmax&&($.min=32775,$.max=32776);var K=r.angle_instanced_arrays,Q=r.webgl_draw_buffers,tt={dirty:!0,profile:g.profile},et={},nt=[],it={},at={};y(\\\"dither\\\",3024),y(\\\"blend.enable\\\",3042),x(\\\"blend.color\\\",\\\"blendColor\\\",[0,0,0,0]),x(\\\"blend.equation\\\",\\\"blendEquationSeparate\\\",[32774,32774]),x(\\\"blend.func\\\",\\\"blendFuncSeparate\\\",[1,0,1,0]),y(\\\"depth.enable\\\",2929,!0),x(\\\"depth.func\\\",\\\"depthFunc\\\",513),x(\\\"depth.range\\\",\\\"depthRange\\\",[0,1]),x(\\\"depth.mask\\\",\\\"depthMask\\\",!0),x(\\\"colorMask\\\",\\\"colorMask\\\",[!0,!0,!0,!0]),y(\\\"cull.enable\\\",2884),x(\\\"cull.face\\\",\\\"cullFace\\\",1029),x(\\\"frontFace\\\",\\\"frontFace\\\",2305),x(\\\"lineWidth\\\",\\\"lineWidth\\\",1),y(\\\"polygonOffset.enable\\\",32823),x(\\\"polygonOffset.offset\\\",\\\"polygonOffset\\\",[0,0]),y(\\\"sample.alpha\\\",32926),y(\\\"sample.enable\\\",32928),x(\\\"sample.coverage\\\",\\\"sampleCoverage\\\",[1,!1]),y(\\\"stencil.enable\\\",2960),x(\\\"stencil.mask\\\",\\\"stencilMask\\\",-1),x(\\\"stencil.func\\\",\\\"stencilFunc\\\",[519,0,-1]),x(\\\"stencil.opFront\\\",\\\"stencilOpSeparate\\\",[1028,7680,7680,7680]),x(\\\"stencil.opBack\\\",\\\"stencilOpSeparate\\\",[1029,7680,7680,7680]),y(\\\"scissor.enable\\\",3089),x(\\\"scissor.box\\\",\\\"scissor\\\",[0,0,t.drawingBufferWidth,t.drawingBufferHeight]),x(\\\"viewport\\\",\\\"viewport\\\",[0,0,t.drawingBufferWidth,t.drawingBufferHeight]);var ot={gl:t,context:p,strings:e,next:et,current:tt,draw:h,elements:o,buffer:i,shader:f,attributes:u.state,uniforms:c,framebuffer:l,extensions:r,timer:d,isBufferArgs:O},st={primTypes:rt,compareFuncs:kt,blendFuncs:wt,blendEquations:$,stencilOps:Mt,glTypes:J,orientationType:At};Q&&(st.backBuffer=[1029],st.drawBuffer=a(n.maxDrawbuffers,function(t){return 0===t?[0]:a(t,function(t){return 36064+t})}));var lt=0;return{next:et,current:tt,procs:function(){var t=b(),e=t.proc(\\\"poll\\\"),r=t.proc(\\\"refresh\\\"),i=t.block();e(i),r(i);var o,s=t.shared,l=s.gl,c=s.next,u=s.current;i(u,\\\".dirty=false;\\\"),S(t,e),S(t,r,null,!0),K&&(o=t.link(K));for(var f=0;f<n.maxAttributes;++f){var h=r.def(s.attributes,\\\"[\\\",f,\\\"]\\\"),p=t.cond(h,\\\".buffer\\\");p.then(l,\\\".enableVertexAttribArray(\\\",f,\\\");\\\",l,\\\".bindBuffer(\\\",34962,\\\",\\\",h,\\\".buffer.buffer);\\\",l,\\\".vertexAttribPointer(\\\",f,\\\",\\\",h,\\\".size,\\\",h,\\\".type,\\\",h,\\\".normalized,\\\",h,\\\".stride,\\\",h,\\\".offset);\\\").else(l,\\\".disableVertexAttribArray(\\\",f,\\\");\\\",l,\\\".vertexAttrib4f(\\\",f,\\\",\\\",h,\\\".x,\\\",h,\\\".y,\\\",h,\\\".z,\\\",h,\\\".w);\\\",h,\\\".buffer=null;\\\"),r(p),K&&r(o,\\\".vertexAttribDivisorANGLE(\\\",f,\\\",\\\",h,\\\".divisor);\\\")}return Object.keys(it).forEach(function(n){var a=it[n],o=i.def(c,\\\".\\\",n),s=t.block();s(\\\"if(\\\",o,\\\"){\\\",l,\\\".enable(\\\",a,\\\")}else{\\\",l,\\\".disable(\\\",a,\\\")}\\\",u,\\\".\\\",n,\\\"=\\\",o,\\\";\\\"),r(s),e(\\\"if(\\\",o,\\\"!==\\\",u,\\\".\\\",n,\\\"){\\\",s,\\\"}\\\")}),Object.keys(at).forEach(function(n){var o,s,f=at[n],h=tt[n],p=t.block();p(l,\\\".\\\",f,\\\"(\\\"),v(h)?(f=h.length,o=t.global.def(c,\\\".\\\",n),s=t.global.def(u,\\\".\\\",n),p(a(f,function(t){return o+\\\"[\\\"+t+\\\"]\\\"}),\\\");\\\",a(f,function(t){return s+\\\"[\\\"+t+\\\"]=\\\"+o+\\\"[\\\"+t+\\\"];\\\"}).join(\\\"\\\")),e(\\\"if(\\\",a(f,function(t){return o+\\\"[\\\"+t+\\\"]!==\\\"+s+\\\"[\\\"+t+\\\"]\\\"}).join(\\\"||\\\"),\\\"){\\\",p,\\\"}\\\")):(o=i.def(c,\\\".\\\",n),s=i.def(u,\\\".\\\",n),p(o,\\\");\\\",u,\\\".\\\",n,\\\"=\\\",o,\\\";\\\"),e(\\\"if(\\\",o,\\\"!==\\\",s,\\\"){\\\",p,\\\"}\\\")),r(p)}),t.compile()}(),compile:function(t,e,r,n,i){var a=b();return a.stats=a.link(i),Object.keys(e.static).forEach(function(t){X(a,e,t)}),_t.forEach(function(e){X(a,t,e)}),r=A(t,e,r,n),function(t,e){var r=t.proc(\\\"draw\\\",1);L(t,r),T(t,r,e.context),S(t,r,e.framebuffer),E(t,r,e),C(t,r,e.state),F(t,r,e,!1,!0);var n=e.shader.progVar.append(t,r);if(r(t.shared.gl,\\\".useProgram(\\\",n,\\\".program);\\\"),e.shader.program)H(t,r,e,e.shader.program);else{var i=t.global.def(\\\"{}\\\"),a=r.def(n,\\\".id\\\"),o=r.def(i,\\\"[\\\",a,\\\"]\\\");r(t.cond(o).then(o,\\\".call(this,a0);\\\").else(o,\\\"=\\\",i,\\\"[\\\",a,\\\"]=\\\",t.link(function(r){return q(H,t,e,r,1)}),\\\"(\\\",n,\\\");\\\",o,\\\".call(this,a0);\\\"))}0<Object.keys(e.state).length&&r(t.shared.current,\\\".dirty=true;\\\")}(a,r),Y(a,r),function(t,e){function r(t){return t.contextDep&&i||t.propDep}var n=t.proc(\\\"batch\\\",2);t.batchId=\\\"0\\\",L(t,n);var i=!1,a=!0;Object.keys(e.context).forEach(function(t){i=i||e.context[t].propDep}),i||(T(t,n,e.context),a=!1);var o=!1;if((s=e.framebuffer)?(s.propDep?i=o=!0:s.contextDep&&i&&(o=!0),o||S(t,n,s)):S(t,n,null),e.state.viewport&&e.state.viewport.propDep&&(i=!0),E(t,n,e),C(t,n,e.state,function(t){return!r(t)}),e.profile&&r(e.profile)||F(t,n,e,!1,\\\"a1\\\"),e.contextDep=i,e.needsContext=a,e.needsFramebuffer=o,(a=e.shader.progVar).contextDep&&i||a.propDep)W(t,n,e,null);else if(a=a.append(t,n),n(t.shared.gl,\\\".useProgram(\\\",a,\\\".program);\\\"),e.shader.program)W(t,n,e,e.shader.program);else{var s=t.global.def(\\\"{}\\\"),l=(o=n.def(a,\\\".id\\\"),n.def(s,\\\"[\\\",o,\\\"]\\\"));n(t.cond(l).then(l,\\\".call(this,a0,a1);\\\").else(l,\\\"=\\\",s,\\\"[\\\",o,\\\"]=\\\",t.link(function(r){return q(W,t,e,r,2)}),\\\"(\\\",a,\\\");\\\",l,\\\".call(this,a0,a1);\\\"))}0<Object.keys(e.state).length&&n(t.shared.current,\\\".dirty=true;\\\")}(a,r),a.compile()}}}function N(t,e){for(var r=0;r<t.length;++r)if(t[r]===e)return r;return-1}var j=function(t,e){for(var r=Object.keys(e),n=0;n<r.length;++n)t[r[n]]=e[r[n]];return t},V=0,U={DynamicVariable:t,define:function(r,n){return new t(r,e(n+\\\"\\\"))},isDynamic:function(e){return\\\"function\\\"==typeof e&&!e._reglType||e instanceof t},unbox:function(e,r){return\\\"function\\\"==typeof e?new t(0,e):e},accessor:e},q={next:\\\"function\\\"==typeof requestAnimationFrame?function(t){return requestAnimationFrame(t)}:function(t){return setTimeout(t,16)},cancel:\\\"function\\\"==typeof cancelAnimationFrame?function(t){return cancelAnimationFrame(t)}:clearTimeout},H=\\\"undefined\\\"!=typeof performance&&performance.now?function(){return performance.now()}:function(){return+new Date},G=s();G.zero=s();var W=function(t,e){var r=1;e.ext_texture_filter_anisotropic&&(r=t.getParameter(34047));var n=1,i=1;e.webgl_draw_buffers&&(n=t.getParameter(34852),i=t.getParameter(36063));var a=!!e.oes_texture_float;if(a){a=t.createTexture(),t.bindTexture(3553,a),t.texImage2D(3553,0,6408,1,1,0,6408,5126,null);var o=t.createFramebuffer();if(t.bindFramebuffer(36160,o),t.framebufferTexture2D(36160,36064,3553,a,0),t.bindTexture(3553,null),36053!==t.checkFramebufferStatus(36160))a=!1;else{t.viewport(0,0,1,1),t.clearColor(1,0,0,1),t.clear(16384);var s=G.allocType(5126,4);t.readPixels(0,0,1,1,6408,5126,s),t.getError()?a=!1:(t.deleteFramebuffer(o),t.deleteTexture(a),a=1===s[0]),G.freeType(s)}}return s=!0,s=t.createTexture(),o=G.allocType(5121,36),t.activeTexture(33984),t.bindTexture(34067,s),t.texImage2D(34069,0,6408,3,3,0,6408,5121,o),G.freeType(o),t.bindTexture(34067,null),t.deleteTexture(s),s=!t.getError(),{colorBits:[t.getParameter(3410),t.getParameter(3411),t.getParameter(3412),t.getParameter(3413)],depthBits:t.getParameter(3414),stencilBits:t.getParameter(3415),subpixelBits:t.getParameter(3408),extensions:Object.keys(e).filter(function(t){return!!e[t]}),maxAnisotropic:r,maxDrawbuffers:n,maxColorAttachments:i,pointSizeDims:t.getParameter(33901),lineWidthDims:t.getParameter(33902),maxViewportDims:t.getParameter(3386),maxCombinedTextureUnits:t.getParameter(35661),maxCubeMapSize:t.getParameter(34076),maxRenderbufferSize:t.getParameter(34024),maxTextureUnits:t.getParameter(34930),maxTextureSize:t.getParameter(3379),maxAttributes:t.getParameter(34921),maxVertexUniforms:t.getParameter(36347),maxVertexTextureUnits:t.getParameter(35660),maxVaryingVectors:t.getParameter(36348),maxFragmentUniforms:t.getParameter(36349),glsl:t.getParameter(35724),renderer:t.getParameter(7937),vendor:t.getParameter(7936),version:t.getParameter(7938),readFloat:a,npotTextureCube:s}},Y=function(t){return t instanceof Uint8Array||t instanceof Uint16Array||t instanceof Uint32Array||t instanceof Int8Array||t instanceof Int16Array||t instanceof Int32Array||t instanceof Float32Array||t instanceof Float64Array||t instanceof Uint8ClampedArray},X=function(t){return Object.keys(t).map(function(e){return t[e]})},Z={shape:function(t){for(var e=[];t.length;t=t[0])e.push(t.length);return e},flatten:function(t,e,r,n){var i=1;if(e.length)for(var a=0;a<e.length;++a)i*=e[a];else i=0;switch(r=n||G.allocType(r,i),e.length){case 0:break;case 1:for(n=e[0],e=0;e<n;++e)r[e]=t[e];break;case 2:for(n=e[0],e=e[1],a=i=0;a<n;++a)for(var o=t[a],s=0;s<e;++s)r[i++]=o[s];break;case 3:c(t,e[0],e[1],e[2],r,0);break;default:!function t(e,r,n,i,a){for(var o=1,s=n+1;s<r.length;++s)o*=r[s];var l=r[n];if(4==r.length-n){var u=r[n+1],f=r[n+2];for(r=r[n+3],s=0;s<l;++s)c(e[s],u,f,r,i,a),a+=o}else for(s=0;s<l;++s)t(e[s],r,n+1,i,a),a+=o}(t,e,0,r,0)}return r}},$={\\\"[object Int8Array]\\\":5120,\\\"[object Int16Array]\\\":5122,\\\"[object Int32Array]\\\":5124,\\\"[object Uint8Array]\\\":5121,\\\"[object Uint8ClampedArray]\\\":5121,\\\"[object Uint16Array]\\\":5123,\\\"[object Uint32Array]\\\":5125,\\\"[object Float32Array]\\\":5126,\\\"[object Float64Array]\\\":5121,\\\"[object ArrayBuffer]\\\":5121},J={int8:5120,int16:5122,int32:5124,uint8:5121,uint16:5123,uint32:5125,float:5126,float32:5126},K={dynamic:35048,stream:35040,static:35044},Q=Z.flatten,tt=Z.shape,et=[];et[5120]=1,et[5122]=2,et[5124]=4,et[5121]=1,et[5123]=2,et[5125]=4,et[5126]=4;var rt={points:0,point:0,lines:1,line:1,triangles:4,triangle:4,\\\"line loop\\\":2,\\\"line strip\\\":3,\\\"triangle strip\\\":5,\\\"triangle fan\\\":6},nt=new Float32Array(1),it=new Uint32Array(nt.buffer),at=[9984,9986,9985,9987],ot=[0,6409,6410,6407,6408],st={};st[6409]=st[6406]=st[6402]=1,st[34041]=st[6410]=2,st[6407]=st[35904]=3,st[6408]=st[35906]=4;var lt=m(\\\"HTMLCanvasElement\\\"),ct=m(\\\"CanvasRenderingContext2D\\\"),ut=m(\\\"ImageBitmap\\\"),ft=m(\\\"HTMLImageElement\\\"),ht=m(\\\"HTMLVideoElement\\\"),pt=Object.keys($).concat([lt,ct,ut,ft,ht]),dt=[];dt[5121]=1,dt[5126]=4,dt[36193]=2,dt[5123]=2,dt[5125]=4;var gt=[];gt[32854]=2,gt[32855]=2,gt[36194]=2,gt[34041]=4,gt[33776]=.5,gt[33777]=.5,gt[33778]=1,gt[33779]=1,gt[35986]=.5,gt[35987]=1,gt[34798]=1,gt[35840]=.5,gt[35841]=.25,gt[35842]=.5,gt[35843]=.25,gt[36196]=.5;var vt=[];vt[32854]=2,vt[32855]=2,vt[36194]=2,vt[33189]=2,vt[36168]=1,vt[34041]=4,vt[35907]=4,vt[34836]=16,vt[34842]=8,vt[34843]=6;var mt=function(t,e,r,n,i){function a(t){this.id=c++,this.refCount=1,this.renderbuffer=t,this.format=32854,this.height=this.width=0,i.profile&&(this.stats={size:0})}function o(e){var r=e.renderbuffer;t.bindRenderbuffer(36161,null),t.deleteRenderbuffer(r),e.renderbuffer=null,e.refCount=0,delete u[e.id],n.renderbufferCount--}var s={rgba4:32854,rgb565:36194,\\\"rgb5 a1\\\":32855,depth:33189,stencil:36168,\\\"depth stencil\\\":34041};e.ext_srgb&&(s.srgba=35907),e.ext_color_buffer_half_float&&(s.rgba16f=34842,s.rgb16f=34843),e.webgl_color_buffer_float&&(s.rgba32f=34836);var l=[];Object.keys(s).forEach(function(t){l[s[t]]=t});var c=0,u={};return a.prototype.decRef=function(){0>=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(u).forEach(function(e){t+=u[e].stats.size}),t}),{create:function(e,r){function o(e,r){var n=0,a=0,u=32854;if(\\\"object\\\"==typeof e&&e?(\\\"shape\\\"in e?(n=0|(a=e.shape)[0],a=0|a[1]):(\\\"radius\\\"in e&&(n=a=0|e.radius),\\\"width\\\"in e&&(n=0|e.width),\\\"height\\\"in e&&(a=0|e.height)),\\\"format\\\"in e&&(u=s[e.format])):\\\"number\\\"==typeof e?(n=0|e,a=\\\"number\\\"==typeof r?0|r:n):e||(n=a=1),n!==c.width||a!==c.height||u!==c.format)return o.width=c.width=n,o.height=c.height=a,c.format=u,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,u,n,a),i.profile&&(c.stats.size=vt[c.format]*c.width*c.height),o.format=l[c.format],o}var c=new a(t.createRenderbuffer());return u[c.id]=c,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===c.width&&a===c.height?o:(o.width=c.width=n,o.height=c.height=a,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,c.format,n,a),i.profile&&(c.stats.size=vt[c.format]*c.width*c.height),o)},o._reglType=\\\"renderbuffer\\\",o._renderbuffer=c,i.profile&&(o.stats=c.stats),o.destroy=function(){c.decRef()},o},clear:function(){X(u).forEach(o)},restore:function(){X(u).forEach(function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)}),t.bindRenderbuffer(36161,null)}}},yt=[];yt[6408]=4,yt[6407]=3;var xt=[];xt[5121]=1,xt[5126]=4,xt[36193]=2;var bt=[\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"w\\\"],_t=\\\"blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset\\\".split(\\\" \\\"),wt={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},kt={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},Mt={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,\\\"increment wrap\\\":34055,\\\"decrement wrap\\\":34056,invert:5386},At={cw:2304,ccw:2305},Tt=new P(!1,!1,!1,function(){});return function(t){function e(){if(0===Z.length)w&&w.update(),Q=null;else{Q=q.next(e),f();for(var t=Z.length-1;0<=t;--t){var r=Z[t];r&&r(z,null,0)}v.flush(),w&&w.update()}}function r(){!Q&&0<Z.length&&(Q=q.next(e))}function n(){Q&&(q.cancel(e),Q=null)}function a(t){t.preventDefault(),n(),$.forEach(function(t){t()})}function o(t){v.getError(),y.restore(),D.restore(),I.restore(),R.restore(),B.restore(),V.restore(),w&&w.restore(),G.procs.refresh(),r(),J.forEach(function(t){t()})}function s(t){function e(t){var e={},r={};return Object.keys(t).forEach(function(n){var i=t[n];U.isDynamic(i)?r[n]=U.unbox(i,n):e[n]=i}),{dynamic:r,static:e}}var r=e(t.context||{}),n=e(t.uniforms||{}),i=e(t.attributes||{}),a=e(function(t){function e(t){if(t in r){var e=r[t];delete r[t],Object.keys(e).forEach(function(n){r[t+\\\".\\\"+n]=e[n]})}}var r=j({},t);return delete r.uniforms,delete r.attributes,delete r.context,\\\"stencil\\\"in r&&r.stencil.op&&(r.stencil.opBack=r.stencil.opFront=r.stencil.op,delete r.stencil.op),e(\\\"blend\\\"),e(\\\"depth\\\"),e(\\\"cull\\\"),e(\\\"stencil\\\"),e(\\\"polygonOffset\\\"),e(\\\"scissor\\\"),e(\\\"sample\\\"),r}(t));t={gpuTime:0,cpuTime:0,count:0};var o=(r=G.compile(a,i,n,r,t)).draw,s=r.batch,l=r.scope,c=[];return j(function(t,e){var r;if(\\\"function\\\"==typeof t)return l.call(this,null,t,0);if(\\\"function\\\"==typeof e)if(\\\"number\\\"==typeof t)for(r=0;r<t;++r)l.call(this,null,e,r);else{if(!Array.isArray(t))return l.call(this,t,e,0);for(r=0;r<t.length;++r)l.call(this,t[r],e,r)}else if(\\\"number\\\"==typeof t){if(0<t)return s.call(this,function(t){for(;c.length<t;)c.push(null);return c}(0|t),0|t)}else{if(!Array.isArray(t))return o.call(this,t);if(t.length)return s.call(this,t,t.length)}},{stats:t})}function l(t,e){var r=0;G.procs.poll();var n=e.color;n&&(v.clearColor(+n[0]||0,+n[1]||0,+n[2]||0,+n[3]||0),r|=16384),\\\"depth\\\"in e&&(v.clearDepth(+e.depth),r|=256),\\\"stencil\\\"in e&&(v.clearStencil(0|e.stencil),r|=1024),v.clear(r)}function c(t){return Z.push(t),r(),{cancel:function(){var e=N(Z,t);Z[e]=function t(){var e=N(Z,t);Z[e]=Z[Z.length-1],--Z.length,0>=Z.length&&n()}}}}function u(){var t=Y.viewport,e=Y.scissor_box;t[0]=t[1]=e[0]=e[1]=0,z.viewportWidth=z.framebufferWidth=z.drawingBufferWidth=t[2]=e[2]=v.drawingBufferWidth,z.viewportHeight=z.framebufferHeight=z.drawingBufferHeight=t[3]=e[3]=v.drawingBufferHeight}function f(){z.tick+=1,z.time=g(),u(),G.procs.poll()}function h(){u(),G.procs.refresh(),w&&w.update()}function g(){return(H()-k)/1e3}if(!(t=i(t)))return null;var v=t.gl,m=v.getContextAttributes();v.isContextLost();var y=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;i<e.extensions.length;++i){var a=e.extensions[i];if(!r(a))return e.onDestroy(),e.onDone('\\\"'+a+'\\\" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),null}return e.optionalExtensions.forEach(r),{extensions:n,restore:function(){Object.keys(n).forEach(function(t){if(!r(t))throw Error(\\\"(regl): error restoring extension \\\"+t)})}}}(v,t);if(!y)return null;var x=function(){var t={\\\"\\\":0},e=[\\\"\\\"];return{id:function(r){var n=t[r];return n||(n=t[r]=e.length,e.push(r),n)},str:function(t){return e[t]}}}(),b={bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},_=y.extensions,w=function(t,e){function r(){this.endQueryIndex=this.startQueryIndex=-1,this.sum=0,this.stats=null}function n(t,e,n){var i=s.pop()||new r;i.startQueryIndex=t,i.endQueryIndex=e,i.sum=0,i.stats=n,l.push(i)}var i=e.ext_disjoint_timer_query;if(!i)return null;var a=[],o=[],s=[],l=[],c=[],u=[];return{beginQuery:function(t){var e=a.pop()||i.createQueryEXT();i.beginQueryEXT(35007,e),o.push(e),n(o.length-1,o.length,t)},endQuery:function(){i.endQueryEXT(35007)},pushScopeStats:n,update:function(){var t,e;if(0!==(t=o.length)){u.length=Math.max(u.length,t+1),c.length=Math.max(c.length,t+1),c[0]=0;var r=u[0]=0;for(e=t=0;e<o.length;++e){var n=o[e];i.getQueryObjectEXT(n,34919)?(r+=i.getQueryObjectEXT(n,34918),a.push(n)):o[t++]=n,c[e+1]=r,u[e+1]=t}for(o.length=t,e=t=0;e<l.length;++e){var f=(r=l[e]).startQueryIndex;n=r.endQueryIndex,r.sum+=c[n]-c[f],f=u[f],(n=u[n])===f?(r.stats.gpuTime+=r.sum/1e6,s.push(r)):(r.startQueryIndex=f,r.endQueryIndex=n,l[t++]=r)}l.length=t}},getNumPendingQueries:function(){return o.length},clear:function(){a.push.apply(a,o);for(var t=0;t<a.length;t++)i.deleteQueryEXT(a[t]);o.length=0,a.length=0},restore:function(){o.length=0,a.length=0}}}(0,_),k=H(),C=v.drawingBufferWidth,L=v.drawingBufferHeight,z={tick:0,time:0,viewportWidth:C,viewportHeight:L,framebufferWidth:C,framebufferHeight:L,drawingBufferWidth:C,drawingBufferHeight:L,pixelRatio:t.pixelRatio},O=W(v,_),I=(C=function(t,e,r,n){for(t=r.maxAttributes,e=Array(t),r=0;r<t;++r)e[r]=new T;return{Record:T,scope:{},state:e}}(v,_,O),p(v,b,t,C)),P=d(v,_,I,b),D=S(v,x,b,t),R=M(v,_,O,function(){G.procs.poll()},z,b,t),B=mt(v,_,0,b,t),V=A(v,_,O,R,B,b),G=F(v,x,_,O,I,P,0,V,{},C,D,{elements:null,primitive:4,count:-1,offset:0,instances:-1},z,w,t),Y=(x=E(v,V,G.procs.poll,z),G.next),X=v.canvas,Z=[],$=[],J=[],K=[t.onDestroy],Q=null;X&&(X.addEventListener(\\\"webglcontextlost\\\",a,!1),X.addEventListener(\\\"webglcontextrestored\\\",o,!1));var tt=V.setFBO=s({framebuffer:U.define.call(null,1,\\\"framebuffer\\\")});return h(),m=j(s,{clear:function(t){if(\\\"framebuffer\\\"in t)if(t.framebuffer&&\\\"framebufferCube\\\"===t.framebuffer_reglType)for(var e=0;6>e;++e)tt(j({framebuffer:t.framebuffer.faces[e]},t),l);else tt(t,l);else l(0,t)},prop:U.define.bind(null,1),context:U.define.bind(null,2),this:U.define.bind(null,3),draw:s({}),buffer:function(t){return I.create(t,34962,!1,!1)},elements:function(t){return P.create(t,!1)},texture:R.create2D,cube:R.createCube,renderbuffer:B.create,framebuffer:V.create,framebufferCube:V.createCube,attributes:m,frame:c,on:function(t,e){var r;switch(t){case\\\"frame\\\":return c(e);case\\\"lost\\\":r=$;break;case\\\"restore\\\":r=J;break;case\\\"destroy\\\":r=K}return r.push(e),{cancel:function(){for(var t=0;t<r.length;++t)if(r[t]===e){r[t]=r[r.length-1],r.pop();break}}}},limits:O,hasExtension:function(t){return 0<=O.extensions.indexOf(t.toLowerCase())},read:x,destroy:function(){Z.length=0,n(),X&&(X.removeEventListener(\\\"webglcontextlost\\\",a),X.removeEventListener(\\\"webglcontextrestored\\\",o)),D.clear(),V.clear(),B.clear(),R.clear(),P.clear(),I.clear(),w&&w.clear(),K.forEach(function(t){t()})},_gl:v,_refresh:h,poll:function(){f(),w&&w.update()},now:g,stats:b}),t.onDone(null,m),m}},\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?e.exports=i():n.createREGL=i()},{}],479:[function(t,e,r){\\\"use strict\\\";var n,i=\\\"\\\";e.exports=function(t,e){if(\\\"string\\\"!=typeof t)throw new TypeError(\\\"expected a string\\\");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||\\\"undefined\\\"==typeof n)n=t,i=\\\"\\\";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],480:[function(t,e,r){(function(t){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{}],481:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i],s=(r=a+o)-a,l=o-s;l&&(t[--n]=r,r=l)}for(var c=0,i=n;i<e;++i){var a=t[i],o=r,s=(r=a+o)-a,l=o-s;l&&(t[c++]=l)}return t[c++]=r,t.length=c,t}},{}],482:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"robust-sum\\\"),a=t(\\\"robust-scale\\\"),o=t(\\\"robust-compress\\\"),s=6;function l(t,e){for(var r=new Array(t.length-1),n=1;n<t.length;++n)for(var i=r[n-1]=new Array(t.length-1),a=0,o=0;a<t.length;++a)a!==e&&(i[o++]=t[n][a]);return r}function c(t){if(2===t.length)return[\\\"sum(prod(\\\",t[0][0],\\\",\\\",t[1][1],\\\"),prod(-\\\",t[0][1],\\\",\\\",t[1][0],\\\"))\\\"].join(\\\"\\\");for(var e=[],r=0;r<t.length;++r)e.push([\\\"scale(\\\",c(l(t,r)),\\\",\\\",(n=r,1&n?\\\"-\\\":\\\"\\\"),t[0][r],\\\")\\\"].join(\\\"\\\"));return function t(e){if(1===e.length)return e[0];if(2===e.length)return[\\\"sum(\\\",e[0],\\\",\\\",e[1],\\\")\\\"].join(\\\"\\\");var r=e.length>>1;return[\\\"sum(\\\",t(e.slice(0,r)),\\\",\\\",t(e.slice(r)),\\\")\\\"].join(\\\"\\\")}(e);var n}function u(t){return new Function(\\\"sum\\\",\\\"scale\\\",\\\"prod\\\",\\\"compress\\\",[\\\"function robustDeterminant\\\",t,\\\"(m){return compress(\\\",c(function(t){for(var e=new Array(t),r=0;r<t;++r){e[r]=new Array(t);for(var n=0;n<t;++n)e[r][n]=[\\\"m[\\\",r,\\\"][\\\",n,\\\"]\\\"].join(\\\"\\\")}return e}(t)),\\\")};return robustDeterminant\\\",t].join(\\\"\\\"))(i,a,n,o)}var f=[function(){return[0]},function(t){return[t[0][0]]}];!function(){for(;f.length<s;)f.push(u(f.length));for(var t=[],r=[\\\"function robustDeterminant(m){switch(m.length){\\\"],n=0;n<s;++n)t.push(\\\"det\\\"+n),r.push(\\\"case \\\",n,\\\":return det\\\",n,\\\"(m);\\\");r.push(\\\"}var det=CACHE[m.length];if(!det)det=CACHE[m.length]=gen(m.length);return det(m);}return robustDeterminant\\\"),t.push(\\\"CACHE\\\",\\\"gen\\\",r.join(\\\"\\\"));var i=Function.apply(void 0,t);for(e.exports=i.apply(void 0,f.concat([f,u])),n=0;n<f.length;++n)e.exports[n]=f[n]}()},{\\\"robust-compress\\\":481,\\\"robust-scale\\\":488,\\\"robust-sum\\\":491,\\\"two-product\\\":520}],483:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"robust-sum\\\");e.exports=function(t,e){for(var r=n(t[0],e[0]),a=1;a<t.length;++a)r=i(r,n(t[a],e[a]));return r}},{\\\"robust-sum\\\":491,\\\"two-product\\\":520}],484:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"robust-sum\\\"),a=t(\\\"robust-subtract\\\"),o=t(\\\"robust-scale\\\"),s=6;function l(t,e){for(var r=new Array(t.length-1),n=1;n<t.length;++n)for(var i=r[n-1]=new Array(t.length-1),a=0,o=0;a<t.length;++a)a!==e&&(i[o++]=t[n][a]);return r}function c(t){if(1===t.length)return t[0];if(2===t.length)return[\\\"sum(\\\",t[0],\\\",\\\",t[1],\\\")\\\"].join(\\\"\\\");var e=t.length>>1;return[\\\"sum(\\\",c(t.slice(0,e)),\\\",\\\",c(t.slice(e)),\\\")\\\"].join(\\\"\\\")}function u(t,e){if(\\\"m\\\"===t.charAt(0)){if(\\\"w\\\"===e.charAt(0)){var r=t.split(\\\"[\\\");return[\\\"w\\\",e.substr(1),\\\"m\\\",r[0].substr(1)].join(\\\"\\\")}return[\\\"prod(\\\",t,\\\",\\\",e,\\\")\\\"].join(\\\"\\\")}return u(e,t)}function f(t){if(2===t.length)return[[\\\"diff(\\\",u(t[0][0],t[1][1]),\\\",\\\",u(t[1][0],t[0][1]),\\\")\\\"].join(\\\"\\\")];for(var e=[],r=0;r<t.length;++r)e.push([\\\"scale(\\\",c(f(l(t,r))),\\\",\\\",(n=r,!0&n?\\\"-\\\":\\\"\\\"),t[0][r],\\\")\\\"].join(\\\"\\\"));return e;var n}function h(t,e){for(var r=[],n=0;n<e-2;++n)r.push([\\\"prod(m\\\",t,\\\"[\\\",n,\\\"],m\\\",t,\\\"[\\\",n,\\\"])\\\"].join(\\\"\\\"));return c(r)}function p(t){for(var e=[],r=[],s=function(t){for(var e=new Array(t),r=0;r<t;++r){e[r]=new Array(t);for(var n=0;n<t;++n)e[r][n]=[\\\"m\\\",n,\\\"[\\\",t-r-2,\\\"]\\\"].join(\\\"\\\")}return e}(t),u=0;u<t;++u)s[0][u]=\\\"1\\\",s[t-1][u]=\\\"w\\\"+u;for(u=0;u<t;++u)0==(1&u)?e.push.apply(e,f(l(s,u))):r.push.apply(r,f(l(s,u)));var p=c(e),d=c(r),g=\\\"exactInSphere\\\"+t,v=[];for(u=0;u<t;++u)v.push(\\\"m\\\"+u);var m=[\\\"function \\\",g,\\\"(\\\",v.join(),\\\"){\\\"];for(u=0;u<t;++u){m.push(\\\"var w\\\",u,\\\"=\\\",h(u,t),\\\";\\\");for(var y=0;y<t;++y)y!==u&&m.push(\\\"var w\\\",u,\\\"m\\\",y,\\\"=scale(w\\\",u,\\\",m\\\",y,\\\"[0]);\\\")}return m.push(\\\"var p=\\\",p,\\\",n=\\\",d,\\\",d=diff(p,n);return d[d.length-1];}return \\\",g),new Function(\\\"sum\\\",\\\"diff\\\",\\\"prod\\\",\\\"scale\\\",m.join(\\\"\\\"))(i,a,n,o)}var d=[function(){return 0},function(){return 0},function(){return 0}];!function(){for(;d.length<=s;)d.push(p(d.length));for(var t=[],r=[\\\"slow\\\"],n=0;n<=s;++n)t.push(\\\"a\\\"+n),r.push(\\\"o\\\"+n);var i=[\\\"function testInSphere(\\\",t.join(),\\\"){switch(arguments.length){case 0:case 1:return 0;\\\"];for(n=2;n<=s;++n)i.push(\\\"case \\\",n,\\\":return o\\\",n,\\\"(\\\",t.slice(0,n).join(),\\\");\\\");i.push(\\\"}var s=new Array(arguments.length);for(var i=0;i<arguments.length;++i){s[i]=arguments[i]};return slow(s);}return testInSphere\\\"),r.push(i.join(\\\"\\\"));var a=Function.apply(void 0,r);for(e.exports=a.apply(void 0,[function(t){var e=d[t.length];return e||(e=d[t.length]=p(t.length)),e.apply(void 0,t)}].concat(d)),n=0;n<=s;++n)e.exports[n]=d[n]}()},{\\\"robust-scale\\\":488,\\\"robust-subtract\\\":490,\\\"robust-sum\\\":491,\\\"two-product\\\":520}],485:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"robust-determinant\\\"),i=6;function a(t){for(var e=\\\"robustLinearSolve\\\"+t+\\\"d\\\",r=[\\\"function \\\",e,\\\"(A,b){return [\\\"],i=0;i<t;++i){r.push(\\\"det([\\\");for(var a=0;a<t;++a){a>0&&r.push(\\\",\\\"),r.push(\\\"[\\\");for(var o=0;o<t;++o)o>0&&r.push(\\\",\\\"),o===i?r.push(\\\"+b[\\\",a,\\\"]\\\"):r.push(\\\"+A[\\\",a,\\\"][\\\",o,\\\"]\\\");r.push(\\\"]\\\")}r.push(\\\"]),\\\")}r.push(\\\"det(A)]}return \\\",e);var s=new Function(\\\"det\\\",r.join(\\\"\\\"));return s(t<6?n[t]:n)}var o=[function(){return[0]},function(t,e){return[[e[0]],[t[0][0]]]}];!function(){for(;o.length<i;)o.push(a(o.length));for(var t=[],r=[\\\"function dispatchLinearSolve(A,b){switch(A.length){\\\"],n=0;n<i;++n)t.push(\\\"s\\\"+n),r.push(\\\"case \\\",n,\\\":return s\\\",n,\\\"(A,b);\\\");r.push(\\\"}var s=CACHE[A.length];if(!s)s=CACHE[A.length]=g(A.length);return s(A,b)}return dispatchLinearSolve\\\"),t.push(\\\"CACHE\\\",\\\"g\\\",r.join(\\\"\\\"));var s=Function.apply(void 0,t);for(e.exports=s.apply(void 0,o.concat([o,a])),n=0;n<i;++n)e.exports[n]=o[n]}()},{\\\"robust-determinant\\\":482}],486:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"robust-sum\\\"),a=t(\\\"robust-scale\\\"),o=t(\\\"robust-subtract\\\"),s=5;function l(t,e){for(var r=new Array(t.length-1),n=1;n<t.length;++n)for(var i=r[n-1]=new Array(t.length-1),a=0,o=0;a<t.length;++a)a!==e&&(i[o++]=t[n][a]);return r}function c(t){if(1===t.length)return t[0];if(2===t.length)return[\\\"sum(\\\",t[0],\\\",\\\",t[1],\\\")\\\"].join(\\\"\\\");var e=t.length>>1;return[\\\"sum(\\\",c(t.slice(0,e)),\\\",\\\",c(t.slice(e)),\\\")\\\"].join(\\\"\\\")}function u(t){if(2===t.length)return[[\\\"sum(prod(\\\",t[0][0],\\\",\\\",t[1][1],\\\"),prod(-\\\",t[0][1],\\\",\\\",t[1][0],\\\"))\\\"].join(\\\"\\\")];for(var e=[],r=0;r<t.length;++r)e.push([\\\"scale(\\\",c(u(l(t,r))),\\\",\\\",(n=r,1&n?\\\"-\\\":\\\"\\\"),t[0][r],\\\")\\\"].join(\\\"\\\"));return e;var n}function f(t){for(var e=[],r=[],s=function(t){for(var e=new Array(t),r=0;r<t;++r){e[r]=new Array(t);for(var n=0;n<t;++n)e[r][n]=[\\\"m\\\",n,\\\"[\\\",t-r-1,\\\"]\\\"].join(\\\"\\\")}return e}(t),f=[],h=0;h<t;++h)0==(1&h)?e.push.apply(e,u(l(s,h))):r.push.apply(r,u(l(s,h))),f.push(\\\"m\\\"+h);var p=c(e),d=c(r),g=\\\"orientation\\\"+t+\\\"Exact\\\",v=[\\\"function \\\",g,\\\"(\\\",f.join(),\\\"){var p=\\\",p,\\\",n=\\\",d,\\\",d=sub(p,n);return d[d.length-1];};return \\\",g].join(\\\"\\\");return new Function(\\\"sum\\\",\\\"prod\\\",\\\"scale\\\",\\\"sub\\\",v)(i,n,a,o)}var h=f(3),p=f(4),d=[function(){return 0},function(){return 0},function(t,e){return e[0]-t[0]},function(t,e,r){var n,i=(t[1]-r[1])*(e[0]-r[0]),a=(t[0]-r[0])*(e[1]-r[1]),o=i-a;if(i>0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=3.3306690738754716e-16*n;return o>=s||o<=-s?o:h(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],h=r[2]-n[2],d=a*c,g=o*l,v=o*s,m=i*c,y=i*l,x=a*s,b=u*(d-g)+f*(v-m)+h*(y-x),_=7.771561172376103e-16*((Math.abs(d)+Math.abs(g))*Math.abs(u)+(Math.abs(v)+Math.abs(m))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(h));return b>_||-b>_?b:p(t,e,r,n)}];!function(){for(;d.length<=s;)d.push(f(d.length));for(var t=[],r=[\\\"slow\\\"],n=0;n<=s;++n)t.push(\\\"a\\\"+n),r.push(\\\"o\\\"+n);var i=[\\\"function getOrientation(\\\",t.join(),\\\"){switch(arguments.length){case 0:case 1:return 0;\\\"];for(n=2;n<=s;++n)i.push(\\\"case \\\",n,\\\":return o\\\",n,\\\"(\\\",t.slice(0,n).join(),\\\");\\\");i.push(\\\"}var s=new Array(arguments.length);for(var i=0;i<arguments.length;++i){s[i]=arguments[i]};return slow(s);}return getOrientation\\\"),r.push(i.join(\\\"\\\"));var a=Function.apply(void 0,r);for(e.exports=a.apply(void 0,[function(t){var e=d[t.length];return e||(e=d[t.length]=f(t.length)),e.apply(void 0,t)}].concat(d)),n=0;n<=s;++n)e.exports[n]=d[n]}()},{\\\"robust-scale\\\":488,\\\"robust-subtract\\\":490,\\\"robust-sum\\\":491,\\\"two-product\\\":520}],487:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"robust-sum\\\"),i=t(\\\"robust-scale\\\");e.exports=function(t,e){if(1===t.length)return i(e,t[0]);if(1===e.length)return i(t,e[0]);if(0===t.length||0===e.length)return[0];var r=[0];if(t.length<e.length)for(var a=0;a<t.length;++a)r=n(r,i(e,t[a]));else for(var a=0;a<e.length;++a)r=n(r,i(t,e[a]));return r}},{\\\"robust-scale\\\":488,\\\"robust-sum\\\":491}],488:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"two-sum\\\");e.exports=function(t,e){var r=t.length;if(1===r){var a=n(t[0],e);return a[0]?a:[a[1]]}var o=new Array(2*r),s=[.1,.1],l=[.1,.1],c=0;n(t[0],e,s),s[0]&&(o[c++]=s[0]);for(var u=1;u<r;++u){n(t[u],e,l);var f=s[1];i(f,l[0],s),s[0]&&(o[c++]=s[0]);var h=l[1],p=s[1],d=h+p,g=d-h,v=p-g;s[1]=d,v&&(o[c++]=v)}s[1]&&(o[c++]=s[1]);0===c&&(o[c++]=0);return o.length=c,o}},{\\\"two-product\\\":520,\\\"two-sum\\\":521}],489:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,i){var a=n(t,r,i),o=n(e,r,i);if(a>0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u),h=Math.max(c,u);if(h<s||l<f)return!1}return!0}(t,e,r,i);return!0};var n=t(\\\"robust-orientation\\\")[3]},{\\\"robust-orientation\\\":486}],490:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=0|t.length,n=0|e.length;if(1===r&&1===n)return function(t,e){var r=t+e,n=r-t,i=t-(r-n)+(e-n);if(i)return[i,r];return[r]}(t[0],-e[0]);var i,a,o=new Array(r+n),s=0,l=0,c=0,u=Math.abs,f=t[l],h=u(f),p=-e[c],d=u(p);h<d?(a=f,(l+=1)<r&&(f=t[l],h=u(f))):(a=p,(c+=1)<n&&(p=-e[c],d=u(p)));l<r&&h<d||c>=n?(i=f,(l+=1)<r&&(f=t[l],h=u(f))):(i=p,(c+=1)<n&&(p=-e[c],d=u(p)));var g,v,m=i+a,y=m-i,x=a-y,b=x,_=m;for(;l<r&&c<n;)h<d?(i=f,(l+=1)<r&&(f=t[l],h=u(f))):(i=p,(c+=1)<n&&(p=-e[c],d=u(p))),(x=(a=b)-(y=(m=i+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g;for(;l<r;)(x=(a=b)-(y=(m=(i=f)+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g,(l+=1)<r&&(f=t[l]);for(;c<n;)(x=(a=b)-(y=(m=(i=p)+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g,(c+=1)<n&&(p=-e[c]);b&&(o[s++]=b);_&&(o[s++]=_);s||(o[s++]=0);return o.length=s,o}},{}],491:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=0|t.length,n=0|e.length;if(1===r&&1===n)return function(t,e){var r=t+e,n=r-t,i=t-(r-n)+(e-n);if(i)return[i,r];return[r]}(t[0],e[0]);var i,a,o=new Array(r+n),s=0,l=0,c=0,u=Math.abs,f=t[l],h=u(f),p=e[c],d=u(p);h<d?(a=f,(l+=1)<r&&(f=t[l],h=u(f))):(a=p,(c+=1)<n&&(p=e[c],d=u(p)));l<r&&h<d||c>=n?(i=f,(l+=1)<r&&(f=t[l],h=u(f))):(i=p,(c+=1)<n&&(p=e[c],d=u(p)));var g,v,m=i+a,y=m-i,x=a-y,b=x,_=m;for(;l<r&&c<n;)h<d?(i=f,(l+=1)<r&&(f=t[l],h=u(f))):(i=p,(c+=1)<n&&(p=e[c],d=u(p))),(x=(a=b)-(y=(m=i+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g;for(;l<r;)(x=(a=b)-(y=(m=(i=f)+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g,(l+=1)<r&&(f=t[l]);for(;c<n;)(x=(a=b)-(y=(m=(i=p)+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g,(c+=1)<n&&(p=e[c]);b&&(o[s++]=b);_&&(o[s++]=_);s||(o[s++]=0);return o.length=s,o}},{}],492:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t<0?-1:t>0?1:0}},{}],493:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return i(n(t))};var n=t(\\\"boundary-cells\\\"),i=t(\\\"reduce-simplicial-complex\\\")},{\\\"boundary-cells\\\":83,\\\"reduce-simplicial-complex\\\":472}],494:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,s){r=r||0,\\\"undefined\\\"==typeof s&&(s=function(t){for(var e=t.length,r=0,n=0;n<e;++n)r=0|Math.max(r,t[n].length);return r-1}(t));if(0===t.length||s<1)return{cells:[],vertexIds:[],vertexWeights:[]};var l=function(t,e){for(var r=t.length,n=i.mallocUint8(r),a=0;a<r;++a)n[a]=t[a]<e|0;return n}(e,+r),c=function(t,e){for(var r=t.length,o=e*(e+1)/2*r|0,s=i.mallocUint32(2*o),l=0,c=0;c<r;++c)for(var u=t[c],e=u.length,f=0;f<e;++f)for(var h=0;h<f;++h){var p=u[h],d=u[f];s[l++]=0|Math.min(p,d),s[l++]=0|Math.max(p,d)}a(n(s,[l/2|0,2]));for(var g=2,c=2;c<l;c+=2)s[c-2]===s[c]&&s[c-1]===s[c+1]||(s[g++]=s[c],s[g++]=s[c+1]);return n(s,[g/2|0,2])}(t,s),u=function(t,e,r,a){for(var o=t.data,s=t.shape[0],l=i.mallocDouble(s),c=0,u=0;u<s;++u){var f=o[2*u],h=o[2*u+1];if(r[f]!==r[h]){var p=e[f],d=e[h];o[2*c]=f,o[2*c+1]=h,l[c++]=(d-a)/(d-p)}}return t.shape[0]=c,n(l,[c])}(c,e,l,+r),f=function(t,e){var r=i.mallocInt32(2*e),n=t.shape[0],a=t.data;r[0]=0;for(var o=0,s=0;s<n;++s){var l=a[2*s];if(l!==o){for(r[2*o+1]=s;++o<l;)r[2*o]=s,r[2*o+1]=s;r[2*o]=s}}r[2*o+1]=n;for(;++o<e;)r[2*o]=r[2*o+1]=n;return r}(c,0|e.length),h=o(s)(t,c.data,f,l),p=function(t){for(var e=0|t.shape[0],r=t.data,n=new Array(e),i=0;i<e;++i)n[i]=[r[2*i],r[2*i+1]];return n}(c),d=[].slice.call(u.data,0,u.shape[0]);return i.free(l),i.free(c.data),i.free(u.data),i.free(f),{cells:h,vertexIds:p,vertexWeights:d}};var n=t(\\\"ndarray\\\"),i=t(\\\"typedarray-pool\\\"),a=t(\\\"ndarray-sort\\\"),o=t(\\\"./lib/codegen\\\")},{\\\"./lib/codegen\\\":495,ndarray:433,\\\"ndarray-sort\\\":431,\\\"typedarray-pool\\\":522}],495:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=a[t];e||(e=a[t]=function(t){var e=0,r=new Array(t+1);r[0]=[[]];for(var a=1;a<=t;++a)for(var o=r[a]=i(a),s=0;s<o.length;++s)e=Math.max(e,o[a].length);var l=[\\\"function B(C,E,i,j){\\\",\\\"var a=Math.min(i,j)|0,b=Math.max(i,j)|0,l=C[2*a],h=C[2*a+1];\\\",\\\"while(l<h){\\\",\\\"var m=(l+h)>>1,v=E[2*m+1];\\\",\\\"if(v===b){return m}\\\",\\\"if(b<v){h=m}else{l=m+1}\\\",\\\"}\\\",\\\"return l;\\\",\\\"};\\\",\\\"function getContour\\\",t,\\\"d(F,E,C,S){\\\",\\\"var n=F.length,R=[];\\\",\\\"for(var i=0;i<n;++i){var c=F[i],l=c.length;\\\"];function c(t){if(!(t.length<=0)){l.push(\\\"R.push(\\\");for(var e=0;e<t.length;++e){var r=t[e];e>0&&l.push(\\\",\\\"),l.push(\\\"[\\\");for(var n=0;n<r.length;++n){var i=r[n];n>0&&l.push(\\\",\\\"),l.push(\\\"B(C,E,c[\\\",i[0],\\\"],c[\\\",i[1],\\\"])\\\")}l.push(\\\"]\\\")}l.push(\\\");\\\")}}for(var a=t+1;a>1;--a){a<t+1&&l.push(\\\"else \\\"),l.push(\\\"if(l===\\\",a,\\\"){\\\");for(var u=[],s=0;s<a;++s)u.push(\\\"(S[c[\\\"+s+\\\"]]<<\\\"+s+\\\")\\\");l.push(\\\"var M=\\\",u.join(\\\"+\\\"),\\\";if(M===0||M===\\\",(1<<a)-1,\\\"){continue}switch(M){\\\");for(var o=r[a-1],s=0;s<o.length;++s)l.push(\\\"case \\\",s,\\\":\\\"),c(o[s]),l.push(\\\"break;\\\");l.push(\\\"}}\\\")}return l.push(\\\"}return R;};return getContour\\\",t,\\\"d\\\"),new Function(\\\"pool\\\",l.join(\\\"\\\"))(n)}(t));return e};var n=t(\\\"typedarray-pool\\\"),i=t(\\\"marching-simplex-table\\\"),a={}},{\\\"marching-simplex-table\\\":410,\\\"typedarray-pool\\\":522}],496:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"bit-twiddle\\\"),i=t(\\\"union-find\\\");function a(t,e){var r=t.length,n=t.length-e.length,i=Math.min;if(n)return n;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return(s=t[0]+t[1]-e[0]-e[1])||i(t[0],t[1])-i(e[0],e[1]);case 3:var a=t[0]+t[1],o=e[0]+e[1];if(s=a+t[2]-(o+e[2]))return s;var s,l=i(t[0],t[1]),c=i(e[0],e[1]);return(s=i(l,t[2])-i(c,e[2]))||i(l+t[2],a)-i(c+e[2],o);default:var u=t.slice(0);u.sort();var f=e.slice(0);f.sort();for(var h=0;h<r;++h)if(n=u[h]-f[h])return n;return 0}}function o(t,e){return a(t[0],e[0])}function s(t,e){if(e){for(var r=t.length,n=new Array(r),i=0;i<r;++i)n[i]=[t[i],e[i]];n.sort(o);for(i=0;i<r;++i)t[i]=n[i][0],e[i]=n[i][1];return t}return t.sort(a),t}function l(t){if(0===t.length)return[];for(var e=1,r=t.length,n=1;n<r;++n){var i=t[n];if(a(i,t[n-1])){if(n===e){e++;continue}t[e++]=i}}return t.length=e,t}function c(t,e){for(var r=0,n=t.length-1,i=-1;r<=n;){var o=r+n>>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i<o;++i)r[i]=[];for(var s=[],l=(i=0,e.length);i<l;++i)for(var u=e[i],f=u.length,h=1,p=1<<f;h<p;++h){s.length=n.popCount(h);for(var d=0,g=0;g<f;++g)h&1<<g&&(s[d++]=u[g]);var v=c(t,s);if(!(v<0))for(;r[v++].push(i),!(v>=t.length||0!==a(t[v],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<<e+1)-1,a=0;a<t.length;++a)for(var o=t[a],l=i;l<1<<o.length;l=n.nextCombination(l)){for(var c=new Array(e+1),u=0,f=0;f<o.length;++f)l&1<<f&&(c[u++]=o[f]);r.push(c)}return s(r)}r.dimension=function(t){for(var e=0,r=Math.max,n=0,i=t.length;n<i;++n)e=r(e,t[n].length);return e-1},r.countVertices=function(t){for(var e=-1,r=Math.max,n=0,i=t.length;n<i;++n)for(var a=t[n],o=0,s=a.length;o<s;++o)e=r(e,a[o]);return e+1},r.cloneCells=function(t){for(var e=new Array(t.length),r=0,n=t.length;r<n;++r)e[r]=t[r].slice(0);return e},r.compareCells=a,r.normalize=s,r.unique=l,r.findCell=c,r.incidence=u,r.dual=function(t,e){if(!e)return u(l(f(t,0)),t);for(var r=new Array(e),n=0;n<e;++n)r[n]=[];n=0;for(var i=t.length;n<i;++n)for(var a=t[n],o=0,s=a.length;o<s;++o)r[a[o]].push(n);return r},r.explode=function(t){for(var e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0|i.length,o=1,l=1<<a;o<l;++o){for(var c=[],u=0;u<a;++u)o>>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;++a){for(var l=new Array(i.length-1),c=0,u=0;c<o;++c)c!==a&&(l[u++]=i[c]);e.push(l)}return s(e)},r.connectedComponents=function(t,e){return e?function(t,e){for(var r=new i(e),n=0;n<t.length;++n)for(var a=t[n],o=0;o<a.length;++o)for(var s=o+1;s<a.length;++s)r.link(a[o],a[s]);var l=[],c=r.ranks;for(n=0;n<c.length;++n)c[n]=-1;for(n=0;n<t.length;++n){var u=r.find(t[n][0]);c[u]<0?(c[u]=l.length,l.push([t[n].slice(0)])):l[c[u]].push(t[n].slice(0))}return l}(t,e):function(t){for(var e=l(s(f(t,0))),r=new i(e.length),n=0;n<t.length;++n)for(var a=t[n],o=0;o<a.length;++o)for(var u=c(e,[a[o]]),h=o+1;h<a.length;++h)r.link(u,c(e,[a[h]]));var p=[],d=r.ranks;for(n=0;n<d.length;++n)d[n]=-1;for(n=0;n<t.length;++n){var g=r.find(c(e,[t[n][0]]));d[g]<0?(d[g]=p.length,p.push([t[n].slice(0)])):p[d[g]].push(t[n].slice(0))}return p}(t)}},{\\\"bit-twiddle\\\":80,\\\"union-find\\\":523}],497:[function(t,e,r){arguments[4][80][0].apply(r,arguments)},{dup:80}],498:[function(t,e,r){arguments[4][496][0].apply(r,arguments)},{\\\"bit-twiddle\\\":497,dup:496,\\\"union-find\\\":499}],499:[function(t,e,r){\\\"use strict\\\";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e<t;++e)this.roots[e]=e,this.ranks[e]=0}e.exports=n,n.prototype.length=function(){return this.roots.length},n.prototype.makeSet=function(){var t=this.roots.length;return this.roots.push(t),this.ranks.push(0),t},n.prototype.find=function(t){for(var e=this.roots;e[t]!==t;){var r=e[t];e[t]=e[r],t=r}return t},n.prototype.link=function(t,e){var r=this.find(t),n=this.find(e);if(r!==n){var i=this.ranks,a=this.roots,o=i[r],s=i[n];o<s?a[r]=n:s<o?a[n]=r:(a[n]=r,++i[r])}}},{}],500:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){for(var a=e.length,o=t.length,s=new Array(a),l=new Array(a),c=new Array(a),u=new Array(a),f=0;f<a;++f)s[f]=l[f]=-1,c[f]=1/0,u[f]=!1;for(var f=0;f<o;++f){var h=t[f];if(2!==h.length)throw new Error(\\\"Input must be a graph\\\");var p=h[1],d=h[0];-1!==l[d]?l[d]=-2:l[d]=p,-1!==s[p]?s[p]=-2:s[p]=d}function g(t){if(u[t])return 1/0;var r,i,a,o,c,f=s[t],h=l[t];return f<0||h<0?1/0:(r=e[t],i=e[f],a=e[h],o=Math.abs(n(r,i,a)),c=Math.sqrt(Math.pow(i[0]-a[0],2)+Math.pow(i[1]-a[1],2)),o/c)}function v(t,e){var r=M[t],n=M[e];M[t]=n,M[e]=r,A[r]=e,A[n]=t}function m(t){return c[M[t]]}function y(t){return 1&t?t-1>>1:(t>>1)-1}function x(t){for(var e=m(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n<S){var o=m(n);o<r&&(a=n,r=o)}if(i<S){var s=m(i);s<r&&(a=i)}if(a===t)return t;v(t,a),t=a}}function b(t){for(var e=m(t);t>0;){var r=y(t);if(r>=0){var n=m(r);if(e<n){v(t,r),t=r;continue}}return t}}function _(){if(S>0){var t=M[0];return v(0,S-1),S-=1,x(0),t}return-1}function w(t,e){var r=M[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((S+=1)-1))}function k(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],g(e)),A[r]>=0&&w(A[r],g(r))}}for(var M=[],A=new Array(a),f=0;f<a;++f){var T=c[f]=g(f);T<1/0?(A[f]=M.length,M.push(f)):A[f]=-1}for(var S=M.length,f=S>>1;f>=0;--f)x(f);for(;;){var E=_();if(E<0||c[E]>r)break;k(E)}for(var C=[],f=0;f<a;++f)u[f]||(A[f]=C.length,C.push(e[f].slice()));C.length;function L(t,e){if(t[e]<0)return e;var r=e,n=e;do{var i=t[n];if(!u[n]||i<0||i===n)break;if(i=t[n=i],!u[n]||i<0||i===n)break;n=i,r=t[r]}while(r!==n);for(var a=e;a!==n;a=t[a])t[a]=n;return n}var z=[];return t.forEach(function(t){var e=L(s,t[0]),r=L(l,t[1]);if(e>=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&z.push([n,i])}}),i.unique(i.normalize(z)),{positions:C,edges:z}};var n=t(\\\"robust-orientation\\\"),i=t(\\\"simplicial-complex\\\")},{\\\"robust-orientation\\\":486,\\\"simplicial-complex\\\":498}],501:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,a,o,s;if(e[0][0]<e[1][0])r=e[0],a=e[1];else{if(!(e[0][0]>e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]<t[1][0])o=t[0],s=t[1];else{if(!(t[0][0]>t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t(\\\"robust-orientation\\\");function i(t,e){var r,i,a,o;if(e[0][0]<e[1][0])r=e[0],i=e[1];else{if(!(e[0][0]>e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return l<c?l-c:s>u?s-u:l-u}r=e[1],i=e[0]}t[0][1]<t[1][1]?(a=t[0],o=t[1]):(a=t[1],o=t[0]);var f=n(i,r,a);return f||((f=n(i,r,o))||o-i)}},{\\\"robust-orientation\\\":486}],502:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=t.length,r=2*e,n=new Array(r),a=0;a<e;++a){var l=t[a],c=l[0][0]<l[1][0];n[2*a]=new f(l[0][0],l,c,a),n[2*a+1]=new f(l[1][0],l,!c,a)}n.sort(function(t,e){var r=t.x-e.x;return r||((r=t.create-e.create)||Math.min(t.segment[0][1],t.segment[1][1])-Math.min(e.segment[0][1],e.segment[1][1]))});for(var h=i(o),p=[],d=[],g=[],a=0;a<r;){for(var v=n[a].x,m=[];a<r;){var y=n[a];if(y.x!==v)break;a+=1,y.segment[0][0]===y.x&&y.segment[1][0]===y.x?y.create&&(y.segment[0][1]<y.segment[1][1]?(m.push(new u(y.segment[0][1],y.index,!0,!0)),m.push(new u(y.segment[1][1],y.index,!1,!1))):(m.push(new u(y.segment[1][1],y.index,!0,!1)),m.push(new u(y.segment[0][1],y.index,!1,!0)))):h=y.create?h.insert(y.segment,y.index):h.remove(y.segment)}p.push(h.root),d.push(v),g.push(m)}return new s(p,d,g)};var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"functional-red-black-tree\\\"),a=t(\\\"robust-orientation\\\"),o=t(\\\"./lib/order-segments\\\");function s(t,e,r){this.slabs=t,this.coordinates=e,this.horizontal=r}function l(t,e){return t.y-e}function c(t,e){for(var r=null;t;){var n,i,o=t.key;o[0][0]<o[1][0]?(n=o[0],i=o[1]):(n=o[1],i=o[0]);var s=a(n,i,e);if(s<0)t=t.left;else if(s>0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h<f.length){var p=f[h];if(t[1]===p.y){if(p.closed)return p.index;for(;h<f.length-1&&f[h+1].y===t[1];)if((p=f[h+=1]).closed)return p.index;if(p.y===t[1]&&!p.start){if((h+=1)>=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{\\\"./lib/order-segments\\\":501,\\\"binary-search-bounds\\\":79,\\\"functional-red-black-tree\\\":219,\\\"robust-orientation\\\":486}],503:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"robust-dot-product\\\"),i=t(\\\"robust-sum\\\");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l<o;++l)s[l]=i*t[l]+a*r[l];return s}e.exports=function(t,e){for(var r=[],n=[],i=a(t[t.length-1],e),s=t[t.length-1],l=t[0],c=0;c<t.length;++c,s=l){var u=a(l=t[c],e);if(i<0&&u>0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l<t.length;++l,i=s){var c=a(s=t[l],e);(n<0&&c>0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l<t.length;++l,i=s){var c=a(s=t[l],e);(n<0&&c>0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{\\\"robust-dot-product\\\":483,\\\"robust-sum\\\":491}],504:[function(t,e,r){!function(){\\\"use strict\\\";var t={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 e(r){return function(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,g=\\\"\\\";for(a=0;a<d;a++)if(\\\"string\\\"==typeof r[a])g+=r[a];else if(Array.isArray(r[a])){if((s=r[a])[2])for(i=n[p],o=0;o<s[2].length;o++){if(!i.hasOwnProperty(s[2][o]))throw new Error(e('[sprintf] property \\\"%s\\\" does not exist',s[2][o]));i=i[s[2][o]]}else i=s[1]?n[s[1]]:n[p++];if(t.not_type.test(s[8])&&t.not_primitive.test(s[8])&&i instanceof Function&&(i=i()),t.numeric_arg.test(s[8])&&\\\"number\\\"!=typeof i&&isNaN(i))throw new TypeError(e(\\\"[sprintf] expecting number but found %T\\\",i));switch(t.number.test(s[8])&&(f=i>=0),s[8]){case\\\"b\\\":i=parseInt(i,10).toString(2);break;case\\\"c\\\":i=String.fromCharCode(parseInt(i,10));break;case\\\"d\\\":case\\\"i\\\":i=parseInt(i,10);break;case\\\"j\\\":i=JSON.stringify(i,null,s[6]?parseInt(s[6]):0);break;case\\\"e\\\":i=s[7]?parseFloat(i).toExponential(s[7]):parseFloat(i).toExponential();break;case\\\"f\\\":i=s[7]?parseFloat(i).toFixed(s[7]):parseFloat(i);break;case\\\"g\\\":i=s[7]?String(Number(i.toPrecision(s[7]))):parseFloat(i);break;case\\\"o\\\":i=(parseInt(i,10)>>>0).toString(8);break;case\\\"s\\\":i=String(i),i=s[7]?i.substring(0,s[7]):i;break;case\\\"t\\\":i=String(!!i),i=s[7]?i.substring(0,s[7]):i;break;case\\\"T\\\":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s[7]?i.substring(0,s[7]):i;break;case\\\"u\\\":i=parseInt(i,10)>>>0;break;case\\\"v\\\":i=i.valueOf(),i=s[7]?i.substring(0,s[7]):i;break;case\\\"x\\\":i=(parseInt(i,10)>>>0).toString(16);break;case\\\"X\\\":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s[8])?g+=i:(!t.number.test(s[8])||f&&!s[3]?h=\\\"\\\":(h=f?\\\"+\\\":\\\"-\\\",i=i.toString().replace(t.sign,\\\"\\\")),c=s[4]?\\\"0\\\"===s[4]?\\\"0\\\":s[4].charAt(1):\\\" \\\",u=s[6]-(h+i).length,l=s[6]&&u>0?c.repeat(u):\\\"\\\",g+=s[5]?h+i+l:\\\"0\\\"===c?h+l+i:l+h+i)}return g}(function(e){if(i[e])return i[e];var r,n=e,a=[],o=0;for(;n;){if(null!==(r=t.text.exec(n)))a.push(r[0]);else if(null!==(r=t.modulo.exec(n)))a.push(\\\"%\\\");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError(\\\"[sprintf] unexpected placeholder\\\");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError(\\\"[sprintf] failed to parse named argument key\\\");for(s.push(c[1]);\\\"\\\"!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError(\\\"[sprintf] failed to parse named argument key\\\");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error(\\\"[sprintf] mixing positional and named placeholders is not (yet) supported\\\");a.push(r)}n=n.substring(r[0].length)}return i[e]=a}(r),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}var i=Object.create(null);\\\"undefined\\\"!=typeof r&&(r.sprintf=e,r.vsprintf=n),\\\"undefined\\\"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],505:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"parenthesis\\\");e.exports=function(t,e,r){if(null==t)throw Error(\\\"First argument should be a string\\\");if(null==e)throw Error(\\\"Separator should be a string or a RegExp\\\");r?(\\\"string\\\"==typeof r||Array.isArray(r))&&(r={ignore:r}):r={},null==r.escape&&(r.escape=!0),null==r.ignore?r.ignore=[\\\"[]\\\",\\\"()\\\",\\\"{}\\\",\\\"<>\\\",'\\\"\\\"',\\\"''\\\",\\\"``\\\",\\\"\\\\u201c\\\\u201d\\\",\\\"\\\\xab\\\\xbb\\\"]:(\\\"string\\\"==typeof r.ignore&&(r.ignore=[r.ignore]),r.ignore=r.ignore.map(function(t){return 1===t.length&&(t+=t),t}));var i=n.parse(t,{flat:!0,brackets:r.ignore}),a=i[0].split(e);if(r.escape){for(var o=[],s=0;s<a.length;s++){var l=a[s],c=a[s+1];\\\"\\\\\\\\\\\"===l[l.length-1]&&\\\"\\\\\\\\\\\"!==l[l.length-2]?(o.push(l+e+c),s++):o.push(l)}a=o}for(s=0;s<a.length;s++)i[0]=a[s],a[s]=n.stringify(i,{flat:!0});return a}},{parenthesis:441}],506:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=t.length,r=new Array(e),n=new Array(e),i=new Array(e),a=new Array(e),o=new Array(e),s=new Array(e),l=0;l<e;++l)r[l]=-1,n[l]=0,i[l]=!1,a[l]=0,o[l]=-1,s[l]=[];var c,u=0,f=[],h=[];function p(e){var l=[e],c=[e];for(r[e]=n[e]=u,i[e]=!0,u+=1;c.length>0;){e=c[c.length-1];var p=t[e];if(a[e]<p.length){for(var d=a[e];d<p.length;++d){var g=p[d];if(r[g]<0){r[g]=n[g]=u,i[g]=!0,u+=1,l.push(g),c.push(g);break}i[g]&&(n[e]=0|Math.min(n[e],n[g])),o[g]>=0&&s[e].push(o[g])}a[e]=d}else{if(n[e]===r[e]){for(var v=[],m=[],y=0,d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,v.push(x),m.push(s[x]),y+=s[x].length,o[x]=f.length,x===e){l.length=d;break}}f.push(v);for(var b=new Array(y),d=0;d<m.length;d++)for(var _=0;_<m[d].length;_++)b[--y]=m[d][_];h.push(b)}c.pop()}}}for(var l=0;l<e;++l)r[l]<0&&p(l);for(var l=0;l<h.length;l++){var d=h[l];if(0!==d.length){d.sort(function(t,e){return t-e}),c=[d[0]];for(var g=1;g<d.length;g++)d[g]!==d[g-1]&&c.push(d[g]);h[l]=c}}return{components:f,adjacencyList:h}}},{}],507:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t.split(\\\"\\\").map(function(t){return t in n?n[t]:\\\"\\\"}).join(\\\"\\\")};var n={\\\" \\\":\\\" \\\",0:\\\"\\\\u2070\\\",1:\\\"\\\\xb9\\\",2:\\\"\\\\xb2\\\",3:\\\"\\\\xb3\\\",4:\\\"\\\\u2074\\\",5:\\\"\\\\u2075\\\",6:\\\"\\\\u2076\\\",7:\\\"\\\\u2077\\\",8:\\\"\\\\u2078\\\",9:\\\"\\\\u2079\\\",\\\"+\\\":\\\"\\\\u207a\\\",\\\"-\\\":\\\"\\\\u207b\\\",a:\\\"\\\\u1d43\\\",b:\\\"\\\\u1d47\\\",c:\\\"\\\\u1d9c\\\",d:\\\"\\\\u1d48\\\",e:\\\"\\\\u1d49\\\",f:\\\"\\\\u1da0\\\",g:\\\"\\\\u1d4d\\\",h:\\\"\\\\u02b0\\\",i:\\\"\\\\u2071\\\",j:\\\"\\\\u02b2\\\",k:\\\"\\\\u1d4f\\\",l:\\\"\\\\u02e1\\\",m:\\\"\\\\u1d50\\\",n:\\\"\\\\u207f\\\",o:\\\"\\\\u1d52\\\",p:\\\"\\\\u1d56\\\",r:\\\"\\\\u02b3\\\",s:\\\"\\\\u02e2\\\",t:\\\"\\\\u1d57\\\",u:\\\"\\\\u1d58\\\",v:\\\"\\\\u1d5b\\\",w:\\\"\\\\u02b7\\\",x:\\\"\\\\u02e3\\\",y:\\\"\\\\u02b8\\\",z:\\\"\\\\u1dbb\\\"}},{}],508:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=a(t,e),n=r.length,i=new Array(n),o=new Array(n),s=0;s<n;++s)i[s]=[r[s]],o[s]=[s];return{positions:i,cells:o}}(t,e);var r=t.order.join()+\\\"-\\\"+t.dtype,s=o[r],e=+e||0;s||(s=o[r]=function(t,e){var r=t.length,a=[\\\"'use strict';\\\"],o=\\\"surfaceNets\\\"+t.join(\\\"_\\\")+\\\"d\\\"+e;a.push(\\\"var contour=genContour({\\\",\\\"order:[\\\",t.join(),\\\"],\\\",\\\"scalarArguments: 3,\\\",\\\"phase:function phaseFunc(p,a,b,c) { return (p > c)|0 },\\\"),\\\"generic\\\"===e&&a.push(\\\"getters:[0],\\\");for(var s=[],l=[],c=0;c<r;++c)s.push(\\\"d\\\"+c),l.push(\\\"d\\\"+c);for(var c=0;c<1<<r;++c)s.push(\\\"v\\\"+c),l.push(\\\"v\\\"+c);for(var c=0;c<1<<r;++c)s.push(\\\"p\\\"+c),l.push(\\\"p\\\"+c);s.push(\\\"a\\\",\\\"b\\\",\\\"c\\\"),l.push(\\\"a\\\",\\\"c\\\"),a.push(\\\"vertex:function vertexFunc(\\\",s.join(),\\\"){\\\");for(var u=[],c=0;c<1<<r;++c)u.push(\\\"(p\\\"+c+\\\"<<\\\"+c+\\\")\\\");a.push(\\\"var m=(\\\",u.join(\\\"+\\\"),\\\")|0;if(m===0||m===\\\",(1<<(1<<r))-1,\\\"){return}\\\");var f=[],h=[];1<<(1<<r)<=128?(a.push(\\\"switch(m){\\\"),h=a):a.push(\\\"switch(m>>>7){\\\");for(var c=0;c<1<<(1<<r);++c){if(1<<(1<<r)>128&&c%128==0){f.length>0&&h.push(\\\"}}\\\");var p=\\\"vExtra\\\"+f.length;a.push(\\\"case \\\",c>>>7,\\\":\\\",p,\\\"(m&0x7f,\\\",l.join(),\\\");break;\\\"),h=[\\\"function \\\",p,\\\"(m,\\\",l.join(),\\\"){switch(m){\\\"],f.push(h)}h.push(\\\"case \\\",127&c,\\\":\\\");for(var d=new Array(r),g=new Array(r),v=new Array(r),m=new Array(r),y=0,x=0;x<r;++x)d[x]=[],g[x]=[],v[x]=0,m[x]=0;for(var x=0;x<1<<r;++x)for(var b=0;b<r;++b){var _=x^1<<b;if(!(_>x)&&!(c&1<<_)!=!(c&1<<x)){var w=1;c&1<<_?g[b].push(\\\"v\\\"+_+\\\"-v\\\"+x):(g[b].push(\\\"v\\\"+x+\\\"-v\\\"+_),w=-w),w<0?(d[b].push(\\\"-v\\\"+x+\\\"-v\\\"+_),v[b]+=2):(d[b].push(\\\"v\\\"+x+\\\"+v\\\"+_),v[b]-=2),y+=1;for(var k=0;k<r;++k)k!==b&&(_&1<<k?m[k]+=1:m[k]-=1)}}for(var M=[],b=0;b<r;++b)if(0===d[b].length)M.push(\\\"d\\\"+b+\\\"-0.5\\\");else{var A=\\\"\\\";v[b]<0?A=v[b]+\\\"*c\\\":v[b]>0&&(A=\\\"+\\\"+v[b]+\\\"*c\\\");var T=d[b].length/y*.5,S=.5+m[b]/y*.5;M.push(\\\"d\\\"+b+\\\"-\\\"+S+\\\"-\\\"+T+\\\"*(\\\"+d[b].join(\\\"+\\\")+A+\\\")/(\\\"+g[b].join(\\\"+\\\")+\\\")\\\")}h.push(\\\"a.push([\\\",M.join(),\\\"]);\\\",\\\"break;\\\")}a.push(\\\"}},\\\"),f.length>0&&h.push(\\\"}}\\\");for(var E=[],c=0;c<1<<r-1;++c)E.push(\\\"v\\\"+c);E.push(\\\"c0\\\",\\\"c1\\\",\\\"p0\\\",\\\"p1\\\",\\\"a\\\",\\\"b\\\",\\\"c\\\"),a.push(\\\"cell:function cellFunc(\\\",E.join(),\\\"){\\\");var C=i(r-1);a.push(\\\"if(p0){b.push(\\\",C.map(function(t){return\\\"[\\\"+t.map(function(t){return\\\"v\\\"+t})+\\\"]\\\"}).join(),\\\")}else{b.push(\\\",C.map(function(t){var e=t.slice();return e.reverse(),\\\"[\\\"+e.map(function(t){return\\\"v\\\"+t})+\\\"]\\\"}).join(),\\\")}}});function \\\",o,\\\"(array,level){var verts=[],cells=[];contour(array,verts,cells,level);return {positions:verts,cells:cells};} return \\\",o,\\\";\\\");for(var c=0;c<f.length;++c)a.push(f[c].join(\\\"\\\"));return new Function(\\\"genContour\\\",a.join(\\\"\\\"))(n)}(t.order,t.dtype));return s(t,e)};var n=t(\\\"ndarray-extract-contour\\\"),i=t(\\\"triangulate-hypercube\\\"),a=t(\\\"zero-crossings\\\");var o={}},{\\\"ndarray-extract-contour\\\":422,\\\"triangulate-hypercube\\\":518,\\\"zero-crossings\\\":551}],509:[function(t,e,r){\\\"use strict\\\";Object.defineProperty(r,\\\"__esModule\\\",{value:!0});var n=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw a}}return r}(t,e);throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\")}}(),i=2*Math.PI,a=function(t,e,r,n,i,a,o){var s=t.x,l=t.y;return{x:n*(s*=e)-i*(l*=r)+a,y:i*s+n*l+o}},o=function(t,e){var r=.551915024494,n=Math.cos(t),i=Math.sin(t),a=Math.cos(t+e),o=Math.sin(t+e);return[{x:n-i*r,y:i+n*r},{x:a+o*r,y:o-a*r},{x:a,y:o}]},s=function(t,e,r,n){var i=t*n-e*r<0?-1:1,a=(t*r+e*n)/(Math.sqrt(t*t+e*e)*Math.sqrt(t*t+e*e));return a>1&&(a=1),a<-1&&(a=-1),i*Math.acos(a)};r.default=function(t){var e=t.px,r=t.py,l=t.cx,c=t.cy,u=t.rx,f=t.ry,h=t.xAxisRotation,p=void 0===h?0:h,d=t.largeArcFlag,g=void 0===d?0:d,v=t.sweepFlag,m=void 0===v?0:v,y=[];if(0===u||0===f)return[];var x=Math.sin(p*i/360),b=Math.cos(p*i/360),_=b*(e-l)/2+x*(r-c)/2,w=-x*(e-l)/2+b*(r-c)/2;if(0===_&&0===w)return[];u=Math.abs(u),f=Math.abs(f);var k=Math.pow(_,2)/Math.pow(u,2)+Math.pow(w,2)/Math.pow(f,2);k>1&&(u*=Math.sqrt(k),f*=Math.sqrt(k));var M=function(t,e,r,n,a,o,l,c,u,f,h,p){var d=Math.pow(a,2),g=Math.pow(o,2),v=Math.pow(h,2),m=Math.pow(p,2),y=d*g-d*m-g*v;y<0&&(y=0),y/=d*m+g*v;var x=(y=Math.sqrt(y)*(l===c?-1:1))*a/o*p,b=y*-o/a*h,_=f*x-u*b+(t+r)/2,w=u*x+f*b+(e+n)/2,k=(h-x)/a,M=(p-b)/o,A=(-h-x)/a,T=(-p-b)/o,S=s(1,0,k,M),E=s(k,M,A,T);return 0===c&&E>0&&(E-=i),1===c&&E<0&&(E+=i),[_,w,S,E]}(e,r,l,c,u,f,g,m,x,b,_,w),A=n(M,4),T=A[0],S=A[1],E=A[2],C=A[3],L=Math.abs(C)/(i/4);Math.abs(1-L)<1e-7&&(L=1);var z=Math.max(Math.ceil(L),1);C/=z;for(var O=0;O<z;O++)y.push(o(E,C)),E+=C;return y.map(function(t){var e=a(t[0],u,f,b,x,T,S),r=e.x,n=e.y,i=a(t[1],u,f,b,x,T,S),o=i.x,s=i.y,l=a(t[2],u,f,b,x,T,S);return{x1:r,y1:n,x2:o,y2:s,x:l.x,y:l.y}})},e.exports=r.default},{}],510:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"parse-svg-path\\\"),i=t(\\\"abs-svg-path\\\"),a=t(\\\"normalize-svg-path\\\"),o=t(\\\"is-svg-path\\\"),s=t(\\\"assert\\\");e.exports=function(t){Array.isArray(t)&&1===t.length&&\\\"string\\\"==typeof t[0]&&(t=t[0]);\\\"string\\\"==typeof t&&(s(o(t),\\\"String is not an SVG path.\\\"),t=n(t));if(s(Array.isArray(t),\\\"Argument should be a string or an array of path segments.\\\"),t=i(t),!(t=a(t)).length)return[0,0,0,0];for(var e=[1/0,1/0,-1/0,-1/0],r=0,l=t.length;r<l;r++)for(var c=t[r].slice(1),u=0;u<c.length;u+=2)c[u+0]<e[0]&&(e[0]=c[u+0]),c[u+1]<e[1]&&(e[1]=c[u+1]),c[u+0]>e[2]&&(e[2]=c[u+0]),c[u+1]>e[3]&&(e[3]=c[u+1]);return e}},{\\\"abs-svg-path\\\":48,assert:56,\\\"is-svg-path\\\":407,\\\"normalize-svg-path\\\":511,\\\"parse-svg-path\\\":443}],511:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e,r=[],o=0,s=0,l=0,c=0,u=null,f=null,h=0,p=0,d=0,g=t.length;d<g;d++){var v=t[d],m=v[0];switch(m){case\\\"M\\\":l=v[1],c=v[2];break;case\\\"A\\\":var y=n({px:h,py:p,cx:v[6],cy:v[7],rx:v[1],ry:v[2],xAxisRotation:v[3],largeArcFlag:v[4],sweepFlag:v[5]});if(!y.length)continue;for(var x,b=0;b<y.length;b++)x=y[b],v=[\\\"C\\\",x.x1,x.y1,x.x2,x.y2,x.x,x.y],b<y.length-1&&r.push(v);break;case\\\"S\\\":var _=h,w=p;\\\"C\\\"!=e&&\\\"S\\\"!=e||(_+=_-o,w+=w-s),v=[\\\"C\\\",_,w,v[1],v[2],v[3],v[4]];break;case\\\"T\\\":\\\"Q\\\"==e||\\\"T\\\"==e?(u=2*h-u,f=2*p-f):(u=h,f=p),v=a(h,p,u,f,v[1],v[2]);break;case\\\"Q\\\":u=v[1],f=v[2],v=a(h,p,v[1],v[2],v[3],v[4]);break;case\\\"L\\\":v=i(h,p,v[1],v[2]);break;case\\\"H\\\":v=i(h,p,v[1],p);break;case\\\"V\\\":v=i(h,p,h,v[1]);break;case\\\"Z\\\":v=i(h,p,l,c)}e=m,h=v[v.length-2],p=v[v.length-1],v.length>4?(o=v[v.length-4],s=v[v.length-3]):(o=h,s=p),r.push(v)}return r};var n=t(\\\"svg-arc-to-cubic-bezier\\\");function i(t,e,r,n){return[\\\"C\\\",t,e,r,n,r,n]}function a(t,e,r,n,i,a){return[\\\"C\\\",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}},{\\\"svg-arc-to-cubic-bezier\\\":509}],512:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"svg-path-bounds\\\"),i=t(\\\"parse-svg-path\\\"),a=t(\\\"draw-svg-path\\\"),o=t(\\\"is-svg-path\\\"),s=t(\\\"bitmap-sdf\\\"),l=document.createElement(\\\"canvas\\\"),c=l.getContext(\\\"2d\\\");e.exports=function(t,e){if(!o(t))throw Error(\\\"Argument should be valid svg path string\\\");e||(e={});var r,u;e.shape?(r=e.shape[0],u=e.shape[1]):(r=l.width=e.w||e.width||200,u=l.height=e.h||e.height||200);var f=Math.min(r,u),h=e.stroke||0,p=e.viewbox||e.viewBox||n(t),d=[r/(p[2]-p[0]),u/(p[3]-p[1])],g=Math.min(d[0]||0,d[1]||0)/2;c.fillStyle=\\\"black\\\",c.fillRect(0,0,r,u),c.fillStyle=\\\"white\\\",h&&(\\\"number\\\"!=typeof h&&(h=1),c.strokeStyle=h>0?\\\"white\\\":\\\"black\\\",c.lineWidth=Math.abs(h));if(c.translate(.5*r,.5*u),c.scale(g,g),function(){var t=document.createElement(\\\"canvas\\\").getContext(\\\"2d\\\");t.canvas.width=t.canvas.height=1;var e=new Path2D(\\\"M0,0h1v1h-1v-1Z\\\");t.fillStyle=\\\"black\\\",t.fill(e);var r=t.getImageData(0,0,1,1);return r&&r.data&&255===r.data[3]}()){var v=new Path2D(t);c.fill(v),h&&c.stroke(v)}else{var m=i(t);a(c,m),c.fill(),h&&c.stroke()}return c.setTransform(1,0,0,1,0,0),s(c,{cutoff:null!=e.cutoff?e.cutoff:.5,radius:null!=e.radius?e.radius:.5*f})}},{\\\"bitmap-sdf\\\":81,\\\"draw-svg-path\\\":153,\\\"is-svg-path\\\":407,\\\"parse-svg-path\\\":443,\\\"svg-path-bounds\\\":510}],513:[function(t,e,r){(function(r){\\\"use strict\\\";e.exports=function t(e,r,i){var i=i||{};var o=a[e];o||(o=a[e]={\\\" \\\":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\\\\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o<e.length;++o)for(var s=e[o],l=0;l<3;++l){var c=r[s[l]];n[i++]=c[0],n[i++]=c[1]+1.4,a=Math.max(c[0],a)}return{data:n,shape:a}}(n(r,{triangles:!0,font:e,textAlign:i.textAlign||\\\"left\\\",textBaseline:\\\"alphabetic\\\"}));else{for(var l=r.split(/(\\\\d|\\\\s)/),c=new Array(l.length),u=0,f=0,h=0;h<l.length;++h)c[h]=t(e,l[h]),u+=c[h].data.length,f+=c[h].shape,h>0&&(f+=.02);for(var p=new Float32Array(u),d=0,g=-.5*f,h=0;h<c.length;++h){for(var v=c[h].data,m=0;m<v.length;m+=2)p[d++]=v[m]+g,p[d++]=v[m+1];g+=c[h].shape+.02}s=o[r]={data:p,shape:f}}return s};var n=t(\\\"vectorize-text\\\"),i=window||r.global||{},a=i.__TEXT_CACHE||{};i.__TEXT_CACHE={}}).call(this,t(\\\"_process\\\"))},{_process:465,\\\"vectorize-text\\\":527}],514:[function(t,e,r){!function(t){var r=/^\\\\s+/,n=/\\\\s+$/,i=0,a=t.round,o=t.min,s=t.max,l=t.random;function c(e,l){if(l=l||{},(e=e||\\\"\\\")instanceof c)return e;if(!(this instanceof c))return new c(e,l);var u=function(e){var i={r:0,g:0,b:0},a=1,l=null,c=null,u=null,f=!1,h=!1;\\\"string\\\"==typeof e&&(e=function(t){t=t.replace(r,\\\"\\\").replace(n,\\\"\\\").toLowerCase();var e,i=!1;if(S[t])t=S[t],i=!0;else if(\\\"transparent\\\"==t)return{r:0,g:0,b:0,a:0,format:\\\"name\\\"};if(e=j.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=j.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=j.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=j.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=j.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=j.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=j.hex8.exec(t))return{r:O(e[1]),g:O(e[2]),b:O(e[3]),a:R(e[4]),format:i?\\\"name\\\":\\\"hex8\\\"};if(e=j.hex6.exec(t))return{r:O(e[1]),g:O(e[2]),b:O(e[3]),format:i?\\\"name\\\":\\\"hex\\\"};if(e=j.hex4.exec(t))return{r:O(e[1]+\\\"\\\"+e[1]),g:O(e[2]+\\\"\\\"+e[2]),b:O(e[3]+\\\"\\\"+e[3]),a:R(e[4]+\\\"\\\"+e[4]),format:i?\\\"name\\\":\\\"hex8\\\"};if(e=j.hex3.exec(t))return{r:O(e[1]+\\\"\\\"+e[1]),g:O(e[2]+\\\"\\\"+e[2]),b:O(e[3]+\\\"\\\"+e[3]),format:i?\\\"name\\\":\\\"hex\\\"};return!1}(e));\\\"object\\\"==typeof e&&(V(e.r)&&V(e.g)&&V(e.b)?(p=e.r,d=e.g,g=e.b,i={r:255*L(p,255),g:255*L(d,255),b:255*L(g,255)},f=!0,h=\\\"%\\\"===String(e.r).substr(-1)?\\\"prgb\\\":\\\"rgb\\\"):V(e.h)&&V(e.s)&&V(e.v)?(l=P(e.s),c=P(e.v),i=function(e,r,n){e=6*L(e,360),r=L(r,100),n=L(n,100);var i=t.floor(e),a=e-i,o=n*(1-r),s=n*(1-a*r),l=n*(1-(1-a)*r),c=i%6;return{r:255*[n,s,o,o,l,n][c],g:255*[l,n,n,s,o,o][c],b:255*[o,o,l,n,n,s][c]}}(e.h,l,c),f=!0,h=\\\"hsv\\\"):V(e.h)&&V(e.s)&&V(e.l)&&(l=P(e.s),u=P(e.l),i=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=L(t,360),e=L(e,100),r=L(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(e.h,l,u),f=!0,h=\\\"hsl\\\"),e.hasOwnProperty(\\\"a\\\")&&(a=e.a));var p,d,g;return a=C(a),{ok:f,format:e.format||h,r:o(255,s(i.r,0)),g:o(255,s(i.g,0)),b:o(255,s(i.b,0)),a:a}}(e);this._originalInput=e,this._r=u.r,this._g=u.g,this._b=u.b,this._a=u.a,this._roundA=a(100*this._a)/100,this._format=l.format||u.format,this._gradientType=l.gradientType,this._r<1&&(this._r=a(this._r)),this._g<1&&(this._g=a(this._g)),this._b<1&&(this._b=a(this._b)),this._ok=u.ok,this._tc_id=i++}function u(t,e,r){t=L(t,255),e=L(e,255),r=L(r,255);var n,i,a=s(t,e,r),l=o(t,e,r),c=(a+l)/2;if(a==l)n=i=0;else{var u=a-l;switch(i=c>.5?u/(2-a-l):u/(a+l),a){case t:n=(e-r)/u+(e<r?6:0);break;case e:n=(r-t)/u+2;break;case r:n=(t-e)/u+4}n/=6}return{h:n,s:i,l:c}}function f(t,e,r){t=L(t,255),e=L(e,255),r=L(r,255);var n,i,a=s(t,e,r),l=o(t,e,r),c=a,u=a-l;if(i=0===a?0:u/a,a==l)n=0;else{switch(a){case t:n=(e-r)/u+(e<r?6:0);break;case e:n=(r-t)/u+2;break;case r:n=(t-e)/u+4}n/=6}return{h:n,s:i,v:c}}function h(t,e,r,n){var i=[I(a(t).toString(16)),I(a(e).toString(16)),I(a(r).toString(16))];return n&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join(\\\"\\\")}function p(t,e,r,n){return[I(D(n)),I(a(t).toString(16)),I(a(e).toString(16)),I(a(r).toString(16))].join(\\\"\\\")}function d(t,e){e=0===e?0:e||10;var r=c(t).toHsl();return r.s-=e/100,r.s=z(r.s),c(r)}function g(t,e){e=0===e?0:e||10;var r=c(t).toHsl();return r.s+=e/100,r.s=z(r.s),c(r)}function v(t){return c(t).desaturate(100)}function m(t,e){e=0===e?0:e||10;var r=c(t).toHsl();return r.l+=e/100,r.l=z(r.l),c(r)}function y(t,e){e=0===e?0:e||10;var r=c(t).toRgb();return r.r=s(0,o(255,r.r-a(-e/100*255))),r.g=s(0,o(255,r.g-a(-e/100*255))),r.b=s(0,o(255,r.b-a(-e/100*255))),c(r)}function x(t,e){e=0===e?0:e||10;var r=c(t).toHsl();return r.l-=e/100,r.l=z(r.l),c(r)}function b(t,e){var r=c(t).toHsl(),n=(r.h+e)%360;return r.h=n<0?360+n:n,c(r)}function _(t){var e=c(t).toHsl();return e.h=(e.h+180)%360,c(e)}function w(t){var e=c(t).toHsl(),r=e.h;return[c(t),c({h:(r+120)%360,s:e.s,l:e.l}),c({h:(r+240)%360,s:e.s,l:e.l})]}function k(t){var e=c(t).toHsl(),r=e.h;return[c(t),c({h:(r+90)%360,s:e.s,l:e.l}),c({h:(r+180)%360,s:e.s,l:e.l}),c({h:(r+270)%360,s:e.s,l:e.l})]}function M(t){var e=c(t).toHsl(),r=e.h;return[c(t),c({h:(r+72)%360,s:e.s,l:e.l}),c({h:(r+216)%360,s:e.s,l:e.l})]}function A(t,e,r){e=e||6,r=r||30;var n=c(t).toHsl(),i=360/r,a=[c(t)];for(n.h=(n.h-(i*e>>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(c(n));return a}function T(t,e){e=e||6;for(var r=c(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(c({h:n,s:i,v:a})),a=(a+s)%1;return o}c.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 t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var e,r,n,i=this.toRgb();return e=i.r/255,r=i.g/255,n=i.b/255,.2126*(e<=.03928?e/12.92:t.pow((e+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:t.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:t.pow((n+.055)/1.055,2.4))},setAlpha:function(t){return this._a=C(t),this._roundA=a(100*this._a)/100,this},toHsv:function(){var t=f(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=f(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.v);return 1==this._a?\\\"hsv(\\\"+e+\\\", \\\"+r+\\\"%, \\\"+n+\\\"%)\\\":\\\"hsva(\\\"+e+\\\", \\\"+r+\\\"%, \\\"+n+\\\"%, \\\"+this._roundA+\\\")\\\"},toHsl:function(){var t=u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=u(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.l);return 1==this._a?\\\"hsl(\\\"+e+\\\", \\\"+r+\\\"%, \\\"+n+\\\"%)\\\":\\\"hsla(\\\"+e+\\\", \\\"+r+\\\"%, \\\"+n+\\\"%, \\\"+this._roundA+\\\")\\\"},toHex:function(t){return h(this._r,this._g,this._b,t)},toHexString:function(t){return\\\"#\\\"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var o=[I(a(t).toString(16)),I(a(e).toString(16)),I(a(r).toString(16)),I(D(n))];if(i&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join(\\\"\\\")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return\\\"#\\\"+this.toHex8(t)},toRgb:function(){return{r:a(this._r),g:a(this._g),b:a(this._b),a:this._a}},toRgbString:function(){return 1==this._a?\\\"rgb(\\\"+a(this._r)+\\\", \\\"+a(this._g)+\\\", \\\"+a(this._b)+\\\")\\\":\\\"rgba(\\\"+a(this._r)+\\\", \\\"+a(this._g)+\\\", \\\"+a(this._b)+\\\", \\\"+this._roundA+\\\")\\\"},toPercentageRgb:function(){return{r:a(100*L(this._r,255))+\\\"%\\\",g:a(100*L(this._g,255))+\\\"%\\\",b:a(100*L(this._b,255))+\\\"%\\\",a:this._a}},toPercentageRgbString:function(){return 1==this._a?\\\"rgb(\\\"+a(100*L(this._r,255))+\\\"%, \\\"+a(100*L(this._g,255))+\\\"%, \\\"+a(100*L(this._b,255))+\\\"%)\\\":\\\"rgba(\\\"+a(100*L(this._r,255))+\\\"%, \\\"+a(100*L(this._g,255))+\\\"%, \\\"+a(100*L(this._b,255))+\\\"%, \\\"+this._roundA+\\\")\\\"},toName:function(){return 0===this._a?\\\"transparent\\\":!(this._a<1)&&(E[h(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e=\\\"#\\\"+p(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?\\\"GradientType = 1, \\\":\\\"\\\";if(t){var i=c(t);r=\\\"#\\\"+p(i._r,i._g,i._b,i._a)}return\\\"progid:DXImageTransform.Microsoft.gradient(\\\"+n+\\\"startColorstr=\\\"+e+\\\",endColorstr=\\\"+r+\\\")\\\"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||\\\"hex\\\"!==t&&\\\"hex6\\\"!==t&&\\\"hex3\\\"!==t&&\\\"hex4\\\"!==t&&\\\"hex8\\\"!==t&&\\\"name\\\"!==t?(\\\"rgb\\\"===t&&(r=this.toRgbString()),\\\"prgb\\\"===t&&(r=this.toPercentageRgbString()),\\\"hex\\\"!==t&&\\\"hex6\\\"!==t||(r=this.toHexString()),\\\"hex3\\\"===t&&(r=this.toHexString(!0)),\\\"hex4\\\"===t&&(r=this.toHex8String(!0)),\\\"hex8\\\"===t&&(r=this.toHex8String()),\\\"name\\\"===t&&(r=this.toName()),\\\"hsl\\\"===t&&(r=this.toHslString()),\\\"hsv\\\"===t&&(r=this.toHsvString()),r||this.toHexString()):\\\"name\\\"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return c(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(m,arguments)},brighten:function(){return this._applyModification(y,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(d,arguments)},saturate:function(){return this._applyModification(g,arguments)},greyscale:function(){return this._applyModification(v,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(A,arguments)},complement:function(){return this._applyCombination(_,arguments)},monochromatic:function(){return this._applyCombination(T,arguments)},splitcomplement:function(){return this._applyCombination(M,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(k,arguments)}},c.fromRatio=function(t,e){if(\\\"object\\\"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=\\\"a\\\"===n?t[n]:P(t[n]));t=r}return c(t,e)},c.equals=function(t,e){return!(!t||!e)&&c(t).toRgbString()==c(e).toRgbString()},c.random=function(){return c.fromRatio({r:l(),g:l(),b:l()})},c.mix=function(t,e,r){r=0===r?0:r||50;var n=c(t).toRgb(),i=c(e).toRgb(),a=r/100;return c({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},c.readability=function(e,r){var n=c(e),i=c(r);return(t.max(n.getLuminance(),i.getLuminance())+.05)/(t.min(n.getLuminance(),i.getLuminance())+.05)},c.isReadable=function(t,e,r){var n,i,a=c.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:\\\"AA\\\",size:\\\"small\\\"}).level||\\\"AA\\\").toUpperCase(),r=(t.size||\\\"small\\\").toLowerCase(),\\\"AA\\\"!==e&&\\\"AAA\\\"!==e&&(e=\\\"AA\\\");\\\"small\\\"!==r&&\\\"large\\\"!==r&&(r=\\\"small\\\");return{level:e,size:r}}(r)).level+n.size){case\\\"AAsmall\\\":case\\\"AAAlarge\\\":i=a>=4.5;break;case\\\"AAlarge\\\":i=a>=3;break;case\\\"AAAsmall\\\":i=a>=7}return i},c.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var u=0;u<e.length;u++)(n=c.readability(t,e[u]))>l&&(l=n,s=c(e[u]));return c.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,c.mostReadable(t,[\\\"#fff\\\",\\\"#000\\\"],r))};var S=c.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\\\"},E=c.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(S);function C(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function L(e,r){(function(t){return\\\"string\\\"==typeof t&&-1!=t.indexOf(\\\".\\\")&&1===parseFloat(t)})(e)&&(e=\\\"100%\\\");var n=function(t){return\\\"string\\\"==typeof t&&-1!=t.indexOf(\\\"%\\\")}(e);return e=o(r,s(0,parseFloat(e))),n&&(e=parseInt(e*r,10)/100),t.abs(e-r)<1e-6?1:e%r/parseFloat(r)}function z(t){return o(1,s(0,t))}function O(t){return parseInt(t,16)}function I(t){return 1==t.length?\\\"0\\\"+t:\\\"\\\"+t}function P(t){return t<=1&&(t=100*t+\\\"%\\\"),t}function D(e){return t.round(255*parseFloat(e)).toString(16)}function R(t){return O(t)/255}var B,F,N,j=(F=\\\"[\\\\\\\\s|\\\\\\\\(]+(\\\"+(B=\\\"(?:[-\\\\\\\\+]?\\\\\\\\d*\\\\\\\\.\\\\\\\\d+%?)|(?:[-\\\\\\\\+]?\\\\\\\\d+%?)\\\")+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")\\\\\\\\s*\\\\\\\\)?\\\",N=\\\"[\\\\\\\\s|\\\\\\\\(]+(\\\"+B+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")\\\\\\\\s*\\\\\\\\)?\\\",{CSS_UNIT:new RegExp(B),rgb:new RegExp(\\\"rgb\\\"+F),rgba:new RegExp(\\\"rgba\\\"+N),hsl:new RegExp(\\\"hsl\\\"+F),hsla:new RegExp(\\\"hsla\\\"+N),hsv:new RegExp(\\\"hsv\\\"+F),hsva:new RegExp(\\\"hsva\\\"+N),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 V(t){return!!j.CSS_UNIT.exec(t)}\\\"undefined\\\"!=typeof e&&e.exports?e.exports=c:window.tinycolor=c}(Math)},{}],515:[function(t,e,r){\\\"use strict\\\";function n(t){if(t instanceof Float32Array)return t;if(\\\"number\\\"==typeof t)return new Float32Array([t])[0];var e=new Float32Array(t);return e.set(t),e}e.exports=n,e.exports.float32=e.exports.float=n,e.exports.fract32=e.exports.fract=function(t){if(\\\"number\\\"==typeof t)return n(t-n(t));for(var e=n(t),r=0,i=e.length;r<i;r++)e[r]=t[r]-e[r];return e}},{}],516:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"parse-unit\\\");e.exports=o;var i=96;function a(t,e){var r=n(getComputedStyle(t).getPropertyValue(e));return r[0]*o(r[1],t)}function o(t,e){switch(e=e||document.body,t=(t||\\\"px\\\").trim().toLowerCase(),e!==window&&e!==document||(e=document.body),t){case\\\"%\\\":return e.clientHeight/100;case\\\"ch\\\":case\\\"ex\\\":return function(t,e){var r=document.createElement(\\\"div\\\");r.style[\\\"font-size\\\"]=\\\"128\\\"+t,e.appendChild(r);var n=a(r,\\\"font-size\\\")/128;return e.removeChild(r),n}(t,e);case\\\"em\\\":return a(e,\\\"font-size\\\");case\\\"rem\\\":return a(document.body,\\\"font-size\\\");case\\\"vw\\\":return window.innerWidth/100;case\\\"vh\\\":return window.innerHeight/100;case\\\"vmin\\\":return Math.min(window.innerWidth,window.innerHeight)/100;case\\\"vmax\\\":return Math.max(window.innerWidth,window.innerHeight)/100;case\\\"in\\\":return i;case\\\"cm\\\":return i/2.54;case\\\"mm\\\":return i/25.4;case\\\"pt\\\":return i/72;case\\\"pc\\\":return i/6}return 1}},{\\\"parse-unit\\\":444}],517:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";var e=function(t){return t},r=function(t){if(null==(r=t.transform))return e;var r,n,i,a=r.scale[0],o=r.scale[1],s=r.translate[0],l=r.translate[1];return function(t,e){return e||(n=i=0),t[0]=(n+=t[0])*a+s,t[1]=(i+=t[1])*o+l,t}},n=function(t){var e=t.bbox;function n(t){l[0]=t[0],l[1]=t[1],s(l),l[0]<c&&(c=l[0]),l[0]>f&&(f=l[0]),l[1]<u&&(u=l[1]),l[1]>h&&(h=l[1])}function i(t){switch(t.type){case\\\"GeometryCollection\\\":t.geometries.forEach(i);break;case\\\"Point\\\":n(t.coordinates);break;case\\\"MultiPoint\\\":t.coordinates.forEach(n)}}if(!e){var a,o,s=r(t),l=new Array(2),c=1/0,u=c,f=-c,h=-c;for(o in t.arcs.forEach(function(t){for(var e=-1,r=t.length;++e<r;)a=t[e],l[0]=a[0],l[1]=a[1],s(l,e),l[0]<c&&(c=l[0]),l[0]>f&&(f=l[0]),l[1]<u&&(u=l[1]),l[1]>h&&(h=l[1])}),t.objects)i(t.objects[o]);e=t.bbox=[c,u,f,h]}return e},i=function(t,e){for(var r,n=t.length,i=n-e;i<--n;)r=t[i],t[i++]=t[n],t[n]=r};function a(t,e){var r=e.id,n=e.bbox,i=null==e.properties?{}:e.properties,a=o(t,e);return null==r&&null==n?{type:\\\"Feature\\\",properties:i,geometry:a}:null==n?{type:\\\"Feature\\\",id:r,properties:i,geometry:a}:{type:\\\"Feature\\\",id:r,bbox:n,properties:i,geometry:a}}function o(t,e){var n=r(t),a=t.arcs;function o(t,e){e.length&&e.pop();for(var r=a[t<0?~t:t],o=0,s=r.length;o<s;++o)e.push(n(r[o].slice(),o));t<0&&i(e,s)}function s(t){return n(t.slice())}function l(t){for(var e=[],r=0,n=t.length;r<n;++r)o(t[r],e);return e.length<2&&e.push(e[0].slice()),e}function c(t){for(var e=l(t);e.length<4;)e.push(e[0].slice());return e}function u(t){return t.map(c)}return function t(e){var r,n=e.type;switch(n){case\\\"GeometryCollection\\\":return{type:n,geometries:e.geometries.map(t)};case\\\"Point\\\":r=s(e.coordinates);break;case\\\"MultiPoint\\\":r=e.coordinates.map(s);break;case\\\"LineString\\\":r=l(e.arcs);break;case\\\"MultiLineString\\\":r=e.arcs.map(l);break;case\\\"Polygon\\\":r=u(e.arcs);break;case\\\"MultiPolygon\\\":r=e.arcs.map(u);break;default:return null}return{type:n,coordinates:r}}(e)}var s=function(t,e){var r={},n={},i={},a=[],o=-1;function s(t,e){for(var n in t){var i=t[n];delete e[i.start],delete i.start,delete i.end,i.forEach(function(t){r[t<0?~t:t]=1}),a.push(i)}}return e.forEach(function(r,n){var i,a=t.arcs[r<0?~r:r];a.length<3&&!a[1][0]&&!a[1][1]&&(i=e[++o],e[o]=r,e[n]=i)}),e.forEach(function(e){var r,a,o=function(e){var r,n=t.arcs[e<0?~e:e],i=n[0];t.transform?(r=[0,0],n.forEach(function(t){r[0]+=t[0],r[1]+=t[1]})):r=n[n.length-1];return e<0?[r,i]:[i,r]}(e),s=o[0],l=o[1];if(r=i[s])if(delete i[r.end],r.push(e),r.end=l,a=n[l]){delete n[a.start];var c=a===r?r:r.concat(a);n[c.start=r.start]=i[c.end=a.end]=c}else n[r.start]=i[r.end]=r;else if(r=n[l])if(delete n[r.start],r.unshift(e),r.start=s,a=i[s]){delete i[a.end];var u=a===r?r:a.concat(r);n[u.start=a.start]=i[u.end=r.end]=u}else n[r.start]=i[r.end]=r;else n[(r=[e]).start=s]=i[r.end=l]=r}),s(i,n),s(n,i),e.forEach(function(t){r[t<0?~t:t]||a.push([t])}),a};function l(t,e,r){var n,i,a;if(arguments.length>1)n=function(t,e,r){var n,i=[],a=[];function o(t){var e=t<0?~t:t;(a[e]||(a[e]=[])).push({i:t,g:n})}function s(t){t.forEach(o)}function l(t){t.forEach(s)}return function t(e){switch(n=e,e.type){case\\\"GeometryCollection\\\":e.geometries.forEach(t);break;case\\\"LineString\\\":s(e.arcs);break;case\\\"MultiLineString\\\":case\\\"Polygon\\\":l(e.arcs);break;case\\\"MultiPolygon\\\":e.arcs.forEach(l)}}(e),a.forEach(null==r?function(t){i.push(t[0].i)}:function(t){r(t[0].g,t[t.length-1].g)&&i.push(t[0].i)}),i}(0,e,r);else for(i=0,n=new Array(a=t.arcs.length);i<a;++i)n[i]=i;return{type:\\\"MultiLineString\\\",arcs:s(t,n)}}function c(t,e){var r={},n=[],i=[];function a(t){t.forEach(function(e){e.forEach(function(e){(r[e=e<0?~e:e]||(r[e]=[])).push(t)})}),n.push(t)}function l(e){return function(t){for(var e,r=-1,n=t.length,i=t[n-1],a=0;++r<n;)e=i,i=t[r],a+=e[0]*i[1]-e[1]*i[0];return Math.abs(a)}(o(t,{type:\\\"Polygon\\\",arcs:[e]}).coordinates[0])}return e.forEach(function t(e){switch(e.type){case\\\"GeometryCollection\\\":e.geometries.forEach(t);break;case\\\"Polygon\\\":a(e.arcs);break;case\\\"MultiPolygon\\\":e.arcs.forEach(a)}}),n.forEach(function(t){if(!t._){var e=[],n=[t];for(t._=1,i.push(e);t=n.pop();)e.push(t),t.forEach(function(t){t.forEach(function(t){r[t<0?~t:t].forEach(function(t){t._||(t._=1,n.push(t))})})})}}),n.forEach(function(t){delete t._}),{type:\\\"MultiPolygon\\\",arcs:i.map(function(e){var n,i=[];if(e.forEach(function(t){t.forEach(function(t){t.forEach(function(t){r[t<0?~t:t].length<2&&i.push(t)})})}),(n=(i=s(t,i)).length)>1)for(var a,o,c=1,u=l(i[0]);c<n;++c)(a=l(i[c]))>u&&(o=i[0],i[0]=i[c],i[c]=o,u=a);return i})}}var u=function(t,e){for(var r=0,n=t.length;r<n;){var i=r+n>>>1;t[i]<e?r=i+1:n=i}return r};t.bbox=n,t.feature=function(t,e){return\\\"GeometryCollection\\\"===e.type?{type:\\\"FeatureCollection\\\",features:e.geometries.map(function(e){return a(t,e)})}:a(t,e)},t.mesh=function(t){return o(t,l.apply(this,arguments))},t.meshArcs=l,t.merge=function(t){return o(t,c.apply(this,arguments))},t.mergeArcs=c,t.neighbors=function(t){var e={},r=t.map(function(){return[]});function n(t,r){t.forEach(function(t){t<0&&(t=~t);var n=e[t];n?n.push(r):e[t]=[r]})}function i(t,e){t.forEach(function(t){n(t,e)})}var a={LineString:n,MultiLineString:i,Polygon:i,MultiPolygon:function(t,e){t.forEach(function(t){i(t,e)})}};for(var o in t.forEach(function t(e,r){\\\"GeometryCollection\\\"===e.type?e.geometries.forEach(function(e){t(e,r)}):e.type in a&&a[e.type](e.arcs,r)}),e)for(var s=e[o],l=s.length,c=0;c<l;++c)for(var f=c+1;f<l;++f){var h,p=s[c],d=s[f];(h=r[p])[o=u(h,d)]!==d&&h.splice(o,0,d),(h=r[d])[o=u(h,p)]!==p&&h.splice(o,0,p)}return r},t.quantize=function(t,e){if(!((e=Math.floor(e))>=2))throw new Error(\\\"n must be \\\\u22652\\\");if(t.transform)throw new Error(\\\"already quantized\\\");var r,i=n(t),a=i[0],o=(i[2]-a)/(e-1)||1,s=i[1],l=(i[3]-s)/(e-1)||1;function c(t){t[0]=Math.round((t[0]-a)/o),t[1]=Math.round((t[1]-s)/l)}function u(t){switch(t.type){case\\\"GeometryCollection\\\":t.geometries.forEach(u);break;case\\\"Point\\\":c(t.coordinates);break;case\\\"MultiPoint\\\":t.coordinates.forEach(c)}}for(r in t.arcs.forEach(function(t){for(var e,r,n,i=1,c=1,u=t.length,f=t[0],h=f[0]=Math.round((f[0]-a)/o),p=f[1]=Math.round((f[1]-s)/l);i<u;++i)f=t[i],r=Math.round((f[0]-a)/o),n=Math.round((f[1]-s)/l),r===h&&n===p||((e=t[c++])[0]=r-h,h=r,e[1]=n-p,p=n);c<2&&((e=t[c++])[0]=0,e[1]=0),t.length=c}),t.objects)u(t.objects[r]);return t.transform={scale:[o,l],translate:[a,s]},t},t.transform=r,t.untransform=function(t){if(null==(r=t.transform))return e;var r,n,i,a=r.scale[0],o=r.scale[1],s=r.translate[0],l=r.translate[1];return function(t,e){e||(n=i=0);var r=Math.round((t[0]-s)/a),c=Math.round((t[1]-l)/o);return t[0]=r-n,n=r,t[1]=c-i,i=c,t}},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.topojson=n.topojson||{})},{}],518:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){if(t<0)return[];if(0===t)return[[0]];for(var e=0|Math.round(a(t+1)),r=[],o=0;o<e;++o){for(var s=n.unrank(t,o),l=[0],c=0,u=0;u<s.length;++u)c+=1<<s[u],l.push(c);i(s)<1&&(l[0]=c,l[t]=0),r.push(l)}return r};var n=t(\\\"permutation-rank\\\"),i=t(\\\"permutation-parity\\\"),a=t(\\\"gamma\\\")},{gamma:220,\\\"permutation-parity\\\":446,\\\"permutation-rank\\\":447}],519:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.up||[0,1,0],n=t.right||f(r),i=t.radius||1,a=t.theta||0,u=t.phi||0;if(e=[].slice.call(e,0,3),r=[].slice.call(r,0,3),s(r,r),n=[].slice.call(n,0,3),s(n,n),\\\"eye\\\"in t){var p=t.eye,d=[p[0]-e[0],p[1]-e[1],p[2]-e[2]];o(n,d,r),c(n[0],n[1],n[2])<1e-6?n=f(r):s(n,n),i=c(d[0],d[1],d[2]);var g=l(r,d)/i,v=l(n,d)/i;u=Math.acos(g),a=Math.acos(v)}return i=Math.log(i),new h(t.zoomMin,t.zoomMax,e,r,n,i,a,u)};var n=t(\\\"filtered-vector\\\"),i=t(\\\"gl-mat4/invert\\\"),a=t(\\\"gl-mat4/rotate\\\"),o=t(\\\"gl-vec3/cross\\\"),s=t(\\\"gl-vec3/normalize\\\"),l=t(\\\"gl-vec3/dot\\\");function c(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function u(t){return Math.min(1,Math.max(-1,t))}function f(t){var e=Math.abs(t[0]),r=Math.abs(t[1]),n=Math.abs(t[2]),i=[0,0,0];e>Math.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),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 c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],g=this.computedAngle[1],v=Math.cos(d),m=Math.sin(d),y=Math.cos(g),x=Math.sin(g),b=this.computedCenter,_=v*y,w=m*y,k=x,M=-v*x,A=-m*x,T=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var C=_*r[a]+w*h[a]+k*e[a];E[4*a+1]=M*r[a]+A*h[a]+T*e[a],E[4*a+2]=C,E[4*a+3]=0}var L=E[1],z=E[5],O=E[9],I=E[2],P=E[6],D=E[10],R=z*D-O*P,B=O*I-L*D,F=L*P-z*I,N=c(R,B,F);R/=N,B/=N,F/=N,E[0]=R,E[4]=B,E[8]=F;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),g=(u/=d)*e+a*r,v=(f/=d)*e+o*r,m=(h/=d)*e+s*r;this.center.move(t,g,v,m);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;\\\"number\\\"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),g=Math.max(h,p,d);h===g?(s=s<0?-1:1,l=f=0):d===g?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var v=c(s,l,f);s/=v,l/=v,f/=v}var m,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,k=c(x-=s*w,b-=l*w,_-=f*w),M=l*(_/=k)-f*(b/=k),A=f*(x/=k)-s*_,T=s*b-l*x,S=c(M,A,T);if(M/=S,A/=S,T/=S,this.center.jump(t,H,G,W),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],C=e[5],L=e[9],z=E*x+C*b+L*_,O=E*M+C*A+L*T;m=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(O,z)}else{var I=e[2],P=e[6],D=e[10],R=I*s+P*l+D*f,B=I*x+P*b+D*_,F=I*M+P*A+D*T;m=Math.asin(u(R)),y=Math.atan2(F,B)}this.angle.jump(t,y,m),this.recalcMatrix(t);var N=e[2],j=e[6],V=e[10],U=this.computedMatrix;i(U,e);var q=U[15],H=U[12]/q,G=U[13]/q,W=U[14]/q,Y=Math.exp(this.computedRadius[0]);this.center.jump(t,H-N*Y,G-j*Y,W-V*Y)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,g=d[0],v=d[1],m=d[2],y=i*g+a*v+o*m,x=c(g-=y*i,v-=y*a,m-=y*o);if(!(x<.01&&(x=c(g=a*h-o*f,v=o*l-i*h,m=i*f-a*l))<1e-6)){g/=x,v/=x,m/=x,this.up.set(t,i,a,o),this.right.set(t,g,v,m),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*m-o*v,_=o*g-i*m,w=i*v-a*g,k=c(b,_,w),M=i*l+a*f+o*h,A=g*l+v*f+m*h,T=(b/=k)*l+(_/=k)*f+(w/=k)*h,S=Math.asin(u(M)),E=Math.atan2(T,A),C=this.angle._state,L=C[C.length-1],z=C[C.length-2];L%=2*Math.PI;var O=Math.abs(L+2*Math.PI-E),I=Math.abs(L-E),P=Math.abs(L-2*Math.PI-E);O<I&&(L+=2*Math.PI),P<I&&(L-=2*Math.PI),this.angle.jump(this.angle.lastT(),L,z),this.angle.set(t,E,S)}}}}},{\\\"filtered-vector\\\":215,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/rotate\\\":258,\\\"gl-vec3/cross\\\":317,\\\"gl-vec3/dot\\\":322,\\\"gl-vec3/normalize\\\":339}],520:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var i=t*e,a=n*t,o=a-(a-t),s=t-o,l=n*e,c=l-(l-e),u=e-c,f=s*u-(i-o*c-s*c-o*u);if(r)return r[0]=f,r[1]=i,r;return[f,i]};var n=+(Math.pow(2,27)+1)},{}],521:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n=t+e,i=n-t,a=e-i,o=t-(n-i);if(r)return r[0]=o+a,r[1]=n,r;return[o+a,n]}},{}],522:[function(t,e,r){(function(e,n){\\\"use strict\\\";var i=t(\\\"bit-twiddle\\\"),a=t(\\\"dup\\\");e.__TYPEDARRAY_POOL||(e.__TYPEDARRAY_POOL={UINT8:a([32,0]),UINT16:a([32,0]),UINT32:a([32,0]),INT8:a([32,0]),INT16:a([32,0]),INT32:a([32,0]),FLOAT:a([32,0]),DOUBLE:a([32,0]),DATA:a([32,0]),UINT8C:a([32,0]),BUFFER:a([32,0])});var o=\\\"undefined\\\"!=typeof Uint8ClampedArray,s=e.__TYPEDARRAY_POOL;s.UINT8C||(s.UINT8C=a([32,0])),s.BUFFER||(s.BUFFER=a([32,0]));var l=s.DATA,c=s.BUFFER;function u(t){if(t){var e=t.length||t.byteLength,r=i.log2(e);l[r].push(t)}}function f(t){t=i.nextPow2(t);var e=i.log2(t),r=l[e];return r.length>0?r.pop():new ArrayBuffer(t)}function h(t){return new Uint8Array(f(t),0,t)}function p(t){return new Uint16Array(f(2*t),0,t)}function d(t){return new Uint32Array(f(4*t),0,t)}function g(t){return new Int8Array(f(t),0,t)}function v(t){return new Int16Array(f(2*t),0,t)}function m(t){return new Int32Array(f(4*t),0,t)}function y(t){return new Float32Array(f(4*t),0,t)}function x(t){return new Float64Array(f(8*t),0,t)}function b(t){return o?new Uint8ClampedArray(f(t),0,t):h(t)}function _(t){return new DataView(f(t),0,t)}function w(t){t=i.nextPow2(t);var e=i.log2(t),r=c[e];return r.length>0?r.pop():new n(t)}r.free=function(t){if(n.isBuffer(t))c[i.log2(t.length)].push(t);else{if(\\\"[object ArrayBuffer]\\\"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|i.log2(e);l[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeInt8=r.freeInt16=r.freeInt32=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){u(t.buffer)},r.freeArrayBuffer=u,r.freeBuffer=function(t){c[i.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||\\\"arraybuffer\\\"===e)return f(t);switch(e){case\\\"uint8\\\":return h(t);case\\\"uint16\\\":return p(t);case\\\"uint32\\\":return d(t);case\\\"int8\\\":return g(t);case\\\"int16\\\":return v(t);case\\\"int32\\\":return m(t);case\\\"float\\\":case\\\"float32\\\":return y(t);case\\\"double\\\":case\\\"float64\\\":return x(t);case\\\"uint8_clamped\\\":return b(t);case\\\"buffer\\\":return w(t);case\\\"data\\\":case\\\"dataview\\\":return _(t);default:return null}return null},r.mallocArrayBuffer=f,r.mallocUint8=h,r.mallocUint16=p,r.mallocUint32=d,r.mallocInt8=g,r.mallocInt16=v,r.mallocInt32=m,r.mallocFloat32=r.mallocFloat=y,r.mallocFloat64=r.mallocDouble=x,r.mallocUint8Clamped=b,r.mallocDataView=_,r.mallocBuffer=w,r.clearCache=function(){for(var t=0;t<32;++t)s.UINT8[t].length=0,s.UINT16[t].length=0,s.UINT32[t].length=0,s.INT8[t].length=0,s.INT16[t].length=0,s.INT32[t].length=0,s.FLOAT[t].length=0,s.DOUBLE[t].length=0,s.UINT8C[t].length=0,l[t].length=0,c[t].length=0}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{},t(\\\"buffer\\\").Buffer)},{\\\"bit-twiddle\\\":80,buffer:93,dup:155}],523:[function(t,e,r){\\\"use strict\\\";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e<t;++e)this.roots[e]=e,this.ranks[e]=0}e.exports=n;var i=n.prototype;Object.defineProperty(i,\\\"length\\\",{get:function(){return this.roots.length}}),i.makeSet=function(){var t=this.roots.length;return this.roots.push(t),this.ranks.push(0),t},i.find=function(t){for(var e=t,r=this.roots;r[t]!==t;)t=r[t];for(;r[e]!==t;){var n=r[e];r[e]=t,e=n}return t},i.link=function(t,e){var r=this.find(t),n=this.find(e);if(r!==n){var i=this.ranks,a=this.roots,o=i[r],s=i[n];o<s?a[r]=n:s<o?a[n]=r:(a[n]=r,++i[r])}}},{}],524:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){return 0===t.length?t:e?(r||t.sort(e),function(t,e){for(var r=1,n=t.length,i=t[0],a=t[0],o=1;o<n;++o)if(a=i,e(i=t[o],a)){if(o===r){r++;continue}t[r++]=i}return t.length=r,t}(t,e)):(r||t.sort(),function(t){for(var e=1,r=t.length,n=t[0],i=t[0],a=1;a<r;++a,i=n)if(i=n,(n=t[a])!==i){if(a===e){e++;continue}t[e++]=n}return t.length=e,t}(t))}},{}],525:[function(t,e,r){var n=/[\\\\'\\\\\\\"]/;e.exports=function(t){return t?(n.test(t.charAt(0))&&(t=t.substr(1)),n.test(t.charAt(t.length-1))&&(t=t.substr(0,t.length-1)),t):\\\"\\\"}},{}],526:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){Array.isArray(r)||(r=[].slice.call(arguments,2));for(var n=0,i=r.length;n<i;n++){var a=r[n];for(var o in a)if((void 0===e[o]||Array.isArray(e[o])||t[o]!==e[o])&&o in e){var s;if(!0===a[o])s=e[o];else{if(!1===a[o])continue;if(\\\"function\\\"==typeof a[o]&&void 0===(s=a[o](e[o],t,e)))continue}t[o]=s}}return t}},{}],527:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){\\\"object\\\"==typeof e&&null!==e||(e={});return n(t,e.canvas||i,e.context||a,e)};var n=t(\\\"./lib/vtext\\\"),i=null,a=null;\\\"undefined\\\"!=typeof document&&((i=document.createElement(\\\"canvas\\\")).width=8192,i.height=1024,a=i.getContext(\\\"2d\\\"))},{\\\"./lib/vtext\\\":528}],528:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var a=n.size||64,o=n.font||\\\"normal\\\";return r.font=a+\\\"px \\\"+o,r.textAlign=\\\"start\\\",r.textBaseline=\\\"alphabetic\\\",r.direction=\\\"ltr\\\",f(function(t,e,r,n){var a=0|Math.ceil(e.measureText(r).width+2*n);if(a>8192)throw new Error(\\\"vectorize-text: String too long (sorry, this will get fixed later)\\\");var o=3*n;t.height<o&&(t.height=o),e.fillStyle=\\\"#000\\\",e.fillRect(0,0,t.width,t.height),e.fillStyle=\\\"#fff\\\",e.fillText(r,n,2*n);var s=e.getImageData(0,0,a,o);return i(s.data,[o,a,4]).pick(-1,-1,0).transpose(1,0)}(e,r,t,a),n,a)},e.exports.processPixels=f;var n=t(\\\"surface-nets\\\"),i=t(\\\"ndarray\\\"),a=t(\\\"simplify-planar-graph\\\"),o=t(\\\"clean-pslg\\\"),s=t(\\\"cdt2d\\\"),l=t(\\\"planar-graph-to-polyline\\\");function c(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function u(t,e,r,n){var i=c(t,n),a=function(t,e,r){for(var n=e.textAlign||\\\"start\\\",i=e.textBaseline||\\\"alphabetic\\\",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l<s;++l)for(var c=t[l],u=0;u<2;++u)a[u]=0|Math.min(a[u],c[u]),o[u]=0|Math.max(o[u],c[u]);var f=0;switch(n){case\\\"center\\\":f=-.5*(a[0]+o[0]);break;case\\\"right\\\":case\\\"end\\\":f=-o[0];break;case\\\"left\\\":case\\\"start\\\":f=-a[0];break;default:throw new Error(\\\"vectorize-text: Unrecognized textAlign: '\\\"+n+\\\"'\\\")}var h=0;switch(i){case\\\"hanging\\\":case\\\"top\\\":h=-a[1];break;case\\\"middle\\\":h=-.5*(a[1]+o[1]);break;case\\\"alphabetic\\\":case\\\"ideographic\\\":h=-3*r;break;case\\\"bottom\\\":h=-o[1];break;default:throw new Error(\\\"vectorize-text: Unrecoginized textBaseline: '\\\"+i+\\\"'\\\")}var p=1/r;return\\\"lineHeight\\\"in e?p*=+e.lineHeight:\\\"width\\\"in e?p=e.width/(o[0]-a[0]):\\\"height\\\"in e&&(p=e.height/(o[1]-a[1])),t.map(function(t){return[p*(t[0]+f),p*(t[1]+h)]})}(i.positions,e,r),u=i.edges,f=\\\"ccw\\\"===e.orientation;if(o(a,u),e.polygons||e.polygon||e.polyline){for(var h=l(u,a),p=new Array(h.length),d=0;d<h.length;++d){for(var g=h[d],v=new Array(g.length),m=0;m<g.length;++m){for(var y=g[m],x=new Array(y.length),b=0;b<y.length;++b)x[b]=a[y[b]].slice();f&&x.reverse(),v[m]=x}p[d]=v}return p}return e.triangles||e.triangulate||e.triangle?{cells:s(a,u,{delaunay:!1,exterior:!1,interior:!0}),positions:a}:{edges:u,positions:a}}function f(t,e,r){try{return u(t,e,r,!0)}catch(t){}try{return u(t,e,r,!1)}catch(t){}return e.polygons||e.polyline||e.polygon?[]:e.triangles||e.triangulate||e.triangle?{cells:[],positions:[]}:{edges:[],positions:[]}}},{cdt2d:94,\\\"clean-pslg\\\":104,ndarray:433,\\\"planar-graph-to-polyline\\\":451,\\\"simplify-planar-graph\\\":500,\\\"surface-nets\\\":508}],529:[function(t,e,r){!function(){\\\"use strict\\\";if(\\\"undefined\\\"==typeof ses||!ses.ok||ses.ok()){\\\"undefined\\\"!=typeof ses&&(ses.weakMapPermitHostObjects=v);var t=!1;if(\\\"function\\\"==typeof WeakMap){var r=WeakMap;if(\\\"undefined\\\"!=typeof navigator&&/Firefox/.test(navigator.userAgent));else{var n=new r,i=Object.freeze({});if(n.set(i,1),1===n.get(i))return void(e.exports=WeakMap);t=!0}}Object.prototype.hasOwnProperty;var a=Object.getOwnPropertyNames,o=Object.defineProperty,s=Object.isExtensible,l=\\\"weakmap:\\\",c=l+\\\"ident:\\\"+Math.random()+\\\"___\\\";if(\\\"undefined\\\"!=typeof crypto&&\\\"function\\\"==typeof crypto.getRandomValues&&\\\"function\\\"==typeof ArrayBuffer&&\\\"function\\\"==typeof Uint8Array){var u=new ArrayBuffer(25),f=new Uint8Array(u);crypto.getRandomValues(f),c=l+\\\"rand:\\\"+Array.prototype.map.call(f,function(t){return(t%36).toString(36)}).join(\\\"\\\")+\\\"___\\\"}if(o(Object,\\\"getOwnPropertyNames\\\",{value:function(t){return a(t).filter(m)}}),\\\"getPropertyNames\\\"in Object){var h=Object.getPropertyNames;o(Object,\\\"getPropertyNames\\\",{value:function(t){return h(t).filter(m)}})}!function(){var t=Object.freeze;o(Object,\\\"freeze\\\",{value:function(e){return y(e),t(e)}});var e=Object.seal;o(Object,\\\"seal\\\",{value:function(t){return y(t),e(t)}});var r=Object.preventExtensions;o(Object,\\\"preventExtensions\\\",{value:function(t){return y(t),r(t)}})}();var p=!1,d=0,g=function(){this instanceof g||b();var t=[],e=[],r=d++;return Object.create(g.prototype,{get___:{value:x(function(n,i){var a,o=y(n);return o?r in o?o[r]:i:(a=t.indexOf(n))>=0?e[a]:i})},has___:{value:x(function(e){var n=y(e);return n?r in n:t.indexOf(e)>=0})},set___:{value:x(function(n,i){var a,o=y(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this})},delete___:{value:x(function(n){var i,a,o=y(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0||(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,0))})}})};g.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),\\\"function\\\"==typeof r?function(){function n(){this instanceof g||b();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new g),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new g),i.set___(t,e)}else n.set(t,e);return this},Object.create(g.prototype,{get___:{value:x(function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)})},has___:{value:x(function(t){return n.has(t)||!!i&&i.has___(t)})},set___:{value:x(e)},delete___:{value:x(function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e})},permitHostObjects___:{value:x(function(t){if(t!==v)throw new Error(\\\"bogus call to permitHostObjects___\\\");a=!0})}})}t&&\\\"undefined\\\"!=typeof Proxy&&(Proxy=void 0),n.prototype=g.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,\\\"constructor\\\",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():(\\\"undefined\\\"!=typeof Proxy&&(Proxy=void 0),e.exports=g)}function v(t){t.permitHostObjects___&&t.permitHostObjects___(v)}function m(t){return!(t.substr(0,l.length)==l&&\\\"___\\\"===t.substr(t.length-3))}function y(t){if(t!==Object(t))throw new TypeError(\\\"Not an object: \\\"+t);var e=t[c];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,c,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function x(t){return t.prototype=null,Object.freeze(t)}function b(){p||\\\"undefined\\\"==typeof console||(p=!0,console.warn(\\\"WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future.\\\"))}}()},{}],530:[function(t,e,r){var n=t(\\\"./hidden-store.js\\\");e.exports=function(){var t={};return function(e){if((\\\"object\\\"!=typeof e||null===e)&&\\\"function\\\"!=typeof e)throw new Error(\\\"Weakmap-shim: Key must be object\\\");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{\\\"./hidden-store.js\\\":531}],531:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,\\\"valueOf\\\",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],532:[function(t,e,r){var n=t(\\\"./create-store.js\\\");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty(\\\"value\\\")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return\\\"value\\\"in t(e)},delete:function(e){return delete t(e).value}}}},{\\\"./create-store.js\\\":530}],533:[function(t,e,r){var n=t(\\\"get-canvas-context\\\");e.exports=function(t){return n(\\\"webgl\\\",t)}},{\\\"get-canvas-context\\\":221}],534:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\"),a=n.instance();function o(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}o.prototype=new n.baseCalendar,i(o.prototype,{name:\\\"Chinese\\\",jdEpoch:1721425.5,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Chinese\\\",epochs:[\\\"BEC\\\",\\\"EC\\\"],monthNumbers:function(t,e){if(\\\"string\\\"==typeof t){var r=t.match(l);return r?r[0]:\\\"\\\"}var n=this._validateYear(t),i=t.month(),a=\\\"\\\"+this.toChineseMonth(n,i);return e&&a.length<2&&(a=\\\"0\\\"+a),this.isIntercalaryMonth(n,i)&&(a+=\\\"i\\\"),a},monthNames:function(t){if(\\\"string\\\"==typeof t){var e=t.match(c);return e?e[0]:\\\"\\\"}var r=this._validateYear(t),n=t.month(),i=[\\\"\\\\u4e00\\\\u6708\\\",\\\"\\\\u4e8c\\\\u6708\\\",\\\"\\\\u4e09\\\\u6708\\\",\\\"\\\\u56db\\\\u6708\\\",\\\"\\\\u4e94\\\\u6708\\\",\\\"\\\\u516d\\\\u6708\\\",\\\"\\\\u4e03\\\\u6708\\\",\\\"\\\\u516b\\\\u6708\\\",\\\"\\\\u4e5d\\\\u6708\\\",\\\"\\\\u5341\\\\u6708\\\",\\\"\\\\u5341\\\\u4e00\\\\u6708\\\",\\\"\\\\u5341\\\\u4e8c\\\\u6708\\\"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i=\\\"\\\\u95f0\\\"+i),i},monthNamesShort:function(t){if(\\\"string\\\"==typeof t){var e=t.match(u);return e?e[0]:\\\"\\\"}var r=this._validateYear(t),n=t.month(),i=[\\\"\\\\u4e00\\\",\\\"\\\\u4e8c\\\",\\\"\\\\u4e09\\\",\\\"\\\\u56db\\\",\\\"\\\\u4e94\\\",\\\"\\\\u516d\\\",\\\"\\\\u4e03\\\",\\\"\\\\u516b\\\",\\\"\\\\u4e5d\\\",\\\"\\\\u5341\\\",\\\"\\\\u5341\\\\u4e00\\\",\\\"\\\\u5341\\\\u4e8c\\\"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i=\\\"\\\\u95f0\\\"+i),i},parseMonth:function(t,e){t=this._validateYear(t);var r,n=parseInt(e);if(isNaN(n))\\\"\\\\u95f0\\\"===e[0]&&(r=!0,e=e.substring(1)),\\\"\\\\u6708\\\"===e[e.length-1]&&(e=e.substring(0,e.length-1)),n=1+[\\\"\\\\u4e00\\\",\\\"\\\\u4e8c\\\",\\\"\\\\u4e09\\\",\\\"\\\\u56db\\\",\\\"\\\\u4e94\\\",\\\"\\\\u516d\\\",\\\"\\\\u4e03\\\",\\\"\\\\u516b\\\",\\\"\\\\u4e5d\\\",\\\"\\\\u5341\\\",\\\"\\\\u5341\\\\u4e00\\\",\\\"\\\\u5341\\\\u4e8c\\\"].indexOf(e);else{var i=e[e.length-1];r=\\\"i\\\"===i||\\\"I\\\"===i}return this.toMonthIndex(t,n,r)},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}},_validateYear:function(t,e){if(t.year&&(t=t.year()),\\\"number\\\"!=typeof t||t<1888||t>2111)throw e.replace(/\\\\{0\\\\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var i=this.intercalaryMonth(t);if(r&&e!==i||e<1||e>12)throw n.local.invalidMonth.replace(/\\\\{0\\\\}/,this.local.name);return i?!r&&e<=i?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw n.local.invalidMonth.replace(/\\\\{0\\\\}/,this.local.name);return r?e<r?e+1:e:e+1},intercalaryMonth:function(t){return t=this._validateYear(t),f[t-f[0]]>>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var i,o=this._validateYear(t,n.local.invalidyear),s=h[o-h[0]],l=s>>9&4095,c=s>>5&15,u=31&s;(i=a.newDate(l,c,u)).add(4-(i.dayOfWeek()||7),\\\"d\\\");var f=this.toJD(t,e,r)-i.toJD();return 1+Math.floor(f/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=f[t-f[0]];if(e>(r>>13?12:11))throw n.local.invalidMonth.replace(/\\\\{0\\\\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,s,r,n.local.invalidDate);t=this._validateYear(i.year()),e=i.month(),r=i.day();var o=this.isIntercalaryMonth(t,e),s=this.toChineseMonth(t,e),l=function(t,e,r,n,i){var a,o,s;if(\\\"object\\\"==typeof t)o=t,a=e||{};else{var l=\\\"number\\\"==typeof t&&t>=1888&&t<=2111;if(!l)throw new Error(\\\"Lunar year outside range 1888-2111\\\");var c=\\\"number\\\"==typeof e&&e>=1&&e<=12;if(!c)throw new Error(\\\"Lunar month outside range 1 - 12\\\");var u,p=\\\"number\\\"==typeof r&&r>=1&&r<=30;if(!p)throw new Error(\\\"Lunar day outside range 1 - 30\\\");\\\"object\\\"==typeof n?(u=!1,a=n):(u=!!n,a=i||{}),o={year:t,month:e,day:r,isIntercalary:u}}s=o.day-1;var d,g=f[o.year-f[0]],v=g>>13;d=v?o.month>v?o.month:o.isIntercalary?o.month:o.month-1:o.month-1;for(var m=0;m<d;m++){var y=g&1<<12-m?30:29;s+=y}var x=h[o.year-h[0]],b=new Date(x>>9&4095,(x>>5&15)-1,(31&x)+s);return a.year=b.getFullYear(),a.month=1+b.getMonth(),a.day=b.getDate(),a}(t,s,r,o);return a.toJD(l.year,l.month,l.day)},fromJD:function(t){var e=a.fromJD(t),r=function(t,e,r,n){var i,a;if(\\\"object\\\"==typeof t)i=t,a=e||{};else{var o=\\\"number\\\"==typeof t&&t>=1888&&t<=2111;if(!o)throw new Error(\\\"Solar year outside range 1888-2111\\\");var s=\\\"number\\\"==typeof e&&e>=1&&e<=12;if(!s)throw new Error(\\\"Solar month outside range 1 - 12\\\");var l=\\\"number\\\"==typeof r&&r>=1&&r<=31;if(!l)throw new Error(\\\"Solar day outside range 1 - 31\\\");i={year:t,month:e,day:r},a=n||{}}var c=h[i.year-h[0]],u=i.year<<9|i.month<<5|i.day;a.year=u>=c?i.year:i.year-1,c=h[a.year-h[0]];var p,d=new Date(c>>9&4095,(c>>5&15)-1,31&c),g=new Date(i.year,i.month-1,i.day);p=Math.round((g-d)/864e5);var v,m=f[a.year-f[0]];for(v=0;v<13;v++){var y=m&1<<12-v?30:29;if(p<y)break;p-=y}var x=m>>13;!x||v<x?(a.isIntercalary=!1,a.month=1+v):v===x?(a.isIntercalary=!0,a.month=v):(a.isIntercalary=!1,a.month=v);return a.day=1+p,a}(e.year(),e.month(),e.day()),n=this.toMonthIndex(r.year,r.month,r.isIntercalary);return this.newDate(r.year,n,r.day)},fromString:function(t){var e=t.match(s),r=this._validateYear(+e[1]),n=+e[2],i=!!e[3],a=this.toMonthIndex(r,n,i),o=+e[4];return this.newDate(r,a,o)},add:function(t,e,r){var n=t.year(),i=t.month(),a=this.isIntercalaryMonth(n,i),s=this.toChineseMonth(n,i),l=Object.getPrototypeOf(o.prototype).add.call(this,t,e,r);if(\\\"y\\\"===r){var c=l.year(),u=l.month(),f=this.isIntercalaryMonth(c,s),h=a&&f?this.toMonthIndex(c,s,!0):this.toMonthIndex(c,s,!1);h!==u&&l.month(h)}return l}});var s=/^\\\\s*(-?\\\\d\\\\d\\\\d\\\\d|\\\\d\\\\d)[-\\\\/](\\\\d?\\\\d)([iI]?)[-\\\\/](\\\\d?\\\\d)/m,l=/^\\\\d?\\\\d[iI]?/m,c=/^\\\\u95f0?\\\\u5341?[\\\\u4e00\\\\u4e8c\\\\u4e09\\\\u56db\\\\u4e94\\\\u516d\\\\u4e03\\\\u516b\\\\u4e5d]?\\\\u6708/m,u=/^\\\\u95f0?\\\\u5341?[\\\\u4e00\\\\u4e8c\\\\u4e09\\\\u56db\\\\u4e94\\\\u516d\\\\u4e03\\\\u516b\\\\u4e5d]?/m;n.calendars.chinese=o;var f=[1887,5780,5802,19157,2742,50359,1198,2646,46378,7466,3412,30122,5482,67949,2396,5294,43597,6732,6954,36181,2772,4954,18781,2396,54427,5274,6730,47781,5800,6868,21210,4790,59703,2350,5270,46667,3402,3496,38325,1388,4782,18735,2350,52374,6804,7498,44457,2906,1388,29294,4700,63789,6442,6804,56138,5802,2772,38235,1210,4698,22827,5418,63125,3476,5802,43701,2484,5302,27223,2646,70954,7466,3412,54698,5482,2412,38062,5294,2636,32038,6954,60245,2772,4826,43357,2394,5274,39501,6730,72357,5800,5844,53978,4790,2358,38039,5270,87627,3402,3496,54708,5484,4782,43311,2350,3222,27978,7498,68965,2904,5484,45677,4700,6444,39573,6804,6986,19285,2772,62811,1210,4698,47403,5418,5780,38570,5546,76469,2420,5302,51799,2646,5414,36501,3412,5546,18869,2412,54446,5276,6732,48422,6822,2900,28010,4826,92509,2394,5274,55883,6730,6820,47956,5812,2778,18779,2358,62615,5270,5450,46757,3492,5556,27318,4718,67887,2350,3222,52554,7498,3428,38252,5468,4700,31022,6444,64149,6804,6986,43861,2772,5338,35421,2650,70955,5418,5780,54954,5546,2740,38074,5302,2646,29991,3366,61011,3412,5546,43445,2412,5294,35406,6732,72998,6820,6996,52586,2778,2396,38045,5274,6698,23333,6820,64338,5812,2746,43355,2358,5270,39499,5450,79525,3492,5548],h=[1887,966732,967231,967733,968265,968766,969297,969798,970298,970829,971330,971830,972362,972863,973395,973896,974397,974928,975428,975929,976461,976962,977462,977994,978494,979026,979526,980026,980558,981059,981559,982091,982593,983124,983624,984124,984656,985157,985656,986189,986690,987191,987722,988222,988753,989254,989754,990286,990788,991288,991819,992319,992851,993352,993851,994383,994885,995385,995917,996418,996918,997450,997949,998481,998982,999483,1000014,1000515,1001016,1001548,1002047,1002578,1003080,1003580,1004111,1004613,1005113,1005645,1006146,1006645,1007177,1007678,1008209,1008710,1009211,1009743,1010243,1010743,1011275,1011775,1012306,1012807,1013308,1013840,1014341,1014841,1015373,1015874,1016404,1016905,1017405,1017937,1018438,1018939,1019471,1019972,1020471,1021002,1021503,1022035,1022535,1023036,1023568,1024069,1024568,1025100,1025601,1026102,1026633,1027133,1027666,1028167,1028666,1029198,1029699,1030199,1030730,1031231,1031763,1032264,1032764,1033296,1033797,1034297,1034828,1035329,1035830,1036362,1036861,1037393,1037894,1038394,1038925,1039427,1039927,1040459,1040959,1041491,1041992,1042492,1043023,1043524,1044024,1044556,1045057,1045558,1046090,1046590,1047121,1047622,1048122,1048654,1049154,1049655,1050187,1050689,1051219,1051720,1052220,1052751,1053252,1053752,1054284,1054786,1055285,1055817,1056317,1056849,1057349,1057850,1058382,1058883,1059383,1059915,1060415,1060947,1061447,1061947,1062479,1062981,1063480,1064012,1064514,1065014,1065545,1066045,1066577,1067078,1067578,1068110,1068611,1069112,1069642,1070142,1070674,1071175,1071675,1072207,1072709,1073209,1073740,1074241,1074741,1075273,1075773,1076305,1076807,1077308,1077839,1078340,1078840,1079372,1079871,1080403,1080904]},{\\\"../main\\\":548,\\\"object-assign\\\":437}],535:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Coptic\\\",jdEpoch:1825029.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Coptic\\\",epochs:[\\\"BAM\\\",\\\"AM\\\"],monthNames:[\\\"Thout\\\",\\\"Paopi\\\",\\\"Hathor\\\",\\\"Koiak\\\",\\\"Tobi\\\",\\\"Meshir\\\",\\\"Paremhat\\\",\\\"Paremoude\\\",\\\"Pashons\\\",\\\"Paoni\\\",\\\"Epip\\\",\\\"Mesori\\\",\\\"Pi Kogi Enavot\\\"],monthNamesShort:[\\\"Tho\\\",\\\"Pao\\\",\\\"Hath\\\",\\\"Koi\\\",\\\"Tob\\\",\\\"Mesh\\\",\\\"Pat\\\",\\\"Pad\\\",\\\"Pash\\\",\\\"Pao\\\",\\\"Epi\\\",\\\"Meso\\\",\\\"PiK\\\"],dayNames:[\\\"Tkyriaka\\\",\\\"Pesnau\\\",\\\"Pshoment\\\",\\\"Peftoou\\\",\\\"Ptiou\\\",\\\"Psoou\\\",\\\"Psabbaton\\\"],dayNamesShort:[\\\"Tky\\\",\\\"Pes\\\",\\\"Psh\\\",\\\"Pef\\\",\\\"Pti\\\",\\\"Pso\\\",\\\"Psa\\\"],dayNamesMin:[\\\"Tk\\\",\\\"Pes\\\",\\\"Psh\\\",\\\"Pef\\\",\\\"Pt\\\",\\\"Pso\\\",\\\"Psa\\\"],digits:null,dateFormat:\\\"dd/mm/yyyy\\\",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[\\\"\\\"].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.coptic=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],536:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Discworld\\\",jdEpoch:1721425.5,daysPerMonth:[16,32,32,32,32,32,32,32,32,32,32,32,32],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Discworld\\\",epochs:[\\\"BUC\\\",\\\"UC\\\"],monthNames:[\\\"Ick\\\",\\\"Offle\\\",\\\"February\\\",\\\"March\\\",\\\"April\\\",\\\"May\\\",\\\"June\\\",\\\"Grune\\\",\\\"August\\\",\\\"Spune\\\",\\\"Sektober\\\",\\\"Ember\\\",\\\"December\\\"],monthNamesShort:[\\\"Ick\\\",\\\"Off\\\",\\\"Feb\\\",\\\"Mar\\\",\\\"Apr\\\",\\\"May\\\",\\\"Jun\\\",\\\"Gru\\\",\\\"Aug\\\",\\\"Spu\\\",\\\"Sek\\\",\\\"Emb\\\",\\\"Dec\\\"],dayNames:[\\\"Sunday\\\",\\\"Octeday\\\",\\\"Monday\\\",\\\"Tuesday\\\",\\\"Wednesday\\\",\\\"Thursday\\\",\\\"Friday\\\",\\\"Saturday\\\"],dayNamesShort:[\\\"Sun\\\",\\\"Oct\\\",\\\"Mon\\\",\\\"Tue\\\",\\\"Wed\\\",\\\"Thu\\\",\\\"Fri\\\",\\\"Sat\\\"],dayNamesMin:[\\\"Su\\\",\\\"Oc\\\",\\\"Mo\\\",\\\"Tu\\\",\\\"We\\\",\\\"Th\\\",\\\"Fr\\\",\\\"Sa\\\"],digits:null,dateFormat:\\\"yyyy/mm/dd\\\",firstDay:2,isRTL:!1}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),13},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),400},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/8)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]},daysInWeek:function(){return 8},dayOfWeek:function(t,e,r){return(this._validate(t,e,r,n.local.invalidDate).day()+1)%8},weekDay:function(t,e,r){var n=this.dayOfWeek(t,e,r);return n>=2&&n<=6},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{century:o[Math.floor((i.year()-1)/100)+1]||\\\"\\\"}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year()+(i.year()<0?1:0),e=i.month(),(r=i.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var o={20:\\\"Fruitbat\\\",21:\\\"Anchovy\\\"};n.calendars.discworld=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],537:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Ethiopian\\\",jdEpoch:1724220.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[\\\"\\\"].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.ethiopian=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],538:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return o(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),12===e&&this.leapYear(t)?30:8===e&&5===o(this.daysInYear(t),10)?30:9===e&&3===o(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{yearType:(this.leapYear(i)?\\\"embolismic\\\":\\\"common\\\")+\\\" \\\"+[\\\"deficient\\\",\\\"regular\\\",\\\"complete\\\"][this.daysInYear(i)%10-3]}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t<=0?t+1:t,o=this.jdEpoch+this._delay1(a)+this._delay2(a)+r+1;if(e<7){for(var s=7;s<=this.monthsInYear(t);s++)o+=this.daysInMonth(t,s);for(s=1;s<e;s++)o+=this.daysInMonth(t,s)}else for(s=7;s<e;s++)o+=this.daysInMonth(t,s);return o},_delay1:function(t){var e=Math.floor((235*t-234)/19),r=12084+13753*e,n=29*e+Math.floor(r/25920);return o(3*(n+1),7)<3&&n++,n},_delay2:function(t){var e=this._delay1(t-1),r=this._delay1(t);return this._delay1(t+1)-r==356?2:r-e==382?1:0},fromJD:function(t){t=Math.floor(t)+.5;for(var e=Math.floor(98496*(t-this.jdEpoch)/35975351)-1;t>=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=t<this.toJD(e,1,1)?7:1;t>this.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.hebrew=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],539:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Islamic\\\",jdEpoch:1948439.5,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(t){return(11*this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),t=t<=0?t+1:t,(r=i.day())+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.islamic=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],540:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Julian\\\",jdEpoch:1721423.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),r=i.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),n.calendars.julian=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],541:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}function o(t,e){return t-e*Math.floor(t/e)}function s(t,e){return o(t-1,e)+1}a.prototype=new n.baseCalendar,i(a.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(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+\\\".\\\"+Math.floor(t/20)+\\\".\\\"+t%20},forYear:function(t){if((t=t.split(\\\".\\\")).length<3)throw\\\"Invalid Mayan year\\\";for(var e=0,r=0;r<t.length;r++){var n=parseInt(t[r],10);if(Math.abs(n)>19||r>0&&n<0)throw\\\"Invalid Mayan year\\\";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),!0},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate).toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(t){var e=o((t-=this.jdEpoch)+8+340,365);return[Math.floor(e/20)+1,o(e,20)]},_toTzolkin:function(t){return[s((t-=this.jdEpoch)+20,20),s(t+4,13)]},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return i.day()+20*i.month()+360*i.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),n.calendars.mayan=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],542:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar;var o=n.instance(\\\"gregorian\\\");i(a.prototype,{name:\\\"Nanakshahi\\\",jdEpoch:2257673.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[\\\"\\\"].invalidYear);return o.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidMonth);(t=i.year())<0&&t++;for(var a=i.day(),s=1;s<i.month();s++)a+=this.daysPerMonth[s-1];return a+o.toJD(t+1468,3,13)},fromJD:function(t){t=Math.floor(t+.5);for(var e=Math.floor((t-(this.jdEpoch-1))/366);t>=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),n.calendars.nanakshahi=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],543:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Nepali\\\",jdEpoch:1700709.5,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(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),\\\"undefined\\\"==typeof this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),\\\"undefined\\\"==typeof this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=n.instance(),o=0,s=e,l=t;this._createMissingCalendarData(t);var c=t-(s>9||9===s&&r>=this.NEPALI_CALENDAR_DATA[l][0]?56:57);for(9!==e&&(o=r,s--);9!==s;)s<=0&&(s=12,l--),o+=this.NEPALI_CALENDAR_DATA[l][s],s--;return 9===e?(o+=r-this.NEPALI_CALENDAR_DATA[l][0])<0&&(o+=a.daysInYear(c)):o+=this.NEPALI_CALENDAR_DATA[l][9]-this.NEPALI_CALENDAR_DATA[l][0],a.newDate(c,1,1).add(o,\\\"d\\\").toJD()},fromJD:function(t){var e=n.instance().fromJD(t),r=e.year(),i=e.dayOfYear(),a=r+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)++o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var c=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,c)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r<t+2;r++)\\\"undefined\\\"==typeof this.NEPALI_CALENDAR_DATA[r]&&(this.NEPALI_CALENDAR_DATA[r]=e)},NEPALI_CALENDAR_DATA:{1970:[18,31,31,32,31,31,31,30,29,30,29,30,30],1971:[18,31,31,32,31,32,30,30,29,30,29,30,30],1972:[17,31,32,31,32,31,30,30,30,29,29,30,30],1973:[19,30,32,31,32,31,30,30,30,29,30,29,31],1974:[19,31,31,32,30,31,31,30,29,30,29,30,30],1975:[18,31,31,32,32,30,31,30,29,30,29,30,30],1976:[17,31,32,31,32,31,30,30,30,29,29,30,31],1977:[18,31,32,31,32,31,31,29,30,29,30,29,31],1978:[18,31,31,32,31,31,31,30,29,30,29,30,30],1979:[18,31,31,32,32,31,30,30,29,30,29,30,30],1980:[17,31,32,31,32,31,30,30,30,29,29,30,31],1981:[18,31,31,31,32,31,31,29,30,30,29,30,30],1982:[18,31,31,32,31,31,31,30,29,30,29,30,30],1983:[18,31,31,32,32,31,30,30,29,30,29,30,30],1984:[17,31,32,31,32,31,30,30,30,29,29,30,31],1985:[18,31,31,31,32,31,31,29,30,30,29,30,30],1986:[18,31,31,32,31,31,31,30,29,30,29,30,30],1987:[18,31,32,31,32,31,30,30,29,30,29,30,30],1988:[17,31,32,31,32,31,30,30,30,29,29,30,31],1989:[18,31,31,31,32,31,31,30,29,30,29,30,30],1990:[18,31,31,32,31,31,31,30,29,30,29,30,30],1991:[18,31,32,31,32,31,30,30,29,30,29,30,30],1992:[17,31,32,31,32,31,30,30,30,29,30,29,31],1993:[18,31,31,31,32,31,31,30,29,30,29,30,30],1994:[18,31,31,32,31,31,31,30,29,30,29,30,30],1995:[17,31,32,31,32,31,30,30,30,29,29,30,30],1996:[17,31,32,31,32,31,30,30,30,29,30,29,31],1997:[18,31,31,32,31,31,31,30,29,30,29,30,30],1998:[18,31,31,32,31,31,31,30,29,30,29,30,30],1999:[17,31,32,31,32,31,30,30,30,29,29,30,31],2000:[17,30,32,31,32,31,30,30,30,29,30,29,31],2001:[18,31,31,32,31,31,31,30,29,30,29,30,30],2002:[18,31,31,32,32,31,30,30,29,30,29,30,30],2003:[17,31,32,31,32,31,30,30,30,29,29,30,31],2004:[17,30,32,31,32,31,30,30,30,29,30,29,31],2005:[18,31,31,32,31,31,31,30,29,30,29,30,30],2006:[18,31,31,32,32,31,30,30,29,30,29,30,30],2007:[17,31,32,31,32,31,30,30,30,29,29,30,31],2008:[17,31,31,31,32,31,31,29,30,30,29,29,31],2009:[18,31,31,32,31,31,31,30,29,30,29,30,30],2010:[18,31,31,32,32,31,30,30,29,30,29,30,30],2011:[17,31,32,31,32,31,30,30,30,29,29,30,31],2012:[17,31,31,31,32,31,31,29,30,30,29,30,30],2013:[18,31,31,32,31,31,31,30,29,30,29,30,30],2014:[18,31,31,32,32,31,30,30,29,30,29,30,30],2015:[17,31,32,31,32,31,30,30,30,29,29,30,31],2016:[17,31,31,31,32,31,31,29,30,30,29,30,30],2017:[18,31,31,32,31,31,31,30,29,30,29,30,30],2018:[18,31,32,31,32,31,30,30,29,30,29,30,30],2019:[17,31,32,31,32,31,30,30,30,29,30,29,31],2020:[17,31,31,31,32,31,31,30,29,30,29,30,30],2021:[18,31,31,32,31,31,31,30,29,30,29,30,30],2022:[17,31,32,31,32,31,30,30,30,29,29,30,30],2023:[17,31,32,31,32,31,30,30,30,29,30,29,31],2024:[17,31,31,31,32,31,31,30,29,30,29,30,30],2025:[18,31,31,32,31,31,31,30,29,30,29,30,30],2026:[17,31,32,31,32,31,30,30,30,29,29,30,31],2027:[17,30,32,31,32,31,30,30,30,29,30,29,31],2028:[17,31,31,32,31,31,31,30,29,30,29,30,30],2029:[18,31,31,32,31,32,30,30,29,30,29,30,30],2030:[17,31,32,31,32,31,30,30,30,30,30,30,31],2031:[17,31,32,31,32,31,31,31,31,31,31,31,31],2032:[17,32,32,32,32,32,32,32,32,32,32,32,32],2033:[18,31,31,32,32,31,30,30,29,30,29,30,30],2034:[17,31,32,31,32,31,30,30,30,29,29,30,31],2035:[17,30,32,31,32,31,31,29,30,30,29,29,31],2036:[17,31,31,32,31,31,31,30,29,30,29,30,30],2037:[18,31,31,32,32,31,30,30,29,30,29,30,30],2038:[17,31,32,31,32,31,30,30,30,29,29,30,31],2039:[17,31,31,31,32,31,31,29,30,30,29,30,30],2040:[17,31,31,32,31,31,31,30,29,30,29,30,30],2041:[18,31,31,32,32,31,30,30,29,30,29,30,30],2042:[17,31,32,31,32,31,30,30,30,29,29,30,31],2043:[17,31,31,31,32,31,31,29,30,30,29,30,30],2044:[17,31,31,32,31,31,31,30,29,30,29,30,30],2045:[18,31,32,31,32,31,30,30,29,30,29,30,30],2046:[17,31,32,31,32,31,30,30,30,29,29,30,31],2047:[17,31,31,31,32,31,31,30,29,30,29,30,30],2048:[17,31,31,32,31,31,31,30,29,30,29,30,30],2049:[17,31,32,31,32,31,30,30,30,29,29,30,30],2050:[17,31,32,31,32,31,30,30,30,29,30,29,31],2051:[17,31,31,31,32,31,31,30,29,30,29,30,30],2052:[17,31,31,32,31,31,31,30,29,30,29,30,30],2053:[17,31,32,31,32,31,30,30,30,29,29,30,30],2054:[17,31,32,31,32,31,30,30,30,29,30,29,31],2055:[17,31,31,32,31,31,31,30,29,30,30,29,30],2056:[17,31,31,32,31,32,30,30,29,30,29,30,30],2057:[17,31,32,31,32,31,30,30,30,29,29,30,31],2058:[17,30,32,31,32,31,30,30,30,29,30,29,31],2059:[17,31,31,32,31,31,31,30,29,30,29,30,30],2060:[17,31,31,32,32,31,30,30,29,30,29,30,30],2061:[17,31,32,31,32,31,30,30,30,29,29,30,31],2062:[17,30,32,31,32,31,31,29,30,29,30,29,31],2063:[17,31,31,32,31,31,31,30,29,30,29,30,30],2064:[17,31,31,32,32,31,30,30,29,30,29,30,30],2065:[17,31,32,31,32,31,30,30,30,29,29,30,31],2066:[17,31,31,31,32,31,31,29,30,30,29,29,31],2067:[17,31,31,32,31,31,31,30,29,30,29,30,30],2068:[17,31,31,32,32,31,30,30,29,30,29,30,30],2069:[17,31,32,31,32,31,30,30,30,29,29,30,31],2070:[17,31,31,31,32,31,31,29,30,30,29,30,30],2071:[17,31,31,32,31,31,31,30,29,30,29,30,30],2072:[17,31,32,31,32,31,30,30,29,30,29,30,30],2073:[17,31,32,31,32,31,30,30,30,29,29,30,31],2074:[17,31,31,31,32,31,31,30,29,30,29,30,30],2075:[17,31,31,32,31,31,31,30,29,30,29,30,30],2076:[16,31,32,31,32,31,30,30,30,29,29,30,30],2077:[17,31,32,31,32,31,30,30,30,29,30,29,31],2078:[17,31,31,31,32,31,31,30,29,30,29,30,30],2079:[17,31,31,32,31,31,31,30,29,30,29,30,30],2080:[16,31,32,31,32,31,30,30,30,29,29,30,30],2081:[17,31,31,32,32,31,30,30,30,29,30,30,30],2082:[17,31,32,31,32,31,30,30,30,29,30,30,30],2083:[17,31,31,32,31,31,30,30,30,29,30,30,30],2084:[17,31,31,32,31,31,30,30,30,29,30,30,30],2085:[17,31,32,31,32,31,31,30,30,29,30,30,30],2086:[17,31,32,31,32,31,30,30,30,29,30,30,30],2087:[16,31,31,32,31,31,31,30,30,29,30,30,30],2088:[16,30,31,32,32,30,31,30,30,29,30,30,30],2089:[17,31,32,31,32,31,30,30,30,29,30,30,30],2090:[17,31,32,31,32,31,30,30,30,29,30,30,30],2091:[16,31,31,32,31,31,31,30,30,29,30,30,30],2092:[16,31,31,32,32,31,30,30,30,29,30,30,30],2093:[17,31,32,31,32,31,30,30,30,29,30,30,30],2094:[17,31,31,32,31,31,30,30,30,29,30,30,30],2095:[17,31,31,32,31,31,31,30,29,30,30,30,30],2096:[17,30,31,32,32,31,30,30,29,30,29,30,30],2097:[17,31,32,31,32,31,30,30,30,29,30,30,30],2098:[17,31,31,32,31,31,31,29,30,29,30,30,31],2099:[17,31,31,32,31,31,31,30,29,29,30,30,30],2100:[17,31,32,31,32,30,31,30,29,30,29,30,30]}}),n.calendars.nepali=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],544:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Persian\\\",jdEpoch:1948320.5,daysPerMonth:[31,31,31,31,31,31,30,30,30,30,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Persian\\\",epochs:[\\\"BP\\\",\\\"AP\\\"],monthNames:[\\\"Farvardin\\\",\\\"Ordibehesht\\\",\\\"Khordad\\\",\\\"Tir\\\",\\\"Mordad\\\",\\\"Shahrivar\\\",\\\"Mehr\\\",\\\"Aban\\\",\\\"Azar\\\",\\\"Day\\\",\\\"Bahman\\\",\\\"Esfand\\\"],monthNamesShort:[\\\"Far\\\",\\\"Ord\\\",\\\"Kho\\\",\\\"Tir\\\",\\\"Mor\\\",\\\"Sha\\\",\\\"Meh\\\",\\\"Aba\\\",\\\"Aza\\\",\\\"Day\\\",\\\"Bah\\\",\\\"Esf\\\"],dayNames:[\\\"Yekshambe\\\",\\\"Doshambe\\\",\\\"Seshambe\\\",\\\"Ch\\\\xe6harshambe\\\",\\\"Panjshambe\\\",\\\"Jom'e\\\",\\\"Shambe\\\"],dayNamesShort:[\\\"Yek\\\",\\\"Do\\\",\\\"Se\\\",\\\"Ch\\\\xe6\\\",\\\"Panj\\\",\\\"Jom\\\",\\\"Sha\\\"],dayNamesMin:[\\\"Ye\\\",\\\"Do\\\",\\\"Se\\\",\\\"Ch\\\",\\\"Pa\\\",\\\"Jo\\\",\\\"Sh\\\"],digits:null,dateFormat:\\\"yyyy/mm/dd\\\",firstDay:6,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 682*((e.year()-(e.year()>0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t-(t>=0?474:473),s=474+o(a,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*s-110)/2816)+365*(s-1)+1029983*Math.floor(a/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=o(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),s=o(n,366);i=Math.floor((2134*a+2816*s+2815)/1028522)+a+1}var l=i+2820*r+474;l=l<=0?l-1:l;var c=t-this.toJD(l,1,1)+1,u=c<=186?Math.ceil(c/31):Math.ceil((c-6)/30),f=t-this.toJD(l,u,1)+1;return this.newDate(l,u,f)}}),n.calendars.persian=a,n.calendars.jalali=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],545:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\"),a=n.instance();function o(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}o.prototype=new n.baseCalendar,i(o.prototype,{name:\\\"Taiwan\\\",jdEpoch:2419402.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},{\\\"../main\\\":548,\\\"object-assign\\\":437}],546:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\"),a=n.instance();function o(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}o.prototype=new n.baseCalendar,i(o.prototype,{name:\\\"Thai\\\",jdEpoch:1523098.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),n.calendars.thai=o},{\\\"../main\\\":548,\\\"object-assign\\\":437}],547:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,i=0,a=0;a<o.length;a++){if(o[a]>r)return o[i]-o[i-1];i++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate),a=12*(i.year()-1)+i.month()-15292;return i.day()+o[a-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;n<o.length&&!(o[n]>e);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),s=a+1,l=i-12*a,c=e-o[r-1]+1;return this.newDate(s,l,c)},isValid:function(t,e,r){var i=n.baseCalendar.prototype.isValid.apply(this,arguments);return i&&(i=(t=null!=t.year?t.year:t)>=1276&&t<=1500),i},_validate:function(t,e,r,i){var a=n.baseCalendar.prototype._validate.apply(this,arguments);if(a.year<1276||a.year>1500)throw i.replace(/\\\\{0\\\\}/,this.local.name);return a}}),n.calendars.ummalqura=a;var o=[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\\\":548,\\\"object-assign\\\":437}],548:[function(t,e,r){var n=t(\\\"object-assign\\\");function i(){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 a(t,e,r,n){if(this._calendar=t,this._year=e,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate).replace(/\\\\{0\\\\}/,this._calendar.local.name)}function o(t,e){return\\\"000000\\\".substring(0,e-(t=\\\"\\\"+t).length)+t}function s(){this.shortYearCutoff=\\\"+10\\\"}function l(t){this.local=this.regionalOptions[t]||this.regionalOptions[\\\"\\\"]}n(i.prototype,{instance:function(t,e){t=(t||\\\"gregorian\\\").toLowerCase(),e=e||\\\"\\\";var r=this._localCals[t+\\\"-\\\"+e];if(!r&&this.calendars[t]&&(r=new this.calendars[t](e),this._localCals[t+\\\"-\\\"+e]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[\\\"\\\"].invalidCalendar).replace(/\\\\{0\\\\}/,t);return r},newDate:function(t,e,r,n,i){return(n=(null!=t&&t.year?t.calendar():\\\"string\\\"==typeof n?this.instance(n,i):n)||this.instance()).newDate(t,e,r)},substituteDigits:function(t){return function(e){return(e+\\\"\\\").replace(/[0-9]/g,function(e){return t[e]})}},substituteChineseDigits:function(t,e){return function(r){for(var n=\\\"\\\",i=0;r>0;){var a=r%10;n=(0===a?\\\"\\\":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),n(a.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,\\\"y\\\")},month:function(t){return 0===arguments.length?this._month:this.set(t,\\\"m\\\")},day:function(t){return 0===arguments.length?this._day:this.set(t,\\\"d\\\")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate).replace(/\\\\{0\\\\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,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(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(c.local.differentCalendars||c.regionalOptions[\\\"\\\"].differentCalendars).replace(/\\\\{0\\\\}/,this._calendar.local.name).replace(/\\\\{1\\\\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?\\\"-\\\":\\\"\\\")+o(Math.abs(this.year()),4)+\\\"-\\\"+o(this.month(),2)+\\\"-\\\"+o(this.day(),2)}}),n(s.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate),r=t.day(),e=t.month(),t=t.year()),new a(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear);return(e.year()<0?\\\"-\\\":\\\"\\\")+o(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,c.local.invalidMonth||c.regionalOptions[\\\"\\\"].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,c.local.invalidMonth||c.regionalOptions[\\\"\\\"].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,\\\"d\\\"===r||\\\"w\\\"===r){var n=t.toJD()+e*(\\\"w\\\"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+(\\\"y\\\"===r?e:0),o=t.monthOfYear()+(\\\"m\\\"===r?e:0);i=t.day();\\\"y\\\"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):\\\"m\\\"===r&&(!function(t){for(;o<t.minMonth;)a--,o+=t.monthsInYear(a);for(var e=t.monthsInYear(a);o>e-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||\\\"y\\\"!==n&&\\\"m\\\"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,\\\"y\\\"],m:[1,this.monthsInYear(-1),\\\"m\\\"],w:[this.daysInWeek(),this.daysInYear(-1),\\\"d\\\"],d:[1,this.daysInYear(-1),\\\"d\\\"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);var n=\\\"y\\\"===r?e:t.year(),i=\\\"m\\\"===r?e:t.month(),a=\\\"d\\\"===r?e:t.day();return\\\"y\\\"!==r&&\\\"m\\\"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth<this.monthsInYear(i)&&r>=this.minDay&&r-this.minDay<this.daysInMonth(i)}return this._validateLevel--,n},toJSDate:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);return c.instance().fromJD(this.toJD(n)).toJSDate()},fromJSDate:function(t){return this.fromJD(c.instance().fromJSDate(t).toJD())},_validate:function(t,e,r,n){if(t.year){if(0===this._validateLevel&&this.name!==t.calendar().name)throw(c.local.differentCalendars||c.regionalOptions[\\\"\\\"].differentCalendars).replace(/\\\\{0\\\\}/,this.local.name).replace(/\\\\{1\\\\}/,t.calendar().local.name);return t}try{if(this._validateLevel++,1===this._validateLevel&&!this.isValid(t,e,r))throw n.replace(/\\\\{0\\\\}/,this.local.name);var i=this.newDate(t,e,r);return this._validateLevel--,i}catch(t){throw this._validateLevel--,t}}}),l.prototype=new s,n(l.prototype,{name:\\\"Gregorian\\\",jdEpoch:1721425.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Gregorian\\\",epochs:[\\\"BCE\\\",\\\"CE\\\"],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(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==0&&(t%100!=0||t%400==0)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,c.local.invalidMonth||c.regionalOptions[\\\"\\\"].invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);t=n.year(),e=n.month(),r=n.day(),t<0&&t++,e<3&&(e+=12,t--);var i=Math.floor(t/100),a=2-i+Math.floor(i/4);return Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r+a-1524.5},fromJD:function(t){var e=Math.floor(t+.5),r=Math.floor((e-1867216.25)/36524.25),n=(r=e+1+r-Math.floor(r/4))+1524,i=Math.floor((n-122.1)/365.25),a=Math.floor(365.25*i),o=Math.floor((n-a)/30.6001),s=n-a-Math.floor(30.6001*o),l=o-(o>13.5?13:1),c=i-(l>2.5?4716:4715);return c<=0&&c--,this.newDate(c,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var c=e.exports=new i;c.cdate=a,c.baseCalendar=s,c.calendars.gregorian=l},{\\\"object-assign\\\":437}],549:[function(t,e,r){var n=t(\\\"object-assign\\\"),i=t(\\\"./main\\\");n(i.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\\\"}),i.local=i.regionalOptions[\\\"\\\"],n(i.cdate.prototype,{formatDate:function(t,e){return\\\"string\\\"!=typeof t&&(e=t,t=\\\"\\\"),this._calendar.formatDate(t||\\\"\\\",this,e)}}),n(i.baseCalendar.prototype,{UNIX_EPOCH:i.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:i.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(t,e,r){if(\\\"string\\\"!=typeof t&&(r=e,e=t,t=\\\"\\\"),!e)return\\\"\\\";if(e.calendar()!==this)throw i.local.invalidFormat||i.regionalOptions[\\\"\\\"].invalidFormat;t=t||this.local.dateFormat;for(var n,a,o,s,l=(r=r||{}).dayNamesShort||this.local.dayNamesShort,c=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,f=r.monthNamesShort||this.local.monthNamesShort,h=r.monthNames||this.local.monthNames,p=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;w+n<t.length&&t.charAt(w+n)===e;)n++;return w+=n-1,Math.floor(n/(r||1))>1}),d=function(t,e,r,n){var i=\\\"\\\"+e;if(p(t,n))for(;i.length<r;)i=\\\"0\\\"+i;return i},g=this,v=function(t){return\\\"function\\\"==typeof u?u.call(g,t,p(\\\"m\\\")):x(d(\\\"m\\\",t.month(),2))},m=function(t,e){return e?\\\"function\\\"==typeof h?h.call(g,t):h[t.month()-g.minMonth]:\\\"function\\\"==typeof f?f.call(g,t):f[t.month()-g.minMonth]},y=this.local.digits,x=function(t){return r.localNumbers&&y?y(t):t},b=\\\"\\\",_=!1,w=0;w<t.length;w++)if(_)\\\"'\\\"!==t.charAt(w)||p(\\\"'\\\")?b+=t.charAt(w):_=!1;else switch(t.charAt(w)){case\\\"d\\\":b+=x(d(\\\"d\\\",e.day(),2));break;case\\\"D\\\":b+=(n=\\\"D\\\",a=e.dayOfWeek(),o=l,s=c,p(n)?s[a]:o[a]);break;case\\\"o\\\":b+=d(\\\"o\\\",e.dayOfYear(),3);break;case\\\"w\\\":b+=d(\\\"w\\\",e.weekOfYear(),2);break;case\\\"m\\\":b+=v(e);break;case\\\"M\\\":b+=m(e,p(\\\"M\\\"));break;case\\\"y\\\":b+=p(\\\"y\\\",2)?e.year():(e.year()%100<10?\\\"0\\\":\\\"\\\")+e.year()%100;break;case\\\"Y\\\":p(\\\"Y\\\",2),b+=e.formatYear();break;case\\\"J\\\":b+=e.toJD();break;case\\\"@\\\":b+=(e.toJD()-this.UNIX_EPOCH)*this.SECS_PER_DAY;break;case\\\"!\\\":b+=(e.toJD()-this.TICKS_EPOCH)*this.TICKS_PER_DAY;break;case\\\"'\\\":p(\\\"'\\\")?b+=\\\"'\\\":_=!0;break;default:b+=t.charAt(w)}return b},parseDate:function(t,e,r){if(null==e)throw i.local.invalidArguments||i.regionalOptions[\\\"\\\"].invalidArguments;if(\\\"\\\"===(e=\\\"object\\\"==typeof e?e.toString():e+\\\"\\\"))return null;t=t||this.local.dateFormat;var n=(r=r||{}).shortYearCutoff||this.shortYearCutoff;n=\\\"string\\\"!=typeof n?n:this.today().year()%100+parseInt(n,10);for(var a=r.dayNamesShort||this.local.dayNamesShort,o=r.dayNames||this.local.dayNames,s=r.parseMonth||this.local.parseMonth,l=r.monthNumbers||this.local.monthNumbers,c=r.monthNamesShort||this.local.monthNamesShort,u=r.monthNames||this.local.monthNames,f=-1,h=-1,p=-1,d=-1,g=-1,v=!1,m=!1,y=function(e,r){for(var n=1;T+n<t.length&&t.charAt(T+n)===e;)n++;return T+=n-1,Math.floor(n/(r||1))>1},x=function(t,r){var n=y(t,r),a=[2,3,n?4:2,n?4:2,10,11,20][\\\"oyYJ@!\\\".indexOf(t)+1],o=new RegExp(\\\"^-?\\\\\\\\d{1,\\\"+a+\\\"}\\\"),s=e.substring(A).match(o);if(!s)throw(i.local.missingNumberAt||i.regionalOptions[\\\"\\\"].missingNumberAt).replace(/\\\\{0\\\\}/,A);return A+=s[0].length,parseInt(s[0],10)},b=this,_=function(){if(\\\"function\\\"==typeof l){y(\\\"m\\\");var t=l.call(b,e.substring(A));return A+=t.length,t}return x(\\\"m\\\")},w=function(t,r,n,a){for(var o=y(t,a)?n:r,s=0;s<o.length;s++)if(e.substr(A,o[s].length).toLowerCase()===o[s].toLowerCase())return A+=o[s].length,s+b.minMonth;throw(i.local.unknownNameAt||i.regionalOptions[\\\"\\\"].unknownNameAt).replace(/\\\\{0\\\\}/,A)},k=function(){if(\\\"function\\\"==typeof u){var t=y(\\\"M\\\")?u.call(b,e.substring(A)):c.call(b,e.substring(A));return A+=t.length,t}return w(\\\"M\\\",c,u)},M=function(){if(e.charAt(A)!==t.charAt(T))throw(i.local.unexpectedLiteralAt||i.regionalOptions[\\\"\\\"].unexpectedLiteralAt).replace(/\\\\{0\\\\}/,A);A++},A=0,T=0;T<t.length;T++)if(m)\\\"'\\\"!==t.charAt(T)||y(\\\"'\\\")?M():m=!1;else switch(t.charAt(T)){case\\\"d\\\":d=x(\\\"d\\\");break;case\\\"D\\\":w(\\\"D\\\",a,o);break;case\\\"o\\\":g=x(\\\"o\\\");break;case\\\"w\\\":x(\\\"w\\\");break;case\\\"m\\\":p=_();break;case\\\"M\\\":p=k();break;case\\\"y\\\":var S=T;v=!y(\\\"y\\\",2),T=S,h=x(\\\"y\\\",2);break;case\\\"Y\\\":h=x(\\\"Y\\\",2);break;case\\\"J\\\":f=x(\\\"J\\\")+.5,\\\".\\\"===e.charAt(A)&&(A++,x(\\\"J\\\"));break;case\\\"@\\\":f=x(\\\"@\\\")/this.SECS_PER_DAY+this.UNIX_EPOCH;break;case\\\"!\\\":f=x(\\\"!\\\")/this.TICKS_PER_DAY+this.TICKS_EPOCH;break;case\\\"*\\\":A=e.length;break;case\\\"'\\\":y(\\\"'\\\")?M():m=!0;break;default:M()}if(A<e.length)throw i.local.unexpectedText||i.regionalOptions[\\\"\\\"].unexpectedText;if(-1===h?h=this.today().year():h<100&&v&&(h+=-1===n?1900:this.today().year()-this.today().year()%100-(h<=n?0:100)),\\\"string\\\"==typeof p&&(p=s.call(this,h,p)),g>-1){p=1,d=g;for(var E=this.daysInMonth(h,p);d>E;E=this.daysInMonth(h,p))p++,d-=E}return f>-1?this.fromJD(f):this.newDate(h,p,d)},determineDate:function(t,e,r,n,i){r&&\\\"object\\\"!=typeof r&&(i=n,n=r,r=null),\\\"string\\\"!=typeof n&&(i=n,n=\\\"\\\");var a=this;return e=e?e.newDate():null,t=null==t?e:\\\"string\\\"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\\\\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||\\\"d\\\"),s=o.exec(t);return e}(t):\\\"number\\\"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,\\\"d\\\"):a.newDate(t)}})},{\\\"./main\\\":548,\\\"object-assign\\\":437}],550:[function(t,e,r){e.exports=t(\\\"cwise-compiler\\\")({args:[\\\"array\\\",{offset:[1],array:0},\\\"scalar\\\",\\\"scalar\\\",\\\"index\\\"],pre:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},body:{body:\\\"{\\\\n        var _inline_1_da = _inline_1_arg0_ - _inline_1_arg3_\\\\n        var _inline_1_db = _inline_1_arg1_ - _inline_1_arg3_\\\\n        if((_inline_1_da >= 0) !== (_inline_1_db >= 0)) {\\\\n          _inline_1_arg2_.push(_inline_1_arg4_[0] + 0.5 + 0.5 * (_inline_1_da + _inline_1_db) / (_inline_1_da - _inline_1_db))\\\\n        }\\\\n      }\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg1_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg3_\\\",lvalue:!1,rvalue:!0,count:2},{name:\\\"_inline_1_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[],localVars:[\\\"_inline_1_da\\\",\\\"_inline_1_db\\\"]},funcName:\\\"zeroCrossings\\\"})},{\\\"cwise-compiler\\\":134}],551:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t(\\\"./lib/zc-core\\\")},{\\\"./lib/zc-core\\\":550}],552:[function(t,e,r){\\\"use strict\\\";e.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}]},{}],553:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./arrow_paths\\\"),i=t(\\\"../../plots/font_attributes\\\"),a=t(\\\"../../plots/cartesian/constants\\\"),o=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports=o(\\\"annotation\\\",{visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc+arraydraw\\\"},text:{valType:\\\"string\\\",editType:\\\"calc+arraydraw\\\"},textangle:{valType:\\\"angle\\\",dflt:0,editType:\\\"calc+arraydraw\\\"},font:i({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:n.length,dflt:1,editType:\\\"arraydraw\\\"},startarrowhead:{valType:\\\"integer\\\",min:0,max:n.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\\\",a.idRegex.x.toString()],editType:\\\"calc\\\"},ayref:{valType:\\\"enumerated\\\",dflt:\\\"pixel\\\",values:[\\\"pixel\\\",a.idRegex.y.toString()],editType:\\\"calc\\\"},xref:{valType:\\\"enumerated\\\",values:[\\\"paper\\\",a.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\\\",a.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:i({editType:\\\"arraydraw\\\"}),editType:\\\"arraydraw\\\"},captureevents:{valType:\\\"boolean\\\",editType:\\\"arraydraw\\\"},editType:\\\"calc\\\",_deprecated:{ref:{valType:\\\"string\\\",editType:\\\"calc\\\"}}})},{\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/constants\\\":750,\\\"../../plots/font_attributes\\\":771,\\\"./arrow_paths\\\":552}],554:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"./draw\\\").draw;function o(t){var e=t._fullLayout;n.filterVisible(e.annotations).forEach(function(e){var r=i.getFromId(t,e.xref),n=i.getFromId(t,e.yref);e._extremes={},r&&s(e,r),n&&s(e,n)})}function s(t,e){var r,n=e._id,a=n.charAt(0),o=t[a],s=t[\\\"a\\\"+a],l=t[a+\\\"ref\\\"],c=t[\\\"a\\\"+a+\\\"ref\\\"],u=t[\\\"_\\\"+a+\\\"padplus\\\"],f=t[\\\"_\\\"+a+\\\"padminus\\\"],h={x:1,y:-1}[a]*t[a+\\\"shift\\\"],p=3*t.arrowsize*t.arrowwidth||0,d=p+h,g=p-h,v=3*t.startarrowsize*t.arrowwidth||0,m=v+h,y=v-h;if(c===l){var x=i.findExtremes(e,[e.r2c(o)],{ppadplus:d,ppadminus:g}),b=i.findExtremes(e,[e.r2c(s)],{ppadplus:Math.max(u,m),ppadminus:Math.max(f,y)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else m=s?m+s:m,y=s?y-s:y,r=i.findExtremes(e,[e.r2c(o)],{ppadplus:Math.max(u,d,m),ppadminus:Math.max(f,g,y)});t._extremes[n]=r}e.exports=function(t){var e=t._fullLayout;if(n.filterVisible(e.annotations).length&&t._fullData.length)return n.syncOrAsync([a,o],t)}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"./draw\\\":559}],555:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plot_api/plot_template\\\").arrayEditor;function o(t,e){var r,n,i,a,o,l,c,u=t._fullLayout.annotations,f=[],h=[],p=[],d=(e||[]).length;for(r=0;r<u.length;r++)if(a=(i=u[r]).clicktoshow){for(n=0;n<d;n++)if(l=(o=e[n]).xaxis,c=o.yaxis,l._id===i.xref&&c._id===i.yref&&l.d2r(o.x)===s(i._xclick,l)&&c.d2r(o.y)===s(i._yclick,c)){(i.visible?\\\"onout\\\"===a?h:p:f).push(r);break}n===d&&i.visible&&\\\"onout\\\"===a&&h.push(r)}return{on:f,off:h,explicitOff:p}}function s(t,e){return\\\"log\\\"===e.type?e.l2r(t):e.d2r(t)}e.exports={hasClickToShow:function(t,e){var r=o(t,e);return r.on.length>0||r.explicitOff.length>0},onClick:function(t,e){var r,s,l=o(t,e),c=l.on,u=l.off.concat(l.explicitOff),f={},h=t._fullLayout.annotations;if(!c.length&&!u.length)return;for(r=0;r<c.length;r++)(s=a(t.layout,\\\"annotations\\\",h[c[r]])).modifyItem(\\\"visible\\\",!0),n.extendFlat(f,s.getUpdateObj());for(r=0;r<u.length;r++)(s=a(t.layout,\\\"annotations\\\",h[u[r]])).modifyItem(\\\"visible\\\",!1),n.extendFlat(f,s.getUpdateObj());return i.call(\\\"update\\\",t,{},f)}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../registry\\\":827}],556:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../color\\\");e.exports=function(t,e,r,a){a(\\\"opacity\\\");var o=a(\\\"bgcolor\\\"),s=a(\\\"bordercolor\\\"),l=i.opacity(s);a(\\\"borderpad\\\");var c=a(\\\"borderwidth\\\"),u=a(\\\"showarrow\\\");if(a(\\\"text\\\",u?\\\" \\\":r._dfltTitle.annotation),a(\\\"textangle\\\"),n.coerceFont(a,\\\"font\\\",r.font),a(\\\"width\\\"),a(\\\"align\\\"),a(\\\"height\\\")&&a(\\\"valign\\\"),u){var f,h,p=a(\\\"arrowside\\\");-1!==p.indexOf(\\\"end\\\")&&(f=a(\\\"arrowhead\\\"),h=a(\\\"arrowsize\\\")),-1!==p.indexOf(\\\"start\\\")&&(a(\\\"startarrowhead\\\",f),a(\\\"startarrowsize\\\",h)),a(\\\"arrowcolor\\\",l?e.bordercolor:i.defaultLine),a(\\\"arrowwidth\\\",2*(l&&c||1)),a(\\\"standoff\\\"),a(\\\"startstandoff\\\")}var d=a(\\\"hovertext\\\"),g=r.hoverlabel||{};if(d){var v=a(\\\"hoverlabel.bgcolor\\\",g.bgcolor||(i.opacity(o)?i.rgb(o):i.defaultLine)),m=a(\\\"hoverlabel.bordercolor\\\",g.bordercolor||i.contrast(v));n.coerceFont(a,\\\"hoverlabel.font\\\",{family:g.font.family,size:g.font.size,color:g.font.color||m})}a(\\\"captureevents\\\",!!d)}},{\\\"../../lib\\\":696,\\\"../color\\\":570}],557:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib/to_log_range\\\");e.exports=function(t,e,r,a){e=e||{};var o=\\\"log\\\"===r&&\\\"linear\\\"===e.type,s=\\\"linear\\\"===r&&\\\"log\\\"===e.type;if(o||s)for(var l,c,u=t._fullLayout.annotations,f=e._id.charAt(0),h=0;h<u.length;h++)l=u[h],c=\\\"annotations[\\\"+h+\\\"].\\\",l[f+\\\"ref\\\"]===e._id&&p(f),l[\\\"a\\\"+f+\\\"ref\\\"]===e._id&&p(\\\"a\\\"+f);function p(t){var r=l[t],s=null;s=o?i(r,e.range):Math.pow(10,r),n(s)||(s=null),a(c+t,s)}}},{\\\"../../lib/to_log_range\\\":722,\\\"fast-isnumeric\\\":214}],558:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../plots/array_container_defaults\\\"),o=t(\\\"./common_defaults\\\"),s=t(\\\"./attributes\\\");function l(t,e,r){function a(r,i){return n.coerce(t,e,s,r,i)}var l=a(\\\"visible\\\"),c=a(\\\"clicktoshow\\\");if(l||c){o(t,e,r,a);for(var u=e.showarrow,f=[\\\"x\\\",\\\"y\\\"],h=[-10,-30],p={_fullLayout:r},d=0;d<2;d++){var g=f[d],v=i.coerceRef(t,e,p,g,\\\"\\\",\\\"paper\\\");if(\\\"paper\\\"!==v)i.getFromId(p,v)._annIndices.push(e._index);if(i.coercePosition(e,p,a,v,g,.5),u){var m=\\\"a\\\"+g,y=i.coerceRef(t,e,p,m,\\\"pixel\\\");\\\"pixel\\\"!==y&&y!==v&&(y=e[m]=\\\"pixel\\\");var x=\\\"pixel\\\"===y?h[d]:.4;i.coercePosition(e,p,a,y,m,x)}a(g+\\\"anchor\\\"),a(g+\\\"shift\\\")}if(n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\"]),u&&n.noneOrAll(t,e,[\\\"ax\\\",\\\"ay\\\"]),c){var b=a(\\\"xclick\\\"),_=a(\\\"yclick\\\");e._xclick=void 0===b?e.x:i.cleanPosition(b,p,e.xref),e._yclick=void 0===_?e.y:i.cleanPosition(_,p,e.yref)}}}e.exports=function(t,e){a(t,e,{name:\\\"annotations\\\",handleItemDefaults:l})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/cartesian/axes\\\":744,\\\"./attributes\\\":553,\\\"./common_defaults\\\":556}],559:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../plots/cartesian/axes\\\"),l=t(\\\"../color\\\"),c=t(\\\"../drawing\\\"),u=t(\\\"../fx\\\"),f=t(\\\"../../lib/svg_text_utils\\\"),h=t(\\\"../../lib/setcursor\\\"),p=t(\\\"../dragelement\\\"),d=t(\\\"../../plot_api/plot_template\\\").arrayEditor,g=t(\\\"./draw_arrow_head\\\");function v(t,e){var r=t._fullLayout.annotations[e]||{};m(t,r,e,!1,s.getFromId(t,r.xref),s.getFromId(t,r.yref))}function m(t,e,r,a,s,v){var m,y,x=t._fullLayout,b=t._fullLayout._size,_=t._context.edits;a?(m=\\\"annotation-\\\"+a,y=a+\\\".annotations\\\"):(m=\\\"annotation\\\",y=\\\"annotations\\\");var w=d(t.layout,y,e),k=w.modifyBase,M=w.modifyItem,A=w.getUpdateObj;x._infolayer.selectAll(\\\".\\\"+m+'[data-index=\\\"'+r+'\\\"]').remove();var T=\\\"clip\\\"+x._uid+\\\"_ann\\\"+r;if(e._input&&!1!==e.visible){var S={x:{},y:{}},E=+e.textangle||0,C=x._infolayer.append(\\\"g\\\").classed(m,!0).attr(\\\"data-index\\\",String(r)).style(\\\"opacity\\\",e.opacity),L=C.append(\\\"g\\\").classed(\\\"annotation-text-g\\\",!0),z=_[e.showarrow?\\\"annotationTail\\\":\\\"annotationPosition\\\"],O=e.captureevents||_.annotationText||z,I=L.append(\\\"g\\\").style(\\\"pointer-events\\\",O?\\\"all\\\":null).call(h,\\\"pointer\\\").on(\\\"click\\\",function(){t._dragging=!1;var i={index:r,annotation:e._input,fullAnnotation:e,event:n.event};a&&(i.subplotId=a),t.emit(\\\"plotly_clickannotation\\\",i)});e.hovertext&&I.on(\\\"mouseover\\\",function(){var r=e.hoverlabel,n=r.font,i=this.getBoundingClientRect(),a=t.getBoundingClientRect();u.loneHover({x0:i.left-a.left,x1:i.right-a.left,y:(i.top+i.bottom)/2-a.top,text:e.hovertext,color:r.bgcolor,borderColor:r.bordercolor,fontFamily:n.family,fontSize:n.size,fontColor:n.color},{container:x._hoverlayer.node(),outerContainer:x._paper.node(),gd:t})}).on(\\\"mouseout\\\",function(){u.loneUnhover(x._hoverlayer.node())});var P=e.borderwidth,D=e.borderpad,R=P+D,B=I.append(\\\"rect\\\").attr(\\\"class\\\",\\\"bg\\\").style(\\\"stroke-width\\\",P+\\\"px\\\").call(l.stroke,e.bordercolor).call(l.fill,e.bgcolor),F=e.width||e.height,N=x._topclips.selectAll(\\\"#\\\"+T).data(F?[0]:[]);N.enter().append(\\\"clipPath\\\").classed(\\\"annclip\\\",!0).attr(\\\"id\\\",T).append(\\\"rect\\\"),N.exit().remove();var j=e.font,V=I.append(\\\"text\\\").classed(\\\"annotation-text\\\",!0).text(e.text);_.annotationText?V.call(f.makeEditable,{delegate:I,gd:t}).call(U).on(\\\"edit\\\",function(r){e.text=r,this.call(U),M(\\\"text\\\",r),s&&s.autorange&&k(s._name+\\\".autorange\\\",!0),v&&v.autorange&&k(v._name+\\\".autorange\\\",!0),i.call(\\\"relayout\\\",t,A())}):V.call(U)}else n.selectAll(\\\"#\\\"+T).remove();function U(r){return r.call(c.font,j).attr({\\\"text-anchor\\\":{left:\\\"start\\\",right:\\\"end\\\"}[e.align]||\\\"middle\\\"}),f.convertToTspans(r,t,q),r}function q(){var r=V.selectAll(\\\"a\\\");1===r.size()&&r.text()===V.text()&&I.insert(\\\"a\\\",\\\":first-child\\\").attr({\\\"xlink:xlink:href\\\":r.attr(\\\"xlink:href\\\"),\\\"xlink:xlink:show\\\":r.attr(\\\"xlink:show\\\")}).style({cursor:\\\"pointer\\\"}).node().appendChild(B.node());var n=I.select(\\\".annotation-text-math-group\\\"),u=!n.empty(),d=c.bBox((u?n:V).node()),m=d.width,y=d.height,w=e.width||m,O=e.height||y,D=Math.round(w+2*R),j=Math.round(O+2*R);function U(t,e){return\\\"auto\\\"===e&&(e=t<1/3?\\\"left\\\":t>2/3?\\\"right\\\":\\\"center\\\"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}for(var q=!1,H=[\\\"x\\\",\\\"y\\\"],G=0;G<H.length;G++){var W,Y,X,Z,$,J=H[G],K=e[J+\\\"ref\\\"]||J,Q=e[\\\"a\\\"+J+\\\"ref\\\"],tt={x:s,y:v}[J],et=(E+(\\\"x\\\"===J?0:-90))*Math.PI/180,rt=D*Math.cos(et),nt=j*Math.sin(et),it=Math.abs(rt)+Math.abs(nt),at=e[J+\\\"anchor\\\"],ot=e[J+\\\"shift\\\"]*(\\\"x\\\"===J?1:-1),st=S[J];if(tt){var lt=tt.r2fraction(e[J]);(lt<0||lt>1)&&(Q===K?((lt=tt.r2fraction(e[\\\"a\\\"+J]))<0||lt>1)&&(q=!0):q=!0),W=tt._offset+tt.r2p(e[J]),Z=.5}else\\\"x\\\"===J?(X=e[J],W=b.l+b.w*X):(X=1-e[J],W=b.t+b.h*X),Z=e.showarrow?.5:X;if(e.showarrow){st.head=W;var ct=e[\\\"a\\\"+J];$=rt*U(.5,e.xanchor)-nt*U(.5,e.yanchor),Q===K?(st.tail=tt._offset+tt.r2p(ct),Y=$):(st.tail=W+ct,Y=$+ct),st.text=st.tail+$;var ut=x[\\\"x\\\"===J?\\\"width\\\":\\\"height\\\"];if(\\\"paper\\\"===K&&(st.head=o.constrain(st.head,1,ut-1)),\\\"pixel\\\"===Q){var ft=-Math.max(st.tail-3,st.text),ht=Math.min(st.tail+3,st.text)-ut;ft>0?(st.tail+=ft,st.text+=ft):ht>0&&(st.tail-=ht,st.text-=ht)}st.tail+=ot,st.head+=ot}else Y=$=it*U(Z,at),st.text=W+$;st.text+=ot,$+=ot,Y+=ot,e[\\\"_\\\"+J+\\\"padplus\\\"]=it/2+Y,e[\\\"_\\\"+J+\\\"padminus\\\"]=it/2-Y,e[\\\"_\\\"+J+\\\"size\\\"]=it,e[\\\"_\\\"+J+\\\"shift\\\"]=$}if(t._dragging||!q){var pt=0,dt=0;if(\\\"left\\\"!==e.align&&(pt=(w-m)*(\\\"center\\\"===e.align?.5:1)),\\\"top\\\"!==e.valign&&(dt=(O-y)*(\\\"middle\\\"===e.valign?.5:1)),u)n.select(\\\"svg\\\").attr({x:R+pt-1,y:R+dt}).call(c.setClipUrl,F?T:null);else{var gt=R+dt-d.top,vt=R+pt-d.left;V.call(f.positionText,vt,gt).call(c.setClipUrl,F?T:null)}N.select(\\\"rect\\\").call(c.setRect,R,R,w,O),B.call(c.setRect,P/2,P/2,D-P,j-P),I.call(c.setTranslate,Math.round(S.x.text-D/2),Math.round(S.y.text-j/2)),L.attr({transform:\\\"rotate(\\\"+E+\\\",\\\"+S.x.text+\\\",\\\"+S.y.text+\\\")\\\"});var mt,yt=function(r,n){C.selectAll(\\\".annotation-arrow-g\\\").remove();var u=S.x.head,f=S.y.head,h=S.x.tail+r,d=S.y.tail+n,m=S.x.text+r,y=S.y.text+n,x=o.rotationXYMatrix(E,m,y),w=o.apply2DTransform(x),T=o.apply2DTransform2(x),z=+B.attr(\\\"width\\\"),O=+B.attr(\\\"height\\\"),P=m-.5*z,D=P+z,R=y-.5*O,F=R+O,N=[[P,R,P,F],[P,F,D,F],[D,F,D,R],[D,R,P,R]].map(T);if(!N.reduce(function(t,e){return t^!!o.segmentsIntersect(u,f,u+1e6,f+1e6,e[0],e[1],e[2],e[3])},!1)){N.forEach(function(t){var e=o.segmentsIntersect(h,d,u,f,t[0],t[1],t[2],t[3]);e&&(h=e.x,d=e.y)});var j=e.arrowwidth,V=e.arrowcolor,U=e.arrowside,q=C.append(\\\"g\\\").style({opacity:l.opacity(V)}).classed(\\\"annotation-arrow-g\\\",!0),H=q.append(\\\"path\\\").attr(\\\"d\\\",\\\"M\\\"+h+\\\",\\\"+d+\\\"L\\\"+u+\\\",\\\"+f).style(\\\"stroke-width\\\",j+\\\"px\\\").call(l.stroke,l.rgb(V));if(g(H,U,e),_.annotationPosition&&H.node().parentNode&&!a){var G=u,W=f;if(e.standoff){var Y=Math.sqrt(Math.pow(u-h,2)+Math.pow(f-d,2));G+=e.standoff*(h-u)/Y,W+=e.standoff*(d-f)/Y}var X,Z,$=q.append(\\\"path\\\").classed(\\\"annotation-arrow\\\",!0).classed(\\\"anndrag\\\",!0).classed(\\\"cursor-move\\\",!0).attr({d:\\\"M3,3H-3V-3H3ZM0,0L\\\"+(h-G)+\\\",\\\"+(d-W),transform:\\\"translate(\\\"+G+\\\",\\\"+W+\\\")\\\"}).style(\\\"stroke-width\\\",j+6+\\\"px\\\").call(l.stroke,\\\"rgba(0,0,0,0)\\\").call(l.fill,\\\"rgba(0,0,0,0)\\\");p.init({element:$.node(),gd:t,prepFn:function(){var t=c.getTranslate(I);X=t.x,Z=t.y,s&&s.autorange&&k(s._name+\\\".autorange\\\",!0),v&&v.autorange&&k(v._name+\\\".autorange\\\",!0)},moveFn:function(t,r){var n=w(X,Z),i=n[0]+t,a=n[1]+r;I.call(c.setTranslate,i,a),M(\\\"x\\\",s?s.p2r(s.r2p(e.x)+t):e.x+t/b.w),M(\\\"y\\\",v?v.p2r(v.r2p(e.y)+r):e.y-r/b.h),e.axref===e.xref&&M(\\\"ax\\\",s.p2r(s.r2p(e.ax)+t)),e.ayref===e.yref&&M(\\\"ay\\\",v.p2r(v.r2p(e.ay)+r)),q.attr(\\\"transform\\\",\\\"translate(\\\"+t+\\\",\\\"+r+\\\")\\\"),L.attr({transform:\\\"rotate(\\\"+E+\\\",\\\"+i+\\\",\\\"+a+\\\")\\\"})},doneFn:function(){i.call(\\\"relayout\\\",t,A());var e=document.querySelector(\\\".js-notes-box-panel\\\");e&&e.redraw(e.selectedObj)}})}}};if(e.showarrow&&yt(0,0),z)p.init({element:I.node(),gd:t,prepFn:function(){mt=L.attr(\\\"transform\\\")},moveFn:function(t,r){var n=\\\"pointer\\\";if(e.showarrow)e.axref===e.xref?M(\\\"ax\\\",s.p2r(s.r2p(e.ax)+t)):M(\\\"ax\\\",e.ax+t),e.ayref===e.yref?M(\\\"ay\\\",v.p2r(v.r2p(e.ay)+r)):M(\\\"ay\\\",e.ay+r),yt(t,r);else{if(a)return;var i,o;if(s)i=s.p2r(s.r2p(e.x)+t);else{var l=e._xsize/b.w,c=e.x+(e._xshift-e.xshift)/b.w-l/2;i=p.align(c+t/b.w,l,0,1,e.xanchor)}if(v)o=v.p2r(v.r2p(e.y)+r);else{var u=e._ysize/b.h,f=e.y-(e._yshift+e.yshift)/b.h-u/2;o=p.align(f-r/b.h,u,0,1,e.yanchor)}M(\\\"x\\\",i),M(\\\"y\\\",o),s&&v||(n=p.getCursor(s?.5:i,v?.5:o,e.xanchor,e.yanchor))}L.attr({transform:\\\"translate(\\\"+t+\\\",\\\"+r+\\\")\\\"+mt}),h(I,n)},doneFn:function(){h(I),i.call(\\\"relayout\\\",t,A());var e=document.querySelector(\\\".js-notes-box-panel\\\");e&&e.redraw(e.selectedObj)}})}else I.remove()}}e.exports={draw:function(t){var e=t._fullLayout;e._infolayer.selectAll(\\\".annotation\\\").remove();for(var r=0;r<e.annotations.length;r++)e.annotations[r].visible&&v(t,r);return a.previousPromises(t)},drawOne:v,drawRaw:m}},{\\\"../../lib\\\":696,\\\"../../lib/setcursor\\\":716,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"../fx\\\":612,\\\"./draw_arrow_head\\\":560,d3:148}],560:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../color\\\"),a=t(\\\"./arrow_paths\\\");e.exports=function(t,e,r){var o,s,l,c,u=t.node(),f=a[r.arrowhead||0],h=a[r.startarrowhead||0],p=(r.arrowwidth||1)*(r.arrowsize||1),d=(r.arrowwidth||1)*(r.startarrowsize||1),g=e.indexOf(\\\"start\\\")>=0,v=e.indexOf(\\\"end\\\")>=0,m=f.backoff*p+r.standoff,y=h.backoff*d+r.startstandoff;if(\\\"line\\\"===u.nodeName){o={x:+t.attr(\\\"x1\\\"),y:+t.attr(\\\"y1\\\")},s={x:+t.attr(\\\"x2\\\"),y:+t.attr(\\\"y2\\\")};var x=o.x-s.x,b=o.y-s.y;if(c=(l=Math.atan2(b,x))+Math.PI,m&&y&&m+y>Math.sqrt(x*x+b*b))return void z();if(m){if(m*m>x*x+b*b)return void z();var _=m*Math.cos(l),w=m*Math.sin(l);s.x+=_,s.y+=w,t.attr({x2:s.x,y2:s.y})}if(y){if(y*y>x*x+b*b)return void z();var k=y*Math.cos(l),M=y*Math.sin(l);o.x-=k,o.y-=M,t.attr({x1:o.x,y1:o.y})}}else if(\\\"path\\\"===u.nodeName){var A=u.getTotalLength(),T=\\\"\\\";if(A<m+y)return void z();var S=u.getPointAtLength(0),E=u.getPointAtLength(.1);l=Math.atan2(S.y-E.y,S.x-E.x),o=u.getPointAtLength(Math.min(y,A)),T=\\\"0px,\\\"+y+\\\"px,\\\";var C=u.getPointAtLength(A),L=u.getPointAtLength(A-.1);c=Math.atan2(C.y-L.y,C.x-L.x),s=u.getPointAtLength(Math.max(0,A-m)),T+=A-(T?y+m:m)+\\\"px,\\\"+A+\\\"px\\\",t.style(\\\"stroke-dasharray\\\",T)}function z(){t.style(\\\"stroke-dasharray\\\",\\\"0px,100px\\\")}function O(e,a,o,s){e.path&&(e.noRotate&&(o=0),n.select(u.parentNode).append(\\\"path\\\").attr({class:t.attr(\\\"class\\\"),d:e.path,transform:\\\"translate(\\\"+a.x+\\\",\\\"+a.y+\\\")\\\"+(o?\\\"rotate(\\\"+180*o/Math.PI+\\\")\\\":\\\"\\\")+\\\"scale(\\\"+s+\\\")\\\"}).style({fill:i.rgb(r.arrowcolor),\\\"stroke-width\\\":0}))}g&&O(h,o,l,d),v&&O(f,s,c,p)}},{\\\"../color\\\":570,\\\"./arrow_paths\\\":552,d3:148}],561:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./draw\\\"),i=t(\\\"./click\\\");e.exports={moduleType:\\\"component\\\",name:\\\"annotations\\\",layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),includeBasePlot:t(\\\"../../plots/cartesian/include_components\\\")(\\\"annotations\\\"),calcAutorange:t(\\\"./calc_autorange\\\"),draw:n.draw,drawOne:n.drawOne,drawRaw:n.drawRaw,hasClickToShow:i.hasClickToShow,onClick:i.onClick,convertCoords:t(\\\"./convert_coords\\\")}},{\\\"../../plots/cartesian/include_components\\\":755,\\\"./attributes\\\":553,\\\"./calc_autorange\\\":554,\\\"./click\\\":555,\\\"./convert_coords\\\":557,\\\"./defaults\\\":558,\\\"./draw\\\":559}],562:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../annotations/attributes\\\"),i=t(\\\"../../plot_api/edit_types\\\").overrideAll,a=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports=i(a(\\\"annotation\\\",{visible:n.visible,x:{valType:\\\"any\\\"},y:{valType:\\\"any\\\"},z:{valType:\\\"any\\\"},ax:{valType:\\\"number\\\"},ay:{valType:\\\"number\\\"},xanchor:n.xanchor,xshift:n.xshift,yanchor:n.yanchor,yshift:n.yshift,text:n.text,textangle:n.textangle,font:n.font,width:n.width,height:n.height,opacity:n.opacity,align:n.align,valign:n.valign,bgcolor:n.bgcolor,bordercolor:n.bordercolor,borderpad:n.borderpad,borderwidth:n.borderwidth,showarrow:n.showarrow,arrowcolor:n.arrowcolor,arrowhead:n.arrowhead,startarrowhead:n.startarrowhead,arrowside:n.arrowside,arrowsize:n.arrowsize,startarrowsize:n.startarrowsize,arrowwidth:n.arrowwidth,standoff:n.standoff,startstandoff:n.startstandoff,hovertext:n.hovertext,hoverlabel:n.hoverlabel,captureevents:n.captureevents}),\\\"calc\\\",\\\"from-root\\\")},{\\\"../../plot_api/edit_types\\\":727,\\\"../../plot_api/plot_template\\\":734,\\\"../annotations/attributes\\\":553}],563:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\");function a(t,e){var r=e.fullSceneLayout.domain,a=e.fullLayout._size,o={pdata:null,type:\\\"linear\\\",autorange:!1,range:[-1/0,1/0]};t._xa={},n.extendFlat(t._xa,o),i.setConvert(t._xa),t._xa._offset=a.l+r.x[0]*a.w,t._xa.l2p=function(){return.5*(1+t._pdata[0]/t._pdata[3])*a.w*(r.x[1]-r.x[0])},t._ya={},n.extendFlat(t._ya,o),i.setConvert(t._ya),t._ya._offset=a.t+(1-r.y[1])*a.h,t._ya.l2p=function(){return.5*(1-t._pdata[1]/t._pdata[3])*a.h*(r.y[1]-r.y[0])}}e.exports=function(t){for(var e=t.fullSceneLayout.annotations,r=0;r<e.length;r++)a(e[r],t);t.fullLayout._infolayer.selectAll(\\\".annotation-\\\"+t.id).remove()}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],564:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../plots/array_container_defaults\\\"),o=t(\\\"../annotations/common_defaults\\\"),s=t(\\\"./attributes\\\");function l(t,e,r,a){function l(r,i){return n.coerce(t,e,s,r,i)}function c(t){var n=t+\\\"axis\\\",a={_fullLayout:{}};return a._fullLayout[n]=r[n],i.coercePosition(e,a,l,t,t,.5)}l(\\\"visible\\\")&&(o(t,e,a.fullLayout,l),c(\\\"x\\\"),c(\\\"y\\\"),c(\\\"z\\\"),n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\",\\\"z\\\"]),e.xref=\\\"x\\\",e.yref=\\\"y\\\",e.zref=\\\"z\\\",l(\\\"xanchor\\\"),l(\\\"yanchor\\\"),l(\\\"xshift\\\"),l(\\\"yshift\\\"),e.showarrow&&(e.axref=\\\"pixel\\\",e.ayref=\\\"pixel\\\",l(\\\"ax\\\",-10),l(\\\"ay\\\",-30),n.noneOrAll(t,e,[\\\"ax\\\",\\\"ay\\\"])))}e.exports=function(t,e,r){a(t,e,{name:\\\"annotations\\\",handleItemDefaults:l,fullLayout:r.fullLayout})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/cartesian/axes\\\":744,\\\"../annotations/common_defaults\\\":556,\\\"./attributes\\\":562}],565:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../annotations/draw\\\").drawRaw,i=t(\\\"../../plots/gl3d/project\\\"),a=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];e.exports=function(t){for(var e=t.fullSceneLayout,r=t.dataScale,o=e.annotations,s=0;s<o.length;s++){for(var l=o[s],c=!1,u=0;u<3;u++){var f=a[u],h=l[f],p=e[f+\\\"axis\\\"].r2fraction(h);if(p<0||p>1){c=!0;break}}c?t.fullLayout._infolayer.select(\\\".annotation-\\\"+t.id+'[data-index=\\\"'+s+'\\\"]').remove():(l._pdata=i(t.glplot.cameraParams,[e.xaxis.r2l(l.x)*r[0],e.yaxis.r2l(l.y)*r[1],e.zaxis.r2l(l.z)*r[2]]),n(t.graphDiv,l,s,t.id,l._xa,l._ya))}}},{\\\"../../plots/gl3d/project\\\":796,\\\"../annotations/draw\\\":559}],566:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\");e.exports={moduleType:\\\"component\\\",name:\\\"annotations3d\\\",schema:{subplots:{scene:{annotations:t(\\\"./attributes\\\")}}},layoutAttributes:t(\\\"./attributes\\\"),handleDefaults:t(\\\"./defaults\\\"),includeBasePlot:function(t,e){var r=n.subplotsRegistry.gl3d;if(!r)return;for(var a=r.attrRegex,o=Object.keys(t),s=0;s<o.length;s++){var l=o[s];a.test(l)&&(t[l].annotations||[]).length&&(i.pushUnique(e._basePlotModules,r),i.pushUnique(e._subplots.gl3d,l))}},convert:t(\\\"./convert\\\"),draw:t(\\\"./draw\\\")}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":562,\\\"./convert\\\":563,\\\"./defaults\\\":564,\\\"./draw\\\":565}],567:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"world-calendars/dist/main\\\"),t(\\\"world-calendars/dist/plus\\\"),t(\\\"world-calendars/dist/calendars/chinese\\\"),t(\\\"world-calendars/dist/calendars/coptic\\\"),t(\\\"world-calendars/dist/calendars/discworld\\\"),t(\\\"world-calendars/dist/calendars/ethiopian\\\"),t(\\\"world-calendars/dist/calendars/hebrew\\\"),t(\\\"world-calendars/dist/calendars/islamic\\\"),t(\\\"world-calendars/dist/calendars/julian\\\"),t(\\\"world-calendars/dist/calendars/mayan\\\"),t(\\\"world-calendars/dist/calendars/nanakshahi\\\"),t(\\\"world-calendars/dist/calendars/nepali\\\"),t(\\\"world-calendars/dist/calendars/persian\\\"),t(\\\"world-calendars/dist/calendars/taiwan\\\"),t(\\\"world-calendars/dist/calendars/thai\\\"),t(\\\"world-calendars/dist/calendars/ummalqura\\\")},{\\\"world-calendars/dist/calendars/chinese\\\":534,\\\"world-calendars/dist/calendars/coptic\\\":535,\\\"world-calendars/dist/calendars/discworld\\\":536,\\\"world-calendars/dist/calendars/ethiopian\\\":537,\\\"world-calendars/dist/calendars/hebrew\\\":538,\\\"world-calendars/dist/calendars/islamic\\\":539,\\\"world-calendars/dist/calendars/julian\\\":540,\\\"world-calendars/dist/calendars/mayan\\\":541,\\\"world-calendars/dist/calendars/nanakshahi\\\":542,\\\"world-calendars/dist/calendars/nepali\\\":543,\\\"world-calendars/dist/calendars/persian\\\":544,\\\"world-calendars/dist/calendars/taiwan\\\":545,\\\"world-calendars/dist/calendars/thai\\\":546,\\\"world-calendars/dist/calendars/ummalqura\\\":547,\\\"world-calendars/dist/main\\\":548,\\\"world-calendars/dist/plus\\\":549}],568:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./calendars\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\"),o=a.EPOCHJD,s=a.ONEDAY,l={valType:\\\"enumerated\\\",values:Object.keys(n.calendars),editType:\\\"calc\\\",dflt:\\\"gregorian\\\"},c=function(t,e,r,n){var a={};return a[r]=l,i.coerce(t,e,a,r,n)},u=\\\"##\\\",f={d:{0:\\\"dd\\\",\\\"-\\\":\\\"d\\\"},e:{0:\\\"d\\\",\\\"-\\\":\\\"d\\\"},a:{0:\\\"D\\\",\\\"-\\\":\\\"D\\\"},A:{0:\\\"DD\\\",\\\"-\\\":\\\"DD\\\"},j:{0:\\\"oo\\\",\\\"-\\\":\\\"o\\\"},W:{0:\\\"ww\\\",\\\"-\\\":\\\"w\\\"},m:{0:\\\"mm\\\",\\\"-\\\":\\\"m\\\"},b:{0:\\\"M\\\",\\\"-\\\":\\\"M\\\"},B:{0:\\\"MM\\\",\\\"-\\\":\\\"MM\\\"},y:{0:\\\"yy\\\",\\\"-\\\":\\\"yy\\\"},Y:{0:\\\"yyyy\\\",\\\"-\\\":\\\"yyyy\\\"},U:u,w:u,c:{0:\\\"D M d %X yyyy\\\",\\\"-\\\":\\\"D M d %X yyyy\\\"},x:{0:\\\"mm/dd/yyyy\\\",\\\"-\\\":\\\"mm/dd/yyyy\\\"}};var h={};function p(t){var e=h[t];return e||(e=h[t]=n.instance(t))}function d(t){return i.extendFlat({},l,{description:t})}function g(t){return\\\"Sets the calendar system to use with `\\\"+t+\\\"` date data.\\\"}var v={xcalendar:d(g(\\\"x\\\"))},m=i.extendFlat({},v,{ycalendar:d(g(\\\"y\\\"))}),y=i.extendFlat({},m,{zcalendar:d(g(\\\"z\\\"))}),x=d([\\\"Sets the calendar system to use for `range` and `tick0`\\\",\\\"if this is a date axis. This does not set the calendar for\\\",\\\"interpreting data on this axis, that's specified in the trace\\\",\\\"or via the global `layout.calendar`\\\"].join(\\\" \\\"));e.exports={moduleType:\\\"component\\\",name:\\\"calendars\\\",schema:{traces:{scatter:m,bar:m,box:m,heatmap:m,contour:m,histogram:m,histogram2d:m,histogram2dcontour:m,scatter3d:y,surface:y,mesh3d:y,scattergl:m,ohlc:v,candlestick:v},layout:{calendar:d([\\\"Sets the default calendar system to use for interpreting and\\\",\\\"displaying dates throughout the plot.\\\"].join(\\\" \\\"))},subplots:{xaxis:{calendar:x},yaxis:{calendar:x},scene:{xaxis:{calendar:x},yaxis:{calendar:x},zaxis:{calendar:x}},polar:{radialaxis:{calendar:x}}},transforms:{filter:{valuecalendar:d([\\\"Sets the calendar system to use for `value`, if it is a date.\\\"].join(\\\" \\\")),targetcalendar:d([\\\"Sets the calendar system to use for `target`, if it is an\\\",\\\"array of dates. If `target` is a string (eg *x*) we use the\\\",\\\"corresponding trace attribute (eg `xcalendar`) if it exists,\\\",\\\"even if `targetcalendar` is provided.\\\"].join(\\\" \\\"))}}},layoutAttributes:l,handleDefaults:c,handleTraceDefaults:function(t,e,r,n){for(var i=0;i<r.length;i++)c(t,e,r[i]+\\\"calendar\\\",n.calendar)},CANONICAL_SUNDAY:{chinese:\\\"2000-01-02\\\",coptic:\\\"2000-01-03\\\",discworld:\\\"2000-01-03\\\",ethiopian:\\\"2000-01-05\\\",hebrew:\\\"5000-01-01\\\",islamic:\\\"1000-01-02\\\",julian:\\\"2000-01-03\\\",mayan:\\\"5000-01-01\\\",nanakshahi:\\\"1000-01-05\\\",nepali:\\\"2000-01-05\\\",persian:\\\"1000-01-01\\\",jalali:\\\"1000-01-01\\\",taiwan:\\\"1000-01-04\\\",thai:\\\"2000-01-04\\\",ummalqura:\\\"1400-01-06\\\"},CANONICAL_TICK:{chinese:\\\"2000-01-01\\\",coptic:\\\"2000-01-01\\\",discworld:\\\"2000-01-01\\\",ethiopian:\\\"2000-01-01\\\",hebrew:\\\"5000-01-01\\\",islamic:\\\"1000-01-01\\\",julian:\\\"2000-01-01\\\",mayan:\\\"5000-01-01\\\",nanakshahi:\\\"1000-01-01\\\",nepali:\\\"2000-01-01\\\",persian:\\\"1000-01-01\\\",jalali:\\\"1000-01-01\\\",taiwan:\\\"1000-01-01\\\",thai:\\\"2000-01-01\\\",ummalqura:\\\"1400-01-01\\\"},DFLTRANGE:{chinese:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"],coptic:[\\\"1700-01-01\\\",\\\"1701-01-01\\\"],discworld:[\\\"1800-01-01\\\",\\\"1801-01-01\\\"],ethiopian:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"],hebrew:[\\\"5700-01-01\\\",\\\"5701-01-01\\\"],islamic:[\\\"1400-01-01\\\",\\\"1401-01-01\\\"],julian:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"],mayan:[\\\"5200-01-01\\\",\\\"5201-01-01\\\"],nanakshahi:[\\\"0500-01-01\\\",\\\"0501-01-01\\\"],nepali:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"],persian:[\\\"1400-01-01\\\",\\\"1401-01-01\\\"],jalali:[\\\"1400-01-01\\\",\\\"1401-01-01\\\"],taiwan:[\\\"0100-01-01\\\",\\\"0101-01-01\\\"],thai:[\\\"2500-01-01\\\",\\\"2501-01-01\\\"],ummalqura:[\\\"1400-01-01\\\",\\\"1401-01-01\\\"]},getCal:p,worldCalFmt:function(t,e,r){for(var n,i,a,l,c,h=Math.floor((e+.05)/s)+o,d=p(r).fromJD(h),g=0;-1!==(g=t.indexOf(\\\"%\\\",g));)\\\"0\\\"===(n=t.charAt(g+1))||\\\"-\\\"===n||\\\"_\\\"===n?(a=3,i=t.charAt(g+2),\\\"_\\\"===n&&(n=\\\"-\\\")):(i=n,n=\\\"0\\\",a=2),(l=f[i])?(c=l===u?u:d.formatDate(l[n]),t=t.substr(0,g)+c+t.substr(g+a),g+=c.length):g+=a;return t}}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"./calendars\\\":567}],569:[function(t,e,r){\\\"use strict\\\";r.defaults=[\\\"#1f77b4\\\",\\\"#ff7f0e\\\",\\\"#2ca02c\\\",\\\"#d62728\\\",\\\"#9467bd\\\",\\\"#8c564b\\\",\\\"#e377c2\\\",\\\"#7f7f7f\\\",\\\"#bcbd22\\\",\\\"#17becf\\\"],r.defaultLine=\\\"#444\\\",r.lightLine=\\\"#eee\\\",r.background=\\\"#fff\\\",r.borderLine=\\\"#BEC8D9\\\",r.lightFraction=1e3/11},{}],570:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"tinycolor2\\\"),i=t(\\\"fast-isnumeric\\\"),a=e.exports={},o=t(\\\"./attributes\\\");a.defaults=o.defaults;var s=a.defaultLine=o.defaultLine;a.lightLine=o.lightLine;var l=a.background=o.background;function c(t){if(i(t)||\\\"string\\\"!=typeof t)return t;var e=t.trim();if(\\\"rgb\\\"!==e.substr(0,3))return t;var r=e.match(/^rgba?\\\\s*\\\\(([^()]*)\\\\)$/);if(!r)return t;var n=r[1].trim().split(/\\\\s*[\\\\s,]\\\\s*/),a=\\\"a\\\"===e.charAt(3)&&4===n.length;if(!a&&3!==n.length)return t;for(var o=0;o<n.length;o++){if(!n[o].length)return t;if(n[o]=Number(n[o]),!(n[o]>=0))return t;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return t}var s=Math.round(255*n[0])+\\\", \\\"+Math.round(255*n[1])+\\\", \\\"+Math.round(255*n[2]);return a?\\\"rgba(\\\"+s+\\\", \\\"+n[3]+\\\")\\\":\\\"rgb(\\\"+s+\\\")\\\"}a.tinyRGB=function(t){var e=t.toRgb();return\\\"rgb(\\\"+Math.round(e.r)+\\\", \\\"+Math.round(e.g)+\\\", \\\"+Math.round(e.b)+\\\")\\\"},a.rgb=function(t){return a.tinyRGB(n(t))},a.opacity=function(t){return t?n(t).getAlpha():0},a.addOpacity=function(t,e){var r=n(t).toRgb();return\\\"rgba(\\\"+Math.round(r.r)+\\\", \\\"+Math.round(r.g)+\\\", \\\"+Math.round(r.b)+\\\", \\\"+e+\\\")\\\"},a.combine=function(t,e){var r=n(t).toRgb();if(1===r.a)return n(t).toRgbString();var i=n(e||l).toRgb(),a=1===i.a?i:{r:255*(1-i.a)+i.r*i.a,g:255*(1-i.a)+i.g*i.a,b:255*(1-i.a)+i.b*i.a},o={r:a.r*(1-r.a)+r.r*r.a,g:a.g*(1-r.a)+r.g*r.a,b:a.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},a.contrast=function(t,e,r){var i=n(t);return 1!==i.getAlpha()&&(i=n(a.combine(t,l))),(i.isDark()?e?i.lighten(e):l:r?i.darken(r):s).toString()},a.stroke=function(t,e){var r=n(e);t.style({stroke:a.tinyRGB(r),\\\"stroke-opacity\\\":r.getAlpha()})},a.fill=function(t,e){var r=n(e);t.style({fill:a.tinyRGB(r),\\\"fill-opacity\\\":r.getAlpha()})},a.clean=function(t){if(t&&\\\"object\\\"==typeof t){var e,r,n,i,o=Object.keys(t);for(e=0;e<o.length;e++)if(i=t[n=o[e]],\\\"color\\\"===n.substr(n.length-5))if(Array.isArray(i))for(r=0;r<i.length;r++)i[r]=c(i[r]);else t[n]=c(i);else if(\\\"colorscale\\\"===n.substr(n.length-10)&&Array.isArray(i))for(r=0;r<i.length;r++)Array.isArray(i[r])&&(i[r][1]=c(i[r][1]));else if(Array.isArray(i)){var s=i[0];if(!Array.isArray(s)&&s&&\\\"object\\\"==typeof s)for(r=0;r<i.length;r++)a.clean(i[r])}else i&&\\\"object\\\"==typeof i&&a.clean(i)}}},{\\\"./attributes\\\":569,\\\"fast-isnumeric\\\":214,tinycolor2:514}],571:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/layout_attributes\\\"),i=t(\\\"../../plots/font_attributes\\\"),a=t(\\\"../../lib/extend\\\").extendFlat,o=t(\\\"../../plot_api/edit_types\\\").overrideAll;e.exports=o({thicknessmode:{valType:\\\"enumerated\\\",values:[\\\"fraction\\\",\\\"pixels\\\"],dflt:\\\"pixels\\\"},thickness:{valType:\\\"number\\\",min:0,dflt:30},lenmode:{valType:\\\"enumerated\\\",values:[\\\"fraction\\\",\\\"pixels\\\"],dflt:\\\"fraction\\\"},len:{valType:\\\"number\\\",min:0,dflt:1},x:{valType:\\\"number\\\",dflt:1.02,min:-2,max:3},xanchor:{valType:\\\"enumerated\\\",values:[\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\"},xpad:{valType:\\\"number\\\",min:0,dflt:10},y:{valType:\\\"number\\\",dflt:.5,min:-2,max:3},yanchor:{valType:\\\"enumerated\\\",values:[\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"middle\\\"},ypad:{valType:\\\"number\\\",min:0,dflt:10},outlinecolor:n.linecolor,outlinewidth:n.linewidth,bordercolor:n.linecolor,borderwidth:{valType:\\\"number\\\",min:0,dflt:0},bgcolor:{valType:\\\"color\\\",dflt:\\\"rgba(0,0,0,0)\\\"},tickmode:n.tickmode,nticks:n.nticks,tick0:n.tick0,dtick:n.dtick,tickvals:n.tickvals,ticktext:n.ticktext,ticks:a({},n.ticks,{dflt:\\\"\\\"}),ticklen:n.ticklen,tickwidth:n.tickwidth,tickcolor:n.tickcolor,showticklabels:n.showticklabels,tickfont:i({}),tickangle:n.tickangle,tickformat:n.tickformat,tickformatstops:n.tickformatstops,tickprefix:n.tickprefix,showtickprefix:n.showtickprefix,ticksuffix:n.ticksuffix,showticksuffix:n.showticksuffix,separatethousands:n.separatethousands,exponentformat:n.exponentformat,showexponent:n.showexponent,title:{valType:\\\"string\\\"},titlefont:i({}),titleside:{valType:\\\"enumerated\\\",values:[\\\"right\\\",\\\"top\\\",\\\"bottom\\\"],dflt:\\\"top\\\"}},\\\"colorbars\\\",\\\"from-root\\\")},{\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/cartesian/layout_attributes\\\":757,\\\"../../plots/font_attributes\\\":771}],572:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./draw\\\");e.exports=function(t,e,r){if(\\\"function\\\"==typeof r)return r(t,e);var i=e[0].trace,a=\\\"cb\\\"+i.uid,o=r.container,s=o?i[o]:i;(t._fullLayout._infolayer.selectAll(\\\".\\\"+a).remove(),s&&s.showscale)&&(e[0].t.cb=n(t,a)).fillgradient(s.colorscale).zrange([s[r.min],s[r.max]]).options(s.colorbar)()}},{\\\"./draw\\\":575}],573:[function(t,e,r){\\\"use strict\\\";e.exports={cn:{colorbar:\\\"colorbar\\\",cbbg:\\\"cbbg\\\",cbfill:\\\"cbfill\\\",cbfills:\\\"cbfills\\\",cbline:\\\"cbline\\\",cblines:\\\"cblines\\\",cbaxis:\\\"cbaxis\\\",cbtitleunshift:\\\"cbtitleunshift\\\",cbtitle:\\\"cbtitle\\\",cboutline:\\\"cboutline\\\",crisp:\\\"crisp\\\",jsPlaceholder:\\\"js-placeholder\\\"}}},{}],574:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plot_api/plot_template\\\"),a=t(\\\"../../plots/cartesian/tick_value_defaults\\\"),o=t(\\\"../../plots/cartesian/tick_mark_defaults\\\"),s=t(\\\"../../plots/cartesian/tick_label_defaults\\\"),l=t(\\\"./attributes\\\");e.exports=function(t,e,r){var c=i.newContainer(e,\\\"colorbar\\\"),u=t.colorbar||{};function f(t,e){return n.coerce(u,c,l,t,e)}var h=f(\\\"thicknessmode\\\");f(\\\"thickness\\\",\\\"fraction\\\"===h?30/(r.width-r.margin.l-r.margin.r):30);var p=f(\\\"lenmode\\\");f(\\\"len\\\",\\\"fraction\\\"===p?1:r.height-r.margin.t-r.margin.b),f(\\\"x\\\"),f(\\\"xanchor\\\"),f(\\\"xpad\\\"),f(\\\"y\\\"),f(\\\"yanchor\\\"),f(\\\"ypad\\\"),n.noneOrAll(u,c,[\\\"x\\\",\\\"y\\\"]),f(\\\"outlinecolor\\\"),f(\\\"outlinewidth\\\"),f(\\\"bordercolor\\\"),f(\\\"borderwidth\\\"),f(\\\"bgcolor\\\"),a(u,c,f,\\\"linear\\\");var d={outerTicks:!1,font:r.font};s(u,c,f,\\\"linear\\\",d),o(u,c,f,\\\"linear\\\",d),f(\\\"title\\\",r._dfltTitle.colorbar),n.coerceFont(f,\\\"titlefont\\\",r.font),f(\\\"titleside\\\")}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/tick_label_defaults\\\":764,\\\"../../plots/cartesian/tick_mark_defaults\\\":765,\\\"../../plots/cartesian/tick_value_defaults\\\":766,\\\"./attributes\\\":571}],575:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../plots/cartesian/axes\\\"),l=t(\\\"../dragelement\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../lib/extend\\\").extendFlat,f=t(\\\"../../lib/setcursor\\\"),h=t(\\\"../drawing\\\"),p=t(\\\"../color\\\"),d=t(\\\"../titles\\\"),g=t(\\\"../../lib/svg_text_utils\\\"),v=t(\\\"../../constants/alignment\\\"),m=v.LINE_SPACING,y=v.FROM_TL,x=v.FROM_BR,b=t(\\\"../../plots/cartesian/axis_defaults\\\"),_=t(\\\"../../plots/cartesian/position_defaults\\\"),w=t(\\\"../../plots/cartesian/layout_attributes\\\"),k=t(\\\"./attributes\\\"),M=t(\\\"./constants\\\").cn;e.exports=function(t,e){var r={};for(var v in k)r[v]=null;function A(){var v=t._fullLayout,k=v._size;if(\\\"function\\\"==typeof r.fillcolor||\\\"function\\\"==typeof r.line.color||r.fillgradient){var S,E,C=r.zrange||n.extent((\\\"function\\\"==typeof r.fillcolor?r.fillcolor:r.line.color).domain()),L=[],z=[],O=\\\"function\\\"==typeof r.line.color?r.line.color:function(){return r.line.color},I=\\\"function\\\"==typeof r.fillcolor?r.fillcolor:function(){return r.fillcolor},P=r.levels.end+r.levels.size/100,D=r.levels.size,R=1.001*C[0]-.001*C[1],B=1.001*C[1]-.001*C[0];for(E=0;E<1e5&&(S=r.levels.start+E*D,!(D>0?S>=P:S<=P));E++)S>R&&S<B&&L.push(S);if(r.fillgradient)z=[0];else if(\\\"function\\\"==typeof r.fillcolor)if(r.filllevels)for(P=r.filllevels.end+r.filllevels.size/100,D=r.filllevels.size,E=0;E<1e5&&(S=r.filllevels.start+E*D,!(D>0?S>=P:S<=P));E++)S>C[0]&&S<C[1]&&z.push(S);else(z=L.map(function(t){return t-r.levels.size/2})).push(z[z.length-1]+r.levels.size);else r.fillcolor&&\\\"string\\\"==typeof r.fillcolor&&(z=[0]);r.levels.size<0&&(L.reverse(),z.reverse());var F,N=k.h,j=k.w,V=Math.round(r.thickness*(\\\"fraction\\\"===r.thicknessmode?j:1)),U=V/k.w,q=Math.round(r.len*(\\\"fraction\\\"===r.lenmode?N:1)),H=q/k.h,G=r.xpad/k.w,W=(r.borderwidth+r.outlinewidth)/2,Y=r.ypad/k.h,X=Math.round(r.x*k.w+r.xpad),Z=r.x-U*({middle:.5,right:1}[r.xanchor]||0),$=r.y+H*(({top:-.5,bottom:.5}[r.yanchor]||0)-.5),J=Math.round(k.h*(1-$)),K=J-q,Q={type:\\\"linear\\\",range:C,tickmode:r.tickmode,nticks:r.nticks,tick0:r.tick0,dtick:r.dtick,tickvals:r.tickvals,ticktext:r.ticktext,ticks:r.ticks,ticklen:r.ticklen,tickwidth:r.tickwidth,tickcolor:r.tickcolor,showticklabels:r.showticklabels,tickfont:r.tickfont,tickangle:r.tickangle,tickformat:r.tickformat,exponentformat:r.exponentformat,separatethousands:r.separatethousands,showexponent:r.showexponent,showtickprefix:r.showtickprefix,tickprefix:r.tickprefix,showticksuffix:r.showticksuffix,ticksuffix:r.ticksuffix,title:r.title,titlefont:r.titlefont,showline:!0,anchor:\\\"free\\\",position:1},tt={type:\\\"linear\\\",_id:\\\"y\\\"+e},et={letter:\\\"y\\\",font:v.font,noHover:!0,calendar:v.calendar};if(b(Q,tt,vt,et,v),_(Q,tt,vt,et),tt.position=r.x+G+U,A.axis=tt,-1!==[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)&&(tt.titleside=r.titleside,tt.titlex=r.x+G,tt.titley=$+(\\\"top\\\"===r.titleside?H-Y:Y)),r.line.color&&\\\"auto\\\"===r.tickmode){tt.tickmode=\\\"linear\\\",tt.tick0=r.levels.start;var rt=r.levels.size,nt=c.constrain((J-K)/50,4,15)+1,it=(C[1]-C[0])/((r.nticks||nt)*rt);if(it>1){var at=Math.pow(10,Math.floor(Math.log(it)/Math.LN10));rt*=at*c.roundUp(it/at,[2,5,10]),(Math.abs(r.levels.start)/r.levels.size+1e-6)%1<2e-6&&(tt.tick0=0)}tt.dtick=rt}tt.domain=[$+Y,$+H-Y],tt.setScale();var ot=c.ensureSingle(v._infolayer,\\\"g\\\",e,function(t){t.classed(M.colorbar,!0).each(function(){var t=n.select(this);t.append(\\\"rect\\\").classed(M.cbbg,!0),t.append(\\\"g\\\").classed(M.cbfills,!0),t.append(\\\"g\\\").classed(M.cblines,!0),t.append(\\\"g\\\").classed(M.cbaxis,!0).classed(M.crisp,!0),t.append(\\\"g\\\").classed(M.cbtitleunshift,!0).append(\\\"g\\\").classed(M.cbtitle,!0),t.append(\\\"rect\\\").classed(M.cboutline,!0),t.select(\\\".cbtitle\\\").datum(0)})});ot.attr(\\\"transform\\\",\\\"translate(\\\"+Math.round(k.l)+\\\",\\\"+Math.round(k.t)+\\\")\\\");var st=ot.select(\\\".cbtitleunshift\\\").attr(\\\"transform\\\",\\\"translate(-\\\"+Math.round(k.l)+\\\",-\\\"+Math.round(k.t)+\\\")\\\");tt._axislayer=ot.select(\\\".cbaxis\\\");var lt=0;if(-1!==[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)){var ct,ut=k.l+(r.x+G)*k.w,ft=tt.titlefont.size;ct=\\\"top\\\"===r.titleside?(1-($+H-Y))*k.h+k.t+3+.75*ft:(1-($+Y))*k.h+k.t-3-.25*ft,mt(tt._id+\\\"title\\\",{attributes:{x:ut,y:ct,\\\"text-anchor\\\":\\\"start\\\"}})}var ht,pt,dt,gt=c.syncOrAsync([a.previousPromises,function(){if(-1!==[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)){var a=ot.select(\\\".cbtitle\\\"),o=a.select(\\\"text\\\"),l=[-r.outlinewidth/2,r.outlinewidth/2],u=a.select(\\\".h\\\"+tt._id+\\\"title-math-group\\\").node(),f=15.6;if(o.node()&&(f=parseInt(o.node().style.fontSize,10)*m),u?(lt=h.bBox(u).height)>f&&(l[1]-=(lt-f)/2):o.node()&&!o.classed(M.jsPlaceholder)&&(lt=h.bBox(o.node()).height),lt){if(lt+=5,\\\"top\\\"===r.titleside)tt.domain[1]-=lt/k.h,l[1]*=-1;else{tt.domain[0]+=lt/k.h;var p=g.lineCount(o);l[1]+=(1-p)*f}a.attr(\\\"transform\\\",\\\"translate(\\\"+l+\\\")\\\"),tt.setScale()}}ot.selectAll(\\\".cbfills,.cblines\\\").attr(\\\"transform\\\",\\\"translate(0,\\\"+Math.round(k.h*(1-tt.domain[1]))+\\\")\\\"),tt._axislayer.attr(\\\"transform\\\",\\\"translate(0,\\\"+Math.round(-k.t)+\\\")\\\");var d=ot.select(\\\".cbfills\\\").selectAll(\\\"rect.cbfill\\\").data(z);d.enter().append(\\\"rect\\\").classed(M.cbfill,!0).style(\\\"stroke\\\",\\\"none\\\"),d.exit().remove();var y=C.map(tt.c2p).map(Math.round).sort(function(t,e){return t-e});d.each(function(a,o){var s=[0===o?C[0]:(z[o]+z[o-1])/2,o===z.length-1?C[1]:(z[o]+z[o+1])/2].map(tt.c2p).map(Math.round);s[1]=c.constrain(s[1]+(s[1]>s[0])?1:-1,y[0],y[1]);var l=n.select(this).attr({x:X,width:Math.max(V,2),y:n.min(s),height:Math.max(n.max(s)-n.min(s),2)});if(r.fillgradient)h.gradient(l,t,e,\\\"vertical\\\",r.fillgradient,\\\"fill\\\");else{var u=I(a).replace(\\\"e-\\\",\\\"\\\");l.attr(\\\"fill\\\",i(u).toHexString())}});var x=ot.select(\\\".cblines\\\").selectAll(\\\"path.cbline\\\").data(r.line.color&&r.line.width?L:[]);return x.enter().append(\\\"path\\\").classed(M.cbline,!0),x.exit().remove(),x.each(function(t){n.select(this).attr(\\\"d\\\",\\\"M\\\"+X+\\\",\\\"+(Math.round(tt.c2p(t))+r.line.width/2%1)+\\\"h\\\"+V).call(h.lineGroupStyle,r.line.width,O(t),r.line.dash)}),tt._axislayer.selectAll(\\\"g.\\\"+tt._id+\\\"tick,path\\\").remove(),tt._pos=X+V+(r.outlinewidth||0)/2-(\\\"outside\\\"===r.ticks?1:0),tt.side=\\\"right\\\",c.syncOrAsync([function(){return s.doTicksSingle(t,tt,!0)},function(){if(-1===[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)){var e=tt.titlefont.size,i=tt._offset+tt._length/2,a=k.l+(tt.position||0)*k.w+(\\\"right\\\"===tt.side?10+e*(tt.showticklabels?1:.5):-10-e*(tt.showticklabels?.5:0));mt(\\\"h\\\"+tt._id+\\\"title\\\",{avoid:{selection:n.select(t).selectAll(\\\"g.\\\"+tt._id+\\\"tick\\\"),side:r.titleside,offsetLeft:k.l,offsetTop:0,maxShift:v.width},attributes:{x:a,y:i,\\\"text-anchor\\\":\\\"middle\\\"},transform:{rotate:\\\"-90\\\",offset:0}})}}])},a.previousPromises,function(){var n=V+r.outlinewidth/2+h.bBox(tt._axislayer.node()).width;if((F=st.select(\\\"text\\\")).node()&&!F.classed(M.jsPlaceholder)){var i,o=st.select(\\\".h\\\"+tt._id+\\\"title-math-group\\\").node();i=o&&-1!==[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)?h.bBox(o).width:h.bBox(st.node()).right-X-k.l,n=Math.max(n,i)}var s=2*r.xpad+n+r.borderwidth+r.outlinewidth/2,l=J-K;ot.select(\\\".cbbg\\\").attr({x:X-r.xpad-(r.borderwidth+r.outlinewidth)/2,y:K-W,width:Math.max(s,2),height:Math.max(l+2*W,2)}).call(p.fill,r.bgcolor).call(p.stroke,r.bordercolor).style({\\\"stroke-width\\\":r.borderwidth}),ot.selectAll(\\\".cboutline\\\").attr({x:X,y:K+r.ypad+(\\\"top\\\"===r.titleside?lt:0),width:Math.max(V,2),height:Math.max(l-2*r.ypad-lt,2)}).call(p.stroke,r.outlinecolor).style({fill:\\\"None\\\",\\\"stroke-width\\\":r.outlinewidth});var c=({center:.5,right:1}[r.xanchor]||0)*s;ot.attr(\\\"transform\\\",\\\"translate(\\\"+(k.l-c)+\\\",\\\"+k.t+\\\")\\\");var u={},f=y[r.yanchor],d=x[r.yanchor];\\\"pixels\\\"===r.lenmode?(u.y=r.y,u.t=l*f,u.b=l*d):(u.t=u.b=0,u.yt=r.y+r.len*f,u.yb=r.y-r.len*d);var g=y[r.xanchor],v=x[r.xanchor];if(\\\"pixels\\\"===r.thicknessmode)u.x=r.x,u.l=s*g,u.r=s*v;else{var m=s-V;u.l=m*g,u.r=m*v,u.xl=r.x-r.thickness*g,u.xr=r.x+r.thickness*v}a.autoMargin(t,e,u)}],t);if(gt&&gt.then&&(t._promises||[]).push(gt),t._context.edits.colorbarPosition)l.init({element:ot.node(),gd:t,prepFn:function(){ht=ot.attr(\\\"transform\\\"),f(ot)},moveFn:function(t,e){ot.attr(\\\"transform\\\",ht+\\\" translate(\\\"+t+\\\",\\\"+e+\\\")\\\"),pt=l.align(Z+t/k.w,U,0,1,r.xanchor),dt=l.align($-e/k.h,H,0,1,r.yanchor);var n=l.getCursor(pt,dt,r.xanchor,r.yanchor);f(ot,n)},doneFn:function(){f(ot),void 0!==pt&&void 0!==dt&&o.call(\\\"restyle\\\",t,{\\\"colorbar.x\\\":pt,\\\"colorbar.y\\\":dt},T().index)}});return gt}function vt(t,e){return c.coerce(Q,tt,w,t,e)}function mt(e,r){var n=T(),i=\\\"colorbar.title\\\",a=n._module.colorbar.container;a&&(i=a+\\\".\\\"+i);var o={propContainer:tt,propName:i,traceIndex:n.index,placeholder:v._dfltTitle.colorbar,containerGroup:ot.select(\\\".cbtitle\\\")},s=\\\"h\\\"===e.charAt(0)?e.substr(1):\\\"h\\\"+e;ot.selectAll(\\\".\\\"+s+\\\",.\\\"+s+\\\"-math-group\\\").remove(),d.draw(t,e,u(o,r||{}))}v._infolayer.selectAll(\\\"g.\\\"+e).remove()}function T(){var r,n,i=e.substr(2);for(r=0;r<t._fullData.length;r++)if((n=t._fullData[r]).uid===i)return n}return r.fillcolor=null,r.line={color:null,width:null,dash:null},r.levels={start:null,end:null,size:null},r.filllevels=null,r.fillgradient=null,r.zrange=null,Object.keys(r).forEach(function(t){A[t]=function(e){return arguments.length?(r[t]=c.isPlainObject(r[t])?c.extendFlat(r[t],e):e,A):r[t]}}),A.options=function(t){for(var e in t)\\\"function\\\"==typeof A[e]&&A[e](t[e]);return A},A._opts=r,A}},{\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/extend\\\":685,\\\"../../lib/setcursor\\\":716,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/cartesian/axis_defaults\\\":746,\\\"../../plots/cartesian/layout_attributes\\\":757,\\\"../../plots/cartesian/position_defaults\\\":760,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"../titles\\\":661,\\\"./attributes\\\":571,\\\"./constants\\\":573,d3:148,tinycolor2:514}],576:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t){return n.isPlainObject(t.colorbar)}},{\\\"../../lib\\\":696}],577:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scales.js\\\");Object.keys(n);function i(t){return\\\"`\\\"+t+\\\"`\\\"}e.exports=function(t,e){t=t||\\\"\\\";var r,a=(e=e||{}).cLetter||\\\"c\\\",o=(\\\"onlyIfNumerical\\\"in e?e.onlyIfNumerical:Boolean(t),\\\"noScale\\\"in e?e.noScale:\\\"marker.line\\\"===t),s=\\\"showScaleDflt\\\"in e?e.showScaleDflt:\\\"z\\\"===a,l=\\\"string\\\"==typeof e.colorscaleDflt?n[e.colorscaleDflt]:null,c=e.editTypeOverride||\\\"\\\",u=t?t+\\\".\\\":\\\"\\\";\\\"colorAttr\\\"in e?(r=e.colorAttr,e.colorAttr):i(u+(r={z:\\\"z\\\",c:\\\"color\\\"}[a]));var f=a+\\\"auto\\\",h=a+\\\"min\\\",p=a+\\\"max\\\",d=(i(u+h),i(u+p),{});d[h]=d[p]=void 0;var g={};g[f]=!1;var v={};return\\\"color\\\"===r&&(v.color={valType:\\\"color\\\",arrayOk:!0,editType:c||\\\"style\\\"}),v[f]={valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\",impliedEdits:d},v[h]={valType:\\\"number\\\",dflt:null,editType:c||\\\"plot\\\",impliedEdits:g},v[p]={valType:\\\"number\\\",dflt:null,editType:c||\\\"plot\\\",impliedEdits:g},v.colorscale={valType:\\\"colorscale\\\",editType:\\\"calc\\\",dflt:l,impliedEdits:{autocolorscale:!1}},v.autocolorscale={valType:\\\"boolean\\\",dflt:!1!==e.autoColorDflt,editType:\\\"calc\\\",impliedEdits:{colorscale:void 0}},v.reversescale={valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},o||(v.showscale={valType:\\\"boolean\\\",dflt:s,editType:\\\"calc\\\"}),v}},{\\\"./scales.js\\\":589}],578:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./scales\\\"),a=t(\\\"./flip_scale\\\");e.exports=function(t,e,r,o){var s=t,l=t._input,c=t._fullInput,u=t.updateStyle;function f(e,n,i){void 0===i&&(i=n),u?u(t._input,r?r+\\\".\\\"+e:e,n):l[e]=n,s[e]=i,c&&t!==t._fullInput&&(u?u(t._fullInput,r?r+\\\".\\\"+e:e,i):c[e]=i)}r&&(s=n.nestedProperty(s,r).get(),l=n.nestedProperty(l,r).get(),c=n.nestedProperty(c,r).get()||{});var h=o+\\\"auto\\\",p=o+\\\"min\\\",d=o+\\\"max\\\",g=s[h],v=s[p],m=s[d],y=s.colorscale;!1===g&&void 0!==v||(v=n.aggNums(Math.min,null,e)),!1===g&&void 0!==m||(m=n.aggNums(Math.max,null,e)),v===m&&(v-=.5,m+=.5),f(p,v),f(d,m),f(h,!1!==g||void 0===v&&void 0===m),s.autocolorscale&&(f(\\\"colorscale\\\",y=v*m<0?i.RdBu:v>=0?i.Reds:i.Blues,s.reversescale?a(y):y),l.autocolorscale||f(\\\"autocolorscale\\\",!1))}},{\\\"../../lib\\\":696,\\\"./flip_scale\\\":582,\\\"./scales\\\":589}],579:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scales\\\");e.exports=n.RdBu},{\\\"./scales\\\":589}],580:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../colorbar/has_colorbar\\\"),o=t(\\\"../colorbar/defaults\\\"),s=t(\\\"./is_valid_scale\\\"),l=t(\\\"./flip_scale\\\");e.exports=function(t,e,r,c,u){var f,h=u.prefix,p=u.cLetter,d=h.slice(0,h.length-1),g=h?i.nestedProperty(t,d).get()||{}:t,v=h?i.nestedProperty(e,d).get()||{}:e,m=g[p+\\\"min\\\"],y=g[p+\\\"max\\\"],x=g.colorscale;c(h+p+\\\"auto\\\",!(n(m)&&n(y)&&m<y)),c(h+p+\\\"min\\\"),c(h+p+\\\"max\\\"),void 0!==x&&(f=!s(x)),c(h+\\\"autocolorscale\\\",f);var b,_=c(h+\\\"colorscale\\\");(c(h+\\\"reversescale\\\")&&(v.colorscale=l(_)),\\\"marker.line.\\\"!==h)&&(u.noScale||(h&&(b=a(g)),c(h+\\\"showscale\\\",b)&&o(g,v,r)))}},{\\\"../../lib\\\":696,\\\"../colorbar/defaults\\\":574,\\\"../colorbar/has_colorbar\\\":576,\\\"./flip_scale\\\":582,\\\"./is_valid_scale\\\":586,\\\"fast-isnumeric\\\":214}],581:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){for(var n=t.length,i=new Array(n),a=new Array(n),o=0;o<n;o++){var s=t[o];i[o]=e+s[0]*(r-e),a[o]=s[1]}return{domain:i,range:a}}},{}],582:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e,r=t.length,n=new Array(r),i=r-1,a=0;i>=0;i--,a++)e=t[i],n[a]=[1-e[0],e[1]];return n}},{}],583:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scales\\\"),i=t(\\\"./default_scale\\\"),a=t(\\\"./is_valid_scale_array\\\");e.exports=function(t,e){if(e||(e=i),!t)return e;function r(){try{t=n[t]||JSON.parse(t)}catch(r){t=e}}return\\\"string\\\"==typeof t&&(r(),\\\"string\\\"==typeof t&&r()),a(t)?t:e}},{\\\"./default_scale\\\":579,\\\"./is_valid_scale_array\\\":587,\\\"./scales\\\":589}],584:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"./is_valid_scale\\\");e.exports=function(t,e){var r=e?i.nestedProperty(t,e).get()||{}:t,o=r.color,s=!1;if(i.isArrayOrTypedArray(o))for(var l=0;l<o.length;l++)if(n(o[l])){s=!0;break}return i.isPlainObject(r)&&(s||!0===r.showscale||n(r.cmin)&&n(r.cmax)||a(r.colorscale)||i.isPlainObject(r.colorbar))}},{\\\"../../lib\\\":696,\\\"./is_valid_scale\\\":586,\\\"fast-isnumeric\\\":214}],585:[function(t,e,r){\\\"use strict\\\";r.scales=t(\\\"./scales\\\"),r.defaultScale=t(\\\"./default_scale\\\"),r.attributes=t(\\\"./attributes\\\"),r.handleDefaults=t(\\\"./defaults\\\"),r.calc=t(\\\"./calc\\\"),r.hasColorscale=t(\\\"./has_colorscale\\\"),r.isValidScale=t(\\\"./is_valid_scale\\\"),r.getScale=t(\\\"./get_scale\\\"),r.flipScale=t(\\\"./flip_scale\\\"),r.extractScale=t(\\\"./extract_scale\\\"),r.makeColorScaleFunc=t(\\\"./make_color_scale_func\\\")},{\\\"./attributes\\\":577,\\\"./calc\\\":578,\\\"./default_scale\\\":579,\\\"./defaults\\\":580,\\\"./extract_scale\\\":581,\\\"./flip_scale\\\":582,\\\"./get_scale\\\":583,\\\"./has_colorscale\\\":584,\\\"./is_valid_scale\\\":586,\\\"./make_color_scale_func\\\":588,\\\"./scales\\\":589}],586:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scales\\\"),i=t(\\\"./is_valid_scale_array\\\");e.exports=function(t){return void 0!==n[t]||i(t)}},{\\\"./is_valid_scale_array\\\":587,\\\"./scales\\\":589}],587:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"tinycolor2\\\");e.exports=function(t){var e=0;if(!Array.isArray(t)||t.length<2)return!1;if(!t[0]||!t[t.length-1])return!1;if(0!=+t[0][0]||1!=+t[t.length-1][0])return!1;for(var r=0;r<t.length;r++){var i=t[r];if(2!==i.length||+i[0]<e||!n(i[1]).isValid())return!1;e=+i[0]}return!0}},{tinycolor2:514}],588:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"fast-isnumeric\\\"),o=t(\\\"../color\\\");function s(t){var e={r:t[0],g:t[1],b:t[2],a:t[3]};return i(e).toRgbString()}e.exports=function(t,e){e=e||{};for(var r=t.domain,l=t.range,c=l.length,u=new Array(c),f=0;f<c;f++){var h=i(l[f]).toRgb();u[f]=[h.r,h.g,h.b,h.a]}var p,d=n.scale.linear().domain(r).range(u).clamp(!0),g=e.noNumericCheck,v=e.returnArray;return(p=g&&v?d:g?function(t){return s(d(t))}:v?function(t){return a(t)?d(t):i(t).isValid()?t:o.defaultLine}:function(t){return a(t)?s(d(t)):i(t).isValid()?t:o.defaultLine}).domain=d.domain,p.range=function(){return l},p}},{\\\"../color\\\":570,d3:148,\\\"fast-isnumeric\\\":214,tinycolor2:514}],589:[function(t,e,r){\\\"use strict\\\";e.exports={Greys:[[0,\\\"rgb(0,0,0)\\\"],[1,\\\"rgb(255,255,255)\\\"]],YlGnBu:[[0,\\\"rgb(8,29,88)\\\"],[.125,\\\"rgb(37,52,148)\\\"],[.25,\\\"rgb(34,94,168)\\\"],[.375,\\\"rgb(29,145,192)\\\"],[.5,\\\"rgb(65,182,196)\\\"],[.625,\\\"rgb(127,205,187)\\\"],[.75,\\\"rgb(199,233,180)\\\"],[.875,\\\"rgb(237,248,217)\\\"],[1,\\\"rgb(255,255,217)\\\"]],Greens:[[0,\\\"rgb(0,68,27)\\\"],[.125,\\\"rgb(0,109,44)\\\"],[.25,\\\"rgb(35,139,69)\\\"],[.375,\\\"rgb(65,171,93)\\\"],[.5,\\\"rgb(116,196,118)\\\"],[.625,\\\"rgb(161,217,155)\\\"],[.75,\\\"rgb(199,233,192)\\\"],[.875,\\\"rgb(229,245,224)\\\"],[1,\\\"rgb(247,252,245)\\\"]],YlOrRd:[[0,\\\"rgb(128,0,38)\\\"],[.125,\\\"rgb(189,0,38)\\\"],[.25,\\\"rgb(227,26,28)\\\"],[.375,\\\"rgb(252,78,42)\\\"],[.5,\\\"rgb(253,141,60)\\\"],[.625,\\\"rgb(254,178,76)\\\"],[.75,\\\"rgb(254,217,118)\\\"],[.875,\\\"rgb(255,237,160)\\\"],[1,\\\"rgb(255,255,204)\\\"]],Bluered:[[0,\\\"rgb(0,0,255)\\\"],[1,\\\"rgb(255,0,0)\\\"]],RdBu:[[0,\\\"rgb(5,10,172)\\\"],[.35,\\\"rgb(106,137,247)\\\"],[.5,\\\"rgb(190,190,190)\\\"],[.6,\\\"rgb(220,170,132)\\\"],[.7,\\\"rgb(230,145,90)\\\"],[1,\\\"rgb(178,10,28)\\\"]],Reds:[[0,\\\"rgb(220,220,220)\\\"],[.2,\\\"rgb(245,195,157)\\\"],[.4,\\\"rgb(245,160,105)\\\"],[1,\\\"rgb(178,10,28)\\\"]],Blues:[[0,\\\"rgb(5,10,172)\\\"],[.35,\\\"rgb(40,60,190)\\\"],[.5,\\\"rgb(70,100,245)\\\"],[.6,\\\"rgb(90,120,245)\\\"],[.7,\\\"rgb(106,137,247)\\\"],[1,\\\"rgb(220,220,220)\\\"]],Picnic:[[0,\\\"rgb(0,0,255)\\\"],[.1,\\\"rgb(51,153,255)\\\"],[.2,\\\"rgb(102,204,255)\\\"],[.3,\\\"rgb(153,204,255)\\\"],[.4,\\\"rgb(204,204,255)\\\"],[.5,\\\"rgb(255,255,255)\\\"],[.6,\\\"rgb(255,204,255)\\\"],[.7,\\\"rgb(255,153,255)\\\"],[.8,\\\"rgb(255,102,204)\\\"],[.9,\\\"rgb(255,102,102)\\\"],[1,\\\"rgb(255,0,0)\\\"]],Rainbow:[[0,\\\"rgb(150,0,90)\\\"],[.125,\\\"rgb(0,0,200)\\\"],[.25,\\\"rgb(0,25,255)\\\"],[.375,\\\"rgb(0,152,255)\\\"],[.5,\\\"rgb(44,255,150)\\\"],[.625,\\\"rgb(151,255,0)\\\"],[.75,\\\"rgb(255,234,0)\\\"],[.875,\\\"rgb(255,111,0)\\\"],[1,\\\"rgb(255,0,0)\\\"]],Portland:[[0,\\\"rgb(12,51,131)\\\"],[.25,\\\"rgb(10,136,186)\\\"],[.5,\\\"rgb(242,211,56)\\\"],[.75,\\\"rgb(242,143,56)\\\"],[1,\\\"rgb(217,30,30)\\\"]],Jet:[[0,\\\"rgb(0,0,131)\\\"],[.125,\\\"rgb(0,60,170)\\\"],[.375,\\\"rgb(5,255,255)\\\"],[.625,\\\"rgb(255,255,0)\\\"],[.875,\\\"rgb(250,0,0)\\\"],[1,\\\"rgb(128,0,0)\\\"]],Hot:[[0,\\\"rgb(0,0,0)\\\"],[.3,\\\"rgb(230,0,0)\\\"],[.6,\\\"rgb(255,210,0)\\\"],[1,\\\"rgb(255,255,255)\\\"]],Blackbody:[[0,\\\"rgb(0,0,0)\\\"],[.2,\\\"rgb(230,0,0)\\\"],[.4,\\\"rgb(230,210,0)\\\"],[.7,\\\"rgb(255,255,255)\\\"],[1,\\\"rgb(160,200,255)\\\"]],Earth:[[0,\\\"rgb(0,0,130)\\\"],[.1,\\\"rgb(0,180,180)\\\"],[.2,\\\"rgb(40,210,40)\\\"],[.4,\\\"rgb(230,230,50)\\\"],[.6,\\\"rgb(120,70,20)\\\"],[1,\\\"rgb(255,255,255)\\\"]],Electric:[[0,\\\"rgb(0,0,0)\\\"],[.15,\\\"rgb(30,0,100)\\\"],[.4,\\\"rgb(120,0,100)\\\"],[.6,\\\"rgb(160,90,0)\\\"],[.8,\\\"rgb(230,200,0)\\\"],[1,\\\"rgb(255,250,220)\\\"]],Viridis:[[0,\\\"#440154\\\"],[.06274509803921569,\\\"#48186a\\\"],[.12549019607843137,\\\"#472d7b\\\"],[.18823529411764706,\\\"#424086\\\"],[.25098039215686274,\\\"#3b528b\\\"],[.3137254901960784,\\\"#33638d\\\"],[.3764705882352941,\\\"#2c728e\\\"],[.4392156862745098,\\\"#26828e\\\"],[.5019607843137255,\\\"#21918c\\\"],[.5647058823529412,\\\"#1fa088\\\"],[.6274509803921569,\\\"#28ae80\\\"],[.6901960784313725,\\\"#3fbc73\\\"],[.7529411764705882,\\\"#5ec962\\\"],[.8156862745098039,\\\"#84d44b\\\"],[.8784313725490196,\\\"#addc30\\\"],[.9411764705882353,\\\"#d8e219\\\"],[1,\\\"#fde725\\\"]],Cividis:[[0,\\\"rgb(0,32,76)\\\"],[.058824,\\\"rgb(0,42,102)\\\"],[.117647,\\\"rgb(0,52,110)\\\"],[.176471,\\\"rgb(39,63,108)\\\"],[.235294,\\\"rgb(60,74,107)\\\"],[.294118,\\\"rgb(76,85,107)\\\"],[.352941,\\\"rgb(91,95,109)\\\"],[.411765,\\\"rgb(104,106,112)\\\"],[.470588,\\\"rgb(117,117,117)\\\"],[.529412,\\\"rgb(131,129,120)\\\"],[.588235,\\\"rgb(146,140,120)\\\"],[.647059,\\\"rgb(161,152,118)\\\"],[.705882,\\\"rgb(176,165,114)\\\"],[.764706,\\\"rgb(192,177,109)\\\"],[.823529,\\\"rgb(209,191,102)\\\"],[.882353,\\\"rgb(225,204,92)\\\"],[.941176,\\\"rgb(243,219,79)\\\"],[1,\\\"rgb(255,233,69)\\\"]]}},{}],590:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){var a=(t-r)/(n-r),o=a+e/(n-r),s=(a+o)/2;return\\\"left\\\"===i||\\\"bottom\\\"===i?a:\\\"center\\\"===i||\\\"middle\\\"===i?s:\\\"right\\\"===i||\\\"top\\\"===i?o:a<2/3-s?a:o>4/3-s?o:s}},{}],591:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=[[\\\"sw-resize\\\",\\\"s-resize\\\",\\\"se-resize\\\"],[\\\"w-resize\\\",\\\"move\\\",\\\"e-resize\\\"],[\\\"nw-resize\\\",\\\"n-resize\\\",\\\"ne-resize\\\"]];e.exports=function(t,e,r,a){return t=\\\"left\\\"===r?0:\\\"center\\\"===r?1:\\\"right\\\"===r?2:n.constrain(Math.floor(3*t),0,2),e=\\\"bottom\\\"===a?0:\\\"middle\\\"===a?1:\\\"top\\\"===a?2:n.constrain(Math.floor(3*e),0,2),i[e][t]}},{\\\"../../lib\\\":696}],592:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"mouse-event-offset\\\"),i=t(\\\"has-hover\\\"),a=t(\\\"has-passive-events\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../plots/cartesian/constants\\\"),c=t(\\\"../../constants/interactions\\\"),u=e.exports={};u.align=t(\\\"./align\\\"),u.getCursor=t(\\\"./cursor\\\");var f=t(\\\"./unhover\\\");function h(){var t=document.createElement(\\\"div\\\");t.className=\\\"dragcover\\\";var e=t.style;return e.position=\\\"fixed\\\",e.left=0,e.right=0,e.top=0,e.bottom=0,e.zIndex=999999999,e.background=\\\"none\\\",document.body.appendChild(t),t}function p(t){return n(t.changedTouches?t.changedTouches[0]:t,document.body)}u.unhover=f.wrapped,u.unhoverRaw=f.raw,u.init=function(t){var e,r,n,f,d,g,v,m,y=t.gd,x=1,b=c.DBLCLICKDELAY,_=t.element;y._mouseDownTime||(y._mouseDownTime=0),_.style.pointerEvents=\\\"all\\\",_.onmousedown=k,a?(_._ontouchstart&&_.removeEventListener(\\\"touchstart\\\",_._ontouchstart),_._ontouchstart=k,_.addEventListener(\\\"touchstart\\\",k,{passive:!1})):_.ontouchstart=k;var w=t.clampFn||function(t,e,r){return Math.abs(t)<r&&(t=0),Math.abs(e)<r&&(e=0),[t,e]};function k(a){a.preventDefault(),y._dragged=!1,y._dragging=!0;var o=p(a);e=o[0],r=o[1],v=a.target,g=a,m=2===a.buttons||a.ctrlKey,\\\"undefined\\\"==typeof a.clientX&&\\\"undefined\\\"==typeof a.clientY&&(a.clientX=e,a.clientY=r),(n=(new Date).getTime())-y._mouseDownTime<b?x+=1:(x=1,y._mouseDownTime=n),t.prepFn&&t.prepFn(a,e,r),i&&!m?(d=h()).style.cursor=window.getComputedStyle(_).cursor:i||(d=document,f=window.getComputedStyle(document.documentElement).cursor,document.documentElement.style.cursor=window.getComputedStyle(_).cursor),document.addEventListener(\\\"mousemove\\\",M),document.addEventListener(\\\"mouseup\\\",A),document.addEventListener(\\\"touchmove\\\",M),document.addEventListener(\\\"touchend\\\",A)}function M(n){n.preventDefault();var i=p(n),a=t.minDrag||l.MINDRAG,o=w(i[0]-e,i[1]-r,a),s=o[0],c=o[1];(s||c)&&(y._dragged=!0,u.unhover(y)),y._dragged&&t.moveFn&&!m&&t.moveFn(s,c)}function A(e){if(document.removeEventListener(\\\"mousemove\\\",M),document.removeEventListener(\\\"mouseup\\\",A),document.removeEventListener(\\\"touchmove\\\",M),document.removeEventListener(\\\"touchend\\\",A),e.preventDefault(),i?s.removeElement(d):f&&(d.documentElement.style.cursor=f,f=null),y._dragging){if(y._dragging=!1,(new Date).getTime()-y._mouseDownTime>b&&(x=Math.max(x-1,1)),y._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(x,g),!m){var r;try{r=new MouseEvent(\\\"click\\\",e)}catch(t){var n=p(e);(r=document.createEvent(\\\"MouseEvents\\\")).initMouseEvent(\\\"click\\\",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}v.dispatchEvent(r)}!function(t){t._dragging=!1,t._replotPending&&o.call(\\\"plot\\\",t)}(y),y._dragged=!1}else y._dragged=!1}},u.coverSlip=h},{\\\"../../constants/interactions\\\":672,\\\"../../lib\\\":696,\\\"../../plots/cartesian/constants\\\":750,\\\"../../registry\\\":827,\\\"./align\\\":590,\\\"./cursor\\\":591,\\\"./unhover\\\":593,\\\"has-hover\\\":393,\\\"has-passive-events\\\":394,\\\"mouse-event-offset\\\":419}],593:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/events\\\"),i=t(\\\"../../lib/throttle\\\"),a=t(\\\"../../lib/get_graph_div\\\"),o=t(\\\"../fx/constants\\\"),s=e.exports={};s.wrapped=function(t,e,r){(t=a(t))._fullLayout&&i.clear(t._fullLayout._uid+o.HOVERID),s.raw(t,e,r)},s.raw=function(t,e){var r=t._fullLayout,i=t._hoverdata;e||(e={}),e.target&&!1===n.triggerHandler(t,\\\"plotly_beforehover\\\",e)||(r._hoverlayer.selectAll(\\\"g\\\").remove(),r._hoverlayer.selectAll(\\\"line\\\").remove(),r._hoverlayer.selectAll(\\\"circle\\\").remove(),t._hoverdata=void 0,e.target&&i&&t.emit(\\\"plotly_unhover\\\",{event:e,points:i}))}},{\\\"../../lib/events\\\":684,\\\"../../lib/get_graph_div\\\":691,\\\"../../lib/throttle\\\":721,\\\"../fx/constants\\\":607}],594:[function(t,e,r){\\\"use strict\\\";r.dash={valType:\\\"string\\\",values:[\\\"solid\\\",\\\"dot\\\",\\\"dash\\\",\\\"longdash\\\",\\\"dashdot\\\",\\\"longdashdot\\\"],dflt:\\\"solid\\\",editType:\\\"style\\\"}},{}],595:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"tinycolor2\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../color\\\"),l=t(\\\"../colorscale\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../lib/svg_text_utils\\\"),f=t(\\\"../../constants/xmlns_namespaces\\\"),h=t(\\\"../../constants/alignment\\\").LINE_SPACING,p=t(\\\"../../constants/interactions\\\").DESELECTDIM,d=t(\\\"../../traces/scatter/subtypes\\\"),g=t(\\\"../../traces/scatter/make_bubble_size_func\\\"),v=e.exports={};v.font=function(t,e,r,n){c.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style(\\\"font-family\\\",e),r+1&&t.style(\\\"font-size\\\",r+\\\"px\\\"),n&&t.call(s.fill,n)},v.setPosition=function(t,e,r){t.attr(\\\"x\\\",e).attr(\\\"y\\\",r)},v.setSize=function(t,e,r){t.attr(\\\"width\\\",e).attr(\\\"height\\\",r)},v.setRect=function(t,e,r,n,i){t.call(v.setPosition,e,r).call(v.setSize,n,i)},v.translatePoint=function(t,e,r,n){var a=r.c2p(t.x),o=n.c2p(t.y);return!!(i(a)&&i(o)&&e.node())&&(\\\"text\\\"===e.node().nodeName?e.attr(\\\"x\\\",a).attr(\\\"y\\\",o):e.attr(\\\"transform\\\",\\\"translate(\\\"+a+\\\",\\\"+o+\\\")\\\"),!0)},v.translatePoints=function(t,e,r){t.each(function(t){var i=n.select(this);v.translatePoint(t,i,e,r)})},v.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr(\\\"display\\\",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:\\\"none\\\")},v.hideOutsideRangePoints=function(t,e){if(e._hasClipOnAxisFalse){var r=e.xaxis,i=e.yaxis;t.each(function(e){var a=e[0].trace,o=a.xcalendar,s=a.ycalendar,l=\\\"bar\\\"===a.type?\\\".bartext\\\":\\\".point,.textpoint\\\";t.selectAll(l).each(function(t){v.hideOutsideRangePoint(t,n.select(this),r,i,o,s)})})}},v.crispRound=function(t,e,r){return e&&i(e)?t._context.staticPlot?e:e<1?1:Math.round(e):r||0},v.singleLineStyle=function(t,e,r,n,i){e.style(\\\"fill\\\",\\\"none\\\");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,l=i||a.dash||\\\"\\\";s.stroke(e,n||a.color),v.dashLine(e,l,o)},v.lineGroupStyle=function(t,e,r,i){t.style(\\\"fill\\\",\\\"none\\\").each(function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=e||a.width||0,l=i||a.dash||\\\"\\\";n.select(this).call(s.stroke,r||a.color).call(v.dashLine,l,o)})},v.dashLine=function(t,e,r){r=+r||0,e=v.dashStyle(e,r),t.style({\\\"stroke-dasharray\\\":e,\\\"stroke-width\\\":r+\\\"px\\\"})},v.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return\\\"solid\\\"===t?t=\\\"\\\":\\\"dot\\\"===t?t=r+\\\"px,\\\"+r+\\\"px\\\":\\\"dash\\\"===t?t=3*r+\\\"px,\\\"+3*r+\\\"px\\\":\\\"longdash\\\"===t?t=5*r+\\\"px,\\\"+5*r+\\\"px\\\":\\\"dashdot\\\"===t?t=3*r+\\\"px,\\\"+r+\\\"px,\\\"+r+\\\"px,\\\"+r+\\\"px\\\":\\\"longdashdot\\\"===t&&(t=5*r+\\\"px,\\\"+2*r+\\\"px,\\\"+r+\\\"px,\\\"+2*r+\\\"px\\\"),t},v.singleFillStyle=function(t){var e=(((n.select(t.node()).data()[0]||[])[0]||{}).trace||{}).fillcolor;e&&t.call(s.fill,e)},v.fillGroupStyle=function(t){t.style(\\\"stroke-width\\\",0).each(function(t){n.select(this).call(s.fill,t[0].trace.fillcolor)})};var m=t(\\\"./symbol_defs\\\");v.symbolNames=[],v.symbolFuncs=[],v.symbolNeedLines={},v.symbolNoDot={},v.symbolNoFill={},v.symbolList=[],Object.keys(m).forEach(function(t){var e=m[t];v.symbolList=v.symbolList.concat([e.n,t,e.n+100,t+\\\"-open\\\"]),v.symbolNames[e.n]=t,v.symbolFuncs[e.n]=e.f,e.needLine&&(v.symbolNeedLines[e.n]=!0),e.noDot?v.symbolNoDot[e.n]=!0:v.symbolList=v.symbolList.concat([e.n+200,t+\\\"-dot\\\",e.n+300,t+\\\"-open-dot\\\"]),e.noFill&&(v.symbolNoFill[e.n]=!0)});var y=v.symbolNames.length,x=\\\"M0,0.5L0.5,0L0,-0.5L-0.5,0Z\\\";function b(t,e){var r=t%100;return v.symbolFuncs[r](e)+(t>=200?x:\\\"\\\")}v.symbolNumber=function(t){if(\\\"string\\\"==typeof t){var e=0;t.indexOf(\\\"-open\\\")>0&&(e=100,t=t.replace(\\\"-open\\\",\\\"\\\")),t.indexOf(\\\"-dot\\\")>0&&(e+=200,t=t.replace(\\\"-dot\\\",\\\"\\\")),(t=v.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=y||t>=400?0:Math.floor(Math.max(t,0))};var _={x1:1,x2:0,y1:0,y2:0},w={x1:0,x2:0,y1:1,y2:0},k=n.format(\\\"~.1f\\\"),M={radial:{node:\\\"radialGradient\\\"},radialreversed:{node:\\\"radialGradient\\\",reversed:!0},horizontal:{node:\\\"linearGradient\\\",attrs:_},horizontalreversed:{node:\\\"linearGradient\\\",attrs:_,reversed:!0},vertical:{node:\\\"linearGradient\\\",attrs:w},verticalreversed:{node:\\\"linearGradient\\\",attrs:w,reversed:!0}};v.gradient=function(t,e,r,i,o,l){for(var u=o.length,f=M[i],h=new Array(u),p=0;p<u;p++)f.reversed?h[u-1-p]=[k(100*(1-o[p][0])),o[p][1]]:h[p]=[k(100*o[p][0]),o[p][1]];var d=\\\"g\\\"+e._fullLayout._uid+\\\"-\\\"+r,g=e._fullLayout._defs.select(\\\".gradients\\\").selectAll(\\\"#\\\"+d).data([i+h.join(\\\";\\\")],c.identity);g.exit().remove(),g.enter().append(f.node).each(function(){var t=n.select(this);f.attrs&&t.attr(f.attrs),t.attr(\\\"id\\\",d);var e=t.selectAll(\\\"stop\\\").data(h);e.exit().remove(),e.enter().append(\\\"stop\\\"),e.each(function(t){var e=a(t[1]);n.select(this).attr({offset:t[0]+\\\"%\\\",\\\"stop-color\\\":s.tinyRGB(e),\\\"stop-opacity\\\":e.getAlpha()})})}),t.style(l,\\\"url(#\\\"+d+\\\")\\\").style(l+\\\"-opacity\\\",null)},v.initGradients=function(t){c.ensureSingle(t._fullLayout._defs,\\\"g\\\",\\\"gradients\\\").selectAll(\\\"linearGradient,radialGradient\\\").remove()},v.pointStyle=function(t,e,r){if(t.size()){var i=v.makePointStyleFns(e);t.each(function(t){v.singlePointStyle(t,n.select(this),e,i,r)})}},v.singlePointStyle=function(t,e,r,n,i){var a=r.marker,o=a.line;if(e.style(\\\"opacity\\\",n.selectedOpacityFn?n.selectedOpacityFn(t):void 0===t.mo?a.opacity:t.mo),n.ms2mrc){var l;l=\\\"various\\\"===t.ms||\\\"various\\\"===a.size?3:n.ms2mrc(t.ms),t.mrc=l,n.selectedSizeFn&&(l=t.mrc=n.selectedSizeFn(t));var u=v.symbolNumber(t.mx||a.symbol)||0;t.om=u%200>=100,e.attr(\\\"d\\\",b(u,l))}var f,h,p,d=!1;if(t.so)p=o.outlierwidth,h=o.outliercolor,f=a.outliercolor;else{var g=(o||{}).width;p=(t.mlw+1||g+1||(t.trace?(t.trace.marker.line||{}).width:0)+1)-1||0,h=\\\"mlc\\\"in t?t.mlcc=n.lineScale(t.mlc):c.isArrayOrTypedArray(o.color)?s.defaultLine:o.color,c.isArrayOrTypedArray(a.color)&&(f=s.defaultLine,d=!0),f=\\\"mc\\\"in t?t.mcc=n.markerScale(t.mc):a.color||\\\"rgba(0,0,0,0)\\\",n.selectedColorFn&&(f=n.selectedColorFn(t))}if(t.om)e.call(s.stroke,f).style({\\\"stroke-width\\\":(p||1)+\\\"px\\\",fill:\\\"none\\\"});else{e.style(\\\"stroke-width\\\",p+\\\"px\\\");var m=a.gradient,y=t.mgt;if(y?d=!0:y=m&&m.type,Array.isArray(y)&&(y=y[0],M[y]||(y=0)),y&&\\\"none\\\"!==y){var x=t.mgc;x?d=!0:x=m.color;var _=r.uid;d&&(_+=\\\"-\\\"+t.i),v.gradient(e,i,_,y,[[0,x],[1,f]],\\\"fill\\\")}else s.fill(e,f);p&&s.stroke(e,h)}},v.makePointStyleFns=function(t){var e={},r=t.marker;return e.markerScale=v.tryColorscale(r,\\\"\\\"),e.lineScale=v.tryColorscale(r,\\\"line\\\"),o.traceIs(t,\\\"symbols\\\")&&(e.ms2mrc=d.isBubble(t)?g(t):function(){return(r.size||6)/2}),t.selectedpoints&&c.extendFlat(e,v.makeSelectedPointStyleFns(t)),e},v.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.marker||{},a=r.marker||{},s=n.marker||{},l=i.opacity,u=a.opacity,f=s.opacity,h=void 0!==u,d=void 0!==f;(c.isArrayOrTypedArray(l)||h||d)&&(e.selectedOpacityFn=function(t){var e=void 0===t.mo?i.opacity:t.mo;return t.selected?h?u:e:d?f:p*e});var g=i.color,v=a.color,m=s.color;(v||m)&&(e.selectedColorFn=function(t){var e=t.mcc||g;return t.selected?v||e:m||e});var y=i.size,x=a.size,b=s.size,_=void 0!==x,w=void 0!==b;return o.traceIs(t,\\\"symbols\\\")&&(_||w)&&(e.selectedSizeFn=function(t){var e=t.mrc||y/2;return t.selected?_?x/2:e:w?b/2:e}),e},v.makeSelectedTextStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.textfont||{},a=r.textfont||{},o=n.textfont||{},l=i.color,c=a.color,u=o.color;return e.selectedTextColorFn=function(t){var e=t.tc||l;return t.selected?c||e:u||(c?e:s.addOpacity(e,p))},e},v.selectedPointStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=v.makeSelectedPointStyleFns(e),i=e.marker||{},a=[];r.selectedOpacityFn&&a.push(function(t,e){t.style(\\\"opacity\\\",r.selectedOpacityFn(e))}),r.selectedColorFn&&a.push(function(t,e){s.fill(t,r.selectedColorFn(e))}),r.selectedSizeFn&&a.push(function(t,e){var n=e.mx||i.symbol||0,a=r.selectedSizeFn(e);t.attr(\\\"d\\\",b(v.symbolNumber(n),a)),e.mrc2=a}),a.length&&t.each(function(t){for(var e=n.select(this),r=0;r<a.length;r++)a[r](e,t)})}},v.tryColorscale=function(t,e){var r=e?c.nestedProperty(t,e).get():t;if(r){var n=r.colorscale,i=r.color;if(n&&c.isArrayOrTypedArray(i))return l.makeColorScaleFunc(l.extractScale(n,r.cmin,r.cmax))}return c.identity};var A={start:1,end:-1,middle:0,bottom:1,top:-1};function T(t,e,r,i){var a=n.select(t.node().parentNode),o=-1!==e.indexOf(\\\"top\\\")?\\\"top\\\":-1!==e.indexOf(\\\"bottom\\\")?\\\"bottom\\\":\\\"middle\\\",s=-1!==e.indexOf(\\\"left\\\")?\\\"end\\\":-1!==e.indexOf(\\\"right\\\")?\\\"start\\\":\\\"middle\\\",l=i?i/.8+1:0,c=(u.lineCount(t)-1)*h+1,f=A[s]*l,p=.75*r+A[o]*l+(A[o]-1)*c*r/2;t.attr(\\\"text-anchor\\\",s),a.attr(\\\"transform\\\",\\\"translate(\\\"+f+\\\",\\\"+p+\\\")\\\")}function S(t,e){var r=t.ts||e.textfont.size;return i(r)&&r>0?r:0}v.textPointStyle=function(t,e,r){if(t.size()){var i;if(e.selectedpoints){var a=v.makeSelectedTextStyleFns(e);i=a.selectedTextColorFn}t.each(function(t){var a=n.select(this),o=c.extractOption(t,e,\\\"tx\\\",\\\"text\\\");if(o||0===o){var s=t.tp||e.textposition,l=S(t,e),f=i?i(t):t.tc||e.textfont.color;a.call(v.font,t.tf||e.textfont.family,l,f).text(o).call(u.convertToTspans,r).call(T,s,l,t.mrc)}else a.remove()})}},v.selectedTextStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=v.makeSelectedTextStyleFns(e);t.each(function(t){var i=n.select(this),a=r.selectedTextColorFn(t),o=t.tp||e.textposition,l=S(t,e);s.fill(i,a),T(i,o,l,t.mrc2||t.mrc)})}};var E=.5;function C(t,e,r,i){var a=t[0]-e[0],o=t[1]-e[1],s=r[0]-e[0],l=r[1]-e[1],c=Math.pow(a*a+o*o,E/2),u=Math.pow(s*s+l*l,E/2),f=(u*u*a-c*c*s)*i,h=(u*u*o-c*c*l)*i,p=3*u*(c+u),d=3*c*(c+u);return[[n.round(e[0]+(p&&f/p),2),n.round(e[1]+(p&&h/p),2)],[n.round(e[0]-(d&&f/d),2),n.round(e[1]-(d&&h/d),2)]]}v.smoothopen=function(t,e){if(t.length<3)return\\\"M\\\"+t.join(\\\"L\\\");var r,n=\\\"M\\\"+t[0],i=[];for(r=1;r<t.length-1;r++)i.push(C(t[r-1],t[r],t[r+1],e));for(n+=\\\"Q\\\"+i[0][0]+\\\" \\\"+t[1],r=2;r<t.length-1;r++)n+=\\\"C\\\"+i[r-2][1]+\\\" \\\"+i[r-1][0]+\\\" \\\"+t[r];return n+=\\\"Q\\\"+i[t.length-3][1]+\\\" \\\"+t[t.length-1]},v.smoothclosed=function(t,e){if(t.length<3)return\\\"M\\\"+t.join(\\\"L\\\")+\\\"Z\\\";var r,n=\\\"M\\\"+t[0],i=t.length-1,a=[C(t[i],t[0],t[1],e)];for(r=1;r<i;r++)a.push(C(t[r-1],t[r],t[r+1],e));for(a.push(C(t[i-1],t[i],t[0],e)),r=1;r<=i;r++)n+=\\\"C\\\"+a[r-1][1]+\\\" \\\"+a[r][0]+\\\" \\\"+t[r];return n+=\\\"C\\\"+a[i][1]+\\\" \\\"+a[0][0]+\\\" \\\"+t[0]+\\\"Z\\\"};var L={hv:function(t,e){return\\\"H\\\"+n.round(e[0],2)+\\\"V\\\"+n.round(e[1],2)},vh:function(t,e){return\\\"V\\\"+n.round(e[1],2)+\\\"H\\\"+n.round(e[0],2)},hvh:function(t,e){return\\\"H\\\"+n.round((t[0]+e[0])/2,2)+\\\"V\\\"+n.round(e[1],2)+\\\"H\\\"+n.round(e[0],2)},vhv:function(t,e){return\\\"V\\\"+n.round((t[1]+e[1])/2,2)+\\\"H\\\"+n.round(e[0],2)+\\\"V\\\"+n.round(e[1],2)}},z=function(t,e){return\\\"L\\\"+n.round(e[0],2)+\\\",\\\"+n.round(e[1],2)};v.steps=function(t){var e=L[t]||z;return function(t){for(var r=\\\"M\\\"+n.round(t[0][0],2)+\\\",\\\"+n.round(t[0][1],2),i=1;i<t.length;i++)r+=e(t[i-1],t[i]);return r}},v.makeTester=function(){var t=c.ensureSingleById(n.select(\\\"body\\\"),\\\"svg\\\",\\\"js-plotly-tester\\\",function(t){t.attr(f.svgAttrs).style({position:\\\"absolute\\\",left:\\\"-10000px\\\",top:\\\"-10000px\\\",width:\\\"9000px\\\",height:\\\"9000px\\\",\\\"z-index\\\":\\\"1\\\"})}),e=c.ensureSingle(t,\\\"path\\\",\\\"js-reference-point\\\",function(t){t.attr(\\\"d\\\",\\\"M0,0H1V1H0Z\\\").style({\\\"stroke-width\\\":0,fill:\\\"black\\\"})});v.tester=t,v.testref=e},v.savedBBoxes={};var O=0;function I(t){var e=t.getAttribute(\\\"data-unformatted\\\");if(null!==e)return e+t.getAttribute(\\\"data-math\\\")+t.getAttribute(\\\"text-anchor\\\")+t.getAttribute(\\\"style\\\")}v.bBox=function(t,e,r){var i,a,o;if(r||(r=I(t)),r){if(i=v.savedBBoxes[r])return c.extendFlat({},i)}else if(1===t.childNodes.length){var s=t.childNodes[0];if(r=I(s)){var l=+s.getAttribute(\\\"x\\\")||0,f=+s.getAttribute(\\\"y\\\")||0,h=s.getAttribute(\\\"transform\\\");if(!h){var p=v.bBox(s,!1,r);return l&&(p.left+=l,p.right+=l),f&&(p.top+=f,p.bottom+=f),p}if(r+=\\\"~\\\"+l+\\\"~\\\"+f+\\\"~\\\"+h,i=v.savedBBoxes[r])return c.extendFlat({},i)}}e?a=t:(o=v.tester.node(),a=t.cloneNode(!0),o.appendChild(a)),n.select(a).attr(\\\"transform\\\",null).call(u.positionText,0,0);var d=a.getBoundingClientRect(),g=v.testref.node().getBoundingClientRect();e||o.removeChild(a);var m={height:d.height,width:d.width,left:d.left-g.left,top:d.top-g.top,right:d.right-g.left,bottom:d.bottom-g.top};return O>=1e4&&(v.savedBBoxes={},O=0),r&&(v.savedBBoxes[r]=m),O++,c.extendFlat({},m)},v.setClipUrl=function(t,e){if(e){if(void 0===v.baseUrl){var r=n.select(\\\"base\\\");r.size()&&r.attr(\\\"href\\\")?v.baseUrl=window.location.href.split(\\\"#\\\")[0]:v.baseUrl=\\\"\\\"}t.attr(\\\"clip-path\\\",\\\"url(\\\"+v.baseUrl+\\\"#\\\"+e+\\\")\\\")}else t.attr(\\\"clip-path\\\",null)},v.getTranslate=function(t){var e=(t[t.attr?\\\"attr\\\":\\\"getAttribute\\\"](\\\"transform\\\")||\\\"\\\").replace(/.*\\\\btranslate\\\\((-?\\\\d*\\\\.?\\\\d*)[^-\\\\d]*(-?\\\\d*\\\\.?\\\\d*)[^\\\\d].*/,function(t,e,r){return[e,r].join(\\\" \\\")}).split(\\\" \\\");return{x:+e[0]||0,y:+e[1]||0}},v.setTranslate=function(t,e,r){var n=t.attr?\\\"attr\\\":\\\"getAttribute\\\",i=t.attr?\\\"attr\\\":\\\"setAttribute\\\",a=t[n](\\\"transform\\\")||\\\"\\\";return e=e||0,r=r||0,a=a.replace(/(\\\\btranslate\\\\(.*?\\\\);?)/,\\\"\\\").trim(),a=(a+=\\\" translate(\\\"+e+\\\", \\\"+r+\\\")\\\").trim(),t[i](\\\"transform\\\",a),a},v.getScale=function(t){var e=(t[t.attr?\\\"attr\\\":\\\"getAttribute\\\"](\\\"transform\\\")||\\\"\\\").replace(/.*\\\\bscale\\\\((\\\\d*\\\\.?\\\\d*)[^\\\\d]*(\\\\d*\\\\.?\\\\d*)[^\\\\d].*/,function(t,e,r){return[e,r].join(\\\" \\\")}).split(\\\" \\\");return{x:+e[0]||1,y:+e[1]||1}},v.setScale=function(t,e,r){var n=t.attr?\\\"attr\\\":\\\"getAttribute\\\",i=t.attr?\\\"attr\\\":\\\"setAttribute\\\",a=t[n](\\\"transform\\\")||\\\"\\\";return e=e||1,r=r||1,a=a.replace(/(\\\\bscale\\\\(.*?\\\\);?)/,\\\"\\\").trim(),a=(a+=\\\" scale(\\\"+e+\\\", \\\"+r+\\\")\\\").trim(),t[i](\\\"transform\\\",a),a};var P=/\\\\s*sc.*/;v.setPointGroupScale=function(t,e,r){if(e=e||1,r=r||1,t){var n=1===e&&1===r?\\\"\\\":\\\" scale(\\\"+e+\\\",\\\"+r+\\\")\\\";t.each(function(){var t=(this.getAttribute(\\\"transform\\\")||\\\"\\\").replace(P,\\\"\\\");t=(t+=n).trim(),this.setAttribute(\\\"transform\\\",t)})}};var D=/translate\\\\([^)]*\\\\)\\\\s*$/;v.setTextPointsScale=function(t,e,r){t&&t.each(function(){var t,i=n.select(this),a=i.select(\\\"text\\\");if(a.node()){var o=parseFloat(a.attr(\\\"x\\\")||0),s=parseFloat(a.attr(\\\"y\\\")||0),l=(i.attr(\\\"transform\\\")||\\\"\\\").match(D);t=1===e&&1===r?[]:[\\\"translate(\\\"+o+\\\",\\\"+s+\\\")\\\",\\\"scale(\\\"+e+\\\",\\\"+r+\\\")\\\",\\\"translate(\\\"+-o+\\\",\\\"+-s+\\\")\\\"],l&&t.push(l),i.attr(\\\"transform\\\",t.join(\\\" \\\"))}})}},{\\\"../../constants/alignment\\\":668,\\\"../../constants/interactions\\\":672,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../registry\\\":827,\\\"../../traces/scatter/make_bubble_size_func\\\":1060,\\\"../../traces/scatter/subtypes\\\":1067,\\\"../color\\\":570,\\\"../colorscale\\\":585,\\\"./symbol_defs\\\":596,d3:148,\\\"fast-isnumeric\\\":214,tinycolor2:514}],596:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\");e.exports={circle:{n:0,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",0A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,-\\\"+e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 0,1 \\\"+e+\\\",0Z\\\"}},square:{n:1,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+e+\\\"H\\\"+e+\\\"Z\\\"}},diamond:{n:2,f:function(t){var e=n.round(1.3*t,2);return\\\"M\\\"+e+\\\",0L0,\\\"+e+\\\"L-\\\"+e+\\\",0L0,-\\\"+e+\\\"Z\\\"}},cross:{n:3,f:function(t){var e=n.round(.4*t,2),r=n.round(1.2*t,2);return\\\"M\\\"+r+\\\",\\\"+e+\\\"H\\\"+e+\\\"V\\\"+r+\\\"H-\\\"+e+\\\"V\\\"+e+\\\"H-\\\"+r+\\\"V-\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+r+\\\"H\\\"+e+\\\"V-\\\"+e+\\\"H\\\"+r+\\\"Z\\\"}},x:{n:4,f:function(t){var e=n.round(.8*t/Math.sqrt(2),2),r=\\\"l\\\"+e+\\\",\\\"+e,i=\\\"l\\\"+e+\\\",-\\\"+e,a=\\\"l-\\\"+e+\\\",-\\\"+e,o=\\\"l-\\\"+e+\\\",\\\"+e;return\\\"M0,\\\"+e+r+i+a+i+a+o+a+o+r+o+r+\\\"Z\\\"}},\\\"triangle-up\\\":{n:5,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return\\\"M-\\\"+e+\\\",\\\"+n.round(t/2,2)+\\\"H\\\"+e+\\\"L0,-\\\"+n.round(t,2)+\\\"Z\\\"}},\\\"triangle-down\\\":{n:6,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return\\\"M-\\\"+e+\\\",-\\\"+n.round(t/2,2)+\\\"H\\\"+e+\\\"L0,\\\"+n.round(t,2)+\\\"Z\\\"}},\\\"triangle-left\\\":{n:7,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return\\\"M\\\"+n.round(t/2,2)+\\\",-\\\"+e+\\\"V\\\"+e+\\\"L-\\\"+n.round(t,2)+\\\",0Z\\\"}},\\\"triangle-right\\\":{n:8,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return\\\"M-\\\"+n.round(t/2,2)+\\\",-\\\"+e+\\\"V\\\"+e+\\\"L\\\"+n.round(t,2)+\\\",0Z\\\"}},\\\"triangle-ne\\\":{n:9,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return\\\"M-\\\"+r+\\\",-\\\"+e+\\\"H\\\"+e+\\\"V\\\"+r+\\\"Z\\\"}},\\\"triangle-se\\\":{n:10,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return\\\"M\\\"+e+\\\",-\\\"+r+\\\"V\\\"+e+\\\"H-\\\"+r+\\\"Z\\\"}},\\\"triangle-sw\\\":{n:11,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return\\\"M\\\"+r+\\\",\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+r+\\\"Z\\\"}},\\\"triangle-nw\\\":{n:12,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return\\\"M-\\\"+e+\\\",\\\"+r+\\\"V-\\\"+e+\\\"H\\\"+r+\\\"Z\\\"}},pentagon:{n:13,f:function(t){var e=n.round(.951*t,2),r=n.round(.588*t,2),i=n.round(-t,2),a=n.round(-.309*t,2);return\\\"M\\\"+e+\\\",\\\"+a+\\\"L\\\"+r+\\\",\\\"+n.round(.809*t,2)+\\\"H-\\\"+r+\\\"L-\\\"+e+\\\",\\\"+a+\\\"L0,\\\"+i+\\\"Z\\\"}},hexagon:{n:14,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return\\\"M\\\"+i+\\\",-\\\"+r+\\\"V\\\"+r+\\\"L0,\\\"+e+\\\"L-\\\"+i+\\\",\\\"+r+\\\"V-\\\"+r+\\\"L0,-\\\"+e+\\\"Z\\\"}},hexagon2:{n:15,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return\\\"M-\\\"+r+\\\",\\\"+i+\\\"H\\\"+r+\\\"L\\\"+e+\\\",0L\\\"+r+\\\",-\\\"+i+\\\"H-\\\"+r+\\\"L-\\\"+e+\\\",0Z\\\"}},octagon:{n:16,f:function(t){var e=n.round(.924*t,2),r=n.round(.383*t,2);return\\\"M-\\\"+r+\\\",-\\\"+e+\\\"H\\\"+r+\\\"L\\\"+e+\\\",-\\\"+r+\\\"V\\\"+r+\\\"L\\\"+r+\\\",\\\"+e+\\\"H-\\\"+r+\\\"L-\\\"+e+\\\",\\\"+r+\\\"V-\\\"+r+\\\"Z\\\"}},star:{n:17,f:function(t){var e=1.4*t,r=n.round(.225*e,2),i=n.round(.951*e,2),a=n.round(.363*e,2),o=n.round(.588*e,2),s=n.round(-e,2),l=n.round(-.309*e,2),c=n.round(.118*e,2),u=n.round(.809*e,2);return\\\"M\\\"+r+\\\",\\\"+l+\\\"H\\\"+i+\\\"L\\\"+a+\\\",\\\"+c+\\\"L\\\"+o+\\\",\\\"+u+\\\"L0,\\\"+n.round(.382*e,2)+\\\"L-\\\"+o+\\\",\\\"+u+\\\"L-\\\"+a+\\\",\\\"+c+\\\"L-\\\"+i+\\\",\\\"+l+\\\"H-\\\"+r+\\\"L0,\\\"+s+\\\"Z\\\"}},hexagram:{n:18,f:function(t){var e=n.round(.66*t,2),r=n.round(.38*t,2),i=n.round(.76*t,2);return\\\"M-\\\"+i+\\\",0l-\\\"+r+\\\",-\\\"+e+\\\"h\\\"+i+\\\"l\\\"+r+\\\",-\\\"+e+\\\"l\\\"+r+\\\",\\\"+e+\\\"h\\\"+i+\\\"l-\\\"+r+\\\",\\\"+e+\\\"l\\\"+r+\\\",\\\"+e+\\\"h-\\\"+i+\\\"l-\\\"+r+\\\",\\\"+e+\\\"l-\\\"+r+\\\",-\\\"+e+\\\"h-\\\"+i+\\\"Z\\\"}},\\\"star-triangle-up\\\":{n:19,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o=\\\"A \\\"+a+\\\",\\\"+a+\\\" 0 0 1 \\\";return\\\"M-\\\"+e+\\\",\\\"+r+o+e+\\\",\\\"+r+o+\\\"0,-\\\"+i+o+\\\"-\\\"+e+\\\",\\\"+r+\\\"Z\\\"}},\\\"star-triangle-down\\\":{n:20,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o=\\\"A \\\"+a+\\\",\\\"+a+\\\" 0 0 1 \\\";return\\\"M\\\"+e+\\\",-\\\"+r+o+\\\"-\\\"+e+\\\",-\\\"+r+o+\\\"0,\\\"+i+o+e+\\\",-\\\"+r+\\\"Z\\\"}},\\\"star-square\\\":{n:21,f:function(t){var e=n.round(1.1*t,2),r=n.round(2*t,2),i=\\\"A \\\"+r+\\\",\\\"+r+\\\" 0 0 1 \\\";return\\\"M-\\\"+e+\\\",-\\\"+e+i+\\\"-\\\"+e+\\\",\\\"+e+i+e+\\\",\\\"+e+i+e+\\\",-\\\"+e+i+\\\"-\\\"+e+\\\",-\\\"+e+\\\"Z\\\"}},\\\"star-diamond\\\":{n:22,f:function(t){var e=n.round(1.4*t,2),r=n.round(1.9*t,2),i=\\\"A \\\"+r+\\\",\\\"+r+\\\" 0 0 1 \\\";return\\\"M-\\\"+e+\\\",0\\\"+i+\\\"0,\\\"+e+i+e+\\\",0\\\"+i+\\\"0,-\\\"+e+i+\\\"-\\\"+e+\\\",0Z\\\"}},\\\"diamond-tall\\\":{n:23,f:function(t){var e=n.round(.7*t,2),r=n.round(1.4*t,2);return\\\"M0,\\\"+r+\\\"L\\\"+e+\\\",0L0,-\\\"+r+\\\"L-\\\"+e+\\\",0Z\\\"}},\\\"diamond-wide\\\":{n:24,f:function(t){var e=n.round(1.4*t,2),r=n.round(.7*t,2);return\\\"M0,\\\"+r+\\\"L\\\"+e+\\\",0L0,-\\\"+r+\\\"L-\\\"+e+\\\",0Z\\\"}},hourglass:{n:25,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"H-\\\"+e+\\\"L\\\"+e+\\\",-\\\"+e+\\\"H-\\\"+e+\\\"Z\\\"},noDot:!0},bowtie:{n:26,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"V-\\\"+e+\\\"L-\\\"+e+\\\",\\\"+e+\\\"V-\\\"+e+\\\"Z\\\"},noDot:!0},\\\"circle-cross\\\":{n:27,f:function(t){var e=n.round(t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e+\\\"M\\\"+e+\\\",0H-\\\"+e+\\\"M\\\"+e+\\\",0A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,-\\\"+e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 0,1 \\\"+e+\\\",0Z\\\"},needLine:!0,noDot:!0},\\\"circle-x\\\":{n:28,f:function(t){var e=n.round(t,2),r=n.round(t/Math.sqrt(2),2);return\\\"M\\\"+r+\\\",\\\"+r+\\\"L-\\\"+r+\\\",-\\\"+r+\\\"M\\\"+r+\\\",-\\\"+r+\\\"L-\\\"+r+\\\",\\\"+r+\\\"M\\\"+e+\\\",0A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,-\\\"+e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 0,1 \\\"+e+\\\",0Z\\\"},needLine:!0,noDot:!0},\\\"square-cross\\\":{n:29,f:function(t){var e=n.round(t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e+\\\"M\\\"+e+\\\",0H-\\\"+e+\\\"M\\\"+e+\\\",\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+e+\\\"H\\\"+e+\\\"Z\\\"},needLine:!0,noDot:!0},\\\"square-x\\\":{n:30,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"L-\\\"+e+\\\",-\\\"+e+\\\"M\\\"+e+\\\",-\\\"+e+\\\"L-\\\"+e+\\\",\\\"+e+\\\"M\\\"+e+\\\",\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+e+\\\"H\\\"+e+\\\"Z\\\"},needLine:!0,noDot:!0},\\\"diamond-cross\\\":{n:31,f:function(t){var e=n.round(1.3*t,2);return\\\"M\\\"+e+\\\",0L0,\\\"+e+\\\"L-\\\"+e+\\\",0L0,-\\\"+e+\\\"ZM0,-\\\"+e+\\\"V\\\"+e+\\\"M-\\\"+e+\\\",0H\\\"+e},needLine:!0,noDot:!0},\\\"diamond-x\\\":{n:32,f:function(t){var e=n.round(1.3*t,2),r=n.round(.65*t,2);return\\\"M\\\"+e+\\\",0L0,\\\"+e+\\\"L-\\\"+e+\\\",0L0,-\\\"+e+\\\"ZM-\\\"+r+\\\",-\\\"+r+\\\"L\\\"+r+\\\",\\\"+r+\\\"M-\\\"+r+\\\",\\\"+r+\\\"L\\\"+r+\\\",-\\\"+r},needLine:!0,noDot:!0},\\\"cross-thin\\\":{n:33,f:function(t){var e=n.round(1.4*t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e+\\\"M\\\"+e+\\\",0H-\\\"+e},needLine:!0,noDot:!0,noFill:!0},\\\"x-thin\\\":{n:34,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"L-\\\"+e+\\\",-\\\"+e+\\\"M\\\"+e+\\\",-\\\"+e+\\\"L-\\\"+e+\\\",\\\"+e},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(t){var e=n.round(1.2*t,2),r=n.round(.85*t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e+\\\"M\\\"+e+\\\",0H-\\\"+e+\\\"M\\\"+r+\\\",\\\"+r+\\\"L-\\\"+r+\\\",-\\\"+r+\\\"M\\\"+r+\\\",-\\\"+r+\\\"L-\\\"+r+\\\",\\\"+r},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(t){var e=n.round(t/2,2),r=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+r+\\\"V-\\\"+r+\\\"m-\\\"+r+\\\",0V\\\"+r+\\\"M\\\"+r+\\\",\\\"+e+\\\"H-\\\"+r+\\\"m0,-\\\"+r+\\\"H\\\"+r},needLine:!0,noFill:!0},\\\"y-up\\\":{n:37,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return\\\"M-\\\"+e+\\\",\\\"+i+\\\"L0,0M\\\"+e+\\\",\\\"+i+\\\"L0,0M0,-\\\"+r+\\\"L0,0\\\"},needLine:!0,noDot:!0,noFill:!0},\\\"y-down\\\":{n:38,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return\\\"M-\\\"+e+\\\",-\\\"+i+\\\"L0,0M\\\"+e+\\\",-\\\"+i+\\\"L0,0M0,\\\"+r+\\\"L0,0\\\"},needLine:!0,noDot:!0,noFill:!0},\\\"y-left\\\":{n:39,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return\\\"M\\\"+i+\\\",\\\"+e+\\\"L0,0M\\\"+i+\\\",-\\\"+e+\\\"L0,0M-\\\"+r+\\\",0L0,0\\\"},needLine:!0,noDot:!0,noFill:!0},\\\"y-right\\\":{n:40,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return\\\"M-\\\"+i+\\\",\\\"+e+\\\"L0,0M-\\\"+i+\\\",-\\\"+e+\\\"L0,0M\\\"+r+\\\",0L0,0\\\"},needLine:!0,noDot:!0,noFill:!0},\\\"line-ew\\\":{n:41,f:function(t){var e=n.round(1.4*t,2);return\\\"M\\\"+e+\\\",0H-\\\"+e},needLine:!0,noDot:!0,noFill:!0},\\\"line-ns\\\":{n:42,f:function(t){var e=n.round(1.4*t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e},needLine:!0,noDot:!0,noFill:!0},\\\"line-ne\\\":{n:43,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",-\\\"+e+\\\"L-\\\"+e+\\\",\\\"+e},needLine:!0,noDot:!0,noFill:!0},\\\"line-nw\\\":{n:44,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"L-\\\"+e+\\\",-\\\"+e},needLine:!0,noDot:!0,noFill:!0}}},{d3:148}],597:[function(t,e,r){\\\"use strict\\\";e.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\\\"}}}},{}],598:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"./compute_error\\\");function s(t,e,r,i){var s=e[\\\"error_\\\"+i]||{},l=[];if(s.visible&&-1!==[\\\"linear\\\",\\\"log\\\"].indexOf(r.type)){for(var c=o(s),u=0;u<t.length;u++){var f=t[u],h=f.i;if(void 0===h)h=u;else if(null===h)continue;var p=f[i];if(n(r.c2l(p))){var d=c(p,h);if(n(d[0])&&n(d[1])){var g=f[i+\\\"s\\\"]=p-d[0],v=f[i+\\\"h\\\"]=p+d[1];l.push(g,v)}}}var m=a.findExtremes(r,l,{padded:!0}),y=r._id;e._extremes[y].min=e._extremes[y].min.concat(m.min),e._extremes[y].max=e._extremes[y].max.concat(m.max)}}e.exports=function(t){for(var e=t.calcdata,r=0;r<e.length;r++){var n=e[r],o=n[0].trace;if(!0===o.visible&&i.traceIs(o,\\\"errorBarsOK\\\")){var l=a.getFromId(t,o.xaxis),c=a.getFromId(t,o.yaxis);s(n,o,l,\\\"x\\\"),s(n,o,c,\\\"y\\\")}}}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"./compute_error\\\":599,\\\"fast-isnumeric\\\":214}],599:[function(t,e,r){\\\"use strict\\\";function n(t,e){return\\\"percent\\\"===t?function(t){return Math.abs(t*e/100)}:\\\"constant\\\"===t?function(){return Math.abs(e)}:\\\"sqrt\\\"===t?function(t){return Math.sqrt(Math.abs(t))}:void 0}e.exports=function(t){var e=t.type,r=t.symmetric;if(\\\"data\\\"===e){var i=t.array||[];if(r)return function(t,e){var r=+i[e];return[r,r]};var a=t.arrayminus||[];return function(t,e){var r=+i[e],n=+a[e];return isNaN(r)&&isNaN(n)?[NaN,NaN]:[n||0,r||0]}}var o=n(e,t.value),s=n(e,t.valueminus);return r||void 0===t.valueminus?function(t){var e=o(t);return[e,e]}:function(t){return[s(t),o(t)]}}},{}],600:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../plot_api/plot_template\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){var c=\\\"error_\\\"+l.axis,u=o.newContainer(e,c),f=t[c]||{};function h(t,e){return a.coerce(f,u,s,t,e)}if(!1!==h(\\\"visible\\\",void 0!==f.array||void 0!==f.value||\\\"sqrt\\\"===f.type)){var p=h(\\\"type\\\",\\\"array\\\"in f?\\\"data\\\":\\\"percent\\\"),d=!0;\\\"sqrt\\\"!==p&&(d=h(\\\"symmetric\\\",!((\\\"data\\\"===p?\\\"arrayminus\\\":\\\"valueminus\\\")in f))),\\\"data\\\"===p?(h(\\\"array\\\"),h(\\\"traceref\\\"),d||(h(\\\"arrayminus\\\"),h(\\\"tracerefminus\\\"))):\\\"percent\\\"!==p&&\\\"constant\\\"!==p||(h(\\\"value\\\"),d||h(\\\"valueminus\\\"));var g=\\\"copy_\\\"+l.inherit+\\\"style\\\";if(l.inherit)(e[\\\"error_\\\"+l.inherit]||{}).visible&&h(g,!(f.color||n(f.thickness)||n(f.width)));l.inherit&&u[g]||(h(\\\"color\\\",r),h(\\\"thickness\\\"),h(\\\"width\\\",i.traceIs(e,\\\"gl3d\\\")?0:4))}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../registry\\\":827,\\\"./attributes\\\":597,\\\"fast-isnumeric\\\":214}],601:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plot_api/edit_types\\\").overrideAll,a=t(\\\"./attributes\\\"),o={error_x:n.extendFlat({},a),error_y:n.extendFlat({},a)};delete o.error_x.copy_zstyle,delete o.error_y.copy_zstyle,delete o.error_y.copy_ystyle;var s={error_x:n.extendFlat({},a),error_y:n.extendFlat({},a),error_z:n.extendFlat({},a)};delete s.error_x.copy_ystyle,delete s.error_y.copy_ystyle,delete s.error_z.copy_ystyle,delete s.error_z.copy_zstyle,e.exports={moduleType:\\\"component\\\",name:\\\"errorbars\\\",schema:{traces:{scatter:o,bar:o,histogram:o,scatter3d:i(s,\\\"calc\\\",\\\"nested\\\"),scattergl:i(o,\\\"calc\\\",\\\"nested\\\")}},supplyDefaults:t(\\\"./defaults\\\"),calc:t(\\\"./calc\\\"),makeComputeError:t(\\\"./compute_error\\\"),plot:t(\\\"./plot\\\"),style:t(\\\"./style\\\"),hoverInfo:function(t,e,r){(e.error_y||{}).visible&&(r.yerr=t.yh-t.y,e.error_y.symmetric||(r.yerrneg=t.y-t.ys));(e.error_x||{}).visible&&(r.xerr=t.xh-t.x,e.error_x.symmetric||(r.xerrneg=t.x-t.xs))}}},{\\\"../../lib\\\":696,\\\"../../plot_api/edit_types\\\":727,\\\"./attributes\\\":597,\\\"./calc\\\":598,\\\"./compute_error\\\":599,\\\"./defaults\\\":600,\\\"./plot\\\":602,\\\"./style\\\":603}],602:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../drawing\\\"),o=t(\\\"../../traces/scatter/subtypes\\\");e.exports=function(t,e,r){var s=e.xaxis,l=e.yaxis,c=r&&r.duration>0;t.each(function(t){var u,f=t[0].trace,h=f.error_x||{},p=f.error_y||{};f.ids&&(u=function(t){return t.id});var d=o.hasMarkers(f)&&f.marker.maxdisplayed>0;p.visible||h.visible||(t=[]);var g=n.select(this).selectAll(\\\"g.errorbar\\\").data(t,u);if(g.exit().remove(),t.length){h.visible||g.selectAll(\\\"path.xerror\\\").remove(),p.visible||g.selectAll(\\\"path.yerror\\\").remove(),g.style(\\\"opacity\\\",1);var v=g.enter().append(\\\"g\\\").classed(\\\"errorbar\\\",!0);c&&v.style(\\\"opacity\\\",0).transition().duration(r.duration).style(\\\"opacity\\\",1),a.setClipUrl(g,e.layerClipId),g.each(function(t){var e=n.select(this),a=function(t,e,r){var n={x:e.c2p(t.x),y:r.c2p(t.y)};void 0!==t.yh&&(n.yh=r.c2p(t.yh),n.ys=r.c2p(t.ys),i(n.ys)||(n.noYS=!0,n.ys=r.c2p(t.ys,!0)));void 0!==t.xh&&(n.xh=e.c2p(t.xh),n.xs=e.c2p(t.xs),i(n.xs)||(n.noXS=!0,n.xs=e.c2p(t.xs,!0)));return n}(t,s,l);if(!d||t.vis){var o,u=e.select(\\\"path.yerror\\\");if(p.visible&&i(a.x)&&i(a.yh)&&i(a.ys)){var f=p.width;o=\\\"M\\\"+(a.x-f)+\\\",\\\"+a.yh+\\\"h\\\"+2*f+\\\"m-\\\"+f+\\\",0V\\\"+a.ys,a.noYS||(o+=\\\"m-\\\"+f+\\\",0h\\\"+2*f),!u.size()?u=e.append(\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").classed(\\\"yerror\\\",!0):c&&(u=u.transition().duration(r.duration).ease(r.easing)),u.attr(\\\"d\\\",o)}else u.remove();var g=e.select(\\\"path.xerror\\\");if(h.visible&&i(a.y)&&i(a.xh)&&i(a.xs)){var v=(h.copy_ystyle?p:h).width;o=\\\"M\\\"+a.xh+\\\",\\\"+(a.y-v)+\\\"v\\\"+2*v+\\\"m0,-\\\"+v+\\\"H\\\"+a.xs,a.noXS||(o+=\\\"m0,-\\\"+v+\\\"v\\\"+2*v),!g.size()?g=e.append(\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").classed(\\\"xerror\\\",!0):c&&(g=g.transition().duration(r.duration).ease(r.easing)),g.attr(\\\"d\\\",o)}else g.remove()}})}})}},{\\\"../../traces/scatter/subtypes\\\":1067,\\\"../drawing\\\":595,d3:148,\\\"fast-isnumeric\\\":214}],603:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../color\\\");e.exports=function(t){t.each(function(t){var e=t[0].trace,r=e.error_y||{},a=e.error_x||{},o=n.select(this);o.selectAll(\\\"path.yerror\\\").style(\\\"stroke-width\\\",r.thickness+\\\"px\\\").call(i.stroke,r.color),a.copy_ystyle&&(a=r),o.selectAll(\\\"path.xerror\\\").style(\\\"stroke-width\\\",a.thickness+\\\"px\\\").call(i.stroke,a.color)})}},{\\\"../color\\\":570,d3:148}],604:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\");e.exports={hoverlabel:{bgcolor:{valType:\\\"color\\\",arrayOk:!0,editType:\\\"none\\\"},bordercolor:{valType:\\\"color\\\",arrayOk:!0,editType:\\\"none\\\"},font:n({arrayOk:!0,editType:\\\"none\\\"}),namelength:{valType:\\\"integer\\\",min:-1,arrayOk:!0,editType:\\\"none\\\"},editType:\\\"calc\\\"}}},{\\\"../../plots/font_attributes\\\":771}],605:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\");function a(t,e,r,i){i=i||n.identity,Array.isArray(t)&&(e[0][r]=i(t))}e.exports=function(t){var e=t.calcdata,r=t._fullLayout;function o(t){return function(e){return n.coerceHoverinfo({hoverinfo:e},{_module:t._module},r)}}for(var s=0;s<e.length;s++){var l=e[s],c=l[0].trace;if(!i.traceIs(c,\\\"pie\\\")){var u=i.traceIs(c,\\\"2dMap\\\")?a:n.fillArray;u(c.hoverinfo,l,\\\"hi\\\",o(c)),c.hoverlabel&&(u(c.hoverlabel.bgcolor,l,\\\"hbg\\\"),u(c.hoverlabel.bordercolor,l,\\\"hbc\\\"),u(c.hoverlabel.font.size,l,\\\"hts\\\"),u(c.hoverlabel.font.color,l,\\\"htc\\\"),u(c.hoverlabel.font.family,l,\\\"htf\\\"),u(c.hoverlabel.namelength,l,\\\"hnl\\\"))}}}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827}],606:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"./hover\\\").hover;e.exports=function(t,e,r){var a=n.getComponentMethod(\\\"annotations\\\",\\\"onClick\\\")(t,t._hoverdata);function o(){t.emit(\\\"plotly_click\\\",{points:t._hoverdata,event:e})}void 0!==r&&i(t,e,r,!0),t._hoverdata&&e&&e.target&&(a&&a.then?a.then(o):o(),e.stopImmediatePropagation&&e.stopImmediatePropagation())}},{\\\"../../registry\\\":827,\\\"./hover\\\":610}],607:[function(t,e,r){\\\"use strict\\\";e.exports={YANGLE:60,HOVERARROWSIZE:6,HOVERTEXTPAD:3,HOVERFONTSIZE:13,HOVERFONT:\\\"Arial, sans-serif\\\",HOVERMINTIME:50,HOVERID:\\\"-hover\\\"}},{}],608:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"./hoverlabel_defaults\\\");e.exports=function(t,e,r,o){a(t,e,function(r,a){return n.coerce(t,e,i,r,a)},o.hoverlabel)}},{\\\"../../lib\\\":696,\\\"./attributes\\\":604,\\\"./hoverlabel_defaults\\\":611}],609:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");r.getSubplot=function(t){return t.subplot||t.xaxis+t.yaxis||t.geo},r.isTraceInSubplots=function(t,e){if(\\\"splom\\\"===t.type){for(var n=t.xaxes||[],i=t.yaxes||[],a=0;a<n.length;a++)for(var o=0;o<i.length;o++)if(-1!==e.indexOf(n[a]+i[o]))return!0;return!1}return-1!==e.indexOf(r.getSubplot(t))},r.flat=function(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)r[n]=e;return r},r.p2c=function(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)r[n]=t[n].p2c(e);return r},r.getDistanceFunction=function(t,e,n,i){return\\\"closest\\\"===t?i||r.quadrature(e,n):\\\"x\\\"===t?e:n},r.getClosest=function(t,e,r){if(!1!==r.index)r.index>=0&&r.index<t.length?r.distance=0:r.index=!1;else for(var n=0;n<t.length;n++){var i=e(t[n]);i<=r.distance&&(r.index=n,r.distance=i)}return r},r.inbox=function(t,e,r){return t*e<0||0===t?r:1/0},r.quadrature=function(t,e){return function(r){var n=t(r),i=e(r);return Math.sqrt(n*n+i*i)}},r.makeEventData=function(t,e,n){var i=\\\"index\\\"in t?t.index:t.pointNumber,a={data:e._input,fullData:e,curveNumber:e.index,pointNumber:i};if(e._indexToPoints){var o=e._indexToPoints[i];1===o.length?a.pointIndex=o[0]:a.pointIndices=o}else a.pointIndex=i;return e._module.eventData?a=e._module.eventData(a,t,e,n,i):(\\\"xVal\\\"in t?a.x=t.xVal:\\\"x\\\"in t&&(a.x=t.x),\\\"yVal\\\"in t?a.y=t.yVal:\\\"y\\\"in t&&(a.y=t.y),t.xa&&(a.xaxis=t.xa),t.ya&&(a.yaxis=t.ya),void 0!==t.zLabelVal&&(a.z=t.zLabelVal)),r.appendArrayPointValue(a,e,i),a},r.appendArrayPointValue=function(t,e,r){var i=e._arrayAttrs;if(i)for(var s=0;s<i.length;s++){var l=i[s],c=a(l);if(void 0===t[c]){var u=o(n.nestedProperty(e,l).get(),r);void 0!==u&&(t[c]=u)}}},r.appendArrayMultiPointValues=function(t,e,r){var i=e._arrayAttrs;if(i)for(var s=0;s<i.length;s++){var l=i[s],c=a(l);if(void 0===t[c]){for(var u=n.nestedProperty(e,l).get(),f=new Array(r.length),h=0;h<r.length;h++)f[h]=o(u,r[h]);t[c]=f}}};var i={ids:\\\"id\\\",locations:\\\"location\\\",labels:\\\"label\\\",values:\\\"value\\\",\\\"marker.colors\\\":\\\"color\\\"};function a(t){return i[t]||t}function o(t,e){return Array.isArray(e)?Array.isArray(t)&&Array.isArray(t[e[0]])?t[e[0]][e[1]]:void 0:t[e]}},{\\\"../../lib\\\":696}],610:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"tinycolor2\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../lib/events\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../../lib/override_cursor\\\"),u=t(\\\"../drawing\\\"),f=t(\\\"../color\\\"),h=t(\\\"../dragelement\\\"),p=t(\\\"../../plots/cartesian/axes\\\"),d=t(\\\"../../registry\\\"),g=t(\\\"./helpers\\\"),v=t(\\\"./constants\\\"),m=v.YANGLE,y=Math.PI*m/180,x=1/Math.sin(y),b=Math.cos(y),_=Math.sin(y),w=v.HOVERARROWSIZE,k=v.HOVERTEXTPAD;function M(t,e,r){var i=e.hovermode,a=e.rotateLabels,s=e.bgColor,c=e.container,h=e.outerContainer,p=e.commonLabelOpts||{},d=e.fontFamily||v.HOVERFONT,g=e.fontSize||v.HOVERFONTSIZE,y=t[0],x=y.xa,b=y.ya,_=\\\"y\\\"===i?\\\"yLabel\\\":\\\"xLabel\\\",M=y[_],A=(String(M)||\\\"\\\").split(\\\" \\\")[0],T=h.node().getBoundingClientRect(),S=T.top,E=T.width,C=T.height,L=void 0!==M&&y.distance<=e.hoverdistance&&(\\\"x\\\"===i||\\\"y\\\"===i);if(L){var z,O,I=!0;for(z=0;z<t.length;z++){I&&void 0===t[z].zLabel&&(I=!1),O=t[z].hoverinfo||t[z].trace.hoverinfo;var P=Array.isArray(O)?O:O.split(\\\"+\\\");if(-1===P.indexOf(\\\"all\\\")&&-1===P.indexOf(i)){L=!1;break}}I&&(L=!1)}var D=c.selectAll(\\\"g.axistext\\\").data(L?[0]:[]);D.enter().append(\\\"g\\\").classed(\\\"axistext\\\",!0),D.exit().remove(),D.each(function(){var e=n.select(this),a=o.ensureSingle(e,\\\"path\\\",\\\"\\\",function(t){t.style({\\\"stroke-width\\\":\\\"1px\\\"})}),s=o.ensureSingle(e,\\\"text\\\",\\\"\\\",function(t){t.attr(\\\"data-notex\\\",1)}),c=p.bgcolor||f.defaultLine,h=p.bordercolor||f.contrast(c),v=f.contrast(c);a.style({fill:c,stroke:h}),s.text(M).call(u.font,p.font.family||d,p.font.size||g,p.font.color||v).call(l.positionText,0,0).call(l.convertToTspans,r),e.attr(\\\"transform\\\",\\\"\\\");var m=s.node().getBoundingClientRect();if(\\\"x\\\"===i){s.attr(\\\"text-anchor\\\",\\\"middle\\\").call(l.positionText,0,\\\"top\\\"===x.side?S-m.bottom-w-k:S-m.top+w+k);var T=\\\"top\\\"===x.side?\\\"-\\\":\\\"\\\";a.attr(\\\"d\\\",\\\"M0,0L\\\"+w+\\\",\\\"+T+w+\\\"H\\\"+(k+m.width/2)+\\\"v\\\"+T+(2*k+m.height)+\\\"H-\\\"+(k+m.width/2)+\\\"V\\\"+T+w+\\\"H-\\\"+w+\\\"Z\\\"),e.attr(\\\"transform\\\",\\\"translate(\\\"+(x._offset+(y.x0+y.x1)/2)+\\\",\\\"+(b._offset+(\\\"top\\\"===x.side?0:b._length))+\\\")\\\")}else{s.attr(\\\"text-anchor\\\",\\\"right\\\"===b.side?\\\"start\\\":\\\"end\\\").call(l.positionText,(\\\"right\\\"===b.side?1:-1)*(k+w),S-m.top-m.height/2);var E=\\\"right\\\"===b.side?\\\"\\\":\\\"-\\\";a.attr(\\\"d\\\",\\\"M0,0L\\\"+E+w+\\\",\\\"+w+\\\"V\\\"+(k+m.height/2)+\\\"h\\\"+E+(2*k+m.width)+\\\"V-\\\"+(k+m.height/2)+\\\"H\\\"+E+w+\\\"V-\\\"+w+\\\"Z\\\"),e.attr(\\\"transform\\\",\\\"translate(\\\"+(x._offset+(\\\"right\\\"===b.side?x._length:0))+\\\",\\\"+(b._offset+(y.y0+y.y1)/2)+\\\")\\\")}t=t.filter(function(t){return void 0!==t.zLabelVal||(t[_]||\\\"\\\").split(\\\" \\\")[0]===A})});var R=c.selectAll(\\\"g.hovertext\\\").data(t,function(t){return[t.trace.index,t.index,t.x0,t.y0,t.name,t.attr,t.xa,t.ya||\\\"\\\"].join(\\\",\\\")});return R.enter().append(\\\"g\\\").classed(\\\"hovertext\\\",!0).each(function(){var t=n.select(this);t.append(\\\"rect\\\").call(f.fill,f.addOpacity(s,.8)),t.append(\\\"text\\\").classed(\\\"name\\\",!0),t.append(\\\"path\\\").style(\\\"stroke-width\\\",\\\"1px\\\"),t.append(\\\"text\\\").classed(\\\"nums\\\",!0).call(u.font,d,g)}),R.exit().remove(),R.each(function(t){var e=n.select(this).attr(\\\"transform\\\",\\\"\\\"),o=\\\"\\\",c=\\\"\\\",h=t.bgcolor||t.color,p=f.combine(f.opacity(h)?h:f.defaultLine,s),v=f.combine(f.opacity(t.color)?t.color:f.defaultLine,s),y=t.borderColor||f.contrast(p);if(void 0!==t.nameOverride&&(t.name=t.nameOverride),t.name){o=l.plainText(t.name||\\\"\\\");var x=Math.round(t.nameLength);x>-1&&o.length>x&&(o=x>3?o.substr(0,x-3)+\\\"...\\\":o.substr(0,x))}void 0!==t.zLabel?(void 0!==t.xLabel&&(c+=\\\"x: \\\"+t.xLabel+\\\"<br>\\\"),void 0!==t.yLabel&&(c+=\\\"y: \\\"+t.yLabel+\\\"<br>\\\"),c+=(c?\\\"z: \\\":\\\"\\\")+t.zLabel):L&&t[i+\\\"Label\\\"]===M?c=t[(\\\"x\\\"===i?\\\"y\\\":\\\"x\\\")+\\\"Label\\\"]||\\\"\\\":void 0===t.xLabel?void 0!==t.yLabel&&(c=t.yLabel):c=void 0===t.yLabel?t.xLabel:\\\"(\\\"+t.xLabel+\\\", \\\"+t.yLabel+\\\")\\\",!t.text&&0!==t.text||Array.isArray(t.text)||(c+=(c?\\\"<br>\\\":\\\"\\\")+t.text),void 0!==t.extraText&&(c+=(c?\\\"<br>\\\":\\\"\\\")+t.extraText),\\\"\\\"===c&&(\\\"\\\"===o&&e.remove(),c=o);var b=e.select(\\\"text.nums\\\").call(u.font,t.fontFamily||d,t.fontSize||g,t.fontColor||y).text(c).attr(\\\"data-notex\\\",1).call(l.positionText,0,0).call(l.convertToTspans,r),_=e.select(\\\"text.name\\\"),A=0;o&&o!==c?(_.call(u.font,t.fontFamily||d,t.fontSize||g,v).text(o).attr(\\\"data-notex\\\",1).call(l.positionText,0,0).call(l.convertToTspans,r),A=_.node().getBoundingClientRect().width+2*k):(_.remove(),e.select(\\\"rect\\\").remove()),e.select(\\\"path\\\").style({fill:p,stroke:y});var T,z,O=b.node().getBoundingClientRect(),I=t.xa._offset+(t.x0+t.x1)/2,P=t.ya._offset+(t.y0+t.y1)/2,D=Math.abs(t.x1-t.x0),R=Math.abs(t.y1-t.y0),B=O.width+w+k+A;t.ty0=S-O.top,t.bx=O.width+2*k,t.by=O.height+2*k,t.anchor=\\\"start\\\",t.txwidth=O.width,t.tx2width=A,t.offset=0,a?(t.pos=I,T=P+R/2+B<=C,z=P-R/2-B>=0,\\\"top\\\"!==t.idealAlign&&T||!z?T?(P+=R/2,t.anchor=\\\"start\\\"):t.anchor=\\\"middle\\\":(P-=R/2,t.anchor=\\\"end\\\")):(t.pos=P,T=I+D/2+B<=E,z=I-D/2-B>=0,\\\"left\\\"!==t.idealAlign&&T||!z?T?(I+=D/2,t.anchor=\\\"start\\\"):t.anchor=\\\"middle\\\":(I-=D/2,t.anchor=\\\"end\\\")),b.attr(\\\"text-anchor\\\",t.anchor),A&&_.attr(\\\"text-anchor\\\",t.anchor),e.attr(\\\"transform\\\",\\\"translate(\\\"+I+\\\",\\\"+P+\\\")\\\"+(a?\\\"rotate(\\\"+m+\\\")\\\":\\\"\\\"))}),R}function A(t,e){t.each(function(t){var r=n.select(this);if(t.del)r.remove();else{var i=\\\"end\\\"===t.anchor?-1:1,a=r.select(\\\"text.nums\\\"),o={start:1,end:-1,middle:0}[t.anchor],s=o*(w+k),c=s+o*(t.txwidth+k),f=0,h=t.offset;\\\"middle\\\"===t.anchor&&(s-=t.tx2width/2,c+=t.txwidth/2+k),e&&(h*=-_,f=t.offset*b),r.select(\\\"path\\\").attr(\\\"d\\\",\\\"middle\\\"===t.anchor?\\\"M-\\\"+(t.bx/2+t.tx2width/2)+\\\",\\\"+(h-t.by/2)+\\\"h\\\"+t.bx+\\\"v\\\"+t.by+\\\"h-\\\"+t.bx+\\\"Z\\\":\\\"M0,0L\\\"+(i*w+f)+\\\",\\\"+(w+h)+\\\"v\\\"+(t.by/2-w)+\\\"h\\\"+i*t.bx+\\\"v-\\\"+t.by+\\\"H\\\"+(i*w+f)+\\\"V\\\"+(h-w)+\\\"Z\\\"),a.call(l.positionText,s+f,h+t.ty0-t.by/2+k),t.tx2width&&(r.select(\\\"text.name\\\").call(l.positionText,c+o*k+f,h+t.ty0-t.by/2+k),r.select(\\\"rect\\\").call(u.setRect,c+(o-1)*t.tx2width/2+f,h-t.by/2-1,t.tx2width,t.by+2))}})}function T(t,e){var r=t.index,n=t.trace||{},i=t.cd[0],a=t.cd[r]||{},s=Array.isArray(r)?function(t,e){return o.castOption(i,r,t)||o.extractOption({},n,\\\"\\\",e)}:function(t,e){return o.extractOption(a,n,t,e)};function l(e,r,n){var i=s(r,n);i&&(t[e]=i)}if(l(\\\"hoverinfo\\\",\\\"hi\\\",\\\"hoverinfo\\\"),l(\\\"bgcolor\\\",\\\"hbg\\\",\\\"hoverlabel.bgcolor\\\"),l(\\\"borderColor\\\",\\\"hbc\\\",\\\"hoverlabel.bordercolor\\\"),l(\\\"fontFamily\\\",\\\"htf\\\",\\\"hoverlabel.font.family\\\"),l(\\\"fontSize\\\",\\\"hts\\\",\\\"hoverlabel.font.size\\\"),l(\\\"fontColor\\\",\\\"htc\\\",\\\"hoverlabel.font.color\\\"),l(\\\"nameLength\\\",\\\"hnl\\\",\\\"hoverlabel.namelength\\\"),t.posref=\\\"y\\\"===e?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=o.constrain(t.x0,0,t.xa._length),t.x1=o.constrain(t.x1,0,t.xa._length),t.y0=o.constrain(t.y0,0,t.ya._length),t.y1=o.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel=\\\"xLabel\\\"in t?t.xLabel:p.hoverLabelText(t.xa,t.xLabelVal),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel=\\\"yLabel\\\"in t?t.yLabel:p.hoverLabelText(t.ya,t.yLabelVal),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||\\\"log\\\"===t.xa.type&&t.xerr<=0)){var c=p.tickText(t.xa,t.xa.c2l(t.xerr),\\\"hover\\\").text;void 0!==t.xerrneg?t.xLabel+=\\\" +\\\"+c+\\\" / -\\\"+p.tickText(t.xa,t.xa.c2l(t.xerrneg),\\\"hover\\\").text:t.xLabel+=\\\" \\\\xb1 \\\"+c,\\\"x\\\"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||\\\"log\\\"===t.ya.type&&t.yerr<=0)){var u=p.tickText(t.ya,t.ya.c2l(t.yerr),\\\"hover\\\").text;void 0!==t.yerrneg?t.yLabel+=\\\" +\\\"+u+\\\" / -\\\"+p.tickText(t.ya,t.ya.c2l(t.yerrneg),\\\"hover\\\").text:t.yLabel+=\\\" \\\\xb1 \\\"+u,\\\"y\\\"===e&&(t.distance+=1)}var f=t.hoverinfo||t.trace.hoverinfo;return\\\"all\\\"!==f&&(-1===(f=Array.isArray(f)?f:f.split(\\\"+\\\")).indexOf(\\\"x\\\")&&(t.xLabel=void 0),-1===f.indexOf(\\\"y\\\")&&(t.yLabel=void 0),-1===f.indexOf(\\\"z\\\")&&(t.zLabel=void 0),-1===f.indexOf(\\\"text\\\")&&(t.text=void 0),-1===f.indexOf(\\\"name\\\")&&(t.name=void 0)),t}function S(t,e){var r,n,i=e.container,o=e.fullLayout,s=e.event,l=!!t.hLinePoint,c=!!t.vLinePoint;if(i.selectAll(\\\".spikeline\\\").remove(),c||l){var h=f.combine(o.plot_bgcolor,o.paper_bgcolor);if(l){var p,d,g=t.hLinePoint;r=g&&g.xa,\\\"cursor\\\"===(n=g&&g.ya).spikesnap?(p=s.pointerX,d=s.pointerY):(p=r._offset+g.x,d=n._offset+g.y);var v,m,y=a.readability(g.color,h)<1.5?f.contrast(h):g.color,x=n.spikemode,b=n.spikethickness,_=n.spikecolor||y,w=n._boundingBox,k=(w.left+w.right)/2<p?w.right:w.left;-1===x.indexOf(\\\"toaxis\\\")&&-1===x.indexOf(\\\"across\\\")||(-1!==x.indexOf(\\\"toaxis\\\")&&(v=k,m=p),-1!==x.indexOf(\\\"across\\\")&&(v=n._counterSpan[0],m=n._counterSpan[1]),i.insert(\\\"line\\\",\\\":first-child\\\").attr({x1:v,x2:m,y1:d,y2:d,\\\"stroke-width\\\":b,stroke:_,\\\"stroke-dasharray\\\":u.dashStyle(n.spikedash,b)}).classed(\\\"spikeline\\\",!0).classed(\\\"crisp\\\",!0),i.insert(\\\"line\\\",\\\":first-child\\\").attr({x1:v,x2:m,y1:d,y2:d,\\\"stroke-width\\\":b+2,stroke:h}).classed(\\\"spikeline\\\",!0).classed(\\\"crisp\\\",!0)),-1!==x.indexOf(\\\"marker\\\")&&i.insert(\\\"circle\\\",\\\":first-child\\\").attr({cx:k+(\\\"right\\\"!==n.side?b:-b),cy:d,r:b,fill:_}).classed(\\\"spikeline\\\",!0)}if(c){var M,A,T=t.vLinePoint;r=T&&T.xa,n=T&&T.ya,\\\"cursor\\\"===r.spikesnap?(M=s.pointerX,A=s.pointerY):(M=r._offset+T.x,A=n._offset+T.y);var S,E,C=a.readability(T.color,h)<1.5?f.contrast(h):T.color,L=r.spikemode,z=r.spikethickness,O=r.spikecolor||C,I=r._boundingBox,P=(I.top+I.bottom)/2<A?I.bottom:I.top;-1===L.indexOf(\\\"toaxis\\\")&&-1===L.indexOf(\\\"across\\\")||(-1!==L.indexOf(\\\"toaxis\\\")&&(S=P,E=A),-1!==L.indexOf(\\\"across\\\")&&(S=r._counterSpan[0],E=r._counterSpan[1]),i.insert(\\\"line\\\",\\\":first-child\\\").attr({x1:M,x2:M,y1:S,y2:E,\\\"stroke-width\\\":z,stroke:O,\\\"stroke-dasharray\\\":u.dashStyle(r.spikedash,z)}).classed(\\\"spikeline\\\",!0).classed(\\\"crisp\\\",!0),i.insert(\\\"line\\\",\\\":first-child\\\").attr({x1:M,x2:M,y1:S,y2:E,\\\"stroke-width\\\":z+2,stroke:h}).classed(\\\"spikeline\\\",!0).classed(\\\"crisp\\\",!0)),-1!==L.indexOf(\\\"marker\\\")&&i.insert(\\\"circle\\\",\\\":first-child\\\").attr({cx:M,cy:P-(\\\"top\\\"!==r.side?z:-z),r:z,fill:O}).classed(\\\"spikeline\\\",!0)}}}function E(t,e){return!e||(e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint)}r.hover=function(t,e,r,a){t=o.getGraphDiv(t),o.throttle(t._fullLayout._uid+v.HOVERID,v.HOVERMINTIME,function(){!function(t,e,r,a){r||(r=\\\"xy\\\");var l=Array.isArray(r)?r:[r],u=t._fullLayout,v=u._plots||[],m=v[r],y=u._has(\\\"cartesian\\\");if(m){var b=m.overlays.map(function(t){return t.id});l=l.concat(b)}for(var _=l.length,w=new Array(_),k=new Array(_),C=!1,L=0;L<_;L++){var z=l[L],O=v[z];if(O)C=!0,w[L]=p.getFromId(t,O.xaxis._id),k[L]=p.getFromId(t,O.yaxis._id);else{var I=u[z]._subplot;w[L]=I.xaxis,k[L]=I.yaxis}}var P=e.hovermode||u.hovermode;P&&!C&&(P=\\\"closest\\\");if(-1===[\\\"x\\\",\\\"y\\\",\\\"closest\\\"].indexOf(P)||!t.calcdata||t.querySelector(\\\".zoombox\\\")||t._dragging)return h.unhoverRaw(t,e);var D,R,B,F,N,j,V,U,q,H,G,W,Y,X=-1===u.hoverdistance?1/0:u.hoverdistance,Z=-1===u.spikedistance?1/0:u.spikedistance,$=[],J=[],K={hLinePoint:null,vLinePoint:null},Q=!1;if(Array.isArray(e))for(P=\\\"array\\\",B=0;B<e.length;B++)N=t.calcdata[e[B].curveNumber||0],j=N[0].trace,\\\"skip\\\"!==N[0].trace.hoverinfo&&(J.push(N),\\\"h\\\"===j.orientation&&(Q=!0));else{for(F=0;F<t.calcdata.length;F++)N=t.calcdata[F],\\\"skip\\\"!==(j=N[0].trace).hoverinfo&&g.isTraceInSubplots(j,l)&&(J.push(N),\\\"h\\\"===j.orientation&&(Q=!0));var tt,et,rt=!e.target;if(rt)tt=\\\"xpx\\\"in e?e.xpx:w[0]._length/2,et=\\\"ypx\\\"in e?e.ypx:k[0]._length/2;else{if(!1===s.triggerHandler(t,\\\"plotly_beforehover\\\",e))return;var nt=e.target.getBoundingClientRect();if(tt=e.clientX-nt.left,et=e.clientY-nt.top,tt<0||tt>w[0]._length||et<0||et>k[0]._length)return h.unhoverRaw(t,e)}if(e.pointerX=tt+w[0]._offset,e.pointerY=et+k[0]._offset,D=\\\"xval\\\"in e?g.flat(l,e.xval):g.p2c(w,tt),R=\\\"yval\\\"in e?g.flat(l,e.yval):g.p2c(k,et),!i(D[0])||!i(R[0]))return o.warn(\\\"Fx.hover failed\\\",e,t),h.unhoverRaw(t,e)}var it=1/0;for(F=0;F<J.length;F++)if((N=J[F])&&N[0]&&N[0].trace&&!0===N[0].trace.visible&&(j=N[0].trace,-1===[\\\"carpet\\\",\\\"contourcarpet\\\"].indexOf(j._module.name))){if(\\\"splom\\\"===j.type?V=l[U=0]:(V=g.getSubplot(j),U=l.indexOf(V)),q=P,W={cd:N,trace:j,xa:w[U],ya:k[U],maxHoverDistance:X,maxSpikeDistance:Z,index:!1,distance:Math.min(it,X),spikeDistance:1/0,xSpike:void 0,ySpike:void 0,color:f.defaultLine,name:j.name,x0:void 0,x1:void 0,y0:void 0,y1:void 0,xLabelVal:void 0,yLabelVal:void 0,zLabelVal:void 0,text:void 0},u[V]&&(W.subplot=u[V]._subplot),u._splomScenes&&u._splomScenes[j.uid]&&(W.scene=u._splomScenes[j.uid]),Y=$.length,\\\"array\\\"===q){var at=e[F];\\\"pointNumber\\\"in at?(W.index=at.pointNumber,q=\\\"closest\\\"):(q=\\\"\\\",\\\"xval\\\"in at&&(H=at.xval,q=\\\"x\\\"),\\\"yval\\\"in at&&(G=at.yval,q=q?\\\"closest\\\":\\\"y\\\"))}else H=D[U],G=R[U];if(0!==X)if(j._module&&j._module.hoverPoints){var ot=j._module.hoverPoints(W,H,G,q,u._hoverlayer);if(ot)for(var st,lt=0;lt<ot.length;lt++)st=ot[lt],i(st.x0)&&i(st.y0)&&$.push(T(st,P))}else o.log(\\\"Unrecognized trace type in hover:\\\",j);if(\\\"closest\\\"===P&&$.length>Y&&($.splice(0,Y),it=$[0].distance),y&&0!==Z&&0===$.length){W.distance=Z,W.index=!1;var ct=j._module.hoverPoints(W,H,G,\\\"closest\\\",u._hoverlayer);if(ct&&(ct=ct.filter(function(t){return t.spikeDistance<=Z})),ct&&ct.length){var ut,ft=ct.filter(function(t){return t.xa.showspikes});if(ft.length){var ht=ft[0];i(ht.x0)&&i(ht.y0)&&(ut=vt(ht),(!K.vLinePoint||K.vLinePoint.spikeDistance>ut.spikeDistance)&&(K.vLinePoint=ut))}var pt=ct.filter(function(t){return t.ya.showspikes});if(pt.length){var dt=pt[0];i(dt.x0)&&i(dt.y0)&&(ut=vt(dt),(!K.hLinePoint||K.hLinePoint.spikeDistance>ut.spikeDistance)&&(K.hLinePoint=ut))}}}}function gt(t,e){for(var r,n=null,i=1/0,a=0;a<t.length;a++)(r=t[a].spikeDistance)<i&&r<=e&&(n=t[a],i=r);return n}function vt(t){return t?{xa:t.xa,ya:t.ya,x:void 0!==t.xSpike?t.xSpike:(t.x0+t.x1)/2,y:void 0!==t.ySpike?t.ySpike:(t.y0+t.y1)/2,distance:t.distance,spikeDistance:t.spikeDistance,curveNumber:t.trace.index,color:t.color,pointNumber:t.index}:null}var mt={fullLayout:u,container:u._hoverlayer,outerContainer:u._paperdiv,event:e},yt=t._spikepoints,xt={vLinePoint:K.vLinePoint,hLinePoint:K.hLinePoint};if(t._spikepoints=xt,y&&0!==Z&&0!==$.length){var bt=$.filter(function(t){return t.ya.showspikes}),_t=gt(bt,Z);K.hLinePoint=vt(_t);var wt=$.filter(function(t){return t.xa.showspikes}),kt=gt(wt,Z);K.vLinePoint=vt(kt)}if(0===$.length){var Mt=h.unhoverRaw(t,e);return!y||null===K.hLinePoint&&null===K.vLinePoint||E(yt)&&S(K,mt),Mt}y&&E(yt)&&S(K,mt);$.sort(function(t,e){return t.distance-e.distance});var At=t._hoverdata,Tt=[];for(B=0;B<$.length;B++){var St=$[B];Tt.push(g.makeEventData(St,St.trace,St.cd))}t._hoverdata=Tt;var Et=\\\"y\\\"===P&&(J.length>1||$.length>1)||\\\"closest\\\"===P&&Q&&$.length>1,Ct=f.combine(u.plot_bgcolor||f.background,u.paper_bgcolor),Lt={hovermode:P,rotateLabels:Et,bgColor:Ct,container:u._hoverlayer,outerContainer:u._paperdiv,commonLabelOpts:u.hoverlabel,hoverdistance:u.hoverdistance},zt=M($,Lt,t);if(function(t,e,r){var n,i,a,o,s,l,c,u=0,f=1,h=t.map(function(t,n){var i=t[e],a=\\\"x\\\"===i._id.charAt(0),o=i.range;return!n&&o&&o[0]>o[1]!==a&&(f=-1),[{i:n,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(a?x:1)/2,pmin:0,pmax:a?r.width:r.height}]}).sort(function(t,e){return t[0].posref-e[0].posref||f*(e[0].traceIndex-t[0].traceIndex)});function p(t){var e=t[0],r=t[t.length-1];if(i=e.pmin-e.pos-e.dp+e.size,a=r.pos+r.dp+r.size-e.pmax,i>.01){for(s=t.length-1;s>=0;s--)t[s].dp+=i;n=!1}if(!(a<.01)){if(i<-.01){for(s=t.length-1;s>=0;s--)t[s].dp-=a;n=!1}if(n){var c=0;for(o=0;o<t.length;o++)(l=t[o]).pos+l.dp+l.size>e.pmax&&c++;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos>e.pmax-1&&(l.del=!0,c--);for(o=0;o<t.length&&!(c<=0);o++)if((l=t[o]).pos<e.pmin+1)for(l.del=!0,c--,a=2*l.size,s=t.length-1;s>=0;s--)t[s].dp-=a;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos+l.dp+l.size>e.pmax&&(l.del=!0,c--)}}}for(;!n&&u<=t.length;){for(u++,n=!0,o=0;o<h.length-1;){var d=h[o],g=h[o+1],v=d[d.length-1],m=g[0];if((i=v.pos+v.dp+v.size-m.pos-m.dp+m.size)>.01&&v.pmin===m.pmin&&v.pmax===m.pmax){for(s=g.length-1;s>=0;s--)g[s].dp+=i;for(d.push.apply(d,g),h.splice(o+1,1),c=0,s=d.length-1;s>=0;s--)c+=d[s].dp;for(a=c/d.length,s=d.length-1;s>=0;s--)d[s].dp-=a;n=!1}else o++}h.forEach(p)}for(o=h.length-1;o>=0;o--){var y=h[o];for(s=y.length-1;s>=0;s--){var b=y[s],_=t[b.i];_.offset=b.dp,_.del=b.del}}}($,Et?\\\"xa\\\":\\\"ya\\\",u),A(zt,Et),e.target&&e.target.tagName){var Ot=d.getComponentMethod(\\\"annotations\\\",\\\"hasClickToShow\\\")(t,Tt);c(n.select(e.target),Ot?\\\"pointer\\\":\\\"\\\")}if(!e.target||a||!function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber))return!0}return!1}(t,0,At))return;At&&t.emit(\\\"plotly_unhover\\\",{event:e,points:At});t.emit(\\\"plotly_hover\\\",{event:e,points:t._hoverdata,xaxes:w,yaxes:k,xvals:D,yvals:R})}(t,e,r,a)})},r.loneHover=function(t,e){var r={color:t.color||f.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,trace:{index:0,hoverinfo:\\\"\\\"},xa:{_offset:0},ya:{_offset:0},index:0},i=n.select(e.container),a=e.outerContainer?n.select(e.outerContainer):i,o={hovermode:\\\"closest\\\",rotateLabels:!1,bgColor:e.bgColor||f.background,container:i,outerContainer:a},s=M([r],o,e.gd);return A(s,o.rotateLabels),s.node()},r.multiHovers=function(t,e){Array.isArray(t)||(t=[t]);var r=t.map(function(t){return{color:t.color||f.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,trace:{index:0,hoverinfo:\\\"\\\"},xa:{_offset:0},ya:{_offset:0},index:0}}),i=n.select(e.container),a=e.outerContainer?n.select(e.outerContainer):i,o={hovermode:\\\"closest\\\",rotateLabels:!1,bgColor:e.bgColor||f.background,container:i,outerContainer:a},s=M(r,o,e.gd),l=0;return s.sort(function(t,e){return t.y0-e.y0}).each(function(t){var e=t.y0-t.by/2;t.offset=e-5<l?l-e+5:0,l=e+t.by+t.offset}),A(s,o.rotateLabels),s.node()}},{\\\"../../lib\\\":696,\\\"../../lib/events\\\":684,\\\"../../lib/override_cursor\\\":707,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"./constants\\\":607,\\\"./helpers\\\":609,d3:148,\\\"fast-isnumeric\\\":214,tinycolor2:514}],611:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e,r,i){r(\\\"hoverlabel.bgcolor\\\",(i=i||{}).bgcolor),r(\\\"hoverlabel.bordercolor\\\",i.bordercolor),r(\\\"hoverlabel.namelength\\\",i.namelength),n.coerceFont(r,\\\"hoverlabel.font\\\",i.font)}},{\\\"../../lib\\\":696}],612:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../dragelement\\\"),o=t(\\\"./helpers\\\"),s=t(\\\"./layout_attributes\\\"),l=t(\\\"./hover\\\");e.exports={moduleType:\\\"component\\\",name:\\\"fx\\\",constants:t(\\\"./constants\\\"),schema:{layout:s},attributes:t(\\\"./attributes\\\"),layoutAttributes:s,supplyLayoutGlobalDefaults:t(\\\"./layout_global_defaults\\\"),supplyDefaults:t(\\\"./defaults\\\"),supplyLayoutDefaults:t(\\\"./layout_defaults\\\"),calc:t(\\\"./calc\\\"),getDistanceFunction:o.getDistanceFunction,getClosest:o.getClosest,inbox:o.inbox,quadrature:o.quadrature,appendArrayPointValue:o.appendArrayPointValue,castHoverOption:function(t,e,r){return i.castOption(t,e,\\\"hoverlabel.\\\"+r)},castHoverinfo:function(t,e,r){return i.castOption(t,r,\\\"hoverinfo\\\",function(r){return i.coerceHoverinfo({hoverinfo:r},{_module:t._module},e)})},hover:l.hover,unhover:a.unhover,loneHover:l.loneHover,multiHovers:l.multiHovers,loneUnhover:function(t){var e=i.isD3Selection(t)?t:n.select(t);e.selectAll(\\\"g.hovertext\\\").remove(),e.selectAll(\\\".spikeline\\\").remove()},click:t(\\\"./click\\\")}},{\\\"../../lib\\\":696,\\\"../dragelement\\\":592,\\\"./attributes\\\":604,\\\"./calc\\\":605,\\\"./click\\\":606,\\\"./constants\\\":607,\\\"./defaults\\\":608,\\\"./helpers\\\":609,\\\"./hover\\\":610,\\\"./layout_attributes\\\":613,\\\"./layout_defaults\\\":614,\\\"./layout_global_defaults\\\":615,d3:148}],613:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"../../plots/font_attributes\\\")({editType:\\\"none\\\"});i.family.dflt=n.HOVERFONT,i.size.dflt=n.HOVERFONTSIZE,e.exports={clickmode:{valType:\\\"flaglist\\\",flags:[\\\"event\\\",\\\"select\\\"],dflt:\\\"event\\\",editType:\\\"plot\\\",extras:[\\\"none\\\"]},dragmode:{valType:\\\"enumerated\\\",values:[\\\"zoom\\\",\\\"pan\\\",\\\"select\\\",\\\"lasso\\\",\\\"orbit\\\",\\\"turntable\\\"],dflt:\\\"zoom\\\",editType:\\\"modebar\\\"},hovermode:{valType:\\\"enumerated\\\",values:[\\\"x\\\",\\\"y\\\",\\\"closest\\\",!1],editType:\\\"modebar\\\"},hoverdistance:{valType:\\\"integer\\\",min:-1,dflt:20,editType:\\\"none\\\"},spikedistance:{valType:\\\"integer\\\",min:-1,dflt:20,editType:\\\"none\\\"},hoverlabel:{bgcolor:{valType:\\\"color\\\",editType:\\\"none\\\"},bordercolor:{valType:\\\"color\\\",editType:\\\"none\\\"},font:i,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\\\":771,\\\"./constants\\\":607}],614:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\");e.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}var o,s=a(\\\"clickmode\\\");\\\"select\\\"===a(\\\"dragmode\\\")&&a(\\\"selectdirection\\\"),e._has(\\\"cartesian\\\")?s.indexOf(\\\"select\\\")>-1?o=\\\"closest\\\":(e._isHoriz=function(t){for(var e=!0,r=0;r<t.length;r++){var n=t[r];if(\\\"h\\\"!==n.orientation){e=!1;break}}return e}(r),o=e._isHoriz?\\\"y\\\":\\\"x\\\"):o=\\\"closest\\\",a(\\\"hovermode\\\",o)&&(a(\\\"hoverdistance\\\"),a(\\\"spikedistance\\\"));var l=e._has(\\\"mapbox\\\"),c=e._has(\\\"geo\\\"),u=e._basePlotModules.length;\\\"zoom\\\"===e.dragmode&&((l||c)&&1===u||l&&c&&2===u)&&(e.dragmode=\\\"pan\\\")}},{\\\"../../lib\\\":696,\\\"./layout_attributes\\\":613}],615:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./hoverlabel_defaults\\\"),a=t(\\\"./layout_attributes\\\");e.exports=function(t,e){i(t,e,function(r,i){return n.coerce(t,e,a,r,i)})}},{\\\"../../lib\\\":696,\\\"./hoverlabel_defaults\\\":611,\\\"./layout_attributes\\\":613}],616:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../lib/regex\\\").counter,a=t(\\\"../../plots/domain\\\").attributes,o=t(\\\"../../plots/cartesian/constants\\\").idRegex,s=t(\\\"../../plot_api/plot_template\\\"),l={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:[i(\\\"xy\\\").toString(),\\\"\\\"],editType:\\\"plot\\\"},editType:\\\"plot\\\"},xaxes:{valType:\\\"info_array\\\",freeLength:!0,items:{valType:\\\"enumerated\\\",values:[o.x.toString(),\\\"\\\"],editType:\\\"plot\\\"},editType:\\\"plot\\\"},yaxes:{valType:\\\"info_array\\\",freeLength:!0,items:{valType:\\\"enumerated\\\",values:[o.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:a({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 c(t,e,r){var n=e[r+\\\"axes\\\"],i=Object.keys((t._splomAxes||{})[r]||{});return Array.isArray(n)?n:i.length?i:void 0}function u(t,e,r,n,i,a){var o=e(t+\\\"gap\\\",r),s=e(\\\"domain.\\\"+t);e(t+\\\"side\\\",n);for(var l=new Array(i),c=s[0],u=(s[1]-c)/(i-o),f=u*(1-o),h=0;h<i;h++){var p=c+u*h;l[a?i-1-h:h]=[p,p+f]}return l}function f(t,e,r,n,i){var a,o=new Array(r);function s(t,r){-1!==e.indexOf(r)&&void 0===n[r]?(o[t]=r,n[r]=t):o[t]=\\\"\\\"}if(Array.isArray(t))for(a=0;a<r;a++)s(a,t[a]);else for(s(0,i),a=1;a<r;a++)s(a,i+(a+1));return o}e.exports={moduleType:\\\"component\\\",name:\\\"grid\\\",schema:{layout:{grid:l}},layoutAttributes:l,sizeDefaults:function(t,e){var r=t.grid||{},i=c(e,r,\\\"x\\\"),a=c(e,r,\\\"y\\\");if(t.grid||i||a){var o,f,h=Array.isArray(r.subplots)&&Array.isArray(r.subplots[0]),p=Array.isArray(i),d=Array.isArray(a),g=p&&i!==r.xaxes&&d&&a!==r.yaxes;h?(o=r.subplots.length,f=r.subplots[0].length):(d&&(o=a.length),p&&(f=i.length));var v=s.newContainer(e,\\\"grid\\\"),m=M(\\\"rows\\\",o),y=M(\\\"columns\\\",f);if(m*y>1){h||p||d||\\\"independent\\\"===M(\\\"pattern\\\")&&(h=!0),v._hasSubplotGrid=h;var x,b,_=\\\"top to bottom\\\"===M(\\\"roworder\\\"),w=h?.2:.1,k=h?.3:.1;g&&e._splomGridDflt&&(x=e._splomGridDflt.xside,b=e._splomGridDflt.yside),v._domains={x:u(\\\"x\\\",M,w,x,y),y:u(\\\"y\\\",M,k,b,m,_)}}else delete e.grid}function M(t,e){return n.coerce(r,v,l,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,u,h=t.grid||{},p=e._subplots,d=r._hasSubplotGrid,g=r.rows,v=r.columns,m=\\\"independent\\\"===r.pattern,y=r._axisMap={};if(d){var x=h.subplots||[];l=r.subplots=new Array(g);var b=1;for(n=0;n<g;n++){var _=l[n]=new Array(v),w=x[n]||[];for(i=0;i<v;i++)if(m?(s=1===b?\\\"xy\\\":\\\"x\\\"+b+\\\"y\\\"+b,b++):s=w[i],_[i]=\\\"\\\",-1!==p.cartesian.indexOf(s)){if(u=s.indexOf(\\\"y\\\"),a=s.slice(0,u),o=s.slice(u),void 0!==y[a]&&y[a]!==i||void 0!==y[o]&&y[o]!==n)continue;_[i]=s,y[a]=i,y[o]=n}}}else{var k=c(e,h,\\\"x\\\"),M=c(e,h,\\\"y\\\");r.xaxes=f(k,p.xaxis,v,y,\\\"x\\\"),r.yaxes=f(M,p.yaxis,g,y,\\\"y\\\")}var A=r._anchors={},T=\\\"top to bottom\\\"===r.roworder;for(var S in y){var E,C,L,z=S.charAt(0),O=r[z+\\\"side\\\"];if(O.length<8)A[S]=\\\"free\\\";else if(\\\"x\\\"===z){if(\\\"t\\\"===O.charAt(0)===T?(E=0,C=1,L=g):(E=g-1,C=-1,L=-1),d){var I=y[S];for(n=E;n!==L;n+=C)if((s=l[n][I])&&(u=s.indexOf(\\\"y\\\"),s.slice(0,u)===S)){A[S]=s.slice(u);break}}else for(n=E;n!==L;n+=C)if(o=r.yaxes[n],-1!==p.cartesian.indexOf(S+o)){A[S]=o;break}}else if(\\\"l\\\"===O.charAt(0)?(E=0,C=1,L=v):(E=v-1,C=-1,L=-1),d){var P=y[S];for(n=E;n!==L;n+=C)if((s=l[P][n])&&(u=s.indexOf(\\\"y\\\"),s.slice(u)===S)){A[S]=s.slice(0,u);break}}else for(n=E;n!==L;n+=C)if(a=r.xaxes[n],-1!==p.cartesian.indexOf(a+S)){A[S]=a;break}}}}}},{\\\"../../lib\\\":696,\\\"../../lib/regex\\\":712,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/constants\\\":750,\\\"../../plots/domain\\\":770}],617:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/constants\\\"),i=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports=i(\\\"image\\\",{visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"arraydraw\\\"},source:{valType:\\\"string\\\",editType:\\\"arraydraw\\\"},layer:{valType:\\\"enumerated\\\",values:[\\\"below\\\",\\\"above\\\"],dflt:\\\"above\\\",editType:\\\"arraydraw\\\"},sizex:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},sizey:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},sizing:{valType:\\\"enumerated\\\",values:[\\\"fill\\\",\\\"contain\\\",\\\"stretch\\\"],dflt:\\\"contain\\\",editType:\\\"arraydraw\\\"},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1,editType:\\\"arraydraw\\\"},x:{valType:\\\"any\\\",dflt:0,editType:\\\"arraydraw\\\"},y:{valType:\\\"any\\\",dflt:0,editType:\\\"arraydraw\\\"},xanchor:{valType:\\\"enumerated\\\",values:[\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\",editType:\\\"arraydraw\\\"},yanchor:{valType:\\\"enumerated\\\",values:[\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"top\\\",editType:\\\"arraydraw\\\"},xref:{valType:\\\"enumerated\\\",values:[\\\"paper\\\",n.idRegex.x.toString()],dflt:\\\"paper\\\",editType:\\\"arraydraw\\\"},yref:{valType:\\\"enumerated\\\",values:[\\\"paper\\\",n.idRegex.y.toString()],dflt:\\\"paper\\\",editType:\\\"arraydraw\\\"},editType:\\\"arraydraw\\\"})},{\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/constants\\\":750}],618:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib/to_log_range\\\");e.exports=function(t,e,r,a){e=e||{};var o=\\\"log\\\"===r&&\\\"linear\\\"===e.type,s=\\\"linear\\\"===r&&\\\"log\\\"===e.type;if(o||s)for(var l,c,u=t._fullLayout.images,f=e._id.charAt(0),h=0;h<u.length;h++)if(c=\\\"images[\\\"+h+\\\"].\\\",(l=u[h])[f+\\\"ref\\\"]===e._id){var p=l[f],d=l[\\\"size\\\"+f],g=null,v=null;if(o){g=i(p,e.range);var m=d/Math.pow(10,g)/2;v=2*Math.log(m+Math.sqrt(1+m*m))/Math.LN10}else v=(g=Math.pow(10,p))*(Math.pow(10,d/2)-Math.pow(10,-d/2));n(g)?n(v)||(v=null):(g=null,v=null),a(c+f,g),a(c+\\\"size\\\"+f,v)}}},{\\\"../../lib/to_log_range\\\":722,\\\"fast-isnumeric\\\":214}],619:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../plots/array_container_defaults\\\"),o=t(\\\"./attributes\\\");function s(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}var s=a(\\\"source\\\");if(!a(\\\"visible\\\",!!s))return e;a(\\\"layer\\\"),a(\\\"xanchor\\\"),a(\\\"yanchor\\\"),a(\\\"sizex\\\"),a(\\\"sizey\\\"),a(\\\"sizing\\\"),a(\\\"opacity\\\");for(var l={_fullLayout:r},c=[\\\"x\\\",\\\"y\\\"],u=0;u<2;u++){var f=c[u],h=i.coerceRef(t,e,l,f,\\\"paper\\\");i.coercePosition(e,l,a,h,f,0)}return e}e.exports=function(t,e){a(t,e,{name:\\\"images\\\",handleItemDefaults:s})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/cartesian/axes\\\":744,\\\"./attributes\\\":617}],620:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../drawing\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../../constants/xmlns_namespaces\\\");e.exports=function(t){var e,r,s=t._fullLayout,l=[],c={},u=[];for(r=0;r<s.images.length;r++){var f=s.images[r];if(f.visible)if(\\\"below\\\"===f.layer&&\\\"paper\\\"!==f.xref&&\\\"paper\\\"!==f.yref){e=f.xref+f.yref;var h=s._plots[e];if(!h){u.push(f);continue}h.mainplot&&(e=h.mainplot.id),c[e]||(c[e]=[]),c[e].push(f)}else\\\"above\\\"===f.layer?l.push(f):u.push(f)}var p={x:{left:{sizing:\\\"xMin\\\",offset:0},center:{sizing:\\\"xMid\\\",offset:-.5},right:{sizing:\\\"xMax\\\",offset:-1}},y:{top:{sizing:\\\"YMin\\\",offset:0},middle:{sizing:\\\"YMid\\\",offset:-.5},bottom:{sizing:\\\"YMax\\\",offset:-1}}};function d(e){var r=n.select(this);if(!this.img||this.img.src!==e.source){r.attr(\\\"xmlns\\\",o.svg);var i=new Promise(function(t){var n=new Image;function i(){r.remove(),t()}this.img=n,n.setAttribute(\\\"crossOrigin\\\",\\\"anonymous\\\"),n.onerror=i,n.onload=function(){var e=document.createElement(\\\"canvas\\\");e.width=this.width,e.height=this.height,e.getContext(\\\"2d\\\").drawImage(this,0,0);var n=e.toDataURL(\\\"image/png\\\");r.attr(\\\"xlink:href\\\",n),t()},r.on(\\\"error\\\",i),n.src=e.source}.bind(this));t._promises.push(i)}}function g(e){var r=n.select(this),o=a.getFromId(t,e.xref),l=a.getFromId(t,e.yref),c=s._size,u=o?Math.abs(o.l2p(e.sizex)-o.l2p(0)):e.sizex*c.w,f=l?Math.abs(l.l2p(e.sizey)-l.l2p(0)):e.sizey*c.h,h=u*p.x[e.xanchor].offset,d=f*p.y[e.yanchor].offset,g=p.x[e.xanchor].sizing+p.y[e.yanchor].sizing,v=(o?o.r2p(e.x)+o._offset:e.x*c.w+c.l)+h,m=(l?l.r2p(e.y)+l._offset:c.h-e.y*c.h+c.t)+d;switch(e.sizing){case\\\"fill\\\":g+=\\\" slice\\\";break;case\\\"stretch\\\":g=\\\"none\\\"}r.attr({x:v,y:m,width:u,height:f,preserveAspectRatio:g,opacity:e.opacity});var y=(o?o._id:\\\"\\\")+(l?l._id:\\\"\\\");r.call(i.setClipUrl,y?\\\"clip\\\"+s._uid+y:null)}var v=s._imageLowerLayer.selectAll(\\\"image\\\").data(u),m=s._imageUpperLayer.selectAll(\\\"image\\\").data(l);v.enter().append(\\\"image\\\"),m.enter().append(\\\"image\\\"),v.exit().remove(),m.exit().remove(),v.each(function(t){d.bind(this)(t),g.bind(this)(t)}),m.each(function(t){d.bind(this)(t),g.bind(this)(t)});var y=Object.keys(s._plots);for(r=0;r<y.length;r++){e=y[r];var x=s._plots[e];if(x.imagelayer){var b=x.imagelayer.selectAll(\\\"image\\\").data(c[e]||[]);b.enter().append(\\\"image\\\"),b.exit().remove(),b.each(function(t){d.bind(this)(t),g.bind(this)(t)})}}}},{\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../plots/cartesian/axes\\\":744,\\\"../drawing\\\":595,d3:148}],621:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"component\\\",name:\\\"images\\\",layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),includeBasePlot:t(\\\"../../plots/cartesian/include_components\\\")(\\\"images\\\"),draw:t(\\\"./draw\\\"),convertCoords:t(\\\"./convert_coords\\\")}},{\\\"../../plots/cartesian/include_components\\\":755,\\\"./attributes\\\":617,\\\"./convert_coords\\\":618,\\\"./defaults\\\":619,\\\"./draw\\\":620}],622:[function(t,e,r){\\\"use strict\\\";r.isRightAnchor=function(t){return\\\"right\\\"===t.xanchor||\\\"auto\\\"===t.xanchor&&t.x>=2/3},r.isCenterAnchor=function(t){return\\\"center\\\"===t.xanchor||\\\"auto\\\"===t.xanchor&&t.x>1/3&&t.x<2/3},r.isBottomAnchor=function(t){return\\\"bottom\\\"===t.yanchor||\\\"auto\\\"===t.yanchor&&t.y<=1/3},r.isMiddleAnchor=function(t){return\\\"middle\\\"===t.yanchor||\\\"auto\\\"===t.yanchor&&t.y>1/3&&t.y<2/3}},{}],623:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../color/attributes\\\");e.exports={bgcolor:{valType:\\\"color\\\",editType:\\\"legend\\\"},bordercolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"legend\\\"},borderwidth:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"legend\\\"},font:n({editType:\\\"legend\\\"}),orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],dflt:\\\"v\\\",editType:\\\"legend\\\"},traceorder:{valType:\\\"flaglist\\\",flags:[\\\"reversed\\\",\\\"grouped\\\"],extras:[\\\"normal\\\"],editType:\\\"legend\\\"},tracegroupgap:{valType:\\\"number\\\",min:0,dflt:10,editType:\\\"legend\\\"},x:{valType:\\\"number\\\",min:-2,max:3,dflt:1.02,editType:\\\"legend\\\"},xanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\",editType:\\\"legend\\\"},y:{valType:\\\"number\\\",min:-2,max:3,dflt:1,editType:\\\"legend\\\"},yanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"auto\\\",editType:\\\"legend\\\"},editType:\\\"legend\\\"}},{\\\"../../plots/font_attributes\\\":771,\\\"../color/attributes\\\":569}],624:[function(t,e,r){\\\"use strict\\\";e.exports={scrollBarWidth:6,scrollBarMinHeight:20,scrollBarColor:\\\"#808BA4\\\",scrollBarMargin:4,textOffsetX:40}},{}],625:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plot_api/plot_template\\\"),o=t(\\\"./attributes\\\"),s=t(\\\"../../plots/layout_attributes\\\"),l=t(\\\"./helpers\\\");e.exports=function(t,e,r){for(var c,u,f,h,p=t.legend||{},d=0,g=!1,v=\\\"normal\\\",m=0;m<r.length;m++){var y=r[m];y.visible&&((y.showlegend||y._dfltShowLegend)&&(d++,y.showlegend&&(g=!0,(n.traceIs(y,\\\"pie\\\")||!0===y._input.showlegend)&&d++)),(n.traceIs(y,\\\"bar\\\")&&\\\"stack\\\"===e.barmode||-1!==[\\\"tonextx\\\",\\\"tonexty\\\"].indexOf(y.fill))&&(v=l.isGrouped({traceorder:v})?\\\"grouped+reversed\\\":\\\"reversed\\\"),void 0!==y.legendgroup&&\\\"\\\"!==y.legendgroup&&(v=l.isReversed({traceorder:v})?\\\"reversed+grouped\\\":\\\"grouped\\\"))}if(!1!==i.coerce(t,e,s,\\\"showlegend\\\",g&&d>1)){var x=a.newContainer(e,\\\"legend\\\");if(_(\\\"bgcolor\\\",e.paper_bgcolor),_(\\\"bordercolor\\\"),_(\\\"borderwidth\\\"),i.coerceFont(_,\\\"font\\\",e.font),_(\\\"orientation\\\"),\\\"h\\\"===x.orientation){var b=t.xaxis;b&&b.rangeslider&&b.rangeslider.visible?(c=0,f=\\\"left\\\",u=1.1,h=\\\"bottom\\\"):(c=0,f=\\\"left\\\",u=-.1,h=\\\"top\\\")}_(\\\"traceorder\\\",v),l.isGrouped(e.legend)&&_(\\\"tracegroupgap\\\"),_(\\\"x\\\",c),_(\\\"xanchor\\\",f),_(\\\"y\\\",u),_(\\\"yanchor\\\",h),i.noneOrAll(p,x,[\\\"x\\\",\\\"y\\\"])}function _(t,e){return i.coerce(p,x,o,t,e)}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/layout_attributes\\\":799,\\\"../../registry\\\":827,\\\"./attributes\\\":623,\\\"./helpers\\\":629}],626:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib/events\\\"),l=t(\\\"../dragelement\\\"),c=t(\\\"../drawing\\\"),u=t(\\\"../color\\\"),f=t(\\\"../../lib/svg_text_utils\\\"),h=t(\\\"./handle_click\\\"),p=t(\\\"./constants\\\"),d=t(\\\"../../constants/interactions\\\"),g=t(\\\"../../constants/alignment\\\"),v=g.LINE_SPACING,m=g.FROM_TL,y=g.FROM_BR,x=t(\\\"./get_legend_data\\\"),b=t(\\\"./style\\\"),_=t(\\\"./helpers\\\"),w=t(\\\"./anchor_utils\\\"),k=d.DBLCLICKDELAY;function M(t,e,r,n,i){var a=r.data()[0][0].trace,o={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a._expandedIndex,data:t.data,layout:t.layout,frames:t._transitionData._frames,config:t._context,fullData:t._fullData,fullLayout:t._fullLayout};if(a._group&&(o.group=a._group),\\\"pie\\\"===a.type&&(o.label=r.datum()[0].label),!1!==s.triggerHandler(t,\\\"plotly_legendclick\\\",o))if(1===n)e._clickTimeout=setTimeout(function(){h(r,t,n)},k);else if(2===n){e._clickTimeout&&clearTimeout(e._clickTimeout),t._legendMouseDownTime=0,!1!==s.triggerHandler(t,\\\"plotly_legenddoubleclick\\\",o)&&h(r,t,n)}}function A(t,e,r){var n=t.data()[0][0],a=e._fullLayout,s=n.trace,l=o.traceIs(s,\\\"pie\\\"),u=s.index,h=l?n.label:s.name,d=e._context.edits.legendText&&!l,g=i.ensureSingle(t,\\\"text\\\",\\\"legendtext\\\");function m(r){f.convertToTspans(r,e,function(){!function(t,e){var r=t.data()[0][0];if(!r.trace.showlegend)return void t.remove();var n,i,a=t.select(\\\"g[class*=math-group]\\\"),o=a.node(),s=e._fullLayout.legend.font.size*v;if(o){var l=c.bBox(o);n=l.height,i=l.width,c.setTranslate(a,0,n/4)}else{var u=t.select(\\\".legendtext\\\"),h=f.lineCount(u),d=u.node();n=s*h,i=d?c.bBox(d).width:0;var g=s*(.3+(1-h)/2);f.positionText(u,p.textOffsetX,g)}n=Math.max(n,16)+3,r.height=n,r.width=i}(t,e)})}g.attr(\\\"text-anchor\\\",\\\"start\\\").classed(\\\"user-select-none\\\",!0).call(c.font,a.legend.font).text(d?T(h,r):h),f.positionText(g,p.textOffsetX,0),d?g.call(f.makeEditable,{gd:e,text:h}).call(m).on(\\\"edit\\\",function(t){this.text(T(t,r)).call(m);var a=n.trace._fullInput||{},s={};if(o.hasTransform(a,\\\"groupby\\\")){var l=o.getTransformIndices(a,\\\"groupby\\\"),c=l[l.length-1],f=i.keyedContainer(a,\\\"transforms[\\\"+c+\\\"].styles\\\",\\\"target\\\",\\\"value.name\\\");f.set(n.trace._group,t),s=f.constructUpdate()}else s.name=t;return o.call(\\\"restyle\\\",e,s,u)}):m(g)}function T(t,e){var r=Math.max(4,e);if(t&&t.trim().length>=r/2)return t;for(var n=r-(t=t||\\\"\\\").length;n>0;n--)t+=\\\" \\\";return t}function S(t,e){var r,a=1,o=i.ensureSingle(t,\\\"rect\\\",\\\"legendtoggle\\\",function(t){t.style(\\\"cursor\\\",\\\"pointer\\\").attr(\\\"pointer-events\\\",\\\"all\\\").call(u.fill,\\\"rgba(0,0,0,0)\\\")});o.on(\\\"mousedown\\\",function(){(r=(new Date).getTime())-e._legendMouseDownTime<k?a+=1:(a=1,e._legendMouseDownTime=r)}),o.on(\\\"mouseup\\\",function(){if(!e._dragged&&!e._editing){var r=e._fullLayout.legend;(new Date).getTime()-e._legendMouseDownTime>k&&(a=Math.max(a-1,1)),M(e,r,t,a,n.event)}})}function E(t,e,r){var i=t._fullLayout,a=i.legend,o=a.borderwidth,s=_.isGrouped(a),l=0;if(a._width=0,a._height=0,_.isVertical(a))s&&e.each(function(t,e){c.setTranslate(this,0,e*a.tracegroupgap)}),r.each(function(t){var e=t[0],r=e.height,n=e.width;c.setTranslate(this,o,5+o+a._height+r/2),a._height+=r,a._width=Math.max(a._width,n)}),a._width+=45+2*o,a._height+=10+2*o,s&&(a._height+=(a._lgroupsLength-1)*a.tracegroupgap),l=40;else if(s){for(var u=[a._width],f=e.data(),h=0,p=f.length;h<p;h++){var d=f[h].map(function(t){return t[0].width}),g=40+Math.max.apply(null,d);a._width+=a.tracegroupgap+g,u.push(a._width)}e.each(function(t,e){c.setTranslate(this,u[e],0)}),e.each(function(){var t=n.select(this).selectAll(\\\"g.traces\\\"),e=0;t.each(function(t){var r=t[0].height;c.setTranslate(this,0,5+o+e+r/2),e+=r}),a._height=Math.max(a._height,e)}),a._height+=10+2*o,a._width+=2*o}else{var v,m=0,y=0,x=0,b=0,w=0,k=a.tracegroupgap||5;r.each(function(t){x=Math.max(40+t[0].width,x),w+=40+t[0].width+k}),v=i._size.w>o+w-k,r.each(function(t){var e=t[0],r=v?40+t[0].width:x;o+b+k+r>i._size.w&&(b=0,m+=y,a._height=a._height+y,y=0),c.setTranslate(this,o+b,5+o+e.height/2+m),a._width+=k+r,a._height=Math.max(a._height,e.height),b+=k+r,y=Math.max(e.height,y)}),a._width+=2*o,a._height+=10+2*o}a._width=Math.ceil(a._width),a._height=Math.ceil(a._height);var M=t._context.edits.legendText||t._context.edits.legendPosition;r.each(function(t){var e=t[0],r=n.select(this).select(\\\".legendtoggle\\\");c.setRect(r,0,-e.height/2,(M?0:a._width)+l,e.height)})}function C(t){var e=t._fullLayout.legend,r=\\\"left\\\";w.isRightAnchor(e)?r=\\\"right\\\":w.isCenterAnchor(e)&&(r=\\\"center\\\");var n=\\\"top\\\";w.isBottomAnchor(e)?n=\\\"bottom\\\":w.isMiddleAnchor(e)&&(n=\\\"middle\\\"),a.autoMargin(t,\\\"legend\\\",{x:e.x,y:e.y,l:e._width*m[r],r:e._width*y[r],b:e._height*y[n],t:e._height*m[n]})}e.exports=function(t){var e=t._fullLayout,r=\\\"legend\\\"+e._uid;if(e._infolayer&&t.calcdata){t._legendMouseDownTime||(t._legendMouseDownTime=0);var s=e.legend,f=e.showlegend&&x(t.calcdata,s),h=e.hiddenlabels||[];if(!e.showlegend||!f.length)return e._infolayer.selectAll(\\\".legend\\\").remove(),e._topdefs.select(\\\"#\\\"+r).remove(),void a.autoMargin(t,\\\"legend\\\");for(var d=0,g=0;g<f.length;g++)for(var v=0;v<f[g].length;v++){var _=f[g][v][0],k=_.trace,T=o.traceIs(k,\\\"pie\\\")?_.label:k.name;d=Math.max(d,T&&T.length||0)}var L=!1,z=i.ensureSingle(e._infolayer,\\\"g\\\",\\\"legend\\\",function(t){t.attr(\\\"pointer-events\\\",\\\"all\\\"),L=!0}),O=i.ensureSingleById(e._topdefs,\\\"clipPath\\\",r,function(t){t.append(\\\"rect\\\")}),I=i.ensureSingle(z,\\\"rect\\\",\\\"bg\\\",function(t){t.attr(\\\"shape-rendering\\\",\\\"crispEdges\\\")});I.call(u.stroke,s.bordercolor).call(u.fill,s.bgcolor).style(\\\"stroke-width\\\",s.borderwidth+\\\"px\\\");var P=i.ensureSingle(z,\\\"g\\\",\\\"scrollbox\\\"),D=i.ensureSingle(z,\\\"rect\\\",\\\"scrollbar\\\",function(t){t.attr({rx:20,ry:3,width:0,height:0}).call(u.fill,\\\"#808BA4\\\")}),R=P.selectAll(\\\"g.groups\\\").data(f);R.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"groups\\\"),R.exit().remove();var B=R.selectAll(\\\"g.traces\\\").data(i.identity);B.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"traces\\\"),B.exit().remove(),B.call(b,t).style(\\\"opacity\\\",function(t){var e=t[0].trace;return o.traceIs(e,\\\"pie\\\")?-1!==h.indexOf(t[0].label)?.5:1:\\\"legendonly\\\"===e.visible?.5:1}).each(function(){n.select(this).call(A,t,d).call(S,t)}),i.syncOrAsync([a.previousPromises,function(){L&&(E(t,R,B),C(t));var u=e.width,f=e.height;E(t,R,B),s._height>f?function(t){var e=t._fullLayout.legend,r=\\\"left\\\";w.isRightAnchor(e)?r=\\\"right\\\":w.isCenterAnchor(e)&&(r=\\\"center\\\");a.autoMargin(t,\\\"legend\\\",{x:e.x,y:.5,l:e._width*m[r],r:e._width*y[r],b:0,t:0})}(t):C(t);var h=e._size,d=h.l+h.w*s.x,g=h.t+h.h*(1-s.y);w.isRightAnchor(s)?d-=s._width:w.isCenterAnchor(s)&&(d-=s._width/2),w.isBottomAnchor(s)?g-=s._height:w.isMiddleAnchor(s)&&(g-=s._height/2);var v=s._width,x=h.w;v>x?(d=h.l,v=x):(d+v>u&&(d=u-v),d<0&&(d=0),v=Math.min(u-d,s._width));var b,_,k,A,T=s._height,S=h.h;if(T>S?(g=h.t,T=S):(g+T>f&&(g=f-T),g<0&&(g=0),T=Math.min(f-g,s._height)),c.setTranslate(z,d,g),D.on(\\\".drag\\\",null),z.on(\\\"wheel\\\",null),s._height<=T||t._context.staticPlot)I.attr({width:v-s.borderwidth,height:T-s.borderwidth,x:s.borderwidth/2,y:s.borderwidth/2}),c.setTranslate(P,0,0),O.select(\\\"rect\\\").attr({width:v-2*s.borderwidth,height:T-2*s.borderwidth,x:s.borderwidth,y:s.borderwidth}),c.setClipUrl(P,r),c.setRect(D,0,0,0,0),delete s._scrollY;else{var F,N,j=Math.max(p.scrollBarMinHeight,T*T/s._height),V=T-j-2*p.scrollBarMargin,U=s._height-T,q=V/U,H=Math.min(s._scrollY||0,U);I.attr({width:v-2*s.borderwidth+p.scrollBarWidth+p.scrollBarMargin,height:T-s.borderwidth,x:s.borderwidth/2,y:s.borderwidth/2}),O.select(\\\"rect\\\").attr({width:v-2*s.borderwidth+p.scrollBarWidth+p.scrollBarMargin,height:T-2*s.borderwidth,x:s.borderwidth,y:s.borderwidth+H}),c.setClipUrl(P,r),W(H,j,q),z.on(\\\"wheel\\\",function(){W(H=i.constrain(s._scrollY+n.event.deltaY/V*U,0,U),j,q),0!==H&&H!==U&&n.event.preventDefault()});var G=n.behavior.drag().on(\\\"dragstart\\\",function(){F=n.event.sourceEvent.clientY,N=H}).on(\\\"drag\\\",function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||W(H=i.constrain((t.clientY-F)/q+N,0,U),j,q)});D.call(G)}function W(e,r,n){s._scrollY=t._fullLayout.legend._scrollY=e,c.setTranslate(P,0,-e),c.setRect(D,v,p.scrollBarMargin+e*n,p.scrollBarWidth,r),O.select(\\\"rect\\\").attr({y:s.borderwidth+e})}t._context.edits.legendPosition&&(z.classed(\\\"cursor-move\\\",!0),l.init({element:z.node(),gd:t,prepFn:function(){var t=c.getTranslate(z);k=t.x,A=t.y},moveFn:function(t,e){var r=k+t,n=A+e;c.setTranslate(z,r,n),b=l.align(r,0,h.l,h.l+h.w,s.xanchor),_=l.align(n,0,h.t+h.h,h.t,s.yanchor)},doneFn:function(){void 0!==b&&void 0!==_&&o.call(\\\"relayout\\\",t,{\\\"legend.x\\\":b,\\\"legend.y\\\":_})},clickFn:function(r,n){var i=e._infolayer.selectAll(\\\"g.traces\\\").filter(function(){var t=this.getBoundingClientRect();return n.clientX>=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom});i.size()>0&&M(t,z,i,r,n)}}))}],t)}}},{\\\"../../constants/alignment\\\":668,\\\"../../constants/interactions\\\":672,\\\"../../lib\\\":696,\\\"../../lib/events\\\":684,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"./anchor_utils\\\":622,\\\"./constants\\\":624,\\\"./get_legend_data\\\":627,\\\"./handle_click\\\":628,\\\"./helpers\\\":629,\\\"./style\\\":631,d3:148}],627:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"./helpers\\\");e.exports=function(t,e){var r,a,o={},s=[],l=!1,c={},u=0;function f(t,r){if(\\\"\\\"!==t&&i.isGrouped(e))-1===s.indexOf(t)?(s.push(t),l=!0,o[t]=[[r]]):o[t].push([r]);else{var n=\\\"~~i\\\"+u;s.push(n),o[n]=[[r]],u++}}for(r=0;r<t.length;r++){var h=t[r],p=h[0],d=p.trace,g=d.legendgroup;if(d.visible&&d.showlegend)if(n.traceIs(d,\\\"pie\\\"))for(c[g]||(c[g]={}),a=0;a<h.length;a++){var v=h[a].label;c[g][v]||(f(g,{label:v,color:h[a].color,i:h[a].i,trace:d,pts:h[a].pts}),c[g][v]=!0)}else f(g,p)}if(!s.length)return[];var m,y,x=s.length;if(l&&i.isGrouped(e))for(y=new Array(x),r=0;r<x;r++)m=o[s[r]],y[r]=i.isReversed(e)?m.reverse():m;else{for(y=[new Array(x)],r=0;r<x;r++)m=o[s[r]][0],y[0][i.isReversed(e)?x-r-1:r]=m;x=1}return e._lgroupsLength=x,y}},{\\\"../../registry\\\":827,\\\"./helpers\\\":629}],628:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=!0;e.exports=function(t,e,r){if(!e._dragged&&!e._editing){var o,s,l,c,u,f=e._fullLayout.hiddenlabels?e._fullLayout.hiddenlabels.slice():[],h=t.data()[0][0],p=e._fullData,d=h.trace,g=d.legendgroup,v={},m=[],y=[],x=[];if(1===r&&a&&e.data&&e._context.showTips?(n.notifier(n._(e,\\\"Double-click on legend to isolate one trace\\\"),\\\"long\\\"),a=!1):a=!1,i.traceIs(d,\\\"pie\\\")){var b=h.label,_=f.indexOf(b);1===r?-1===_?f.push(b):f.splice(_,1):2===r&&(f=[],e.calcdata[0].forEach(function(t){b!==t.label&&f.push(t.label)}),e._fullLayout.hiddenlabels&&e._fullLayout.hiddenlabels.length===f.length&&-1===_&&(f=[])),i.call(\\\"relayout\\\",e,\\\"hiddenlabels\\\",f)}else{var w,k=g&&g.length,M=[];if(k)for(o=0;o<p.length;o++)(w=p[o]).visible&&w.legendgroup===g&&M.push(o);if(1===r){var A;switch(d.visible){case!0:A=\\\"legendonly\\\";break;case!1:A=!1;break;case\\\"legendonly\\\":A=!0}if(k)for(o=0;o<p.length;o++)!1!==p[o].visible&&p[o].legendgroup===g&&O(p[o],A);else O(d,A)}else if(2===r){var T,S,E=!0;for(o=0;o<p.length;o++)if(!(p[o]===d)&&!(T=k&&p[o].legendgroup===g)&&!0===p[o].visible&&!i.traceIs(p[o],\\\"notLegendIsolatable\\\")){E=!1;break}for(o=0;o<p.length;o++)if(!1!==p[o].visible&&!i.traceIs(p[o],\\\"notLegendIsolatable\\\"))switch(d.visible){case\\\"legendonly\\\":O(p[o],!0);break;case!0:S=!!E||\\\"legendonly\\\",T=p[o]===d||k&&p[o].legendgroup===g,O(p[o],!!T||S)}}for(o=0;o<y.length;o++)if(l=y[o]){var C=l.constructUpdate(),L=Object.keys(C);for(s=0;s<L.length;s++)c=L[s],(v[c]=v[c]||[])[x[o]]=C[c]}for(u=Object.keys(v),o=0;o<u.length;o++)for(c=u[o],s=0;s<m.length;s++)v[c].hasOwnProperty(s)||(v[c][s]=void 0);i.call(\\\"restyle\\\",e,v,m)}}function z(t,e,r){var n=m.indexOf(t),i=v[e];return i||(i=v[e]=[]),-1===m.indexOf(t)&&(m.push(t),n=m.length-1),i[n]=r,n}function O(t,e){var r=t._fullInput;if(i.hasTransform(r,\\\"groupby\\\")){var a=y[r.index];if(!a){var o=i.getTransformIndices(r,\\\"groupby\\\"),s=o[o.length-1];a=n.keyedContainer(r,\\\"transforms[\\\"+s+\\\"].styles\\\",\\\"target\\\",\\\"value.visible\\\"),y[r.index]=a}var l=a.get(t._group);void 0===l&&(l=!0),!1!==l&&a.set(t._group,e),x[r.index]=z(r.index,\\\"visible\\\",!1!==r.visible)}else{var c=!1!==r.visible&&e;z(r.index,\\\"visible\\\",c)}}}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827}],629:[function(t,e,r){\\\"use strict\\\";r.isGrouped=function(t){return-1!==(t.traceorder||\\\"\\\").indexOf(\\\"grouped\\\")},r.isVertical=function(t){return\\\"h\\\"!==t.orientation},r.isReversed=function(t){return-1!==(t.traceorder||\\\"\\\").indexOf(\\\"reversed\\\")}},{}],630:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"component\\\",name:\\\"legend\\\",layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),draw:t(\\\"./draw\\\"),style:t(\\\"./style\\\")}},{\\\"./attributes\\\":623,\\\"./defaults\\\":625,\\\"./draw\\\":626,\\\"./style\\\":631}],631:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../drawing\\\"),s=t(\\\"../color\\\"),l=t(\\\"../../traces/scatter/subtypes\\\"),c=t(\\\"../../traces/pie/style_one\\\");e.exports=function(t,e){t.each(function(t){var e=n.select(this),r=a.ensureSingle(e,\\\"g\\\",\\\"layers\\\");r.style(\\\"opacity\\\",t[0].trace.opacity),r.selectAll(\\\"g.legendfill\\\").data([t]).enter().append(\\\"g\\\").classed(\\\"legendfill\\\",!0),r.selectAll(\\\"g.legendlines\\\").data([t]).enter().append(\\\"g\\\").classed(\\\"legendlines\\\",!0);var i=r.selectAll(\\\"g.legendsymbols\\\").data([t]);i.enter().append(\\\"g\\\").classed(\\\"legendsymbols\\\",!0),i.selectAll(\\\"g.legendpoints\\\").data([t]).enter().append(\\\"g\\\").classed(\\\"legendpoints\\\",!0)}).each(function(t){var e=t[0].trace,r=e.marker||{},a=r.line||{},o=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendbar\\\").data(i.traceIs(e,\\\"bar\\\")?[t]:[]);o.enter().append(\\\"path\\\").classed(\\\"legendbar\\\",!0).attr(\\\"d\\\",\\\"M6,6H-6V-6H6Z\\\").attr(\\\"transform\\\",\\\"translate(20,0)\\\"),o.exit().remove(),o.each(function(t){var e=n.select(this),i=t[0],o=(i.mlw+1||a.width+1)-1;e.style(\\\"stroke-width\\\",o+\\\"px\\\").call(s.fill,i.mc||r.color),o&&e.call(s.stroke,i.mlc||a.color)})}).each(function(t){var e=t[0].trace,r=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendbox\\\").data(i.traceIs(e,\\\"box-violin\\\")&&e.visible?[t]:[]);r.enter().append(\\\"path\\\").classed(\\\"legendbox\\\",!0).attr(\\\"d\\\",\\\"M6,6H-6V-6H6Z\\\").attr(\\\"transform\\\",\\\"translate(20,0)\\\"),r.exit().remove(),r.each(function(){var t=e.line.width,r=n.select(this);r.style(\\\"stroke-width\\\",t+\\\"px\\\").call(s.fill,e.fillcolor),t&&s.stroke(r,e.line.color)})}).each(function(t){var e=t[0].trace,r=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendpie\\\").data(i.traceIs(e,\\\"pie\\\")&&e.visible?[t]:[]);r.enter().append(\\\"path\\\").classed(\\\"legendpie\\\",!0).attr(\\\"d\\\",\\\"M6,6H-6V-6H6Z\\\").attr(\\\"transform\\\",\\\"translate(20,0)\\\"),r.exit().remove(),r.size()&&r.call(c,t[0],e)}).each(function(t){var r=t[0].trace,i=r.visible&&r.fill&&\\\"none\\\"!==r.fill,a=l.hasLines(r),s=r.contours,c=!1,u=!1;if(s){var f=s.coloring;\\\"lines\\\"===f?c=!0:a=\\\"none\\\"===f||\\\"heatmap\\\"===f||s.showlines,\\\"constraint\\\"===s.type?i=\\\"=\\\"!==s._operation:\\\"fill\\\"!==f&&\\\"heatmap\\\"!==f||(u=!0)}var h=l.hasMarkers(r)||l.hasText(r),p=i||u,d=a||c,g=h||!p?\\\"M5,0\\\":d?\\\"M5,-2\\\":\\\"M5,-3\\\",v=n.select(this),m=v.select(\\\".legendfill\\\").selectAll(\\\"path\\\").data(i||u?[t]:[]);m.enter().append(\\\"path\\\").classed(\\\"js-fill\\\",!0),m.exit().remove(),m.attr(\\\"d\\\",g+\\\"h30v6h-30z\\\").call(i?o.fillGroupStyle:function(t){if(t.size()){var n=\\\"legendfill-\\\"+r.uid;o.gradient(t,e,n,\\\"horizontalreversed\\\",r.colorscale,\\\"fill\\\")}});var y=v.select(\\\".legendlines\\\").selectAll(\\\"path\\\").data(a||c?[t]:[]);y.enter().append(\\\"path\\\").classed(\\\"js-line\\\",!0),y.exit().remove(),y.attr(\\\"d\\\",g+(c?\\\"l30,0.0001\\\":\\\"h30\\\")).call(a?o.lineGroupStyle:function(t){if(t.size()){var n=\\\"legendline-\\\"+r.uid;o.lineGroupStyle(t),o.gradient(t,e,n,\\\"horizontalreversed\\\",r.colorscale,\\\"stroke\\\")}})}).each(function(t){var r,i,s=t[0],c=s.trace,u=l.hasMarkers(c),f=l.hasText(c),h=l.hasLines(c);function p(t,e,r){var n=a.nestedProperty(c,t).get(),i=a.isArrayOrTypedArray(n)&&e?e(n):n;if(r){if(i<r[0])return r[0];if(i>r[1])return r[1]}return i}function d(t){return t[0]}if(u||f||h){var g={},v={};if(u){g.mc=p(\\\"marker.color\\\",d),g.mx=p(\\\"marker.symbol\\\",d),g.mo=p(\\\"marker.opacity\\\",a.mean,[.2,1]),g.mlc=p(\\\"marker.line.color\\\",d),g.mlw=p(\\\"marker.line.width\\\",a.mean,[0,5]),v.marker={sizeref:1,sizemin:1,sizemode:\\\"diameter\\\"};var m=p(\\\"marker.size\\\",a.mean,[2,16]);g.ms=m,v.marker.size=m}h&&(v.line={width:p(\\\"line.width\\\",d,[0,10])}),f&&(g.tx=\\\"Aa\\\",g.tp=p(\\\"textposition\\\",d),g.ts=10,g.tc=p(\\\"textfont.color\\\",d),g.tf=p(\\\"textfont.family\\\",d)),r=[a.minExtend(s,g)],(i=a.minExtend(c,v)).selectedpoints=null}var y=n.select(this).select(\\\"g.legendpoints\\\"),x=y.selectAll(\\\"path.scatterpts\\\").data(u?r:[]);x.enter().insert(\\\"path\\\",\\\":first-child\\\").classed(\\\"scatterpts\\\",!0).attr(\\\"transform\\\",\\\"translate(20,0)\\\"),x.exit().remove(),x.call(o.pointStyle,i,e),u&&(r[0].mrc=3);var b=y.selectAll(\\\"g.pointtext\\\").data(f?r:[]);b.enter().append(\\\"g\\\").classed(\\\"pointtext\\\",!0).append(\\\"text\\\").attr(\\\"transform\\\",\\\"translate(20,0)\\\"),b.exit().remove(),b.selectAll(\\\"text\\\").call(o.textPointStyle,i,e)}).each(function(t){var e=t[0].trace,r=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendcandle\\\").data(\\\"candlestick\\\"===e.type&&e.visible?[t,t]:[]);r.enter().append(\\\"path\\\").classed(\\\"legendcandle\\\",!0).attr(\\\"d\\\",function(t,e){return e?\\\"M-15,0H-8M-8,6V-6H8Z\\\":\\\"M15,0H8M8,-6V6H-8Z\\\"}).attr(\\\"transform\\\",\\\"translate(20,0)\\\").style(\\\"stroke-miterlimit\\\",1),r.exit().remove(),r.each(function(t,r){var i=e[r?\\\"increasing\\\":\\\"decreasing\\\"],a=i.line.width,o=n.select(this);o.style(\\\"stroke-width\\\",a+\\\"px\\\").call(s.fill,i.fillcolor),a&&s.stroke(o,i.line.color)})}).each(function(t){var e=t[0].trace,r=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendohlc\\\").data(\\\"ohlc\\\"===e.type&&e.visible?[t,t]:[]);r.enter().append(\\\"path\\\").classed(\\\"legendohlc\\\",!0).attr(\\\"d\\\",function(t,e){return e?\\\"M-15,0H0M-8,-6V0\\\":\\\"M15,0H0M8,6V0\\\"}).attr(\\\"transform\\\",\\\"translate(20,0)\\\").style(\\\"stroke-miterlimit\\\",1),r.exit().remove(),r.each(function(t,r){var i=e[r?\\\"increasing\\\":\\\"decreasing\\\"],a=i.line.width,l=n.select(this);l.style(\\\"fill\\\",\\\"none\\\").call(o.dashLine,i.line.dash,a),a&&s.stroke(l,i.line.color)})})}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../../traces/pie/style_one\\\":1029,\\\"../../traces/scatter/subtypes\\\":1067,\\\"../color\\\":570,\\\"../drawing\\\":595,d3:148}],632:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../plots/plots\\\"),a=t(\\\"../../plots/cartesian/axis_ids\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../../build/ploticon\\\"),l=o._,c=e.exports={};function u(t,e){var r,i,o=e.currentTarget,s=o.getAttribute(\\\"data-attr\\\"),l=o.getAttribute(\\\"data-val\\\")||!0,c=t._fullLayout,u={},f=a.list(t,null,!0),h=\\\"on\\\";if(\\\"zoom\\\"===s){var p,d=\\\"in\\\"===l?.5:2,g=(1+d)/2,v=(1-d)/2;for(i=0;i<f.length;i++)if(!(r=f[i]).fixedrange)if(p=r._name,\\\"auto\\\"===l)u[p+\\\".autorange\\\"]=!0;else if(\\\"reset\\\"===l){if(void 0===r._rangeInitial)u[p+\\\".autorange\\\"]=!0;else{var m=r._rangeInitial.slice();u[p+\\\".range[0]\\\"]=m[0],u[p+\\\".range[1]\\\"]=m[1]}void 0!==r._showSpikeInitial&&(u[p+\\\".showspikes\\\"]=r._showSpikeInitial,\\\"on\\\"!==h||r._showSpikeInitial||(h=\\\"off\\\"))}else{var y=[r.r2l(r.range[0]),r.r2l(r.range[1])],x=[g*y[0]+v*y[1],g*y[1]+v*y[0]];u[p+\\\".range[0]\\\"]=r.l2r(x[0]),u[p+\\\".range[1]\\\"]=r.l2r(x[1])}c._cartesianSpikesEnabled=h}else{if(\\\"hovermode\\\"!==s||\\\"x\\\"!==l&&\\\"y\\\"!==l){if(\\\"hovermode\\\"===s&&\\\"closest\\\"===l){for(i=0;i<f.length;i++)r=f[i],\\\"on\\\"!==h||r.showspikes||(h=\\\"off\\\");c._cartesianSpikesEnabled=h}}else l=c._isHoriz?\\\"y\\\":\\\"x\\\",o.setAttribute(\\\"data-val\\\",l);u[s]=l}n.call(\\\"relayout\\\",t,u)}function f(t,e){for(var r=e.currentTarget,i=r.getAttribute(\\\"data-attr\\\"),a=r.getAttribute(\\\"data-val\\\")||!0,o=t._fullLayout._subplots.gl3d,s={},l=i.split(\\\".\\\"),c=0;c<o.length;c++)s[o[c]+\\\".\\\"+l[1]]=a;var u=\\\"pan\\\"===a?a:\\\"zoom\\\";s.dragmode=u,n.call(\\\"relayout\\\",t,s)}function h(t,e){for(var r=e.currentTarget.getAttribute(\\\"data-attr\\\"),i=t._fullLayout,a=i._subplots.gl3d,s={},l=0;l<a.length;l++){var c=a[l],u=c+\\\".camera\\\",f=i[c]._scene;\\\"resetDefault\\\"===r?s[u]=null:\\\"resetLastSave\\\"===r&&(s[u]=o.extendDeep({},f.cameraInitial))}n.call(\\\"relayout\\\",t,s)}function p(t,e){var r=e.currentTarget,i=r._previousVal||!1,a=t.layout,s=t._fullLayout,l=s._subplots.gl3d,c=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"],u=[\\\"showspikes\\\",\\\"spikesides\\\",\\\"spikethickness\\\",\\\"spikecolor\\\"],f={},h={},p={};if(i)p=o.extendDeep(a,i),r._previousVal=null;else{p={\\\"allaxes.showspikes\\\":!1};for(var d=0;d<l.length;d++){var g=l[d],v=s[g],m=f[g]={};m.hovermode=v.hovermode,p[g+\\\".hovermode\\\"]=!1;for(var y=0;y<3;y++){var x=c[y];h=m[x]={};for(var b=0;b<u.length;b++){var _=u[b];h[_]=v[x][_]}}}r._previousVal=o.extendDeep({},f)}n.call(\\\"relayout\\\",t,p)}function d(t,e){for(var r=e.currentTarget,i=r.getAttribute(\\\"data-attr\\\"),a=r.getAttribute(\\\"data-val\\\")||!0,o=t._fullLayout,s=o._subplots.geo,l=0;l<s.length;l++){var c=s[l],u=o[c];if(\\\"zoom\\\"===i){var f=u.projection.scale,h=\\\"in\\\"===a?2*f:.5*f;n.call(\\\"relayout\\\",t,c+\\\".projection.scale\\\",h)}else\\\"reset\\\"===i&&v(t,\\\"geo\\\")}}function g(t){var e,r=t._fullLayout;e=r._has(\\\"cartesian\\\")?r._isHoriz?\\\"y\\\":\\\"x\\\":\\\"closest\\\";var i=!t._fullLayout.hovermode&&e;n.call(\\\"relayout\\\",t,\\\"hovermode\\\",i)}function v(t,e){for(var r=t._fullLayout,i=r._subplots[e],a={},o=0;o<i.length;o++)for(var s=i[o],l=r[s]._subplot.viewInitial,c=Object.keys(l),u=0;u<c.length;u++){var f=c[u];a[s+\\\".\\\"+f]=l[f]}n.call(\\\"relayout\\\",t,a)}c.toImage={name:\\\"toImage\\\",title:function(t){var e=(t._context.toImageButtonOptions||{}).format||\\\"png\\\";return l(t,\\\"png\\\"===e?\\\"Download plot as a png\\\":\\\"Download plot\\\")},icon:s.camera,click:function(t){var e=t._context.toImageButtonOptions,r={format:e.format||\\\"png\\\"};o.notifier(l(t,\\\"Taking snapshot - this may take a few seconds\\\"),\\\"long\\\"),\\\"svg\\\"!==r.format&&o.isIE()&&(o.notifier(l(t,\\\"IE only supports svg.  Changing format to svg.\\\"),\\\"long\\\"),r.format=\\\"svg\\\"),[\\\"filename\\\",\\\"width\\\",\\\"height\\\",\\\"scale\\\"].forEach(function(t){e[t]&&(r[t]=e[t])}),n.call(\\\"downloadImage\\\",t,r).then(function(e){o.notifier(l(t,\\\"Snapshot succeeded\\\")+\\\" - \\\"+e,\\\"long\\\")}).catch(function(){o.notifier(l(t,\\\"Sorry, there was a problem downloading your snapshot!\\\"),\\\"long\\\")})}},c.sendDataToCloud={name:\\\"sendDataToCloud\\\",title:function(t){return l(t,\\\"Edit in Chart Studio\\\")},icon:s.disk,click:function(t){i.sendDataToCloud(t)}},c.zoom2d={name:\\\"zoom2d\\\",title:function(t){return l(t,\\\"Zoom\\\")},attr:\\\"dragmode\\\",val:\\\"zoom\\\",icon:s.zoombox,click:u},c.pan2d={name:\\\"pan2d\\\",title:function(t){return l(t,\\\"Pan\\\")},attr:\\\"dragmode\\\",val:\\\"pan\\\",icon:s.pan,click:u},c.select2d={name:\\\"select2d\\\",title:function(t){return l(t,\\\"Box Select\\\")},attr:\\\"dragmode\\\",val:\\\"select\\\",icon:s.selectbox,click:u},c.lasso2d={name:\\\"lasso2d\\\",title:function(t){return l(t,\\\"Lasso Select\\\")},attr:\\\"dragmode\\\",val:\\\"lasso\\\",icon:s.lasso,click:u},c.zoomIn2d={name:\\\"zoomIn2d\\\",title:function(t){return l(t,\\\"Zoom in\\\")},attr:\\\"zoom\\\",val:\\\"in\\\",icon:s.zoom_plus,click:u},c.zoomOut2d={name:\\\"zoomOut2d\\\",title:function(t){return l(t,\\\"Zoom out\\\")},attr:\\\"zoom\\\",val:\\\"out\\\",icon:s.zoom_minus,click:u},c.autoScale2d={name:\\\"autoScale2d\\\",title:function(t){return l(t,\\\"Autoscale\\\")},attr:\\\"zoom\\\",val:\\\"auto\\\",icon:s.autoscale,click:u},c.resetScale2d={name:\\\"resetScale2d\\\",title:function(t){return l(t,\\\"Reset axes\\\")},attr:\\\"zoom\\\",val:\\\"reset\\\",icon:s.home,click:u},c.hoverClosestCartesian={name:\\\"hoverClosestCartesian\\\",title:function(t){return l(t,\\\"Show closest data on hover\\\")},attr:\\\"hovermode\\\",val:\\\"closest\\\",icon:s.tooltip_basic,gravity:\\\"ne\\\",click:u},c.hoverCompareCartesian={name:\\\"hoverCompareCartesian\\\",title:function(t){return l(t,\\\"Compare data on hover\\\")},attr:\\\"hovermode\\\",val:function(t){return t._fullLayout._isHoriz?\\\"y\\\":\\\"x\\\"},icon:s.tooltip_compare,gravity:\\\"ne\\\",click:u},c.zoom3d={name:\\\"zoom3d\\\",title:function(t){return l(t,\\\"Zoom\\\")},attr:\\\"scene.dragmode\\\",val:\\\"zoom\\\",icon:s.zoombox,click:f},c.pan3d={name:\\\"pan3d\\\",title:function(t){return l(t,\\\"Pan\\\")},attr:\\\"scene.dragmode\\\",val:\\\"pan\\\",icon:s.pan,click:f},c.orbitRotation={name:\\\"orbitRotation\\\",title:function(t){return l(t,\\\"Orbital rotation\\\")},attr:\\\"scene.dragmode\\\",val:\\\"orbit\\\",icon:s[\\\"3d_rotate\\\"],click:f},c.tableRotation={name:\\\"tableRotation\\\",title:function(t){return l(t,\\\"Turntable rotation\\\")},attr:\\\"scene.dragmode\\\",val:\\\"turntable\\\",icon:s[\\\"z-axis\\\"],click:f},c.resetCameraDefault3d={name:\\\"resetCameraDefault3d\\\",title:function(t){return l(t,\\\"Reset camera to default\\\")},attr:\\\"resetDefault\\\",icon:s.home,click:h},c.resetCameraLastSave3d={name:\\\"resetCameraLastSave3d\\\",title:function(t){return l(t,\\\"Reset camera to last save\\\")},attr:\\\"resetLastSave\\\",icon:s.movie,click:h},c.hoverClosest3d={name:\\\"hoverClosest3d\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:null,toggle:!0,icon:s.tooltip_basic,gravity:\\\"ne\\\",click:p},c.zoomInGeo={name:\\\"zoomInGeo\\\",title:function(t){return l(t,\\\"Zoom in\\\")},attr:\\\"zoom\\\",val:\\\"in\\\",icon:s.zoom_plus,click:d},c.zoomOutGeo={name:\\\"zoomOutGeo\\\",title:function(t){return l(t,\\\"Zoom out\\\")},attr:\\\"zoom\\\",val:\\\"out\\\",icon:s.zoom_minus,click:d},c.resetGeo={name:\\\"resetGeo\\\",title:function(t){return l(t,\\\"Reset\\\")},attr:\\\"reset\\\",val:null,icon:s.autoscale,click:d},c.hoverClosestGeo={name:\\\"hoverClosestGeo\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:null,toggle:!0,icon:s.tooltip_basic,gravity:\\\"ne\\\",click:g},c.hoverClosestGl2d={name:\\\"hoverClosestGl2d\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:null,toggle:!0,icon:s.tooltip_basic,gravity:\\\"ne\\\",click:g},c.hoverClosestPie={name:\\\"hoverClosestPie\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:\\\"closest\\\",icon:s.tooltip_basic,gravity:\\\"ne\\\",click:g},c.toggleHover={name:\\\"toggleHover\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:null,toggle:!0,icon:s.tooltip_basic,gravity:\\\"ne\\\",click:function(t,e){g(t),p(t,e)}},c.resetViews={name:\\\"resetViews\\\",title:function(t){return l(t,\\\"Reset views\\\")},icon:s.home,click:function(t,e){var r=e.currentTarget;r.setAttribute(\\\"data-attr\\\",\\\"zoom\\\"),r.setAttribute(\\\"data-val\\\",\\\"reset\\\"),u(t,e),r.setAttribute(\\\"data-attr\\\",\\\"resetLastSave\\\"),h(t,e),v(t,\\\"geo\\\"),v(t,\\\"mapbox\\\")}},c.toggleSpikelines={name:\\\"toggleSpikelines\\\",title:function(t){return l(t,\\\"Toggle Spike Lines\\\")},icon:s.spikeline,attr:\\\"_cartesianSpikesEnabled\\\",val:\\\"on\\\",click:function(t){var e=t._fullLayout;e._cartesianSpikesEnabled=\\\"on\\\"===e._cartesianSpikesEnabled?\\\"off\\\":\\\"on\\\";var r=function(t){for(var e,r,n=t._fullLayout,i=a.list(t,null,!0),o={},s=0;s<i.length;s++)e=i[s],r=e._name,o[r+\\\".showspikes\\\"]=\\\"on\\\"===n._cartesianSpikesEnabled||e._showSpikeInitial;return o}(t);n.call(\\\"relayout\\\",t,r)}},c.resetViewMapbox={name:\\\"resetViewMapbox\\\",title:function(t){return l(t,\\\"Reset view\\\")},attr:\\\"reset\\\",icon:s.home,click:function(t){v(t,\\\"mapbox\\\")}}},{\\\"../../../build/ploticon\\\":2,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827}],633:[function(t,e,r){\\\"use strict\\\";r.manage=t(\\\"./manage\\\")},{\\\"./manage\\\":634}],634:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axis_ids\\\"),i=t(\\\"../../traces/scatter/subtypes\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"./modebar\\\"),s=t(\\\"./buttons\\\");e.exports=function(t){var e=t._fullLayout,r=t._context,l=e._modeBar;if(r.displayModeBar){if(!Array.isArray(r.modeBarButtonsToRemove))throw new Error([\\\"*modeBarButtonsToRemove* configuration options\\\",\\\"must be an array.\\\"].join(\\\" \\\"));if(!Array.isArray(r.modeBarButtonsToAdd))throw new Error([\\\"*modeBarButtonsToAdd* configuration options\\\",\\\"must be an array.\\\"].join(\\\" \\\"));var c,u=r.modeBarButtons;c=Array.isArray(u)&&u.length?function(t){for(var e=0;e<t.length;e++)for(var r=t[e],n=0;n<r.length;n++){var i=r[n];if(\\\"string\\\"==typeof i){if(void 0===s[i])throw new Error([\\\"*modeBarButtons* configuration options\\\",\\\"invalid button name\\\"].join(\\\" \\\"));t[e][n]=s[i]}}return t}(u):function(t,e,r){var o=t._fullLayout,l=t._fullData,c=o._has(\\\"cartesian\\\"),u=o._has(\\\"gl3d\\\"),f=o._has(\\\"geo\\\"),h=o._has(\\\"pie\\\"),p=o._has(\\\"gl2d\\\"),d=o._has(\\\"ternary\\\"),g=o._has(\\\"mapbox\\\"),v=o._has(\\\"polar\\\"),m=function(t){for(var e=n.list({_fullLayout:t},null,!0),r=0;r<e.length;r++)if(!e[r].fixedrange)return!1;return!0}(o),y=[];function x(t){if(t.length){for(var r=[],n=0;n<t.length;n++){var i=t[n];-1===e.indexOf(i)&&r.push(s[i])}y.push(r)}}x([\\\"toImage\\\",\\\"sendDataToCloud\\\"]);var b=[],_=[],w=[],k=[];(c||p||h||d)+f+u+g+v>1?(_=[\\\"toggleHover\\\"],w=[\\\"resetViews\\\"]):f?(b=[\\\"zoomInGeo\\\",\\\"zoomOutGeo\\\"],_=[\\\"hoverClosestGeo\\\"],w=[\\\"resetGeo\\\"]):u?(_=[\\\"hoverClosest3d\\\"],w=[\\\"resetCameraDefault3d\\\",\\\"resetCameraLastSave3d\\\"]):g?(_=[\\\"toggleHover\\\"],w=[\\\"resetViewMapbox\\\"]):_=p?[\\\"hoverClosestGl2d\\\"]:h?[\\\"hoverClosestPie\\\"]:[\\\"toggleHover\\\"];c&&(_=[\\\"toggleSpikelines\\\",\\\"hoverClosestCartesian\\\",\\\"hoverCompareCartesian\\\"]);!c&&!p||m||(b=[\\\"zoomIn2d\\\",\\\"zoomOut2d\\\",\\\"autoScale2d\\\"],\\\"resetViews\\\"!==w[0]&&(w=[\\\"resetScale2d\\\"]));u?k=[\\\"zoom3d\\\",\\\"pan3d\\\",\\\"orbitRotation\\\",\\\"tableRotation\\\"]:(c||p)&&!m||d?k=[\\\"zoom2d\\\",\\\"pan2d\\\"]:g||f?k=[\\\"pan2d\\\"]:v&&(k=[\\\"zoom2d\\\"]);(function(t){for(var e=!1,r=0;r<t.length&&!e;r++){var n=t[r];n._module&&n._module.selectPoints&&(a.traceIs(n,\\\"scatter-like\\\")?(i.hasMarkers(n)||i.hasText(n))&&(e=!0):a.traceIs(n,\\\"box-violin\\\")&&\\\"all\\\"!==n.boxpoints&&\\\"all\\\"!==n.points||(e=!0))}return e})(l)&&k.push(\\\"select2d\\\",\\\"lasso2d\\\");return x(k),x(b.concat(w)),x(_),function(t,e){if(e.length)if(Array.isArray(e[0]))for(var r=0;r<e.length;r++)t.push(e[r]);else t.push(e);return t}(y,r)}(t,r.modeBarButtonsToRemove,r.modeBarButtonsToAdd),l?l.update(t,c):e._modeBar=o(t,c)}else l&&(l.destroy(),delete e._modeBar)}},{\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../registry\\\":827,\\\"../../traces/scatter/subtypes\\\":1067,\\\"./buttons\\\":632,\\\"./modebar\\\":635}],635:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../../build/ploticon\\\"),s=new DOMParser;function l(t){this.container=t.container,this.element=document.createElement(\\\"div\\\"),this.update(t.graphInfo,t.buttons),this.container.appendChild(this.element)}var c=l.prototype;c.update=function(t,e){this.graphInfo=t;var r=this.graphInfo._context,n=this.graphInfo._fullLayout,i=\\\"modebar-\\\"+n._uid;this.element.setAttribute(\\\"id\\\",i),this._uid=i,\\\"hover\\\"===r.displayModeBar?this.element.className=\\\"modebar modebar--hover\\\":this.element.className=\\\"modebar\\\",\\\"v\\\"===n.modebar.orientation&&(this.element.className+=\\\" vertical\\\",e=e.reverse()),a.deleteRelatedStyleRule(i),a.addRelatedStyleRule(i,\\\"#\\\"+i,\\\"background-color: \\\"+n.modebar.bgcolor),a.addRelatedStyleRule(i,\\\"#\\\"+i+\\\" .modebar-btn .icon path\\\",\\\"fill: \\\"+n.modebar.color),a.addRelatedStyleRule(i,\\\"#\\\"+i+\\\" .modebar-btn:hover .icon path\\\",\\\"fill: \\\"+n.modebar.activecolor),a.addRelatedStyleRule(i,\\\"#\\\"+i+\\\" .modebar-btn.active .icon path\\\",\\\"fill: \\\"+n.modebar.activecolor);var o=!this.hasButtons(e),s=this.hasLogo!==r.displaylogo,l=this.locale!==r.locale;this.locale=r.locale,(o||s||l)&&(this.removeAllButtons(),this.updateButtons(e),r.displaylogo&&(\\\"v\\\"===n.modebar.orientation?this.element.prepend(this.getLogo()):this.element.appendChild(this.getLogo()),this.hasLogo=!0)),this.updateActiveButton()},c.updateButtons=function(t){var e=this;this.buttons=t,this.buttonElements=[],this.buttonsNames=[],this.buttons.forEach(function(t){var r=e.createGroup();t.forEach(function(t){var n=t.name;if(!n)throw new Error(\\\"must provide button 'name' in button config\\\");if(-1!==e.buttonsNames.indexOf(n))throw new Error(\\\"button name '\\\"+n+\\\"' is taken\\\");e.buttonsNames.push(n);var i=e.createButton(t);e.buttonElements.push(i),r.appendChild(i)}),e.element.appendChild(r)})},c.createGroup=function(){var t=document.createElement(\\\"div\\\");return t.className=\\\"modebar-group\\\",t},c.createButton=function(t){var e=this,r=document.createElement(\\\"a\\\");r.setAttribute(\\\"rel\\\",\\\"tooltip\\\"),r.className=\\\"modebar-btn\\\";var i=t.title;void 0===i?i=t.name:\\\"function\\\"==typeof i&&(i=i(this.graphInfo)),(i||0===i)&&r.setAttribute(\\\"data-title\\\",i),void 0!==t.attr&&r.setAttribute(\\\"data-attr\\\",t.attr);var a=t.val;if(void 0!==a&&(\\\"function\\\"==typeof a&&(a=a(this.graphInfo)),r.setAttribute(\\\"data-val\\\",a)),\\\"function\\\"!=typeof t.click)throw new Error(\\\"must provide button 'click' function in button config\\\");r.addEventListener(\\\"click\\\",function(r){t.click(e.graphInfo,r),e.updateActiveButton(r.currentTarget)}),r.setAttribute(\\\"data-toggle\\\",t.toggle||!1),t.toggle&&n.select(r).classed(\\\"active\\\",!0);var s=t.icon;return\\\"function\\\"==typeof s?r.appendChild(s()):r.appendChild(this.createIcon(s||o.question)),r.setAttribute(\\\"data-gravity\\\",t.gravity||\\\"n\\\"),r},c.createIcon=function(t){var e,r=i(t.height)?Number(t.height):t.ascent-t.descent,n=\\\"http://www.w3.org/2000/svg\\\";if(t.path){(e=document.createElementNS(n,\\\"svg\\\")).setAttribute(\\\"viewBox\\\",[0,0,t.width,r].join(\\\" \\\")),e.setAttribute(\\\"class\\\",\\\"icon\\\");var a=document.createElementNS(n,\\\"path\\\");a.setAttribute(\\\"d\\\",t.path),t.transform?a.setAttribute(\\\"transform\\\",t.transform):void 0!==t.ascent&&a.setAttribute(\\\"transform\\\",\\\"matrix(1 0 0 -1 0 \\\"+t.ascent+\\\")\\\"),e.appendChild(a)}t.svg&&(e=s.parseFromString(t.svg,\\\"application/xml\\\").childNodes[0]);return e.setAttribute(\\\"height\\\",\\\"1em\\\"),e.setAttribute(\\\"width\\\",\\\"1em\\\"),e},c.updateActiveButton=function(t){var e=this.graphInfo._fullLayout,r=void 0!==t?t.getAttribute(\\\"data-attr\\\"):null;this.buttonElements.forEach(function(t){var i=t.getAttribute(\\\"data-val\\\")||!0,o=t.getAttribute(\\\"data-attr\\\"),s=\\\"true\\\"===t.getAttribute(\\\"data-toggle\\\"),l=n.select(t);if(s)o===r&&l.classed(\\\"active\\\",!l.classed(\\\"active\\\"));else{var c=null===o?o:a.nestedProperty(e,o).get();l.classed(\\\"active\\\",c===i)}})},c.hasButtons=function(t){var e=this.buttons;if(!e)return!1;if(t.length!==e.length)return!1;for(var r=0;r<t.length;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n<t[r].length;n++)if(t[r][n].name!==e[r][n].name)return!1}return!0},c.getLogo=function(){var t=this.createGroup(),e=document.createElement(\\\"a\\\");return e.href=\\\"https://plot.ly/\\\",e.target=\\\"_blank\\\",e.setAttribute(\\\"data-title\\\",a._(this.graphInfo,\\\"Produced with Plotly\\\")),e.className=\\\"modebar-btn plotlyjsicon modebar-btn--logo\\\",e.appendChild(this.createIcon(o.newplotlylogo)),t.appendChild(e),t},c.removeAllButtons=function(){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.hasLogo=!1},c.destroy=function(){a.removeElement(this.container.querySelector(\\\".modebar\\\")),a.deleteRelatedStyleRule(this._uid)},e.exports=function(t,e){var r=t._fullLayout,i=new l({graphInfo:t,container:r._paperdiv.node(),buttons:e});return r._privateplot&&n.select(i.element).append(\\\"span\\\").classed(\\\"badge-private float--left\\\",!0).text(\\\"PRIVATE\\\"),i}},{\\\"../../../build/ploticon\\\":2,\\\"../../lib\\\":696,d3:148,\\\"fast-isnumeric\\\":214}],636:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../color/attributes\\\"),a=(0,t(\\\"../../plot_api/plot_template\\\").templatedArray)(\\\"button\\\",{visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},step:{valType:\\\"enumerated\\\",values:[\\\"month\\\",\\\"year\\\",\\\"day\\\",\\\"hour\\\",\\\"minute\\\",\\\"second\\\",\\\"all\\\"],dflt:\\\"month\\\",editType:\\\"plot\\\"},stepmode:{valType:\\\"enumerated\\\",values:[\\\"backward\\\",\\\"todate\\\"],dflt:\\\"backward\\\",editType:\\\"plot\\\"},count:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"plot\\\"},label:{valType:\\\"string\\\",editType:\\\"plot\\\"},editType:\\\"plot\\\"});e.exports={visible:{valType:\\\"boolean\\\",editType:\\\"plot\\\"},buttons:a,x:{valType:\\\"number\\\",min:-2,max:3,editType:\\\"plot\\\"},xanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\",editType:\\\"plot\\\"},y:{valType:\\\"number\\\",min:-2,max:3,editType:\\\"plot\\\"},yanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"bottom\\\",editType:\\\"plot\\\"},font:n({editType:\\\"plot\\\"}),bgcolor:{valType:\\\"color\\\",dflt:i.lightLine,editType:\\\"plot\\\"},activecolor:{valType:\\\"color\\\",editType:\\\"plot\\\"},bordercolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"plot\\\"},borderwidth:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"plot\\\"},editType:\\\"plot\\\"}},{\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/font_attributes\\\":771,\\\"../color/attributes\\\":569}],637:[function(t,e,r){\\\"use strict\\\";e.exports={yPad:.02,minButtonWidth:30,rx:3,ry:3,lightAmount:25,darkAmount:10}},{}],638:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../color\\\"),a=t(\\\"../../plot_api/plot_template\\\"),o=t(\\\"../../plots/array_container_defaults\\\"),s=t(\\\"./attributes\\\"),l=t(\\\"./constants\\\");function c(t,e,r,i){var a=i.calendar;function o(r,i){return n.coerce(t,e,s.buttons,r,i)}if(o(\\\"visible\\\")){var l=o(\\\"step\\\");\\\"all\\\"!==l&&(!a||\\\"gregorian\\\"===a||\\\"month\\\"!==l&&\\\"year\\\"!==l?o(\\\"stepmode\\\"):e.stepmode=\\\"backward\\\",o(\\\"count\\\")),o(\\\"label\\\")}}e.exports=function(t,e,r,u,f){var h=t.rangeselector||{},p=a.newContainer(e,\\\"rangeselector\\\");function d(t,e){return n.coerce(h,p,s,t,e)}if(d(\\\"visible\\\",o(h,p,{name:\\\"buttons\\\",handleItemDefaults:c,calendar:f}).length>0)){var g=function(t,e,r){for(var n=r.filter(function(r){return e[r].anchor===t._id}),i=0,a=0;a<n.length;a++){var o=e[n[a]].domain;o&&(i=Math.max(o[1],i))}return[t.domain[0],i+l.yPad]}(e,r,u);d(\\\"x\\\",g[0]),d(\\\"y\\\",g[1]),n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\"]),d(\\\"xanchor\\\"),d(\\\"yanchor\\\"),n.coerceFont(d,\\\"font\\\",r.font);var v=d(\\\"bgcolor\\\");d(\\\"activecolor\\\",i.contrast(v,l.lightAmount,l.darkAmount)),d(\\\"bordercolor\\\"),d(\\\"borderwidth\\\")}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/array_container_defaults\\\":740,\\\"../color\\\":570,\\\"./attributes\\\":636,\\\"./constants\\\":637}],639:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../color\\\"),s=t(\\\"../drawing\\\"),l=t(\\\"../../lib\\\"),c=t(\\\"../../lib/svg_text_utils\\\"),u=t(\\\"../../plots/cartesian/axis_ids\\\"),f=t(\\\"../legend/anchor_utils\\\"),h=t(\\\"../../constants/alignment\\\"),p=h.LINE_SPACING,d=h.FROM_TL,g=h.FROM_BR,v=t(\\\"./constants\\\"),m=t(\\\"./get_update_object\\\");function y(t){return t._id}function x(t,e,r){var n=l.ensureSingle(t,\\\"rect\\\",\\\"selector-rect\\\",function(t){t.attr(\\\"shape-rendering\\\",\\\"crispEdges\\\")});n.attr({rx:v.rx,ry:v.ry}),n.call(o.stroke,e.bordercolor).call(o.fill,function(t,e){return e._isActive||e._isHovered?t.activecolor:t.bgcolor}(e,r)).style(\\\"stroke-width\\\",e.borderwidth+\\\"px\\\")}function b(t,e,r,n){var i;l.ensureSingle(t,\\\"text\\\",\\\"selector-text\\\",function(t){t.classed(\\\"user-select-none\\\",!0).attr(\\\"text-anchor\\\",\\\"middle\\\")}).call(s.font,e.font).text((i=r,i.label?i.label:\\\"all\\\"===i.step?\\\"all\\\":i.count+i.step.charAt(0))).call(function(t){c.convertToTspans(t,n)})}e.exports=function(t){var e=t._fullLayout._infolayer.selectAll(\\\".rangeselector\\\").data(function(t){for(var e=u.list(t,\\\"x\\\",!0),r=[],n=0;n<e.length;n++){var i=e[n];i.rangeselector&&i.rangeselector.visible&&r.push(i)}return r}(t),y);e.enter().append(\\\"g\\\").classed(\\\"rangeselector\\\",!0),e.exit().remove(),e.style({cursor:\\\"pointer\\\",\\\"pointer-events\\\":\\\"all\\\"}),e.each(function(e){var r=n.select(this),o=e,u=o.rangeselector,h=r.selectAll(\\\"g.button\\\").data(l.filterVisible(u.buttons));h.enter().append(\\\"g\\\").classed(\\\"button\\\",!0),h.exit().remove(),h.each(function(e){var r=n.select(this),a=m(o,e);e._isActive=function(t,e,r){if(\\\"all\\\"===e.step)return!0===t.autorange;var n=Object.keys(r);return t.range[0]===r[n[0]]&&t.range[1]===r[n[1]]}(o,e,a),r.call(x,u,e),r.call(b,u,e,t),r.on(\\\"click\\\",function(){t._dragged||i.call(\\\"relayout\\\",t,a)}),r.on(\\\"mouseover\\\",function(){e._isHovered=!0,r.call(x,u,e)}),r.on(\\\"mouseout\\\",function(){e._isHovered=!1,r.call(x,u,e)})}),function(t,e,r,i,o){var l=0,u=0,h=r.borderwidth;e.each(function(){var t=n.select(this),e=t.select(\\\".selector-text\\\"),i=r.font.size*p,a=Math.max(i*c.lineCount(e),16)+3;u=Math.max(u,a)}),e.each(function(){var t=n.select(this),e=t.select(\\\".selector-rect\\\"),i=t.select(\\\".selector-text\\\"),a=i.node()&&s.bBox(i.node()).width,o=r.font.size*p,f=c.lineCount(i),d=Math.max(a+10,v.minButtonWidth);t.attr(\\\"transform\\\",\\\"translate(\\\"+(h+l)+\\\",\\\"+h+\\\")\\\"),e.attr({x:0,y:0,width:d,height:u}),c.positionText(i,d/2,u/2-(f-1)*o/2+3),l+=d+5});var m=t._fullLayout._size,y=m.l+m.w*r.x,x=m.t+m.h*(1-r.y),b=\\\"left\\\";f.isRightAnchor(r)&&(y-=l,b=\\\"right\\\");f.isCenterAnchor(r)&&(y-=l/2,b=\\\"center\\\");var _=\\\"top\\\";f.isBottomAnchor(r)&&(x-=u,_=\\\"bottom\\\");f.isMiddleAnchor(r)&&(x-=u/2,_=\\\"middle\\\");l=Math.ceil(l),u=Math.ceil(u),y=Math.round(y),x=Math.round(x),a.autoMargin(t,i+\\\"-range-selector\\\",{x:r.x,y:r.y,l:l*d[b],r:l*g[b],b:u*g[_],t:u*d[_]}),o.attr(\\\"transform\\\",\\\"translate(\\\"+y+\\\",\\\"+x+\\\")\\\")}(t,h,u,o._name,r)})}},{\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../drawing\\\":595,\\\"../legend/anchor_utils\\\":622,\\\"./constants\\\":637,\\\"./get_update_object\\\":640,d3:148}],640:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\");e.exports=function(t,e){var r=t._name,i={};if(\\\"all\\\"===e.step)i[r+\\\".autorange\\\"]=!0;else{var a=function(t,e){var r,i=t.range,a=new Date(t.r2l(i[1])),o=e.step,s=e.count;switch(e.stepmode){case\\\"backward\\\":r=t.l2r(+n.time[o].utc.offset(a,-s));break;case\\\"todate\\\":var l=n.time[o].utc.offset(a,-s);r=t.l2r(+n.time[o].utc.ceil(l))}var c=i[1];return[r,c]}(t,e);i[r+\\\".range[0]\\\"]=a[0],i[r+\\\".range[1]\\\"]=a[1]}return i}},{d3:148}],641:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"component\\\",name:\\\"rangeselector\\\",schema:{subplots:{xaxis:{rangeselector:t(\\\"./attributes\\\")}}},layoutAttributes:t(\\\"./attributes\\\"),handleDefaults:t(\\\"./defaults\\\"),draw:t(\\\"./draw\\\")}},{\\\"./attributes\\\":636,\\\"./defaults\\\":638,\\\"./draw\\\":639}],642:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../color/attributes\\\");e.exports={bgcolor:{valType:\\\"color\\\",dflt:n.background,editType:\\\"plot\\\"},bordercolor:{valType:\\\"color\\\",dflt:n.defaultLine,editType:\\\"plot\\\"},borderwidth:{valType:\\\"integer\\\",dflt:0,min:0,editType:\\\"plot\\\"},autorange:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\",impliedEdits:{\\\"range[0]\\\":void 0,\\\"range[1]\\\":void 0}},range:{valType:\\\"info_array\\\",items:[{valType:\\\"any\\\",editType:\\\"calc\\\",impliedEdits:{\\\"^autorange\\\":!1}},{valType:\\\"any\\\",editType:\\\"calc\\\",impliedEdits:{\\\"^autorange\\\":!1}}],editType:\\\"calc\\\",impliedEdits:{autorange:!1}},thickness:{valType:\\\"number\\\",dflt:.15,min:0,max:1,editType:\\\"plot\\\"},visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},editType:\\\"calc\\\"}},{\\\"../color/attributes\\\":569}],643:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axis_ids\\\").list,i=t(\\\"../../plots/cartesian/autorange\\\").getAutoRange,a=t(\\\"./constants\\\");e.exports=function(t){for(var e=n(t,\\\"x\\\",!0),r=0;r<e.length;r++){var o=e[r],s=o[a.name];s&&s.visible&&s.autorange&&(s._input.autorange=!0,s._input.range=s.range=i(t,o))}}},{\\\"../../plots/cartesian/autorange\\\":743,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"./constants\\\":644}],644:[function(t,e,r){\\\"use strict\\\";e.exports={name:\\\"rangeslider\\\",containerClassName:\\\"rangeslider-container\\\",bgClassName:\\\"rangeslider-bg\\\",rangePlotClassName:\\\"rangeslider-rangeplot\\\",maskMinClassName:\\\"rangeslider-mask-min\\\",maskMaxClassName:\\\"rangeslider-mask-max\\\",slideBoxClassName:\\\"rangeslider-slidebox\\\",grabberMinClassName:\\\"rangeslider-grabber-min\\\",grabAreaMinClassName:\\\"rangeslider-grabarea-min\\\",handleMinClassName:\\\"rangeslider-handle-min\\\",grabberMaxClassName:\\\"rangeslider-grabber-max\\\",grabAreaMaxClassName:\\\"rangeslider-grabarea-max\\\",handleMaxClassName:\\\"rangeslider-handle-max\\\",maskMinOppAxisClassName:\\\"rangeslider-mask-min-opp-axis\\\",maskMaxOppAxisClassName:\\\"rangeslider-mask-max-opp-axis\\\",maskColor:\\\"rgba(0,0,0,0.4)\\\",maskOppAxisColor:\\\"rgba(0,0,0,0.2)\\\",slideBoxFill:\\\"transparent\\\",slideBoxCursor:\\\"ew-resize\\\",grabAreaFill:\\\"transparent\\\",grabAreaCursor:\\\"col-resize\\\",grabAreaWidth:10,handleWidth:4,handleRadius:1,handleStrokeWidth:1,extraPad:15}},{}],645:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plot_api/plot_template\\\"),a=t(\\\"../../plots/cartesian/axis_ids\\\"),o=t(\\\"./attributes\\\"),s=t(\\\"./oppaxis_attributes\\\");e.exports=function(t,e,r){var l=t[r],c=e[r];if(l.rangeslider||e._requestRangeslider[c._id]){n.isPlainObject(l.rangeslider)||(l.rangeslider={});var u,f,h=l.rangeslider,p=i.newContainer(c,\\\"rangeslider\\\");if(_(\\\"visible\\\")){_(\\\"bgcolor\\\",e.plot_bgcolor),_(\\\"bordercolor\\\"),_(\\\"borderwidth\\\"),_(\\\"thickness\\\"),_(\\\"autorange\\\",!c.isValidRange(h.range)),_(\\\"range\\\");var d=e._subplots;if(d)for(var g=d.cartesian.filter(function(t){return t.substr(0,t.indexOf(\\\"y\\\"))===a.name2id(r)}).map(function(t){return t.substr(t.indexOf(\\\"y\\\"),t.length)}),v=n.simpleMap(g,a.id2name),m=0;m<v.length;m++){var y=v[m];u=h[y]||{},f=i.newContainer(p,y,\\\"yaxis\\\");var x,b=e[y];u.range&&b.isValidRange(u.range)&&(x=\\\"fixed\\\"),\\\"match\\\"!==w(\\\"rangemode\\\",x)&&w(\\\"range\\\",b.range.slice())}p._input=h}}function _(t,e){return n.coerce(h,p,o,t,e)}function w(t,e){return n.coerce(u,f,s,t,e)}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"./attributes\\\":642,\\\"./oppaxis_attributes\\\":648}],646:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../drawing\\\"),l=t(\\\"../color\\\"),c=t(\\\"../titles\\\"),u=t(\\\"../../plots/cartesian\\\"),f=t(\\\"../../plots/cartesian/axes\\\"),h=t(\\\"../dragelement\\\"),p=t(\\\"../../lib/setcursor\\\"),d=t(\\\"./constants\\\");function g(t,e,r,n){var i=o.ensureSingle(t,\\\"rect\\\",d.bgClassName,function(t){t.attr({x:0,y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}),a=n.borderwidth%2==0?n.borderwidth:n.borderwidth-1,l=-n._offsetShift,c=s.crispRound(e,n.borderwidth);i.attr({width:n._width+a,height:n._height+a,transform:\\\"translate(\\\"+l+\\\",\\\"+l+\\\")\\\",fill:n.bgcolor,stroke:n.bordercolor,\\\"stroke-width\\\":c})}function v(t,e,r,n){var i=e._fullLayout;o.ensureSingleById(i._topdefs,\\\"clipPath\\\",n._clipId,function(t){t.append(\\\"rect\\\").attr({x:0,y:0})}).select(\\\"rect\\\").attr({width:n._width,height:n._height})}function m(t,e,r,i){var l,c=f.getSubplots(e,r),h=e.calcdata,p=t.selectAll(\\\"g.\\\"+d.rangePlotClassName).data(c,o.identity);p.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return d.rangePlotClassName+\\\" \\\"+t}).call(s.setClipUrl,i._clipId),p.order(),p.exit().remove(),p.each(function(t,o){var s=n.select(this),c=0===o,p=f.getFromId(e,t,\\\"y\\\"),d=p._name,g=i[d],v={data:[],layout:{xaxis:{type:r.type,domain:[0,1],range:i.range.slice(),calendar:r.calendar},width:i._width,height:i._height,margin:{t:0,b:0,l:0,r:0}},_context:e._context};v.layout[d]={type:p.type,domain:[0,1],range:\\\"match\\\"!==g.rangemode?g.range.slice():p.range.slice(),calendar:p.calendar},a.supplyDefaults(v);var m={id:t,plotgroup:s,xaxis:v._fullLayout.xaxis,yaxis:v._fullLayout[d],isRangePlot:!0};c?l=m:(m.mainplot=\\\"xy\\\",m.mainplotinfo=l),u.rangePlot(e,m,function(t,e){for(var r=[],n=0;n<t.length;n++){var i=t[n],a=i[0].trace;a.xaxis+a.yaxis===e&&r.push(i)}return r}(h,t))})}function y(t,e,r,n,i){(o.ensureSingle(t,\\\"rect\\\",d.maskMinClassName,function(t){t.attr({x:0,y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr(\\\"height\\\",n._height).call(l.fill,d.maskColor),o.ensureSingle(t,\\\"rect\\\",d.maskMaxClassName,function(t){t.attr({y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr(\\\"height\\\",n._height).call(l.fill,d.maskColor),\\\"match\\\"!==i.rangemode)&&(o.ensureSingle(t,\\\"rect\\\",d.maskMinOppAxisClassName,function(t){t.attr({y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr(\\\"width\\\",n._width).call(l.fill,d.maskOppAxisColor),o.ensureSingle(t,\\\"rect\\\",d.maskMaxOppAxisClassName,function(t){t.attr({y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr(\\\"width\\\",n._width).style(\\\"border-top\\\",d.maskOppBorder).call(l.fill,d.maskOppAxisColor))}function x(t,e,r,n){e._context.staticPlot||o.ensureSingle(t,\\\"rect\\\",d.slideBoxClassName,function(t){t.attr({y:0,cursor:d.slideBoxCursor,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr({height:n._height,fill:d.slideBoxFill})}function b(t,e,r,n){var i=o.ensureSingle(t,\\\"g\\\",d.grabberMinClassName),a=o.ensureSingle(t,\\\"g\\\",d.grabberMaxClassName),s={x:0,width:d.handleWidth,rx:d.handleRadius,fill:l.background,stroke:l.defaultLine,\\\"stroke-width\\\":d.handleStrokeWidth,\\\"shape-rendering\\\":\\\"crispEdges\\\"},c={y:Math.round(n._height/4),height:Math.round(n._height/2)};if(o.ensureSingle(i,\\\"rect\\\",d.handleMinClassName,function(t){t.attr(s)}).attr(c),o.ensureSingle(a,\\\"rect\\\",d.handleMaxClassName,function(t){t.attr(s)}).attr(c),!e._context.staticPlot){var u={width:d.grabAreaWidth,x:0,y:0,fill:d.grabAreaFill,cursor:d.grabAreaCursor};o.ensureSingle(i,\\\"rect\\\",d.grabAreaMinClassName,function(t){t.attr(u)}).attr(\\\"height\\\",n._height),o.ensureSingle(a,\\\"rect\\\",d.grabAreaMaxClassName,function(t){t.attr(u)}).attr(\\\"height\\\",n._height)}}e.exports=function(t){var e=t._fullLayout,r=function(t){var e=f.list({_fullLayout:t},\\\"x\\\",!0),r=d.name,n=[];if(t._has(\\\"gl2d\\\"))return n;for(var i=0;i<e.length;i++){var a=e[i];a[r]&&a[r].visible&&n.push(a)}return n}(e);var s=e._infolayer.selectAll(\\\"g.\\\"+d.containerClassName).data(r,function(t){return t._name});s.enter().append(\\\"g\\\").classed(d.containerClassName,!0).attr(\\\"pointer-events\\\",\\\"all\\\"),s.exit().each(function(t){var r=t[d.name];e._topdefs.select(\\\"#\\\"+r._clipId).remove()}).remove(),0!==r.length&&s.each(function(r){var s=n.select(this),l=r[d.name],u=e[f.id2name(r.anchor)],_=l[f.id2name(r.anchor)];if(l.range){var w=l.range,k=r.range;w[0]=r.l2r(Math.min(r.r2l(w[0]),r.r2l(k[0]))),w[1]=r.l2r(Math.max(r.r2l(w[1]),r.r2l(k[1]))),l._input.range=w.slice()}r.cleanRange(\\\"rangeslider.range\\\");for(var M=e.margin,A=e._size,T=r.domain,S=(r._boundingBox||{}).height||0,E=1/0,C=f.getSubplots(t,r),L=0;L<C.length;L++){var z=f.getFromId(t,C[L].substr(C[L].indexOf(\\\"y\\\")));E=Math.min(E,z.domain[0])}l._id=d.name+r._id,l._clipId=l._id+\\\"-\\\"+e._uid,l._width=A.w*(T[1]-T[0]),l._height=(e.height-M.b-M.t)*l.thickness,l._offsetShift=Math.floor(l.borderwidth/2);var O=Math.round(M.l+A.w*T[0]),I=Math.round(A.t+A.h*(1-E)+S+l._offsetShift+d.extraPad);s.attr(\\\"transform\\\",\\\"translate(\\\"+O+\\\",\\\"+I+\\\")\\\");var P=r.r2l(l.range[0]),D=r.r2l(l.range[1]),R=D-P;if(l.p2d=function(t){return t/l._width*R+P},l.d2p=function(t){return(t-P)/R*l._width},l._rl=[P,D],\\\"match\\\"!==_.rangemode){var B=u.r2l(_.range[0]),F=u.r2l(_.range[1])-B;l.d2pOppAxis=function(t){return(t-B)/F*l._height}}s.call(g,t,r,l).call(v,t,r,l).call(m,t,r,l).call(y,t,r,l,_).call(x,t,r,l).call(b,t,r,l),function(t,e,r,a){var s=t.select(\\\"rect.\\\"+d.slideBoxClassName).node(),l=t.select(\\\"rect.\\\"+d.grabAreaMinClassName).node(),c=t.select(\\\"rect.\\\"+d.grabAreaMaxClassName).node();t.on(\\\"mousedown\\\",function(){var u=n.event,f=u.target,d=u.clientX,g=d-t.node().getBoundingClientRect().left,v=a.d2p(r._rl[0]),m=a.d2p(r._rl[1]),y=h.coverSlip();function x(t){var u,h,x,b=+t.clientX-d;switch(f){case s:x=\\\"ew-resize\\\",u=v+b,h=m+b;break;case l:x=\\\"col-resize\\\",u=v+b,h=m;break;case c:x=\\\"col-resize\\\",u=v,h=m+b;break;default:x=\\\"ew-resize\\\",u=g,h=g+b}if(h<u){var _=h;h=u,u=_}a._pixelMin=u,a._pixelMax=h,p(n.select(y),x),function(t,e,r,n){function a(t){return r.l2r(o.constrain(t,n._rl[0],n._rl[1]))}var s=a(n.p2d(n._pixelMin)),l=a(n.p2d(n._pixelMax));window.requestAnimationFrame(function(){i.call(\\\"relayout\\\",e,r._name+\\\".range\\\",[s,l])})}(0,e,r,a)}y.addEventListener(\\\"mousemove\\\",x),y.addEventListener(\\\"mouseup\\\",function t(){y.removeEventListener(\\\"mousemove\\\",x);y.removeEventListener(\\\"mouseup\\\",t);o.removeElement(y)})})}(s,t,r,l),function(t,e,r,n,i,a){var s=d.handleWidth/2;function l(t){return o.constrain(t,0,n._width)}function c(t){return o.constrain(t,0,n._height)}function u(t){return o.constrain(t,-s,n._width+s)}var f=l(n.d2p(r._rl[0])),h=l(n.d2p(r._rl[1]));if(t.select(\\\"rect.\\\"+d.slideBoxClassName).attr(\\\"x\\\",f).attr(\\\"width\\\",h-f),t.select(\\\"rect.\\\"+d.maskMinClassName).attr(\\\"width\\\",f),t.select(\\\"rect.\\\"+d.maskMaxClassName).attr(\\\"x\\\",h).attr(\\\"width\\\",n._width-h),\\\"match\\\"!==a.rangemode){var p=n._height-c(n.d2pOppAxis(i._rl[1])),g=n._height-c(n.d2pOppAxis(i._rl[0]));t.select(\\\"rect.\\\"+d.maskMinOppAxisClassName).attr(\\\"x\\\",f).attr(\\\"height\\\",p).attr(\\\"width\\\",h-f),t.select(\\\"rect.\\\"+d.maskMaxOppAxisClassName).attr(\\\"x\\\",f).attr(\\\"y\\\",g).attr(\\\"height\\\",n._height-g).attr(\\\"width\\\",h-f),t.select(\\\"rect.\\\"+d.slideBoxClassName).attr(\\\"y\\\",p).attr(\\\"height\\\",g-p)}var v=Math.round(u(f-s))-.5,m=Math.round(u(h-s))+.5;t.select(\\\"g.\\\"+d.grabberMinClassName).attr(\\\"transform\\\",\\\"translate(\\\"+v+\\\",0.5)\\\"),t.select(\\\"g.\\\"+d.grabberMaxClassName).attr(\\\"transform\\\",\\\"translate(\\\"+m+\\\",0.5)\\\")}(s,0,r,l,u,_),\\\"bottom\\\"===r.side&&c.draw(t,r._id+\\\"title\\\",{propContainer:r,propName:r._name+\\\".title\\\",placeholder:e._dfltTitle.x,attributes:{x:r._offset+r._length/2,y:I+l._height+l._offsetShift+10+1.5*r.titlefont.size,\\\"text-anchor\\\":\\\"middle\\\"}}),a.autoMargin(t,l._id,{x:T[0],y:E,l:0,r:0,t:0,b:l._height+M.b+S,pad:d.extraPad+2*l._offsetShift})})}},{\\\"../../lib\\\":696,\\\"../../lib/setcursor\\\":716,\\\"../../plots/cartesian\\\":756,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"../titles\\\":661,\\\"./constants\\\":644,d3:148}],647:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"./oppaxis_attributes\\\");e.exports={moduleType:\\\"component\\\",name:\\\"rangeslider\\\",schema:{subplots:{xaxis:{rangeslider:n.extendFlat({},i,{yaxis:a})}}},layoutAttributes:t(\\\"./attributes\\\"),handleDefaults:t(\\\"./defaults\\\"),calcAutorange:t(\\\"./calc_autorange\\\"),draw:t(\\\"./draw\\\")}},{\\\"../../lib\\\":696,\\\"./attributes\\\":642,\\\"./calc_autorange\\\":643,\\\"./defaults\\\":645,\\\"./draw\\\":646,\\\"./oppaxis_attributes\\\":648}],648:[function(t,e,r){\\\"use strict\\\";e.exports={_isSubplotObj:!0,rangemode:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"fixed\\\",\\\"match\\\"],dflt:\\\"match\\\",editType:\\\"calc\\\"},range:{valType:\\\"info_array\\\",items:[{valType:\\\"any\\\",editType:\\\"plot\\\"},{valType:\\\"any\\\",editType:\\\"plot\\\"}],editType:\\\"plot\\\"},editType:\\\"calc\\\"}},{}],649:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../annotations/attributes\\\"),i=t(\\\"../../traces/scatter/attributes\\\").line,a=t(\\\"../drawing/attributes\\\").dash,o=t(\\\"../../lib/extend\\\").extendFlat,s=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports=s(\\\"shape\\\",{visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc+arraydraw\\\"},type:{valType:\\\"enumerated\\\",values:[\\\"circle\\\",\\\"rect\\\",\\\"path\\\",\\\"line\\\"],editType:\\\"calc+arraydraw\\\"},layer:{valType:\\\"enumerated\\\",values:[\\\"below\\\",\\\"above\\\"],dflt:\\\"above\\\",editType:\\\"arraydraw\\\"},xref:o({},n.xref,{}),xsizemode:{valType:\\\"enumerated\\\",values:[\\\"scaled\\\",\\\"pixel\\\"],dflt:\\\"scaled\\\",editType:\\\"calc+arraydraw\\\"},xanchor:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},x0:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},x1:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},yref:o({},n.yref,{}),ysizemode:{valType:\\\"enumerated\\\",values:[\\\"scaled\\\",\\\"pixel\\\"],dflt:\\\"scaled\\\",editType:\\\"calc+arraydraw\\\"},yanchor:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},y0:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},y1:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},path:{valType:\\\"string\\\",editType:\\\"calc+arraydraw\\\"},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1,editType:\\\"arraydraw\\\"},line:{color:o({},i.color,{editType:\\\"arraydraw\\\"}),width:o({},i.width,{editType:\\\"calc+arraydraw\\\"}),dash:o({},a,{editType:\\\"arraydraw\\\"}),editType:\\\"calc+arraydraw\\\"},fillcolor:{valType:\\\"color\\\",dflt:\\\"rgba(0,0,0,0)\\\",editType:\\\"arraydraw\\\"},editType:\\\"arraydraw\\\"})},{\\\"../../lib/extend\\\":685,\\\"../../plot_api/plot_template\\\":734,\\\"../../traces/scatter/attributes\\\":1043,\\\"../annotations/attributes\\\":553,\\\"../drawing/attributes\\\":594}],650:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"./constants\\\"),o=t(\\\"./helpers\\\");function s(t){return c(t.line.width,t.xsizemode,t.x0,t.x1,t.path,!1)}function l(t){return c(t.line.width,t.ysizemode,t.y0,t.y1,t.path,!0)}function c(t,e,r,i,s,l){var c=t/2,u=l;if(\\\"pixel\\\"===e){var f=s?o.extractPathCoords(s,l?a.paramIsY:a.paramIsX):[r,i],h=n.aggNums(Math.max,null,f),p=n.aggNums(Math.min,null,f),d=p<0?Math.abs(p)+c:c,g=h>0?h+c:c;return{ppad:c,ppadplus:u?d:g,ppadminus:u?g:d}}return{ppad:c}}function u(t,e,r,n,i){var s=\\\"category\\\"===t.type?t.r2c:t.d2c;if(void 0!==e)return[s(e),s(r)];if(n){var l,c,u,f,h=1/0,p=-1/0,d=n.match(a.segmentRE);for(\\\"date\\\"===t.type&&(s=o.decodeDate(s)),l=0;l<d.length;l++)void 0!==(c=i[d[l].charAt(0)].drawn)&&(!(u=d[l].substr(1).match(a.paramRE))||u.length<c||((f=s(u[c]))<h&&(h=f),f>p&&(p=f)));return p>=h?[h,p]:void 0}}e.exports=function(t){var e=t._fullLayout,r=n.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var o=0;o<r.length;o++){var c,f,h=r[o];if(h._extremes={},\\\"paper\\\"!==h.xref){var p=\\\"pixel\\\"===h.xsizemode?h.xanchor:h.x0,d=\\\"pixel\\\"===h.xsizemode?h.xanchor:h.x1;(f=u(c=i.getFromId(t,h.xref),p,d,h.path,a.paramIsX))&&(h._extremes[c._id]=i.findExtremes(c,f,s(h)))}if(\\\"paper\\\"!==h.yref){var g=\\\"pixel\\\"===h.ysizemode?h.yanchor:h.y0,v=\\\"pixel\\\"===h.ysizemode?h.yanchor:h.y1;(f=u(c=i.getFromId(t,h.yref),g,v,h.path,a.paramIsY))&&(h._extremes[c._id]=i.findExtremes(c,f,l(h)))}}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"./constants\\\":651,\\\"./helpers\\\":654}],651:[function(t,e,r){\\\"use strict\\\";e.exports={segmentRE:/[MLHVQCTSZ][^MLHVQCTSZ]*/g,paramRE:/[^\\\\s,]+/g,paramIsX:{M:{0:!0,drawn:0},L:{0:!0,drawn:0},H:{0:!0,drawn:0},V:{},Q:{0:!0,2:!0,drawn:2},C:{0:!0,2:!0,4:!0,drawn:4},T:{0:!0,drawn:0},S:{0:!0,2:!0,drawn:2},Z:{}},paramIsY:{M:{1:!0,drawn:1},L:{1:!0,drawn:1},H:{},V:{0:!0,drawn:0},Q:{1:!0,3:!0,drawn:3},C:{1:!0,3:!0,5:!0,drawn:5},T:{1:!0,drawn:1},S:{1:!0,3:!0,drawn:5},Z:{}},numParams:{M:2,L:2,H:1,V:1,Q:4,C:6,T:2,S:4,Z:0}}},{}],652:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../plots/array_container_defaults\\\"),o=t(\\\"./attributes\\\"),s=t(\\\"./helpers\\\");function l(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}if(a(\\\"visible\\\")){a(\\\"layer\\\"),a(\\\"opacity\\\"),a(\\\"fillcolor\\\"),a(\\\"line.color\\\"),a(\\\"line.width\\\"),a(\\\"line.dash\\\");for(var l=a(\\\"type\\\",t.path?\\\"path\\\":\\\"rect\\\"),c=a(\\\"xsizemode\\\"),u=a(\\\"ysizemode\\\"),f=[\\\"x\\\",\\\"y\\\"],h=0;h<2;h++){var p,d,g,v=f[h],m=v+\\\"anchor\\\",y=\\\"x\\\"===v?c:u,x={_fullLayout:r},b=i.coerceRef(t,e,x,v,\\\"\\\",\\\"paper\\\");if(\\\"paper\\\"!==b?((p=i.getFromId(x,b))._shapeIndices.push(e._index),g=s.rangeToShapePosition(p),d=s.shapePositionToRange(p)):d=g=n.identity,\\\"path\\\"!==l){var _=v+\\\"0\\\",w=v+\\\"1\\\",k=t[_],M=t[w];t[_]=d(t[_],!0),t[w]=d(t[w],!0),\\\"pixel\\\"===y?(a(_,0),a(w,10)):(i.coercePosition(e,x,a,b,_,.25),i.coercePosition(e,x,a,b,w,.75)),e[_]=g(e[_]),e[w]=g(e[w]),t[_]=k,t[w]=M}if(\\\"pixel\\\"===y){var A=t[m];t[m]=d(t[m],!0),i.coercePosition(e,x,a,b,m,.25),e[m]=g(e[m]),t[m]=A}}\\\"path\\\"===l?a(\\\"path\\\"):n.noneOrAll(t,e,[\\\"x0\\\",\\\"x1\\\",\\\"y0\\\",\\\"y1\\\"])}}e.exports=function(t,e){a(t,e,{name:\\\"shapes\\\",handleItemDefaults:l})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/cartesian/axes\\\":744,\\\"./attributes\\\":649,\\\"./helpers\\\":654}],653:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../color\\\"),s=t(\\\"../drawing\\\"),l=t(\\\"../../plot_api/plot_template\\\").arrayEditor,c=t(\\\"../dragelement\\\"),u=t(\\\"../../lib/setcursor\\\"),f=t(\\\"./constants\\\"),h=t(\\\"./helpers\\\");function p(t,e){t._fullLayout._paperdiv.selectAll('.shapelayer [data-index=\\\"'+e+'\\\"]').remove();var r=t._fullLayout.shapes[e]||{};if(r._input&&!1!==r.visible)if(\\\"below\\\"!==r.layer)m(t._fullLayout._shapeUpperLayer);else if(\\\"paper\\\"===r.xref||\\\"paper\\\"===r.yref)m(t._fullLayout._shapeLowerLayer);else{var p=t._fullLayout._plots[r.xref+r.yref];if(p)m((p.mainplotinfo||p).shapelayer);else m(t._fullLayout._shapeLowerLayer)}function m(p){var m={\\\"data-index\\\":e,\\\"fill-rule\\\":\\\"evenodd\\\",d:g(t,r)},y=r.line.width?r.line.color:\\\"rgba(0,0,0,0)\\\",x=p.append(\\\"path\\\").attr(m).style(\\\"opacity\\\",r.opacity).call(o.stroke,y).call(o.fill,r.fillcolor).call(s.dashLine,r.line.dash,r.line.width);d(x,t,r),t._context.edits.shapePosition&&function(t,e,r,o,p){var m,y,x,b,_,w,k,M,A,T,S,E,C,L,z,O,I=10,P=10,D=\\\"pixel\\\"===r.xsizemode,R=\\\"pixel\\\"===r.ysizemode,B=\\\"line\\\"===r.type,F=\\\"path\\\"===r.type,N=l(t.layout,\\\"shapes\\\",r),j=N.modifyItem,V=a.getFromId(t,r.xref),U=a.getFromId(t,r.yref),q=h.getDataToPixel(t,V),H=h.getDataToPixel(t,U,!0),G=h.getPixelToData(t,V),W=h.getPixelToData(t,U,!0),Y=B?function(){var t=Math.max(r.line.width,10),n=p.append(\\\"g\\\").attr(\\\"data-index\\\",o);n.append(\\\"path\\\").attr(\\\"d\\\",e.attr(\\\"d\\\")).style({cursor:\\\"move\\\",\\\"stroke-width\\\":t,\\\"stroke-opacity\\\":\\\"0\\\"});var i={\\\"fill-opacity\\\":\\\"0\\\"},a=t/2>10?t/2:10;return n.append(\\\"circle\\\").attr({\\\"data-line-point\\\":\\\"start-point\\\",cx:D?q(r.xanchor)+r.x0:q(r.x0),cy:R?H(r.yanchor)-r.y0:H(r.y0),r:a}).style(i).classed(\\\"cursor-grab\\\",!0),n.append(\\\"circle\\\").attr({\\\"data-line-point\\\":\\\"end-point\\\",cx:D?q(r.xanchor)+r.x1:q(r.x1),cy:R?H(r.yanchor)-r.y1:H(r.y1),r:a}).style(i).classed(\\\"cursor-grab\\\",!0),n}():e,X={element:Y.node(),gd:t,prepFn:function(n){D&&(_=q(r.xanchor));R&&(w=H(r.yanchor));\\\"path\\\"===r.type?z=r.path:(m=D?r.x0:q(r.x0),y=R?r.y0:H(r.y0),x=D?r.x1:q(r.x1),b=R?r.y1:H(r.y1));m<x?(A=m,C=\\\"x0\\\",T=x,L=\\\"x1\\\"):(A=x,C=\\\"x1\\\",T=m,L=\\\"x0\\\");!R&&y<b||R&&y>b?(k=y,S=\\\"y0\\\",M=b,E=\\\"y1\\\"):(k=b,S=\\\"y1\\\",M=y,E=\\\"y0\\\");Z(n),K(p,r),function(t,e,r){var n=e.xref,i=e.yref,o=a.getFromId(r,n),l=a.getFromId(r,i),c=\\\"\\\";\\\"paper\\\"===n||o.autorange||(c+=n);\\\"paper\\\"===i||l.autorange||(c+=i);t.call(s.setClipUrl,c?\\\"clip\\\"+r._fullLayout._uid+c:null)}(e,r,t),X.moveFn=\\\"move\\\"===O?$:J},doneFn:function(){u(e),Q(p),d(e,t,r),n.call(\\\"relayout\\\",t,N.getUpdateObj())},clickFn:function(){Q(p)}};function Z(t){if(B)O=\\\"path\\\"===t.target.tagName?\\\"move\\\":\\\"start-point\\\"===t.target.attributes[\\\"data-line-point\\\"].value?\\\"resize-over-start-point\\\":\\\"resize-over-end-point\\\";else{var r=X.element.getBoundingClientRect(),n=r.right-r.left,i=r.bottom-r.top,a=t.clientX-r.left,o=t.clientY-r.top,s=!F&&n>I&&i>P&&!t.shiftKey?c.getCursor(a/n,1-o/i):\\\"move\\\";u(e,s),O=s.split(\\\"-\\\")[0]}}function $(n,i){if(\\\"path\\\"===r.type){var a=function(t){return t},o=a,s=a;D?j(\\\"xanchor\\\",r.xanchor=G(_+n)):(o=function(t){return G(q(t)+n)},V&&\\\"date\\\"===V.type&&(o=h.encodeDate(o))),R?j(\\\"yanchor\\\",r.yanchor=W(w+i)):(s=function(t){return W(H(t)+i)},U&&\\\"date\\\"===U.type&&(s=h.encodeDate(s))),j(\\\"path\\\",r.path=v(z,o,s))}else D?j(\\\"xanchor\\\",r.xanchor=G(_+n)):(j(\\\"x0\\\",r.x0=G(m+n)),j(\\\"x1\\\",r.x1=G(x+n))),R?j(\\\"yanchor\\\",r.yanchor=W(w+i)):(j(\\\"y0\\\",r.y0=W(y+i)),j(\\\"y1\\\",r.y1=W(b+i)));e.attr(\\\"d\\\",g(t,r)),K(p,r)}function J(n,i){if(F){var a=function(t){return t},o=a,s=a;D?j(\\\"xanchor\\\",r.xanchor=G(_+n)):(o=function(t){return G(q(t)+n)},V&&\\\"date\\\"===V.type&&(o=h.encodeDate(o))),R?j(\\\"yanchor\\\",r.yanchor=W(w+i)):(s=function(t){return W(H(t)+i)},U&&\\\"date\\\"===U.type&&(s=h.encodeDate(s))),j(\\\"path\\\",r.path=v(z,o,s))}else if(B){if(\\\"resize-over-start-point\\\"===O){var l=m+n,c=R?y-i:y+i;j(\\\"x0\\\",r.x0=D?l:G(l)),j(\\\"y0\\\",r.y0=R?c:W(c))}else if(\\\"resize-over-end-point\\\"===O){var u=x+n,f=R?b-i:b+i;j(\\\"x1\\\",r.x1=D?u:G(u)),j(\\\"y1\\\",r.y1=R?f:W(f))}}else{var d=~O.indexOf(\\\"n\\\")?k+i:k,N=~O.indexOf(\\\"s\\\")?M+i:M,Y=~O.indexOf(\\\"w\\\")?A+n:A,X=~O.indexOf(\\\"e\\\")?T+n:T;~O.indexOf(\\\"n\\\")&&R&&(d=k-i),~O.indexOf(\\\"s\\\")&&R&&(N=M-i),(!R&&N-d>P||R&&d-N>P)&&(j(S,r[S]=R?d:W(d)),j(E,r[E]=R?N:W(N))),X-Y>I&&(j(C,r[C]=D?Y:G(Y)),j(L,r[L]=D?X:G(X)))}e.attr(\\\"d\\\",g(t,r)),K(p,r)}function K(t,e){(D||R)&&function(){var r=\\\"path\\\"!==e.type,n=t.selectAll(\\\".visual-cue\\\").data([0]);n.enter().append(\\\"path\\\").attr({fill:\\\"#fff\\\",\\\"fill-rule\\\":\\\"evenodd\\\",stroke:\\\"#000\\\",\\\"stroke-width\\\":1}).classed(\\\"visual-cue\\\",!0);var a=q(D?e.xanchor:i.midRange(r?[e.x0,e.x1]:h.extractPathCoords(e.path,f.paramIsX))),o=H(R?e.yanchor:i.midRange(r?[e.y0,e.y1]:h.extractPathCoords(e.path,f.paramIsY)));if(a=h.roundPositionForSharpStrokeRendering(a,1),o=h.roundPositionForSharpStrokeRendering(o,1),D&&R){var s=\\\"M\\\"+(a-1-1)+\\\",\\\"+(o-1-1)+\\\"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z\\\";n.attr(\\\"d\\\",s)}else if(D){var l=\\\"M\\\"+(a-1-1)+\\\",\\\"+(o-9-1)+\\\"v18 h2 v-18 Z\\\";n.attr(\\\"d\\\",l)}else{var c=\\\"M\\\"+(a-9-1)+\\\",\\\"+(o-1-1)+\\\"h18 v2 h-18 Z\\\";n.attr(\\\"d\\\",c)}}()}function Q(t){t.selectAll(\\\".visual-cue\\\").remove()}c.init(X),Y.node().onmousemove=Z}(t,x,r,e,p)}}function d(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,\\\"\\\");t.call(s.setClipUrl,n?\\\"clip\\\"+e._fullLayout._uid+n:null)}function g(t,e){var r,n,o,s,l,c,u,p,d=e.type,g=a.getFromId(t,e.xref),v=a.getFromId(t,e.yref),m=t._fullLayout._size;if(g?(r=h.shapePositionToRange(g),n=function(t){return g._offset+g.r2p(r(t,!0))}):n=function(t){return m.l+m.w*t},v?(o=h.shapePositionToRange(v),s=function(t){return v._offset+v.r2p(o(t,!0))}):s=function(t){return m.t+m.h*(1-t)},\\\"path\\\"===d)return g&&\\\"date\\\"===g.type&&(n=h.decodeDate(n)),v&&\\\"date\\\"===v.type&&(s=h.decodeDate(s)),function(t,e,r){var n=t.path,a=t.xsizemode,o=t.ysizemode,s=t.xanchor,l=t.yanchor;return n.replace(f.segmentRE,function(t){var n=0,c=t.charAt(0),u=f.paramIsX[c],h=f.paramIsY[c],p=f.numParams[c],d=t.substr(1).replace(f.paramRE,function(t){return u[n]?t=\\\"pixel\\\"===a?e(s)+Number(t):e(t):h[n]&&(t=\\\"pixel\\\"===o?r(l)-Number(t):r(t)),++n>p&&(t=\\\"X\\\"),t});return n>p&&(d=d.replace(/[\\\\s,]*X.*/,\\\"\\\"),i.log(\\\"Ignoring extra params in segment \\\"+t)),c+d})}(e,n,s);if(\\\"pixel\\\"===e.xsizemode){var y=n(e.xanchor);l=y+e.x0,c=y+e.x1}else l=n(e.x0),c=n(e.x1);if(\\\"pixel\\\"===e.ysizemode){var x=s(e.yanchor);u=x-e.y0,p=x-e.y1}else u=s(e.y0),p=s(e.y1);if(\\\"line\\\"===d)return\\\"M\\\"+l+\\\",\\\"+u+\\\"L\\\"+c+\\\",\\\"+p;if(\\\"rect\\\"===d)return\\\"M\\\"+l+\\\",\\\"+u+\\\"H\\\"+c+\\\"V\\\"+p+\\\"H\\\"+l+\\\"Z\\\";var b=(l+c)/2,_=(u+p)/2,w=Math.abs(b-l),k=Math.abs(_-u),M=\\\"A\\\"+w+\\\",\\\"+k,A=b+w+\\\",\\\"+_;return\\\"M\\\"+A+M+\\\" 0 1,1 \\\"+(b+\\\",\\\"+(_-k))+M+\\\" 0 0,1 \\\"+A+\\\"Z\\\"}function v(t,e,r){return t.replace(f.segmentRE,function(t){var n=0,i=t.charAt(0),a=f.paramIsX[i],o=f.paramIsY[i],s=f.numParams[i];return i+t.substr(1).replace(f.paramRE,function(t){return n>=s?t:(a[n]?t=e(t):o[n]&&(t=r(t)),n++,t)})})}e.exports={draw:function(t){var e=t._fullLayout;for(var r in e._shapeUpperLayer.selectAll(\\\"path\\\").remove(),e._shapeLowerLayer.selectAll(\\\"path\\\").remove(),e._plots){var n=e._plots[r].shapelayer;n&&n.selectAll(\\\"path\\\").remove()}for(var i=0;i<e.shapes.length;i++)e.shapes[i].visible&&p(t,i)},drawOne:p}},{\\\"../../lib\\\":696,\\\"../../lib/setcursor\\\":716,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"./constants\\\":651,\\\"./helpers\\\":654}],654:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"../../lib\\\");r.rangeToShapePosition=function(t){return\\\"log\\\"===t.type?t.r2d:function(t){return t}},r.shapePositionToRange=function(t){return\\\"log\\\"===t.type?t.d2r:function(t){return t}},r.decodeDate=function(t){return function(e){return e.replace&&(e=e.replace(\\\"_\\\",\\\" \\\")),t(e)}},r.encodeDate=function(t){return function(e){return t(e).replace(\\\" \\\",\\\"_\\\")}},r.extractPathCoords=function(t,e){var r=[];return t.match(n.segmentRE).forEach(function(t){var a=e[t.charAt(0)].drawn;if(void 0!==a){var o=t.substr(1).match(n.paramRE);!o||o.length<a||r.push(i.cleanNumber(o[a]))}}),r},r.getDataToPixel=function(t,e,n){var i,a=t._fullLayout._size;if(e){var o=r.shapePositionToRange(e);i=function(t){return e._offset+e.r2p(o(t,!0))},\\\"date\\\"===e.type&&(i=r.decodeDate(i))}else i=n?function(t){return a.t+a.h*(1-t)}:function(t){return a.l+a.w*t};return i},r.getPixelToData=function(t,e,n){var i,a=t._fullLayout._size;if(e){var o=r.rangeToShapePosition(e);i=function(t){return o(e.p2r(t-e._offset))}}else i=n?function(t){return 1-(t-a.t)/a.h}:function(t){return(t-a.l)/a.w};return i},r.roundPositionForSharpStrokeRendering=function(t,e){var r=1===Math.round(e%2),n=Math.round(t);return r?n+.5:n}},{\\\"../../lib\\\":696,\\\"./constants\\\":651}],655:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./draw\\\");e.exports={moduleType:\\\"component\\\",name:\\\"shapes\\\",layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),includeBasePlot:t(\\\"../../plots/cartesian/include_components\\\")(\\\"shapes\\\"),calcAutorange:t(\\\"./calc_autorange\\\"),draw:n.draw,drawOne:n.drawOne}},{\\\"../../plots/cartesian/include_components\\\":755,\\\"./attributes\\\":649,\\\"./calc_autorange\\\":650,\\\"./defaults\\\":652,\\\"./draw\\\":653}],656:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../../plots/pad_attributes\\\"),a=t(\\\"../../lib/extend\\\").extendDeepAll,o=t(\\\"../../plot_api/edit_types\\\").overrideAll,s=t(\\\"../../plots/animation_attributes\\\"),l=t(\\\"../../plot_api/plot_template\\\").templatedArray,c=t(\\\"./constants\\\"),u=l(\\\"step\\\",{visible:{valType:\\\"boolean\\\",dflt:!0},method:{valType:\\\"enumerated\\\",values:[\\\"restyle\\\",\\\"relayout\\\",\\\"animate\\\",\\\"update\\\",\\\"skip\\\"],dflt:\\\"restyle\\\"},args:{valType:\\\"info_array\\\",freeLength:!0,items:[{valType:\\\"any\\\"},{valType:\\\"any\\\"},{valType:\\\"any\\\"}]},label:{valType:\\\"string\\\"},value:{valType:\\\"string\\\"},execute:{valType:\\\"boolean\\\",dflt:!0}});e.exports=o(l(\\\"slider\\\",{visible:{valType:\\\"boolean\\\",dflt:!0},active:{valType:\\\"number\\\",min:0,dflt:0},steps:u,lenmode:{valType:\\\"enumerated\\\",values:[\\\"fraction\\\",\\\"pixels\\\"],dflt:\\\"fraction\\\"},len:{valType:\\\"number\\\",min:0,dflt:1},x:{valType:\\\"number\\\",min:-2,max:3,dflt:0},pad:a({},i,{},{t:{dflt:20}}),xanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\"},y:{valType:\\\"number\\\",min:-2,max:3,dflt:0},yanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"top\\\"},transition:{duration:{valType:\\\"number\\\",min:0,dflt:150},easing:{valType:\\\"enumerated\\\",values:s.transition.easing.values,dflt:\\\"cubic-in-out\\\"}},currentvalue:{visible:{valType:\\\"boolean\\\",dflt:!0},xanchor:{valType:\\\"enumerated\\\",values:[\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\"},offset:{valType:\\\"number\\\",dflt:10},prefix:{valType:\\\"string\\\"},suffix:{valType:\\\"string\\\"},font:n({})},font:n({}),activebgcolor:{valType:\\\"color\\\",dflt:c.gripBgActiveColor},bgcolor:{valType:\\\"color\\\",dflt:c.railBgColor},bordercolor:{valType:\\\"color\\\",dflt:c.railBorderColor},borderwidth:{valType:\\\"number\\\",min:0,dflt:c.railBorderWidth},ticklen:{valType:\\\"number\\\",min:0,dflt:c.tickLength},tickcolor:{valType:\\\"color\\\",dflt:c.tickColor},tickwidth:{valType:\\\"number\\\",min:0,dflt:1},minorticklen:{valType:\\\"number\\\",min:0,dflt:c.minorTickLength}}),\\\"arraydraw\\\",\\\"from-root\\\")},{\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/animation_attributes\\\":739,\\\"../../plots/font_attributes\\\":771,\\\"../../plots/pad_attributes\\\":807,\\\"./constants\\\":657}],657:[function(t,e,r){\\\"use strict\\\";e.exports={name:\\\"sliders\\\",containerClassName:\\\"slider-container\\\",groupClassName:\\\"slider-group\\\",inputAreaClass:\\\"slider-input-area\\\",railRectClass:\\\"slider-rail-rect\\\",railTouchRectClass:\\\"slider-rail-touch-rect\\\",gripRectClass:\\\"slider-grip-rect\\\",tickRectClass:\\\"slider-tick-rect\\\",inputProxyClass:\\\"slider-input-proxy\\\",labelsClass:\\\"slider-labels\\\",labelGroupClass:\\\"slider-label-group\\\",labelClass:\\\"slider-label\\\",currentValueClass:\\\"slider-current-value\\\",railHeight:5,menuIndexAttrName:\\\"slider-active-index\\\",autoMarginIdRoot:\\\"slider-\\\",minWidth:30,minHeight:30,textPadX:40,arrowOffsetX:4,railRadius:2,railWidth:5,railBorder:4,railBorderWidth:1,railBorderColor:\\\"#bec8d9\\\",railBgColor:\\\"#f8fafc\\\",railInset:8,stepInset:10,gripRadius:10,gripWidth:20,gripHeight:20,gripBorder:20,gripBorderWidth:1,gripBorderColor:\\\"#bec8d9\\\",gripBgColor:\\\"#f6f8fa\\\",gripBgActiveColor:\\\"#dbdde0\\\",labelPadding:8,labelOffset:0,tickWidth:1,tickColor:\\\"#333\\\",tickOffset:25,tickLength:7,minorTickOffset:25,minorTickColor:\\\"#333\\\",minorTickLength:4,currentValuePadding:8,currentValueInset:0}},{}],658:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/array_container_defaults\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"./constants\\\").name,s=a.steps;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}for(var s=i(t,e,{name:\\\"steps\\\",handleItemDefaults:c}),l=0,u=0;u<s.length;u++)s[u].visible&&l++;if(l<2?e.visible=!1:o(\\\"visible\\\")){e._stepCount=l;var f=e._visibleSteps=n.filterVisible(s);(s[o(\\\"active\\\")]||{}).visible||(e.active=f[0]._index),o(\\\"x\\\"),o(\\\"y\\\"),n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\"]),o(\\\"xanchor\\\"),o(\\\"yanchor\\\"),o(\\\"len\\\"),o(\\\"lenmode\\\"),o(\\\"pad.t\\\"),o(\\\"pad.r\\\"),o(\\\"pad.b\\\"),o(\\\"pad.l\\\"),n.coerceFont(o,\\\"font\\\",r.font),o(\\\"currentvalue.visible\\\")&&(o(\\\"currentvalue.xanchor\\\"),o(\\\"currentvalue.prefix\\\"),o(\\\"currentvalue.suffix\\\"),o(\\\"currentvalue.offset\\\"),n.coerceFont(o,\\\"currentvalue.font\\\",e.font)),o(\\\"transition.duration\\\"),o(\\\"transition.easing\\\"),o(\\\"bgcolor\\\"),o(\\\"activebgcolor\\\"),o(\\\"bordercolor\\\"),o(\\\"borderwidth\\\"),o(\\\"ticklen\\\"),o(\\\"tickwidth\\\"),o(\\\"tickcolor\\\"),o(\\\"minorticklen\\\")}}function c(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}if(\\\"skip\\\"===t.method||Array.isArray(t.args)?r(\\\"visible\\\"):e.visible=!1){r(\\\"method\\\"),r(\\\"args\\\");var i=r(\\\"label\\\",\\\"step-\\\"+e._index);r(\\\"value\\\",i),r(\\\"execute\\\")}}e.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"./attributes\\\":656,\\\"./constants\\\":657}],659:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../plots/plots\\\"),a=t(\\\"../color\\\"),o=t(\\\"../drawing\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../legend/anchor_utils\\\"),u=t(\\\"../../plot_api/plot_template\\\").arrayEditor,f=t(\\\"./constants\\\"),h=t(\\\"../../constants/alignment\\\"),p=h.LINE_SPACING,d=h.FROM_TL,g=h.FROM_BR;function v(t){return f.autoMarginIdRoot+t._index}function m(t){return t._index}function y(t,e){var r=o.tester.selectAll(\\\"g.\\\"+f.labelGroupClass).data(e._visibleSteps);r.enter().append(\\\"g\\\").classed(f.labelGroupClass,!0);var a=0,s=0;r.each(function(t){var r=_(n.select(this),{step:t},e).node();if(r){var i=o.bBox(r);s=Math.max(s,i.height),a=Math.max(a,i.width)}}),r.remove();var u=e._dims={};u.inputAreaWidth=Math.max(f.railWidth,f.gripHeight);var h=t._fullLayout._size;u.lx=h.l+h.w*e.x,u.ly=h.t+h.h*(1-e.y),\\\"fraction\\\"===e.lenmode?u.outerLength=Math.round(h.w*e.len):u.outerLength=e.len,u.inputAreaStart=0,u.inputAreaLength=Math.round(u.outerLength-e.pad.l-e.pad.r);var p=(u.inputAreaLength-2*f.stepInset)/(e._stepCount-1),m=a+f.labelPadding;if(u.labelStride=Math.max(1,Math.ceil(m/p)),u.labelHeight=s,u.currentValueMaxWidth=0,u.currentValueHeight=0,u.currentValueTotalHeight=0,u.currentValueMaxLines=1,e.currentvalue.visible){var y=o.tester.append(\\\"g\\\");r.each(function(t){var r=x(y,e,t.label),n=r.node()&&o.bBox(r.node())||{width:0,height:0},i=l.lineCount(r);u.currentValueMaxWidth=Math.max(u.currentValueMaxWidth,Math.ceil(n.width)),u.currentValueHeight=Math.max(u.currentValueHeight,Math.ceil(n.height)),u.currentValueMaxLines=Math.max(u.currentValueMaxLines,i)}),u.currentValueTotalHeight=u.currentValueHeight+e.currentvalue.offset,y.remove()}u.height=u.currentValueTotalHeight+f.tickOffset+e.ticklen+f.labelOffset+u.labelHeight+e.pad.t+e.pad.b;var b=\\\"left\\\";c.isRightAnchor(e)&&(u.lx-=u.outerLength,b=\\\"right\\\"),c.isCenterAnchor(e)&&(u.lx-=u.outerLength/2,b=\\\"center\\\");var w=\\\"top\\\";c.isBottomAnchor(e)&&(u.ly-=u.height,w=\\\"bottom\\\"),c.isMiddleAnchor(e)&&(u.ly-=u.height/2,w=\\\"middle\\\"),u.outerLength=Math.ceil(u.outerLength),u.height=Math.ceil(u.height),u.lx=Math.round(u.lx),u.ly=Math.round(u.ly);var k={y:e.y,b:u.height*g[w],t:u.height*d[w]};\\\"fraction\\\"===e.lenmode?(k.l=0,k.xl=e.x-e.len*d[b],k.r=0,k.xr=e.x+e.len*g[b]):(k.x=e.x,k.l=u.outerLength*d[b],k.r=u.outerLength*g[b]),i.autoMargin(t,v(e),k)}function x(t,e,r){if(e.currentvalue.visible){var n,i,a=e._dims;switch(e.currentvalue.xanchor){case\\\"right\\\":n=a.inputAreaLength-f.currentValueInset-a.currentValueMaxWidth,i=\\\"left\\\";break;case\\\"center\\\":n=.5*a.inputAreaLength,i=\\\"middle\\\";break;default:n=f.currentValueInset,i=\\\"left\\\"}var c=s.ensureSingle(t,\\\"text\\\",f.labelClass,function(t){t.classed(\\\"user-select-none\\\",!0).attr({\\\"text-anchor\\\":i,\\\"data-notex\\\":1})}),u=e.currentvalue.prefix?e.currentvalue.prefix:\\\"\\\";if(\\\"string\\\"==typeof r)u+=r;else u+=e.steps[e.active].label;e.currentvalue.suffix&&(u+=e.currentvalue.suffix),c.call(o.font,e.currentvalue.font).text(u).call(l.convertToTspans,e._gd);var h=l.lineCount(c),d=(a.currentValueMaxLines+1-h)*e.currentvalue.font.size*p;return l.positionText(c,n,d),c}}function b(t,e,r){s.ensureSingle(t,\\\"rect\\\",f.gripRectClass,function(n){n.call(A,e,t,r).style(\\\"pointer-events\\\",\\\"all\\\")}).attr({width:f.gripWidth,height:f.gripHeight,rx:f.gripRadius,ry:f.gripRadius}).call(a.stroke,r.bordercolor).call(a.fill,r.bgcolor).style(\\\"stroke-width\\\",r.borderwidth+\\\"px\\\")}function _(t,e,r){var n=s.ensureSingle(t,\\\"text\\\",f.labelClass,function(t){t.classed(\\\"user-select-none\\\",!0).attr({\\\"text-anchor\\\":\\\"middle\\\",\\\"data-notex\\\":1})});return n.call(o.font,r.font).text(e.step.label).call(l.convertToTspans,r._gd),n}function w(t,e){var r=s.ensureSingle(t,\\\"g\\\",f.labelsClass),i=e._dims,a=r.selectAll(\\\"g.\\\"+f.labelGroupClass).data(i.labelSteps);a.enter().append(\\\"g\\\").classed(f.labelGroupClass,!0),a.exit().remove(),a.each(function(t){var r=n.select(this);r.call(_,t,e),o.setTranslate(r,E(e,t.fraction),f.tickOffset+e.ticklen+e.font.size*p+f.labelOffset+i.currentValueTotalHeight)})}function k(t,e,r,n,i){var a=Math.round(n*(r._stepCount-1)),o=r._visibleSteps[a]._index;o!==r.active&&M(t,e,r,o,!0,i)}function M(t,e,r,n,a,o){var s=r.active;r.active=n,u(t.layout,f.name,r).applyUpdate(\\\"active\\\",n);var l=r.steps[r.active];e.call(S,r,o),e.call(x,r),t.emit(\\\"plotly_sliderchange\\\",{slider:r,step:r.steps[r.active],interaction:a,previousActive:s}),l&&l.method&&a&&(e._nextMethod?(e._nextMethod.step=l,e._nextMethod.doCallback=a,e._nextMethod.doTransition=o):(e._nextMethod={step:l,doCallback:a,doTransition:o},e._nextMethodRaf=window.requestAnimationFrame(function(){var r=e._nextMethod.step;r.method&&(r.execute&&i.executeAPICommand(t,r.method,r.args),e._nextMethod=null,e._nextMethodRaf=null)})))}function A(t,e,r){var i=r.node(),o=n.select(e);function s(){return r.data()[0]}t.on(\\\"mousedown\\\",function(){var t=s();e.emit(\\\"plotly_sliderstart\\\",{slider:t});var l=r.select(\\\".\\\"+f.gripRectClass);n.event.stopPropagation(),n.event.preventDefault(),l.call(a.fill,t.activebgcolor);var c=C(t,n.mouse(i)[0]);k(e,r,t,c,!0),t._dragging=!0,o.on(\\\"mousemove\\\",function(){var t=s(),a=C(t,n.mouse(i)[0]);k(e,r,t,a,!1)}),o.on(\\\"mouseup\\\",function(){var t=s();t._dragging=!1,l.call(a.fill,t.bgcolor),o.on(\\\"mouseup\\\",null),o.on(\\\"mousemove\\\",null),e.emit(\\\"plotly_sliderend\\\",{slider:t,step:t.steps[t.active]})})})}function T(t,e){var r=t.selectAll(\\\"rect.\\\"+f.tickRectClass).data(e._visibleSteps),i=e._dims;r.enter().append(\\\"rect\\\").classed(f.tickRectClass,!0),r.exit().remove(),r.attr({width:e.tickwidth+\\\"px\\\",\\\"shape-rendering\\\":\\\"crispEdges\\\"}),r.each(function(t,r){var s=r%i.labelStride==0,l=n.select(this);l.attr({height:s?e.ticklen:e.minorticklen}).call(a.fill,e.tickcolor),o.setTranslate(l,E(e,r/(e._stepCount-1))-.5*e.tickwidth,(s?f.tickOffset:f.minorTickOffset)+i.currentValueTotalHeight)})}function S(t,e,r){for(var n=t.select(\\\"rect.\\\"+f.gripRectClass),i=0,a=0;a<e._stepCount;a++)if(e._visibleSteps[a]._index===e.active){i=a;break}var o=E(e,i/(e._stepCount-1));if(!e._invokingCommand){var s=n;r&&e.transition.duration>0&&(s=s.transition().duration(e.transition.duration).ease(e.transition.easing)),s.attr(\\\"transform\\\",\\\"translate(\\\"+(o-.5*f.gripWidth)+\\\",\\\"+e._dims.currentValueTotalHeight+\\\")\\\")}}function E(t,e){var r=t._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,e))}function C(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function L(t,e,r){var n=r._dims,i=s.ensureSingle(t,\\\"rect\\\",f.railTouchRectClass,function(n){n.call(A,e,t,r).style(\\\"pointer-events\\\",\\\"all\\\")});i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(a.fill,r.bgcolor).attr(\\\"opacity\\\",0),o.setTranslate(i,0,n.currentValueTotalHeight)}function z(t,e){var r=e._dims,n=r.inputAreaLength-2*f.railInset,i=s.ensureSingle(t,\\\"rect\\\",f.railRectClass);i.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,\\\"shape-rendering\\\":\\\"crispEdges\\\"}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style(\\\"stroke-width\\\",e.borderwidth+\\\"px\\\"),o.setTranslate(i,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}e.exports=function(t){var e=t._fullLayout,r=function(t,e){for(var r=t[f.name],n=[],i=0;i<r.length;i++){var a=r[i];a.visible&&(a._gd=e,n.push(a))}return n}(e,t),a=e._infolayer.selectAll(\\\"g.\\\"+f.containerClassName).data(r.length>0?[0]:[]);function s(e){e._commandObserver&&(e._commandObserver.remove(),delete e._commandObserver),i.autoMargin(t,v(e))}if(a.enter().append(\\\"g\\\").classed(f.containerClassName,!0).style(\\\"cursor\\\",\\\"ew-resize\\\"),a.exit().each(function(){n.select(this).selectAll(\\\"g.\\\"+f.groupClassName).each(s)}).remove(),0!==r.length){var l=a.selectAll(\\\"g.\\\"+f.groupClassName).data(r,m);l.enter().append(\\\"g\\\").classed(f.groupClassName,!0),l.exit().each(s).remove();for(var c=0;c<r.length;c++){var u=r[c];y(t,u)}l.each(function(e){var r=n.select(this);!function(t){var e=t._dims;e.labelSteps=[];for(var r=t._stepCount,n=0;n<r;n+=e.labelStride)e.labelSteps.push({fraction:n/(r-1),step:t._visibleSteps[n]})}(e),i.manageCommandObserver(t,e,e._visibleSteps,function(e){var n=r.data()[0];n.active!==e.index&&(n._dragging||M(t,r,n,e.index,!1,!0))}),function(t,e,r){(r.steps[r.active]||{}).visible||(r.active=r._visibleSteps[0]._index);e.call(x,r).call(z,r).call(w,r).call(T,r).call(L,t,r).call(b,t,r);var n=r._dims;o.setTranslate(e,n.lx+r.pad.l,n.ly+r.pad.t),e.call(S,r,!1),e.call(x,r)}(t,n.select(this),e)})}}},{\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/plots\\\":808,\\\"../color\\\":570,\\\"../drawing\\\":595,\\\"../legend/anchor_utils\\\":622,\\\"./constants\\\":657,d3:148}],660:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\");e.exports={moduleType:\\\"component\\\",name:n.name,layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),draw:t(\\\"./draw\\\")}},{\\\"./attributes\\\":656,\\\"./constants\\\":657,\\\"./defaults\\\":658,\\\"./draw\\\":659}],661:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../drawing\\\"),c=t(\\\"../color\\\"),u=t(\\\"../../lib/svg_text_utils\\\"),f=t(\\\"../../constants/interactions\\\");e.exports={draw:function(t,e,r){var p,d=r.propContainer,g=r.propName,v=r.placeholder,m=r.traceIndex,y=r.avoid||{},x=r.attributes,b=r.transform,_=r.containerGroup,w=t._fullLayout,k=d.titlefont||{},M=k.family,A=k.size,T=k.color,S=1,E=!1,C=(d.title||\\\"\\\").trim();\\\"title\\\"===g?p=\\\"titleText\\\":-1!==g.indexOf(\\\"axis\\\")?p=\\\"axisTitleText\\\":g.indexOf(!0)&&(p=\\\"colorbarTitleText\\\");var L=t._context.edits[p];\\\"\\\"===C?S=0:C.replace(h,\\\" % \\\")===v.replace(h,\\\" % \\\")&&(S=.2,E=!0,L||(C=\\\"\\\"));var z=C||L;_||(_=s.ensureSingle(w._infolayer,\\\"g\\\",\\\"g-\\\"+e));var O=_.selectAll(\\\"text\\\").data(z?[0]:[]);if(O.enter().append(\\\"text\\\"),O.text(C).attr(\\\"class\\\",e),O.exit().remove(),!z)return _;function I(t){s.syncOrAsync([P,D],t)}function P(e){var r;return b?(r=\\\"\\\",b.rotate&&(r+=\\\"rotate(\\\"+[b.rotate,x.x,x.y]+\\\")\\\"),b.offset&&(r+=\\\"translate(0, \\\"+b.offset+\\\")\\\")):r=null,e.attr(\\\"transform\\\",r),e.style({\\\"font-family\\\":M,\\\"font-size\\\":n.round(A,2)+\\\"px\\\",fill:c.rgb(T),opacity:S*c.opacity(T),\\\"font-weight\\\":a.fontWeight}).attr(x).call(u.convertToTspans,t),a.previousPromises(t)}function D(t){var e=n.select(t.node().parentNode);if(y&&y.selection&&y.side&&C){e.attr(\\\"transform\\\",null);var r=0,a={left:\\\"right\\\",right:\\\"left\\\",top:\\\"bottom\\\",bottom:\\\"top\\\"}[y.side],o=-1!==[\\\"left\\\",\\\"top\\\"].indexOf(y.side)?-1:1,c=i(y.pad)?y.pad:2,u=l.bBox(e.node()),f={left:0,top:0,right:w.width,bottom:w.height},h=y.maxShift||(f[y.side]-u[y.side])*(\\\"left\\\"===y.side||\\\"top\\\"===y.side?-1:1);if(h<0)r=h;else{var p=y.offsetLeft||0,d=y.offsetTop||0;u.left-=p,u.right-=p,u.top-=d,u.bottom-=d,y.selection.each(function(){var t=l.bBox(this);s.bBoxIntersect(u,t,c)&&(r=Math.max(r,o*(t[y.side]-u[a])+c))}),r=Math.min(h,r)}if(r>0||h<0){var g={left:[-r,0],right:[r,0],top:[0,-r],bottom:[0,r]}[y.side];e.attr(\\\"transform\\\",\\\"translate(\\\"+g+\\\")\\\")}}}O.call(I),L&&(C?O.on(\\\".opacity\\\",null):(S=0,E=!0,O.text(v).on(\\\"mouseover.opacity\\\",function(){n.select(this).transition().duration(f.SHOW_PLACEHOLDER).style(\\\"opacity\\\",1)}).on(\\\"mouseout.opacity\\\",function(){n.select(this).transition().duration(f.HIDE_PLACEHOLDER).style(\\\"opacity\\\",0)})),O.call(u.makeEditable,{gd:t}).on(\\\"edit\\\",function(e){void 0!==m?o.call(\\\"restyle\\\",t,g,e,m):o.call(\\\"relayout\\\",t,g,e)}).on(\\\"cancel\\\",function(){this.text(this.attr(\\\"data-unformatted\\\")).call(I)}).on(\\\"input\\\",function(t){this.text(t||\\\" \\\").call(u.positionText,x.x,x.y)}));return O.classed(\\\"js-placeholder\\\",E),_}};var h=/ [XY][0-9]* /},{\\\"../../constants/interactions\\\":672,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../drawing\\\":595,d3:148,\\\"fast-isnumeric\\\":214}],662:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../color/attributes\\\"),a=t(\\\"../../lib/extend\\\").extendFlat,o=t(\\\"../../plot_api/edit_types\\\").overrideAll,s=t(\\\"../../plots/pad_attributes\\\"),l=t(\\\"../../plot_api/plot_template\\\").templatedArray,c=l(\\\"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\\\"}]},label:{valType:\\\"string\\\",dflt:\\\"\\\"},execute:{valType:\\\"boolean\\\",dflt:!0}});e.exports=o(l(\\\"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:c,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:a({},s,{}),font:n({}),bgcolor:{valType:\\\"color\\\"},bordercolor:{valType:\\\"color\\\",dflt:i.borderLine},borderwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"arraydraw\\\"}}),\\\"arraydraw\\\",\\\"from-root\\\")},{\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/font_attributes\\\":771,\\\"../../plots/pad_attributes\\\":807,\\\"../color/attributes\\\":569}],663:[function(t,e,r){\\\"use strict\\\";e.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\\\"}}},{}],664:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/array_container_defaults\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"./constants\\\").name,s=a.buttons;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}o(\\\"visible\\\",i(t,e,{name:\\\"buttons\\\",handleItemDefaults:c}).length>0)&&(o(\\\"active\\\"),o(\\\"direction\\\"),o(\\\"type\\\"),o(\\\"showactive\\\"),o(\\\"x\\\"),o(\\\"y\\\"),n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\"]),o(\\\"xanchor\\\"),o(\\\"yanchor\\\"),o(\\\"pad.t\\\"),o(\\\"pad.r\\\"),o(\\\"pad.b\\\"),o(\\\"pad.l\\\"),n.coerceFont(o,\\\"font\\\",r.font),o(\\\"bgcolor\\\",r.paper_bgcolor),o(\\\"bordercolor\\\"),o(\\\"borderwidth\\\"))}function c(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}r(\\\"visible\\\",\\\"skip\\\"===t.method||Array.isArray(t.args))&&(r(\\\"method\\\"),r(\\\"args\\\"),r(\\\"label\\\"),r(\\\"execute\\\"))}e.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"./attributes\\\":662,\\\"./constants\\\":663}],665:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../plots/plots\\\"),a=t(\\\"../color\\\"),o=t(\\\"../drawing\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../legend/anchor_utils\\\"),u=t(\\\"../../plot_api/plot_template\\\").arrayEditor,f=t(\\\"../../constants/alignment\\\").LINE_SPACING,h=t(\\\"./constants\\\"),p=t(\\\"./scrollbox\\\");function d(t){return t._index}function g(t,e){return+t.attr(h.menuIndexAttrName)===e._index}function v(t,e,r,n,i,a,o,s){e.active=o,u(t.layout,h.name,e).applyUpdate(\\\"active\\\",o),\\\"buttons\\\"===e.type?y(t,n,null,null,e):\\\"dropdown\\\"===e.type&&(i.attr(h.menuIndexAttrName,\\\"-1\\\"),m(t,n,i,a,e),s||y(t,n,i,a,e))}function m(t,e,r,n,i){var a=s.ensureSingle(e,\\\"g\\\",h.headerClassName,function(t){t.style(\\\"pointer-events\\\",\\\"all\\\")}),l=i._dims,c=i.active,u=i.buttons[c]||h.blankHeaderOpts,f={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},p={width:l.headerWidth,height:l.headerHeight};a.call(x,i,u,t).call(S,i,f,p),s.ensureSingle(e,\\\"text\\\",h.headerArrowClassName,function(t){t.classed(\\\"user-select-none\\\",!0).attr(\\\"text-anchor\\\",\\\"end\\\").call(o.font,i.font).text(h.arrowSymbol[i.direction])}).attr({x:l.headerWidth-h.arrowOffsetX+i.pad.l,y:l.headerHeight/2+h.textOffsetY+i.pad.t}),a.on(\\\"click\\\",function(){r.call(E,String(g(r,i)?-1:i._index)),y(t,e,r,n,i)}),a.on(\\\"mouseover\\\",function(){a.call(k)}),a.on(\\\"mouseout\\\",function(){a.call(M,i)}),o.setTranslate(e,l.lx,l.ly)}function y(t,e,r,a,o){r||(r=e).attr(\\\"pointer-events\\\",\\\"all\\\");var l=function(t){return-1==+t.attr(h.menuIndexAttrName)}(r)&&\\\"buttons\\\"!==o.type?[]:o.buttons,c=\\\"dropdown\\\"===o.type?h.dropdownButtonClassName:h.buttonClassName,u=r.selectAll(\\\"g.\\\"+c).data(s.filterVisible(l)),f=u.enter().append(\\\"g\\\").classed(c,!0),p=u.exit();\\\"dropdown\\\"===o.type?(f.attr(\\\"opacity\\\",\\\"0\\\").transition().attr(\\\"opacity\\\",\\\"1\\\"),p.transition().attr(\\\"opacity\\\",\\\"0\\\").remove()):p.remove();var d=0,g=0,m=o._dims,y=-1!==[\\\"up\\\",\\\"down\\\"].indexOf(o.direction);\\\"dropdown\\\"===o.type&&(y?g=m.headerHeight+h.gapButtonHeader:d=m.headerWidth+h.gapButtonHeader),\\\"dropdown\\\"===o.type&&\\\"up\\\"===o.direction&&(g=-h.gapButtonHeader+h.gapButton-m.openHeight),\\\"dropdown\\\"===o.type&&\\\"left\\\"===o.direction&&(d=-h.gapButtonHeader+h.gapButton-m.openWidth);var b={x:m.lx+d+o.pad.l,y:m.ly+g+o.pad.t,yPad:h.gapButton,xPad:h.gapButton,index:0},_={l:b.x+o.borderwidth,t:b.y+o.borderwidth};u.each(function(s,l){var c=n.select(this);c.call(x,o,s,t).call(S,o,b),c.on(\\\"click\\\",function(){n.event.defaultPrevented||(v(t,o,0,e,r,a,l),s.execute&&i.executeAPICommand(t,s.method,s.args),t.emit(\\\"plotly_buttonclicked\\\",{menu:o,button:s,active:o.active}))}),c.on(\\\"mouseover\\\",function(){c.call(k)}),c.on(\\\"mouseout\\\",function(){c.call(M,o),u.call(w,o)})}),u.call(w,o),y?(_.w=Math.max(m.openWidth,m.headerWidth),_.h=b.y-_.t):(_.w=b.x-_.l,_.h=Math.max(m.openHeight,m.headerHeight)),_.direction=o.direction,a&&(u.size()?function(t,e,r,n,i,a){var o,s,l,c=i.direction,u=\\\"up\\\"===c||\\\"down\\\"===c,f=i._dims,p=i.active;if(u)for(s=0,l=0;l<p;l++)s+=f.heights[l]+h.gapButton;else for(o=0,l=0;l<p;l++)o+=f.widths[l]+h.gapButton;n.enable(a,o,s),n.hbar&&n.hbar.attr(\\\"opacity\\\",\\\"0\\\").transition().attr(\\\"opacity\\\",\\\"1\\\");n.vbar&&n.vbar.attr(\\\"opacity\\\",\\\"0\\\").transition().attr(\\\"opacity\\\",\\\"1\\\")}(0,0,0,a,o,_):function(t){var e=!!t.hbar,r=!!t.vbar;e&&t.hbar.transition().attr(\\\"opacity\\\",\\\"0\\\").each(\\\"end\\\",function(){e=!1,r||t.disable()});r&&t.vbar.transition().attr(\\\"opacity\\\",\\\"0\\\").each(\\\"end\\\",function(){r=!1,e||t.disable()})}(a))}function x(t,e,r,n){t.call(b,e).call(_,e,r,n)}function b(t,e){s.ensureSingle(t,\\\"rect\\\",h.itemRectClassName,function(t){t.attr({rx:h.rx,ry:h.ry,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style(\\\"stroke-width\\\",e.borderwidth+\\\"px\\\")}function _(t,e,r,n){s.ensureSingle(t,\\\"text\\\",h.itemTextClassName,function(t){t.classed(\\\"user-select-none\\\",!0).attr({\\\"text-anchor\\\":\\\"start\\\",\\\"data-notex\\\":1})}).call(o.font,e.font).text(r.label).call(l.convertToTspans,n)}function w(t,e){var r=e.active;t.each(function(t,i){var o=n.select(this);i===r&&e.showactive&&o.select(\\\"rect.\\\"+h.itemRectClassName).call(a.fill,h.activeColor)})}function k(t){t.select(\\\"rect.\\\"+h.itemRectClassName).call(a.fill,h.hoverColor)}function M(t,e){t.select(\\\"rect.\\\"+h.itemRectClassName).call(a.fill,e.bgcolor)}function A(t,e){var r=e._dims={width1:0,height1:0,heights:[],widths:[],totalWidth:0,totalHeight:0,openWidth:0,openHeight:0,lx:0,ly:0},a=o.tester.selectAll(\\\"g.\\\"+h.dropdownButtonClassName).data(s.filterVisible(e.buttons));a.enter().append(\\\"g\\\").classed(h.dropdownButtonClassName,!0);var u=-1!==[\\\"up\\\",\\\"down\\\"].indexOf(e.direction);a.each(function(i,a){var s=n.select(this);s.call(x,e,i,t);var c=s.select(\\\".\\\"+h.itemTextClassName),p=c.node()&&o.bBox(c.node()).width,d=Math.max(p+h.textPadX,h.minWidth),g=e.font.size*f,v=l.lineCount(c),m=Math.max(g*v,h.minHeight)+h.textOffsetY;m=Math.ceil(m),d=Math.ceil(d),r.widths[a]=d,r.heights[a]=m,r.height1=Math.max(r.height1,m),r.width1=Math.max(r.width1,d),u?(r.totalWidth=Math.max(r.totalWidth,d),r.openWidth=r.totalWidth,r.totalHeight+=m+h.gapButton,r.openHeight+=m+h.gapButton):(r.totalWidth+=d+h.gapButton,r.openWidth+=d+h.gapButton,r.totalHeight=Math.max(r.totalHeight,m),r.openHeight=r.totalHeight)}),u?r.totalHeight-=h.gapButton:r.totalWidth-=h.gapButton,r.headerWidth=r.width1+h.arrowPadX,r.headerHeight=r.height1,\\\"dropdown\\\"===e.type&&(u?(r.width1+=h.arrowPadX,r.totalHeight=r.height1):r.totalWidth=r.width1,r.totalWidth+=h.arrowPadX),a.remove();var p=r.totalWidth+e.pad.l+e.pad.r,d=r.totalHeight+e.pad.t+e.pad.b,g=t._fullLayout._size;r.lx=g.l+g.w*e.x,r.ly=g.t+g.h*(1-e.y);var v=\\\"left\\\";c.isRightAnchor(e)&&(r.lx-=p,v=\\\"right\\\"),c.isCenterAnchor(e)&&(r.lx-=p/2,v=\\\"center\\\");var m=\\\"top\\\";c.isBottomAnchor(e)&&(r.ly-=d,m=\\\"bottom\\\"),c.isMiddleAnchor(e)&&(r.ly-=d/2,m=\\\"middle\\\"),r.totalWidth=Math.ceil(r.totalWidth),r.totalHeight=Math.ceil(r.totalHeight),r.lx=Math.round(r.lx),r.ly=Math.round(r.ly),i.autoMargin(t,T(e),{x:e.x,y:e.y,l:p*({right:1,center:.5}[v]||0),r:p*({left:1,center:.5}[v]||0),b:d*({top:1,middle:.5}[m]||0),t:d*({bottom:1,middle:.5}[m]||0)})}function T(t){return h.autoMarginIdRoot+t._index}function S(t,e,r,n){n=n||{};var i=t.select(\\\".\\\"+h.itemRectClassName),a=t.select(\\\".\\\"+h.itemTextClassName),s=e.borderwidth,c=r.index,u=e._dims;o.setTranslate(t,s+r.x,s+r.y);var p=-1!==[\\\"up\\\",\\\"down\\\"].indexOf(e.direction),d=n.height||(p?u.heights[c]:u.height1);i.attr({x:0,y:0,width:n.width||(p?u.width1:u.widths[c]),height:d});var g=e.font.size*f,v=(l.lineCount(a)-1)*g/2;l.positionText(a,h.textOffsetX,d/2-v+h.textOffsetY),p?r.y+=u.heights[c]+r.yPad:r.x+=u.widths[c]+r.xPad,r.index++}function E(t,e){t.attr(h.menuIndexAttrName,e||\\\"-1\\\").selectAll(\\\"g.\\\"+h.dropdownButtonClassName).remove()}e.exports=function(t){var e=t._fullLayout,r=s.filterVisible(e[h.name]);function a(e){i.autoMargin(t,T(e))}var o=e._menulayer.selectAll(\\\"g.\\\"+h.containerClassName).data(r.length>0?[0]:[]);if(o.enter().append(\\\"g\\\").classed(h.containerClassName,!0).style(\\\"cursor\\\",\\\"pointer\\\"),o.exit().each(function(){n.select(this).selectAll(\\\"g.\\\"+h.headerGroupClassName).each(a)}).remove(),0!==r.length){var l=o.selectAll(\\\"g.\\\"+h.headerGroupClassName).data(r,d);l.enter().append(\\\"g\\\").classed(h.headerGroupClassName,!0);for(var c=s.ensureSingle(o,\\\"g\\\",h.dropdownButtonGroupClassName,function(t){t.style(\\\"pointer-events\\\",\\\"all\\\")}),u=0;u<r.length;u++){var f=r[u];A(t,f)}var x=\\\"updatemenus\\\"+e._uid,b=new p(t,c,x);l.enter().size()&&(c.node().parentNode.appendChild(c.node()),c.call(E)),l.exit().each(function(t){c.call(E),a(t)}).remove(),l.each(function(e){var r=n.select(this),a=\\\"dropdown\\\"===e.type?c:null;i.manageCommandObserver(t,e,e.buttons,function(n){v(t,e,e.buttons[n.index],r,a,b,n.index,!0)}),\\\"dropdown\\\"===e.type?(m(t,r,c,b,e),g(c,e)&&y(t,r,c,b,e)):y(t,r,null,null,e)})}}},{\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/plots\\\":808,\\\"../color\\\":570,\\\"../drawing\\\":595,\\\"../legend/anchor_utils\\\":622,\\\"./constants\\\":663,\\\"./scrollbox\\\":667,d3:148}],666:[function(t,e,r){arguments[4][660][0].apply(r,arguments)},{\\\"./attributes\\\":662,\\\"./constants\\\":663,\\\"./defaults\\\":664,\\\"./draw\\\":665,dup:660}],667:[function(t,e,r){\\\"use strict\\\";e.exports=s;var n=t(\\\"d3\\\"),i=t(\\\"../color\\\"),a=t(\\\"../drawing\\\"),o=t(\\\"../../lib\\\");function s(t,e,r){this.gd=t,this.container=e,this.id=r,this.position=null,this.translateX=null,this.translateY=null,this.hbar=null,this.vbar=null,this.bg=this.container.selectAll(\\\"rect.scrollbox-bg\\\").data([0]),this.bg.exit().on(\\\".drag\\\",null).on(\\\"wheel\\\",null).remove(),this.bg.enter().append(\\\"rect\\\").classed(\\\"scrollbox-bg\\\",!0).style(\\\"pointer-events\\\",\\\"all\\\").attr({opacity:0,x:0,y:0,width:0,height:0})}s.barWidth=2,s.barLength=20,s.barRadius=2,s.barPad=1,s.barColor=\\\"#808BA4\\\",s.prototype.enable=function(t,e,r){var o=this.gd._fullLayout,l=o.width,c=o.height;this.position=t;var u,f,h,p,d=this.position.l,g=this.position.w,v=this.position.t,m=this.position.h,y=this.position.direction,x=\\\"down\\\"===y,b=\\\"left\\\"===y,_=\\\"up\\\"===y,w=g,k=m;x||b||\\\"right\\\"===y||_||(this.position.direction=\\\"down\\\",x=!0),x||_?(f=(u=d)+w,x?(h=v,k=(p=Math.min(h+k,c))-h):k=(p=v+k)-(h=Math.max(p-k,0))):(p=(h=v)+k,b?w=(f=d+w)-(u=Math.max(f-w,0)):(u=d,w=(f=Math.min(u+w,l))-u)),this._box={l:u,t:h,w:w,h:k};var M=g>w,A=s.barLength+2*s.barPad,T=s.barWidth+2*s.barPad,S=d,E=v+m;E+T>c&&(E=c-T);var C=this.container.selectAll(\\\"rect.scrollbar-horizontal\\\").data(M?[0]:[]);C.exit().on(\\\".drag\\\",null).remove(),C.enter().append(\\\"rect\\\").classed(\\\"scrollbar-horizontal\\\",!0).call(i.fill,s.barColor),M?(this.hbar=C.attr({rx:s.barRadius,ry:s.barRadius,x:S,y:E,width:A,height:T}),this._hbarXMin=S+A/2,this._hbarTranslateMax=w-A):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var L=m>k,z=s.barWidth+2*s.barPad,O=s.barLength+2*s.barPad,I=d+g,P=v;I+z>l&&(I=l-z);var D=this.container.selectAll(\\\"rect.scrollbar-vertical\\\").data(L?[0]:[]);D.exit().on(\\\".drag\\\",null).remove(),D.enter().append(\\\"rect\\\").classed(\\\"scrollbar-vertical\\\",!0).call(i.fill,s.barColor),L?(this.vbar=D.attr({rx:s.barRadius,ry:s.barRadius,x:I,y:P,width:z,height:O}),this._vbarYMin=P+O/2,this._vbarTranslateMax=k-O):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var R=this.id,B=u-.5,F=L?f+z+.5:f+.5,N=h-.5,j=M?p+T+.5:p+.5,V=o._topdefs.selectAll(\\\"#\\\"+R).data(M||L?[0]:[]);if(V.exit().remove(),V.enter().append(\\\"clipPath\\\").attr(\\\"id\\\",R).append(\\\"rect\\\"),M||L?(this._clipRect=V.select(\\\"rect\\\").attr({x:Math.floor(B),y:Math.floor(N),width:Math.ceil(F)-Math.floor(B),height:Math.ceil(j)-Math.floor(N)}),this.container.call(a.setClipUrl,R),this.bg.attr({x:d,y:v,width:g,height:m})):(this.bg.attr({width:0,height:0}),this.container.on(\\\"wheel\\\",null).on(\\\".drag\\\",null).call(a.setClipUrl,null),delete this._clipRect),M||L){var U=n.behavior.drag().on(\\\"dragstart\\\",function(){n.event.sourceEvent.preventDefault()}).on(\\\"drag\\\",this._onBoxDrag.bind(this));this.container.on(\\\"wheel\\\",null).on(\\\"wheel\\\",this._onBoxWheel.bind(this)).on(\\\".drag\\\",null).call(U);var q=n.behavior.drag().on(\\\"dragstart\\\",function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()}).on(\\\"drag\\\",this._onBarDrag.bind(this));M&&this.hbar.on(\\\".drag\\\",null).call(q),L&&this.vbar.on(\\\".drag\\\",null).call(q)}this.setTranslate(e,r)},s.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on(\\\"wheel\\\",null).on(\\\".drag\\\",null).call(a.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)},s.prototype._onBoxDrag=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t-=n.event.dx),this.vbar&&(e-=n.event.dy),this.setTranslate(t,e)},s.prototype._onBoxWheel=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t+=n.event.deltaY),this.vbar&&(e+=n.event.deltaY),this.setTranslate(t,e)},s.prototype._onBarDrag=function(){var t=this.translateX,e=this.translateY;if(this.hbar){var r=t+this._hbarXMin,i=r+this._hbarTranslateMax;t=(o.constrain(n.event.x,r,i)-r)/(i-r)*(this.position.w-this._box.w)}if(this.vbar){var a=e+this._vbarYMin,s=a+this._vbarTranslateMax;e=(o.constrain(n.event.y,a,s)-a)/(s-a)*(this.position.h-this._box.h)}this.setTranslate(t,e)},s.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=o.constrain(t||0,0,r),e=o.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(a.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(a.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var s=e/n;this.vbar.call(a.setTranslate,t,e+s*this._vbarTranslateMax)}}},{\\\"../../lib\\\":696,\\\"../color\\\":570,\\\"../drawing\\\":595,d3:148}],668:[function(t,e,r){\\\"use strict\\\";e.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,MID_SHIFT:.35,OPPOSITE_SIDE:{left:\\\"right\\\",right:\\\"left\\\",top:\\\"bottom\\\",bottom:\\\"top\\\"}}},{}],669:[function(t,e,r){\\\"use strict\\\";e.exports={COMPARISON_OPS:[\\\"=\\\",\\\"!=\\\",\\\"<\\\",\\\">=\\\",\\\">\\\",\\\"<=\\\"],COMPARISON_OPS2:[\\\"=\\\",\\\"<\\\",\\\">=\\\",\\\">\\\",\\\"<=\\\"],INTERVAL_OPS:[\\\"[]\\\",\\\"()\\\",\\\"[)\\\",\\\"(]\\\",\\\"][\\\",\\\")(\\\",\\\"](\\\",\\\")[\\\"],SET_OPS:[\\\"{}\\\",\\\"}{\\\"],CONSTRAINT_REDUCTION:{\\\"=\\\":\\\"=\\\",\\\"<\\\":\\\"<\\\",\\\"<=\\\":\\\"<\\\",\\\">\\\":\\\">\\\",\\\">=\\\":\\\">\\\",\\\"[]\\\":\\\"[]\\\",\\\"()\\\":\\\"[]\\\",\\\"[)\\\":\\\"[]\\\",\\\"(]\\\":\\\"[]\\\",\\\"][\\\":\\\"][\\\",\\\")(\\\":\\\"][\\\",\\\"](\\\":\\\"][\\\",\\\")[\\\":\\\"][\\\"}}},{}],670:[function(t,e,r){\\\"use strict\\\";e.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]}},{}],671:[function(t,e,r){\\\"use strict\\\";e.exports={circle:\\\"\\\\u25cf\\\",\\\"circle-open\\\":\\\"\\\\u25cb\\\",square:\\\"\\\\u25a0\\\",\\\"square-open\\\":\\\"\\\\u25a1\\\",diamond:\\\"\\\\u25c6\\\",\\\"diamond-open\\\":\\\"\\\\u25c7\\\",cross:\\\"+\\\",x:\\\"\\\\u274c\\\"}},{}],672:[function(t,e,r){\\\"use strict\\\";e.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DBLCLICKDELAY:300,DESELECTDIM:.2}},{}],673:[function(t,e,r){\\\"use strict\\\";e.exports={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE/1e4,ONEAVGYEAR:315576e5,ONEAVGMONTH:26298e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:1-1e-6,LOG_CLIP:10,MINUS_SIGN:\\\"\\\\u2212\\\"}},{}],674:[function(t,e,r){\\\"use strict\\\";r.xmlns=\\\"http://www.w3.org/2000/xmlns/\\\",r.svg=\\\"http://www.w3.org/2000/svg\\\",r.xlink=\\\"http://www.w3.org/1999/xlink\\\",r.svgAttrs={xmlns:r.svg,\\\"xmlns:xlink\\\":r.xlink}},{}],675:[function(t,e,r){\\\"use strict\\\";r.version=\\\"1.42.5\\\",t(\\\"es6-promise\\\").polyfill(),t(\\\"../build/plotcss\\\"),t(\\\"./fonts/mathjax_config\\\");for(var n=t(\\\"./registry\\\"),i=r.register=n.register,a=t(\\\"./plot_api\\\"),o=Object.keys(a),s=0;s<o.length;s++){var l=o[s];r[l]=a[l],i({moduleType:\\\"apiMethod\\\",name:l,fn:a[l]})}i(t(\\\"./traces/scatter\\\")),i([t(\\\"./components/fx\\\"),t(\\\"./components/legend\\\"),t(\\\"./components/annotations\\\"),t(\\\"./components/annotations3d\\\"),t(\\\"./components/shapes\\\"),t(\\\"./components/images\\\"),t(\\\"./components/updatemenus\\\"),t(\\\"./components/sliders\\\"),t(\\\"./components/rangeslider\\\"),t(\\\"./components/rangeselector\\\"),t(\\\"./components/grid\\\"),t(\\\"./components/errorbars\\\")]),i([t(\\\"./locale-en\\\"),t(\\\"./locale-en-us\\\")]),r.Icons=t(\\\"../build/ploticon\\\"),r.Plots=t(\\\"./plots/plots\\\"),r.Fx=t(\\\"./components/fx\\\"),r.Snapshot=t(\\\"./snapshot\\\"),r.PlotSchema=t(\\\"./plot_api/plot_schema\\\"),r.Queue=t(\\\"./lib/queue\\\"),r.d3=t(\\\"d3\\\")},{\\\"../build/plotcss\\\":1,\\\"../build/ploticon\\\":2,\\\"./components/annotations\\\":561,\\\"./components/annotations3d\\\":566,\\\"./components/errorbars\\\":601,\\\"./components/fx\\\":612,\\\"./components/grid\\\":616,\\\"./components/images\\\":621,\\\"./components/legend\\\":630,\\\"./components/rangeselector\\\":641,\\\"./components/rangeslider\\\":647,\\\"./components/shapes\\\":655,\\\"./components/sliders\\\":660,\\\"./components/updatemenus\\\":666,\\\"./fonts/mathjax_config\\\":676,\\\"./lib/queue\\\":711,\\\"./locale-en\\\":725,\\\"./locale-en-us\\\":724,\\\"./plot_api\\\":729,\\\"./plot_api/plot_schema\\\":733,\\\"./plots/plots\\\":808,\\\"./registry\\\":827,\\\"./snapshot\\\":832,\\\"./traces/scatter\\\":1055,d3:148,\\\"es6-promise\\\":203}],676:[function(t,e,r){\\\"use strict\\\";\\\"undefined\\\"!=typeof MathJax?(r.MathJax=!0,\\\"local\\\"!==(window.PlotlyConfig||{}).MathJaxConfig&&(MathJax.Hub.Config({messageStyle:\\\"none\\\",skipStartupTypeset:!0,displayAlign:\\\"left\\\",tex2jax:{inlineMath:[[\\\"$\\\",\\\"$\\\"],[\\\"\\\\\\\\(\\\",\\\"\\\\\\\\)\\\"]]}}),MathJax.Hub.Configured())):r.MathJax=!1},{}],677:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./mod\\\"),i=n.mod,a=n.modHalf,o=Math.PI,s=2*o;function l(t){return Math.abs(t[1]-t[0])>s-1e-15}function c(t,e){return a(e-t,s)}function u(t,e){if(l(e))return!0;var r,n;e[0]<e[1]?(r=e[0],n=e[1]):(r=e[1],n=e[0]),(r=i(r,s))>(n=i(n,s))&&(n+=s);var a=i(t,s),o=a+s;return a>=r&&a<=n||o>=r&&o<=n}function f(t,e,r,n,i,a,c){i=i||0,a=a||0;var u,f,h,p,d,g=l([r,n]);function v(t,e){return[t*Math.cos(e)+i,a-t*Math.sin(e)]}g?(u=0,f=o,h=s):r<n?(u=r,h=n):(u=n,h=r),t<e?(p=t,d=e):(p=e,d=t);var m,y=Math.abs(h-u)<=o?0:1;function x(t,e,r){return\\\"A\\\"+[t,t]+\\\" \\\"+[0,y,r]+\\\" \\\"+v(t,e)}return g?m=null===p?\\\"M\\\"+v(d,u)+x(d,f,0)+x(d,h,0)+\\\"Z\\\":\\\"M\\\"+v(p,u)+x(p,f,0)+x(p,h,0)+\\\"ZM\\\"+v(d,u)+x(d,f,1)+x(d,h,1)+\\\"Z\\\":null===p?(m=\\\"M\\\"+v(d,u)+x(d,h,0),c&&(m+=\\\"L0,0Z\\\")):m=\\\"M\\\"+v(p,u)+\\\"L\\\"+v(d,u)+x(d,h,0)+\\\"L\\\"+v(p,h)+x(p,u,1)+\\\"Z\\\",m}e.exports={deg2rad:function(t){return t/180*o},rad2deg:function(t){return t/o*180},angleDelta:c,angleDist:function(t,e){return Math.abs(c(t,e))},isFullCircle:l,isAngleInsideSector:u,isPtInsideSector:function(t,e,r,n){return!!u(e,n)&&(r[0]<r[1]?(i=r[0],a=r[1]):(i=r[1],a=r[0]),t>=i&&t<=a);var i,a},pathArc:function(t,e,r,n,i){return f(null,t,e,r,n,i,0)},pathSector:function(t,e,r,n,i){return f(null,t,e,r,n,i,1)},pathAnnulus:function(t,e,r,n,i,a){return f(t,e,r,n,i,a,1)}}},{\\\"./mod\\\":703}],678:[function(t,e,r){\\\"use strict\\\";var n=Array.isArray,i=\\\"undefined\\\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer:{isView:function(){return!1}},a=\\\"undefined\\\"==typeof DataView?function(){}:DataView;function o(t){return i.isView(t)&&!(t instanceof a)}function s(t){return n(t)||o(t)}r.isTypedArray=o,r.isArrayOrTypedArray=s,r.isArray1D=function(t){return!s(t[0])},r.ensureArray=function(t,e){return n(t)||(t=[]),t.length=e,t},r.concat=function(){var t,e,r,i,a,o,s,l,c=[],u=!0,f=0;for(r=0;r<arguments.length;r++)(o=(i=arguments[r]).length)&&(e?c.push(i):(e=i,a=o),n(i)?t=!1:(u=!1,f?t!==i.constructor&&(t=!1):t=i.constructor),f+=o);if(!f)return[];if(!c.length)return e;if(u)return e.concat.apply(e,c);if(t){for((s=new t(f)).set(e),r=0;r<c.length;r++)i=c[r],s.set(i,a),a+=i.length;return s}for(s=new Array(f),l=0;l<e.length;l++)s[l]=e[l];for(r=0;r<c.length;r++){for(i=c[r],l=0;l<i.length;l++)s[a+l]=i[l];a+=l}return s}},{}],679:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../constants/numerical\\\").BADNUM,a=/^['\\\"%,$#\\\\s']+|[, ]|['\\\"%,$#\\\\s']+$/g;e.exports=function(t){return\\\"string\\\"==typeof t&&(t=t.replace(a,\\\"\\\")),n(t)?Number(t):i}},{\\\"../constants/numerical\\\":673,\\\"fast-isnumeric\\\":214}],680:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t._fullLayout;e._glcanvas&&e._glcanvas.size()&&e._glcanvas.each(function(t){t.regl&&t.regl.clear({color:!0,depth:!0})})}},{}],681:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){t._responsiveChartHandler&&(window.removeEventListener(\\\"resize\\\",t._responsiveChartHandler),delete t._responsiveChartHandler)}},{}],682:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../plots/attributes\\\"),o=t(\\\"../components/colorscale/get_scale\\\"),s=(Object.keys(t(\\\"../components/colorscale/scales\\\")),t(\\\"./nested_property\\\")),l=t(\\\"./regex\\\").counter,c=t(\\\"../constants/interactions\\\").DESELECTDIM,u=t(\\\"./mod\\\").modHalf,f=t(\\\"./array\\\").isArrayOrTypedArray;function h(t,e){var n=r.valObjectMeta[e.valType];if(e.arrayOk&&f(t))return!0;if(n.validateFunction)return n.validateFunction(t,e);var i={},a=i,o={set:function(t){a=t}};return n.coerceFunction(t,o,i,e),a!==i}r.valObjectMeta={data_array:{coerceFunction:function(t,e,r){f(t)?e.set(t):void 0!==r&&e.set(r)}},enumerated:{coerceFunction:function(t,e,r,n){n.coerceNumber&&(t=+t),-1===n.values.indexOf(t)?e.set(r):e.set(t)},validateFunction:function(t,e){e.coerceNumber&&(t=+t);for(var r=e.values,n=0;n<r.length;n++){var i=String(r[n]);if(\\\"/\\\"===i.charAt(0)&&\\\"/\\\"===i.charAt(i.length-1)){if(new RegExp(i.substr(1,i.length-2)).test(t))return!0}else if(t===r[n])return!0}return!1}},boolean:{coerceFunction:function(t,e,r){!0===t||!1===t?e.set(t):e.set(r)}},number:{coerceFunction:function(t,e,r,i){!n(t)||void 0!==i.min&&t<i.min||void 0!==i.max&&t>i.max?e.set(r):e.set(+t)}},integer:{coerceFunction:function(t,e,r,i){t%1||!n(t)||void 0!==i.min&&t<i.min||void 0!==i.max&&t>i.max?e.set(r):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if(\\\"string\\\"!=typeof t){var i=\\\"number\\\"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){i(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every(function(t){return i(t).isValid()})?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(o(t,r))}},angle:{coerceFunction:function(t,e,r){\\\"auto\\\"===t?e.set(\\\"auto\\\"):n(t)?e.set(u(+t,360)):e.set(r)}},subplotid:{coerceFunction:function(t,e,r,n){var i=n.regex||l(r);\\\"string\\\"==typeof t&&i.test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||\\\"string\\\"==typeof t&&!!l(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if(\\\"string\\\"==typeof t)if(-1===(n.extras||[]).indexOf(t)){for(var i=t.split(\\\"+\\\"),a=0;a<i.length;){var o=i[a];-1===n.flags.indexOf(o)||i.indexOf(o)<a?i.splice(a,1):a++}i.length?e.set(i.join(\\\"+\\\")):e.set(r)}else e.set(t);else e.set(r)}},any:{coerceFunction:function(t,e,r){void 0===t?e.set(r):e.set(t)}},info_array:{coerceFunction:function(t,e,n,i){function a(t,e,n){var i,a={set:function(t){i=t}};return void 0===n&&(n=e.dflt),r.valObjectMeta[e.valType].coerceFunction(t,a,n,e),i}var o=2===i.dimensions||\\\"1-2\\\"===i.dimensions&&Array.isArray(t)&&Array.isArray(t[0]);if(Array.isArray(t)){var s,l,c,u,f,h,p=i.items,d=[],g=Array.isArray(p),v=g&&o&&Array.isArray(p[0]),m=o&&g&&!v,y=g&&!m?p.length:t.length;if(n=Array.isArray(n)?n:[],o)for(s=0;s<y;s++)for(d[s]=[],c=Array.isArray(t[s])?t[s]:[],f=m?p.length:g?p[s].length:c.length,l=0;l<f;l++)u=m?p[l]:g?p[s][l]:p,void 0!==(h=a(c[l],u,(n[s]||[])[l]))&&(d[s][l]=h);else for(s=0;s<y;s++)void 0!==(h=a(t[s],g?p[s]:p,n[s]))&&(d[s]=h);e.set(d)}else e.set(n)},validateFunction:function(t,e){if(!Array.isArray(t))return!1;var r=e.items,n=Array.isArray(r),i=2===e.dimensions;if(!e.freeLength&&t.length!==r.length)return!1;for(var a=0;a<t.length;a++)if(i){if(!Array.isArray(t[a])||!e.freeLength&&t[a].length!==r[a].length)return!1;for(var o=0;o<t[a].length;o++)if(!h(t[a][o],n?r[a][o]:r))return!1}else if(!h(t[a],n?r[a]:r))return!1;return!0}}},r.coerce=function(t,e,n,i,a){var o=s(n,i).get(),l=s(t,i),c=s(e,i),u=l.get(),p=e._template;if(void 0===u&&p&&(u=s(p,i).get(),p=0),void 0===a&&(a=o.dflt),o.arrayOk&&f(u))return c.set(u),u;var d=r.valObjectMeta[o.valType].coerceFunction;d(u,c,a,o);var g=c.get();return p&&g===a&&!h(u,o)&&(d(u=s(p,i).get(),c,a,o),g=c.get()),g},r.coerce2=function(t,e,n,i,a){var o=s(t,i),l=r.coerce(t,e,n,i,a),c=o.get();return null!=c&&l},r.coerceFont=function(t,e,r){var n={};return r=r||{},n.family=t(e+\\\".family\\\",r.family),n.size=t(e+\\\".size\\\",r.size),n.color=t(e+\\\".color\\\",r.color),n},r.coerceHoverinfo=function(t,e,n){var i,o=e._module.attributes,s=o.hoverinfo?o:a,l=s.hoverinfo;if(1===n._dataLength){var c=\\\"all\\\"===l.dflt?l.flags.slice():l.dflt.split(\\\"+\\\");c.splice(c.indexOf(\\\"name\\\"),1),i=c.join(\\\"+\\\")}return r.coerce(t,e,s,\\\"hoverinfo\\\",i)},r.coerceSelectionMarkerOpacity=function(t,e){if(t.marker){var r,n,i=t.marker.opacity;if(void 0!==i)f(i)||t.selected||t.unselected||(r=i,n=c*i),e(\\\"selected.marker.opacity\\\",r),e(\\\"unselected.marker.opacity\\\",n)}},r.validate=h},{\\\"../components/colorscale/get_scale\\\":583,\\\"../components/colorscale/scales\\\":589,\\\"../constants/interactions\\\":672,\\\"../plots/attributes\\\":741,\\\"./array\\\":678,\\\"./mod\\\":703,\\\"./nested_property\\\":704,\\\"./regex\\\":712,\\\"fast-isnumeric\\\":214,tinycolor2:514}],683:[function(t,e,r){\\\"use strict\\\";var n,i,a=t(\\\"d3\\\"),o=t(\\\"fast-isnumeric\\\"),s=t(\\\"./loggers\\\"),l=t(\\\"./mod\\\").mod,c=t(\\\"../constants/numerical\\\"),u=c.BADNUM,f=c.ONEDAY,h=c.ONEHOUR,p=c.ONEMIN,d=c.ONESEC,g=c.EPOCHJD,v=t(\\\"../registry\\\"),m=a.time.format.utc,y=/^\\\\s*(-?\\\\d\\\\d\\\\d\\\\d|\\\\d\\\\d)(-(\\\\d?\\\\d)(-(\\\\d?\\\\d)([ Tt]([01]?\\\\d|2[0-3])(:([0-5]\\\\d)(:([0-5]\\\\d(\\\\.\\\\d+)?))?(Z|z|[+\\\\-]\\\\d\\\\d:?\\\\d\\\\d)?)?)?)?)?\\\\s*$/m,x=/^\\\\s*(-?\\\\d\\\\d\\\\d\\\\d|\\\\d\\\\d)(-(\\\\d?\\\\di?)(-(\\\\d?\\\\d)([ Tt]([01]?\\\\d|2[0-3])(:([0-5]\\\\d)(:([0-5]\\\\d(\\\\.\\\\d+)?))?(Z|z|[+\\\\-]\\\\d\\\\d:?\\\\d\\\\d)?)?)?)?)?\\\\s*$/m,b=(new Date).getFullYear()-70;function _(t){return t&&v.componentsRegistry.calendars&&\\\"string\\\"==typeof t&&\\\"gregorian\\\"!==t}function w(t,e){return String(t+Math.pow(10,e)).substr(1)}r.dateTick0=function(t,e){return _(t)?e?v.getComponentMethod(\\\"calendars\\\",\\\"CANONICAL_SUNDAY\\\")[t]:v.getComponentMethod(\\\"calendars\\\",\\\"CANONICAL_TICK\\\")[t]:e?\\\"2000-01-02\\\":\\\"2000-01-01\\\"},r.dfltRange=function(t){return _(t)?v.getComponentMethod(\\\"calendars\\\",\\\"DFLTRANGE\\\")[t]:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"]},r.isJSDate=function(t){return\\\"object\\\"==typeof t&&null!==t&&\\\"function\\\"==typeof t.getTime},r.dateTime2ms=function(t,e){if(r.isJSDate(t)){var a=t.getTimezoneOffset()*p,o=(t.getUTCMinutes()-t.getMinutes())*p+(t.getUTCSeconds()-t.getSeconds())*d+(t.getUTCMilliseconds()-t.getMilliseconds());if(o){var s=3*p;a=a-s/2+l(o-a+s/2,s)}return(t=Number(t)-a)>=n&&t<=i?t:u}if(\\\"string\\\"!=typeof t&&\\\"number\\\"!=typeof t)return u;t=String(t);var c=_(e),m=t.charAt(0);!c||\\\"G\\\"!==m&&\\\"g\\\"!==m||(t=t.substr(1),e=\\\"\\\");var w=c&&\\\"chinese\\\"===e.substr(0,7),k=t.match(w?x:y);if(!k)return u;var M=k[1],A=k[3]||\\\"1\\\",T=Number(k[5]||1),S=Number(k[7]||0),E=Number(k[9]||0),C=Number(k[11]||0);if(c){if(2===M.length)return u;var L;M=Number(M);try{var z=v.getComponentMethod(\\\"calendars\\\",\\\"getCal\\\")(e);if(w){var O=\\\"i\\\"===A.charAt(A.length-1);A=parseInt(A,10),L=z.newDate(M,z.toMonthIndex(M,A,O),T)}else L=z.newDate(M,Number(A),T)}catch(t){return u}return L?(L.toJD()-g)*f+S*h+E*p+C*d:u}M=2===M.length?(Number(M)+2e3-b)%100+b:Number(M),A-=1;var I=new Date(Date.UTC(2e3,A,T,S,E));return I.setUTCFullYear(M),I.getUTCMonth()!==A?u:I.getUTCDate()!==T?u:I.getTime()+C*d},n=r.MIN_MS=r.dateTime2ms(\\\"-9999\\\"),i=r.MAX_MS=r.dateTime2ms(\\\"9999-12-31 23:59:59.9999\\\"),r.isDateTime=function(t,e){return r.dateTime2ms(t,e)!==u};var k=90*f,M=3*h,A=5*p;function T(t,e,r,n,i){if((e||r||n||i)&&(t+=\\\" \\\"+w(e,2)+\\\":\\\"+w(r,2),(n||i)&&(t+=\\\":\\\"+w(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+=\\\".\\\"+w(i,a)}return t}r.ms2DateTime=function(t,e,r){if(\\\"number\\\"!=typeof t||!(t>=n&&t<=i))return u;e||(e=0);var a,o,s,c,y,x,b=Math.floor(10*l(t+.05,1)),w=Math.round(t-b/10);if(_(r)){var S=Math.floor(w/f)+g,E=Math.floor(l(t,f));try{a=v.getComponentMethod(\\\"calendars\\\",\\\"getCal\\\")(r).fromJD(S).formatDate(\\\"yyyy-mm-dd\\\")}catch(t){a=m(\\\"G%Y-%m-%d\\\")(new Date(w))}if(\\\"-\\\"===a.charAt(0))for(;a.length<11;)a=\\\"-0\\\"+a.substr(1);else for(;a.length<10;)a=\\\"0\\\"+a;o=e<k?Math.floor(E/h):0,s=e<k?Math.floor(E%h/p):0,c=e<M?Math.floor(E%p/d):0,y=e<A?E%d*10+b:0}else x=new Date(w),a=m(\\\"%Y-%m-%d\\\")(x),o=e<k?x.getUTCHours():0,s=e<k?x.getUTCMinutes():0,c=e<M?x.getUTCSeconds():0,y=e<A?10*x.getUTCMilliseconds()+b:0;return T(a,o,s,c,y)},r.ms2DateTimeLocal=function(t){if(!(t>=n+f&&t<=i-f))return u;var e=Math.floor(10*l(t+.05,1)),r=new Date(Math.round(t-e/10));return T(a.time.format(\\\"%Y-%m-%d\\\")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+e)},r.cleanDate=function(t,e,n){if(t===u)return e;if(r.isJSDate(t)||\\\"number\\\"==typeof t&&isFinite(t)){if(_(n))return s.error(\\\"JS Dates and milliseconds are incompatible with world calendars\\\",t),e;if(!(t=r.ms2DateTimeLocal(+t))&&void 0!==e)return e}else if(!r.isDateTime(t,n))return s.error(\\\"unrecognized date\\\",t),e;return t};var S=/%\\\\d?f/g;function E(t,e,r,n){t=t.replace(S,function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,\\\"\\\")||\\\"0\\\"});var i=new Date(Math.floor(e+.05));if(_(n))try{t=v.getComponentMethod(\\\"calendars\\\",\\\"worldCalFmt\\\")(t,e,n)}catch(t){return\\\"Invalid\\\"}return r(t)(i)}var C=[59,59.9,59.99,59.999,59.9999];r.formatDate=function(t,e,r,n,i,a){if(i=_(i)&&i,!e)if(\\\"y\\\"===r)e=a.year;else if(\\\"m\\\"===r)e=a.month;else{if(\\\"d\\\"!==r)return function(t,e){var r=l(t+.05,f),n=w(Math.floor(r/h),2)+\\\":\\\"+w(l(Math.floor(r/p),60),2);if(\\\"M\\\"!==e){o(e)||(e=0);var i=(100+Math.min(l(t/d,60),C[e])).toFixed(e).substr(1);e>0&&(i=i.replace(/0+$/,\\\"\\\").replace(/[\\\\.]$/,\\\"\\\")),n+=\\\":\\\"+i}return n}(t,r)+\\\"\\\\n\\\"+E(a.dayMonthYear,t,n,i);e=a.dayMonth+\\\"\\\\n\\\"+a.year}return E(e,t,n,i)};var L=3*f;r.incrementMonth=function(t,e,r){r=_(r)&&r;var n=l(t,f);if(t=Math.round(t-n),r)try{var i=Math.round(t/f)+g,a=v.getComponentMethod(\\\"calendars\\\",\\\"getCal\\\")(r),o=a.fromJD(i);return e%12?a.add(o,e,\\\"m\\\"):a.add(o,e/12,\\\"y\\\"),(o.toJD()-g)*f+n}catch(e){s.error(\\\"invalid ms \\\"+t+\\\" in calendar \\\"+r)}var c=new Date(t+L);return c.setUTCMonth(c.getUTCMonth()+e)+n-L},r.findExactDates=function(t,e){for(var r,n,i=0,a=0,s=0,l=0,c=_(e)&&v.getComponentMethod(\\\"calendars\\\",\\\"getCal\\\")(e),u=0;u<t.length;u++)if(n=t[u],o(n)){if(!(n%f))if(c)try{1===(r=c.fromJD(n/f+g)).day()?1===r.month()?i++:a++:s++}catch(t){}else 1===(r=new Date(n)).getUTCDate()?0===r.getUTCMonth()?i++:a++:s++}else l++;s+=a+=i;var h=t.length-l;return{exactYears:i/h,exactMonths:a/h,exactDays:s/h}}},{\\\"../constants/numerical\\\":673,\\\"../registry\\\":827,\\\"./loggers\\\":700,\\\"./mod\\\":703,d3:148,\\\"fast-isnumeric\\\":214}],684:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"events\\\").EventEmitter,i={init:function(t){if(t._ev instanceof n)return t;var e=new n,r=new n;return t._ev=e,t._internalEv=r,t.on=e.on.bind(e),t.once=e.once.bind(e),t.removeListener=e.removeListener.bind(e),t.removeAllListeners=e.removeAllListeners.bind(e),t._internalOn=r.on.bind(r),t._internalOnce=r.once.bind(r),t._removeInternalListener=r.removeListener.bind(r),t._removeAllInternalListeners=r.removeAllListeners.bind(r),t.emit=function(n,i){\\\"undefined\\\"!=typeof jQuery&&jQuery(t).trigger(n,i),e.emit(n,i),r.emit(n,i)},t},triggerHandler:function(t,e,r){var n,i;\\\"undefined\\\"!=typeof jQuery&&(n=jQuery(t).triggerHandler(e,r));var a=t._ev;if(!a)return n;var o,s=a._events[e];if(!s)return n;function l(t){return t.listener?(a.removeListener(e,t.listener),t.fired?void 0:(t.fired=!0,t.listener.apply(a,[r]))):t.apply(a,[r])}for(s=Array.isArray(s)?s:[s],o=0;o<s.length-1;o++)l(s[o]);return i=l(s[o]),void 0!==n?n:i},purge:function(t){return delete t._ev,delete t.on,delete t.once,delete t.removeListener,delete t.removeAllListeners,delete t.emit,delete t._ev,delete t._internalEv,delete t._internalOn,delete t._internalOnce,delete t._removeInternalListener,delete t._removeAllInternalListeners,t}};e.exports=i},{events:92}],685:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is_plain_object.js\\\"),i=Array.isArray;function a(t,e,r,o){var s,l,c,u,f,h,p=t[0],d=t.length;if(2===d&&i(p)&&i(t[1])&&0===p.length){if(function(t,e){var r,n;for(r=0;r<t.length;r++){if(null!==(n=t[r])&&\\\"object\\\"==typeof n)return!1;void 0!==n&&(e[r]=n)}return!0}(t[1],p))return p;p.splice(0,p.length)}for(var g=1;g<d;g++)for(l in s=t[g])c=p[l],u=s[l],o&&i(u)?p[l]=u:e&&u&&(n(u)||(f=i(u)))?(f?(f=!1,h=c&&i(c)?c:[]):h=c&&n(c)?c:{},p[l]=a([h,u],e,r,o)):(\\\"undefined\\\"!=typeof u||r)&&(p[l]=u);return p}r.extendFlat=function(){return a(arguments,!1,!1,!1)},r.extendDeep=function(){return a(arguments,!0,!1,!1)},r.extendDeepAll=function(){return a(arguments,!0,!0,!1)},r.extendDeepNoArrays=function(){return a(arguments,!0,!1,!0)}},{\\\"./is_plain_object.js\\\":697}],686:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e={},r=[],n=0,i=0;i<t.length;i++){var a=t[i];1!==e[a]&&(e[a]=1,r[n++]=a)}return r}},{}],687:[function(t,e,r){\\\"use strict\\\";function n(t){return!0===t.visible}function i(t){return!0===t[0].trace.visible}e.exports=function(t){for(var e,r=(e=t,Array.isArray(e)&&Array.isArray(e[0])&&e[0][0]&&e[0][0].trace?i:n),a=[],o=0;o<t.length;o++){var s=t[o];r(s)&&a.push(s)}return a}},{}],688:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"country-regex\\\"),i=t(\\\"../lib\\\"),a=Object.keys(n),o={\\\"ISO-3\\\":i.identity,\\\"USA-states\\\":i.identity,\\\"country names\\\":function(t){for(var e=0;e<a.length;e++){var r=a[e],o=new RegExp(n[r]);if(o.test(t.trim().toLowerCase()))return r}return i.log(\\\"Unrecognized country name: \\\"+t+\\\".\\\"),!1}};r.locationToFeature=function(t,e,r){if(!e||\\\"string\\\"!=typeof e)return!1;var n=function(t,e){return(0,o[t])(e)}(t,e);if(n){for(var a=0;a<r.length;a++){var s=r[a];if(s.id===n)return s}i.log([\\\"Location with id\\\",n,\\\"does not have a matching topojson feature at this resolution.\\\"].join(\\\" \\\"))}return!1}},{\\\"../lib\\\":696,\\\"country-regex\\\":122}],689:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../constants/numerical\\\").BADNUM;r.calcTraceToLineCoords=function(t){for(var e=t[0].trace.connectgaps,r=[],i=[],a=0;a<t.length;a++){var o=t[a].lonlat;o[0]!==n?i.push(o):!e&&i.length>0&&(r.push(i),i=[])}return i.length>0&&r.push(i),r},r.makeLine=function(t){return 1===t.length?{type:\\\"LineString\\\",coordinates:t[0]}:{type:\\\"MultiLineString\\\",coordinates:t}},r.makePolygon=function(t){if(1===t.length)return{type:\\\"Polygon\\\",coordinates:t};for(var e=new Array(t.length),r=0;r<t.length;r++)e[r]=[t[r]];return{type:\\\"MultiPolygon\\\",coordinates:e}},r.makeBlank=function(){return{type:\\\"Point\\\",coordinates:[]}}},{\\\"../constants/numerical\\\":673}],690:[function(t,e,r){\\\"use strict\\\";var n,i,a,o=t(\\\"./mod\\\").mod;function s(t,e,r,n,i,a,o,s){var l=r-t,c=i-t,u=o-i,f=n-e,h=a-e,p=s-a,d=l*p-u*f;if(0===d)return null;var g=(c*p-u*h)/d,v=(c*f-l*h)/d;return v<0||v>1||g<0||g>1?null:{x:t+l*g,y:e+f*g}}function l(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}r.segmentsIntersect=s,r.segmentDistance=function(t,e,r,n,i,a,o,c){if(s(t,e,r,n,i,a,o,c))return 0;var u=r-t,f=n-e,h=o-i,p=c-a,d=u*u+f*f,g=h*h+p*p,v=Math.min(l(u,f,d,i-t,a-e),l(u,f,d,o-t,c-e),l(h,p,g,t-i,e-a),l(h,p,g,r-i,n-a));return Math.sqrt(v)},r.getTextLocation=function(t,e,r,s){if(t===i&&s===a||(n={},i=t,a=s),n[r])return n[r];var l=t.getPointAtLength(o(r-s/2,e)),c=t.getPointAtLength(o(r+s/2,e)),u=Math.atan((c.y-l.y)/(c.x-l.x)),f=t.getPointAtLength(o(r,e)),h={x:(4*f.x+l.x+c.x)/6,y:(4*f.y+l.y+c.y)/6,theta:u};return n[r]=h,h},r.clearLocationCache=function(){i=null},r.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,c=0,u=t.getTotalLength(),f=u;function h(e){var r=t.getPointAtLength(e);0===e?n=r:e===u&&(i=r);var c=r.x<a?a-r.x:r.x>o?r.x-o:0,f=r.y<s?s-r.y:r.y>l?r.y-l:0;return Math.sqrt(c*c+f*f)}for(var p=h(c);p;){if((c+=p+r)>f)return;p=h(c)}for(p=h(f);p;){if(c>(f-=p+r))return;p=h(f)}return{min:c,max:f,len:f-c,total:u,isClosed:0===c&&f===u&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},r.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,c=n.iterationLimit||30,u=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,f=0,h=0,p=s;f<c;){if(i=(h+p)/2,o=(a=t.getPointAtLength(i))[r]-e,Math.abs(o)<l)return a;u*o>0?p=i:h=i,f++}return a}},{\\\"./mod\\\":703}],691:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e;if(\\\"string\\\"==typeof t){if(null===(e=document.getElementById(t)))throw new Error(\\\"No DOM element with id '\\\"+t+\\\"' exists on the page.\\\");return e}if(null==t)throw new Error(\\\"DOM element provided is null or undefined\\\");return t}},{}],692:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"color-normalize\\\"),o=t(\\\"../components/colorscale\\\"),s=t(\\\"../components/color/attributes\\\").defaultLine,l=t(\\\"./array\\\").isArrayOrTypedArray,c=a(s),u=1;function f(t,e){var r=t;return r[3]*=e,r}function h(t){if(n(t))return c;var e=a(t);return e.length?e:c}function p(t){return n(t)?t:u}e.exports={formatColor:function(t,e,r){var n,i,s,d,g,v=t.color,m=l(v),y=l(e),x=[];if(n=void 0!==t.colorscale?o.makeColorScaleFunc(o.extractScale(t.colorscale,t.cmin,t.cmax)):h,i=m?function(t,e){return void 0===t[e]?c:a(n(t[e]))}:h,s=y?function(t,e){return void 0===t[e]?u:p(t[e])}:p,m||y)for(var b=0;b<r;b++)d=i(v,b),g=s(e,b),x[b]=f(d,g);else x=f(a(v),e);return x},parseColorScale:function(t,e){return void 0===e&&(e=1),t.map(function(t){var r=t[0],n=i(t[1]).toRgb();return{index:r,rgb:[n.r,n.g,n.b,e]}})}}},{\\\"../components/color/attributes\\\":569,\\\"../components/colorscale\\\":585,\\\"./array\\\":678,\\\"color-normalize\\\":108,\\\"fast-isnumeric\\\":214,tinycolor2:514}],693:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./identity\\\");function i(t){return[t]}e.exports={keyFun:function(t){return t.key},repeat:i,descend:n,wrap:i,unwrap:function(t){return t[0]}}},{\\\"./identity\\\":695}],694:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"superscript-text\\\"),i=t(\\\"./svg_text_utils\\\").convertEntities;e.exports=function(t){return\\\"\\\"+i(function(t){return t.replace(/\\\\<.*\\\\>/g,\\\"\\\")}(function(t){for(var e=0;(e=t.indexOf(\\\"<sup>\\\",e))>=0;){var r=t.indexOf(\\\"</sup>\\\",e);if(r<e)break;t=t.slice(0,e)+n(t.slice(e+5,r))+t.slice(r+6)}return t}(t.replace(/\\\\<br\\\\>/g,\\\"\\\\n\\\"))))}},{\\\"./svg_text_utils\\\":720,\\\"superscript-text\\\":507}],695:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t}},{}],696:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../constants/numerical\\\"),o=a.FP_SAFE,s=a.BADNUM,l=e.exports={};l.nestedProperty=t(\\\"./nested_property\\\"),l.keyedContainer=t(\\\"./keyed_container\\\"),l.relativeAttr=t(\\\"./relative_attr\\\"),l.isPlainObject=t(\\\"./is_plain_object\\\"),l.toLogRange=t(\\\"./to_log_range\\\"),l.relinkPrivateKeys=t(\\\"./relink_private\\\");var c=t(\\\"./array\\\");l.isTypedArray=c.isTypedArray,l.isArrayOrTypedArray=c.isArrayOrTypedArray,l.isArray1D=c.isArray1D,l.ensureArray=c.ensureArray,l.concat=c.concat;var u=t(\\\"./mod\\\");l.mod=u.mod,l.modHalf=u.modHalf;var f=t(\\\"./coerce\\\");l.valObjectMeta=f.valObjectMeta,l.coerce=f.coerce,l.coerce2=f.coerce2,l.coerceFont=f.coerceFont,l.coerceHoverinfo=f.coerceHoverinfo,l.coerceSelectionMarkerOpacity=f.coerceSelectionMarkerOpacity,l.validate=f.validate;var h=t(\\\"./dates\\\");l.dateTime2ms=h.dateTime2ms,l.isDateTime=h.isDateTime,l.ms2DateTime=h.ms2DateTime,l.ms2DateTimeLocal=h.ms2DateTimeLocal,l.cleanDate=h.cleanDate,l.isJSDate=h.isJSDate,l.formatDate=h.formatDate,l.incrementMonth=h.incrementMonth,l.dateTick0=h.dateTick0,l.dfltRange=h.dfltRange,l.findExactDates=h.findExactDates,l.MIN_MS=h.MIN_MS,l.MAX_MS=h.MAX_MS;var p=t(\\\"./search\\\");l.findBin=p.findBin,l.sorterAsc=p.sorterAsc,l.sorterDes=p.sorterDes,l.distinctVals=p.distinctVals,l.roundUp=p.roundUp,l.sort=p.sort,l.findIndexOfMin=p.findIndexOfMin;var d=t(\\\"./stats\\\");l.aggNums=d.aggNums,l.len=d.len,l.mean=d.mean,l.midRange=d.midRange,l.variance=d.variance,l.stdev=d.stdev,l.interp=d.interp;var g=t(\\\"./matrix\\\");l.init2dArray=g.init2dArray,l.transposeRagged=g.transposeRagged,l.dot=g.dot,l.translationMatrix=g.translationMatrix,l.rotationMatrix=g.rotationMatrix,l.rotationXYMatrix=g.rotationXYMatrix,l.apply2DTransform=g.apply2DTransform,l.apply2DTransform2=g.apply2DTransform2;var v=t(\\\"./angles\\\");l.deg2rad=v.deg2rad,l.rad2deg=v.rad2deg,l.angleDelta=v.angleDelta,l.angleDist=v.angleDist,l.isFullCircle=v.isFullCircle,l.isAngleInsideSector=v.isAngleInsideSector,l.isPtInsideSector=v.isPtInsideSector,l.pathArc=v.pathArc,l.pathSector=v.pathSector,l.pathAnnulus=v.pathAnnulus;var m=t(\\\"./geometry2d\\\");l.segmentsIntersect=m.segmentsIntersect,l.segmentDistance=m.segmentDistance,l.getTextLocation=m.getTextLocation,l.clearLocationCache=m.clearLocationCache,l.getVisibleSegment=m.getVisibleSegment,l.findPointOnPath=m.findPointOnPath;var y=t(\\\"./extend\\\");l.extendFlat=y.extendFlat,l.extendDeep=y.extendDeep,l.extendDeepAll=y.extendDeepAll,l.extendDeepNoArrays=y.extendDeepNoArrays;var x=t(\\\"./loggers\\\");l.log=x.log,l.warn=x.warn,l.error=x.error;var b=t(\\\"./regex\\\");l.counterRegex=b.counter;var _=t(\\\"./throttle\\\");function w(t){var e={};for(var r in t)for(var n=t[r],i=0;i<n.length;i++)e[n[i]]=+r;return e}l.throttle=_.throttle,l.throttleDone=_.done,l.clearThrottle=_.clear,l.getGraphDiv=t(\\\"./get_graph_div\\\"),l.clearResponsive=t(\\\"./clear_responsive\\\"),l.makeTraceGroups=t(\\\"./make_trace_groups\\\"),l._=t(\\\"./localize\\\"),l.notifier=t(\\\"./notifier\\\"),l.filterUnique=t(\\\"./filter_unique\\\"),l.filterVisible=t(\\\"./filter_visible\\\"),l.pushUnique=t(\\\"./push_unique\\\"),l.cleanNumber=t(\\\"./clean_number\\\"),l.ensureNumber=function(t){return i(t)?(t=Number(t))<-o||t>o?s:i(t)?Number(t):s:s},l.isIndex=function(t,e){return!(void 0!==e&&t>=e)&&(i(t)&&t>=0&&t%1==0)},l.noop=t(\\\"./noop\\\"),l.identity=t(\\\"./identity\\\"),l.repeat=function(t,e){for(var r=new Array(e),n=0;n<e;n++)r[n]=t;return r},l.swapAttrs=function(t,e,r,n){r||(r=\\\"x\\\"),n||(n=\\\"y\\\");for(var i=0;i<e.length;i++){var a=e[i],o=l.nestedProperty(t,a.replace(\\\"?\\\",r)),s=l.nestedProperty(t,a.replace(\\\"?\\\",n)),c=o.get();o.set(s.get()),s.set(c)}},l.raiseToTop=function(t){t.parentNode.appendChild(t)},l.cancelTransition=function(t){return t.transition().duration(0)},l.constrain=function(t,e,r){return e>r?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},l.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},l.simpleMap=function(t,e,r,n){for(var i=t.length,a=new Array(i),o=0;o<i;o++)a[o]=e(t[o],r,n);return a},l.randstr=function t(e,r,n,i){if(n||(n=16),void 0===r&&(r=24),r<=0)return\\\"0\\\";var a,o,s=Math.log(Math.pow(2,r))/Math.log(n),c=\\\"\\\";for(a=2;s===1/0;a*=2)s=Math.log(Math.pow(2,r/a))/Math.log(n)*a;var u=s-Math.floor(s);for(a=0;a<Math.floor(s);a++)c=Math.floor(Math.random()*n).toString(n)+c;u&&(o=Math.pow(n,u),c=Math.floor(Math.random()*o).toString(n)+c);var f=parseInt(c,n);return e&&e[c]||f!==1/0&&f>=Math.pow(2,r)?i>10?(l.warn(\\\"randstr failed uniqueness\\\"),c):t(e,r,n,(i||0)+1):c},l.OptionControl=function(t,e){t||(t={}),e||(e=\\\"opt\\\");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r[\\\"_\\\"+e]=t,r},l.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,c=new Array(l),u=new Array(o);for(r=0;r<l;r++)c[r]=(1-Math.cos(Math.PI*(r+1)/e))/(2*e);for(r=0;r<o;r++){for(a=0,n=0;n<l;n++)(i=r+n+1-e)<-o?i-=s*Math.round(i/s):i>=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*c[n];u[r]=a}return u},l.syncOrAsync=function(t,e,r){var n;function i(){return l.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i).then(void 0,l.promiseError);return r&&r(e)},l.stripTrailingSlash=function(t){return\\\"/\\\"===t.substr(-1)?t.substr(0,t.length-1):t},l.noneOrAll=function(t,e,r){if(t){var n,i=!1,a=!0;for(n=0;n<r.length;n++)null!=t[r[n]]?i=!0:a=!1;if(i&&!a)for(n=0;n<r.length;n++)t[r[n]]=e[r[n]]}},l.mergeArray=function(t,e,r){if(l.isArrayOrTypedArray(t))for(var n=Math.min(t.length,e.length),i=0;i<n;i++)e[i][r]=t[i]},l.fillArray=function(t,e,r,n){if(n=n||l.identity,l.isArrayOrTypedArray(t))for(var i=0;i<e.length;i++)e[i][r]=n(t[i])},l.castOption=function(t,e,r,n){n=n||l.identity;var i=l.nestedProperty(t,r).get();return l.isArrayOrTypedArray(i)?Array.isArray(e)&&l.isArrayOrTypedArray(i[e[0]])?n(i[e[0]][e[1]]):n(i[e]):i},l.extractOption=function(t,e,r,n){if(r in t)return t[r];var i=l.nestedProperty(e,n).get();return Array.isArray(i)?void 0:i},l.tagSelected=function(t,e,r){var n,i,a=e.selectedpoints,o=e._indexToPoints;o&&(n=w(o));for(var s=0;s<a.length;s++){var c=a[s];if(l.isIndex(c)){var u=n?n[c]:c,f=r?r[u]:u;void 0!==(i=f)&&i<t.length&&(t[f].selected=1)}}},l.selIndices2selPoints=function(t){var e=t.selectedpoints,r=t._indexToPoints;if(r){for(var n=w(r),i=[],a=0;a<e.length;a++){var o=e[a];if(l.isIndex(o)){var s=n[o];l.isIndex(s)&&i.push(s)}}return i}return e},l.getTargetArray=function(t,e){var r=e.target;if(\\\"string\\\"==typeof r&&r){var n=l.nestedProperty(t,r).get();return!!Array.isArray(n)&&n}return!!Array.isArray(r)&&r},l.minExtend=function(t,e){var r={};\\\"object\\\"!=typeof e&&(e={});var n,i,a,o=Object.keys(t);for(n=0;n<o.length;n++)a=t[i=o[n]],\\\"_\\\"!==i.charAt(0)&&\\\"function\\\"!=typeof a&&(\\\"module\\\"===i?r[i]=a:Array.isArray(a)?r[i]=a.slice(0,3):r[i]=a&&\\\"object\\\"==typeof a?l.minExtend(t[i],e[i]):a);for(o=Object.keys(e),n=0;n<o.length;n++)\\\"object\\\"==typeof(a=e[i=o[n]])&&i in r&&\\\"object\\\"==typeof r[i]||(r[i]=a);return r},l.titleCase=function(t){return t.charAt(0).toUpperCase()+t.substr(1)},l.containsAny=function(t,e){for(var r=0;r<e.length;r++)if(-1!==t.indexOf(e[r]))return!0;return!1},l.isPlotDiv=function(t){var e=n.select(t);return e.node()instanceof HTMLElement&&e.size()&&e.classed(\\\"js-plotly-plot\\\")},l.removeElement=function(t){var e=t&&t.parentNode;e&&e.removeChild(t)},l.addStyleRule=function(t,e){l.addRelatedStyleRule(\\\"global\\\",t,e)},l.addRelatedStyleRule=function(t,e,r){var n=\\\"plotly.js-style-\\\"+t,i=document.getElementById(n);i||((i=document.createElement(\\\"style\\\")).setAttribute(\\\"id\\\",n),i.appendChild(document.createTextNode(\\\"\\\")),document.head.appendChild(i));var a=i.sheet;a.insertRule?a.insertRule(e+\\\"{\\\"+r+\\\"}\\\",0):a.addRule?a.addRule(e,r,0):l.warn(\\\"addStyleRule failed\\\")},l.deleteRelatedStyleRule=function(t){var e=\\\"plotly.js-style-\\\"+t,r=document.getElementById(e);r&&l.removeElement(r)},l.isIE=function(){return\\\"undefined\\\"!=typeof window.navigator.msSaveBlob},l.isD3Selection=function(t){return t&&\\\"function\\\"==typeof t.classed},l.ensureSingle=function(t,e,r,n){var i=t.select(e+(r?\\\".\\\"+r:\\\"\\\"));if(i.size())return i;var a=t.append(e);return r&&a.classed(r,!0),n&&a.call(n),a},l.ensureSingleById=function(t,e,r,n){var i=t.select(e+\\\"#\\\"+r);if(i.size())return i;var a=t.append(e).attr(\\\"id\\\",r);return n&&a.call(n),a},l.objectFromPath=function(t,e){for(var r,n=t.split(\\\".\\\"),i=r={},a=0;a<n.length;a++){var o=n[a],s=null,l=n[a].match(/(.*)\\\\[([0-9]+)\\\\]/);l?(o=l[1],s=l[2],r=r[o]=[],a===n.length-1?r[s]=e:r[s]={},r=r[s]):(a===n.length-1?r[o]=e:r[o]={},r=r[o])}return i};var k=/^([^\\\\[\\\\.]+)\\\\.(.+)?/,M=/^([^\\\\.]+)\\\\[([0-9]+)\\\\](\\\\.)?(.+)?/;l.expandObjectPaths=function(t){var e,r,n,i,a,o,s;if(\\\"object\\\"==typeof t&&!Array.isArray(t))for(r in t)t.hasOwnProperty(r)&&((e=r.match(k))?(i=t[r],n=e[1],delete t[r],t[n]=l.extendDeepNoArrays(t[n]||{},l.objectFromPath(r,l.expandObjectPaths(i))[n])):(e=r.match(M))?(i=t[r],n=e[1],a=parseInt(e[2]),delete t[r],t[n]=t[n]||[],\\\".\\\"===e[3]?(s=e[4],o=t[n][a]=t[n][a]||{},l.extendDeepNoArrays(o,l.objectFromPath(s,l.expandObjectPaths(i)))):t[n][a]=l.expandObjectPaths(i)):t[r]=l.expandObjectPaths(t[r]));return t},l.numSeparate=function(t,e,r){if(r||(r=!1),\\\"string\\\"!=typeof e||0===e.length)throw new Error(\\\"Separator string required for formatting!\\\");\\\"number\\\"==typeof t&&(t=String(t));var n=/(\\\\d+)(\\\\d{3})/,i=e.charAt(0),a=e.charAt(1),o=t.split(\\\".\\\"),s=o[0],l=o.length>1?i+o[1]:\\\"\\\";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,\\\"$1\\\"+a+\\\"$2\\\");return s+l};var A=/%{([^\\\\s%{}]*)}/g,T=/^\\\\w*$/;l.templateString=function(t,e){var r={};return t.replace(A,function(t,n){return T.test(n)?e[n]||\\\"\\\":(r[n]=r[n]||l.nestedProperty(e,n).get,r[n]()||\\\"\\\")})};l.subplotSort=function(t,e){for(var r=Math.min(t.length,e.length)+1,n=0,i=0,a=0;a<r;a++){var o=t.charCodeAt(a)||0,s=e.charCodeAt(a)||0,l=o>=48&&o<=57,c=s>=48&&s<=57;if(l&&(n=10*n+o-48),c&&(i=10*i+s-48),!l||!c){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var S=2e9;l.seedPseudoRandom=function(){S=2e9},l.pseudoRandom=function(){var t=S;return S=(69069*S+1)%4294967296,Math.abs(S-t)<429496729?l.pseudoRandom():S/4294967296}},{\\\"../constants/numerical\\\":673,\\\"./angles\\\":677,\\\"./array\\\":678,\\\"./clean_number\\\":679,\\\"./clear_responsive\\\":681,\\\"./coerce\\\":682,\\\"./dates\\\":683,\\\"./extend\\\":685,\\\"./filter_unique\\\":686,\\\"./filter_visible\\\":687,\\\"./geometry2d\\\":690,\\\"./get_graph_div\\\":691,\\\"./identity\\\":695,\\\"./is_plain_object\\\":697,\\\"./keyed_container\\\":698,\\\"./localize\\\":699,\\\"./loggers\\\":700,\\\"./make_trace_groups\\\":701,\\\"./matrix\\\":702,\\\"./mod\\\":703,\\\"./nested_property\\\":704,\\\"./noop\\\":705,\\\"./notifier\\\":706,\\\"./push_unique\\\":710,\\\"./regex\\\":712,\\\"./relative_attr\\\":713,\\\"./relink_private\\\":714,\\\"./search\\\":715,\\\"./stats\\\":718,\\\"./throttle\\\":721,\\\"./to_log_range\\\":722,d3:148,\\\"fast-isnumeric\\\":214}],697:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return window&&window.process&&window.process.versions?\\\"[object Object]\\\"===Object.prototype.toString.call(t):\\\"[object Object]\\\"===Object.prototype.toString.call(t)&&Object.getPrototypeOf(t)===Object.prototype}},{}],698:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./nested_property\\\"),i=/^\\\\w*$/;e.exports=function(t,e,r,a){var o,s,l;r=r||\\\"name\\\",a=a||\\\"value\\\";var c={};e&&e.length?(l=n(t,e),s=l.get()):s=t,e=e||\\\"\\\";var u={};if(s)for(o=0;o<s.length;o++)u[s[o][r]]=o;var f=i.test(a),h={set:function(t,e){var i=null===e?4:0;if(!s){if(!l||4===i)return;s=[],l.set(s)}var o=u[t];if(void 0===o){if(4===i)return;i|=3,o=s.length,u[t]=o}else e!==(f?s[o][a]:n(s[o],a).get())&&(i|=2);var p=s[o]=s[o]||{};return p[r]=t,f?p[a]=e:n(p,a).set(e),null!==e&&(i&=-5),c[o]=c[o]|i,h},get:function(t){if(s){var e=u[t];return void 0===e?void 0:f?s[e][a]:n(s[e],a).get()}},rename:function(t,e){var n=u[t];return void 0===n?h:(c[n]=1|c[n],u[e]=n,delete u[t],s[n][r]=e,h)},remove:function(t){var e=u[t];if(void 0===e)return h;var i=s[e];if(Object.keys(i).length>2)return c[e]=2|c[e],h.set(t,null);if(f){for(o=e;o<s.length;o++)c[o]=3|c[o];for(o=e;o<s.length;o++)u[s[o][r]]--;s.splice(e,1),delete u[t]}else n(i,a).set(null),c[e]=6|c[e];return h},constructUpdate:function(){for(var t,i,o={},l=Object.keys(c),u=0;u<l.length;u++)i=l[u],t=e+\\\"[\\\"+i+\\\"]\\\",s[i]?(1&c[i]&&(o[t+\\\".\\\"+r]=s[i][r]),2&c[i]&&(o[t+\\\".\\\"+a]=f?4&c[i]?null:s[i][a]:4&c[i]?null:n(s[i],a).get())):o[t]=null;return o}};return h}},{\\\"./nested_property\\\":704}],699:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\");e.exports=function(t,e){for(var r=t._context.locale,i=0;i<2;i++){for(var a=t._context.locales,o=0;o<2;o++){var s=(a[r]||{}).dictionary;if(s){var l=s[e];if(l)return l}a=n.localeRegistry}var c=r.split(\\\"-\\\")[0];if(c===r)break;r=c}return e}},{\\\"../registry\\\":827}],700:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../plot_api/plot_config\\\"),i=e.exports={};function a(t,e){if(t&&t.apply)try{return void t.apply(console,e)}catch(t){}for(var r=0;r<e.length;r++)try{t(e[r])}catch(t){console.log(e[r])}}i.log=function(){if(n.logging>1){for(var t=[\\\"LOG:\\\"],e=0;e<arguments.length;e++)t.push(arguments[e]);a(console.trace||console.log,t)}},i.warn=function(){if(n.logging>0){for(var t=[\\\"WARN:\\\"],e=0;e<arguments.length;e++)t.push(arguments[e]);a(console.trace||console.log,t)}},i.error=function(){if(n.logging>0){for(var t=[\\\"ERROR:\\\"],e=0;e<arguments.length;e++)t.push(arguments[e]);a(console.error,t)}}},{\\\"../plot_api/plot_config\\\":732}],701:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n=t.selectAll(\\\"g.\\\"+r.replace(/\\\\s/g,\\\".\\\")).data(e,function(t){return t[0].trace.uid});return n.exit().remove(),n.enter().append(\\\"g\\\").attr(\\\"class\\\",r),n.order(),n}},{}],702:[function(t,e,r){\\\"use strict\\\";r.init2dArray=function(t,e){for(var r=new Array(t),n=0;n<t;n++)r[n]=new Array(e);return r},r.transposeRagged=function(t){var e,r,n=0,i=t.length;for(e=0;e<i;e++)n=Math.max(n,t[e].length);var a=new Array(n);for(e=0;e<n;e++)for(a[e]=new Array(i),r=0;r<i;r++)a[e][r]=t[r][e];return a},r.dot=function(t,e){if(!t.length||!e.length||t.length!==e.length)return null;var n,i,a=t.length;if(t[0].length)for(n=new Array(a),i=0;i<a;i++)n[i]=r.dot(t[i],e);else if(e[0].length){var o=r.transposeRagged(e);for(n=new Array(o.length),i=0;i<o.length;i++)n[i]=r.dot(t,o[i])}else for(n=0,i=0;i<a;i++)n+=t[i]*e[i];return n},r.translationMatrix=function(t,e){return[[1,0,t],[0,1,e],[0,0,1]]},r.rotationMatrix=function(t){var e=t*Math.PI/180;return[[Math.cos(e),-Math.sin(e),0],[Math.sin(e),Math.cos(e),0],[0,0,1]]},r.rotationXYMatrix=function(t,e,n){return r.dot(r.dot(r.translationMatrix(e,n),r.rotationMatrix(t)),r.translationMatrix(-e,-n))},r.apply2DTransform=function(t){return function(){var e=arguments;3===e.length&&(e=e[0]);var n=1===arguments.length?e[0]:[e[0],e[1]];return r.dot(t,[n[0],n[1],1]).slice(0,2)}},r.apply2DTransform2=function(t){var e=r.apply2DTransform(t);return function(t){return e(t.slice(0,2)).concat(e(t.slice(2,4)))}}},{}],703:[function(t,e,r){\\\"use strict\\\";e.exports={mod:function(t,e){var r=t%e;return r<0?r+e:r},modHalf:function(t,e){return Math.abs(t)>e/2?t-Math.round(t/e)*e:t}}},{}],704:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"./array\\\").isArrayOrTypedArray;e.exports=function(t,e){if(n(e))e=String(e);else if(\\\"string\\\"!=typeof e||\\\"[-1]\\\"===e.substr(e.length-4))throw\\\"bad property string\\\";for(var r,a,o,l=0,c=e.split(\\\".\\\");l<c.length;){if(r=String(c[l]).match(/^([^\\\\[\\\\]]*)((\\\\[\\\\-?[0-9]*\\\\])+)$/)){if(r[1])c[l]=r[1];else{if(0!==l)throw\\\"bad property string\\\";c.splice(0,1)}for(a=r[2].substr(1,r[2].length-2).split(\\\"][\\\"),o=0;o<a.length;o++)l++,c.splice(l,0,Number(a[o]))}l++}return\\\"object\\\"!=typeof t?function(t,e,r){return{set:function(){throw\\\"bad container\\\"},get:function(){},astr:e,parts:r,obj:t}}(t,e,c):{set:s(t,c,e),get:function t(e,r){return function(){var n,a,o,s,l,c=e;for(s=0;s<r.length-1;s++){if(-1===(n=r[s])){for(a=!0,o=[],l=0;l<c.length;l++)o[l]=t(c[l],r.slice(s+1))(),o[l]!==o[0]&&(a=!1);return a?o[0]:o}if(\\\"number\\\"==typeof n&&!i(c))return;if(\\\"object\\\"!=typeof(c=c[n])||null===c)return}if(\\\"object\\\"==typeof c&&null!==c&&null!==(o=c[r[s]]))return o}}(t,c),astr:e,parts:c,obj:t}};var a=/(^|\\\\.)args\\\\[/;function o(t,e){return void 0===t||null===t&&!e.match(a)}function s(t,e,r){return function(n){var a,s,f=t,h=\\\"\\\",p=[[t,h]],d=o(n,r);for(s=0;s<e.length-1;s++){if(\\\"number\\\"==typeof(a=e[s])&&!i(f))throw\\\"array index but container is not an array\\\";if(-1===a){if(d=!c(f,e.slice(s+1),n,r))break;return}if(!u(f,a,e[s+1],d))break;if(\\\"object\\\"!=typeof(f=f[a])||null===f)throw\\\"container is not an object\\\";h=l(h,a),p.push([f,h])}if(d){if(s===e.length-1&&(delete f[e[s]],Array.isArray(f)&&+e[s]==f.length-1))for(;f.length&&void 0===f[f.length-1];)f.pop()}else f[e[s]]=n}}function l(t,e){var r=e;return n(e)?r=\\\"[\\\"+e+\\\"]\\\":t&&(r=\\\".\\\"+e),t+r}function c(t,e,r,n){var a,l=i(r),c=!0,f=r,h=n.replace(\\\"-1\\\",0),p=!l&&o(r,h),d=e[0];for(a=0;a<t.length;a++)h=n.replace(\\\"-1\\\",a),l&&(p=o(f=r[a%r.length],h)),p&&(c=!1),u(t,a,d,p)&&s(t[a],e,n.replace(\\\"-1\\\",a))(f);return c}function u(t,e,r,n){if(void 0===t[e]){if(n)return!1;t[e]=\\\"number\\\"==typeof r?[]:{}}return!0}},{\\\"./array\\\":678,\\\"fast-isnumeric\\\":214}],705:[function(t,e,r){\\\"use strict\\\";e.exports=function(){}},{}],706:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=[];e.exports=function(t,e){if(-1===a.indexOf(t)){a.push(t);var r=1e3;i(e)?r=e:\\\"long\\\"===e&&(r=3e3);var o=n.select(\\\"body\\\").selectAll(\\\".plotly-notifier\\\").data([0]);o.enter().append(\\\"div\\\").classed(\\\"plotly-notifier\\\",!0),o.selectAll(\\\".notifier-note\\\").data(a).enter().append(\\\"div\\\").classed(\\\"notifier-note\\\",!0).style(\\\"opacity\\\",0).each(function(t){var e=n.select(this);e.append(\\\"button\\\").classed(\\\"notifier-close\\\",!0).html(\\\"&times;\\\").on(\\\"click\\\",function(){e.transition().call(s)});for(var i=e.append(\\\"p\\\"),a=t.split(/<br\\\\s*\\\\/?>/g),o=0;o<a.length;o++)o&&i.append(\\\"br\\\"),i.append(\\\"span\\\").text(a[o]);e.transition().duration(700).style(\\\"opacity\\\",1).transition().delay(r).call(s)})}function s(t){t.duration(700).style(\\\"opacity\\\",0).each(\\\"end\\\",function(t){var e=a.indexOf(t);-1!==e&&a.splice(e,1),n.select(this).remove()})}}},{d3:148,\\\"fast-isnumeric\\\":214}],707:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./setcursor\\\"),i=\\\"data-savedcursor\\\";e.exports=function(t,e){var r=t.attr(i);if(e){if(!r){for(var a=(t.attr(\\\"class\\\")||\\\"\\\").split(\\\" \\\"),o=0;o<a.length;o++){var s=a[o];0===s.indexOf(\\\"cursor-\\\")&&t.attr(i,s.substr(7)).classed(s,!1)}t.attr(i)||t.attr(i,\\\"!!\\\")}n(t,e)}else r&&(t.attr(i,null),\\\"!!\\\"===r?n(t):n(t,r))}},{\\\"./setcursor\\\":716}],708:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./matrix\\\").dot,i=t(\\\"../constants/numerical\\\").BADNUM,a=e.exports={};a.tester=function(t){var e,r=t.slice(),n=r[0][0],a=n,o=r[0][1],s=o;for(r.push(r[0]),e=1;e<r.length;e++)n=Math.min(n,r[e][0]),a=Math.max(a,r[e][0]),o=Math.min(o,r[e][1]),s=Math.max(s,r[e][1]);var l,c=!1;5===r.length&&(r[0][0]===r[1][0]?r[2][0]===r[3][0]&&r[0][1]===r[3][1]&&r[1][1]===r[2][1]&&(c=!0,l=function(t){return t[0]===r[0][0]}):r[0][1]===r[1][1]&&r[2][1]===r[3][1]&&r[0][0]===r[3][0]&&r[1][0]===r[2][0]&&(c=!0,l=function(t){return t[1]===r[0][1]}));var u=!0,f=r[0];for(e=1;e<r.length;e++)if(f[0]!==r[e][0]||f[1]!==r[e][1]){u=!1;break}return{xmin:n,xmax:a,ymin:o,ymax:s,pts:r,contains:c?function(t,e){var r=t[0],c=t[1];return!(r===i||r<n||r>a||c===i||c<o||c>s||e&&l(t))}:function(t,e){var l=t[0],c=t[1];if(l===i||l<n||l>a||c===i||c<o||c>s)return!1;var u,f,h,p,d,g=r.length,v=r[0][0],m=r[0][1],y=0;for(u=1;u<g;u++)if(f=v,h=m,v=r[u][0],m=r[u][1],!(l<(p=Math.min(f,v))||l>Math.max(f,v)||c>Math.max(h,m)))if(c<Math.min(h,m))l!==p&&y++;else{if(c===(d=v===f?c:h+(l-f)*(m-h)/(v-f)))return 1!==u||!e;c<=d&&l!==p&&y++}return y%2==1},isRect:c,degenerate:u}};var o=a.isSegmentBent=function(t,e,r,i){var a,o,s,l=t[e],c=[t[r][0]-l[0],t[r][1]-l[1]],u=n(c,c),f=Math.sqrt(u),h=[-c[1]/f,c[0]/f];for(a=e+1;a<r;a++)if(o=[t[a][0]-l[0],t[a][1]-l[1]],(s=n(o,c))<0||s>u||Math.abs(n(o,h))>i)return!0;return!1};a.filter=function(t,e){var r=[t[0]],n=0,i=0;function a(a){t.push(a);var s=r.length,l=n;r.splice(i+1);for(var c=l+1;c<t.length;c++)(c===t.length-1||o(t,l,c+1,e))&&(r.push(t[c]),r.length<s-2&&(n=c,i=r.length-1),l=c)}t.length>1&&a(t.pop());return{addPt:a,raw:t,filtered:r}}},{\\\"../constants/numerical\\\":673,\\\"./matrix\\\":702}],709:[function(t,e,r){(function(r){\\\"use strict\\\";var n=t(\\\"./show_no_webgl_msg\\\"),i=t(\\\"regl\\\");e.exports=function(t,e){var a=t._fullLayout,o=!0;return a._glcanvas.each(function(n){if(!n.regl&&(!n.pick||a._has(\\\"parcoords\\\"))){try{n.regl=i({canvas:this,attributes:{antialias:!n.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||r.devicePixelRatio,extensions:e||[]})}catch(t){o=!1}o&&this.addEventListener(\\\"webglcontextlost\\\",function(e){t&&t.emit&&t.emit(\\\"plotly_webglcontextlost\\\",{event:e,layer:n.key})},!1)}}),o||n({container:a._glcontainer.node()}),o}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"./show_no_webgl_msg\\\":717,regl:478}],710:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){if(e instanceof RegExp){var r,n=e.toString();for(r=0;r<t.length;r++)if(t[r]instanceof RegExp&&t[r].toString()===n)return t;t.push(e)}else!e&&0!==e||-1!==t.indexOf(e)||t.push(e);return t}},{}],711:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plot_api/plot_config\\\");var a={add:function(t,e,r,n,a){var o,s;t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},s=t.undoQueue.index,t.autoplay?t.undoQueue.inSequence||(t.autoplay=!1):(!t.undoQueue.sequence||t.undoQueue.beginSequence?(o={undo:{calls:[],args:[]},redo:{calls:[],args:[]}},t.undoQueue.queue.splice(s,t.undoQueue.queue.length-s,o),t.undoQueue.index+=1):o=t.undoQueue.queue[s-1],t.undoQueue.beginSequence=!1,o&&(o.undo.calls.unshift(e),o.undo.args.unshift(r),o.redo.calls.push(n),o.redo.args.push(a)),t.undoQueue.queue.length>i.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(t.framework&&t.framework.isPolar)t.framework.undo();else if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r<e.undo.calls.length;r++)a.plotDo(t,e.undo.calls[r],e.undo.args[r]);t.undoQueue.inSequence=!1,t.autoplay=!1}},redo:function(t){var e,r;if(t.framework&&t.framework.isPolar)t.framework.redo();else if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index>=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r<e.redo.calls.length;r++)a.plotDo(t,e.redo.calls[r],e.redo.args[r]);t.undoQueue.inSequence=!1,t.autoplay=!1,t.undoQueue.index++}}};a.plotDo=function(t,e,r){t.autoplay=!0,r=function(t,e){for(var r,i=[],a=0;a<e.length;a++)r=e[a],i[a]=r===t?r:\\\"object\\\"==typeof r?Array.isArray(r)?n.extendDeep([],r):n.extendDeepAll({},r):r;return i}(t,r),e.apply(null,r)},e.exports=a},{\\\"../lib\\\":696,\\\"../plot_api/plot_config\\\":732}],712:[function(t,e,r){\\\"use strict\\\";r.counter=function(t,e,r){var n=(e||\\\"\\\")+(r?\\\"\\\":\\\"$\\\");return\\\"xy\\\"===t?new RegExp(\\\"^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?\\\"+n):new RegExp(\\\"^\\\"+t+\\\"([2-9]|[1-9][0-9]+)?\\\"+n)}},{}],713:[function(t,e,r){\\\"use strict\\\";var n=/^(.*)(\\\\.[^\\\\.\\\\[\\\\]]+|\\\\[\\\\d\\\\])$/,i=/^[^\\\\.\\\\[\\\\]]+$/;e.exports=function(t,e){for(;e;){var r=t.match(n);if(r)t=r[1];else{if(!t.match(i))throw new Error(\\\"bad relativeAttr call:\\\"+[t,e]);t=\\\"\\\"}if(\\\"^\\\"!==e.charAt(0))break;e=e.slice(1)}return t&&\\\"[\\\"!==e.charAt(0)?t+\\\".\\\"+e:t+e}},{}],714:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./array\\\").isArrayOrTypedArray,i=t(\\\"./is_plain_object\\\");e.exports=function t(e,r){for(var a in r){var o=r[a],s=e[a];if(s!==o)if(\\\"_\\\"===a.charAt(0)||\\\"function\\\"==typeof o){if(a in e)continue;e[a]=o}else if(n(o)&&n(s)&&i(o[0])){if(\\\"customdata\\\"===a||\\\"ids\\\"===a)continue;for(var l=Math.min(o.length,s.length),c=0;c<l;c++)s[c]!==o[c]&&i(o[c])&&i(s[c])&&t(s[c],o[c])}else i(o)&&i(s)&&(t(s,o),Object.keys(s).length||delete e[a])}}},{\\\"./array\\\":678,\\\"./is_plain_object\\\":697}],715:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"./loggers\\\"),a=t(\\\"./identity\\\");function o(t,e){return t<e}function s(t,e){return t<=e}function l(t,e){return t>e}function c(t,e){return t>=e}r.findBin=function(t,e,r){if(n(e.start))return r?Math.ceil((t-e.start)/e.size-1e-9)-1:Math.floor((t-e.start)/e.size+1e-9);var a,u,f=0,h=e.length,p=0,d=h>1?(e[h-1]-e[0])/(h-1):1;for(u=d>=0?r?o:s:r?c:l,t+=1e-9*d*(r?-1:1)*(d>=0?1:-1);f<h&&p++<100;)u(e[a=Math.floor((f+h)/2)],t)?f=a+1:h=a;return p>90&&i.log(\\\"Long binary search...\\\"),f-1},r.sorterAsc=function(t,e){return t-e},r.sorterDes=function(t,e){return e-t},r.distinctVals=function(t){var e=t.slice();e.sort(r.sorterAsc);for(var n=e.length-1,i=e[n]-e[0]||1,a=i/(n||1)/1e4,o=[e[0]],s=0;s<n;s++)e[s+1]>e[s]+a&&(i=Math.min(i,e[s+1]-e[s]),o.push(e[s+1]));return{vals:o,minDiff:i}},r.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,c=r?Math.ceil:Math.floor;i<a&&o++<100;)e[n=c((i+a)/2)]<=t?i=n+s:a=n-l;return e[i]},r.sort=function(t,e){for(var r=0,n=0,i=1;i<t.length;i++){var a=e(t[i],t[i-1]);if(a<0?r=1:a>0&&(n=1),r&&n)return t.sort(e)}return n?t:t.reverse()},r.findIndexOfMin=function(t,e){e=e||a;for(var r,n=1/0,i=0;i<t.length;i++){var o=e(t[i]);o<n&&(n=o,r=i)}return r}},{\\\"./identity\\\":695,\\\"./loggers\\\":700,\\\"fast-isnumeric\\\":214}],716:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){(t.attr(\\\"class\\\")||\\\"\\\").split(\\\" \\\").forEach(function(e){0===e.indexOf(\\\"cursor-\\\")&&t.classed(e,!1)}),e&&t.classed(\\\"cursor-\\\"+e,!0)}},{}],717:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../components/color\\\"),i=function(){};e.exports=function(t){for(var e in t)\\\"function\\\"==typeof t[e]&&(t[e]=i);t.destroy=function(){t.container.parentNode.removeChild(t.container)};var r=document.createElement(\\\"div\\\");r.className=\\\"no-webgl\\\",r.style.cursor=\\\"pointer\\\",r.style.fontSize=\\\"24px\\\",r.style.color=n.defaults[0],r.style.position=\\\"absolute\\\",r.style.left=r.style.top=\\\"0px\\\",r.style.width=r.style.height=\\\"100%\\\",r.style[\\\"background-color\\\"]=n.lightLine,r.style[\\\"z-index\\\"]=30;var a=document.createElement(\\\"p\\\");return a.textContent=\\\"WebGL is not supported by your browser - visit https://get.webgl.org for more info\\\",a.style.position=\\\"relative\\\",a.style.top=\\\"50%\\\",a.style.left=\\\"50%\\\",a.style.height=\\\"30%\\\",a.style.width=\\\"50%\\\",a.style.margin=\\\"-15% 0 0 -25%\\\",r.appendChild(a),t.container.appendChild(r),t.container.style.background=\\\"#FFFFFF\\\",t.container.onclick=function(){window.open(\\\"https://get.webgl.org\\\")},!1}},{\\\"../components/color\\\":570}],718:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"./array\\\").isArrayOrTypedArray;r.aggNums=function(t,e,a,o){var s,l;if((!o||o>a.length)&&(o=a.length),n(e)||(e=!1),i(a[0])){for(l=new Array(o),s=0;s<o;s++)l[s]=r.aggNums(t,e,a[s]);a=l}for(s=0;s<o;s++)n(e)?n(a[s])&&(e=t(+e,+a[s])):e=a[s];return e},r.len=function(t){return r.aggNums(function(t){return t+1},0,t)},r.mean=function(t,e){return e||(e=r.len(t)),r.aggNums(function(t,e){return t+e},0,t)/e},r.midRange=function(t){if(void 0!==t&&0!==t.length)return(r.aggNums(Math.max,null,t)+r.aggNums(Math.min,null,t))/2},r.variance=function(t,e,i){return e||(e=r.len(t)),n(i)||(i=r.mean(t,e)),r.aggNums(function(t,e){return t+Math.pow(e-i,2)},0,t)/e},r.stdev=function(t,e,n){return Math.sqrt(r.variance(t,e,n))},r.interp=function(t,e){if(!n(e))throw\\\"n should be a finite number\\\";if((e=e*t.length-.5)<0)return t[0];if(e>t.length-1)return t[t.length-1];var r=e%1;return r*t[Math.ceil(e)]+(1-r)*t[Math.floor(e)]}},{\\\"./array\\\":678,\\\"fast-isnumeric\\\":214}],719:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-normalize\\\");e.exports=function(t){return t?n(t):[0,0,0,1]}},{\\\"color-normalize\\\":108}],720:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../constants/xmlns_namespaces\\\"),o=t(\\\"../constants/alignment\\\").LINE_SPACING;function s(t,e){return t.node().getBoundingClientRect()[e]}var l=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;r.convertToTspans=function(t,e,v){var S=t.text(),E=!t.attr(\\\"data-notex\\\")&&\\\"undefined\\\"!=typeof MathJax&&S.match(l),L=n.select(t.node().parentNode);if(!L.empty()){var z=t.attr(\\\"class\\\")?t.attr(\\\"class\\\").split(\\\" \\\")[0]:\\\"text\\\";return z+=\\\"-math\\\",L.selectAll(\\\"svg.\\\"+z).remove(),L.selectAll(\\\"g.\\\"+z+\\\"-group\\\").remove(),t.style(\\\"display\\\",null).attr({\\\"data-unformatted\\\":S,\\\"data-math\\\":\\\"N\\\"}),E?(e&&e._promises||[]).push(new Promise(function(e){t.style(\\\"display\\\",\\\"none\\\");var r=parseInt(t.node().style.fontSize,10),a={fontSize:r};!function(t,e,r){var a,o,s,l;MathJax.Hub.Queue(function(){return o=i.extendDeepAll({},MathJax.Hub.config),s=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:\\\"none\\\",tex2jax:{inlineMath:[[\\\"$\\\",\\\"$\\\"],[\\\"\\\\\\\\(\\\",\\\"\\\\\\\\)\\\"]]},displayAlign:\\\"left\\\"})},function(){if(\\\"SVG\\\"!==(a=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer(\\\"SVG\\\")},function(){var r=\\\"math-output-\\\"+i.randstr({},64);return l=n.select(\\\"body\\\").append(\\\"div\\\").attr({id:r}).style({visibility:\\\"hidden\\\",position:\\\"absolute\\\"}).style({\\\"font-size\\\":e.fontSize+\\\"px\\\"}).text(t.replace(c,\\\"\\\\\\\\lt \\\").replace(u,\\\"\\\\\\\\gt \\\")),MathJax.Hub.Typeset(l.node())},function(){var e=n.select(\\\"body\\\").select(\\\"#MathJax_SVG_glyphs\\\");if(l.select(\\\".MathJax_SVG\\\").empty()||!l.select(\\\"svg\\\").node())i.log(\\\"There was an error in the tex syntax.\\\",t),r();else{var o=l.select(\\\"svg\\\").node().getBoundingClientRect();r(l.select(\\\".MathJax_SVG\\\"),e,o)}if(l.remove(),\\\"SVG\\\"!==a)return MathJax.Hub.setRenderer(a)},function(){return void 0!==s&&(MathJax.Hub.processSectionDelay=s),MathJax.Hub.Config(o)})}(E[2],a,function(n,i,a){L.selectAll(\\\"svg.\\\"+z).remove(),L.selectAll(\\\"g.\\\"+z+\\\"-group\\\").remove();var o=n&&n.select(\\\"svg\\\");if(!o||!o.node())return O(),void e();var l=L.append(\\\"g\\\").classed(z+\\\"-group\\\",!0).attr({\\\"pointer-events\\\":\\\"none\\\",\\\"data-unformatted\\\":S,\\\"data-math\\\":\\\"Y\\\"});l.node().appendChild(o.node()),i&&i.node()&&o.node().insertBefore(i.node().cloneNode(!0),o.node().firstChild),o.attr({class:z,height:a.height,preserveAspectRatio:\\\"xMinYMin meet\\\"}).style({overflow:\\\"visible\\\",\\\"pointer-events\\\":\\\"none\\\"});var c=t.node().style.fill||\\\"black\\\";o.select(\\\"g\\\").attr({fill:c,stroke:c});var u=s(o,\\\"width\\\"),f=s(o,\\\"height\\\"),h=+t.attr(\\\"x\\\")-u*{start:0,middle:.5,end:1}[t.attr(\\\"text-anchor\\\")||\\\"start\\\"],p=-(r||s(t,\\\"height\\\"))/4;\\\"y\\\"===z[0]?(l.attr({transform:\\\"rotate(\\\"+[-90,+t.attr(\\\"x\\\"),+t.attr(\\\"y\\\")]+\\\") translate(\\\"+[-u/2,p-f/2]+\\\")\\\"}),o.attr({x:+t.attr(\\\"x\\\"),y:+t.attr(\\\"y\\\")})):\\\"l\\\"===z[0]?o.attr({x:t.attr(\\\"x\\\"),y:p-f/2}):\\\"a\\\"===z[0]?o.attr({x:0,y:p}):o.attr({x:h,y:+t.attr(\\\"y\\\")+p-f/2}),v&&v.call(t,l),e(l)})})):O(),t}function O(){L.empty()||(z=t.attr(\\\"class\\\")+\\\"-math\\\",L.select(\\\"svg.\\\"+z).remove()),t.text(\\\"\\\").style(\\\"white-space\\\",\\\"pre\\\"),function(t,e){e=e.replace(m,\\\" \\\");var r,s=!1,l=[],c=-1;function u(){c++;var e=document.createElementNS(a.svg,\\\"tspan\\\");n.select(e).attr({class:\\\"line\\\",dy:c*o+\\\"em\\\"}),t.appendChild(e),r=e;var i=l;if(l=[{node:e}],i.length>1)for(var s=1;s<i.length;s++)v(i[s])}function v(t){var e,i=t.type,o={};if(\\\"a\\\"===i){e=\\\"a\\\";var s=t.target,c=t.href,u=t.popup;c&&(o={\\\"xlink:xlink:show\\\":\\\"_blank\\\"===s||\\\"_\\\"!==s.charAt(0)?\\\"new\\\":\\\"replace\\\",target:s,\\\"xlink:xlink:href\\\":c},u&&(o.onclick='window.open(this.href.baseVal,this.target.baseVal,\\\"'+u+'\\\");return false;'))}else e=\\\"tspan\\\";t.style&&(o.style=t.style);var f=document.createElementNS(a.svg,e);if(\\\"sup\\\"===i||\\\"sub\\\"===i){S(r,d),r.appendChild(f);var g=document.createElementNS(a.svg,\\\"tspan\\\");S(g,d),n.select(g).attr(\\\"dy\\\",p[i]),o.dy=h[i],r.appendChild(f),r.appendChild(g)}else r.appendChild(f);n.select(f).attr(o),r=t.node=f,l.push(t)}function S(t,e){t.appendChild(document.createTextNode(e))}function E(t){if(1!==l.length){var n=l.pop();t!==n.type&&i.log(\\\"Start tag <\\\"+n.type+\\\"> doesnt match end tag <\\\"+t+\\\">. Pretending it did match.\\\",e),r=l[l.length-1].node}else i.log(\\\"Ignoring unexpected end tag </\\\"+t+\\\">.\\\",e)}b.test(e)?u():(r=t,l=[{node:t}]);for(var L=e.split(y),z=0;z<L.length;z++){var O=L[z],I=O.match(x),P=I&&I[2].toLowerCase(),D=f[P];if(\\\"br\\\"===P)u();else if(void 0===D)S(r,C(O));else if(I[1])E(P);else{var R=I[4],B={type:P},F=A(R,_);if(F?(F=F.replace(T,\\\"$1 fill:\\\"),D&&(F+=\\\";\\\"+D)):D&&(F=D),F&&(B.style=F),\\\"a\\\"===P){s=!0;var N=A(R,w);if(N){var j=document.createElement(\\\"a\\\");j.href=N,-1!==g.indexOf(j.protocol)&&(B.href=encodeURI(decodeURI(N)),B.target=A(R,k)||\\\"_blank\\\",B.popup=A(R,M))}}v(B)}}return s}(t.node(),S)&&t.style(\\\"pointer-events\\\",\\\"all\\\"),r.positionText(t),v&&v.call(t)}};var c=/(<|&lt;|&#60;)/g,u=/(>|&gt;|&#62;)/g;var f={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\\\"},h={sub:\\\"0.3em\\\",sup:\\\"-0.6em\\\"},p={sub:\\\"-0.21em\\\",sup:\\\"0.42em\\\"},d=\\\"\\\\u200b\\\",g=[\\\"http:\\\",\\\"https:\\\",\\\"mailto:\\\",\\\"\\\",void 0,\\\":\\\"],v=new RegExp(\\\"</?(\\\"+Object.keys(f).join(\\\"|\\\")+\\\")( [^>]*)?/?>\\\",\\\"g\\\"),m=/(\\\\r\\\\n?|\\\\n)/g,y=/(<[^<>]*>)/,x=/<(\\\\/?)([^ >]*)(\\\\s+(.*))?>/i,b=/<br(\\\\s+.*)?>/i,_=/(^|[\\\\s\\\"'])style\\\\s*=\\\\s*(\\\"([^\\\"]*);?\\\"|'([^']*);?')/i,w=/(^|[\\\\s\\\"'])href\\\\s*=\\\\s*(\\\"([^\\\"]*)\\\"|'([^']*)')/i,k=/(^|[\\\\s\\\"'])target\\\\s*=\\\\s*(\\\"([^\\\"\\\\s]*)\\\"|'([^'\\\\s]*)')/i,M=/(^|[\\\\s\\\"'])popup\\\\s*=\\\\s*(\\\"([\\\\w=,]*)\\\"|'([\\\\w=,]*)')/i;function A(t,e){if(!t)return null;var r=t.match(e),n=r&&(r[3]||r[4]);return n&&C(n)}var T=/(^|;)\\\\s*color:/;r.plainText=function(t){return(t||\\\"\\\").replace(v,\\\" \\\")};var S={mu:\\\"\\\\u03bc\\\",amp:\\\"&\\\",lt:\\\"<\\\",gt:\\\">\\\",nbsp:\\\"\\\\xa0\\\",times:\\\"\\\\xd7\\\",plusmn:\\\"\\\\xb1\\\",deg:\\\"\\\\xb0\\\"},E=/&(#\\\\d+|#x[\\\\da-fA-F]+|[a-z]+);/g;function C(t){return t.replace(E,function(t,e){return(\\\"#\\\"===e.charAt(0)?function(t){if(t>1114111)return;var e=String.fromCodePoint;if(e)return e(t);var r=String.fromCharCode;return t<=65535?r(t):r(55232+(t>>10),t%1024+56320)}(\\\"x\\\"===e.charAt(1)?parseInt(e.substr(2),16):parseInt(e.substr(1),10)):S[e])||t})}function L(t,e,r){var n,i,a,o=r.horizontalAlign,s=r.verticalAlign||\\\"top\\\",l=t.node().getBoundingClientRect(),c=e.node().getBoundingClientRect();return i=\\\"bottom\\\"===s?function(){return l.bottom-n.height}:\\\"middle\\\"===s?function(){return l.top+(l.height-n.height)/2}:function(){return l.top},a=\\\"right\\\"===o?function(){return l.right-n.width}:\\\"center\\\"===o?function(){return l.left+(l.width-n.width)/2}:function(){return l.left},function(){return n=this.node().getBoundingClientRect(),this.style({top:i()-c.top+\\\"px\\\",left:a()-c.left+\\\"px\\\",\\\"z-index\\\":1e3}),this}}r.convertEntities=C,r.lineCount=function(t){return t.selectAll(\\\"tspan.line\\\").size()||1},r.positionText=function(t,e,r){return t.each(function(){var t=n.select(this);function i(e,r){return void 0===r?null===(r=t.attr(e))&&(t.attr(e,0),r=0):t.attr(e,r),r}var a=i(\\\"x\\\",e),o=i(\\\"y\\\",r);\\\"text\\\"===this.nodeName&&t.selectAll(\\\"tspan.line\\\").attr({x:a,y:o})})},r.makeEditable=function(t,e){var r=e.gd,i=e.delegate,a=n.dispatch(\\\"edit\\\",\\\"input\\\",\\\"cancel\\\"),o=i||t;if(t.style({\\\"pointer-events\\\":i?\\\"none\\\":\\\"all\\\"}),1!==t.size())throw new Error(\\\"boo\\\");function s(){!function(){var i=n.select(r).select(\\\".svg-container\\\"),o=i.append(\\\"div\\\"),s=t.node().style,c=parseFloat(s.fontSize||12),u=e.text;void 0===u&&(u=t.attr(\\\"data-unformatted\\\"));o.classed(\\\"plugin-editable editable\\\",!0).style({position:\\\"absolute\\\",\\\"font-family\\\":s.fontFamily||\\\"Arial\\\",\\\"font-size\\\":c,color:e.fill||s.fill||\\\"black\\\",opacity:1,\\\"background-color\\\":e.background||\\\"transparent\\\",outline:\\\"#ffffff33 1px solid\\\",margin:[-c/8+1,0,0,-1].join(\\\"px \\\")+\\\"px\\\",padding:\\\"0\\\",\\\"box-sizing\\\":\\\"border-box\\\"}).attr({contenteditable:!0}).text(u).call(L(t,i,e)).on(\\\"blur\\\",function(){r._editing=!1,t.text(this.textContent).style({opacity:1});var e,i=n.select(this).attr(\\\"class\\\");(e=i?\\\".\\\"+i.split(\\\" \\\")[0]+\\\"-math-group\\\":\\\"[class*=-math-group]\\\")&&n.select(t.node().parentNode).select(e).style({opacity:0});var o=this.textContent;n.select(this).transition().duration(0).remove(),n.select(document).on(\\\"mouseup\\\",null),a.edit.call(t,o)}).on(\\\"focus\\\",function(){var t=this;r._editing=!0,n.select(document).on(\\\"mouseup\\\",function(){if(n.event.target===t)return!1;document.activeElement===o.node()&&o.node().blur()})}).on(\\\"keyup\\\",function(){27===n.event.which?(r._editing=!1,t.style({opacity:1}),n.select(this).style({opacity:0}).on(\\\"blur\\\",function(){return!1}).transition().remove(),a.cancel.call(t,this.textContent)):(a.input.call(t,this.textContent),n.select(this).call(L(t,i,e)))}).on(\\\"keydown\\\",function(){13===n.event.which&&this.blur()}).call(l)}(),t.style({opacity:0});var i,s=o.attr(\\\"class\\\");(i=s?\\\".\\\"+s.split(\\\" \\\")[0]+\\\"-math-group\\\":\\\"[class*=-math-group]\\\")&&n.select(t.node().parentNode).select(i).style({opacity:0})}function l(t){var e=t.node(),r=document.createRange();r.selectNodeContents(e);var n=window.getSelection();n.removeAllRanges(),n.addRange(r),e.focus()}return e.immediate?s():o.on(\\\"click\\\",s),n.rebind(t,a,\\\"on\\\")}},{\\\"../constants/alignment\\\":668,\\\"../constants/xmlns_namespaces\\\":674,\\\"../lib\\\":696,d3:148}],721:[function(t,e,r){\\\"use strict\\\";var n={};function i(t){t&&null!==t.timer&&(clearTimeout(t.timer),t.timer=null)}r.throttle=function(t,e,r){var a=n[t],o=Date.now();if(!a){for(var s in n)n[s].ts<o-6e4&&delete n[s];a=n[t]={ts:0,timer:null}}function l(){r(),a.ts=Date.now(),a.onDone&&(a.onDone(),a.onDone=null)}i(a),o>a.ts+e?l():a.timer=setTimeout(function(){l(),a.timer=null},e)},r.done=function(t){var e=n[t];return e&&e.timer?new Promise(function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}}):Promise.resolve()},r.clear=function(t){if(t)i(n[t]),delete n[t];else for(var e in n)r.clear(e)}},{}],722:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\");e.exports=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var r=Math.log(Math.min(e[0],e[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),r}},{\\\"fast-isnumeric\\\":214}],723:[function(t,e,r){\\\"use strict\\\";var n=e.exports={},i=t(\\\"../plots/geo/constants\\\").locationmodeToLayer,a=t(\\\"topojson-client\\\").feature;n.getTopojsonName=function(t){return[t.scope.replace(/ /g,\\\"-\\\"),\\\"_\\\",t.resolution.toString(),\\\"m\\\"].join(\\\"\\\")},n.getTopojsonPath=function(t,e){return t+e+\\\".json\\\"},n.getTopojsonFeatures=function(t,e){var r=i[t.locationmode],n=e.objects[r];return a(e,n).features}},{\\\"../plots/geo/constants\\\":773,\\\"topojson-client\\\":517}],724:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"locale\\\",name:\\\"en-US\\\",dictionary:{\\\"Click to enter Colorscale title\\\":\\\"Click to enter Colorscale title\\\"},format:{date:\\\"%m/%d/%Y\\\"}}},{}],725:[function(t,e,r){\\\"use strict\\\";e.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\\\"}}},{}],726:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\");e.exports=function(t){for(var e,r,i=n.layoutArrayContainers,a=n.layoutArrayRegexes,o=t.split(\\\"[\\\")[0],s=0;s<a.length;s++)if((r=t.match(a[s]))&&0===r.index){e=r[0];break}if(e||(e=i[i.indexOf(o)]),!e)return!1;var l=t.substr(e.length);return l?!!(r=l.match(/^\\\\[(0|[1-9][0-9]*)\\\\](\\\\.(.+))?$/))&&{array:e,index:Number(r[1]),property:r[3]||\\\"\\\"}:{array:e,index:\\\"\\\",property:\\\"\\\"}}},{\\\"../registry\\\":827}],727:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=n.extendFlat,a=n.isPlainObject,o={valType:\\\"flaglist\\\",extras:[\\\"none\\\"],flags:[\\\"calc\\\",\\\"clearAxisTypes\\\",\\\"plot\\\",\\\"style\\\",\\\"markerSize\\\",\\\"colorbars\\\"]},s={valType:\\\"flaglist\\\",extras:[\\\"none\\\"],flags:[\\\"calc\\\",\\\"plot\\\",\\\"legend\\\",\\\"ticks\\\",\\\"axrange\\\",\\\"layoutstyle\\\",\\\"modebar\\\",\\\"camera\\\",\\\"arraydraw\\\"]},l=o.flags.slice().concat([\\\"fullReplot\\\"]),c=s.flags.slice().concat(\\\"layoutReplot\\\");function u(t){for(var e={},r=0;r<t.length;r++)e[t[r]]=!1;return e}function f(t,e,r){var n=i({},t);for(var o in n){var s=n[o];a(s)&&(n[o]=h(s,e,r,o))}return\\\"from-root\\\"===r&&(n.editType=e),n}function h(t,e,r,n){if(t.valType){var a=i({},t);if(a.editType=e,Array.isArray(t.items)){a.items=new Array(t.items.length);for(var o=0;o<t.items.length;o++)a.items[o]=h(t.items[o],e,\\\"from-root\\\")}return a}return f(t,e,\\\"_\\\"===n.charAt(0)?\\\"nested\\\":\\\"from-root\\\")}e.exports={traces:o,layout:s,traceFlags:function(){return u(l)},layoutFlags:function(){return u(c)},update:function(t,e){var r=e.editType;if(r&&\\\"none\\\"!==r)for(var n=r.split(\\\"+\\\"),i=0;i<n.length;i++)t[n[i]]=!0},overrideAll:f}},{\\\"../lib\\\":696}],728:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"gl-mat4/fromQuat\\\"),a=t(\\\"../registry\\\"),o=t(\\\"../lib\\\"),s=t(\\\"../plots/plots\\\"),l=t(\\\"../plots/cartesian/axis_ids\\\"),c=l.cleanId,u=l.getFromTrace,f=t(\\\"../components/color\\\");function h(t,e){var r=t[e],n=e.charAt(0);r&&\\\"paper\\\"!==r&&(t[e]=c(r,n))}function p(t){if(!o.isPlainObject(t))return!1;var e=t.name;return delete t.name,delete t.showlegend,(\\\"string\\\"==typeof e||\\\"number\\\"==typeof e)&&String(e)}function d(t,e,r,n){if(r&&!n)return t;if(n&&!r)return e;if(!t.trim())return e;if(!e.trim())return t;var i,a=Math.min(t.length,e.length);for(i=0;i<a&&t.charAt(i)===e.charAt(i);i++);return t.substr(0,i).trim()}function g(t){var e=\\\"middle\\\",r=\\\"center\\\";return-1!==t.indexOf(\\\"top\\\")?e=\\\"top\\\":-1!==t.indexOf(\\\"bottom\\\")&&(e=\\\"bottom\\\"),-1!==t.indexOf(\\\"left\\\")?r=\\\"left\\\":-1!==t.indexOf(\\\"right\\\")&&(r=\\\"right\\\"),e+\\\" \\\"+r}function v(t,e){return e in t&&\\\"object\\\"==typeof t[e]&&0===Object.keys(t[e]).length}r.clearPromiseQueue=function(t){Array.isArray(t._promises)&&t._promises.length>0&&o.log(\\\"Clearing previous rejected promises from queue.\\\"),t._promises=[]},r.cleanLayout=function(t){var e,r;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var n=(s.subplotsRegistry.cartesian||{}).attrRegex,a=(s.subplotsRegistry.gl3d||{}).attrRegex,l=Object.keys(t);for(e=0;e<l.length;e++){var u=l[e];if(n&&n.test(u)){var p=t[u];p.anchor&&\\\"free\\\"!==p.anchor&&(p.anchor=c(p.anchor)),p.overlaying&&(p.overlaying=c(p.overlaying)),p.type||(p.isdate?p.type=\\\"date\\\":p.islog?p.type=\\\"log\\\":!1===p.isdate&&!1===p.islog&&(p.type=\\\"linear\\\")),\\\"withzero\\\"!==p.autorange&&\\\"tozero\\\"!==p.autorange||(p.autorange=!0,p.rangemode=\\\"tozero\\\"),delete p.islog,delete p.isdate,delete p.categories,v(p,\\\"domain\\\")&&delete p.domain,void 0!==p.autotick&&(void 0===p.tickmode&&(p.tickmode=p.autotick?\\\"auto\\\":\\\"linear\\\"),delete p.autotick)}else if(a&&a.test(u)){var d=t[u],g=d.cameraposition;if(Array.isArray(g)&&4===g[0].length){var m=g[0],y=g[1],x=g[2],b=i([],m),_=[];for(r=0;r<3;++r)_[r]=y[r]+x*b[2+4*r];d.camera={eye:{x:_[0],y:_[1],z:_[2]},center:{x:y[0],y:y[1],z:y[2]},up:{x:b[1],y:b[5],z:b[9]}},delete d.cameraposition}}}var w=Array.isArray(t.annotations)?t.annotations.length:0;for(e=0;e<w;e++){var k=t.annotations[e];o.isPlainObject(k)&&(k.ref&&(\\\"paper\\\"===k.ref?(k.xref=\\\"paper\\\",k.yref=\\\"paper\\\"):\\\"data\\\"===k.ref&&(k.xref=\\\"x\\\",k.yref=\\\"y\\\"),delete k.ref),h(k,\\\"xref\\\"),h(k,\\\"yref\\\"))}var M=Array.isArray(t.shapes)?t.shapes.length:0;for(e=0;e<M;e++){var A=t.shapes[e];o.isPlainObject(A)&&(h(A,\\\"xref\\\"),h(A,\\\"yref\\\"))}var T=t.legend;return T&&(T.x>3?(T.x=1.02,T.xanchor=\\\"left\\\"):T.x<-2&&(T.x=-.02,T.xanchor=\\\"right\\\"),T.y>3?(T.y=1.02,T.yanchor=\\\"bottom\\\"):T.y<-2&&(T.y=-.02,T.yanchor=\\\"top\\\")),\\\"rotate\\\"===t.dragmode&&(t.dragmode=\\\"orbit\\\"),f.clean(t),t},r.cleanData=function(t){for(var e=0;e<t.length;e++){var n,i=t[e];if(\\\"histogramy\\\"===i.type&&\\\"xbins\\\"in i&&!(\\\"ybins\\\"in i)&&(i.ybins=i.xbins,delete i.xbins),i.error_y&&\\\"opacity\\\"in i.error_y){var l=f.defaults,u=i.error_y.color||(a.traceIs(i,\\\"bar\\\")?f.defaultLine:l[e%l.length]);i.error_y.color=f.addOpacity(f.rgb(u),f.opacity(u)*i.error_y.opacity),delete i.error_y.opacity}if(\\\"bardir\\\"in i&&(\\\"h\\\"!==i.bardir||!a.traceIs(i,\\\"bar\\\")&&\\\"histogram\\\"!==i.type.substr(0,9)||(i.orientation=\\\"h\\\",r.swapXYData(i)),delete i.bardir),\\\"histogramy\\\"===i.type&&r.swapXYData(i),\\\"histogramx\\\"!==i.type&&\\\"histogramy\\\"!==i.type||(i.type=\\\"histogram\\\"),\\\"scl\\\"in i&&(i.colorscale=i.scl,delete i.scl),\\\"reversescl\\\"in i&&(i.reversescale=i.reversescl,delete i.reversescl),i.xaxis&&(i.xaxis=c(i.xaxis,\\\"x\\\")),i.yaxis&&(i.yaxis=c(i.yaxis,\\\"y\\\")),a.traceIs(i,\\\"gl3d\\\")&&i.scene&&(i.scene=s.subplotsRegistry.gl3d.cleanId(i.scene)),!a.traceIs(i,\\\"pie\\\")&&!a.traceIs(i,\\\"bar\\\"))if(Array.isArray(i.textposition))for(n=0;n<i.textposition.length;n++)i.textposition[n]=g(i.textposition[n]);else i.textposition&&(i.textposition=g(i.textposition));var h=a.getModule(i);if(h&&h.colorbar){var m=h.colorbar.container,y=m?i[m]:i;y&&y.colorscale&&(\\\"YIGnBu\\\"===y.colorscale&&(y.colorscale=\\\"YlGnBu\\\"),\\\"YIOrRd\\\"===y.colorscale&&(y.colorscale=\\\"YlOrRd\\\"))}if(\\\"surface\\\"===i.type&&o.isPlainObject(i.contours)){var x=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];for(n=0;n<x.length;n++){var b=i.contours[x[n]];o.isPlainObject(b)&&(b.highlightColor&&(b.highlightcolor=b.highlightColor,delete b.highlightColor),b.highlightWidth&&(b.highlightwidth=b.highlightWidth,delete b.highlightWidth))}}if(\\\"candlestick\\\"===i.type||\\\"ohlc\\\"===i.type){var _=!1!==(i.increasing||{}).showlegend,w=!1!==(i.decreasing||{}).showlegend,k=p(i.increasing),M=p(i.decreasing);if(!1!==k&&!1!==M){var A=d(k,M,_,w);A&&(i.name=A)}else!k&&!M||i.name||(i.name=k||M)}if(Array.isArray(i.transforms)){var T=i.transforms;for(n=0;n<T.length;n++){var S=T[n];if(o.isPlainObject(S))switch(S.type){case\\\"filter\\\":S.filtersrc&&(S.target=S.filtersrc,delete S.filtersrc),S.calendar&&(S.valuecalendar||(S.valuecalendar=S.calendar),delete S.calendar);break;case\\\"groupby\\\":if(S.styles=S.styles||S.style,S.styles&&!Array.isArray(S.styles)){var E=S.styles,C=Object.keys(E);S.styles=[];for(var L=0;L<C.length;L++)S.styles.push({target:C[L],value:E[C[L]]})}}}}v(i,\\\"line\\\")&&delete i.line,\\\"marker\\\"in i&&(v(i.marker,\\\"line\\\")&&delete i.marker.line,v(i,\\\"marker\\\")&&delete i.marker),f.clean(i),i.autobinx&&(delete i.autobinx,delete i.xbins),i.autobiny&&(delete i.autobiny,delete i.ybins)}},r.swapXYData=function(t){var e;if(o.swapAttrs(t,[\\\"?\\\",\\\"?0\\\",\\\"d?\\\",\\\"?bins\\\",\\\"nbins?\\\",\\\"autobin?\\\",\\\"?src\\\",\\\"error_?\\\"]),Array.isArray(t.z)&&Array.isArray(t.z[0])&&(t.transpose?delete t.transpose:t.transpose=!0),t.error_x&&t.error_y){var r=t.error_y,n=\\\"copy_ystyle\\\"in r?r.copy_ystyle:!(r.color||r.thickness||r.width);o.swapAttrs(t,[\\\"error_?.copy_ystyle\\\"]),n&&o.swapAttrs(t,[\\\"error_?.color\\\",\\\"error_?.thickness\\\",\\\"error_?.width\\\"])}if(\\\"string\\\"==typeof t.hoverinfo){var i=t.hoverinfo.split(\\\"+\\\");for(e=0;e<i.length;e++)\\\"x\\\"===i[e]?i[e]=\\\"y\\\":\\\"y\\\"===i[e]&&(i[e]=\\\"x\\\");t.hoverinfo=i.join(\\\"+\\\")}},r.coerceTraceIndices=function(t,e){if(n(e))return[e];if(!Array.isArray(e)||!e.length)return t.data.map(function(t,e){return e});if(Array.isArray(e)){for(var r=[],i=0;i<e.length;i++)o.isIndex(e[i],t.data.length)?r.push(e[i]):o.warn(\\\"trace index (\\\",e[i],\\\") is not a number or is out of bounds\\\");return r}return e},r.manageArrayContainers=function(t,e,r){var i=t.obj,a=t.parts,s=a.length,l=a[s-1],c=n(l);if(c&&null===e){var u=a.slice(0,s-1).join(\\\".\\\");o.nestedProperty(i,u).get().splice(l,1)}else c&&void 0===t.get()?(void 0===t.get()&&(r[t.astr]=null),t.set(e)):t.set(e)};var m=/(\\\\.[^\\\\[\\\\]\\\\.]+|\\\\[[^\\\\[\\\\]\\\\.]+\\\\])$/;function y(t){var e=t.search(m);if(e>0)return t.substr(0,e)}r.hasParent=function(t,e){for(var r=y(e);r;){if(r in t)return!0;r=y(r)}return!1};var x=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];r.clearAxisTypes=function(t,e,r){for(var n=0;n<e.length;n++)for(var i=t._fullData[n],a=0;a<3;a++){var s=u(t,i,x[a]);if(s&&\\\"log\\\"!==s.type){var l=s._name,c=s._id.substr(1);if(\\\"scene\\\"===c.substr(0,5)){if(void 0!==r[c])continue;l=c+\\\".\\\"+l}var f=l+\\\".type\\\";void 0===r[l]&&void 0===r[f]&&o.nestedProperty(t.layout,f).set(null)}}}},{\\\"../components/color\\\":570,\\\"../lib\\\":696,\\\"../plots/cartesian/axis_ids\\\":747,\\\"../plots/plots\\\":808,\\\"../registry\\\":827,\\\"fast-isnumeric\\\":214,\\\"gl-mat4/fromQuat\\\":251}],729:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./plot_api\\\");r.plot=n.plot,r.newPlot=n.newPlot,r.restyle=n.restyle,r.relayout=n.relayout,r.redraw=n.redraw,r.update=n.update,r.react=n.react,r.extendTraces=n.extendTraces,r.prependTraces=n.prependTraces,r.addTraces=n.addTraces,r.deleteTraces=n.deleteTraces,r.moveTraces=n.moveTraces,r.purge=n.purge,r.addFrames=n.addFrames,r.deleteFrames=n.deleteFrames,r.animate=n.animate,r.setPlotConfig=n.setPlotConfig,r.toImage=t(\\\"./to_image\\\"),r.validate=t(\\\"./validate\\\"),r.downloadImage=t(\\\"../snapshot/download\\\");var i=t(\\\"./template_api\\\");r.makeTemplate=i.makeTemplate,r.validateTemplate=i.validateTemplate},{\\\"../snapshot/download\\\":829,\\\"./plot_api\\\":731,\\\"./template_api\\\":736,\\\"./to_image\\\":737,\\\"./validate\\\":738}],730:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib/nested_property\\\"),i=t(\\\"../lib/is_plain_object\\\"),a=t(\\\"../lib/noop\\\"),o=t(\\\"../lib/loggers\\\"),s=t(\\\"../lib/search\\\").sorterAsc,l=t(\\\"../registry\\\");r.containerArrayMatch=t(\\\"./container_array_match\\\");var c=r.isAddVal=function(t){return\\\"add\\\"===t||i(t)},u=r.isRemoveVal=function(t){return null===t||\\\"remove\\\"===t};r.applyContainerArrayChanges=function(t,e,r,i){var f=e.astr,h=l.getComponentMethod(f,\\\"supplyLayoutDefaults\\\"),p=l.getComponentMethod(f,\\\"draw\\\"),d=l.getComponentMethod(f,\\\"drawOne\\\"),g=i.replot||i.recalc||h===a||p===a,v=t.layout,m=t._fullLayout;if(r[\\\"\\\"]){Object.keys(r).length>1&&o.warn(\\\"Full array edits are incompatible with other edits\\\",f);var y=r[\\\"\\\"][\\\"\\\"];if(u(y))e.set(null);else{if(!Array.isArray(y))return o.warn(\\\"Unrecognized full array edit value\\\",f,y),!0;e.set(y)}return!g&&(h(v,m),p(t),!0)}var x,b,_,w,k,M,A,T=Object.keys(r).map(Number).sort(s),S=e.get(),E=S||[],C=n(m,f).get(),L=[],z=-1,O=E.length;for(x=0;x<T.length;x++)if(w=r[_=T[x]],k=Object.keys(w),M=w[\\\"\\\"],A=c(M),_<0||_>E.length-(A?0:1))o.warn(\\\"index out of range\\\",f,_);else if(void 0!==M)k.length>1&&o.warn(\\\"Insertion & removal are incompatible with edits to the same index.\\\",f,_),u(M)?L.push(_):A?(\\\"add\\\"===M&&(M={}),E.splice(_,0,M),C&&C.splice(_,0,{})):o.warn(\\\"Unrecognized full object edit value\\\",f,_,M),-1===z&&(z=_);else for(b=0;b<k.length;b++)n(E[_],k[b]).set(w[k[b]]);for(x=L.length-1;x>=0;x--)E.splice(L[x],1),C&&C.splice(L[x],1);if(E.length?S||e.set(E):e.set(null),g)return!1;if(h(v,m),d!==a){var I;if(-1===z)I=T;else{for(O=Math.max(E.length,O),I=[],x=0;x<T.length&&!((_=T[x])>=z);x++)I.push(_);for(x=z;x<O;x++)I.push(x)}for(x=0;x<I.length;x++)d(t,I[x])}else p(t);return!0}},{\\\"../lib/is_plain_object\\\":697,\\\"../lib/loggers\\\":700,\\\"../lib/nested_property\\\":704,\\\"../lib/noop\\\":705,\\\"../lib/search\\\":715,\\\"../registry\\\":827,\\\"./container_array_match\\\":726}],731:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"has-hover\\\"),o=t(\\\"../lib\\\"),s=t(\\\"../lib/events\\\"),l=t(\\\"../lib/queue\\\"),c=t(\\\"../registry\\\"),u=t(\\\"./plot_schema\\\"),f=t(\\\"../plots/plots\\\"),h=t(\\\"../plots/polar/legacy\\\"),p=t(\\\"../plots/cartesian/axes\\\"),d=t(\\\"../components/drawing\\\"),g=t(\\\"../components/color\\\"),v=t(\\\"../components/colorbar/connect\\\"),m=t(\\\"../plots/cartesian/graph_interact\\\").initInteractions,y=t(\\\"../constants/xmlns_namespaces\\\"),x=t(\\\"../lib/svg_text_utils\\\"),b=t(\\\"./plot_config\\\"),_=t(\\\"./manage_arrays\\\"),w=t(\\\"./helpers\\\"),k=t(\\\"./subroutines\\\"),M=t(\\\"./edit_types\\\"),A=t(\\\"../plots/cartesian/constants\\\").AX_NAME_PATTERN,T=0;function S(t){var e=t._fullLayout;e._redrawFromAutoMarginCount?e._redrawFromAutoMarginCount--:t.emit(\\\"plotly_afterplot\\\")}function E(t,e){try{t._fullLayout._paper.style(\\\"background\\\",e)}catch(t){o.error(t)}}function C(t,e){E(t,g.combine(e,\\\"white\\\"))}function L(t,e){t._context||(t._context=o.extendDeep({},b));var r,n,i,s=t._context;if(e){for(n=Object.keys(e),r=0;r<n.length;r++)\\\"editable\\\"!==(i=n[r])&&\\\"edits\\\"!==i&&i in s&&(\\\"setBackground\\\"===i&&\\\"opaque\\\"===e[i]?s[i]=C:s[i]=e[i]);e.plot3dPixelRatio&&!s.plotGlPixelRatio&&(s.plotGlPixelRatio=s.plot3dPixelRatio);var l=e.editable;if(void 0!==l)for(s.editable=l,n=Object.keys(s.edits),r=0;r<n.length;r++)s.edits[n[r]]=l;if(e.edits)for(n=Object.keys(e.edits),r=0;r<n.length;r++)(i=n[r])in s.edits&&(s.edits[i]=e.edits[i])}s.staticPlot&&(s.editable=!1,s.edits={},s.autosizable=!1,s.scrollZoom=!1,s.doubleClick=!1,s.showTips=!1,s.showLink=!1,s.displayModeBar=!1),\\\"hover\\\"!==s.displayModeBar||a||(s.displayModeBar=!0),\\\"transparent\\\"!==s.setBackground&&\\\"function\\\"==typeof s.setBackground||(s.setBackground=E),s._hasZeroHeight=s._hasZeroHeight||0===t.clientHeight,s._hasZeroWidth=s._hasZeroWidth||0===t.clientWidth}function z(t,e){var r,n,i=e+1,a=[];for(r=0;r<t.length;r++)(n=t[r])<0?a.push(i+n):a.push(n);return a}function O(t,e,r){var n,i;for(n=0;n<e.length;n++){if((i=e[n])!==parseInt(i,10))throw new Error(\\\"all values in \\\"+r+\\\" must be integers\\\");if(i>=t.data.length||i<-t.data.length)throw new Error(r+\\\" must be valid indices for gd.data.\\\");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error(\\\"each index in \\\"+r+\\\" must be unique.\\\")}}function I(t,e,r){if(!Array.isArray(t.data))throw new Error(\\\"gd.data must be an array.\\\");if(\\\"undefined\\\"==typeof e)throw new Error(\\\"currentIndices is a required argument.\\\");if(Array.isArray(e)||(e=[e]),O(t,e,\\\"currentIndices\\\"),\\\"undefined\\\"==typeof r||Array.isArray(r)||(r=[r]),\\\"undefined\\\"!=typeof r&&O(t,r,\\\"newIndices\\\"),\\\"undefined\\\"!=typeof r&&e.length!==r.length)throw new Error(\\\"current and new indices must be of equal length.\\\")}function P(t,e,r,n,a){!function(t,e,r,n){var i=o.isPlainObject(n);if(!Array.isArray(t.data))throw new Error(\\\"gd.data must be an array\\\");if(!o.isPlainObject(e))throw new Error(\\\"update must be a key:value object\\\");if(\\\"undefined\\\"==typeof r)throw new Error(\\\"indices must be an integer or array of integers\\\");for(var a in O(t,r,\\\"indices\\\"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error(\\\"attribute \\\"+a+\\\" must be an array of length equal to indices array length\\\");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].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\\\")}}(t,e,r,n);for(var s=function(t,e,r,n){var a,s,l,c,u,f=o.isPlainObject(n),h=[];for(var p in Array.isArray(r)||(r=[r]),r=z(r,t.data.length-1),e)for(var d=0;d<r.length;d++){if(a=t.data[r[d]],s=(l=o.nestedProperty(a,p)).get(),c=e[p][d],!o.isArrayOrTypedArray(c))throw new Error(\\\"attribute: \\\"+p+\\\" index: \\\"+d+\\\" must be an array\\\");if(!o.isArrayOrTypedArray(s))throw new Error(\\\"cannot extend missing or non-array attribute: \\\"+p);if(s.constructor!==c.constructor)throw new Error(\\\"cannot extend array with an array of a different type: \\\"+p);u=f?n[p][d]:n,i(u)||(u=-1),h.push({prop:l,target:s,insert:c,maxp:Math.floor(u)})}return h}(t,e,r,n),l={},c={},u=0;u<s.length;u++){var f=s[u].prop,h=s[u].maxp,p=a(s[u].target,s[u].insert,h);f.set(p[0]),Array.isArray(l[f.astr])||(l[f.astr]=[]),l[f.astr].push(p[1]),Array.isArray(c[f.astr])||(c[f.astr]=[]),c[f.astr].push(s[u].target.length)}return{update:l,maxPoints:c}}function D(t,e){var r=new t.constructor(t.length+e.length);return r.set(t),r.set(e,t.length),r}function R(t){return void 0===t?null:t}function B(t,e,r){var n,i,a=t._fullLayout,s=t._fullData,l=t.data,h=M.traceFlags(),d={},g={};function v(){return r.map(function(){})}function m(t){var e=p.id2name(t);-1===i.indexOf(e)&&i.push(e)}function y(t){return\\\"LAYOUT\\\"+t+\\\".autorange\\\"}function x(t){return\\\"LAYOUT\\\"+t+\\\".range\\\"}function b(n,i,a){var s;Array.isArray(n)?n.forEach(function(t){b(t,i,a)}):n in e||w.hasParent(e,n)||(s=\\\"LAYOUT\\\"===n.substr(0,6)?o.nestedProperty(t.layout,n.replace(\\\"LAYOUT\\\",\\\"\\\")):o.nestedProperty(l[r[a]],n),n in g||(g[n]=v()),void 0===g[n][a]&&(g[n][a]=R(s.get())),void 0!==i&&s.set(i))}function _(t){return function(e){return s[e][t]}}function k(t){return function(e,n){return!1===e?s[r[n]][t]:null}}for(var A in e){if(w.hasParent(e,A))throw new Error(\\\"cannot set \\\"+A+\\\"and a parent attribute simultaneously\\\");var T,S,E,C,L,z,O=e[A];if(\\\"autobinx\\\"!==A&&\\\"autobiny\\\"!==A||(A=A.charAt(A.length-1)+\\\"bins\\\",O=Array.isArray(O)?O.map(k(A)):!1===O?r.map(_(A)):null),d[A]=O,\\\"LAYOUT\\\"!==A.substr(0,6)){for(g[A]=v(),n=0;n<r.length;n++)if(T=l[r[n]],S=s[r[n]],C=(E=o.nestedProperty(T,A)).get(),void 0!==(L=Array.isArray(O)?O[n%O.length]:O)){var I=E.parts[E.parts.length-1],P=A.substr(0,A.length-I.length-1),D=P?P+\\\".\\\":\\\"\\\",B=P?o.nestedProperty(S,P).get():S;if((z=u.getTraceValObject(S,E.parts))&&z.impliedEdits&&null!==L)for(var F in z.impliedEdits)b(o.relativeAttr(A,F),z.impliedEdits[F],n);else if(\\\"thicknessmode\\\"!==I&&\\\"lenmode\\\"!==I||C===L||\\\"fraction\\\"!==L&&\\\"pixels\\\"!==L||!B){if(\\\"type\\\"===A&&\\\"pie\\\"===L!=(\\\"pie\\\"===C)){var N=\\\"x\\\",j=\\\"y\\\";\\\"bar\\\"!==L&&\\\"bar\\\"!==C||\\\"h\\\"!==T.orientation||(N=\\\"y\\\",j=\\\"x\\\"),o.swapAttrs(T,[\\\"?\\\",\\\"?src\\\"],\\\"labels\\\",N),o.swapAttrs(T,[\\\"d?\\\",\\\"?0\\\"],\\\"label\\\",N),o.swapAttrs(T,[\\\"?\\\",\\\"?src\\\"],\\\"values\\\",j),\\\"pie\\\"===C?(o.nestedProperty(T,\\\"marker.color\\\").set(o.nestedProperty(T,\\\"marker.colors\\\").get()),a._pielayer.selectAll(\\\"g.trace\\\").remove()):c.traceIs(T,\\\"cartesian\\\")&&o.nestedProperty(T,\\\"marker.colors\\\").set(o.nestedProperty(T,\\\"marker.color\\\").get())}}else{var V=a._size,U=B.orient,q=\\\"top\\\"===U||\\\"bottom\\\"===U;if(\\\"thicknessmode\\\"===I){var H=q?V.h:V.w;b(D+\\\"thickness\\\",B.thickness*(\\\"fraction\\\"===L?1/H:H),n)}else{var G=q?V.w:V.h;b(D+\\\"len\\\",B.len*(\\\"fraction\\\"===L?1/G:G),n)}}g[A][n]=R(C);if(-1!==[\\\"swapxy\\\",\\\"swapxyaxes\\\",\\\"orientation\\\",\\\"orientationaxes\\\"].indexOf(A)){if(\\\"orientation\\\"===A){E.set(L);var W=T.x&&!T.y?\\\"h\\\":\\\"v\\\";if((E.get()||W)===S.orientation)continue}else\\\"orientationaxes\\\"===A&&(T.orientation={v:\\\"h\\\",h:\\\"v\\\"}[S.orientation]);w.swapXYData(T),h.calc=h.clearAxisTypes=!0}else-1!==f.dataArrayContainers.indexOf(E.parts[0])?(w.manageArrayContainers(E,L,g),h.calc=!0):(z?z.arrayOk&&!c.traceIs(S,\\\"regl\\\")&&(o.isArrayOrTypedArray(L)||o.isArrayOrTypedArray(C))?h.calc=!0:M.update(h,z):h.calc=!0,E.set(L))}if(-1!==[\\\"swapxyaxes\\\",\\\"orientationaxes\\\"].indexOf(A)&&p.swap(t,r),\\\"orientationaxes\\\"===A){var Y=o.nestedProperty(t.layout,\\\"hovermode\\\");\\\"x\\\"===Y.get()?Y.set(\\\"y\\\"):\\\"y\\\"===Y.get()&&Y.set(\\\"x\\\")}if(-1!==[\\\"orientation\\\",\\\"type\\\"].indexOf(A)){for(i=[],n=0;n<r.length;n++){var X=l[r[n]];c.traceIs(X,\\\"cartesian\\\")&&(m(X.xaxis||\\\"x\\\"),m(X.yaxis||\\\"y\\\"))}b(i.map(y),!0,0),b(i.map(x),[0,1],0)}}else E=o.nestedProperty(t.layout,A.replace(\\\"LAYOUT\\\",\\\"\\\")),g[A]=[R(E.get())],E.set(Array.isArray(O)?O[0]:O),h.calc=!0}return(h.calc||h.plot)&&(h.fullReplot=!0),{flags:h,undoit:g,redoit:d,traces:r,eventData:o.extendDeepNoArrays([],[d,r])}}function F(t,e,r){var n;if(!e.axrange)return!1;for(n in e)if(\\\"axrange\\\"!==n&&e[n])return!1;for(n in r.rangesAltered){var i=p.id2name(n),a=t.layout[i],o=t._fullLayout[i];o.autorange=a.autorange,o.range=a.range.slice(),o.cleanRange()}return!0}function N(t,e){var r=e?function(t){return p.doTicks(t,Object.keys(e),!0)}:function(t){return p.doTicks(t,\\\"redraw\\\")};t.push(k.doAutoRangeAndConstraints,r,k.drawData,k.finalDraw)}r.plot=function(t,e,i,a){var l;if(t=o.getGraphDiv(t),s.init(t),o.isPlainObject(e)){var u=e;e=u.data,i=u.layout,a=u.config,l=u.frames}if(!1===s.triggerHandler(t,\\\"plotly_beforeplot\\\",[e,i,a]))return Promise.reject();e||i||o.isPlotDiv(t)||o.warn(\\\"Calling Plotly.plot as if redrawing but this container doesn't yet have a plot.\\\",t),L(t,a),i||(i={}),n.select(t).classed(\\\"js-plotly-plot\\\",!0),d.makeTester(),delete d.baseUrl,Array.isArray(t._promises)||(t._promises=[]);var g=0===(t.data||[]).length&&Array.isArray(e);if(Array.isArray(e)&&(w.cleanData(e),g?t.data=e:t.data.push.apply(t.data,e),t.empty=!1),t.layout&&!g||(t.layout=w.cleanLayout(i)),t._dragging&&!t._transitioning)return t._replotPending=!0,Promise.reject();t._replotPending=!1,f.supplyDefaults(t);var y=t._fullLayout,b=y._has(\\\"cartesian\\\");if(!y._has(\\\"polar\\\")&&e&&e[0]&&e[0].r)return o.log(\\\"Legacy polar charts are deprecated!\\\"),function(t,e,r){var i=n.select(t).selectAll(\\\".plot-container\\\").data([0]);i.enter().insert(\\\"div\\\",\\\":first-child\\\").classed(\\\"plot-container plotly\\\",!0);var a=i.selectAll(\\\".svg-container\\\").data([0]);a.enter().append(\\\"div\\\").classed(\\\"svg-container\\\",!0).style(\\\"position\\\",\\\"relative\\\"),a.html(\\\"\\\"),e&&(t.data=e);r&&(t.layout=r);h.manager.fillLayout(t),a.style({width:t._fullLayout.width+\\\"px\\\",height:t._fullLayout.height+\\\"px\\\"}),t.framework=h.manager.framework(t),t.framework({data:t.data,layout:t.layout},a.node()),t.framework.setUndoPoint();var s=t.framework.svg(),l=1,c=t._fullLayout.title;\\\"\\\"!==c&&c||(l=0);var u=function(){this.call(x.convertToTspans,t)},p=s.select(\\\".title-group text\\\").call(u);if(t._context.edits.titleText){var d=o._(t,\\\"Click to enter Plot title\\\");c&&c!==d||(l=.2,p.attr({\\\"data-unformatted\\\":d}).text(d).style({opacity:l}).on(\\\"mouseover.opacity\\\",function(){n.select(this).transition().duration(100).style(\\\"opacity\\\",1)}).on(\\\"mouseout.opacity\\\",function(){n.select(this).transition().duration(1e3).style(\\\"opacity\\\",0)}));var g=function(){this.call(x.makeEditable,{gd:t}).on(\\\"edit\\\",function(e){t.framework({layout:{title:e}}),this.text(e).call(u),this.call(g)}).on(\\\"cancel\\\",function(){var t=this.attr(\\\"data-unformatted\\\");this.text(t).call(u)})};p.call(g)}return t._context.setBackground(t,t._fullLayout.paper_bgcolor),f.addLinks(t),Promise.resolve()}(t,e,i);y._replotting=!0,g&&W(t),t.framework!==W&&(t.framework=W,W(t)),d.initGradients(t),g&&p.saveShowSpikeInitial(t);var _=!t.calcdata||t.calcdata.length!==(t._fullData||[]).length;_&&f.doCalcdata(t);for(var M=0;M<t.calcdata.length;M++)t.calcdata[M][0].trace=t._fullData[M];t._context.responsive?t._responsiveChartHandler||(t._responsiveChartHandler=function(){f.resize(t)},window.addEventListener(\\\"resize\\\",t._responsiveChartHandler)):o.clearResponsive(t);var A=JSON.stringify(y._size),T=0;function E(){var e,r,n,i=t.calcdata;for(f.clearAutoMarginIds(t),k.drawMarginPushers(t),p.allowAutoMargin(t),e=0;e<i.length;e++){var a=(n=(r=i[e])[0].trace)._module.colorbar;!0===n.visible&&a?v(t,r,a):f.autoMargin(t,\\\"cb\\\"+n.uid)}return f.doAutoMargin(t),f.previousPromises(t)}function C(){t._transitioning||(k.doAutoRangeAndConstraints(t),g&&p.saveRangeInitial(t))}var z=[f.previousPromises,function(){if(l)return r.addFrames(t,l)},function e(){for(var r=y._basePlotModules,n=0;n<r.length;n++)r[n].drawFramework&&r[n].drawFramework(t);if(!y._glcanvas&&y._has(\\\"gl\\\")&&(y._glcanvas=y._glcontainer.selectAll(\\\".gl-canvas\\\").data([{key:\\\"contextLayer\\\",context:!0,pick:!1},{key:\\\"focusLayer\\\",context:!1,pick:!1},{key:\\\"pickLayer\\\",context:!1,pick:!0}],function(t){return t.key}),y._glcanvas.enter().append(\\\"canvas\\\").attr(\\\"class\\\",function(t){return\\\"gl-canvas gl-canvas-\\\"+t.key.replace(\\\"Layer\\\",\\\"\\\")}).style({position:\\\"absolute\\\",top:0,left:0,width:\\\"100%\\\",height:\\\"100%\\\",overflow:\\\"visible\\\",\\\"pointer-events\\\":\\\"none\\\"})),y._glcanvas){y._glcanvas.attr(\\\"width\\\",y.width).attr(\\\"height\\\",y.height);var i=y._glcanvas.data()[0].regl;if(i&&(Math.floor(y.width)!==i._gl.drawingBufferWidth||Math.floor(y.height)!==i._gl.drawingBufferHeight)){var a=\\\"WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.\\\";if(!T)return o.log(a+\\\" Clearing graph and plotting again.\\\"),f.cleanPlot([],{},t._fullData,y),f.supplyDefaults(t),y=t._fullLayout,f.doCalcdata(t),T++,e();o.error(a)}}return f.previousPromises(t)},E,function(){if(JSON.stringify(y._size)!==A)return o.syncOrAsync([E,k.layoutStyles],t)}];b&&z.push(function(){if(_)return o.syncOrAsync([c.getComponentMethod(\\\"shapes\\\",\\\"calcAutorange\\\"),c.getComponentMethod(\\\"annotations\\\",\\\"calcAutorange\\\"),C,c.getComponentMethod(\\\"rangeslider\\\",\\\"calcAutorange\\\")],t);C()}),z.push(k.layoutStyles),b&&z.push(function(){return p.doTicks(t,g?\\\"\\\":\\\"redraw\\\")}),z.push(k.drawData,k.finalDraw,m,f.addLinks,f.rehover,f.doAutoMargin,f.previousPromises);var O=o.syncOrAsync(z,t);return O&&O.then||(O=Promise.resolve()),O.then(function(){return S(t),t})},r.setPlotConfig=function(t){return o.extendFlat(b,t)},r.redraw=function(t){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error(\\\"This element is not a Plotly plot: \\\"+t);return w.cleanData(t.data),w.cleanLayout(t.layout),t.calcdata=void 0,r.plot(t).then(function(){return t.emit(\\\"plotly_redraw\\\"),t})},r.newPlot=function(t,e,n,i){return t=o.getGraphDiv(t),f.cleanPlot([],{},t._fullData||[],t._fullLayout||{}),f.purge(t),r.plot(t,e,n,i)},r.extendTraces=function t(e,n,i,a){var s=P(e=o.getGraphDiv(e),n,i,a,function(t,e,r){var n,i;if(o.isTypedArray(t))if(r<0){var a=new t.constructor(0),s=D(t,e);r<0?(n=s,i=a):(n=a,i=s)}else if(n=new t.constructor(r),i=new t.constructor(t.length+e.length-r),r===e.length)n.set(e),i.set(t);else if(r<e.length){var l=e.length-r;n.set(e.subarray(l)),i.set(t),i.set(e.subarray(0,l),t.length)}else{var c=r-e.length,u=t.length-c;n.set(t.subarray(u)),n.set(e,c),i.set(t.subarray(0,u))}else n=t.concat(e),i=r>=0&&r<n.length?n.splice(0,n.length-r):[];return[n,i]}),c=r.redraw(e),u=[e,s.update,i,s.maxPoints];return l.add(e,r.prependTraces,u,t,arguments),c},r.prependTraces=function t(e,n,i,a){var s=P(e=o.getGraphDiv(e),n,i,a,function(t,e,r){var n,i;if(o.isTypedArray(t))if(r<=0){var a=new t.constructor(0),s=D(e,t);r<0?(n=s,i=a):(n=a,i=s)}else if(n=new t.constructor(r),i=new t.constructor(t.length+e.length-r),r===e.length)n.set(e),i.set(t);else if(r<e.length){var l=e.length-r;n.set(e.subarray(0,l)),i.set(e.subarray(l)),i.set(t,l)}else{var c=r-e.length;n.set(e),n.set(t.subarray(0,c),e.length),i.set(t.subarray(c))}else n=e.concat(t),i=r>=0&&r<n.length?n.splice(r,n.length):[];return[n,i]}),c=r.redraw(e),u=[e,s.update,i,s.maxPoints];return l.add(e,r.extendTraces,u,t,arguments),c},r.addTraces=function t(e,n,i){e=o.getGraphDiv(e);var a,s,c=[],u=r.deleteTraces,f=t,h=[e,c],p=[e,n];for(function(t,e,r){var n,i;if(!Array.isArray(t.data))throw new Error(\\\"gd.data must be an array.\\\");if(\\\"undefined\\\"==typeof e)throw new Error(\\\"traces must be defined.\\\");for(Array.isArray(e)||(e=[e]),n=0;n<e.length;n++)if(\\\"object\\\"!=typeof(i=e[n])||Array.isArray(i)||null===i)throw new Error(\\\"all values in traces array must be non-array objects\\\");if(\\\"undefined\\\"==typeof r||Array.isArray(r)||(r=[r]),\\\"undefined\\\"!=typeof r&&r.length!==e.length)throw new Error(\\\"if indices is specified, traces.length must equal indices.length\\\")}(e,n,i),Array.isArray(n)||(n=[n]),n=n.map(function(t){return o.extendFlat({},t)}),w.cleanData(n),a=0;a<n.length;a++)e.data.push(n[a]);for(a=0;a<n.length;a++)c.push(-n.length+a);if(\\\"undefined\\\"==typeof i)return s=r.redraw(e),l.add(e,u,h,f,p),s;Array.isArray(i)||(i=[i]);try{I(e,c,i)}catch(t){throw e.data.splice(e.data.length-n.length,n.length),t}return l.startSequence(e),l.add(e,u,h,f,p),s=r.moveTraces(e,c,i),l.stopSequence(e),s},r.deleteTraces=function t(e,n){e=o.getGraphDiv(e);var i,a,s=[],c=r.addTraces,u=t,f=[e,s,n],h=[e,n];if(\\\"undefined\\\"==typeof n)throw new Error(\\\"indices must be an integer or array of integers.\\\");for(Array.isArray(n)||(n=[n]),O(e,n,\\\"indices\\\"),(n=z(n,e.data.length-1)).sort(o.sorterDes),i=0;i<n.length;i+=1)a=e.data.splice(n[i],1)[0],s.push(a);var p=r.redraw(e);return l.add(e,c,f,u,h),p},r.moveTraces=function t(e,n,i){var a,s=[],c=[],u=t,f=t,h=[e=o.getGraphDiv(e),i,n],p=[e,n,i];if(I(e,n,i),n=Array.isArray(n)?n:[n],\\\"undefined\\\"==typeof i)for(i=[],a=0;a<n.length;a++)i.push(-n.length+a);for(i=Array.isArray(i)?i:[i],n=z(n,e.data.length-1),i=z(i,e.data.length-1),a=0;a<e.data.length;a++)-1===n.indexOf(a)&&s.push(e.data[a]);for(a=0;a<n.length;a++)c.push({newIndex:i[a],trace:e.data[n[a]]});for(c.sort(function(t,e){return t.newIndex-e.newIndex}),a=0;a<c.length;a+=1)s.splice(c[a].newIndex,0,c[a].trace);e.data=s;var d=r.redraw(e);return l.add(e,u,h,f,p),d},r.restyle=function t(e,n,i,a){e=o.getGraphDiv(e),w.clearPromiseQueue(e);var s={};if(\\\"string\\\"==typeof n)s[n]=i;else{if(!o.isPlainObject(n))return o.warn(\\\"Restyle fail.\\\",n,i,a),Promise.reject();s=o.extendFlat({},n),void 0===a&&(a=i)}Object.keys(s).length&&(e.changed=!0);var c=w.coerceTraceIndices(e,a),u=B(e,s,c),h=u.flags;h.calc&&(e.calcdata=void 0),h.clearAxisTypes&&w.clearAxisTypes(e,c,{});var p=[];h.fullReplot?p.push(r.plot):(p.push(f.previousPromises),f.supplyDefaults(e),h.markerSize&&(f.doCalcdata(e),N(p)),h.style&&p.push(k.doTraceStyle),h.colorbars&&p.push(k.doColorBars),p.push(S)),p.push(f.rehover),l.add(e,t,[e,u.undoit,u.traces],t,[e,u.redoit,u.traces]);var d=o.syncOrAsync(p,e);return d&&d.then||(d=Promise.resolve()),d.then(function(){return e.emit(\\\"plotly_restyle\\\",u.eventData),e})},r.relayout=function t(e,r,n){if(e=o.getGraphDiv(e),w.clearPromiseQueue(e),e.framework&&e.framework.isPolar)return Promise.resolve(e);var i={};if(\\\"string\\\"==typeof r)i[r]=n;else{if(!o.isPlainObject(r))return o.warn(\\\"Relayout fail.\\\",r,n),Promise.reject();i=o.extendFlat({},r)}Object.keys(i).length&&(e.changed=!0);var a=q(e,i),s=a.flags;s.calc&&(e.calcdata=void 0);var c=[f.previousPromises];s.layoutReplot?c.push(k.layoutReplot):Object.keys(i).length&&(F(e,s,a)||f.supplyDefaults(e),s.legend&&c.push(k.doLegend),s.layoutstyle&&c.push(k.layoutStyles),s.axrange&&N(c,a.rangesAltered),s.ticks&&c.push(k.doTicksRelayout),s.modebar&&c.push(k.doModeBar),s.camera&&c.push(k.doCamera),c.push(S)),c.push(f.rehover),l.add(e,t,[e,a.undoit],t,[e,a.redoit]);var u=o.syncOrAsync(c,e);return u&&u.then||(u=Promise.resolve(e)),u.then(function(){return e.emit(\\\"plotly_relayout\\\",a.eventData),e})};var j=/^[xyz]axis[0-9]*\\\\.range(\\\\[[0|1]\\\\])?$/,V=/^[xyz]axis[0-9]*\\\\.autorange$/,U=/^[xyz]axis[0-9]*\\\\.domain(\\\\[[0|1]\\\\])?$/;function q(t,e){var r,n,i,a=t.layout,s=t._fullLayout,l=Object.keys(e),f=p.list(t),h={};for(n=0;n<l.length;n++)if(0===l[n].indexOf(\\\"allaxes\\\")){for(i=0;i<f.length;i++){var d=f[i]._id.substr(1),g=-1!==d.indexOf(\\\"scene\\\")?d+\\\".\\\":\\\"\\\",v=l[n].replace(\\\"allaxes\\\",g+f[i]._name);e[v]||(e[v]=e[l[n]])}delete e[l[n]]}var m=M.layoutFlags(),y={},x={};function b(t,r){if(Array.isArray(t))t.forEach(function(t){b(t,r)});else if(!(t in e||w.hasParent(e,t))){var n=o.nestedProperty(a,t);t in x||(x[t]=R(n.get())),void 0!==r&&n.set(r)}}var k,T={};function S(t){var e=p.name2id(t.split(\\\".\\\")[0]);return T[e]=1,e}for(var E in e){if(w.hasParent(e,E))throw new Error(\\\"cannot set \\\"+E+\\\"and a parent attribute simultaneously\\\");for(var C=o.nestedProperty(a,E),L=e[E],z=C.parts.length-1;z>0&&\\\"string\\\"!=typeof C.parts[z];)z--;var O=C.parts[z],I=C.parts[z-1]+\\\".\\\"+O,P=C.parts.slice(0,z).join(\\\".\\\"),D=o.nestedProperty(t.layout,P).get(),B=o.nestedProperty(s,P).get(),F=C.get();if(void 0!==L){y[E]=L,x[E]=\\\"reverse\\\"===O?L:R(F);var N=u.getLayoutValObject(s,C.parts);if(N&&N.impliedEdits&&null!==L)for(var q in N.impliedEdits)b(o.relativeAttr(E,q),N.impliedEdits[q]);if(-1!==[\\\"width\\\",\\\"height\\\"].indexOf(E))if(L){b(\\\"autosize\\\",null);var G=\\\"height\\\"===E?\\\"width\\\":\\\"height\\\";b(G,s[G])}else s[E]=t._initialAutoSize[E];else if(\\\"autosize\\\"===E)b(\\\"width\\\",L?null:s.width),b(\\\"height\\\",L?null:s.height);else if(I.match(j))S(I),o.nestedProperty(s,P+\\\"._inputRange\\\").set(null);else if(I.match(V)){S(I),o.nestedProperty(s,P+\\\"._inputRange\\\").set(null);var W=o.nestedProperty(s,P).get();W._inputDomain&&(W._input.domain=W._inputDomain.slice())}else I.match(U)&&o.nestedProperty(s,P+\\\"._inputDomain\\\").set(null);if(\\\"type\\\"===O){var Y=D,X=\\\"linear\\\"===B.type&&\\\"log\\\"===L,Z=\\\"log\\\"===B.type&&\\\"linear\\\"===L;if(X||Z){if(Y&&Y.range)if(B.autorange)X&&(Y.range=Y.range[1]>Y.range[0]?[1,2]:[2,1]);else{var $=Y.range[0],J=Y.range[1];X?($<=0&&J<=0&&b(P+\\\".autorange\\\",!0),$<=0?$=J/1e6:J<=0&&(J=$/1e6),b(P+\\\".range[0]\\\",Math.log($)/Math.LN10),b(P+\\\".range[1]\\\",Math.log(J)/Math.LN10)):(b(P+\\\".range[0]\\\",Math.pow(10,$)),b(P+\\\".range[1]\\\",Math.pow(10,J)))}else b(P+\\\".autorange\\\",!0);Array.isArray(s._subplots.polar)&&s._subplots.polar.length&&s[C.parts[0]]&&\\\"radialaxis\\\"===C.parts[1]&&delete s[C.parts[0]]._subplot.viewInitial[\\\"radialaxis.range\\\"],c.getComponentMethod(\\\"annotations\\\",\\\"convertCoords\\\")(t,B,L,b),c.getComponentMethod(\\\"images\\\",\\\"convertCoords\\\")(t,B,L,b)}else b(P+\\\".autorange\\\",!0),b(P+\\\".range\\\",null);o.nestedProperty(s,P+\\\"._inputRange\\\").set(null)}else if(O.match(A)){var K=o.nestedProperty(s,E).get(),Q=(L||{}).type;Q&&\\\"-\\\"!==Q||(Q=\\\"linear\\\"),c.getComponentMethod(\\\"annotations\\\",\\\"convertCoords\\\")(t,K,Q,b),c.getComponentMethod(\\\"images\\\",\\\"convertCoords\\\")(t,K,Q,b)}var tt=_.containerArrayMatch(E);if(tt){r=tt.array,n=tt.index;var et=tt.property,rt=(o.nestedProperty(a,r)||[])[n]||{},nt=N||{editType:\\\"calc\\\"};\\\"\\\"!==n&&\\\"\\\"===et&&(_.isAddVal(L)?x[E]=null:_.isRemoveVal(L)?x[E]=rt:o.warn(\\\"unrecognized full object value\\\",e)),M.update(m,nt),h[r]||(h[r]={});var it=h[r][n];it||(it=h[r][n]={}),it[et]=L,delete e[E]}else\\\"reverse\\\"===O?(D.range?D.range.reverse():(b(P+\\\".autorange\\\",!0),D.range=[1,0]),B.autorange?m.calc=!0:m.plot=!0):(s._has(\\\"scatter-like\\\")&&s._has(\\\"regl\\\")&&\\\"dragmode\\\"===E&&(\\\"lasso\\\"===L||\\\"select\\\"===L)&&\\\"lasso\\\"!==F&&\\\"select\\\"!==F?m.plot=!0:N?M.update(m,N):m.calc=!0,C.set(L))}}for(r in h){_.applyContainerArrayChanges(t,o.nestedProperty(a,r),h[r],m)||(m.plot=!0)}var at=s._axisConstraintGroups||[];for(k in T)for(n=0;n<at.length;n++){var ot=at[n];if(ot[k])for(var st in m.calc=!0,ot)T[st]||(p.getFromId(t,st)._constraintShrinkable=!0)}return(H(t)||e.height||e.width)&&(m.plot=!0),(m.plot||m.calc)&&(m.layoutReplot=!0),{flags:m,rangesAltered:T,undoit:x,redoit:y,eventData:o.extendDeep({},y)}}function H(t){var e=t._fullLayout,r=e.width,n=e.height;return t.layout.autosize&&f.plotAutoSize(t,t.layout,e),e.width!==r||e.height!==n}function G(t,e,r,n){var i,a,s=n.getValObject,l=n.flags,c=n.immutable,u=n.inArray,f=n.arrayIndex;function h(){var t=i.editType;u&&-1!==t.indexOf(\\\"arraydraw\\\")?o.pushUnique(l.arrays[u],f):M.update(l,i)}function p(t){return\\\"data_array\\\"===t.valType||t.arrayOk}for(a in t){if(l.calc)return;var d=t[a],g=e[a];if(\\\"_\\\"!==a.charAt(0)&&\\\"function\\\"!=typeof d&&d!==g){if((\\\"tick0\\\"===a||\\\"dtick\\\"===a)&&\\\"geo\\\"!==r[0]){var v=e.tickmode;if(\\\"auto\\\"===v||\\\"array\\\"===v||!v)continue}if((\\\"range\\\"!==a||!e.autorange)&&(\\\"zmin\\\"!==a&&\\\"zmax\\\"!==a||\\\"contourcarpet\\\"!==e.type)){var m=r.concat(a);if((i=s(m))&&(!i._compareAsJSON||JSON.stringify(d)!==JSON.stringify(g))){var y,x=i.valType,b=p(i),_=Array.isArray(d),w=Array.isArray(g);if(_&&w){var k=\\\"_input_\\\"+a,A=t[k],T=e[k];if(Array.isArray(A)&&A===T)continue}if(void 0===g)b&&_?l.calc=!0:h();else if(i._isLinkedToArray){var S=[],E=!1;u||(l.arrays[a]=S);var C=Math.min(d.length,g.length),L=Math.max(d.length,g.length);if(C!==L){if(\\\"arraydraw\\\"!==i.editType){h();continue}E=!0}for(y=0;y<C;y++)G(d[y],g[y],m.concat(y),o.extendFlat({inArray:a,arrayIndex:y},n));if(E)for(y=C;y<L;y++)S.push(y)}else!x&&o.isPlainObject(d)?G(d,g,m,n):b?_&&w?c&&(l.calc=!0):_!==w?l.calc=!0:h():_&&w&&d.length===g.length&&String(d)===String(g)||h()}}}}for(a in e)if(!(a in t||\\\"_\\\"===a.charAt(0)||\\\"function\\\"==typeof e[a])){if(p(i=s(r.concat(a)))&&Array.isArray(e[a]))return void(l.calc=!0);h()}}function W(t){var e=n.select(t),r=t._fullLayout;if(r._container=e.selectAll(\\\".plot-container\\\").data([0]),r._container.enter().insert(\\\"div\\\",\\\":first-child\\\").classed(\\\"plot-container\\\",!0).classed(\\\"plotly\\\",!0),r._paperdiv=r._container.selectAll(\\\".svg-container\\\").data([0]),r._paperdiv.enter().append(\\\"div\\\").classed(\\\"svg-container\\\",!0).style(\\\"position\\\",\\\"relative\\\"),r._glcontainer=r._paperdiv.selectAll(\\\".gl-container\\\").data([{}]),r._glcontainer.enter().append(\\\"div\\\").classed(\\\"gl-container\\\",!0),r._paperdiv.selectAll(\\\".main-svg\\\").remove(),r._paper=r._paperdiv.insert(\\\"svg\\\",\\\":first-child\\\").classed(\\\"main-svg\\\",!0),r._toppaper=r._paperdiv.append(\\\"svg\\\").classed(\\\"main-svg\\\",!0),!r._uid){var i={};n.selectAll(\\\"defs\\\").each(function(){this.id&&(i[this.id.split(\\\"-\\\")[1]]=1)}),r._uid=o.randstr(i)}r._paperdiv.selectAll(\\\".main-svg\\\").attr(y.svgAttrs),r._defs=r._paper.append(\\\"defs\\\").attr(\\\"id\\\",\\\"defs-\\\"+r._uid),r._clips=r._defs.append(\\\"g\\\").classed(\\\"clips\\\",!0),r._topdefs=r._toppaper.append(\\\"defs\\\").attr(\\\"id\\\",\\\"topdefs-\\\"+r._uid),r._topclips=r._topdefs.append(\\\"g\\\").classed(\\\"clips\\\",!0),r._bgLayer=r._paper.append(\\\"g\\\").classed(\\\"bglayer\\\",!0),r._draggers=r._paper.append(\\\"g\\\").classed(\\\"draglayer\\\",!0);var a=r._paper.append(\\\"g\\\").classed(\\\"layer-below\\\",!0);r._imageLowerLayer=a.append(\\\"g\\\").classed(\\\"imagelayer\\\",!0),r._shapeLowerLayer=a.append(\\\"g\\\").classed(\\\"shapelayer\\\",!0),r._cartesianlayer=r._paper.append(\\\"g\\\").classed(\\\"cartesianlayer\\\",!0),r._polarlayer=r._paper.append(\\\"g\\\").classed(\\\"polarlayer\\\",!0),r._ternarylayer=r._paper.append(\\\"g\\\").classed(\\\"ternarylayer\\\",!0),r._geolayer=r._paper.append(\\\"g\\\").classed(\\\"geolayer\\\",!0),r._pielayer=r._paper.append(\\\"g\\\").classed(\\\"pielayer\\\",!0),r._glimages=r._paper.append(\\\"g\\\").classed(\\\"glimages\\\",!0);var s=r._toppaper.append(\\\"g\\\").classed(\\\"layer-above\\\",!0);r._imageUpperLayer=s.append(\\\"g\\\").classed(\\\"imagelayer\\\",!0),r._shapeUpperLayer=s.append(\\\"g\\\").classed(\\\"shapelayer\\\",!0),r._infolayer=r._toppaper.append(\\\"g\\\").classed(\\\"infolayer\\\",!0),r._menulayer=r._toppaper.append(\\\"g\\\").classed(\\\"menulayer\\\",!0),r._zoomlayer=r._toppaper.append(\\\"g\\\").classed(\\\"zoomlayer\\\",!0),r._hoverlayer=r._toppaper.append(\\\"g\\\").classed(\\\"hoverlayer\\\",!0),t.emit(\\\"plotly_framework\\\")}r.update=function t(e,n,i,a){if(e=o.getGraphDiv(e),w.clearPromiseQueue(e),e.framework&&e.framework.isPolar)return Promise.resolve(e);o.isPlainObject(n)||(n={}),o.isPlainObject(i)||(i={}),Object.keys(n).length&&(e.changed=!0),Object.keys(i).length&&(e.changed=!0);var s=w.coerceTraceIndices(e,a),c=B(e,o.extendFlat({},n),s),u=c.flags,h=q(e,o.extendFlat({},i)),p=h.flags;(u.calc||p.calc)&&(e.calcdata=void 0),u.clearAxisTypes&&w.clearAxisTypes(e,s,i);var d=[];if(u.fullReplot&&p.layoutReplot){var g=e.data,v=e.layout;e.data=void 0,e.layout=void 0,d.push(function(){return r.plot(e,g,v)})}else u.fullReplot?d.push(r.plot):p.layoutReplot?d.push(k.layoutReplot):(d.push(f.previousPromises),F(e,p,h)||f.supplyDefaults(e),u.style&&d.push(k.doTraceStyle),u.colorbars&&d.push(k.doColorBars),p.legend&&d.push(k.doLegend),p.layoutstyle&&d.push(k.layoutStyles),p.axrange&&N(d,h.rangesAltered),p.ticks&&d.push(k.doTicksRelayout),p.modebar&&d.push(k.doModeBar),p.camera&&d.push(k.doCamera),d.push(S));d.push(f.rehover),l.add(e,t,[e,c.undoit,h.undoit,c.traces],t,[e,c.redoit,h.redoit,c.traces]);var m=o.syncOrAsync(d,e);return m&&m.then||(m=Promise.resolve(e)),m.then(function(){return e.emit(\\\"plotly_update\\\",{data:c.eventData,layout:h.eventData}),e})},r.react=function(t,e,n,i){var a,s;var l=(t=o.getGraphDiv(t))._fullData,h=t._fullLayout;if(o.isPlotDiv(t)&&l&&h){if(o.isPlainObject(e)){var p=e;e=p.data,n=p.layout,i=p.config,a=p.frames}var d=!1;if(i){var g=o.extendDeep({},t._context);t._context=void 0,L(t,i),d=function t(e,r){var n;for(n in e)if(\\\"_\\\"!==n.charAt(0)){var i=e[n],a=r[n];if(i!==a)if(o.isPlainObject(i)&&o.isPlainObject(a)){if(t(i,a))return!0}else{if(!Array.isArray(i)||!Array.isArray(a))return!0;if(i.length!==a.length)return!0;for(var s=0;s<i.length;s++)if(i[s]!==a[s]){if(!o.isPlainObject(i[s])||!o.isPlainObject(a[s]))return!0;if(t(i[s],a[s]))return!0}}}}(g,t._context)}t.data=e||[],w.cleanData(t.data),t.layout=n||{},w.cleanLayout(t.layout),f.supplyDefaults(t,{skipUpdateCalc:!0});var v=t._fullData,m=t._fullLayout,y=void 0===m.datarevision,x=function(t,e,r,n){if(e.length!==r.length)return{fullReplot:!0,calc:!0};var i,a,o=M.traceFlags();o.arrays={};var s={getValObject:function(t){return u.getTraceValObject(a,t)},flags:o,immutable:n,gd:t},l={};for(i=0;i<e.length;i++)a=r[i]._fullInput,f.hasMakesDataTransform(a)&&(a=r[i]),l[a.uid]||(l[a.uid]=1,G(e[i]._fullInput,a,[],s));(o.calc||o.plot)&&(o.fullReplot=!0);return o}(t,l,v,y),b=function(t,e,r,n){var i=M.layoutFlags();i.arrays={},G(e,r,[],{getValObject:function(t){return u.getLayoutValObject(r,t)},flags:i,immutable:n,gd:t}),(i.plot||i.calc)&&(i.layoutReplot=!0);return i}(t,h,m,y);H(t)&&(b.layoutReplot=!0),x.calc||b.calc?t.calcdata=void 0:f.supplyDefaultsUpdateCalc(t.calcdata,v);var _=[];if(a&&(t._transitionData={},f.createTransitionData(t),_.push(function(){return r.addFrames(t,a)})),x.fullReplot||b.layoutReplot||d)t._fullLayout._skipDefaults=!0,_.push(r.plot);else{for(var A in b.arrays){var T=b.arrays[A];if(T.length){var E=c.getComponentMethod(A,\\\"drawOne\\\");if(E!==o.noop)for(var C=0;C<T.length;C++)E(t,T[C]);else{var z=c.getComponentMethod(A,\\\"draw\\\");if(z===o.noop)throw new Error(\\\"cannot draw components: \\\"+A);z(t)}}}_.push(f.previousPromises),x.style&&_.push(k.doTraceStyle),x.colorbars&&_.push(k.doColorBars),b.legend&&_.push(k.doLegend),b.layoutstyle&&_.push(k.layoutStyles),b.axrange&&N(_),b.ticks&&_.push(k.doTicksRelayout),b.modebar&&_.push(k.doModeBar),b.camera&&_.push(k.doCamera),_.push(S)}_.push(f.rehover),(s=o.syncOrAsync(_,t))&&s.then||(s=Promise.resolve(t))}else s=r.newPlot(t,e,n,i);return s.then(function(){return t.emit(\\\"plotly_react\\\",{data:e,layout:n}),t})},r.animate=function(t,e,r){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error(\\\"This element is not a Plotly plot: \\\"+t+\\\". It's likely that you've failed to create a plot before animating it. For more details, see https://plot.ly/javascript/animations/\\\");var n=t._transitionData;n._frameQueue||(n._frameQueue=[]);var i=(r=f.supplyAnimationDefaults(r)).transition,a=r.frame;function s(t){return Array.isArray(i)?t>=i.length?i[0]:i[t]:i}function l(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function c(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise(function(a,u){function h(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,f.transition(t,e.frame.data,e.frame.layout,w.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then(function(){e.onComplete&&e.onComplete()}),t.emit(\\\"plotly_animatingframe\\\",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit(\\\"plotly_animated\\\"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}function p(){t.emit(\\\"plotly_animating\\\"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&h()};e()}var d,g,v=0;function m(t){return Array.isArray(i)?v>=i.length?t.transitionOpts=i[v]:t.transitionOpts=i[0]:t.transitionOpts=i,v++,t}var y=[],x=null==e,b=Array.isArray(e);if(!x&&!b&&o.isPlainObject(e))y.push({type:\\\"object\\\",data:m(o.extendFlat({},e))});else if(x||-1!==[\\\"string\\\",\\\"number\\\"].indexOf(typeof e))for(d=0;d<n._frames.length;d++)(g=n._frames[d])&&(x||String(g.group)===String(e))&&y.push({type:\\\"byname\\\",name:String(g.name),data:m({name:g.name})});else if(b)for(d=0;d<e.length;d++){var _=e[d];-1!==[\\\"number\\\",\\\"string\\\"].indexOf(typeof _)?(_=String(_),y.push({type:\\\"byname\\\",name:_,data:m({name:_})})):o.isPlainObject(_)&&y.push({type:\\\"object\\\",data:m(o.extendFlat({},_))})}for(d=0;d<y.length;d++)if(\\\"byname\\\"===(g=y[d]).type&&!n._frameHash[g.data.name])return o.warn('animate failure: frame not found: \\\"'+g.data.name+'\\\"'),void u();-1!==[\\\"next\\\",\\\"immediate\\\"].indexOf(r.mode)&&function(){if(0!==n._frameQueue.length){for(;n._frameQueue.length;){var e=n._frameQueue.pop();e.onInterrupt&&e.onInterrupt()}t.emit(\\\"plotly_animationinterrupted\\\",[])}}(),\\\"reverse\\\"===r.direction&&y.reverse();var k=t._fullLayout._currentFrame;if(k&&r.fromcurrent){var M=-1;for(d=0;d<y.length;d++)if(\\\"byname\\\"===(g=y[d]).type&&g.name===k){M=d;break}if(M>0&&M<y.length-1){var A=[];for(d=0;d<y.length;d++)g=y[d],(\\\"byname\\\"!==y[d].type||d>M)&&A.push(g);y=A}}y.length>0?function(e){if(0!==e.length){for(var i=0;i<e.length;i++){var o;o=\\\"byname\\\"===e[i].type?f.computeFrame(t,e[i].name):e[i].data;var h=l(i),d=s(i);d.duration=Math.min(d.duration,h.duration);var g={frame:o,name:e[i].name,frameOpts:h,transitionOpts:d};i===e.length-1&&(g.onComplete=c(a,2),g.onInterrupt=u),n._frameQueue.push(g)}\\\"immediate\\\"===r.mode&&(n._lastFrameAt=-1/0),n._animationRaf||p()}}(y):(t.emit(\\\"plotly_animated\\\"),a())})},r.addFrames=function(t,e,r){if(t=o.getGraphDiv(t),null==e)return Promise.resolve();if(!o.isPlotDiv(t))throw new Error(\\\"This element is not a Plotly plot: \\\"+t+\\\". It's likely that you've failed to create a plot before adding frames. For more details, see https://plot.ly/javascript/animations/\\\");var n,i,a,s,c=t._transitionData._frames,u=t._transitionData._frameHash;if(!Array.isArray(e))throw new Error(\\\"addFrames failure: frameList must be an Array of frame definitions\\\"+e);var h=c.length+2*e.length,p=[],d={};for(n=e.length-1;n>=0;n--)if(o.isPlainObject(e[n])){var g=e[n].name,v=(u[g]||d[g]||{}).name,m=e[n].name,y=u[v]||d[v];v&&m&&\\\"number\\\"==typeof m&&y&&T<5&&(T++,o.warn('addFrames: overwriting frame \\\"'+(u[v]||d[v]).name+'\\\" with a frame whose name of type \\\"number\\\" also equates to \\\"'+v+'\\\". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===T&&o.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.\\\")),d[g]={name:g},p.push({frame:f.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:h+n})}p.sort(function(t,e){return t.index>e.index?-1:t.index<e.index?1:0});var x=[],b=[],_=c.length;for(n=p.length-1;n>=0;n--){if(\\\"number\\\"==typeof(i=p[n].frame).name&&o.warn(\\\"Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings\\\"),!i.name)for(;u[i.name=\\\"frame \\\"+t._transitionData._counter++];);if(u[i.name]){for(a=0;a<c.length&&(c[a]||{}).name!==i.name;a++);x.push({type:\\\"replace\\\",index:a,value:i}),b.unshift({type:\\\"replace\\\",index:a,value:c[a]})}else s=Math.max(0,Math.min(p[n].index,_)),x.push({type:\\\"insert\\\",index:s,value:i}),b.unshift({type:\\\"delete\\\",index:s}),_++}var w=f.modifyFrames,k=f.modifyFrames,M=[t,b],A=[t,x];return l&&l.add(t,w,M,k,A),f.modifyFrames(t,x)},r.deleteFrames=function(t,e){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error(\\\"This element is not a Plotly plot: \\\"+t);var r,n,i=t._transitionData._frames,a=[],s=[];if(!e)for(e=[],r=0;r<i.length;r++)e.push(r);for((e=e.slice(0)).sort(),r=e.length-1;r>=0;r--)n=e[r],a.push({type:\\\"delete\\\",index:n}),s.unshift({type:\\\"insert\\\",index:n,value:i[n]});var c=f.modifyFrames,u=f.modifyFrames,h=[t,s],p=[t,a];return l&&l.add(t,c,h,u,p),f.modifyFrames(t,a)},r.purge=function(t){var e=(t=o.getGraphDiv(t))._fullLayout||{},r=t._fullData||[];return f.cleanPlot([],{},r,e),f.purge(t),s.purge(t),e._container&&e._container.remove(),delete t._context,t}},{\\\"../components/color\\\":570,\\\"../components/colorbar/connect\\\":572,\\\"../components/drawing\\\":595,\\\"../constants/xmlns_namespaces\\\":674,\\\"../lib\\\":696,\\\"../lib/events\\\":684,\\\"../lib/queue\\\":711,\\\"../lib/svg_text_utils\\\":720,\\\"../plots/cartesian/axes\\\":744,\\\"../plots/cartesian/constants\\\":750,\\\"../plots/cartesian/graph_interact\\\":754,\\\"../plots/plots\\\":808,\\\"../plots/polar/legacy\\\":816,\\\"../registry\\\":827,\\\"./edit_types\\\":727,\\\"./helpers\\\":728,\\\"./manage_arrays\\\":730,\\\"./plot_config\\\":732,\\\"./plot_schema\\\":733,\\\"./subroutines\\\":735,d3:148,\\\"fast-isnumeric\\\":214,\\\"has-hover\\\":393}],732:[function(t,e,r){\\\"use strict\\\";e.exports={staticPlot:!1,plotlyServerURL:\\\"https://plot.ly\\\",editable:!1,edits:{annotationPosition:!1,annotationTail:!1,annotationText:!1,axisTitleText:!1,colorbarPosition:!1,colorbarTitleText:!1,legendPosition:!1,legendText:!1,shapePosition:!1,titleText:!1},autosizable:!1,responsive:!1,queueLength:0,fillFrame:!1,frameMargins:0,scrollZoom:!1,doubleClick:\\\"reset+autosize\\\",showTips:!0,showAxisDragHandles:!0,showAxisRangeEntryBoxes:!0,showLink:!1,sendData:!0,linkText:\\\"Edit chart\\\",showSources:!1,displayModeBar:\\\"hover\\\",modeBarButtonsToRemove:[],modeBarButtonsToAdd:[],modeBarButtons:!1,toImageButtonOptions:{},displaylogo:!0,plotGlPixelRatio:2,setBackground:\\\"transparent\\\",topojsonURL:\\\"https://cdn.plot.ly/\\\",mapboxAccessToken:null,logging:1,globalTransforms:[],locale:\\\"en-US\\\",locales:{}}},{}],733:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../plots/attributes\\\"),o=t(\\\"../plots/layout_attributes\\\"),s=t(\\\"../plots/frame_attributes\\\"),l=t(\\\"../plots/animation_attributes\\\"),c=t(\\\"../plots/polar/legacy/area_attributes\\\"),u=t(\\\"../plots/polar/legacy/axis_attributes\\\"),f=t(\\\"./edit_types\\\"),h=i.extendFlat,p=i.extendDeepAll,d=i.isPlainObject,g=\\\"_isSubplotObj\\\",v=\\\"_isLinkedToArray\\\",m=[g,v,\\\"_arrayAttrRegexps\\\",\\\"_deprecated\\\"];function y(t,e,r){if(!t)return!1;if(t._isLinkedToArray)if(x(e[r]))r++;else if(r<e.length)return!1;for(;r<e.length;r++){var n=t[e[r]];if(!d(n))break;if(t=n,r===e.length-1)break;if(t._isLinkedToArray){if(!x(e[++r]))return!1}else if(\\\"info_array\\\"===t.valType){var i=e[++r];if(!x(i))return!1;var a=t.items;if(Array.isArray(a)){if(i>=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!x(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function x(t){return t===Math.round(t)&&t>=0}function b(t){return function(t){r.crawl(t,function(t,e,n){r.isValObject(t)?\\\"data_array\\\"===t.valType?(t.role=\\\"data\\\",n[e+\\\"src\\\"]={valType:\\\"string\\\",editType:\\\"none\\\"}):!0===t.arrayOk&&(n[e+\\\"src\\\"]={valType:\\\"string\\\",editType:\\\"none\\\"}):d(t)&&(t.role=\\\"object\\\")})}(t),function(t){r.crawl(t,function(t,e,r){if(!t)return;var n=t[v];if(!n)return;delete t[v],r[e]={items:{}},r[e].items[n]=t,r[e].role=\\\"object\\\"})}(t),function(t){!function t(e){for(var r in e)if(d(e[r]))t(e[r]);else if(Array.isArray(e[r]))for(var n=0;n<e[r].length;n++)t(e[r][n]);else e[r]instanceof RegExp&&(e[r]=e[r].toString())}(t)}(t),t}function _(t,e,r){var n=i.nestedProperty(t,r),a=p({},e.layoutAttributes);a[g]=!0,n.set(a)}function w(t,e,r){var n=i.nestedProperty(t,r);n.set(p(n.get()||{},e))}r.IS_SUBPLOT_OBJ=g,r.IS_LINKED_TO_ARRAY=v,r.DEPRECATED=\\\"_deprecated\\\",r.UNDERSCORE_ATTRS=m,r.get=function(){var t={};n.allTypes.concat(\\\"area\\\").forEach(function(e){t[e]=function(t){var e,o;\\\"area\\\"===t?(e={attributes:c},o={}):(e=n.modules[t]._module,o=e.basePlotModule);var s={type:null},l=p({},a),u=p({},e.attributes);r.crawl(u,function(t,e,r,n,a){i.nestedProperty(l,a).set(void 0),void 0===t&&i.nestedProperty(u,a).set(void 0)}),p(s,l),p(s,u),o.attributes&&p(s,o.attributes);s.type=t;var f={meta:e.meta||{},attributes:b(s)};if(e.layoutAttributes){var h={};p(h,e.layoutAttributes),f.layoutAttributes=b(h)}return f}(e)});var e,d={};return Object.keys(n.transformsRegistry).forEach(function(t){d[t]=function(t){var e=n.transformsRegistry[t],r=p({},e.attributes);return Object.keys(n.componentsRegistry).forEach(function(e){var i=n.componentsRegistry[e];i.schema&&i.schema.transforms&&i.schema.transforms[t]&&Object.keys(i.schema.transforms[t]).forEach(function(e){w(r,i.schema.transforms[t][e],e)})}),{attributes:b(r)}}(t)}),{defs:{valObjects:i.valObjectMeta,metaKeys:m.concat([\\\"description\\\",\\\"role\\\",\\\"editType\\\",\\\"impliedEdits\\\"]),editType:{traces:f.traces,layout:f.layout},impliedEdits:{}},traces:t,layout:function(){var t,e,r={};for(t in p(r,o),n.subplotsRegistry)if((e=n.subplotsRegistry[t]).layoutAttributes)if(Array.isArray(e.attr))for(var i=0;i<e.attr.length;i++)_(r,e,e.attr[i]);else{var a=\\\"subplot\\\"===e.attr?e.name:e.attr;_(r,e,a)}for(t in r=function(t){return h(t,{radialaxis:u.radialaxis,angularaxis:u.angularaxis}),h(t,u.layout),t}(r),n.componentsRegistry){var s=(e=n.componentsRegistry[t]).schema;if(s&&(s.subplots||s.layout)){var l=s.subplots;if(l&&l.xaxis&&!l.yaxis)for(var c in l.xaxis)delete r.yaxis[c]}else e.layoutAttributes&&w(r,e.layoutAttributes,e.name)}return{layoutAttributes:b(r)}}(),transforms:d,frames:(e={frames:i.extendDeepAll({},s)},b(e),e.frames),animation:b(l)}},r.crawl=function(t,e,n,i){var a=n||0;i=i||\\\"\\\",Object.keys(t).forEach(function(n){var o=t[n];if(-1===m.indexOf(n)){var s=(i?i+\\\".\\\":\\\"\\\")+n;e(o,n,t,a,s),r.isValObject(o)||d(o)&&\\\"impliedEdits\\\"!==n&&r.crawl(o,e,a+1,s)}})},r.isValObject=function(t){return t&&void 0!==t.valType},r.findArrayAttributes=function(t){var e,n,o=[],s=[],l=[];function c(t,r,a,c){s=s.slice(0,c).concat([r]),l=l.slice(0,c).concat([t&&t._isLinkedToArray]),t&&(\\\"data_array\\\"===t.valType||!0===t.arrayOk)&&!(\\\"colorbar\\\"===s[c-1]&&(\\\"ticktext\\\"===r||\\\"tickvals\\\"===r))&&function t(e,r,a){var c=e[s[r]];var u=a+s[r];if(r===s.length-1)i.isArrayOrTypedArray(c)&&o.push(n+u);else if(l[r]){if(Array.isArray(c))for(var f=0;f<c.length;f++)i.isPlainObject(c[f])&&t(c[f],r+1,u+\\\"[\\\"+f+\\\"].\\\")}else i.isPlainObject(c)&&t(c,r+1,u+\\\".\\\")}(e,0,\\\"\\\")}e=t,n=\\\"\\\",r.crawl(a,c),t._module&&t._module.attributes&&r.crawl(t._module.attributes,c);var u=t.transforms;if(u)for(var f=0;f<u.length;f++){var h=u[f],p=h._module;p&&(n=\\\"transforms[\\\"+f+\\\"].\\\",e=h,r.crawl(p.attributes,c))}return o},r.getTraceValObject=function(t,e){var r,i,o=e[0],s=1;if(\\\"transforms\\\"===o){if(1===e.length)return a.transforms;var l=t.transforms;if(!Array.isArray(l)||!l.length)return!1;var u=e[1];if(!x(u)||u>=l.length)return!1;i=(r=(n.transformsRegistry[l[u].type]||{}).attributes)&&r[e[2]],s=3}else if(\\\"area\\\"===t.type)i=c[o];else{var f=t._module;if(f||(f=(n.modules[t.type||a.type.dflt]||{})._module),!f)return!1;if(!(i=(r=f.attributes)&&r[o])){var h=f.basePlotModule;h&&h.attributes&&(i=h.attributes[o])}i||(i=a[o])}return y(i,e,s)},r.getLayoutValObject=function(t,e){return y(function(t,e){var r,i,a,s,l=t._basePlotModules;if(l){var c;for(r=0;r<l.length;r++){if((a=l[r]).attrRegex&&a.attrRegex.test(e)){if(a.layoutAttrOverrides)return a.layoutAttrOverrides;!c&&a.layoutAttributes&&(c=a.layoutAttributes)}var f=a.baseLayoutAttrOverrides;if(f&&e in f)return f[e]}if(c)return c}var h=t._modules;if(h)for(r=0;r<h.length;r++)if((s=h[r].layoutAttributes)&&e in s)return s[e];for(i in n.componentsRegistry)if(!(a=n.componentsRegistry[i]).schema&&e===a.name)return a.layoutAttributes;if(e in o)return o[e];if(\\\"radialaxis\\\"===e||\\\"angularaxis\\\"===e)return u[e];return u.layout[e]||!1}(t,e[0]),e,1)}},{\\\"../lib\\\":696,\\\"../plots/animation_attributes\\\":739,\\\"../plots/attributes\\\":741,\\\"../plots/frame_attributes\\\":772,\\\"../plots/layout_attributes\\\":799,\\\"../plots/polar/legacy/area_attributes\\\":814,\\\"../plots/polar/legacy/axis_attributes\\\":815,\\\"../registry\\\":827,\\\"./edit_types\\\":727}],734:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plots/attributes\\\"),a=\\\"templateitemname\\\",o={name:{valType:\\\"string\\\",editType:\\\"none\\\"}};function s(t){return t&&\\\"string\\\"==typeof t}function l(t){var e=t.length-1;return\\\"s\\\"!==t.charAt(e)&&n.warn(\\\"bad argument to arrayDefaultKey: \\\"+t),t.substr(0,t.length-1)+\\\"defaults\\\"}o[a]={valType:\\\"string\\\",editType:\\\"calc\\\"},r.templatedArray=function(t,e){return e._isLinkedToArray=t,e.name=o.name,e[a]=o[a],e},r.traceTemplater=function(t){var e,r,a={};for(e in t)r=t[e],Array.isArray(r)&&r.length&&(a[e]=0);return{newTrace:function(o){var s={type:e=n.coerce(o,{},i,\\\"type\\\"),_template:null};if(e in a){r=t[e];var l=a[e]%r.length;a[e]++,s._template=r[l]}return s}}},r.newContainer=function(t,e,r){var i=t._template,a=i&&(i[e]||r&&i[r]);return n.isPlainObject(a)||(a=null),t[e]={_template:a}},r.arrayTemplater=function(t,e,r){var n=t._template,i=n&&n[l(e)],o=n&&n[e];Array.isArray(o)&&o.length||(o=[]);var c={};return{newItem:function(t){var e={name:t.name,_input:t},n=e[a]=t[a];if(!s(n))return e._template=i,e;for(var l=0;l<o.length;l++){var u=o[l];if(u.name===n)return c[n]=1,e._template=u,e}return e[r]=t[r]||!1,e._template=!1,e},defaultItems:function(){for(var t=[],e=0;e<o.length;e++){var r=o[e],n=r.name;if(s(n)&&!c[n]){var i={_template:r,name:n,_input:{_templateitemname:n}};i[a]=r[a],t.push(i),c[n]=1}}return t}}},r.arrayDefaultKey=l,r.arrayEditor=function(t,e,r){var i=(n.nestedProperty(t,e).get()||[]).length,o=r._index,s=o>=i&&(r._input||{})._templateitemname;s&&(o=i);var l,c=e+\\\"[\\\"+o+\\\"]\\\";function u(){l={},s&&(l[c]={},l[c][a]=s)}function f(t,e){s?n.nestedProperty(l[c],t).set(e):l[c+\\\".\\\"+t]=e}function h(){var t=l;return u(),t}return u(),{modifyBase:function(t,e){l[t]=e},modifyItem:f,getUpdateObj:h,applyUpdate:function(e,r){e&&f(e,r);var i=h();for(var a in i)n.nestedProperty(t,a).set(i[a])}}}},{\\\"../lib\\\":696,\\\"../plots/attributes\\\":741}],735:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../registry\\\"),a=t(\\\"../plots/plots\\\"),o=t(\\\"../lib\\\"),s=t(\\\"../lib/clear_gl_canvases\\\"),l=t(\\\"../components/color\\\"),c=t(\\\"../components/drawing\\\"),u=t(\\\"../components/titles\\\"),f=t(\\\"../components/modebar\\\"),h=t(\\\"../plots/cartesian/axes\\\"),p=t(\\\"../constants/alignment\\\"),d=t(\\\"../plots/cartesian/constraints\\\"),g=d.enforce,v=d.clean,m=t(\\\"../plots/cartesian/autorange\\\").doAutoRange;function y(t,e,r){for(var n=0;n<r.length;n++){var i=r[n][0],a=r[n][1];if(!(i[0]>=t[1]||i[1]<=t[0])&&(a[0]<e[1]&&a[1]>e[0]))return!0}return!1}function x(t){var e,i,a,s,u,d=t._fullLayout,g=d._size,v=g.p,m=h.list(t,\\\"\\\",!0);if(d._paperdiv.style({width:t._context.responsive&&d.autosize&&!t._context._hasZeroWidth&&!t.layout.width?\\\"100%\\\":d.width+\\\"px\\\",height:t._context.responsive&&d.autosize&&!t._context._hasZeroHeight&&!t.layout.height?\\\"100%\\\":d.height+\\\"px\\\"}).selectAll(\\\".main-svg\\\").call(c.setSize,d.width,d.height),t._context.setBackground(t,d.paper_bgcolor),r.drawMainTitle(t),f.manage(t),!d._has(\\\"cartesian\\\"))return t._promises.length&&Promise.all(t._promises);function x(t,e,r){var n=t._lw/2;return\\\"x\\\"===t._id.charAt(0)?e?\\\"top\\\"===r?e._offset-v-n:e._offset+e._length+v+n:g.t+g.h*(1-(t.position||0))+n%1:e?\\\"right\\\"===r?e._offset+e._length+v+n:e._offset-v-n:g.l+g.w*(t.position||0)+n%1}for(e=0;e<m.length;e++){var w=m[e];w.setScale();var M=w._anchorAxis;w._linepositions={},w._lw=c.crispRound(t,w.linewidth,1),w._mainLinePosition=x(w,M,w.side),w._mainMirrorPosition=w.mirror&&M?x(w,M,p.OPPOSITE_SIDE[w.side]):null,w._mainSubplot=b(w,d)}var A=[],T=[],S=[],E=1===l.opacity(d.paper_bgcolor)&&1===l.opacity(d.plot_bgcolor)&&d.paper_bgcolor===d.plot_bgcolor;for(i in d._plots)if((a=d._plots[i]).mainplot)a.bg&&a.bg.remove(),a.bg=void 0;else{var C=a.xaxis.domain,L=a.yaxis.domain,z=a.plotgroup;if(y(C,L,S)){var O=z.node(),I=a.bg=o.ensureSingle(z,\\\"rect\\\",\\\"bg\\\");O.insertBefore(I.node(),O.childNodes[0]),T.push(i)}else z.select(\\\"rect.bg\\\").remove(),S.push([C,L]),E||(A.push(i),T.push(i))}var P,D,R,B,F,N,j,V,U,q,H,G,W,Y=d._bgLayer.selectAll(\\\".bg\\\").data(A);for(Y.enter().append(\\\"rect\\\").classed(\\\"bg\\\",!0),Y.exit().remove(),Y.each(function(t){d._plots[t].bg=n.select(this)}),e=0;e<T.length;e++)a=d._plots[T[e]],s=a.xaxis,u=a.yaxis,a.bg&&a.bg.call(c.setRect,s._offset-v,u._offset-v,s._length+2*v,u._length+2*v).call(l.fill,d.plot_bgcolor).style(\\\"stroke-width\\\",0);if(!d._hasOnlyLargeSploms)for(i in d._plots){a=d._plots[i],s=a.xaxis,u=a.yaxis;var X,Z,$=a.clipId=\\\"clip\\\"+d._uid+i+\\\"plot\\\",J=o.ensureSingleById(d._clips,\\\"clipPath\\\",$,function(t){t.classed(\\\"plotclip\\\",!0).append(\\\"rect\\\")});a.clipRect=J.select(\\\"rect\\\").attr({width:s._length,height:u._length}),c.setTranslate(a.plot,s._offset,u._offset),a._hasClipOnAxisFalse?(X=null,Z=$):(X=$,Z=null),c.setClipUrl(a.plot,X),a.layerClipId=Z}function K(t){return\\\"M\\\"+P+\\\",\\\"+t+\\\"H\\\"+D}function Q(t){return\\\"M\\\"+s._offset+\\\",\\\"+t+\\\"h\\\"+s._length}function tt(t){return\\\"M\\\"+t+\\\",\\\"+V+\\\"V\\\"+j}function et(t){return\\\"M\\\"+t+\\\",\\\"+u._offset+\\\"v\\\"+u._length}function rt(t,e,r){if(!t.showline||i!==t._mainSubplot)return\\\"\\\";if(!t._anchorAxis)return r(t._mainLinePosition);var n=e(t._mainLinePosition);return t.mirror&&(n+=e(t._mainMirrorPosition)),n}for(i in d._plots){a=d._plots[i],s=a.xaxis,u=a.yaxis;var nt=\\\"M0,0\\\";_(s,i)&&(F=k(s,\\\"left\\\",u,m),P=s._offset-(F?v+F:0),N=k(s,\\\"right\\\",u,m),D=s._offset+s._length+(N?v+N:0),R=x(s,u,\\\"bottom\\\"),B=x(s,u,\\\"top\\\"),!(W=!s._anchorAxis||i!==s._mainSubplot)||\\\"allticks\\\"!==s.mirror&&\\\"all\\\"!==s.mirror||(s._linepositions[i]=[R,B]),nt=rt(s,K,Q),W&&s.showline&&(\\\"all\\\"===s.mirror||\\\"allticks\\\"===s.mirror)&&(nt+=K(R)+K(B)),a.xlines.style(\\\"stroke-width\\\",s._lw+\\\"px\\\").call(l.stroke,s.showline?s.linecolor:\\\"rgba(0,0,0,0)\\\")),a.xlines.attr(\\\"d\\\",nt);var it=\\\"M0,0\\\";_(u,i)&&(H=k(u,\\\"bottom\\\",s,m),j=u._offset+u._length+(H?v:0),G=k(u,\\\"top\\\",s,m),V=u._offset-(G?v:0),U=x(u,s,\\\"left\\\"),q=x(u,s,\\\"right\\\"),!(W=!u._anchorAxis||i!==u._mainSubplot)||\\\"allticks\\\"!==u.mirror&&\\\"all\\\"!==u.mirror||(u._linepositions[i]=[U,q]),it=rt(u,tt,et),W&&u.showline&&(\\\"all\\\"===u.mirror||\\\"allticks\\\"===u.mirror)&&(it+=tt(U)+tt(q)),a.ylines.style(\\\"stroke-width\\\",u._lw+\\\"px\\\").call(l.stroke,u.showline?u.linecolor:\\\"rgba(0,0,0,0)\\\")),a.ylines.attr(\\\"d\\\",it)}return h.makeClipPaths(t),t._promises.length&&Promise.all(t._promises)}function b(t,e){var r=e._subplots,n=r.cartesian.concat(r.gl2d||[]),i={_fullLayout:e},a=\\\"x\\\"===t._id.charAt(0),o=t._mainAxis._anchorAxis,s=\\\"\\\",l=\\\"\\\",c=\\\"\\\";if(o&&(c=o._mainAxis._id,s=a?t._id+c:c+t._id),!s||!e._plots[s]){s=\\\"\\\";for(var u=0;u<n.length;u++){var f=n[u],p=f.indexOf(\\\"y\\\"),d=a?f.substr(0,p):f.substr(p),g=a?f.substr(p):f.substr(0,p);if(d===t._id){l||(l=f);var v=h.getFromId(i,g);if(c&&v.overlaying===c){s=f;break}}}}return s||l}function _(t,e){return(t.ticks||t.showline)&&(e===t._mainSubplot||\\\"all\\\"===t.mirror||\\\"allticks\\\"===t.mirror)}function w(t,e,r){if(!r.showline||!r._lw)return!1;if(\\\"all\\\"===r.mirror||\\\"allticks\\\"===r.mirror)return!0;var n=r._anchorAxis;if(!n)return!1;var i=p.FROM_BL[e];return r.side===e?n.domain[i]===t.domain[i]:r.mirror&&n.domain[1-i]===t.domain[1-i]}function k(t,e,r,n){if(w(t,e,r))return r._lw;for(var i=0;i<n.length;i++){var a=n[i];if(a._mainAxis===r._mainAxis&&w(t,e,a))return a._lw}return 0}r.layoutStyles=function(t){return o.syncOrAsync([a.doAutoMargin,x],t)},r.drawMainTitle=function(t){var e=t._fullLayout;u.draw(t,\\\"gtitle\\\",{propContainer:e,propName:\\\"title\\\",placeholder:e._dfltTitle.plot,attributes:{x:e.width/2,y:e._size.t/2,\\\"text-anchor\\\":\\\"middle\\\"}})},r.doTraceStyle=function(t){var e,n=t.calcdata,o=[];for(e=0;e<n.length;e++){var l=n[e],c=l[0]||{},u=c.trace||{},f=u._module||{},h=f.arraysToCalcdata;h&&h(l,u);var p=f.editStyle;p&&o.push({fn:p,cd0:c})}if(o.length){for(e=0;e<o.length;e++){var d=o[e];d.fn(t,d.cd0)}s(t),r.redrawReglTraces(t)}return a.style(t),i.getComponentMethod(\\\"legend\\\",\\\"draw\\\")(t),a.previousPromises(t)},r.doColorBars=function(t){for(var e=0;e<t.calcdata.length;e++){var r=t.calcdata[e][0];if((r.t||{}).cb){var n=r.trace,o=r.t.cb;i.traceIs(n,\\\"contour\\\")&&o.line({width:!1!==n.contours.showlines?n.line.width:0,dash:n.line.dash,color:\\\"line\\\"===n.contours.coloring?o._opts.line.color:n.line.color});var s=n._module.colorbar.container,l=(s?n[s]:n).colorbar;o.options(l)()}}return a.previousPromises(t)},r.layoutReplot=function(t){var e=t.layout;return t.layout=void 0,i.call(\\\"plot\\\",t,\\\"\\\",e)},r.doLegend=function(t){return i.getComponentMethod(\\\"legend\\\",\\\"draw\\\")(t),a.previousPromises(t)},r.doTicksRelayout=function(t){return h.doTicks(t,\\\"redraw\\\"),t._fullLayout._hasOnlyLargeSploms&&(i.subplotsRegistry.splom.updateGrid(t),s(t),r.redrawReglTraces(t)),r.drawMainTitle(t),a.previousPromises(t)},r.doModeBar=function(t){var e=t._fullLayout;f.manage(t);for(var r=0;r<e._basePlotModules.length;r++){var n=e._basePlotModules[r].updateFx;n&&n(t)}return a.previousPromises(t)},r.doCamera=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=0;n<r.length;n++){var i=e[r[n]];i._scene.setCamera(i.camera)}},r.drawData=function(t){var e,n=t._fullLayout,o=t.calcdata;for(e=0;e<o.length;e++){var l=o[e][0].trace;!0===l.visible&&l._module.colorbar||n._infolayer.select(\\\".cb\\\"+l.uid).remove()}s(t);var c=n._basePlotModules;for(e=0;e<c.length;e++)c[e].plot(t);return r.redrawReglTraces(t),a.style(t),i.getComponentMethod(\\\"shapes\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"annotations\\\",\\\"draw\\\")(t),n._replotting=!1,a.previousPromises(t)},r.redrawReglTraces=function(t){var e=t._fullLayout;if(e._has(\\\"regl\\\")){var r,n,i=t._fullData,a=[],s=[];for(e._hasOnlyLargeSploms&&e._splomGrid.draw(),r=0;r<i.length;r++){var l=i[r];!0===l.visible&&(\\\"splom\\\"===l.type?e._splomScenes[l.uid].draw():\\\"scattergl\\\"===l.type?o.pushUnique(a,l.xaxis+l.yaxis):\\\"scatterpolargl\\\"===l.type&&o.pushUnique(s,l.subplot))}for(r=0;r<a.length;r++)(n=e._plots[a[r]])._scene&&n._scene.draw();for(r=0;r<s.length;r++)(n=e[s[r]]._subplot)._scene&&n._scene.draw()}},r.doAutoRangeAndConstraints=function(t){for(var e=h.list(t,\\\"\\\",!0),r=0;r<e.length;r++){var n=e[r];v(t,n),m(t,n)}g(t)},r.finalDraw=function(t){i.getComponentMethod(\\\"shapes\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"images\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"annotations\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"rangeslider\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"rangeselector\\\",\\\"draw\\\")(t)},r.drawMarginPushers=function(t){i.getComponentMethod(\\\"legend\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"rangeselector\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"sliders\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"updatemenus\\\",\\\"draw\\\")(t)}},{\\\"../components/color\\\":570,\\\"../components/drawing\\\":595,\\\"../components/modebar\\\":633,\\\"../components/titles\\\":661,\\\"../constants/alignment\\\":668,\\\"../lib\\\":696,\\\"../lib/clear_gl_canvases\\\":680,\\\"../plots/cartesian/autorange\\\":743,\\\"../plots/cartesian/axes\\\":744,\\\"../plots/cartesian/constraints\\\":752,\\\"../plots/plots\\\":808,\\\"../registry\\\":827,d3:148}],736:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=n.isPlainObject,a=t(\\\"./plot_schema\\\"),o=t(\\\"../plots/plots\\\"),s=t(\\\"../plots/attributes\\\"),l=t(\\\"./plot_template\\\"),c=t(\\\"./plot_config\\\");function u(t,e){t=n.extendDeep({},t);var r,a,o=Object.keys(t).sort();function s(e,r,n){if(i(r)&&i(e))u(e,r);else if(Array.isArray(r)&&Array.isArray(e)){var o=l.arrayTemplater({_template:t},n);for(a=0;a<r.length;a++){var s=r[a],c=o.newItem(s)._template;c&&u(c,s)}var f=o.defaultItems();for(a=0;a<f.length;a++)r.push(f[a]._template);for(a=0;a<r.length;a++)delete r[a].templateitemname}}for(r=0;r<o.length;r++){var c=o[r],h=t[c];if(c in e?s(h,e[c],c):e[c]=h,f(c)===c)for(var p in e){var d=f(p);p===d||d!==c||p in t||s(h,e[p],c)}}}function f(t){return t.replace(/[0-9]+$/,\\\"\\\")}function h(t,e,r,a,o){var s=o&&r(o);for(var c in t){var u=t[c],d=p(t,c,a),g=p(t,c,o),v=r(g);if(!v){var m=f(c);m!==c&&(v=r(g=p(t,m,o)))}if((!s||s!==v)&&!(!v||v._noTemplating||\\\"data_array\\\"===v.valType||v.arrayOk&&Array.isArray(u)))if(!v.valType&&i(u))h(u,e,r,d,g);else if(v._isLinkedToArray&&Array.isArray(u))for(var y=!1,x=0,b={},_=0;_<u.length;_++){var w=u[_];if(i(w)){var k=w.name;if(k)b[k]||(h(w,e,r,p(u,x,d),p(u,x,g)),x++,b[k]=1);else if(!y){var M=p(t,l.arrayDefaultKey(c),a),A=p(u,x,d);h(w,e,r,A,p(u,x,g));var T=n.nestedProperty(e,A);n.nestedProperty(e,M).set(T.get()),T.set(null),y=!0}}}else{n.nestedProperty(e,d).set(u)}}}function p(t,e,r){return r?Array.isArray(t)?r+\\\"[\\\"+e+\\\"]\\\":r+\\\".\\\"+e:e}function d(t){for(var e=0;e<t.length;e++)if(i(t[e]))return!0}function g(t){var e;switch(t.code){case\\\"data\\\":e=\\\"The template has no key data.\\\";break;case\\\"layout\\\":e=\\\"The template has no key layout.\\\";break;case\\\"missing\\\":e=t.path?\\\"There are no templates for item \\\"+t.path+\\\" with name \\\"+t.templateitemname:\\\"There are no templates for trace \\\"+t.index+\\\", of type \\\"+t.traceType+\\\".\\\";break;case\\\"unused\\\":e=t.path?\\\"The template item at \\\"+t.path+\\\" was not used in constructing the plot.\\\":t.dataCount?\\\"Some of the templates of type \\\"+t.traceType+\\\" were not used. The template has \\\"+t.templateCount+\\\" traces, the data only has \\\"+t.dataCount+\\\" of this type.\\\":\\\"The template has \\\"+t.templateCount+\\\" traces of type \\\"+t.traceType+\\\" but there are none in the data.\\\";break;case\\\"reused\\\":e=\\\"Some of the templates of type \\\"+t.traceType+\\\" were used more than once. The template has \\\"+t.templateCount+\\\" traces, the data has \\\"+t.dataCount+\\\" of this type.\\\"}return t.msg=e,t}r.makeTemplate=function(t){t=n.extendDeep({_context:c},{data:t.data,layout:t.layout}),o.supplyDefaults(t);var e=t.data||[],r=t.layout||{};r._basePlotModules=t._fullLayout._basePlotModules,r._modules=t._fullLayout._modules;var l={data:{},layout:{}};e.forEach(function(t){var e={};h(t,e,function(t,e){return a.getTraceValObject(t,n.nestedProperty({},e).parts)}.bind(null,t));var r=n.coerce(t,{},s,\\\"type\\\"),i=l.data[r];i||(i=l.data[r]=[]),i.push(e)}),h(r,l.layout,function(t,e){return a.getLayoutValObject(t,n.nestedProperty({},e).parts)}.bind(null,r)),delete l.layout.template;var f=r.template;if(i(f)){var p,d,g,v,m,y,x=f.layout;i(x)&&u(x,l.layout);var b=f.data;if(i(b)){for(d in l.data)if(g=b[d],Array.isArray(g)){for(y=(m=l.data[d]).length,v=g.length,p=0;p<y;p++)u(g[p%v],m[p]);for(p=y;p<v;p++)m.push(n.extendDeep({},g[p]))}for(d in b)d in l.data||(l.data[d]=n.extendDeep([],b[d]))}}return l},r.validateTemplate=function(t,e){var r=n.extendDeep({},{_context:c,data:t.data,layout:t.layout}),a=r.layout||{};i(e)||(e=a.template||{});var s=e.layout,l=e.data,u=[];r.layout=a,r.layout.template=e,o.supplyDefaults(r);var h=r._fullLayout,v=r._fullData,m={};if(i(s)?(!function t(e,r){for(var n in e)if(\\\"_\\\"!==n.charAt(0)&&i(e[n])){var a,o=f(n),s=[];for(a=0;a<r.length;a++)s.push(p(e,n,r[a])),o!==n&&s.push(p(e,o,r[a]));for(a=0;a<s.length;a++)m[s[a]]=1;t(e[n],s)}}(h,[\\\"layout\\\"]),function t(e,r){for(var n in e)if(-1===n.indexOf(\\\"defaults\\\")&&i(e[n])){var a=p(e,n,r);m[a]?t(e[n],a):u.push({code:\\\"unused\\\",path:a})}}(s,\\\"layout\\\")):u.push({code:\\\"layout\\\"}),i(l)){for(var y,x={},b=0;b<v.length;b++){var _=v[b];x[y=_.type]=(x[y]||0)+1,_._fullInput._template||u.push({code:\\\"missing\\\",index:_._fullInput.index,traceType:y})}for(y in l){var w=l[y].length,k=x[y]||0;w>k?u.push({code:\\\"unused\\\",traceType:y,templateCount:w,dataCount:k}):k>w&&u.push({code:\\\"reused\\\",traceType:y,templateCount:w,dataCount:k})}}else u.push({code:\\\"data\\\"});if(function t(e,r){for(var n in e)if(\\\"_\\\"!==n.charAt(0)){var a=e[n],o=p(e,n,r);i(a)?(Array.isArray(e)&&!1===a._template&&a.templateitemname&&u.push({code:\\\"missing\\\",path:o,templateitemname:a.templateitemname}),t(a,o)):Array.isArray(a)&&d(a)&&t(a,o)}}({data:v,layout:h},\\\"\\\"),u.length)return u.map(g)}},{\\\"../lib\\\":696,\\\"../plots/attributes\\\":741,\\\"../plots/plots\\\":808,\\\"./plot_config\\\":732,\\\"./plot_schema\\\":733,\\\"./plot_template\\\":734}],737:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./plot_api\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../snapshot/helpers\\\"),o=t(\\\"../snapshot/tosvg\\\"),s=t(\\\"../snapshot/svgtoimg\\\"),l={format:{valType:\\\"enumerated\\\",values:[\\\"png\\\",\\\"jpeg\\\",\\\"webp\\\",\\\"svg\\\"],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}},c=/^data:image\\\\/\\\\w+;base64,/;e.exports=function(t,e){var r,u,f;function h(t){return!(t in e)||i.validate(e[t],l[t])}if(e=e||{},i.isPlainObject(t)?(r=t.data||[],u=t.layout||{},f=t.config||{}):(t=i.getGraphDiv(t),r=i.extendDeep([],t.data),u=i.extendDeep({},t.layout),f=t._context),!h(\\\"width\\\")||!h(\\\"height\\\"))throw new Error(\\\"Height and width should be pixel values.\\\");if(!h(\\\"format\\\"))throw new Error(\\\"Image format is not jpeg, png, svg or webp.\\\");var p={};function d(t,r){return i.coerce(e,p,l,t,r)}var g=d(\\\"format\\\"),v=d(\\\"width\\\"),m=d(\\\"height\\\"),y=d(\\\"scale\\\"),x=d(\\\"setBackground\\\"),b=d(\\\"imageDataOnly\\\"),_=document.createElement(\\\"div\\\");_.style.position=\\\"absolute\\\",_.style.left=\\\"-5000px\\\",document.body.appendChild(_);var w=i.extendFlat({},u);v&&(w.width=v),m&&(w.height=m);var k=i.extendFlat({},f,{staticPlot:!0,setBackground:x}),M=a.getRedrawFunc(_);function A(){return new Promise(function(t){setTimeout(t,a.getDelay(_._fullLayout))})}function T(){return new Promise(function(t,e){var r=o(_,g,y),a=_._fullLayout.width,l=_._fullLayout.height;if(n.purge(_),document.body.removeChild(_),\\\"svg\\\"===g)return t(b?r:\\\"data:image/svg+xml,\\\"+encodeURIComponent(r));var c=document.createElement(\\\"canvas\\\");c.id=i.randstr(),s({format:g,width:a,height:l,scale:y,canvas:c,svg:r,promise:!0}).then(t).catch(e)})}return new Promise(function(t,e){n.plot(_,r,w,k).then(M).then(A).then(T).then(function(e){t(function(t){return b?t.replace(c,\\\"\\\"):t}(e))}).catch(function(t){e(t)})})}},{\\\"../lib\\\":696,\\\"../snapshot/helpers\\\":831,\\\"../snapshot/svgtoimg\\\":833,\\\"../snapshot/tosvg\\\":835,\\\"./plot_api\\\":731}],738:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plots/plots\\\"),a=t(\\\"./plot_schema\\\"),o=t(\\\"./plot_config\\\"),s=n.isPlainObject,l=Array.isArray,c=n.isArrayOrTypedArray;function u(t,e,r,i,a,o){o=o||[];for(var f=Object.keys(t),h=0;h<f.length;h++){var v=f[h];if(\\\"transforms\\\"!==v){var m=o.slice();m.push(v);var y=t[v],x=e[v],b=g(r,v),_=\\\"info_array\\\"===(b||{}).valType,w=\\\"colorscale\\\"===(b||{}).valType,k=(b||{}).items;if(d(r,v))if(s(y)&&s(x))u(y,x,b,i,a,m);else if(_&&l(y)){y.length>x.length&&i.push(p(\\\"unused\\\",a,m.concat(x.length)));var M,A,T,S,E,C=x.length,L=Array.isArray(k);if(L&&(C=Math.min(C,k.length)),2===b.dimensions)for(A=0;A<C;A++)if(l(y[A])){y[A].length>x[A].length&&i.push(p(\\\"unused\\\",a,m.concat(A,x[A].length)));var z=x[A].length;for(M=0;M<(L?Math.min(z,k[A].length):z);M++)T=L?k[A][M]:k,S=y[A][M],E=x[A][M],n.validate(S,T)?E!==S&&E!==+S&&i.push(p(\\\"dynamic\\\",a,m.concat(A,M),S,E)):i.push(p(\\\"value\\\",a,m.concat(A,M),S))}else i.push(p(\\\"array\\\",a,m.concat(A),y[A]));else for(A=0;A<C;A++)T=L?k[A]:k,S=y[A],E=x[A],n.validate(S,T)?E!==S&&E!==+S&&i.push(p(\\\"dynamic\\\",a,m.concat(A),S,E)):i.push(p(\\\"value\\\",a,m.concat(A),S))}else if(b.items&&!_&&l(y)){var O,I,P=k[Object.keys(k)[0]],D=[];for(O=0;O<x.length;O++){var R=x[O]._index||O;if((I=m.slice()).push(R),s(y[R])&&s(x[O])){D.push(R);var B=y[R],F=x[O];s(B)&&!1!==B.visible&&!1===F.visible?i.push(p(\\\"invisible\\\",a,I)):u(B,F,P,i,a,I)}}for(O=0;O<y.length;O++)(I=m.slice()).push(O),s(y[O])?-1===D.indexOf(O)&&i.push(p(\\\"unused\\\",a,I)):i.push(p(\\\"object\\\",a,I,y[O]))}else!s(y)&&s(x)?i.push(p(\\\"object\\\",a,m,y)):c(y)||!c(x)||_||w?v in e?n.validate(y,b)?\\\"enumerated\\\"===b.valType&&(b.coerceNumber&&y!==+x||y!==x)&&i.push(p(\\\"dynamic\\\",a,m,y,x)):i.push(p(\\\"value\\\",a,m,y)):i.push(p(\\\"unused\\\",a,m,y)):i.push(p(\\\"array\\\",a,m,y));else i.push(p(\\\"schema\\\",a,m))}}return i}e.exports=function(t,e){var r,c,f=a.get(),h=[],d={_context:n.extendFlat({},o)};l(t)?(d.data=n.extendDeep([],t),r=t):(d.data=[],r=[],h.push(p(\\\"array\\\",\\\"data\\\"))),s(e)?(d.layout=n.extendDeep({},e),c=e):(d.layout={},c={},arguments.length>1&&h.push(p(\\\"object\\\",\\\"layout\\\"))),i.supplyDefaults(d);for(var g=d._fullData,v=r.length,m=0;m<v;m++){var y=r[m],x=[\\\"data\\\",m];if(s(y)){var b=g[m],_=b.type,w=f.traces[_].attributes;w.type={valType:\\\"enumerated\\\",values:[_]},!1===b.visible&&!1!==y.visible&&h.push(p(\\\"invisible\\\",x)),u(y,b,w,h,x);var k=y.transforms,M=b.transforms;if(k){l(k)||h.push(p(\\\"array\\\",x,[\\\"transforms\\\"])),x.push(\\\"transforms\\\");for(var A=0;A<k.length;A++){var T=[\\\"transforms\\\",A],S=k[A].type;if(s(k[A])){var E=f.transforms[S]?f.transforms[S].attributes:{};E.type={valType:\\\"enumerated\\\",values:Object.keys(f.transforms)},u(k[A],M[A],E,h,x,T)}else h.push(p(\\\"object\\\",x,T))}}}else h.push(p(\\\"object\\\",x))}return u(c,d._fullLayout,function(t,e){for(var r=t.layout.layoutAttributes,i=0;i<e.length;i++){var a=e[i],o=t.traces[a.type],s=o.layoutAttributes;s&&(a.subplot?n.extendFlat(r[o.attributes.subplot.dflt],s):n.extendFlat(r,s))}return r}(f,g),h,\\\"layout\\\"),0===h.length?void 0:h};var f={object:function(t,e){return(\\\"layout\\\"===t&&\\\"\\\"===e?\\\"The layout argument\\\":\\\"data\\\"===t[0]&&\\\"\\\"===e?\\\"Trace \\\"+t[1]+\\\" in the data argument\\\":h(t)+\\\"key \\\"+e)+\\\" must be linked to an object container\\\"},array:function(t,e){return(\\\"data\\\"===t?\\\"The data argument\\\":h(t)+\\\"key \\\"+e)+\\\" must be linked to an array container\\\"},schema:function(t,e){return h(t)+\\\"key \\\"+e+\\\" is not part of the schema\\\"},unused:function(t,e,r){var n=s(r)?\\\"container\\\":\\\"key\\\";return h(t)+n+\\\" \\\"+e+\\\" did not get coerced\\\"},dynamic:function(t,e,r,n){return[h(t)+\\\"key\\\",e,\\\"(set to '\\\"+r+\\\"')\\\",\\\"got reset to\\\",\\\"'\\\"+n+\\\"'\\\",\\\"during defaults.\\\"].join(\\\" \\\")},invisible:function(t,e){return(e?h(t)+\\\"item \\\"+e:\\\"Trace \\\"+t[1])+\\\" got defaulted to be not visible\\\"},value:function(t,e,r){return[h(t)+\\\"key \\\"+e,\\\"is set to an invalid value (\\\"+r+\\\")\\\"].join(\\\" \\\")}};function h(t){return l(t)?\\\"In data trace \\\"+t[1]+\\\", \\\":\\\"In \\\"+t+\\\", \\\"}function p(t,e,r,i,a){var o,s;r=r||\\\"\\\",l(e)?(o=e[0],s=e[1]):(o=e,s=null);var c=function(t){if(!l(t))return String(t);for(var e=\\\"\\\",r=0;r<t.length;r++){var n=t[r];\\\"number\\\"==typeof n?e=e.substr(0,e.length-1)+\\\"[\\\"+n+\\\"]\\\":e+=n,r<t.length-1&&(e+=\\\".\\\")}return e}(r),u=f[t](e,c,i,a);return n.log(u),{code:t,container:o,trace:s,path:r,astr:c,msg:u}}function d(t,e){var r=m(e),n=r.keyMinusId,i=r.id;return!!(n in t&&t[n]._isSubplotObj&&i)||e in t}function g(t,e){return e in t?t[e]:t[m(e).keyMinusId]}var v=n.counterRegex(\\\"([a-z]+)\\\");function m(t){var e=t.match(v);return{keyMinusId:e&&e[1],id:e&&e[2]}}},{\\\"../lib\\\":696,\\\"../plots/plots\\\":808,\\\"./plot_config\\\":732,\\\"./plot_schema\\\":733}],739:[function(t,e,r){\\\"use strict\\\";e.exports={mode:{valType:\\\"enumerated\\\",dflt:\\\"afterall\\\",values:[\\\"immediate\\\",\\\"next\\\",\\\"afterall\\\"]},direction:{valType:\\\"enumerated\\\",values:[\\\"forward\\\",\\\"reverse\\\"],dflt:\\\"forward\\\"},fromcurrent:{valType:\\\"boolean\\\",dflt:!1},frame:{duration:{valType:\\\"number\\\",min:0,dflt:500},redraw:{valType:\\\"boolean\\\",dflt:!0}},transition:{duration:{valType:\\\"number\\\",min:0,dflt:500},easing:{valType:\\\"enumerated\\\",dflt:\\\"cubic-in-out\\\",values:[\\\"linear\\\",\\\"quad\\\",\\\"cubic\\\",\\\"sin\\\",\\\"exp\\\",\\\"circle\\\",\\\"elastic\\\",\\\"back\\\",\\\"bounce\\\",\\\"linear-in\\\",\\\"quad-in\\\",\\\"cubic-in\\\",\\\"sin-in\\\",\\\"exp-in\\\",\\\"circle-in\\\",\\\"elastic-in\\\",\\\"back-in\\\",\\\"bounce-in\\\",\\\"linear-out\\\",\\\"quad-out\\\",\\\"cubic-out\\\",\\\"sin-out\\\",\\\"exp-out\\\",\\\"circle-out\\\",\\\"elastic-out\\\",\\\"back-out\\\",\\\"bounce-out\\\",\\\"linear-in-out\\\",\\\"quad-in-out\\\",\\\"cubic-in-out\\\",\\\"sin-in-out\\\",\\\"exp-in-out\\\",\\\"circle-in-out\\\",\\\"elastic-in-out\\\",\\\"back-in-out\\\",\\\"bounce-in-out\\\"]}}}},{}],740:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plot_api/plot_template\\\");e.exports=function(t,e,r){var a,o,s=r.name,l=r.inclusionAttr||\\\"visible\\\",c=e[s],u=n.isArrayOrTypedArray(t[s])?t[s]:[],f=e[s]=[],h=i.arrayTemplater(e,s,l);for(a=0;a<u.length;a++){var p=u[a];n.isPlainObject(p)?o=h.newItem(p):(o=h.newItem({}))[l]=!1,o._index=a,!1!==o[l]&&r.handleItemDefaults(p,o,e,r),f.push(o)}var d=h.defaultItems();for(a=0;a<d.length;a++)(o=d[a])._index=f.length,r.handleItemDefaults({},o,e,r,{}),f.push(o);if(n.isArrayOrTypedArray(c)){var g=Math.min(c.length,f.length);for(a=0;a<g;a++)n.relinkPrivateKeys(f[a],c[a])}return f}},{\\\"../lib\\\":696,\\\"../plot_api/plot_template\\\":734}],741:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../components/fx/attributes\\\");e.exports={type:{valType:\\\"enumerated\\\",values:[],dflt:\\\"scatter\\\",editType:\\\"calc+clearAxisTypes\\\",_noTemplating:!0},visible:{valType:\\\"enumerated\\\",values:[!0,!1,\\\"legendonly\\\"],dflt:!0,editType:\\\"calc\\\"},showlegend:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"style\\\"},legendgroup:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"style\\\"},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1,editType:\\\"style\\\"},name:{valType:\\\"string\\\",editType:\\\"style\\\"},uid:{valType:\\\"string\\\",editType:\\\"plot\\\"},ids:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},customdata:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},selectedpoints:{valType:\\\"any\\\",editType:\\\"calc\\\"},hoverinfo:{valType:\\\"flaglist\\\",flags:[\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"text\\\",\\\"name\\\"],extras:[\\\"all\\\",\\\"none\\\",\\\"skip\\\"],arrayOk:!0,dflt:\\\"all\\\",editType:\\\"none\\\"},hoverlabel:n.hoverlabel,stream:{token:{valType:\\\"string\\\",noBlank:!0,strict:!0,editType:\\\"calc\\\"},maxpoints:{valType:\\\"number\\\",min:0,max:1e4,dflt:500,editType:\\\"calc\\\"},editType:\\\"calc\\\"},transforms:{_isLinkedToArray:\\\"transform\\\",editType:\\\"calc\\\"}}},{\\\"../components/fx/attributes\\\":604}],742:[function(t,e,r){\\\"use strict\\\";e.exports={xaxis:{valType:\\\"subplotid\\\",dflt:\\\"x\\\",editType:\\\"calc+clearAxisTypes\\\"},yaxis:{valType:\\\"subplotid\\\",dflt:\\\"y\\\",editType:\\\"calc+clearAxisTypes\\\"}}},{}],743:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").FP_SAFE;function o(t,e){var r,n,a=[],o=s(e),c=l(t,e),u=c.min,f=c.max;if(0===u.length||0===f.length)return i.simpleMap(e.range,e.r2l);var h=u[0].val,p=f[0].val;for(r=1;r<u.length&&h===p;r++)h=Math.min(h,u[r].val);for(r=1;r<f.length&&h===p;r++)p=Math.max(p,f[r].val);var d=!1;if(e.range){var g=i.simpleMap(e.range,e.r2l);d=g[1]<g[0]}\\\"reversed\\\"===e.autorange&&(d=!0,e.autorange=!0);var v,m,y,x,b,_,w=e.rangemode,k=\\\"tozero\\\"===w,M=\\\"nonnegative\\\"===w,A=e._length,T=A/10,S=0;for(r=0;r<u.length;r++)for(v=u[r],n=0;n<f.length;n++)(_=(m=f[n]).val-v.val)>0&&((b=A-o(v)-o(m))>T?_/b>S&&(y=v,x=m,S=_/b):_/A>S&&(y={val:v.val,pad:0},x={val:m.val,pad:0},S=_/A));if(h===p){var E=h-1,C=h+1;if(k)if(0===h)a=[0,1];else{var L=(h>0?f:u).reduce(function(t,e){return Math.max(t,o(e))},0),z=h/(1-Math.min(.5,L/A));a=h>0?[0,z]:[z,0]}else a=M?[Math.max(0,E),Math.max(1,C)]:[E,C]}else k?(y.val>=0&&(y={val:0,pad:0}),x.val<=0&&(x={val:0,pad:0})):M&&(y.val-S*o(y)<0&&(y={val:0,pad:0}),x.val<=0&&(x={val:1,pad:0})),S=(x.val-y.val)/(A-o(y)-o(x)),a=[y.val-S*o(y),x.val+S*o(x)];return d&&a.reverse(),i.simpleMap(a,e.l2r||Number)}function s(t){var e=t._length/20;return\\\"domain\\\"===t.constrain&&t._inputDomain&&(e*=(t._inputDomain[1]-t._inputDomain[0])/(t.domain[1]-t.domain[0])),function(t){return t.pad+(t.extrapad?e:0)}}function l(t,e){var r,n,i,a=e._id,o=t._fullData,s=t._fullLayout,l=[],f=[];function h(t,e){for(r=0;r<e.length;r++){var o=t[e[r]],s=(o._extremes||{})[a];if(!0===o.visible&&s){for(n=0;n<s.min.length;n++)i=s.min[n],c(l,i.val,i.pad,{extrapad:i.extrapad});for(n=0;n<s.max.length;n++)i=s.max[n],u(f,i.val,i.pad,{extrapad:i.extrapad})}}}return h(o,e._traceIndices),h(s.annotations||[],e._annIndices||[]),h(s.shapes||[],e._shapeIndices||[]),{min:l,max:f}}function c(t,e,r,n){f(t,e,r,n,p)}function u(t,e,r,n){f(t,e,r,n,d)}function f(t,e,r,n,i){for(var a=n.tozero,o=n.extrapad,s=!0,l=0;l<t.length&&s;l++){var c=t[l];if(i(c.val,e)&&c.pad>=r&&(c.extrapad||!o)){s=!1;break}i(e,c.val)&&c.pad<=r&&(o||!c.extrapad)&&(t.splice(l,1),l--)}if(s){var u=a&&0===e;t.push({val:e,pad:u?0:r,extrapad:!u&&o})}}function h(t){return n(t)&&Math.abs(t)<a}function p(t,e){return t<=e}function d(t,e){return t>=e}e.exports={getAutoRange:o,makePadFn:s,doAutoRange:function(t,e){e._length||e.setScale();var r;e.autorange&&(e.range=o(t,e),e._r=e.range.slice(),e._rl=i.simpleMap(e._r,e.r2l),(r=e._input).range=e.range.slice(),r.autorange=e.autorange);if(e._anchorAxis&&e._anchorAxis.rangeslider){var n=e._anchorAxis.rangeslider[e._name];n&&\\\"auto\\\"===n.rangemode&&(n.range=o(t,e)),(r=e._anchorAxis._input).rangeslider[e._name]=i.extendFlat({},n)}},findExtremes:function(t,e,r){r||(r={});t._m||t.setScale();var i,o,s,l,f,p,d,g,v,m=[],y=[],x=e.length,b=r.padded||!1,_=r.tozero&&(\\\"linear\\\"===t.type||\\\"-\\\"===t.type),w=\\\"log\\\"===t.type,k=!1;function M(t){if(Array.isArray(t))return k=!0,function(e){return Math.max(Number(t[e]||0),0)};var e=Math.max(Number(t||0),0);return function(){return e}}var A=M((t._m>0?r.ppadplus:r.ppadminus)||r.ppad||0),T=M((t._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),S=M(r.vpadplus||r.vpad),E=M(r.vpadminus||r.vpad);if(!k){if(g=1/0,v=-1/0,w)for(i=0;i<x;i++)(o=e[i])<g&&o>0&&(g=o),o>v&&o<a&&(v=o);else for(i=0;i<x;i++)(o=e[i])<g&&o>-a&&(g=o),o>v&&o<a&&(v=o);e=[g,v],x=2}var C={tozero:_,extrapad:b};function L(r){s=e[r],n(s)&&(p=A(r),d=T(r),g=s-E(r),v=s+S(r),w&&g<v/10&&(g=v/10),l=t.c2l(g),f=t.c2l(v),_&&(l=Math.min(0,l),f=Math.max(0,f)),h(l)&&c(m,l,d,C),h(f)&&u(y,f,p,C))}var z=Math.min(6,x);for(i=0;i<z;i++)L(i);for(i=x-1;i>=z;i--)L(i);return{min:m,max:y}},concatExtremes:l}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"fast-isnumeric\\\":214}],744:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../../components/titles\\\"),u=t(\\\"../../components/color\\\"),f=t(\\\"../../components/drawing\\\"),h=t(\\\"./layout_attributes\\\"),p=t(\\\"./clean_ticks\\\"),d=t(\\\"../../constants/numerical\\\"),g=d.ONEAVGYEAR,v=d.ONEAVGMONTH,m=d.ONEDAY,y=d.ONEHOUR,x=d.ONEMIN,b=d.ONESEC,_=d.MINUS_SIGN,w=d.BADNUM,k=t(\\\"../../constants/alignment\\\").MID_SHIFT,M=t(\\\"../../constants/alignment\\\").LINE_SPACING,A=e.exports={};A.setConvert=t(\\\"./set_convert\\\");var T=t(\\\"./axis_autotype\\\"),S=t(\\\"./axis_ids\\\");A.id2name=S.id2name,A.name2id=S.name2id,A.cleanId=S.cleanId,A.list=S.list,A.listIds=S.listIds,A.getFromId=S.getFromId,A.getFromTrace=S.getFromTrace;var E=t(\\\"./autorange\\\");A.getAutoRange=E.getAutoRange,A.findExtremes=E.findExtremes,A.coerceRef=function(t,e,r,n,i,a){var o=n.charAt(n.length-1),l=r._fullLayout._subplots[o+\\\"axis\\\"],c=n+\\\"ref\\\",u={};return i||(i=l[0]||a),a||(a=i),u[c]={valType:\\\"enumerated\\\",values:l.concat(a?[a]:[]),dflt:i},s.coerce(t,e,u,c)},A.coercePosition=function(t,e,r,n,i,a){var o,l;if(\\\"paper\\\"===n||\\\"pixel\\\"===n)o=s.ensureNumber,l=r(i,a);else{var c=A.getFromId(e,n);l=r(i,a=c.fraction2r(a)),o=c.cleanPos}t[i]=o(l)},A.cleanPosition=function(t,e,r){return(\\\"paper\\\"===r||\\\"pixel\\\"===r?s.ensureNumber:A.getFromId(e,r).cleanPos)(t)};var C=A.getDataConversions=function(t,e,r,n){var i,a=\\\"x\\\"===r||\\\"y\\\"===r||\\\"z\\\"===r?r:n;if(Array.isArray(a)){if(i={type:T(n),_categories:[]},A.setConvert(i),\\\"category\\\"===i.type)for(var o=0;o<n.length;o++)i.d2c(n[o])}else i=A.getFromTrace(t,e,a);return i?{d2c:i.d2c,c2d:i.c2d}:\\\"ids\\\"===a?{d2c:z,c2d:z}:{d2c:L,c2d:L}};function L(t){return+t}function z(t){return String(t)}A.getDataToCoordFunc=function(t,e,r,n){return C(t,e,r,n).d2c},A.counterLetter=function(t){var e=t.charAt(0);return\\\"x\\\"===e?\\\"y\\\":\\\"y\\\"===e?\\\"x\\\":void 0},A.minDtick=function(t,e,r,n){-1===[\\\"log\\\",\\\"category\\\"].indexOf(t.type)&&n?void 0===t._minDtick?(t._minDtick=e,t._forceTick0=r):t._minDtick&&((t._minDtick/e+1e-6)%1<2e-6&&((r-t._forceTick0)/e%1+1.000001)%1<2e-6?(t._minDtick=e,t._forceTick0=r):((e/t._minDtick+1e-6)%1>2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},A.saveRangeInitial=function(t,e){for(var r=A.list(t,\\\"\\\",!0),n=!1,i=0;i<r.length;i++){var a=r[i],o=void 0===a._rangeInitial,s=o||!(a.range[0]===a._rangeInitial[0]&&a.range[1]===a._rangeInitial[1]);(o&&!1===a.autorange||e&&s)&&(a._rangeInitial=a.range.slice(),n=!0)}return n},A.saveShowSpikeInitial=function(t,e){for(var r=A.list(t,\\\"\\\",!0),n=!1,i=\\\"on\\\",a=0;a<r.length;a++){var o=r[a],s=void 0===o._showSpikeInitial,l=s||!(o.showspikes===o._showspikes);(s||e&&l)&&(o._showSpikeInitial=o.showspikes,n=!0),\\\"on\\\"!==i||o.showspikes||(i=\\\"off\\\")}return t._fullLayout._cartesianSpikesEnabled=i,n},A.autoBin=function(t,e,r,n,a,o){var l,c=s.aggNums(Math.min,null,t),u=s.aggNums(Math.max,null,t);if(\\\"category\\\"===e.type)return{start:c-.5,end:u+.5,size:Math.max(1,Math.round(o)||1),_dataSpan:u-c};if(a||(a=e.calendar),l=\\\"log\\\"===e.type?{type:\\\"linear\\\",range:[c,u]}:{type:e.type,range:s.simpleMap([c,u],e.c2r,0,a),calendar:a},A.setConvert(l),o=o&&p.dtick(o,l.type))l.dtick=o,l.tick0=p.tick0(void 0,l.type,a);else{var f;if(r)f=(u-c)/r;else{var h=s.distinctVals(t),d=Math.pow(10,Math.floor(Math.log(h.minDiff)/Math.LN10)),g=d*s.roundUp(h.minDiff/d,[.9,1.9,4.9,9.9],!0);f=Math.max(g,2*s.stdev(t)/Math.pow(t.length,n?.25:.4)),i(f)||(f=1)}A.autoTicks(l,f)}var v,y=l.dtick,x=A.tickIncrement(A.tickFirst(l),y,\\\"reverse\\\",a);if(\\\"number\\\"==typeof y)v=(x=function(t,e,r,n,a){var o=0,s=0,l=0,c=0;function u(e){return(1+100*(e-t)/r.dtick)%100<2}for(var f=0;f<e.length;f++)e[f]%1==0?l++:i(e[f])||c++,u(e[f])&&o++,u(e[f]+r.dtick/2)&&s++;var h=e.length-c;if(l===h&&\\\"date\\\"!==r.type)r.dtick<1?t=n-.5*r.dtick:(t-=.5)+r.dtick<n&&(t+=r.dtick);else if(s<.1*h&&(o>.3*h||u(n)||u(a))){var p=r.dtick/2;t+=t+p<n?p:-p}return t}(x,t,l,c,u))+(1+Math.floor((u-x)/y))*y;else for(\\\"M\\\"===l.dtick.charAt(0)&&(x=function(t,e,r,n,i){var a=s.findExactDates(e,i);if(a.exactDays>.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=A.tickIncrement(t,\\\"M6\\\",\\\"reverse\\\")+1.5*m:a.exactMonths>.8?t=A.tickIncrement(t,\\\"M1\\\",\\\"reverse\\\")+15.5*m:t-=m/2;var l=A.tickIncrement(t,r);if(l<=n)return l}return t}(x,t,y,c,a)),v=x,0;v<=u;)v=A.tickIncrement(v,y,!1,a),0;return{start:e.c2r(x,0,a),end:e.c2r(v,0,a),size:y,_dataSpan:u-c}},A.prepTicks=function(t){var e=s.simpleMap(t.range,t.r2l);if(\\\"auto\\\"===t.tickmode||!t.dtick){var r,n=t.nticks;n||(\\\"category\\\"===t.type?(r=t.tickfont?1.2*(t.tickfont.size||12):15,n=t._length/r):(r=\\\"y\\\"===t._id.charAt(0)?40:80,n=s.constrain(t._length/r,4,9)+1),\\\"radialaxis\\\"===t._name&&(n*=2)),\\\"array\\\"===t.tickmode&&(n*=100),A.autoTicks(t,Math.abs(e[1]-e[0])/n),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}t.tick0||(t.tick0=\\\"date\\\"===t.type?\\\"2000-01-01\\\":0),\\\"date\\\"===t.type&&t.dtick<.1&&(t.dtick=.1),j(t)},A.calcTicks=function(t){A.prepTicks(t);var e=s.simpleMap(t.range,t.r2l);if(\\\"array\\\"===t.tickmode)return function(t){var e,r,n=t.tickvals,i=t.ticktext,a=new Array(n.length),o=s.simpleMap(t.range,t.r2l),l=1.0001*o[0]-1e-4*o[1],c=1.0001*o[1]-1e-4*o[0],u=Math.min(l,c),f=Math.max(l,c),h=0;Array.isArray(i)||(i=[]);var p=\\\"category\\\"===t.type?t.d2l_noadd:t.d2l;\\\"log\\\"===t.type&&\\\"L\\\"!==String(t.dtick).charAt(0)&&(t.dtick=\\\"L\\\"+Math.pow(10,Math.floor(Math.min(t.range[0],t.range[1]))-1));for(r=0;r<n.length;r++)(e=p(n[r]))>u&&e<f&&(void 0===i[r]?a[h]=A.tickText(t,e):a[h]=V(t,e,String(i[r])),h++);h<n.length&&a.splice(h,n.length-h);return a}(t);t._tmin=A.tickFirst(t);var r=1.0001*e[0]-1e-4*e[1],n=1.0001*e[1]-1e-4*e[0],i=e[1]<e[0];if(t._tmin<r!==i)return[];var a=[];\\\"category\\\"===t.type&&(n=i?Math.max(-.5,n):Math.min(t._categories.length-.5,n));for(var o=null,l=Math.max(1e3,t._length||0),c=t._tmin;(i?c>=n:c<=n)&&!(a.length>l||c===o);c=A.tickIncrement(c,t.dtick,i,t.calendar))o=c,a.push(c);$(t)&&360===Math.abs(e[1]-e[0])&&a.pop(),t._tmax=a[a.length-1],t._prevDateHead=\\\"\\\",t._inCalcTicks=!0;for(var u=new Array(a.length),f=0;f<a.length;f++)u[f]=A.tickText(t,a[f]);return t._inCalcTicks=!1,u};var O=[2,5,10],I=[1,2,3,6,12],P=[1,2,5,10,15,30],D=[1,2,3,7,14],R=[-.046,0,.301,.477,.602,.699,.778,.845,.903,.954,1],B=[-.301,0,.301,.699,1],F=[15,30,45,90,180];function N(t,e,r){return e*s.roundUp(t/e,r)}function j(t){var e=t.dtick;if(t._tickexponent=0,i(e)||\\\"string\\\"==typeof e||(e=1),\\\"category\\\"===t.type&&(t._tickround=null),\\\"date\\\"===t.type){var r=t.r2l(t.tick0),n=t.l2r(r).replace(/(^-|i)/g,\\\"\\\"),a=n.length;if(\\\"M\\\"===String(e).charAt(0))a>10||\\\"01-01\\\"!==n.substr(5)?t._tickround=\\\"d\\\":t._tickround=+e.substr(1)%12==0?\\\"y\\\":\\\"m\\\";else if(e>=m&&a<=10||e>=15*m)t._tickround=\\\"d\\\";else if(e>=x&&a<=16||e>=y)t._tickround=\\\"M\\\";else if(e>=b&&a<=19||e>=x)t._tickround=\\\"S\\\";else{var o=t.l2r(r+e).replace(/^-/,\\\"\\\").length;t._tickround=Math.max(a,o)-20,t._tickround<0&&(t._tickround=4)}}else if(i(e)||\\\"L\\\"===e.charAt(0)){var s=t.range.map(t.r2d||Number);i(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),c=Math.floor(Math.log(l)/Math.LN10+.01);Math.abs(c)>3&&(q(t.exponentformat)&&!H(c)?t._tickexponent=3*Math.round((c-1)/3):t._tickexponent=c)}else t._tickround=null}function V(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||\\\"\\\",fontSize:n.size,font:n.family,fontColor:n.color}}A.autoTicks=function(t,e){var r;function n(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if(\\\"date\\\"===t.type){t.tick0=s.dateTick0(t.calendar);var a=2*e;a>g?(e/=g,r=n(10),t.dtick=\\\"M\\\"+12*N(e,r,O)):a>v?(e/=v,t.dtick=\\\"M\\\"+N(e,1,I)):a>m?(t.dtick=N(e,m,D),t.tick0=s.dateTick0(t.calendar,!0)):a>y?t.dtick=N(e,y,I):a>x?t.dtick=N(e,x,P):a>b?t.dtick=N(e,b,P):(r=n(10),t.dtick=N(e,r,O))}else if(\\\"log\\\"===t.type){t.tick0=0;var o=s.simpleMap(t.range,t.r2l);if(e>.7)t.dtick=Math.ceil(e);else if(Math.abs(o[1]-o[0])<1){var l=1.5*Math.abs((o[1]-o[0])/e);e=Math.abs(Math.pow(10,o[1])-Math.pow(10,o[0]))/l,r=n(10),t.dtick=\\\"L\\\"+N(e,r,O)}else t.dtick=e>.3?\\\"D2\\\":\\\"D1\\\"}else\\\"category\\\"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):$(t)?(t.tick0=0,r=1,t.dtick=N(e,r,F)):(t.tick0=0,r=n(10),t.dtick=N(e,r,O));if(0===t.dtick&&(t.dtick=1),!i(t.dtick)&&\\\"string\\\"!=typeof t.dtick){var c=t.dtick;throw t.dtick=1,\\\"ax.dtick error: \\\"+String(c)}},A.tickIncrement=function(t,e,r,a){var o=r?-1:1;if(i(e))return t+o*e;var l=e.charAt(0),c=o*Number(e.substr(1));if(\\\"M\\\"===l)return s.incrementMonth(t,c,a);if(\\\"L\\\"===l)return Math.log(Math.pow(10,t)+c)/Math.LN10;if(\\\"D\\\"===l){var u=\\\"D2\\\"===e?B:R,f=t+.01*o,h=s.roundUp(s.mod(f,1),u,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,h),1))/Math.LN10}throw\\\"unrecognized dtick \\\"+String(e)},A.tickFirst=function(t){var e=t.r2l||Number,r=s.simpleMap(t.range,e),a=r[1]<r[0],o=a?Math.floor:Math.ceil,l=1.0001*r[0]-1e-4*r[1],c=t.dtick,u=e(t.tick0);if(i(c)){var f=o((l-u)/c)*c+u;return\\\"category\\\"===t.type&&(f=s.constrain(f,0,t._categories.length-1)),f}var h=c.charAt(0),p=Number(c.substr(1));if(\\\"M\\\"===h){for(var d,g,v,m=0,y=u;m<10;){if(((d=A.tickIncrement(y,c,a,t.calendar))-l)*(y-l)<=0)return a?Math.min(y,d):Math.max(y,d);g=(l-(y+d)/2)/(d-y),v=h+(Math.abs(Math.round(g))||1)*p,y=A.tickIncrement(y,v,g<0?!a:a,t.calendar),m++}return s.error(\\\"tickFirst did not converge\\\",t),y}if(\\\"L\\\"===h)return Math.log(o((Math.pow(10,l)-u)/p)*p+u)/Math.LN10;if(\\\"D\\\"===h){var x=\\\"D2\\\"===c?B:R,b=s.roundUp(s.mod(l,1),x,a);return Math.floor(l)+Math.log(n.round(Math.pow(10,b),1))/Math.LN10}throw\\\"unrecognized dtick \\\"+String(c)},A.tickText=function(t,e,r){var n,a,o=V(t,e),l=\\\"array\\\"===t.tickmode,c=r||l,u=\\\"category\\\"===t.type?t.d2l_noadd:t.d2l;if(l&&Array.isArray(t.ticktext)){var f=s.simpleMap(t.range,t.r2l),h=Math.abs(f[1]-f[0])/1e4;for(a=0;a<t.ticktext.length&&!(Math.abs(e-u(t.tickvals[a]))<h);a++);if(a<t.ticktext.length)return o.text=String(t.ticktext[a]),o}function p(n){var i;return void 0===n||(r?\\\"none\\\"===n:(i={first:t._tmin,last:t._tmax}[n],\\\"all\\\"!==n&&e!==i))}return n=r?\\\"never\\\":\\\"none\\\"!==t.exponentformat&&p(t.showexponent)?\\\"hide\\\":\\\"\\\",\\\"date\\\"===t.type?function(t,e,r,n){var a=t._tickround,o=r&&t.hoverformat||A.getTickFormat(t);n&&(a=i(a)?4:{y:\\\"m\\\",m:\\\"d\\\",d:\\\"M\\\",M:\\\"S\\\",S:4}[a]);var l,c=s.formatDate(e.x,o,a,t._dateFormat,t.calendar,t._extraFormat),u=c.indexOf(\\\"\\\\n\\\");-1!==u&&(l=c.substr(u+1),c=c.substr(0,u));n&&(\\\"00:00:00\\\"===c||\\\"00:00\\\"===c?(c=l,l=\\\"\\\"):8===c.length&&(c=c.replace(/:00$/,\\\"\\\")));l&&(r?\\\"d\\\"===a?c+=\\\", \\\"+l:c=l+(c?\\\", \\\"+c:\\\"\\\"):t._inCalcTicks&&l===t._prevDateHead||(c+=\\\"<br>\\\"+l,t._prevDateHead=l));e.text=c}(t,o,r,c):\\\"log\\\"===t.type?function(t,e,r,n,a){var o=t.dtick,l=e.x,c=t.tickformat,u=\\\"string\\\"==typeof o&&o.charAt(0);\\\"never\\\"===a&&(a=\\\"\\\");n&&\\\"L\\\"!==u&&(o=\\\"L3\\\",u=\\\"L\\\");if(c||\\\"L\\\"===u)e.text=G(Math.pow(10,l),t,a,n);else if(i(o)||\\\"D\\\"===u&&s.mod(l+.01,1)<.1){var f=Math.round(l),h=Math.abs(f),p=t.exponentformat;\\\"power\\\"===p||q(p)&&H(f)?(e.text=0===f?1:1===f?\\\"10\\\":\\\"10<sup>\\\"+(f>1?\\\"\\\":_)+h+\\\"</sup>\\\",e.fontSize*=1.25):(\\\"e\\\"===p||\\\"E\\\"===p)&&h>2?e.text=\\\"1\\\"+p+(f>0?\\\"+\\\":_)+h:(e.text=G(Math.pow(10,l),t,\\\"\\\",\\\"fakehover\\\"),\\\"D1\\\"===o&&\\\"y\\\"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if(\\\"D\\\"!==u)throw\\\"unrecognized dtick \\\"+String(o);e.text=String(Math.round(Math.pow(10,s.mod(l,1)))),e.fontSize*=.75}if(\\\"D1\\\"===t.dtick){var d=String(e.text).charAt(0);\\\"0\\\"!==d&&\\\"1\\\"!==d||(\\\"y\\\"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(l<0?.5:.25)))}}(t,o,0,c,n):\\\"category\\\"===t.type?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r=\\\"\\\");e.text=String(r)}(t,o):$(t)?function(t,e,r,n,i){if(\\\"radians\\\"!==t.thetaunit||r)e.text=G(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text=\\\"0\\\";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){var r=1;for(;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=G(s.deg2rad(e.x),t,i,n);else{var l=e.x<0;1===o[1]?1===o[0]?e.text=\\\"\\\\u03c0\\\":e.text=o[0]+\\\"\\\\u03c0\\\":e.text=[\\\"<sup>\\\",o[0],\\\"</sup>\\\",\\\"\\\\u2044\\\",\\\"<sub>\\\",o[1],\\\"</sub>\\\",\\\"\\\\u03c0\\\"].join(\\\"\\\"),l&&(e.text=_+e.text)}}}}(t,o,r,c,n):function(t,e,r,n,i){\\\"never\\\"===i?i=\\\"\\\":\\\"all\\\"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i=\\\"hide\\\");e.text=G(e.x,t,i,n)}(t,o,0,c,n),t.tickprefix&&!p(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!p(t.showticksuffix)&&(o.text+=t.ticksuffix),o},A.hoverLabelText=function(t,e,r){if(r!==w&&r!==e)return A.hoverLabelText(t,e)+\\\" - \\\"+A.hoverLabelText(t,r);var n=\\\"log\\\"===t.type&&e<=0,i=A.tickText(t,t.c2l(n?-e:e),\\\"hover\\\").text;return n?0===e?\\\"0\\\":_+i:i};var U=[\\\"f\\\",\\\"p\\\",\\\"n\\\",\\\"\\\\u03bc\\\",\\\"m\\\",\\\"\\\",\\\"k\\\",\\\"M\\\",\\\"G\\\",\\\"T\\\"];function q(t){return\\\"SI\\\"===t||\\\"B\\\"===t}function H(t){return t>14||t<-15}function G(t,e,r,n){var a=t<0,o=e._tickround,l=r||e.exponentformat||\\\"B\\\",c=e._tickexponent,u=A.getTickFormat(e),f=e.separatethousands;if(n){var h={exponentformat:l,dtick:\\\"none\\\"===e.showexponent?e.dtick:i(t)&&Math.abs(t)||1,range:\\\"none\\\"===e.showexponent?e.range.map(e.r2d):[0,t||1]};j(h),o=(Number(h._tickround)||0)+4,c=h._tickexponent,e.hoverformat&&(u=e.hoverformat)}if(u)return e._numFormat(u)(t).replace(/-/g,_);var p,d=Math.pow(10,-o)/2;if(\\\"none\\\"===l&&(c=0),(t=Math.abs(t))<d)t=\\\"0\\\",a=!1;else{if(t+=d,c&&(t*=Math.pow(10,-c),o+=c),0===o)t=String(Math.floor(t));else if(o<0){t=(t=String(Math.round(t))).substr(0,t.length+o);for(var g=o;g<0;g++)t+=\\\"0\\\"}else{var v=(t=String(t)).indexOf(\\\".\\\")+1;v&&(t=t.substr(0,v+o).replace(/\\\\.?0+$/,\\\"\\\"))}t=s.numSeparate(t,e._separators,f)}c&&\\\"hide\\\"!==l&&(q(l)&&H(c)&&(l=\\\"power\\\"),p=c<0?_+-c:\\\"power\\\"!==l?\\\"+\\\"+c:String(c),\\\"e\\\"===l||\\\"E\\\"===l?t+=l+p:\\\"power\\\"===l?t+=\\\"\\\\xd710<sup>\\\"+p+\\\"</sup>\\\":\\\"B\\\"===l&&9===c?t+=\\\"B\\\":q(l)&&(t+=U[c/3+5]));return a?_+t:t}function W(t,e){var r=t.l2p(e);return r>1&&r<t._length-1}function Y(t,e){for(var r=0;r<e.length;r++)-1===t.indexOf(e[r])&&t.push(e[r])}function X(t,e,r){var n,i,a=[],o=[],l=t.layout;for(n=0;n<e.length;n++)a.push(A.getFromId(t,e[n]));for(n=0;n<r.length;n++)o.push(A.getFromId(t,r[n]));var c=Object.keys(h),u=[\\\"anchor\\\",\\\"domain\\\",\\\"overlaying\\\",\\\"position\\\",\\\"side\\\",\\\"tickangle\\\",\\\"editType\\\"],f=[\\\"linear\\\",\\\"log\\\"];for(n=0;n<c.length;n++){var p=c[n],d=a[0][p],g=o[0][p],v=!0,m=!1,y=!1;if(\\\"_\\\"!==p.charAt(0)&&\\\"function\\\"!=typeof d&&-1===u.indexOf(p)){for(i=1;i<a.length&&v;i++){var x=a[i][p];\\\"type\\\"===p&&-1!==f.indexOf(d)&&-1!==f.indexOf(x)&&d!==x?m=!0:x!==d&&(v=!1)}for(i=1;i<o.length&&v;i++){var b=o[i][p];\\\"type\\\"===p&&-1!==f.indexOf(g)&&-1!==f.indexOf(b)&&g!==b?y=!0:o[i][p]!==g&&(v=!1)}v&&(m&&(l[a[0]._name].type=\\\"linear\\\"),y&&(l[o[0]._name].type=\\\"linear\\\"),Z(l,p,a,o,t._fullLayout._dfltTitle))}}for(n=0;n<t._fullLayout.annotations.length;n++){var _=t._fullLayout.annotations[n];-1!==e.indexOf(_.xref)&&-1!==r.indexOf(_.yref)&&s.swapAttrs(l.annotations[n],[\\\"?\\\"])}}function Z(t,e,r,n,i){var a,o=s.nestedProperty,l=o(t[r[0]._name],e).get(),c=o(t[n[0]._name],e).get();for(\\\"title\\\"===e&&(l===i.x&&(l=i.y),c===i.y&&(c=i.x)),a=0;a<r.length;a++)o(t,r[a]._name+\\\".\\\"+e).set(c);for(a=0;a<n.length;a++)o(t,n[a]._name+\\\".\\\"+e).set(l)}function $(t){return\\\"angularaxis\\\"===t._id}A.getTickFormat=function(t){var e,r,n,i,a,o,s,l;function c(t){return\\\"string\\\"!=typeof t?t:Number(t.replace(\\\"M\\\",\\\"\\\"))*v}function u(t,e){var r=[\\\"L\\\",\\\"D\\\"];if(typeof t==typeof e){if(\\\"number\\\"==typeof t)return t-e;var n=r.indexOf(t.charAt(0)),i=r.indexOf(e.charAt(0));return n===i?Number(t.replace(/(L|D)/g,\\\"\\\"))-Number(e.replace(/(L|D)/g,\\\"\\\")):n-i}return\\\"number\\\"==typeof t?1:-1}function f(t,e){var r=null===e[0],n=null===e[1],i=u(t,e[0])>=0,a=u(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case\\\"date\\\":case\\\"linear\\\":for(e=0;e<t.tickformatstops.length;e++)if((n=t.tickformatstops[e]).enabled&&(i=t.dtick,a=n.dtickrange,o=void 0,void 0,void 0,o=c||function(t){return t},s=a[0],l=a[1],(!s&&\\\"number\\\"!=typeof s||o(s)<=o(i))&&(!l&&\\\"number\\\"!=typeof l||o(l)>=o(i)))){r=n;break}break;case\\\"log\\\":for(e=0;e<t.tickformatstops.length;e++)if((n=t.tickformatstops[e]).enabled&&f(t.dtick,n.dtickrange)){r=n;break}}return r?r.value:t.tickformat},A.getSubplots=function(t,e){var r=t._fullLayout._subplots,n=r.cartesian.concat(r.gl2d||[]),i=e?A.findSubplotsWithAxis(n,e):n;return i.sort(function(t,e){var r=t.substr(1).split(\\\"y\\\"),n=e.substr(1).split(\\\"y\\\");return r[0]===n[0]?+r[1]-+n[1]:+r[0]-+n[0]}),i},A.findSubplotsWithAxis=function(t,e){for(var r=new RegExp(\\\"x\\\"===e._id.charAt(0)?\\\"^\\\"+e._id+\\\"y\\\":e._id+\\\"$\\\"),n=[],i=0;i<t.length;i++){var a=t[i];r.test(a)&&n.push(a)}return n},A.makeClipPaths=function(t){var e=t._fullLayout;if(!e._hasOnlyLargeSploms){var r,i,a={_offset:0,_length:e.width,_id:\\\"\\\"},o={_offset:0,_length:e.height,_id:\\\"\\\"},s=A.list(t,\\\"x\\\",!0),l=A.list(t,\\\"y\\\",!0),c=[];for(r=0;r<s.length;r++)for(c.push({x:s[r],y:o}),i=0;i<l.length;i++)0===r&&c.push({x:a,y:l[i]}),c.push({x:s[r],y:l[i]});var u=e._clips.selectAll(\\\".axesclip\\\").data(c,function(t){return t.x._id+t.y._id});u.enter().append(\\\"clipPath\\\").classed(\\\"axesclip\\\",!0).attr(\\\"id\\\",function(t){return\\\"clip\\\"+e._uid+t.x._id+t.y._id}).append(\\\"rect\\\"),u.exit().remove(),u.each(function(t){n.select(this).select(\\\"rect\\\").attr({x:t.x._offset||0,y:t.y._offset||0,width:t.x._length||1,height:t.y._length||1})})}},A.doTicks=function(t,e,r){var n=t._fullLayout;\\\"redraw\\\"===e&&n._paper.selectAll(\\\"g.subplot\\\").each(function(t){var e=t[0],r=n._plots[e],i=r.xaxis,a=r.yaxis;r.xaxislayer.selectAll(\\\".\\\"+i._id+\\\"tick\\\").remove(),r.yaxislayer.selectAll(\\\".\\\"+a._id+\\\"tick\\\").remove(),r.gridlayer&&r.gridlayer.selectAll(\\\"path\\\").remove(),r.zerolinelayer&&r.zerolinelayer.selectAll(\\\"path\\\").remove(),n._infolayer.select(\\\".g-\\\"+i._id+\\\"title\\\").remove(),n._infolayer.select(\\\".g-\\\"+a._id+\\\"title\\\").remove()});var i=e&&\\\"redraw\\\"!==e?e:A.listIds(t);s.syncOrAsync(i.map(function(e){return function(){if(e){var n=A.doTicksSingle(t,e,r),i=A.getFromId(t,e);return i._r=i.range.slice(),i._rl=s.simpleMap(i._r,i.r2l),n}}}))},A.doTicksSingle=function(t,e,r){var o,h=t._fullLayout,p=!1;s.isPlainObject(e)?(o=e,p=!0):o=A.getFromId(t,e),o.setScale();var d,g,v,m,y,x,b=o._id,_=b.charAt(0),w=A.counterLetter(b),T=o._vals=A.calcTicks(o),E=function(t){return[t.text,t.x,o.mirror,t.font,t.fontSize,t.fontColor].join(\\\"_\\\")},C=b+\\\"tick\\\",L=b+\\\"grid\\\",z=b+\\\"zl\\\",O=(o.linewidth||1)/2,I=\\\"outside\\\"===o.ticks?o.ticklen:0,P=0,D=f.crispRound(t,o.gridwidth,1),R=f.crispRound(t,o.zerolinewidth,D),B=f.crispRound(t,o.tickwidth,1);if(o._counterangle&&\\\"outside\\\"===o.ticks){var F=o._counterangle*Math.PI/180;I=o.ticklen*Math.cos(F)+1,P=o.ticklen*Math.sin(F)}if(o.showticklabels&&(\\\"outside\\\"===o.ticks||o.showline)&&(I+=.2*o.tickfont.size),\\\"x\\\"===_)d=[\\\"bottom\\\",\\\"top\\\"],g=o._transfn||function(t){return\\\"translate(\\\"+(o._offset+o.l2p(t.x))+\\\",0)\\\"},v=function(t,e){if(o._counterangle){var r=o._counterangle*Math.PI/180;return\\\"M0,\\\"+t+\\\"l\\\"+Math.sin(r)*e+\\\",\\\"+Math.cos(r)*e}return\\\"M0,\\\"+t+\\\"v\\\"+e};else if(\\\"y\\\"===_)d=[\\\"left\\\",\\\"right\\\"],g=o._transfn||function(t){return\\\"translate(0,\\\"+(o._offset+o.l2p(t.x))+\\\")\\\"},v=function(t,e){if(o._counterangle){var r=o._counterangle*Math.PI/180;return\\\"M\\\"+t+\\\",0l\\\"+Math.cos(r)*e+\\\",\\\"+-Math.sin(r)*e}return\\\"M\\\"+t+\\\",0h\\\"+e};else{if(!$(o))return void s.warn(\\\"Unrecognized doTicks axis:\\\",b);d=[\\\"left\\\",\\\"right\\\"],g=o._transfn,v=function(t,e){return\\\"M\\\"+t+\\\",0h\\\"+e}}var N=o.side||d[0],j=[-1,1,N===d[1]?1:-1];if(\\\"inside\\\"!==o.ticks==(\\\"x\\\"===_)&&(j=j.map(function(t){return-t})),o.visible){o._tickFilter&&(T=T.filter(o._tickFilter));var V=o._valsClipped=$(o)?T:T.filter(function(t){return W(o,t.x)});if(p){if(Z(o._axislayer,v(o._pos+O*j[2],j[2]*o.ticklen)),o._counteraxis)Q({gridlayer:o._gridlayer,zerolinelayer:o._zerolinelayer},o._counteraxis);return J(o._axislayer,o._pos)}if(h._has(\\\"cartesian\\\")){m=A.getSubplots(t,o);var U={};m.map(function(t){var e=h._plots[t],r=e[w+\\\"axis\\\"],n=r._mainAxis._id;U[n]||(U[n]=1,Q(e,r))});var q=o._mainSubplot,H=h._plots[q],G=[];if(o.ticks){var Y=j[2],X=v(o._mainLinePosition+O*Y,Y*o.ticklen);o._anchorAxis&&o.mirror&&!0!==o.mirror&&(X+=v(o._mainMirrorPosition-O*Y,-Y*o.ticklen)),Z(H[_+\\\"axislayer\\\"],X),G=Object.keys(o._linepositions||{})}return G.map(function(t){var e=h._plots[t][_+\\\"axislayer\\\"],r=o._linepositions[t]||[];function n(t){var e=j[t];return v(r[t]+O*e,e*o.ticklen)}Z(e,n(0)+n(1))}),J(H[_+\\\"axislayer\\\"],o._mainLinePosition)}}function Z(t,e){var r=t.selectAll(\\\"path.\\\"+C).data(\\\"inside\\\"===o.ticks?V:T,E);e&&o.ticks?(r.enter().append(\\\"path\\\").classed(C,1).classed(\\\"ticks\\\",1).classed(\\\"crisp\\\",1).call(u.stroke,o.tickcolor).style(\\\"stroke-width\\\",B+\\\"px\\\").attr(\\\"d\\\",e),r.attr(\\\"transform\\\",g),r.exit().remove()):r.remove()}function J(e,r){if(y=e.selectAll(\\\"g.\\\"+C).data(T,E),!i(r))return y.remove(),void K();if(!o.showticklabels)return y.remove(),K(),void z();var c,u,p,d,v;\\\"x\\\"===_?(c=function(t){return t.dx+P*v},d=r+(I+O)*(v=\\\"bottom\\\"===N?1:-1),u=function(t){return t.dy+d+t.fontSize*(\\\"bottom\\\"===N?1:-.2)},p=function(t){return i(t)&&0!==t&&180!==t?t*v<0?\\\"end\\\":\\\"start\\\":\\\"middle\\\"}):\\\"y\\\"===_?(v=\\\"right\\\"===N?1:-1,u=function(t){return t.dy+t.fontSize*k-P*v},c=function(t){return t.dx+r+(I+O+(90===Math.abs(o.tickangle)?t.fontSize/2:0))*v},p=function(t){return i(t)&&90===Math.abs(t)?\\\"middle\\\":\\\"right\\\"===N?\\\"start\\\":\\\"end\\\"}):$(o)&&(o._labelShift=P,o._labelStandoff=I,o._pad=O,c=o._labelx,u=o._labely,p=o._labelanchor);var w=0,A=0,S=[];function L(t,e){t.each(function(t){var r=p(e,t),a=n.select(this),o=a.select(\\\".text-math-group\\\"),s=g.call(a.node(),t)+(i(e)&&0!=+e?\\\" rotate(\\\"+e+\\\",\\\"+c(t)+\\\",\\\"+(u(t)-t.fontSize/2)+\\\")\\\":\\\"\\\"),h=function(t,e,r){var n=(t-1)*e;if(\\\"x\\\"===_){if(r<-60||60<r)return-.5*n;if(\\\"top\\\"===N)return-n}else{if((r*=\\\"left\\\"===N?1:-1)<-30)return-n;if(r<30)return-.5*n}return 0}(l.lineCount(a),M*t.fontSize,i(e)?+e:0);if(h&&(s+=\\\" translate(0, \\\"+h+\\\")\\\"),o.empty())a.select(\\\"text\\\").attr({transform:s,\\\"text-anchor\\\":r});else{var d=f.bBox(o.node()).width*{end:-.5,start:.5}[r];o.attr(\\\"transform\\\",s+(d?\\\"translate(\\\"+d+\\\",0)\\\":\\\"\\\"))}})}function z(){if(o.showticklabels){var r=t.getBoundingClientRect(),n=e.node().getBoundingClientRect();o._boundingBox={width:n.width,height:n.height,left:n.left-r.left,right:n.right-r.left,top:n.top-r.top,bottom:n.bottom-r.top}}else{var i,a=h._size;\\\"x\\\"===_?(i=\\\"free\\\"===o.anchor?a.t+a.h*(1-o.position):a.t+a.h*(1-o._anchorAxis.domain[{bottom:0,top:1}[o.side]]),o._boundingBox={top:i,bottom:i,left:o._offset,right:o._offset+o._length,width:o._length,height:0}):(i=\\\"free\\\"===o.anchor?a.l+a.w*o.position:a.l+a.w*o._anchorAxis.domain[{left:0,right:1}[o.side]],o._boundingBox={left:i,right:i,bottom:o._offset+o._length,top:o._offset,height:o._length,width:0})}if(m){var s=o._counterSpan=[1/0,-1/0];for(x=0;x<m.length;x++){var l=h._plots[m[x]][\\\"x\\\"===_?\\\"yaxis\\\":\\\"xaxis\\\"];c(s,[l._offset,l._offset+l._length])}\\\"free\\\"===o.anchor&&c(s,\\\"x\\\"===_?[o._boundingBox.bottom,o._boundingBox.top]:[o._boundingBox.right,o._boundingBox.left])}function c(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.max(t[1],e[1])}}y.enter().append(\\\"g\\\").classed(C,1).append(\\\"text\\\").attr(\\\"text-anchor\\\",\\\"middle\\\").each(function(e){var r=n.select(this),i=t._promises.length;r.call(l.positionText,c(e),u(e)).call(f.font,e.font,e.fontSize,e.fontColor).text(e.text).call(l.convertToTspans,t),(i=t._promises[i])?S.push(t._promises.pop().then(function(){L(r,o.tickangle)})):L(r,o.tickangle)}),y.exit().remove(),y.each(function(t){w=Math.max(w,t.fontSize)}),$(o)&&y.each(function(t){n.select(this).select(\\\"text\\\").call(l.positionText,c(t),u(t))}),L(y,o._lastangle||o.tickangle);var D=s.syncOrAsync([function(){return S.length&&Promise.all(S)},function(){if(L(y,o.tickangle),\\\"x\\\"===_&&!i(o.tickangle)&&(\\\"log\\\"!==o.type||\\\"D\\\"!==String(o.dtick).charAt(0))){var t=[];for(y.each(function(e){var r=n.select(this),i=r.select(\\\".text-math-group\\\"),a=o.l2p(e.x);i.empty()&&(i=r.select(\\\"text\\\"));var s=f.bBox(i.node());t.push({top:0,bottom:10,height:10,left:a-s.width/2,right:a+s.width/2+2,width:s.width+2})}),x=0;x<t.length-1;x++)if(s.bBoxIntersect(t[x],t[x+1])){A=30;break}A&&(Math.abs((T[T.length-1].x-T[0].x)*o._m)/(T.length-1)<2.5*w&&(A=90),L(y,A)),o._lastangle=A}return K(),b+\\\" done\\\"},z,function(){var e=o._name+\\\".automargin\\\";if(\\\"x\\\"===_||\\\"y\\\"===_)if(o.automargin){var r=o.side[0],n={x:0,y:0,r:0,l:0,t:0,b:0};\\\"x\\\"===_?(n.y=\\\"free\\\"===o.anchor?o.position:o._anchorAxis.domain[\\\"t\\\"===r?1:0],n[r]+=o._boundingBox.height):(n.x=\\\"free\\\"===o.anchor?o.position:o._anchorAxis.domain[\\\"r\\\"===r?1:0],n[r]+=o._boundingBox.width),o.title!==h._dfltTitle[_]&&(n[r]+=o.titlefont.size),a.autoMargin(t,e,n)}else a.autoMargin(t,e)}]);return D&&D.then&&t._promises.push(D),D}function K(){if(!(r||o.rangeslider&&o.rangeslider.visible&&o._boundingBox&&\\\"bottom\\\"===o.side)){var e,n,i,a,s={selection:y,side:o.side},l=b.charAt(0),u=t._fullLayout._size,p=o.titlefont.size;if(y.size()){var d=f.getTranslate(y.node().parentNode);s.offsetLeft=d.x,s.offsetTop=d.y}var g=10+1.5*p+(o.linewidth?o.linewidth-1:0);\\\"x\\\"===l?(n=\\\"free\\\"===o.anchor?{_offset:u.t+(1-(o.position||0))*u.h,_length:0}:S.getFromId(t,o.anchor),i=o._offset+o._length/2,a=\\\"top\\\"===o.side?-g-p*(o.showticklabels?1:0):n._length+g+p*(o.showticklabels?1.5:.5),a+=n._offset,s.side||(s.side=\\\"bottom\\\")):(n=\\\"free\\\"===o.anchor?{_offset:u.l+(o.position||0)*u.w,_length:0}:S.getFromId(t,o.anchor),a=o._offset+o._length/2,i=\\\"right\\\"===o.side?n._length+g+p*(o.showticklabels?1:.5):-g-p*(o.showticklabels?.5:0),i+=n._offset,e={rotate:\\\"-90\\\",offset:0},s.side||(s.side=\\\"left\\\")),c.draw(t,b+\\\"title\\\",{propContainer:o,propName:o._name+\\\".title\\\",placeholder:h._dfltTitle[l],avoid:s,transform:e,attributes:{x:i,y:a,\\\"text-anchor\\\":\\\"middle\\\"}})}}function Q(e,r){if(!h._hasOnlyLargeSploms){var i=e.gridlayer.selectAll(\\\".\\\"+b),a=e.zerolinelayer,s=o._gridpath||(\\\"x\\\"===_?\\\"M0,\\\"+r._offset+\\\"v\\\":\\\"M\\\"+r._offset+\\\",0h\\\")+r._length,l=i.selectAll(\\\"path.\\\"+L).data(!1===o.showgrid?[]:V,E);if(l.enter().append(\\\"path\\\").classed(L,1).classed(\\\"crisp\\\",1).attr(\\\"d\\\",s).each(function(t){o.zeroline&&(\\\"linear\\\"===o.type||\\\"-\\\"===o.type)&&Math.abs(t.x)<o.dtick/100&&n.select(this).remove()}),l.attr(\\\"transform\\\",g).call(u.stroke,o.gridcolor||\\\"#ddd\\\").style(\\\"stroke-width\\\",D+\\\"px\\\"),\\\"function\\\"==typeof s&&l.attr(\\\"d\\\",s),l.exit().remove(),a){var c={x:0,id:b},f=A.shouldShowZeroLine(t,o,r),p=a.selectAll(\\\"path.\\\"+z).data(f?[c]:[]);p.enter().append(\\\"path\\\").classed(z,1).classed(\\\"zl\\\",1).classed(\\\"crisp\\\",1).attr(\\\"d\\\",s).each(function(){a.selectAll(\\\"path\\\").sort(function(t,e){return S.idSort(t.id,e.id)})}),p.attr(\\\"transform\\\",g).call(u.stroke,o.zerolinecolor||u.defaultLine).style(\\\"stroke-width\\\",R+\\\"px\\\"),p.exit().remove()}}}},A.shouldShowZeroLine=function(t,e,r){var n=s.simpleMap(e.range,e.r2l);return n[0]*n[1]<=0&&e.zeroline&&(\\\"linear\\\"===e.type||\\\"-\\\"===e.type)&&e._valsClipped.length&&(W(e,0)||!function(t,e,r,n){var i=r._mainAxis;if(!i)return;var a=t._fullLayout,o=e._id.charAt(0),s=A.counterLetter(e._id),l=e._offset+(Math.abs(n[0])<Math.abs(n[1])==(\\\"x\\\"===o)?0:e._length);function c(t){if(!t.showline||!t.linewidth)return!1;var r=Math.max((t.linewidth+e.zerolinewidth)/2,1);function n(t){return\\\"number\\\"==typeof t&&Math.abs(t-l)<r}if(n(t._mainLinePosition)||n(t._mainMirrorPosition))return!0;var i=t._linepositions||{};for(var a in i)if(n(i[a][0])||n(i[a][1]))return!0}var u=a._plots[r._mainSubplot];if(!(u.mainplotinfo||u).overlays.length)return c(r);for(var f=A.list(t,s),h=0;h<f.length;h++){var p=f[h];if(p._mainAxis===i&&c(p))return!0}}(t,e,r,n)||function(t,e){for(var r=t._fullData,n=e._mainSubplot,i=e._id.charAt(0),a=0;a<r.length;a++){var s=r[a];if(!0===s.visible&&s.xaxis+s.yaxis===n&&(o.traceIs(s,\\\"bar\\\")&&s.orientation==={x:\\\"h\\\",y:\\\"v\\\"}[i]||s.fill&&s.fill.charAt(s.fill.length-1)===i))return!0}return!1}(t,e))},A.allowAutoMargin=function(t){for(var e=A.list(t,\\\"\\\",!0),r=0;r<e.length;r++){var n=e[r];n.automargin&&a.allowAutoMargin(t,n._name+\\\".automargin\\\"),n.rangeslider&&n.rangeslider.visible&&a.allowAutoMargin(t,\\\"rangeslider\\\"+n._id)}},A.swap=function(t,e){for(var r=function(t,e){var r,n,i=[];for(r=0;r<e.length;r++){var a=[],o=t._fullData[e[r]].xaxis,s=t._fullData[e[r]].yaxis;if(o&&s){for(n=0;n<i.length;n++)-1===i[n].x.indexOf(o)&&-1===i[n].y.indexOf(s)||a.push(n);if(a.length){var l,c=i[a[0]];if(a.length>1)for(n=1;n<a.length;n++)l=i[a[n]],Y(c.x,l.x),Y(c.y,l.y);Y(c.x,[o]),Y(c.y,[s])}else i.push({x:[o],y:[s]})}}return i}(t,e),n=0;n<r.length;n++)X(t,r[n].x,r[n].y)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../components/titles\\\":661,\\\"../../constants/alignment\\\":668,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"./autorange\\\":743,\\\"./axis_autotype\\\":745,\\\"./axis_ids\\\":747,\\\"./clean_ticks\\\":749,\\\"./layout_attributes\\\":757,\\\"./set_convert\\\":763,d3:148,\\\"fast-isnumeric\\\":214}],745:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e){return function(t,e){for(var r=Math.max(1,(t.length-1)/1e3),a=0,o=0,s={},l=0;l<t.length;l+=r){var c=t[Math.round(l)],u=String(c);s[u]||(s[u]=1,i.isDateTime(c,e)&&(a+=1),n(c)&&(o+=1))}return a>2*o}(t,e)?\\\"date\\\":function(t){for(var e=Math.max(1,(t.length-1)/1e3),r=0,n=0,o={},s=0;s<t.length;s+=e){var l=t[Math.round(s)],c=String(l);o[c]||(o[c]=1,\\\"boolean\\\"==typeof l?n++:i.cleanNumber(l)!==a?r++:\\\"string\\\"==typeof l&&n++)}return n>2*r}(t)?\\\"category\\\":function(t){if(!t)return!1;for(var e=0;e<t.length;e++)if(n(t[e]))return!0;return!1}(t)?\\\"linear\\\":\\\"-\\\"}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"fast-isnumeric\\\":214}],746:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"./layout_attributes\\\"),o=t(\\\"./tick_value_defaults\\\"),s=t(\\\"./tick_mark_defaults\\\"),l=t(\\\"./tick_label_defaults\\\"),c=t(\\\"./category_order_defaults\\\"),u=t(\\\"./line_grid_defaults\\\"),f=t(\\\"./set_convert\\\");e.exports=function(t,e,r,h,p){var d=h.letter,g=h.font||{},v=h.splomStash||{},m=r(\\\"visible\\\",!h.cheateronly),y=e.type;\\\"date\\\"===y&&n.getComponentMethod(\\\"calendars\\\",\\\"handleDefaults\\\")(t,e,\\\"calendar\\\",h.calendar);if(f(e,p),!r(\\\"autorange\\\",!e.isValidRange(t.range))||\\\"linear\\\"!==y&&\\\"-\\\"!==y||r(\\\"rangemode\\\"),r(\\\"range\\\"),e.cleanRange(),c(t,e,r,h),\\\"category\\\"===y||h.noHover||r(\\\"hoverformat\\\"),!m)return e;var x=r(\\\"color\\\"),b=x!==a.color.dflt?x:g.color;return r(\\\"title\\\",v.label||p._dfltTitle[d]),i.coerceFont(r,\\\"titlefont\\\",{family:g.family,size:Math.round(1.2*g.size),color:b}),o(t,e,r,y),l(t,e,r,y,h),s(t,e,r,h),u(t,e,r,{dfltColor:x,bgColor:h.bgColor,showGrid:h.showGrid,attributes:a}),(e.showline||e.ticks)&&r(\\\"mirror\\\"),h.automargin&&r(\\\"automargin\\\"),e}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./category_order_defaults\\\":748,\\\"./layout_attributes\\\":757,\\\"./line_grid_defaults\\\":759,\\\"./set_convert\\\":763,\\\"./tick_label_defaults\\\":764,\\\"./tick_mark_defaults\\\":765,\\\"./tick_value_defaults\\\":766}],747:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"./constants\\\");r.id2name=function(t){if(\\\"string\\\"==typeof t&&t.match(i.AX_ID_PATTERN)){var e=t.substr(1);return\\\"1\\\"===e&&(e=\\\"\\\"),t.charAt(0)+\\\"axis\\\"+e}},r.name2id=function(t){if(t.match(i.AX_NAME_PATTERN)){var e=t.substr(5);return\\\"1\\\"===e&&(e=\\\"\\\"),t.charAt(0)+e}},r.cleanId=function(t,e){if(t.match(i.AX_ID_PATTERN)&&(!e||t.charAt(0)===e)){var r=t.substr(1).replace(/^0+/,\\\"\\\");return\\\"1\\\"===r&&(r=\\\"\\\"),t.charAt(0)+r}},r.list=function(t,e,n){var i=t._fullLayout;if(!i)return[];var a,o=r.listIds(t,e),s=new Array(o.length);for(a=0;a<o.length;a++){var l=o[a];s[a]=i[l.charAt(0)+\\\"axis\\\"+l.substr(1)]}if(!n){var c=i._subplots.gl3d||[];for(a=0;a<c.length;a++){var u=i[c[a]];e?s.push(u[e+\\\"axis\\\"]):s.push(u.xaxis,u.yaxis,u.zaxis)}}return s},r.listIds=function(t,e){var r=t._fullLayout;if(!r)return[];var n=r._subplots;return e?n[e+\\\"axis\\\"]:n.xaxis.concat(n.yaxis)},r.getFromId=function(t,e,n){var i=t._fullLayout;return\\\"x\\\"===n?e=e.replace(/y[0-9]*/,\\\"\\\"):\\\"y\\\"===n&&(e=e.replace(/x[0-9]*/,\\\"\\\")),i[r.id2name(e)]},r.getFromTrace=function(t,e,i){var a=t._fullLayout,o=null;if(n.traceIs(e,\\\"gl3d\\\")){var s=e.scene;\\\"scene\\\"===s.substr(0,5)&&(o=a[s][i+\\\"axis\\\"])}else o=r.getFromId(t,e[i+\\\"axis\\\"]||i);return o},r.idSort=function(t,e){var r=t.charAt(0),n=e.charAt(0);return r!==n?r>n?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)}},{\\\"../../registry\\\":827,\\\"./constants\\\":750}],748:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){if(\\\"category\\\"===e.type){var i,a=t.categoryarray,o=Array.isArray(a)&&a.length>0;o&&(i=\\\"array\\\");var s,l=r(\\\"categoryorder\\\",i);\\\"array\\\"===l&&(s=r(\\\"categoryarray\\\")),o||\\\"array\\\"!==l||(l=e.categoryorder=\\\"trace\\\"),\\\"trace\\\"===l?e._initialCategories=[]:\\\"array\\\"===l?e._initialCategories=s.slice():(s=function(t,e){var r,n,i,a=e.dataAttr||t._id.charAt(0),o={};if(e.axData)r=e.axData;else for(r=[],n=0;n<e.data.length;n++){var s=e.data[n];s[a+\\\"axis\\\"]===t._id&&r.push(s)}for(n=0;n<r.length;n++){var l=r[n][a];for(i=0;i<l.length;i++){var c=l[i];null!=c&&(o[c]=1)}}return Object.keys(o)}(e,n).sort(),\\\"category ascending\\\"===l?e._initialCategories=s:\\\"category descending\\\"===l&&(e._initialCategories=s.reverse()))}}},{}],749:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").ONEDAY;r.dtick=function(t,e){var r=\\\"log\\\"===e,i=\\\"date\\\"===e,o=\\\"category\\\"===e,s=i?a:1;if(!t)return s;if(n(t))return(t=Number(t))<=0?s:o?Math.max(1,Math.round(t)):i?Math.max(.1,t):t;if(\\\"string\\\"!=typeof t||!i&&!r)return s;var l=t.charAt(0),c=t.substr(1);return(c=n(c)?Number(c):0)<=0||!(i&&\\\"M\\\"===l&&c===Math.round(c)||r&&\\\"L\\\"===l||r&&\\\"D\\\"===l&&(1===c||2===c))?s:t},r.tick0=function(t,e,r,a){return\\\"date\\\"===e?i.cleanDate(t,i.dateTick0(r)):\\\"D1\\\"!==a&&\\\"D2\\\"!==a?n(t)?Number(t):0:void 0}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"fast-isnumeric\\\":214}],750:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/regex\\\").counter;e.exports={idRegex:{x:n(\\\"x\\\"),y:n(\\\"y\\\")},attrRegex:n(\\\"[xy]axis\\\"),xAxisMatch:n(\\\"xaxis\\\"),yAxisMatch:n(\\\"yaxis\\\"),AX_ID_PATTERN:/^[xyz][0-9]*$/,AX_NAME_PATTERN:/^[xyz]axis[0-9]*$/,SUBPLOT_PATTERN:/^x([0-9]*)y([0-9]*)$/,MINDRAG:8,MINSELECT:12,MINZOOM:20,DRAGGERSIZE:20,BENDPX:1.5,REDRAWDELAY:50,SELECTDELAY:100,SELECTID:\\\"-select\\\",DFLTRANGEX:[-1,6],DFLTRANGEY:[-1,4],traceLayerClasses:[\\\"heatmaplayer\\\",\\\"contourcarpetlayer\\\",\\\"contourlayer\\\",\\\"barlayer\\\",\\\"carpetlayer\\\",\\\"violinlayer\\\",\\\"boxlayer\\\",\\\"ohlclayer\\\",\\\"scattercarpetlayer\\\",\\\"scatterlayer\\\"],layerValue2layerClass:{\\\"above traces\\\":\\\"above\\\",\\\"below traces\\\":\\\"below\\\"}}},{\\\"../../lib/regex\\\":712}],751:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./axis_ids\\\").id2name;e.exports=function(t,e,r,a,o){var s=o._axisConstraintGroups,l=e._id,c=l.charAt(0);if(!e.fixedrange&&(r(\\\"constrain\\\"),n.coerce(t,e,{constraintoward:{valType:\\\"enumerated\\\",values:\\\"x\\\"===c?[\\\"left\\\",\\\"center\\\",\\\"right\\\"]:[\\\"bottom\\\",\\\"middle\\\",\\\"top\\\"],dflt:\\\"x\\\"===c?\\\"center\\\":\\\"middle\\\"}},\\\"constraintoward\\\"),t.scaleanchor)){var u=function(t,e,r,n){var a,o,s,l,c=n[i(e)].type,u=[];for(o=0;o<r.length;o++)(s=r[o])!==e&&((l=n[i(s)]).type!==c||l.fixedrange||u.push(s));for(a=0;a<t.length;a++)if(t[a][e]){var f=t[a],h=[];for(o=0;o<u.length;o++)s=u[o],f[s]||h.push(s);return{linkableAxes:h,thisGroup:f}}return{linkableAxes:u,thisGroup:null}}(s,l,a,o),f=n.coerce(t,e,{scaleanchor:{valType:\\\"enumerated\\\",values:u.linkableAxes}},\\\"scaleanchor\\\");if(f){var h=r(\\\"scaleratio\\\");h||(h=e.scaleratio=1),function(t,e,r,n,i){var a,o,s,l,c;null===e?((e={})[r]=1,c=t.length,t.push(e)):c=t.indexOf(e);var u=Object.keys(e);for(a=0;a<t.length;a++)if(s=t[a],a!==c&&s[n]){var f=s[n];for(o=0;o<u.length;o++)l=u[o],s[l]=f*i*e[l];return void t.splice(c,1)}if(1!==i)for(o=0;o<u.length;o++)e[u[o]]*=i;e[n]=1}(s,u.thisGroup,l,f,h)}else-1!==a.indexOf(t.scaleanchor)&&n.warn(\\\"ignored \\\"+e._name+'.scaleanchor: \\\"'+t.scaleanchor+'\\\" to avoid either an infinite loop and possibly inconsistent scaleratios, or because the targetaxis has fixed range.')}}},{\\\"../../lib\\\":696,\\\"./axis_ids\\\":747}],752:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./axis_ids\\\").id2name,i=t(\\\"./scale_zoom\\\"),a=t(\\\"./autorange\\\").makePadFn,o=t(\\\"./autorange\\\").concatExtremes,s=t(\\\"../../constants/numerical\\\").ALMOST_EQUAL,l=t(\\\"../../constants/alignment\\\").FROM_BL;function c(t,e){var r=t._inputDomain,n=l[t.constraintoward],i=r[0]+(r[1]-r[0])*n;t.domain=t._input.domain=[i+(r[0]-i)/e,i+(r[1]-i)/e]}r.enforce=function(t){var e,r,l,u,f,h,p,d=t._fullLayout,g=d._axisConstraintGroups||[];for(e=0;e<g.length;e++){var v=g[e],m=Object.keys(v),y=1/0,x=0,b=1/0,_={},w={},k=!1;for(r=0;r<m.length;r++)w[l=m[r]]=u=d[n(l)],u._inputDomain?u.domain=u._inputDomain.slice():u._inputDomain=u.domain.slice(),u._inputRange||(u._inputRange=u.range.slice()),u.setScale(),_[l]=f=Math.abs(u._m)/v[l],y=Math.min(y,f),\\\"domain\\\"!==u.constrain&&u._constraintShrinkable||(b=Math.min(b,f)),delete u._constraintShrinkable,x=Math.max(x,f),\\\"domain\\\"===u.constrain&&(k=!0);if(!(y>s*x)||k)for(r=0;r<m.length;r++)if(f=_[l=m[r]],h=(u=w[l]).constrain,f!==b||\\\"domain\\\"===h)if(p=f/b,\\\"range\\\"===h)i(u,p);else{var M=u._inputDomain,A=(u.domain[1]-u.domain[0])/(M[1]-M[0]),T=(u.r2l(u.range[1])-u.r2l(u.range[0]))/(u.r2l(u._inputRange[1])-u.r2l(u._inputRange[0]));if((p/=A)*T<1){u.domain=u._input.domain=M.slice(),i(u,p);continue}if(T<1&&(u.range=u._input.range=u._inputRange.slice(),p*=T),u.autorange){var S=u.r2l(u.range[0]),E=u.r2l(u.range[1]),C=(S+E)/2,L=C,z=C,O=Math.abs(E-C),I=C-O*p*1.0001,P=C+O*p*1.0001,D=a(u);c(u,p),u.setScale();var R,B,F=Math.abs(u._m),N=o(t,u),j=N.min,V=N.max;for(B=0;B<j.length;B++)(R=j[B].val-D(j[B])/F)>I&&R<L&&(L=R);for(B=0;B<V.length;B++)(R=V[B].val+D(V[B])/F)<P&&R>z&&(z=R);p/=(z-L)/(2*O),L=u.l2r(L),z=u.l2r(z),u.range=u._input.range=S<E?[L,z]:[z,L]}c(u,p)}}},r.clean=function(t,e){if(e._inputDomain){for(var r=!1,n=e._id,i=t._fullLayout._axisConstraintGroups,a=0;a<i.length;a++)if(i[a][n]){r=!0;break}r&&\\\"domain\\\"===e.constrain||(e._input.domain=e.domain=e._inputDomain,delete e._inputDomain)}}},{\\\"../../constants/alignment\\\":668,\\\"../../constants/numerical\\\":673,\\\"./autorange\\\":743,\\\"./axis_ids\\\":747,\\\"./scale_zoom\\\":761}],753:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"has-passive-events\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../../components/color\\\"),u=t(\\\"../../components/drawing\\\"),f=t(\\\"../../components/fx\\\"),h=t(\\\"../../lib/setcursor\\\"),p=t(\\\"../../components/dragelement\\\"),d=t(\\\"../../constants/alignment\\\").FROM_TL,g=t(\\\"../../lib/clear_gl_canvases\\\"),v=t(\\\"../../plot_api/subroutines\\\").redrawReglTraces,m=t(\\\"../plots\\\"),y=t(\\\"./axes\\\").doTicksSingle,x=t(\\\"./axis_ids\\\").getFromId,b=t(\\\"./select\\\").prepSelect,_=t(\\\"./select\\\").clearSelect,w=t(\\\"./select\\\").selectOnClick,k=t(\\\"./scale_zoom\\\"),M=t(\\\"./constants\\\"),A=M.MINDRAG,T=M.MINZOOM,S=!0;function E(t,e,r,n){var i=s.ensureSingle(t.draglayer,e,r,function(e){e.classed(\\\"drag\\\",!0).style({fill:\\\"transparent\\\",\\\"stroke-width\\\":0}).attr(\\\"data-subplot\\\",t.id)});return i.call(h,n),i.node()}function C(t,e,r,i,a,o,s){var l=E(t,\\\"rect\\\",e,r);return n.select(l).call(u.setRect,i,a,o,s),l}function L(t,e){for(var r=0;r<t.length;r++)if(!t[r].fixedrange)return e;return\\\"\\\"}function z(t,e,r,n,i){var a,o,s,l;for(a=0;a<t.length;a++)(o=t[a]).fixedrange||(s=o._rl[0],l=o._rl[1]-s,o.range=[o.l2r(s+l*e),o.l2r(s+l*r)],n[o._name+\\\".range[0]\\\"]=o.range[0],n[o._name+\\\".range[1]\\\"]=o.range[1]);if(i&&i.length){var c=(e+(1-r))/2;z(i,c,1-c,n)}}function O(t,e){for(var r=0;r<t.length;r++){var n=t[r];n.fixedrange||(n.range=[n.l2r(n._rl[0]-e/n._m),n.l2r(n._rl[1]-e/n._m)])}}function I(t){return 1-(t>=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function P(t,e,r,n,i){return t.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox\\\").style({fill:e>.2?\\\"rgba(0,0,0,0)\\\":\\\"rgba(255,255,255,0)\\\",\\\"stroke-width\\\":0}).attr(\\\"transform\\\",\\\"translate(\\\"+r+\\\", \\\"+n+\\\")\\\").attr(\\\"d\\\",i+\\\"Z\\\")}function D(t,e,r){return t.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox-corners\\\").style({fill:c.background,stroke:c.defaultLine,\\\"stroke-width\\\":1,opacity:0}).attr(\\\"transform\\\",\\\"translate(\\\"+e+\\\", \\\"+r+\\\")\\\").attr(\\\"d\\\",\\\"M0,0Z\\\")}function R(t,e,r,n,i,a){t.attr(\\\"d\\\",n+\\\"M\\\"+r.l+\\\",\\\"+r.t+\\\"v\\\"+r.h+\\\"h\\\"+r.w+\\\"v-\\\"+r.h+\\\"h-\\\"+r.w+\\\"Z\\\"),B(t,e,i,a)}function B(t,e,r,n){r||(t.transition().style(\\\"fill\\\",n>.2?\\\"rgba(0,0,0,0.4)\\\":\\\"rgba(255,255,255,0.3)\\\").duration(200),e.transition().style(\\\"opacity\\\",1).duration(200))}function F(t){n.select(t).selectAll(\\\".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners\\\").remove()}function N(t){S&&t.data&&t._context.showTips&&(s.notifier(s._(t,\\\"Double-click to zoom back out\\\"),\\\"long\\\"),S=!1)}function j(t){return\\\"lasso\\\"===t||\\\"select\\\"===t}function V(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,T)/2);return\\\"M\\\"+(t.l-3.5)+\\\",\\\"+(t.t-.5+e)+\\\"h3v\\\"+-e+\\\"h\\\"+e+\\\"v-3h-\\\"+(e+3)+\\\"ZM\\\"+(t.r+3.5)+\\\",\\\"+(t.t-.5+e)+\\\"h-3v\\\"+-e+\\\"h\\\"+-e+\\\"v-3h\\\"+(e+3)+\\\"ZM\\\"+(t.r+3.5)+\\\",\\\"+(t.b+.5-e)+\\\"h-3v\\\"+e+\\\"h\\\"+-e+\\\"v3h\\\"+(e+3)+\\\"ZM\\\"+(t.l-3.5)+\\\",\\\"+(t.b+.5-e)+\\\"h3v\\\"+e+\\\"h\\\"+e+\\\"v3h-\\\"+(e+3)+\\\"Z\\\"}function U(t,e){if(a){var r=void 0!==t.onwheel?\\\"wheel\\\":\\\"mousewheel\\\";t._onwheel&&t.removeEventListener(r,t._onwheel),t._onwheel=e,t.addEventListener(r,e,{passive:!1})}else void 0!==t.onwheel?t.onwheel=e:void 0!==t.onmousewheel&&(t.onmousewheel=e)}function q(t){var e=[];for(var r in t)e.push(t[r]);return e}e.exports={makeDragBox:function(t,e,r,a,c,h,S,E){var B,H,G,W,Y,X,Z,$,J,K,Q,tt,et,rt,nt,it,at,ot,st,lt,ct,ut=t._fullLayout._zoomlayer,ft=S+E===\\\"nsew\\\",ht=1===(S+E).length;function pt(){if(B=e.xaxis,H=e.yaxis,J=B._length,K=H._length,Z=B._offset,$=H._offset,(G={})[B._id]=B,(W={})[H._id]=H,S&&E)for(var r=e.overlays,n=0;n<r.length;n++){var i=r[n].xaxis;G[i._id]=i;var a=r[n].yaxis;W[a._id]=a}Y=q(G),X=q(W),tt=L(Y,E),et=L(X,S),rt=!et&&!tt,Q=function(t,e,r){for(var n,i,a,o,l=t._fullLayout._axisConstraintGroups,c=!1,u={},f={},h=0;h<l.length;h++){var p=l[h];for(n in e)if(p[n]){for(a in p)(\\\"x\\\"===a.charAt(0)?e:r)[a]||(u[a]=1);for(i in r)p[i]&&(c=!0)}for(i in r)if(p[i])for(o in p)(\\\"x\\\"===o.charAt(0)?e:r)[o]||(f[o]=1)}c&&(s.extendFlat(u,f),f={});var d={},g=[];for(a in u){var v=x(t,a);g.push(v),d[v._id]=v}var m={},y=[];for(o in f){var b=x(t,o);y.push(b),m[b._id]=b}return{xaHash:d,yaHash:m,xaxes:g,yaxes:y,isSubplotConstrained:c}}(t,G,W),nt=Q.isSubplotConstrained,it=E||nt,at=S||nt;var o=t._fullLayout;ot=o._has(\\\"scattergl\\\"),st=o._has(\\\"splom\\\"),lt=o._has(\\\"svg\\\")}pt();var dt=function(t,e,r){return t?\\\"nsew\\\"===t?r?\\\"\\\":\\\"pan\\\"===e?\\\"move\\\":\\\"crosshair\\\":t.toLowerCase()+\\\"-resize\\\":\\\"pointer\\\"}(et+tt,t._fullLayout.dragmode,ft),gt=C(e,S+E+\\\"drag\\\",dt,r,a,c,h);if(rt&&!ft)return gt.onmousedown=null,gt.style.pointerEvents=\\\"none\\\",gt;var vt,mt,yt,xt,bt,_t,wt,kt,Mt,At,Tt={element:gt,gd:t,plotinfo:e};function St(){Tt.plotinfo.selection=!1,_(ut)}function Et(r,i){var a=t._fullLayout.clickmode;if(F(t),2!==r||ht||function(){if(!t._transitioningWithDuration){var e,r,n,i=t._context.doubleClick,a=(tt?Y:[]).concat(et?X:[]),s={};if(\\\"reset+autosize\\\"===i)for(i=\\\"autosize\\\",r=0;r<a.length;r++)if((e=a[r])._rangeInitial&&(e.range[0]!==e._rangeInitial[0]||e.range[1]!==e._rangeInitial[1])||!e._rangeInitial&&!e.autorange){i=\\\"reset\\\";break}if(\\\"autosize\\\"===i)for(r=0;r<a.length;r++)(e=a[r]).fixedrange||(s[e._name+\\\".autorange\\\"]=!0);else if(\\\"reset\\\"===i)for((tt||nt)&&(a=a.concat(Q.xaxes)),et&&!nt&&(a=a.concat(Q.yaxes)),nt&&(tt?et||(a=a.concat(X)):a=a.concat(Y)),r=0;r<a.length;r++)(e=a[r])._rangeInitial?(n=e._rangeInitial,s[e._name+\\\".range[0]\\\"]=n[0],s[e._name+\\\".range[1]\\\"]=n[1]):s[e._name+\\\".autorange\\\"]=!0;t.emit(\\\"plotly_doubleclick\\\",null),o.call(\\\"relayout\\\",t,s)}}(),ft)a.indexOf(\\\"select\\\")>-1&&w(i,t,Y,X,e.id,Tt),a.indexOf(\\\"event\\\")>-1&&f.click(t,i,e.id);else if(1===r&&ht){var s=S?H:B,c=\\\"s\\\"===S||\\\"w\\\"===E?0:1,u=s._name+\\\".range[\\\"+c+\\\"]\\\",h=function(t,e){var r,i=t.range[e],a=Math.abs(i-t.range[1-e]);return\\\"date\\\"===t.type?i:\\\"log\\\"===t.type?(r=Math.ceil(Math.max(0,-Math.log(a)/Math.LN10))+3,n.format(\\\".\\\"+r+\\\"g\\\")(Math.pow(10,i))):(r=Math.floor(Math.log(Math.abs(i))/Math.LN10)-Math.floor(Math.log(a)/Math.LN10)+4,n.format(\\\".\\\"+String(r)+\\\"g\\\")(i))}(s,c),p=\\\"left\\\",d=\\\"middle\\\";if(s.fixedrange)return;S?(d=\\\"n\\\"===S?\\\"top\\\":\\\"bottom\\\",\\\"right\\\"===s.side&&(p=\\\"right\\\")):\\\"e\\\"===E&&(p=\\\"right\\\"),t._context.showAxisRangeEntryBoxes&&n.select(gt).call(l.makeEditable,{gd:t,immediate:!0,background:t._fullLayout.paper_bgcolor,text:String(h),fill:s.tickfont?s.tickfont.color:\\\"#444\\\",horizontalAlign:p,verticalAlign:d}).on(\\\"edit\\\",function(e){var r=s.d2r(e);void 0!==r&&o.call(\\\"relayout\\\",t,u,r)})}}function Ct(e,r){if(t._transitioningWithDuration)return!1;var n=Math.max(0,Math.min(J,e+vt)),i=Math.max(0,Math.min(K,r+mt)),a=Math.abs(n-vt),o=Math.abs(i-mt);function s(){wt=\\\"\\\",yt.r=yt.l,yt.t=yt.b,Mt.attr(\\\"d\\\",\\\"M0,0Z\\\")}yt.l=Math.min(vt,n),yt.r=Math.max(vt,n),yt.t=Math.min(mt,i),yt.b=Math.max(mt,i),nt?a>T||o>T?(wt=\\\"xy\\\",a/J>o/K?(o=a*K/J,mt>i?yt.t=mt-o:yt.b=mt+o):(a=o*J/K,vt>n?yt.l=vt-a:yt.r=vt+a),Mt.attr(\\\"d\\\",V(yt))):s():!et||o<Math.min(Math.max(.6*a,A),T)?a<A||!tt?s():(yt.t=0,yt.b=K,wt=\\\"x\\\",Mt.attr(\\\"d\\\",function(t,e){return\\\"M\\\"+(t.l-.5)+\\\",\\\"+(e-T-.5)+\\\"h-3v\\\"+(2*T+1)+\\\"h3ZM\\\"+(t.r+.5)+\\\",\\\"+(e-T-.5)+\\\"h3v\\\"+(2*T+1)+\\\"h-3Z\\\"}(yt,mt))):!tt||a<Math.min(.6*o,T)?(yt.l=0,yt.r=J,wt=\\\"y\\\",Mt.attr(\\\"d\\\",function(t,e){return\\\"M\\\"+(e-T-.5)+\\\",\\\"+(t.t-.5)+\\\"v-3h\\\"+(2*T+1)+\\\"v3ZM\\\"+(e-T-.5)+\\\",\\\"+(t.b+.5)+\\\"v3h\\\"+(2*T+1)+\\\"v-3Z\\\"}(yt,vt))):(wt=\\\"xy\\\",Mt.attr(\\\"d\\\",V(yt))),yt.w=yt.r-yt.l,yt.h=yt.b-yt.t,wt&&(At=!0),t._dragged=At,R(kt,Mt,yt,bt,_t,xt),_t=!0}function Lt(){if(ct={},Math.min(yt.h,yt.w)<2*A)return F(t);\\\"xy\\\"!==wt&&\\\"x\\\"!==wt||z(Y,yt.l/J,yt.r/J,ct,Q.xaxes),\\\"xy\\\"!==wt&&\\\"y\\\"!==wt||z(X,(K-yt.b)/K,(K-yt.t)/K,ct,Q.yaxes),F(t),Nt(),N(t)}Tt.prepFn=function(e,r,n){var a=Tt.dragmode,o=t._fullLayout.dragmode;o!==a&&(Tt.dragmode=o),pt(),rt||(ft?e.shiftKey?\\\"pan\\\"===o?o=\\\"zoom\\\":j(o)||(o=\\\"pan\\\"):e.ctrlKey&&(o=\\\"pan\\\"):o=\\\"pan\\\"),Tt.minDrag=\\\"lasso\\\"===o?1:void 0,j(o)?(Tt.xaxes=Y,Tt.yaxes=X,b(e,r,n,Tt,o)):(Tt.clickFn=Et,j(a)&&St(),rt||(\\\"zoom\\\"===o?(Tt.moveFn=Ct,Tt.doneFn=Lt,Tt.minDrag=1,function(e,r,n){var a=gt.getBoundingClientRect();vt=r-a.left,mt=n-a.top,yt={l:vt,r:vt,w:0,t:mt,b:mt,h:0},xt=t._hmpixcount?t._hmlumcount/t._hmpixcount:i(t._fullLayout.plot_bgcolor).getLuminance(),_t=!1,wt=\\\"xy\\\",At=!1,kt=P(ut,xt,Z,$,bt=\\\"M0,0H\\\"+J+\\\"V\\\"+K+\\\"H0V0\\\"),Mt=D(ut,Z,$)}(0,r,n)):\\\"pan\\\"===o&&(Tt.moveFn=Bt,Tt.doneFn=Nt)))},p.init(Tt);var zt,Ot,It=[0,0,J,K],Pt=null,Dt=M.REDRAWDELAY,Rt=e.mainplot?t._fullLayout._plots[e.mainplot]:e;function Bt(e,r){if(!t._transitioningWithDuration){if(\\\"ew\\\"===tt||\\\"ns\\\"===et)return tt&&O(Y,e),et&&O(X,r),jt([tt?-e:0,et?-r:0,J,K]),void Ft(et,tt);if(nt&&tt&&et){var n=\\\"w\\\"===tt==(\\\"n\\\"===et)?1:-1,i=(e/J+n*r/K)/2;e=i*J,r=n*i*K}\\\"w\\\"===tt?e=l(Y,0,e):\\\"e\\\"===tt?e=l(Y,1,-e):tt||(e=0),\\\"n\\\"===et?r=l(X,1,r):\\\"s\\\"===et?r=l(X,0,-r):et||(r=0);var a=\\\"w\\\"===tt?e:0,o=\\\"n\\\"===et?r:0;if(nt){var s;if(!tt&&1===et.length){for(s=0;s<Y.length;s++)Y[s].range=Y[s]._r.slice(),k(Y[s],1-r/K);a=(e=r*J/K)/2}if(!et&&1===tt.length){for(s=0;s<X.length;s++)X[s].range=X[s]._r.slice(),k(X[s],1-e/J);o=(r=e*K/J)/2}}jt([a,o,J-e,K-r]),Ft(et,tt)}function l(t,e,r){for(var n,i,a=1-e,o=0;o<t.length;o++){var s=t[o];if(!s.fixedrange){n=s,i=s._rl[a]+(s._rl[e]-s._rl[a])/I(r/s._length);var l=s.l2r(i);!1!==l&&void 0!==l&&(s.range[e]=l)}}return n._length*(n._rl[e]-i)/(n._rl[e]-n._rl[a])}}function Ft(e,r){var n,i=[];function a(t){for(n=0;n<t.length;n++)t[n].fixedrange||i.push(t[n]._id)}for(it&&(a(Y),a(Q.xaxes)),at&&(a(X),a(Q.yaxes)),ct={},n=0;n<i.length;n++){var s=i[n];y(t,s,!0);var l=x(t,s);ct[l._name+\\\".range[0]\\\"]=l.range[0],ct[l._name+\\\".range[1]\\\"]=l.range[1]}function c(a,o,s){for(n=0;n<a.length;n++){var l=a[n];if((r&&-1!==i.indexOf(l.xref)||e&&-1!==i.indexOf(l.yref))&&(o(t,n),s))return}}c(t._fullLayout.annotations||[],o.getComponentMethod(\\\"annotations\\\",\\\"drawOne\\\")),c(t._fullLayout.shapes||[],o.getComponentMethod(\\\"shapes\\\",\\\"drawOne\\\")),c(t._fullLayout.images||[],o.getComponentMethod(\\\"images\\\",\\\"draw\\\"),!0)}function Nt(){jt([0,0,J,K]),s.syncOrAsync([m.previousPromises,function(){o.call(\\\"relayout\\\",t,ct)}],t)}function jt(e){var r,n,i,a,l=t._fullLayout,c=l._plots,f=l._subplots.cartesian;if(st&&o.subplotsRegistry.splom.drag(t),ot)for(r=0;r<f.length;r++)if(i=(n=c[f[r]]).xaxis,a=n.yaxis,n._scene){var h=s.simpleMap(i.range,i.r2l),p=s.simpleMap(a.range,a.r2l);n._scene.update({range:[h[0],p[0],h[1],p[1]]})}if((st||ot)&&(g(t),v(t)),lt){var d=e[2]/B._length,m=e[3]/H._length;for(r=0;r<f.length;r++){i=(n=c[f[r]]).xaxis,a=n.yaxis;var y,x,b,_,w=it&&!i.fixedrange&&G[i._id],k=at&&!a.fixedrange&&W[a._id];if(w?(y=d,b=E?e[0]:qt(i,y)):b=Ut(i,y=Vt(i,d,m)),k?(x=m,_=S?e[1]:qt(a,x)):_=Ut(a,x=Vt(a,d,m)),y||x){y||(y=1),x||(x=1);var M=i._offset-b/y,A=a._offset-_/x;n.clipRect.call(u.setTranslate,b,_).call(u.setScale,y,x),n.plot.call(u.setTranslate,M,A).call(u.setScale,1/y,1/x),y===zt&&x===Ot||(u.setPointGroupScale(n.zoomScalePts,y,x),u.setTextPointsScale(n.zoomScaleTxt,y,x)),u.hideOutsideRangePoints(n.clipOnAxisFalseTraces,n),zt=y,Ot=x}}}}function Vt(t,e,r){return t.fixedrange?0:it&&Q.xaHash[t._id]?e:at&&(nt?Q.xaHash:Q.yaHash)[t._id]?r:0}function Ut(t,e){return e?(t.range=t._r.slice(),k(t,e),qt(t,e)):0}function qt(t,e){return t._length*(1-e)*d[t.constraintoward||\\\"middle\\\"]}return S.length*E.length!=1&&U(gt,function(e){if(t._context.scrollZoom||t._fullLayout._enablescrollzoom){if(St(),t._transitioningWithDuration)return e.preventDefault(),void e.stopPropagation();var r=t.querySelector(\\\".plotly\\\");if(pt(),!(r.scrollHeight-r.clientHeight>10||r.scrollWidth-r.clientWidth>10)){clearTimeout(Pt);var n=-e.deltaY;if(isFinite(n)||(n=e.wheelDelta/10),isFinite(n)){var i,a=Math.exp(-Math.min(Math.max(n,-20),20)/200),o=Rt.draglayer.select(\\\".nsewdrag\\\").node().getBoundingClientRect(),l=(e.clientX-o.left)/o.width,c=(o.bottom-e.clientY)/o.height;if(it){for(E||(l=.5),i=0;i<Y.length;i++)u(Y[i],l,a);It[2]*=a,It[0]+=It[2]*l*(1/a-1)}if(at){for(S||(c=.5),i=0;i<X.length;i++)u(X[i],c,a);It[3]*=a,It[1]+=It[3]*(1-c)*(1/a-1)}jt(It),Ft(S,E),Pt=setTimeout(function(){It=[0,0,J,K],Nt()},Dt),e.preventDefault()}else s.log(\\\"Did not find wheel motion attributes: \\\",e)}}function u(t,e,r){if(!t.fixedrange){var n=s.simpleMap(t.range,t.r2l),i=n[0]+(n[1]-n[0])*e;t.range=n.map(function(e){return t.l2r(i+(e-i)*r)})}}}),gt},makeDragger:E,makeRectDragger:C,makeZoombox:P,makeCorners:D,updateZoombox:R,xyCorners:V,transitionZoombox:B,removeZoombox:F,showDoubleClickNotifier:N,attachWheelEventHandler:U}},{\\\"../../components/color\\\":570,\\\"../../components/dragelement\\\":592,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/clear_gl_canvases\\\":680,\\\"../../lib/setcursor\\\":716,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/subroutines\\\":735,\\\"../../registry\\\":827,\\\"../plots\\\":808,\\\"./axes\\\":744,\\\"./axis_ids\\\":747,\\\"./constants\\\":750,\\\"./scale_zoom\\\":761,\\\"./select\\\":762,d3:148,\\\"has-passive-events\\\":394,tinycolor2:514}],754:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/fx\\\"),a=t(\\\"../../components/dragelement\\\"),o=t(\\\"../../lib/setcursor\\\"),s=t(\\\"./dragbox\\\").makeDragBox,l=t(\\\"./constants\\\").DRAGGERSIZE;r.initInteractions=function(t){var e=t._fullLayout;if(t._context.staticPlot)n.select(t).selectAll(\\\".drag\\\").remove();else if(e._has(\\\"cartesian\\\")||e._has(\\\"splom\\\")){Object.keys(e._plots||{}).sort(function(t,r){if((e._plots[t].mainplot&&!0)===(e._plots[r].mainplot&&!0)){var n=t.split(\\\"y\\\"),i=r.split(\\\"y\\\");return n[0]===i[0]?Number(n[1]||1)-Number(i[1]||1):Number(n[0]||1)-Number(i[0]||1)}return e._plots[t].mainplot?1:-1}).forEach(function(r){var n=e._plots[r],o=n.xaxis,c=n.yaxis;if(!n.mainplot){var u=s(t,n,o._offset,c._offset,o._length,c._length,\\\"ns\\\",\\\"ew\\\");u.onmousemove=function(e){t._fullLayout._rehover=function(){t._fullLayout._hoversubplot===r&&i.hover(t,e,r)},i.hover(t,e,r),t._fullLayout._lasthover=u,t._fullLayout._hoversubplot=r},u.onmouseout=function(e){t._dragging||(t._fullLayout._hoversubplot=null,a.unhover(t,e))},t._context.showAxisDragHandles&&(s(t,n,o._offset-l,c._offset-l,l,l,\\\"n\\\",\\\"w\\\"),s(t,n,o._offset+o._length,c._offset-l,l,l,\\\"n\\\",\\\"e\\\"),s(t,n,o._offset-l,c._offset+c._length,l,l,\\\"s\\\",\\\"w\\\"),s(t,n,o._offset+o._length,c._offset+c._length,l,l,\\\"s\\\",\\\"e\\\"))}if(t._context.showAxisDragHandles){if(r===o._mainSubplot){var f=o._mainLinePosition;\\\"top\\\"===o.side&&(f-=l),s(t,n,o._offset+.1*o._length,f,.8*o._length,l,\\\"\\\",\\\"ew\\\"),s(t,n,o._offset,f,.1*o._length,l,\\\"\\\",\\\"w\\\"),s(t,n,o._offset+.9*o._length,f,.1*o._length,l,\\\"\\\",\\\"e\\\")}if(r===c._mainSubplot){var h=c._mainLinePosition;\\\"right\\\"!==c.side&&(h-=l),s(t,n,h,c._offset+.1*c._length,l,.8*c._length,\\\"ns\\\",\\\"\\\"),s(t,n,h,c._offset+.9*c._length,l,.1*c._length,\\\"s\\\",\\\"\\\"),s(t,n,h,c._offset,l,.1*c._length,\\\"n\\\",\\\"\\\")}}});var o=e._hoverlayer.node();o.onmousemove=function(r){r.target=t._fullLayout._lasthover,i.hover(t,r,e._hoversubplot)},o.onclick=function(e){e.target=t._fullLayout._lasthover,i.click(t,e)},o.onmousedown=function(e){t._fullLayout._lasthover.onmousedown(e)},r.updateFx(t)}},r.updateFx=function(t){var e=t._fullLayout,r=\\\"pan\\\"===e.dragmode?\\\"move\\\":\\\"crosshair\\\";o(e._draggers,r)}},{\\\"../../components/dragelement\\\":592,\\\"../../components/fx\\\":612,\\\"../../lib/setcursor\\\":716,\\\"./constants\\\":750,\\\"./dragbox\\\":753,d3:148}],755:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\");e.exports=function(t){return function(e,r){var a=e[t];if(Array.isArray(a))for(var o=n.subplotsRegistry.cartesian,s=o.idRegex,l=r._subplots,c=l.xaxis,u=l.yaxis,f=l.cartesian,h=r._has(\\\"cartesian\\\")||r._has(\\\"gl2d\\\"),p=0;p<a.length;p++){var d=a[p];if(i.isPlainObject(d)){var g=d.xref,v=d.yref,m=s.x.test(g),y=s.y.test(v);if(m||y){h||i.pushUnique(r._basePlotModules,o);var x=!1;m&&-1===c.indexOf(g)&&(c.push(g),x=!0),y&&-1===u.indexOf(v)&&(u.push(v),x=!0),x&&m&&y&&f.push(g+v)}}}}}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827}],756:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../plots\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"../get_data\\\").getModuleCalcData,c=t(\\\"./axis_ids\\\"),u=t(\\\"./constants\\\"),f=t(\\\"../../constants/xmlns_namespaces\\\"),h=a.ensureSingle;function p(t,e,r){return a.ensureSingle(t,e,r,function(t){t.datum(r)})}function d(t,e,r,a,o){for(var c,f,h,p=u.traceLayerClasses,d=t._fullLayout,g=d._modules,v=[],m=[],y=0;y<g.length;y++){var x=(c=g[y]).name,b=i.modules[x].categories;if(b.svg){var _=c.layerName||x+\\\"layer\\\",w=c.plot;h=(f=l(r,w))[0],r=f[1],h.length&&v.push({i:p.indexOf(_),className:_,plotMethod:w,cdModule:h}),b.zoomScale&&m.push(\\\".\\\"+_)}}v.sort(function(t,e){return t.i-e.i});var k=e.plot.selectAll(\\\"g.mlayer\\\").data(v,function(t){return t.className});if(k.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return t.className}).classed(\\\"mlayer\\\",!0),k.exit().remove(),k.order(),k.each(function(r){var i=n.select(this),l=r.className;r.plotMethod(t,e,r.cdModule,i,a,o),\\\"scatterlayer\\\"!==l&&\\\"barlayer\\\"!==l&&s.setClipUrl(i,e.layerClipId)}),d._has(\\\"scattergl\\\")&&(c=i.getModule(\\\"scattergl\\\"),h=l(r,c)[0],c.plot(t,e,h)),!t._context.staticPlot&&(e._hasClipOnAxisFalse&&(e.clipOnAxisFalseTraces=e.plot.selectAll(\\\".scatterlayer, .barlayer\\\").selectAll(\\\".trace\\\")),m.length)){var M=e.plot.selectAll(m.join(\\\",\\\")).selectAll(\\\".trace\\\");e.zoomScalePts=M.selectAll(\\\"path.point\\\"),e.zoomScaleTxt=M.selectAll(\\\".textpoint\\\")}}function g(t,e){var r=e.plotgroup,n=e.id,i=u.layerValue2layerClass[e.xaxis.layer],a=u.layerValue2layerClass[e.yaxis.layer],o=t._fullLayout._hasOnlyLargeSploms;if(e.mainplot){var s=e.mainplotinfo,l=s.plotgroup,f=n+\\\"-x\\\",d=n+\\\"-y\\\";e.gridlayer=s.gridlayer,e.zerolinelayer=s.zerolinelayer,h(s.overlinesBelow,\\\"path\\\",f),h(s.overlinesBelow,\\\"path\\\",d),h(s.overaxesBelow,\\\"g\\\",f),h(s.overaxesBelow,\\\"g\\\",d),e.plot=h(s.overplot,\\\"g\\\",n),h(s.overlinesAbove,\\\"path\\\",f),h(s.overlinesAbove,\\\"path\\\",d),h(s.overaxesAbove,\\\"g\\\",f),h(s.overaxesAbove,\\\"g\\\",d),e.xlines=l.select(\\\".overlines-\\\"+i).select(\\\".\\\"+f),e.ylines=l.select(\\\".overlines-\\\"+a).select(\\\".\\\"+d),e.xaxislayer=l.select(\\\".overaxes-\\\"+i).select(\\\".\\\"+f),e.yaxislayer=l.select(\\\".overaxes-\\\"+a).select(\\\".\\\"+d)}else if(o)e.xlines=h(r,\\\"path\\\",\\\"xlines-above\\\"),e.ylines=h(r,\\\"path\\\",\\\"ylines-above\\\"),e.xaxislayer=h(r,\\\"g\\\",\\\"xaxislayer-above\\\"),e.yaxislayer=h(r,\\\"g\\\",\\\"yaxislayer-above\\\");else{var g=h(r,\\\"g\\\",\\\"layer-subplot\\\");e.shapelayer=h(g,\\\"g\\\",\\\"shapelayer\\\"),e.imagelayer=h(g,\\\"g\\\",\\\"imagelayer\\\"),e.gridlayer=h(r,\\\"g\\\",\\\"gridlayer\\\"),e.zerolinelayer=h(r,\\\"g\\\",\\\"zerolinelayer\\\"),h(r,\\\"path\\\",\\\"xlines-below\\\"),h(r,\\\"path\\\",\\\"ylines-below\\\"),e.overlinesBelow=h(r,\\\"g\\\",\\\"overlines-below\\\"),h(r,\\\"g\\\",\\\"xaxislayer-below\\\"),h(r,\\\"g\\\",\\\"yaxislayer-below\\\"),e.overaxesBelow=h(r,\\\"g\\\",\\\"overaxes-below\\\"),e.plot=h(r,\\\"g\\\",\\\"plot\\\"),e.overplot=h(r,\\\"g\\\",\\\"overplot\\\"),e.xlines=h(r,\\\"path\\\",\\\"xlines-above\\\"),e.ylines=h(r,\\\"path\\\",\\\"ylines-above\\\"),e.overlinesAbove=h(r,\\\"g\\\",\\\"overlines-above\\\"),h(r,\\\"g\\\",\\\"xaxislayer-above\\\"),h(r,\\\"g\\\",\\\"yaxislayer-above\\\"),e.overaxesAbove=h(r,\\\"g\\\",\\\"overaxes-above\\\"),e.xlines=r.select(\\\".xlines-\\\"+i),e.ylines=r.select(\\\".ylines-\\\"+a),e.xaxislayer=r.select(\\\".xaxislayer-\\\"+i),e.yaxislayer=r.select(\\\".yaxislayer-\\\"+a)}o||(p(e.gridlayer,\\\"g\\\",e.xaxis._id),p(e.gridlayer,\\\"g\\\",e.yaxis._id),e.gridlayer.selectAll(\\\"g\\\").map(function(t){return t[0]}).sort(c.idSort)),e.xlines.style(\\\"fill\\\",\\\"none\\\").classed(\\\"crisp\\\",!0),e.ylines.style(\\\"fill\\\",\\\"none\\\").classed(\\\"crisp\\\",!0)}function v(t,e){if(t){var r={};for(var i in t.each(function(t){var i=t[0];n.select(this).remove(),m(i,e),r[i]=!0}),e._plots)for(var a=e._plots[i].overlays||[],o=0;o<a.length;o++){var s=a[o];r[s.id]&&s.plot.selectAll(\\\".trace\\\").remove()}}}function m(t,e){e._draggers.selectAll(\\\"g.\\\"+t).remove(),e._defs.select(\\\"#clip\\\"+e._uid+t+\\\"plot\\\").remove()}r.name=\\\"cartesian\\\",r.attr=[\\\"xaxis\\\",\\\"yaxis\\\"],r.idRoot=[\\\"x\\\",\\\"y\\\"],r.idRegex=u.idRegex,r.attrRegex=u.attrRegex,r.attributes=t(\\\"./attributes\\\"),r.layoutAttributes=t(\\\"./layout_attributes\\\"),r.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),r.transitionAxes=t(\\\"./transition_axes\\\"),r.finalizeSubplots=function(t,e){var r,n,i,o=e._subplots,s=o.xaxis,l=o.yaxis,f=o.cartesian,h=f.concat(o.gl2d||[]),p={},d={};for(r=0;r<h.length;r++){var g=h[r].split(\\\"y\\\");p[g[0]]=1,d[\\\"y\\\"+g[1]]=1}for(r=0;r<s.length;r++)p[n=s[r]]||(i=(t[c.id2name(n)]||{}).anchor,u.idRegex.y.test(i)||(i=\\\"y\\\"),f.push(n+i),h.push(n+i),d[i]||(d[i]=1,a.pushUnique(l,i)));for(r=0;r<l.length;r++)d[i=l[r]]||(n=(t[c.id2name(i)]||{}).anchor,u.idRegex.x.test(n)||(n=\\\"x\\\"),f.push(n+i),h.push(n+i),p[n]||(p[n]=1,a.pushUnique(s,n)));if(!h.length){for(var v in n=\\\"\\\",i=\\\"\\\",t){if(u.attrRegex.test(v))\\\"x\\\"===v.charAt(0)?(!n||+v.substr(5)<+n.substr(5))&&(n=v):(!i||+v.substr(5)<+i.substr(5))&&(i=v)}n=n?c.name2id(n):\\\"x\\\",i=i?c.name2id(i):\\\"y\\\",s.push(n),l.push(i),f.push(n+i)}},r.plot=function(t,e,r,n){var i,a=t._fullLayout,o=a._subplots.cartesian,s=t.calcdata;if(null!==e){if(!Array.isArray(e))for(e=[],i=0;i<s.length;i++)e.push(i);for(i=0;i<o.length;i++){for(var l,c=o[i],u=a._plots[c],f=[],h=0;h<s.length;h++){var p=s[h],g=p[0].trace;g.xaxis+g.yaxis===c&&((-1!==e.indexOf(g.index)||g.carpet)&&(l&&l[0].trace.xaxis+l[0].trace.yaxis===c&&-1!==[\\\"tonextx\\\",\\\"tonexty\\\",\\\"tonext\\\"].indexOf(g.fill)&&-1===f.indexOf(l)&&f.push(l),f.push(p)),l=p)}d(t,u,f,r,n)}}},r.clean=function(t,e,r,n){var i,a,o,s=n._plots||{},l=e._plots||{},u=n._subplots||{};if(n._hasOnlyLargeSploms&&!e._hasOnlyLargeSploms)for(o in s)(i=s[o]).plotgroup&&i.plotgroup.remove();var f=n._has&&n._has(\\\"gl\\\"),h=e._has&&e._has(\\\"gl\\\");if(f&&!h)for(o in s)(i=s[o])._scene&&i._scene.destroy();if(u.xaxis&&u.yaxis){var p=c.listIds({_fullLayout:n});for(a=0;a<p.length;a++){var d=p[a];e[c.id2name(d)]||n._infolayer.selectAll(\\\".g-\\\"+d+\\\"title\\\").remove()}}var g=n._has&&n._has(\\\"cartesian\\\"),y=e._has&&e._has(\\\"cartesian\\\");if(g&&!y)v(n._cartesianlayer.selectAll(\\\".subplot\\\"),n),n._defs.selectAll(\\\".axesclip\\\").remove(),delete n._axisConstraintGroups;else if(u.cartesian)for(a=0;a<u.cartesian.length;a++){var x=u.cartesian[a];if(!l[x]){var b=\\\".\\\"+x+\\\",.\\\"+x+\\\"-x,.\\\"+x+\\\"-y\\\";n._cartesianlayer.selectAll(b).remove(),m(x,n)}}},r.drawFramework=function(t){var e=t._fullLayout,r=function(t){var e,r,n,i,a,o,s=t._fullLayout,l=s._subplots.cartesian,c=l.length,u=[],f=[];for(e=0;e<c;e++){n=l[e],i=s._plots[n],a=i.xaxis,o=i.yaxis;var h=a._mainAxis,p=o._mainAxis,d=h._id+p._id,g=s._plots[d];i.overlays=[],d!==n&&g?(i.mainplot=d,i.mainplotinfo=g,f.push(n)):(i.mainplot=void 0,i.mainPlotinfo=void 0,u.push(n))}for(e=0;e<f.length;e++)n=f[e],(i=s._plots[n]).mainplotinfo.overlays.push(i);var v=u.concat(f),m=new Array(c);for(e=0;e<c;e++){n=v[e],i=s._plots[n],a=i.xaxis,o=i.yaxis;var y=[n,a.layer,o.layer,a.overlaying||\\\"\\\",o.overlaying||\\\"\\\"];for(r=0;r<i.overlays.length;r++)y.push(i.overlays[r].id);m[e]=y}return m}(t),i=e._cartesianlayer.selectAll(\\\".subplot\\\").data(r,String);i.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"subplot \\\"+t[0]}),i.order(),i.exit().call(v,e),i.each(function(r){var i=r[0],a=e._plots[i];a.plotgroup=n.select(this),g(t,a),a.draglayer=h(e._draggers,\\\"g\\\",i)})},r.rangePlot=function(t,e,r){g(t,e),d(t,e,r),o.style(t)},r.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(\\\".svg-container\\\");r.filter(function(t,e){return e===r.size()-1}).selectAll(\\\".gl-canvas-context, .gl-canvas-focus\\\").each(function(){var t=this.toDataURL(\\\"image/png\\\");e.append(\\\"svg:image\\\").attr({xmlns:f.svg,\\\"xlink:href\\\":t,preserveAspectRatio:\\\"none\\\",x:0,y:0,width:this.width,height:this.height})})},r.updateFx=t(\\\"./graph_interact\\\").updateFx},{\\\"../../components/drawing\\\":595,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../get_data\\\":781,\\\"../plots\\\":808,\\\"./attributes\\\":742,\\\"./axis_ids\\\":747,\\\"./constants\\\":750,\\\"./graph_interact\\\":754,\\\"./layout_attributes\\\":757,\\\"./layout_defaults\\\":758,\\\"./transition_axes\\\":767,d3:148}],757:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../font_attributes\\\"),i=t(\\\"../../components/color/attributes\\\"),a=t(\\\"../../components/drawing/attributes\\\").dash,o=t(\\\"../../lib/extend\\\").extendFlat,s=t(\\\"../../plot_api/plot_template\\\").templatedArray,l=t(\\\"./constants\\\");e.exports={visible:{valType:\\\"boolean\\\",editType:\\\"plot\\\"},color:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"ticks\\\"},title:{valType:\\\"string\\\",editType:\\\"ticks\\\"},titlefont:n({editType:\\\"ticks\\\"}),type:{valType:\\\"enumerated\\\",values:[\\\"-\\\",\\\"linear\\\",\\\"log\\\",\\\"date\\\",\\\"category\\\"],dflt:\\\"-\\\",editType:\\\"calc\\\",_noTemplating:!0},autorange:{valType:\\\"enumerated\\\",values:[!0,!1,\\\"reversed\\\"],dflt:!0,editType:\\\"axrange\\\",impliedEdits:{\\\"range[0]\\\":void 0,\\\"range[1]\\\":void 0}},rangemode:{valType:\\\"enumerated\\\",values:[\\\"normal\\\",\\\"tozero\\\",\\\"nonnegative\\\"],dflt:\\\"normal\\\",editType:\\\"plot\\\"},range:{valType:\\\"info_array\\\",items:[{valType:\\\"any\\\",editType:\\\"axrange\\\",impliedEdits:{\\\"^autorange\\\":!1}},{valType:\\\"any\\\",editType:\\\"axrange\\\",impliedEdits:{\\\"^autorange\\\":!1}}],editType:\\\"axrange\\\",impliedEdits:{autorange:!1}},fixedrange:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},scaleanchor:{valType:\\\"enumerated\\\",values:[l.idRegex.x.toString(),l.idRegex.y.toString()],editType:\\\"plot\\\"},scaleratio:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"plot\\\"},constrain:{valType:\\\"enumerated\\\",values:[\\\"range\\\",\\\"domain\\\"],dflt:\\\"range\\\",editType:\\\"plot\\\"},constraintoward:{valType:\\\"enumerated\\\",values:[\\\"left\\\",\\\"center\\\",\\\"right\\\",\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],editType:\\\"plot\\\"},tickmode:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"linear\\\",\\\"array\\\"],editType:\\\"ticks\\\",impliedEdits:{tick0:void 0,dtick:void 0}},nticks:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"ticks\\\"},tick0:{valType:\\\"any\\\",editType:\\\"ticks\\\",impliedEdits:{tickmode:\\\"linear\\\"}},dtick:{valType:\\\"any\\\",editType:\\\"ticks\\\",impliedEdits:{tickmode:\\\"linear\\\"}},tickvals:{valType:\\\"data_array\\\",editType:\\\"ticks\\\"},ticktext:{valType:\\\"data_array\\\",editType:\\\"ticks\\\"},ticks:{valType:\\\"enumerated\\\",values:[\\\"outside\\\",\\\"inside\\\",\\\"\\\"],editType:\\\"ticks\\\"},mirror:{valType:\\\"enumerated\\\",values:[!0,\\\"ticks\\\",!1,\\\"all\\\",\\\"allticks\\\"],dflt:!1,editType:\\\"ticks+layoutstyle\\\"},ticklen:{valType:\\\"number\\\",min:0,dflt:5,editType:\\\"ticks\\\"},tickwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"ticks\\\"},tickcolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"ticks\\\"},showticklabels:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"ticks\\\"},automargin:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"ticks\\\"},showspikes:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"modebar\\\"},spikecolor:{valType:\\\"color\\\",dflt:null,editType:\\\"none\\\"},spikethickness:{valType:\\\"number\\\",dflt:3,editType:\\\"none\\\"},spikedash:o({},a,{dflt:\\\"dash\\\",editType:\\\"none\\\"}),spikemode:{valType:\\\"flaglist\\\",flags:[\\\"toaxis\\\",\\\"across\\\",\\\"marker\\\"],dflt:\\\"toaxis\\\",editType:\\\"none\\\"},spikesnap:{valType:\\\"enumerated\\\",values:[\\\"data\\\",\\\"cursor\\\"],dflt:\\\"data\\\",editType:\\\"none\\\"},tickfont:n({editType:\\\"ticks\\\"}),tickangle:{valType:\\\"angle\\\",dflt:\\\"auto\\\",editType:\\\"ticks\\\"},tickprefix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"ticks\\\"},showtickprefix:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"ticks\\\"},ticksuffix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"ticks\\\"},showticksuffix:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"ticks\\\"},showexponent:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"ticks\\\"},exponentformat:{valType:\\\"enumerated\\\",values:[\\\"none\\\",\\\"e\\\",\\\"E\\\",\\\"power\\\",\\\"SI\\\",\\\"B\\\"],dflt:\\\"B\\\",editType:\\\"ticks\\\"},separatethousands:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"ticks\\\"},tickformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"ticks\\\"},tickformatstops:s(\\\"tickformatstop\\\",{enabled:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"ticks\\\"},dtickrange:{valType:\\\"info_array\\\",items:[{valType:\\\"any\\\",editType:\\\"ticks\\\"},{valType:\\\"any\\\",editType:\\\"ticks\\\"}],editType:\\\"ticks\\\"},value:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"ticks\\\"},editType:\\\"ticks\\\"}),hoverformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"none\\\"},showline:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"ticks+layoutstyle\\\"},linecolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"layoutstyle\\\"},linewidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"ticks+layoutstyle\\\"},showgrid:{valType:\\\"boolean\\\",editType:\\\"ticks\\\"},gridcolor:{valType:\\\"color\\\",dflt:i.lightLine,editType:\\\"ticks\\\"},gridwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"ticks\\\"},zeroline:{valType:\\\"boolean\\\",editType:\\\"ticks\\\"},zerolinecolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"ticks\\\"},zerolinewidth:{valType:\\\"number\\\",dflt:1,editType:\\\"ticks\\\"},anchor:{valType:\\\"enumerated\\\",values:[\\\"free\\\",l.idRegex.x.toString(),l.idRegex.y.toString()],editType:\\\"plot\\\"},side:{valType:\\\"enumerated\\\",values:[\\\"top\\\",\\\"bottom\\\",\\\"left\\\",\\\"right\\\"],editType:\\\"plot\\\"},overlaying:{valType:\\\"enumerated\\\",values:[\\\"free\\\",l.idRegex.x.toString(),l.idRegex.y.toString()],editType:\\\"plot\\\"},layer:{valType:\\\"enumerated\\\",values:[\\\"above traces\\\",\\\"below traces\\\"],dflt:\\\"above traces\\\",editType:\\\"plot\\\"},domain:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\",min:0,max:1,editType:\\\"plot\\\"},{valType:\\\"number\\\",min:0,max:1,editType:\\\"plot\\\"}],dflt:[0,1],editType:\\\"plot\\\"},position:{valType:\\\"number\\\",min:0,max:1,dflt:0,editType:\\\"plot\\\"},categoryorder:{valType:\\\"enumerated\\\",values:[\\\"trace\\\",\\\"category ascending\\\",\\\"category descending\\\",\\\"array\\\"],dflt:\\\"trace\\\",editType:\\\"calc\\\"},categoryarray:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\",_deprecated:{autotick:{valType:\\\"boolean\\\",editType:\\\"ticks\\\"}}}},{\\\"../../components/color/attributes\\\":569,\\\"../../components/drawing/attributes\\\":594,\\\"../../lib/extend\\\":685,\\\"../../plot_api/plot_template\\\":734,\\\"../font_attributes\\\":771,\\\"./constants\\\":750}],758:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../plot_api/plot_template\\\"),o=t(\\\"../layout_attributes\\\"),s=t(\\\"./layout_attributes\\\"),l=t(\\\"./type_defaults\\\"),c=t(\\\"./axis_defaults\\\"),u=t(\\\"./constraint_defaults\\\"),f=t(\\\"./position_defaults\\\"),h=t(\\\"./axis_ids\\\"),p=h.id2name,d=h.name2id,g=t(\\\"../../registry\\\"),v=g.traceIs,m=g.getComponentMethod;function y(t,e,r){Array.isArray(t[e])?t[e].push(r):t[e]=[r]}e.exports=function(t,e,r){var h,g,x={},b={},_={},w={},k={};for(h=0;h<r.length;h++){var M=r[h];if(v(M,\\\"cartesian\\\")||v(M,\\\"gl2d\\\")){var A,T;if(M.xaxis)y(x,A=p(M.xaxis),M);else if(M.xaxes)for(g=0;g<M.xaxes.length;g++)y(x,p(M.xaxes[g]),M);if(M.yaxis)y(x,T=p(M.yaxis),M);else if(M.yaxes)for(g=0;g<M.yaxes.length;g++)y(x,p(M.yaxes[g]),M);if(v(M,\\\"carpet\\\")&&(\\\"carpet\\\"!==M.type||M._cheater)||A&&(_[A]=1),\\\"carpet\\\"===M.type&&M._cheater&&A&&(b[A]=1),v(M,\\\"2dMap\\\")&&(w[A]=1,w[T]=1),v(M,\\\"oriented\\\"))k[\\\"h\\\"===M.orientation?T:A]=1}}var S=e._subplots,E=S.xaxis,C=S.yaxis,L=n.simpleMap(E,p),z=n.simpleMap(C,p),O=L.concat(z),I=i.background;E.length&&C.length&&(I=n.coerce(t,e,o,\\\"plot_bgcolor\\\"));var P,D,R,B,F=i.combine(I,e.paper_bgcolor);function N(t,e){return n.coerce(R,B,s,t,e)}function j(t,e){return n.coerce2(R,B,s,t,e)}function V(t){return\\\"x\\\"===t?C:E}var U={x:V(\\\"x\\\"),y:V(\\\"y\\\")};function q(e,r){for(var n=\\\"x\\\"===e?L:z,i=[],a=0;a<n.length;a++){var o=n[a];o===r||(t[o]||{}).overlaying||i.push(d(o))}return i}for(h=0;h<O.length;h++){D=(P=O[h]).charAt(0),n.isPlainObject(t[P])||(t[P]={}),R=t[P],B=a.newContainer(e,P,D+\\\"axis\\\");var H=x[P]||[];B._traceIndices=H.map(function(t){return t._expandedIndex}),B._annIndices=[],B._shapeIndices=[],B._name=P;var G=B._id=d(P),W=q(D,P),Y={letter:D,font:e.font,outerTicks:w[P],showGrid:!k[P],data:H,bgColor:F,calendar:e.calendar,automargin:!0,cheateronly:\\\"x\\\"===D&&b[P]&&!_[P],splomStash:((e._splomAxes||{})[D]||{})[G]};l(R,B,N,Y),c(R,B,N,Y,e);var X=j(\\\"spikecolor\\\"),Z=j(\\\"spikethickness\\\"),$=j(\\\"spikedash\\\"),J=j(\\\"spikemode\\\"),K=j(\\\"spikesnap\\\");N(\\\"showspikes\\\",!!(X||Z||$||J||K))||(delete B.spikecolor,delete B.spikethickness,delete B.spikedash,delete B.spikemode,delete B.spikesnap);var Q={letter:D,counterAxes:U[D],overlayableAxes:W,grid:e.grid};f(R,B,N,Q),B._input=R}var tt=m(\\\"rangeslider\\\",\\\"handleDefaults\\\"),et=m(\\\"rangeselector\\\",\\\"handleDefaults\\\");for(h=0;h<L.length;h++)P=L[h],R=t[P],B=e[P],tt(t,e,P),\\\"date\\\"===B.type&&et(R,B,e,z,B.calendar),N(\\\"fixedrange\\\");for(h=0;h<z.length;h++){P=z[h],R=t[P],B=e[P];var rt=e[p(B.anchor)];N(\\\"fixedrange\\\",rt&&rt.rangeslider&&rt.rangeslider.visible)}e._axisConstraintGroups=[];var nt=U.x.concat(U.y);for(h=0;h<O.length;h++)D=(P=O[h]).charAt(0),R=t[P],B=e[P],u(R,B,N,nt,e)}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../registry\\\":827,\\\"../layout_attributes\\\":799,\\\"./axis_defaults\\\":746,\\\"./axis_ids\\\":747,\\\"./constraint_defaults\\\":751,\\\"./layout_attributes\\\":757,\\\"./position_defaults\\\":760,\\\"./type_defaults\\\":768}],759:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"tinycolor2\\\").mix,i=t(\\\"../../components/color/attributes\\\").lightFraction,a=t(\\\"../../lib\\\");e.exports=function(t,e,r,o){var s=(o=o||{}).dfltColor;function l(r,n){return a.coerce2(t,e,o.attributes,r,n)}var c=l(\\\"linecolor\\\",s),u=l(\\\"linewidth\\\");r(\\\"showline\\\",o.showLine||!!c||!!u)||(delete e.linecolor,delete e.linewidth);var f=l(\\\"gridcolor\\\",n(s,o.bgColor,o.blend||i).toRgbString()),h=l(\\\"gridwidth\\\");if(r(\\\"showgrid\\\",o.showGrid||!!f||!!h)||(delete e.gridcolor,delete e.gridwidth),!o.noZeroLine){var p=l(\\\"zerolinecolor\\\",s),d=l(\\\"zerolinewidth\\\");r(\\\"zeroline\\\",o.showGrid||!!p||!!d)||(delete e.zerolinecolor,delete e.zerolinewidth)}}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib\\\":696,tinycolor2:514}],760:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\");e.exports=function(t,e,r,a){var o,s,l,c,u=a.counterAxes||[],f=a.overlayableAxes||[],h=a.letter,p=a.grid;p&&(s=p._domains[h][p._axisMap[e._id]],o=p._anchors[e._id],s&&(l=p[h+\\\"side\\\"].split(\\\" \\\")[0],c=p.domain[h][\\\"right\\\"===l||\\\"top\\\"===l?1:0])),s=s||[0,1],o=o||(n(t.position)?\\\"free\\\":u[0]||\\\"free\\\"),l=l||(\\\"x\\\"===h?\\\"bottom\\\":\\\"left\\\"),c=c||0,\\\"free\\\"===i.coerce(t,e,{anchor:{valType:\\\"enumerated\\\",values:[\\\"free\\\"].concat(u),dflt:o}},\\\"anchor\\\")&&r(\\\"position\\\",c),i.coerce(t,e,{side:{valType:\\\"enumerated\\\",values:\\\"x\\\"===h?[\\\"bottom\\\",\\\"top\\\"]:[\\\"left\\\",\\\"right\\\"],dflt:l}},\\\"side\\\");var d=!1;if(f.length&&(d=i.coerce(t,e,{overlaying:{valType:\\\"enumerated\\\",values:[!1].concat(f),dflt:!1}},\\\"overlaying\\\")),!d){var g=r(\\\"domain\\\",s);g[0]>g[1]-.01&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s)}return r(\\\"layer\\\"),e}},{\\\"../../lib\\\":696,\\\"fast-isnumeric\\\":214}],761:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../constants/alignment\\\").FROM_BL;e.exports=function(t,e,r){void 0===r&&(r=n[t.constraintoward||\\\"center\\\"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*r;t.range=t._input.range=[t.l2r(a+(i[0]-a)*e),t.l2r(a+(i[1]-a)*e)]}},{\\\"../../constants/alignment\\\":668}],762:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"polybooljs\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../../components/fx\\\"),s=t(\\\"../../lib/polygon\\\"),l=t(\\\"../../lib/throttle\\\"),c=t(\\\"../../components/fx/helpers\\\").makeEventData,u=t(\\\"./axis_ids\\\").getFromId,f=t(\\\"../../lib/clear_gl_canvases\\\"),h=t(\\\"../../plot_api/subroutines\\\").redrawReglTraces,p=t(\\\"./constants\\\"),d=p.MINSELECT,g=s.filter,v=s.tester;function m(t){return t._id}function y(t,e,r,n,i,a,o){var s,l,c,u,f,h,p,d,g,v=e._hoverdata,m=e._fullLayout.clickmode.indexOf(\\\"event\\\")>-1,y=[];if(function(t){return t&&Array.isArray(t)&&!0!==t[0].hoverOnBox}(v)){w(t,e,a);var x=function(t,e){var r,n,i=t[0],a=-1,o=[];for(n=0;n<e.length;n++)if(r=e[n],i.fullData._expandedIndex===r.cd[0].trace._expandedIndex){if(!0===i.hoverOnBox)break;void 0!==i.pointNumber?a=i.pointNumber:void 0!==i.binNumber&&(a=i.binNumber,o=i.pointNumbers);break}return{pointNumber:a,pointNumbers:o,searchInfo:r}}(v,s=M(e,r,n,i));if(x.pointNumbers.length>0?function(t,e){var r,n,i,a=[];for(i=0;i<t.length;i++)(r=t[i]).cd[0].trace.selectedpoints&&r.cd[0].trace.selectedpoints.length>0&&a.push(r);if(1===a.length&&a[0]===e.searchInfo&&(n=e.searchInfo.cd[0].trace).selectedpoints.length===e.pointNumbers.length){for(i=0;i<e.pointNumbers.length;i++)if(n.selectedpoints.indexOf(e.pointNumbers[i])<0)return!1;return!0}return!1}(s,x):function(t){var e,r,n,i=0;for(n=0;n<t.length;n++)if(e=t[n],(r=e.cd[0].trace).selectedpoints){if(r.selectedpoints.length>1)return!1;if((i+=r.selectedpoints.length)>1)return!1}return 1===i}(s)&&(h=T(x))){for(o&&o.remove(),g=0;g<s.length;g++)(l=s[g])._module.selectPoints(l,!1);S(e,s),k(a),m&&e.emit(\\\"plotly_deselect\\\",null)}else{for(p=t.shiftKey&&(void 0!==h?h:T(x)),c=function(t,e,r){return{pointNumber:t,searchInfo:e,subtract:r}}(x.pointNumber,x.searchInfo,p),u=_(a.selectionDefs.concat([c])),g=0;g<s.length;g++)if(f=E(s[g]._module.selectPoints(s[g],u),s[g]),y.length)for(var b=0;b<f.length;b++)y.push(f[b]);else y=f;S(e,s,d={points:y}),c&&a&&a.selectionDefs.push(c),o&&A(a.mergedPolygons,o),m&&e.emit(\\\"plotly_selected\\\",d)}}}function x(t){return\\\"pointNumber\\\"in t&&\\\"searchInfo\\\"in t}function b(t){return{xmin:0,xmax:0,ymin:0,ymax:0,pts:[],contains:function(e,r,n,i){var a=t.searchInfo.cd[0].trace._expandedIndex;return i.cd[0].trace._expandedIndex===a&&n===t.pointNumber},isRect:!1,degenerate:!1,subtract:t.subtract}}function _(t){for(var e=[],r=x(t[0])?0:t[0][0][0],n=r,i=x(t[0])?0:t[0][0][1],a=i,o=0;o<t.length;o++)if(x(t[o]))e.push(b(t[o]));else{var l=s.tester(t[o]);l.subtract=t[o].subtract,e.push(l),r=Math.min(r,l.xmin),n=Math.max(n,l.xmax),i=Math.min(i,l.ymin),a=Math.max(a,l.ymax)}return{xmin:r,xmax:n,ymin:i,ymax:a,pts:[],contains:function(t,r,n,i){for(var a=!1,o=0;o<e.length;o++)e[o].contains(t,r,n,i)&&(a=!1===e[o].subtract);return a},isRect:!1,degenerate:!1}}function w(t,e,r){var n=e._fullLayout,i=n._zoomlayer,a=r.plotinfo,o=n._lastSelectedSubplot&&n._lastSelectedSubplot===a.id,s=t.shiftKey||t.altKey;o&&s&&a.selection&&a.selection.selectionDefs&&!r.selectionDefs?(r.selectionDefs=a.selection.selectionDefs,r.mergedPolygons=a.selection.mergedPolygons):s&&a.selection||k(r),o||(C(i),n._lastSelectedSubplot=a.id)}function k(t){var e=t.plotinfo;e.selection={},e.selection.selectionDefs=t.selectionDefs=[],e.selection.mergedPolygons=t.mergedPolygons=[]}function M(t,e,r,n){var i,a,o,s=[],l=e.map(m),c=r.map(m);for(o=0;o<t.calcdata.length;o++)if(!0===(a=(i=t.calcdata[o])[0].trace).visible&&a._module&&a._module.selectPoints)if(!n||a.subplot!==n&&a.geo!==n)if(\\\"splom\\\"===a.type&&a._xaxes[l[0]]&&a._yaxes[c[0]]){var f=h(a._module,i,e[0],r[0]);f.scene=t._fullLayout._splomScenes[a.uid],s.push(f)}else{if(-1===l.indexOf(a.xaxis))continue;if(-1===c.indexOf(a.yaxis))continue;s.push(h(a._module,i,u(t,a.xaxis),u(t,a.yaxis)))}else s.push(h(a._module,i,e[0],r[0]));return s;function h(t,e,r,n){return{_module:t,cd:e,xaxis:r,yaxis:n}}}function A(t,e){var r,n,i=[];for(r=0;r<t.length;r++){var a=t[r];i.push(a.join(\\\"L\\\")+\\\"L\\\"+a[0])}n=t.length>0?\\\"M\\\"+i.join(\\\"M\\\")+\\\"Z\\\":\\\"M0,0Z\\\",e.attr(\\\"d\\\",n)}function T(t){var e=t.searchInfo.cd[0].trace,r=t.pointNumber,n=t.pointNumbers,i=n.length>0?n[0]:r;return!!e.selectedpoints&&e.selectedpoints.indexOf(i)>-1}function S(t,e,r){var n,a,o,s;if(r){var l=r.points||[];for(n=0;n<e.length;n++)(s=e[n].cd[0].trace).selectedpoints=[],s._input.selectedpoints=[];for(n=0;n<l.length;n++){var c=l[n],u=c.data,p=c.fullData;c.pointIndices?([].push.apply(u.selectedpoints,c.pointIndices),[].push.apply(p.selectedpoints,c.pointIndices)):(u.selectedpoints.push(c.pointIndex),p.selectedpoints.push(c.pointIndex))}}else for(n=0;n<e.length;n++)delete(s=e[n].cd[0].trace).selectedpoints,delete s._input.selectedpoints;var d=!1;for(n=0;n<e.length;n++){s=(o=(a=e[n]).cd)[0].trace,i.traceIs(s,\\\"regl\\\")&&(d=!0);var g=a._module,v=g.styleOnSelect||g.style;v&&v(t,o)}d&&(f(t),h(t))}function E(t,e){if(Array.isArray(t))for(var r=e.cd,n=e.cd[0].trace,i=0;i<t.length;i++)t[i]=c(t[i],n,r);return t}function C(t){t.selectAll(\\\".select-outline\\\").remove()}e.exports={prepSelect:function(t,e,r,i,s){var c,u,f,h,m,x,b,T=i.gd,C=T._fullLayout,L=C._zoomlayer,z=i.element.getBoundingClientRect(),O=i.plotinfo,I=O.xaxis._offset,P=O.yaxis._offset,D=e-z.left,R=r-z.top,B=D,F=R,N=\\\"M\\\"+D+\\\",\\\"+R,j=i.xaxes[0]._length,V=i.yaxes[0]._length,U=i.xaxes.concat(i.yaxes),q=t.altKey;w(t,T,i),\\\"lasso\\\"===s&&(c=g([[D,R]],p.BENDPX));var H=L.selectAll(\\\"path.select-outline-\\\"+O.id).data([1,2]);H.enter().append(\\\"path\\\").attr(\\\"class\\\",function(t){return\\\"select-outline select-outline-\\\"+t+\\\" select-outline-\\\"+O.id}).attr(\\\"transform\\\",\\\"translate(\\\"+I+\\\", \\\"+P+\\\")\\\").attr(\\\"d\\\",N+\\\"Z\\\");var G,W=L.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox-corners\\\").style({fill:a.background,stroke:a.defaultLine,\\\"stroke-width\\\":1}).attr(\\\"transform\\\",\\\"translate(\\\"+I+\\\", \\\"+P+\\\")\\\").attr(\\\"d\\\",\\\"M0,0Z\\\"),Y=C._uid+p.SELECTID,X=[],Z=M(T,i.xaxes,i.yaxes,i.subplot);function $(t){var e=\\\"y\\\"===t._id.charAt(0)?1:0;return function(r){return t.p2d(r[e])}}function J(t,e){return t-e}G=O.fillRangeItems?O.fillRangeItems:\\\"select\\\"===s?function(t,e){var r=t.range={};for(m=0;m<U.length;m++){var n=U[m],i=n._id.charAt(0);r[n._id]=[n.p2d(e[i+\\\"min\\\"]),n.p2d(e[i+\\\"max\\\"])].sort(J)}}:function(t,e,r){var n=t.lassoPoints={};for(m=0;m<U.length;m++){var i=U[m];n[i._id]=r.filtered.map($(i))}},i.moveFn=function(t,e){B=Math.max(0,Math.min(j,t+D)),F=Math.max(0,Math.min(V,e+R));var r=Math.abs(B-D),a=Math.abs(F-R);if(\\\"select\\\"===s){var o=C.selectdirection;\\\"h\\\"===(o=\\\"any\\\"===C.selectdirection?a<Math.min(.6*r,d)?\\\"h\\\":r<Math.min(.6*a,d)?\\\"v\\\":\\\"d\\\":C.selectdirection)?((h=[[D,0],[D,V],[B,V],[B,0]]).xmin=Math.min(D,B),h.xmax=Math.max(D,B),h.ymin=Math.min(0,V),h.ymax=Math.max(0,V),W.attr(\\\"d\\\",\\\"M\\\"+h.xmin+\\\",\\\"+(R-d)+\\\"h-4v\\\"+2*d+\\\"h4ZM\\\"+(h.xmax-1)+\\\",\\\"+(R-d)+\\\"h4v\\\"+2*d+\\\"h-4Z\\\")):\\\"v\\\"===o?((h=[[0,R],[0,F],[j,F],[j,R]]).xmin=Math.min(0,j),h.xmax=Math.max(0,j),h.ymin=Math.min(R,F),h.ymax=Math.max(R,F),W.attr(\\\"d\\\",\\\"M\\\"+(D-d)+\\\",\\\"+h.ymin+\\\"v-4h\\\"+2*d+\\\"v4ZM\\\"+(D-d)+\\\",\\\"+(h.ymax-1)+\\\"v4h\\\"+2*d+\\\"v-4Z\\\")):\\\"d\\\"===o&&((h=[[D,R],[D,F],[B,F],[B,R]]).xmin=Math.min(D,B),h.xmax=Math.max(D,B),h.ymin=Math.min(R,F),h.ymax=Math.max(R,F),W.attr(\\\"d\\\",\\\"M0,0Z\\\"))}else\\\"lasso\\\"===s&&(c.addPt([B,F]),h=c.filtered);i.selectionDefs&&i.selectionDefs.length?(f=function(t,e,r){return r?n.difference({regions:t,inverted:!1},{regions:[e],inverted:!1}).regions:n.union({regions:t,inverted:!1},{regions:[e],inverted:!1}).regions}(i.mergedPolygons,h,q),h.subtract=q,u=_(i.selectionDefs.concat([h]))):(f=[h],u=v(h)),A(f,H),l.throttle(Y,p.SELECTDELAY,function(){X=[];var t,e,r=[];for(m=0;m<Z.length;m++)if(e=(x=Z[m])._module.selectPoints(x,u),r.push(e),t=E(e,x),X.length)for(var n=0;n<t.length;n++)X.push(t[n]);else X=t;S(T,Z,b={points:X}),G(b,h,c),i.gd.emit(\\\"plotly_selecting\\\",b)})},i.clickFn=function(t,e){var r=C.clickmode;W.remove(),l.done(Y).then(function(){if(l.clear(Y),2===t){for(H.remove(),m=0;m<Z.length;m++)(x=Z[m])._module.selectPoints(x,!1);S(T,Z),k(i),T.emit(\\\"plotly_deselect\\\",null)}else r.indexOf(\\\"select\\\")>-1&&y(e,T,i.xaxes,i.yaxes,i.subplot,i,H),\\\"event\\\"===r&&T.emit(\\\"plotly_selected\\\",void 0);o.click(T,e)})},i.doneFn=function(){W.remove(),l.done(Y).then(function(){l.clear(Y),i.gd.emit(\\\"plotly_selected\\\",b),h&&i.selectionDefs&&(h.subtract=q,i.selectionDefs.push(h),i.mergedPolygons.length=0,[].push.apply(i.mergedPolygons,f))})}},clearSelect:C,selectOnClick:y}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../components/fx/helpers\\\":609,\\\"../../lib/clear_gl_canvases\\\":680,\\\"../../lib/polygon\\\":708,\\\"../../lib/throttle\\\":721,\\\"../../plot_api/subroutines\\\":735,\\\"../../registry\\\":827,\\\"./axis_ids\\\":747,\\\"./constants\\\":750,polybooljs:456}],763:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../lib\\\"),o=a.cleanNumber,s=a.ms2DateTime,l=a.dateTime2ms,c=a.ensureNumber,u=t(\\\"../../constants/numerical\\\"),f=u.FP_SAFE,h=u.BADNUM,p=u.LOG_CLIP,d=t(\\\"./constants\\\"),g=t(\\\"./axis_ids\\\");function v(t){return Math.pow(10,t)}e.exports=function(t,e){e=e||{};var r=(t._id||\\\"x\\\").charAt(0);function u(e,r){if(e>0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-2*p*Math.abs(n-i))}return h}function m(e,r,n){var o=l(e,n||t.calendar);if(o===h){if(!i(e))return h;e=+e;var s=Math.floor(10*a.mod(e+.05,1)),c=Math.round(e-s/10);o=l(new Date(c))+s/10}return o}function y(e,r,n){return s(e,r,n||t.calendar)}function x(e){return t._categories[Math.round(e)]}function b(e){if(t._categoriesMap){var r=t._categoriesMap[e];if(void 0!==r)return r}if(i(e))return+e}function _(e){return i(e)?n.round(t._b+t._m*e,2):h}function w(e){return(e-t._b)/t._m}t.c2l=\\\"log\\\"===t.type?u:c,t.l2c=\\\"log\\\"===t.type?v:c,t.l2p=_,t.p2l=w,t.c2p=\\\"log\\\"===t.type?function(t,e){return _(u(t,e))}:_,t.p2c=\\\"log\\\"===t.type?function(t){return v(w(t))}:w,-1!==[\\\"linear\\\",\\\"-\\\"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=o,t.c2d=t.c2r=t.l2d=t.l2r=c,t.d2p=t.r2p=function(e){return t.l2p(o(e))},t.p2d=t.p2r=w,t.cleanPos=c):\\\"log\\\"===t.type?(t.d2r=t.d2l=function(t,e){return u(o(t),e)},t.r2d=t.r2c=function(t){return v(o(t))},t.d2c=t.r2l=o,t.c2d=t.l2r=c,t.c2r=u,t.l2d=v,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return v(w(t))},t.r2p=function(e){return t.l2p(o(e))},t.p2r=w,t.cleanPos=c):\\\"date\\\"===t.type?(t.d2r=t.r2d=a.identity,t.d2c=t.r2c=t.d2l=t.r2l=m,t.c2d=t.c2r=t.l2d=t.l2r=y,t.d2p=t.r2p=function(e,r,n){return t.l2p(m(e,0,n))},t.p2d=t.p2r=function(t,e,r){return y(w(t),e,r)},t.cleanPos=function(e){return a.cleanDate(e,h,t.calendar)}):\\\"category\\\"===t.type&&(t.d2c=t.d2l=function(e){if(null!=e){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push(e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return h},t.r2d=t.c2d=t.l2d=x,t.d2r=t.d2l_noadd=b,t.r2c=function(e){var r=b(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=c,t.r2l=b,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return x(w(t))},t.r2p=t.d2p,t.p2r=w,t.cleanPos=function(t){return\\\"string\\\"==typeof t&&\\\"\\\"!==t?t:c(t)}),t.fraction2r=function(e){var r=t.r2l(t.range[0]),n=t.r2l(t.range[1]);return t.l2r(r+e*(n-r))},t.r2fraction=function(e){var r=t.r2l(t.range[0]),n=t.r2l(t.range[1]);return(t.r2l(e)-r)/(n-r)},t.cleanRange=function(e,n){n||(n={}),e||(e=\\\"range\\\");var o,s,l=a.nestedProperty(t,e).get();if(s=(s=\\\"date\\\"===t.type?a.dfltRange(t.calendar):\\\"y\\\"===r?d.DFLTRANGEY:n.dfltRange||d.DFLTRANGEX).slice(),l&&2===l.length)for(\\\"date\\\"===t.type&&(l[0]=a.cleanDate(l[0],h,t.calendar),l[1]=a.cleanDate(l[1],h,t.calendar)),o=0;o<2;o++)if(\\\"date\\\"===t.type){if(!a.isDateTime(l[o],t.calendar)){t[e]=s;break}if(t.r2l(l[0])===t.r2l(l[1])){var c=a.constrain(t.r2l(l[0]),a.MIN_MS+1e3,a.MAX_MS-1e3);l[0]=t.l2r(c-1e3),l[1]=t.l2r(c+1e3);break}}else{if(!i(l[o])){if(!i(l[1-o])){t[e]=s;break}l[o]=l[1-o]*(o?10:.1)}if(l[o]<-f?l[o]=-f:l[o]>f&&(l[o]=f),l[0]===l[1]){var u=Math.max(1,Math.abs(1e-6*l[0]));l[0]-=u,l[1]+=u}}else a.nestedProperty(t,e).set(s)},t.setScale=function(n){var i=e._size;if(t._categories||(t._categories=[]),t._categoriesMap||(t._categoriesMap={}),t.overlaying){var a=g.getFromId({_fullLayout:e},t.overlaying);t.domain=a.domain}var o=n&&t._r?\\\"_r\\\":\\\"range\\\",s=t.calendar;t.cleanRange(o);var l=t.r2l(t[o][0],s),c=t.r2l(t[o][1],s);if(\\\"y\\\"===r?(t._offset=i.t+(1-t.domain[1])*i.h,t._length=i.h*(t.domain[1]-t.domain[0]),t._m=t._length/(l-c),t._b=-t._m*c):(t._offset=i.l+t.domain[0]*i.w,t._length=i.w*(t.domain[1]-t.domain[0]),t._m=t._length/(c-l),t._b=-t._m*l),!isFinite(t._m)||!isFinite(t._b))throw e._replotting=!1,new Error(\\\"Something went wrong with axis scaling\\\")},t.makeCalcdata=function(e,r){var n,i,o,s,l=t.type,c=\\\"date\\\"===l&&e[r+\\\"calendar\\\"];if(r in e){if(n=e[r],s=e._length||n.length,a.isTypedArray(n)&&(\\\"linear\\\"===l||\\\"log\\\"===l)){if(s===n.length)return n;if(n.subarray)return n.subarray(0,s)}for(i=new Array(s),o=0;o<s;o++)i[o]=t.d2c(n[o],0,c)}else{var u=r+\\\"0\\\"in e?t.d2c(e[r+\\\"0\\\"],0,c):0,f=e[\\\"d\\\"+r]?Number(e[\\\"d\\\"+r]):1;for(n=e[{x:\\\"y\\\",y:\\\"x\\\"}[r]],s=e._length||n.length,i=new Array(s),o=0;o<s;o++)i[o]=u+o*f}return i},t.isValidRange=function(e){return Array.isArray(e)&&2===e.length&&i(t.r2l(e[0]))&&i(t.r2l(e[1]))},t.isPtWithinRange=function(e,n){var i=t.c2l(e[r],null,n),a=t.r2l(t.range[0]),o=t.r2l(t.range[1]);return a<o?a<=i&&i<=o:o<=i&&i<=a},t.clearCalc=function(){t._categories=(t._initialCategories||[]).slice(),t._categoriesMap={};for(var e=0;e<t._categories.length;e++)t._categoriesMap[t._categories[e]]=e};var k=e._d3locale;\\\"date\\\"===t.type&&(t._dateFormat=k?k.timeFormat.utc:n.time.format.utc,t._extraFormat=e._extraFormat),t._separators=e.separators,t._numFormat=k?k.numberFormat:n.format,delete t._minDtick,delete t._forceTick0}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"./axis_ids\\\":747,\\\"./constants\\\":750,d3:148,\\\"fast-isnumeric\\\":214}],764:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\"),a=t(\\\"../array_container_defaults\\\");function o(t,e){function r(r,a){return n.coerce(t,e,i.tickformatstops,r,a)}r(\\\"enabled\\\")&&(r(\\\"dtickrange\\\"),r(\\\"value\\\"))}e.exports=function(t,e,r,s,l){var c=function(t){var e=[\\\"showexponent\\\",\\\"showtickprefix\\\",\\\"showticksuffix\\\"].filter(function(e){return void 0!==t[e]});if(e.every(function(r){return t[r]===t[e[0]]})||1===e.length)return t[e[0]]}(t);if(r(\\\"tickprefix\\\")&&r(\\\"showtickprefix\\\",c),r(\\\"ticksuffix\\\",l.tickSuffixDflt)&&r(\\\"showticksuffix\\\",c),r(\\\"showticklabels\\\")){var u=l.font||{},f=e.color,h=f&&f!==i.color.dflt?f:u.color;if(n.coerceFont(r,\\\"tickfont\\\",{family:u.family,size:u.size,color:h}),r(\\\"tickangle\\\"),\\\"category\\\"!==s){var p=r(\\\"tickformat\\\"),d=t.tickformatstops;Array.isArray(d)&&d.length&&a(t,e,{name:\\\"tickformatstops\\\",inclusionAttr:\\\"enabled\\\",handleItemDefaults:o}),p||\\\"date\\\"===s||(r(\\\"showexponent\\\",c),r(\\\"exponentformat\\\"),r(\\\"separatethousands\\\"))}}}},{\\\"../../lib\\\":696,\\\"../array_container_defaults\\\":740,\\\"./layout_attributes\\\":757}],765:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\");e.exports=function(t,e,r,a){var o=n.coerce2(t,e,i,\\\"ticklen\\\"),s=n.coerce2(t,e,i,\\\"tickwidth\\\"),l=n.coerce2(t,e,i,\\\"tickcolor\\\",e.color);r(\\\"ticks\\\",a.outerTicks||o||s||l?\\\"outside\\\":\\\"\\\")||(delete e.ticklen,delete e.tickwidth,delete e.tickcolor)}},{\\\"../../lib\\\":696,\\\"./layout_attributes\\\":757}],766:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./clean_ticks\\\");e.exports=function(t,e,r,i){var a;\\\"array\\\"!==t.tickmode||\\\"log\\\"!==i&&\\\"date\\\"!==i?a=r(\\\"tickmode\\\",Array.isArray(t.tickvals)?\\\"array\\\":t.dtick?\\\"linear\\\":\\\"auto\\\"):a=e.tickmode=\\\"auto\\\";if(\\\"auto\\\"===a)r(\\\"nticks\\\");else if(\\\"linear\\\"===a){var o=e.dtick=n.dtick(t.dtick,i);e.tick0=n.tick0(t.tick0,i,e.calendar,o)}else{void 0===r(\\\"tickvals\\\")?e.tickmode=\\\"auto\\\":r(\\\"ticktext\\\")}}},{\\\"./clean_ticks\\\":749}],767:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"./axes\\\"),s=t(\\\"./constants\\\").attrRegex;e.exports=function(t,e,r,l){var c=t._fullLayout,u=[];var f,h,p,d,g=function(t){var e,r,n,i,a={};for(e in t)if((r=e.split(\\\".\\\"))[0].match(s)){var o=e.charAt(0),l=r[0];if(n=c[l],i={},Array.isArray(t[e])?i.to=t[e].slice(0):Array.isArray(t[e].range)&&(i.to=t[e].range.slice(0)),!i.to)continue;i.axisName=l,i.length=n._length,u.push(o),a[o]=i}return a}(e),v=Object.keys(g),m=function(t,e,r){var n,i,a,o=t._plots,s=[];for(n in o){var l=o[n];if(-1===s.indexOf(l)){var c=l.xaxis._id,u=l.yaxis._id,f=l.xaxis.range,h=l.yaxis.range;l.xaxis._r=l.xaxis.range.slice(),l.yaxis._r=l.yaxis.range.slice(),i=r[c]?r[c].to:f,a=r[u]?r[u].to:h,f[0]===i[0]&&f[1]===i[1]&&h[0]===a[0]&&h[1]===a[1]||-1===e.indexOf(c)&&-1===e.indexOf(u)||s.push(l)}}return s}(c,v,g);if(!m.length)return function(){function e(e,r,n){for(var i=0;i<e.length;i++)if(r(t,i),n)return}e(c.annotations||[],i.getComponentMethod(\\\"annotations\\\",\\\"drawOne\\\")),e(c.shapes||[],i.getComponentMethod(\\\"shapes\\\",\\\"drawOne\\\")),e(c.images||[],i.getComponentMethod(\\\"images\\\",\\\"draw\\\"),!0)}(),!1;function y(t){var e=t.xaxis,r=t.yaxis;c._defs.select(\\\"#\\\"+t.clipId+\\\"> rect\\\").call(a.setTranslate,0,0).call(a.setScale,1,1),t.plot.call(a.setTranslate,e._offset,r._offset).call(a.setScale,1,1);var n=t.plot.selectAll(\\\".scatterlayer .trace\\\");n.selectAll(\\\".point\\\").call(a.setPointGroupScale,1,1),n.selectAll(\\\".textpoint\\\").call(a.setTextPointsScale,1,1),n.call(a.hideOutsideRangePoints,t)}function x(e,r){var n,s,l,u=g[e.xaxis._id],f=g[e.yaxis._id],h=[];if(u){s=(n=t._fullLayout[u.axisName])._r,l=u.to,h[0]=(s[0]*(1-r)+r*l[0]-s[0])/(s[1]-s[0])*e.xaxis._length;var p=s[1]-s[0],d=l[1]-l[0];n.range[0]=s[0]*(1-r)+r*l[0],n.range[1]=s[1]*(1-r)+r*l[1],h[2]=e.xaxis._length*(1-r+r*d/p)}else h[0]=0,h[2]=e.xaxis._length;if(f){s=(n=t._fullLayout[f.axisName])._r,l=f.to,h[1]=(s[1]*(1-r)+r*l[1]-s[1])/(s[0]-s[1])*e.yaxis._length;var v=s[1]-s[0],m=l[1]-l[0];n.range[0]=s[0]*(1-r)+r*l[0],n.range[1]=s[1]*(1-r)+r*l[1],h[3]=e.yaxis._length*(1-r+r*m/v)}else h[1]=0,h[3]=e.yaxis._length;!function(e,r){var n,a=[];for(a=[e._id,r._id],n=0;n<a.length;n++)o.doTicksSingle(t,a[n],!0);function s(e,r,i){for(n=0;n<e.length;n++){var o=e[n];if(-1===a.indexOf(o.xref)&&-1===a.indexOf(o.yref)||r(t,n),i)return}}s(c.annotations||[],i.getComponentMethod(\\\"annotations\\\",\\\"drawOne\\\")),s(c.shapes||[],i.getComponentMethod(\\\"shapes\\\",\\\"drawOne\\\")),s(c.images||[],i.getComponentMethod(\\\"images\\\",\\\"draw\\\"),!0)}(e.xaxis,e.yaxis);var y=e.xaxis,x=e.yaxis,b=!!u,_=!!f,w=b?y._length/h[2]:1,k=_?x._length/h[3]:1,M=b?h[0]:0,A=_?h[1]:0,T=b?h[0]/h[2]*y._length:0,S=_?h[1]/h[3]*x._length:0,E=y._offset-T,C=x._offset-S;e.clipRect.call(a.setTranslate,M,A).call(a.setScale,1/w,1/k),e.plot.call(a.setTranslate,E,C).call(a.setScale,w,k),a.setPointGroupScale(e.zoomScalePts,1/w,1/k),a.setTextPointsScale(e.zoomScaleTxt,1/w,1/k)}l&&(f=l());var b=n.ease(r.easing);return t._transitionData._interruptCallbacks.push(function(){return window.cancelAnimationFrame(d),d=null,function(){for(var e={},r=0;r<v.length;r++){var n=t._fullLayout[v[r]+\\\"axis\\\"];e[n._name+\\\".range[0]\\\"]=n.range[0],e[n._name+\\\".range[1]\\\"]=n.range[1],n.range=n._r.slice()}return i.call(\\\"relayout\\\",t,e).then(function(){for(var t=0;t<m.length;t++)y(m[t])})}()}),h=Date.now(),d=window.requestAnimationFrame(function e(){p=Date.now();for(var n=Math.min(1,(p-h)/r.duration),a=b(n),o=0;o<m.length;o++)x(m[o],a);p-h>r.duration?(function(){for(var e={},r=0;r<v.length;r++){var n=t._fullLayout[g[v[r]].axisName],a=g[v[r]].to;e[n._name+\\\".range[0]\\\"]=a[0],e[n._name+\\\".range[1]\\\"]=a[1],n.range=a.slice()}f&&f(),i.call(\\\"relayout\\\",t,e).then(function(){for(var t=0;t<m.length;t++)y(m[t])})}(),d=window.cancelAnimationFrame(e)):d=window.requestAnimationFrame(e)}),Promise.resolve()}},{\\\"../../components/drawing\\\":595,\\\"../../registry\\\":827,\\\"./axes\\\":744,\\\"./constants\\\":750,d3:148}],768:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"./axis_autotype\\\");function a(t){return{v:\\\"x\\\",h:\\\"y\\\"}[t.orientation||\\\"v\\\"]}function o(t,e){var r=a(t),i=n.traceIs(t,\\\"box-violin\\\"),o=n.traceIs(t._fullInput||{},\\\"candlestick\\\");return i&&!o&&e===r&&void 0===t[r]&&void 0===t[r+\\\"0\\\"]}e.exports=function(t,e,r,s){\\\"-\\\"===r(\\\"type\\\",(s.splomStash||{}).type)&&(!function(t,e){if(\\\"-\\\"!==t.type)return;var r=t._id,s=r.charAt(0);-1!==r.indexOf(\\\"scene\\\")&&(r=s);var l=function(t,e,r){for(var n=0;n<t.length;n++){var i=t[n];if(\\\"splom\\\"===i.type&&i._length>0&&(i[\\\"_\\\"+r+\\\"axes\\\"]||{})[e])return i;if((i[r+\\\"axis\\\"]||r)===e){if(o(i,r))return i;if((i[r]||[]).length||i[r+\\\"0\\\"])return i}}}(e,r,s);if(!l)return;if(\\\"histogram\\\"===l.type&&s==={v:\\\"y\\\",h:\\\"x\\\"}[l.orientation||\\\"v\\\"])return void(t.type=\\\"linear\\\");var c,u=s+\\\"calendar\\\",f=l[u];if(o(l,s)){var h=a(l),p=[];for(c=0;c<e.length;c++){var d=e[c];n.traceIs(d,\\\"box-violin\\\")&&(d[s+\\\"axis\\\"]||s)===r&&(void 0!==d[h]?p.push(d[h][0]):void 0!==d.name?p.push(d.name):p.push(\\\"text\\\"),d[u]!==f&&(f=void 0))}t.type=i(p,f)}else if(\\\"splom\\\"===l.type){var g=l.dimensions,v=l._diag;for(c=0;c<g.length;c++){var m=g[c];if(m.visible&&(v[c][0]===r||v[c][1]===r)){t.type=i(m.values,f);break}}}else t.type=i(l[s]||[l[s+\\\"0\\\"]],f)}(e,s.data),\\\"-\\\"===e.type?e.type=\\\"linear\\\":t.type=e.type)}},{\\\"../../registry\\\":827,\\\"./axis_autotype\\\":745}],769:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\"),i=t(\\\"../lib\\\");function a(t,e,r){var n,a,o,s=!1;if(\\\"data\\\"===e.type)n=t._fullData[null!==e.traces?e.traces[0]:0];else{if(\\\"layout\\\"!==e.type)return!1;n=t._fullLayout}return a=i.nestedProperty(n,e.prop).get(),(o=r[e.type]=r[e.type]||{}).hasOwnProperty(e.prop)&&o[e.prop]!==a&&(s=!0),o[e.prop]=a,{changed:s,value:a}}function o(t,e){var r=[],n=e[0],a={};if(\\\"string\\\"==typeof n)a[n]=e[1];else{if(!i.isPlainObject(n))return r;a=n}return l(a,function(t,e,n){r.push({type:\\\"layout\\\",prop:t,value:n})},\\\"\\\",0),r}function s(t,e){var r,n,a,o,s=[];if(n=e[0],a=e[1],r=e[2],o={},\\\"string\\\"==typeof n)o[n]=a;else{if(!i.isPlainObject(n))return s;o=n,void 0===r&&(r=a)}return void 0===r&&(r=null),l(o,function(e,n,i){var a;if(Array.isArray(i)){var o=Math.min(i.length,t.data.length);r&&(o=Math.min(o,r.length)),a=[];for(var l=0;l<o;l++)a[l]=r?r[l]:l}else a=r?r.slice(0):null;if(null===a)Array.isArray(i)&&(i=i[0]);else if(Array.isArray(a)){if(!Array.isArray(i)){var c=i;i=[];for(var u=0;u<a.length;u++)i[u]=c}i.length=Math.min(a.length,i.length)}s.push({type:\\\"data\\\",prop:e,traces:a,value:i})},\\\"\\\",0),s}function l(t,e,r,n){Object.keys(t).forEach(function(a){var o=t[a];if(\\\"_\\\"!==a[0]){var s=r+(n>0?\\\".\\\":\\\"\\\")+a;i.isPlainObject(o)?l(o,e,s,n+1):e(s,a,o)}})}r.manageCommandObserver=function(t,e,n,o){var s={},l=!0;e&&e._commandObserver&&(s=e._commandObserver),s.cache||(s.cache={}),s.lookupTable={};var c=r.hasSimpleAPICommandBindings(t,n,s.lookupTable);if(e&&e._commandObserver){if(c)return s;if(e._commandObserver.remove)return e._commandObserver.remove(),e._commandObserver=null,s}if(c){a(t,c,s.cache),s.check=function(){if(l){var e=a(t,c,s.cache);return e.changed&&o&&void 0!==s.lookupTable[e.value]&&(s.disable(),Promise.resolve(o({value:e.value,type:c.type,prop:c.prop,traces:c.traces,index:s.lookupTable[e.value]})).then(s.enable,s.enable)),e.changed}};for(var u=[\\\"plotly_relayout\\\",\\\"plotly_redraw\\\",\\\"plotly_restyle\\\",\\\"plotly_update\\\",\\\"plotly_animatingframe\\\",\\\"plotly_afterplot\\\"],f=0;f<u.length;f++)t._internalOn(u[f],s.check);s.remove=function(){for(var e=0;e<u.length;e++)t._removeInternalListener(u[e],s.check)}}else i.log(\\\"Unable to automatically bind plot updates to API command\\\"),s.lookupTable={},s.remove=function(){};return s.disable=function(){l=!1},s.enable=function(){l=!0},e&&(e._commandObserver=s),s},r.hasSimpleAPICommandBindings=function(t,e,n){var i,a,o=e.length;for(i=0;i<o;i++){var s,l=e[i],c=l.method,u=l.args;if(Array.isArray(u)||(u=[]),!c)return!1;var f=r.computeAPICommandBindings(t,c,u);if(1!==f.length)return!1;if(a){if((s=f[0]).type!==a.type)return!1;if(s.prop!==a.prop)return!1;if(Array.isArray(a.traces)){if(!Array.isArray(s.traces))return!1;s.traces.sort();for(var h=0;h<a.traces.length;h++)if(a.traces[h]!==s.traces[h])return!1}else if(s.prop!==a.prop)return!1}else a=f[0],Array.isArray(a.traces)&&a.traces.sort();var p=(s=f[0]).value;if(Array.isArray(p)){if(1!==p.length)return!1;p=p[0]}n&&(n[p]=i)}return a},r.executeAPICommand=function(t,e,r){if(\\\"skip\\\"===e)return Promise.resolve();var a=n.apiMethodRegistry[e],o=[t];Array.isArray(r)||(r=[]);for(var s=0;s<r.length;s++)o.push(r[s]);return a.apply(null,o).catch(function(t){return i.warn(\\\"API call to Plotly.\\\"+e+\\\" rejected.\\\",t),Promise.reject(t)})},r.computeAPICommandBindings=function(t,e,r){var n;switch(Array.isArray(r)||(r=[]),e){case\\\"restyle\\\":n=s(t,r);break;case\\\"relayout\\\":n=o(t,r);break;case\\\"update\\\":n=s(t,[r[0],r[2]]).concat(o(t,[r[1]]));break;case\\\"animate\\\":n=function(t,e){return Array.isArray(e[0])&&1===e[0].length&&-1!==[\\\"string\\\",\\\"number\\\"].indexOf(typeof e[0][0])?[{type:\\\"layout\\\",prop:\\\"_currentFrame\\\",value:e[0][0].toString()}]:[]}(0,r);break;default:n=[]}return n}},{\\\"../lib\\\":696,\\\"../registry\\\":827}],770:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib/extend\\\").extendFlat;r.attributes=function(t,e){e=e||{};var r={valType:\\\"info_array\\\",editType:(t=t||{}).editType,items:[{valType:\\\"number\\\",min:0,max:1,editType:t.editType},{valType:\\\"number\\\",min:0,max:1,editType:t.editType}],dflt:[0,1]},i=(t.name&&t.name,t.trace,e.description&&e.description,{x:n({},r,{}),y:n({},r,{}),editType:t.editType});return t.noGridCell||(i.row={valType:\\\"integer\\\",min:0,dflt:0,editType:t.editType},i.column={valType:\\\"integer\\\",min:0,dflt:0,editType:t.editType}),i},r.defaults=function(t,e,r,n){var i=n&&n.x||[0,1],a=n&&n.y||[0,1],o=e.grid;if(o){var s=r(\\\"domain.column\\\");void 0!==s&&(s<o.columns?i=o._domains.x[s]:delete t.domain.column);var l=r(\\\"domain.row\\\");void 0!==l&&(l<o.rows?a=o._domains.y[l]:delete t.domain.row)}r(\\\"domain.x\\\",i),r(\\\"domain.y\\\",a)}},{\\\"../lib/extend\\\":685}],771:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.editType,r=t.colorEditType;void 0===r&&(r=e);var n={family:{valType:\\\"string\\\",noBlank:!0,strict:!0,editType:e},size:{valType:\\\"number\\\",min:1,editType:e},color:{valType:\\\"color\\\",editType:r},editType:e};return t.arrayOk&&(n.family.arrayOk=!0,n.size.arrayOk=!0,n.color.arrayOk=!0),n}},{}],772:[function(t,e,r){\\\"use strict\\\";e.exports={_isLinkedToArray:\\\"frames_entry\\\",group:{valType:\\\"string\\\"},name:{valType:\\\"string\\\"},traces:{valType:\\\"any\\\"},baseframe:{valType:\\\"string\\\"},data:{valType:\\\"any\\\"},layout:{valType:\\\"any\\\"}}},{}],773:[function(t,e,r){\\\"use strict\\\";r.projNames={equirectangular:\\\"equirectangular\\\",mercator:\\\"mercator\\\",orthographic:\\\"orthographic\\\",\\\"natural earth\\\":\\\"naturalEarth\\\",kavrayskiy7:\\\"kavrayskiy7\\\",miller:\\\"miller\\\",robinson:\\\"robinson\\\",eckert4:\\\"eckert4\\\",\\\"azimuthal equal area\\\":\\\"azimuthalEqualArea\\\",\\\"azimuthal equidistant\\\":\\\"azimuthalEquidistant\\\",\\\"conic equal area\\\":\\\"conicEqualArea\\\",\\\"conic conformal\\\":\\\"conicConformal\\\",\\\"conic equidistant\\\":\\\"conicEquidistant\\\",gnomonic:\\\"gnomonic\\\",stereographic:\\\"stereographic\\\",mollweide:\\\"mollweide\\\",hammer:\\\"hammer\\\",\\\"transverse mercator\\\":\\\"transverseMercator\\\",\\\"albers usa\\\":\\\"albersUsa\\\",\\\"winkel tripel\\\":\\\"winkel3\\\",aitoff:\\\"aitoff\\\",sinusoidal:\\\"sinusoidal\\\"},r.axesNames=[\\\"lonaxis\\\",\\\"lataxis\\\"],r.lonaxisSpan={orthographic:180,\\\"azimuthal equal area\\\":360,\\\"azimuthal equidistant\\\":360,\\\"conic conformal\\\":180,gnomonic:160,stereographic:180,\\\"transverse mercator\\\":180,\\\"*\\\":360},r.lataxisSpan={\\\"conic conformal\\\":150,stereographic:179.5,\\\"*\\\":180},r.scopeDefaults={world:{lonaxisRange:[-180,180],lataxisRange:[-90,90],projType:\\\"equirectangular\\\",projRotate:[0,0,0]},usa:{lonaxisRange:[-180,-50],lataxisRange:[15,80],projType:\\\"albers usa\\\"},europe:{lonaxisRange:[-30,60],lataxisRange:[30,85],projType:\\\"conic conformal\\\",projRotate:[15,0,0],projParallels:[0,60]},asia:{lonaxisRange:[22,160],lataxisRange:[-15,55],projType:\\\"mercator\\\",projRotate:[0,0,0]},africa:{lonaxisRange:[-30,60],lataxisRange:[-40,40],projType:\\\"mercator\\\",projRotate:[0,0,0]},\\\"north america\\\":{lonaxisRange:[-180,-45],lataxisRange:[5,85],projType:\\\"conic conformal\\\",projRotate:[-100,0,0],projParallels:[29.5,45.5]},\\\"south america\\\":{lonaxisRange:[-100,-30],lataxisRange:[-60,15],projType:\\\"mercator\\\",projRotate:[0,0,0]}},r.clipPad=.001,r.precision=.1,r.landColor=\\\"#F0DC82\\\",r.waterColor=\\\"#3399FF\\\",r.locationmodeToLayer={\\\"ISO-3\\\":\\\"countries\\\",\\\"USA-states\\\":\\\"subunits\\\",\\\"country names\\\":\\\"countries\\\"},r.sphereSVG={type:\\\"Sphere\\\"},r.fillLayers={ocean:1,land:1,lakes:1},r.lineLayers={subunits:1,countries:1,coastlines:1,rivers:1,frame:1},r.layers=[\\\"bg\\\",\\\"ocean\\\",\\\"land\\\",\\\"lakes\\\",\\\"subunits\\\",\\\"countries\\\",\\\"coastlines\\\",\\\"rivers\\\",\\\"lataxis\\\",\\\"lonaxis\\\",\\\"frame\\\",\\\"backplot\\\",\\\"frontplot\\\"],r.layersForChoropleth=[\\\"bg\\\",\\\"ocean\\\",\\\"land\\\",\\\"subunits\\\",\\\"countries\\\",\\\"coastlines\\\",\\\"lataxis\\\",\\\"lonaxis\\\",\\\"frame\\\",\\\"backplot\\\",\\\"rivers\\\",\\\"lakes\\\",\\\"frontplot\\\"],r.layerNameToAdjective={ocean:\\\"ocean\\\",land:\\\"land\\\",lakes:\\\"lake\\\",subunits:\\\"subunit\\\",countries:\\\"country\\\",coastlines:\\\"coastline\\\",rivers:\\\"river\\\",frame:\\\"frame\\\"}},{}],774:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"../../components/fx\\\"),c=t(\\\"../plots\\\"),u=t(\\\"../cartesian/axes\\\"),f=t(\\\"../../components/dragelement\\\"),h=t(\\\"../cartesian/select\\\").prepSelect,p=t(\\\"../cartesian/select\\\").selectOnClick,d=t(\\\"./zoom\\\"),g=t(\\\"./constants\\\"),v=t(\\\"../../lib/topojson_utils\\\"),m=t(\\\"topojson-client\\\").feature;function y(t){this.id=t.id,this.graphDiv=t.graphDiv,this.container=t.container,this.topojsonURL=t.topojsonURL,this.isStatic=t.staticPlot,this.topojsonName=null,this.topojson=null,this.projection=null,this.viewInitial=null,this.fitScale=null,this.bounds=null,this.midPt=null,this.hasChoropleth=!1,this.traceHash={},this.layers={},this.basePaths={},this.dataPaths={},this.dataPoints={},this.clipDef=null,this.clipRect=null,this.bgRect=null,this.makeFramework()}t(\\\"./projections\\\")(n);var x=y.prototype;e.exports=function(t){return new y(t)},x.plot=function(t,e,r){var n=this,i=e[this.id],a=v.getTopojsonName(i);null===n.topojson||a!==n.topojsonName?(n.topojsonName=a,void 0===PlotlyGeoAssets.topojson[n.topojsonName]?r.push(n.fetchTopojson().then(function(r){PlotlyGeoAssets.topojson[n.topojsonName]=r,n.topojson=r,n.update(t,e)})):(n.topojson=PlotlyGeoAssets.topojson[n.topojsonName],n.update(t,e))):n.update(t,e)},x.fetchTopojson=function(){var t=v.getTopojsonPath(this.topojsonURL,this.topojsonName);return new Promise(function(e,r){n.json(t,function(n,i){if(n)return 404===n.status?r(new Error([\\\"plotly.js could not find topojson file at\\\",t,\\\".\\\",\\\"Make sure the *topojsonURL* plot config option\\\",\\\"is set properly.\\\"].join(\\\" \\\"))):r(new Error([\\\"unexpected error while fetching topojson file at\\\",t].join(\\\" \\\")));e(i)})})},x.update=function(t,e){var r=e[this.id];if(!this.updateProjection(e,r)){this.hasChoropleth=!1;for(var n=0;n<t.length;n++)if(\\\"choropleth\\\"===t[n][0].trace.type){this.hasChoropleth=!0;break}this.viewInitial||this.saveViewInitial(r),this.updateBaseLayers(e,r),this.updateDims(e,r),this.updateFx(e,r),c.generalUpdatePerTraceModule(this.graphDiv,this,t,r);var i=this.layers.frontplot.select(\\\".scatterlayer\\\");this.dataPoints.point=i.selectAll(\\\".point\\\"),this.dataPoints.text=i.selectAll(\\\"text\\\"),this.dataPaths.line=i.selectAll(\\\".js-line\\\");var a=this.layers.backplot.select(\\\".choroplethlayer\\\");this.dataPaths.choropleth=a.selectAll(\\\"path\\\"),this.render()}},x.updateProjection=function(t,e){var r=t._size,o=e.domain,s=e.projection,l=s.rotation||{},c=e.center||{},u=this.projection=function(t){for(var e=t.projection.type,r=n.geo[g.projNames[e]](),i=t._isClipped?g.lonaxisSpan[e]/2:null,a=[\\\"center\\\",\\\"rotate\\\",\\\"parallels\\\",\\\"clipExtent\\\"],o=function(t){return t?r:[]},s=0;s<a.length;s++){var l=a[s];\\\"function\\\"!=typeof r[l]&&(r[l]=o)}r.isLonLatOverEdges=function(t){if(null===r(t))return!0;if(i){var e=r.rotate();return n.geo.distance(t,[-e[0],-e[1]])>i*Math.PI/180}return!1},r.getPath=function(){return n.geo.path().projection(r)},r.getBounds=function(t){return r.getPath().bounds(t)},r.fitExtent=function(t,e){var n=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=r.clipExtent&&r.clipExtent();r.scale(150).translate([0,0]),a&&r.clipExtent(null);var o=r.getBounds(e),s=Math.min(n/(o[1][0]-o[0][0]),i/(o[1][1]-o[0][1])),l=+t[0][0]+(n-s*(o[1][0]+o[0][0]))/2,c=+t[0][1]+(i-s*(o[1][1]+o[0][1]))/2;return a&&r.clipExtent(a),r.scale(150*s).translate([l,c])},r.precision(g.precision),i&&r.clipAngle(i-g.clipPad);return r}(e);u.center([c.lon-l.lon,c.lat-l.lat]).rotate([-l.lon,-l.lat,l.roll]).parallels(s.parallels);var f=[[r.l+r.w*o.x[0],r.t+r.h*(1-o.y[1])],[r.l+r.w*o.x[1],r.t+r.h*(1-o.y[0])]],h=e.lonaxis,p=e.lataxis,d=function(t,e){var r=g.clipPad,n=t[0]+r,i=t[1]-r,a=e[0]+r,o=e[1]-r;n>0&&i<0&&(i+=360);var s=(i-n)/4;return{type:\\\"Polygon\\\",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}(h.range,p.range);u.fitExtent(f,d);var v=this.bounds=u.getBounds(d),m=this.fitScale=u.scale(),y=u.translate();if(!isFinite(v[0][0])||!isFinite(v[0][1])||!isFinite(v[1][0])||!isFinite(v[1][1])||isNaN(y[0])||isNaN(y[0])){for(var x=this.graphDiv,b=[\\\"projection.rotation\\\",\\\"center\\\",\\\"lonaxis.range\\\",\\\"lataxis.range\\\"],_=\\\"Invalid geo settings, relayout'ing to default view.\\\",w={},k=0;k<b.length;k++)w[this.id+\\\".\\\"+b[k]]=null;return this.viewInitial=null,a.warn(_),x._promises.push(i.call(\\\"relayout\\\",x,w)),_}var M=this.midPt=[(v[0][0]+v[1][0])/2,(v[0][1]+v[1][1])/2];if(u.scale(s.scale*m).translate([y[0]+(M[0]-y[0]),y[1]+(M[1]-y[1])]).clipExtent(v),e._isAlbersUsa){var A=u([c.lon,c.lat]),T=u.translate();u.translate([T[0]-(A[0]-T[0]),T[1]-(A[1]-T[1])])}},x.updateBaseLayers=function(t,e){var r=this,i=r.topojson,a=r.layers,l=r.basePaths;function c(t){return\\\"lonaxis\\\"===t||\\\"lataxis\\\"===t}function u(t){return Boolean(g.lineLayers[t])}function f(t){return Boolean(g.fillLayers[t])}var h=(this.hasChoropleth?g.layersForChoropleth:g.layers).filter(function(t){return u(t)||f(t)?e[\\\"show\\\"+t]:!c(t)||e[t].showgrid}),p=r.framework.selectAll(\\\".layer\\\").data(h,String);p.exit().each(function(t){delete a[t],delete l[t],n.select(this).remove()}),p.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"layer \\\"+t}).each(function(t){var e=a[t]=n.select(this);\\\"bg\\\"===t?r.bgRect=e.append(\\\"rect\\\").style(\\\"pointer-events\\\",\\\"all\\\"):c(t)?l[t]=e.append(\\\"path\\\").style(\\\"fill\\\",\\\"none\\\"):\\\"backplot\\\"===t?e.append(\\\"g\\\").classed(\\\"choroplethlayer\\\",!0):\\\"frontplot\\\"===t?e.append(\\\"g\\\").classed(\\\"scatterlayer\\\",!0):u(t)?l[t]=e.append(\\\"path\\\").style(\\\"fill\\\",\\\"none\\\").style(\\\"stroke-miterlimit\\\",2):f(t)&&(l[t]=e.append(\\\"path\\\").style(\\\"stroke\\\",\\\"none\\\"))}),p.order(),p.each(function(t){var r=l[t],a=g.layerNameToAdjective[t];\\\"frame\\\"===t?r.datum(g.sphereSVG):u(t)||f(t)?r.datum(m(i,i.objects[t])):c(t)&&r.datum(function(t,e){var r=e[t].dtick,i=g.scopeDefaults[e.scope],a=i.lonaxisRange,o=i.lataxisRange,s=\\\"lonaxis\\\"===t?[r]:[0,r];return n.geo.graticule().extent([[a[0],o[0]],[a[1],o[1]]]).step(s)}(t,e)).call(o.stroke,e[t].gridcolor).call(s.dashLine,\\\"\\\",e[t].gridwidth),u(t)?r.call(o.stroke,e[a+\\\"color\\\"]).call(s.dashLine,\\\"\\\",e[a+\\\"width\\\"]):f(t)&&r.call(o.fill,e[a+\\\"color\\\"])})},x.updateDims=function(t,e){var r=this.bounds,n=(e.framewidth||0)/2,i=r[0][0]-n,a=r[0][1]-n,l=r[1][0]-i+n,c=r[1][1]-a+n;s.setRect(this.clipRect,i,a,l,c),this.bgRect.call(s.setRect,i,a,l,c).call(o.fill,e.bgcolor),this.xaxis._offset=i,this.xaxis._length=l,this.yaxis._offset=a,this.yaxis._length=c},x.updateFx=function(t,e){var r=this,a=r.graphDiv,o=r.bgRect,s=t.dragmode,c=t.clickmode;if(!r.isStatic){var u;\\\"select\\\"===s?u=function(t,e){(t.range={})[r.id]=[v([e.xmin,e.ymin]),v([e.xmax,e.ymax])]}:\\\"lasso\\\"===s&&(u=function(t,e,n){(t.lassoPoints={})[r.id]=n.filtered.map(v)});var g={element:r.bgRect.node(),gd:a,plotinfo:{id:r.id,xaxis:r.xaxis,yaxis:r.yaxis,fillRangeItems:u},xaxes:[r.xaxis],yaxes:[r.yaxis],subplot:r.id,clickFn:function(e){2===e&&t._zoomlayer.selectAll(\\\".select-outline\\\").remove()}};\\\"pan\\\"===s?(o.node().onmousedown=null,o.call(d(r,e)),o.on(\\\"dblclick.zoom\\\",function(){var t=r.viewInitial,e={};for(var n in t)e[r.id+\\\".\\\"+n]=t[n];i.call(\\\"relayout\\\",a,e),a.emit(\\\"plotly_doubleclick\\\",null)})):\\\"select\\\"!==s&&\\\"lasso\\\"!==s||(o.on(\\\".zoom\\\",null),g.prepFn=function(t,e,r){h(t,e,r,g,s)},f.init(g)),o.on(\\\"mousemove\\\",function(){var t=r.projection.invert(n.mouse(this));if(!t||isNaN(t[0])||isNaN(t[1]))return f.unhover(a,n.event);r.xaxis.p2c=function(){return t[0]},r.yaxis.p2c=function(){return t[1]},l.hover(a,n.event,r.id)}),o.on(\\\"mouseout\\\",function(){a._dragging||f.unhover(a,n.event)}),o.on(\\\"click\\\",function(){\\\"select\\\"!==s&&\\\"lasso\\\"!==s&&(c.indexOf(\\\"select\\\")>-1&&p(n.event,a,[r.xaxis],[r.yaxis],r.id,g),c.indexOf(\\\"event\\\")>-1&&l.click(a,n.event))})}function v(t){return r.projection.invert([t[0]+r.xaxis._offset,t[1]+r.yaxis._offset])}},x.makeFramework=function(){var t=this,e=t.graphDiv._fullLayout,r=\\\"clip\\\"+e._uid+t.id;t.clipDef=e._clips.append(\\\"clipPath\\\").attr(\\\"id\\\",r),t.clipRect=t.clipDef.append(\\\"rect\\\"),t.framework=n.select(t.container).append(\\\"g\\\").attr(\\\"class\\\",\\\"geo \\\"+t.id).call(s.setClipUrl,r),t.project=function(e){var r=t.projection(e);return r?[r[0]-t.xaxis._offset,r[1]-t.yaxis._offset]:[null,null]},t.xaxis={_id:\\\"x\\\",c2p:function(e){return t.project(e)[0]}},t.yaxis={_id:\\\"y\\\",c2p:function(e){return t.project(e)[1]}},t.mockAxis={type:\\\"linear\\\",showexponent:\\\"all\\\",exponentformat:\\\"B\\\"},u.setConvert(t.mockAxis,e)},x.saveViewInitial=function(t){var e=t.center||{},r=t.projection,n=r.rotation||{};t._isScoped?this.viewInitial={\\\"center.lon\\\":e.lon,\\\"center.lat\\\":e.lat,\\\"projection.scale\\\":r.scale}:t._isClipped?this.viewInitial={\\\"projection.scale\\\":r.scale,\\\"projection.rotation.lon\\\":n.lon,\\\"projection.rotation.lat\\\":n.lat}:this.viewInitial={\\\"center.lon\\\":e.lon,\\\"center.lat\\\":e.lat,\\\"projection.scale\\\":r.scale,\\\"projection.rotation.lon\\\":n.lon}},x.render=function(){var t,e=this.projection,r=e.getPath();function n(t){var r=e(t.lonlat);return r?\\\"translate(\\\"+r[0]+\\\",\\\"+r[1]+\\\")\\\":null}function i(t){return e.isLonLatOverEdges(t.lonlat)?\\\"none\\\":null}for(t in this.basePaths)this.basePaths[t].attr(\\\"d\\\",r);for(t in this.dataPaths)this.dataPaths[t].attr(\\\"d\\\",function(t){return r(t.geojson)});for(t in this.dataPoints)this.dataPoints[t].attr(\\\"display\\\",i).attr(\\\"transform\\\",n)}},{\\\"../../components/color\\\":570,\\\"../../components/dragelement\\\":592,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../lib/topojson_utils\\\":723,\\\"../../registry\\\":827,\\\"../cartesian/axes\\\":744,\\\"../cartesian/select\\\":762,\\\"../plots\\\":808,\\\"./constants\\\":773,\\\"./projections\\\":779,\\\"./zoom\\\":780,d3:148,\\\"topojson-client\\\":517}],775:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./geo\\\"),i=t(\\\"../../plots/get_data\\\").getSubplotCalcData,a=t(\\\"../../lib\\\").counterRegex,o=\\\"geo\\\";r.name=o,r.attr=o,r.idRoot=o,r.idRegex=r.attrRegex=a(o),r.attributes=t(\\\"./layout/attributes\\\"),r.layoutAttributes=t(\\\"./layout/layout_attributes\\\"),r.supplyLayoutDefaults=t(\\\"./layout/defaults\\\"),r.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots.geo;void 0===window.PlotlyGeoAssets&&(window.PlotlyGeoAssets={topojson:{}});for(var s=0;s<a.length;s++){var l=a[s],c=i(r,o,l),u=e[l]._subplot;u||(u=n({id:l,graphDiv:t,container:e._geolayer.node(),topojsonURL:t._context.topojsonURL,staticPlot:t._context.staticPlot}),e[l]._subplot=u),u.plot(c,e,t._promises)}},r.clean=function(t,e,r,n){for(var i=n._subplots.geo||[],a=0;a<i.length;a++){var o=i[a],s=n[o]._subplot;!e[o]&&s&&(s.framework.remove(),s.clipDef.remove())}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.geo,n=0;n<r.length;n++){var i=e[r[n]];i._subplot.updateFx(e,i)}}},{\\\"../../lib\\\":696,\\\"../../plots/get_data\\\":781,\\\"./geo\\\":774,\\\"./layout/attributes\\\":776,\\\"./layout/defaults\\\":777,\\\"./layout/layout_attributes\\\":778}],776:[function(t,e,r){\\\"use strict\\\";e.exports={geo:{valType:\\\"subplotid\\\",dflt:\\\"geo\\\",editType:\\\"calc\\\"}}},{}],777:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../subplot_defaults\\\"),i=t(\\\"../constants\\\"),a=t(\\\"./layout_attributes\\\"),o=i.axesNames;function s(t,e,r){var n=r(\\\"resolution\\\"),a=r(\\\"scope\\\"),s=i.scopeDefaults[a],l=r(\\\"projection.type\\\",s.projType),c=e._isAlbersUsa=\\\"albers usa\\\"===l;c&&(a=e.scope=\\\"usa\\\");var u=e._isScoped=\\\"world\\\"!==a,f=e._isConic=-1!==l.indexOf(\\\"conic\\\");e._isClipped=!!i.lonaxisSpan[l];for(var h=0;h<o.length;h++){var p,d=o[h],g=[30,10][h];if(u)p=s[d+\\\"Range\\\"];else{var v=i[d+\\\"Span\\\"],m=(v[l]||v[\\\"*\\\"])/2,y=r(\\\"projection.rotation.\\\"+d.substr(0,3),s.projRotate[h]);p=[y-m,y+m]}var x=r(d+\\\".range\\\",p);r(d+\\\".tick0\\\",x[0]),r(d+\\\".dtick\\\",g),r(d+\\\".showgrid\\\")&&(r(d+\\\".gridcolor\\\"),r(d+\\\".gridwidth\\\"))}var b=e.lonaxis.range,_=e.lataxis.range,w=b[0],k=b[1];w>0&&k<0&&(k+=360);var M,A,T,S=(w+k)/2;if(!c){var E=u?s.projRotate:[S,0,0];M=r(\\\"projection.rotation.lon\\\",E[0]),r(\\\"projection.rotation.lat\\\",E[1]),r(\\\"projection.rotation.roll\\\",E[2]),r(\\\"showcoastlines\\\",!u)&&(r(\\\"coastlinecolor\\\"),r(\\\"coastlinewidth\\\")),r(\\\"showocean\\\")&&r(\\\"oceancolor\\\")}(c?(A=-96.6,T=38.7):(A=u?S:M,T=(_[0]+_[1])/2),r(\\\"center.lon\\\",A),r(\\\"center.lat\\\",T),f)&&r(\\\"projection.parallels\\\",s.projParallels||[0,60]);r(\\\"projection.scale\\\"),r(\\\"showland\\\")&&r(\\\"landcolor\\\"),r(\\\"showlakes\\\")&&r(\\\"lakecolor\\\"),r(\\\"showrivers\\\")&&(r(\\\"rivercolor\\\"),r(\\\"riverwidth\\\")),r(\\\"showcountries\\\",u&&\\\"usa\\\"!==a)&&(r(\\\"countrycolor\\\"),r(\\\"countrywidth\\\")),(\\\"usa\\\"===a||\\\"north america\\\"===a&&50===n)&&(r(\\\"showsubunits\\\",!0),r(\\\"subunitcolor\\\"),r(\\\"subunitwidth\\\")),u||r(\\\"showframe\\\",!0)&&(r(\\\"framecolor\\\"),r(\\\"framewidth\\\")),r(\\\"bgcolor\\\")}e.exports=function(t,e,r){n(t,e,r,{type:\\\"geo\\\",attributes:a,handleDefaults:s,partition:\\\"y\\\"})}},{\\\"../../subplot_defaults\\\":822,\\\"../constants\\\":773,\\\"./layout_attributes\\\":778}],778:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../components/color/attributes\\\"),i=t(\\\"../../domain\\\").attributes,a=t(\\\"../constants\\\"),o=t(\\\"../../../plot_api/edit_types\\\").overrideAll,s={range:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\"},{valType:\\\"number\\\"}]},showgrid:{valType:\\\"boolean\\\",dflt:!1},tick0:{valType:\\\"number\\\"},dtick:{valType:\\\"number\\\"},gridcolor:{valType:\\\"color\\\",dflt:n.lightLine},gridwidth:{valType:\\\"number\\\",min:0,dflt:1}};e.exports=o({domain:i({name:\\\"geo\\\"},{}),resolution:{valType:\\\"enumerated\\\",values:[110,50],dflt:110,coerceNumber:!0},scope:{valType:\\\"enumerated\\\",values:Object.keys(a.scopeDefaults),dflt:\\\"world\\\"},projection:{type:{valType:\\\"enumerated\\\",values:Object.keys(a.projNames)},rotation:{lon:{valType:\\\"number\\\"},lat:{valType:\\\"number\\\"},roll:{valType:\\\"number\\\"}},parallels:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\"},{valType:\\\"number\\\"}]},scale:{valType:\\\"number\\\",min:0,dflt:1}},center:{lon:{valType:\\\"number\\\"},lat:{valType:\\\"number\\\"}},showcoastlines:{valType:\\\"boolean\\\"},coastlinecolor:{valType:\\\"color\\\",dflt:n.defaultLine},coastlinewidth:{valType:\\\"number\\\",min:0,dflt:1},showland:{valType:\\\"boolean\\\",dflt:!1},landcolor:{valType:\\\"color\\\",dflt:a.landColor},showocean:{valType:\\\"boolean\\\",dflt:!1},oceancolor:{valType:\\\"color\\\",dflt:a.waterColor},showlakes:{valType:\\\"boolean\\\",dflt:!1},lakecolor:{valType:\\\"color\\\",dflt:a.waterColor},showrivers:{valType:\\\"boolean\\\",dflt:!1},rivercolor:{valType:\\\"color\\\",dflt:a.waterColor},riverwidth:{valType:\\\"number\\\",min:0,dflt:1},showcountries:{valType:\\\"boolean\\\"},countrycolor:{valType:\\\"color\\\",dflt:n.defaultLine},countrywidth:{valType:\\\"number\\\",min:0,dflt:1},showsubunits:{valType:\\\"boolean\\\"},subunitcolor:{valType:\\\"color\\\",dflt:n.defaultLine},subunitwidth:{valType:\\\"number\\\",min:0,dflt:1},showframe:{valType:\\\"boolean\\\"},framecolor:{valType:\\\"color\\\",dflt:n.defaultLine},framewidth:{valType:\\\"number\\\",min:0,dflt:1},bgcolor:{valType:\\\"color\\\",dflt:n.background},lonaxis:s,lataxis:s},\\\"plot\\\",\\\"from-root\\\")},{\\\"../../../components/color/attributes\\\":569,\\\"../../../plot_api/edit_types\\\":727,\\\"../../domain\\\":770,\\\"../constants\\\":773}],779:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){function e(t,e){return{type:\\\"Feature\\\",id:t.id,properties:t.properties,geometry:r(t.geometry,e)}}function r(e,n){if(!e)return null;if(\\\"GeometryCollection\\\"===e.type)return{type:\\\"GeometryCollection\\\",geometries:object.geometries.map(function(t){return r(t,n)})};if(!c.hasOwnProperty(e.type))return null;var i=c[e.type];return t.geo.stream(e,n(i)),i.result()}t.geo.project=function(t,e){var i=e.stream;if(!i)throw new Error(\\\"not yet supported\\\");return(t&&n.hasOwnProperty(t.type)?n[t.type]:r)(t,i)};var n={Feature:e,FeatureCollection:function(t,r){return{type:\\\"FeatureCollection\\\",features:t.features.map(function(t){return e(t,r)})}}},i=[],a=[],o={point:function(t,e){i.push([t,e])},result:function(){var t=i.length?i.length<2?{type:\\\"Point\\\",coordinates:i[0]}:{type:\\\"MultiPoint\\\",coordinates:i}:null;return i=[],t}},s={lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){i.length&&(a.push(i),i=[])},result:function(){var t=a.length?a.length<2?{type:\\\"LineString\\\",coordinates:a[0]}:{type:\\\"MultiLineString\\\",coordinates:a}:null;return a=[],t}},l={polygonStart:u,lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){var t=i.length;if(t){do{i.push(i[0].slice())}while(++t<4);a.push(i),i=[]}},polygonEnd:u,result:function(){if(!a.length)return null;var t=[],e=[];return a.forEach(function(r){!function(t){if((e=t.length)<4)return!1;for(var e,r=0,n=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++r<e;)n+=t[r-1][1]*t[r][0]-t[r-1][0]*t[r][1];return n<=0}(r)?e.push(r):t.push([r])}),e.forEach(function(e){var r=e[0];t.some(function(t){if(function(t,e){for(var r=e[0],n=e[1],i=!1,a=0,o=t.length,s=o-1;a<o;s=a++){var l=t[a],c=l[0],u=l[1],f=t[s],h=f[0],p=f[1];u>n^p>n&&r<(h-c)*(n-u)/(p-u)+c&&(i=!i)}return i}(t[0],r))return t.push(e),!0})||t.push([e])}),a=[],t.length?t.length>1?{type:\\\"MultiPolygon\\\",coordinates:t}:{type:\\\"Polygon\\\",coordinates:t[0]}:null}},c={Point:o,MultiPoint:o,LineString:s,MultiLineString:s,Polygon:l,MultiPolygon:l,Sphere:l};function u(){}var f=1e-6,h=f*f,p=Math.PI,d=p/2,g=(Math.sqrt(p),p/180),v=180/p;function m(t){return t>1?d:t<-1?-d:Math.asin(t)}function y(t){return t>1?0:t<-1?p:Math.acos(t)}var x=t.geo.projection,b=t.geo.projectionMutator;function _(t,e){var r=(2+d)*Math.sin(e);e/=2;for(var n=0,i=1/0;n<10&&Math.abs(i)>f;n++){var a=Math.cos(e);e-=i=(e+Math.sin(e)*(a+2)-r)/(2*a*(1+a))}return[2/Math.sqrt(p*(4+p))*t*(1+Math.cos(e)),2*Math.sqrt(p/(4+p))*Math.sin(e)]}t.geo.interrupt=function(e){var r,n=[[[[-p,0],[0,d],[p,0]]],[[[-p,0],[0,-d],[p,0]]]];function i(t,r){for(var i=r<0?-1:1,a=n[+(r<0)],o=0,s=a.length-1;o<s&&t>a[o][2][0];++o);var l=e(t-a[o][1][0],r);return l[0]+=e(a[o][1][0],i*r>i*a[o][0][1]?a[o][0][1]:r)[0],l}e.invert&&(i.invert=function(t,a){for(var o=r[+(a<0)],s=n[+(a<0)],c=0,u=o.length;c<u;++c){var f=o[c];if(f[0][0]<=t&&t<f[1][0]&&f[0][1]<=a&&a<f[1][1]){var h=e.invert(t-e(s[c][1][0],0)[0],a);return h[0]+=s[c][1][0],l(i(h[0],h[1]),[t,a])?h:null}}});var a=t.geo.projection(i),o=a.stream;function s(t,e){for(var r,n,i,a=-1,o=t.length,s=t[0],l=[];++a<o;){n=((r=t[a])[0]-s[0])/e,i=(r[1]-s[1])/e;for(var c=0;c<e;++c)l.push([s[0]+c*n,s[1]+c*i]);s=r}return l.push(r),l}function l(t,e){return Math.abs(t[0]-e[0])<f&&Math.abs(t[1]-e[1])<f}return a.stream=function(e){var r=a.rotate(),i=o(e),l=(a.rotate([0,0]),o(e));return a.rotate(r),i.sphere=function(){t.geo.stream(function(){for(var e=1e-6,r=[],i=0,a=n[0].length;i<a;++i){var o=n[0][i],l=180*o[0][0]/p,c=180*o[0][1]/p,u=180*o[1][1]/p,f=180*o[2][0]/p,h=180*o[2][1]/p;r.push(s([[l+e,c+e],[l+e,u-e],[f-e,u-e],[f-e,h+e]],30))}for(var i=n[1].length-1;i>=0;--i){var o=n[1][i],l=180*o[0][0]/p,c=180*o[0][1]/p,u=180*o[1][1]/p,f=180*o[2][0]/p,h=180*o[2][1]/p;r.push(s([[f-e,h-e],[f-e,u+e],[l+e,u+e],[l+e,c-e]],30))}return{type:\\\"Polygon\\\",coordinates:[t.merge(r)]}}(),l)},i},a.lobes=function(t){return arguments.length?(n=t.map(function(t){return t.map(function(t){return[[t[0][0]*p/180,t[0][1]*p/180],[t[1][0]*p/180,t[1][1]*p/180],[t[2][0]*p/180,t[2][1]*p/180]]})}),r=n.map(function(t){return t.map(function(t){var r,n=e(t[0][0],t[0][1])[0],i=e(t[2][0],t[2][1])[0],a=e(t[1][0],t[0][1])[1],o=e(t[1][0],t[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]})}),a):n.map(function(t){return t.map(function(t){return[[180*t[0][0]/p,180*t[0][1]/p],[180*t[1][0]/p,180*t[1][1]/p],[180*t[2][0]/p,180*t[2][1]/p]]})})},a},_.invert=function(t,e){var r=.5*e*Math.sqrt((4+p)/p),n=m(r),i=Math.cos(n);return[t/(2/Math.sqrt(p*(4+p))*(1+i)),m((n+r*(i+2))/(2+d))]},(t.geo.eckert4=function(){return x(_)}).raw=_;var w=t.geo.azimuthalEqualArea.raw;function k(t,e){if(arguments.length<2&&(e=t),1===e)return w;if(e===1/0)return M;function r(r,n){var i=w(r/e,n);return i[0]*=t,i}return r.invert=function(r,n){var i=w.invert(r/t,n);return i[0]*=e,i},r}function M(t,e){return[t*Math.cos(e)/Math.cos(e/=2),2*Math.sin(e)]}function A(t,e){return[3*t/(2*p)*Math.sqrt(p*p/3-e*e),e]}function T(t,e){return[t,1.25*Math.log(Math.tan(p/4+.4*e))]}function S(t){return function(e){var r,n=t*Math.sin(e),i=30;do{e-=r=(e+Math.sin(e)-n)/(1+Math.cos(e))}while(Math.abs(r)>f&&--i>0);return e/2}}M.invert=function(t,e){var r=2*m(e/2);return[t*Math.cos(r/2)/Math.cos(r),r]},(t.geo.hammer=function(){var t=2,e=b(k),r=e(t);return r.coefficient=function(r){return arguments.length?e(t=+r):t},r}).raw=k,A.invert=function(t,e){return[2/3*p*t/Math.sqrt(p*p/3-e*e),e]},(t.geo.kavrayskiy7=function(){return x(A)}).raw=A,T.invert=function(t,e){return[t,2.5*Math.atan(Math.exp(.8*e))-.625*p]},(t.geo.miller=function(){return x(T)}).raw=T,S(p);var E=function(t,e,r){var n=S(r);function i(r,i){return[t*r*Math.cos(i=n(i)),e*Math.sin(i)]}return i.invert=function(n,i){var a=m(i/e);return[n/(t*Math.cos(a)),m((2*a+Math.sin(2*a))/r)]},i}(Math.SQRT2/d,Math.SQRT2,p);function C(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}(t.geo.mollweide=function(){return x(E)}).raw=E,C.invert=function(t,e){var r,n=e,i=25;do{var a=n*n,o=a*a;n-=r=(n*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-e)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(Math.abs(r)>f&&--i>0);return[t/(.8707+(a=n*n)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),n]},(t.geo.naturalEarth=function(){return x(C)}).raw=C;var L=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];function z(t,e){var r,n=Math.min(18,36*Math.abs(e)/p),i=Math.floor(n),a=n-i,o=(r=L[i])[0],s=r[1],l=(r=L[++i])[0],c=r[1],u=(r=L[Math.min(19,++i)])[0],f=r[1];return[t*(l+a*(u-o)/2+a*a*(u-2*l+o)/2),(e>0?d:-d)*(c+a*(f-s)/2+a*a*(f-2*c+s)/2)]}function O(t,e){return[t*Math.cos(e),e]}function I(t,e){var r,n=Math.cos(e),i=(r=y(n*Math.cos(t/=2)))?r/Math.sin(r):1;return[2*n*Math.sin(t)*i,Math.sin(e)*i]}function P(t,e){var r=I(t,e);return[(r[0]+t/d)/2,(r[1]+e)/2]}L.forEach(function(t){t[1]*=1.0144}),z.invert=function(t,e){var r=e/d,n=90*r,i=Math.min(18,Math.abs(n/5)),a=Math.max(0,Math.floor(i));do{var o=L[a][1],s=L[a+1][1],l=L[Math.min(19,a+2)][1],c=l-o,u=l-2*s+o,f=2*(Math.abs(r)-s)/c,p=u/c,m=f*(1-p*f*(1-2*p*f));if(m>=0||1===a){n=(e>=0?5:-5)*(m+i);var y,x=50;do{m=(i=Math.min(18,Math.abs(n)/5))-(a=Math.floor(i)),o=L[a][1],s=L[a+1][1],l=L[Math.min(19,a+2)][1],n-=(y=(e>=0?d:-d)*(s+m*(l-o)/2+m*m*(l-2*s+o)/2)-e)*v}while(Math.abs(y)>h&&--x>0);break}}while(--a>=0);var b=L[a][0],_=L[a+1][0],w=L[Math.min(19,a+2)][0];return[t/(_+m*(w-b)/2+m*m*(w-2*_+b)/2),n*g]},(t.geo.robinson=function(){return x(z)}).raw=z,O.invert=function(t,e){return[t/Math.cos(e),e]},(t.geo.sinusoidal=function(){return x(O)}).raw=O,I.invert=function(t,e){if(!(t*t+4*e*e>p*p+f)){var r=t,n=e,i=25;do{var a,o=Math.sin(r),s=Math.sin(r/2),l=Math.cos(r/2),c=Math.sin(n),u=Math.cos(n),h=Math.sin(2*n),d=c*c,g=u*u,v=s*s,m=1-g*l*l,x=m?y(u*l)*Math.sqrt(a=1/m):a=0,b=2*x*u*s-t,_=x*c-e,w=a*(g*v+x*u*l*d),k=a*(.5*o*h-2*x*c*s),M=.25*a*(h*s-x*c*g*o),A=a*(d*l+x*v*u),T=k*M-A*w;if(!T)break;var S=(_*k-b*A)/T,E=(b*M-_*w)/T;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]}},(t.geo.aitoff=function(){return x(I)}).raw=I,P.invert=function(t,e){var r=t,n=e,i=25;do{var a,o=Math.cos(n),s=Math.sin(n),l=Math.sin(2*n),c=s*s,u=o*o,h=Math.sin(r),p=Math.cos(r/2),g=Math.sin(r/2),v=g*g,m=1-u*p*p,x=m?y(o*p)*Math.sqrt(a=1/m):a=0,b=.5*(2*x*o*g+r/d)-t,_=.5*(x*s+n)-e,w=.5*a*(u*v+x*o*p*c)+.5/d,k=a*(h*l/4-x*s*g),M=.125*a*(l*g-x*s*u*h),A=.5*a*(c*p+x*v*o)+.5,T=k*M-A*w,S=(_*k-b*A)/T,E=(b*M-_*w)/T;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]},(t.geo.winkel3=function(){return x(P)}).raw=P}},{}],780:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=Math.PI/180,o=180/Math.PI,s={cursor:\\\"pointer\\\"},l={cursor:\\\"auto\\\"};function c(t,e){return n.behavior.zoom().translate(e.translate()).scale(e.scale())}function u(t,e,r){var n=t.id,a=t.graphDiv,o=a.layout[n],s=a._fullLayout[n],l={};function c(t,e){var r=i.nestedProperty(s,t);r.get()!==e&&(r.set(e),i.nestedProperty(o,t).set(e),l[n+\\\".\\\"+t]=e)}r(c),c(\\\"projection.scale\\\",e.scale()/t.fitScale),a.emit(\\\"plotly_relayout\\\",l)}function f(t,e){var r=c(0,e);function i(r){var n=e.invert(t.midPt);r(\\\"center.lon\\\",n[0]),r(\\\"center.lat\\\",n[1])}return r.on(\\\"zoomstart\\\",function(){n.select(this).style(s)}).on(\\\"zoom\\\",function(){e.scale(n.event.scale).translate(n.event.translate),t.render()}).on(\\\"zoomend\\\",function(){n.select(this).style(l),u(t,e,i)}),r}function h(t,e){var r,i,a,o,f,h,p,d,g,v=c(0,e),m=2;function y(t){return e.invert(t)}function x(r){var n=e.rotate(),i=e.invert(t.midPt);r(\\\"projection.rotation.lon\\\",-n[0]),r(\\\"center.lon\\\",i[0]),r(\\\"center.lat\\\",i[1])}return v.on(\\\"zoomstart\\\",function(){n.select(this).style(s),r=n.mouse(this),i=e.rotate(),a=e.translate(),o=i,f=y(r)}).on(\\\"zoom\\\",function(){if(h=n.mouse(this),function(t){var r=y(t);if(!r)return!0;var n=e(r);return Math.abs(n[0]-t[0])>m||Math.abs(n[1]-t[1])>m}(r))return v.scale(e.scale()),void v.translate(e.translate());e.scale(n.event.scale),e.translate([a[0],n.event.translate[1]]),f?y(h)&&(d=y(h),p=[o[0]+(d[0]-f[0]),i[1],i[2]],e.rotate(p),o=p):f=y(r=h),g=!0,t.render()}).on(\\\"zoomend\\\",function(){n.select(this).style(l),g&&u(t,e,x)}),v}function p(t,e){var r,i={r:e.rotate(),k:e.scale()},f=c(0,e),h=function(t){var e=0,r=arguments.length,i=[];for(;++e<r;)i.push(arguments[e]);var a=n.dispatch.apply(null,i);return a.of=function(e,r){return function(i){var o;try{o=i.sourceEvent=n.event,i.target=t,n.event=i,a[i.type].apply(e,r)}finally{n.event=o}}},a}(f,\\\"zoomstart\\\",\\\"zoom\\\",\\\"zoomend\\\"),p=0,v=f.on;function x(t){var r=e.rotate();t(\\\"projection.rotation.lon\\\",-r[0]),t(\\\"projection.rotation.lat\\\",-r[1])}return f.on(\\\"zoomstart\\\",function(){n.select(this).style(s);var t,l,c,u,x,b,_,w,k,M,A,T=n.mouse(this),S=e.rotate(),E=S,C=e.translate(),L=(l=.5*(t=S)[0]*a,c=.5*t[1]*a,u=.5*t[2]*a,x=Math.sin(l),b=Math.cos(l),_=Math.sin(c),w=Math.cos(c),k=Math.sin(u),M=Math.cos(u),[b*w*M+x*_*k,x*w*M-b*_*k,b*_*M+x*w*k,b*w*k-x*_*M]);r=d(e,T),v.call(f,\\\"zoom\\\",function(){var t,a,s,l,c,u,f,p,v,x,b=n.mouse(this);if(e.scale(i.k=n.event.scale),r){if(d(e,b)){e.rotate(S).translate(C);var _=d(e,b),w=function(t,e){if(!t||!e)return;var r=function(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}(t,e),n=Math.sqrt(y(r,r)),i=.5*Math.acos(Math.max(-1,Math.min(1,y(t,e)))),a=Math.sin(i)/n;return n&&[Math.cos(i),r[2]*a,-r[1]*a,r[0]*a]}(r,_),k=function(t){return[Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),1-2*(t[1]*t[1]+t[2]*t[2]))*o,Math.asin(Math.max(-1,Math.min(1,2*(t[0]*t[2]-t[3]*t[1]))))*o,Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),1-2*(t[2]*t[2]+t[3]*t[3]))*o]}((a=w,s=(t=L)[0],l=t[1],c=t[2],u=t[3],f=a[0],p=a[1],v=a[2],x=a[3],[s*f-l*p-c*v-u*x,s*p+l*f+c*x-u*v,s*v-l*x+c*f+u*p,s*x+l*v-c*p+u*f])),M=i.r=function(t,e,r){var n=m(e,2,t[0]);n=m(n,1,t[1]),n=m(n,0,t[2]-r[2]);var i,a,s=e[0],l=e[1],c=e[2],u=n[0],f=n[1],h=n[2],p=Math.atan2(l,s)*o,d=Math.sqrt(s*s+l*l);Math.abs(f)>d?(a=(f>0?90:-90)-p,i=0):(a=Math.asin(f/d)*o-p,i=Math.sqrt(d*d-f*f));var v=180-a-2*p,y=(Math.atan2(h,u)-Math.atan2(c,i))*o,x=(Math.atan2(h,u)-Math.atan2(c,-i))*o,b=g(r[0],r[1],a,y),_=g(r[0],r[1],v,x);return b<=_?[a,y,r[2]]:[v,x,r[2]]}(k,r,E);isFinite(M[0])&&isFinite(M[1])&&isFinite(M[2])||(M=E),e.rotate(M),E=M}}else r=d(e,T=b);h.of(this,arguments)({type:\\\"zoom\\\"})}),A=h.of(this,arguments),p++||A({type:\\\"zoomstart\\\"})}).on(\\\"zoomend\\\",function(){var r;n.select(this).style(l),v.call(f,\\\"zoom\\\",null),r=h.of(this,arguments),--p||r({type:\\\"zoomend\\\"}),u(t,e,x)}).on(\\\"zoom.redraw\\\",function(){t.render()}),n.rebind(f,h,\\\"on\\\")}function d(t,e){var r=t.invert(e);return r&&isFinite(r[0])&&isFinite(r[1])&&function(t){var e=t[0]*a,r=t[1]*a,n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}(r)}function g(t,e,r,n){var i=v(r-t),a=v(n-e);return Math.sqrt(i*i+a*a)}function v(t){return(t%360+540)%360-180}function m(t,e,r){var n=r*a,i=t.slice(),o=0===e?1:0,s=2===e?1:2,l=Math.cos(n),c=Math.sin(n);return i[o]=t[o]*l-t[s]*c,i[s]=t[s]*l+t[o]*c,i}function y(t,e){for(var r=0,n=0,i=t.length;n<i;++n)r+=t[n]*e[n];return r}e.exports=function(t,e){var r=t.projection;return(e._isScoped?f:e._isClipped?p:h)(t,r)}},{\\\"../../lib\\\":696,d3:148}],781:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\"),i=t(\\\"./cartesian/constants\\\").SUBPLOT_PATTERN;r.getSubplotCalcData=function(t,e,r){var i=n.subplotsRegistry[e];if(!i)return[];for(var a=i.attr,o=[],s=0;s<t.length;s++){var l=t[s];l[0].trace[a]===r&&o.push(l)}return o},r.getModuleCalcData=function(t,e){var r,i=[],a=[];if(!(r=\\\"string\\\"==typeof e?n.getModule(e).plot:\\\"function\\\"==typeof e?e:e.plot))return[i,t];for(var o=0;o<t.length;o++){var s=t[o],l=s[0].trace;!0===l.visible&&(l._module.plot===r?i.push(s):a.push(s))}return[i,a]},r.getSubplotData=function(t,e,r){if(!n.subplotsRegistry[e])return[];var a,o,s,l=n.subplotsRegistry[e].attr,c=[];if(\\\"gl2d\\\"===e){var u=r.match(i);o=\\\"x\\\"+u[1],s=\\\"y\\\"+u[2]}for(var f=0;f<t.length;f++)a=t[f],\\\"gl2d\\\"===e&&n.traceIs(a,\\\"gl2d\\\")?a[l[0]]===o&&a[l[1]]===s&&c.push(a):a[l]===r&&c.push(a);return c}},{\\\"../registry\\\":827,\\\"./cartesian/constants\\\":750}],782:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"mouse-change\\\"),i=t(\\\"mouse-wheel\\\"),a=t(\\\"mouse-event-offset\\\"),o=t(\\\"../cartesian/constants\\\"),s=t(\\\"has-passive-events\\\");function l(t,e){this.element=t,this.plot=e,this.mouseListener=null,this.wheelListener=null,this.lastInputTime=Date.now(),this.lastPos=[0,0],this.boxEnabled=!1,this.boxInited=!1,this.boxStart=[0,0],this.boxEnd=[0,0],this.dragStart=[0,0]}e.exports=function(t){var e=t.mouseContainer,r=t.glplot,c=new l(e,r);function u(){t.xaxis.autorange=!1,t.yaxis.autorange=!1}function f(e,n,i){var a,s,l=t.calcDataBox(),f=r.viewBox,h=c.lastPos[0],p=c.lastPos[1],d=o.MINDRAG*r.pixelRatio,g=o.MINZOOM*r.pixelRatio;function v(e,r,n){var i=Math.min(r,n),a=Math.max(r,n);i!==a?(l[e]=i,l[e+2]=a,c.dataBox=l,t.setRanges(l)):(t.selectBox.selectBox=[0,0,1,1],t.glplot.setDirty())}switch(n*=r.pixelRatio,i*=r.pixelRatio,i=f[3]-f[1]-i,t.fullLayout.dragmode){case\\\"zoom\\\":if(e){var m=n/(f[2]-f[0])*(l[2]-l[0])+l[0],y=i/(f[3]-f[1])*(l[3]-l[1])+l[1];c.boxInited||(c.boxStart[0]=m,c.boxStart[1]=y,c.dragStart[0]=n,c.dragStart[1]=i),c.boxEnd[0]=m,c.boxEnd[1]=y,c.boxInited=!0,c.boxEnabled||c.boxStart[0]===c.boxEnd[0]&&c.boxStart[1]===c.boxEnd[1]||(c.boxEnabled=!0);var x=Math.abs(c.dragStart[0]-n)<g,b=Math.abs(c.dragStart[1]-i)<g;if(!function(){for(var e=t.graphDiv._fullLayout._axisConstraintGroups,r=t.xaxis._id,n=t.yaxis._id,i=0;i<e.length;i++)if(-1!==e[i][r]){if(-1!==e[i][n])return!0;break}return!1}()||x&&b)x&&(c.boxEnd[0]=c.boxStart[0]),b&&(c.boxEnd[1]=c.boxStart[1]);else{a=c.boxEnd[0]-c.boxStart[0],s=c.boxEnd[1]-c.boxStart[1];var _=(l[3]-l[1])/(l[2]-l[0]);Math.abs(a*_)>Math.abs(s)?(c.boxEnd[1]=c.boxStart[1]+Math.abs(a)*_*(s>=0?1:-1),c.boxEnd[1]<l[1]?(c.boxEnd[1]=l[1],c.boxEnd[0]=c.boxStart[0]+(l[1]-c.boxStart[1])/Math.abs(_)):c.boxEnd[1]>l[3]&&(c.boxEnd[1]=l[3],c.boxEnd[0]=c.boxStart[0]+(l[3]-c.boxStart[1])/Math.abs(_))):(c.boxEnd[0]=c.boxStart[0]+Math.abs(s)/_*(a>=0?1:-1),c.boxEnd[0]<l[0]?(c.boxEnd[0]=l[0],c.boxEnd[1]=c.boxStart[1]+(l[0]-c.boxStart[0])*Math.abs(_)):c.boxEnd[0]>l[2]&&(c.boxEnd[0]=l[2],c.boxEnd[1]=c.boxStart[1]+(l[2]-c.boxStart[0])*Math.abs(_)))}}else c.boxEnabled?(a=c.boxStart[0]!==c.boxEnd[0],s=c.boxStart[1]!==c.boxEnd[1],a||s?(a&&(v(0,c.boxStart[0],c.boxEnd[0]),t.xaxis.autorange=!1),s&&(v(1,c.boxStart[1],c.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),c.boxEnabled=!1,c.boxInited=!1):c.boxInited&&(c.boxInited=!1);break;case\\\"pan\\\":c.boxEnabled=!1,c.boxInited=!1,e?(c.panning||(c.dragStart[0]=n,c.dragStart[1]=i),Math.abs(c.dragStart[0]-n)<d&&(n=c.dragStart[0]),Math.abs(c.dragStart[1]-i)<d&&(i=c.dragStart[1]),a=(h-n)*(l[2]-l[0])/(r.viewBox[2]-r.viewBox[0]),s=(p-i)*(l[3]-l[1])/(r.viewBox[3]-r.viewBox[1]),l[0]+=a,l[2]+=a,l[1]+=s,l[3]+=s,t.setRanges(l),c.panning=!0,c.lastInputTime=Date.now(),u(),t.cameraChanged(),t.handleAnnotations()):c.panning&&(c.panning=!1,t.relayoutCallback())}c.lastPos[0]=n,c.lastPos[1]=i}return c.mouseListener=n(e,f),e.addEventListener(\\\"touchstart\\\",function(t){var r=a(t.changedTouches[0],e);f(0,r[0],r[1]),f(1,r[0],r[1]),t.preventDefault()},!!s&&{passive:!1}),e.addEventListener(\\\"touchmove\\\",function(t){t.preventDefault();var r=a(t.changedTouches[0],e);f(1,r[0],r[1]),t.preventDefault()},!!s&&{passive:!1}),e.addEventListener(\\\"touchend\\\",function(t){f(0,c.lastPos[0],c.lastPos[1]),t.preventDefault()},!!s&&{passive:!1}),c.wheelListener=i(e,function(e,n){if(!t.scrollZoom)return!1;var i=t.calcDataBox(),a=r.viewBox,o=c.lastPos[0],s=c.lastPos[1],l=Math.exp(5*n/(a[3]-a[1])),f=o/(a[2]-a[0])*(i[2]-i[0])+i[0],h=s/(a[3]-a[1])*(i[3]-i[1])+i[1];return i[0]=(i[0]-f)*l+f,i[2]=(i[2]-f)*l+f,i[1]=(i[1]-h)*l+h,i[3]=(i[3]-h)*l+h,t.setRanges(i),c.lastInputTime=Date.now(),u(),t.cameraChanged(),t.handleAnnotations(),t.relayoutCallback(),!0},!0),c}},{\\\"../cartesian/constants\\\":750,\\\"has-passive-events\\\":394,\\\"mouse-change\\\":418,\\\"mouse-event-offset\\\":419,\\\"mouse-wheel\\\":421}],783:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../cartesian/axes\\\"),i=t(\\\"../../lib/html2unicode\\\"),a=t(\\\"../../lib/str2rgbarray\\\");function o(t){this.scene=t,this.gl=t.gl,this.pixelRatio=t.pixelRatio,this.screenBox=[0,0,1,1],this.viewBox=[0,0,1,1],this.dataBox=[-1,-1,1,1],this.borderLineEnable=[!1,!1,!1,!1],this.borderLineWidth=[1,1,1,1],this.borderLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.ticks=[[],[]],this.tickEnable=[!0,!0,!1,!1],this.tickPad=[15,15,15,15],this.tickAngle=[0,0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickMarkLength=[0,0,0,0],this.tickMarkWidth=[0,0,0,0],this.tickMarkColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labels=[\\\"x\\\",\\\"y\\\"],this.labelEnable=[!0,!0,!1,!1],this.labelAngle=[0,Math.PI/2,0,3*Math.PI/2],this.labelPad=[15,15,15,15],this.labelSize=[12,12],this.labelFont=[\\\"sans-serif\\\",\\\"sans-serif\\\"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.title=\\\"\\\",this.titleEnable=!0,this.titleCenter=[0,0,0,0],this.titleAngle=0,this.titleColor=[0,0,0,1],this.titleFont=\\\"sans-serif\\\",this.titleSize=18,this.gridLineEnable=[!0,!0],this.gridLineColor=[[0,0,0,.5],[0,0,0,.5]],this.gridLineWidth=[1,1],this.zeroLineEnable=[!0,!0],this.zeroLineWidth=[1,1],this.zeroLineColor=[[0,0,0,1],[0,0,0,1]],this.borderColor=!1,this.backgroundColor=[0,0,0,0],this.static=this.scene.staticPlot}var s=o.prototype,l=[\\\"xaxis\\\",\\\"yaxis\\\"];s.merge=function(t){var e,r,n,o,s,c,u,f,h,p,d;for(this.titleEnable=!1,this.backgroundColor=a(t.plot_bgcolor),p=0;p<2;++p){var g=(e=l[p]).charAt(0);for(n=(r=t[this.scene[e]._name]).title===this.scene.fullLayout._dfltTitle[g]?\\\"\\\":r.title,d=0;d<=2;d+=2)this.labelEnable[p+d]=!1,this.labels[p+d]=i(n),this.labelColor[p+d]=a(r.titlefont.color),this.labelFont[p+d]=r.titlefont.family,this.labelSize[p+d]=r.titlefont.size,this.labelPad[p+d]=this.getLabelPad(e,r),this.tickEnable[p+d]=!1,this.tickColor[p+d]=a((r.tickfont||{}).color),this.tickAngle[p+d]=\\\"auto\\\"===r.tickangle?0:Math.PI*-r.tickangle/180,this.tickPad[p+d]=this.getTickPad(r),this.tickMarkLength[p+d]=0,this.tickMarkWidth[p+d]=r.tickwidth||0,this.tickMarkColor[p+d]=a(r.tickcolor),this.borderLineEnable[p+d]=!1,this.borderLineColor[p+d]=a(r.linecolor),this.borderLineWidth[p+d]=r.linewidth||0;u=this.hasSharedAxis(r),s=this.hasAxisInDfltPos(e,r)&&!u,c=this.hasAxisInAltrPos(e,r)&&!u,o=r.mirror||!1,f=u?-1!==String(o).indexOf(\\\"all\\\"):!!o,h=u?\\\"allticks\\\"===o:-1!==String(o).indexOf(\\\"ticks\\\"),s?this.labelEnable[p]=!0:c&&(this.labelEnable[p+2]=!0),s?this.tickEnable[p]=r.showticklabels:c&&(this.tickEnable[p+2]=r.showticklabels),(s||f)&&(this.borderLineEnable[p]=r.showline),(c||f)&&(this.borderLineEnable[p+2]=r.showline),(s||h)&&(this.tickMarkLength[p]=this.getTickMarkLength(r)),(c||h)&&(this.tickMarkLength[p+2]=this.getTickMarkLength(r)),this.gridLineEnable[p]=r.showgrid,this.gridLineColor[p]=a(r.gridcolor),this.gridLineWidth[p]=r.gridwidth,this.zeroLineEnable[p]=r.zeroline,this.zeroLineColor[p]=a(r.zerolinecolor),this.zeroLineWidth[p]=r.zerolinewidth}},s.hasSharedAxis=function(t){var e=this.scene,r=e.fullLayout._subplots.gl2d;return 0!==n.findSubplotsWithAxis(r,t).indexOf(e.id)},s.hasAxisInDfltPos=function(t,e){var r=e.side;return\\\"xaxis\\\"===t?\\\"bottom\\\"===r:\\\"yaxis\\\"===t?\\\"left\\\"===r:void 0},s.hasAxisInAltrPos=function(t,e){var r=e.side;return\\\"xaxis\\\"===t?\\\"top\\\"===r:\\\"yaxis\\\"===t?\\\"right\\\"===r:void 0},s.getLabelPad=function(t,e){var r=e.titlefont.size,n=e.showticklabels;return\\\"xaxis\\\"===t?\\\"top\\\"===e.side?r*(1.5+(n?1:0))-10:r*(1.5+(n?.5:0))-10:\\\"yaxis\\\"===t?\\\"right\\\"===e.side?10+r*(1.5+(n?1:.5)):10+r*(1.5+(n?.5:0)):void 0},s.getTickPad=function(t){return\\\"outside\\\"===t.ticks?10+t.ticklen:15},s.getTickMarkLength=function(t){if(!t.ticks)return 0;var e=t.ticklen;return\\\"inside\\\"===t.ticks?-e:e},e.exports=function(t){return new o(t)}},{\\\"../../lib/html2unicode\\\":694,\\\"../../lib/str2rgbarray\\\":719,\\\"../cartesian/axes\\\":744}],784:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plot_api/edit_types\\\").overrideAll,i=t(\\\"./scene2d\\\"),a=t(\\\"../layout_attributes\\\"),o=t(\\\"../../constants/xmlns_namespaces\\\"),s=t(\\\"../cartesian/constants\\\"),l=t(\\\"../cartesian\\\"),c=t(\\\"../../components/fx/layout_attributes\\\"),u=t(\\\"../get_data\\\").getSubplotData;r.name=\\\"gl2d\\\",r.attr=[\\\"xaxis\\\",\\\"yaxis\\\"],r.idRoot=[\\\"x\\\",\\\"y\\\"],r.idRegex=s.idRegex,r.attrRegex=s.attrRegex,r.attributes=t(\\\"../cartesian/attributes\\\"),r.supplyLayoutDefaults=function(t,e,r){e._has(\\\"cartesian\\\")||l.supplyLayoutDefaults(t,e,r)},r.layoutAttrOverrides=n(l.layoutAttributes,\\\"plot\\\",\\\"from-root\\\"),r.baseLayoutAttrOverrides=n({plot_bgcolor:a.plot_bgcolor,hoverlabel:c.hoverlabel},\\\"plot\\\",\\\"nested\\\"),r.plot=function(t){for(var e=t._fullLayout,r=t._fullData,n=e._subplots.gl2d,a=0;a<n.length;a++){var o=n[a],s=e._plots[o],l=u(r,\\\"gl2d\\\",o),c=s._scene2d;void 0===c&&(c=new i({id:o,graphDiv:t,container:t.querySelector(\\\".gl-container\\\"),staticPlot:t._context.staticPlot,plotGlPixelRatio:t._context.plotGlPixelRatio},e),s._scene2d=c),c.plot(l,t.calcdata,e,t.layout)}},r.clean=function(t,e,r,n){for(var i=n._subplots.gl2d||[],a=0;a<i.length;a++){var o=i[a],s=n._plots[o];if(s._scene2d)0===u(t,\\\"gl2d\\\",o).length&&(s._scene2d.destroy(),delete n._plots[o])}l.clean.apply(this,arguments)},r.drawFramework=function(t){t._context.staticPlot||l.drawFramework(t)},r.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.gl2d,n=0;n<r.length;n++){var i=e._plots[r[n]]._scene2d,a=i.toImage(\\\"png\\\");e._glimages.append(\\\"svg:image\\\").attr({xmlns:o.svg,\\\"xlink:href\\\":a,x:0,y:0,width:\\\"100%\\\",height:\\\"100%\\\",preserveAspectRatio:\\\"none\\\"}),i.destroy()}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.gl2d,n=0;n<r.length;n++){e._plots[r[n]]._scene2d.updateFx(e.dragmode)}}},{\\\"../../components/fx/layout_attributes\\\":613,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../plot_api/edit_types\\\":727,\\\"../cartesian\\\":756,\\\"../cartesian/attributes\\\":742,\\\"../cartesian/constants\\\":750,\\\"../get_data\\\":781,\\\"../layout_attributes\\\":799,\\\"./scene2d\\\":785}],785:[function(t,e,r){\\\"use strict\\\";var n,i,a=t(\\\"../../registry\\\"),o=t(\\\"../../plots/cartesian/axes\\\"),s=t(\\\"../../components/fx\\\"),l=t(\\\"gl-plot2d\\\"),c=t(\\\"gl-spikes2d\\\"),u=t(\\\"gl-select-box\\\"),f=t(\\\"webgl-context\\\"),h=t(\\\"./convert\\\"),p=t(\\\"./camera\\\"),d=t(\\\"../../lib/html2unicode\\\"),g=t(\\\"../../lib/show_no_webgl_msg\\\"),v=t(\\\"../cartesian/constraints\\\"),m=v.enforce,y=v.clean,x=t(\\\"../cartesian/autorange\\\").doAutoRange,b=[\\\"xaxis\\\",\\\"yaxis\\\"],_=t(\\\"../cartesian/constants\\\").SUBPLOT_PATTERN;function w(t,e){this.container=t.container,this.graphDiv=t.graphDiv,this.pixelRatio=t.plotGlPixelRatio||window.devicePixelRatio,this.id=t.id,this.staticPlot=!!t.staticPlot,this.scrollZoom=this.graphDiv._context.scrollZoom,this.fullData=null,this.updateRefs(e),this.makeFramework(),this.stopped||(this.glplotOptions=h(this),this.glplotOptions.merge(e),this.glplot=l(this.glplotOptions),this.camera=p(this),this.traces={},this.spikes=c(this.glplot),this.selectBox=u(this.glplot,{innerFill:!1,outerFill:!0}),this.lastButtonState=0,this.pickResult=null,this.isMouseOver=!0,this.stopped=!1,this.redraw=this.draw.bind(this),this.redraw())}e.exports=w;var k=w.prototype;k.makeFramework=function(){if(this.staticPlot){if(!(i||(n=document.createElement(\\\"canvas\\\"),i=f({canvas:n,preserveDrawingBuffer:!1,premultipliedAlpha:!0,antialias:!0}))))throw new Error(\\\"Error creating static canvas/context for image server\\\");this.canvas=n,this.gl=i}else{var t=this.container.querySelector(\\\".gl-canvas-focus\\\"),e=f({canvas:t,preserveDrawingBuffer:!0,premultipliedAlpha:!0});if(!e)return g(this),void(this.stopped=!0);this.canvas=t,this.gl=e}var r=this.canvas;r.style.width=\\\"100%\\\",r.style.height=\\\"100%\\\",r.style.position=\\\"absolute\\\",r.style.top=\\\"0px\\\",r.style.left=\\\"0px\\\",r.style[\\\"pointer-events\\\"]=\\\"none\\\",this.updateSize(r),r.className+=\\\" user-select-none\\\";var a=this.svgContainer=document.createElementNS(\\\"http://www.w3.org/2000/svg\\\",\\\"svg\\\");a.style.position=\\\"absolute\\\",a.style.top=a.style.left=\\\"0px\\\",a.style.width=a.style.height=\\\"100%\\\",a.style[\\\"z-index\\\"]=20,a.style[\\\"pointer-events\\\"]=\\\"none\\\";var o=this.mouseContainer=document.createElement(\\\"div\\\");o.style.position=\\\"absolute\\\",o.style[\\\"pointer-events\\\"]=\\\"auto\\\",this.pickCanvas=this.container.querySelector(\\\".gl-canvas-pick\\\");var s=this.container;s.appendChild(a),s.appendChild(o);var l=this;o.addEventListener(\\\"mouseout\\\",function(){l.isMouseOver=!1,l.unhover()}),o.addEventListener(\\\"mouseover\\\",function(){l.isMouseOver=!0})},k.toImage=function(t){t||(t=\\\"png\\\"),this.stopped=!0,this.staticPlot&&this.container.appendChild(n),this.updateSize(this.canvas);var e=this.glplot.gl,r=e.drawingBufferWidth,i=e.drawingBufferHeight;e.clearColor(1,1,1,0),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT),this.glplot.setDirty(),this.glplot.draw(),e.bindFramebuffer(e.FRAMEBUFFER,null);var a=new Uint8Array(r*i*4);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a);for(var o=0,s=i-1;o<s;++o,--s)for(var l=0;l<r;++l)for(var c=0;c<4;++c){var u=a[4*(r*o+l)+c];a[4*(r*o+l)+c]=a[4*(r*s+l)+c],a[4*(r*s+l)+c]=u}var f=document.createElement(\\\"canvas\\\");f.width=r,f.height=i;var h,p=f.getContext(\\\"2d\\\"),d=p.createImageData(r,i);switch(d.data.set(a),p.putImageData(d,0,0),t){case\\\"jpeg\\\":h=f.toDataURL(\\\"image/jpeg\\\");break;case\\\"webp\\\":h=f.toDataURL(\\\"image/webp\\\");break;default:h=f.toDataURL(\\\"image/png\\\")}return this.staticPlot&&this.container.removeChild(n),h},k.updateSize=function(t){t||(t=this.canvas);var e=this.pixelRatio,r=this.fullLayout,n=r.width,i=r.height,a=0|Math.ceil(e*n),o=0|Math.ceil(e*i);return t.width===a&&t.height===o||(t.width=a,t.height=o),t},k.computeTickMarks=function(){this.xaxis.setScale(),this.yaxis.setScale();for(var t=[o.calcTicks(this.xaxis),o.calcTicks(this.yaxis)],e=0;e<2;++e)for(var r=0;r<t[e].length;++r)t[e][r].text=d(t[e][r].text+\\\"\\\");return t},k.updateRefs=function(t){this.fullLayout=t;var e=this.id.match(_),r=\\\"xaxis\\\"+e[1],n=\\\"yaxis\\\"+e[2];this.xaxis=this.fullLayout[r],this.yaxis=this.fullLayout[n]},k.relayoutCallback=function(){var t=this.graphDiv,e=this.xaxis,r=this.yaxis,n=t.layout;n.xaxis.autorange=e.autorange,n.xaxis.range=e.range.slice(0),n.yaxis.autorange=r.autorange,n.yaxis.range=r.range.slice(0);var i={lastInputTime:this.camera.lastInputTime};i[e._name]=e.range.slice(0),i[r._name]=r.range.slice(0),t.emit(\\\"plotly_relayout\\\",i)},k.cameraChanged=function(){var t=this.camera;this.glplot.setDataBox(this.calcDataBox());var e=this.computeTickMarks();(function(t,e){for(var r=0;r<2;++r){var n=t[r],i=e[r];if(n.length!==i.length)return!0;for(var a=0;a<n.length;++a)if(n[a].x!==i[a].x)return!0}return!1})(e,this.glplotOptions.ticks)&&(this.glplotOptions.ticks=e,this.glplotOptions.dataBox=t.dataBox,this.glplot.update(this.glplotOptions),this.handleAnnotations())},k.handleAnnotations=function(){for(var t=this.graphDiv,e=this.fullLayout.annotations,r=0;r<e.length;r++){var n=e[r];n.xref===this.xaxis._id&&n.yref===this.yaxis._id&&a.getComponentMethod(\\\"annotations\\\",\\\"drawOne\\\")(t,r)}},k.destroy=function(){if(this.glplot){var t=this.traces;t&&Object.keys(t).map(function(e){t[e].dispose(),delete t[e]}),this.glplot.dispose(),this.container.removeChild(this.svgContainer),this.container.removeChild(this.mouseContainer),this.fullData=null,this.glplot=null,this.stopped=!0,this.camera.mouseListener.enabled=!1,this.mouseContainer.removeEventListener(\\\"wheel\\\",this.camera.wheelListener),this.camera=null}},k.plot=function(t,e,r){var n=this.glplot;this.updateRefs(r),this.xaxis.clearCalc(),this.yaxis.clearCalc(),this.updateTraces(t,e),this.updateFx(r.dragmode);var i=r.width,a=r.height;this.updateSize(this.canvas);var o=this.glplotOptions;o.merge(r),o.screenBox=[0,0,i,a];var s={_fullLayout:{_axisConstraintGroups:this.graphDiv._fullLayout._axisConstraintGroups,xaxis:this.xaxis,yaxis:this.yaxis}};y(s,this.xaxis),y(s,this.yaxis);var l,c,u=r._size,f=this.xaxis.domain,h=this.yaxis.domain;for(o.viewBox=[u.l+f[0]*u.w,u.b+h[0]*u.h,i-u.r-(1-f[1])*u.w,a-u.t-(1-h[1])*u.h],this.mouseContainer.style.width=u.w*(f[1]-f[0])+\\\"px\\\",this.mouseContainer.style.height=u.h*(h[1]-h[0])+\\\"px\\\",this.mouseContainer.height=u.h*(h[1]-h[0]),this.mouseContainer.style.left=u.l+f[0]*u.w+\\\"px\\\",this.mouseContainer.style.top=u.t+(1-h[1])*u.h+\\\"px\\\",c=0;c<2;++c)(l=this[b[c]])._length=o.viewBox[c+2]-o.viewBox[c],x(this.graphDiv,l),l.setScale();m(s),o.ticks=this.computeTickMarks(),o.dataBox=this.calcDataBox(),o.merge(r),n.update(o),this.glplot.draw()},k.calcDataBox=function(){var t=this.xaxis,e=this.yaxis,r=t.range,n=e.range,i=t.r2l,a=e.r2l;return[i(r[0]),a(n[0]),i(r[1]),a(n[1])]},k.setRanges=function(t){var e=this.xaxis,r=this.yaxis,n=e.l2r,i=r.l2r;e.range=[n(t[0]),n(t[2])],r.range=[i(t[1]),i(t[3])]},k.updateTraces=function(t,e){var r,n,i,a=Object.keys(this.traces);this.fullData=t;t:for(r=0;r<a.length;r++){var o=a[r],s=this.traces[o];for(n=0;n<t.length;n++)if((i=t[n]).uid===o&&i.type===s.type)continue t;s.dispose(),delete this.traces[o]}for(r=0;r<t.length;r++){i=t[r];var l=e[r],c=this.traces[i.uid];c?c.update(i,l):(c=i._module.plot(this,i,l),this.traces[i.uid]=c)}this.glplot.objects.sort(function(t,e){return t._trace.index-e._trace.index})},k.updateFx=function(t){\\\"lasso\\\"===t||\\\"select\\\"===t?(this.pickCanvas.style[\\\"pointer-events\\\"]=\\\"none\\\",this.mouseContainer.style[\\\"pointer-events\\\"]=\\\"none\\\"):(this.pickCanvas.style[\\\"pointer-events\\\"]=\\\"auto\\\",this.mouseContainer.style[\\\"pointer-events\\\"]=\\\"auto\\\"),this.mouseContainer.style.cursor=\\\"pan\\\"===t?\\\"move\\\":\\\"zoom\\\"===t?\\\"crosshair\\\":null},k.emitPointAction=function(t,e){for(var r,n=t.trace.uid,i=t.pointIndex,a=0;a<this.fullData.length;a++)this.fullData[a].uid===n&&(r=this.fullData[a]);var o={x:t.traceCoord[0],y:t.traceCoord[1],curveNumber:r.index,pointNumber:i,data:r._input,fullData:this.fullData,xaxis:this.xaxis,yaxis:this.yaxis};s.appendArrayPointValue(o,r,i),this.graphDiv.emit(e,{points:[o]})},k.draw=function(){if(!this.stopped){requestAnimationFrame(this.redraw);var t=this.glplot,e=this.camera,r=e.mouseListener,n=1===this.lastButtonState&&0===r.buttons,i=this.fullLayout;this.lastButtonState=r.buttons,this.cameraChanged();var a,o=r.x*t.pixelRatio,l=this.canvas.height-t.pixelRatio*r.y;if(e.boxEnabled&&\\\"zoom\\\"===i.dragmode){this.selectBox.enabled=!0;for(var c=this.selectBox.selectBox=[Math.min(e.boxStart[0],e.boxEnd[0]),Math.min(e.boxStart[1],e.boxEnd[1]),Math.max(e.boxStart[0],e.boxEnd[0]),Math.max(e.boxStart[1],e.boxEnd[1])],u=0;u<2;u++)e.boxStart[u]===e.boxEnd[u]&&(c[u]=t.dataBox[u],c[u+2]=t.dataBox[u+2]);t.setDirty()}else if(!e.panning&&this.isMouseOver){this.selectBox.enabled=!1;var f=i._size,h=this.xaxis.domain,p=this.yaxis.domain,d=(a=t.pick(o/t.pixelRatio+f.l+h[0]*f.w,l/t.pixelRatio-(f.t+(1-p[1])*f.h)))&&a.object._trace.handlePick(a);if(d&&n&&this.emitPointAction(d,\\\"plotly_click\\\"),a&&\\\"skip\\\"!==a.object._trace.hoverinfo&&i.hovermode&&d&&(!this.lastPickResult||this.lastPickResult.traceUid!==d.trace.uid||this.lastPickResult.dataCoord[0]!==d.dataCoord[0]||this.lastPickResult.dataCoord[1]!==d.dataCoord[1])){var g=d;this.lastPickResult={traceUid:d.trace?d.trace.uid:null,dataCoord:d.dataCoord.slice()},this.spikes.update({center:a.dataCoord}),g.screenCoord=[((t.viewBox[2]-t.viewBox[0])*(a.dataCoord[0]-t.dataBox[0])/(t.dataBox[2]-t.dataBox[0])+t.viewBox[0])/t.pixelRatio,(this.canvas.height-(t.viewBox[3]-t.viewBox[1])*(a.dataCoord[1]-t.dataBox[1])/(t.dataBox[3]-t.dataBox[1])-t.viewBox[1])/t.pixelRatio],this.emitPointAction(d,\\\"plotly_hover\\\");var v=this.fullData[g.trace.index]||{},m=g.pointIndex,y=s.castHoverinfo(v,i,m);if(y&&\\\"all\\\"!==y){var x=y.split(\\\"+\\\");-1===x.indexOf(\\\"x\\\")&&(g.traceCoord[0]=void 0),-1===x.indexOf(\\\"y\\\")&&(g.traceCoord[1]=void 0),-1===x.indexOf(\\\"z\\\")&&(g.traceCoord[2]=void 0),-1===x.indexOf(\\\"text\\\")&&(g.textLabel=void 0),-1===x.indexOf(\\\"name\\\")&&(g.name=void 0)}s.loneHover({x:g.screenCoord[0],y:g.screenCoord[1],xLabel:this.hoverFormatter(\\\"xaxis\\\",g.traceCoord[0]),yLabel:this.hoverFormatter(\\\"yaxis\\\",g.traceCoord[1]),zLabel:g.traceCoord[2],text:g.textLabel,name:g.name,color:s.castHoverOption(v,m,\\\"bgcolor\\\")||g.color,borderColor:s.castHoverOption(v,m,\\\"bordercolor\\\"),fontFamily:s.castHoverOption(v,m,\\\"font.family\\\"),fontSize:s.castHoverOption(v,m,\\\"font.size\\\"),fontColor:s.castHoverOption(v,m,\\\"font.color\\\")},{container:this.svgContainer,gd:this.graphDiv})}}a||this.unhover(),t.draw()}},k.unhover=function(){this.lastPickResult&&(this.spikes.update({}),this.lastPickResult=null,this.graphDiv.emit(\\\"plotly_unhover\\\"),s.loneUnhover(this.svgContainer))},k.hoverFormatter=function(t,e){if(void 0!==e){var r=this[t];return o.tickText(r,r.c2l(e),\\\"hover\\\").text}}},{\\\"../../components/fx\\\":612,\\\"../../lib/html2unicode\\\":694,\\\"../../lib/show_no_webgl_msg\\\":717,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"../cartesian/autorange\\\":743,\\\"../cartesian/constants\\\":750,\\\"../cartesian/constraints\\\":752,\\\"./camera\\\":782,\\\"./convert\\\":783,\\\"gl-plot2d\\\":275,\\\"gl-select-box\\\":286,\\\"gl-spikes2d\\\":295,\\\"webgl-context\\\":533}],786:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){t=t||document.body,e=e||{};var r=[.01,1/0];\\\"distanceLimits\\\"in e&&(r[0]=e.distanceLimits[0],r[1]=e.distanceLimits[1]);\\\"zoomMin\\\"in e&&(r[0]=e.zoomMin);\\\"zoomMax\\\"in e&&(r[1]=e.zoomMax);var c=i({center:e.center||[0,0,0],up:e.up||[0,1,0],eye:e.eye||[0,0,10],mode:e.mode||\\\"orbit\\\",distanceLimits:r}),u=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],f=0,h=t.clientWidth,p=t.clientHeight,d={keyBindingMode:\\\"rotate\\\",view:c,element:t,delay:e.delay||16,rotateSpeed:e.rotateSpeed||1,zoomSpeed:e.zoomSpeed||1,translateSpeed:e.translateSpeed||1,flipX:!!e.flipX,flipY:!!e.flipY,modes:c.modes,tick:function(){var e=n(),r=this.delay,i=e-2*r;c.idle(e-r),c.recalcMatrix(i),c.flush(e-(100+2*r));for(var a=!0,o=c.computedMatrix,s=0;s<16;++s)a=a&&u[s]===o[s],u[s]=o[s];var l=t.clientWidth===h&&t.clientHeight===p;return h=t.clientWidth,p=t.clientHeight,a?!l:(f=Math.exp(c.computedRadius[0]),!0)},lookAt:function(t,e,r){c.lookAt(c.lastT(),t,e,r)},rotate:function(t,e,r){c.rotate(c.lastT(),t,e,r)},pan:function(t,e,r){c.pan(c.lastT(),t,e,r)},translate:function(t,e,r){c.translate(c.lastT(),t,e,r)}};Object.defineProperties(d,{matrix:{get:function(){return c.computedMatrix},set:function(t){return c.setMatrix(c.lastT(),t),c.computedMatrix},enumerable:!0},mode:{get:function(){return c.getMode()},set:function(t){var e=c.computedUp.slice(),r=c.computedEye.slice(),i=c.computedCenter.slice();if(c.setMode(t),\\\"turntable\\\"===t){var a=n();c._active.lookAt(a,r,i,e),c._active.lookAt(a+500,r,i,[0,0,1]),c._active.flush(a)}return c.getMode()},enumerable:!0},center:{get:function(){return c.computedCenter},set:function(t){return c.lookAt(c.lastT(),null,t),c.computedCenter},enumerable:!0},eye:{get:function(){return c.computedEye},set:function(t){return c.lookAt(c.lastT(),t),c.computedEye},enumerable:!0},up:{get:function(){return c.computedUp},set:function(t){return c.lookAt(c.lastT(),null,null,t),c.computedUp},enumerable:!0},distance:{get:function(){return f},set:function(t){return c.setDistance(c.lastT(),t),t},enumerable:!0},distanceLimits:{get:function(){return c.getDistanceLimits(r)},set:function(t){return c.setDistanceLimits(t),t},enumerable:!0}}),t.addEventListener(\\\"contextmenu\\\",function(t){return t.preventDefault(),!1});var g=0,v=0,m={shift:!1,control:!1,alt:!1,meta:!1};function y(e,r,i,a){var o=d.keyBindingMode;if(!1!==o){var s=\\\"rotate\\\"===o,l=\\\"pan\\\"===o,u=\\\"zoom\\\"===o,h=!!a.control,p=!!a.alt,y=!!a.shift,x=!!(1&e),b=!!(2&e),_=!!(4&e),w=1/t.clientHeight,k=w*(r-g),M=w*(i-v),A=d.flipX?1:-1,T=d.flipY?1:-1,S=n(),E=Math.PI*d.rotateSpeed;if((s&&x&&!h&&!p&&!y||x&&!h&&!p&&y)&&c.rotate(S,A*E*k,-T*E*M,0),(l&&x&&!h&&!p&&!y||b||x&&h&&!p&&!y)&&c.pan(S,-d.translateSpeed*k*f,d.translateSpeed*M*f,0),u&&x&&!h&&!p&&!y||_||x&&!h&&p&&!y){var C=-d.zoomSpeed*M/window.innerHeight*(S-c.lastT())*100;c.pan(S,0,0,f*(Math.exp(C)-1))}return g=r,v=i,m=a,!0}}return d.mouseListener=a(t,y),t.addEventListener(\\\"touchstart\\\",function(e){var r=s(e.changedTouches[0],t);y(0,r[0],r[1],m),y(1,r[0],r[1],m),e.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\\\"touchmove\\\",function(e){var r=s(e.changedTouches[0],t);y(1,r[0],r[1],m),e.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\\\"touchend\\\",function(t){y(0,g,v,m),t.preventDefault()},!!l&&{passive:!1}),d.wheelListener=o(t,function(t,e){if(!1!==d.keyBindingMode){var r=d.flipX?1:-1,i=d.flipY?1:-1,a=n();if(Math.abs(t)>Math.abs(e))c.rotate(a,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else{var o=-d.zoomSpeed*i*e/window.innerHeight*(a-c.lastT())/20;c.pan(a,0,0,f*(Math.exp(o)-1))}}},!0),d};var n=t(\\\"right-now\\\"),i=t(\\\"3d-view\\\"),a=t(\\\"mouse-change\\\"),o=t(\\\"mouse-wheel\\\"),s=t(\\\"mouse-event-offset\\\"),l=t(\\\"has-passive-events\\\")},{\\\"3d-view\\\":45,\\\"has-passive-events\\\":394,\\\"mouse-change\\\":418,\\\"mouse-event-offset\\\":419,\\\"mouse-wheel\\\":421,\\\"right-now\\\":480}],787:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plot_api/edit_types\\\").overrideAll,i=t(\\\"../../components/fx/layout_attributes\\\"),a=t(\\\"./scene\\\"),o=t(\\\"../get_data\\\").getSubplotData,s=t(\\\"../../lib\\\"),l=t(\\\"../../constants/xmlns_namespaces\\\");r.name=\\\"gl3d\\\",r.attr=\\\"scene\\\",r.idRoot=\\\"scene\\\",r.idRegex=r.attrRegex=s.counterRegex(\\\"scene\\\"),r.attributes=t(\\\"./layout/attributes\\\"),r.layoutAttributes=t(\\\"./layout/layout_attributes\\\"),r.baseLayoutAttrOverrides=n({hoverlabel:i.hoverlabel},\\\"plot\\\",\\\"nested\\\"),r.supplyLayoutDefaults=t(\\\"./layout/defaults\\\"),r.plot=function(t){for(var e=t._fullLayout,r=t._fullData,n=e._subplots.gl3d,i=0;i<n.length;i++){var l=n[i],c=o(r,\\\"gl3d\\\",l),u=e[l],f=u._scene;f||(f=new a({id:l,graphDiv:t,container:t.querySelector(\\\".gl-container\\\"),staticPlot:t._context.staticPlot,plotGlPixelRatio:t._context.plotGlPixelRatio},e),u._scene=f),f.cameraInitial||(f.cameraInitial=s.extendDeep({},u.camera)),f.plot(c,e,t.layout)}},r.clean=function(t,e,r,n){for(var i=n._subplots.gl3d||[],a=0;a<i.length;a++){var o=i[a];!e[o]&&n[o]._scene&&(n[o]._scene.destroy(),n._infolayer&&n._infolayer.selectAll(\\\".annotation-\\\"+o).remove())}},r.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=e._size,i=0;i<r.length;i++){var a=e[r[i]],o=a.domain,s=a._scene,c=s.toImage(\\\"png\\\");e._glimages.append(\\\"svg:image\\\").attr({xmlns:l.svg,\\\"xlink:href\\\":c,x:n.l+n.w*o.x[0],y:n.t+n.h*(1-o.y[1]),width:n.w*(o.x[1]-o.x[0]),height:n.h*(o.y[1]-o.y[0]),preserveAspectRatio:\\\"none\\\"}),s.destroy()}},r.cleanId=function(t){if(t.match(/^scene[0-9]*$/)){var e=t.substr(5);return\\\"1\\\"===e&&(e=\\\"\\\"),\\\"scene\\\"+e}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=0;n<r.length;n++){e[r[n]]._scene.updateFx(e.dragmode,e.hovermode)}}},{\\\"../../components/fx/layout_attributes\\\":613,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../plot_api/edit_types\\\":727,\\\"../get_data\\\":781,\\\"./layout/attributes\\\":788,\\\"./layout/defaults\\\":792,\\\"./layout/layout_attributes\\\":793,\\\"./scene\\\":797}],788:[function(t,e,r){\\\"use strict\\\";e.exports={scene:{valType:\\\"subplotid\\\",dflt:\\\"scene\\\",editType:\\\"calc+clearAxisTypes\\\"}}},{}],789:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../components/color\\\"),i=t(\\\"../../cartesian/layout_attributes\\\"),a=t(\\\"../../../lib/extend\\\").extendFlat,o=t(\\\"../../../plot_api/edit_types\\\").overrideAll;e.exports=o({visible:i.visible,showspikes:{valType:\\\"boolean\\\",dflt:!0},spikesides:{valType:\\\"boolean\\\",dflt:!0},spikethickness:{valType:\\\"number\\\",min:0,dflt:2},spikecolor:{valType:\\\"color\\\",dflt:n.defaultLine},showbackground:{valType:\\\"boolean\\\",dflt:!1},backgroundcolor:{valType:\\\"color\\\",dflt:\\\"rgba(204, 204, 204, 0.5)\\\"},showaxeslabels:{valType:\\\"boolean\\\",dflt:!0},color:i.color,categoryorder:i.categoryorder,categoryarray:i.categoryarray,title:i.title,titlefont:i.titlefont,type:i.type,autorange:i.autorange,rangemode:i.rangemode,range:i.range,tickmode:i.tickmode,nticks:i.nticks,tick0:i.tick0,dtick:i.dtick,tickvals:i.tickvals,ticktext:i.ticktext,ticks:i.ticks,mirror:i.mirror,ticklen:i.ticklen,tickwidth:i.tickwidth,tickcolor:i.tickcolor,showticklabels:i.showticklabels,tickfont:i.tickfont,tickangle:i.tickangle,tickprefix:i.tickprefix,showtickprefix:i.showtickprefix,ticksuffix:i.ticksuffix,showticksuffix:i.showticksuffix,showexponent:i.showexponent,exponentformat:i.exponentformat,separatethousands:i.separatethousands,tickformat:i.tickformat,tickformatstops:i.tickformatstops,hoverformat:i.hoverformat,showline:i.showline,linecolor:i.linecolor,linewidth:i.linewidth,showgrid:i.showgrid,gridcolor:a({},i.gridcolor,{dflt:\\\"rgb(204, 204, 204)\\\"}),gridwidth:i.gridwidth,zeroline:i.zeroline,zerolinecolor:i.zerolinecolor,zerolinewidth:i.zerolinewidth},\\\"plot\\\",\\\"from-root\\\")},{\\\"../../../components/color\\\":570,\\\"../../../lib/extend\\\":685,\\\"../../../plot_api/edit_types\\\":727,\\\"../../cartesian/layout_attributes\\\":757}],790:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"tinycolor2\\\").mix,i=t(\\\"../../../lib\\\"),a=t(\\\"../../../plot_api/plot_template\\\"),o=t(\\\"./axis_attributes\\\"),s=t(\\\"../../cartesian/type_defaults\\\"),l=t(\\\"../../cartesian/axis_defaults\\\"),c=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"];e.exports=function(t,e,r){var u,f;function h(t,e){return i.coerce(u,f,o,t,e)}for(var p=0;p<c.length;p++){var d=c[p];u=t[d]||{},(f=a.newContainer(e,d))._id=d[0]+r.scene,f._name=d,s(u,f,h,r),l(u,f,h,{font:r.font,letter:d[0],data:r.data,showGrid:!0,bgColor:r.bgColor,calendar:r.calendar},r.fullLayout),h(\\\"gridcolor\\\",n(f.color,r.bgColor,13600/187).toRgbString()),h(\\\"title\\\",d[0]),f.setScale=i.noop,h(\\\"showspikes\\\")&&(h(\\\"spikesides\\\"),h(\\\"spikethickness\\\"),h(\\\"spikecolor\\\",f.color)),h(\\\"showaxeslabels\\\"),h(\\\"showbackground\\\")&&h(\\\"backgroundcolor\\\")}}},{\\\"../../../lib\\\":696,\\\"../../../plot_api/plot_template\\\":734,\\\"../../cartesian/axis_defaults\\\":746,\\\"../../cartesian/type_defaults\\\":768,\\\"./axis_attributes\\\":789,tinycolor2:514}],791:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../lib/html2unicode\\\"),i=t(\\\"../../../lib/str2rgbarray\\\"),a=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"];function o(){this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.tickEnable=[!0,!0,!0],this.tickFont=[\\\"sans-serif\\\",\\\"sans-serif\\\",\\\"sans-serif\\\"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[18,18,18],this.labels=[\\\"x\\\",\\\"y\\\",\\\"z\\\"],this.labelEnable=[!0,!0,!0],this.labelFont=[\\\"Open Sans\\\",\\\"Open Sans\\\",\\\"Open Sans\\\"],this.labelSize=[20,20,20],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[30,30,30],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=[10,10,10],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=[!0,!0,!0],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._defaultTickPad=this.tickPad.slice(),this._defaultLabelPad=this.labelPad.slice(),this._defaultLineTickLength=this.lineTickLength.slice()}o.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[a[e]];r.visible?(this.labels[e]=n(r.title),\\\"titlefont\\\"in r&&(r.titlefont.color&&(this.labelColor[e]=i(r.titlefont.color)),r.titlefont.family&&(this.labelFont[e]=r.titlefont.family),r.titlefont.size&&(this.labelSize[e]=r.titlefont.size)),\\\"showline\\\"in r&&(this.lineEnable[e]=r.showline),\\\"linecolor\\\"in r&&(this.lineColor[e]=i(r.linecolor)),\\\"linewidth\\\"in r&&(this.lineWidth[e]=r.linewidth),\\\"showgrid\\\"in r&&(this.gridEnable[e]=r.showgrid),\\\"gridcolor\\\"in r&&(this.gridColor[e]=i(r.gridcolor)),\\\"gridwidth\\\"in r&&(this.gridWidth[e]=r.gridwidth),\\\"log\\\"===r.type?this.zeroEnable[e]=!1:\\\"zeroline\\\"in r&&(this.zeroEnable[e]=r.zeroline),\\\"zerolinecolor\\\"in r&&(this.zeroLineColor[e]=i(r.zerolinecolor)),\\\"zerolinewidth\\\"in r&&(this.zeroLineWidth[e]=r.zerolinewidth),\\\"ticks\\\"in r&&r.ticks?this.lineTickEnable[e]=!0:this.lineTickEnable[e]=!1,\\\"ticklen\\\"in r&&(this.lineTickLength[e]=this._defaultLineTickLength[e]=r.ticklen),\\\"tickcolor\\\"in r&&(this.lineTickColor[e]=i(r.tickcolor)),\\\"tickwidth\\\"in r&&(this.lineTickWidth[e]=r.tickwidth),\\\"tickangle\\\"in r&&(this.tickAngle[e]=\\\"auto\\\"===r.tickangle?-3600:Math.PI*-r.tickangle/180),\\\"showticklabels\\\"in r&&(this.tickEnable[e]=r.showticklabels),\\\"tickfont\\\"in r&&(r.tickfont.color&&(this.tickColor[e]=i(r.tickfont.color)),r.tickfont.family&&(this.tickFont[e]=r.tickfont.family),r.tickfont.size&&(this.tickSize[e]=r.tickfont.size)),\\\"mirror\\\"in r?-1!==[\\\"ticks\\\",\\\"all\\\",\\\"allticks\\\"].indexOf(r.mirror)?(this.lineTickMirror[e]=!0,this.lineMirror[e]=!0):!0===r.mirror?(this.lineTickMirror[e]=!1,this.lineMirror[e]=!0):(this.lineTickMirror[e]=!1,this.lineMirror[e]=!1):this.lineMirror[e]=!1,\\\"showbackground\\\"in r&&!1!==r.showbackground?(this.backgroundEnable[e]=!0,this.backgroundColor[e]=i(r.backgroundcolor)):this.backgroundEnable[e]=!1):(this.tickEnable[e]=!1,this.labelEnable[e]=!1,this.lineEnable[e]=!1,this.lineTickEnable[e]=!1,this.gridEnable[e]=!1,this.zeroEnable[e]=!1,this.backgroundEnable[e]=!1)}},e.exports=function(t){var e=new o;return e.merge(t),e}},{\\\"../../../lib/html2unicode\\\":694,\\\"../../../lib/str2rgbarray\\\":719}],792:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../lib\\\"),i=t(\\\"../../../components/color\\\"),a=t(\\\"../../../registry\\\"),o=t(\\\"../../subplot_defaults\\\"),s=t(\\\"./axis_defaults\\\"),l=t(\\\"./layout_attributes\\\");function c(t,e,r,n){for(var o=r(\\\"bgcolor\\\"),l=i.combine(o,n.paper_bgcolor),c=[\\\"up\\\",\\\"center\\\",\\\"eye\\\"],u=0;u<c.length;u++)r(\\\"camera.\\\"+c[u]+\\\".x\\\"),r(\\\"camera.\\\"+c[u]+\\\".y\\\"),r(\\\"camera.\\\"+c[u]+\\\".z\\\");var f=!!r(\\\"aspectratio.x\\\")&&!!r(\\\"aspectratio.y\\\")&&!!r(\\\"aspectratio.z\\\"),h=r(\\\"aspectmode\\\",f?\\\"manual\\\":\\\"auto\\\");f||(t.aspectratio=e.aspectratio={x:1,y:1,z:1},\\\"manual\\\"===h&&(e.aspectmode=\\\"auto\\\"),t.aspectmode=e.aspectmode),s(t,e,{font:n.font,scene:n.id,data:n.fullData,bgColor:l,calendar:n.calendar,fullLayout:n.fullLayout}),a.getComponentMethod(\\\"annotations3d\\\",\\\"handleDefaults\\\")(t,e,n),r(\\\"dragmode\\\",n.getDfltFromLayout(\\\"dragmode\\\")),r(\\\"hovermode\\\",n.getDfltFromLayout(\\\"hovermode\\\"))}e.exports=function(t,e,r){var i=e._basePlotModules.length>1;o(t,e,r,{type:\\\"gl3d\\\",attributes:l,handleDefaults:c,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!i)return n.validate(t[e],l[e])?t[e]:void 0},paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})}},{\\\"../../../components/color\\\":570,\\\"../../../lib\\\":696,\\\"../../../registry\\\":827,\\\"../../subplot_defaults\\\":822,\\\"./axis_defaults\\\":790,\\\"./layout_attributes\\\":793}],793:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./axis_attributes\\\"),i=t(\\\"../../domain\\\").attributes,a=t(\\\"../../../lib/extend\\\").extendFlat,o=t(\\\"../../../lib\\\").counterRegex;function s(t,e,r){return{x:{valType:\\\"number\\\",dflt:t,editType:\\\"camera\\\"},y:{valType:\\\"number\\\",dflt:e,editType:\\\"camera\\\"},z:{valType:\\\"number\\\",dflt:r,editType:\\\"camera\\\"},editType:\\\"camera\\\"}}e.exports={_arrayAttrRegexps:[o(\\\"scene\\\",\\\".annotations\\\",!0)],bgcolor:{valType:\\\"color\\\",dflt:\\\"rgba(0,0,0,0)\\\",editType:\\\"plot\\\"},camera:{up:a(s(0,0,1),{}),center:a(s(0,0,0),{}),eye:a(s(1.25,1.25,1.25),{}),editType:\\\"camera\\\"},domain:i({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:n,yaxis:n,zaxis:n,dragmode:{valType:\\\"enumerated\\\",values:[\\\"orbit\\\",\\\"turntable\\\",\\\"zoom\\\",\\\"pan\\\",!1],dflt:\\\"turntable\\\",editType:\\\"plot\\\"},hovermode:{valType:\\\"enumerated\\\",values:[\\\"closest\\\",!1],dflt:\\\"closest\\\",editType:\\\"modebar\\\"},editType:\\\"plot\\\",_deprecated:{cameraposition:{valType:\\\"info_array\\\",editType:\\\"camera\\\"}}}},{\\\"../../../lib\\\":696,\\\"../../../lib/extend\\\":685,\\\"../../domain\\\":770,\\\"./axis_attributes\\\":789}],794:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../lib/str2rgbarray\\\"),i=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"];function a(){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]}a.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[i[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=n(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}},e.exports=function(t){var e=new a;return e.merge(t),e}},{\\\"../../../lib/str2rgbarray\\\":719}],795:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,l=t.fullSceneLayout,c=[[],[],[]],u=0;u<3;++u){var f=l[o[u]];if(f._length=(r[u].hi-r[u].lo)*r[u].pixelsPerDataUnit/t.dataScale[u],Math.abs(f._length)===1/0)c[u]=[];else{f._input_range=f.range.slice(),f.range[0]=r[u].lo/t.dataScale[u],f.range[1]=r[u].hi/t.dataScale[u],f._m=1/(t.dataScale[u]*r[u].pixelsPerDataUnit),f.range[0]===f.range[1]&&(f.range[0]-=1,f.range[1]+=1);var h=f.tickmode;if(\\\"auto\\\"===f.tickmode){f.tickmode=\\\"linear\\\";var p=f.nticks||i.constrain(f._length/40,4,9);n.autoTicks(f,Math.abs(f.range[1]-f.range[0])/p)}for(var d=n.calcTicks(f),g=0;g<d.length;++g)d[g].x=d[g].x*t.dataScale[u],d[g].text=a(d[g].text);c[u]=d,f.tickmode=h}}e.ticks=c;for(var u=0;u<3;++u){s[u]=.5*(t.glplot.bounds[0][u]+t.glplot.bounds[1][u]);for(var g=0;g<2;++g)e.bounds[g][u]=t.glplot.bounds[g][u]}t.contourLevels=function(t){for(var e=new Array(3),r=0;r<3;++r){for(var n=t[r],i=new Array(n.length),a=0;a<n.length;++a)i[a]=n[a].x;e[r]=i}return e}(c)};var n=t(\\\"../../cartesian/axes\\\"),i=t(\\\"../../../lib\\\"),a=t(\\\"../../../lib/html2unicode\\\"),o=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"],s=[0,0,0]},{\\\"../../../lib\\\":696,\\\"../../../lib/html2unicode\\\":694,\\\"../../cartesian/axes\\\":744}],796:[function(t,e,r){\\\"use strict\\\";function n(t,e){var r,n,i=[0,0,0,0];for(r=0;r<4;++r)for(n=0;n<4;++n)i[n]+=t[4*r+n]*e[r];return i}e.exports=function(t,e){return n(t.projection,n(t.view,n(t.model,[e[0],e[1],e[2],1])))}},{}],797:[function(t,e,r){\\\"use strict\\\";var n,i,a=t(\\\"gl-plot3d\\\"),o=t(\\\"webgl-context\\\"),s=t(\\\"has-passive-events\\\"),l=t(\\\"../../registry\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../plots/cartesian/axes\\\"),f=t(\\\"../../components/fx\\\"),h=t(\\\"../../lib/str2rgbarray\\\"),p=t(\\\"../../lib/show_no_webgl_msg\\\"),d=t(\\\"./camera\\\"),g=t(\\\"./project\\\"),v=t(\\\"./layout/convert\\\"),m=t(\\\"./layout/spikes\\\"),y=t(\\\"./layout/tick_marks\\\");function x(t,e,r,l){var c=t.graphDiv,h={canvas:r,gl:l,container:t.container,axes:t.axesOptions,spikes:t.spikeOptions,pickRadius:10,snapToData:!0,autoScale:!0,autoBounds:!1};if(t.staticMode){if(!(i||(n=document.createElement(\\\"canvas\\\"),i=o({canvas:n,preserveDrawingBuffer:!0,premultipliedAlpha:!0,antialias:!0}))))throw new Error(\\\"error creating static canvas/context for image server\\\");h.pixelRatio=t.pixelRatio,h.gl=i,h.canvas=n}try{t.glplot=a(h)}catch(e){return p(t)}var v=function(t){if(!1!==t.fullSceneLayout.dragmode){var e={};e[t.id+\\\".camera\\\"]=M(t.camera),t.saveCamera(c.layout),t.graphDiv.emit(\\\"plotly_relayout\\\",e)}};if(t.glplot.canvas.addEventListener(\\\"mouseup\\\",v.bind(null,t)),t.glplot.canvas.addEventListener(\\\"wheel\\\",v.bind(null,t),!!s&&{passive:!1}),t.staticMode||t.glplot.canvas.addEventListener(\\\"webglcontextlost\\\",function(e){c&&c.emit&&c.emit(\\\"plotly_webglcontextlost\\\",{event:e,layer:t.id})},!1),!t.camera){var m=t.fullSceneLayout.camera;t.camera=d(t.container,{center:[m.center.x,m.center.y,m.center.z],eye:[m.eye.x,m.eye.y,m.eye.z],up:[m.up.x,m.up.y,m.up.z],zoomMin:.1,zoomMax:100,mode:\\\"orbit\\\"})}return t.glplot.camera=t.camera,t.glplot.oncontextloss=function(){t.recoverContext()},t.glplot.onrender=function(t){var e,r=t.svgContainer,n=t.container.getBoundingClientRect(),i=n.width,a=n.height;r.setAttributeNS(null,\\\"viewBox\\\",\\\"0 0 \\\"+i+\\\" \\\"+a),r.setAttributeNS(null,\\\"width\\\",i),r.setAttributeNS(null,\\\"height\\\",a),y(t),t.glplot.axes.update(t.axesOptions);for(var o,s=Object.keys(t.traces),l=null,c=t.glplot.selection,h=0;h<s.length;++h)\\\"skip\\\"!==(e=t.traces[s[h]]).data.hoverinfo&&e.handlePick(c)&&(l=e),e.setContourLevels&&e.setContourLevels();function p(e,r){var n=t.fullSceneLayout[e];return u.tickText(n,n.d2l(r),\\\"hover\\\").text}if(null!==l){var d=g(t.glplot.cameraParams,c.dataCoordinate);e=l.data;var v,m=c.index,x=f.castHoverinfo(e,t.fullLayout,m),b=x.split(\\\"+\\\"),_=\\\"all\\\"===x,w=p(\\\"xaxis\\\",c.traceCoordinate[0]),k=p(\\\"yaxis\\\",c.traceCoordinate[1]),M=p(\\\"zaxis\\\",c.traceCoordinate[2]);if(_||(-1===b.indexOf(\\\"x\\\")&&(w=void 0),-1===b.indexOf(\\\"y\\\")&&(k=void 0),-1===b.indexOf(\\\"z\\\")&&(M=void 0),-1===b.indexOf(\\\"text\\\")&&(c.textLabel=void 0),-1===b.indexOf(\\\"name\\\")&&(l.name=void 0)),\\\"cone\\\"===e.type||\\\"streamtube\\\"===e.type){var A=[];(_||-1!==b.indexOf(\\\"u\\\"))&&A.push(\\\"u: \\\"+p(\\\"xaxis\\\",c.traceCoordinate[3])),(_||-1!==b.indexOf(\\\"v\\\"))&&A.push(\\\"v: \\\"+p(\\\"yaxis\\\",c.traceCoordinate[4])),(_||-1!==b.indexOf(\\\"w\\\"))&&A.push(\\\"w: \\\"+p(\\\"zaxis\\\",c.traceCoordinate[5])),(_||-1!==b.indexOf(\\\"norm\\\"))&&A.push(\\\"norm: \\\"+c.traceCoordinate[6].toPrecision(3)),\\\"streamtube\\\"!==e.type||!_&&-1===b.indexOf(\\\"divergence\\\")||A.push(\\\"divergence: \\\"+c.traceCoordinate[7].toPrecision(3)),c.textLabel&&A.push(c.textLabel),v=A.join(\\\"<br>\\\")}else v=c.textLabel;t.fullSceneLayout.hovermode&&f.loneHover({x:(.5+.5*d[0]/d[3])*i,y:(.5-.5*d[1]/d[3])*a,xLabel:w,yLabel:k,zLabel:M,text:v,name:l.name,color:f.castHoverOption(e,m,\\\"bgcolor\\\")||l.color,borderColor:f.castHoverOption(e,m,\\\"bordercolor\\\"),fontFamily:f.castHoverOption(e,m,\\\"font.family\\\"),fontSize:f.castHoverOption(e,m,\\\"font.size\\\"),fontColor:f.castHoverOption(e,m,\\\"font.color\\\")},{container:r,gd:t.graphDiv});var T={x:c.traceCoordinate[0],y:c.traceCoordinate[1],z:c.traceCoordinate[2],data:e._input,fullData:e,curveNumber:e.index,pointNumber:m};e._module.eventData&&(T=e._module.eventData(T,c,e,{},m)),f.appendArrayPointValue(T,e,m);var S={points:[T]};c.buttons&&c.distance<5?t.graphDiv.emit(\\\"plotly_click\\\",S):t.graphDiv.emit(\\\"plotly_hover\\\",S),o=S}else f.loneUnhover(r),t.graphDiv.emit(\\\"plotly_unhover\\\",o);t.drawAnnotations(t)}.bind(null,t),t.traces={},!0}function b(t,e){var r=document.createElement(\\\"div\\\"),n=t.container;this.graphDiv=t.graphDiv;var i=document.createElementNS(\\\"http://www.w3.org/2000/svg\\\",\\\"svg\\\");i.style.position=\\\"absolute\\\",i.style.top=i.style.left=\\\"0px\\\",i.style.width=i.style.height=\\\"100%\\\",i.style[\\\"z-index\\\"]=20,i.style[\\\"pointer-events\\\"]=\\\"none\\\",r.appendChild(i),this.svgContainer=i,r.id=t.id,r.style.position=\\\"absolute\\\",r.style.top=r.style.left=\\\"0px\\\",r.style.width=r.style.height=\\\"100%\\\",n.appendChild(r),this.fullLayout=e,this.id=t.id||\\\"scene\\\",this.fullSceneLayout=e[this.id],this.plotArgs=[[],{},{}],this.axesOptions=v(e[this.id]),this.spikeOptions=m(e[this.id]),this.container=r,this.staticMode=!!t.staticPlot,this.pixelRatio=t.plotGlPixelRatio||2,this.dataScale=[1,1,1],this.contourLevels=[[],[],[]],this.convertAnnotations=l.getComponentMethod(\\\"annotations3d\\\",\\\"convert\\\"),this.drawAnnotations=l.getComponentMethod(\\\"annotations3d\\\",\\\"draw\\\"),x(this)}var _=b.prototype;_.recoverContext=function(){var t=this,e=this.glplot.gl,r=this.glplot.canvas;this.glplot.dispose(),requestAnimationFrame(function n(){e.isContextLost()?requestAnimationFrame(n):x(t,t.fullLayout,r,e)?t.plot.apply(t,t.plotArgs):c.error(\\\"Catastrophic and unrecoverable WebGL error. Context lost.\\\")})};var w=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"];function k(t,e,r){for(var n=t.fullSceneLayout,i=0;i<3;i++){var a=w[i],o=a.charAt(0),s=n[a],l=e[o],u=e[o+\\\"calendar\\\"],f=e[\\\"_\\\"+o+\\\"length\\\"];if(c.isArrayOrTypedArray(l))for(var h,p=0;p<(f||l.length);p++)if(c.isArrayOrTypedArray(l[p]))for(var d=0;d<l[p].length;++d)h=s.d2l(l[p][d],0,u),!isNaN(h)&&isFinite(h)&&(r[0][i]=Math.min(r[0][i],h),r[1][i]=Math.max(r[1][i],h));else h=s.d2l(l[p],0,u),!isNaN(h)&&isFinite(h)&&(r[0][i]=Math.min(r[0][i],h),r[1][i]=Math.max(r[1][i],h));else r[0][i]=Math.min(r[0][i],0),r[1][i]=Math.max(r[1][i],f-1)}}function M(t){return{up:{x:t.up[0],y:t.up[1],z:t.up[2]},center:{x:t.center[0],y:t.center[1],z:t.center[2]},eye:{x:t.eye[0],y:t.eye[1],z:t.eye[2]}}}_.plot=function(t,e,r){if(this.plotArgs=[t,e,r],!this.glplot.contextLost){var n,i,a,o,s,l,c=e[this.id],u=r[this.id];c.bgcolor?this.glplot.clearColor=h(c.bgcolor):this.glplot.clearColor=[0,0,0,0],this.glplot.snapToData=!0,this.fullLayout=e,this.fullSceneLayout=c,this.glplotLayout=c,this.axesOptions.merge(c),this.spikeOptions.merge(c),this.setCamera(c.camera),this.updateFx(c.dragmode,c.hovermode),this.glplot.update({}),this.setConvert(s),t?Array.isArray(t)||(t=[t]):t=[];var f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(a=0;a<t.length;++a)!0===(n=t[a]).visible&&k(this,n,f);var p=[1,1,1];for(o=0;o<3;++o)f[1][o]===f[0][o]?p[o]=1:p[o]=1/(f[1][o]-f[0][o]);for(this.dataScale=p,this.convertAnnotations(this),a=0;a<t.length;++a)!0===(n=t[a]).visible&&((i=this.traces[n.uid])?i.data.type===n.type?i.update(n):(i.dispose(),i=n._module.plot(this,n),this.traces[n.uid]=i):(i=n._module.plot(this,n),this.traces[n.uid]=i),i.name=n.name);var d=Object.keys(this.traces);t:for(a=0;a<d.length;++a){for(o=0;o<t.length;++o)if(t[o].uid===d[a]&&!0===t[o].visible)continue t;(i=this.traces[d[a]]).dispose(),delete this.traces[d[a]]}this.glplot.objects.sort(function(t,e){return t._trace.data.index-e._trace.data.index});var g=[[0,0,0],[0,0,0]],v=[],m={};for(a=0;a<3;++a){if((l=(s=c[w[a]]).type)in m?(m[l].acc*=p[a],m[l].count+=1):m[l]={acc:p[a],count:1},s.autorange){g[0][a]=1/0,g[1][a]=-1/0;var y=this.glplot.objects,x=this.fullSceneLayout.annotations||[],b=s._name.charAt(0);for(o=0;o<y.length;o++){var _=y[o],M=_.bounds,A=_._trace.data._pad||0;\\\"ErrorBars\\\"===_.constructor.name&&s._lowerLogErrorBound?g[0][a]=Math.min(g[0][a],s._lowerLogErrorBound):g[0][a]=Math.min(g[0][a],M[0][a]/p[a]-A),g[1][a]=Math.max(g[1][a],M[1][a]/p[a]+A)}for(o=0;o<x.length;o++){var T=x[o];if(T.visible){var S=s.r2l(T[b]);g[0][a]=Math.min(g[0][a],S),g[1][a]=Math.max(g[1][a],S)}}if(\\\"rangemode\\\"in s&&\\\"tozero\\\"===s.rangemode&&(g[0][a]=Math.min(g[0][a],0),g[1][a]=Math.max(g[1][a],0)),g[0][a]>g[1][a])g[0][a]=-1,g[1][a]=1;else{var E=g[1][a]-g[0][a];g[0][a]-=E/32,g[1][a]+=E/32}if(\\\"reversed\\\"===s.autorange){var C=g[0][a];g[0][a]=g[1][a],g[1][a]=C}}else{var L=s.range;g[0][a]=s.r2l(L[0]),g[1][a]=s.r2l(L[1])}g[0][a]===g[1][a]&&(g[0][a]-=1,g[1][a]+=1),v[a]=g[1][a]-g[0][a],this.glplot.bounds[0][a]=g[0][a]*p[a],this.glplot.bounds[1][a]=g[1][a]*p[a]}var z=[1,1,1];for(a=0;a<3;++a){var O=m[l=(s=c[w[a]]).type];z[a]=Math.pow(O.acc,1/O.count)/p[a]}var I;if(\\\"auto\\\"===c.aspectmode)I=Math.max.apply(null,z)/Math.min.apply(null,z)<=4?z:[1,1,1];else if(\\\"cube\\\"===c.aspectmode)I=[1,1,1];else if(\\\"data\\\"===c.aspectmode)I=z;else{if(\\\"manual\\\"!==c.aspectmode)throw new Error(\\\"scene.js aspectRatio was not one of the enumerated types\\\");var P=c.aspectratio;I=[P.x,P.y,P.z]}c.aspectratio.x=u.aspectratio.x=I[0],c.aspectratio.y=u.aspectratio.y=I[1],c.aspectratio.z=u.aspectratio.z=I[2],this.glplot.aspect=I;var D=c.domain||null,R=e._size||null;if(D&&R){var B=this.container.style;B.position=\\\"absolute\\\",B.left=R.l+D.x[0]*R.w+\\\"px\\\",B.top=R.t+(1-D.y[1])*R.h+\\\"px\\\",B.width=R.w*(D.x[1]-D.x[0])+\\\"px\\\",B.height=R.h*(D.y[1]-D.y[0])+\\\"px\\\"}this.glplot.redraw()}},_.destroy=function(){this.glplot&&(this.camera.mouseListener.enabled=!1,this.container.removeEventListener(\\\"wheel\\\",this.camera.wheelListener),this.camera=this.glplot.camera=null,this.glplot.dispose(),this.container.parentNode.removeChild(this.container),this.glplot=null)},_.getCamera=function(){return this.glplot.camera.view.recalcMatrix(this.camera.view.lastT()),M(this.glplot.camera)},_.setCamera=function(t){var e;this.glplot.camera.lookAt.apply(this,[[(e=t).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]])},_.saveCamera=function(t){var e=this.getCamera(),r=c.nestedProperty(t,this.id+\\\".camera\\\"),n=r.get(),i=!1;function a(t,e,r,n){var i=[\\\"up\\\",\\\"center\\\",\\\"eye\\\"],a=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}if(void 0===n)i=!0;else for(var o=0;o<3;o++)for(var s=0;s<3;s++)if(!a(e,n,o,s)){i=!0;break}return i&&r.set(e),i},_.updateFx=function(t,e){var r=this.camera;r&&(\\\"orbit\\\"===t?(r.mode=\\\"orbit\\\",r.keyBindingMode=\\\"rotate\\\"):\\\"turntable\\\"===t?(r.up=[0,0,1],r.mode=\\\"turntable\\\",r.keyBindingMode=\\\"rotate\\\"):r.keyBindingMode=t),this.fullSceneLayout.hovermode=e},_.toImage=function(t){t||(t=\\\"png\\\"),this.staticMode&&this.container.appendChild(n),this.glplot.redraw();var e=this.glplot.gl,r=e.drawingBufferWidth,i=e.drawingBufferHeight;e.bindFramebuffer(e.FRAMEBUFFER,null);var a=new Uint8Array(r*i*4);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a);for(var o=0,s=i-1;o<s;++o,--s)for(var l=0;l<r;++l)for(var c=0;c<4;++c){var u=a[4*(r*o+l)+c];a[4*(r*o+l)+c]=a[4*(r*s+l)+c],a[4*(r*s+l)+c]=u}var f=document.createElement(\\\"canvas\\\");f.width=r,f.height=i;var h,p=f.getContext(\\\"2d\\\"),d=p.createImageData(r,i);switch(d.data.set(a),p.putImageData(d,0,0),t){case\\\"jpeg\\\":h=f.toDataURL(\\\"image/jpeg\\\");break;case\\\"webp\\\":h=f.toDataURL(\\\"image/webp\\\");break;default:h=f.toDataURL(\\\"image/png\\\")}return this.staticMode&&this.container.removeChild(n),h},_.setConvert=function(){for(var t=0;t<3;t++){var e=this.fullSceneLayout[w[t]];u.setConvert(e,this.fullLayout),e.setScale=c.noop}},e.exports=b},{\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../lib/show_no_webgl_msg\\\":717,\\\"../../lib/str2rgbarray\\\":719,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"./camera\\\":786,\\\"./layout/convert\\\":791,\\\"./layout/spikes\\\":794,\\\"./layout/tick_marks\\\":795,\\\"./project\\\":796,\\\"gl-plot3d\\\":277,\\\"has-passive-events\\\":394,\\\"webgl-context\\\":533}],798:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){n=n||t.length;for(var i=new Array(n),a=0;a<n;a++)i[a]=[t[a],e[a],r[a]];return i}},{}],799:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./font_attributes\\\"),i=t(\\\"../components/color/attributes\\\"),a=n({editType:\\\"calc\\\"});a.family.dflt='\\\"Open Sans\\\", verdana, arial, sans-serif',a.size.dflt=12,a.color.dflt=i.defaultLine,e.exports={font:a,title:{valType:\\\"string\\\",editType:\\\"layoutstyle\\\"},titlefont:n({editType:\\\"layoutstyle\\\"}),autosize:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"none\\\"},width:{valType:\\\"number\\\",min:10,dflt:700,editType:\\\"plot\\\"},height:{valType:\\\"number\\\",min:10,dflt:450,editType:\\\"plot\\\"},margin:{l:{valType:\\\"number\\\",min:0,dflt:80,editType:\\\"plot\\\"},r:{valType:\\\"number\\\",min:0,dflt:80,editType:\\\"plot\\\"},t:{valType:\\\"number\\\",min:0,dflt:100,editType:\\\"plot\\\"},b:{valType:\\\"number\\\",min:0,dflt:80,editType:\\\"plot\\\"},pad:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"plot\\\"},autoexpand:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},editType:\\\"plot\\\"},paper_bgcolor:{valType:\\\"color\\\",dflt:i.background,editType:\\\"plot\\\"},plot_bgcolor:{valType:\\\"color\\\",dflt:i.background,editType:\\\"layoutstyle\\\"},separators:{valType:\\\"string\\\",editType:\\\"plot\\\"},hidesources:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"plot\\\"},showlegend:{valType:\\\"boolean\\\",editType:\\\"legend\\\"},colorway:{valType:\\\"colorlist\\\",dflt:i.defaults,editType:\\\"calc\\\"},datarevision:{valType:\\\"any\\\",editType:\\\"calc\\\"},template:{valType:\\\"any\\\",editType:\\\"calc\\\"},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\\\"},editType:\\\"modebar\\\"}}},{\\\"../components/color/attributes\\\":569,\\\"./font_attributes\\\":771}],800:[function(t,e,r){\\\"use strict\\\";e.exports={requiredVersion:\\\"0.45.0\\\",styleUrlPrefix:\\\"mapbox://styles/mapbox/\\\",styleUrlSuffix:\\\"v9\\\",controlContainerClassName:\\\"mapboxgl-control-container\\\",wrongVersionErrorMsg:[\\\"Your custom plotly.js bundle is not using the correct mapbox-gl version\\\",\\\"Please install mapbox-gl@0.45.0.\\\"].join(\\\"\\\\n\\\"),noAccessTokenErrorMsg:[\\\"Missing Mapbox access token.\\\",\\\"Mapbox trace type require a Mapbox access token to be registered.\\\",\\\"For example:\\\",\\\"  Plotly.plot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });\\\",\\\"More info here: https://www.mapbox.com/help/define-access-token/\\\"].join(\\\"\\\\n\\\"),mapOnErrorMsg:\\\"Mapbox error.\\\",styleRules:{map:\\\"overflow:hidden;position:relative;\\\",\\\"missing-css\\\":\\\"display:none\\\"}}},{}],801:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e){var r=t.split(\\\" \\\"),i=r[0],a=r[1],o=n.isArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,c=[\\\"\\\",\\\"\\\"],u=[0,0];switch(i){case\\\"top\\\":c[0]=\\\"top\\\",u[1]=-l;break;case\\\"bottom\\\":c[0]=\\\"bottom\\\",u[1]=l}switch(a){case\\\"left\\\":c[1]=\\\"right\\\",u[0]=-s;break;case\\\"right\\\":c[1]=\\\"left\\\",u[0]=s}return{anchor:c[0]&&c[1]?c.join(\\\"-\\\"):c[0]?c[0]:c[1]?c[1]:\\\"center\\\",offset:u}}},{\\\"../../lib\\\":696}],802:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"mapbox-gl\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/get_data\\\").getSubplotCalcData,o=t(\\\"../../constants/xmlns_namespaces\\\"),s=t(\\\"./mapbox\\\"),l=t(\\\"./constants\\\");for(var c in l.styleRules)i.addStyleRule(\\\".mapboxgl-\\\"+c,l.styleRules[c]);r.name=\\\"mapbox\\\",r.attr=\\\"subplot\\\",r.idRoot=\\\"mapbox\\\",r.idRegex=r.attrRegex=i.counterRegex(\\\"mapbox\\\"),r.attributes={subplot:{valType:\\\"subplotid\\\",dflt:\\\"mapbox\\\",editType:\\\"calc\\\"}},r.layoutAttributes=t(\\\"./layout_attributes\\\"),r.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),r.plot=function(t){var e=t._fullLayout,r=t.calcdata,o=e._subplots.mapbox;if(n.version!==l.requiredVersion)throw new Error(l.wrongVersionErrorMsg);var c=function(t,e){var r=t._fullLayout;if(\\\"\\\"===t._context.mapboxAccessToken)return\\\"\\\";for(var n=0;n<e.length;n++){var i=r[e[n]];if(i.accesstoken)return i.accesstoken}throw new Error(l.noAccessTokenErrorMsg)}(t,o);n.accessToken=c;for(var u=0;u<o.length;u++){var f=o[u],h=a(r,\\\"mapbox\\\",f),p=e[f],d=p._subplot;d||(d=s({gd:t,container:e._glcontainer.node(),id:f,fullLayout:e,staticPlot:t._context.staticPlot}),e[f]._subplot=d),d.viewInitial||(d.viewInitial={center:i.extendFlat({},p.center),zoom:p.zoom,bearing:p.bearing,pitch:p.pitch}),d.plot(h,e,t._promises)}},r.clean=function(t,e,r,n){for(var i=n._subplots.mapbox||[],a=0;a<i.length;a++){var o=i[a];!e[o]&&n[o]._subplot&&n[o]._subplot.destroy()}},r.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=e._size,i=0;i<r.length;i++){var a=e[r[i]],s=a.domain,l=a._subplot,c=l.toImage(\\\"png\\\");e._glimages.append(\\\"svg:image\\\").attr({xmlns:o.svg,\\\"xlink:href\\\":c,x:n.l+n.w*s.x[0],y:n.t+n.h*(1-s.y[1]),width:n.w*(s.x[1]-s.x[0]),height:n.h*(s.y[1]-s.y[0]),preserveAspectRatio:\\\"none\\\"}),l.destroy()}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=0;n<r.length;n++){e[r[n]]._subplot.updateFx(e)}}},{\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../plots/get_data\\\":781,\\\"./constants\\\":800,\\\"./layout_attributes\\\":804,\\\"./layout_defaults\\\":805,\\\"./mapbox\\\":806,\\\"mapbox-gl\\\":409}],803:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./convert_text_opts\\\");function a(t,e){this.mapbox=t,this.map=t.map,this.uid=t.uid+\\\"-layer\\\"+e,this.idSource=this.uid+\\\"-source\\\",this.idLayer=this.uid+\\\"-layer\\\",this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var o=a.prototype;function s(t){var e=t.source;return t.visible&&(n.isPlainObject(e)||\\\"string\\\"==typeof e&&e.length>0)}function l(t){var e={},r={};switch(t.type){case\\\"circle\\\":n.extendFlat(r,{\\\"circle-radius\\\":t.circle.radius,\\\"circle-color\\\":t.color,\\\"circle-opacity\\\":t.opacity});break;case\\\"line\\\":n.extendFlat(r,{\\\"line-width\\\":t.line.width,\\\"line-color\\\":t.color,\\\"line-opacity\\\":t.opacity});break;case\\\"fill\\\":n.extendFlat(r,{\\\"fill-color\\\":t.color,\\\"fill-outline-color\\\":t.fill.outlinecolor,\\\"fill-opacity\\\":t.opacity});break;case\\\"symbol\\\":var a=t.symbol,o=i(a.textposition,a.iconsize);n.extendFlat(e,{\\\"icon-image\\\":a.icon+\\\"-15\\\",\\\"icon-size\\\":a.iconsize/10,\\\"text-field\\\":a.text,\\\"text-size\\\":a.textfont.size,\\\"text-anchor\\\":o.anchor,\\\"text-offset\\\":o.offset}),n.extendFlat(r,{\\\"icon-color\\\":t.color,\\\"text-color\\\":a.textfont.color,\\\"text-opacity\\\":t.opacity})}return{layout:e,paint:r}}o.update=function(t){this.visible?this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=s(t)},o.needsNewSource=function(t){return this.sourceType!==t.sourcetype||this.source!==t.source||this.layerType!==t.type},o.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==t.below},o.updateSource=function(t){var e=this.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,s(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,i={type:r};\\\"geojson\\\"===r?e=\\\"data\\\":\\\"vector\\\"===r&&(e=\\\"string\\\"==typeof n?\\\"url\\\":\\\"tiles\\\");return i[e]=n,i}(t);e.addSource(this.idSource,r)}},o.updateLayer=function(t){var e=this.map,r=l(t);this.removeLayer(),this.layerType=t.type,s(t)&&e.addLayer({id:this.idLayer,source:this.idSource,\\\"source-layer\\\":t.sourcelayer||\\\"\\\",type:t.type,layout:r.layout,paint:r.paint},t.below)},o.updateStyle=function(t){if(s(t)){var e=l(t);this.mapbox.setOptions(this.idLayer,\\\"setLayoutProperty\\\",e.layout),this.mapbox.setOptions(this.idLayer,\\\"setPaintProperty\\\",e.paint)}},o.removeLayer=function(){var t=this.map;t.getLayer(this.idLayer)&&t.removeLayer(this.idLayer)},o.dispose=function(){var t=this.map;t.removeLayer(this.idLayer),t.removeSource(this.idSource)},e.exports=function(t,e,r){var n=new a(t,e);return n.update(r),n}},{\\\"../../lib\\\":696,\\\"./convert_text_opts\\\":801}],804:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\").defaultLine,a=t(\\\"../domain\\\").attributes,o=t(\\\"../font_attributes\\\"),s=t(\\\"../../traces/scatter/attributes\\\").textposition,l=t(\\\"../../plot_api/edit_types\\\").overrideAll,c=t(\\\"../../plot_api/plot_template\\\").templatedArray,u=o({});u.family.dflt=\\\"Open Sans Regular, Arial Unicode MS Regular\\\",e.exports=l({_arrayAttrRegexps:[n.counterRegex(\\\"mapbox\\\",\\\".layers\\\",!0)],domain:a({name:\\\"mapbox\\\"}),accesstoken:{valType:\\\"string\\\",noBlank:!0,strict:!0},style:{valType:\\\"any\\\",values:[\\\"basic\\\",\\\"streets\\\",\\\"outdoors\\\",\\\"light\\\",\\\"dark\\\",\\\"satellite\\\",\\\"satellite-streets\\\"],dflt:\\\"basic\\\"},center:{lon:{valType:\\\"number\\\",dflt:0},lat:{valType:\\\"number\\\",dflt:0}},zoom:{valType:\\\"number\\\",dflt:1},bearing:{valType:\\\"number\\\",dflt:0},pitch:{valType:\\\"number\\\",dflt:0},layers:c(\\\"layer\\\",{visible:{valType:\\\"boolean\\\",dflt:!0},sourcetype:{valType:\\\"enumerated\\\",values:[\\\"geojson\\\",\\\"vector\\\"],dflt:\\\"geojson\\\"},source:{valType:\\\"any\\\"},sourcelayer:{valType:\\\"string\\\",dflt:\\\"\\\"},type:{valType:\\\"enumerated\\\",values:[\\\"circle\\\",\\\"line\\\",\\\"fill\\\",\\\"symbol\\\"],dflt:\\\"circle\\\"},below:{valType:\\\"string\\\",dflt:\\\"\\\"},color:{valType:\\\"color\\\",dflt:i},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1},circle:{radius:{valType:\\\"number\\\",dflt:15}},line:{width:{valType:\\\"number\\\",dflt:2}},fill:{outlinecolor:{valType:\\\"color\\\",dflt:i}},symbol:{icon:{valType:\\\"string\\\",dflt:\\\"marker\\\"},iconsize:{valType:\\\"number\\\",dflt:10},text:{valType:\\\"string\\\",dflt:\\\"\\\"},textfont:u,textposition:n.extendFlat({},s,{arrayOk:!1})}})},\\\"plot\\\",\\\"from-root\\\")},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plot_api/edit_types\\\":727,\\\"../../plot_api/plot_template\\\":734,\\\"../../traces/scatter/attributes\\\":1043,\\\"../domain\\\":770,\\\"../font_attributes\\\":771}],805:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../subplot_defaults\\\"),a=t(\\\"../array_container_defaults\\\"),o=t(\\\"./layout_attributes\\\");function s(t,e,r,n){r(\\\"accesstoken\\\",n.accessToken),r(\\\"style\\\"),r(\\\"center.lon\\\"),r(\\\"center.lat\\\"),r(\\\"zoom\\\"),r(\\\"bearing\\\"),r(\\\"pitch\\\"),a(t,e,{name:\\\"layers\\\",handleItemDefaults:l}),e._input=t}function l(t,e){function r(r,i){return n.coerce(t,e,o.layers,r,i)}if(r(\\\"visible\\\")){var i=r(\\\"sourcetype\\\");r(\\\"source\\\"),\\\"vector\\\"===i&&r(\\\"sourcelayer\\\");var a=r(\\\"type\\\");r(\\\"below\\\"),r(\\\"color\\\"),r(\\\"opacity\\\"),\\\"circle\\\"===a&&r(\\\"circle.radius\\\"),\\\"line\\\"===a&&r(\\\"line.width\\\"),\\\"fill\\\"===a&&r(\\\"fill.outlinecolor\\\"),\\\"symbol\\\"===a&&(r(\\\"symbol.icon\\\"),r(\\\"symbol.iconsize\\\"),r(\\\"symbol.text\\\"),n.coerceFont(r,\\\"symbol.textfont\\\"),r(\\\"symbol.textposition\\\"))}}e.exports=function(t,e,r){i(t,e,r,{type:\\\"mapbox\\\",attributes:o,handleDefaults:s,partition:\\\"y\\\",accessToken:e._mapboxAccessToken})}},{\\\"../../lib\\\":696,\\\"../array_container_defaults\\\":740,\\\"../subplot_defaults\\\":822,\\\"./layout_attributes\\\":804}],806:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"mapbox-gl\\\"),i=t(\\\"../../components/fx\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../components/dragelement\\\"),s=t(\\\"../cartesian/select\\\").prepSelect,l=t(\\\"../cartesian/select\\\").selectOnClick,c=t(\\\"./constants\\\"),u=t(\\\"./layout_attributes\\\"),f=t(\\\"./layers\\\");function h(t){this.id=t.id,this.gd=t.gd,this.container=t.container,this.isStatic=t.staticPlot;var e=t.fullLayout;this.uid=e._uid+\\\"-\\\"+this.id,this.opts=e[this.id],this.div=null,this.xaxis=null,this.yaxis=null,this.createFramework(e),this.map=null,this.accessToken=null,this.styleObj=null,this.traceHash={},this.layerList=[]}var p=h.prototype;function d(t){var e=u.style.values,r=u.style.dflt,n={};return a.isPlainObject(t)?(n.id=t.id,n.style=t):\\\"string\\\"==typeof t?(n.id=t,n.style=-1!==e.indexOf(t)?g(t):t):(n.id=r,n.style=g(r)),n.transition={duration:0,delay:0},n}function g(t){return c.styleUrlPrefix+t+\\\"-\\\"+c.styleUrlSuffix}function v(t){return[t.lon,t.lat]}e.exports=function(t){return new h(t)},p.plot=function(t,e,r){var n,i=this,a=i.opts=e[this.id];i.map&&a.accesstoken!==i.accessToken&&(i.map.remove(),i.map=null,i.styleObj=null,i.traceHash=[],i.layerList={}),n=i.map?new Promise(function(r,n){i.updateMap(t,e,r,n)}):new Promise(function(r,n){i.createMap(t,e,r,n)}),r.push(n)},p.createMap=function(t,e,r,a){var o=this,s=o.gd,u=o.opts,f=o.styleObj=d(u.style);o.accessToken=u.accesstoken;var h=o.map=new n.Map({container:o.div,style:f.style,center:v(u.center),zoom:u.zoom,bearing:u.bearing,pitch:u.pitch,interactive:!o.isStatic,preserveDrawingBuffer:o.isStatic,doubleClickZoom:!1,boxZoom:!1}),p=c.controlContainerClassName,g=o.div.getElementsByClassName(p)[0];if(o.div.removeChild(g),h._canvas.style.left=\\\"0px\\\",h._canvas.style.top=\\\"0px\\\",o.rejectOnError(a),h.once(\\\"load\\\",function(){o.updateData(t),o.updateLayout(e),o.resolveOnRender(r)}),!o.isStatic){var m=!1;h.on(\\\"moveend\\\",function(t){if(o.map){var e=o.getView();u._input.center=u.center=e.center,u._input.zoom=u.zoom=e.zoom,u._input.bearing=u.bearing=e.bearing,u._input.pitch=u.pitch=e.pitch,(t.originalEvent||m)&&x(e),m=!1}}),h.on(\\\"wheel\\\",function(){m=!0}),h.on(\\\"mousemove\\\",function(t){var e=o.div.getBoundingClientRect();t.clientX=t.point.x+e.left,t.clientY=t.point.y+e.top,t.target.getBoundingClientRect=function(){return e},o.xaxis.p2c=function(){return t.lngLat.lng},o.yaxis.p2c=function(){return t.lngLat.lat},i.hover(s,t,o.id)}),h.on(\\\"dragstart\\\",y),h.on(\\\"zoomstart\\\",y),h.on(\\\"dblclick\\\",function(){s.emit(\\\"plotly_doubleclick\\\",null);var t=o.viewInitial;h.setCenter(v(t.center)),h.setZoom(t.zoom),h.setBearing(t.bearing),h.setPitch(t.pitch);var e=o.getView();u._input.center=u.center=e.center,u._input.zoom=u.zoom=e.zoom,u._input.bearing=u.bearing=e.bearing,u._input.pitch=u.pitch=e.pitch,x(e)}),o.clearSelect=function(){s._fullLayout._zoomlayer.selectAll(\\\".select-outline\\\").remove()},o.onClickInPanFn=function(t){return function(e){var r=s._fullLayout.clickmode;r.indexOf(\\\"select\\\")>-1&&l(e.originalEvent,s,[o.xaxis],[o.yaxis],o.id,t),r.indexOf(\\\"event\\\")>-1&&i.click(s,e.originalEvent)}}}function y(){i.loneUnhover(e._toppaper)}function x(t){var e=o.id,r={};for(var n in t)r[e+\\\".\\\"+n]=t[n];s.emit(\\\"plotly_relayout\\\",r)}},p.updateMap=function(t,e,r,n){var i=this,a=i.map;i.rejectOnError(n);var o=d(i.opts.style);i.styleObj.id!==o.id?(i.styleObj=o,a.setStyle(o.style),a.once(\\\"styledata\\\",function(){i.traceHash={},i.updateData(t),i.updateLayout(e),i.resolveOnRender(r)})):(i.updateData(t),i.updateLayout(e),i.resolveOnRender(r))},p.updateData=function(t){var e,r,n,i,a=this.traceHash;for(n=0;n<t.length;n++){var o=t[n];(e=a[(r=o[0].trace).uid])?e.update(o):r._module&&(a[r.uid]=r._module.plot(this,o))}var s=Object.keys(a);t:for(n=0;n<s.length;n++){var l=s[n];for(i=0;i<t.length;i++)if(l===(r=t[i][0].trace).uid)continue t;(e=a[l]).dispose(),delete a[l]}},p.updateLayout=function(t){var e=this.map,r=this.opts;e.setCenter(v(r.center)),e.setZoom(r.zoom),e.setBearing(r.bearing),e.setPitch(r.pitch),this.updateLayers(),this.updateFramework(t),this.updateFx(t),this.map.resize()},p.resolveOnRender=function(t){var e=this.map;e.on(\\\"render\\\",function r(){e.loaded()&&(e.off(\\\"render\\\",r),setTimeout(t,0))})},p.rejectOnError=function(t){var e=this.map;function r(){t(new Error(c.mapOnErrorMsg))}e.once(\\\"error\\\",r),e.once(\\\"style.error\\\",r),e.once(\\\"source.error\\\",r),e.once(\\\"tile.error\\\",r),e.once(\\\"layer.error\\\",r)},p.createFramework=function(t){var e=this,r=e.div=document.createElement(\\\"div\\\");r.id=e.uid,r.style.position=\\\"absolute\\\",e.container.appendChild(r),e.xaxis={_id:\\\"x\\\",c2p:function(t){return e.project(t).x}},e.yaxis={_id:\\\"y\\\",c2p:function(t){return e.project(t).y}},e.updateFramework(t)},p.updateFx=function(t){var e=this,r=e.map,n=e.gd;if(!e.isStatic){var i,l=t.dragmode;i=\\\"select\\\"===l?function(t,r){(t.range={})[e.id]=[u([r.xmin,r.ymin]),u([r.xmax,r.ymax])]}:function(t,r,n){(t.lassoPoints={})[e.id]=n.filtered.map(u)};var c=e.dragOptions;e.dragOptions=a.extendDeep(c||{},{element:e.div,gd:n,plotinfo:{id:e.id,xaxis:e.xaxis,yaxis:e.yaxis,fillRangeItems:i},xaxes:[e.xaxis],yaxes:[e.yaxis],subplot:e.id}),r.off(\\\"click\\\",e.onClickInPanHandler),\\\"select\\\"===l||\\\"lasso\\\"===l?(r.dragPan.disable(),r.on(\\\"zoomstart\\\",e.clearSelect),e.dragOptions.prepFn=function(t,r,n){s(t,r,n,e.dragOptions,l)},o.init(e.dragOptions)):(r.dragPan.enable(),r.off(\\\"zoomstart\\\",e.clearSelect),e.div.onmousedown=null,e.onClickInPanHandler=e.onClickInPanFn(e.dragOptions),r.on(\\\"click\\\",e.onClickInPanHandler))}function u(t){var r=e.map.unproject(t);return[r.lng,r.lat]}},p.updateFramework=function(t){var e=t[this.id].domain,r=t._size,n=this.div.style;n.width=r.w*(e.x[1]-e.x[0])+\\\"px\\\",n.height=r.h*(e.y[1]-e.y[0])+\\\"px\\\",n.left=r.l+e.x[0]*r.w+\\\"px\\\",n.top=r.t+(1-e.y[1])*r.h+\\\"px\\\",this.xaxis._offset=r.l+e.x[0]*r.w,this.xaxis._length=r.w*(e.x[1]-e.x[0]),this.yaxis._offset=r.t+(1-e.y[1])*r.h,this.yaxis._length=r.h*(e.y[1]-e.y[0])},p.updateLayers=function(){var t,e=this.opts.layers,r=this.layerList;if(e.length!==r.length){for(t=0;t<r.length;t++)r[t].dispose();for(r=this.layerList=[],t=0;t<e.length;t++)r.push(f(this,t,e[t]))}else for(t=0;t<e.length;t++)r[t].update(e[t])},p.destroy=function(){this.map&&(this.map.remove(),this.map=null,this.container.removeChild(this.div))},p.toImage=function(){return this.map.stop(),this.map.getCanvas().toDataURL()},p.setOptions=function(t,e,r){for(var n in r)this.map[e](t,n,r[n])},p.project=function(t){return this.map.project(new n.LngLat(t[0],t[1]))},p.getView=function(){var t=this.map,e=t.getCenter();return{center:{lon:e.lng,lat:e.lat},zoom:t.getZoom(),bearing:t.getBearing(),pitch:t.getPitch()}}},{\\\"../../components/dragelement\\\":592,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../cartesian/select\\\":762,\\\"./constants\\\":800,\\\"./layers\\\":803,\\\"./layout_attributes\\\":804,\\\"mapbox-gl\\\":409}],807:[function(t,e,r){\\\"use strict\\\";e.exports={t:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},r:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},b:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},l:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},editType:\\\"arraydraw\\\"}},{}],808:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../registry\\\"),o=t(\\\"../plot_api/plot_schema\\\"),s=t(\\\"../plot_api/plot_template\\\"),l=t(\\\"../lib\\\"),c=t(\\\"../components/color\\\"),u=t(\\\"../constants/numerical\\\").BADNUM,f=t(\\\"../plots/cartesian/axis_ids\\\"),h=t(\\\"./animation_attributes\\\"),p=t(\\\"./frame_attributes\\\"),d=l.relinkPrivateKeys,g=l._,v=e.exports={};l.extendFlat(v,a),v.attributes=t(\\\"./attributes\\\"),v.attributes.type.values=v.allTypes,v.fontAttrs=t(\\\"./font_attributes\\\"),v.layoutAttributes=t(\\\"./layout_attributes\\\"),v.fontWeight=\\\"normal\\\";var m=v.transformsRegistry,y=t(\\\"./command\\\");v.executeAPICommand=y.executeAPICommand,v.computeAPICommandBindings=y.computeAPICommandBindings,v.manageCommandObserver=y.manageCommandObserver,v.hasSimpleAPICommandBindings=y.hasSimpleAPICommandBindings,v.redrawText=function(t){if(!((t=l.getGraphDiv(t)).data&&t.data[0]&&t.data[0].r))return new Promise(function(e){setTimeout(function(){a.getComponentMethod(\\\"annotations\\\",\\\"draw\\\")(t),a.getComponentMethod(\\\"legend\\\",\\\"draw\\\")(t),(t.calcdata||[]).forEach(function(t){t[0]&&t[0].t&&t[0].t.cb&&t[0].t.cb()}),e(v.previousPromises(t))},300)})},v.resize=function(t){return t=l.getGraphDiv(t),new Promise(function(e,r){function n(t){var e=window.getComputedStyle(t).display;return!e||\\\"none\\\"===e}t&&!n(t)||r(new Error(\\\"Resize must be passed a displayed plot div element.\\\")),t._redrawTimer&&clearTimeout(t._redrawTimer),t._redrawTimer=setTimeout(function(){if(!t.layout||t.layout.width&&t.layout.height||n(t))e(t);else{delete t.layout.width,delete t.layout.height;var r=t.changed;t.autoplay=!0,a.call(\\\"relayout\\\",t,{autosize:!0}).then(function(){t.changed=r,e(t)})}},100)})},v.previousPromises=function(t){if((t._promises||[]).length)return Promise.all(t._promises).then(function(){t._promises=[]})},v.addLinks=function(t){if(t._context.showLink||t._context.showSources){var e=t._fullLayout,r=l.ensureSingle(e._paper,\\\"text\\\",\\\"js-plot-link-container\\\",function(t){t.style({\\\"font-family\\\":'\\\"Open Sans\\\", Arial, sans-serif',\\\"font-size\\\":\\\"12px\\\",fill:c.defaultLine,\\\"pointer-events\\\":\\\"all\\\"}).each(function(){var t=n.select(this);t.append(\\\"tspan\\\").classed(\\\"js-link-to-tool\\\",!0),t.append(\\\"tspan\\\").classed(\\\"js-link-spacer\\\",!0),t.append(\\\"tspan\\\").classed(\\\"js-sourcelinks\\\",!0)})}),i=r.node(),a={y:e._paper.attr(\\\"height\\\")-9};document.body.contains(i)&&i.getComputedTextLength()>=e.width-20?(a[\\\"text-anchor\\\"]=\\\"start\\\",a.x=5):(a[\\\"text-anchor\\\"]=\\\"end\\\",a.x=e._paper.attr(\\\"width\\\")-7),r.attr(a);var o=r.select(\\\".js-link-to-tool\\\"),s=r.select(\\\".js-link-spacer\\\"),u=r.select(\\\".js-sourcelinks\\\");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text(\\\"\\\");var r=e.append(\\\"a\\\").attr({\\\"xlink:xlink:href\\\":\\\"#\\\",class:\\\"link--impt link--embedview\\\",\\\"font-weight\\\":\\\"bold\\\"}).text(t._context.linkText+\\\" \\\"+String.fromCharCode(187));if(t._context.sendData)r.on(\\\"click\\\",function(){v.sendDataToCloud(t)});else{var n=window.location.pathname.split(\\\"/\\\"),i=window.location.search;r.attr({\\\"xlink:xlink:show\\\":\\\"new\\\",\\\"xlink:xlink:href\\\":\\\"/\\\"+n[2].split(\\\".\\\")[0]+\\\"/\\\"+n[1]+i})}}(t,o),s.text(o.text()&&u.text()?\\\" - \\\":\\\"\\\")}},v.sendDataToCloud=function(t){t.emit(\\\"plotly_beforeexport\\\");var e=(window.PLOTLYENV||{}).BASE_URL||t._context.plotlyServerURL,r=n.select(t).append(\\\"div\\\").attr(\\\"id\\\",\\\"hiddenform\\\").style(\\\"display\\\",\\\"none\\\"),i=r.append(\\\"form\\\").attr({action:e+\\\"/external\\\",method:\\\"post\\\",target:\\\"_blank\\\"});return i.append(\\\"input\\\").attr({type:\\\"text\\\",name:\\\"data\\\"}).node().value=v.graphJson(t,!1,\\\"keepdata\\\"),i.node().submit(),r.remove(),t.emit(\\\"plotly_afterexport\\\"),!1};var x,b=[\\\"days\\\",\\\"shortDays\\\",\\\"months\\\",\\\"shortMonths\\\",\\\"periods\\\",\\\"dateTime\\\",\\\"date\\\",\\\"time\\\",\\\"decimal\\\",\\\"thousands\\\",\\\"grouping\\\",\\\"currency\\\"],_=[\\\"year\\\",\\\"month\\\",\\\"dayMonth\\\",\\\"dayMonthYear\\\"];function w(t,e){var r=t._context.locale,n=!1,i={};function o(t){for(var r=!0,a=0;a<e.length;a++){var o=e[a];i[o]||(t[o]?i[o]=t[o]:r=!1)}r&&(n=!0)}for(var s=0;s<2;s++){for(var l=t._context.locales,c=0;c<2;c++){var u=(l[r]||{}).format;if(u&&(o(u),n))break;l=a.localeRegistry}var f=r.split(\\\"-\\\")[0];if(n||f===r)break;r=f}return n||o(a.localeRegistry.en.format),i}function k(t){var e=t.transforms;if(Array.isArray(e)&&e.length)for(var r=0;r<e.length;r++){var n=e[r],i=n._module||m[n.type];if(i&&i.makesData)return!0}return!1}function M(t,e,r,n){for(var i=t.transforms,a=[t],o=0;o<i.length;o++){var s=i[o],l=m[s.type];l&&l.transform&&(a=l.transform(a,{transform:s,fullTrace:t,fullData:e,layout:r,fullLayout:n,transformIndex:o}))}return a}function A(t){t._pushmargin||(t._pushmargin={}),t._pushmarginIds||(t._pushmarginIds={})}function T(t){for(var e=0;e<t.length;e++)t[e].clearCalc()}v.supplyDefaults=function(t,e){var r=e&&e.skipUpdateCalc,i=t._fullLayout||{};if(i._skipDefaults)delete i._skipDefaults;else{var o,s=t._fullLayout={},c=t.layout||{},u=t._fullData||[],h=t._fullData=[],p=t.data||[],m=t.calcdata||[],y=t._context||{};t._transitionData||v.createTransitionData(t),s._dfltTitle={plot:g(t,\\\"Click to enter Plot title\\\"),x:g(t,\\\"Click to enter X axis title\\\"),y:g(t,\\\"Click to enter Y axis title\\\"),colorbar:g(t,\\\"Click to enter Colorscale title\\\"),annotation:g(t,\\\"new text\\\")},s._traceWord=g(t,\\\"trace\\\");var k=w(t,b);if(s._mapboxAccessToken=y.mapboxAccessToken,i._initialAutoSizeIsDone){var M=i.width,A=i.height;v.supplyLayoutGlobalDefaults(c,s,k),c.width||(s.width=M),c.height||(s.height=A),v.sanitizeMargins(s)}else{v.supplyLayoutGlobalDefaults(c,s,k);var T=!c.width||!c.height,S=s.autosize,E=y.autosizable;T&&(S||E)?v.plotAutoSize(t,c,s):T&&v.sanitizeMargins(s),!S&&T&&(c.width=s.width,c.height=s.height)}s._d3locale=function(t,e){return t.decimal=e.charAt(0),t.thousands=e.charAt(1),n.locale(t)}(k,s.separators),s._extraFormat=w(t,_),s._initialAutoSizeIsDone=!0,s._dataLength=p.length,s._modules=[],s._visibleModules=[],s._basePlotModules=[];var C=s._subplots=function(){var t,e,r={};if(!x){x=[];var n=a.subplotsRegistry;for(var i in n){var o=n[i],s=o.attr;if(s&&(x.push(i),Array.isArray(s)))for(e=0;e<s.length;e++)l.pushUnique(x,s[e])}}for(t=0;t<x.length;t++)r[x[t]]=[];return r}(),L=s._splomAxes={x:{},y:{}},z=s._splomSubplots={};s._splomGridDflt={},s._scatterStackOpts={},s._firstScatter={},s._requestRangeslider={},s._traceUids=function(t,e){var r,n,i=e.length,a=[];for(r=0;r<t.length;r++){var o=t[r]._fullInput;o!==n&&a.push(o),n=o}var s=a.length,c=new Array(i),u={};function f(t,e){c[e]=t,u[t]=1}function h(t,e){if(t&&\\\"string\\\"==typeof t&&!u[t])return f(t,e),!0}for(r=0;r<i;r++)h(e[r].uid,r)||r<s&&h(a[r].uid,r)||f(l.randstr(u),r);return c}(u,p),s._globalTransforms=(t._context||{}).globalTransforms,v.supplyDataDefaults(p,h,c,s);var O=Object.keys(L.x),I=Object.keys(L.y);if(O.length>1&&I.length>1){for(a.getComponentMethod(\\\"grid\\\",\\\"sizeDefaults\\\")(c,s),o=0;o<O.length;o++)l.pushUnique(C.xaxis,O[o]);for(o=0;o<I.length;o++)l.pushUnique(C.yaxis,I[o]);for(var P in z)l.pushUnique(C.cartesian,P)}if(s._has=v._hasPlotType.bind(s),u.length===h.length)for(o=0;o<h.length;o++)d(h[o],u[o]);v.supplyLayoutModuleDefaults(c,s,h,t._transitionData);var D=s._visibleModules,R=[];for(o=0;o<D.length;o++){var B=D[o].crossTraceDefaults;B&&l.pushUnique(R,B)}for(o=0;o<R.length;o++)R[o](h,s);s._hasOnlyLargeSploms=1===s._basePlotModules.length&&\\\"splom\\\"===s._basePlotModules[0].name&&O.length>15&&I.length>15&&0===s.shapes.length&&0===s.images.length,s._hasCartesian=s._has(\\\"cartesian\\\"),s._hasGeo=s._has(\\\"geo\\\"),s._hasGL3D=s._has(\\\"gl3d\\\"),s._hasGL2D=s._has(\\\"gl2d\\\"),s._hasTernary=s._has(\\\"ternary\\\"),s._hasPie=s._has(\\\"pie\\\"),v.linkSubplots(h,s,u,i),v.cleanPlot(h,s,u,i),d(s,i),v.doAutoMargin(t);var F=f.list(t);for(o=0;o<F.length;o++){F[o].setScale()}r||m.length!==h.length||v.supplyDefaultsUpdateCalc(m,h)}},v.supplyDefaultsUpdateCalc=function(t,e){for(var r=0;r<e.length;r++){var n=e[r],i=t[r][0];if(i&&i.trace){var a=i.trace;if(a._hasCalcTransform){var o,s,c,u=a._arrayAttrs;for(o=0;o<u.length;o++)s=u[o],c=l.nestedProperty(a,s).get().slice(),l.nestedProperty(n,s).set(c)}i.trace=n}}},v.createTransitionData=function(t){t._transitionData||(t._transitionData={}),t._transitionData._frames||(t._transitionData._frames=[]),t._transitionData._frameHash||(t._transitionData._frameHash={}),t._transitionData._counter||(t._transitionData._counter=0),t._transitionData._interruptCallbacks||(t._transitionData._interruptCallbacks=[])},v._hasPlotType=function(t){var e,r=this._basePlotModules||[];for(e=0;e<r.length;e++)if(r[e].name===t)return!0;var n=this._modules||[];for(e=0;e<n.length;e++){var i=n[e].name;if(i===t)return!0;var o=a.modules[i];if(o&&o.categories[t])return!0}return!1},v.cleanPlot=function(t,e,r,n){var i,a,o=n._basePlotModules||[];for(i=0;i<o.length;i++){var s=o[i];s.clean&&s.clean(t,e,r,n)}var l=n._has&&n._has(\\\"gl\\\"),c=e._has&&e._has(\\\"gl\\\");l&&!c&&void 0!==n._glcontainer&&(n._glcontainer.selectAll(\\\".gl-canvas\\\").remove(),n._glcontainer.selectAll(\\\".no-webgl\\\").remove(),n._glcanvas=null);var u=!!n._infolayer;t:for(i=0;i<r.length;i++){var f=r[i].uid;for(a=0;a<t.length;a++){if(f===t[a].uid)continue t}u&&n._infolayer.select(\\\".cb\\\"+f).remove()}n._zoomlayer&&n._zoomlayer.selectAll(\\\".select-outline\\\").remove()},v.linkSubplots=function(t,e,r,n){var i,a,o=n._plots||{},s=e._plots={},l=e._subplots,c={_fullData:t,_fullLayout:e},u=l.cartesian.concat(l.gl2d||[]);for(i=0;i<u.length;i++){var h,p=u[i],d=o[p],g=f.getFromId(c,p,\\\"x\\\"),v=f.getFromId(c,p,\\\"y\\\");for(d?h=s[p]=d:(h=s[p]={}).id=p,h.xaxis=g,h.yaxis=v,h._hasClipOnAxisFalse=!1,a=0;a<t.length;a++){var m=t[a];if(m.xaxis===h.xaxis._id&&m.yaxis===h.yaxis._id&&!1===m.cliponaxis){h._hasClipOnAxisFalse=!0;break}}}var y=f.list(c,null,!0);for(i=0;i<y.length;i++){var x=y[i],b=null;x.overlaying&&(b=f.getFromId(c,x.overlaying))&&b.overlaying&&(x.overlaying=!1,b=null),x._mainAxis=b||x,b&&(x.domain=b.domain.slice()),x._anchorAxis=\\\"free\\\"===x.anchor?null:f.getFromId(c,x.anchor)}},v.clearExpandedTraceDefaultColors=function(t){var e,r,n;for(r=[],(e=t._module._colorAttrs)||(t._module._colorAttrs=e=[],o.crawl(t._module.attributes,function(t,n,i,a){r[a]=n,r.length=a+1,\\\"color\\\"===t.valType&&void 0===t.dflt&&e.push(r.join(\\\".\\\"))})),n=0;n<e.length;n++){l.nestedProperty(t,\\\"_input.\\\"+e[n]).get()||l.nestedProperty(t,e[n]).set(null)}},v.supplyDataDefaults=function(t,e,r,n){var i,o,c,u=n._modules,f=n._visibleModules,h=n._basePlotModules,p=0,g=0;function m(t){e.push(t);var r=t._module;r&&(l.pushUnique(u,r),!0===t.visible&&l.pushUnique(f,r),l.pushUnique(h,t._module.basePlotModule),p++,!1!==t._input.visible&&g++)}n._transformModules=[];var y={},x=[],b=(r.template||{}).data||{},_=s.traceTemplater(b);for(i=0;i<t.length;i++){if(c=t[i],(o=_.newTrace(c)).uid=n._traceUids[i],v.supplyTraceDefaults(c,o,g,n,i),o.index=i,o._input=c,o._expandedIndex=p,o.transforms&&o.transforms.length)for(var w=!1!==c.visible&&!1===o.visible,k=M(o,e,r,n),A=0;A<k.length;A++){var T=k[A],S={_template:o._template,type:o.type,uid:o.uid+A};w&&!1===T.visible&&delete T.visible,v.supplyTraceDefaults(T,S,p,n,i),d(S,T),S.index=i,S._input=c,S._fullInput=o,S._expandedIndex=p,S._expandedInput=T,m(S)}else o._fullInput=o,o._expandedInput=o,m(o);a.traceIs(o,\\\"carpetAxis\\\")&&(y[o.carpet]=o),a.traceIs(o,\\\"carpetDependent\\\")&&x.push(i)}for(i=0;i<x.length;i++)if((o=e[x[i]]).visible){var E=y[o.carpet];o._carpet=E,E&&E.visible?(o.xaxis=E.xaxis,o.yaxis=E.yaxis):o.visible=!1}},v.supplyAnimationDefaults=function(t){var e;t=t||{};var r={};function n(e,n){return l.coerce(t||{},r,h,e,n)}if(n(\\\"mode\\\"),n(\\\"direction\\\"),n(\\\"fromcurrent\\\"),Array.isArray(t.frame))for(r.frame=[],e=0;e<t.frame.length;e++)r.frame[e]=v.supplyAnimationFrameDefaults(t.frame[e]||{});else r.frame=v.supplyAnimationFrameDefaults(t.frame||{});if(Array.isArray(t.transition))for(r.transition=[],e=0;e<t.transition.length;e++)r.transition[e]=v.supplyAnimationTransitionDefaults(t.transition[e]||{});else r.transition=v.supplyAnimationTransitionDefaults(t.transition||{});return r},v.supplyAnimationFrameDefaults=function(t){var e={};function r(r,n){return l.coerce(t||{},e,h.frame,r,n)}return r(\\\"duration\\\"),r(\\\"redraw\\\"),e},v.supplyAnimationTransitionDefaults=function(t){var e={};function r(r,n){return l.coerce(t||{},e,h.transition,r,n)}return r(\\\"duration\\\"),r(\\\"easing\\\"),e},v.supplyFrameDefaults=function(t){var e={};function r(r,n){return l.coerce(t,e,p,r,n)}return r(\\\"group\\\"),r(\\\"name\\\"),r(\\\"traces\\\"),r(\\\"baseframe\\\"),r(\\\"data\\\"),r(\\\"layout\\\"),e},v.supplyTraceDefaults=function(t,e,r,n,i){var o,s=n.colorway||c.defaults,u=s[r%s.length];function f(r,n){return l.coerce(t,e,v.attributes,r,n)}var h=f(\\\"visible\\\");f(\\\"type\\\"),f(\\\"name\\\",n._traceWord+\\\" \\\"+i);var p,d,g,m=v.getModule(e);if(e._module=m,m){var y=m.basePlotModule,x=y.attr,b=y.attributes;if(x&&b){var _=n._subplots,w=\\\"\\\";if(\\\"gl2d\\\"!==y.name||h){if(Array.isArray(x))for(o=0;o<x.length;o++){var k=x[o],M=l.coerce(t,e,b,k);_[k]&&l.pushUnique(_[k],M),w+=M}else w=l.coerce(t,e,b,x);_[y.name]&&l.pushUnique(_[y.name],w)}}}return h&&(f(\\\"customdata\\\"),f(\\\"ids\\\"),a.traceIs(e,\\\"showLegend\\\")?(e._dfltShowLegend=!0,f(\\\"showlegend\\\"),f(\\\"legendgroup\\\")):e._dfltShowLegend=!1,p=\\\"hoverlabel\\\",d=\\\"\\\",g=function(){a.getComponentMethod(\\\"fx\\\",\\\"supplyDefaults\\\")(t,e,u,n)},m&&p in m.attributes&&void 0===m.attributes[p]||(g&&\\\"function\\\"==typeof g?g():f(p,d)),m&&(m.supplyDefaults(t,e,u,n),l.coerceHoverinfo(t,e,n)),a.traceIs(e,\\\"noOpacity\\\")||f(\\\"opacity\\\"),a.traceIs(e,\\\"notLegendIsolatable\\\")&&(e.visible=!!e.visible),m&&m.selectPoints&&f(\\\"selectedpoints\\\"),v.supplyTransformDefaults(t,e,n)),e},v.hasMakesDataTransform=k,v.supplyTransformDefaults=function(t,e,r){if(e._length||k(t)){var n=r._globalTransforms||[],i=r._transformModules||[];if(Array.isArray(t.transforms)||0!==n.length)for(var a=t.transforms||[],o=n.concat(a),s=e.transforms=[],c=0;c<o.length;c++){var u,f=o[c],h=f.type,p=m[h],d=!(f._module&&f._module===p),g=p&&\\\"function\\\"==typeof p.transform;p||l.warn(\\\"Unrecognized transform type \\\"+h+\\\".\\\"),p&&p.supplyDefaults&&(d||g)?((u=p.supplyDefaults(f,e,r,t)).type=h,u._module=p,l.pushUnique(i,p)):u=l.extendFlat({},f),s.push(u)}}},v.supplyLayoutGlobalDefaults=function(t,e,r){function n(r,n){return l.coerce(t,e,v.layoutAttributes,r,n)}var i=t.template;l.isPlainObject(i)&&(e.template=i,e._template=i.layout,e._dataTemplate=i.data);var o=l.coerceFont(n,\\\"font\\\");n(\\\"title\\\",e._dfltTitle.plot),l.coerceFont(n,\\\"titlefont\\\",{family:o.family,size:Math.round(1.4*o.size),color:o.color}),n(\\\"autosize\\\",!(t.width&&t.height)),n(\\\"width\\\"),n(\\\"height\\\"),n(\\\"margin.l\\\"),n(\\\"margin.r\\\"),n(\\\"margin.t\\\"),n(\\\"margin.b\\\"),n(\\\"margin.pad\\\"),n(\\\"margin.autoexpand\\\"),t.width&&t.height&&v.sanitizeMargins(e),a.getComponentMethod(\\\"grid\\\",\\\"sizeDefaults\\\")(t,e),n(\\\"paper_bgcolor\\\"),n(\\\"separators\\\",r.decimal+r.thousands),n(\\\"hidesources\\\"),n(\\\"colorway\\\"),n(\\\"datarevision\\\"),n(\\\"modebar.orientation\\\"),n(\\\"modebar.bgcolor\\\",c.addOpacity(e.paper_bgcolor,.5));var s=c.contrast(c.rgb(e.modebar.bgcolor));n(\\\"modebar.color\\\",c.addOpacity(s,.3)),n(\\\"modebar.activecolor\\\",c.addOpacity(s,.7)),a.getComponentMethod(\\\"calendars\\\",\\\"handleDefaults\\\")(t,e,\\\"calendar\\\"),a.getComponentMethod(\\\"fx\\\",\\\"supplyLayoutGlobalDefaults\\\")(t,e,n)},v.plotAutoSize=function(t,e,r){var n,a,o=t._context||{},s=o.frameMargins,c=l.isPlotDiv(t);if(c&&t.emit(\\\"plotly_autosize\\\"),o.fillFrame)n=window.innerWidth,a=window.innerHeight,document.body.style.overflow=\\\"hidden\\\";else{var u=c?window.getComputedStyle(t):{};if(n=parseFloat(u.width)||parseFloat(u.maxWidth)||r.width,a=parseFloat(u.height)||parseFloat(u.maxHeight)||r.height,i(s)&&s>0){var f=1-2*s;n=Math.round(f*n),a=Math.round(f*a)}}var h=v.layoutAttributes.width.min,p=v.layoutAttributes.height.min;n<h&&(n=h),a<p&&(a=p);var d=!e.width&&Math.abs(r.width-n)>1,g=!e.height&&Math.abs(r.height-a)>1;(g||d)&&(d&&(r.width=n),g&&(r.height=a)),t._initialAutoSize||(t._initialAutoSize={width:n,height:a}),v.sanitizeMargins(r)},v.supplyLayoutModuleDefaults=function(t,e,r,n){var i,o,s,c=a.componentsRegistry,u=e._basePlotModules,f=a.subplotsRegistry.cartesian;for(i in c)(s=c[i]).includeBasePlot&&s.includeBasePlot(t,e);for(var h in u.length||u.push(f),e._has(\\\"cartesian\\\")&&(a.getComponentMethod(\\\"grid\\\",\\\"contentDefaults\\\")(t,e),f.finalizeSubplots(t,e)),e._subplots)e._subplots[h].sort(l.subplotSort);for(o=0;o<u.length;o++)(s=u[o]).supplyLayoutDefaults&&s.supplyLayoutDefaults(t,e,r);var p=e._modules;for(o=0;o<p.length;o++)(s=p[o]).supplyLayoutDefaults&&s.supplyLayoutDefaults(t,e,r);var d=e._transformModules;for(o=0;o<d.length;o++)(s=d[o]).supplyLayoutDefaults&&s.supplyLayoutDefaults(t,e,r,n);for(i in c)(s=c[i]).supplyLayoutDefaults&&s.supplyLayoutDefaults(t,e,r)},v.purge=function(t){var e=t._fullLayout||{};void 0!==e._glcontainer&&(e._glcontainer.selectAll(\\\".gl-canvas\\\").remove(),e._glcontainer.remove(),e._glcanvas=null),void 0!==e._geocontainer&&e._geocontainer.remove(),e._modeBar&&e._modeBar.destroy(),t._transitionData&&(t._transitionData._interruptCallbacks&&(t._transitionData._interruptCallbacks.length=0),t._transitionData._animationRaf&&window.cancelAnimationFrame(t._transitionData._animationRaf)),l.clearThrottle(),l.clearResponsive(t),delete t.data,delete t.layout,delete t._fullData,delete t._fullLayout,delete t.calcdata,delete t.framework,delete t.empty,delete t.fid,delete t.undoqueue,delete t.undonum,delete t.autoplay,delete t.changed,delete t._promises,delete t._redrawTimer,delete t._hmlumcount,delete t._hmpixcount,delete t._transitionData,delete t._transitioning,delete t._initialAutoSize,delete t._transitioningWithDuration,delete t._dragging,delete t._dragged,delete t._hoverdata,delete t._snapshotInProgress,delete t._editing,delete t._replotPending,delete t._mouseDownTime,delete t._legendMouseDownTime,t.removeAllListeners&&t.removeAllListeners()},v.style=function(t){var e,r=t._fullLayout._visibleModules,n=[];for(e=0;e<r.length;e++){var i=r[e];i.style&&l.pushUnique(n,i.style)}for(e=0;e<n.length;e++)n[e](t)},v.sanitizeMargins=function(t){if(t&&t.margin){var e,r=t.width,n=t.height,i=t.margin,a=r-(i.l+i.r),o=n-(i.t+i.b);a<0&&(e=(r-1)/(i.l+i.r),i.l=Math.floor(e*i.l),i.r=Math.floor(e*i.r)),o<0&&(e=(n-1)/(i.t+i.b),i.t=Math.floor(e*i.t),i.b=Math.floor(e*i.b))}},v.clearAutoMarginIds=function(t){t._fullLayout._pushmarginIds={}},v.allowAutoMargin=function(t,e){t._fullLayout._pushmarginIds[e]=1},v.autoMargin=function(t,e,r){var n=t._fullLayout;A(n);var i=n._pushmargin,a=n._pushmarginIds;if(!1!==n.margin.autoexpand){if(r){var o=r.pad;if(void 0===o){var s=n.margin;o=Math.min(12,s.l,s.r,s.t,s.b)}r.l+r.r>.5*n.width&&(r.l=r.r=0),r.b+r.t>.5*n.height&&(r.b=r.t=0);var l=void 0!==r.xl?r.xl:r.x,c=void 0!==r.xr?r.xr:r.x,u=void 0!==r.yt?r.yt:r.y,f=void 0!==r.yb?r.yb:r.y;i[e]={l:{val:l,size:r.l+o},r:{val:c,size:r.r+o},b:{val:f,size:r.b+o},t:{val:u,size:r.t+o}},a[e]=1}else delete i[e],delete a[e];n._replotting||v.doAutoMargin(t)}},v.doAutoMargin=function(t){var e=t._fullLayout;e._size||(e._size={}),A(e);var r=e._size,n=JSON.stringify(r),o=Math.max(e.margin.l||0,0),s=Math.max(e.margin.r||0,0),l=Math.max(e.margin.t||0,0),c=Math.max(e.margin.b||0,0),u=e._pushmargin,f=e._pushmarginIds;if(!1!==e.margin.autoexpand){for(var h in u)f[h]||delete u[h];for(var p in u.base={l:{val:0,size:o},r:{val:1,size:s},t:{val:1,size:l},b:{val:0,size:c}},u){var d=u[p].l||{},g=u[p].b||{},v=d.val,m=d.size,y=g.val,x=g.size;for(var b in u){if(i(m)&&u[b].r){var _=u[b].r.val,w=u[b].r.size;if(_>v){var k=(m*_+(w-e.width)*v)/(_-v),M=(w*(1-v)+(m-e.width)*(1-_))/(_-v);k>=0&&M>=0&&k+M>o+s&&(o=k,s=M)}}if(i(x)&&u[b].t){var T=u[b].t.val,S=u[b].t.size;if(T>y){var E=(x*T+(S-e.height)*y)/(T-y),C=(S*(1-y)+(x-e.height)*(1-T))/(T-y);E>=0&&C>=0&&E+C>c+l&&(c=E,l=C)}}}}}if(r.l=Math.round(o),r.r=Math.round(s),r.t=Math.round(l),r.b=Math.round(c),r.p=Math.round(e.margin.pad),r.w=Math.round(e.width)-r.l-r.r,r.h=Math.round(e.height)-r.t-r.b,!e._replotting&&\\\"{}\\\"!==n&&n!==JSON.stringify(e._size))return\\\"_redrawFromAutoMarginCount\\\"in e?e._redrawFromAutoMarginCount++:e._redrawFromAutoMarginCount=1,a.call(\\\"plot\\\",t)},v.graphJson=function(t,e,r,n,i){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&v.supplyDefaults(t);var a=i?t._fullData:t.data,o=i?t._fullLayout:t.layout,s=(t._transitionData||{})._frames;function c(t){if(\\\"function\\\"==typeof t)return null;if(l.isPlainObject(t)){var e,n,i={};for(e in t)if(\\\"function\\\"!=typeof t[e]&&-1===[\\\"_\\\",\\\"[\\\"].indexOf(e.charAt(0))){if(\\\"keepdata\\\"===r){if(\\\"src\\\"===e.substr(e.length-3))continue}else if(\\\"keepstream\\\"===r){if(\\\"string\\\"==typeof(n=t[e+\\\"src\\\"])&&n.indexOf(\\\":\\\")>0&&!l.isPlainObject(t.stream))continue}else if(\\\"keepall\\\"!==r&&\\\"string\\\"==typeof(n=t[e+\\\"src\\\"])&&n.indexOf(\\\":\\\")>0)continue;i[e]=c(t[e])}return i}return Array.isArray(t)?t.map(c):l.isTypedArray(t)?l.simpleMap(t,l.identity):l.isJSDate(t)?l.ms2DateTimeLocal(+t):t}var u={data:(a||[]).map(function(t){var r=c(t);return e&&delete r.fit,r})};return e||(u.layout=c(o)),t.framework&&t.framework.isPolar&&(u=t.framework.getConfig()),s&&(u.frames=c(s)),\\\"object\\\"===n?u:JSON.stringify(u)},v.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r<e.length;r++)switch((n=e[r]).type){case\\\"replace\\\":i=n.value;var s=(a[n.index]||{}).name,l=i.name;a[n.index]=o[l]=i,l!==s&&(delete o[s],o[l]=i);break;case\\\"insert\\\":o[(i=n.value).name]=i,a.splice(n.index,0,i);break;case\\\"delete\\\":delete o[(i=a[n.index]).name],a.splice(n.index,1)}return Promise.resolve()},v.computeFrame=function(t,e){var r,n,i,a,o=t._transitionData._frameHash;if(!e)throw new Error(\\\"computeFrame must be given a string frame name\\\");var s=o[e.toString()];if(!s)return!1;for(var l=[s],c=[s.name];s.baseframe&&(s=o[s.baseframe.toString()])&&-1===c.indexOf(s.name);)l.push(s),c.push(s.name);for(var u={};s=l.pop();)if(s.layout&&(u.layout=v.extendLayout(u.layout,s.layout)),s.data){if(u.data||(u.data=[]),!(n=s.traces))for(n=[],r=0;r<s.data.length;r++)n[r]=r;for(u.traces||(u.traces=[]),r=0;r<s.data.length;r++)null!=(i=n[r])&&(-1===(a=u.traces.indexOf(i))&&(a=u.data.length,u.traces[a]=i),u.data[a]=v.extendTrace(u.data[a],s.data[r]))}return u},v.recomputeFrameHash=function(t){for(var e=t._transitionData._frameHash={},r=t._transitionData._frames,n=0;n<r.length;n++){var i=r[n];i&&i.name&&(e[i.name]=i)}},v.extendObjectWithContainers=function(t,e,r){var n,i,a,o,s,c,u,f=l.extendDeepNoArrays({},e||{}),h=l.expandObjectPaths(f),p={};if(r&&r.length)for(a=0;a<r.length;a++)void 0===(i=(n=l.nestedProperty(h,r[a])).get())?l.nestedProperty(p,r[a]).set(null):(n.set(null),l.nestedProperty(p,r[a]).set(i));if(t=l.extendDeepNoArrays(t||{},h),r&&r.length)for(a=0;a<r.length;a++)if(c=l.nestedProperty(p,r[a]).get()){for(u=(s=l.nestedProperty(t,r[a])).get(),Array.isArray(u)||(u=[],s.set(u)),o=0;o<c.length;o++){var d=c[o];u[o]=null===d?null:v.extendObjectWithContainers(u[o],d)}s.set(u)}return t},v.dataArrayContainers=[\\\"transforms\\\",\\\"dimensions\\\"],v.layoutArrayContainers=a.layoutArrayContainers,v.extendTrace=function(t,e){return v.extendObjectWithContainers(t,e,v.dataArrayContainers)},v.extendLayout=function(t,e){return v.extendObjectWithContainers(t,e,v.layoutArrayContainers)},v.transition=function(t,e,r,n,i,o){var s,c,u=Array.isArray(e)?e.length:0,f=n.slice(0,u),h=[];var p=!1;for(s=0;s<f.length;s++){c=f[s];t._fullData[c]._module}var d=[v.previousPromises,function(){if(t._transitionData)return t._transitioning=!1,function(t){var e=Promise.resolve();if(!t)return e;for(;t.length;)e=e.then(t.shift());return e}(t._transitionData._interruptCallbacks)},function(){var n;for(n=0;n<f.length;n++){var i=f[n],a=t._fullData[i]._module;a&&(a.animatable&&h.push(i),t.data[f[n]]=v.extendTrace(t.data[f[n]],e[n]))}var o=l.expandObjectPaths(l.extendDeepNoArrays({},r)),s=/^[xy]axis[0-9]*$/;for(var c in o)s.test(c)&&delete o[c].range;return v.extendLayout(t.layout,o),delete t.calcdata,v.supplyDefaults(t),v.doCalcdata(t),Promise.resolve()},v.rehover,function(){return t.emit(\\\"plotly_transitioning\\\",[]),new Promise(function(e){t._transitioning=!0,o.duration>0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push(function(){p=!0}),i.redraw&&t._transitionData._interruptCallbacks.push(function(){return a.call(\\\"redraw\\\",t)}),t._transitionData._interruptCallbacks.push(function(){t.emit(\\\"plotly_transitioninterrupted\\\",[])});var n,s,c=0,u=0;function f(){return c++,function(){var r;u++,p||u!==c||(r=e,t._transitionData&&(function(t){if(t)for(;t.length;)t.shift()}(t._transitionData._interruptCallbacks),Promise.resolve().then(function(){if(i.redraw)return a.call(\\\"redraw\\\",t)}).then(function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit(\\\"plotly_transitioned\\\",[])}).then(r)))}}var d=t._fullLayout._basePlotModules,g=!1;if(r)for(s=0;s<d.length;s++)if(d[s].transitionAxes){var v=l.expandObjectPaths(r);g=d[s].transitionAxes(t,v,o,f)||g}for(g?((n=l.extendFlat({},o)).duration=0,h=null):n=o,s=0;s<d.length;s++)d[s].plot(t,h,n,f);setTimeout(f())})}],g=l.syncOrAsync(d,t);return g&&g.then||(g=Promise.resolve()),g.then(function(){return t})},v.doCalcdata=function(t,e){var r,n,i,s,c=f.list(t),h=t._fullData,p=t._fullLayout,d=new Array(h.length),g=(t.calcdata||[]).slice(0);for(t.calcdata=d,p._numBoxes=0,p._numViolins=0,p._violinScaleGroupStats={},t._hmpixcount=0,t._hmlumcount=0,p._piecolormap={},i=0;i<h.length;i++)Array.isArray(e)&&-1===e.indexOf(i)&&(d[i]=g[i]);for(i=0;i<h.length;i++)(r=h[i])._arrayAttrs=o.findArrayAttributes(r),r._extremes={};var v=p._subplots.polar||[];for(i=0;i<v.length;i++)c.push(p[v[i]].radialaxis,p[v[i]].angularaxis);T(c);var y=!1;for(i=0;i<h.length;i++)if(!0===(r=h[i]).visible&&r.transforms){if((n=r._module)&&n.calc){var x=n.calc(t,r);x[0]&&x[0].t&&x[0].t._scene&&delete x[0].t._scene.dirty}for(s=0;s<r.transforms.length;s++){var b=r.transforms[s];(n=m[b.type])&&n.calcTransform&&(r._hasCalcTransform=!0,y=!0,n.calcTransform(t,r,b))}}function _(e,i){if(r=h[e],!!(n=r._module).isContainer===i){var a=[];if(!0===r.visible){delete r._indexToPoints;var o=r.transforms||[];for(s=o.length-1;s>=0;s--)if(o[s].enabled){r._indexToPoints=o[s]._indexToPoints;break}n&&n.calc&&(a=n.calc(t,r))}Array.isArray(a)&&a[0]||(a=[{x:u,y:u}]),a[0].t||(a[0].t={}),a[0].trace=r,d[e]=a}}for(y&&T(c),i=0;i<h.length;i++)_(i,!0);for(i=0;i<h.length;i++)_(i,!1);!function(t){var e,r,n,i=t._fullLayout,a=i._visibleModules,o={};for(r=0;r<a.length;r++){var s=a[r],c=s.crossTraceCalc;if(c){var u=s.basePlotModule.name;o[u]?l.pushUnique(o[u],c):o[u]=[c]}}for(n in o){var f=o[n],h=i._subplots[n];if(Array.isArray(h))for(e=0;e<h.length;e++){var p=h[e],d=\\\"cartesian\\\"===n?i._plots[p]:i[p];for(r=0;r<f.length;r++)f[r](t,d,p)}else for(r=0;r<f.length;r++)f[r](t)}}(t),a.getComponentMethod(\\\"fx\\\",\\\"calc\\\")(t),a.getComponentMethod(\\\"errorbars\\\",\\\"calc\\\")(t)},v.rehover=function(t){t._fullLayout._rehover&&t._fullLayout._rehover()},v.generalUpdatePerTraceModule=function(t,e,r,n){var i,a=e.traceHash,o={};for(i=0;i<r.length;i++){var s=r[i],c=s[0].trace;c.visible&&(o[c.type]=o[c.type]||[],o[c.type].push(s))}for(var u in a)if(!o[u]){var f=a[u][0];f[0].trace.visible=!1,o[u]=[f]}for(var h in o){var p=o[h];p[0][0].trace._module.plot(t,e,l.filterVisible(p),n)}e.traceHash=o}},{\\\"../components/color\\\":570,\\\"../constants/numerical\\\":673,\\\"../lib\\\":696,\\\"../plot_api/plot_schema\\\":733,\\\"../plot_api/plot_template\\\":734,\\\"../plots/cartesian/axis_ids\\\":747,\\\"../registry\\\":827,\\\"./animation_attributes\\\":739,\\\"./attributes\\\":741,\\\"./command\\\":769,\\\"./font_attributes\\\":771,\\\"./frame_attributes\\\":772,\\\"./layout_attributes\\\":799,d3:148,\\\"fast-isnumeric\\\":214}],809:[function(t,e,r){\\\"use strict\\\";e.exports={attr:\\\"subplot\\\",name:\\\"polar\\\",axisNames:[\\\"angularaxis\\\",\\\"radialaxis\\\"],axisName2dataArray:{angularaxis:\\\"theta\\\",radialaxis:\\\"r\\\"},layerNames:[\\\"draglayer\\\",\\\"plotbg\\\",\\\"backplot\\\",\\\"angular-grid\\\",\\\"radial-grid\\\",\\\"frontplot\\\",\\\"angular-line\\\",\\\"radial-line\\\",\\\"angular-axis\\\",\\\"radial-axis\\\"],radialDragBoxSize:50,angularDragBoxSize:30,cornerLen:25,cornerHalfWidth:2,MINDRAG:8,MINZOOM:20,OFFEDGE:20}},{}],810:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../lib/polygon\\\").tester,a=n.findIndexOfMin,o=n.isAngleInsideSector,s=n.angleDelta,l=n.angleDist;function c(t,e,r,n){var i,a,o=n[0],s=n[1],l=f(Math.sin(e)-Math.sin(t)),c=f(Math.cos(e)-Math.cos(t)),u=Math.tan(r),h=f(1/u),p=l/c,d=s-p*o;return h?l&&c?a=u*(i=d/(u-p)):c?(i=s*h,a=s):(i=o,a=o*u):l&&c?(i=0,a=d):c?(i=0,a=s):i=a=NaN,[i,a]}function u(t,e,r,i){return n.isFullCircle([e,r])?function(t,e){var r,n=e.length,i=new Array(n+1);for(r=0;r<n;r++){var a=e[r];i[r]=[t*Math.cos(a),t*Math.sin(a)]}return i[r]=i[0].slice(),i}(t,i):function(t,e,r,i){var s,u,f=i.length,h=[];function p(e){return[t*Math.cos(e),t*Math.sin(e)]}function d(t,e,r){return c(t,e,r,p(t))}function g(t){return n.mod(t,f)}function v(t){return o(t,[e,r])}var m=a(i,function(t){return v(t)?l(t,e):1/0}),y=d(i[m],i[g(m-1)],e);for(h.push(y),s=m,u=0;u<f;s++,u++){var x=i[g(s)];if(!v(x))break;h.push(p(x))}var b=a(i,function(t){return v(t)?l(t,r):1/0}),_=d(i[b],i[g(b+1)],r);return h.push(_),h.push([0,0]),h.push(h[0].slice()),h}(t,e,r,i)}function f(t){return Math.abs(t)>1e-10?t:0}function h(t,e,r){e=e||0,r=r||0;for(var n=t.length,i=new Array(n),a=0;a<n;a++){var o=t[a];i[a]=[e+o[0],r-o[1]]}return i}e.exports={isPtInsidePolygon:function(t,e,r,n,a){if(!o(e,n))return!1;var s,l;r[0]<r[1]?(s=r[0],l=r[1]):(s=r[1],l=r[0]);var c=i(u(s,n[0],n[1],a)),f=i(u(l,n[0],n[1],a)),h=[t*Math.cos(e),t*Math.sin(e)];return f.contains(h)&&!c.contains(h)},findPolygonOffset:function(t,e,r,n){for(var i=1/0,a=1/0,o=u(t,e,r,n),s=0;s<o.length;s++){var l=o[s];i=Math.min(i,l[0]),a=Math.min(a,-l[1])}return[i,a]},findEnclosingVertexAngles:function(t,e){var r=a(e,function(e){var r=s(e,t);return r>0?r:1/0}),i=n.mod(r+1,e.length);return[e[r],e[i]]},findIntersectionXY:c,findXYatLength:function(t,e,r,n){var i=-e*r,a=e*e+1,o=2*(e*i-r),s=i*i+r*r-t*t,l=Math.sqrt(o*o-4*a*s),c=(-o+l)/(2*a),u=(-o-l)/(2*a);return[[c,e*c+i+n],[u,e*u+i+n]]},clampTiny:f,pathPolygon:function(t,e,r,n,i,a){return\\\"M\\\"+h(u(t,e,r,n),i,a).join(\\\"L\\\")},pathPolygonAnnulus:function(t,e,r,n,i,a,o){var s,l;t<e?(s=t,l=e):(s=e,l=t);var c=h(u(s,r,n,i),a,o);return\\\"M\\\"+h(u(l,r,n,i),a,o).reverse().join(\\\"L\\\")+\\\"M\\\"+c.join(\\\"L\\\")}}},{\\\"../../lib\\\":696,\\\"../../lib/polygon\\\":708}],811:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../get_data\\\").getSubplotCalcData,i=t(\\\"../../lib\\\").counterRegex,a=t(\\\"./polar\\\"),o=t(\\\"./constants\\\"),s=o.attr,l=o.name,c=i(l),u={};u[s]={valType:\\\"subplotid\\\",dflt:l,editType:\\\"calc\\\"},e.exports={attr:s,name:l,idRoot:l,idRegex:c,attrRegex:c,attributes:u,layoutAttributes:t(\\\"./layout_attributes\\\"),supplyLayoutDefaults:t(\\\"./layout_defaults\\\"),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots[l],o=0;o<i.length;o++){var s=i[o],c=n(r,l,s),u=e[s]._subplot;u||(u=a(t,s),e[s]._subplot=u),u.plot(c,e,t._promises)}},clean:function(t,e,r,n){for(var i=n._subplots[l]||[],a=n._has&&n._has(\\\"gl\\\"),o=e._has&&e._has(\\\"gl\\\"),s=a&&!o,c=0;c<i.length;c++){var u=i[c],f=n[u]._subplot;if(!e[u]&&f)for(var h in f.framework.remove(),f.layers[\\\"radial-axis-title\\\"].remove(),f.clipPaths)f.clipPaths[h].remove();s&&f._scene&&(f._scene.destroy(),f._scene=null)}},toSVG:t(\\\"../cartesian\\\").toSVG}},{\\\"../../lib\\\":696,\\\"../cartesian\\\":756,\\\"../get_data\\\":781,\\\"./constants\\\":809,\\\"./layout_attributes\\\":812,\\\"./layout_defaults\\\":813,\\\"./polar\\\":820}],812:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color/attributes\\\"),i=t(\\\"../cartesian/layout_attributes\\\"),a=t(\\\"../domain\\\").attributes,o=t(\\\"../../lib\\\").extendFlat,s=t(\\\"../../plot_api/edit_types\\\").overrideAll,l=s({color:i.color,showline:o({},i.showline,{dflt:!0}),linecolor:i.linecolor,linewidth:i.linewidth,showgrid:o({},i.showgrid,{dflt:!0}),gridcolor:i.gridcolor,gridwidth:i.gridwidth},\\\"plot\\\",\\\"from-root\\\"),c=s({tickmode:i.tickmode,nticks:i.nticks,tick0:i.tick0,dtick:i.dtick,tickvals:i.tickvals,ticktext:i.ticktext,ticks:i.ticks,ticklen:i.ticklen,tickwidth:i.tickwidth,tickcolor:i.tickcolor,showticklabels:i.showticklabels,showtickprefix:i.showtickprefix,tickprefix:i.tickprefix,showticksuffix:i.showticksuffix,ticksuffix:i.ticksuffix,showexponent:i.showexponent,exponentformat:i.exponentformat,separatethousands:i.separatethousands,tickfont:i.tickfont,tickangle:i.tickangle,tickformat:i.tickformat,tickformatstops:i.tickformatstops,layer:i.layer},\\\"plot\\\",\\\"from-root\\\"),u={visible:o({},i.visible,{dflt:!0}),type:i.type,autorange:o({},i.autorange,{editType:\\\"plot\\\"}),rangemode:{valType:\\\"enumerated\\\",values:[\\\"tozero\\\",\\\"nonnegative\\\",\\\"normal\\\"],dflt:\\\"tozero\\\",editType:\\\"calc\\\"},range:o({},i.range,{items:[{valType:\\\"any\\\",editType:\\\"plot\\\",impliedEdits:{\\\"^autorange\\\":!1}},{valType:\\\"any\\\",editType:\\\"plot\\\",impliedEdits:{\\\"^autorange\\\":!1}}],editType:\\\"plot\\\"}),categoryorder:i.categoryorder,categoryarray:i.categoryarray,angle:{valType:\\\"angle\\\",editType:\\\"plot\\\"},side:{valType:\\\"enumerated\\\",values:[\\\"clockwise\\\",\\\"counterclockwise\\\"],dflt:\\\"clockwise\\\",editType:\\\"plot\\\"},title:o({},i.title,{editType:\\\"plot\\\",dflt:\\\"\\\"}),titlefont:s(i.titlefont,\\\"plot\\\",\\\"from-root\\\"),hoverformat:i.hoverformat,editType:\\\"calc\\\"};o(u,l,c);var f={visible:o({},i.visible,{dflt:!0}),type:{valType:\\\"enumerated\\\",values:[\\\"-\\\",\\\"linear\\\",\\\"category\\\"],dflt:\\\"-\\\",editType:\\\"calc\\\",_noTemplating:!0},categoryorder:i.categoryorder,categoryarray:i.categoryarray,thetaunit:{valType:\\\"enumerated\\\",values:[\\\"radians\\\",\\\"degrees\\\"],dflt:\\\"degrees\\\",editType:\\\"calc\\\"},period:{valType:\\\"number\\\",editType:\\\"calc\\\",min:0},direction:{valType:\\\"enumerated\\\",values:[\\\"counterclockwise\\\",\\\"clockwise\\\"],dflt:\\\"counterclockwise\\\",editType:\\\"calc\\\"},rotation:{valType:\\\"angle\\\",editType:\\\"calc\\\"},hoverformat:i.hoverformat,editType:\\\"calc\\\"};o(f,l,c),e.exports={domain:a({name:\\\"polar\\\",editType:\\\"plot\\\"}),sector:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\",editType:\\\"plot\\\"},{valType:\\\"number\\\",editType:\\\"plot\\\"}],dflt:[0,360],editType:\\\"plot\\\"},hole:{valType:\\\"number\\\",min:0,max:1,dflt:0,editType:\\\"plot\\\"},bgcolor:{valType:\\\"color\\\",editType:\\\"plot\\\",dflt:n.background},radialaxis:u,angularaxis:f,gridshape:{valType:\\\"enumerated\\\",values:[\\\"circular\\\",\\\"linear\\\"],dflt:\\\"circular\\\",editType:\\\"plot\\\"},editType:\\\"calc\\\"}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib\\\":696,\\\"../../plot_api/edit_types\\\":727,\\\"../cartesian/layout_attributes\\\":757,\\\"../domain\\\":770}],813:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../plot_api/plot_template\\\"),o=t(\\\"../subplot_defaults\\\"),s=t(\\\"../get_data\\\").getSubplotData,l=t(\\\"../cartesian/tick_value_defaults\\\"),c=t(\\\"../cartesian/tick_mark_defaults\\\"),u=t(\\\"../cartesian/tick_label_defaults\\\"),f=t(\\\"../cartesian/category_order_defaults\\\"),h=t(\\\"../cartesian/line_grid_defaults\\\"),p=t(\\\"../cartesian/axis_autotype\\\"),d=t(\\\"./layout_attributes\\\"),g=t(\\\"./set_convert\\\"),v=t(\\\"./constants\\\"),m=v.axisNames;function y(t,e,r,o){var p=r(\\\"bgcolor\\\");o.bgColor=i.combine(p,o.paper_bgcolor);var y=r(\\\"sector\\\");r(\\\"hole\\\");var b,_=s(o.fullData,v.name,o.id),w=o.layoutOut;function k(t,e){return r(b+\\\".\\\"+t,e)}for(var M=0;M<m.length;M++){b=m[M],n.isPlainObject(t[b])||(t[b]={});var A=t[b],T=a.newContainer(e,b);T._id=T._name=b,T._traceIndices=_.map(function(t){return t._expandedIndex});var S=v.axisName2dataArray[b],E=x(A,T,k,_,S);f(A,T,k,{axData:_,dataAttr:S});var C,L,z=k(\\\"visible\\\");switch(g(T,e,w),z&&(L=(C=k(\\\"color\\\"))===A.color?C:o.font.color),T._m=1,b){case\\\"radialaxis\\\":var O=k(\\\"autorange\\\",!T.isValidRange(A.range));A.autorange=O,!O||\\\"linear\\\"!==E&&\\\"-\\\"!==E||k(\\\"rangemode\\\"),\\\"reversed\\\"===O&&(T._m=-1),k(\\\"range\\\"),T.cleanRange(\\\"range\\\",{dfltRange:[0,1]}),z&&(k(\\\"side\\\"),k(\\\"angle\\\",y[0]),k(\\\"title\\\"),n.coerceFont(k,\\\"titlefont\\\",{family:o.font.family,size:Math.round(1.2*o.font.size),color:L}));break;case\\\"angularaxis\\\":if(\\\"date\\\"===E){n.log(\\\"Polar plots do not support date angular axes yet.\\\");for(var I=0;I<_.length;I++)_[I].visible=!1;E=A.type=T.type=\\\"linear\\\"}k(\\\"linear\\\"===E?\\\"thetaunit\\\":\\\"period\\\");var P=k(\\\"direction\\\");k(\\\"rotation\\\",{counterclockwise:0,clockwise:90}[P])}if(z)l(A,T,k,T.type),u(A,T,k,T.type,{tickSuffixDflt:\\\"degrees\\\"===T.thetaunit?\\\"\\\\xb0\\\":void 0}),c(A,T,k,{outerTicks:!0}),k(\\\"showticklabels\\\")&&(n.coerceFont(k,\\\"tickfont\\\",{family:o.font.family,size:o.font.size,color:L}),k(\\\"tickangle\\\"),k(\\\"tickformat\\\")),h(A,T,k,{dfltColor:C,bgColor:o.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:d[b]}),k(\\\"layer\\\");\\\"category\\\"!==E&&k(\\\"hoverformat\\\"),T._input=A}\\\"category\\\"===e.angularaxis.type&&r(\\\"gridshape\\\")}function x(t,e,r,n,i){if(\\\"-\\\"===r(\\\"type\\\")){for(var a,o=0;o<n.length;o++)if(n[o].visible){a=n[o];break}a&&a[i]&&(e.type=p(a[i],\\\"gregorian\\\")),\\\"-\\\"===e.type?e.type=\\\"linear\\\":t.type=e.type}return e.type}e.exports=function(t,e,r){o(t,e,r,{type:v.name,attributes:d,handleDefaults:y,font:e.font,paper_bgcolor:e.paper_bgcolor,fullData:r,layoutOut:e})}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../cartesian/axis_autotype\\\":745,\\\"../cartesian/category_order_defaults\\\":748,\\\"../cartesian/line_grid_defaults\\\":759,\\\"../cartesian/tick_label_defaults\\\":764,\\\"../cartesian/tick_mark_defaults\\\":765,\\\"../cartesian/tick_value_defaults\\\":766,\\\"../get_data\\\":781,\\\"../subplot_defaults\\\":822,\\\"./constants\\\":809,\\\"./layout_attributes\\\":812,\\\"./set_convert\\\":821}],814:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../traces/scatter/attributes\\\"),i=n.marker,a=t(\\\"../../../lib/extend\\\").extendFlat;[\\\"Area traces are deprecated!\\\",\\\"Please switch to the *barpolar* trace type.\\\"].join(\\\" \\\");e.exports={r:a({},n.r,{}),t:a({},n.t,{}),marker:{color:a({},i.color,{}),size:a({},i.size,{}),symbol:a({},i.symbol,{}),opacity:a({},i.opacity,{}),editType:\\\"calc\\\"}}},{\\\"../../../lib/extend\\\":685,\\\"../../../traces/scatter/attributes\\\":1043}],815:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../cartesian/layout_attributes\\\"),i=t(\\\"../../../lib/extend\\\").extendFlat,a=t(\\\"../../../plot_api/edit_types\\\").overrideAll,o=[\\\"Legacy polar charts are deprecated!\\\",\\\"Please switch to *polar* subplots.\\\"].join(\\\" \\\"),s=i({},n.domain,{});function l(t,e){return i({},e,{showline:{valType:\\\"boolean\\\"},showticklabels:{valType:\\\"boolean\\\"},tickorientation:{valType:\\\"enumerated\\\",values:[\\\"horizontal\\\",\\\"vertical\\\"]},ticklen:{valType:\\\"number\\\",min:0},tickcolor:{valType:\\\"color\\\"},ticksuffix:{valType:\\\"string\\\"},endpadding:{valType:\\\"number\\\",description:o},visible:{valType:\\\"boolean\\\"}})}e.exports=a({radialaxis:l(0,{range:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\"},{valType:\\\"number\\\"}]},domain:s,orientation:{valType:\\\"number\\\"}}),angularaxis:l(0,{range:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\",dflt:0},{valType:\\\"number\\\",dflt:360}]},domain:s}),layout:{direction:{valType:\\\"enumerated\\\",values:[\\\"clockwise\\\",\\\"counterclockwise\\\"]},orientation:{valType:\\\"angle\\\"}}},\\\"plot\\\",\\\"nested\\\")},{\\\"../../../lib/extend\\\":685,\\\"../../../plot_api/edit_types\\\":727,\\\"../../cartesian/layout_attributes\\\":757}],816:[function(t,e,r){\\\"use strict\\\";(e.exports=t(\\\"./micropolar\\\")).manager=t(\\\"./micropolar_manager\\\")},{\\\"./micropolar\\\":817,\\\"./micropolar_manager\\\":818}],817:[function(t,e,r){var n=t(\\\"d3\\\"),i=t(\\\"../../../lib\\\").extendDeepAll,a=t(\\\"../../../constants/alignment\\\").MID_SHIFT,o=e.exports={version:\\\"0.2.2\\\"};o.Axis=function(){var t,e,r,s,l={data:[],layout:{}},c={},u={},f=n.dispatch(\\\"hover\\\"),h={};return h.render=function(c){return function(c){e=c||e;var f=l.data,h=l.layout;(\\\"string\\\"==typeof e||e.nodeName)&&(e=n.select(e)),e.datum(f).each(function(e,l){var c=e.slice();u={data:o.util.cloneJson(c),layout:o.util.cloneJson(h)};var f=0;c.forEach(function(t,e){t.color||(t.color=h.defaultColorRange[f],f=(f+1)%h.defaultColorRange.length),t.strokeColor||(t.strokeColor=\\\"LinePlot\\\"===t.geometry?t.color:n.rgb(t.color).darker().toString()),u.data[e].color=t.color,u.data[e].strokeColor=t.strokeColor,u.data[e].strokeDash=t.strokeDash,u.data[e].strokeSize=t.strokeSize});var p=c.filter(function(t,e){var r=t.visible;return\\\"undefined\\\"==typeof r||!0===r}),d=!1,g=p.map(function(t,e){return d=d||\\\"undefined\\\"!=typeof t.groupId,t});if(d){var v=n.nest().key(function(t,e){return\\\"undefined\\\"!=typeof t.groupId?t.groupId:\\\"unstacked\\\"}).entries(g),m=[],y=v.map(function(t,e){if(\\\"unstacked\\\"===t.key)return t.values;var r=t.values[0].r.map(function(t,e){return 0});return t.values.forEach(function(t,e,n){t.yStack=[r],m.push(r),r=o.util.sumArrays(t.r,r)}),t.values});p=n.merge(y)}p.forEach(function(t,e){t.t=Array.isArray(t.t[0])?t.t:[t.t],t.r=Array.isArray(t.r[0])?t.r:[t.r]});var x=Math.min(h.width-h.margin.left-h.margin.right,h.height-h.margin.top-h.margin.bottom)/2;x=Math.max(10,x);var b,_=[h.margin.left+x,h.margin.top+x];b=d?[0,n.max(o.util.sumArrays(o.util.arrayLast(p).r[0],o.util.arrayLast(m)))]:n.extent(o.util.flattenArray(p.map(function(t,e){return t.r}))),h.radialAxis.domain!=o.DATAEXTENT&&(b[0]=0),r=n.scale.linear().domain(h.radialAxis.domain!=o.DATAEXTENT&&h.radialAxis.domain?h.radialAxis.domain:b).range([0,x]),u.layout.radialAxis.domain=r.domain();var w,k=o.util.flattenArray(p.map(function(t,e){return t.t})),M=\\\"string\\\"==typeof k[0];M&&(k=o.util.deduplicate(k),w=k.slice(),k=n.range(k.length),p=p.map(function(t,e){var r=t;return t.t=[k],d&&(r.yStack=t.yStack),r}));var A=p.filter(function(t,e){return\\\"LinePlot\\\"===t.geometry||\\\"DotPlot\\\"===t.geometry}).length===p.length,T=null===h.needsEndSpacing?M||!A:h.needsEndSpacing,S=h.angularAxis.domain&&h.angularAxis.domain!=o.DATAEXTENT&&!M&&h.angularAxis.domain[0]>=0?h.angularAxis.domain:n.extent(k),E=Math.abs(k[1]-k[0]);A&&!M&&(E=0);var C=S.slice();T&&M&&(C[1]+=E);var L=h.angularAxis.ticksCount||4;L>8&&(L=L/(L/8)+L%8),h.angularAxis.ticksStep&&(L=(C[1]-C[0])/L);var z=h.angularAxis.ticksStep||(C[1]-C[0])/(L*(h.minorTicks+1));w&&(z=Math.max(Math.round(z),1)),C[2]||(C[2]=z);var O=n.range.apply(this,C);if(O=O.map(function(t,e){return parseFloat(t.toPrecision(12))}),s=n.scale.linear().domain(C.slice(0,2)).range(\\\"clockwise\\\"===h.direction?[0,360]:[360,0]),u.layout.angularAxis.domain=s.domain(),u.layout.angularAxis.endPadding=T?E:0,\\\"undefined\\\"==typeof(t=n.select(this).select(\\\"svg.chart-root\\\"))||t.empty()){var I=(new DOMParser).parseFromString(\\\"<svg xmlns='http://www.w3.org/2000/svg' class='chart-root'>' + '<g class='outer-group'>' + '<g class='chart-group'>' + '<circle class='background-circle'></circle>' + '<g class='geometry-group'></g>' + '<g class='radial axis-group'>' + '<circle class='outside-circle'></circle>' + '</g>' + '<g class='angular axis-group'></g>' + '<g class='guides-group'><line></line><circle r='0'></circle></g>' + '</g>' + '<g class='legend-group'></g>' + '<g class='tooltips-group'></g>' + '<g class='title-group'><text></text></g>' + '</g>' + '</svg>\\\",\\\"application/xml\\\"),P=this.appendChild(this.ownerDocument.importNode(I.documentElement,!0));t=n.select(P)}t.select(\\\".guides-group\\\").style({\\\"pointer-events\\\":\\\"none\\\"}),t.select(\\\".angular.axis-group\\\").style({\\\"pointer-events\\\":\\\"none\\\"}),t.select(\\\".radial.axis-group\\\").style({\\\"pointer-events\\\":\\\"none\\\"});var D,R=t.select(\\\".chart-group\\\"),B={fill:\\\"none\\\",stroke:h.tickColor},F={\\\"font-size\\\":h.font.size,\\\"font-family\\\":h.font.family,fill:h.font.color,\\\"text-shadow\\\":[\\\"-1px 0px\\\",\\\"1px -1px\\\",\\\"-1px 1px\\\",\\\"1px 1px\\\"].map(function(t,e){return\\\" \\\"+t+\\\" 0 \\\"+h.font.outlineColor}).join(\\\",\\\")};if(h.showLegend){D=t.select(\\\".legend-group\\\").attr({transform:\\\"translate(\\\"+[x,h.margin.top]+\\\")\\\"}).style({display:\\\"block\\\"});var N=p.map(function(t,e){var r=o.util.cloneJson(t);return r.symbol=\\\"DotPlot\\\"===t.geometry?t.dotType||\\\"circle\\\":\\\"LinePlot\\\"!=t.geometry?\\\"square\\\":\\\"line\\\",r.visibleInLegend=\\\"undefined\\\"==typeof t.visibleInLegend||t.visibleInLegend,r.color=\\\"LinePlot\\\"===t.geometry?t.strokeColor:t.color,r});o.Legend().config({data:p.map(function(t,e){return t.name||\\\"Element\\\"+e}),legendConfig:i({},o.Legend.defaultConfig().legendConfig,{container:D,elements:N,reverseOrder:h.legend.reverseOrder})})();var j=D.node().getBBox();x=Math.min(h.width-j.width-h.margin.left-h.margin.right,h.height-h.margin.top-h.margin.bottom)/2,x=Math.max(10,x),_=[h.margin.left+x,h.margin.top+x],r.range([0,x]),u.layout.radialAxis.domain=r.domain(),D.attr(\\\"transform\\\",\\\"translate(\\\"+[_[0]+x,_[1]-x]+\\\")\\\")}else D=t.select(\\\".legend-group\\\").style({display:\\\"none\\\"});t.attr({width:h.width,height:h.height}).style({opacity:h.opacity}),R.attr(\\\"transform\\\",\\\"translate(\\\"+_+\\\")\\\").style({cursor:\\\"crosshair\\\"});var V=[(h.width-(h.margin.left+h.margin.right+2*x+(j?j.width:0)))/2,(h.height-(h.margin.top+h.margin.bottom+2*x))/2];if(V[0]=Math.max(0,V[0]),V[1]=Math.max(0,V[1]),t.select(\\\".outer-group\\\").attr(\\\"transform\\\",\\\"translate(\\\"+V+\\\")\\\"),h.title){var U=t.select(\\\"g.title-group text\\\").style(F).text(h.title),q=U.node().getBBox();U.attr({x:_[0]-q.width/2,y:_[1]-x-20})}var H=t.select(\\\".radial.axis-group\\\");if(h.radialAxis.gridLinesVisible){var G=H.selectAll(\\\"circle.grid-circle\\\").data(r.ticks(5));G.enter().append(\\\"circle\\\").attr({class:\\\"grid-circle\\\"}).style(B),G.attr(\\\"r\\\",r),G.exit().remove()}H.select(\\\"circle.outside-circle\\\").attr({r:x}).style(B);var W=t.select(\\\"circle.background-circle\\\").attr({r:x}).style({fill:h.backgroundColor,stroke:h.stroke});function Y(t,e){return s(t)%360+h.orientation}if(h.radialAxis.visible){var X=n.svg.axis().scale(r).ticks(5).tickSize(5);H.call(X).attr({transform:\\\"rotate(\\\"+h.radialAxis.orientation+\\\")\\\"}),H.selectAll(\\\".domain\\\").style(B),H.selectAll(\\\"g>text\\\").text(function(t,e){return this.textContent+h.radialAxis.ticksSuffix}).style(F).style({\\\"text-anchor\\\":\\\"start\\\"}).attr({x:0,y:0,dx:0,dy:0,transform:function(t,e){return\\\"horizontal\\\"===h.radialAxis.tickOrientation?\\\"rotate(\\\"+-h.radialAxis.orientation+\\\") translate(\\\"+[0,F[\\\"font-size\\\"]]+\\\")\\\":\\\"translate(\\\"+[0,F[\\\"font-size\\\"]]+\\\")\\\"}}),H.selectAll(\\\"g>line\\\").style({stroke:\\\"black\\\"})}var Z=t.select(\\\".angular.axis-group\\\").selectAll(\\\"g.angular-tick\\\").data(O),$=Z.enter().append(\\\"g\\\").classed(\\\"angular-tick\\\",!0);Z.attr({transform:function(t,e){return\\\"rotate(\\\"+Y(t)+\\\")\\\"}}).style({display:h.angularAxis.visible?\\\"block\\\":\\\"none\\\"}),Z.exit().remove(),$.append(\\\"line\\\").classed(\\\"grid-line\\\",!0).classed(\\\"major\\\",function(t,e){return e%(h.minorTicks+1)==0}).classed(\\\"minor\\\",function(t,e){return!(e%(h.minorTicks+1)==0)}).style(B),$.selectAll(\\\".minor\\\").style({stroke:h.minorTickColor}),Z.select(\\\"line.grid-line\\\").attr({x1:h.tickLength?x-h.tickLength:0,x2:x}).style({display:h.angularAxis.gridLinesVisible?\\\"block\\\":\\\"none\\\"}),$.append(\\\"text\\\").classed(\\\"axis-text\\\",!0).style(F);var J=Z.select(\\\"text.axis-text\\\").attr({x:x+h.labelOffset,dy:a+\\\"em\\\",transform:function(t,e){var r=Y(t),n=x+h.labelOffset,i=h.angularAxis.tickOrientation;return\\\"horizontal\\\"==i?\\\"rotate(\\\"+-r+\\\" \\\"+n+\\\" 0)\\\":\\\"radial\\\"==i?r<270&&r>90?\\\"rotate(180 \\\"+n+\\\" 0)\\\":null:\\\"rotate(\\\"+(r<=180&&r>0?-90:90)+\\\" \\\"+n+\\\" 0)\\\"}}).style({\\\"text-anchor\\\":\\\"middle\\\",display:h.angularAxis.labelsVisible?\\\"block\\\":\\\"none\\\"}).text(function(t,e){return e%(h.minorTicks+1)!=0?\\\"\\\":w?w[t]+h.angularAxis.ticksSuffix:t+h.angularAxis.ticksSuffix}).style(F);h.angularAxis.rewriteTicks&&J.text(function(t,e){return e%(h.minorTicks+1)!=0?\\\"\\\":h.angularAxis.rewriteTicks(this.textContent,e)});var K=n.max(R.selectAll(\\\".angular-tick text\\\")[0].map(function(t,e){return t.getCTM().e+t.getBBox().width}));D.attr({transform:\\\"translate(\\\"+[x+K,h.margin.top]+\\\")\\\"});var Q=t.select(\\\"g.geometry-group\\\").selectAll(\\\"g\\\").size()>0,tt=t.select(\\\"g.geometry-group\\\").selectAll(\\\"g.geometry\\\").data(p);if(tt.enter().append(\\\"g\\\").attr({class:function(t,e){return\\\"geometry geometry\\\"+e}}),tt.exit().remove(),p[0]||Q){var et=[];p.forEach(function(t,e){var n={};n.radialScale=r,n.angularScale=s,n.container=tt.filter(function(t,r){return r==e}),n.geometry=t.geometry,n.orientation=h.orientation,n.direction=h.direction,n.index=e,et.push({data:t,geometryConfig:n})});var rt=n.nest().key(function(t,e){return\\\"undefined\\\"!=typeof t.data.groupId||\\\"unstacked\\\"}).entries(et),nt=[];rt.forEach(function(t,e){\\\"unstacked\\\"===t.key?nt=nt.concat(t.values.map(function(t,e){return[t]})):nt.push(t.values)}),nt.forEach(function(t,e){var r;r=Array.isArray(t)?t[0].geometryConfig.geometry:t.geometryConfig.geometry;var n=t.map(function(t,e){return i(o[r].defaultConfig(),t)});o[r]().config(n)()})}var it,at,ot=t.select(\\\".guides-group\\\"),st=t.select(\\\".tooltips-group\\\"),lt=o.tooltipPanel().config({container:st,fontSize:8})(),ct=o.tooltipPanel().config({container:st,fontSize:8})(),ut=o.tooltipPanel().config({container:st,hasTick:!0})();if(!M){var ft=ot.select(\\\"line\\\").attr({x1:0,y1:0,y2:0}).style({stroke:\\\"grey\\\",\\\"pointer-events\\\":\\\"none\\\"});R.on(\\\"mousemove.angular-guide\\\",function(t,e){var r=o.util.getMousePos(W).angle;ft.attr({x2:-x,transform:\\\"rotate(\\\"+r+\\\")\\\"}).style({opacity:.5});var n=(r+180+360-h.orientation)%360;it=s.invert(n);var i=o.util.convertToCartesian(x+12,r+180);lt.text(o.util.round(it)).move([i[0]+_[0],i[1]+_[1]])}).on(\\\"mouseout.angular-guide\\\",function(t,e){ot.select(\\\"line\\\").style({opacity:0})})}var ht=ot.select(\\\"circle\\\").style({stroke:\\\"grey\\\",fill:\\\"none\\\"});R.on(\\\"mousemove.radial-guide\\\",function(t,e){var n=o.util.getMousePos(W).radius;ht.attr({r:n}).style({opacity:.5}),at=r.invert(o.util.getMousePos(W).radius);var i=o.util.convertToCartesian(n,h.radialAxis.orientation);ct.text(o.util.round(at)).move([i[0]+_[0],i[1]+_[1]])}).on(\\\"mouseout.radial-guide\\\",function(t,e){ht.style({opacity:0}),ut.hide(),lt.hide(),ct.hide()}),t.selectAll(\\\".geometry-group .mark\\\").on(\\\"mouseover.tooltip\\\",function(e,r){var i=n.select(this),a=this.style.fill,s=\\\"black\\\",l=this.style.opacity||1;if(i.attr({\\\"data-opacity\\\":l}),a&&\\\"none\\\"!==a){i.attr({\\\"data-fill\\\":a}),s=n.hsl(a).darker().toString(),i.style({fill:s,opacity:1});var c={t:o.util.round(e[0]),r:o.util.round(e[1])};M&&(c.t=w[e[0]]);var u=\\\"t: \\\"+c.t+\\\", r: \\\"+c.r,f=this.getBoundingClientRect(),h=t.node().getBoundingClientRect(),p=[f.left+f.width/2-V[0]-h.left,f.top+f.height/2-V[1]-h.top];ut.config({color:s}).text(u),ut.move(p)}else a=this.style.stroke||\\\"black\\\",i.attr({\\\"data-stroke\\\":a}),s=n.hsl(a).darker().toString(),i.style({stroke:s,opacity:1})}).on(\\\"mousemove.tooltip\\\",function(t,e){if(0!=n.event.which)return!1;n.select(this).attr(\\\"data-fill\\\")&&ut.show()}).on(\\\"mouseout.tooltip\\\",function(t,e){ut.hide();var r=n.select(this),i=r.attr(\\\"data-fill\\\");i?r.style({fill:i,opacity:r.attr(\\\"data-opacity\\\")}):r.style({stroke:r.attr(\\\"data-stroke\\\"),opacity:r.attr(\\\"data-opacity\\\")})})})}(c),this},h.config=function(t){if(!arguments.length)return l;var e=o.util.cloneJson(t);return e.data.forEach(function(t,e){l.data[e]||(l.data[e]={}),i(l.data[e],o.Axis.defaultConfig().data[0]),i(l.data[e],t)}),i(l.layout,o.Axis.defaultConfig().layout),i(l.layout,e.layout),this},h.getLiveConfig=function(){return u},h.getinputConfig=function(){return c},h.radialScale=function(t){return r},h.angularScale=function(t){return s},h.svg=function(){return t},n.rebind(h,f,\\\"on\\\"),h},o.Axis.defaultConfig=function(t,e){return{data:[{t:[1,2,3,4],r:[10,11,12,13],name:\\\"Line1\\\",geometry:\\\"LinePlot\\\",color:null,strokeDash:\\\"solid\\\",strokeColor:null,strokeSize:\\\"1\\\",visibleInLegend:!0,opacity:1}],layout:{defaultColorRange:n.scale.category10().range(),title:null,height:450,width:500,margin:{top:40,right:40,bottom:40,left:40},font:{size:12,color:\\\"gray\\\",outlineColor:\\\"white\\\",family:\\\"Tahoma, sans-serif\\\"},direction:\\\"clockwise\\\",orientation:0,labelOffset:10,radialAxis:{domain:null,orientation:-45,ticksSuffix:\\\"\\\",visible:!0,gridLinesVisible:!0,tickOrientation:\\\"horizontal\\\",rewriteTicks:null},angularAxis:{domain:[0,360],ticksSuffix:\\\"\\\",visible:!0,gridLinesVisible:!0,labelsVisible:!0,tickOrientation:\\\"horizontal\\\",rewriteTicks:null,ticksCount:null,ticksStep:null},minorTicks:0,tickLength:null,tickColor:\\\"silver\\\",minorTickColor:\\\"#eee\\\",backgroundColor:\\\"none\\\",needsEndSpacing:null,showLegend:!0,legend:{reverseOrder:!1},opacity:1}}},o.util={},o.DATAEXTENT=\\\"dataExtent\\\",o.AREA=\\\"AreaChart\\\",o.LINE=\\\"LinePlot\\\",o.DOT=\\\"DotPlot\\\",o.BAR=\\\"BarChart\\\",o.util._override=function(t,e){for(var r in t)r in e&&(e[r]=t[r])},o.util._extend=function(t,e){for(var r in t)e[r]=t[r]},o.util._rndSnd=function(){return 2*Math.random()-1+(2*Math.random()-1)+(2*Math.random()-1)},o.util.dataFromEquation2=function(t,e){var r=e||6;return n.range(0,360+r,r).map(function(e,r){var n=e*Math.PI/180;return[e,t(n)]})},o.util.dataFromEquation=function(t,e,r){var i=e||6,a=[],o=[];n.range(0,360+i,i).forEach(function(e,r){var n=e*Math.PI/180,i=t(n);a.push(e),o.push(i)});var s={t:a,r:o};return r&&(s.name=r),s},o.util.ensureArray=function(t,e){if(\\\"undefined\\\"==typeof t)return null;var r=[].concat(t);return n.range(e).map(function(t,e){return r[e]||r[0]})},o.util.fillArrays=function(t,e,r){return e.forEach(function(e,n){t[e]=o.util.ensureArray(t[e],r)}),t},o.util.cloneJson=function(t){return JSON.parse(JSON.stringify(t))},o.util.validateKeys=function(t,e){\\\"string\\\"==typeof e&&(e=e.split(\\\".\\\"));var r=e.shift();return t[r]&&(!e.length||objHasKeys(t[r],e))},o.util.sumArrays=function(t,e){return n.zip(t,e).map(function(t,e){return n.sum(t)})},o.util.arrayLast=function(t){return t[t.length-1]},o.util.arrayEqual=function(t,e){for(var r=Math.max(t.length,e.length,1);r-- >=0&&t[r]===e[r];);return-2===r},o.util.flattenArray=function(t){for(var e=[];!o.util.arrayEqual(e,t);)e=t,t=[].concat.apply([],t);return t},o.util.deduplicate=function(t){return t.filter(function(t,e,r){return r.indexOf(t)==e})},o.util.convertToCartesian=function(t,e){var r=e*Math.PI/180;return[t*Math.cos(r),t*Math.sin(r)]},o.util.round=function(t,e){var r=e||2,n=Math.pow(10,r);return Math.round(t*n)/n},o.util.getMousePos=function(t){var e=n.mouse(t.node()),r=e[0],i=e[1],a={};return a.x=r,a.y=i,a.pos=e,a.angle=180*(Math.atan2(i,r)+Math.PI)/Math.PI,a.radius=Math.sqrt(r*r+i*i),a},o.util.duplicatesCount=function(t){for(var e,r={},n={},i=0,a=t.length;i<a;i++)(e=t[i])in r?(r[e]++,n[e]=r[e]):r[e]=1;return n},o.util.duplicates=function(t){return Object.keys(o.util.duplicatesCount(t))},o.util.translator=function(t,e,r,n){if(n){var i=r.slice();r=e,e=i}var a=e.reduce(function(t,e){if(\\\"undefined\\\"!=typeof t)return t[e]},t);\\\"undefined\\\"!=typeof a&&(e.reduce(function(t,r,n){if(\\\"undefined\\\"!=typeof t)return n===e.length-1&&delete t[r],t[r]},t),r.reduce(function(t,e,n){return\\\"undefined\\\"==typeof t[e]&&(t[e]={}),n===r.length-1&&(t[e]=a),t[e]},t))},o.PolyChart=function(){var t=[o.PolyChart.defaultConfig()],e=n.dispatch(\\\"hover\\\"),r={solid:\\\"none\\\",dash:[5,2],dot:[2,5]};function a(){var e=t[0].geometryConfig,i=e.container;\\\"string\\\"==typeof i&&(i=n.select(i)),i.datum(t).each(function(t,i){var a=!!t[0].data.yStack,o=t.map(function(t,e){return a?n.zip(t.data.t[0],t.data.r[0],t.data.yStack[0]):n.zip(t.data.t[0],t.data.r[0])}),s=e.angularScale,l=e.radialScale.domain()[0],c={bar:function(r,i,a){var o=t[a].data,l=e.radialScale(r[1])-e.radialScale(0),c=e.radialScale(r[2]||0),u=o.barWidth;n.select(this).attr({class:\\\"mark bar\\\",d:\\\"M\\\"+[[l+c,-u/2],[l+c,u/2],[c,u/2],[c,-u/2]].join(\\\"L\\\")+\\\"Z\\\",transform:function(t,r){return\\\"rotate(\\\"+(e.orientation+s(t[0]))+\\\")\\\"}})}};c.dot=function(r,i,a){var o=r[2]?[r[0],r[1]+r[2]]:r,s=n.svg.symbol().size(t[a].data.dotSize).type(t[a].data.dotType)(r,i);n.select(this).attr({class:\\\"mark dot\\\",d:s,transform:function(t,r){var n,i,a,s=(n=function(t,r){var n=e.radialScale(t[1]),i=(e.angularScale(t[0])+e.orientation)*Math.PI/180;return{r:n,t:i}}(o),i=n.r*Math.cos(n.t),a=n.r*Math.sin(n.t),{x:i,y:a});return\\\"translate(\\\"+[s.x,s.y]+\\\")\\\"}})};var u=n.svg.line.radial().interpolate(t[0].data.lineInterpolation).radius(function(t){return e.radialScale(t[1])}).angle(function(t){return e.angularScale(t[0])*Math.PI/180});c.line=function(r,i,a){var s=r[2]?o[a].map(function(t,e){return[t[0],t[1]+t[2]]}):o[a];if(n.select(this).each(c.dot).style({opacity:function(e,r){return+t[a].data.dotVisible},fill:d.stroke(r,i,a)}).attr({class:\\\"mark dot\\\"}),!(i>0)){var l=n.select(this.parentNode).selectAll(\\\"path.line\\\").data([0]);l.enter().insert(\\\"path\\\"),l.attr({class:\\\"line\\\",d:u(s),transform:function(t,r){return\\\"rotate(\\\"+(e.orientation+90)+\\\")\\\"},\\\"pointer-events\\\":\\\"none\\\"}).style({fill:function(t,e){return d.fill(r,i,a)},\\\"fill-opacity\\\":0,stroke:function(t,e){return d.stroke(r,i,a)},\\\"stroke-width\\\":function(t,e){return d[\\\"stroke-width\\\"](r,i,a)},\\\"stroke-dasharray\\\":function(t,e){return d[\\\"stroke-dasharray\\\"](r,i,a)},opacity:function(t,e){return d.opacity(r,i,a)},display:function(t,e){return d.display(r,i,a)}})}};var f=e.angularScale.range(),h=Math.abs(f[1]-f[0])/o[0].length*Math.PI/180,p=n.svg.arc().startAngle(function(t){return-h/2}).endAngle(function(t){return h/2}).innerRadius(function(t){return e.radialScale(l+(t[2]||0))}).outerRadius(function(t){return e.radialScale(l+(t[2]||0))+e.radialScale(t[1])});c.arc=function(t,r,i){n.select(this).attr({class:\\\"mark arc\\\",d:p,transform:function(t,r){return\\\"rotate(\\\"+(e.orientation+s(t[0])+90)+\\\")\\\"}})};var d={fill:function(e,r,n){return t[n].data.color},stroke:function(e,r,n){return t[n].data.strokeColor},\\\"stroke-width\\\":function(e,r,n){return t[n].data.strokeSize+\\\"px\\\"},\\\"stroke-dasharray\\\":function(e,n,i){return r[t[i].data.strokeDash]},opacity:function(e,r,n){return t[n].data.opacity},display:function(e,r,n){return\\\"undefined\\\"==typeof t[n].data.visible||t[n].data.visible?\\\"block\\\":\\\"none\\\"}},g=n.select(this).selectAll(\\\"g.layer\\\").data(o);g.enter().append(\\\"g\\\").attr({class:\\\"layer\\\"});var v=g.selectAll(\\\"path.mark\\\").data(function(t,e){return t});v.enter().append(\\\"path\\\").attr({class:\\\"mark\\\"}),v.style(d).each(c[e.geometryType]),v.exit().remove(),g.exit().remove()})}return a.config=function(e){return arguments.length?(e.forEach(function(e,r){t[r]||(t[r]={}),i(t[r],o.PolyChart.defaultConfig()),i(t[r],e)}),this):t},a.getColorScale=function(){},n.rebind(a,e,\\\"on\\\"),a},o.PolyChart.defaultConfig=function(){return{data:{name:\\\"geom1\\\",t:[[1,2,3,4]],r:[[1,2,3,4]],dotType:\\\"circle\\\",dotSize:64,dotVisible:!1,barWidth:20,color:\\\"#ffa500\\\",strokeSize:1,strokeColor:\\\"silver\\\",strokeDash:\\\"solid\\\",opacity:1,index:0,visible:!0,visibleInLegend:!0},geometryConfig:{geometry:\\\"LinePlot\\\",geometryType:\\\"arc\\\",direction:\\\"clockwise\\\",orientation:0,container:\\\"body\\\",radialScale:null,angularScale:null,colorScale:n.scale.category20()}}},o.BarChart=function(){return o.PolyChart()},o.BarChart.defaultConfig=function(){return{geometryConfig:{geometryType:\\\"bar\\\"}}},o.AreaChart=function(){return o.PolyChart()},o.AreaChart.defaultConfig=function(){return{geometryConfig:{geometryType:\\\"arc\\\"}}},o.DotPlot=function(){return o.PolyChart()},o.DotPlot.defaultConfig=function(){return{geometryConfig:{geometryType:\\\"dot\\\",dotType:\\\"circle\\\"}}},o.LinePlot=function(){return o.PolyChart()},o.LinePlot.defaultConfig=function(){return{geometryConfig:{geometryType:\\\"line\\\"}}},o.Legend=function(){var t=o.Legend.defaultConfig(),e=n.dispatch(\\\"hover\\\");function r(){var e=t.legendConfig,a=t.data.map(function(t,r){return[].concat(t).map(function(t,n){var a=i({},e.elements[r]);return a.name=t,a.color=[].concat(e.elements[r].color)[n],a})}),o=n.merge(a);o=o.filter(function(t,r){return e.elements[r]&&(e.elements[r].visibleInLegend||\\\"undefined\\\"==typeof e.elements[r].visibleInLegend)}),e.reverseOrder&&(o=o.reverse());var s=e.container;(\\\"string\\\"==typeof s||s.nodeName)&&(s=n.select(s));var l=o.map(function(t,e){return t.color}),c=e.fontSize,u=null==e.isContinuous?\\\"number\\\"==typeof o[0]:e.isContinuous,f=u?e.height:c*o.length,h=s.classed(\\\"legend-group\\\",!0).selectAll(\\\"svg\\\").data([0]),p=h.enter().append(\\\"svg\\\").attr({width:300,height:f+c,xmlns:\\\"http://www.w3.org/2000/svg\\\",\\\"xmlns:xlink\\\":\\\"http://www.w3.org/1999/xlink\\\",version:\\\"1.1\\\"});p.append(\\\"g\\\").classed(\\\"legend-axis\\\",!0),p.append(\\\"g\\\").classed(\\\"legend-marks\\\",!0);var d=n.range(o.length),g=n.scale[u?\\\"linear\\\":\\\"ordinal\\\"]().domain(d).range(l),v=n.scale[u?\\\"linear\\\":\\\"ordinal\\\"]().domain(d)[u?\\\"range\\\":\\\"rangePoints\\\"]([0,f]);if(u){var m=h.select(\\\".legend-marks\\\").append(\\\"defs\\\").append(\\\"linearGradient\\\").attr({id:\\\"grad1\\\",x1:\\\"0%\\\",y1:\\\"0%\\\",x2:\\\"0%\\\",y2:\\\"100%\\\"}).selectAll(\\\"stop\\\").data(l);m.enter().append(\\\"stop\\\"),m.attr({offset:function(t,e){return e/(l.length-1)*100+\\\"%\\\"}}).style({\\\"stop-color\\\":function(t,e){return t}}),h.append(\\\"rect\\\").classed(\\\"legend-mark\\\",!0).attr({height:e.height,width:e.colorBandWidth,fill:\\\"url(#grad1)\\\"})}else{var y=h.select(\\\".legend-marks\\\").selectAll(\\\"path.legend-mark\\\").data(o);y.enter().append(\\\"path\\\").classed(\\\"legend-mark\\\",!0),y.attr({transform:function(t,e){return\\\"translate(\\\"+[c/2,v(e)+c/2]+\\\")\\\"},d:function(t,e){var r,i,a,o=t.symbol;return a=3*(i=c),\\\"line\\\"===(r=o)?\\\"M\\\"+[[-i/2,-i/12],[i/2,-i/12],[i/2,i/12],[-i/2,i/12]]+\\\"Z\\\":-1!=n.svg.symbolTypes.indexOf(r)?n.svg.symbol().type(r).size(a)():n.svg.symbol().type(\\\"square\\\").size(a)()},fill:function(t,e){return g(e)}}),y.exit().remove()}var x=n.svg.axis().scale(v).orient(\\\"right\\\"),b=h.select(\\\"g.legend-axis\\\").attr({transform:\\\"translate(\\\"+[u?e.colorBandWidth:c,c/2]+\\\")\\\"}).call(x);return b.selectAll(\\\".domain\\\").style({fill:\\\"none\\\",stroke:\\\"none\\\"}),b.selectAll(\\\"line\\\").style({fill:\\\"none\\\",stroke:u?e.textColor:\\\"none\\\"}),b.selectAll(\\\"text\\\").style({fill:e.textColor,\\\"font-size\\\":e.fontSize}).text(function(t,e){return o[e].name}),r}return r.config=function(e){return arguments.length?(i(t,e),this):t},n.rebind(r,e,\\\"on\\\"),r},o.Legend.defaultConfig=function(t,e){return{data:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],legendConfig:{elements:[{symbol:\\\"line\\\",color:\\\"red\\\"},{symbol:\\\"square\\\",color:\\\"yellow\\\"},{symbol:\\\"diamond\\\",color:\\\"limegreen\\\"}],height:150,colorBandWidth:30,fontSize:12,container:\\\"body\\\",isContinuous:null,textColor:\\\"grey\\\",reverseOrder:!1}}},o.tooltipPanel=function(){var t,e,r,a={container:null,hasTick:!1,fontSize:12,color:\\\"white\\\",padding:5},s=\\\"tooltip-\\\"+o.tooltipPanel.uid++,l=10,c=function(){var n=(t=a.container.selectAll(\\\"g.\\\"+s).data([0])).enter().append(\\\"g\\\").classed(s,!0).style({\\\"pointer-events\\\":\\\"none\\\",display:\\\"none\\\"});return r=n.append(\\\"path\\\").style({fill:\\\"white\\\",\\\"fill-opacity\\\":.9}).attr({d:\\\"M0 0\\\"}),e=n.append(\\\"text\\\").attr({dx:a.padding+l,dy:.3*+a.fontSize}),c};return c.text=function(i){var o=n.hsl(a.color).l,s=o>=.5?\\\"#aaa\\\":\\\"white\\\",u=o>=.5?\\\"black\\\":\\\"white\\\",f=i||\\\"\\\";e.style({fill:u,\\\"font-size\\\":a.fontSize+\\\"px\\\"}).text(f);var h=a.padding,p=e.node().getBBox(),d={fill:a.color,stroke:s,\\\"stroke-width\\\":\\\"2px\\\"},g=p.width+2*h+l,v=p.height+2*h;return r.attr({d:\\\"M\\\"+[[l,-v/2],[l,-v/4],[a.hasTick?0:l,0],[l,v/4],[l,v/2],[g,v/2],[g,-v/2]].join(\\\"L\\\")+\\\"Z\\\"}).style(d),t.attr({transform:\\\"translate(\\\"+[l,-v/2+2*h]+\\\")\\\"}),t.style({display:\\\"block\\\"}),c},c.move=function(e){if(t)return t.attr({transform:\\\"translate(\\\"+[e[0],e[1]]+\\\")\\\"}).style({display:\\\"block\\\"}),c},c.hide=function(){if(t)return t.style({display:\\\"none\\\"}),c},c.show=function(){if(t)return t.style({display:\\\"block\\\"}),c},c.config=function(t){return i(a,t),c},c},o.tooltipPanel.uid=1,o.adapter={},o.adapter.plotly=function(){var t={convert:function(t,e){var r={};if(t.data&&(r.data=t.data.map(function(t,r){var n=i({},t);return[[n,[\\\"marker\\\",\\\"color\\\"],[\\\"color\\\"]],[n,[\\\"marker\\\",\\\"opacity\\\"],[\\\"opacity\\\"]],[n,[\\\"marker\\\",\\\"line\\\",\\\"color\\\"],[\\\"strokeColor\\\"]],[n,[\\\"marker\\\",\\\"line\\\",\\\"dash\\\"],[\\\"strokeDash\\\"]],[n,[\\\"marker\\\",\\\"line\\\",\\\"width\\\"],[\\\"strokeSize\\\"]],[n,[\\\"marker\\\",\\\"symbol\\\"],[\\\"dotType\\\"]],[n,[\\\"marker\\\",\\\"size\\\"],[\\\"dotSize\\\"]],[n,[\\\"marker\\\",\\\"barWidth\\\"],[\\\"barWidth\\\"]],[n,[\\\"line\\\",\\\"interpolation\\\"],[\\\"lineInterpolation\\\"]],[n,[\\\"showlegend\\\"],[\\\"visibleInLegend\\\"]]].forEach(function(t,r){o.util.translator.apply(null,t.concat(e))}),e||delete n.marker,e&&delete n.groupId,e?(\\\"LinePlot\\\"===n.geometry?(n.type=\\\"scatter\\\",!0===n.dotVisible?(delete n.dotVisible,n.mode=\\\"lines+markers\\\"):n.mode=\\\"lines\\\"):\\\"DotPlot\\\"===n.geometry?(n.type=\\\"scatter\\\",n.mode=\\\"markers\\\"):\\\"AreaChart\\\"===n.geometry?n.type=\\\"area\\\":\\\"BarChart\\\"===n.geometry&&(n.type=\\\"bar\\\"),delete n.geometry):(\\\"scatter\\\"===n.type?\\\"lines\\\"===n.mode?n.geometry=\\\"LinePlot\\\":\\\"markers\\\"===n.mode?n.geometry=\\\"DotPlot\\\":\\\"lines+markers\\\"===n.mode&&(n.geometry=\\\"LinePlot\\\",n.dotVisible=!0):\\\"area\\\"===n.type?n.geometry=\\\"AreaChart\\\":\\\"bar\\\"===n.type&&(n.geometry=\\\"BarChart\\\"),delete n.mode,delete n.type),n}),!e&&t.layout&&\\\"stack\\\"===t.layout.barmode)){var a=o.util.duplicates(r.data.map(function(t,e){return t.geometry}));r.data.forEach(function(t,e){var n=a.indexOf(t.geometry);-1!=n&&(r.data[e].groupId=n)})}if(t.layout){var s=i({},t.layout);if([[s,[\\\"plot_bgcolor\\\"],[\\\"backgroundColor\\\"]],[s,[\\\"showlegend\\\"],[\\\"showLegend\\\"]],[s,[\\\"radialaxis\\\"],[\\\"radialAxis\\\"]],[s,[\\\"angularaxis\\\"],[\\\"angularAxis\\\"]],[s.angularaxis,[\\\"showline\\\"],[\\\"gridLinesVisible\\\"]],[s.angularaxis,[\\\"showticklabels\\\"],[\\\"labelsVisible\\\"]],[s.angularaxis,[\\\"nticks\\\"],[\\\"ticksCount\\\"]],[s.angularaxis,[\\\"tickorientation\\\"],[\\\"tickOrientation\\\"]],[s.angularaxis,[\\\"ticksuffix\\\"],[\\\"ticksSuffix\\\"]],[s.angularaxis,[\\\"range\\\"],[\\\"domain\\\"]],[s.angularaxis,[\\\"endpadding\\\"],[\\\"endPadding\\\"]],[s.radialaxis,[\\\"showline\\\"],[\\\"gridLinesVisible\\\"]],[s.radialaxis,[\\\"tickorientation\\\"],[\\\"tickOrientation\\\"]],[s.radialaxis,[\\\"ticksuffix\\\"],[\\\"ticksSuffix\\\"]],[s.radialaxis,[\\\"range\\\"],[\\\"domain\\\"]],[s.angularAxis,[\\\"showline\\\"],[\\\"gridLinesVisible\\\"]],[s.angularAxis,[\\\"showticklabels\\\"],[\\\"labelsVisible\\\"]],[s.angularAxis,[\\\"nticks\\\"],[\\\"ticksCount\\\"]],[s.angularAxis,[\\\"tickorientation\\\"],[\\\"tickOrientation\\\"]],[s.angularAxis,[\\\"ticksuffix\\\"],[\\\"ticksSuffix\\\"]],[s.angularAxis,[\\\"range\\\"],[\\\"domain\\\"]],[s.angularAxis,[\\\"endpadding\\\"],[\\\"endPadding\\\"]],[s.radialAxis,[\\\"showline\\\"],[\\\"gridLinesVisible\\\"]],[s.radialAxis,[\\\"tickorientation\\\"],[\\\"tickOrientation\\\"]],[s.radialAxis,[\\\"ticksuffix\\\"],[\\\"ticksSuffix\\\"]],[s.radialAxis,[\\\"range\\\"],[\\\"domain\\\"]],[s.font,[\\\"outlinecolor\\\"],[\\\"outlineColor\\\"]],[s.legend,[\\\"traceorder\\\"],[\\\"reverseOrder\\\"]],[s,[\\\"labeloffset\\\"],[\\\"labelOffset\\\"]],[s,[\\\"defaultcolorrange\\\"],[\\\"defaultColorRange\\\"]]].forEach(function(t,r){o.util.translator.apply(null,t.concat(e))}),e?(\\\"undefined\\\"!=typeof s.tickLength&&(s.angularaxis.ticklen=s.tickLength,delete s.tickLength),s.tickColor&&(s.angularaxis.tickcolor=s.tickColor,delete s.tickColor)):(s.angularAxis&&\\\"undefined\\\"!=typeof s.angularAxis.ticklen&&(s.tickLength=s.angularAxis.ticklen),s.angularAxis&&\\\"undefined\\\"!=typeof s.angularAxis.tickcolor&&(s.tickColor=s.angularAxis.tickcolor)),s.legend&&\\\"boolean\\\"!=typeof s.legend.reverseOrder&&(s.legend.reverseOrder=\\\"normal\\\"!=s.legend.reverseOrder),s.legend&&\\\"boolean\\\"==typeof s.legend.traceorder&&(s.legend.traceorder=s.legend.traceorder?\\\"reversed\\\":\\\"normal\\\",delete s.legend.reverseOrder),s.margin&&\\\"undefined\\\"!=typeof s.margin.t){var l=[\\\"t\\\",\\\"r\\\",\\\"b\\\",\\\"l\\\",\\\"pad\\\"],c=[\\\"top\\\",\\\"right\\\",\\\"bottom\\\",\\\"left\\\",\\\"pad\\\"],u={};n.entries(s.margin).forEach(function(t,e){u[c[l.indexOf(t.key)]]=t.value}),s.margin=u}e&&(delete s.needsEndSpacing,delete s.minorTickColor,delete s.minorTicks,delete s.angularaxis.ticksCount,delete s.angularaxis.ticksCount,delete s.angularaxis.ticksStep,delete s.angularaxis.rewriteTicks,delete s.angularaxis.nticks,delete s.radialaxis.ticksCount,delete s.radialaxis.ticksCount,delete s.radialaxis.ticksStep,delete s.radialaxis.rewriteTicks,delete s.radialaxis.nticks),r.layout=s}return r}};return t}},{\\\"../../../constants/alignment\\\":668,\\\"../../../lib\\\":696,d3:148}],818:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../../lib\\\"),a=t(\\\"../../../components/color\\\"),o=t(\\\"./micropolar\\\"),s=t(\\\"./undo_manager\\\"),l=i.extendDeepAll,c=e.exports={};c.framework=function(t){var e,r,i,a,u,f=new s;function h(r,s){return s&&(u=s),n.select(n.select(u).node().parentNode).selectAll(\\\".svg-container>*:not(.chart-root)\\\").remove(),e=e?l(e,r):r,i||(i=o.Axis()),a=o.adapter.plotly().convert(e),i.config(a).render(u),t.data=e.data,t.layout=e.layout,c.fillLayout(t),e}return h.isPolar=!0,h.svg=function(){return i.svg()},h.getConfig=function(){return e},h.getLiveConfig=function(){return o.adapter.plotly().convert(i.getLiveConfig(),!0)},h.getLiveScales=function(){return{t:i.angularScale(),r:i.radialScale()}},h.setUndoPoint=function(){var t,n,i=this,a=o.util.cloneJson(e);t=a,n=r,f.add({undo:function(){n&&i(n)},redo:function(){i(t)}}),r=o.util.cloneJson(a)},h.undo=function(){f.undo()},h.redo=function(){f.redo()},h},c.fillLayout=function(t){var e=n.select(t).selectAll(\\\".plot-container\\\"),r=e.selectAll(\\\".svg-container\\\"),i=t.framework&&t.framework.svg&&t.framework.svg(),o={width:800,height:600,paper_bgcolor:a.background,_container:e,_paperdiv:r,_paper:i};t._fullLayout=l(o,t.layout)}},{\\\"../../../components/color\\\":570,\\\"../../../lib\\\":696,\\\"./micropolar\\\":817,\\\"./undo_manager\\\":819,d3:148}],819:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t,e=[],r=-1,n=!1;function i(t,e){return t?(n=!0,t[e](),n=!1,this):this}return{add:function(t){return n?this:(e.splice(r+1,e.length-r),e.push(t),r=e.length-1,this)},setCallback:function(e){t=e},undo:function(){var n=e[r];return n?(i(n,\\\"undo\\\"),r-=1,t&&t(n.undo),this):this},redo:function(){var n=e[r+1];return n?(i(n,\\\"redo\\\"),r+=1,t&&t(n.redo),this):this},clear:function(){e=[],r=-1},hasUndo:function(){return-1!==r},hasRedo:function(){return r<e.length-1},getCommands:function(){return e},getPreviousCommand:function(){return e[r-1]},getIndex:function(){return r}}}},{}],820:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../components/color\\\"),l=t(\\\"../../components/drawing\\\"),c=t(\\\"../plots\\\"),u=t(\\\"../cartesian/set_convert\\\"),f=t(\\\"./set_convert\\\"),h=t(\\\"../cartesian/autorange\\\").doAutoRange,p=t(\\\"../cartesian/axes\\\").doTicksSingle,d=t(\\\"../cartesian/dragbox\\\"),g=t(\\\"../../components/dragelement\\\"),v=t(\\\"../../components/fx\\\"),m=t(\\\"../../components/titles\\\"),y=t(\\\"../cartesian/select\\\").prepSelect,x=t(\\\"../cartesian/select\\\").selectOnClick,b=t(\\\"../cartesian/select\\\").clearSelect,_=t(\\\"../../lib/setcursor\\\"),w=t(\\\"../../lib/clear_gl_canvases\\\"),k=t(\\\"../../plot_api/subroutines\\\").redrawReglTraces,M=t(\\\"../../constants/alignment\\\").MID_SHIFT,A=t(\\\"./constants\\\"),T=t(\\\"./helpers\\\"),S=o._,E=o.mod,C=o.deg2rad,L=o.rad2deg;function z(t,e){this.id=e,this.gd=t,this._hasClipOnAxisFalse=null,this.vangles=null,this.radialAxisAngle=null,this.traceHash={},this.layers={},this.clipPaths={},this.clipIds={},this.viewInitial={};var r=t._fullLayout,n=\\\"clip\\\"+r._uid+e;this.clipIds.forTraces=n+\\\"-for-traces\\\",this.clipPaths.forTraces=r._clips.append(\\\"clipPath\\\").attr(\\\"id\\\",this.clipIds.forTraces),this.clipPaths.forTraces.append(\\\"path\\\"),this.framework=r._polarlayer.append(\\\"g\\\").attr(\\\"class\\\",e),this.radialTickLayout=null,this.angularTickLayout=null}var O=z.prototype;function I(t){var e=t.ticks+String(t.ticklen)+String(t.showticklabels);return\\\"side\\\"in t&&(e+=t.side),e}function P(t,e){return e[o.findIndexOfMin(e,function(e){return o.angleDist(t,e)})]}function D(t,e,r){return e?(t.attr(\\\"display\\\",null),t.attr(r)):t&&t.attr(\\\"display\\\",\\\"none\\\"),t}function R(t,e){return\\\"translate(\\\"+t+\\\",\\\"+e+\\\")\\\"}function B(t){return\\\"rotate(\\\"+t+\\\")\\\"}function F(t){return Math.abs(t)<1e-10?0:t>0?1:-1}function N(t){return F(Math.cos(t))}function j(t){return F(Math.sin(t))}e.exports=function(t,e){return new z(t,e)},O.plot=function(t,e){var r=e[this.id];this._hasClipOnAxisFalse=!1;for(var n=0;n<t.length;n++){if(!1===t[n][0].trace.cliponaxis){this._hasClipOnAxisFalse=!0;break}}this.updateLayers(e,r),this.updateLayout(e,r),c.generalUpdatePerTraceModule(this.gd,this,t,r),this.updateFx(e,r)},O.updateLayers=function(t,e){var r=this.layers,i=e.radialaxis,a=e.angularaxis,o=A.layerNames,s=o.indexOf(\\\"frontplot\\\"),l=o.slice(0,s),c=\\\"below traces\\\"===a.layer,u=\\\"below traces\\\"===i.layer;c&&l.push(\\\"angular-line\\\"),u&&l.push(\\\"radial-line\\\"),c&&l.push(\\\"angular-axis\\\"),u&&l.push(\\\"radial-axis\\\"),l.push(\\\"frontplot\\\"),c||l.push(\\\"angular-line\\\"),u||l.push(\\\"radial-line\\\"),c||l.push(\\\"angular-axis\\\"),u||l.push(\\\"radial-axis\\\");var f=this.framework.selectAll(\\\".polarsublayer\\\").data(l,String);f.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"polarsublayer \\\"+t}).each(function(t){var e=r[t]=n.select(this);switch(t){case\\\"frontplot\\\":e.append(\\\"g\\\").classed(\\\"barlayer\\\",!0),e.append(\\\"g\\\").classed(\\\"scatterlayer\\\",!0);break;case\\\"backplot\\\":e.append(\\\"g\\\").classed(\\\"maplayer\\\",!0);break;case\\\"plotbg\\\":r.bg=e.append(\\\"path\\\");break;case\\\"radial-grid\\\":e.style(\\\"fill\\\",\\\"none\\\"),e.append(\\\"g\\\").classed(\\\"x\\\",1);break;case\\\"angular-grid\\\":e.style(\\\"fill\\\",\\\"none\\\"),e.append(\\\"g\\\").classed(\\\"angularaxis\\\",1);break;case\\\"radial-line\\\":e.append(\\\"line\\\").style(\\\"fill\\\",\\\"none\\\");break;case\\\"angular-line\\\":e.append(\\\"path\\\").style(\\\"fill\\\",\\\"none\\\")}}),f.order()},O.updateLayout=function(t,e){var r=this.layers,n=t._size,i=e.radialaxis,a=e.angularaxis,o=e.domain.x,c=e.domain.y;this.xOffset=n.l+n.w*o[0],this.yOffset=n.t+n.h*(1-c[1]);var u=this.xLength=n.w*(o[1]-o[0]),f=this.yLength=n.h*(c[1]-c[0]),h=e.sector;this.sectorInRad=h.map(C);var p,d,g,v,m,y=this.sectorBBox=function(t){var e,r,n,i,a=t[0],o=t[1]-a,s=E(a,360),l=s+o,c=Math.cos(C(s)),u=Math.sin(C(s)),f=Math.cos(C(l)),h=Math.sin(C(l));i=s<=90&&l>=90||s>90&&l>=450?1:u<=0&&h<=0?0:Math.max(u,h);e=s<=180&&l>=180||s>180&&l>=540?-1:c>=0&&f>=0?0:Math.min(c,f);r=s<=270&&l>=270||s>270&&l>=630?-1:u>=0&&h>=0?0:Math.min(u,h);n=l>=360?1:c<=0&&f<=0?0:Math.max(c,f);return[e,r,n,i]}(h),x=y[2]-y[0],b=y[3]-y[1],_=f/u,w=Math.abs(b/x);_>w?(p=u,m=(f-(d=u*w))/n.h/2,g=[o[0],o[1]],v=[c[0]+m,c[1]-m]):(d=f,m=(u-(p=f/w))/n.w/2,g=[o[0]+m,o[1]-m],v=[c[0],c[1]]),this.xLength2=p,this.yLength2=d,this.xDomain2=g,this.yDomain2=v;var k=this.xOffset2=n.l+n.w*g[0],M=this.yOffset2=n.t+n.h*(1-v[1]),A=this.radius=p/x,T=this.innerRadius=e.hole*A,S=this.cx=k-A*y[0],L=this.cy=M+A*y[3],z=this.cxx=S-k,O=this.cyy=L-M;this.radialAxis=this.mockAxis(t,e,i,{_axislayer:r[\\\"radial-axis\\\"],_gridlayer:r[\\\"radial-grid\\\"],_id:\\\"x\\\",side:{counterclockwise:\\\"top\\\",clockwise:\\\"bottom\\\"}[i.side],domain:[T/n.w,A/n.w]}),this.angularAxis=this.mockAxis(t,e,a,{_axislayer:r[\\\"angular-axis\\\"],_gridlayer:r[\\\"angular-grid\\\"],side:\\\"right\\\",domain:[0,Math.PI],autorange:!1}),this.doAutoRange(t,e),this.updateAngularAxis(t,e),this.updateRadialAxis(t,e),this.updateRadialAxisTitle(t,e),this.xaxis=this.mockCartesianAxis(t,e,{_id:\\\"x\\\",domain:g}),this.yaxis=this.mockCartesianAxis(t,e,{_id:\\\"y\\\",domain:v});var I=this.pathSubplot();this.clipPaths.forTraces.select(\\\"path\\\").attr(\\\"d\\\",I).attr(\\\"transform\\\",R(z,O)),r.frontplot.attr(\\\"transform\\\",R(k,M)).call(l.setClipUrl,this._hasClipOnAxisFalse?null:this.clipIds.forTraces),r.bg.attr(\\\"d\\\",I).attr(\\\"transform\\\",R(S,L)).call(s.fill,e.bgcolor),this.framework.selectAll(\\\".crisp\\\").classed(\\\"crisp\\\",0)},O.mockAxis=function(t,e,r,n){var i=o.extendFlat({anchor:\\\"free\\\",position:0,_pos:0,_counteraxis:!0,automargin:!1},r,n);return f(i,e,t),i},O.mockCartesianAxis=function(t,e,r){var n=this,i=r._id,a=o.extendFlat({type:\\\"linear\\\"},r);u(a,t);var s={x:[0,2],y:[1,3]};return a.setRange=function(){var t=n.sectorBBox,r=s[i],o=n.radialAxis._rl,l=(o[1]-o[0])/(1-e.hole);a.range=[t[r[0]]*l,t[r[1]]*l]},a.isPtWithinRange=\\\"x\\\"===i?function(t){return n.isPtInside(t)}:function(){return!0},a.setRange(),a.setScale(),a},O.doAutoRange=function(t,e){var r=this.gd,n=this.radialAxis,i=e.radialaxis;n.setScale(),h(r,n);var a=n.range;i.range=a.slice(),i._input.range=a.slice(),n._rl=[n.r2l(a[0],null,\\\"gregorian\\\"),n.r2l(a[1],null,\\\"gregorian\\\")]},O.updateRadialAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,o=r.innerRadius,l=r.cx,c=r.cy,u=e.radialaxis,f=E(e.sector[0],360),h=r.radialAxis,d=o<a;r.fillViewInitialKey(\\\"radialaxis.angle\\\",u.angle),r.fillViewInitialKey(\\\"radialaxis.range\\\",h.range.slice()),h.setGeometry(),\\\"auto\\\"===h.tickangle&&f>90&&f<=270&&(h.tickangle=180),h._transfn=function(t){return\\\"translate(\\\"+(h.l2p(t.x)+o)+\\\",0)\\\"},h._gridpath=function(t){return r.pathArc(h.r2p(t.x)+o)};var g=I(u);r.radialTickLayout!==g&&(i[\\\"radial-axis\\\"].selectAll(\\\".xtick\\\").remove(),r.radialTickLayout=g),d&&(h.setScale(),p(n,h,!0));var v=r.radialAxisAngle=r.vangles?L(P(C(u.angle),r.vangles)):u.angle,m=R(l,c)+B(-v);D(i[\\\"radial-axis\\\"],d&&(u.showticklabels||u.ticks),{transform:m}),D(i[\\\"radial-grid\\\"],d&&u.showgrid,{transform:R(l,c)}).selectAll(\\\"path\\\").attr(\\\"transform\\\",null),D(i[\\\"radial-line\\\"].select(\\\"line\\\"),d&&u.showline,{x1:o,y1:0,x2:a,y2:0,transform:m}).attr(\\\"stroke-width\\\",u.linewidth).call(s.stroke,u.linecolor)},O.updateRadialAxisTitle=function(t,e,r){var n=this.gd,i=this.radius,a=this.cx,o=this.cy,s=e.radialaxis,c=this.id+\\\"title\\\",u=void 0!==r?r:this.radialAxisAngle,f=C(u),h=Math.cos(f),p=Math.sin(f),d=0;if(s.title){var g=l.bBox(this.layers[\\\"radial-axis\\\"].node()).height,v=s.titlefont.size;d=\\\"counterclockwise\\\"===s.side?-g-.4*v:g+.8*v}this.layers[\\\"radial-axis-title\\\"]=m.draw(n,c,{propContainer:s,propName:this.id+\\\".radialaxis.title\\\",placeholder:S(n,\\\"Click to enter radial axis title\\\"),attributes:{x:a+i/2*h+d*p,y:o-i/2*p+d*h,\\\"text-anchor\\\":\\\"middle\\\"},transform:{rotate:-u}})},O.updateAngularAxis=function(t,e){var r=this,i=r.gd,a=r.layers,l=r.radius,c=r.innerRadius,u=r.cx,f=r.cy,h=e.angularaxis,d=r.angularAxis;r.fillViewInitialKey(\\\"angularaxis.rotation\\\",h.rotation),d.setGeometry();var g=function(t){return d.t2g(t.x)};\\\"linear\\\"===d.type&&\\\"radians\\\"===d.thetaunit&&(d.tick0=L(d.tick0),d.dtick=L(d.dtick)),\\\"category\\\"===d.type&&(d._tickFilter=function(t){return o.isAngleInsideSector(g(t),r.sectorInRad)}),d._transfn=function(t){var e=n.select(this),r=e&&e.node();if(r&&e.classed(\\\"angularaxisgrid\\\"))return\\\"\\\";var i=g(t),a=R(u+l*Math.cos(i),f-l*Math.sin(i));return r&&e.classed(\\\"ticks\\\")&&(a+=B(-L(i))),a},d._gridpath=function(t){var e=g(t),r=Math.cos(e),n=Math.sin(e);return\\\"M\\\"+[u+c*r,f-c*n]+\\\"L\\\"+[u+l*r,f-l*n]};var v=\\\"outside\\\"!==h.ticks?.7:.5;d._labelx=function(t){var e=g(t),r=d._labelStandoff,n=d._pad;return(0===j(e)?0:Math.cos(e)*(r+n+v*t.fontSize))+N(e)*(t.dx+r+n)},d._labely=function(t){var e=g(t),r=d._labelStandoff,n=d._labelShift,i=d._pad;return t.dy+t.fontSize*M-n+-Math.sin(e)*(r+i+v*t.fontSize)},d._labelanchor=function(t,e){var r=g(e);return 0===j(r)?N(r)>0?\\\"start\\\":\\\"end\\\":\\\"middle\\\"};var m,y=I(h);r.angularTickLayout!==y&&(a[\\\"angular-axis\\\"].selectAll(\\\".\\\"+d._id+\\\"tick\\\").remove(),r.angularTickLayout=y),d.setScale(),p(i,d,!0),\\\"linear\\\"===e.gridshape?(m=d._vals.map(g),o.angleDelta(m[0],m[1])<0&&(m=m.slice().reverse())):m=null,r.vangles=m,D(a[\\\"angular-line\\\"].select(\\\"path\\\"),h.showline,{d:r.pathSubplot(),transform:R(u,f)}).attr(\\\"stroke-width\\\",h.linewidth).call(s.stroke,h.linecolor)},O.updateFx=function(t,e){this.gd._context.staticPlot||(this.updateAngularDrag(t),this.updateRadialDrag(t,e,0),this.updateRadialDrag(t,e,1),this.updateMainDrag(t))},O.updateMainDrag=function(t){var e=this,r=e.gd,o=e.layers,s=t._zoomlayer,l=A.MINZOOM,c=A.OFFEDGE,u=e.radius,f=e.innerRadius,h=e.cx,p=e.cy,m=e.cxx,_=e.cyy,w=e.sectorInRad,k=e.vangles,M=e.radialAxis,S=T.clampTiny,E=T.findXYatLength,C=T.findEnclosingVertexAngles,L=A.cornerHalfWidth,z=A.cornerLen/2,O=d.makeDragger(o,\\\"path\\\",\\\"maindrag\\\",\\\"crosshair\\\");n.select(O).attr(\\\"d\\\",e.pathSubplot()).attr(\\\"transform\\\",R(h,p));var I,P,D,B,F,N,j,V,U,q={element:O,gd:r,subplot:e.id,plotinfo:{id:e.id,xaxis:e.xaxis,yaxis:e.yaxis},xaxes:[e.xaxis],yaxes:[e.yaxis]};function H(t,e){return Math.sqrt(t*t+e*e)}function G(t,e){return H(t-m,e-_)}function W(t,e){return Math.atan2(_-e,t-m)}function Y(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function X(t,r){if(0===t)return e.pathSector(2*L);var n=z/t,i=r-n,a=r+n,o=Math.max(0,Math.min(t,u)),s=o-L,l=o+L;return\\\"M\\\"+Y(s,i)+\\\"A\\\"+[s,s]+\\\" 0,0,0 \\\"+Y(s,a)+\\\"L\\\"+Y(l,a)+\\\"A\\\"+[l,l]+\\\" 0,0,1 \\\"+Y(l,i)+\\\"Z\\\"}function Z(t,r,n){if(0===t)return e.pathSector(2*L);var i,a,o=Y(t,r),s=Y(t,n),l=S((o[0]+s[0])/2),c=S((o[1]+s[1])/2);if(l&&c){var u=c/l,f=-1/u,h=E(L,u,l,c);i=E(z,f,h[0][0],h[0][1]),a=E(z,f,h[1][0],h[1][1])}else{var p,d;c?(p=z,d=L):(p=L,d=z),i=[[l-p,c-d],[l+p,c-d]],a=[[l-p,c+d],[l+p,c+d]]}return\\\"M\\\"+i.join(\\\"L\\\")+\\\"L\\\"+a.reverse().join(\\\"L\\\")+\\\"Z\\\"}function $(t,e){return e=Math.max(Math.min(e,u),f),t<c?t=0:u-t<c?t=u:e<c?e=0:u-e<c&&(e=u),Math.abs(e-t)>l?(t<e?(D=t,B=e):(D=e,B=t),!0):(D=null,B=null,!1)}function J(t,e){t=t||F,e=e||\\\"M0,0Z\\\",V.attr(\\\"d\\\",t),U.attr(\\\"d\\\",e),d.transitionZoombox(V,U,N,j),N=!0}function K(t,r){var n,i,a=I+t,o=P+r,s=G(I,P),l=Math.min(G(a,o),u),c=W(I,P);$(s,l)&&(n=F+e.pathSector(B),D&&(n+=e.pathSector(D)),i=X(D,c)+X(B,c)),J(n,i)}function Q(t,e,r,n){var i=T.findIntersectionXY(r,n,r,[t-m,_-e]);return H(i[0],i[1])}function tt(t,r){var n,i,a=I+t,o=P+r,s=W(I,P),l=W(a,o),c=C(s,k),f=C(l,k);$(Q(I,P,c[0],c[1]),Math.min(Q(a,o,f[0],f[1]),u))&&(n=F+e.pathSector(B),D&&(n+=e.pathSector(D)),i=[Z(D,c[0],c[1]),Z(B,c[0],c[1])].join(\\\" \\\")),J(n,i)}function et(){if(d.removeZoombox(r),null!==D&&null!==B){d.showDoubleClickNotifier(r);var t=M._rl,n=(t[1]-t[0])/(1-f/u)/u,i=[t[0]+(D-f)*n,t[0]+(B-f)*n];a.call(\\\"relayout\\\",r,e.id+\\\".radialaxis.range\\\",i)}}function rt(t,n){var i=r._fullLayout.clickmode;if(d.removeZoombox(r),2===t){var o={};for(var s in e.viewInitial)o[e.id+\\\".\\\"+s]=e.viewInitial[s];r.emit(\\\"plotly_doubleclick\\\",null),a.call(\\\"relayout\\\",r,o)}i.indexOf(\\\"select\\\")>-1&&1===t&&x(n,r,[e.xaxis],[e.yaxis],e.id,q),i.indexOf(\\\"event\\\")>-1&&v.click(r,n,e.id)}q.prepFn=function(t,n,a){var o=r._fullLayout.dragmode,l=O.getBoundingClientRect();if(I=n-l.left,P=a-l.top,k){var c=T.findPolygonOffset(u,w[0],w[1],k);I+=m+c[0],P+=_+c[1]}switch(o){case\\\"zoom\\\":q.moveFn=k?tt:K,q.clickFn=rt,q.doneFn=et,function(){D=null,B=null,F=e.pathSubplot(),N=!1;var t=r._fullLayout[e.id];j=i(t.bgcolor).getLuminance(),(V=d.makeZoombox(s,j,h,p,F)).attr(\\\"fill-rule\\\",\\\"evenodd\\\"),U=d.makeCorners(s,h,p),b(s)}();break;case\\\"select\\\":case\\\"lasso\\\":y(t,n,a,q,o)}},O.onmousemove=function(t){v.hover(r,t,e.id),r._fullLayout._lasthover=O,r._fullLayout._hoversubplot=e.id},O.onmouseout=function(t){r._dragging||g.unhover(r,t)},g.init(q)},O.updateRadialDrag=function(t,e,r){var i=this,s=i.gd,l=i.layers,c=i.radius,u=i.innerRadius,f=i.cx,h=i.cy,v=i.radialAxis,m=A.radialDragBoxSize,y=m/2;if(v.visible){var x,_,M,T=C(i.radialAxisAngle),S=v._rl,E=S[0],z=S[1],O=S[r],I=.75*(S[1]-S[0])/(1-e.hole)/c;r?(x=f+(c+y)*Math.cos(T),_=h-(c+y)*Math.sin(T),M=\\\"radialdrag\\\"):(x=f+(u-y)*Math.cos(T),_=h-(u-y)*Math.sin(T),M=\\\"radialdrag-inner\\\");var F,N,j,V=d.makeRectDragger(l,M,\\\"crosshair\\\",-y,-y,m,m),U={element:V,gd:s};D(n.select(V),v.visible&&u<c,{transform:R(x,_)}),U.prepFn=function(){F=null,N=null,j=null,U.moveFn=q,U.doneFn=H,b(t._zoomlayer)},U.clampFn=function(t,e){return Math.sqrt(t*t+e*e)<A.MINDRAG&&(t=0,e=0),[t,e]},g.init(U)}function q(t,e){if(F)F(t,e);else{var r=[t,-e],n=[Math.cos(T),Math.sin(T)],i=Math.abs(o.dot(r,n)/Math.sqrt(o.dot(r,r)));isNaN(i)||(F=i<.5?G:W)}}function H(){null!==N?a.call(\\\"relayout\\\",s,i.id+\\\".radialaxis.angle\\\",N):null!==j&&a.call(\\\"relayout\\\",s,i.id+\\\".radialaxis.range[\\\"+r+\\\"]\\\",j)}function G(t,e){if(0!==r){var n=x+t,a=_+e;N=Math.atan2(h-a,n-f),i.vangles&&(N=P(N,i.vangles)),N=L(N);var o=R(f,h)+B(-N);l[\\\"radial-axis\\\"].attr(\\\"transform\\\",o),l[\\\"radial-line\\\"].select(\\\"line\\\").attr(\\\"transform\\\",o);var s=i.gd._fullLayout,c=s[i.id];i.updateRadialAxisTitle(s,c,N)}}function W(t,e){var n=o.dot([t,-e],[Math.cos(T),Math.sin(T)]);if(j=O-I*n,I>0==(r?j>E:j<z)){v.range[r]=j,v._rl[r]=j,v.setGeometry(),v.setScale(),i.xaxis.setRange(),i.xaxis.setScale(),i.yaxis.setRange(),i.yaxis.setScale(),p(s,v,!0),l[\\\"radial-grid\\\"].attr(\\\"transform\\\",R(f,h)).selectAll(\\\"path\\\").attr(\\\"transform\\\",null);var c=!1;for(var u in i.traceHash){var d=i.traceHash[u],g=o.filterVisible(d),m=d[0][0].trace._module,y=s._fullLayout[i.id];m.plot(s,i,g,y),a.traceIs(u,\\\"gl\\\")&&g.length&&(c=!0)}c&&(w(s),k(s))}else j=null}},O.updateAngularDrag=function(t){var e=this,r=e.gd,i=e.layers,s=e.radius,c=e.angularAxis,u=e.cx,f=e.cy,h=e.cxx,v=e.cyy,m=A.angularDragBoxSize,y=d.makeDragger(i,\\\"path\\\",\\\"angulardrag\\\",\\\"move\\\"),x={element:y,gd:r};function M(t,e){return Math.atan2(v+m-e,t-h-m)}n.select(y).attr(\\\"d\\\",e.pathAnnulus(s,s+m)).attr(\\\"transform\\\",R(u,f)).call(_,\\\"move\\\");var T,S,E,C,z,O,I=i.frontplot.select(\\\".scatterlayer\\\").selectAll(\\\".trace\\\"),P=I.selectAll(\\\".point\\\"),D=I.selectAll(\\\".textpoint\\\");function F(t,s){var d=e.gd._fullLayout,g=d[e.id],m=M(T+t,S+s),y=L(m-O);if(C=E+y,i.frontplot.attr(\\\"transform\\\",R(e.xOffset2,e.yOffset2)+B([-y,h,v])),e.vangles){z=e.radialAxisAngle+y;var x=R(u,f)+B(-y),b=R(u,f)+B(-z);i.bg.attr(\\\"transform\\\",x),i[\\\"radial-grid\\\"].attr(\\\"transform\\\",x),i[\\\"angular-line\\\"].select(\\\"path\\\").attr(\\\"transform\\\",x),i[\\\"radial-axis\\\"].attr(\\\"transform\\\",b),i[\\\"radial-line\\\"].select(\\\"line\\\").attr(\\\"transform\\\",b),e.updateRadialAxisTitle(d,g,z)}else e.clipPaths.forTraces.select(\\\"path\\\").attr(\\\"transform\\\",R(h,v)+B(y));P.each(function(){var t=n.select(this),e=l.getTranslate(t);t.attr(\\\"transform\\\",R(e.x,e.y)+B([y]))}),D.each(function(){var t=n.select(this),e=t.select(\\\"text\\\"),r=l.getTranslate(t);t.attr(\\\"transform\\\",B([y,e.attr(\\\"x\\\"),e.attr(\\\"y\\\")])+R(r.x,r.y))}),c.rotation=o.modHalf(C,360),c.setGeometry(),c.setScale(),p(r,c,!0),e._hasClipOnAxisFalse&&!o.isFullCircle(e.sectorInRad)&&I.call(l.hideOutsideRangePoints,e);var _=!1;for(var A in e.traceHash)if(a.traceIs(A,\\\"gl\\\")){var F=e.traceHash[A],N=o.filterVisible(F);F[0][0].trace._module.plot(r,e,N,g),N.length&&(_=!0)}_&&(w(r),k(r))}function N(){D.select(\\\"text\\\").attr(\\\"transform\\\",null);var t={};t[e.id+\\\".angularaxis.rotation\\\"]=C,e.vangles&&(t[e.id+\\\".radialaxis.angle\\\"]=z),a.call(\\\"relayout\\\",r,t)}x.prepFn=function(r,n,i){var a=t[e.id];E=a.angularaxis.rotation;var o=y.getBoundingClientRect();T=n-o.left,S=i-o.top,O=M(T,S),x.moveFn=F,x.doneFn=N,b(t._zoomlayer)},e.vangles&&!o.isFullCircle(e.sectorInRad)&&(x.prepFn=o.noop,_(n.select(y),null)),g.init(x)},O.isPtInside=function(t){var e=this.sectorInRad,r=this.vangles,n=this.angularAxis.c2g(t.theta),i=this.radialAxis,a=i.c2l(t.r),s=i._rl;return(r?T.isPtInsidePolygon:o.isPtInsideSector)(a,n,s,e,r)},O.pathArc=function(t){var e=this.sectorInRad,r=this.vangles;return(r?T.pathPolygon:o.pathArc)(t,e[0],e[1],r)},O.pathSector=function(t){var e=this.sectorInRad,r=this.vangles;return(r?T.pathPolygon:o.pathSector)(t,e[0],e[1],r)},O.pathAnnulus=function(t,e){var r=this.sectorInRad,n=this.vangles;return(n?T.pathPolygonAnnulus:o.pathAnnulus)(t,e,r[0],r[1],n)},O.pathSubplot=function(){var t=this.innerRadius,e=this.radius;return t?this.pathAnnulus(t,e):this.pathSector(e)},O.fillViewInitialKey=function(t,e){t in this.viewInitial||(this.viewInitial[t]=e)}},{\\\"../../components/color\\\":570,\\\"../../components/dragelement\\\":592,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../components/titles\\\":661,\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/clear_gl_canvases\\\":680,\\\"../../lib/setcursor\\\":716,\\\"../../plot_api/subroutines\\\":735,\\\"../../registry\\\":827,\\\"../cartesian/autorange\\\":743,\\\"../cartesian/axes\\\":744,\\\"../cartesian/dragbox\\\":753,\\\"../cartesian/select\\\":762,\\\"../cartesian/set_convert\\\":763,\\\"../plots\\\":808,\\\"./constants\\\":809,\\\"./helpers\\\":810,\\\"./set_convert\\\":821,d3:148,tinycolor2:514}],821:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../cartesian/set_convert\\\"),a=n.deg2rad,o=n.rad2deg;e.exports=function(t,e,r){switch(i(t,r),t._id){case\\\"x\\\":case\\\"radialaxis\\\":!function(t,e){var r=e._subplot;t.setGeometry=function(){var e=t._rl[0],n=t._rl[1],i=r.innerRadius,a=(r.radius-i)/(n-e),o=i/a,s=e>n?function(t){return t<=0}:function(t){return t>=0};t.c2g=function(r){var n=t.c2l(r)-e;return(s(n)?n:0)+o},t.g2c=function(r){return t.l2c(r+e-o)},t.g2p=function(t){return t*a},t.c2p=function(e){return t.g2p(t.c2g(e))}}}(t,e);break;case\\\"angularaxis\\\":!function(t,e){var r=t.type;if(\\\"linear\\\"===r){var i=t.d2c,s=t.c2d;t.d2c=function(t,e){return function(t,e){return\\\"degrees\\\"===e?a(t):t}(i(t),e)},t.c2d=function(t,e){return s(function(t,e){return\\\"degrees\\\"===e?o(t):t}(t,e))}}t.makeCalcdata=function(e,i){var a,o,s=e[i],l=e._length,c=function(r){return t.d2c(r,e.thetaunit)};if(s){if(n.isTypedArray(s)&&\\\"linear\\\"===r){if(l===s.length)return s;if(s.subarray)return s.subarray(0,l)}for(a=new Array(l),o=0;o<l;o++)a[o]=c(s[o])}else{var u=i+\\\"0\\\",f=\\\"d\\\"+i,h=u in e?c(e[u]):0,p=e[f]?c(e[f]):(t.period||2*Math.PI)/l;for(a=new Array(l),o=0;o<l;o++)a[o]=h+o*p}return a},t.setGeometry=function(){var i,s,l,c,u=e.sector,f=u.map(a),h={clockwise:-1,counterclockwise:1}[t.direction],p=a(t.rotation),d=function(t){return h*t+p},g=function(t){return(t-p)/h};switch(r){case\\\"linear\\\":s=i=n.identity,c=a,l=o,t.range=n.isFullCircle(f)?[u[0],u[0]+360]:f.map(g).map(o);break;case\\\"category\\\":var v=t._categories.length,m=t.period?Math.max(t.period,v):v;s=c=function(t){return 2*t*Math.PI/m},i=l=function(t){return t*m/Math.PI/2},t.range=[0,m]}t.c2g=function(t){return d(s(t))},t.g2c=function(t){return i(g(t))},t.t2g=function(t){return d(c(t))},t.g2t=function(t){return l(g(t))}}}(t,e)}}},{\\\"../../lib\\\":696,\\\"../cartesian/set_convert\\\":763}],822:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plot_api/plot_template\\\"),a=t(\\\"./domain\\\").defaults;e.exports=function(t,e,r,o){var s,l,c=o.type,u=o.attributes,f=o.handleDefaults,h=o.partition||\\\"x\\\",p=e._subplots[c],d=p.length,g=d&&p[0].replace(/\\\\d+$/,\\\"\\\");function v(t,e){return n.coerce(s,l,u,t,e)}for(var m=0;m<d;m++){var y=p[m];s=t[y]?t[y]:t[y]={},l=i.newContainer(e,y,g);var x={};x[h]=[m/d,(m+1)/d],a(l,e,v,x),o.id=y,f(s,l,v,o)}}},{\\\"../lib\\\":696,\\\"../plot_api/plot_template\\\":734,\\\"./domain\\\":770}],823:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./ternary\\\"),i=t(\\\"../../plots/get_data\\\").getSubplotCalcData,a=t(\\\"../../lib\\\").counterRegex;r.name=\\\"ternary\\\";var o=r.attr=\\\"subplot\\\";r.idRoot=\\\"ternary\\\",r.idRegex=r.attrRegex=a(\\\"ternary\\\"),(r.attributes={})[o]={valType:\\\"subplotid\\\",dflt:\\\"ternary\\\",editType:\\\"calc\\\"},r.layoutAttributes=t(\\\"./layout_attributes\\\"),r.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),r.plot=function(t){for(var e=t._fullLayout,r=t.calcdata,a=e._subplots.ternary,o=0;o<a.length;o++){var s=a[o],l=i(r,\\\"ternary\\\",s),c=e[s]._subplot;c||(c=new n({id:s,graphDiv:t,container:e._ternarylayer.node()},e),e[s]._subplot=c),c.plot(l,e,t._promises)}},r.clean=function(t,e,r,n){for(var i=n._subplots.ternary||[],a=0;a<i.length;a++){var o=i[a],s=n[o]._subplot;!e[o]&&s&&(s.plotContainer.remove(),s.clipDef.remove(),s.clipDefRelative.remove(),s.layers[\\\"a-title\\\"].remove(),s.layers[\\\"b-title\\\"].remove(),s.layers[\\\"c-title\\\"].remove())}}},{\\\"../../lib\\\":696,\\\"../../plots/get_data\\\":781,\\\"./layout_attributes\\\":824,\\\"./layout_defaults\\\":825,\\\"./ternary\\\":826}],824:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color/attributes\\\"),i=t(\\\"../domain\\\").attributes,a=t(\\\"../cartesian/layout_attributes\\\"),o=t(\\\"../../plot_api/edit_types\\\").overrideAll,s=t(\\\"../../lib/extend\\\").extendFlat,l={title:a.title,titlefont:a.titlefont,color:a.color,tickmode:a.tickmode,nticks:s({},a.nticks,{dflt:6,min:1}),tick0:a.tick0,dtick:a.dtick,tickvals:a.tickvals,ticktext:a.ticktext,ticks:a.ticks,ticklen:a.ticklen,tickwidth:a.tickwidth,tickcolor:a.tickcolor,showticklabels:a.showticklabels,showtickprefix:a.showtickprefix,tickprefix:a.tickprefix,showticksuffix:a.showticksuffix,ticksuffix:a.ticksuffix,showexponent:a.showexponent,exponentformat:a.exponentformat,separatethousands:a.separatethousands,tickfont:a.tickfont,tickangle:a.tickangle,tickformat:a.tickformat,tickformatstops:a.tickformatstops,hoverformat:a.hoverformat,showline:s({},a.showline,{dflt:!0}),linecolor:a.linecolor,linewidth:a.linewidth,showgrid:s({},a.showgrid,{dflt:!0}),gridcolor:a.gridcolor,gridwidth:a.gridwidth,layer:a.layer,min:{valType:\\\"number\\\",dflt:0,min:0}};e.exports=o({domain:i({name:\\\"ternary\\\"}),bgcolor:{valType:\\\"color\\\",dflt:n.background},sum:{valType:\\\"number\\\",dflt:1,min:0},aaxis:l,baxis:l,caxis:l},\\\"plot\\\",\\\"from-root\\\")},{\\\"../../components/color/attributes\\\":569,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../cartesian/layout_attributes\\\":757,\\\"../domain\\\":770}],825:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../plot_api/plot_template\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../subplot_defaults\\\"),s=t(\\\"../cartesian/tick_label_defaults\\\"),l=t(\\\"../cartesian/tick_mark_defaults\\\"),c=t(\\\"../cartesian/tick_value_defaults\\\"),u=t(\\\"../cartesian/line_grid_defaults\\\"),f=t(\\\"./layout_attributes\\\"),h=[\\\"aaxis\\\",\\\"baxis\\\",\\\"caxis\\\"];function p(t,e,r,a){var o,s,l,c=r(\\\"bgcolor\\\"),u=r(\\\"sum\\\");a.bgColor=n.combine(c,a.paper_bgcolor);for(var f=0;f<h.length;f++)s=t[o=h[f]]||{},(l=i.newContainer(e,o))._name=o,d(s,l,a);var p=e.aaxis,g=e.baxis,v=e.caxis;p.min+g.min+v.min>=u&&(p.min=0,g.min=0,v.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}function d(t,e,r){var n=f[e._name];function i(r,i){return a.coerce(t,e,n,r,i)}e.type=\\\"linear\\\";var o=i(\\\"color\\\"),h=o!==n.color.dflt?o:r.font.color,p=e._name.charAt(0).toUpperCase(),d=\\\"Component \\\"+p,g=i(\\\"title\\\",d);e._hovertitle=g===d?g:p,a.coerceFont(i,\\\"titlefont\\\",{family:r.font.family,size:Math.round(1.2*r.font.size),color:h}),i(\\\"min\\\"),c(t,e,i,\\\"linear\\\"),s(t,e,i,\\\"linear\\\",{}),l(t,e,i,{outerTicks:!0}),i(\\\"showticklabels\\\")&&(a.coerceFont(i,\\\"tickfont\\\",{family:r.font.family,size:r.font.size,color:h}),i(\\\"tickangle\\\"),i(\\\"tickformat\\\")),u(t,e,i,{dfltColor:o,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:n}),i(\\\"hoverformat\\\"),i(\\\"layer\\\")}e.exports=function(t,e,r){o(t,e,r,{type:\\\"ternary\\\",attributes:f,handleDefaults:p,font:e.font,paper_bgcolor:e.paper_bgcolor})}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../cartesian/line_grid_defaults\\\":759,\\\"../cartesian/tick_label_defaults\\\":764,\\\"../cartesian/tick_mark_defaults\\\":765,\\\"../cartesian/tick_value_defaults\\\":766,\\\"../subplot_defaults\\\":822,\\\"./layout_attributes\\\":824}],826:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../../lib\\\"),s=o._,l=t(\\\"../../components/color\\\"),c=t(\\\"../../components/drawing\\\"),u=t(\\\"../cartesian/set_convert\\\"),f=t(\\\"../../lib/extend\\\").extendFlat,h=t(\\\"../plots\\\"),p=t(\\\"../cartesian/axes\\\"),d=t(\\\"../../components/dragelement\\\"),g=t(\\\"../../components/fx\\\"),v=t(\\\"../../components/titles\\\"),m=t(\\\"../cartesian/select\\\").prepSelect,y=t(\\\"../cartesian/select\\\").selectOnClick,x=t(\\\"../cartesian/select\\\").clearSelect,b=t(\\\"../cartesian/constants\\\");function _(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}e.exports=_;var w=_.prototype;w.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},w.plot=function(t,e){var r=e[this.id],n=e._size;this._hasClipOnAxisFalse=!1;for(var i=0;i<t.length;i++){if(!1===t[i][0].trace.cliponaxis){this._hasClipOnAxisFalse=!0;break}}this.updateLayers(r),this.adjustLayout(r,n),h.generalUpdatePerTraceModule(this.graphDiv,this,t,r),this.layers.plotbg.select(\\\"path\\\").call(l.fill,r.bgcolor)},w.makeFramework=function(t){var e=t[this.id],r=this.clipId=\\\"clip\\\"+this.layoutId+this.id,n=this.clipIdRelative=\\\"clip-relative\\\"+this.layoutId+this.id;this.clipDef=o.ensureSingleById(t._clips,\\\"clipPath\\\",r,function(t){t.append(\\\"path\\\").attr(\\\"d\\\",\\\"M0,0Z\\\")}),this.clipDefRelative=o.ensureSingleById(t._clips,\\\"clipPath\\\",n,function(t){t.append(\\\"path\\\").attr(\\\"d\\\",\\\"M0,0Z\\\")}),this.plotContainer=o.ensureSingle(this.container,\\\"g\\\",this.id),this.updateLayers(e),c.setClipUrl(this.layers.backplot,r),c.setClipUrl(this.layers.grids,r)},w.updateLayers=function(t){var e=this.layers,r=[\\\"draglayer\\\",\\\"plotbg\\\",\\\"backplot\\\",\\\"grids\\\"];\\\"below traces\\\"===t.aaxis.layer&&r.push(\\\"aaxis\\\",\\\"aline\\\"),\\\"below traces\\\"===t.baxis.layer&&r.push(\\\"baxis\\\",\\\"bline\\\"),\\\"below traces\\\"===t.caxis.layer&&r.push(\\\"caxis\\\",\\\"cline\\\"),r.push(\\\"frontplot\\\"),\\\"above traces\\\"===t.aaxis.layer&&r.push(\\\"aaxis\\\",\\\"aline\\\"),\\\"above traces\\\"===t.baxis.layer&&r.push(\\\"baxis\\\",\\\"bline\\\"),\\\"above traces\\\"===t.caxis.layer&&r.push(\\\"caxis\\\",\\\"cline\\\");var i=this.plotContainer.selectAll(\\\"g.toplevel\\\").data(r,String),a=[\\\"agrid\\\",\\\"bgrid\\\",\\\"cgrid\\\"];i.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"toplevel \\\"+t}).each(function(t){var r=n.select(this);e[t]=r,\\\"frontplot\\\"===t?r.append(\\\"g\\\").classed(\\\"scatterlayer\\\",!0):\\\"backplot\\\"===t?r.append(\\\"g\\\").classed(\\\"maplayer\\\",!0):\\\"plotbg\\\"===t?r.append(\\\"path\\\").attr(\\\"d\\\",\\\"M0,0Z\\\"):\\\"aline\\\"===t||\\\"bline\\\"===t||\\\"cline\\\"===t?r.append(\\\"path\\\"):\\\"grids\\\"===t&&a.forEach(function(t){e[t]=r.append(\\\"g\\\").classed(\\\"grid \\\"+t,!0);var n=\\\"bgrid\\\"===t?\\\"x\\\":\\\"y\\\";e[t].append(\\\"g\\\").classed(n,!0)})}),i.order()};var k=Math.sqrt(4/3);function M(t){return t.ticks+String(t.ticklen)+String(t.showticklabels)}w.adjustLayout=function(t,e){var r,n,i,a,o,s,h=this,p=t.domain,d=(p.x[0]+p.x[1])/2,g=(p.y[0]+p.y[1])/2,v=p.x[1]-p.x[0],m=p.y[1]-p.y[0],y=v*e.w,x=m*e.h,b=t.sum,_=t.aaxis.min,w=t.baxis.min,M=t.caxis.min;y>k*x?i=(a=x)*k:a=(i=y)/k,o=v*i/y,s=m*a/x,r=e.l+e.w*d-i/2,n=e.t+e.h*(1-g)-a/2,h.x0=r,h.y0=n,h.w=i,h.h=a,h.sum=b,h.xaxis={type:\\\"linear\\\",range:[_+2*M-b,b-_-2*w],domain:[d-o/2,d+o/2],_id:\\\"x\\\"},u(h.xaxis,h.graphDiv._fullLayout),h.xaxis.setScale(),h.xaxis.isPtWithinRange=function(t){return t.a>=h.aaxis.range[0]&&t.a<=h.aaxis.range[1]&&t.b>=h.baxis.range[1]&&t.b<=h.baxis.range[0]&&t.c>=h.caxis.range[1]&&t.c<=h.caxis.range[0]},h.yaxis={type:\\\"linear\\\",range:[_,b-w-M],domain:[g-s/2,g+s/2],_id:\\\"y\\\"},u(h.yaxis,h.graphDiv._fullLayout),h.yaxis.setScale(),h.yaxis.isPtWithinRange=function(){return!0};var A=h.yaxis.domain[0],T=h.aaxis=f({},t.aaxis,{visible:!0,range:[_,b-w-M],side:\\\"left\\\",_counterangle:30,tickangle:(+t.aaxis.tickangle||0)-30,domain:[A,A+s*k],_axislayer:h.layers.aaxis,_gridlayer:h.layers.agrid,anchor:\\\"free\\\",position:0,_pos:0,_id:\\\"y\\\",_length:i,_gridpath:\\\"M0,0l\\\"+a+\\\",-\\\"+i/2,automargin:!1});u(T,h.graphDiv._fullLayout),T.setScale();var S=h.baxis=f({},t.baxis,{visible:!0,range:[b-_-M,w],side:\\\"bottom\\\",_counterangle:30,domain:h.xaxis.domain,_axislayer:h.layers.baxis,_gridlayer:h.layers.bgrid,_counteraxis:h.aaxis,anchor:\\\"free\\\",position:0,_pos:0,_id:\\\"x\\\",_length:i,_gridpath:\\\"M0,0l-\\\"+i/2+\\\",-\\\"+a,automargin:!1});u(S,h.graphDiv._fullLayout),S.setScale(),T._counteraxis=S;var E=h.caxis=f({},t.caxis,{visible:!0,range:[b-_-w,M],side:\\\"right\\\",_counterangle:30,tickangle:(+t.caxis.tickangle||0)+30,domain:[A,A+s*k],_axislayer:h.layers.caxis,_gridlayer:h.layers.cgrid,_counteraxis:h.baxis,anchor:\\\"free\\\",position:0,_pos:0,_id:\\\"y\\\",_length:i,_gridpath:\\\"M0,0l-\\\"+a+\\\",\\\"+i/2,automargin:!1});u(E,h.graphDiv._fullLayout),E.setScale();var C=\\\"M\\\"+r+\\\",\\\"+(n+a)+\\\"h\\\"+i+\\\"l-\\\"+i/2+\\\",-\\\"+a+\\\"Z\\\";h.clipDef.select(\\\"path\\\").attr(\\\"d\\\",C),h.layers.plotbg.select(\\\"path\\\").attr(\\\"d\\\",C);var L=\\\"M0,\\\"+a+\\\"h\\\"+i+\\\"l-\\\"+i/2+\\\",-\\\"+a+\\\"Z\\\";h.clipDefRelative.select(\\\"path\\\").attr(\\\"d\\\",L);var z=\\\"translate(\\\"+r+\\\",\\\"+n+\\\")\\\";h.plotContainer.selectAll(\\\".scatterlayer,.maplayer\\\").attr(\\\"transform\\\",z),h.clipDefRelative.select(\\\"path\\\").attr(\\\"transform\\\",null);var O=\\\"translate(\\\"+(r-S._offset)+\\\",\\\"+(n+a)+\\\")\\\";h.layers.baxis.attr(\\\"transform\\\",O),h.layers.bgrid.attr(\\\"transform\\\",O);var I=\\\"translate(\\\"+(r+i/2)+\\\",\\\"+n+\\\")rotate(30)translate(0,\\\"+-T._offset+\\\")\\\";h.layers.aaxis.attr(\\\"transform\\\",I),h.layers.agrid.attr(\\\"transform\\\",I);var P=\\\"translate(\\\"+(r+i/2)+\\\",\\\"+n+\\\")rotate(-30)translate(0,\\\"+-E._offset+\\\")\\\";h.layers.caxis.attr(\\\"transform\\\",P),h.layers.cgrid.attr(\\\"transform\\\",P),h.drawAxes(!0),h.plotContainer.selectAll(\\\".crisp\\\").classed(\\\"crisp\\\",!1),h.layers.aline.select(\\\"path\\\").attr(\\\"d\\\",T.showline?\\\"M\\\"+r+\\\",\\\"+(n+a)+\\\"l\\\"+i/2+\\\",-\\\"+a:\\\"M0,0\\\").call(l.stroke,T.linecolor||\\\"#000\\\").style(\\\"stroke-width\\\",(T.linewidth||0)+\\\"px\\\"),h.layers.bline.select(\\\"path\\\").attr(\\\"d\\\",S.showline?\\\"M\\\"+r+\\\",\\\"+(n+a)+\\\"h\\\"+i:\\\"M0,0\\\").call(l.stroke,S.linecolor||\\\"#000\\\").style(\\\"stroke-width\\\",(S.linewidth||0)+\\\"px\\\"),h.layers.cline.select(\\\"path\\\").attr(\\\"d\\\",E.showline?\\\"M\\\"+(r+i/2)+\\\",\\\"+n+\\\"l\\\"+i/2+\\\",\\\"+a:\\\"M0,0\\\").call(l.stroke,E.linecolor||\\\"#000\\\").style(\\\"stroke-width\\\",(E.linewidth||0)+\\\"px\\\"),h.graphDiv._context.staticPlot||h.initInteractions(),c.setClipUrl(h.layers.frontplot,h._hasClipOnAxisFalse?null:h.clipId)},w.drawAxes=function(t){var e,r=this.graphDiv,n=this.id.substr(7)+\\\"title\\\",i=this.layers,a=this.aaxis,o=this.baxis,l=this.caxis;if(e=M(a),this.aTickLayout!==e&&(i.aaxis.selectAll(\\\".ytick\\\").remove(),this.aTickLayout=e),e=M(o),this.bTickLayout!==e&&(i.baxis.selectAll(\\\".xtick\\\").remove(),this.bTickLayout=e),e=M(l),this.cTickLayout!==e&&(i.caxis.selectAll(\\\".ytick\\\").remove(),this.cTickLayout=e),p.doTicksSingle(r,a,!0),p.doTicksSingle(r,o,!0),p.doTicksSingle(r,l,!0),t){var c=Math.max(a.showticklabels?a.tickfont.size/2:0,(l.showticklabels?.75*l.tickfont.size:0)+(\\\"outside\\\"===l.ticks?.87*l.ticklen:0));this.layers[\\\"a-title\\\"]=v.draw(r,\\\"a\\\"+n,{propContainer:a,propName:this.id+\\\".aaxis.title\\\",placeholder:s(r,\\\"Click to enter Component A title\\\"),attributes:{x:this.x0+this.w/2,y:this.y0-a.titlefont.size/3-c,\\\"text-anchor\\\":\\\"middle\\\"}});var u=(o.showticklabels?o.tickfont.size:0)+(\\\"outside\\\"===o.ticks?o.ticklen:0)+3;this.layers[\\\"b-title\\\"]=v.draw(r,\\\"b\\\"+n,{propContainer:o,propName:this.id+\\\".baxis.title\\\",placeholder:s(r,\\\"Click to enter Component B title\\\"),attributes:{x:this.x0-u,y:this.y0+this.h+.83*o.titlefont.size+u,\\\"text-anchor\\\":\\\"middle\\\"}}),this.layers[\\\"c-title\\\"]=v.draw(r,\\\"c\\\"+n,{propContainer:l,propName:this.id+\\\".caxis.title\\\",placeholder:s(r,\\\"Click to enter Component C title\\\"),attributes:{x:this.x0+this.w+u,y:this.y0+this.h+.83*l.titlefont.size+u,\\\"text-anchor\\\":\\\"middle\\\"}})}};var A=b.MINZOOM/2+.87,T=\\\"m-0.87,.5h\\\"+A+\\\"v3h-\\\"+(A+5.2)+\\\"l\\\"+(A/2+2.6)+\\\",-\\\"+(.87*A+4.5)+\\\"l2.6,1.5l-\\\"+A/2+\\\",\\\"+.87*A+\\\"Z\\\",S=\\\"m0.87,.5h-\\\"+A+\\\"v3h\\\"+(A+5.2)+\\\"l-\\\"+(A/2+2.6)+\\\",-\\\"+(.87*A+4.5)+\\\"l-2.6,1.5l\\\"+A/2+\\\",\\\"+.87*A+\\\"Z\\\",E=\\\"m0,1l\\\"+A/2+\\\",\\\"+.87*A+\\\"l2.6,-1.5l-\\\"+(A/2+2.6)+\\\",-\\\"+(.87*A+4.5)+\\\"l-\\\"+(A/2+2.6)+\\\",\\\"+(.87*A+4.5)+\\\"l2.6,1.5l\\\"+A/2+\\\",-\\\"+.87*A+\\\"Z\\\",C=\\\"m0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z\\\",L=!0;function z(t){n.select(t).selectAll(\\\".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners\\\").remove()}w.initInteractions=function(){var t,e,r,n,u,f,h,p,v,_,w=this,M=w.layers.plotbg.select(\\\"path\\\").node(),A=w.graphDiv,O=A._fullLayout._zoomlayer,I={element:M,gd:A,plotinfo:{id:w.id,xaxis:w.xaxis,yaxis:w.yaxis},subplot:w.id,prepFn:function(a,o,s){I.xaxes=[w.xaxis],I.yaxes=[w.yaxis];var c=A._fullLayout.dragmode;I.minDrag=\\\"lasso\\\"===c?1:void 0,\\\"zoom\\\"===c?(I.moveFn=F,I.clickFn=P,I.doneFn=N,function(a,o,s){var c=M.getBoundingClientRect();t=o-c.left,e=s-c.top,r={a:w.aaxis.range[0],b:w.baxis.range[1],c:w.caxis.range[1]},u=r,n=w.aaxis.range[1]-r.a,f=i(w.graphDiv._fullLayout[w.id].bgcolor).getLuminance(),h=\\\"M0,\\\"+w.h+\\\"L\\\"+w.w/2+\\\", 0L\\\"+w.w+\\\",\\\"+w.h+\\\"Z\\\",p=!1,v=O.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox\\\").attr(\\\"transform\\\",\\\"translate(\\\"+w.x0+\\\", \\\"+w.y0+\\\")\\\").style({fill:f>.2?\\\"rgba(0,0,0,0)\\\":\\\"rgba(255,255,255,0)\\\",\\\"stroke-width\\\":0}).attr(\\\"d\\\",h),_=O.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox-corners\\\").attr(\\\"transform\\\",\\\"translate(\\\"+w.x0+\\\", \\\"+w.y0+\\\")\\\").style({fill:l.background,stroke:l.defaultLine,\\\"stroke-width\\\":1,opacity:0}).attr(\\\"d\\\",\\\"M0,0Z\\\"),x(O)}(0,o,s)):\\\"pan\\\"===c?(I.moveFn=j,I.clickFn=P,I.doneFn=V,r={a:w.aaxis.range[0],b:w.baxis.range[1],c:w.caxis.range[1]},u=r,x(O)):\\\"select\\\"!==c&&\\\"lasso\\\"!==c||m(a,o,s,I,c)}};function P(t,e){var r=A._fullLayout.clickmode;if(z(A),2===t){var n={};n[w.id+\\\".aaxis.min\\\"]=0,n[w.id+\\\".baxis.min\\\"]=0,n[w.id+\\\".caxis.min\\\"]=0,A.emit(\\\"plotly_doubleclick\\\",null),a.call(\\\"relayout\\\",A,n)}r.indexOf(\\\"select\\\")>-1&&1===t&&y(e,A,[w.xaxis],[w.yaxis],w.id,I),r.indexOf(\\\"event\\\")>-1&&g.click(A,e,w.id)}function D(t,e){return 1-e/w.h}function R(t,e){return 1-(t+(w.h-e)/Math.sqrt(3))/w.w}function B(t,e){return(t-(w.h-e)/Math.sqrt(3))/w.w}function F(i,a){var o=t+i,s=e+a,l=Math.max(0,Math.min(1,D(0,e),D(0,s))),c=Math.max(0,Math.min(1,R(t,e),R(o,s))),d=Math.max(0,Math.min(1,B(t,e),B(o,s))),g=(l/2+d)*w.w,m=(1-l/2-c)*w.w,y=(g+m)/2,x=m-g,M=(1-l)*w.h,A=M-x/k;x<b.MINZOOM?(u=r,v.attr(\\\"d\\\",h),_.attr(\\\"d\\\",\\\"M0,0Z\\\")):(u={a:r.a+l*n,b:r.b+c*n,c:r.c+d*n},v.attr(\\\"d\\\",h+\\\"M\\\"+g+\\\",\\\"+M+\\\"H\\\"+m+\\\"L\\\"+y+\\\",\\\"+A+\\\"L\\\"+g+\\\",\\\"+M+\\\"Z\\\"),_.attr(\\\"d\\\",\\\"M\\\"+t+\\\",\\\"+e+C+\\\"M\\\"+g+\\\",\\\"+M+T+\\\"M\\\"+m+\\\",\\\"+M+S+\\\"M\\\"+y+\\\",\\\"+A+E)),p||(v.transition().style(\\\"fill\\\",f>.2?\\\"rgba(0,0,0,0.4)\\\":\\\"rgba(255,255,255,0.3)\\\").duration(200),_.transition().style(\\\"opacity\\\",1).duration(200),p=!0)}function N(){if(z(A),u!==r){var t={};t[w.id+\\\".aaxis.min\\\"]=u.a,t[w.id+\\\".baxis.min\\\"]=u.b,t[w.id+\\\".caxis.min\\\"]=u.c,a.call(\\\"relayout\\\",A,t),L&&A.data&&A._context.showTips&&(o.notifier(s(A,\\\"Double-click to zoom back out\\\"),\\\"long\\\"),L=!1)}}function j(t,e){var n=t/w.xaxis._m,i=e/w.yaxis._m,a=[(u={a:r.a-i,b:r.b+(n+i)/2,c:r.c-(n-i)/2}).a,u.b,u.c].sort(),o=a.indexOf(u.a),s=a.indexOf(u.b),l=a.indexOf(u.c);a[0]<0&&(a[1]+a[0]/2<0?(a[2]+=a[0]+a[1],a[0]=a[1]=0):(a[2]+=a[0]/2,a[1]+=a[0]/2,a[0]=0),u={a:a[o],b:a[s],c:a[l]},e=(r.a-u.a)*w.yaxis._m,t=(r.c-u.c-r.b+u.b)*w.xaxis._m);var f=\\\"translate(\\\"+(w.x0+t)+\\\",\\\"+(w.y0+e)+\\\")\\\";w.plotContainer.selectAll(\\\".scatterlayer,.maplayer\\\").attr(\\\"transform\\\",f);var h=\\\"translate(\\\"+-t+\\\",\\\"+-e+\\\")\\\";w.clipDefRelative.select(\\\"path\\\").attr(\\\"transform\\\",h),w.aaxis.range=[u.a,w.sum-u.b-u.c],w.baxis.range=[w.sum-u.a-u.c,u.b],w.caxis.range=[w.sum-u.a-u.b,u.c],w.drawAxes(!1),w.plotContainer.selectAll(\\\".crisp\\\").classed(\\\"crisp\\\",!1),w._hasClipOnAxisFalse&&w.plotContainer.select(\\\".scatterlayer\\\").selectAll(\\\".trace\\\").call(c.hideOutsideRangePoints,w)}function V(){var t={};t[w.id+\\\".aaxis.min\\\"]=u.a,t[w.id+\\\".baxis.min\\\"]=u.b,t[w.id+\\\".caxis.min\\\"]=u.c,a.call(\\\"relayout\\\",A,t)}M.onmousemove=function(t){g.hover(A,t,w.id),A._fullLayout._lasthover=M,A._fullLayout._hoversubplot=w.id},M.onmouseout=function(t){A._dragging||d.unhover(A,t)},d.init(I)}},{\\\"../../components/color\\\":570,\\\"../../components/dragelement\\\":592,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../components/titles\\\":661,\\\"../../lib\\\":696,\\\"../../lib/extend\\\":685,\\\"../../registry\\\":827,\\\"../cartesian/axes\\\":744,\\\"../cartesian/constants\\\":750,\\\"../cartesian/select\\\":762,\\\"../cartesian/set_convert\\\":763,\\\"../plots\\\":808,d3:148,tinycolor2:514}],827:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/loggers\\\"),i=t(\\\"./lib/noop\\\"),a=t(\\\"./lib/push_unique\\\"),o=t(\\\"./lib/is_plain_object\\\"),s=t(\\\"./lib/extend\\\"),l=t(\\\"./plots/attributes\\\"),c=t(\\\"./plots/layout_attributes\\\"),u=s.extendFlat,f=s.extendDeepAll;function h(t){var e=t.name,i=t.categories,a=t.meta;if(r.modules[e])n.log(\\\"Type \\\"+e+\\\" already registered\\\");else{r.subplotsRegistry[t.basePlotModule.name]||function(t){var e=t.name;if(r.subplotsRegistry[e])return void n.log(\\\"Plot type \\\"+e+\\\" already registered.\\\");for(var i in v(t),r.subplotsRegistry[e]=t,r.componentsRegistry)x(i,t.name)}(t.basePlotModule);for(var o={},s=0;s<i.length;s++)o[i[s]]=!0,r.allCategories[i[s]]=!0;for(var l in r.modules[e]={_module:t,categories:o},a&&Object.keys(a).length&&(r.modules[e].meta=a),r.allTypes.push(e),r.componentsRegistry)m(l,e);t.layoutAttributes&&u(r.traceLayoutAttributes,t.layoutAttributes)}}function p(t){if(\\\"string\\\"!=typeof t.name)throw new Error(\\\"Component module *name* must be a string.\\\");var e=t.name;for(var n in r.componentsRegistry[e]=t,t.layoutAttributes&&(t.layoutAttributes._isLinkedToArray&&a(r.layoutArrayContainers,e),v(t)),r.modules)m(e,n);for(var i in r.subplotsRegistry)x(e,i);for(var o in r.transformsRegistry)y(e,o);t.schema&&t.schema.layout&&f(c,t.schema.layout)}function d(t){if(\\\"string\\\"!=typeof t.name)throw new Error(\\\"Transform module *name* must be a string.\\\");var e=\\\"Transform module \\\"+t.name,i=\\\"function\\\"==typeof t.transform,a=\\\"function\\\"==typeof t.calcTransform;if(!i&&!a)throw new Error(e+\\\" is missing a *transform* or *calcTransform* method.\\\");for(var s in i&&a&&n.log([e+\\\" has both a *transform* and *calcTransform* methods.\\\",\\\"Please note that all *transform* methods are executed\\\",\\\"before all *calcTransform* methods.\\\"].join(\\\" \\\")),o(t.attributes)||n.log(e+\\\" registered without an *attributes* object.\\\"),\\\"function\\\"!=typeof t.supplyDefaults&&n.log(e+\\\" registered without a *supplyDefaults* method.\\\"),r.transformsRegistry[t.name]=t,r.componentsRegistry)y(s,t.name)}function g(t){var e=t.name,n=e.split(\\\"-\\\")[0],i=t.dictionary,a=t.format,o=i&&Object.keys(i).length,s=a&&Object.keys(a).length,l=r.localeRegistry,c=l[e];if(c||(l[e]=c={}),n!==e){var u=l[n];u||(l[n]=u={}),o&&u.dictionary===c.dictionary&&(u.dictionary=i),s&&u.format===c.format&&(u.format=a)}o&&(c.dictionary=i),s&&(c.format=a)}function v(t){if(t.layoutAttributes){var e=t.layoutAttributes._arrayAttrRegexps;if(e)for(var n=0;n<e.length;n++)a(r.layoutArrayRegexes,e[n])}}function m(t,e){var n=r.componentsRegistry[t].schema;if(n&&n.traces){var i=n.traces[e];i&&f(r.modules[e]._module.attributes,i)}}function y(t,e){var n=r.componentsRegistry[t].schema;if(n&&n.transforms){var i=n.transforms[e];i&&f(r.transformsRegistry[e].attributes,i)}}function x(t,e){var n=r.componentsRegistry[t].schema;if(n&&n.subplots){var i=r.subplotsRegistry[e],a=i.layoutAttributes,o=\\\"subplot\\\"===i.attr?i.name:i.attr;Array.isArray(o)&&(o=o[0]);var s=n.subplots[o];a&&s&&f(a,s)}}function b(t){return\\\"object\\\"==typeof t&&(t=t.type),t}r.modules={},r.allCategories={},r.allTypes=[],r.subplotsRegistry={},r.transformsRegistry={},r.componentsRegistry={},r.layoutArrayContainers=[],r.layoutArrayRegexes=[],r.traceLayoutAttributes={},r.localeRegistry={},r.apiMethodRegistry={},r.register=function(t){if(!t)throw new Error(\\\"No argument passed to Plotly.register.\\\");t&&!Array.isArray(t)&&(t=[t]);for(var e=0;e<t.length;e++){var n=t[e];if(!n)throw new Error(\\\"Invalid module was attempted to be registered!\\\");switch(n.moduleType){case\\\"trace\\\":h(n);break;case\\\"transform\\\":d(n);break;case\\\"component\\\":p(n);break;case\\\"locale\\\":g(n);break;case\\\"apiMethod\\\":var i=n.name;r.apiMethodRegistry[i]=n.fn;break;default:throw new Error(\\\"Invalid module was attempted to be registered!\\\")}}},r.getModule=function(t){var e=r.modules[b(t)];return!!e&&e._module},r.traceIs=function(t,e){if(\\\"various\\\"===(t=b(t)))return!1;var i=r.modules[t];return i||(t&&\\\"area\\\"!==t&&n.log(\\\"Unrecognized trace type \\\"+t+\\\".\\\"),i=r.modules[l.type.dflt]),!!i.categories[e]},r.getTransformIndices=function(t,e){for(var r=[],n=t.transforms||[],i=0;i<n.length;i++)n[i].type===e&&r.push(i);return r},r.hasTransform=function(t,e){for(var r=t.transforms||[],n=0;n<r.length;n++)if(r[n].type===e)return!0;return!1},r.getComponentMethod=function(t,e){var n=r.componentsRegistry[t];return n&&n[e]||i},r.call=function(){var t=arguments[0],e=[].slice.call(arguments,1);return r.apiMethodRegistry[t].apply(null,e)}},{\\\"./lib/extend\\\":685,\\\"./lib/is_plain_object\\\":697,\\\"./lib/loggers\\\":700,\\\"./lib/noop\\\":705,\\\"./lib/push_unique\\\":710,\\\"./plots/attributes\\\":741,\\\"./plots/layout_attributes\\\":799}],828:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=n.extendFlat,a=n.extendDeep;function o(t){var e;switch(t){case\\\"themes__thumb\\\":e={autosize:!0,width:150,height:150,title:\\\"\\\",showlegend:!1,margin:{l:5,r:5,t:5,b:5,pad:0},annotations:[]};break;case\\\"thumbnail\\\":e={title:\\\"\\\",hidesources:!0,showlegend:!1,borderwidth:0,bordercolor:\\\"\\\",margin:{l:1,r:1,t:1,b:1,pad:0},annotations:[]};break;default:e={}}return e}e.exports=function(t,e){var r;t.framework&&t.framework.isPolar&&(t=t.framework.getConfig());var n,s=t.data,l=t.layout,c=a([],s),u=a({},l,o(e.tileClass)),f=t._context||{};if(e.width&&(u.width=e.width),e.height&&(u.height=e.height),\\\"thumbnail\\\"===e.tileClass||\\\"themes__thumb\\\"===e.tileClass){u.annotations=[];var h=Object.keys(u);for(r=0;r<h.length;r++)n=h[r],[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"].indexOf(n.slice(0,5))>-1&&(u[h[r]].title=\\\"\\\");for(r=0;r<c.length;r++){var p=c[r];p.showscale=!1,p.marker&&(p.marker.showscale=!1),\\\"pie\\\"===p.type&&(p.textposition=\\\"none\\\")}}if(Array.isArray(e.annotations))for(r=0;r<e.annotations.length;r++)u.annotations.push(e.annotations[r]);var d=Object.keys(u).filter(function(t){return t.match(/^scene\\\\d*$/)});if(d.length){var g={};for(\\\"thumbnail\\\"===e.tileClass&&(g={title:\\\"\\\",showaxeslabels:!1,showticklabels:!1,linetickenable:!1}),r=0;r<d.length;r++){var v=u[d[r]];v.xaxis||(v.xaxis={}),v.yaxis||(v.yaxis={}),v.zaxis||(v.zaxis={}),i(v.xaxis,g),i(v.yaxis,g),i(v.zaxis,g),v._scene=null}}var m=document.createElement(\\\"div\\\");e.tileClass&&(m.className=e.tileClass);var y={gd:m,td:m,layout:u,data:c,config:{staticPlot:void 0===e.staticPlot||e.staticPlot,plotGlPixelRatio:void 0===e.plotGlPixelRatio?2:e.plotGlPixelRatio,displaylogo:e.displaylogo||!1,showLink:e.showLink||!1,showTips:e.showTips||!1,mapboxAccessToken:f.mapboxAccessToken}};return\\\"transparent\\\"!==e.setBackground&&(y.config.setBackground=e.setBackground||\\\"opaque\\\"),y.gd.defaultLayout=o(e.tileClass),y}},{\\\"../lib\\\":696}],829:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../plot_api/to_image\\\"),i=t(\\\"../lib\\\"),a=t(\\\"./filesaver\\\");e.exports=function(t,e){var r;return i.isPlainObject(t)||(r=i.getGraphDiv(t)),(e=e||{}).format=e.format||\\\"png\\\",new Promise(function(o,s){r&&r._snapshotInProgress&&s(new Error(\\\"Snapshotting already in progress.\\\")),i.isIE()&&\\\"svg\\\"!==e.format&&s(new Error(\\\"Sorry IE does not support downloading from canvas. Try {format:'svg'} instead.\\\")),r&&(r._snapshotInProgress=!0);var l=n(t,e),c=e.filename||t.fn||\\\"newplot\\\";c+=\\\".\\\"+e.format,l.then(function(t){return r&&(r._snapshotInProgress=!1),a(t,c)}).then(function(t){o(t)}).catch(function(t){r&&(r._snapshotInProgress=!1),s(t)})})}},{\\\"../lib\\\":696,\\\"../plot_api/to_image\\\":737,\\\"./filesaver\\\":830}],830:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=document.createElement(\\\"a\\\"),n=\\\"download\\\"in r,i=/Version\\\\/[\\\\d\\\\.]+.*Safari/.test(navigator.userAgent);return new Promise(function(a,o){if(\\\"undefined\\\"!=typeof navigator&&/MSIE [1-9]\\\\./.test(navigator.userAgent)&&o(new Error(\\\"IE < 10 unsupported\\\")),i&&(document.location.href=\\\"data:application/octet-stream\\\"+t.slice(t.search(/[,;]/)),a(e)),e||(e=\\\"download\\\"),n&&(r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),a(e)),\\\"undefined\\\"!=typeof navigator&&navigator.msSaveBlob){var s=t.split(/^data:image\\\\/svg\\\\+xml,/)[1],l=decodeURIComponent(s);navigator.msSaveBlob(new Blob([l]),e),a(e)}o(new Error(\\\"download error\\\"))})}},{}],831:[function(t,e,r){\\\"use strict\\\";r.getDelay=function(t){return t._has&&(t._has(\\\"gl3d\\\")||t._has(\\\"gl2d\\\")||t._has(\\\"mapbox\\\"))?500:0},r.getRedrawFunc=function(t){var e=t._fullLayout||{};if(!(!(e._has&&e._has(\\\"polar\\\"))&&t.data&&t.data[0]&&t.data[0].r))return function(){(t.calcdata||[]).forEach(function(t){t[0]&&t[0].t&&t[0].t.cb&&t[0].t.cb()})}}},{}],832:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./helpers\\\"),i={getDelay:n.getDelay,getRedrawFunc:n.getRedrawFunc,clone:t(\\\"./cloneplot\\\"),toSVG:t(\\\"./tosvg\\\"),svgToImg:t(\\\"./svgtoimg\\\"),toImage:t(\\\"./toimage\\\"),downloadImage:t(\\\"./download\\\")};e.exports=i},{\\\"./cloneplot\\\":828,\\\"./download\\\":829,\\\"./helpers\\\":831,\\\"./svgtoimg\\\":833,\\\"./toimage\\\":834,\\\"./tosvg\\\":835}],833:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"events\\\").EventEmitter;e.exports=function(t){var e=t.emitter||new i,r=new Promise(function(i,a){var o=window.Image,s=t.svg,l=t.format||\\\"png\\\";if(n.isIE()&&\\\"svg\\\"!==l){var c=new Error(\\\"Sorry IE does not support downloading from canvas. Try {format:'svg'} instead.\\\");return a(c),t.promise?r:e.emit(\\\"error\\\",c)}var u=t.canvas,f=t.scale||1,h=t.width||300,p=t.height||150,d=f*h,g=f*p,v=u.getContext(\\\"2d\\\"),m=new o,y=\\\"data:image/svg+xml,\\\"+encodeURIComponent(s);u.width=d,u.height=g,m.onload=function(){var r;switch(\\\"svg\\\"!==l&&v.drawImage(m,0,0,d,g),l){case\\\"jpeg\\\":r=u.toDataURL(\\\"image/jpeg\\\");break;case\\\"png\\\":r=u.toDataURL(\\\"image/png\\\");break;case\\\"webp\\\":r=u.toDataURL(\\\"image/webp\\\");break;case\\\"svg\\\":r=y;break;default:var n=\\\"Image format is not jpeg, png, svg or webp.\\\";if(a(new Error(n)),!t.promise)return e.emit(\\\"error\\\",n)}i(r),t.promise||e.emit(\\\"success\\\",r)},m.onerror=function(r){if(a(r),!t.promise)return e.emit(\\\"error\\\",r)},m.src=y});return t.promise?r:e}},{\\\"../lib\\\":696,events:92}],834:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"events\\\").EventEmitter,i=t(\\\"../registry\\\"),a=t(\\\"../lib\\\"),o=t(\\\"./helpers\\\"),s=t(\\\"./cloneplot\\\"),l=t(\\\"./tosvg\\\"),c=t(\\\"./svgtoimg\\\");e.exports=function(t,e){var r=new n,u=s(t,{format:\\\"png\\\"}),f=u.gd;f.style.position=\\\"absolute\\\",f.style.left=\\\"-5000px\\\",document.body.appendChild(f);var h=o.getRedrawFunc(f);return i.call(\\\"plot\\\",f,u.data,u.layout,u.config).then(h).then(function(){var t=o.getDelay(f._fullLayout);setTimeout(function(){var t=l(f),n=document.createElement(\\\"canvas\\\");n.id=a.randstr(),(r=c({format:e.format,width:f._fullLayout.width,height:f._fullLayout.height,canvas:n,emitter:r,svg:t})).clean=function(){f&&document.body.removeChild(f)}},t)}).catch(function(t){r.emit(\\\"error\\\",t)}),r}},{\\\"../lib\\\":696,\\\"../registry\\\":827,\\\"./cloneplot\\\":828,\\\"./helpers\\\":831,\\\"./svgtoimg\\\":833,\\\"./tosvg\\\":835,events:92}],835:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../components/drawing\\\"),o=t(\\\"../components/color\\\"),s=t(\\\"../constants/xmlns_namespaces\\\"),l=/\\\"/g,c=new RegExp('(\\\"TOBESTRIPPED)|(TOBESTRIPPED\\\")',\\\"g\\\");e.exports=function(t,e,r){var u,f=t._fullLayout,h=f._paper,p=f._toppaper,d=f.width,g=f.height;h.insert(\\\"rect\\\",\\\":first-child\\\").call(a.setRect,0,0,d,g).call(o.fill,f.paper_bgcolor);var v=f._basePlotModules||[];for(u=0;u<v.length;u++){var m=v[u];m.toSVG&&m.toSVG(t)}if(p){var y=p.node().childNodes,x=Array.prototype.slice.call(y);for(u=0;u<x.length;u++){var b=x[u];b.childNodes.length&&h.node().appendChild(b)}}f._draggers&&f._draggers.remove(),h.node().style.background=\\\"\\\",h.selectAll(\\\"text\\\").attr({\\\"data-unformatted\\\":null,\\\"data-math\\\":null}).each(function(){var t=n.select(this);if(\\\"hidden\\\"!==this.style.visibility&&\\\"none\\\"!==this.style.display){t.style({visibility:null,display:null});var e=this.style.fontFamily;e&&-1!==e.indexOf('\\\"')&&t.style(\\\"font-family\\\",e.replace(l,\\\"TOBESTRIPPED\\\"))}else t.remove()}),h.selectAll(\\\".point, .scatterpts, .legendfill>path, .legendlines>path, .cbfill\\\").each(function(){var t=n.select(this),e=this.style.fill;e&&-1!==e.indexOf(\\\"url(\\\")&&t.style(\\\"fill\\\",e.replace(l,\\\"TOBESTRIPPED\\\"));var r=this.style.stroke;r&&-1!==r.indexOf(\\\"url(\\\")&&t.style(\\\"stroke\\\",r.replace(l,\\\"TOBESTRIPPED\\\"))}),\\\"pdf\\\"!==e&&\\\"eps\\\"!==e||h.selectAll(\\\"#MathJax_SVG_glyphs path\\\").attr(\\\"stroke-width\\\",0),h.node().setAttributeNS(s.xmlns,\\\"xmlns\\\",s.svg),h.node().setAttributeNS(s.xmlns,\\\"xmlns:xlink\\\",s.xlink),\\\"svg\\\"===e&&r&&(h.attr(\\\"width\\\",r*d),h.attr(\\\"height\\\",r*g),h.attr(\\\"viewBox\\\",\\\"0 0 \\\"+d+\\\" \\\"+g));var _=(new window.XMLSerializer).serializeToString(h.node());return _=function(t){var e=n.select(\\\"body\\\").append(\\\"div\\\").style({display:\\\"none\\\"}).html(\\\"\\\"),r=t.replace(/(&[^;]*;)/gi,function(t){return\\\"&lt;\\\"===t?\\\"&#60;\\\":\\\"&rt;\\\"===t?\\\"&#62;\\\":-1!==t.indexOf(\\\"<\\\")||-1!==t.indexOf(\\\">\\\")?\\\"\\\":e.html(t).text()});return e.remove(),r}(_),_=(_=_.replace(/&(?!\\\\w+;|\\\\#[0-9]+;| \\\\#x[0-9A-F]+;)/g,\\\"&amp;\\\")).replace(c,\\\"'\\\"),i.isIE()&&(_=(_=(_=_.replace(/\\\"/gi,\\\"'\\\")).replace(/(\\\\('#)([^']*)('\\\\))/gi,'(\\\"#$2\\\")')).replace(/(\\\\\\\\')/gi,'\\\"')),_}},{\\\"../components/color\\\":570,\\\"../components/drawing\\\":595,\\\"../constants/xmlns_namespaces\\\":674,\\\"../lib\\\":696,d3:148}],836:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").mergeArray;e.exports=function(t,e){for(var r=0;r<t.length;r++)t[r].i=r;n(e.text,t,\\\"tx\\\"),n(e.hovertext,t,\\\"htx\\\");var i=e.marker;if(i){n(i.opacity,t,\\\"mo\\\"),n(i.color,t,\\\"mc\\\");var a=i.line;a&&(n(a.color,t,\\\"mlc\\\"),n(a.width,t,\\\"mlw\\\"))}}},{\\\"../../lib\\\":696}],837:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../plots/font_attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat,l=o({editType:\\\"calc\\\",arrayOk:!0,colorEditType:\\\"style\\\"}),c=s({},n.marker.line.width,{dflt:0}),u=s({width:c,editType:\\\"calc\\\"},i(\\\"marker.line\\\")),f=s({line:u,editType:\\\"calc\\\"},i(\\\"marker\\\"),{colorbar:a,opacity:{valType:\\\"number\\\",arrayOk:!0,dflt:1,min:0,max:1,editType:\\\"style\\\"}});e.exports={x:n.x,x0:n.x0,dx:n.dx,y:n.y,y0:n.y0,dy:n.dy,text:n.text,hovertext:n.hovertext,textposition:{valType:\\\"enumerated\\\",values:[\\\"inside\\\",\\\"outside\\\",\\\"auto\\\",\\\"none\\\"],dflt:\\\"none\\\",arrayOk:!0,editType:\\\"calc\\\"},textfont:s({},l,{}),insidetextfont:s({},l,{}),outsidetextfont:s({},l,{}),constraintext:{valType:\\\"enumerated\\\",values:[\\\"inside\\\",\\\"outside\\\",\\\"both\\\",\\\"none\\\"],dflt:\\\"both\\\",editType:\\\"calc\\\"},cliponaxis:s({},n.cliponaxis,{}),orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],editType:\\\"calc+clearAxisTypes\\\"},base:{valType:\\\"any\\\",dflt:null,arrayOk:!0,editType:\\\"calc\\\"},offset:{valType:\\\"number\\\",dflt:null,arrayOk:!0,editType:\\\"calc\\\"},width:{valType:\\\"number\\\",dflt:null,min:0,arrayOk:!0,editType:\\\"calc\\\"},marker:f,selected:{marker:{opacity:n.selected.marker.opacity,color:n.selected.marker.color,editType:\\\"style\\\"},textfont:n.selected.textfont,editType:\\\"style\\\"},unselected:{marker:{opacity:n.unselected.marker.opacity,color:n.unselected.marker.color,editType:\\\"style\\\"},textfont:n.unselected.textfont,editType:\\\"style\\\"},r:n.r,t:n.t,_deprecated:{bardir:{valType:\\\"enumerated\\\",editType:\\\"calc\\\",values:[\\\"v\\\",\\\"h\\\"]}}}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/font_attributes\\\":771,\\\"../scatter/attributes\\\":1043}],838:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/calc\\\"),o=t(\\\"./arrays_to_calcdata\\\"),s=t(\\\"../scatter/calc_selection\\\");e.exports=function(t,e){var r,l,c=n.getFromId(t,e.xaxis||\\\"x\\\"),u=n.getFromId(t,e.yaxis||\\\"y\\\");\\\"h\\\"===e.orientation?(r=c.makeCalcdata(e,\\\"x\\\"),l=u.makeCalcdata(e,\\\"y\\\")):(r=u.makeCalcdata(e,\\\"y\\\"),l=c.makeCalcdata(e,\\\"x\\\"));for(var f=Math.min(l.length,r.length),h=new Array(f),p=0;p<f;p++)h[p]={p:l[p],s:r[p]},e.ids&&(h[p].id=String(e.ids[p]));return i(e,\\\"marker\\\")&&a(e,e.marker.color,\\\"marker\\\",\\\"c\\\"),i(e,\\\"marker.line\\\")&&a(e,e.marker.line.color,\\\"marker.line\\\",\\\"c\\\"),o(h,e),s(h,e),h}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/calc_selection\\\":1045,\\\"./arrays_to_calcdata\\\":836}],839:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\").isArrayOrTypedArray,a=t(\\\"../../constants/numerical\\\").BADNUM,o=t(\\\"../../registry\\\"),s=t(\\\"../../plots/cartesian/axes\\\"),l=t(\\\"./sieve.js\\\");function c(t,e,r,o){if(o.length){var c,_,w,k,M=t._fullLayout.barmode,A=\\\"overlay\\\"===M,T=\\\"group\\\"===M;if(function(t,e,r,a){var o,s;for(o=0;o<a.length;o++){var l,c=a[o],u=c[0].trace,f=u.base,h=\\\"h\\\"===u.orientation?u.xcalendar:u.ycalendar;if(i(f)){for(s=0;s<Math.min(f.length,c.length);s++)l=r.d2c(f[s],0,h),n(l)?(c[s].b=+l,c[s].hasB=1):c[s].b=0;for(;s<c.length;s++)c[s].b=0}else{l=r.d2c(f,0,h);var p=n(l);for(l=p?l:0,s=0;s<c.length;s++)c[s].b=l,p&&(c[s].hasB=1)}}}(0,0,r,o),A)u(t,e,r,o);else if(T){for(c=[],_=[],w=0;w<o.length;w++)void 0===(k=o[w])[0].trace.offset?_.push(k):c.push(k);_.length&&function(t,e,r,n){var i=t._fullLayout.barnorm,a=new l(n,!1,!i);(function(t,e,r){var n,i,a,o,s=t._fullLayout,l=s.bargap,c=s.bargroupgap||0,u=r.positions,f=r.distinctPositions,g=r.minDiff,v=r.traces,m=u.length!==f.length,y=v.length,x=g*(1-l),b=m?x/y:x,_=b*(1-c);for(n=0;n<y;n++){i=v[n],a=i[0];var w=m?((2*n+1-y)*b-_)/2:-_/2;(o=a.t).barwidth=_,o.poffset=w,o.bargroupwidth=x,o.bardelta=g}r.binWidth=v[0][0].t.barwidth/100,h(r),p(t,e,r),d(t,e,r,m)})(t,e,a),i?(m(t,r,a),y(t,r,a)):v(t,r,a)}(t,e,r,_),c.length&&u(t,e,r,c)}else{for(c=[],_=[],w=0;w<o.length;w++)void 0===(k=o[w])[0].trace.base?_.push(k):c.push(k);_.length&&function(t,e,r,i){var o=t._fullLayout.barmode,c=\\\"stack\\\"===o,u=\\\"relative\\\"===o,h=t._fullLayout.barnorm,p=new l(i,u,!(h||c||u));f(t,e,p),function(t,e,r){var i,o,l,c,u=t._fullLayout.barnorm,f=x(e),h=r.traces,p=[null,null];for(i=0;i<h.length;i++)for(o=h[i],l=0;l<o.length;l++)if((c=o[l]).s!==a){var d=r.put(c.p,c.b+c.s),v=d+c.b+c.s;c.b=d,c[f]=v,u||(n(e.c2l(v))&&g(p,v),c.hasB&&n(e.c2l(d))&&g(p,d))}if(!u){var m=s.findExtremes(e,p,{tozero:!0,padded:!0});b(h,e,m)}}(t,r,p);for(var d=0;d<i.length;d++)for(var v=i[d],m=0;m<v.length;m++){var _=v[m];if(_.s!==a){var w=_.b+_.s===p.get(_.p,_.s);w&&(_._outmost=!0)}}h&&y(t,r,p)}(t,e,r,_),c.length&&u(t,e,r,c)}!function(t,e){var r,i,a,o=e._id.charAt(0),s={},l=1/0,c=-1/0;for(r=0;r<t.length;r++)for(a=t[r],i=0;i<a.length;i++){var u=a[i].p;n(u)&&(l=Math.min(l,u),c=Math.max(c,u))}var f,h,p=1e4/(c-l),d=s.round=function(t){return String(Math.round(p*(t-l)))};for(r=0;r<t.length;r++)for((a=t[r])[0].t.extents=s,f=a[0].t.poffset,h=Array.isArray(f),i=0;i<a.length;i++){var g=a[i],v=g[o]-g.w/2;if(n(v)){var m=g[o]+g.w/2,y=d(g.p);s[y]?s[y]=[Math.min(v,s[y][0]),Math.max(m,s[y][1])]:s[y]=[v,m]}g.p0=g.p+(h?f[i]:f),g.p1=g.p0+g.w,g.s0=g.b,g.s1=g.s0+g.s}}(o,e)}}function u(t,e,r,n){for(var i=t._fullLayout.barnorm,a=!i,o=0;o<n.length;o++){var s=n[o],c=new l([s],!1,a);f(t,e,c),i?(m(t,r,c),y(t,r,c)):v(t,r,c)}}function f(t,e,r){var n,i,a=t._fullLayout,o=a.bargap,s=a.bargroupgap||0,l=r.minDiff,c=r.traces,u=l*(1-o),f=u*(1-s),g=-f/2;for(n=0;n<c.length;n++)(i=c[n][0].t).barwidth=f,i.poffset=g,i.bargroupwidth=u,i.bardelta=l;r.binWidth=c[0][0].t.barwidth/100,h(r),p(t,e,r),d(t,e,r)}function h(t){var e,r,a,o,s,l,c=t.traces;for(e=0;e<c.length;e++){o=(a=(r=c[e])[0]).trace,l=a.t;var u,f=o._offset||o.offset,h=l.poffset;if(i(f)){for(u=Array.prototype.slice.call(f,0,r.length),s=0;s<u.length;s++)n(u[s])||(u[s]=h);for(s=u.length;s<r.length;s++)u.push(h);l.poffset=u}else void 0!==f&&(l.poffset=f);var p=o._width||o.width,d=l.barwidth;if(i(p)){var g=Array.prototype.slice.call(p,0,r.length);for(s=0;s<g.length;s++)n(g[s])||(g[s]=d);for(s=g.length;s<r.length;s++)g.push(d);if(l.barwidth=g,void 0===f){for(u=[],s=0;s<r.length;s++)u.push(h+(d-g[s])/2);l.poffset=u}}else void 0!==p&&(l.barwidth=p,void 0===f&&(l.poffset=h+(d-p)/2))}}function p(t,e,r){for(var n=r.traces,i=x(e),a=0;a<n.length;a++)for(var o=n[a],s=o[0].t,l=s.poffset,c=Array.isArray(l),u=s.barwidth,f=Array.isArray(u),h=0;h<o.length;h++){var p=o[h],d=p.w=f?u[h]:u;p[i]=p.p+(c?l[h]:l)+d/2}}function d(t,e,r,n){var i=r.traces,a=r.distinctPositions,o=a[0],l=r.minDiff,c=l/2;s.minDtick(e,l,o,n);for(var u=Math.min.apply(Math,a)-c,f=Math.max.apply(Math,a)+c,h=0;h<i.length;h++){var p=i[h],d=p[0],g=d.trace;if(void 0!==g.width||void 0!==g.offset)for(var v=d.t,m=v.poffset,y=v.barwidth,x=Array.isArray(m),_=Array.isArray(y),w=0;w<p.length;w++){var k=p[w],M=x?m[w]:m,A=_?y[w]:y,T=k.p+M,S=T+A;u=Math.min(u,T),f=Math.max(f,S)}}b(i,e,s.findExtremes(e,[u,f],{padded:!1}))}function g(t,e){n(t[0])?t[0]=Math.min(t[0],e):t[0]=e,n(t[1])?t[1]=Math.max(t[1],e):t[1]=e}function v(t,e,r){for(var i=r.traces,a=x(e),o=[null,null],l=0;l<i.length;l++)for(var c=i[l],u=0;u<c.length;u++){var f=c[u],h=f.b,p=h+f.s;f[a]=p,n(e.c2l(p))&&g(o,p),f.hasB&&n(e.c2l(h))&&g(o,h)}b(i,e,s.findExtremes(e,o,{tozero:!0,padded:!0}))}function m(t,e,r){for(var n=r.traces,i=0;i<n.length;i++)for(var o=n[i],s=0;s<o.length;s++){var l=o[s];l.s!==a&&r.put(l.p,l.b+l.s)}}function y(t,e,r){var i=r.traces,o=x(e),l=\\\"fraction\\\"===t._fullLayout.barnorm?1:100,c=l/1e9,u=e.l2c(e.c2l(0)),f=\\\"stack\\\"===t._fullLayout.barmode?l:u,h=[u,f],p=!1;function d(t){n(e.c2l(t))&&(t<u-c||t>f+c||!n(u))&&(p=!0,g(h,t))}for(var v=0;v<i.length;v++)for(var m=i[v],y=0;y<m.length;y++){var _=m[y];if(_.s!==a){var w=Math.abs(l/r.get(_.p,_.s));_.b*=w,_.s*=w;var k=_.b,M=k+_.s;_[o]=M,d(M),_.hasB&&d(k)}}var A=s.findExtremes(e,h,{tozero:!0,padded:p});b(i,e,A)}function x(t){return t._id.charAt(0)}function b(t,e,r){for(var n=0;n<t.length;n++)t[n][0].trace._extremes[e._id]=r}e.exports={crossTraceCalc:function(t,e){var r,n=e.xaxis,i=e.yaxis,a=t._fullData,s=t.calcdata,l=[],u=[];for(r=0;r<a.length;r++){var f=a[r];!0===f.visible&&o.traceIs(f,\\\"bar\\\")&&f.xaxis===n._id&&f.yaxis===i._id&&(\\\"h\\\"===f.orientation?l.push(s[r]):u.push(s[r]))}c(t,n,i,u),c(t,i,n,l)},setGroupPositions:c}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"./sieve.js\\\":848,\\\"fast-isnumeric\\\":214}],840:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../scatter/xy_defaults\\\"),s=t(\\\"../bar/style_defaults\\\"),l=t(\\\"./attributes\\\");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,l,r,i)}var f=n.coerceFont;if(o(t,e,c,u)){u(\\\"orientation\\\",e.x&&!e.y?\\\"h\\\":\\\"v\\\"),u(\\\"base\\\"),u(\\\"offset\\\"),u(\\\"width\\\"),u(\\\"text\\\"),u(\\\"hovertext\\\");var h=u(\\\"textposition\\\"),p=Array.isArray(h)||\\\"auto\\\"===h,d=p||\\\"outside\\\"===h;if(p||\\\"inside\\\"===h||d){var g=f(u,\\\"textfont\\\",c.font),v=n.extendFlat({},g);!(t.textfont&&t.textfont.color)&&delete v.color,f(u,\\\"insidetextfont\\\",v),d&&f(u,\\\"outsidetextfont\\\",g),u(\\\"constraintext\\\"),u(\\\"selected.textfont.color\\\"),u(\\\"unselected.textfont.color\\\"),u(\\\"cliponaxis\\\")}s(t,e,u,r,c);var m=a.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");m(t,e,i.defaultLine,{axis:\\\"y\\\"}),m(t,e,i.defaultLine,{axis:\\\"x\\\",inherit:\\\"y\\\"}),n.coerceSelectionMarkerOpacity(e,u)}else e.visible=!1}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../bar/style_defaults\\\":850,\\\"../scatter/xy_defaults\\\":1069,\\\"./attributes\\\":837}],841:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"tinycolor2\\\");r.coerceString=function(t,e,r){if(\\\"string\\\"==typeof e){if(e||!t.noBlank)return e}else if(\\\"number\\\"==typeof e&&!t.strict)return String(e);return void 0!==r?r:t.dflt},r.coerceNumber=function(t,e,r){if(n(e)){e=+e;var i=t.min,a=t.max;if(!(void 0!==i&&e<i||void 0!==a&&e>a))return e}return void 0!==r?r:t.dflt},r.coerceColor=function(t,e,r){return i(e).isValid()?e:void 0!==r?r:t.dflt},r.coerceEnumerated=function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt},r.getValue=function(t,e){var r;return Array.isArray(t)?e<t.length&&(r=t[e]):r=t,r}},{\\\"fast-isnumeric\\\":214,tinycolor2:514}],842:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../scatter/fill_hover_text\\\");function s(t,e){var r=e.mcc||t.marker.color,n=e.mlcc||t.marker.line.color,i=e.mlw||t.marker.line.width;return a.opacity(r)?r:a.opacity(n)&&i?n:void 0}e.exports={hoverPoints:function(t,e,r,a){var l,c,u,f,h,p,d,g=t.cd,v=g[0].trace,m=g[0].t,y=\\\"closest\\\"===a,x=t.maxHoverDistance,b=t.maxSpikeDistance;function _(t){return t[u]-t.w/2}function w(t){return t[u]+t.w/2}var k=y?_:function(t){return Math.min(_(t),t.p-m.bardelta/2)},M=y?w:function(t){return Math.max(w(t),t.p+m.bardelta/2)};function A(t,e){return n.inbox(t-l,e-l,x+Math.min(1,Math.abs(e-t)/d)-1)}function T(t){return A(k(t),M(t))}function S(t){return n.inbox(t.b-c,t[f]-c,x+(t[f]-c)/(t[f]-t.b)-1)}\\\"h\\\"===v.orientation?(l=r,c=e,u=\\\"y\\\",f=\\\"x\\\",h=S,p=T):(l=e,c=r,u=\\\"x\\\",f=\\\"y\\\",p=S,h=T);var E=t[u+\\\"a\\\"],C=t[f+\\\"a\\\"];d=Math.abs(E.r2c(E.range[1])-E.r2c(E.range[0]));var L=n.getDistanceFunction(a,h,p,function(t){return(h(t)+p(t))/2});if(n.getClosest(g,L,t),!1!==t.index){y||(k=function(t){return Math.min(_(t),t.p-m.bargroupwidth/2)},M=function(t){return Math.max(w(t),t.p+m.bargroupwidth/2)});var z=g[t.index],O=v.base?z.b+z.s:z.s;t[f+\\\"0\\\"]=t[f+\\\"1\\\"]=C.c2p(z[f],!0),t[f+\\\"LabelVal\\\"]=O;var I=m.extents[m.extents.round(z.p)];return t[u+\\\"0\\\"]=E.c2p(y?k(z):I[0],!0),t[u+\\\"1\\\"]=E.c2p(y?M(z):I[1],!0),t[u+\\\"LabelVal\\\"]=z.p,t.spikeDistance=(S(z)+function(t){return A(_(t),w(t))}(z))/2+b-x,t[u+\\\"Spike\\\"]=E.c2p(z.p,!0),t.color=s(v,z),o(z,v,t),i.getComponentMethod(\\\"errorbars\\\",\\\"hoverInfo\\\")(z,v,t),[t]}},getTraceColor:s}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../registry\\\":827,\\\"../scatter/fill_hover_text\\\":1051}],843:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.layoutAttributes=t(\\\"./layout_attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),n.calc=t(\\\"./calc\\\"),n.crossTraceCalc=t(\\\"./cross_trace_calc\\\").crossTraceCalc,n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.arraysToCalcdata=t(\\\"./arrays_to_calcdata\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"./style\\\").style,n.styleOnSelect=t(\\\"./style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\").hoverPoints,n.selectPoints=t(\\\"./select\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"bar\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"bar\\\",\\\"oriented\\\",\\\"errorBarsOK\\\",\\\"showLegend\\\",\\\"zoomScale\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../scatter/marker_colorbar\\\":1061,\\\"./arrays_to_calcdata\\\":836,\\\"./attributes\\\":837,\\\"./calc\\\":838,\\\"./cross_trace_calc\\\":839,\\\"./defaults\\\":840,\\\"./hover\\\":842,\\\"./layout_attributes\\\":844,\\\"./layout_defaults\\\":845,\\\"./plot\\\":846,\\\"./select\\\":847,\\\"./style\\\":849}],844:[function(t,e,r){\\\"use strict\\\";e.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\\\"}}},{}],845:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"./layout_attributes\\\");e.exports=function(t,e,r){function s(r,n){return a.coerce(t,e,o,r,n)}for(var l=!1,c=!1,u=!1,f={},h=0;h<r.length;h++){var p=r[h];if(n.traceIs(p,\\\"bar\\\")&&p.visible){if(l=!0,\\\"overlay\\\"!==t.barmode&&\\\"stack\\\"!==t.barmode){var d=p.xaxis+p.yaxis;f[d]&&(u=!0),f[d]=!0}if(p.visible&&\\\"histogram\\\"===p.type)\\\"category\\\"!==i.getFromId({_fullLayout:e},p[\\\"v\\\"===p.orientation?\\\"xaxis\\\":\\\"yaxis\\\"]).type&&(c=!0)}}l&&(\\\"overlay\\\"!==s(\\\"barmode\\\")&&s(\\\"barnorm\\\"),s(\\\"bargap\\\",c&&!u?0:.2),s(\\\"bargroupgap\\\"))}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"./layout_attributes\\\":844}],846:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../lib/svg_text_utils\\\"),s=t(\\\"../../components/color\\\"),l=t(\\\"../../components/drawing\\\"),c=t(\\\"../../registry\\\"),u=t(\\\"./attributes\\\"),f=u.text,h=u.textposition,p=t(\\\"./helpers\\\"),d=t(\\\"./style\\\"),g=3;function v(t,e,r,n,i,a){var o;return i<1?o=\\\"scale(\\\"+i+\\\") \\\":(i=1,o=\\\"\\\"),\\\"translate(\\\"+(r-i*t)+\\\" \\\"+(n-i*e)+\\\")\\\"+o+(a?\\\"rotate(\\\"+a+\\\" \\\"+t+\\\" \\\"+e+\\\") \\\":\\\"\\\")}e.exports=function(t,e,r,u){var m=e.xaxis,y=e.yaxis,x=t._fullLayout,b=a.makeTraceGroups(u,r,\\\"trace bars\\\").each(function(r){var c=n.select(this),u=r[0],b=u.trace;e.isRangePlot||(u.node3=c);var _=a.ensureSingle(c,\\\"g\\\",\\\"points\\\").selectAll(\\\"g.point\\\").data(a.identity);_.enter().append(\\\"g\\\").classed(\\\"point\\\",!0),_.exit().remove(),_.each(function(c,u){var _,w,k,M,A=n.select(this);if(\\\"h\\\"===b.orientation?(k=y.c2p(c.p0,!0),M=y.c2p(c.p1,!0),_=m.c2p(c.s0,!0),w=m.c2p(c.s1,!0),c.ct=[w,(k+M)/2]):(_=m.c2p(c.p0,!0),w=m.c2p(c.p1,!0),k=y.c2p(c.s0,!0),M=y.c2p(c.s1,!0),c.ct=[(_+w)/2,M]),i(_)&&i(w)&&i(k)&&i(M)&&_!==w&&k!==M){var T=(c.mlw+1||b.marker.line.width+1||(c.trace?c.trace.marker.line.width:0)+1)-1,S=n.round(T/2%1,2);if(!t._context.staticPlot){var E=s.opacity(c.mc||b.marker.color)<1||T>.01?C:function(t,e){return Math.abs(t-e)>=2?C(t):t>e?Math.ceil(t):Math.floor(t)};_=E(_,w),w=E(w,_),k=E(k,M),M=E(M,k)}a.ensureSingle(A,\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").attr(\\\"d\\\",\\\"M\\\"+_+\\\",\\\"+k+\\\"V\\\"+M+\\\"H\\\"+w+\\\"V\\\"+k+\\\"Z\\\").call(l.setClipUrl,e.layerClipId),function(t,e,r,n,i,s,c,u){var m;function y(e,r,n){var i=a.ensureSingle(e,\\\"text\\\").text(r).attr({class:\\\"bartext bartext-\\\"+m,transform:\\\"\\\",\\\"text-anchor\\\":\\\"middle\\\",\\\"data-notex\\\":1}).call(l.font,n).call(o.convertToTspans,t);return i}var x=r[0].trace,b=x.orientation,_=function(t,e){var r=p.getValue(t.text,e);return p.coerceString(f,r)}(x,n);if(m=function(t,e){var r=p.getValue(t.textposition,e);return p.coerceEnumerated(h,r)}(x,n),!_||\\\"none\\\"===m)return void e.select(\\\"text\\\").remove();var w,k,M,A,T,S,E=t._fullLayout.font,C=d.getBarColor(r[n],x),L=d.getInsideTextFont(x,n,E,C),z=d.getOutsideTextFont(x,n,E),O=t._fullLayout.barmode,I=\\\"relative\\\"===O,P=\\\"stack\\\"===O||I,D=r[n],R=!P||D._outmost,B=Math.abs(s-i)-2*g,F=Math.abs(u-c)-2*g;\\\"outside\\\"===m&&(R||D.hasB||(m=\\\"inside\\\"));if(\\\"auto\\\"===m)if(R){m=\\\"inside\\\",w=y(e,_,L),k=l.bBox(w.node()),M=k.width,A=k.height;var N=M>0&&A>0,j=M<=B&&A<=F,V=M<=F&&A<=B,U=\\\"h\\\"===b?B>=M*(F/A):F>=A*(B/M);N&&(j||V||U)?m=\\\"inside\\\":(m=\\\"outside\\\",w.remove(),w=null)}else m=\\\"inside\\\";if(!w&&(w=y(e,_,\\\"outside\\\"===m?z:L),k=l.bBox(w.node()),M=k.width,A=k.height,M<=0||A<=0))return void w.remove();\\\"outside\\\"===m?(S=\\\"both\\\"===x.constraintext||\\\"outside\\\"===x.constraintext,T=function(t,e,r,n,i,a,o){var s,l=\\\"h\\\"===a?Math.abs(n-r):Math.abs(e-t);l>2*g&&(s=g);var c=1;o&&(c=\\\"h\\\"===a?Math.min(1,l/i.height):Math.min(1,l/i.width));var u,f,h,p,d=(i.left+i.right)/2,m=(i.top+i.bottom)/2;u=c*i.width,f=c*i.height,\\\"h\\\"===a?e<t?(h=e-s-u/2,p=(r+n)/2):(h=e+s+u/2,p=(r+n)/2):n>r?(h=(t+e)/2,p=n+s+f/2):(h=(t+e)/2,p=n-s-f/2);return v(d,m,h,p,c,!1)}(i,s,c,u,k,b,S)):(S=\\\"both\\\"===x.constraintext||\\\"inside\\\"===x.constraintext,T=function(t,e,r,n,i,a,o){var s,l,c,u,f,h,p,d=i.width,m=i.height,y=(i.left+i.right)/2,x=(i.top+i.bottom)/2,b=Math.abs(e-t),_=Math.abs(n-r);b>2*g&&_>2*g?(b-=2*(f=g),_-=2*f):f=0;d<=b&&m<=_?(h=!1,p=1):d<=_&&m<=b?(h=!0,p=1):d<m==b<_?(h=!1,p=o?Math.min(b/d,_/m):1):(h=!0,p=o?Math.min(_/d,b/m):1);h&&(h=90);h?(s=p*m,l=p*d):(s=p*d,l=p*m);\\\"h\\\"===a?e<t?(c=e+f+s/2,u=(r+n)/2):(c=e-f-s/2,u=(r+n)/2):n>r?(c=(t+e)/2,u=n-f-l/2):(c=(t+e)/2,u=n+f+l/2);return v(y,x,c,u,p,h)}(i,s,c,u,k,b,S));w.attr(\\\"transform\\\",T)}(t,A,r,u,_,w,k,M),e.layerClipId&&l.hideOutsideRangePoint(c,A.select(\\\"text\\\"),m,y,b.xcalendar,b.ycalendar)}else A.remove();function C(t){return 0===x.bargap&&0===x.bargroupgap?n.round(Math.round(t)-S,2):t}});var w=!1===u.trace.cliponaxis;l.setClipUrl(c,w?null:e.layerClipId)});c.getComponentMethod(\\\"errorbars\\\",\\\"plot\\\")(b,e)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../registry\\\":827,\\\"./attributes\\\":837,\\\"./helpers\\\":841,\\\"./style\\\":849,d3:148,\\\"fast-isnumeric\\\":214}],847:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[];if(!1===e)for(r=0;r<n.length;r++)n[r].selected=0;else for(r=0;r<n.length;r++){var s=n[r];e.contains(s.ct,!1,r,t)?(o.push({pointNumber:r,x:i.c2d(s.x),y:a.c2d(s.y)}),s.selected=1):s.selected=0}return o}},{}],848:[function(t,e,r){\\\"use strict\\\";e.exports=a;var n=t(\\\"../../lib\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM;function a(t,e,r){this.traces=t,this.separateNegativeValues=e,this.dontMergeOverlappingData=r;for(var a=1/0,o=[],s=0;s<t.length;s++){for(var l=t[s],c=0;c<l.length;c++){var u=l[c];u.p!==i&&o.push(u.p)}l[0]&&l[0].width1&&(a=Math.min(l[0].width1,a))}this.positions=o;var f=n.distinctVals(o);this.distinctPositions=f.vals,1===f.vals.length&&a!==1/0?this.minDiff=a:this.minDiff=Math.min(f.minDiff,a),this.binWidth=this.minDiff,this.bins={}}a.prototype.put=function(t,e){var r=this.getLabel(t,e),n=this.bins[r]||0;return this.bins[r]=n+e,n},a.prototype.get=function(t,e){var r=this.getLabel(t,e);return this.bins[r]||0},a.prototype.getLabel=function(t,e){return(e<0&&this.separateNegativeValues?\\\"v\\\":\\\"^\\\")+(this.dontMergeOverlappingData?t:Math.round(t/this.binWidth))}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696}],849:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../registry\\\"),l=t(\\\"./attributes\\\"),c=l.textfont,u=l.insidetextfont,f=l.outsidetextfont,h=t(\\\"./helpers\\\");function p(t,e,r){var i=t.selectAll(\\\"path\\\"),o=t.selectAll(\\\"text\\\");a.pointStyle(i,e,r),o.each(function(t){var i=n.select(this),o=d(i,t,e,r);a.font(i,o)})}function d(t,e,r,n){var i=n._fullLayout.font,a=r.textfont;if(t.classed(\\\"bartext-inside\\\")){var o=x(e,r);a=v(r,e.i,i,o)}else t.classed(\\\"bartext-outside\\\")&&(a=m(r,e.i,i));return a}function g(t,e,r){return y(c,t.textfont,e,r)}function v(t,e,r,n){var a=g(t,e,r);return(void 0===t._input.textfont||void 0===t._input.textfont.color||Array.isArray(t.textfont.color)&&void 0===t.textfont.color[e])&&(a={color:i.contrast(n),family:a.family,size:a.size}),y(u,t.insidetextfont,e,a)}function m(t,e,r){var n=g(t,e,r);return y(f,t.outsidetextfont,e,n)}function y(t,e,r,n){e=e||{};var i=h.getValue(e.family,r),a=h.getValue(e.size,r),o=h.getValue(e.color,r);return{family:h.coerceString(t.family,i,n.family),size:h.coerceNumber(t.size,a,n.size),color:h.coerceColor(t.color,o,n.color)}}function x(t,e){return t.mc||e.marker.color}e.exports={style:function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.trace.bars\\\"),i=r.size(),a=t._fullLayout;r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}).each(function(t){(\\\"stack\\\"===a.barmode&&i>1||0===a.bargap&&0===a.bargroupgap&&!t[0].trace.marker.line.width)&&n.select(this).attr(\\\"shape-rendering\\\",\\\"crispEdges\\\")}),r.selectAll(\\\"g.points\\\").each(function(e){p(n.select(this),e[0].trace,t)}),s.getComponentMethod(\\\"errorbars\\\",\\\"style\\\")(r)},styleOnSelect:function(t,e){var r=e[0].node3,i=e[0].trace;i.selectedpoints?function(t,e,r){a.selectedPointStyle(t.selectAll(\\\"path\\\"),e),function(t,e,r){t.each(function(t){var i,s=n.select(this);if(t.selected){i=o.extendFlat({},d(s,t,e,r));var l=e.selected.textfont&&e.selected.textfont.color;l&&(i.color=l),a.font(s,i)}else a.selectedTextStyle(s,e)})}(t.selectAll(\\\"text\\\"),e,r)}(r,i,t):p(r,i,t)},getInsideTextFont:v,getOutsideTextFont:m,getBarColor:x}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":837,\\\"./helpers\\\":841,d3:148}],850:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\");e.exports=function(t,e,r,o,s){r(\\\"marker.color\\\",o),i(t,\\\"marker\\\")&&a(t,e,s,r,{prefix:\\\"marker.\\\",cLetter:\\\"c\\\"}),r(\\\"marker.line.color\\\",n.defaultLine),i(t,\\\"marker.line\\\")&&a(t,e,s,r,{prefix:\\\"marker.line.\\\",cLetter:\\\"c\\\"}),r(\\\"marker.line.width\\\"),r(\\\"marker.opacity\\\"),r(\\\"selected.marker.color\\\"),r(\\\"unselected.marker.color\\\")}},{\\\"../../components/color\\\":570,\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584}],851:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/extend\\\").extendFlat,i=t(\\\"../scatterpolar/attributes\\\"),a=t(\\\"../bar/attributes\\\");e.exports={r:i.r,theta:i.theta,r0:i.r0,dr:i.dr,theta0:i.theta0,dtheta:i.dtheta,thetaunit:i.thetaunit,base:n({},a.base,{}),offset:n({},a.offset,{}),width:n({},a.width,{}),text:n({},a.text,{}),marker:a.marker,hoverinfo:i.hoverinfo,selected:a.selected,unselected:a.unselected}},{\\\"../../lib/extend\\\":685,\\\"../bar/attributes\\\":837,\\\"../scatterpolar/attributes\\\":1105}],852:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/has_colorscale\\\"),i=t(\\\"../../components/colorscale/calc\\\"),a=t(\\\"../bar/arrays_to_calcdata\\\"),o=t(\\\"../bar/cross_trace_calc\\\").setGroupPositions,s=t(\\\"../scatter/calc_selection\\\"),l=t(\\\"../../registry\\\").traceIs,c=t(\\\"../../lib\\\").extendFlat;e.exports={calc:function(t,e){for(var r=t._fullLayout,o=e.subplot,l=r[o].radialaxis,c=r[o].angularaxis,u=l.makeCalcdata(e,\\\"r\\\"),f=c.makeCalcdata(e,\\\"theta\\\"),h=e._length,p=new Array(h),d=u,g=f,v=0;v<h;v++)p[v]={p:g[v],s:d[v]};function m(t){var r=e[t];void 0!==r&&(e[\\\"_\\\"+t]=Array.isArray(r)?c.makeCalcdata(e,t):c.d2c(r,e.thetaunit))}return\\\"linear\\\"===c.type&&(m(\\\"width\\\"),m(\\\"offset\\\")),n(e,\\\"marker\\\")&&i(e,e.marker.color,\\\"marker\\\",\\\"c\\\"),n(e,\\\"marker.line\\\")&&i(e,e.marker.line.color,\\\"marker.line\\\",\\\"c\\\"),a(p,e),s(p,e),p},crossTraceCalc:function(t,e,r){for(var n=t.calcdata,i=[],a=0;a<n.length;a++){var s=n[a],u=s[0].trace;!0===u.visible&&l(u,\\\"bar\\\")&&u.subplot===r&&i.push(s)}var f=c({},e.radialaxis,{_id:\\\"x\\\"}),h=e.angularaxis;o({_fullLayout:e},h,f,i)}}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../bar/arrays_to_calcdata\\\":836,\\\"../bar/cross_trace_calc\\\":839,\\\"../scatter/calc_selection\\\":1045}],853:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatterpolar/defaults\\\").handleRThetaDefaults,a=t(\\\"../bar/style_defaults\\\"),o=t(\\\"./attributes\\\");e.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,o,r,i)}i(t,e,s,l)?(l(\\\"thetaunit\\\"),l(\\\"base\\\"),l(\\\"offset\\\"),l(\\\"width\\\"),l(\\\"text\\\"),a(t,e,l,r,s),n.coerceSelectionMarkerOpacity(e,l)):e.visible=!1}},{\\\"../../lib\\\":696,\\\"../bar/style_defaults\\\":850,\\\"../scatterpolar/defaults\\\":1107,\\\"./attributes\\\":851}],854:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../bar/hover\\\").getTraceColor,o=t(\\\"../scatter/fill_hover_text\\\"),s=t(\\\"../scatterpolar/hover\\\").makeHoverPointText,l=t(\\\"../../plots/polar/helpers\\\").isPtInsidePolygon;e.exports=function(t,e,r){var c=t.cd,u=c[0].trace,f=t.subplot,h=f.radialAxis,p=f.angularAxis,d=f.vangles,g=d?l:i.isPtInsideSector,v=t.maxHoverDistance,m=p._period||2*Math.PI,y=Math.abs(h.g2p(Math.sqrt(e*e+r*r))),x=Math.atan2(r,e);h.range[0]>h.range[1]&&(x+=Math.PI);if(n.getClosest(c,function(t){return g(y,x,[t.rp0,t.rp1],[t.thetag0,t.thetag1],d)?v+Math.min(1,Math.abs(t.thetag1-t.thetag0)/m)-1+(t.rp1-y)/(t.rp1-t.rp0)-1:1/0},t),!1!==t.index){var b=c[t.index];t.x0=t.x1=b.ct[0],t.y0=t.y1=b.ct[1];var _=i.extendFlat({},b,{r:b.s,theta:b.p});return o(b,u,t),s(_,u,f,t),t.color=a(u,b),t.xLabelVal=t.yLabelVal=void 0,b.s<0&&(t.idealAlign=\\\"left\\\"),[t]}}},{\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../plots/polar/helpers\\\":810,\\\"../bar/hover\\\":842,\\\"../scatter/fill_hover_text\\\":1051,\\\"../scatterpolar/hover\\\":1108}],855:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"barpolar\\\",basePlotModule:t(\\\"../../plots/polar\\\"),categories:[\\\"polar\\\",\\\"bar\\\",\\\"showLegend\\\"],attributes:t(\\\"./attributes\\\"),layoutAttributes:t(\\\"./layout_attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),supplyLayoutDefaults:t(\\\"./layout_defaults\\\"),calc:t(\\\"./calc\\\").calc,crossTraceCalc:t(\\\"./calc\\\").crossTraceCalc,plot:t(\\\"./plot\\\"),colorbar:t(\\\"../scatter/marker_colorbar\\\"),style:t(\\\"../bar/style\\\").style,hoverPoints:t(\\\"./hover\\\"),selectPoints:t(\\\"../bar/select\\\"),meta:{}}},{\\\"../../plots/polar\\\":811,\\\"../bar/select\\\":847,\\\"../bar/style\\\":849,\\\"../scatter/marker_colorbar\\\":1061,\\\"./attributes\\\":851,\\\"./calc\\\":852,\\\"./defaults\\\":853,\\\"./hover\\\":854,\\\"./layout_attributes\\\":856,\\\"./layout_defaults\\\":857,\\\"./plot\\\":858}],856:[function(t,e,r){\\\"use strict\\\";e.exports={barmode:{valType:\\\"enumerated\\\",values:[\\\"stack\\\",\\\"overlay\\\"],dflt:\\\"stack\\\",editType:\\\"calc\\\"},bargap:{valType:\\\"number\\\",dflt:.1,min:0,max:1,editType:\\\"calc\\\"}}},{}],857:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\");e.exports=function(t,e,r){var a,o={};function s(r,o){return n.coerce(t[a]||{},e[a],i,r,o)}for(var l=0;l<r.length;l++){var c=r[l];\\\"barpolar\\\"===c.type&&!0===c.visible&&(o[a=c.subplot]||(s(\\\"barmode\\\"),s(\\\"bargap\\\"),o[a]=1))}}},{\\\"../../lib\\\":696,\\\"./layout_attributes\\\":856}],858:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../components/drawing\\\"),s=t(\\\"../../plots/polar/helpers\\\");e.exports=function(t,e,r){var l=e.xaxis,c=e.yaxis,u=e.radialAxis,f=e.angularAxis,h=function(t){var e=t.cxx,r=t.cyy;if(t.vangles)return function(n,i,o,l){var c,u;a.angleDelta(o,l)>0?(c=o,u=l):(c=l,u=o);var f=s.findEnclosingVertexAngles(c,t.vangles)[0],h=s.findEnclosingVertexAngles(u,t.vangles)[1],p=[f,(c+u)/2,h];return s.pathPolygonAnnulus(n,i,c,u,p,e,r)};return function(t,n,i,o){return a.pathAnnulus(t,n,i,o,e,r)}}(e),p=e.layers.frontplot.select(\\\"g.barlayer\\\");a.makeTraceGroups(p,r,\\\"trace bars\\\").each(function(t){var r=t[0].node3=n.select(this),s=a.ensureSingle(r,\\\"g\\\",\\\"points\\\").selectAll(\\\"g.point\\\").data(a.identity);s.enter().append(\\\"g\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").style(\\\"stroke-miterlimit\\\",2).classed(\\\"point\\\",!0),s.exit().remove(),s.each(function(t){var e,r=n.select(this),o=t.rp0=u.c2p(t.s0),s=t.rp1=u.c2p(t.s1),p=t.thetag0=f.c2g(t.p0),d=t.thetag1=f.c2g(t.p1);if(i(o)&&i(s)&&i(p)&&i(d)&&o!==s&&p!==d){var g=u.c2g(t.s1),v=(p+d)/2;t.ct=[l.c2p(g*Math.cos(v)),c.c2p(g*Math.sin(v))],e=h(o,s,p,d)}else e=\\\"M0,0Z\\\";a.ensureSingle(r,\\\"path\\\").attr(\\\"d\\\",e)}),o.setClipUrl(r,e._hasClipOnAxisFalse?e.clipIds.forTraces:null)})}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../plots/polar/helpers\\\":810,d3:148,\\\"fast-isnumeric\\\":214}],859:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/color/attributes\\\"),a=t(\\\"../../lib/extend\\\").extendFlat,o=n.marker,s=o.line;e.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\\\"},name:{valType:\\\"string\\\",editType:\\\"calc+clearAxisTypes\\\"},text:a({},n.text,{}),whiskerwidth:{valType:\\\"number\\\",min:0,max:1,dflt:.5,editType:\\\"calc\\\"},notched:{valType:\\\"boolean\\\",editType:\\\"calc\\\"},notchwidth:{valType:\\\"number\\\",min:0,max:.5,dflt:.25,editType:\\\"calc\\\"},boxpoints:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"outliers\\\",\\\"suspectedoutliers\\\",!1],dflt:\\\"outliers\\\",editType:\\\"calc\\\"},boxmean:{valType:\\\"enumerated\\\",values:[!0,\\\"sd\\\",!1],dflt:!1,editType:\\\"calc\\\"},jitter:{valType:\\\"number\\\",min:0,max:1,editType:\\\"calc\\\"},pointpos:{valType:\\\"number\\\",min:-2,max:2,editType:\\\"calc\\\"},orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],editType:\\\"calc+clearAxisTypes\\\"},marker:{outliercolor:{valType:\\\"color\\\",dflt:\\\"rgba(0, 0, 0, 0)\\\",editType:\\\"style\\\"},symbol:a({},o.symbol,{arrayOk:!1,editType:\\\"plot\\\"}),opacity:a({},o.opacity,{arrayOk:!1,dflt:1,editType:\\\"style\\\"}),size:a({},o.size,{arrayOk:!1,editType:\\\"calc\\\"}),color:a({},o.color,{arrayOk:!1,editType:\\\"style\\\"}),line:{color:a({},s.color,{arrayOk:!1,dflt:i.defaultLine,editType:\\\"style\\\"}),width:a({},s.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:n.fillcolor,selected:{marker:n.selected.marker,editType:\\\"style\\\"},unselected:{marker:n.unselected.marker,editType:\\\"style\\\"},hoveron:{valType:\\\"flaglist\\\",flags:[\\\"boxes\\\",\\\"points\\\"],dflt:\\\"boxes+points\\\",editType:\\\"style\\\"}}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib/extend\\\":685,\\\"../scatter/attributes\\\":1043}],860:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=i._,o=t(\\\"../../plots/cartesian/axes\\\");function s(t,e,r){var n={text:\\\"tx\\\"};for(var i in n)Array.isArray(e[i])&&(t[n[i]]=e[i][r])}function l(t,e){return t.v-e.v}function c(t){return t.v}e.exports=function(t,e){var r,u,f,h,p,d=t._fullLayout,g=o.getFromId(t,e.xaxis||\\\"x\\\"),v=o.getFromId(t,e.yaxis||\\\"y\\\"),m=[],y=\\\"violin\\\"===e.type?\\\"_numViolins\\\":\\\"_numBoxes\\\";\\\"h\\\"===e.orientation?(u=g,f=\\\"x\\\",h=v,p=\\\"y\\\"):(u=v,f=\\\"y\\\",h=g,p=\\\"x\\\");var x=u.makeCalcdata(e,f),b=function(t,e,r,a,o){if(e in t)return r.makeCalcdata(t,e);var s;s=e+\\\"0\\\"in t?t[e+\\\"0\\\"]:\\\"name\\\"in t&&(\\\"category\\\"===r.type||n(t.name)&&-1!==[\\\"linear\\\",\\\"log\\\"].indexOf(r.type)||i.isDateTime(t.name)&&\\\"date\\\"===r.type)?t.name:o;var l=r.d2c(s,0,t[e+\\\"calendar\\\"]);return a.map(function(){return l})}(e,p,h,x,d[y]),_=i.distinctVals(b),w=_.vals,k=_.minDiff/2,M=function(t,e){for(var r=t.length,n=new Array(r+1),i=0;i<r;i++)n[i]=t[i]-e;return n[r]=t[r-1]+e,n}(w,k),A=w.length,T=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=[];return e}(A);for(r=0;r<e._length;r++){var S=x[r];if(n(S)){var E=i.findBin(b[r],M);if(E>=0&&E<A){var C={v:S,i:r};s(C,e,r),T[E].push(C)}}}for(r=0;r<A;r++)if(T[r].length>0){var L=T[r].sort(l),z=L.map(c),O=z.length,I={pos:w[r],pts:L};I.min=z[0],I.max=z[O-1],I.mean=i.mean(z,O),I.sd=i.stdev(z,O,I.mean),I.q1=i.interp(z,.25),I.med=i.interp(z,.5),I.q3=i.interp(z,.75),I.lf=Math.min(I.q1,z[Math.min(i.findBin(2.5*I.q1-1.5*I.q3,z,!0)+1,O-1)]),I.uf=Math.max(I.q3,z[Math.max(i.findBin(2.5*I.q3-1.5*I.q1,z),0)]),I.lo=4*I.q1-3*I.q3,I.uo=4*I.q3-3*I.q1;var P=1.57*(I.q3-I.q1)/Math.sqrt(O);I.ln=I.med-P,I.un=I.med+P,m.push(I)}!function(t,e){if(i.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r<t.length;r++){for(var n=t[r].pts||[],a={},o=0;o<n.length;o++)a[n[o].i]=o;i.tagSelected(n,e,a)}}(m,e);var D=o.findExtremes(u,x,{padded:!0});return e._extremes[u._id]=D,m.length>0?(m[0].t={num:d[y],dPos:k,posLetter:p,valLetter:f,labels:{med:a(t,\\\"median:\\\"),min:a(t,\\\"min:\\\"),q1:a(t,\\\"q1:\\\"),q3:a(t,\\\"q3:\\\"),max:a(t,\\\"max:\\\"),mean:\\\"sd\\\"===e.boxmean?a(t,\\\"mean \\\\xb1 \\\\u03c3:\\\"):a(t,\\\"mean:\\\"),lf:a(t,\\\"lower fence:\\\"),uf:a(t,\\\"upper fence:\\\")}},d[y]++,m):[{t:{empty:!0}}]}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"fast-isnumeric\\\":214}],861:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\"),a=[\\\"v\\\",\\\"h\\\"];function o(t,e,r,a,o){var s,l,c,u=e.calcdata,f=e._fullLayout,h=[],p=\\\"violin\\\"===t?\\\"_numViolins\\\":\\\"_numBoxes\\\";for(s=0;s<r.length;s++)for(c=u[r[s]],l=0;l<c.length;l++)h.push(c[l].pos);if(h.length){var d=i.distinctVals(h),g=d.minDiff/2;h.length===d.vals.length&&(f[p]=1),n.minDtick(a,d.minDiff,d.vals[0],!0);var v=(1-f[t+\\\"gap\\\"])*(1-f[t+\\\"groupgap\\\"])*g/f[p],m=n.findExtremes(a,d.vals,{vpadminus:g+o[0]*v,vpadplus:g+o[1]*v});for(s=0;s<r.length;s++)(c=u[r[s]])[0].t.dPos=g,c[0].trace._extremes[a._id]=m}}e.exports={crossTraceCalc:function(t,e){for(var r=t.calcdata,n=e.xaxis,i=e.yaxis,s=0;s<a.length;s++){for(var l=a[s],c=\\\"h\\\"===l?i:n,u=[],f=0,h=0,p=0;p<r.length;p++){var d=r[p],g=d[0].t,v=d[0].trace;!0!==v.visible||\\\"box\\\"!==v.type&&\\\"candlestick\\\"!==v.type||g.empty||(v.orientation||\\\"v\\\")!==l||v.xaxis!==n._id||v.yaxis!==i._id||(u.push(p),v.boxpoints&&(f=Math.max(f,v.jitter-v.pointpos-1),h=Math.max(h,v.jitter+v.pointpos-1)))}o(\\\"box\\\",t,u,c,[f,h])}},setPositionOffset:o}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],862:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"./attributes\\\");function s(t,e,r,n){var a,o,s=r(\\\"y\\\"),l=r(\\\"x\\\"),c=l&&l.length;if(s&&s.length)a=\\\"v\\\",c?o=Math.min(l.length,s.length):(r(\\\"x0\\\"),o=s.length);else{if(!c)return void(e.visible=!1);a=\\\"h\\\",r(\\\"y0\\\"),o=l.length}e._length=o,i.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\"],n),r(\\\"orientation\\\",a)}function l(t,e,r,i){var a=i.prefix,s=n.coerce2(t,e,o,\\\"marker.outliercolor\\\"),l=r(\\\"marker.line.outliercolor\\\"),c=r(a+\\\"points\\\",s||l?\\\"suspectedoutliers\\\":void 0);c?(r(\\\"jitter\\\",\\\"all\\\"===c?.3:0),r(\\\"pointpos\\\",\\\"all\\\"===c?-1.5:0),r(\\\"marker.symbol\\\"),r(\\\"marker.opacity\\\"),r(\\\"marker.size\\\"),r(\\\"marker.color\\\",e.line.color),r(\\\"marker.line.color\\\"),r(\\\"marker.line.width\\\"),\\\"suspectedoutliers\\\"===c&&(r(\\\"marker.line.outliercolor\\\",e.marker.color),r(\\\"marker.line.outlierwidth\\\")),r(\\\"selected.marker.color\\\"),r(\\\"unselected.marker.color\\\"),r(\\\"selected.marker.size\\\"),r(\\\"unselected.marker.size\\\"),r(\\\"text\\\")):delete e.marker,r(\\\"hoveron\\\"),n.coerceSelectionMarkerOpacity(e,r)}e.exports={supplyDefaults:function(t,e,r,i){function c(r,i){return n.coerce(t,e,o,r,i)}s(t,e,c,i),!1!==e.visible&&(c(\\\"line.color\\\",(t.marker||{}).color||r),c(\\\"line.width\\\"),c(\\\"fillcolor\\\",a.addOpacity(e.line.color,.5)),c(\\\"whiskerwidth\\\"),c(\\\"boxmean\\\"),c(\\\"notched\\\",void 0!==t.notchwidth)&&c(\\\"notchwidth\\\"),l(t,e,c,{prefix:\\\"box\\\"}))},handleSampleDefaults:s,handlePointsDefaults:l}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":859}],863:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return e.hoverOnBox&&(t.hoverOnBox=e.hoverOnBox),\\\"xVal\\\"in e&&(t.x=e.xVal),\\\"yVal\\\"in e&&(t.y=e.yVal),e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),t}},{}],864:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/fx\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../scatter/fill_hover_text\\\");function l(t,e,r,s){var l,c,u,f,h,p,d,g,v,m,y,x,b=t.cd,_=t.xa,w=t.ya,k=b[0].trace,M=b[0].t,A=\\\"violin\\\"===k.type,T=[],S=M.bdPos,E=M.wHover,C=function(t){return t.pos+M.bPos-p};A&&\\\"both\\\"!==k.side?(\\\"positive\\\"===k.side&&(v=function(t){var e=C(t);return a.inbox(e,e+E,m)}),\\\"negative\\\"===k.side&&(v=function(t){var e=C(t);return a.inbox(e-E,e,m)})):v=function(t){var e=C(t);return a.inbox(e-E,e+E,m)},x=A?function(t){return a.inbox(t.span[0]-h,t.span[1]-h,m)}:function(t){return a.inbox(t.min-h,t.max-h,m)},\\\"h\\\"===k.orientation?(h=e,p=r,d=x,g=v,l=\\\"y\\\",u=w,c=\\\"x\\\",f=_):(h=r,p=e,d=v,g=x,l=\\\"x\\\",u=_,c=\\\"y\\\",f=w);var L=Math.min(1,S/Math.abs(u.r2c(u.range[1])-u.r2c(u.range[0])));function z(t){return(d(t)+g(t))/2}m=t.maxHoverDistance-L,y=t.maxSpikeDistance-L;var O=a.getDistanceFunction(s,d,g,z);if(a.getClosest(b,O,t),!1===t.index)return[];var I=b[t.index],P=k.line.color,D=(k.marker||{}).color;o.opacity(P)&&k.line.width?t.color=P:o.opacity(D)&&k.boxpoints?t.color=D:t.color=k.fillcolor,t[l+\\\"0\\\"]=u.c2p(I.pos+M.bPos-S,!0),t[l+\\\"1\\\"]=u.c2p(I.pos+M.bPos+S,!0),t[l+\\\"LabelVal\\\"]=I.pos;var R=l+\\\"Spike\\\";t.spikeDistance=z(I)*y/m,t[R]=u.c2p(I.pos,!0);var B={},F=[\\\"med\\\",\\\"min\\\",\\\"q1\\\",\\\"q3\\\",\\\"max\\\"];(k.boxmean||(k.meanline||{}).visible)&&F.push(\\\"mean\\\"),(k.boxpoints||k.points)&&F.push(\\\"lf\\\",\\\"uf\\\");for(var N=0;N<F.length;N++){var j=F[N];if(j in I&&!(I[j]in B)){B[I[j]]=!0;var V=I[j],U=f.c2p(V,!0),q=i.extendFlat({},t);q[c+\\\"0\\\"]=q[c+\\\"1\\\"]=U,q[c+\\\"LabelVal\\\"]=V,q[c+\\\"Label\\\"]=(M.labels?M.labels[j]+\\\" \\\":\\\"\\\")+n.hoverLabelText(f,V),q.hoverOnBox=!0,\\\"mean\\\"===j&&\\\"sd\\\"in I&&\\\"sd\\\"===k.boxmean&&(q[c+\\\"err\\\"]=I.sd),t.name=\\\"\\\",t.spikeDistance=void 0,t[R]=void 0,T.push(q)}}return T}function c(t,e,r){for(var n,o,l,c=t.cd,u=t.xa,f=t.ya,h=c[0].trace,p=u.c2p(e),d=f.c2p(r),g=a.quadrature(function(t){var e=Math.max(3,t.mrc||0);return Math.max(Math.abs(u.c2p(t.x)-p)-e,1-3/e)},function(t){var e=Math.max(3,t.mrc||0);return Math.max(Math.abs(f.c2p(t.y)-d)-e,1-3/e)}),v=!1,m=0;m<c.length;m++){o=c[m];for(var y=0;y<(o.pts||[]).length;y++){var x=g(l=o.pts[y]);x<=t.distance&&(t.distance=x,v=[m,y])}}if(!v)return!1;l=(o=c[v[0]]).pts[v[1]];var b=u.c2p(l.x,!0),_=f.c2p(l.y,!0),w=l.mrc||1;n=i.extendFlat({},t,{index:l.i,color:(h.marker||{}).color,name:h.name,x0:b-w,x1:b+w,xLabelVal:l.x,y0:_-w,y1:_+w,yLabelVal:l.y,spikeDistance:t.distance});var k=\\\"h\\\"===h.orientation?\\\"y\\\":\\\"x\\\",M=\\\"h\\\"===h.orientation?f:u;return n[k+\\\"Spike\\\"]=M.c2p(o.pos,!0),s(l,h,n),n}e.exports={hoverPoints:function(t,e,r,n){var i,a=t.cd[0].trace.hoveron,o=[];return-1!==a.indexOf(\\\"boxes\\\")&&(o=o.concat(l(t,e,r,n))),-1!==a.indexOf(\\\"points\\\")&&(i=c(t,e,r)),\\\"closest\\\"===n?i?[i]:o:i?(o.push(i),o):o},hoverOnBoxes:l,hoverOnPoints:c}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/fill_hover_text\\\":1051}],865:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.layoutAttributes=t(\\\"./layout_attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\").supplyDefaults,n.supplyLayoutDefaults=t(\\\"./layout_defaults\\\").supplyLayoutDefaults,n.calc=t(\\\"./calc\\\"),n.crossTraceCalc=t(\\\"./cross_trace_calc\\\").crossTraceCalc,n.plot=t(\\\"./plot\\\").plot,n.style=t(\\\"./style\\\").style,n.styleOnSelect=t(\\\"./style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\").hoverPoints,n.eventData=t(\\\"./event_data\\\"),n.selectPoints=t(\\\"./select\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"box\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"symbols\\\",\\\"oriented\\\",\\\"box-violin\\\",\\\"showLegend\\\",\\\"boxLayout\\\",\\\"zoomScale\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":859,\\\"./calc\\\":860,\\\"./cross_trace_calc\\\":861,\\\"./defaults\\\":862,\\\"./event_data\\\":863,\\\"./hover\\\":864,\\\"./layout_attributes\\\":866,\\\"./layout_defaults\\\":867,\\\"./plot\\\":868,\\\"./select\\\":869,\\\"./style\\\":870}],866:[function(t,e,r){\\\"use strict\\\";e.exports={boxmode:{valType:\\\"enumerated\\\",values:[\\\"group\\\",\\\"overlay\\\"],dflt:\\\"overlay\\\",editType:\\\"calc\\\"},boxgap:{valType:\\\"number\\\",min:0,max:1,dflt:.3,editType:\\\"calc\\\"},boxgroupgap:{valType:\\\"number\\\",min:0,max:1,dflt:.3,editType:\\\"calc\\\"}}},{}],867:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"./layout_attributes\\\");function o(t,e,r,i,a){for(var o,s=a+\\\"Layout\\\",l=0;l<r.length;l++)if(n.traceIs(r[l],s)){o=!0;break}o&&(i(a+\\\"mode\\\"),i(a+\\\"gap\\\"),i(a+\\\"groupgap\\\"))}e.exports={supplyLayoutDefaults:function(t,e,r){o(0,0,r,function(r,n){return i.coerce(t,e,a,r,n)},\\\"box\\\")},_supply:o}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./layout_attributes\\\":866}],868:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/drawing\\\"),o=5,s=.01;function l(t,e,r,a){var o,s,l=e.pos,c=e.val,u=a.bPos,f=a.wdPos||0,h=a.bPosPxOffset||0,p=r.whiskerwidth||0,d=r.notched||!1,g=d?1-2*r.notchwidth:1;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var v=t.selectAll(\\\"path.box\\\").data(\\\"violin\\\"!==r.type||r.box.visible?i.identity:[]);v.enter().append(\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").attr(\\\"class\\\",\\\"box\\\"),v.exit().remove(),v.each(function(t){var e=t.pos,a=l.c2p(e+u,!0)+h,v=l.c2p(e+u-o,!0)+h,m=l.c2p(e+u+s,!0)+h,y=l.c2p(e+u-f,!0)+h,x=l.c2p(e+u+f,!0)+h,b=l.c2p(e+u-o*g,!0)+h,_=l.c2p(e+u+s*g,!0)+h,w=c.c2p(t.q1,!0),k=c.c2p(t.q3,!0),M=i.constrain(c.c2p(t.med,!0),Math.min(w,k)+1,Math.max(w,k)-1),A=void 0===t.lf||!1===r.boxpoints,T=c.c2p(A?t.min:t.lf,!0),S=c.c2p(A?t.max:t.uf,!0),E=c.c2p(t.ln,!0),C=c.c2p(t.un,!0);\\\"h\\\"===r.orientation?n.select(this).attr(\\\"d\\\",\\\"M\\\"+M+\\\",\\\"+b+\\\"V\\\"+_+\\\"M\\\"+w+\\\",\\\"+v+\\\"V\\\"+m+(d?\\\"H\\\"+E+\\\"L\\\"+M+\\\",\\\"+_+\\\"L\\\"+C+\\\",\\\"+m:\\\"\\\")+\\\"H\\\"+k+\\\"V\\\"+v+(d?\\\"H\\\"+C+\\\"L\\\"+M+\\\",\\\"+b+\\\"L\\\"+E+\\\",\\\"+v:\\\"\\\")+\\\"ZM\\\"+w+\\\",\\\"+a+\\\"H\\\"+T+\\\"M\\\"+k+\\\",\\\"+a+\\\"H\\\"+S+(0===p?\\\"\\\":\\\"M\\\"+T+\\\",\\\"+y+\\\"V\\\"+x+\\\"M\\\"+S+\\\",\\\"+y+\\\"V\\\"+x)):n.select(this).attr(\\\"d\\\",\\\"M\\\"+b+\\\",\\\"+M+\\\"H\\\"+_+\\\"M\\\"+v+\\\",\\\"+w+\\\"H\\\"+m+(d?\\\"V\\\"+E+\\\"L\\\"+_+\\\",\\\"+M+\\\"L\\\"+m+\\\",\\\"+C:\\\"\\\")+\\\"V\\\"+k+\\\"H\\\"+v+(d?\\\"V\\\"+C+\\\"L\\\"+b+\\\",\\\"+M+\\\"L\\\"+v+\\\",\\\"+E:\\\"\\\")+\\\"ZM\\\"+a+\\\",\\\"+w+\\\"V\\\"+T+\\\"M\\\"+a+\\\",\\\"+k+\\\"V\\\"+S+(0===p?\\\"\\\":\\\"M\\\"+y+\\\",\\\"+T+\\\"H\\\"+x+\\\"M\\\"+y+\\\",\\\"+S+\\\"H\\\"+x))})}function c(t,e,r,n){var l=e.x,c=e.y,u=n.bdPos,f=n.bPos,h=r.boxpoints||r.points;i.seedPseudoRandom();var p=t.selectAll(\\\"g.points\\\").data(h?function(t){return t.forEach(function(t){t.t=n,t.trace=r}),t}:[]);p.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"points\\\"),p.exit().remove();var d=p.selectAll(\\\"path\\\").data(function(t){var e,n,a=\\\"all\\\"===h?t.pts:t.pts.filter(function(e){return e.v<t.lf||e.v>t.uf}),l=Math.max((t.max-t.min)/10,t.q3-t.q1),c=1e-9*l,p=l*s,d=[],g=0;if(r.jitter){if(0===l)for(g=1,d=new Array(a.length),e=0;e<a.length;e++)d[e]=1;else for(e=0;e<a.length;e++){var v=Math.max(0,e-o),m=a[v].v,y=Math.min(a.length-1,e+o),x=a[y].v;\\\"all\\\"!==h&&(a[e].v<t.lf?x=Math.min(x,t.lf):m=Math.max(m,t.uf));var b=Math.sqrt(p*(y-v)/(x-m+c))||0;b=i.constrain(Math.abs(b),0,1),d.push(b),g=Math.max(b,g)}n=2*r.jitter/(g||1)}for(e=0;e<a.length;e++){var _=a[e],w=_.v,k=r.jitter?n*d[e]*(i.pseudoRandom()-.5):0,M=t.pos+f+u*(r.pointpos+k);\\\"h\\\"===r.orientation?(_.y=M,_.x=w):(_.x=M,_.y=w),\\\"suspectedoutliers\\\"===h&&w<t.uo&&w>t.lo&&(_.so=!0)}return a});d.enter().append(\\\"path\\\").classed(\\\"point\\\",!0),d.exit().remove(),d.call(a.translatePoints,l,c)}function u(t,e,r,a){var o,s,l=e.pos,c=e.val,u=a.bPos,f=a.bPosPxOffset||0,h=r.boxmean||(r.meanline||{}).visible;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var p=t.selectAll(\\\"path.mean\\\").data(\\\"box\\\"===r.type&&r.boxmean||\\\"violin\\\"===r.type&&r.box.visible&&r.meanline.visible?i.identity:[]);p.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"mean\\\").style({fill:\\\"none\\\",\\\"vector-effect\\\":\\\"non-scaling-stroke\\\"}),p.exit().remove(),p.each(function(t){var e=l.c2p(t.pos+u,!0)+f,i=l.c2p(t.pos+u-o,!0)+f,a=l.c2p(t.pos+u+s,!0)+f,p=c.c2p(t.mean,!0),d=c.c2p(t.mean-t.sd,!0),g=c.c2p(t.mean+t.sd,!0);\\\"h\\\"===r.orientation?n.select(this).attr(\\\"d\\\",\\\"M\\\"+p+\\\",\\\"+i+\\\"V\\\"+a+(\\\"sd\\\"===h?\\\"m0,0L\\\"+d+\\\",\\\"+e+\\\"L\\\"+p+\\\",\\\"+i+\\\"L\\\"+g+\\\",\\\"+e+\\\"Z\\\":\\\"\\\")):n.select(this).attr(\\\"d\\\",\\\"M\\\"+i+\\\",\\\"+p+\\\"H\\\"+a+(\\\"sd\\\"===h?\\\"m0,0L\\\"+e+\\\",\\\"+d+\\\"L\\\"+i+\\\",\\\"+p+\\\"L\\\"+e+\\\",\\\"+g+\\\"Z\\\":\\\"\\\"))})}e.exports={plot:function(t,e,r,a){var o=t._fullLayout,s=e.xaxis,f=e.yaxis,h=o._numBoxes,p=1-o.boxgap,d=\\\"group\\\"===o.boxmode&&h>1;i.makeTraceGroups(a,r,\\\"trace boxes\\\").each(function(t){var r=n.select(this),i=t[0],a=i.t,g=i.trace;e.isRangePlot||(i.node3=r);var v,m,y=a.dPos*p*(1-o.boxgroupgap)/(d?h:1),x=d?2*a.dPos*((a.num+.5)/h-.5)*p:0,b=y*g.whiskerwidth;!0!==g.visible||a.empty?r.remove():(\\\"h\\\"===g.orientation?(v=f,m=s):(v=s,m=f),a.bPos=x,a.bdPos=y,a.wdPos=b,a.wHover=a.dPos*(d?p/h:1),l(r,{pos:v,val:m},g,a),c(r,{x:s,y:f},g,a),u(r,{pos:v,val:m},g,a))})},plotBoxAndWhiskers:l,plotPoints:c,plotBoxMean:u}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,d3:148}],869:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r<i.length;r++)for(n=0;n<(i[r].pts||[]).length;n++)i[r].pts[n].selected=0;else for(r=0;r<i.length;r++)for(n=0;n<(i[r].pts||[]).length;n++){var l=i[r].pts[n],c=a.c2p(l.x),u=o.c2p(l.y);e.contains([c,u],null,l.i,t)?(s.push({pointNumber:l.i,x:a.c2d(l.x),y:o.c2d(l.y)}),l.selected=1):l.selected=0}return s}},{}],870:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../components/drawing\\\");e.exports={style:function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.trace.boxes\\\");r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),r.each(function(e){var r=n.select(this),o=e[0].trace,s=o.line.width;function l(t,e,r,n){t.style(\\\"stroke-width\\\",e+\\\"px\\\").call(i.stroke,r).call(i.fill,n)}var c=r.selectAll(\\\"path.box\\\");if(\\\"candlestick\\\"===o.type)c.each(function(t){var e=n.select(this),r=o[t.dir];l(e,r.line.width,r.line.color,r.fillcolor),e.style(\\\"opacity\\\",o.selectedpoints&&!t.selected?.3:1)});else{l(c,s,o.line.color,o.fillcolor),r.selectAll(\\\"path.mean\\\").style({\\\"stroke-width\\\":s,\\\"stroke-dasharray\\\":2*s+\\\"px,\\\"+s+\\\"px\\\"}).call(i.stroke,o.line.color);var u=r.selectAll(\\\"path.point\\\");a.pointStyle(u,o,t)}})},styleOnSelect:function(t,e){var r=e[0].node3,n=e[0].trace,i=r.selectAll(\\\"path.point\\\");n.selectedpoints?a.selectedPointStyle(i,n):a.pointStyle(i,n,t)}}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,d3:148}],871:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").extendFlat,i=t(\\\"../ohlc/attributes\\\"),a=t(\\\"../box/attributes\\\");function o(t){return{line:{color:n({},a.line.color,{dflt:t}),width:a.line.width,editType:\\\"style\\\"},fillcolor:a.fillcolor,editType:\\\"style\\\"}}e.exports={x:i.x,open:i.open,high:i.high,low:i.low,close:i.close,line:{width:n({},a.line.width,{}),editType:\\\"style\\\"},increasing:o(i.increasing.line.color.dflt),decreasing:o(i.decreasing.line.color.dflt),text:i.text,whiskerwidth:n({},a.whiskerwidth,{dflt:0}),hoverlabel:i.hoverlabel}},{\\\"../../lib\\\":696,\\\"../box/attributes\\\":859,\\\"../ohlc/attributes\\\":991}],872:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../ohlc/calc\\\").calcCommon;function o(t,e,r,n){return{min:r,q1:Math.min(t,n),med:n,q3:Math.max(t,n),max:e}}e.exports=function(t,e){var r=t._fullLayout,s=i.getFromId(t,e.xaxis),l=i.getFromId(t,e.yaxis),c=s.makeCalcdata(e,\\\"x\\\"),u=a(t,e,c,l,o);return u.length?(n.extendFlat(u[0].t,{num:r._numBoxes,dPos:n.distinctVals(c).minDiff/2,posLetter:\\\"x\\\",valLetter:\\\"y\\\"}),r._numBoxes++,u):[{t:{empty:!0}}]}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../ohlc/calc\\\":992}],873:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../ohlc/ohlc_defaults\\\"),o=t(\\\"./attributes\\\");function s(t,e,r,n){var a=r(n+\\\".line.color\\\");r(n+\\\".line.width\\\",e.line.width),r(n+\\\".fillcolor\\\",i.addOpacity(a,.5))}e.exports=function(t,e,r,i){function l(r,i){return n.coerce(t,e,o,r,i)}a(t,e,l,i)?(l(\\\"line.width\\\"),s(t,e,l,\\\"increasing\\\"),s(t,e,l,\\\"decreasing\\\"),l(\\\"text\\\"),l(\\\"whiskerwidth\\\"),i._requestRangeslider[e.xaxis]=!0):e.visible=!1}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../ohlc/ohlc_defaults\\\":996,\\\"./attributes\\\":871}],874:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"candlestick\\\",basePlotModule:t(\\\"../../plots/cartesian\\\"),categories:[\\\"cartesian\\\",\\\"svg\\\",\\\"showLegend\\\",\\\"candlestick\\\",\\\"boxLayout\\\"],meta:{},attributes:t(\\\"./attributes\\\"),layoutAttributes:t(\\\"../box/layout_attributes\\\"),supplyLayoutDefaults:t(\\\"../box/layout_defaults\\\").supplyLayoutDefaults,crossTraceCalc:t(\\\"../box/cross_trace_calc\\\").crossTraceCalc,supplyDefaults:t(\\\"./defaults\\\"),calc:t(\\\"./calc\\\"),plot:t(\\\"../box/plot\\\").plot,layerName:\\\"boxlayer\\\",style:t(\\\"../box/style\\\").style,hoverPoints:t(\\\"../ohlc/hover\\\").hoverPoints,selectPoints:t(\\\"../ohlc/select\\\")}},{\\\"../../plots/cartesian\\\":756,\\\"../box/cross_trace_calc\\\":861,\\\"../box/layout_attributes\\\":866,\\\"../box/layout_defaults\\\":867,\\\"../box/plot\\\":868,\\\"../box/style\\\":870,\\\"../ohlc/hover\\\":994,\\\"../ohlc/select\\\":998,\\\"./attributes\\\":871,\\\"./calc\\\":872,\\\"./defaults\\\":873}],875:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./axis_defaults\\\"),i=t(\\\"../../plot_api/plot_template\\\");e.exports=function(t,e,r,a,o){a(\\\"a\\\")||(a(\\\"da\\\"),a(\\\"a0\\\")),a(\\\"b\\\")||(a(\\\"db\\\"),a(\\\"b0\\\")),function(t,e,r,a){[\\\"aaxis\\\",\\\"baxis\\\"].forEach(function(o){var s=o.charAt(0),l=t[o]||{},c=i.newContainer(e,o),u={tickfont:\\\"x\\\",id:s+\\\"axis\\\",letter:s,font:e.font,name:o,data:t[s],calendar:e.calendar,dfltColor:a,bgColor:r.paper_bgcolor,fullLayout:r};n(l,c,u),c._categories=c._categories||[],t[o]||\\\"-\\\"===l.type||(t[o]={type:l.type})})}(t,e,r,o)}},{\\\"../../plot_api/plot_template\\\":734,\\\"./axis_defaults\\\":880}],876:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t){return function t(e,r){if(!n(e)||r>=10)return null;var i=1/0;var a=-1/0;var o=e.length;for(var s=0;s<o;s++){var l=e[s];if(n(l)){var c=t(l,r+1);c&&(i=Math.min(c[0],i),a=Math.max(c[1],a))}else i=Math.min(l,i),a=Math.max(l,a)}return[i,a]}(t,0)}},{\\\"../../lib\\\":696}],877:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"./axis_attributes\\\"),a=t(\\\"../../components/color/attributes\\\"),o=n({editType:\\\"calc\\\"});o.family.dflt='\\\"Open Sans\\\", verdana, arial, sans-serif',o.size.dflt=12,o.color.dflt=a.defaultLine,e.exports={carpet:{valType:\\\"string\\\",editType:\\\"calc\\\"},x:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},y:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},a:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},a0:{valType:\\\"number\\\",dflt:0,editType:\\\"calc\\\"},da:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},b:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},b0:{valType:\\\"number\\\",dflt:0,editType:\\\"calc\\\"},db:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},cheaterslope:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},aaxis:i,baxis:i,font:o,color:{valType:\\\"color\\\",dflt:a.defaultLine,editType:\\\"plot\\\"},transforms:void 0}},{\\\"../../components/color/attributes\\\":569,\\\"../../plots/font_attributes\\\":771,\\\"./axis_attributes\\\":879}],878:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r,i){var a,o,s,l,c,u,f,h,p,d,g,v,m,y=n(r)?\\\"a\\\":\\\"b\\\",x=(\\\"a\\\"===y?t.aaxis:t.baxis).smoothing,b=\\\"a\\\"===y?t.a2i:t.b2j,_=\\\"a\\\"===y?r:i,w=\\\"a\\\"===y?i:r,k=\\\"a\\\"===y?e.a.length:e.b.length,M=\\\"a\\\"===y?e.b.length:e.a.length,A=Math.floor(\\\"a\\\"===y?t.b2j(w):t.a2i(w)),T=\\\"a\\\"===y?function(e){return t.evalxy([],e,A)}:function(e){return t.evalxy([],A,e)};x&&(s=Math.max(0,Math.min(M-2,A)),l=A-s,o=\\\"a\\\"===y?function(e,r){return t.dxydi([],e,s,r,l)}:function(e,r){return t.dxydj([],s,e,l,r)});var S=b(_[0]),E=b(_[1]),C=S<E?1:-1,L=1e-8*(E-S),z=C>0?Math.floor:Math.ceil,O=C>0?Math.ceil:Math.floor,I=C>0?Math.min:Math.max,P=C>0?Math.max:Math.min,D=z(S+L),R=O(E-L),B=[[f=T(S)]];for(a=D;a*C<R*C;a+=C)c=[],g=P(S,a),m=(v=I(E,a+C))-g,u=Math.max(0,Math.min(k-2,Math.floor(.5*(g+v)))),h=T(v),x&&(p=o(u,g-u),d=o(u,v-u),c.push([f[0]+p[0]/3*m,f[1]+p[1]/3*m]),c.push([h[0]-d[0]/3*m,h[1]-d[1]/3*m])),c.push(h),B.push(c),f=h;return B}},{\\\"../../lib\\\":696}],879:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../../components/color/attributes\\\"),a=t(\\\"../../plots/cartesian/layout_attributes\\\"),o=t(\\\"../../plot_api/edit_types\\\").overrideAll;e.exports={color:{valType:\\\"color\\\",editType:\\\"calc\\\"},smoothing:{valType:\\\"number\\\",dflt:1,min:0,max:1.3,editType:\\\"calc\\\"},title:{valType:\\\"string\\\",editType:\\\"calc\\\"},titlefont:n({editType:\\\"calc\\\"}),titleoffset:{valType:\\\"number\\\",dflt:10,editType:\\\"calc\\\"},type:{valType:\\\"enumerated\\\",values:[\\\"-\\\",\\\"linear\\\",\\\"date\\\",\\\"category\\\"],dflt:\\\"-\\\",editType:\\\"calc\\\"},autorange:{valType:\\\"enumerated\\\",values:[!0,!1,\\\"reversed\\\"],dflt:!0,editType:\\\"calc\\\"},rangemode:{valType:\\\"enumerated\\\",values:[\\\"normal\\\",\\\"tozero\\\",\\\"nonnegative\\\"],dflt:\\\"normal\\\",editType:\\\"calc\\\"},range:{valType:\\\"info_array\\\",editType:\\\"calc\\\",items:[{valType:\\\"any\\\",editType:\\\"calc\\\"},{valType:\\\"any\\\",editType:\\\"calc\\\"}]},fixedrange:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},cheatertype:{valType:\\\"enumerated\\\",values:[\\\"index\\\",\\\"value\\\"],dflt:\\\"value\\\",editType:\\\"calc\\\"},tickmode:{valType:\\\"enumerated\\\",values:[\\\"linear\\\",\\\"array\\\"],dflt:\\\"array\\\",editType:\\\"calc\\\"},nticks:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},tickvals:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},ticktext:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},showticklabels:{valType:\\\"enumerated\\\",values:[\\\"start\\\",\\\"end\\\",\\\"both\\\",\\\"none\\\"],dflt:\\\"start\\\",editType:\\\"calc\\\"},tickfont:n({editType:\\\"calc\\\"}),tickangle:{valType:\\\"angle\\\",dflt:\\\"auto\\\",editType:\\\"calc\\\"},tickprefix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},showtickprefix:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"calc\\\"},ticksuffix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},showticksuffix:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"calc\\\"},showexponent:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"calc\\\"},exponentformat:{valType:\\\"enumerated\\\",values:[\\\"none\\\",\\\"e\\\",\\\"E\\\",\\\"power\\\",\\\"SI\\\",\\\"B\\\"],dflt:\\\"B\\\",editType:\\\"calc\\\"},separatethousands:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},tickformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},tickformatstops:o(a.tickformatstops,\\\"calc\\\",\\\"from-root\\\"),categoryorder:{valType:\\\"enumerated\\\",values:[\\\"trace\\\",\\\"category ascending\\\",\\\"category descending\\\",\\\"array\\\"],dflt:\\\"trace\\\",editType:\\\"calc\\\"},categoryarray:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},labelpadding:{valType:\\\"integer\\\",dflt:10,editType:\\\"calc\\\"},labelprefix:{valType:\\\"string\\\",editType:\\\"calc\\\"},labelsuffix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},showline:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},linecolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"calc\\\"},linewidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"calc\\\"},gridcolor:{valType:\\\"color\\\",editType:\\\"calc\\\"},gridwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"calc\\\"},showgrid:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},minorgridcount:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},minorgridwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"calc\\\"},minorgridcolor:{valType:\\\"color\\\",dflt:i.lightLine,editType:\\\"calc\\\"},startline:{valType:\\\"boolean\\\",editType:\\\"calc\\\"},startlinecolor:{valType:\\\"color\\\",editType:\\\"calc\\\"},startlinewidth:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},endline:{valType:\\\"boolean\\\",editType:\\\"calc\\\"},endlinewidth:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},endlinecolor:{valType:\\\"color\\\",editType:\\\"calc\\\"},tick0:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"calc\\\"},dtick:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"calc\\\"},arraytick0:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},arraydtick:{valType:\\\"integer\\\",min:1,dflt:1,editType:\\\"calc\\\"},editType:\\\"calc\\\"}},{\\\"../../components/color/attributes\\\":569,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/cartesian/layout_attributes\\\":757,\\\"../../plots/font_attributes\\\":771}],880:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./attributes\\\"),i=t(\\\"../../components/color\\\").addOpacity,a=t(\\\"../../registry\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../plots/cartesian/tick_value_defaults\\\"),l=t(\\\"../../plots/cartesian/tick_label_defaults\\\"),c=t(\\\"../../plots/cartesian/category_order_defaults\\\"),u=t(\\\"../../plots/cartesian/set_convert\\\"),f=t(\\\"../../plots/cartesian/axis_autotype\\\");e.exports=function(t,e,r){var h=r.letter,p=r.font||{},d=n[h+\\\"axis\\\"];function g(r,n){return o.coerce(t,e,d,r,n)}function v(r,n){return o.coerce2(t,e,d,r,n)}r.name&&(e._name=r.name,e._id=r.name);var m=g(\\\"type\\\");(\\\"-\\\"===m&&(r.data&&function(t,e){if(\\\"-\\\"!==t.type)return;var r=t._id.charAt(0),n=t[r+\\\"calendar\\\"];t.type=f(e,n)}(e,r.data),\\\"-\\\"===e.type?e.type=\\\"linear\\\":m=t.type=e.type),g(\\\"smoothing\\\"),g(\\\"cheatertype\\\"),g(\\\"showticklabels\\\"),g(\\\"labelprefix\\\",h+\\\" = \\\"),g(\\\"labelsuffix\\\"),g(\\\"showtickprefix\\\"),g(\\\"showticksuffix\\\"),g(\\\"separatethousands\\\"),g(\\\"tickformat\\\"),g(\\\"exponentformat\\\"),g(\\\"showexponent\\\"),g(\\\"categoryorder\\\"),g(\\\"tickmode\\\"),g(\\\"tickvals\\\"),g(\\\"ticktext\\\"),g(\\\"tick0\\\"),g(\\\"dtick\\\"),\\\"array\\\"===e.tickmode&&(g(\\\"arraytick0\\\"),g(\\\"arraydtick\\\")),g(\\\"labelpadding\\\"),e._hovertitle=h,\\\"date\\\"===m)&&a.getComponentMethod(\\\"calendars\\\",\\\"handleDefaults\\\")(t,e,\\\"calendar\\\",r.calendar);u(e,r.fullLayout),e.c2p=o.identity;var y=g(\\\"color\\\",r.dfltColor),x=y===t.color?y:p.color;g(\\\"title\\\"),o.coerceFont(g,\\\"titlefont\\\",{family:p.family,size:Math.round(1.2*p.size),color:x}),g(\\\"titleoffset\\\"),g(\\\"tickangle\\\"),g(\\\"autorange\\\",!e.isValidRange(t.range))&&g(\\\"rangemode\\\"),g(\\\"range\\\"),e.cleanRange(),g(\\\"fixedrange\\\"),s(t,e,g,m),l(t,e,g,m,r),c(t,e,g,{data:r.data,dataAttr:h});var b=v(\\\"gridcolor\\\",i(y,.3)),_=v(\\\"gridwidth\\\"),w=g(\\\"showgrid\\\");w||(delete e.gridcolor,delete e.gridwidth);var k=v(\\\"startlinecolor\\\",y),M=v(\\\"startlinewidth\\\",_);g(\\\"startline\\\",e.showgrid||!!k||!!M)||(delete e.startlinecolor,delete e.startlinewidth);var A=v(\\\"endlinecolor\\\",y),T=v(\\\"endlinewidth\\\",_);return g(\\\"endline\\\",e.showgrid||!!A||!!T)||(delete e.endlinecolor,delete e.endlinewidth),w?(g(\\\"minorgridcount\\\"),g(\\\"minorgridwidth\\\",_),g(\\\"minorgridcolor\\\",i(b,.06)),e.minorgridcount||(delete e.minorgridwidth,delete e.minorgridcolor)):(delete e.gridcolor,delete e.gridWidth),\\\"none\\\"===e.showticklabels&&(delete e.tickfont,delete e.tickangle,delete e.showexponent,delete e.exponentformat,delete e.tickformat,delete e.showticksuffix,delete e.showtickprefix),e.showticksuffix||delete e.ticksuffix,e.showtickprefix||delete e.tickprefix,g(\\\"tickmode\\\"),(!e.title||e.title&&0===e.title.length)&&(delete e.titlefont,delete e.titleoffset),e}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axis_autotype\\\":745,\\\"../../plots/cartesian/category_order_defaults\\\":748,\\\"../../plots/cartesian/set_convert\\\":763,\\\"../../plots/cartesian/tick_label_defaults\\\":764,\\\"../../plots/cartesian/tick_value_defaults\\\":766,\\\"../../registry\\\":827,\\\"./attributes\\\":877}],881:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\").isArray1D,a=t(\\\"./cheater_basis\\\"),o=t(\\\"./array_minmax\\\"),s=t(\\\"./calc_gridlines\\\"),l=t(\\\"./calc_labels\\\"),c=t(\\\"./calc_clippath\\\"),u=t(\\\"../heatmap/clean_2d_array\\\"),f=t(\\\"./smooth_fill_2d_array\\\"),h=t(\\\"../heatmap/convert_column_xyz\\\"),p=t(\\\"./set_convert\\\");e.exports=function(t,e){var r=n.getFromId(t,e.xaxis),d=n.getFromId(t,e.yaxis),g=e.aaxis,v=e.baxis,m=e.x,y=e.y,x=[];m&&i(m)&&x.push(\\\"x\\\"),y&&i(y)&&x.push(\\\"y\\\"),x.length&&h(e,g,v,\\\"a\\\",\\\"b\\\",x);var b=e._a=e._a||e.a,_=e._b=e._b||e.b;m=e._x||e.x,y=e._y||e.y;var w={};if(e._cheater){var k=\\\"index\\\"===g.cheatertype?b.length:b,M=\\\"index\\\"===v.cheatertype?_.length:_;m=a(k,M,e.cheaterslope)}e._x=m=u(m),e._y=y=u(y),f(m,b,_),f(y,b,_),p(e),e.setScale();var A=o(m),T=o(y),S=.5*(A[1]-A[0]),E=.5*(A[1]+A[0]),C=.5*(T[1]-T[0]),L=.5*(T[1]+T[0]);return A=[E-1.3*S,E+1.3*S],T=[L-1.3*C,L+1.3*C],e._extremes[r._id]=n.findExtremes(r,A,{padded:!0}),e._extremes[d._id]=n.findExtremes(d,T,{padded:!0}),s(e,\\\"a\\\",\\\"b\\\"),s(e,\\\"b\\\",\\\"a\\\"),l(e,g),l(e,v),w.clipsegments=c(e._xctrl,e._yctrl,g,v),w.x=m,w.y=y,w.a=b,w.b=_,[w]}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../heatmap/clean_2d_array\\\":947,\\\"../heatmap/convert_column_xyz\\\":949,\\\"./array_minmax\\\":876,\\\"./calc_clippath\\\":882,\\\"./calc_gridlines\\\":883,\\\"./calc_labels\\\":884,\\\"./cheater_basis\\\":886,\\\"./set_convert\\\":899,\\\"./smooth_fill_2d_array\\\":900}],882:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i,a,o,s=[],l=!!r.smoothing,c=!!n.smoothing,u=t[0].length-1,f=t.length-1;for(i=0,a=[],o=[];i<=u;i++)a[i]=t[0][i],o[i]=e[0][i];for(s.push({x:a,y:o,bicubic:l}),i=0,a=[],o=[];i<=f;i++)a[i]=t[i][u],o[i]=e[i][u];for(s.push({x:a,y:o,bicubic:c}),i=u,a=[],o=[];i>=0;i--)a[u-i]=t[f][i],o[u-i]=e[f][i];for(s.push({x:a,y:o,bicubic:l}),i=f,a=[],o=[];i>=0;i--)a[f-i]=t[i][0],o[f-i]=e[i][0];return s.push({x:a,y:o,bicubic:c}),s}},{}],883:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib/extend\\\").extendFlat;e.exports=function(t,e,r){var a,o,s,l,c,u,f,h,p,d,g,v,m,y,x=t[\\\"_\\\"+e],b=t[e+\\\"axis\\\"],_=b._gridlines=[],w=b._minorgridlines=[],k=b._boundarylines=[],M=t[\\\"_\\\"+r],A=t[r+\\\"axis\\\"];\\\"array\\\"===b.tickmode&&(b.tickvals=x.slice());var T=t._xctrl,S=t._yctrl,E=T[0].length,C=T.length,L=t._a.length,z=t._b.length;n.prepTicks(b),\\\"array\\\"===b.tickmode&&delete b.tickvals;var O=b.smoothing?3:1;function I(n){var i,a,o,s,l,c,u,f,p,d,g,v,m=[],y=[],x={};if(\\\"b\\\"===e)for(a=t.b2j(n),o=Math.floor(Math.max(0,Math.min(z-2,a))),s=a-o,x.length=z,x.crossLength=L,x.xy=function(e){return t.evalxy([],e,a)},x.dxy=function(e,r){return t.dxydi([],e,o,r,s)},i=0;i<L;i++)c=Math.min(L-2,i),u=i-c,f=t.evalxy([],i,a),A.smoothing&&i>0&&(p=t.dxydi([],i-1,o,0,s),m.push(l[0]+p[0]/3),y.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),m.push(f[0]-d[0]/3),y.push(f[1]-d[1]/3)),m.push(f[0]),y.push(f[1]),l=f;else for(i=t.a2i(n),c=Math.floor(Math.max(0,Math.min(L-2,i))),u=i-c,x.length=L,x.crossLength=z,x.xy=function(e){return t.evalxy([],i,e)},x.dxy=function(e,r){return t.dxydj([],c,e,u,r)},a=0;a<z;a++)o=Math.min(z-2,a),s=a-o,f=t.evalxy([],i,a),A.smoothing&&a>0&&(g=t.dxydj([],c,a-1,u,0),m.push(l[0]+g[0]/3),y.push(l[1]+g[1]/3),v=t.dxydj([],c,a-1,u,1),m.push(f[0]-v[0]/3),y.push(f[1]-v[1]/3)),m.push(f[0]),y.push(f[1]),l=f;return x.axisLetter=e,x.axis=b,x.crossAxis=A,x.value=n,x.constvar=r,x.index=h,x.x=m,x.y=y,x.smoothing=A.smoothing,x}function P(n){var i,a,o,s,l,c=[],u=[],f={};if(f.length=x.length,f.crossLength=M.length,\\\"b\\\"===e)for(o=Math.max(0,Math.min(z-2,n)),l=Math.min(1,Math.max(0,n-o)),f.xy=function(e){return t.evalxy([],e,n)},f.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;i<E;i++)c[i]=T[n*O][i],u[i]=S[n*O][i];else for(a=Math.max(0,Math.min(L-2,n)),s=Math.min(1,Math.max(0,n-a)),f.xy=function(e){return t.evalxy([],n,e)},f.dxy=function(e,r){return t.dxydj([],a,e,s,r)},i=0;i<C;i++)c[i]=T[i][n*O],u[i]=S[i][n*O];return f.axisLetter=e,f.axis=b,f.crossAxis=A,f.value=x[n],f.constvar=r,f.index=n,f.x=c,f.y=u,f.smoothing=A.smoothing,f}if(\\\"array\\\"===b.tickmode){for(l=5e-15,u=(c=[Math.floor((x.length-1-b.arraytick0)/b.arraydtick*(1+l)),Math.ceil(-b.arraytick0/b.arraydtick/(1+l))].sort(function(t,e){return t-e}))[0]-1,f=c[1]+1,h=u;h<f;h++)(o=b.arraytick0+b.arraydtick*h)<0||o>x.length-1||_.push(i(P(o),{color:b.gridcolor,width:b.gridwidth}));for(h=u;h<f;h++)if(s=b.arraytick0+b.arraydtick*h,g=Math.min(s+b.arraydtick,x.length-1),!(s<0||s>x.length-1||g<0||g>x.length-1))for(v=x[s],m=x[g],a=0;a<b.minorgridcount;a++)(y=g-s)<=0||(d=v+(m-v)*(a+1)/(b.minorgridcount+1)*(b.arraydtick/y))<x[0]||d>x[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&k.push(i(P(0),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&k.push(i(P(x.length-1),{color:b.endlinecolor,width:b.endlinewidth}))}else{for(l=5e-15,u=(c=[Math.floor((x[x.length-1]-b.tick0)/b.dtick*(1+l)),Math.ceil((x[0]-b.tick0)/b.dtick/(1+l))].sort(function(t,e){return t-e}))[0],f=c[1],h=u;h<=f;h++)p=b.tick0+b.dtick*h,_.push(i(I(p),{color:b.gridcolor,width:b.gridwidth}));for(h=u-1;h<f+1;h++)for(p=b.tick0+b.dtick*h,a=0;a<b.minorgridcount;a++)(d=p+b.dtick*(a+1)/(b.minorgridcount+1))<x[0]||d>x[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&k.push(i(I(x[0]),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&k.push(i(I(x[x.length-1]),{color:b.endlinecolor,width:b.endlinewidth}))}}},{\\\"../../lib/extend\\\":685,\\\"../../plots/cartesian/axes\\\":744}],884:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib/extend\\\").extendFlat;e.exports=function(t,e){var r,a,o,s=e._labels=[],l=e._gridlines;for(r=0;r<l.length;r++)o=l[r],-1!==[\\\"start\\\",\\\"both\\\"].indexOf(e.showticklabels)&&(a=n.tickText(e,o.value),i(a,{prefix:void 0,suffix:void 0,endAnchor:!0,xy:o.xy(0),dxy:o.dxy(0,0),axis:o.axis,length:o.crossAxis.length,font:o.axis.tickfont,isFirst:0===r,isLast:r===l.length-1}),s.push(a)),-1!==[\\\"end\\\",\\\"both\\\"].indexOf(e.showticklabels)&&(a=n.tickText(e,o.value),i(a,{endAnchor:!1,xy:o.xy(o.crossLength-1),dxy:o.dxy(o.crossLength-2,1),axis:o.axis,length:o.crossAxis.length,font:o.axis.tickfont,isFirst:0===r,isLast:r===l.length-1}),s.push(a))}},{\\\"../../lib/extend\\\":685,\\\"../../plots/cartesian/axes\\\":744}],885:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i=t[0]-e[0],a=t[1]-e[1],o=r[0]-e[0],s=r[1]-e[1],l=Math.pow(i*i+a*a,.25),c=Math.pow(o*o+s*s,.25),u=(c*c*i-l*l*o)*n,f=(c*c*a-l*l*s)*n,h=c*(l+c)*3,p=l*(l+c)*3;return[[e[0]+(h&&u/h),e[1]+(h&&f/h)],[e[0]-(p&&u/p),e[1]-(p&&f/p)]]}},{}],886:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r){var i,a,o,s,l,c,u=[],f=n(t)?t.length:t,h=n(e)?e.length:e,p=n(t)?t:null,d=n(e)?e:null;p&&(o=(p.length-1)/(p[p.length-1]-p[0])/(f-1)),d&&(s=(d.length-1)/(d[d.length-1]-d[0])/(h-1));var g=1/0,v=-1/0;for(a=0;a<h;a++)for(u[a]=[],l=d?(d[a]-d[0])*s:a/(h-1),i=0;i<f;i++)c=(p?(p[i]-p[0])*o:i/(f-1))-l*r,g=Math.min(c,g),v=Math.max(c,v),u[a][i]=c;var m=1/(v-g),y=-g*m;for(a=0;a<h;a++)for(i=0;i<f;i++)u[a][i]=m*u[a][i]+y;return u}},{\\\"../../lib\\\":696}],887:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./catmull_rom\\\"),i=t(\\\"../../lib\\\").ensureArray;function a(t,e,r){var n=-.5*r[0]+1.5*e[0],i=-.5*r[1]+1.5*e[1];return[(2*n+t[0])/3,(2*i+t[1])/3]}e.exports=function(t,e,r,o,s,l){var c,u,f,h,p,d,g,v,m,y,x=r[0].length,b=r.length,_=s?3*x-2:x,w=l?3*b-2:b;for(t=i(t,w),e=i(e,w),f=0;f<w;f++)t[f]=i(t[f],_),e[f]=i(e[f],_);for(u=0,h=0;u<b;u++,h+=l?3:1)for(p=t[h],d=e[h],g=r[u],v=o[u],c=0,f=0;c<x;c++,f+=s?3:1)p[f]=g[c],d[f]=v[c];if(s)for(u=0,h=0;u<b;u++,h+=l?3:1){for(c=1,f=3;c<x-1;c++,f+=3)m=n([r[u][c-1],o[u][c-1]],[r[u][c],o[u][c]],[r[u][c+1],o[u][c+1]],s),t[h][f-1]=m[0][0],e[h][f-1]=m[0][1],t[h][f+1]=m[1][0],e[h][f+1]=m[1][1];y=a([t[h][0],e[h][0]],[t[h][2],e[h][2]],[t[h][3],e[h][3]]),t[h][1]=y[0],e[h][1]=y[1],y=a([t[h][_-1],e[h][_-1]],[t[h][_-3],e[h][_-3]],[t[h][_-4],e[h][_-4]]),t[h][_-2]=y[0],e[h][_-2]=y[1]}if(l)for(f=0;f<_;f++){for(h=3;h<w-3;h+=3)m=n([t[h-3][f],e[h-3][f]],[t[h][f],e[h][f]],[t[h+3][f],e[h+3][f]],l),t[h-1][f]=m[0][0],e[h-1][f]=m[0][1],t[h+1][f]=m[1][0],e[h+1][f]=m[1][1];y=a([t[0][f],e[0][f]],[t[2][f],e[2][f]],[t[3][f],e[3][f]]),t[1][f]=y[0],e[1][f]=y[1],y=a([t[w-1][f],e[w-1][f]],[t[w-3][f],e[w-3][f]],[t[w-4][f],e[w-4][f]]),t[w-2][f]=y[0],e[w-2][f]=y[1]}if(s&&l)for(h=1;h<w;h+=(h+1)%3==0?2:1){for(f=3;f<_-3;f+=3)m=n([t[h][f-3],e[h][f-3]],[t[h][f],e[h][f]],[t[h][f+3],e[h][f+3]],s),t[h][f-1]=.5*(t[h][f-1]+m[0][0]),e[h][f-1]=.5*(e[h][f-1]+m[0][1]),t[h][f+1]=.5*(t[h][f+1]+m[1][0]),e[h][f+1]=.5*(e[h][f+1]+m[1][1]);y=a([t[h][0],e[h][0]],[t[h][2],e[h][2]],[t[h][3],e[h][3]]),t[h][1]=.5*(t[h][1]+y[0]),e[h][1]=.5*(e[h][1]+y[1]),y=a([t[h][_-1],e[h][_-1]],[t[h][_-3],e[h][_-3]],[t[h][_-4],e[h][_-4]]),t[h][_-2]=.5*(t[h][_-2]+y[0]),e[h][_-2]=.5*(e[h][_-2]+y[1])}return[t,e]}},{\\\"../../lib\\\":696,\\\"./catmull_rom\\\":885}],888:[function(t,e,r){\\\"use strict\\\";e.exports={RELATIVE_CULL_TOLERANCE:1e-6}},{}],889:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){return e&&r?function(e,r,n,i,a){var o,s,l,c,u,f;e||(e=[]),r*=3,n*=3;var h=i*i,p=1-i,d=p*p,g=p*i*2,v=-3*d,m=3*(d-g),y=3*(g-h),x=3*h,b=a*a,_=b*a,w=1-a,k=w*w,M=k*w;for(f=0;f<t.length;f++)o=v*(u=t[f])[n][r]+m*u[n][r+1]+y*u[n][r+2]+x*u[n][r+3],s=v*u[n+1][r]+m*u[n+1][r+1]+y*u[n+1][r+2]+x*u[n+1][r+3],l=v*u[n+2][r]+m*u[n+2][r+1]+y*u[n+2][r+2]+x*u[n+2][r+3],c=v*u[n+3][r]+m*u[n+3][r+1]+y*u[n+3][r+2]+x*u[n+3][r+3],e[f]=M*o+3*(k*a*s+w*b*l)+_*c;return e}:e?function(e,r,n,i,a){var o,s,l,c;e||(e=[]),r*=3;var u=i*i,f=1-i,h=f*f,p=f*i*2,d=-3*h,g=3*(h-p),v=3*(p-u),m=3*u,y=1-a;for(l=0;l<t.length;l++)o=d*(c=t[l])[n][r]+g*c[n][r+1]+v*c[n][r+2]+m*c[n][r+3],s=d*c[n+1][r]+g*c[n+1][r+1]+v*c[n+1][r+2]+m*c[n+1][r+3],e[l]=y*o+a*s;return e}:r?function(e,r,n,i,a){var o,s,l,c,u,f;e||(e=[]),n*=3;var h=a*a,p=h*a,d=1-a,g=d*d,v=g*d;for(u=0;u<t.length;u++)o=(f=t[u])[n][r+1]-f[n][r],s=f[n+1][r+1]-f[n+1][r],l=f[n+2][r+1]-f[n+2][r],c=f[n+3][r+1]-f[n+3][r],e[u]=v*o+3*(g*a*s+d*h*l)+p*c;return e}:function(e,r,n,i,a){var o,s,l,c;e||(e=[]);var u=1-a;for(l=0;l<t.length;l++)o=(c=t[l])[n][r+1]-c[n][r],s=c[n+1][r+1]-c[n+1][r],e[l]=u*o+a*s;return e}}},{}],890:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){return e&&r?function(e,r,n,i,a){var o,s,l,c,u,f;e||(e=[]),r*=3,n*=3;var h=i*i,p=h*i,d=1-i,g=d*d,v=g*d,m=a*a,y=1-a,x=y*y,b=y*a*2,_=-3*x,w=3*(x-b),k=3*(b-m),M=3*m;for(f=0;f<t.length;f++)o=_*(u=t[f])[n][r]+w*u[n+1][r]+k*u[n+2][r]+M*u[n+3][r],s=_*u[n][r+1]+w*u[n+1][r+1]+k*u[n+2][r+1]+M*u[n+3][r+1],l=_*u[n][r+2]+w*u[n+1][r+2]+k*u[n+2][r+2]+M*u[n+3][r+2],c=_*u[n][r+3]+w*u[n+1][r+3]+k*u[n+2][r+3]+M*u[n+3][r+3],e[f]=v*o+3*(g*i*s+d*h*l)+p*c;return e}:e?function(e,r,n,i,a){var o,s,l,c,u,f;e||(e=[]),r*=3;var h=a*a,p=h*a,d=1-a,g=d*d,v=g*d;for(u=0;u<t.length;u++)o=(f=t[u])[n+1][r]-f[n][r],s=f[n+1][r+1]-f[n][r+1],l=f[n+1][r+2]-f[n][r+2],c=f[n+1][r+3]-f[n][r+3],e[u]=v*o+3*(g*a*s+d*h*l)+p*c;return e}:r?function(e,r,n,i,a){var o,s,l,c;e||(e=[]),n*=3;var u=1-i,f=a*a,h=1-a,p=h*h,d=h*a*2,g=-3*p,v=3*(p-d),m=3*(d-f),y=3*f;for(l=0;l<t.length;l++)o=g*(c=t[l])[n][r]+v*c[n+1][r]+m*c[n+2][r]+y*c[n+3][r],s=g*c[n][r+1]+v*c[n+1][r+1]+m*c[n+2][r+1]+y*c[n+3][r+1],e[l]=u*o+i*s;return e}:function(e,r,n,i,a){var o,s,l,c;e||(e=[]);var u=1-i;for(l=0;l<t.length;l++)o=(c=t[l])[n+1][r]-c[n][r],s=c[n+1][r+1]-c[n][r+1],e[l]=u*o+i*s;return e}}},{}],891:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){var a=e-2,o=r-2;return n&&i?function(e,r,n){var i,s,l,c,u,f;e||(e=[]);var h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),g=Math.max(0,Math.min(1,n-p));h*=3,p*=3;var v=d*d,m=v*d,y=1-d,x=y*y,b=x*y,_=g*g,w=_*g,k=1-g,M=k*k,A=M*k;for(f=0;f<t.length;f++)i=b*(u=t[f])[p][h]+3*(x*d*u[p][h+1]+y*v*u[p][h+2])+m*u[p][h+3],s=b*u[p+1][h]+3*(x*d*u[p+1][h+1]+y*v*u[p+1][h+2])+m*u[p+1][h+3],l=b*u[p+2][h]+3*(x*d*u[p+2][h+1]+y*v*u[p+2][h+2])+m*u[p+2][h+3],c=b*u[p+3][h]+3*(x*d*u[p+3][h+1]+y*v*u[p+3][h+2])+m*u[p+3][h+3],e[f]=A*i+3*(M*g*s+k*_*l)+w*c;return e}:n?function(e,r,n){e||(e=[]);var i,s,l,c,u,f,h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),g=Math.max(0,Math.min(1,n-p));h*=3;var v=d*d,m=v*d,y=1-d,x=y*y,b=x*y,_=1-g;for(u=0;u<t.length;u++)i=_*(f=t[u])[p][h]+g*f[p+1][h],s=_*f[p][h+1]+g*f[p+1][h+1],l=_*f[p][h+2]+g*f[p+1][h+1],c=_*f[p][h+3]+g*f[p+1][h+1],e[u]=b*i+3*(x*d*s+y*v*l)+m*c;return e}:i?function(e,r,n){e||(e=[]);var i,s,l,c,u,f,h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),g=Math.max(0,Math.min(1,n-p));p*=3;var v=g*g,m=v*g,y=1-g,x=y*y,b=x*y,_=1-d;for(u=0;u<t.length;u++)i=_*(f=t[u])[p][h]+d*f[p][h+1],s=_*f[p+1][h]+d*f[p+1][h+1],l=_*f[p+2][h]+d*f[p+2][h+1],c=_*f[p+3][h]+d*f[p+3][h+1],e[u]=b*i+3*(x*g*s+y*v*l)+m*c;return e}:function(e,r,n){e||(e=[]);var i,s,l,c,u=Math.max(0,Math.min(Math.floor(r),a)),f=Math.max(0,Math.min(Math.floor(n),o)),h=Math.max(0,Math.min(1,r-u)),p=Math.max(0,Math.min(1,n-f)),d=1-p,g=1-h;for(l=0;l<t.length;l++)i=g*(c=t[l])[f][u]+h*c[f][u+1],s=g*c[f+1][u]+h*c[f+1][u+1],e[l]=d*i+p*s;return e}}},{}],892:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./xy_defaults\\\"),a=t(\\\"./ab_defaults\\\"),o=t(\\\"./attributes\\\"),s=t(\\\"../../components/color/attributes\\\");e.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,o,r,i)}e._clipPathId=\\\"clip\\\"+e.uid+\\\"carpet\\\";var u=c(\\\"color\\\",s.defaultLine);(n.coerceFont(c,\\\"font\\\"),c(\\\"carpet\\\"),a(t,e,l,c,u),e.a&&e.b)?(e.a.length<3&&(e.aaxis.smoothing=0),e.b.length<3&&(e.baxis.smoothing=0),i(t,e,c)||(e.visible=!1),e._cheater&&c(\\\"cheaterslope\\\")):e.visible=!1}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib\\\":696,\\\"./ab_defaults\\\":875,\\\"./attributes\\\":877,\\\"./xy_defaults\\\":901}],893:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.plot=t(\\\"./plot\\\"),n.calc=t(\\\"./calc\\\"),n.animatable=!0,n.isContainer=!0,n.moduleType=\\\"trace\\\",n.name=\\\"carpet\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"carpet\\\",\\\"carpetAxis\\\",\\\"notLegendIsolatable\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":877,\\\"./calc\\\":881,\\\"./defaults\\\":892,\\\"./plot\\\":898}],894:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r,n=t._fullData.length,i=0;i<n;i++){var a=t._fullData[i];if(a.index!==e.index&&(\\\"carpet\\\"===a.type&&(r||(r=a),a.carpet===e.carpet)))return a}return r}},{}],895:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){if(0===t.length)return\\\"\\\";var n,i=[],a=r?3:1;for(n=0;n<t.length;n+=a)i.push(t[n]+\\\",\\\"+e[n]),r&&n<t.length-a&&(i.push(\\\"C\\\"),i.push([t[n+1]+\\\",\\\"+e[n+1],t[n+2]+\\\",\\\"+e[n+2]+\\\" \\\"].join(\\\" \\\")));return i.join(r?\\\"\\\":\\\"L\\\")}},{}],896:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r){var i;for(n(t)?t.length>e.length&&(t=t.slice(0,e.length)):t=[],i=0;i<e.length;i++)t[i]=r(e[i]);return t}},{\\\"../../lib\\\":696}],897:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i,a){var o=i[0]*t.dpdx(e),s=i[1]*t.dpdy(r),l=1,c=1;if(a){var u=Math.sqrt(i[0]*i[0]+i[1]*i[1]),f=Math.sqrt(a[0]*a[0]+a[1]*a[1]),h=(i[0]*a[0]+i[1]*a[1])/u/f;c=Math.max(0,h)}var p=180*Math.atan2(s,o)/Math.PI;return p<-90?(p+=180,l=-l):p>90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:c}}},{}],898:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"./map_1d_array\\\"),o=t(\\\"./makepath\\\"),s=t(\\\"./orient_text\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../constants/alignment\\\");function f(t,e,r,i,s,l){var c=\\\"const-\\\"+s+\\\"-lines\\\",u=r.selectAll(\\\".\\\"+c).data(l);u.enter().append(\\\"path\\\").classed(c,!0).style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\"),u.each(function(r){var i=r,s=i.x,l=i.y,c=a([],s,t.c2p),u=a([],l,e.c2p),f=\\\"M\\\"+o(c,u,i.smoothing);n.select(this).attr(\\\"d\\\",f).style(\\\"stroke-width\\\",i.width).style(\\\"stroke\\\",i.color).style(\\\"fill\\\",\\\"none\\\")}),u.exit().remove()}function h(t,e,r,a,o,c,u,f){var h=c.selectAll(\\\"text.\\\"+f).data(u);h.enter().append(\\\"text\\\").classed(f,!0);var p=0,d={};return h.each(function(o,c){var u;if(\\\"auto\\\"===o.axis.tickangle)u=s(a,e,r,o.xy,o.dxy);else{var f=(o.axis.tickangle+180)*Math.PI/180;u=s(a,e,r,o.xy,[Math.cos(f),Math.sin(f)])}c||(d={angle:u.angle,flip:u.flip});var h=(o.endAnchor?-1:1)*u.flip,g=n.select(this).attr({\\\"text-anchor\\\":h>0?\\\"start\\\":\\\"end\\\",\\\"data-notex\\\":1}).call(i.font,o.font).text(o.text).call(l.convertToTspans,t),v=i.bBox(this);g.attr(\\\"transform\\\",\\\"translate(\\\"+u.p[0]+\\\",\\\"+u.p[1]+\\\") rotate(\\\"+u.angle+\\\")translate(\\\"+o.axis.labelpadding*h+\\\",\\\"+.3*v.height+\\\")\\\"),p=Math.max(p,v.width+o.axis.labelpadding)}),h.exit().remove(),d.maxExtent=p,d}e.exports=function(t,e,r,i){var l=e.xaxis,u=e.yaxis,p=t._fullLayout._clips;c.makeTraceGroups(i,r,\\\"trace\\\").each(function(e){var r=n.select(this),i=e[0],d=i.trace,v=d.aaxis,m=d.baxis,y=c.ensureSingle(r,\\\"g\\\",\\\"minorlayer\\\"),x=c.ensureSingle(r,\\\"g\\\",\\\"majorlayer\\\"),b=c.ensureSingle(r,\\\"g\\\",\\\"boundarylayer\\\"),_=c.ensureSingle(r,\\\"g\\\",\\\"labellayer\\\");r.style(\\\"opacity\\\",d.opacity),f(l,u,x,v,\\\"a\\\",v._gridlines),f(l,u,x,m,\\\"b\\\",m._gridlines),f(l,u,y,v,\\\"a\\\",v._minorgridlines),f(l,u,y,m,\\\"b\\\",m._minorgridlines),f(l,u,b,v,\\\"a-boundary\\\",v._boundarylines),f(l,u,b,m,\\\"b-boundary\\\",m._boundarylines);var w=h(t,l,u,d,i,_,v._labels,\\\"a-label\\\"),k=h(t,l,u,d,i,_,m._labels,\\\"b-label\\\");!function(t,e,r,n,i,a,o,l){var u,f,h,p;u=.5*(r.a[0]+r.a[r.a.length-1]),f=r.b[0],h=r.ab2xy(u,f,!0),p=r.dxyda_rough(u,f),void 0===o.angle&&c.extendFlat(o,s(r,i,a,h,r.dxydb_rough(u,f)));g(t,e,r,n,h,p,r.aaxis,i,a,o,\\\"a-title\\\"),u=r.a[0],f=.5*(r.b[0]+r.b[r.b.length-1]),h=r.ab2xy(u,f,!0),p=r.dxydb_rough(u,f),void 0===l.angle&&c.extendFlat(l,s(r,i,a,h,r.dxyda_rough(u,f)));g(t,e,r,n,h,p,r.baxis,i,a,l,\\\"b-title\\\")}(t,_,d,i,l,u,w,k),function(t,e,r,n,i){var s,l,u,f,h=r.select(\\\"#\\\"+t._clipPathId);h.size()||(h=r.append(\\\"clipPath\\\").classed(\\\"carpetclip\\\",!0));var p=c.ensureSingle(h,\\\"path\\\",\\\"carpetboundary\\\"),d=e.clipsegments,g=[];for(f=0;f<d.length;f++)s=d[f],l=a([],s.x,n.c2p),u=a([],s.y,i.c2p),g.push(o(l,u,s.bicubic));var v=\\\"M\\\"+g.join(\\\"L\\\")+\\\"Z\\\";h.attr(\\\"id\\\",t._clipPathId),p.attr(\\\"d\\\",v)}(d,i,p,l,u)})};var p=u.LINE_SPACING,d=(1-u.MID_SHIFT)/p+1;function g(t,e,r,a,o,c,u,f,h,g,v){var m=[];u.title&&m.push(u.title);var y=e.selectAll(\\\"text.\\\"+v).data(m),x=g.maxExtent;y.enter().append(\\\"text\\\").classed(v,!0),y.each(function(){var e=s(r,f,h,o,c);-1===[\\\"start\\\",\\\"both\\\"].indexOf(u.showticklabels)&&(x=0);var a=u.titlefont.size;x+=a+u.titleoffset;var v=(g.angle+(g.flip<0?180:0)-e.angle+450)%360,m=v>90&&v<270,y=n.select(this);y.text(u.title||\\\"\\\").call(l.convertToTspans,t),m&&(x=(-l.lineCount(y)+d)*p*a-x),y.attr(\\\"transform\\\",\\\"translate(\\\"+e.p[0]+\\\",\\\"+e.p[1]+\\\") rotate(\\\"+e.angle+\\\") translate(0,\\\"+x+\\\")\\\").classed(\\\"user-select-none\\\",!0).attr(\\\"text-anchor\\\",\\\"middle\\\").call(i.font,u.titlefont)}),y.exit().remove()}},{\\\"../../components/drawing\\\":595,\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"./makepath\\\":895,\\\"./map_1d_array\\\":896,\\\"./orient_text\\\":897,d3:148}],899:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"../../lib/search\\\").findBin,a=t(\\\"./compute_control_points\\\"),o=t(\\\"./create_spline_evaluator\\\"),s=t(\\\"./create_i_derivative_evaluator\\\"),l=t(\\\"./create_j_derivative_evaluator\\\");e.exports=function(t){var e=t._a,r=t._b,c=e.length,u=r.length,f=t.aaxis,h=t.baxis,p=e[0],d=e[c-1],g=r[0],v=r[u-1],m=e[e.length-1]-e[0],y=r[r.length-1]-r[0],x=m*n.RELATIVE_CULL_TOLERANCE,b=y*n.RELATIVE_CULL_TOLERANCE;p-=x,d+=x,g-=b,v+=b,t.isVisible=function(t,e){return t>p&&t<d&&e>g&&e<v},t.isOccluded=function(t,e){return t<p||t>d||e<g||e>v},t.setScale=function(){var e=t._x,r=t._y,n=a(t._xctrl,t._yctrl,e,r,f.smoothing,h.smoothing);t._xctrl=n[0],t._yctrl=n[1],t.evalxy=o([t._xctrl,t._yctrl],c,u,f.smoothing,h.smoothing),t.dxydi=s([t._xctrl,t._yctrl],f.smoothing,h.smoothing),t.dxydj=l([t._xctrl,t._yctrl],f.smoothing,h.smoothing)},t.i2a=function(t){var r=Math.max(0,Math.floor(t[0]),c-2),n=t[0]-r;return(1-n)*e[r]+n*e[r+1]},t.j2b=function(t){var e=Math.max(0,Math.floor(t[1]),c-2),n=t[1]-e;return(1-n)*r[e]+n*r[e+1]},t.ij2ab=function(e){return[t.i2a(e[0]),t.j2b(e[1])]},t.a2i=function(t){var r=Math.max(0,Math.min(i(t,e),c-2)),n=e[r],a=e[r+1];return Math.max(0,Math.min(c-1,r+(t-n)/(a-n)))},t.b2j=function(t){var e=Math.max(0,Math.min(i(t,r),u-2)),n=r[e],a=r[e+1];return Math.max(0,Math.min(u-1,e+(t-n)/(a-n)))},t.ab2ij=function(e){return[t.a2i(e[0]),t.b2j(e[1])]},t.i2c=function(e,r){return t.evalxy([],e,r)},t.ab2xy=function(n,i,a){if(!a&&(n<e[0]||n>e[c-1]|i<r[0]||i>r[u-1]))return[!1,!1];var o=t.a2i(n),s=t.b2j(i),l=t.evalxy([],o,s);if(a){var f,h,p,d,g=0,v=0,m=[];n<e[0]?(f=0,h=0,g=(n-e[0])/(e[1]-e[0])):n>e[c-1]?(f=c-2,h=1,g=(n-e[c-1])/(e[c-1]-e[c-2])):h=o-(f=Math.max(0,Math.min(c-2,Math.floor(o)))),i<r[0]?(p=0,d=0,v=(i-r[0])/(r[1]-r[0])):i>r[u-1]?(p=u-2,d=1,v=(i-r[u-1])/(r[u-1]-r[u-2])):d=s-(p=Math.max(0,Math.min(u-2,Math.floor(s)))),g&&(t.dxydi(m,f,p,h,d),l[0]+=m[0]*g,l[1]+=m[1]*g),v&&(t.dxydj(m,f,p,h,d),l[0]+=m[0]*v,l[1]+=m[1]*v)}return l},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=m*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=y*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}}},{\\\"../../lib/search\\\":715,\\\"./compute_control_points\\\":887,\\\"./constants\\\":888,\\\"./create_i_derivative_evaluator\\\":889,\\\"./create_j_derivative_evaluator\\\":890,\\\"./create_spline_evaluator\\\":891}],900:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e,r){var i,a,o,s=[],l=[],c=t[0].length,u=t.length;function f(e,r){var n,i=0,a=0;return e>0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e<c-1&&void 0!==(n=t[r][e+1])&&(a++,i+=n),r>0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r<u-1&&void 0!==(n=t[r+1][e])&&(a++,i+=n),i/Math.max(1,a)}var h,p,d,g,v,m,y,x,b,_,w,k=0;for(i=0;i<c;i++)for(a=0;a<u;a++)void 0===t[a][i]&&(s.push(i),l.push(a),t[a][i]=f(i,a)),k=Math.max(k,Math.abs(t[a][i]));if(!s.length)return t;var M=0,A=0,T=s.length;do{for(M=0,o=0;o<T;o++){i=s[o],a=l[o];var S,E,C,L,z,O,I=0,P=0;0===i?(C=e[z=Math.min(c-1,2)],L=e[1],S=t[a][z],P+=(E=t[a][1])+(E-S)*(e[0]-L)/(L-C),I++):i===c-1&&(C=e[z=Math.max(0,c-3)],L=e[c-2],S=t[a][z],P+=(E=t[a][c-2])+(E-S)*(e[c-1]-L)/(L-C),I++),(0===i||i===c-1)&&a>0&&a<u-1&&(h=r[a+1]-r[a],P+=((p=r[a]-r[a-1])*t[a+1][i]+h*t[a-1][i])/(p+h),I++),0===a?(C=r[O=Math.min(u-1,2)],L=r[1],S=t[O][i],P+=(E=t[1][i])+(E-S)*(r[0]-L)/(L-C),I++):a===u-1&&(C=r[O=Math.max(0,u-3)],L=r[u-2],S=t[O][i],P+=(E=t[u-2][i])+(E-S)*(r[u-1]-L)/(L-C),I++),(0===a||a===u-1)&&i>0&&i<c-1&&(h=e[i+1]-e[i],P+=((p=e[i]-e[i-1])*t[a][i+1]+h*t[a][i-1])/(p+h),I++),I?P/=I:(d=e[i+1]-e[i],g=e[i]-e[i-1],x=(v=r[a+1]-r[a])*(m=r[a]-r[a-1])*(v+m),P=((y=d*g*(d+g))*(m*t[a+1][i]+v*t[a-1][i])+x*(g*t[a][i+1]+d*t[a][i-1]))/(x*(g+d)+y*(m+v))),M+=(_=(b=P-t[a][i])/k)*_,w=I?0:.85,t[a][i]+=b*(1+w)}M=Math.sqrt(M)}while(A++<100&&M>1e-5);return n.log(\\\"Smoother converged to\\\",M,\\\"after\\\",A,\\\"iterations\\\"),t}},{\\\"../../lib\\\":696}],901:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArray1D;e.exports=function(t,e,r){var i=r(\\\"x\\\"),a=i&&i.length,o=r(\\\"y\\\"),s=o&&o.length;if(!a&&!s)return!1;if(e._cheater=!i,a&&!n(i)||s&&!n(o))e._length=null;else{var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),e.a&&e.a.length&&(l=Math.min(l,e.a.length)),e.b&&e.b.length&&(l=Math.min(l,e.b.length)),e._length=l}return!0}},{\\\"../../lib\\\":696}],902:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scattergeo/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat,l=n.marker.line;e.exports=s({locations:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},locationmode:n.locationmode,z:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},text:s({},n.text,{}),marker:{line:{color:l.color,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:n.selected.marker.opacity,editType:\\\"plot\\\"},editType:\\\"plot\\\"},unselected:{marker:{opacity:n.unselected.marker.opacity,editType:\\\"plot\\\"},editType:\\\"plot\\\"},hoverinfo:s({},o.hoverinfo,{editType:\\\"calc\\\",flags:[\\\"location\\\",\\\"z\\\",\\\"text\\\",\\\"name\\\"]})},i(\\\"\\\",{cLetter:\\\"z\\\",editTypeOverride:\\\"calc\\\"}),{colorbar:a})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../scattergeo/attributes\\\":1083}],903:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM,a=t(\\\"../../components/colorscale/calc\\\"),o=t(\\\"../scatter/arrays_to_calcdata\\\"),s=t(\\\"../scatter/calc_selection\\\");e.exports=function(t,e){for(var r=e._length,l=new Array(r),c=0;c<r;c++){var u=l[c]={},f=e.locations[c],h=e.z[c];u.loc=\\\"string\\\"==typeof f?f:null,u.z=n(h)?h:i}return o(l,e),a(e,e.z,\\\"\\\",\\\"z\\\"),s(l,e),l}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../constants/numerical\\\":673,\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc_selection\\\":1045,\\\"fast-isnumeric\\\":214}],904:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/defaults\\\"),a=t(\\\"./attributes\\\");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s(\\\"locations\\\"),c=s(\\\"z\\\");l&&l.length&&n.isArrayOrTypedArray(c)&&c.length?(e._length=Math.min(l.length,c.length),s(\\\"locationmode\\\"),s(\\\"text\\\"),s(\\\"marker.line.color\\\"),s(\\\"marker.line.width\\\"),s(\\\"marker.opacity\\\"),i(t,e,o,s,{prefix:\\\"\\\",cLetter:\\\"z\\\"}),n.coerceSelectionMarkerOpacity(e,s)):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"./attributes\\\":902}],905:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return t.location=e.location,t.z=e.z,t}},{}],906:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"../scatter/fill_hover_text\\\");e.exports=function(t,e,r){var o,s,l,c,u=t.cd,f=u[0].trace,h=t.subplot;for(s=0;s<u.length;s++)if(c=!1,(o=u[s])._polygons){for(l=0;l<o._polygons.length;l++)o._polygons[l].contains([e,r])&&(c=!c),o._polygons[l].contains([e+360,r])&&(c=!c);if(c)break}if(c&&o)return t.x0=t.x1=t.xa.c2p(o.ct),t.y0=t.y1=t.ya.c2p(o.ct),t.index=o.index,t.location=o.loc,t.z=o.z,function(t,e,r,o){var s=r.hi||e.hoverinfo,l=\\\"all\\\"===s?i.hoverinfo.flags:s.split(\\\"+\\\"),c=-1!==l.indexOf(\\\"name\\\"),u=-1!==l.indexOf(\\\"location\\\"),f=-1!==l.indexOf(\\\"z\\\"),h=-1!==l.indexOf(\\\"text\\\"),p=[];!c&&u?t.nameOverride=r.loc:(c&&(t.nameOverride=e.name),u&&p.push(r.loc));f&&p.push((d=r.z,n.tickText(o,o.c2l(d),\\\"hover\\\").text));var d;h&&a(r,e,p);t.extraText=p.join(\\\"<br>\\\")}(t,f,o,h.mockAxis),[t]}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/fill_hover_text\\\":1051,\\\"./attributes\\\":902}],907:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../heatmap/colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"./style\\\").style,n.styleOnSelect=t(\\\"./style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.eventData=t(\\\"./event_data\\\"),n.selectPoints=t(\\\"./select\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"choropleth\\\",n.basePlotModule=t(\\\"../../plots/geo\\\"),n.categories=[\\\"geo\\\",\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"../../plots/geo\\\":775,\\\"../heatmap/colorbar\\\":948,\\\"./attributes\\\":902,\\\"./calc\\\":903,\\\"./defaults\\\":904,\\\"./event_data\\\":905,\\\"./hover\\\":906,\\\"./plot\\\":908,\\\"./select\\\":909,\\\"./style\\\":910}],908:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../lib/polygon\\\"),o=t(\\\"../../lib/topojson_utils\\\").getTopojsonFeatures,s=t(\\\"../../lib/geo_location_utils\\\").locationToFeature,l=t(\\\"./style\\\").style;function c(t,e){for(var r=t[0].trace,n=t.length,i=o(r,e),a=0;a<n;a++){var l=t[a],c=s(r.locationmode,l.loc,i);c?(l.geojson=c,l.ct=c.properties.ct,l.index=a,l._polygons=u(c)):l.geojson=null}}function u(t){var e,r,n,i,o=t.geometry,s=o.coordinates,l=t.id,c=[];function u(t){for(var e=0;e<t.length-1;e++)if(t[e][0]>0&&t[e+1][0]<0)return e;return null}switch(e=\\\"RUS\\\"===l||\\\"FJI\\\"===l?function(t){var e;if(null===u(t))e=t;else for(e=new Array(t.length),i=0;i<t.length;i++)e[i]=[t[i][0]<0?t[i][0]+360:t[i][0],t[i][1]];c.push(a.tester(e))}:\\\"ATA\\\"===l?function(t){var e=u(t);if(null===e)return c.push(a.tester(t));var r=new Array(t.length+1),n=0;for(i=0;i<t.length;i++)i>e?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var o=a.tester(r);o.pts.pop(),c.push(o)}:function(t){c.push(a.tester(t))},o.type){case\\\"MultiPolygon\\\":for(r=0;r<s.length;r++)for(n=0;n<s[r].length;n++)e(s[r][n]);break;case\\\"Polygon\\\":for(r=0;r<s.length;r++)e(s[r])}return c}e.exports=function(t,e,r){for(var a=0;a<r.length;a++)c(r[a],e.topojson);var o=e.layers.backplot.select(\\\".choroplethlayer\\\");i.makeTraceGroups(o,r,\\\"trace choropleth\\\").each(function(e){var r=(e[0].node3=n.select(this)).selectAll(\\\"path.choroplethlocation\\\").data(i.identity);r.enter().append(\\\"path\\\").classed(\\\"choroplethlocation\\\",!0),r.exit().remove(),l(t,e)})}},{\\\"../../lib\\\":696,\\\"../../lib/geo_location_utils\\\":688,\\\"../../lib/polygon\\\":708,\\\"../../lib/topojson_utils\\\":723,\\\"./style\\\":910,d3:148}],909:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n,i,a,o,s=t.cd,l=t.xaxis,c=t.yaxis,u=[];if(!1===e)for(r=0;r<s.length;r++)s[r].selected=0;else for(r=0;r<s.length;r++)(i=(n=s[r]).ct)&&(a=l.c2p(i),o=c.c2p(i),e.contains([a,o],null,r,t)?(u.push({pointNumber:r,lon:i[0],lat:i[1]}),n.selected=1):n.selected=0);return u}},{}],910:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"../../components/colorscale\\\");function s(t,e){var r=e[0].trace,s=e[0].node3.selectAll(\\\".choroplethlocation\\\"),l=r.marker||{},c=l.line||{},u=o.makeColorScaleFunc(o.extractScale(r.colorscale,r.zmin,r.zmax));s.each(function(t){n.select(this).attr(\\\"fill\\\",u(t.z)).call(i.stroke,t.mlc||c.color).call(a.dashLine,\\\"\\\",t.mlw||c.width||0).style(\\\"opacity\\\",l.opacity)}),a.selectedPointStyle(s,r,t)}e.exports={style:function(t,e){e&&s(t,e)},styleOnSelect:function(t,e){var r=e[0].node3,n=e[0].trace;n.selectedpoints?a.selectedPointStyle(r.selectAll(\\\".choroplethlocation\\\"),n,t):s(t,e)}}},{\\\"../../components/color\\\":570,\\\"../../components/colorscale\\\":585,\\\"../../components/drawing\\\":595,d3:148}],911:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../mesh3d/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../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\\\"}};s(l,n(\\\"\\\",{colorAttr:\\\"u/v/w norm\\\",showScaleDflt:!0,editTypeOverride:\\\"calc\\\"}),{colorbar:i});[\\\"opacity\\\",\\\"lightposition\\\",\\\"lighting\\\"].forEach(function(t){l[t]=a[t]}),l.hoverinfo=s({},o.hoverinfo,{editType:\\\"calc\\\",flags:[\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"u\\\",\\\"v\\\",\\\"w\\\",\\\"norm\\\",\\\"text\\\",\\\"name\\\"],dflt:\\\"x+y+z+norm+text+name\\\"}),l.transforms=void 0,e.exports=l},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../mesh3d/attributes\\\":986}],912:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\");e.exports=function(t,e){for(var r=e.u,i=e.v,a=e.w,o=Math.min(e.x.length,e.y.length,e.z.length,r.length,i.length,a.length),s=-1/0,l=1/0,c=0;c<o;c++){var u=r[c],f=i[c],h=a[c],p=Math.sqrt(u*u+f*f+h*h);s=Math.max(s,p),l=Math.min(l,p)}e._len=o,e._normMax=s,n(e,[l,s],\\\"\\\",\\\"c\\\")}},{\\\"../../components/colorscale/calc\\\":578}],913:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-cone3d\\\"),i=t(\\\"gl-cone3d\\\").createConeMesh,a=t(\\\"../../lib\\\").simpleMap,o=t(\\\"../../lib/gl_format_color\\\").parseColorScale,s=t(\\\"../../plots/gl3d/zip3\\\");function l(t,e){this.scene=t,this.uid=e,this.mesh=null,this.data=null}var c=l.prototype;c.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index,r=this.data.x[e],n=this.data.y[e],i=this.data.z[e],a=this.data.u[e],o=this.data.v[e],s=this.data.w[e];t.traceCoordinate=[r,n,i,a,o,s,Math.sqrt(a*a+o*o+s*s)];var l=this.data.text;return Array.isArray(l)&&void 0!==l[e]?t.textLabel=l[e]:l&&(t.textLabel=l),!0}};var u={xaxis:0,yaxis:1,zaxis:2},f={tip:1,tail:0,cm:.25,center:.5},h={tip:1,tail:1,cm:.75,center:.5};function p(t,e){var r=t.fullSceneLayout,i=t.dataScale,l={};function c(t,e){var n=r[e],o=i[u[e]];return a(t,function(t){return n.d2l(t)*o})}l.vectors=s(c(e.u,\\\"xaxis\\\"),c(e.v,\\\"yaxis\\\"),c(e.w,\\\"zaxis\\\"),e._len),l.positions=s(c(e.x,\\\"xaxis\\\"),c(e.y,\\\"yaxis\\\"),c(e.z,\\\"zaxis\\\"),e._len),l.colormap=o(e.colorscale),l.vertexIntensityBounds=[e.cmin/e._normMax,e.cmax/e._normMax],l.coneOffset=f[e.anchor],\\\"scaled\\\"===e.sizemode?l.coneSize=e.sizeref||.5:l.coneSize=e.sizeref&&e._normMax?e.sizeref/e._normMax:.5;var p=n(l),d=e.lightposition;return p.lightPosition=[d.x,d.y,d.z],p.ambient=e.lighting.ambient,p.diffuse=e.lighting.diffuse,p.specular=e.lighting.specular,p.roughness=e.lighting.roughness,p.fresnel=e.lighting.fresnel,p.opacity=e.opacity,e._pad=h[e.anchor]*p.vectorScale*p.coneScale*e._normMax,p}c.update=function(t){this.data=t;var e=p(this.scene,t);this.mesh.update(e)},c.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},e.exports=function(t,e){var r=t.glplot.gl,n=p(t,e),a=i(r,n),o=new l(t,e.uid);return o.mesh=a,o.data=e,a._trace=o,t.glplot.add(a),o}},{\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../plots/gl3d/zip3\\\":798,\\\"gl-cone3d\\\":231}],914:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/defaults\\\"),a=t(\\\"./attributes\\\");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s(\\\"u\\\"),c=s(\\\"v\\\"),u=s(\\\"w\\\"),f=s(\\\"x\\\"),h=s(\\\"y\\\"),p=s(\\\"z\\\");l&&l.length&&c&&c.length&&u&&u.length&&f&&f.length&&h&&h.length&&p&&p.length?(s(\\\"sizeref\\\"),s(\\\"sizemode\\\"),s(\\\"anchor\\\"),s(\\\"lighting.ambient\\\"),s(\\\"lighting.diffuse\\\"),s(\\\"lighting.specular\\\"),s(\\\"lighting.roughness\\\"),s(\\\"lighting.fresnel\\\"),s(\\\"lightposition.x\\\"),s(\\\"lightposition.y\\\"),s(\\\"lightposition.z\\\"),i(t,e,o,s,{prefix:\\\"\\\",cLetter:\\\"c\\\"}),s(\\\"text\\\"),e._length=null):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"./attributes\\\":911}],915:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"cone\\\",basePlotModule:t(\\\"../../plots/gl3d\\\"),categories:[\\\"gl3d\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),colorbar:{min:\\\"cmin\\\",max:\\\"cmax\\\"},calc:t(\\\"./calc\\\"),plot:t(\\\"./convert\\\"),meta:{}}},{\\\"../../plots/gl3d\\\":787,\\\"./attributes\\\":911,\\\"./calc\\\":912,\\\"./convert\\\":913,\\\"./defaults\\\":914}],916:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../heatmap/attributes\\\"),i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/colorbar/attributes\\\"),s=t(\\\"../../components/drawing/attributes\\\").dash,l=t(\\\"../../plots/font_attributes\\\"),c=t(\\\"../../lib/extend\\\").extendFlat,u=t(\\\"../../constants/filter_ops\\\"),f=u.COMPARISON_OPS2,h=u.INTERVAL_OPS,p=i.line;e.exports=c({z:n.z,x:n.x,x0:n.x0,dx:n.dx,y:n.y,y0:n.y0,dy:n.dy,text:n.text,transpose:n.transpose,xtype:n.xtype,ytype:n.ytype,zhoverformat:n.zhoverformat,connectgaps:n.connectgaps,fillcolor:{valType:\\\"color\\\",editType:\\\"calc\\\"},autocontour:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\",impliedEdits:{\\\"contours.start\\\":void 0,\\\"contours.end\\\":void 0,\\\"contours.size\\\":void 0}},ncontours:{valType:\\\"integer\\\",dflt:15,min:1,editType:\\\"calc\\\"},contours:{type:{valType:\\\"enumerated\\\",values:[\\\"levels\\\",\\\"constraint\\\"],dflt:\\\"levels\\\",editType:\\\"calc\\\"},start:{valType:\\\"number\\\",dflt:null,editType:\\\"plot\\\",impliedEdits:{\\\"^autocontour\\\":!1}},end:{valType:\\\"number\\\",dflt:null,editType:\\\"plot\\\",impliedEdits:{\\\"^autocontour\\\":!1}},size:{valType:\\\"number\\\",dflt:null,min:0,editType:\\\"plot\\\",impliedEdits:{\\\"^autocontour\\\":!1}},coloring:{valType:\\\"enumerated\\\",values:[\\\"fill\\\",\\\"heatmap\\\",\\\"lines\\\",\\\"none\\\"],dflt:\\\"fill\\\",editType:\\\"calc\\\"},showlines:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},showlabels:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"plot\\\"},labelfont:l({editType:\\\"plot\\\",colorEditType:\\\"style\\\"}),labelformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"plot\\\"},operation:{valType:\\\"enumerated\\\",values:[].concat(f).concat(h),dflt:\\\"=\\\",editType:\\\"calc\\\"},value:{valType:\\\"any\\\",dflt:0,editType:\\\"calc\\\"},editType:\\\"calc\\\",impliedEdits:{autocontour:!1}},line:{color:c({},p.color,{editType:\\\"style+colorbars\\\"}),width:c({},p.width,{editType:\\\"style+colorbars\\\"}),dash:s,smoothing:c({},p.smoothing,{}),editType:\\\"plot\\\"}},a(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1,editTypeOverride:\\\"calc\\\"}),{colorbar:o})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../components/drawing/attributes\\\":594,\\\"../../constants/filter_ops\\\":669,\\\"../../lib/extend\\\":685,\\\"../../plots/font_attributes\\\":771,\\\"../heatmap/attributes\\\":945,\\\"../scatter/attributes\\\":1043}],917:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../heatmap/calc\\\"),i=t(\\\"./set_contours\\\");e.exports=function(t,e){var r=n(t,e);return i(e),r}},{\\\"../heatmap/calc\\\":946,\\\"./set_contours\\\":935}],918:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i,a,o,s=t[0],l=s.x.length,c=s.y.length,u=s.z,f=n.contours,h=-1/0,p=1/0;for(i=0;i<c;i++)p=Math.min(p,u[i][0]),p=Math.min(p,u[i][l-1]),h=Math.max(h,u[i][0]),h=Math.max(h,u[i][l-1]);for(i=1;i<l-1;i++)p=Math.min(p,u[0][i]),p=Math.min(p,u[c-1][i]),h=Math.max(h,u[0][i]),h=Math.max(h,u[c-1][i]);switch(s.prefixBoundary=!1,e){case\\\">\\\":f.value>h&&(s.prefixBoundary=!0);break;case\\\"<\\\":f.value<p&&(s.prefixBoundary=!0);break;case\\\"[]\\\":a=Math.min.apply(null,f.value),((o=Math.max.apply(null,f.value))<p||a>h)&&(s.prefixBoundary=!0);break;case\\\"][\\\":a=Math.min.apply(null,f.value),o=Math.max.apply(null,f.value),a<p&&o>h&&(s.prefixBoundary=!0)}}},{}],919:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorbar/draw\\\"),i=t(\\\"./make_color_map\\\"),a=t(\\\"./end_plus\\\");e.exports=function(t,e){var r=e[0].trace,o=\\\"cb\\\"+r.uid;if(t._fullLayout._infolayer.selectAll(\\\".\\\"+o).remove(),r.showscale){var s=e[0].t.cb=n(t,o),l=r.contours,c=r.line,u=l.size||1,f=l.coloring,h=i(r,{isColorbar:!0});s.fillgradient(\\\"heatmap\\\"===f?r.colorscale:\\\"\\\").zrange(\\\"heatmap\\\"===f?[r.zmin,r.zmax]:\\\"\\\").fillcolor(\\\"fill\\\"===f?h:\\\"\\\").line({color:\\\"lines\\\"===f?h:c.color,width:!1!==l.showlines?c.width:0,dash:c.dash}).levels({start:l.start,end:a(l),size:u}).options(r.colorbar)()}}},{\\\"../../components/colorbar/draw\\\":575,\\\"./end_plus\\\":927,\\\"./make_color_map\\\":932}],920:[function(t,e,r){\\\"use strict\\\";e.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}}},{}],921:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"./label_defaults\\\"),a=t(\\\"../../components/color\\\"),o=a.addOpacity,s=a.opacity,l=t(\\\"../../constants/filter_ops\\\"),c=l.CONSTRAINT_REDUCTION,u=l.COMPARISON_OPS2;e.exports=function(t,e,r,a,l,f){var h,p,d,g=e.contours,v=r(\\\"contours.operation\\\");(g._operation=c[v],function(t,e){var r;-1===u.indexOf(e.operation)?(t(\\\"contours.value\\\",[0,1]),Array.isArray(e.value)?e.value.length>2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(r=parseFloat(e.value[0]),e.value=[r,r+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:n(e.value)&&(r=parseFloat(e.value),e.value=[r,r+1])):(t(\\\"contours.value\\\",0),n(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(r,g),\\\"=\\\"===v?h=g.showlines=!0:(h=r(\\\"contours.showlines\\\"),d=r(\\\"fillcolor\\\",o((t.line||{}).color||l,.5))),h)&&(p=r(\\\"line.color\\\",d&&s(d)?o(e.fillcolor,1):l),r(\\\"line.width\\\",2),r(\\\"line.dash\\\"));r(\\\"line.smoothing\\\"),i(r,a,p,f)}},{\\\"../../components/color\\\":570,\\\"../../constants/filter_ops\\\":669,\\\"./label_defaults\\\":931,\\\"fast-isnumeric\\\":214}],922:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../constants/filter_ops\\\"),i=t(\\\"fast-isnumeric\\\");function a(t,e){var r,a=Array.isArray(e);function o(t){return i(t)?+t:null}return-1!==n.COMPARISON_OPS2.indexOf(t)?r=o(a?e[0]:e):-1!==n.INTERVAL_OPS.indexOf(t)?r=a?[o(e[0]),o(e[1])]:[o(e),o(e)]:-1!==n.SET_OPS.indexOf(t)&&(r=a?e.map(o):[o(e)]),r}function o(t){return function(e){e=a(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function s(t){return function(e){return{start:e=a(t,e),end:1/0,size:1/0}}}e.exports={\\\"[]\\\":o(\\\"[]\\\"),\\\"][\\\":o(\\\"][\\\"),\\\">\\\":s(\\\">\\\"),\\\"<\\\":s(\\\"<\\\"),\\\"=\\\":s(\\\"=\\\")}},{\\\"../../constants/filter_ops\\\":669,\\\"fast-isnumeric\\\":214}],923:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i=n(\\\"contours.start\\\"),a=n(\\\"contours.end\\\"),o=!1===i||!1===a,s=r(\\\"contours.size\\\");!(o?e.autocontour=!0:r(\\\"autocontour\\\",!1))&&s||r(\\\"ncontours\\\")}},{}],924:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");function i(t){return n.extendFlat({},t,{edgepaths:n.extendDeep([],t.edgepaths),paths:n.extendDeep([],t.paths)})}e.exports=function(t,e){var r,a,o,s=function(t){return t.reverse()},l=function(t){return t};switch(e){case\\\"=\\\":case\\\"<\\\":return t;case\\\">\\\":for(1!==t.length&&n.warn(\\\"Contour data invalid for the specified inequality operation.\\\"),a=t[0],r=0;r<a.edgepaths.length;r++)a.edgepaths[r]=s(a.edgepaths[r]);for(r=0;r<a.paths.length;r++)a.paths[r]=s(a.paths[r]);return t;case\\\"][\\\":var c=s;s=l,l=c;case\\\"[]\\\":for(2!==t.length&&n.warn(\\\"Contour data invalid for the specified inequality range operation.\\\"),a=i(t[0]),o=i(t[1]),r=0;r<a.edgepaths.length;r++)a.edgepaths[r]=s(a.edgepaths[r]);for(r=0;r<a.paths.length;r++)a.paths[r]=s(a.paths[r]);for(;o.edgepaths.length;)a.edgepaths.push(l(o.edgepaths.shift()));for(;o.paths.length;)a.paths.push(l(o.paths.shift()));return[a]}}},{\\\"../../lib\\\":696}],925:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../heatmap/xyz_defaults\\\"),a=t(\\\"./constraint_defaults\\\"),o=t(\\\"./contours_defaults\\\"),s=t(\\\"./style_defaults\\\"),l=t(\\\"./attributes\\\");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,l,r,i)}if(i(t,e,u,c)){u(\\\"text\\\");var f=\\\"constraint\\\"===u(\\\"contours.type\\\");u(\\\"connectgaps\\\",n.isArray1D(e.z)),f?a(t,e,u,c,r):(o(t,e,u,function(r){return n.coerce2(t,e,l,r)}),s(t,e,u,c))}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../heatmap/xyz_defaults\\\":960,\\\"./attributes\\\":916,\\\"./constraint_defaults\\\":921,\\\"./contours_defaults\\\":923,\\\"./style_defaults\\\":937}],926:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./constraint_mapping\\\"),a=t(\\\"./end_plus\\\");e.exports=function(t,e,r){for(var o=\\\"constraint\\\"===t.type?i[t._operation](t.value):t,s=o.size,l=[],c=a(o),u=r.trace._carpetTrace,f=u?{xaxis:u.aaxis,yaxis:u.baxis,x:r.a,y:r.b}:{xaxis:e.xaxis,yaxis:e.yaxis,x:r.x,y:r.y},h=o.start;h<c;h+=s)if(l.push(n.extendFlat({level:h,crossings:{},starts:[],edgepaths:[],paths:[],z:r.z,smoothing:r.trace.line.smoothing},f)),l.length>1e3){n.warn(\\\"Too many contours, clipping at 1000\\\",t);break}return l}},{\\\"../../lib\\\":696,\\\"./constraint_mapping\\\":922,\\\"./end_plus\\\":927}],927:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t.end+t.size/1e6}},{}],928:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./constants\\\");function a(t,e,r,n){return Math.abs(t[0]-e[0])<r&&Math.abs(t[1]-e[1])<n}function o(t,e,r,o,l){var c,u=e.join(\\\",\\\"),f=u,h=t.crossings[f],p=function(t,e,r){var n=0,a=0;t>20&&e?208===t||1114===t?n=0===r[0]?1:-1:a=0===r[1]?1:-1:-1!==i.BOTTOMSTART.indexOf(t)?a=1:-1!==i.LEFTSTART.indexOf(t)?n=1:-1!==i.TOPSTART.indexOf(t)?a=-1:n=-1;return[n,a]}(h,r,e),d=[s(t,e,[-p[0],-p[1]])],g=p.join(\\\",\\\"),v=t.z.length,m=t.z[0].length;for(c=0;c<1e4;c++){if(h>20?(h=i.CHOOSESADDLE[h][(p[0]||p[1])<0?0:1],t.crossings[f]=i.SADDLEREMAINDER[h]):delete t.crossings[f],!(p=i.NEWDELTA[h])){n.log(\\\"Found bad marching index:\\\",h,e,t.level);break}d.push(s(t,e,p)),e[0]+=p[0],e[1]+=p[1],a(d[d.length-1],d[d.length-2],o,l)&&d.pop(),f=e.join(\\\",\\\");var y=p[0]&&(e[0]<0||e[0]>m-2)||p[1]&&(e[1]<0||e[1]>v-2);if(f===u&&p.join(\\\",\\\")===g||r&&y)break;h=t.crossings[f]}1e4===c&&n.log(\\\"Infinite loop in contour?\\\");var x,b,_,w,k,M,A,T,S,E,C,L,z,O,I,P=a(d[0],d[d.length-1],o,l),D=0,R=.2*t.smoothing,B=[],F=0;for(c=1;c<d.length;c++)L=d[c],z=d[c-1],void 0,void 0,O=L[2]-z[2],I=L[3]-z[3],D+=A=Math.sqrt(O*O+I*I),B.push(A);var N=D/B.length*R;function j(t){return d[t%d.length]}for(c=d.length-2;c>=F;c--)if((x=B[c])<N){for(_=0,b=c-1;b>=F&&x+B[b]<N;b--)x+=B[b];if(P&&c===d.length-2)for(_=0;_<b&&x+B[_]<N;_++)x+=B[_];k=c-b+_+1,M=Math.floor((c+b+_+2)/2),w=P||c!==d.length-2?P||-1!==b?k%2?j(M):[(j(M)[0]+j(M+1)[0])/2,(j(M)[1]+j(M+1)[1])/2]:d[0]:d[d.length-1],d.splice(b+1,c-b+1,w),c=b+1,_&&(F=_),P&&(c===d.length-2?d[_]=d[d.length-1]:0===c&&(d[d.length-1]=d[0]))}for(d.splice(0,F),c=0;c<d.length;c++)d[c].length=2;if(!(d.length<2))if(P)d.pop(),t.paths.push(d);else{r||n.log(\\\"Unclosed interior contour?\\\",t.level,u,d.join(\\\"L\\\"));var V=!1;for(T=0;T<t.edgepaths.length;T++)if(E=t.edgepaths[T],!V&&a(E[0],d[d.length-1],o,l)){d.pop(),V=!0;var U=!1;for(S=0;S<t.edgepaths.length;S++)if(a((C=t.edgepaths[S])[C.length-1],d[0],o,l)){U=!0,d.shift(),t.edgepaths.splice(T,1),S===T?t.paths.push(d.concat(C)):(S>T&&S--,t.edgepaths[S]=C.concat(d,E));break}U||(t.edgepaths[T]=d.concat(E))}for(T=0;T<t.edgepaths.length&&!V;T++)a((E=t.edgepaths[T])[E.length-1],d[0],o,l)&&(d.shift(),t.edgepaths[T]=E.concat(d),V=!0);V||t.edgepaths.push(d)}}function s(t,e,r){var n=e[0]+Math.max(r[0],0),i=e[1]+Math.max(r[1],0),a=t.z[i][n],o=t.xaxis,s=t.yaxis;if(r[1]){var l=(t.level-a)/(t.z[i][n+1]-a);return[o.c2p((1-l)*t.x[n]+l*t.x[n+1],!0),s.c2p(t.y[i],!0),n+l,i]}var c=(t.level-a)/(t.z[i+1][n]-a);return[o.c2p(t.x[n],!0),s.c2p((1-c)*t.y[i]+c*t.y[i+1],!0),n,i+c]}e.exports=function(t,e,r){var i,a,s,l;for(e=e||.01,r=r||.01,a=0;a<t.length;a++){for(s=t[a],l=0;l<s.starts.length;l++)o(s,s.starts[l],\\\"edge\\\",e,r);for(i=0;Object.keys(s.crossings).length&&i<1e4;)i++,o(s,Object.keys(s.crossings)[0].split(\\\",\\\").map(Number),void 0,e,r);1e4===i&&n.log(\\\"Infinite loop in contour?\\\")}}},{\\\"../../lib\\\":696,\\\"./constants\\\":920}],929:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../heatmap/hover\\\");e.exports=function(t,e,r,a,o){var s=i(t,e,r,a,o,!0);return s&&s.forEach(function(t){var e=t.trace;\\\"constraint\\\"===e.contours.type&&(e.fillcolor&&n.opacity(e.fillcolor)?t.color=n.addOpacity(e.fillcolor,1):e.contours.showlines&&n.opacity(e.line.color)&&(t.color=n.addOpacity(e.line.color,1)))}),s}},{\\\"../../components/color\\\":570,\\\"../heatmap/hover\\\":952}],930:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\").plot,n.style=t(\\\"./style\\\"),n.colorbar=t(\\\"./colorbar\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"contour\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"2dMap\\\",\\\"contour\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":916,\\\"./calc\\\":917,\\\"./colorbar\\\":919,\\\"./defaults\\\":925,\\\"./hover\\\":929,\\\"./plot\\\":934,\\\"./style\\\":936}],931:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e,r,i){if(i||(i={}),t(\\\"contours.showlabels\\\")){var a=e.font;n.coerceFont(t,\\\"contours.labelfont\\\",{family:a.family,size:a.size,color:r}),t(\\\"contours.labelformat\\\")}!1!==i.hasHover&&t(\\\"zhoverformat\\\")}},{\\\"../../lib\\\":696}],932:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/colorscale\\\"),a=t(\\\"./end_plus\\\");e.exports=function(t){var e=t.contours,r=e.start,o=a(e),s=e.size||1,l=Math.floor((o-r)/s)+1,c=\\\"lines\\\"===e.coloring?0:1;isFinite(s)||(s=1,l=1);var u,f,h=t.colorscale,p=h.length,d=new Array(p),g=new Array(p);if(\\\"heatmap\\\"===e.coloring){for(t.zauto&&!1===t.autocontour&&(t.zmin=r-s/2,t.zmax=t.zmin+l*s),f=0;f<p;f++)u=h[f],d[f]=u[0]*(t.zmax-t.zmin)+t.zmin,g[f]=u[1];var v=n.extent([t.zmin,t.zmax,e.start,e.start+s*(l-1)]),m=v[t.zmin<t.zmax?0:1],y=v[t.zmin<t.zmax?1:0];m!==t.zmin&&(d.splice(0,0,m),g.splice(0,0,Range[0])),y!==t.zmax&&(d.push(y),g.push(g[g.length-1]))}else for(f=0;f<p;f++)u=h[f],d[f]=(u[0]*(l+c-1)-c/2)*s+r,g[f]=u[1];return i.makeColorScaleFunc({domain:d,range:g},{noNumericCheck:!0})}},{\\\"../../components/colorscale\\\":585,\\\"./end_plus\\\":927,d3:148}],933:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\");function i(t,e){var r=(e[0][0]>t?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}e.exports=function(t){var e,r,a,o,s,l,c,u,f,h=t[0].z,p=h.length,d=h[0].length,g=2===p||2===d;for(r=0;r<p-1;r++)for(o=[],0===r&&(o=o.concat(n.BOTTOMSTART)),r===p-2&&(o=o.concat(n.TOPSTART)),e=0;e<d-1;e++)for(a=o.slice(),0===e&&(a=a.concat(n.LEFTSTART)),e===d-2&&(a=a.concat(n.RIGHTSTART)),s=e+\\\",\\\"+r,l=[[h[r][e],h[r][e+1]],[h[r+1][e],h[r+1][e+1]]],f=0;f<t.length;f++)(c=i((u=t[f]).level,l))&&(u.crossings[s]=c,-1!==a.indexOf(c)&&(u.starts.push([e,r]),g&&-1!==a.indexOf(c,a.indexOf(c)+1)&&u.starts.push([e,r])))}},{\\\"./constants\\\":920}],934:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"../../lib/svg_text_utils\\\"),s=t(\\\"../../plots/cartesian/axes\\\"),l=t(\\\"../../plots/cartesian/set_convert\\\"),c=t(\\\"../heatmap/plot\\\"),u=t(\\\"./make_crossings\\\"),f=t(\\\"./find_all_paths\\\"),h=t(\\\"./empty_pathinfo\\\"),p=t(\\\"./convert_to_constraints\\\"),d=t(\\\"./close_boundaries\\\"),g=t(\\\"./constants\\\"),v=g.LABELOPTIMIZER;function m(t,e){var r,n,o,s,l,c,u,f=function(t,e){var r=t.prefixBoundary;if(void 0===r){var n=Math.min(t.z[0][0],t.z[0][1]);r=!t.edgepaths.length&&n>t.level}return r?\\\"M\\\"+e.join(\\\"L\\\")+\\\"Z\\\":\\\"\\\"}(t,e),h=0,p=t.edgepaths.map(function(t,e){return e}),d=!0;function g(t){return Math.abs(t[1]-e[2][1])<.01}function v(t){return Math.abs(t[0]-e[0][0])<.01}function m(t){return Math.abs(t[0]-e[2][0])<.01}for(;p.length;){for(c=a.smoothopen(t.edgepaths[h],t.smoothing),f+=d?c:c.replace(/^M/,\\\"L\\\"),p.splice(p.indexOf(h),1),r=t.edgepaths[h][t.edgepaths[h].length-1],s=-1,o=0;o<4;o++){if(!r){i.log(\\\"Missing end?\\\",h,t);break}for(u=r,Math.abs(u[1]-e[0][1])<.01&&!m(r)?n=e[1]:v(r)?n=e[0]:g(r)?n=e[3]:m(r)&&(n=e[2]),l=0;l<t.edgepaths.length;l++){var y=t.edgepaths[l][0];Math.abs(r[0]-n[0])<.01?Math.abs(r[0]-y[0])<.01&&(y[1]-r[1])*(n[1]-y[1])>=0&&(n=y,s=l):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-y[1])<.01&&(y[0]-r[0])*(n[0]-y[0])>=0&&(n=y,s=l):i.log(\\\"endpt to newendpt is not vert. or horz.\\\",r,n,y)}if(r=n,s>=0)break;f+=\\\"L\\\"+n}if(s===t.edgepaths.length){i.log(\\\"unclosed perimeter path\\\");break}h=s,(d=-1===p.indexOf(h))&&(h=p[0],f+=\\\"Z\\\")}for(h=0;h<t.paths.length;h++)f+=a.smoothclosed(t.paths[h],t.smoothing);return f}function y(t,e,r,n){var a=e.width/2,o=e.height/2,s=t.x,l=t.y,c=t.theta,u=Math.cos(c)*a,f=Math.sin(c)*a,h=(s>n.center?n.right-s:s-n.left)/(u+Math.abs(Math.sin(c)*o)),p=(l>n.middle?n.bottom-l:l-n.top)/(Math.abs(f)+Math.cos(c)*o);if(h<1||p<1)return 1/0;var d=v.EDGECOST*(1/(h-1)+1/(p-1));d+=v.ANGLECOST*c*c;for(var g=s-u,m=l-f,y=s+u,x=l+f,b=0;b<r.length;b++){var _=r[b],w=Math.cos(_.theta)*_.width/2,k=Math.sin(_.theta)*_.width/2,M=2*i.segmentDistance(g,m,y,x,_.x-w,_.y-k,_.x+w,_.y+k)/(e.height+_.height),A=_.level===e.level,T=A?v.SAMELEVELDISTANCE:1;if(M<=T)return 1/0;d+=v.NEIGHBORCOST*(A?v.SAMELEVELFACTOR:1)/(M-T)}return d}r.plot=function(t,e,o,s){var l=e.xaxis,v=e.yaxis,y=t._fullLayout;i.makeTraceGroups(s,o,\\\"contour\\\").each(function(o){var s=n.select(this),x=o[0],b=x.trace,_=x.x,w=x.y,k=b.contours,M=h(k,e,x),A=i.ensureSingle(s,\\\"g\\\",\\\"heatmapcoloring\\\"),T=[];\\\"heatmap\\\"===k.coloring&&(b.zauto&&!1===b.autocontour&&(b._input.zmin=b.zmin=k.start-k.size/2,b._input.zmax=b.zmax=b.zmin+M.length*k.size),T=[o]),c(t,e,T,A),u(M),f(M);var S=l.c2p(_[0],!0),E=l.c2p(_[_.length-1],!0),C=v.c2p(w[0],!0),L=v.c2p(w[w.length-1],!0),z=[[S,L],[E,L],[E,C],[S,C]],O=M;\\\"constraint\\\"===k.type&&(O=p(M,k._operation),d(O,k._operation,z,b)),function(t,e,r){var n=i.ensureSingle(t,\\\"g\\\",\\\"contourbg\\\").selectAll(\\\"path\\\").data(\\\"fill\\\"===r.coloring?[0]:[]);n.enter().append(\\\"path\\\"),n.exit().remove(),n.attr(\\\"d\\\",\\\"M\\\"+e.join(\\\"L\\\")+\\\"Z\\\").style(\\\"stroke\\\",\\\"none\\\")}(s,z,k),function(t,e,r,a){var o=i.ensureSingle(t,\\\"g\\\",\\\"contourfill\\\").selectAll(\\\"path\\\").data(\\\"fill\\\"===a.coloring||\\\"constraint\\\"===a.type&&\\\"=\\\"!==a._operation?e:[]);o.enter().append(\\\"path\\\"),o.exit().remove(),o.each(function(t){var e=m(t,r);e?n.select(this).attr(\\\"d\\\",e).style(\\\"stroke\\\",\\\"none\\\"):n.select(this).remove()})}(s,O,z,k),function(t,e,o,s,l,c){var u=i.ensureSingle(t,\\\"g\\\",\\\"contourlines\\\"),f=!1!==l.showlines,h=l.showlabels,p=f&&h,d=r.createLines(u,f||h,e),v=r.createLineClip(u,p,o._fullLayout._clips,s.trace.uid),m=t.selectAll(\\\"g.contourlabels\\\").data(h?[0]:[]);if(m.exit().remove(),m.enter().append(\\\"g\\\").classed(\\\"contourlabels\\\",!0),h){var y=[c],x=[];i.clearLocationCache();var b=r.labelFormatter(l,s.t.cb,o._fullLayout),_=a.tester.append(\\\"text\\\").attr(\\\"data-notex\\\",1).call(a.font,l.labelfont),w=e[0].xaxis._length,k=e[0].yaxis._length,M={left:Math.max(c[0][0],0),right:Math.min(c[2][0],w),top:Math.max(c[0][1],0),bottom:Math.min(c[2][1],k)};M.middle=(M.top+M.bottom)/2,M.center=(M.left+M.right)/2;var A=Math.sqrt(w*w+k*k),T=g.LABELDISTANCE*A/Math.max(1,e.length/g.LABELINCREASE);d.each(function(t){var e=r.calcTextOpts(t.level,b,_,o);n.select(this).selectAll(\\\"path\\\").each(function(){var t=i.getVisibleSegment(this,M,e.height/2);if(t&&!(t.len<(e.width+e.height)*g.LABELMIN))for(var n=Math.min(Math.ceil(t.len/T),g.LABELMAX),a=0;a<n;a++){var o=r.findBestTextLocation(this,t,e,x,M);if(!o)break;r.addLabelData(o,e,x,y)}})}),_.remove(),r.drawLabels(m,x,o,v,p?y:null)}h&&!f&&d.remove()}(s,M,t,x,k,z),function(t,e,r,n,o){var s=\\\"clip\\\"+n.trace.uid,l=r.selectAll(\\\"#\\\"+s).data(n.trace.connectgaps?[]:[0]);if(l.enter().append(\\\"clipPath\\\").classed(\\\"contourclip\\\",!0).attr(\\\"id\\\",s),l.exit().remove(),!1===n.trace.connectgaps){var c={level:.9,crossings:{},starts:[],edgepaths:[],paths:[],xaxis:e.xaxis,yaxis:e.yaxis,x:n.x,y:n.y,z:function(t){var e,r,n=t.trace._emptypoints,i=[],a=t.z.length,o=t.z[0].length,s=[];for(e=0;e<o;e++)s.push(1);for(e=0;e<a;e++)i.push(s.slice());for(e=0;e<n.length;e++)r=n[e],i[r[0]][r[1]]=0;return t.zmask=i,i}(n),smoothing:0};u([c]),f([c]);var h=m(c,o),p=i.ensureSingle(l,\\\"path\\\",\\\"\\\");p.attr(\\\"d\\\",h)}else s=null;t.call(a.setClipUrl,s)}(s,e,y._clips,x,z)})},r.createLines=function(t,e,r){var n=r[0].smoothing,i=t.selectAll(\\\"g.contourlevel\\\").data(e?r:[]);if(i.exit().remove(),i.enter().append(\\\"g\\\").classed(\\\"contourlevel\\\",!0),e){var o=i.selectAll(\\\"path.openline\\\").data(function(t){return t.pedgepaths||t.edgepaths});o.exit().remove(),o.enter().append(\\\"path\\\").classed(\\\"openline\\\",!0),o.attr(\\\"d\\\",function(t){return a.smoothopen(t,n)}).style(\\\"stroke-miterlimit\\\",1).style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\");var s=i.selectAll(\\\"path.closedline\\\").data(function(t){return t.ppaths||t.paths});s.exit().remove(),s.enter().append(\\\"path\\\").classed(\\\"closedline\\\",!0),s.attr(\\\"d\\\",function(t){return a.smoothclosed(t,n)}).style(\\\"stroke-miterlimit\\\",1).style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\")}return i},r.createLineClip=function(t,e,r,n){var i=e?\\\"clipline\\\"+n:null,o=r.selectAll(\\\"#\\\"+i).data(e?[0]:[]);return o.exit().remove(),o.enter().append(\\\"clipPath\\\").classed(\\\"contourlineclip\\\",!0).attr(\\\"id\\\",i),a.setClipUrl(t,i),o},r.labelFormatter=function(t,e,r){if(t.labelformat)return r._d3locale.numberFormat(t.labelformat);var n;if(e)n=e.axis;else{if(n={type:\\\"linear\\\",_id:\\\"ycontour\\\",showexponent:\\\"all\\\",exponentformat:\\\"B\\\"},\\\"constraint\\\"===t.type){var i=t.value;Array.isArray(i)?n.range=[i[0],i[i.length-1]]:n.range=[i,i]}else n.range=[t.start,t.end],n.nticks=(t.end-t.start)/t.size;n.range[0]===n.range[1]&&(n.range[1]+=n.range[0]||1),n.nticks||(n.nticks=1e3),l(n,r),s.prepTicks(n),n._tmin=null,n._tmax=null}return function(t){return s.tickText(n,t).text}},r.calcTextOpts=function(t,e,r,n){var i=e(t);r.text(i).call(o.convertToTspans,n);var s=a.bBox(r.node(),!0);return{text:i,width:s.width,height:s.height,level:t,dy:(s.top+s.bottom)/2}},r.findBestTextLocation=function(t,e,r,n,a){var o,s,l,c,u,f=r.width;e.isClosed?(s=e.len/v.INITIALSEARCHPOINTS,o=e.min+s/2,l=e.max):(s=(e.len-f)/(v.INITIALSEARCHPOINTS+1),o=e.min+s+f/2,l=e.max-(s+f)/2);for(var h=1/0,p=0;p<v.ITERATIONS;p++){for(var d=o;d<l;d+=s){var g=i.getTextLocation(t,e.total,d,f),m=y(g,r,n,a);m<h&&(h=m,u=g,c=d)}if(h>2*v.MAXCOST)break;p&&(s/=2),l=(o=c-s/2)+1.5*s}if(h<=v.MAXCOST)return u},r.addLabelData=function(t,e,r,n){var i=e.width/2,a=e.height/2,o=t.x,s=t.y,l=t.theta,c=Math.sin(l),u=Math.cos(l),f=i*u,h=a*c,p=i*c,d=-a*u,g=[[o-f-h,s-p-d],[o+f-h,s+p-d],[o+f+h,s+p+d],[o-f+h,s-p+d]];r.push({text:e.text,x:o,y:s,dy:e.dy,theta:l,level:e.level,width:e.width,height:e.height}),n.push(g)},r.drawLabels=function(t,e,r,a,s){var l=t.selectAll(\\\"text\\\").data(e,function(t){return t.text+\\\",\\\"+t.x+\\\",\\\"+t.y+\\\",\\\"+t.theta});if(l.exit().remove(),l.enter().append(\\\"text\\\").attr({\\\"data-notex\\\":1,\\\"text-anchor\\\":\\\"middle\\\"}).each(function(t){var e=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;n.select(this).text(t.text).attr({x:e,y:i,transform:\\\"rotate(\\\"+180*t.theta/Math.PI+\\\" \\\"+e+\\\" \\\"+i+\\\")\\\"}).call(o.convertToTspans,r)}),s){for(var c=\\\"\\\",u=0;u<s.length;u++)c+=\\\"M\\\"+s[u].join(\\\"L\\\")+\\\"Z\\\";i.ensureSingle(a,\\\"path\\\",\\\"\\\").attr(\\\"d\\\",c)}}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/cartesian/set_convert\\\":763,\\\"../heatmap/plot\\\":957,\\\"./close_boundaries\\\":918,\\\"./constants\\\":920,\\\"./convert_to_constraints\\\":924,\\\"./empty_pathinfo\\\":926,\\\"./find_all_paths\\\":928,\\\"./make_crossings\\\":933,d3:148}],935:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\");function a(t,e,r){var i={type:\\\"linear\\\",range:[t,e]};return n.autoTicks(i,(e-t)/(r||15)),i}e.exports=function(t){var e=t.contours;if(t.autocontour){var r=t.zmin,o=t.zmax;void 0!==r&&void 0!==o||(r=i.aggNums(Math.min,null,t._z),o=i.aggNums(Math.max,null,t._z));var s=a(r,o,t.ncontours);e.size=s.dtick,e.start=n.tickFirst(s),s.range.reverse(),e.end=n.tickFirst(s),e.start===r&&(e.start+=e.size),e.end===o&&(e.end-=e.size),e.start>e.end&&(e.start=e.end=(e.start+e.end)/2),t._input.contours||(t._input.contours={}),i.extendFlat(t._input.contours,{start:e.start,end:e.end,size:e.size}),t._input.autocontour=!0}else if(\\\"constraint\\\"!==e.type){var l,c=e.start,u=e.end,f=t._input.contours;if(c>u&&(e.start=f.start=u,u=e.end=f.end=c,c=e.start),!(e.size>0))l=c===u?1:a(c,u,t.ncontours).dtick,f.size=e.size=l}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],936:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"../heatmap/style\\\"),o=t(\\\"./make_color_map\\\");e.exports=function(t){var e=n.select(t).selectAll(\\\"g.contour\\\");e.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),e.each(function(t){var e=n.select(this),r=t[0].trace,a=r.contours,s=r.line,l=a.size||1,c=a.start,u=\\\"constraint\\\"===a.type,f=!u&&\\\"lines\\\"===a.coloring,h=!u&&\\\"fill\\\"===a.coloring,p=f||h?o(r):null;e.selectAll(\\\"g.contourlevel\\\").each(function(t){n.select(this).selectAll(\\\"path\\\").call(i.lineGroupStyle,s.width,f?p(t.level):s.color,s.dash)});var d=a.labelfont;if(e.selectAll(\\\"g.contourlabels text\\\").each(function(t){i.font(n.select(this),{family:d.family,size:d.size,color:d.color||(f?p(t.level):s.color)})}),u)e.selectAll(\\\"g.contourfill path\\\").style(\\\"fill\\\",r.fillcolor);else if(h){var g;e.selectAll(\\\"g.contourfill path\\\").style(\\\"fill\\\",function(t){return void 0===g&&(g=t.level),p(t.level+.5*l)}),void 0===g&&(g=c),e.selectAll(\\\"g.contourbg path\\\").style(\\\"fill\\\",p(g-.5*l))}}),a(t)}},{\\\"../../components/drawing\\\":595,\\\"../heatmap/style\\\":958,\\\"./make_color_map\\\":932,d3:148}],937:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/defaults\\\"),i=t(\\\"./label_defaults\\\");e.exports=function(t,e,r,a,o){var s,l=r(\\\"contours.coloring\\\"),c=\\\"\\\";\\\"fill\\\"===l&&(s=r(\\\"contours.showlines\\\")),!1!==s&&(\\\"lines\\\"!==l&&(c=r(\\\"line.color\\\",\\\"#000\\\")),r(\\\"line.width\\\",.5),r(\\\"line.dash\\\")),\\\"none\\\"!==l&&(!0!==t.showlegend&&(e.showlegend=!1),e._dfltShowLegend=!1,n(t,e,a,r,{prefix:\\\"\\\",cLetter:\\\"z\\\"})),r(\\\"line.smoothing\\\"),i(r,a,c,o)}},{\\\"../../components/colorscale/defaults\\\":580,\\\"./label_defaults\\\":931}],938:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../heatmap/attributes\\\"),i=t(\\\"../contour/attributes\\\"),a=i.contours,o=t(\\\"../scatter/attributes\\\"),s=t(\\\"../../components/colorscale/attributes\\\"),l=t(\\\"../../components/colorbar/attributes\\\"),c=t(\\\"../../lib/extend\\\").extendFlat,u=o.line;e.exports=c({carpet:{valType:\\\"string\\\",editType:\\\"calc\\\"},z:n.z,a:n.x,a0:n.x0,da:n.dx,b:n.y,b0:n.y0,db:n.dy,text:n.text,transpose:n.transpose,atype:n.xtype,btype:n.ytype,fillcolor:i.fillcolor,autocontour:i.autocontour,ncontours:i.ncontours,contours:{type:a.type,start:a.start,end:a.end,size:a.size,coloring:{valType:\\\"enumerated\\\",values:[\\\"fill\\\",\\\"lines\\\",\\\"none\\\"],dflt:\\\"fill\\\",editType:\\\"calc\\\"},showlines:a.showlines,showlabels:a.showlabels,labelfont:a.labelfont,labelformat:a.labelformat,operation:a.operation,value:a.value,editType:\\\"calc\\\",impliedEdits:{autocontour:!1}},line:{color:c({},u.color,{}),width:u.width,dash:u.dash,smoothing:c({},u.smoothing,{}),editType:\\\"plot\\\"},transforms:void 0},s(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1}),{colorbar:l})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../contour/attributes\\\":916,\\\"../heatmap/attributes\\\":945,\\\"../scatter/attributes\\\":1043}],939:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\"),i=t(\\\"../../lib\\\").isArray1D,a=t(\\\"../heatmap/convert_column_xyz\\\"),o=t(\\\"../heatmap/clean_2d_array\\\"),s=t(\\\"../heatmap/max_row_length\\\"),l=t(\\\"../heatmap/interp2d\\\"),c=t(\\\"../heatmap/find_empties\\\"),u=t(\\\"../heatmap/make_bound_array\\\"),f=t(\\\"./defaults\\\"),h=t(\\\"../carpet/lookup_carpetid\\\"),p=t(\\\"../contour/set_contours\\\");e.exports=function(t,e){var r=e._carpetTrace=h(t,e);if(r&&r.visible&&\\\"legendonly\\\"!==r.visible){if(!e.a||!e.b){var d=t.data[r.index],g=t.data[e.index];g.a||(g.a=d.a),g.b||(g.b=d.b),f(g,e,e._defaultColor,t._fullLayout)}var v=function(t,e){var r,f,h,p,d,g,v,m=e._carpetTrace,y=m.aaxis,x=m.baxis;y._minDtick=0,x._minDtick=0,i(e.z)&&a(e,y,x,\\\"a\\\",\\\"b\\\",[\\\"z\\\"]);r=e._a=e._a||e.a,p=e._b=e._b||e.b,r=r?y.makeCalcdata(e,\\\"_a\\\"):[],p=p?x.makeCalcdata(e,\\\"_b\\\"):[],f=e.a0||0,h=e.da||1,d=e.b0||0,g=e.db||1,v=e._z=o(e._z||e.z,e.transpose),e._emptypoints=c(v),l(v,e._emptypoints);var b=s(v),_=\\\"scaled\\\"===e.xtype?\\\"\\\":r,w=u(e,_,f,h,b,y),k=\\\"scaled\\\"===e.ytype?\\\"\\\":p,M=u(e,k,d,g,v.length,x),A={a:w,b:M,z:v};\\\"levels\\\"===e.contours.type&&\\\"none\\\"!==e.contours.coloring&&n(e,v,\\\"\\\",\\\"z\\\");return[A]}(0,e);return p(e),v}}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../lib\\\":696,\\\"../carpet/lookup_carpetid\\\":894,\\\"../contour/set_contours\\\":935,\\\"../heatmap/clean_2d_array\\\":947,\\\"../heatmap/convert_column_xyz\\\":949,\\\"../heatmap/find_empties\\\":951,\\\"../heatmap/interp2d\\\":954,\\\"../heatmap/make_bound_array\\\":955,\\\"../heatmap/max_row_length\\\":956,\\\"./defaults\\\":940}],940:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../heatmap/xyz_defaults\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"../contour/constraint_defaults\\\"),s=t(\\\"../contour/contours_defaults\\\"),l=t(\\\"../contour/style_defaults\\\");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,a,r,i)}if(u(\\\"carpet\\\"),t.a&&t.b){if(!i(t,e,u,c,\\\"a\\\",\\\"b\\\"))return void(e.visible=!1);u(\\\"text\\\"),\\\"constraint\\\"===u(\\\"contours.type\\\")?o(t,e,u,c,r,{hasHover:!1}):(s(t,e,u,function(r){return n.coerce2(t,e,a,r)}),l(t,e,u,c,{hasHover:!1}))}else e._defaultColor=r,e._length=null}},{\\\"../../lib\\\":696,\\\"../contour/constraint_defaults\\\":921,\\\"../contour/contours_defaults\\\":923,\\\"../contour/style_defaults\\\":937,\\\"../heatmap/xyz_defaults\\\":960,\\\"./attributes\\\":938}],941:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../contour/colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"../contour/style\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"contourcarpet\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"carpet\\\",\\\"contour\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"hasLines\\\",\\\"carpetDependent\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../contour/colorbar\\\":919,\\\"../contour/style\\\":936,\\\"./attributes\\\":938,\\\"./calc\\\":939,\\\"./defaults\\\":940,\\\"./plot\\\":944}],942:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/drawing\\\"),i=t(\\\"../carpet/axis_aligned_line\\\"),a=t(\\\"../../lib\\\");e.exports=function(t,e,r,o,s,l,c,u){var f,h,p,d,g,v,m,y=\\\"\\\",x=e.edgepaths.map(function(t,e){return e}),b=!0,_=1e-4*Math.abs(r[0][0]-r[2][0]),w=1e-4*Math.abs(r[0][1]-r[2][1]);function k(t){return Math.abs(t[1]-r[0][1])<w}function M(t){return Math.abs(t[1]-r[2][1])<w}function A(t){return Math.abs(t[0]-r[0][0])<_}function T(t){return Math.abs(t[0]-r[2][0])<_}function S(t,e){var r,n,a,o,f=\\\"\\\";for(k(t)&&!T(t)||M(t)&&!A(t)?(o=s.aaxis,a=i(s,l,[t[0],e[0]],.5*(t[1]+e[1]))):(o=s.baxis,a=i(s,l,.5*(t[0]+e[0]),[t[1],e[1]])),r=1;r<a.length;r++)for(f+=o.smoothing?\\\"C\\\":\\\"L\\\",n=0;n<a[r].length;n++){var h=a[r][n];f+=[c.c2p(h[0]),u.c2p(h[1])]+\\\" \\\"}return f}for(f=0,h=null;x.length;){var E=e.edgepaths[f][0];for(h&&(y+=S(h,E)),m=n.smoothopen(e.edgepaths[f].map(o),e.smoothing),y+=b?m:m.replace(/^M/,\\\"L\\\"),x.splice(x.indexOf(f),1),h=e.edgepaths[f][e.edgepaths[f].length-1],g=-1,d=0;d<4;d++){if(!h){a.log(\\\"Missing end?\\\",f,e);break}for(k(h)&&!T(h)?p=r[1]:A(h)?p=r[0]:M(h)?p=r[3]:T(h)&&(p=r[2]),v=0;v<e.edgepaths.length;v++){var C=e.edgepaths[v][0];Math.abs(h[0]-p[0])<_?Math.abs(h[0]-C[0])<_&&(C[1]-h[1])*(p[1]-C[1])>=0&&(p=C,g=v):Math.abs(h[1]-p[1])<w?Math.abs(h[1]-C[1])<w&&(C[0]-h[0])*(p[0]-C[0])>=0&&(p=C,g=v):a.log(\\\"endpt to newendpt is not vert. or horz.\\\",h,p,C)}if(g>=0)break;y+=S(h,p),h=p}if(g===e.edgepaths.length){a.log(\\\"unclosed perimeter path\\\");break}f=g,(b=-1===x.indexOf(f))&&(f=x[0],y+=S(h,p)+\\\"Z\\\",h=null)}for(f=0;f<e.paths.length;f++)y+=n.smoothclosed(e.paths[f].map(o),e.smoothing);return y}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../carpet/axis_aligned_line\\\":878}],943:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n,i,a,o,s,l,c,u;for(r=0;r<t.length;r++){for(o=(a=t[r]).pedgepaths=[],s=a.ppaths=[],n=0;n<a.edgepaths.length;n++){for(u=a.edgepaths[n],l=[],i=0;i<u.length;i++)l[i]=e(u[i]);o.push(l)}for(n=0;n<a.paths.length;n++){for(u=a.paths[n],c=[],i=0;i<u.length;i++)c[i]=e(u[i]);s.push(c)}}}},{}],944:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../carpet/map_1d_array\\\"),a=t(\\\"../carpet/makepath\\\"),o=t(\\\"../../components/drawing\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../contour/make_crossings\\\"),c=t(\\\"../contour/find_all_paths\\\"),u=t(\\\"../contour/plot\\\"),f=t(\\\"../contour/constants\\\"),h=t(\\\"../contour/convert_to_constraints\\\"),p=t(\\\"./join_all_paths\\\"),d=t(\\\"../contour/empty_pathinfo\\\"),g=t(\\\"./map_pathinfo\\\"),v=t(\\\"../carpet/lookup_carpetid\\\"),m=t(\\\"../contour/close_boundaries\\\");function y(t,e,r){var n=t.getPointAtLength(e),i=t.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function x(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]}function b(t,e){var r=Math.abs(t[0]*e[0]+t[1]*e[1]);return Math.sqrt(1-r*r)/r}e.exports=function(t,e,r,_){var w=e.xaxis,k=e.yaxis;s.makeTraceGroups(_,r,\\\"contour\\\").each(function(r){var _=n.select(this),M=r[0],A=M.trace,T=A._carpetTrace=v(t,A),S=t.calcdata[T.index][0];if(T.visible&&\\\"legendonly\\\"!==T.visible){var E=M.a,C=M.b,L=A.contours,z=d(L,e,M),O=\\\"constraint\\\"===L.type,I=L._operation,P=O?\\\"=\\\"===I?\\\"lines\\\":\\\"fill\\\":L.coloring,D=[[E[0],C[C.length-1]],[E[E.length-1],C[C.length-1]],[E[E.length-1],C[0]],[E[0],C[0]]];l(z);var R=1e-8*(E[E.length-1]-E[0]),B=1e-8*(C[C.length-1]-C[0]);c(z,R,B);var F,N,j,V,U=z;\\\"constraint\\\"===L.type&&(U=h(z,I),m(U,I,D,A)),g(z,G);var q=[];for(V=S.clipsegments.length-1;V>=0;V--)F=S.clipsegments[V],N=i([],F.x,w.c2p),j=i([],F.y,k.c2p),N.reverse(),j.reverse(),q.push(a(N,j,F.bicubic));var H=\\\"M\\\"+q.join(\\\"L\\\")+\\\"Z\\\";!function(t,e,r,n,o,l){var c,u,f,h,p=s.ensureSingle(t,\\\"g\\\",\\\"contourbg\\\").selectAll(\\\"path\\\").data(\\\"fill\\\"!==l||o?[]:[0]);p.enter().append(\\\"path\\\"),p.exit().remove();var d=[];for(h=0;h<e.length;h++)c=e[h],u=i([],c.x,r.c2p),f=i([],c.y,n.c2p),d.push(a(u,f,c.bicubic));p.attr(\\\"d\\\",\\\"M\\\"+d.join(\\\"L\\\")+\\\"Z\\\").style(\\\"stroke\\\",\\\"none\\\")}(_,S.clipsegments,w,k,O,P),function(t,e,r,i,a,o,l,c,u,f,h){var d=s.ensureSingle(e,\\\"g\\\",\\\"contourfill\\\").selectAll(\\\"path\\\").data(\\\"fill\\\"===f?a:[]);d.enter().append(\\\"path\\\"),d.exit().remove(),d.each(function(e){var a=p(t,e,o,l,c,u,r,i);e.prefixBoundary&&(a=h+a),a?n.select(this).attr(\\\"d\\\",a).style(\\\"stroke\\\",\\\"none\\\"):n.select(this).remove()})}(A,_,w,k,U,D,G,T,S,P,H),function(t,e,r,i,a,l,c){var h=s.ensureSingle(t,\\\"g\\\",\\\"contourlines\\\"),p=!1!==a.showlines,d=a.showlabels,g=p&&d,v=u.createLines(h,p||d,e),m=u.createLineClip(h,g,r._fullLayout._defs,i.trace.uid),_=t.selectAll(\\\"g.contourlabels\\\").data(d?[0]:[]);if(_.exit().remove(),_.enter().append(\\\"g\\\").classed(\\\"contourlabels\\\",!0),d){var w=l.xaxis,k=l.yaxis,M=w._length,A=k._length,T=[[[0,0],[M,0],[M,A],[0,A]]],S=[];s.clearLocationCache();var E=u.labelFormatter(a,i.t.cb,r._fullLayout),C=o.tester.append(\\\"text\\\").attr(\\\"data-notex\\\",1).call(o.font,a.labelfont),L={left:0,right:M,center:M/2,top:0,bottom:A,middle:A/2},z=Math.sqrt(M*M+A*A),O=f.LABELDISTANCE*z/Math.max(1,e.length/f.LABELINCREASE);v.each(function(t){var e=u.calcTextOpts(t.level,E,C,r);n.select(this).selectAll(\\\"path\\\").each(function(r){var n=s.getVisibleSegment(this,L,e.height/2);if(n&&(function(t,e,r,n,i,a){for(var o,s=0;s<r.pedgepaths.length;s++)e===r.pedgepaths[s]&&(o=r.edgepaths[s]);if(!o)return;var l=i.a[0],c=i.a[i.a.length-1],u=i.b[0],f=i.b[i.b.length-1];function h(t,e){var r,n=0;return(Math.abs(t[0]-l)<.1||Math.abs(t[0]-c)<.1)&&(r=x(i.dxydb_rough(t[0],t[1],.1)),n=Math.max(n,a*b(e,r)/2)),(Math.abs(t[1]-u)<.1||Math.abs(t[1]-f)<.1)&&(r=x(i.dxyda_rough(t[0],t[1],.1)),n=Math.max(n,a*b(e,r)/2)),n}var p=y(t,0,1),d=y(t,n.total,n.total-1),g=h(o[0],p),v=n.total-h(o[o.length-1],d);n.min<g&&(n.min=g);n.max>v&&(n.max=v);n.len=n.max-n.min}(this,r,t,n,c,e.height),!(n.len<(e.width+e.height)*f.LABELMIN)))for(var i=Math.min(Math.ceil(n.len/O),f.LABELMAX),a=0;a<i;a++){var o=u.findBestTextLocation(this,n,e,S,L);if(!o)break;u.addLabelData(o,e,S,T)}})}),C.remove(),u.drawLabels(_,S,r,m,g?T:null)}d&&!p&&v.remove()}(_,z,t,M,L,e,T),o.setClipUrl(_,T._clipPathId)}function G(t){var e=T.ab2xy(t[0],t[1],!0);return[w.c2p(e[0]),k.c2p(e[1])]}})}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../carpet/lookup_carpetid\\\":894,\\\"../carpet/makepath\\\":895,\\\"../carpet/map_1d_array\\\":896,\\\"../contour/close_boundaries\\\":918,\\\"../contour/constants\\\":920,\\\"../contour/convert_to_constraints\\\":924,\\\"../contour/empty_pathinfo\\\":926,\\\"../contour/find_all_paths\\\":928,\\\"../contour/make_crossings\\\":933,\\\"../contour/plot\\\":934,\\\"./join_all_paths\\\":942,\\\"./map_pathinfo\\\":943,d3:148}],945:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../lib/extend\\\").extendFlat;e.exports=o({z:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},x:o({},n.x,{impliedEdits:{xtype:\\\"array\\\"}}),x0:o({},n.x0,{impliedEdits:{xtype:\\\"scaled\\\"}}),dx:o({},n.dx,{impliedEdits:{xtype:\\\"scaled\\\"}}),y:o({},n.y,{impliedEdits:{ytype:\\\"array\\\"}}),y0:o({},n.y0,{impliedEdits:{ytype:\\\"scaled\\\"}}),dy:o({},n.dy,{impliedEdits:{ytype:\\\"scaled\\\"}}),text:{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\\\"},connectgaps:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},xgap:{valType:\\\"number\\\",dflt:0,min:0,editType:\\\"plot\\\"},ygap:{valType:\\\"number\\\",dflt:0,min:0,editType:\\\"plot\\\"},zhoverformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"none\\\"},transforms:void 0},i(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1}),{colorbar:a})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../scatter/attributes\\\":1043}],946:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../histogram2d/calc\\\"),s=t(\\\"../../components/colorscale/calc\\\"),l=t(\\\"./convert_column_xyz\\\"),c=t(\\\"./max_row_length\\\"),u=t(\\\"./clean_2d_array\\\"),f=t(\\\"./interp2d\\\"),h=t(\\\"./find_empties\\\"),p=t(\\\"./make_bound_array\\\");e.exports=function(t,e){var r,d,g,v,m,y,x,b,_,w=a.getFromId(t,e.xaxis||\\\"x\\\"),k=a.getFromId(t,e.yaxis||\\\"y\\\"),M=n.traceIs(e,\\\"contour\\\"),A=n.traceIs(e,\\\"histogram\\\"),T=n.traceIs(e,\\\"gl2d\\\"),S=M?\\\"best\\\":e.zsmooth;if(w._minDtick=0,k._minDtick=0,A)r=(_=o(t,e)).x,d=_.x0,g=_.dx,v=_.y,m=_.y0,y=_.dy,x=_.z;else{var E=e.z;i.isArray1D(E)?(l(e,w,k,\\\"x\\\",\\\"y\\\",[\\\"z\\\"]),r=e._x,v=e._y,E=e._z):(r=e.x?w.makeCalcdata(e,\\\"x\\\"):[],v=e.y?k.makeCalcdata(e,\\\"y\\\"):[]),d=e.x0||0,g=e.dx||1,m=e.y0||0,y=e.dy||1,x=u(E,e.transpose),(M||e.connectgaps)&&(e._emptypoints=h(x),f(x,e._emptypoints))}function C(t){S=e._input.zsmooth=e.zsmooth=!1,i.warn('cannot use zsmooth: \\\"fast\\\": '+t)}if(\\\"fast\\\"===S)if(\\\"log\\\"===w.type||\\\"log\\\"===k.type)C(\\\"log axis found\\\");else if(!A){if(r.length){var L=(r[r.length-1]-r[0])/(r.length-1),z=Math.abs(L/100);for(b=0;b<r.length-1;b++)if(Math.abs(r[b+1]-r[b]-L)>z){C(\\\"x scale is not linear\\\");break}}if(v.length&&\\\"fast\\\"===S){var O=(v[v.length-1]-v[0])/(v.length-1),I=Math.abs(O/100);for(b=0;b<v.length-1;b++)if(Math.abs(v[b+1]-v[b]-O)>I){C(\\\"y scale is not linear\\\");break}}}var P=c(x),D=\\\"scaled\\\"===e.xtype?\\\"\\\":r,R=p(e,D,d,g,P,w),B=\\\"scaled\\\"===e.ytype?\\\"\\\":v,F=p(e,B,m,y,x.length,k);T||(e._extremes[w._id]=a.findExtremes(w,R),e._extremes[k._id]=a.findExtremes(k,F));var N={x:R,y:F,z:x,text:e._text||e.text};if(D&&D.length===R.length-1&&(N.xCenter=D),B&&B.length===F.length-1&&(N.yCenter=B),A&&(N.xRanges=_.xRanges,N.yRanges=_.yRanges,N.pts=_.pts),M&&\\\"constraint\\\"===e.contours.type||s(e,x,\\\"\\\",\\\"z\\\"),M&&e.contours&&\\\"heatmap\\\"===e.contours.coloring){var j={type:\\\"contour\\\"===e.type?\\\"heatmap\\\":\\\"histogram2d\\\",xcalendar:e.xcalendar,ycalendar:e.ycalendar};N.xfill=p(j,D,d,g,P,w),N.yfill=p(j,B,m,y,x.length,k)}return[N]}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"../histogram2d/calc\\\":977,\\\"./clean_2d_array\\\":947,\\\"./convert_column_xyz\\\":949,\\\"./find_empties\\\":951,\\\"./interp2d\\\":954,\\\"./make_bound_array\\\":955,\\\"./max_row_length\\\":956}],947:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\");e.exports=function(t,e){var r,i,a,o,s,l;function c(t){if(n(t))return+t}if(e){for(r=0,s=0;s<t.length;s++)r=Math.max(r,t[s].length);if(0===r)return!1;a=function(t){return t.length},o=function(t,e,r){return t[r][e]}}else r=t.length,a=function(t,e){return t[e].length},o=function(t,e,r){return t[e][r]};var u=new Array(r);for(s=0;s<r;s++)for(i=a(t,s),u[s]=new Array(i),l=0;l<i;l++)u[s][l]=c(o(t,s,l));return u}},{\\\"fast-isnumeric\\\":214}],948:[function(t,e,r){\\\"use strict\\\";e.exports={min:\\\"zmin\\\",max:\\\"zmax\\\"}},{}],949:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e,r,a,o,s){var l,c,u,f=t._length,h=t[a].slice(0,f),p=t[o].slice(0,f),d=t.text,g=void 0!==d&&n.isArray1D(d),v=t[a+\\\"calendar\\\"],m=t[o+\\\"calendar\\\"];for(l=0;l<f;l++)h[l]=e.d2c(h[l],0,v),p[l]=r.d2c(p[l],0,m);var y,x,b,_=n.distinctVals(h),w=_.vals,k=n.distinctVals(p),M=k.vals,A=[];for(l=0;l<s.length;l++)A[l]=n.init2dArray(M.length,w.length);for(g&&(b=n.init2dArray(M.length,w.length)),l=0;l<f;l++)if(h[l]!==i&&p[l]!==i){for(y=n.findBin(h[l]+_.minDiff/2,w),x=n.findBin(p[l]+k.minDiff/2,M),c=0;c<s.length;c++)u=t[s[c]],A[c][x][y]=u[l];g&&(b[x][y]=d[l])}for(t[\\\"_\\\"+a]=w,t[\\\"_\\\"+o]=M,c=0;c<s.length;c++)t[\\\"_\\\"+s[c]]=A[c];g&&(t._text=b)}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696}],950:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./xyz_defaults\\\"),a=t(\\\"./style_defaults\\\"),o=t(\\\"../../components/colorscale/defaults\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,s,r,i)}i(t,e,c,l)?(c(\\\"text\\\"),a(t,e,c,l),c(\\\"connectgaps\\\",n.isArray1D(e.z)&&!1!==e.zsmooth),o(t,e,l,c,{prefix:\\\"\\\",cLetter:\\\"z\\\"})):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"./attributes\\\":945,\\\"./style_defaults\\\":959,\\\"./xyz_defaults\\\":960}],951:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./max_row_length\\\");e.exports=function(t){var e,r,i,a,o,s,l,c,u=[],f={},h=[],p=t[0],d=[],g=[0,0,0],v=n(t);for(r=0;r<t.length;r++)for(e=d,d=p,p=t[r+1]||[],i=0;i<v;i++)void 0===d[i]&&((s=(void 0!==d[i-1]?1:0)+(void 0!==d[i+1]?1:0)+(void 0!==e[i]?1:0)+(void 0!==p[i]?1:0))?(0===r&&s++,0===i&&s++,r===t.length-1&&s++,i===d.length-1&&s++,s<4&&(f[[r,i]]=[r,i,s]),u.push([r,i,s])):h.push([r,i]));for(;h.length;){for(l={},c=!1,o=h.length-1;o>=0;o--)(s=((f[[(r=(a=h[o])[0])-1,i=a[1]]]||g)[2]+(f[[r+1,i]]||g)[2]+(f[[r,i-1]]||g)[2]+(f[[r,i+1]]||g)[2])/20)&&(l[a]=[r,i,s],h.splice(o,1),c=!0);if(!c)throw\\\"findEmpties iterated with no new neighbors\\\";for(a in l)f[a]=l[a],u.push(l[a])}return u.sort(function(t,e){return e[2]-t[2]})}},{\\\"./max_row_length\\\":956}],952:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\");e.exports=function(t,e,r,o,s,l){var c,u,f,h,p=t.cd[0],d=p.trace,g=t.xa,v=t.ya,m=p.x,y=p.y,x=p.z,b=p.xCenter,_=p.yCenter,w=p.zmask,k=[d.zmin,d.zmax],M=d.zhoverformat,A=m,T=y;if(!1!==t.index){try{f=Math.round(t.index[1]),h=Math.round(t.index[0])}catch(e){return void i.error(\\\"Error hovering on heatmap, pointNumber must be [row,col], found:\\\",t.index)}if(f<0||f>=x[0].length||h<0||h>x.length)return}else{if(n.inbox(e-m[0],e-m[m.length-1],0)>0||n.inbox(r-y[0],r-y[y.length-1],0)>0)return;if(l){var S;for(A=[2*m[0]-m[1]],S=1;S<m.length;S++)A.push((m[S]+m[S-1])/2);for(A.push([2*m[m.length-1]-m[m.length-2]]),T=[2*y[0]-y[1]],S=1;S<y.length;S++)T.push((y[S]+y[S-1])/2);T.push([2*y[y.length-1]-y[y.length-2]])}f=Math.max(0,Math.min(A.length-2,i.findBin(e,A))),h=Math.max(0,Math.min(T.length-2,i.findBin(r,T)))}var E=g.c2p(m[f]),C=g.c2p(m[f+1]),L=v.c2p(y[h]),z=v.c2p(y[h+1]);l?(C=E,c=m[f],z=L,u=y[h]):(c=b?b[f]:(m[f]+m[f+1])/2,u=_?_[h]:(y[h]+y[h+1])/2,d.zsmooth&&(E=C=g.c2p(c),L=z=v.c2p(u)));var O,I,P=x[h][f];w&&!w[h][f]&&(P=void 0),Array.isArray(p.text)&&Array.isArray(p.text[h])&&(O=p.text[h][f]);var D={type:\\\"linear\\\",range:k,hoverformat:M,_separators:g._separators,_numFormat:g._numFormat};return I=a.tickText(D,P,\\\"hover\\\").text,[i.extendFlat(t,{index:[h,f],distance:t.maxHoverDistance,spikeDistance:t.maxSpikeDistance,x0:E,x1:C,y0:L,y1:z,xLabelVal:c,yLabelVal:u,zLabelVal:P,zLabel:I,text:O})]}},{\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],953:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.colorbar=t(\\\"./colorbar\\\"),n.style=t(\\\"./style\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"heatmap\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"2dMap\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":945,\\\"./calc\\\":946,\\\"./colorbar\\\":948,\\\"./defaults\\\":950,\\\"./hover\\\":952,\\\"./plot\\\":957,\\\"./style\\\":958}],954:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=[[-1,0],[1,0],[0,-1],[0,1]];function a(t){return.5-.25*Math.min(1,.5*t)}function o(t,e,r){var n,a,o,s,l,c,u,f,h,p,d,g,v,m=0;for(s=0;s<e.length;s++){for(a=(n=e[s])[0],o=n[1],d=t[a][o],p=0,h=0,l=0;l<4;l++)(u=t[a+(c=i[l])[0]])&&void 0!==(f=u[o+c[1]])&&(0===p?g=v=f:(g=Math.min(g,f),v=Math.max(v,f)),h++,p+=f);if(0===h)throw\\\"iterateInterp2d order is wrong: no defined neighbors\\\";t[a][o]=p/h,void 0===d?h<4&&(m=1):(t[a][o]=(1+r)*t[a][o]-r*d,v>g&&(m=Math.max(m,Math.abs(t[a][o]-d)/(v-g))))}return m}e.exports=function(t,e){var r,i=1;for(o(t,e),r=0;r<e.length&&!(e[r][2]<4);r++);for(e=e.slice(r),r=0;r<100&&i>.01;r++)i=o(t,e,a(i));return i>.01&&n.log(\\\"interp2d didn't converge quickly\\\",i),t}},{\\\"../../lib\\\":696}],955:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r,a,o,s){var l,c,u,f=[],h=n.traceIs(t,\\\"contour\\\"),p=n.traceIs(t,\\\"histogram\\\"),d=n.traceIs(t,\\\"gl2d\\\");if(i(e)&&e.length>1&&!p&&\\\"category\\\"!==s.type){var g=e.length;if(!(g<=o))return h?e.slice(0,o):e.slice(0,o+1);if(h||d)f=e.slice(0,o);else if(1===o)f=[e[0]-.5,e[0]+.5];else{for(f=[1.5*e[0]-.5*e[1]],u=1;u<g;u++)f.push(.5*(e[u-1]+e[u]));f.push(1.5*e[g-1]-.5*e[g-2])}if(g<o){var v=f[f.length-1],m=v-f[f.length-2];for(u=g;u<o;u++)v+=m,f.push(v)}}else{c=a||1;var y=t[s._id.charAt(0)+\\\"calendar\\\"];for(l=p||\\\"category\\\"===s.type?s.r2c(r,0,y)||0:i(e)&&1===e.length?e[0]:void 0===r?0:s.d2c(r,0,y),u=h||d?0:-.5;u<o;u++)f.push(l+c*u)}return f}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827}],956:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=0,r=0;r<t.length;r++)e=Math.max(e,t[r].length);return e}},{}],957:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../components/colorscale\\\"),l=t(\\\"../../constants/xmlns_namespaces\\\"),c=t(\\\"./max_row_length\\\");function u(t,e){var r=e.length-2,n=o.constrain(o.findBin(t,e),0,r),i=e[n],a=e[n+1],s=o.constrain(n+(t-i)/(a-i)-.5,0,r),l=Math.round(s),c=Math.abs(s-l);return s&&s!==r&&c?{bin0:l,frac:c,bin1:Math.round(l+c/(s-l))}:{bin0:l,bin1:l,frac:0}}function f(t,e){var r=e.length-1,n=o.constrain(o.findBin(t,e),0,r),i=e[n],a=(t-i)/(e[n+1]-i)||0;return a<=0?{bin0:n,bin1:n,frac:0}:a<.5?{bin0:n,bin1:n+1,frac:a}:{bin0:n+1,bin1:n,frac:1-a}}function h(t,e,r){t[e]=r[0],t[e+1]=r[1],t[e+2]=r[2],t[e+3]=Math.round(255*r[3])}e.exports=function(t,e,r,p){var d=e.xaxis,g=e.yaxis;o.makeTraceGroups(p,r,\\\"hm\\\").each(function(e){var r,p,v,m,y,x,b=n.select(this),_=e[0],w=_.trace,k=_.z,M=_.x,A=_.y,T=_.xCenter,S=_.yCenter,E=a.traceIs(w,\\\"contour\\\"),C=E?\\\"best\\\":w.zsmooth,L=k.length,z=c(k),O=!1,I=!1;for(x=0;void 0===r&&x<M.length-1;)r=d.c2p(M[x]),x++;for(x=M.length-1;void 0===p&&x>0;)p=d.c2p(M[x]),x--;for(p<r&&(v=p,p=r,r=v,O=!0),x=0;void 0===m&&x<A.length-1;)m=g.c2p(A[x]),x++;for(x=A.length-1;void 0===y&&x>0;)y=g.c2p(A[x]),x--;if(y<m&&(v=m,m=y,y=v,I=!0),E&&(T=M,S=A,M=_.xfill,A=_.yfill),\\\"fast\\\"!==C){var P=\\\"best\\\"===C?0:.5;r=Math.max(-P*d._length,r),p=Math.min((1+P)*d._length,p),m=Math.max(-P*g._length,m),y=Math.min((1+P)*g._length,y)}var D=Math.round(p-r),R=Math.round(y-m);if(D<=0||R<=0){b.selectAll(\\\"image\\\").data([]).exit().remove()}else{var B,F;\\\"fast\\\"===C?(B=z,F=L):(B=D,F=R);var N=document.createElement(\\\"canvas\\\");N.width=B,N.height=F;var j,V,U=N.getContext(\\\"2d\\\"),q=s.makeColorScaleFunc(s.extractScale(w.colorscale,w.zmin,w.zmax),{noNumericCheck:!0,returnArray:!0});\\\"fast\\\"===C?(j=O?function(t){return z-1-t}:o.identity,V=I?function(t){return L-1-t}:o.identity):(j=function(t){return o.constrain(Math.round(d.c2p(M[t])-r),0,D)},V=function(t){return o.constrain(Math.round(g.c2p(A[t])-m),0,R)});var H,G,W,Y,X,Z=V(0),$=[Z,Z],J=O?0:1,K=I?0:1,Q=0,tt=0,et=0,rt=0;if(C){var nt,it=0;try{nt=new Uint8Array(D*R*4)}catch(t){nt=new Array(D*R*4)}if(\\\"best\\\"===C){var at,ot,st,lt=T||M,ct=S||A,ut=new Array(lt.length),ft=new Array(ct.length),ht=new Array(D),pt=T?f:u,dt=S?f:u;for(x=0;x<lt.length;x++)ut[x]=Math.round(d.c2p(lt[x])-r);for(x=0;x<ct.length;x++)ft[x]=Math.round(g.c2p(ct[x])-m);for(x=0;x<D;x++)ht[x]=pt(x,ut);for(G=0;G<R;G++)for(ot=k[(at=dt(G,ft)).bin0],st=k[at.bin1],x=0;x<D;x++,it+=4)h(nt,it,X=At(ot,st,ht[x],at))}else for(G=0;G<L;G++)for(Y=k[G],$=V(G),x=0;x<D;x++)X=Mt(Y[x],1),h(nt,it=4*($*D+j(x)),X);var gt=U.createImageData(D,R);try{gt.data.set(nt)}catch(t){var vt=gt.data,mt=vt.length;for(G=0;G<mt;G++)vt[G]=nt[G]}U.putImageData(gt,0,0)}else{var yt=w.xgap,xt=w.ygap,bt=Math.floor(yt/2),_t=Math.floor(xt/2);for(G=0;G<L;G++)if(Y=k[G],$.reverse(),$[K]=V(G+1),$[0]!==$[1]&&void 0!==$[0]&&void 0!==$[1])for(H=[W=j(0),W],x=0;x<z;x++)H.reverse(),H[J]=j(x+1),H[0]!==H[1]&&void 0!==H[0]&&void 0!==H[1]&&(X=Mt(Y[x],(H[1]-H[0])*($[1]-$[0])),U.fillStyle=\\\"rgba(\\\"+X.join(\\\",\\\")+\\\")\\\",U.fillRect(H[0]+bt,$[0]+_t,H[1]-H[0]-yt,$[1]-$[0]-xt))}tt=Math.round(tt/Q),et=Math.round(et/Q),rt=Math.round(rt/Q);var wt=i(\\\"rgb(\\\"+tt+\\\",\\\"+et+\\\",\\\"+rt+\\\")\\\");t._hmpixcount=(t._hmpixcount||0)+Q,t._hmlumcount=(t._hmlumcount||0)+Q*wt.getLuminance();var kt=b.selectAll(\\\"image\\\").data(e);kt.enter().append(\\\"svg:image\\\").attr({xmlns:l.svg,preserveAspectRatio:\\\"none\\\"}),kt.attr({height:R,width:D,x:r,y:m,\\\"xlink:href\\\":N.toDataURL(\\\"image/png\\\")})}function Mt(t,e){if(void 0!==t){var r=q(t);return r[0]=Math.round(r[0]),r[1]=Math.round(r[1]),r[2]=Math.round(r[2]),Q+=e,tt+=r[0]*e,et+=r[1]*e,rt+=r[2]*e,r}return[0,0,0,0]}function At(t,e,r,n){var i=t[r.bin0];if(void 0===i)return Mt(void 0,1);var a,o=t[r.bin1],s=e[r.bin0],l=e[r.bin1],c=o-i||0,u=s-i||0;return a=void 0===o?void 0===l?0:void 0===s?2*(l-i):2*(2*l-s-i)/3:void 0===l?void 0===s?0:2*(2*i-o-s)/3:void 0===s?2*(2*l-o-i)/3:l+i-o-s,Mt(i+r.frac*c+n.frac*(u+r.frac*a))}})}},{\\\"../../components/colorscale\\\":585,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./max_row_length\\\":956,d3:148,tinycolor2:514}],958:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\");e.exports=function(t){n.select(t).selectAll(\\\".hm image\\\").style(\\\"opacity\\\",function(t){return t.trace.opacity})}},{d3:148}],959:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){!1===r(\\\"zsmooth\\\")&&(r(\\\"xgap\\\"),r(\\\"ygap\\\")),r(\\\"zhoverformat\\\")}},{}],960:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../registry\\\");function o(t,e){var r=e(t);return\\\"scaled\\\"===(r?e(t+\\\"type\\\",\\\"array\\\"):\\\"scaled\\\")&&(e(t+\\\"0\\\"),e(\\\"d\\\"+t)),r}e.exports=function(t,e,r,s,l,c){var u,f,h=r(\\\"z\\\");if(l=l||\\\"x\\\",c=c||\\\"y\\\",void 0===h||!h.length)return 0;if(i.isArray1D(t.z)){if(u=r(l),f=r(c),!(u&&u.length&&f&&f.length))return 0;e._length=Math.min(u.length,f.length,h.length)}else{if(u=o(l,r),f=o(c,r),!function(t){for(var e,r=!0,a=!1,o=!1,s=0;s<t.length;s++){if(e=t[s],!i.isArrayOrTypedArray(e)){r=!1;break}e.length>0&&(a=!0);for(var l=0;l<e.length;l++)if(n(e[l])){o=!0;break}}return r&&a&&o}(h))return 0;r(\\\"transpose\\\"),e._length=null}return a.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[l,c],s),!0}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"fast-isnumeric\\\":214}],961:[function(t,e,r){\\\"use strict\\\";for(var n=t(\\\"../heatmap/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../lib/extend\\\").extendFlat,s=t(\\\"../../plot_api/edit_types\\\").overrideAll,l=[\\\"z\\\",\\\"x\\\",\\\"x0\\\",\\\"dx\\\",\\\"y\\\",\\\"y0\\\",\\\"dy\\\",\\\"text\\\",\\\"transpose\\\",\\\"xtype\\\",\\\"ytype\\\"],c={},u=0;u<l.length;u++){var f=l[u];c[f]=n[f]}o(c,i(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1}),{colorbar:a}),e.exports=s(c,\\\"calc\\\",\\\"nested\\\")},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../heatmap/attributes\\\":945}],962:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-heatmap2d\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../lib/str2rgbarray\\\");function o(t,e){this.scene=t,this.uid=e,this.type=\\\"heatmapgl\\\",this.name=\\\"\\\",this.hoverinfo=\\\"all\\\",this.xData=[],this.yData=[],this.zData=[],this.textLabels=[],this.idToIndex=[],this.bounds=[0,0,0,0],this.options={z:[],x:[],y:[],shape:[0,0],colorLevels:[0],colorValues:[0,0,0,1]},this.heatmap=n(t.glplot,this.options),this.heatmap._trace=this}var s=o.prototype;s.handlePick=function(t){var e=this.options,r=e.shape,n=t.pointId,i=n%r[0],a=Math.floor(n/r[0]),o=n;return{trace:this,dataCoord:t.dataCoord,traceCoord:[e.x[i],e.y[a],e.z[o]],textLabel:this.textLabels[n],name:this.name,pointIndex:[a,i],hoverinfo:this.hoverinfo}},s.update=function(t,e){var r=e[0];this.index=t.index,this.name=t.name,this.hoverinfo=t.hoverinfo;var n=r.z;this.options.z=[].concat.apply([],n);var o=n[0].length,s=n.length;this.options.shape=[o,s],this.options.x=r.x,this.options.y=r.y;var l=function(t){for(var e=t.colorscale,r=t.zmin,n=t.zmax,i=e.length,o=new Array(i),s=new Array(4*i),l=0;l<i;l++){var c=e[l],u=a(c[1]);o[l]=r+c[0]*(n-r);for(var f=0;f<4;f++)s[4*l+f]=u[f]}return{colorLevels:o,colorValues:s}}(t);this.options.colorLevels=l.colorLevels,this.options.colorValues=l.colorValues,this.textLabels=[].concat.apply([],t.text),this.heatmap.update(this.options);var c=this.scene.xaxis,u=this.scene.yaxis;t._extremes[c._id]=i.findExtremes(c,r.x),t._extremes[u._id]=i.findExtremes(u,r.y)},s.dispose=function(){this.heatmap.dispose()},e.exports=function(t,e,r){var n=new o(t,e.uid);return n.update(e,r),n}},{\\\"../../lib/str2rgbarray\\\":719,\\\"../../plots/cartesian/axes\\\":744,\\\"gl-heatmap2d\\\":241}],963:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"../heatmap/defaults\\\"),n.colorbar=t(\\\"../heatmap/colorbar\\\"),n.calc=t(\\\"../heatmap/calc\\\"),n.plot=t(\\\"./convert\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"heatmapgl\\\",n.basePlotModule=t(\\\"../../plots/gl2d\\\"),n.categories=[\\\"gl\\\",\\\"gl2d\\\",\\\"2dMap\\\"],n.meta={},e.exports=n},{\\\"../../plots/gl2d\\\":784,\\\"../heatmap/calc\\\":946,\\\"../heatmap/colorbar\\\":948,\\\"../heatmap/defaults\\\":950,\\\"./attributes\\\":961,\\\"./convert\\\":962}],964:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../bar/attributes\\\"),i=t(\\\"./bin_attributes\\\");e.exports={x:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},y:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},text:n.text,orientation:n.orientation,histfunc:{valType:\\\"enumerated\\\",values:[\\\"count\\\",\\\"sum\\\",\\\"avg\\\",\\\"min\\\",\\\"max\\\"],dflt:\\\"count\\\",editType:\\\"calc\\\"},histnorm:{valType:\\\"enumerated\\\",values:[\\\"\\\",\\\"percent\\\",\\\"probability\\\",\\\"density\\\",\\\"probability density\\\"],dflt:\\\"\\\",editType:\\\"calc\\\"},cumulative:{enabled:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},direction:{valType:\\\"enumerated\\\",values:[\\\"increasing\\\",\\\"decreasing\\\"],dflt:\\\"increasing\\\",editType:\\\"calc\\\"},currentbin:{valType:\\\"enumerated\\\",values:[\\\"include\\\",\\\"exclude\\\",\\\"half\\\"],dflt:\\\"include\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"},nbinsx:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},xbins:i(\\\"x\\\",!0),nbinsy:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},ybins:i(\\\"y\\\",!0),autobinx:{valType:\\\"boolean\\\",dflt:null,editType:\\\"calc\\\"},autobiny:{valType:\\\"boolean\\\",dflt:null,editType:\\\"calc\\\",impliedEdits:{\\\"ybins.start\\\":void 0,\\\"ybins.end\\\":void 0,\\\"ybins.size\\\":void 0}},marker:n.marker,selected:n.selected,unselected:n.unselected,_deprecated:{bardir:n._deprecated.bardir}}},{\\\"../bar/attributes\\\":837,\\\"./bin_attributes\\\":966}],965:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r=t.length,n=0,i=0;i<r;i++)e[i]?(t[i]/=e[i],n+=t[i]):t[i]=null;return n}},{}],966:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return{start:{valType:\\\"any\\\",editType:\\\"calc\\\"},end:{valType:\\\"any\\\",editType:\\\"calc\\\"},size:{valType:\\\"any\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"}}},{}],967:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\");e.exports={count:function(t,e,r){return r[t]++,1},sum:function(t,e,r,i){var a=i[e];return n(a)?(a=Number(a),r[t]+=a,a):0},avg:function(t,e,r,i,a){var o=i[e];return n(o)&&(o=Number(o),r[t]+=o,a[t]++),0},min:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]>a){var o=a-r[t];return r[t]=a,o}}return 0},max:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]<a){var o=a-r[t];return r[t]=a,o}}return 0}}},{\\\"fast-isnumeric\\\":214}],968:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../constants/numerical\\\"),i=n.ONEAVGYEAR,a=n.ONEAVGMONTH,o=n.ONEDAY,s=n.ONEHOUR,l=n.ONEMIN,c=n.ONESEC,u=t(\\\"../../plots/cartesian/axes\\\").tickIncrement;function f(t,e,r,n){if(t*e<=0)return 1/0;for(var i=Math.abs(e-t),a=\\\"date\\\"===r.type,o=h(i,a),s=0;s<10;s++){var l=h(80*o,a);if(o===l)break;if(!p(l,t,e,a,r,n))break;o=l}return o}function h(t,e){return e&&t>c?t>o?t>1.1*i?i:t>1.1*a?a:o:t>s?s:t>l?l:c:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function p(t,e,r,n,a,s){if(n&&t>o){var l=d(e,a,s),c=d(r,a,s),u=t===i?0:1;return l[u]!==c[u]}return Math.floor(r/t)-Math.floor(e/t)>.1}function d(t,e,r){var n=e.c2d(t,i,r).split(\\\"-\\\");return\\\"\\\"===n[0]&&(n.unshift(),n[0]=\\\"-\\\"+n[0]),n}e.exports=function(t,e,r,n,a){var s,l,c=-1.1*e,h=-.1*e,p=t-h,d=r[0],g=r[1],v=Math.min(f(d+h,d+p,n,a),f(g+h,g+p,n,a)),m=Math.min(f(d+c,d+h,n,a),f(g+c,g+h,n,a));if(v>m&&m<Math.abs(g-d)/4e3?(s=v,l=!1):(s=Math.min(v,m),l=!0),\\\"date\\\"===n.type&&s>o){var y=s===i?1:6,x=s===i?\\\"M12\\\":\\\"M1\\\";return function(e,r){var o=n.c2d(e,i,a),s=o.indexOf(\\\"-\\\",y);s>0&&(o=o.substr(0,s));var c=n.d2c(o,0,a);if(c<e){var f=u(c,x,!1,a);(c+f)/2<e+t&&(c=f)}return r&&l?u(c,x,!0,a):c}}return function(e,r){var n=s*Math.round(e/s);return n+s/10<e&&n+.9*s<e+t&&(n+=s),r&&l&&(n-=s),n}}},{\\\"../../constants/numerical\\\":673,\\\"../../plots/cartesian/axes\\\":744}],969:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../bar/arrays_to_calcdata\\\"),s=t(\\\"./bin_functions\\\"),l=t(\\\"./norm_functions\\\"),c=t(\\\"./average\\\"),u=t(\\\"./bin_label_vals\\\");function f(t,e,r,o,s){var l,c,u,h,p,d,g,v=o+\\\"bins\\\",m=t._fullLayout,y=\\\"overlay\\\"===m.barmode,x=\\\"date\\\"===r.type?function(t){return t||0===t?i.cleanDate(t,null,r.calendar):null}:function(t){return n(t)?Number(t):null};function b(t,e,r){e[t+\\\"Found\\\"]?(e[t]=x(e[t]),null===e[t]&&(e[t]=r[t])):(d[t]=e[t]=r[t],i.nestedProperty(c[0],v+\\\".\\\"+t).set(r[t]))}var _=m._histogramBinOpts[e._groupName];if(e._autoBinFinished)delete e._autoBinFinished;else{c=_.traces;var w=_.sizeFound,k=[];d=c[0]._autoBin={};var M=!0;for(l=0;l<c.length;l++)p=(u=c[l])._pos0=r.makeCalcdata(u,o),k=i.concat(k,p),delete u._autoBinFinished,!0===e.visible&&(M?M=!1:(delete u._autoBin,u._autoBinFinished=1));h=c[0][o+\\\"calendar\\\"];var A=a.autoBin(k,r,_.nbins,!1,h,w&&_.size);if(y&&0===A._dataSpan&&\\\"category\\\"!==r.type){if(s)return[A,p,!0];A=function(t,e,r,n,a){var o,s,l=function(t,e){for(var r=e.xaxis,n=e.yaxis,i=e.orientation,a=[],o=t._fullData,s=0;s<o.length;s++){var l=o[s];\\\"histogram\\\"===l.type&&!0===l.visible&&l.orientation===i&&l.xaxis===r&&l.yaxis===n&&a.push(l)}return a}(t,e),c=!1,u=1/0,h=[e];for(o=0;o<l.length;o++)if((s=l[o])===e)c=!0;else if(c){var p=f(t,s,r,n,!0),d=p[0],g=p[2];s._autoBinFinished=1,s._pos0=p[1],g?h.push(s):u=Math.min(u,d.size)}else u=Math.min(u,s[a].size);var v=new Array(h.length);for(o=0;o<h.length;o++)for(var m=h[o]._pos0,y=0;y<m.length;y++)if(void 0!==m[y]){v[o]=m[y];break}isFinite(u)||(u=i.distinctVals(v).minDiff);for(o=0;o<h.length;o++){var x=(s=h[o])[n+\\\"calendar\\\"];s._input[a]=s[a]={start:r.c2r(v[o]-u/2,0,x),end:r.c2r(v[o]+u/2,0,x),size:u}}return e[a]}(t,e,r,o,v)}(g=u.cumulative).enabled&&\\\"include\\\"!==g.currentbin&&(\\\"decreasing\\\"===g.direction?A.start=r.c2r(a.tickIncrement(r.r2c(A.start,0,h),A.size,!0,h)):A.end=r.c2r(a.tickIncrement(r.r2c(A.end,0,h),A.size,!1,h))),_.size=A.size,w||(d.size=A.size,i.nestedProperty(c[0],v+\\\".size\\\").set(A.size)),b(\\\"start\\\",_,A),b(\\\"end\\\",_,A)}p=e._pos0,delete e._pos0;var T=e._input[v]||{},S=i.extendFlat({},_),E=_.start,C=r.r2l(T.start),L=void 0!==C;if((_.startFound||L)&&C!==r.r2l(E)){var z=L?C:i.aggNums(Math.min,null,p),O={type:\\\"category\\\"===r.type?\\\"linear\\\":r.type,r2l:r.r2l,dtick:_.size,tick0:E,calendar:h,range:[z,a.tickIncrement(z,_.size,!1,h)].map(r.l2r)},I=a.tickFirst(O);I>r.r2l(z)&&(I=a.tickIncrement(I,_.size,!0,h)),S.start=r.l2r(I),L||i.nestedProperty(e,v+\\\".start\\\").set(S.start)}var P=_.end,D=r.r2l(T.end),R=void 0!==D;if((_.endFound||R)&&D!==r.r2l(P)){var B=R?D:i.aggNums(Math.max,null,p);S.end=r.l2r(B),R||i.nestedProperty(e,v+\\\".start\\\").set(S.end)}var F=\\\"autobin\\\"+o;return!1===e._input[F]&&(e._input[v]=i.extendFlat({},e[v]||{}),delete e._input[F],delete e[F]),[S,p]}e.exports=function(t,e){if(!0===e.visible){var r,h,p,d,g=[],v=[],m=a.getFromId(t,\\\"h\\\"===e.orientation?e.yaxis||\\\"y\\\":e.xaxis||\\\"x\\\"),y=\\\"h\\\"===e.orientation?\\\"y\\\":\\\"x\\\",x={x:\\\"y\\\",y:\\\"x\\\"}[y],b=e[y+\\\"calendar\\\"],_=e.cumulative,w=f(t,e,m,y),k=w[0],M=w[1],A=\\\"string\\\"==typeof k.size,T=[],S=A?T:k,E=[],C=[],L=[],z=0,O=e.histnorm,I=e.histfunc,P=-1!==O.indexOf(\\\"density\\\");_.enabled&&P&&(O=O.replace(/ ?density$/,\\\"\\\"),P=!1);var D,R=\\\"max\\\"===I||\\\"min\\\"===I?null:0,B=s.count,F=l[O],N=!1,j=function(t){return m.r2c(t,0,b)};for(i.isArrayOrTypedArray(e[x])&&\\\"count\\\"!==I&&(D=e[x],N=\\\"avg\\\"===I,B=s[I]),r=j(k.start),p=j(k.end)+(r-a.tickIncrement(r,k.size,!1,b))/1e6;r<p&&g.length<1e6&&(h=a.tickIncrement(r,k.size,!1,b),g.push((r+h)/2),v.push(R),L.push([]),T.push(r),P&&E.push(1/(h-r)),N&&C.push(0),!(h<=r));)r=h;T.push(r),A||\\\"date\\\"!==m.type||(S={start:j(S.start),end:j(S.end),size:S.size});var V,U=v.length,q=!0,H=1/0,G=1/0,W={};for(r=0;r<M.length;r++){var Y=M[r];(d=i.findBin(Y,S))>=0&&d<U&&(z+=B(d,r,v,D,C),q&&L[d].length&&Y!==M[L[d][0]]&&(q=!1),L[d].push(r),W[r]=d,H=Math.min(H,Y-T[d]),G=Math.min(G,T[d+1]-Y))}q||(V=u(H,G,T,m,b)),N&&(z=c(v,C)),F&&F(v,z,E),_.enabled&&function(t,e,r){var n,i,a;function o(e){a=t[e],t[e]/=2}function s(e){i=t[e],t[e]=a+i/2,a+=i}if(\\\"half\\\"===r)if(\\\"increasing\\\"===e)for(o(0),n=1;n<t.length;n++)s(n);else for(o(t.length-1),n=t.length-2;n>=0;n--)s(n);else if(\\\"increasing\\\"===e){for(n=1;n<t.length;n++)t[n]+=t[n-1];\\\"exclude\\\"===r&&(t.unshift(0),t.pop())}else{for(n=t.length-2;n>=0;n--)t[n]+=t[n+1];\\\"exclude\\\"===r&&(t.push(0),t.shift())}}(v,_.direction,_.currentbin);var X=Math.min(g.length,v.length),Z=[],$=0,J=X-1;for(r=0;r<X;r++)if(v[r]){$=r;break}for(r=X-1;r>=$;r--)if(v[r]){J=r;break}for(r=$;r<=J;r++)if(n(g[r])&&n(v[r])){var K={p:g[r],s:v[r],b:0};_.enabled||(K.pts=L[r],q?K.ph0=K.ph1=L[r].length?M[L[r][0]]:g[r]:(K.ph0=V(T[r]),K.ph1=V(T[r+1],!0))),Z.push(K)}return 1===Z.length&&(Z[0].width1=a.tickIncrement(Z[0].p,k.size,!1,b)-Z[0].p),o(Z,e),i.isArrayOrTypedArray(e.selectedpoints)&&i.tagSelected(Z,e,W),Z}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../bar/arrays_to_calcdata\\\":836,\\\"./average\\\":965,\\\"./bin_functions\\\":967,\\\"./bin_label_vals\\\":968,\\\"./norm_functions\\\":975,\\\"fast-isnumeric\\\":214}],970:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=n.nestedProperty,a=t(\\\"./attributes\\\"),o={x:[{aStr:\\\"xbins.start\\\",name:\\\"start\\\"},{aStr:\\\"xbins.end\\\",name:\\\"end\\\"},{aStr:\\\"xbins.size\\\",name:\\\"size\\\"},{aStr:\\\"nbinsx\\\",name:\\\"nbins\\\"}],y:[{aStr:\\\"ybins.start\\\",name:\\\"start\\\"},{aStr:\\\"ybins.end\\\",name:\\\"end\\\"},{aStr:\\\"ybins.size\\\",name:\\\"size\\\"},{aStr:\\\"nbinsy\\\",name:\\\"nbins\\\"}]};e.exports=function(t,e){var r,s,l,c,u,f,h,p=e._histogramBinOpts={},d=\\\"overlay\\\"===e.barmode;function g(t){return n.coerce(l._input,l,a,t)}for(r=0;r<t.length;r++)\\\"histogram\\\"===(l=t[r]).type&&(delete l._autoBinFinished,u=\\\"v\\\"===l.orientation?\\\"x\\\":\\\"y\\\",f=d?l.uid:l.xaxis+l.yaxis+u,l._groupName=f,(h=p[f])?h.traces.push(l):h=p[f]={traces:[l],direction:u});for(f in p){u=(h=p[f]).direction;var v=o[u];for(s=0;s<v.length;s++){var m=v[s],y=m.name;if(\\\"nbins\\\"!==y||!h.sizeFound){var x=m.aStr;for(r=0;r<h.traces.length;r++){if(c=(l=h.traces[r])._input,void 0!==i(c,x).get()){h[y]=g(x),h[y+\\\"Found\\\"]=!0;break}var b=l._autoBin;b&&b[y]&&i(l,x).set(b[y])}if(\\\"start\\\"===y||\\\"end\\\"===y)for(;r<h.traces.length;r++)g(x,((l=h.traces[r])._autoBin||{})[y]);\\\"nbins\\\"!==y||h.sizeFound||h.nbinsFound||(l=h.traces[0],h[y]=g(x))}}}}},{\\\"../../lib\\\":696,\\\"./attributes\\\":964}],971:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../bar/style_defaults\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){function c(r,n){return i.coerce(t,e,s,r,n)}var u=c(\\\"x\\\"),f=c(\\\"y\\\");c(\\\"cumulative.enabled\\\")&&(c(\\\"cumulative.direction\\\"),c(\\\"cumulative.currentbin\\\")),c(\\\"text\\\");var h=c(\\\"orientation\\\",f&&!u?\\\"h\\\":\\\"v\\\"),p=\\\"v\\\"===h?\\\"x\\\":\\\"y\\\",d=\\\"v\\\"===h?\\\"y\\\":\\\"x\\\",g=u&&f?Math.min(u.length&&f.length):(e[p]||[]).length;if(g){e._length=g,n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\"],l),e[d]&&c(\\\"histfunc\\\"),c(\\\"histnorm\\\"),c(\\\"autobin\\\"+p),o(t,e,c,r,l);var v=n.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");v(t,e,a.defaultLine,{axis:\\\"y\\\"}),v(t,e,a.defaultLine,{axis:\\\"x\\\",inherit:\\\"y\\\"}),i.coerceSelectionMarkerOpacity(e,c)}else e.visible=!1}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../bar/style_defaults\\\":850,\\\"./attributes\\\":964}],972:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){if(t.x=\\\"xVal\\\"in e?e.xVal:e.x,t.y=\\\"yVal\\\"in e?e.yVal:e.y,e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),!(r.cumulative||{}).enabled){var a,o=Array.isArray(i)?n[0].pts[i[0]][i[1]]:n[i].pts;if(t.pointNumbers=o,t.binNumber=t.pointNumber,delete t.pointNumber,delete t.pointIndex,r._indexToPoints){a=[];for(var s=0;s<o.length;s++)a=a.concat(r._indexToPoints[o[s]])}else a=o;t.pointIndices=a}return t}},{}],973:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../bar/hover\\\").hoverPoints,i=t(\\\"../../plots/cartesian/axes\\\").hoverLabelText;e.exports=function(t,e,r,a){var o=n(t,e,r,a);if(o){var s=(t=o[0]).cd[t.index],l=t.cd[0].trace;if(!l.cumulative.enabled){var c=\\\"h\\\"===l.orientation?\\\"y\\\":\\\"x\\\";t[c+\\\"Label\\\"]=i(t[c+\\\"a\\\"],s.ph0,s.ph1)}return o}}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../bar/hover\\\":842}],974:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.layoutAttributes=t(\\\"../bar/layout_attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.crossTraceDefaults=t(\\\"./cross_trace_defaults\\\"),n.supplyLayoutDefaults=t(\\\"../bar/layout_defaults\\\"),n.calc=t(\\\"./calc\\\"),n.crossTraceCalc=t(\\\"../bar/cross_trace_calc\\\").crossTraceCalc,n.plot=t(\\\"../bar/plot\\\"),n.layerName=\\\"barlayer\\\",n.style=t(\\\"../bar/style\\\").style,n.styleOnSelect=t(\\\"../bar/style\\\").styleOnSelect,n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.selectPoints=t(\\\"../bar/select\\\"),n.eventData=t(\\\"./event_data\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"histogram\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"bar\\\",\\\"histogram\\\",\\\"oriented\\\",\\\"errorBarsOK\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../bar/cross_trace_calc\\\":839,\\\"../bar/layout_attributes\\\":844,\\\"../bar/layout_defaults\\\":845,\\\"../bar/plot\\\":846,\\\"../bar/select\\\":847,\\\"../bar/style\\\":849,\\\"../scatter/marker_colorbar\\\":1061,\\\"./attributes\\\":964,\\\"./calc\\\":969,\\\"./cross_trace_defaults\\\":970,\\\"./defaults\\\":971,\\\"./event_data\\\":972,\\\"./hover\\\":973}],975:[function(t,e,r){\\\"use strict\\\";e.exports={percent:function(t,e){for(var r=t.length,n=100/e,i=0;i<r;i++)t[i]*=n},probability:function(t,e){for(var r=t.length,n=0;n<r;n++)t[n]/=e},density:function(t,e,r,n){var i=t.length;n=n||1;for(var a=0;a<i;a++)t[a]*=r[a]*n},\\\"probability density\\\":function(t,e,r,n){var i=t.length;n&&(e/=n);for(var a=0;a<i;a++)t[a]*=r[a]/e}}},{}],976:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../histogram/attributes\\\"),i=t(\\\"../histogram/bin_attributes\\\"),a=t(\\\"../heatmap/attributes\\\"),o=t(\\\"../../components/colorscale/attributes\\\"),s=t(\\\"../../components/colorbar/attributes\\\"),l=t(\\\"../../lib/extend\\\").extendFlat;e.exports=l({x:n.x,y:n.y,z:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},marker:{color:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"},histnorm:n.histnorm,histfunc:n.histfunc,nbinsx:n.nbinsx,xbins:i(\\\"x\\\"),nbinsy:n.nbinsy,ybins:i(\\\"y\\\"),autobinx:n.autobinx,autobiny:n.autobiny,xgap:a.xgap,ygap:a.ygap,zsmooth:a.zsmooth,zhoverformat:a.zhoverformat},o(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1}),{colorbar:s})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../heatmap/attributes\\\":945,\\\"../histogram/attributes\\\":964,\\\"../histogram/bin_attributes\\\":966}],977:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../histogram/bin_functions\\\"),o=t(\\\"../histogram/norm_functions\\\"),s=t(\\\"../histogram/average\\\"),l=t(\\\"../histogram/bin_label_vals\\\");function c(t,e,r,a,o,s,l){var c=e+\\\"bins\\\",u=t[c];u||(u=t[c]={});var f=t._input[c]||{},h=t._autoBin={};f.size||delete u.size,void 0===f.start&&delete u.start,void 0===f.end&&delete u.end;var p=!u.size,d=void 0===u.start,g=void 0===u.end;if(p||d||g){var v=i.autoBin(r,a,t[\\\"nbins\\\"+e],\\\"2d\\\",l,u.size);\\\"histogram2dcontour\\\"===t.type&&(d&&(v.start=s(i.tickIncrement(o(v.start),v.size,!0,l))),g&&(v.end=s(i.tickIncrement(o(v.end),v.size,!1,l)))),p&&(u.size=h.size=v.size),d&&(u.start=h.start=v.start),g&&(u.end=h.end=v.end)}var m=\\\"autobin\\\"+e;!1===t._input[m]&&(t._input[c]=n.extendFlat({},u),delete t._input[m],delete t[m])}function u(t,e,r,n){var i,a=new Array(t);if(n)for(i=0;i<t;i++)a[i]=1/(e[i+1]-e[i]);else{var o=1/r;for(i=0;i<t;i++)a[i]=o}return a}function f(t,e){return{start:t(e.start),end:t(e.end),size:e.size}}function h(t,e,r,n,i,a){var o,s=t.length-1,c=new Array(s);if(e)for(o=0;o<s;o++)c[o]=[e[o],e[o]];else{var u=l(r,n,t,i,a);for(o=0;o<s;o++)c[o]=[u(t[o]),u(t[o+1],!0)]}return c}e.exports=function(t,e){var r,l,p,d,g=i.getFromId(t,e.xaxis||\\\"x\\\"),v=e.x?g.makeCalcdata(e,\\\"x\\\"):[],m=i.getFromId(t,e.yaxis||\\\"y\\\"),y=e.y?m.makeCalcdata(e,\\\"y\\\"):[],x=e.xcalendar,b=e.ycalendar,_=function(t){return g.r2c(t,0,x)},w=function(t){return m.r2c(t,0,b)},k=function(t){return g.c2r(t,0,x)},M=function(t){return m.c2r(t,0,b)},A=e._length;v.length>A&&v.splice(A,v.length-A),y.length>A&&y.splice(A,y.length-A),c(e,\\\"x\\\",v,g,_,k,x),c(e,\\\"y\\\",y,m,w,M,b);var T=[],S=[],E=[],C=\\\"string\\\"==typeof e.xbins.size,L=\\\"string\\\"==typeof e.ybins.size,z=[],O=[],I=C?z:e.xbins,P=L?O:e.ybins,D=0,R=[],B=[],F=e.histnorm,N=e.histfunc,j=-1!==F.indexOf(\\\"density\\\"),V=\\\"max\\\"===N||\\\"min\\\"===N?null:0,U=a.count,q=o[F],H=!1,G=[],W=[],Y=\\\"z\\\"in e?e.z:\\\"marker\\\"in e&&Array.isArray(e.marker.color)?e.marker.color:\\\"\\\";Y&&\\\"count\\\"!==N&&(H=\\\"avg\\\"===N,U=a[N]);var X=e.xbins,Z=_(X.start),$=_(X.end)+(Z-i.tickIncrement(Z,X.size,!1,x))/1e6;for(r=Z;r<$;r=i.tickIncrement(r,X.size,!1,x))S.push(V),z.push(r),H&&E.push(0);z.push(r);var J=S.length,K=_(e.xbins.start),Q=(r-K)/J,tt=k(K+Q/2);for(Z=w((X=e.ybins).start),$=w(X.end)+(Z-i.tickIncrement(Z,X.size,!1,b))/1e6,r=Z;r<$;r=i.tickIncrement(r,X.size,!1,b)){T.push(S.slice()),O.push(r);var et=new Array(J);for(l=0;l<J;l++)et[l]=[];B.push(et),H&&R.push(E.slice())}O.push(r);var rt=T.length,nt=w(e.ybins.start),it=(r-nt)/rt,at=M(nt+it/2);j&&(G=u(S.length,I,Q,C),W=u(T.length,P,it,L)),C||\\\"date\\\"!==g.type||(I=f(_,I)),L||\\\"date\\\"!==m.type||(P=f(w,P));var ot=!0,st=!0,lt=new Array(J),ct=new Array(rt),ut=1/0,ft=1/0,ht=1/0,pt=1/0;for(r=0;r<A;r++){var dt=v[r],gt=y[r];p=n.findBin(dt,I),d=n.findBin(gt,P),p>=0&&p<J&&d>=0&&d<rt&&(D+=U(p,r,T[d],Y,R[d]),B[d][p].push(r),ot&&(void 0===lt[p]?lt[p]=dt:lt[p]!==dt&&(ot=!1)),st&&(void 0===ct[p]?ct[p]=gt:ct[p]!==gt&&(st=!1)),ut=Math.min(ut,dt-z[p]),ft=Math.min(ft,z[p+1]-dt),ht=Math.min(ht,gt-O[d]),pt=Math.min(pt,O[d+1]-gt))}if(H)for(d=0;d<rt;d++)D+=s(T[d],R[d]);if(q)for(d=0;d<rt;d++)q(T[d],D,G,W[d]);return{x:v,xRanges:h(z,ot&&lt,ut,ft,g,x),x0:tt,dx:Q,y:y,yRanges:h(O,st&&ct,ht,pt,m,b),y0:at,dy:it,z:T,pts:B}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../histogram/average\\\":965,\\\"../histogram/bin_functions\\\":967,\\\"../histogram/bin_label_vals\\\":968,\\\"../histogram/norm_functions\\\":975}],978:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM,a=t(\\\"../../plots/cartesian/axis_ids\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"./attributes\\\"),l=[\\\"x\\\",\\\"y\\\"];function c(t,e,r,s){var l=r[a.id2name(t[e+\\\"axis\\\"])].type,c=e+\\\"bins\\\",u=t[c],f=t[e+\\\"calendar\\\"];u||(u=t[c]={});var h=\\\"date\\\"===l?function(t,e){return t||0===t?o.cleanDate(t,i,f):e}:function(t,e){return n(t)?Number(t):e};u.start=h(u.start,s.start),u.end=h(u.end,s.end);var p=s.size,d=u.size;if(n(d))u.size=d>0?Number(d):p;else if(\\\"string\\\"!=typeof d)u.size=p;else{var g=d.charAt(0),v=d.substr(1);((v=n(v)?Number(v):0)<=0||\\\"date\\\"!==l||\\\"M\\\"!==g||v!==Math.round(v))&&(u.size=p)}}e.exports=function(t,e){var r,n,i,a;function u(t){return o.coerce(i._input,i,s,t)}for(r=0;r<t.length;r++){var f=(i=t[r]).type;if(\\\"histogram2d\\\"===f||\\\"histogram2dcontour\\\"===f)for(n=0;n<l.length;n++){var h=(a=l[n])+\\\"bins\\\",p=(i._autoBin||{})[a]||{};u(h+\\\".start\\\",p.start),u(h+\\\".end\\\",p.end),u(h+\\\".size\\\",p.size),c(i,a,e,p),(i[h]||{}).size||u(\\\"nbins\\\"+a)}}}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"./attributes\\\":976,\\\"fast-isnumeric\\\":214}],979:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./sample_defaults\\\"),a=t(\\\"../heatmap/style_defaults\\\"),o=t(\\\"../../components/colorscale/defaults\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,s,r,i)}i(t,e,c,l),!1!==e.visible&&(a(t,e,c,l),o(t,e,l,c,{prefix:\\\"\\\",cLetter:\\\"z\\\"}))}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"../heatmap/style_defaults\\\":959,\\\"./attributes\\\":976,\\\"./sample_defaults\\\":982}],980:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../heatmap/hover\\\"),i=t(\\\"../../plots/cartesian/axes\\\").hoverLabelText;e.exports=function(t,e,r,a,o,s){var l=n(t,e,r,a,o,s);if(l){var c=(t=l[0]).index,u=c[0],f=c[1],h=t.cd[0],p=h.xRanges[f],d=h.yRanges[u];return t.xLabel=i(t.xa,p[0],p[1]),t.yLabel=i(t.ya,d[0],d[1]),l}}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../heatmap/hover\\\":952}],981:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.crossTraceDefaults=t(\\\"./cross_trace_defaults\\\"),n.calc=t(\\\"../heatmap/calc\\\"),n.plot=t(\\\"../heatmap/plot\\\"),n.layerName=\\\"heatmaplayer\\\",n.colorbar=t(\\\"../heatmap/colorbar\\\"),n.style=t(\\\"../heatmap/style\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.eventData=t(\\\"../histogram/event_data\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"histogram2d\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"2dMap\\\",\\\"histogram\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../heatmap/calc\\\":946,\\\"../heatmap/colorbar\\\":948,\\\"../heatmap/plot\\\":957,\\\"../heatmap/style\\\":958,\\\"../histogram/event_data\\\":972,\\\"./attributes\\\":976,\\\"./cross_trace_defaults\\\":978,\\\"./defaults\\\":979,\\\"./hover\\\":980}],982:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\");e.exports=function(t,e,r,i){var a=r(\\\"x\\\"),o=r(\\\"y\\\");a&&a.length&&o&&o.length?(e._length=Math.min(a.length,o.length),n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\"],i),(r(\\\"z\\\")||r(\\\"marker.color\\\"))&&r(\\\"histfunc\\\"),r(\\\"histnorm\\\"),r(\\\"autobinx\\\"),r(\\\"autobiny\\\")):e.visible=!1}},{\\\"../../registry\\\":827}],983:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../histogram2d/attributes\\\"),i=t(\\\"../contour/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/colorbar/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat;e.exports=s({x:n.x,y:n.y,z:n.z,marker:n.marker,histnorm:n.histnorm,histfunc:n.histfunc,nbinsx:n.nbinsx,xbins:n.xbins,nbinsy:n.nbinsy,ybins:n.ybins,autobinx:n.autobinx,autobiny:n.autobiny,autocontour:i.autocontour,ncontours:i.ncontours,contours:i.contours,line:i.line,zhoverformat:n.zhoverformat},a(\\\"\\\",{cLetter:\\\"z\\\",editTypeOverride:\\\"calc\\\"}),{colorbar:o})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../contour/attributes\\\":916,\\\"../histogram2d/attributes\\\":976}],984:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../histogram2d/sample_defaults\\\"),a=t(\\\"../contour/contours_defaults\\\"),o=t(\\\"../contour/style_defaults\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,s,r,i)}i(t,e,c,l),!1!==e.visible&&(a(t,e,c,function(r){return n.coerce2(t,e,s,r)}),o(t,e,c,l))}},{\\\"../../lib\\\":696,\\\"../contour/contours_defaults\\\":923,\\\"../contour/style_defaults\\\":937,\\\"../histogram2d/sample_defaults\\\":982,\\\"./attributes\\\":983}],985:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.crossTraceDefaults=t(\\\"../histogram2d/cross_trace_defaults\\\"),n.calc=t(\\\"../contour/calc\\\"),n.plot=t(\\\"../contour/plot\\\").plot,n.layerName=\\\"contourlayer\\\",n.style=t(\\\"../contour/style\\\"),n.colorbar=t(\\\"../contour/colorbar\\\"),n.hoverPoints=t(\\\"../contour/hover\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"histogram2dcontour\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"2dMap\\\",\\\"contour\\\",\\\"histogram\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../contour/calc\\\":917,\\\"../contour/colorbar\\\":919,\\\"../contour/hover\\\":929,\\\"../contour/plot\\\":934,\\\"../contour/style\\\":936,\\\"../histogram2d/cross_trace_defaults\\\":978,\\\"./attributes\\\":983,\\\"./defaults\\\":984}],986:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../surface/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat;e.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\\\"},delaunayaxis:{valType:\\\"enumerated\\\",values:[\\\"x\\\",\\\"y\\\",\\\"z\\\"],dflt:\\\"z\\\",editType:\\\"calc\\\"},alphahull:{valType:\\\"number\\\",dflt:-1,editType:\\\"calc\\\"},intensity:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},color:{valType:\\\"color\\\",editType:\\\"calc\\\"},vertexcolor:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},facecolor:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},transforms:void 0},n(\\\"\\\",{colorAttr:\\\"`intensity`\\\",showScaleDflt:!0,editTypeOverride:\\\"calc\\\"}),{colorbar:i,opacity:a.opacity,flatshading:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},contour:{show:s({},a.contours.x.show,{}),color:a.contours.x.color,width:a.contours.x.width,editType:\\\"calc\\\"},lightposition:{x:s({},a.lightposition.x,{dflt:1e5}),y:s({},a.lightposition.y,{dflt:1e5}),z:s({},a.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\\\"},a.lighting),hoverinfo:s({},o.hoverinfo,{editType:\\\"calc\\\"})})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../surface/attributes\\\":1130}],987:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\");e.exports=function(t,e){e.intensity&&n(e,e.intensity,\\\"\\\",\\\"c\\\")}},{\\\"../../components/colorscale/calc\\\":578}],988:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-mesh3d\\\"),i=t(\\\"delaunay-triangulate\\\"),a=t(\\\"alpha-shape\\\"),o=t(\\\"convex-hull\\\"),s=t(\\\"../../lib/gl_format_color\\\").parseColorScale,l=t(\\\"../../lib/str2rgbarray\\\"),c=t(\\\"../../plots/gl3d/zip3\\\");function u(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name=\\\"\\\",this.color=\\\"#fff\\\",this.data=null,this.showContour=!1}var f=u.prototype;function h(t){return t.map(l)}f.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index;t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]];var r=this.data.text;return Array.isArray(r)&&void 0!==r[e]?t.textLabel=r[e]:r&&(t.textLabel=r),!0}},f.update=function(t){var e=this.scene,r=e.fullSceneLayout;function n(t,e,r,n){return e.map(function(e){return t.d2l(e,0,n)*r})}this.data=t;var u,f=c(n(r.xaxis,t.x,e.dataScale[0],t.xcalendar),n(r.yaxis,t.y,e.dataScale[1],t.ycalendar),n(r.zaxis,t.z,e.dataScale[2],t.zcalendar));if(t.i&&t.j&&t.k)u=c(t.i,t.j,t.k);else if(0===t.alphahull)u=o(f);else if(t.alphahull>0)u=a(t.alphahull,f);else{var p=[\\\"x\\\",\\\"y\\\",\\\"z\\\"].indexOf(t.delaunayaxis);u=i(f.map(function(t){return[t[(p+1)%3],t[(p+2)%3]]}))}var d={positions:f,cells:u,lightPosition:[t.lightposition.x,t.lightposition.y,t.lightposition.z],ambient:t.lighting.ambient,diffuse:t.lighting.diffuse,specular:t.lighting.specular,roughness:t.lighting.roughness,fresnel:t.lighting.fresnel,vertexNormalsEpsilon:t.lighting.vertexnormalsepsilon,faceNormalsEpsilon:t.lighting.facenormalsepsilon,opacity:t.opacity,contourEnable:t.contour.show,contourColor:l(t.contour.color).slice(0,3),contourWidth:t.contour.width,useFacetNormals:t.flatshading};t.intensity?(this.color=\\\"#fff\\\",d.vertexIntensity=t.intensity,d.vertexIntensityBounds=[t.cmin,t.cmax],d.colormap=s(t.colorscale)):t.vertexcolor?(this.color=t.vertexcolor[0],d.vertexColors=h(t.vertexcolor)):t.facecolor?(this.color=t.facecolor[0],d.cellColors=h(t.facecolor)):(this.color=t.color,d.meshColor=l(t.color)),this.mesh.update(d)},f.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},e.exports=function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new u(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}},{\\\"../../lib/gl_format_color\\\":692,\\\"../../lib/str2rgbarray\\\":719,\\\"../../plots/gl3d/zip3\\\":798,\\\"alpha-shape\\\":52,\\\"convex-hull\\\":118,\\\"delaunay-triangulate\\\":150,\\\"gl-mesh3d\\\":268}],989:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"./attributes\\\");e.exports=function(t,e,r,s){function l(r,n){return i.coerce(t,e,o,r,n)}function c(t){var e=t.map(function(t){var e=l(t);return e&&i.isArrayOrTypedArray(e)?e:null});return e.every(function(t){return t&&t.length===e[0].length})&&e}var u=c([\\\"x\\\",\\\"y\\\",\\\"z\\\"]),f=c([\\\"i\\\",\\\"j\\\",\\\"k\\\"]);u?(f&&f.forEach(function(t){for(var e=0;e<t.length;++e)t[e]|=0}),n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\",\\\"z\\\"],s),[\\\"lighting.ambient\\\",\\\"lighting.diffuse\\\",\\\"lighting.specular\\\",\\\"lighting.roughness\\\",\\\"lighting.fresnel\\\",\\\"lighting.vertexnormalsepsilon\\\",\\\"lighting.facenormalsepsilon\\\",\\\"lightposition.x\\\",\\\"lightposition.y\\\",\\\"lightposition.z\\\",\\\"contour.show\\\",\\\"contour.color\\\",\\\"contour.width\\\",\\\"colorscale\\\",\\\"reversescale\\\",\\\"flatshading\\\",\\\"alphahull\\\",\\\"delaunayaxis\\\",\\\"opacity\\\"].forEach(function(t){l(t)}),\\\"intensity\\\"in t?(l(\\\"intensity\\\"),a(t,e,s,l,{prefix:\\\"\\\",cLetter:\\\"c\\\"})):(e.showscale=!1,\\\"facecolor\\\"in t?l(\\\"facecolor\\\"):\\\"vertexcolor\\\"in t?l(\\\"vertexcolor\\\"):l(\\\"color\\\",r)),l(\\\"text\\\"),e._length=null):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":986}],990:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.colorbar={min:\\\"cmin\\\",max:\\\"cmax\\\"},n.plot=t(\\\"./convert\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"mesh3d\\\",n.basePlotModule=t(\\\"../../plots/gl3d\\\"),n.categories=[\\\"gl3d\\\"],n.meta={},e.exports=n},{\\\"../../plots/gl3d\\\":787,\\\"./attributes\\\":986,\\\"./calc\\\":987,\\\"./convert\\\":988,\\\"./defaults\\\":989}],991:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").extendFlat,i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../components/drawing/attributes\\\").dash,o=t(\\\"../../components/fx/attributes\\\"),s=i.line;function l(t){return{line:{color:n({},s.color,{dflt:t}),width:s.width,dash:a,editType:\\\"style\\\"},editType:\\\"style\\\"}}e.exports={x:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},open:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},high:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},low:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},close:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},line:{width:n({},s.width,{}),dash:n({},a,{}),editType:\\\"style\\\"},increasing:l(\\\"#3D9970\\\"),decreasing:l(\\\"#FF4136\\\"),text:{valType:\\\"string\\\",dflt:\\\"\\\",arrayOk:!0,editType:\\\"calc\\\"},tickwidth:{valType:\\\"number\\\",min:0,max:.5,dflt:.3,editType:\\\"calc\\\"},hoverlabel:n({},o.hoverlabel,{split:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"style\\\"}})}},{\\\"../../components/drawing/attributes\\\":594,\\\"../../components/fx/attributes\\\":604,\\\"../../lib\\\":696,\\\"../scatter/attributes\\\":1043}],992:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=n._,a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../../constants/numerical\\\").BADNUM;function s(t,e,r,n){return{o:t,h:e,l:r,c:n}}function l(t,e,r,n,s){for(var l=n.makeCalcdata(e,\\\"open\\\"),c=n.makeCalcdata(e,\\\"high\\\"),u=n.makeCalcdata(e,\\\"low\\\"),f=n.makeCalcdata(e,\\\"close\\\"),h=Array.isArray(e.text),p=!0,d=null,g=[],v=0;v<r.length;v++){var m=r[v],y=l[v],x=c[v],b=u[v],_=f[v];if(m!==o&&y!==o&&x!==o&&b!==o&&_!==o){_===y?null!==d&&_!==d&&(p=_>d):p=_>y,d=_;var w=s(y,x,b,_);w.pos=m,w.yc=(y+_)/2,w.i=v,w.dir=p?\\\"increasing\\\":\\\"decreasing\\\",h&&(w.tx=e.text[v]),g.push(w)}}return e._extremes[n._id]=a.findExtremes(n,u.concat(c),{padded:!0}),g.length&&(g[0].t={labels:{open:i(t,\\\"open:\\\")+\\\" \\\",high:i(t,\\\"high:\\\")+\\\" \\\",low:i(t,\\\"low:\\\")+\\\" \\\",close:i(t,\\\"close:\\\")+\\\" \\\"}}),g}e.exports={calc:function(t,e){var r=a.getFromId(t,e.xaxis),i=a.getFromId(t,e.yaxis),o=function(t,e,r){var i=r._minDiff;if(!i){var a,o=t._fullData,s=[];for(i=1/0,a=0;a<o.length;a++){var l=o[a];if(\\\"ohlc\\\"===l.type&&!0===l.visible&&l.xaxis===e._id){s.push(l);var c=e.makeCalcdata(l,\\\"x\\\");l._xcalc=c;var u=n.distinctVals(c).minDiff;u&&isFinite(u)&&(i=Math.min(i,u))}}for(i===1/0&&(i=1),a=0;a<s.length;a++)s[a]._minDiff=i}return i*r.tickwidth}(t,r,e),c=e._minDiff;e._minDiff=null;var u=e._xcalc;e._xcalc=null;var f=l(t,e,u,i,s);return e._extremes[r._id]=a.findExtremes(r,u,{vpad:c/2}),f.length?(n.extendFlat(f[0].t,{wHover:c/2,tickLen:o}),f):[{t:{empty:!0}}]},calcCommon:l}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],993:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./ohlc_defaults\\\"),a=t(\\\"./attributes\\\");function o(t,e,r,n){r(n+\\\".line.color\\\"),r(n+\\\".line.width\\\",e.line.width),r(n+\\\".line.dash\\\",e.line.dash)}e.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,a,r,i)}i(t,e,l,s)?(l(\\\"line.width\\\"),l(\\\"line.dash\\\"),o(t,e,l,\\\"increasing\\\"),o(t,e,l,\\\"decreasing\\\"),l(\\\"text\\\"),l(\\\"tickwidth\\\"),s._requestRangeslider[e.xaxis]=!0):e.visible=!1}},{\\\"../../lib\\\":696,\\\"./attributes\\\":991,\\\"./ohlc_defaults\\\":996}],994:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/fx\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../scatter/fill_hover_text\\\"),l={increasing:\\\"\\\\u25b2\\\",decreasing:\\\"\\\\u25bc\\\"};function c(t,e,r,n){var i,s,l=t.cd,c=t.xa,u=l[0].trace,f=l[0].t,h=u.type,p=\\\"ohlc\\\"===h?\\\"l\\\":\\\"min\\\",d=\\\"ohlc\\\"===h?\\\"h\\\":\\\"max\\\",g=f.bPos||0,v=function(t){return t.pos+g-e},m=f.bdPos||f.tickLen,y=f.wHover,x=Math.min(1,m/Math.abs(c.r2c(c.range[1])-c.r2c(c.range[0])));function b(t){var e=v(t);return a.inbox(e-y,e+y,i)}function _(t){return a.inbox(t[p]-r,t[d]-r,i)}function w(t){return(b(t)+_(t))/2}i=t.maxHoverDistance-x,s=t.maxSpikeDistance-x;var k=a.getDistanceFunction(n,b,_,w);if(a.getClosest(l,k,t),!1===t.index)return null;var M=l[t.index],A=u[M.dir],T=A.line.color;return o.opacity(T)&&A.line.width?t.color=T:t.color=A.fillcolor,t.x0=c.c2p(M.pos+g-m,!0),t.x1=c.c2p(M.pos+g+m,!0),t.xLabelVal=M.pos,t.spikeDistance=w(M)*s/i,t.xSpike=c.c2p(M.pos,!0),t}function u(t,e,r,a){var o=t.cd,s=t.ya,l=o[0].trace,u=o[0].t,f=[],h=c(t,e,r,a);if(!h)return[];var p=o[h.index].hi||l.hoverinfo,d=p.split(\\\"+\\\");if(!(\\\"all\\\"===p||-1!==d.indexOf(\\\"y\\\")))return[];for(var g=[\\\"high\\\",\\\"open\\\",\\\"close\\\",\\\"low\\\"],v={},m=0;m<g.length;m++){var y,x=g[m],b=l[x][h.index],_=s.c2p(b,!0);b in v?(y=v[b]).yLabel+=\\\"<br>\\\"+u.labels[x]+n.hoverLabelText(s,b):((y=i.extendFlat({},h)).y0=y.y1=_,y.yLabelVal=b,y.yLabel=u.labels[x]+n.hoverLabelText(s,b),y.name=\\\"\\\",f.push(y),v[b]=y)}return f}function f(t,e,r,i){var a=t.cd,o=t.ya,u=a[0].trace,f=a[0].t,h=c(t,e,r,i);if(!h)return[];var p=a[h.index],d=h.index=p.i,g=p.dir;function v(t){return f.labels[t]+n.hoverLabelText(o,u[t][d])}var m=p.hi||u.hoverinfo,y=m.split(\\\"+\\\"),x=\\\"all\\\"===m,b=x||-1!==y.indexOf(\\\"y\\\"),_=x||-1!==y.indexOf(\\\"text\\\"),w=b?[v(\\\"open\\\"),v(\\\"high\\\"),v(\\\"low\\\"),v(\\\"close\\\")+\\\"  \\\"+l[g]]:[];return _&&s(p,u,w),h.extraText=w.join(\\\"<br>\\\"),h.y0=h.y1=o.c2p(p.yc,!0),[h]}e.exports={hoverPoints:function(t,e,r,n){return t.cd[0].trace.hoverlabel.split?u(t,e,r,n):f(t,e,r,n)},hoverSplit:u,hoverOnPoints:f}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/fill_hover_text\\\":1051}],995:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"ohlc\\\",basePlotModule:t(\\\"../../plots/cartesian\\\"),categories:[\\\"cartesian\\\",\\\"svg\\\",\\\"showLegend\\\"],meta:{},attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),calc:t(\\\"./calc\\\").calc,plot:t(\\\"./plot\\\"),style:t(\\\"./style\\\"),hoverPoints:t(\\\"./hover\\\").hoverPoints,selectPoints:t(\\\"./select\\\")}},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":991,\\\"./calc\\\":992,\\\"./defaults\\\":993,\\\"./hover\\\":994,\\\"./plot\\\":997,\\\"./select\\\":998,\\\"./style\\\":999}],996:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\");e.exports=function(t,e,r,i){var a=r(\\\"x\\\"),o=r(\\\"open\\\"),s=r(\\\"high\\\"),l=r(\\\"low\\\"),c=r(\\\"close\\\");if(r(\\\"hoverlabel.split\\\"),n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\"],i),o&&s&&l&&c){var u=Math.min(o.length,s.length,l.length,c.length);return a&&(u=Math.min(u,a.length)),e._length=u,u}}},{\\\"../../registry\\\":827}],997:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\");e.exports=function(t,e,r,a){var o=e.xaxis,s=e.yaxis;i.makeTraceGroups(a,r,\\\"trace ohlc\\\").each(function(t){var r=n.select(this),a=t[0],l=a.t,c=a.trace;if(e.isRangePlot||(a.node3=r),!0!==c.visible||l.empty)r.remove();else{var u=l.tickLen,f=r.selectAll(\\\"path\\\").data(i.identity);f.enter().append(\\\"path\\\"),f.exit().remove(),f.attr(\\\"d\\\",function(t){var e=o.c2p(t.pos,!0),r=o.c2p(t.pos-u,!0),n=o.c2p(t.pos+u,!0);return\\\"M\\\"+r+\\\",\\\"+s.c2p(t.o,!0)+\\\"H\\\"+e+\\\"M\\\"+e+\\\",\\\"+s.c2p(t.h,!0)+\\\"V\\\"+s.c2p(t.l,!0)+\\\"M\\\"+n+\\\",\\\"+s.c2p(t.c,!0)+\\\"H\\\"+e})}})}},{\\\"../../lib\\\":696,d3:148}],998:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].t.bPos||0;if(!1===e)for(r=0;r<n.length;r++)n[r].selected=0;else for(r=0;r<n.length;r++){var l=n[r];e.contains([i.c2p(l.pos+s),a.c2p(l.yc)],null,l.i,t)?(o.push({pointNumber:l.i,x:i.c2d(l.pos),y:a.c2d(l.yc)}),l.selected=1):l.selected=0}return o}},{}],999:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"../../components/color\\\");e.exports=function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.ohlclayer\\\").selectAll(\\\"g.trace\\\");r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),r.each(function(t){var e=t[0].trace;n.select(this).selectAll(\\\"path\\\").each(function(t){var r=e[t.dir].line;n.select(this).style(\\\"fill\\\",\\\"none\\\").call(a.stroke,r.color).call(i.dashLine,r.dash,r.width).style(\\\"opacity\\\",e.selectedpoints&&!t.selected?.3:1)})})}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,d3:148}],1000:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/extend\\\").extendFlat,i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../plots/font_attributes\\\"),o=t(\\\"../../components/colorscale/attributes\\\"),s=t(\\\"../../plots/domain\\\").attributes,l=t(\\\"../scatter/attributes\\\").line,c=t(\\\"../../components/colorbar/attributes\\\"),u=n({editType:\\\"calc\\\"},o(\\\"line\\\",{editType:\\\"calc\\\"}),{showscale:l.showscale,colorbar:c,shape:{valType:\\\"enumerated\\\",values:[\\\"linear\\\",\\\"hspline\\\"],dflt:\\\"linear\\\",editType:\\\"plot\\\"}});e.exports={domain:s({name:\\\"parcats\\\",trace:!0,editType:\\\"calc\\\"}),hoverinfo:n({},i.hoverinfo,{flags:[\\\"count\\\",\\\"probability\\\"],editType:\\\"plot\\\",arrayOk:!1}),hoveron:{valType:\\\"enumerated\\\",values:[\\\"category\\\",\\\"color\\\",\\\"dimension\\\"],dflt:\\\"category\\\",editType:\\\"plot\\\"},arrangement:{valType:\\\"enumerated\\\",values:[\\\"perpendicular\\\",\\\"freeform\\\",\\\"fixed\\\"],dflt:\\\"perpendicular\\\",editType:\\\"plot\\\"},bundlecolors:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},sortpaths:{valType:\\\"enumerated\\\",values:[\\\"forward\\\",\\\"backward\\\"],dflt:\\\"forward\\\",editType:\\\"plot\\\"},labelfont:a({editType:\\\"calc\\\"}),tickfont:a({editType:\\\"calc\\\"}),dimensions:{_isLinkedToArray:\\\"dimension\\\",label:{valType:\\\"string\\\",editType:\\\"calc\\\"},categoryorder:{valType:\\\"enumerated\\\",values:[\\\"trace\\\",\\\"category ascending\\\",\\\"category descending\\\",\\\"array\\\"],dflt:\\\"trace\\\",editType:\\\"calc\\\"},categoryarray:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},ticktext:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},values:{valType:\\\"data_array\\\",dflt:[],editType:\\\"calc\\\"},displayindex:{valType:\\\"integer\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\",visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"}},line:u,counts:{valType:\\\"number\\\",min:0,dflt:1,arrayOk:!0,editType:\\\"calc\\\"},customdata:void 0,hoverlabel:void 0,ids:void 0,legendgroup:void 0,opacity:void 0,selectedpoints:void 0,showlegend:void 0}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771,\\\"../scatter/attributes\\\":1043}],1001:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/get_data\\\").getModuleCalcData,i=t(\\\"./plot\\\");r.name=\\\"parcats\\\",r.plot=function(t,e,r,a){var o=n(t.calcdata,\\\"parcats\\\");if(o.length){var s=o[0];i(t,s,r,a)}},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"parcats\\\"),a=e._has&&e._has(\\\"parcats\\\");i&&!a&&n._paperdiv.selectAll(\\\".parcats\\\").remove()}},{\\\"../../plots/get_data\\\":781,\\\"./plot\\\":1006}],1002:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/gup\\\").wrap,i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/calc\\\"),o=t(\\\"../../lib/filter_unique.js\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"../../lib\\\");function c(t,e,r){t.valueInds.push(e),t.count+=r}function u(t,e,r){t.valueInds.push(e),t.count+=r}e.exports=function(t,e){var r=l.filterVisible(e.dimensions);if(0===r.length)return[];var f,h,p,d=r.map(function(t){var e;return\\\"trace\\\"===t.categoryorder?e=null:\\\"array\\\"===t.categoryorder?e=t.categoryarray:(e=o(t.values).sort(),\\\"category descending\\\"===t.categoryorder&&(e=e.reverse())),function(t,e){e=null==e?[]:e.map(function(t){return t});var r={},n={},i=[];e.forEach(function(t,e){r[t]=0,n[t]=e});for(var a=0;a<t.length;a++){var o,s=t[a];void 0===r[s]?(r[s]=1,o=e.push(s)-1,n[s]=o):(r[s]++,o=n[s]),i.push(o)}var l=e.map(function(t){return r[t]});return{uniqueValues:e,uniqueCounts:l,inds:i}}(t.values,e)});f=l.isArrayOrTypedArray(e.counts)?e.counts:[e.counts],function(t){var e;if(function(t){for(var e=new Array(t.length),r=0;r<t.length;r++){if(t[r]<0||t[r]>=t.length)return!1;if(void 0!==e[t[r]])return!1;e[t[r]]=!0}return!0}(t.map(function(t){return t.displayindex})))for(e=0;e<t.length;e++)t[e]._displayindex=t[e].displayindex;else for(e=0;e<t.length;e++)t[e]._displayindex=e}(r),r.forEach(function(t,e){!function(t,e){t._categoryarray=e.uniqueValues,null===t.ticktext||void 0===t.ticktext?t._ticktext=[]:t._ticktext=t.ticktext.slice();for(var r=t._ticktext.length;r<e.uniqueValues.length;r++)t._ticktext.push(e.uniqueValues[r])}(t,d[e])});var g,v=e.line;v?(i(e,\\\"line\\\")&&a(e,e.line.color,\\\"line\\\",\\\"c\\\"),g=s.tryColorscale(v)):g=l.identity;var m,y,x,b,_=r[0].values.length,w={},k=d.map(function(t){return t.inds});for(p=0,m=0;m<_;m++){var M=[];for(y=0;y<k.length;y++)M.push(k[y][m]);h=f[m%f.length],p+=h;var A=(x=m,b=void 0,b=l.isArrayOrTypedArray(v.color)?v.color[x%v.color.length]:v.color,{color:g(b),rawColor:b}),T=M+\\\"-\\\"+A.rawColor;void 0===w[T]&&(w[T]={categoryInds:M,color:A.color,rawColor:A.rawColor,valueInds:[],count:0}),u(w[T],m,h)}var S,E=r.map(function(t,e){return r=e,n=t._index,i=t._displayindex,a=t.label,{dimensionInd:r,containerInd:n,displayInd:i,dimensionLabel:a,count:p,categories:[],dragX:null};var r,n,i,a});for(m=0;m<_;m++)for(h=f[m%f.length],y=0;y<E.length;y++){var C=E[y].containerInd,L=d[y].inds[m],z=E[y].categories;if(void 0===z[L]){var O=e.dimensions[C]._categoryarray[L],I=e.dimensions[C]._ticktext[L];z[L]={dimensionInd:y,categoryInd:S=L,categoryValue:O,displayInd:S,categoryLabel:I,valueInds:[],count:0,dragY:null}}c(z[L],m,h)}return n(function(t,e,r){var n=t.map(function(t){return t.categories.length}).reduce(function(t,e){return Math.max(t,e)});return{dimensions:t,paths:e,trace:void 0,maxCats:n,count:r}}(E,w,p))}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/filter_unique.js\\\":686,\\\"../../lib/gup\\\":693}],1003:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"../../plots/domain\\\").defaults,s=t(\\\"../../plots/array_container_defaults\\\"),l=t(\\\"./attributes\\\"),c=t(\\\"../parcoords/merge_length\\\");function u(t,e){function r(r,i){return n.coerce(t,e,l.dimensions,r,i)}var i=r(\\\"values\\\"),a=r(\\\"visible\\\");if(i&&i.length||(a=e.visible=!1),a){r(\\\"label\\\"),r(\\\"displayindex\\\",e._index);var o,s=t.categoryarray,c=Array.isArray(s)&&s.length>0;c&&(o=\\\"array\\\");var u=r(\\\"categoryorder\\\",o);\\\"array\\\"===u?(r(\\\"categoryarray\\\"),r(\\\"ticktext\\\")):(delete t.categoryarray,delete t.ticktext),c||\\\"array\\\"!==u||(e.categoryorder=\\\"trace\\\")}}e.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,l,r,i)}var p=s(t,e,{name:\\\"dimensions\\\",handleItemDefaults:u}),d=function(t,e,r,o,s){s(\\\"line.shape\\\");var l=s(\\\"line.color\\\",o.colorway[0]);if(i(t,\\\"line\\\")&&n.isArrayOrTypedArray(l)){if(l.length)return s(\\\"line.colorscale\\\"),a(t,e,o,s,{prefix:\\\"line.\\\",cLetter:\\\"c\\\"}),l.length;e.line.color=r}return 1/0}(t,e,r,f,h);o(e,f,h),Array.isArray(p)&&p.length||(e.visible=!1),c(e,p,\\\"values\\\",d),h(\\\"hoveron\\\"),h(\\\"arrangement\\\"),h(\\\"bundlecolors\\\"),h(\\\"sortpaths\\\"),h(\\\"counts\\\");var g={family:f.font.family,size:Math.round(f.font.size),color:f.font.color};n.coerceFont(h,\\\"labelfont\\\",g);var v={family:f.font.family,size:Math.round(f.font.size/1.2),color:f.font.color};n.coerceFont(h,\\\"tickfont\\\",v)}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/domain\\\":770,\\\"../parcoords/merge_length\\\":1015,\\\"./attributes\\\":1e3}],1004:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.colorbar={container:\\\"line\\\",min:\\\"cmin\\\",max:\\\"cmax\\\"},n.moduleType=\\\"trace\\\",n.name=\\\"parcats\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1e3,\\\"./base_plot\\\":1001,\\\"./calc\\\":1002,\\\"./defaults\\\":1003,\\\"./plot\\\":1006}],1005:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../plot_api/plot_api\\\"),a=t(\\\"../../components/fx\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"tinycolor2\\\"),c=t(\\\"../../lib/svg_text_utils\\\");function u(t,e,r,i){var a=t.map(function(t,e,r){var n,i=r[0],a=e.margin||{l:80,r:80,t:100,b:80},o=i.trace,s=o.domain,l=e.width,c=e.height,u=Math.floor(l*(s.x[1]-s.x[0])),f=Math.floor(c*(s.y[1]-s.y[0])),h=s.x[0]*l+a.l,p=e.height-s.y[1]*e.height+a.t,d=o.line.shape;n=\\\"all\\\"===o.hoverinfo?[\\\"count\\\",\\\"probability\\\"]:o.hoverinfo.split(\\\"+\\\");var g={key:o.uid,model:i,x:h,y:p,width:u,height:f,hoveron:o.hoveron,hoverinfoItems:n,arrangement:o.arrangement,bundlecolors:o.bundlecolors,sortpaths:o.sortpaths,labelfont:o.labelfont,categorylabelfont:o.tickfont,pathShape:d,dragDimension:null,margin:a,paths:[],dimensions:[],graphDiv:t,traceSelection:null,pathSelection:null,dimensionSelection:null};i.dimensions&&(R(g),D(g));return g}.bind(0,e,r)),l=i.selectAll(\\\"g.parcatslayer\\\").data([null]);l.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"parcatslayer\\\").style(\\\"pointer-events\\\",\\\"all\\\");var u=l.selectAll(\\\"g.trace.parcats\\\").data(a,f),v=u.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"trace parcats\\\");u.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\", \\\"+t.y+\\\")\\\"}),v.append(\\\"g\\\").attr(\\\"class\\\",\\\"paths\\\");var x=u.select(\\\"g.paths\\\").selectAll(\\\"path.path\\\").data(function(t){return t.paths},f);x.attr(\\\"fill\\\",function(t){return t.model.color});var w=x.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"path\\\").attr(\\\"stroke-opacity\\\",0).attr(\\\"fill\\\",function(t){return t.model.color}).attr(\\\"fill-opacity\\\",0);y(w),x.attr(\\\"d\\\",function(t){return t.svgD}),w.empty()||x.sort(p),x.exit().remove(),x.on(\\\"mouseover\\\",d).on(\\\"mouseout\\\",g).on(\\\"click\\\",m),v.append(\\\"g\\\").attr(\\\"class\\\",\\\"dimensions\\\");var k=u.select(\\\"g.dimensions\\\").selectAll(\\\"g.dimension\\\").data(function(t){return t.dimensions},f);k.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"dimension\\\"),k.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\", 0)\\\"}),k.exit().remove();var M=k.selectAll(\\\"g.category\\\").data(function(t){return t.categories},f),A=M.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"category\\\");M.attr(\\\"transform\\\",function(t){return\\\"translate(0, \\\"+t.y+\\\")\\\"}),A.append(\\\"rect\\\").attr(\\\"class\\\",\\\"catrect\\\").attr(\\\"pointer-events\\\",\\\"none\\\"),M.select(\\\"rect.catrect\\\").attr(\\\"fill\\\",\\\"none\\\").attr(\\\"width\\\",function(t){return t.width}).attr(\\\"height\\\",function(t){return t.height}),b(A);var z=M.selectAll(\\\"rect.bandrect\\\").data(function(t){return t.bands},f);z.each(function(){o.raiseToTop(this)}),z.attr(\\\"fill\\\",function(t){return t.color});var O=z.enter().append(\\\"rect\\\").attr(\\\"class\\\",\\\"bandrect\\\").attr(\\\"stroke-opacity\\\",0).attr(\\\"fill\\\",function(t){return t.color}).attr(\\\"fill-opacity\\\",0);z.attr(\\\"fill\\\",function(t){return t.color}).attr(\\\"width\\\",function(t){return t.width}).attr(\\\"height\\\",function(t){return t.height}).attr(\\\"y\\\",function(t){return t.y}).attr(\\\"cursor\\\",function(t){return\\\"fixed\\\"===t.parcatsViewModel.arrangement?\\\"default\\\":\\\"perpendicular\\\"===t.parcatsViewModel.arrangement?\\\"ns-resize\\\":\\\"move\\\"}),_(O),z.exit().remove(),A.append(\\\"text\\\").attr(\\\"class\\\",\\\"catlabel\\\").attr(\\\"pointer-events\\\",\\\"none\\\");var I=e._fullLayout.paper_bgcolor;M.select(\\\"text.catlabel\\\").attr(\\\"text-anchor\\\",function(t){return h(t)?\\\"start\\\":\\\"end\\\"}).attr(\\\"alignment-baseline\\\",\\\"middle\\\").style(\\\"text-shadow\\\",I+\\\" -1px  1px 2px, \\\"+I+\\\" 1px  1px 2px, \\\"+I+\\\"  1px -1px 2px, \\\"+I+\\\" -1px -1px 2px\\\").style(\\\"fill\\\",\\\"rgb(0, 0, 0)\\\").attr(\\\"x\\\",function(t){return h(t)?t.width+5:-5}).attr(\\\"y\\\",function(t){return t.height/2}).text(function(t){return t.model.categoryLabel}).each(function(t){s.font(n.select(this),t.parcatsViewModel.categorylabelfont),c.convertToTspans(n.select(this),e)}),A.append(\\\"text\\\").attr(\\\"class\\\",\\\"dimlabel\\\"),M.select(\\\"text.dimlabel\\\").attr(\\\"text-anchor\\\",\\\"middle\\\").attr(\\\"alignment-baseline\\\",\\\"baseline\\\").attr(\\\"cursor\\\",function(t){return\\\"fixed\\\"===t.parcatsViewModel.arrangement?\\\"default\\\":\\\"ew-resize\\\"}).attr(\\\"x\\\",function(t){return t.width/2}).attr(\\\"y\\\",-5).text(function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null}).each(function(t){s.font(n.select(this),t.parcatsViewModel.labelfont)}),M.selectAll(\\\"rect.bandrect\\\").on(\\\"mouseover\\\",T).on(\\\"mouseout\\\",S),M.exit().remove(),k.call(n.behavior.drag().origin(function(t){return{x:t.x,y:0}}).on(\\\"dragstart\\\",E).on(\\\"drag\\\",C).on(\\\"dragend\\\",L)),u.each(function(t){t.traceSelection=n.select(this),t.pathSelection=n.select(this).selectAll(\\\"g.paths\\\").selectAll(\\\"path.path\\\"),t.dimensionSelection=n.select(this).selectAll(\\\"g.dimensions\\\").selectAll(\\\"g.dimension\\\")}),u.exit().remove()}function f(t){return t.key}function h(t){var e=t.parcatsViewModel.dimensions.length,r=t.parcatsViewModel.dimensions[e-1].model.dimensionInd;return t.model.dimensionInd===r}function p(t,e){return t.model.rawColor>e.model.rawColor?1:t.model.rawColor<e.model.rawColor?-1:0}function d(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\")){o.raiseToTop(this),x(n.select(this));var e=v(t);if(t.parcatsViewModel.graphDiv.emit(\\\"plotly_hover\\\",{points:e,event:n.event}),-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"none\\\")){var r,i,s,c=n.mouse(this)[0],u=t.parcatsViewModel.graphDiv,f=u._fullLayout,h=f._paperdiv.node().getBoundingClientRect(),p=t.parcatsViewModel.graphDiv.getBoundingClientRect();for(s=0;s<t.leftXs.length-1;s++)if(t.leftXs[s]+t.dimWidths[s]-2<=c&&c<=t.leftXs[s+1]+2){var d=t.parcatsViewModel.dimensions[s],g=t.parcatsViewModel.dimensions[s+1];r=(d.x+d.width+g.x)/2,i=(t.topYs[s]+t.topYs[s+1]+t.height)/2;break}var m=t.parcatsViewModel.x+r,y=t.parcatsViewModel.y+i,b=l.mostReadable(t.model.color,[\\\"black\\\",\\\"white\\\"]),_=[];-1!==t.parcatsViewModel.hoverinfoItems.indexOf(\\\"count\\\")&&_.push([\\\"Count:\\\",t.model.count].join(\\\" \\\")),-1!==t.parcatsViewModel.hoverinfoItems.indexOf(\\\"probability\\\")&&_.push([\\\"P:\\\",(t.model.count/t.parcatsViewModel.model.count).toFixed(3)].join(\\\" \\\"));var w=_.join(\\\"<br>\\\"),k=n.mouse(u)[0];a.loneHover({x:m-h.left+p.left,y:y-h.top+p.top,text:w,color:t.model.color,borderColor:\\\"black\\\",fontFamily:'Monaco, \\\"Courier New\\\", monospace',fontSize:10,fontColor:b,idealAlign:k<m?\\\"right\\\":\\\"left\\\"},{container:f._hoverlayer.node(),outerContainer:f._paper.node(),gd:u})}}}function g(t){if(!t.parcatsViewModel.dragDimension&&(y(n.select(this)),a.loneUnhover(t.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()),t.parcatsViewModel.pathSelection.sort(p),-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\"))){var e=v(t);t.parcatsViewModel.graphDiv.emit(\\\"plotly_unhover\\\",{points:e,event:n.event})}}function v(t){for(var e=[],r=z(t.parcatsViewModel),n=0;n<t.model.valueInds.length;n++){var i=t.model.valueInds[n];e.push({curveNumber:r,pointNumber:i})}return e}function m(t){if(-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\")){var e=v(t);t.parcatsViewModel.graphDiv.emit(\\\"plotly_click\\\",{points:e,event:n.event})}}function y(t){t.attr(\\\"fill\\\",function(t){return t.model.color}).attr(\\\"fill-opacity\\\",.6).attr(\\\"stroke\\\",\\\"lightgray\\\").attr(\\\"stroke-width\\\",.2).attr(\\\"stroke-opacity\\\",1)}function x(t){t.attr(\\\"fill-opacity\\\",.8).attr(\\\"stroke\\\",function(t){return l.mostReadable(t.model.color,[\\\"black\\\",\\\"white\\\"])}).attr(\\\"stroke-width\\\",.3)}function b(t){t.select(\\\"rect.catrect\\\").attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",1).attr(\\\"stroke-opacity\\\",1)}function _(t){t.attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",.2).attr(\\\"stroke-opacity\\\",1).attr(\\\"fill-opacity\\\",1)}function w(t){var e=t.parcatsViewModel.pathSelection,r=t.categoryViewModel.model.dimensionInd,n=t.categoryViewModel.model.categoryInd;return e.filter(function(e){return e.model.categoryInds[r]===n&&e.model.color===t.color})}function k(t,e,r){var i=n.select(t).datum().parcatsViewModel.graphDiv,a=n.select(t.parentNode).selectAll(\\\"rect.bandrect\\\"),o=[];a.each(function(t){w(t).each(function(t){Array.prototype.push.apply(o,v(t))})}),i.emit(e,{points:o,event:r})}function M(t,e,r){var i=n.select(t).datum(),a=i.parcatsViewModel.graphDiv,o=w(i),s=[];o.each(function(t){Array.prototype.push.apply(s,v(t))}),a.emit(e,{points:s,event:r})}function A(t,e){var r,i,a=n.select(e.parentNode).select(\\\"rect.catrect\\\"),o=a.node().getBoundingClientRect(),s=a.datum(),l=s.parcatsViewModel,c=l.model.dimensions[s.model.dimensionInd],u=o.top+o.height/2;l.dimensions.length>1&&c.displayInd===l.dimensions.length-1?(r=o.left,i=\\\"left\\\"):(r=o.left+o.width,i=\\\"right\\\");var f=[];-1!==s.parcatsViewModel.hoverinfoItems.indexOf(\\\"count\\\")&&f.push([\\\"Count:\\\",s.model.count].join(\\\" \\\")),-1!==s.parcatsViewModel.hoverinfoItems.indexOf(\\\"probability\\\")&&f.push([\\\"P(\\\"+s.model.categoryLabel+\\\"):\\\",(s.model.count/s.parcatsViewModel.model.count).toFixed(3)].join(\\\" \\\"));var h=f.join(\\\"<br>\\\");return{x:r-t.left,y:u-t.top,text:h,color:\\\"lightgray\\\",borderColor:\\\"black\\\",fontFamily:'Monaco, \\\"Courier New\\\", monospace',fontSize:12,fontColor:\\\"black\\\",idealAlign:i}}function T(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\")){if(n.mouse(this)[1]<-1)return;var e,r=t.parcatsViewModel.graphDiv,i=r._fullLayout,s=i._paperdiv.node().getBoundingClientRect(),c=t.parcatsViewModel.hoveron;if(\\\"color\\\"===c?(!function(t){var e=n.select(t).datum(),r=w(e);x(r),r.each(function(){o.raiseToTop(this)}),n.select(t.parentNode).selectAll(\\\"rect.bandrect\\\").filter(function(t){return t.color===e.color}).each(function(){o.raiseToTop(this),n.select(this).attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",1.5)})}(this),M(this,\\\"plotly_hover\\\",n.event)):(!function(t){n.select(t.parentNode).selectAll(\\\"rect.bandrect\\\").each(function(t){var e=w(t);x(e),e.each(function(){o.raiseToTop(this)})}),n.select(t.parentNode).select(\\\"rect.catrect\\\").attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",2.5)}(this),k(this,\\\"plotly_hover\\\",n.event)),-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"none\\\"))\\\"category\\\"===c?e=A(s,this):\\\"color\\\"===c?e=function(t,e){var r,i,a=e.getBoundingClientRect(),o=n.select(e).datum(),s=o.categoryViewModel,c=s.parcatsViewModel,u=c.model.dimensions[s.model.dimensionInd],f=a.y+a.height/2;c.dimensions.length>1&&u.displayInd===c.dimensions.length-1?(r=a.left,i=\\\"left\\\"):(r=a.left+a.width,i=\\\"right\\\");var h=s.model.categoryLabel,p=o.parcatsViewModel.model.count,d=0;o.categoryViewModel.bands.forEach(function(t){t.color===o.color&&(d+=t.count)});var g=s.model.count,v=0;c.pathSelection.each(function(t){t.model.color===o.color&&(v+=t.model.count)});var m=[];if(-1!==s.parcatsViewModel.hoverinfoItems.indexOf(\\\"count\\\")&&m.push([\\\"Count:\\\",d].join(\\\" \\\")),-1!==s.parcatsViewModel.hoverinfoItems.indexOf(\\\"probability\\\")){var y=\\\"P(color \\\\u2229 \\\"+h+\\\"): \\\"+(d/p).toFixed(3);m.push(y);var x=\\\"P(\\\"+h+\\\" | color): \\\"+(d/v).toFixed(3);m.push(x);var b=\\\"P(color | \\\"+h+\\\"): \\\"+(d/g).toFixed(3);m.push(b)}var _=m.join(\\\"<br>\\\"),w=l.mostReadable(o.color,[\\\"black\\\",\\\"white\\\"]);return{x:r-t.left,y:f-t.top,text:_,color:o.color,borderColor:\\\"black\\\",fontFamily:'Monaco, \\\"Courier New\\\", monospace',fontColor:w,fontSize:10,idealAlign:i}}(s,this):\\\"dimension\\\"===c&&(e=function(t,e){var r=[];return n.select(e.parentNode.parentNode).selectAll(\\\"g.category\\\").select(\\\"rect.catrect\\\").each(function(){r.push(A(t,this))}),r}(s,this)),e&&a.multiHovers(e,{container:i._hoverlayer.node(),outerContainer:i._paper.node(),gd:r})}}function S(t){var e=t.parcatsViewModel;if(!e.dragDimension&&(y(e.pathSelection),b(e.dimensionSelection.selectAll(\\\"g.category\\\")),_(e.dimensionSelection.selectAll(\\\"g.category\\\").selectAll(\\\"rect.bandrect\\\")),a.loneUnhover(e.graphDiv._fullLayout._hoverlayer.node()),e.pathSelection.sort(p),-1===e.hoverinfoItems.indexOf(\\\"skip\\\"))){\\\"color\\\"===t.parcatsViewModel.hoveron?M(this,\\\"plotly_unhover\\\",n.event):k(this,\\\"plotly_unhover\\\",n.event)}}function E(t){\\\"fixed\\\"!==t.parcatsViewModel.arrangement&&(t.dragDimensionDisplayInd=t.model.displayInd,t.initialDragDimensionDisplayInds=t.parcatsViewModel.model.dimensions.map(function(t){return t.displayInd}),t.dragHasMoved=!1,t.dragCategoryDisplayInd=null,n.select(this).selectAll(\\\"g.category\\\").select(\\\"rect.catrect\\\").each(function(e){var r=n.mouse(this)[0],i=n.mouse(this)[1];-2<=r&&r<=e.width+2&&-2<=i&&i<=e.height+2&&(t.dragCategoryDisplayInd=e.model.displayInd,t.initialDragCategoryDisplayInds=t.model.categories.map(function(t){return t.displayInd}),e.model.dragY=e.y,o.raiseToTop(this.parentNode),n.select(this.parentNode).selectAll(\\\"rect.bandrect\\\").each(function(e){e.y<i&&i<=e.y+e.height&&(t.potentialClickBand=this)}))}),t.parcatsViewModel.dragDimension=t,a.loneUnhover(t.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()))}function C(t){if(\\\"fixed\\\"!==t.parcatsViewModel.arrangement&&(t.dragHasMoved=!0,null!==t.dragDimensionDisplayInd)){var e=t.dragDimensionDisplayInd,r=e-1,i=e+1,a=t.parcatsViewModel.dimensions[e];if(null!==t.dragCategoryDisplayInd){var o=a.categories[t.dragCategoryDisplayInd];o.model.dragY+=n.event.dy;var s=o.model.dragY,l=o.model.displayInd,c=a.categories,u=c[l-1],f=c[l+1];void 0!==u&&s<u.y+u.height/2&&(o.model.displayInd=u.model.displayInd,u.model.displayInd=l),void 0!==f&&s+o.height>f.y+f.height/2&&(o.model.displayInd=f.model.displayInd,f.model.displayInd=l),t.dragCategoryDisplayInd=o.model.displayInd}if(null===t.dragCategoryDisplayInd||\\\"freeform\\\"===t.parcatsViewModel.arrangement){a.model.dragX=n.event.x;var h=t.parcatsViewModel.dimensions[r],p=t.parcatsViewModel.dimensions[i];void 0!==h&&a.model.dragX<h.x+h.width&&(a.model.displayInd=h.model.displayInd,h.model.displayInd=e),void 0!==p&&a.model.dragX+a.width>p.x&&(a.model.displayInd=p.model.displayInd,p.model.displayInd=t.dragDimensionDisplayInd),t.dragDimensionDisplayInd=a.model.displayInd}R(t.parcatsViewModel),D(t.parcatsViewModel),I(t.parcatsViewModel),O(t.parcatsViewModel)}}function L(t){if(\\\"fixed\\\"!==t.parcatsViewModel.arrangement&&null!==t.dragDimensionDisplayInd){n.select(this).selectAll(\\\"text\\\").attr(\\\"font-weight\\\",\\\"normal\\\");var e={},r=z(t.parcatsViewModel),a=t.parcatsViewModel.model.dimensions.map(function(t){return t.displayInd}),o=t.initialDragDimensionDisplayInds.some(function(t,e){return t!==a[e]});o&&a.forEach(function(r,n){var i=t.parcatsViewModel.model.dimensions[n].containerInd;e[\\\"dimensions[\\\"+i+\\\"].displayindex\\\"]=r});var s=!1;if(null!==t.dragCategoryDisplayInd){var l=t.model.categories.map(function(t){return t.displayInd});if(s=t.initialDragCategoryDisplayInds.some(function(t,e){return t!==l[e]})){var c=t.model.categories.slice().sort(function(t,e){return t.displayInd-e.displayInd}),u=c.map(function(t){return t.categoryValue}),f=c.map(function(t){return t.categoryLabel});e[\\\"dimensions[\\\"+t.model.containerInd+\\\"].categoryarray\\\"]=[u],e[\\\"dimensions[\\\"+t.model.containerInd+\\\"].ticktext\\\"]=[f],e[\\\"dimensions[\\\"+t.model.containerInd+\\\"].categoryorder\\\"]=\\\"array\\\"}}if(-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\")&&!t.dragHasMoved&&t.potentialClickBand&&(\\\"color\\\"===t.parcatsViewModel.hoveron?M(t.potentialClickBand,\\\"plotly_click\\\",n.event.sourceEvent):k(t.potentialClickBand,\\\"plotly_click\\\",n.event.sourceEvent)),t.model.dragX=null,null!==t.dragCategoryDisplayInd)t.parcatsViewModel.dimensions[t.dragDimensionDisplayInd].categories[t.dragCategoryDisplayInd].model.dragY=null,t.dragCategoryDisplayInd=null;t.dragDimensionDisplayInd=null,t.parcatsViewModel.dragDimension=null,t.dragHasMoved=null,t.potentialClickBand=null,R(t.parcatsViewModel),D(t.parcatsViewModel),n.transition().duration(300).ease(\\\"cubic-in-out\\\").each(function(){I(t.parcatsViewModel,!0),O(t.parcatsViewModel,!0)}).each(\\\"end\\\",function(){(o||s)&&i.restyle(t.parcatsViewModel.graphDiv,e,[r])})}}function z(t){for(var e,r=t.graphDiv._fullData,n=0;n<r.length;n++)if(t.key===r[n].uid){e=n;break}return e}function O(t,e){var r;void 0===e&&(e=!1),t.pathSelection.data(function(t){return t.paths},f),(r=t.pathSelection,e?r.transition():r).attr(\\\"d\\\",function(t){return t.svgD})}function I(t,e){function r(t){return e?t.transition():t}void 0===e&&(e=!1),t.dimensionSelection.data(function(t){return t.dimensions},f);var i=t.dimensionSelection.selectAll(\\\"g.category\\\").data(function(t){return t.categories},f);r(t.dimensionSelection).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\", 0)\\\"}),r(i).attr(\\\"transform\\\",function(t){return\\\"translate(0, \\\"+t.y+\\\")\\\"}),i.select(\\\".dimlabel\\\").text(function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null}),i.select(\\\".catlabel\\\").attr(\\\"text-anchor\\\",function(t){return h(t)?\\\"start\\\":\\\"end\\\"}).attr(\\\"x\\\",function(t){return h(t)?t.width+5:-5}).each(function(t){var e,r;h(t)?(e=t.width+5,r=\\\"start\\\"):(e=-5,r=\\\"end\\\"),n.select(this).selectAll(\\\"tspan\\\").attr(\\\"x\\\",e).attr(\\\"text-anchor\\\",r)});var a=i.selectAll(\\\"rect.bandrect\\\").data(function(t){return t.bands},f),s=a.enter().append(\\\"rect\\\").attr(\\\"class\\\",\\\"bandrect\\\").attr(\\\"cursor\\\",\\\"move\\\").attr(\\\"stroke-opacity\\\",0).attr(\\\"fill\\\",function(t){return t.color}).attr(\\\"fill-opacity\\\",0);a.attr(\\\"fill\\\",function(t){return t.color}).attr(\\\"width\\\",function(t){return t.width}).attr(\\\"height\\\",function(t){return t.height}).attr(\\\"y\\\",function(t){return t.y}),_(s),a.each(function(){o.raiseToTop(this)}),a.exit().remove()}function P(t,e,r,i,a){var o,s,l=[],c=[];for(s=0;s<r.length-1;s++)o=n.interpolateNumber(r[s]+t[s],t[s+1]),l.push(o(a)),c.push(o(1-a));var u=\\\"M \\\"+t[0]+\\\",\\\"+e[0];for(u+=\\\"l\\\"+r[0]+\\\",0 \\\",s=1;s<r.length;s++)u+=\\\"C\\\"+l[s-1]+\\\",\\\"+e[s-1]+\\\" \\\"+c[s-1]+\\\",\\\"+e[s]+\\\" \\\"+t[s]+\\\",\\\"+e[s],u+=\\\"l\\\"+r[s]+\\\",0 \\\";for(u+=\\\"l0,\\\"+i+\\\" \\\",u+=\\\"l -\\\"+r[r.length-1]+\\\",0 \\\",s=r.length-2;s>=0;s--)u+=\\\"C\\\"+c[s]+\\\",\\\"+(e[s+1]+i)+\\\" \\\"+l[s]+\\\",\\\"+(e[s]+i)+\\\" \\\"+(t[s]+r[s])+\\\",\\\"+(e[s]+i),u+=\\\"l-\\\"+r[s]+\\\",0 \\\";return u+=\\\"Z\\\"}function D(t){var e=t.dimensions,r=t.model,n=e.map(function(t){return t.categories.map(function(t){return t.y})}),i=t.model.dimensions.map(function(t){return t.categories.map(function(t){return t.displayInd})}),a=t.model.dimensions.map(function(t){return t.displayInd}),o=t.dimensions.map(function(t){return t.model.dimensionInd}),s=e.map(function(t){return t.x}),l=e.map(function(t){return t.width}),c=[];for(var u in r.paths)r.paths.hasOwnProperty(u)&&c.push(r.paths[u]);function f(t){var e=t.categoryInds.map(function(t,e){return i[e][t]});return o.map(function(t){return e[t]})}c.sort(function(e,r){var n=f(e),i=f(r);return\\\"backward\\\"===t.sortpaths&&(n.reverse(),i.reverse()),n.push(e.valueInds[0]),i.push(r.valueInds[0]),t.bundlecolors&&(n.unshift(e.rawColor),i.unshift(r.rawColor)),n<i?-1:n>i?1:0});for(var h=new Array(c.length),p=e[0].model.count,d=e[0].categories.map(function(t){return t.height}).reduce(function(t,e){return t+e}),g=0;g<c.length;g++){var v,m=c[g];v=p>0?d*(m.count/p):0;for(var y,x=new Array(n.length),b=0;b<m.categoryInds.length;b++){var _=m.categoryInds[b],w=i[b][_],k=a[b];x[k]=n[k][w],n[k][w]+=v;var M=t.dimensions[k].categories[w],A=M.bands.length,T=M.bands[A-1];if(void 0===T||m.rawColor!==T.rawColor){var S=void 0===T?0:T.y+T.height;M.bands.push({key:S,color:m.color,rawColor:m.rawColor,height:v,width:M.width,count:m.count,y:S,categoryViewModel:M,parcatsViewModel:t})}else{var E=M.bands[A-1];E.height+=v,E.count+=m.count}}y=\\\"hspline\\\"===t.pathShape?P(s,x,l,v,.5):P(s,x,l,v,0),h[g]={key:m.valueInds[0],model:m,height:v,leftXs:s,topYs:x,dimWidths:l,svgD:y,parcatsViewModel:t}}t.paths=h}function R(t){var e=t.model.dimensions.map(function(t){return{displayInd:t.displayInd,dimensionInd:t.dimensionInd}});e.sort(function(t,e){return t.displayInd-e.displayInd});var r=[];for(var n in e){var i=e[n].dimensionInd,a=t.model.dimensions[i];r.push(B(t,a))}t.dimensions=r}function B(t,e){var r,n=t.model.dimensions.length,i=e.displayInd;r=40+(n>1?(t.width-80-16)/(n-1):0)*i;var a,o,s,l,c,u=[],f=t.model.maxCats,h=e.categories.length,p=e.count,d=t.height-8*(f-1),g=8*(f-h)/2,v=e.categories.map(function(t){return{displayInd:t.displayInd,categoryInd:t.categoryInd}});for(v.sort(function(t,e){return t.displayInd-e.displayInd}),c=0;c<h;c++)l=v[c].categoryInd,o=e.categories[l],a=p>0?o.count/p*d:0,s={key:o.valueInds[0],model:o,width:16,height:a,y:null!==o.dragY?o.dragY:g,bands:[],parcatsViewModel:t},g=g+a+8,u.push(s);return{key:e.dimensionInd,x:null!==e.dragX?e.dragX:r,y:0,width:16,model:e,categories:u,parcatsViewModel:t,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}e.exports=function(t,e,r,n){u(r,t,n,e)}},{\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/plot_api\\\":731,d3:148,tinycolor2:514}],1006:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./parcats\\\");e.exports=function(t,e,r,i){var a=t._fullLayout,o=a._paper,s=a._size;n(t,o,e,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},r,i)}},{\\\"./parcats\\\":1005}],1007:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../../plots/cartesian/layout_attributes\\\"),o=t(\\\"../../plots/font_attributes\\\"),s=t(\\\"../../plots/domain\\\").attributes,l=t(\\\"../../lib/extend\\\").extendFlat,c=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports={domain:s({name:\\\"parcoords\\\",trace:!0,editType:\\\"calc\\\"}),hoverlabel:void 0,labelfont:o({editType:\\\"calc\\\"}),tickfont:o({editType:\\\"calc\\\"}),rangefont:o({editType:\\\"calc\\\"}),dimensions:c(\\\"dimension\\\",{label:{valType:\\\"string\\\",editType:\\\"calc\\\"},tickvals:l({},a.tickvals,{editType:\\\"calc\\\"}),ticktext:l({},a.ticktext,{editType:\\\"calc\\\"}),tickformat:{valType:\\\"string\\\",dflt:\\\"3s\\\",editType:\\\"calc\\\"},visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},range:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\",editType:\\\"calc\\\"},{valType:\\\"number\\\",editType:\\\"calc\\\"}],editType:\\\"calc\\\"},constraintrange:{valType:\\\"info_array\\\",freeLength:!0,dimensions:\\\"1-2\\\",items:[{valType:\\\"number\\\",editType:\\\"calc\\\"},{valType:\\\"number\\\",editType:\\\"calc\\\"}],editType:\\\"calc\\\"},multiselect:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},values:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"}),line:l(n(\\\"line\\\",{colorscaleDflt:\\\"Viridis\\\",autoColorDflt:!1,editTypeOverride:\\\"calc\\\"}),{colorbar:i,editType:\\\"calc\\\"})}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/layout_attributes\\\":757,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771}],1008:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"d3\\\"),a=t(\\\"../../lib/gup\\\").keyFun,o=t(\\\"../../lib/gup\\\").repeat,s=t(\\\"../../lib\\\").sorterAsc,l=n.bar.snapRatio;function c(t,e){return t*(1-l)+e*l}var u=n.bar.snapClose;function f(t,e){return t*(1-u)+e*u}function h(t,e,r){if(d(e,r))return e;for(var n=t[0],i=n,a=1;a<t.length;a++){var o=t[a];if(e<f(n,o))return c(n,i);if(e<o||a===t.length-1)return c(o,n);i=n,n=o}}function p(t,e,r){if(d(e,r))return e;for(var n=t[t.length-1],i=n,a=t.length-2;a>=0;a--){var o=t[a];if(e>f(n,o))return c(n,i);if(e>o||a===t.length-1)return c(o,n);i=n,n=o}}function d(t,e){for(var r=0;r<e.length;r++)if(t>=e[r][0]&&t<=e[r][1])return!0;return!1}function g(t){t.attr(\\\"x\\\",-n.bar.captureWidth/2).attr(\\\"width\\\",n.bar.captureWidth)}function v(t){t.attr(\\\"visibility\\\",\\\"visible\\\").style(\\\"visibility\\\",\\\"visible\\\").attr(\\\"fill\\\",\\\"yellow\\\").attr(\\\"opacity\\\",0)}function m(t){if(!t.brush.filterSpecified)return\\\"0,\\\"+t.height;for(var e,r,n,i=y(t.brush.filter.getConsolidated(),t.height),a=[0],o=i.length?i[0][0]:null,s=0;s<i.length;s++)r=(e=i[s])[1]-e[0],a.push(o),a.push(r),(n=s+1)<i.length&&(o=i[n][0]-e[1]);return a.push(t.height),a}function y(t,e){return t.map(function(t){return t.map(function(t){return t*e}).sort(s)})}function x(){i.select(document.body).style(\\\"cursor\\\",null)}function b(t){t.attr(\\\"stroke-dasharray\\\",m)}function _(t,e){var r=i.select(t).selectAll(\\\".highlight, .highlight-shadow\\\");b(e?r.transition().duration(n.bar.snapDuration).each(\\\"end\\\",e):r)}function w(t,e){var r,i=t.brush,a=NaN,o={};if(i.filterSpecified){var s=t.height,l=i.filter.getConsolidated(),c=y(l,s),u=NaN,f=NaN,h=NaN;for(r=0;r<=c.length;r++){var p=c[r];if(p&&p[0]<=e&&e<=p[1]){u=r;break}if(f=r?r-1:NaN,p&&p[0]>e){h=r;break}}if(a=u,isNaN(a)&&(a=isNaN(f)||isNaN(h)?isNaN(f)?h:f:e-c[f][1]<c[h][0]-e?f:h),!isNaN(a)){var d=c[a],g=function(t,e){var r=n.bar.handleHeight;if(!(e>t[1]+r||e<t[0]-r))return e>=.9*t[1]+.1*t[0]?\\\"n\\\":e<=.9*t[0]+.1*t[1]?\\\"s\\\":\\\"ns\\\"}(d,e);g&&(o.interval=l[a],o.intervalPix=d,o.region=g)}}if(t.ordinal&&!o.region){var v=t.unitTickvals,m=t.unitToPaddedPx.invert(e);for(r=0;r<v.length;r++){var x=[.25*v[Math.max(r-1,0)]+.75*v[r],.25*v[Math.min(r+1,v.length-1)]+.75*v[r]];if(m>=x[0]&&m<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function k(t){t.on(\\\"mousemove\\\",function(t){if(i.event.preventDefault(),!t.parent.inBrushDrag){var e=w(t,t.height-i.mouse(this)[1]-2*n.verticalPadding),r=\\\"crosshair\\\";e.clickableOrdinalRange?r=\\\"pointer\\\":e.region&&(r=e.region+\\\"-resize\\\"),i.select(document.body).style(\\\"cursor\\\",r)}}).on(\\\"mouseleave\\\",function(t){t.parent.inBrushDrag||x()}).call(i.behavior.drag().on(\\\"dragstart\\\",function(t){i.event.sourceEvent.stopPropagation();var e=t.height-i.mouse(this)[1]-2*n.verticalPadding,r=t.unitToPaddedPx.invert(e),a=t.brush,o=w(t,e),s=o.interval,l=a.svgBrush;if(l.wasDragged=!1,l.grabbingBar=\\\"ns\\\"===o.region,l.grabbingBar){var c=s.map(t.unitToPaddedPx);l.grabPoint=e-c[0]-n.verticalPadding,l.barLength=c[1]-c[0]}l.clickableOrdinalRange=o.clickableOrdinalRange,l.stayingIntervals=t.multiselect&&a.filterSpecified?a.filter.getConsolidated():[],s&&(l.stayingIntervals=l.stayingIntervals.filter(function(t){return t[0]!==s[0]&&t[1]!==s[1]})),l.startExtent=o.region?s[\\\"s\\\"===o.region?1:0]:r,t.parent.inBrushDrag=!0,l.brushStartCallback()}).on(\\\"drag\\\",function(t){i.event.sourceEvent.stopPropagation();var e=t.height-i.mouse(this)[1]-2*n.verticalPadding,r=t.brush.svgBrush;r.wasDragged=!0,r.grabbingBar?r.newExtent=[e-r.grabPoint,e+r.barLength-r.grabPoint].map(t.unitToPaddedPx.invert):r.newExtent=[r.startExtent,t.unitToPaddedPx.invert(e)].sort(s);var a=Math.max(0,-r.newExtent[0]),o=Math.max(0,r.newExtent[1]-1);r.newExtent[0]+=a,r.newExtent[1]-=o,r.grabbingBar&&(r.newExtent[1]+=a,r.newExtent[0]-=o),t.brush.filterSpecified=!0,r.extent=r.stayingIntervals.concat([r.newExtent]),r.brushCallback(t),_(this.parentNode)}).on(\\\"dragend\\\",function(t){i.event.sourceEvent.stopPropagation();var e=t.brush,r=e.filter,n=e.svgBrush,a=n.grabbingBar;if(n.grabbingBar=!1,n.grabLocation=void 0,t.parent.inBrushDrag=!1,x(),!n.wasDragged)return n.wasDragged=void 0,n.clickableOrdinalRange?e.filterSpecified&&t.multiselect?n.extent.push(n.clickableOrdinalRange):(n.extent=[n.clickableOrdinalRange],e.filterSpecified=!0):a?(n.extent=n.stayingIntervals,0===n.extent.length&&A(e)):A(e),n.brushCallback(t),_(this.parentNode),void n.brushEndCallback(e.filterSpecified?r.getConsolidated():[]);var o=function(){r.set(r.getConsolidated())};if(t.ordinal){var s=t.unitTickvals;s[s.length-1]<s[0]&&s.reverse(),n.newExtent=[h(s,n.newExtent[0],n.stayingIntervals),p(s,n.newExtent[1],n.stayingIntervals)];var l=n.newExtent[1]>n.newExtent[0];n.extent=n.stayingIntervals.concat(l?[n.newExtent]:[]),n.extent.length||A(e),n.brushCallback(t),l?_(this.parentNode,o):(o(),_(this.parentNode))}else o();n.brushEndCallback(e.filterSpecified?r.getConsolidated():[])}))}function M(t,e){return t[0]-e[0]}function A(t){t.filterSpecified=!1,t.svgBrush.extent=[[0,1]]}function T(t){for(var e,r=t.slice(),n=[],i=r.shift();i;){for(e=i.slice();(i=r.shift())&&i[0]<=e[1];)e[1]=Math.max(e[1],i[1]);n.push(e)}return n}e.exports={makeBrush:function(t,e,r,n,i,a){var o,l=function(){var t,e,r=[];return{set:function(n){r=n.map(function(t){return t.slice().sort(s)}).sort(M),t=T(r),e=r.reduce(function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]},[1/0,-1/0])},get:function(){return r.slice()},getConsolidated:function(){return t},getBounds:function(){return e}}}();return l.set(r),{filter:l,filterSpecified:e,svgBrush:{extent:[],brushStartCallback:n,brushCallback:(o=i,function(t){var e=t.brush,r=function(t){return t.svgBrush.extent.map(function(t){return t.slice()})}(e).slice();e.filter.set(r),o()}),brushEndCallback:a}}},ensureAxisBrush:function(t){var e=t.selectAll(\\\".\\\"+n.cn.axisBrush).data(o,a);e.enter().append(\\\"g\\\").classed(n.cn.axisBrush,!0),function(t){var e=t.selectAll(\\\".background\\\").data(o);e.enter().append(\\\"rect\\\").classed(\\\"background\\\",!0).call(g).call(v).style(\\\"pointer-events\\\",\\\"auto\\\").attr(\\\"transform\\\",\\\"translate(0 \\\"+n.verticalPadding+\\\")\\\"),e.call(k).attr(\\\"height\\\",function(t){return t.height-n.verticalPadding});var r=t.selectAll(\\\".highlight-shadow\\\").data(o);r.enter().append(\\\"line\\\").classed(\\\"highlight-shadow\\\",!0).attr(\\\"x\\\",-n.bar.width/2).attr(\\\"stroke-width\\\",n.bar.width+n.bar.strokeWidth).attr(\\\"stroke\\\",n.bar.strokeColor).attr(\\\"opacity\\\",n.bar.strokeOpacity).attr(\\\"stroke-linecap\\\",\\\"butt\\\"),r.attr(\\\"y1\\\",function(t){return t.height}).call(b);var i=t.selectAll(\\\".highlight\\\").data(o);i.enter().append(\\\"line\\\").classed(\\\"highlight\\\",!0).attr(\\\"x\\\",-n.bar.width/2).attr(\\\"stroke-width\\\",n.bar.width-n.bar.strokeWidth).attr(\\\"stroke\\\",n.bar.fillColor).attr(\\\"opacity\\\",n.bar.fillOpacity).attr(\\\"stroke-linecap\\\",\\\"butt\\\"),i.attr(\\\"y1\\\",function(t){return t.height}).call(b)}(e)},cleanRanges:function(t,e){if(Array.isArray(t[0])?(t=t.map(function(t){return t.sort(s)}),t=e.multiselect?T(t.sort(M)):[t[0]]):t=[t.sort(s)],e.tickvals){var r=e.tickvals.slice().sort(s);if(!(t=t.map(function(t){var e=[h(r,t[0],[]),p(r,t[1],[])];if(e[1]>e[0])return e}).filter(function(t){return t})).length)return}return t.length>1?t:t[0]}}},{\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"./constants\\\":1011,d3:148}],1009:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../plots/get_data\\\").getModuleCalcData,a=t(\\\"./plot\\\"),o=t(\\\"../../constants/xmlns_namespaces\\\");r.name=\\\"parcoords\\\",r.plot=function(t){var e=i(t.calcdata,\\\"parcoords\\\")[0];e.length&&a(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"parcoords\\\"),a=e._has&&e._has(\\\"parcoords\\\");i&&!a&&(n._paperdiv.selectAll(\\\".parcoords\\\").remove(),n._glimages.selectAll(\\\"*\\\").remove())},r.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(\\\".svg-container\\\");r.filter(function(t,e){return e===r.size()-1}).selectAll(\\\".gl-canvas-context, .gl-canvas-focus\\\").each(function(){var t=this.toDataURL(\\\"image/png\\\");e.append(\\\"svg:image\\\").attr({xmlns:o.svg,\\\"xlink:href\\\":t,preserveAspectRatio:\\\"none\\\",x:0,y:0,width:this.width,height:this.height})}),window.setTimeout(function(){n.selectAll(\\\"#filterBarPattern\\\").attr(\\\"id\\\",\\\"filterBarPattern\\\")},60)}},{\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../plots/get_data\\\":781,\\\"./plot\\\":1017,d3:148}],1010:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/has_colorscale\\\"),i=t(\\\"../../components/colorscale/calc\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../lib/gup\\\").wrap;e.exports=function(t,e){var r=!!e.line.colorscale&&a.isArrayOrTypedArray(e.line.color),s=r?e.line.color:function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=.5;return e}(e._length),l=r?e.line.colorscale:[[0,e.line.color],[1,e.line.color]];return n(e,\\\"line\\\")&&i(e,s,\\\"line\\\",\\\"c\\\"),o({lineColor:s,cscale:l})}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693}],1011:[function(t,e,r){\\\"use strict\\\";e.exports={maxDimensionCount:60,overdrag:45,verticalPadding:2,tickDistance:50,canvasPixelRatio:1,blockLineCount:5e3,layers:[\\\"contextLineLayer\\\",\\\"focusLineLayer\\\",\\\"pickLineLayer\\\"],axisTitleOffset:28,axisExtentOffset:10,bar:{width:4,captureWidth:10,fillColor:\\\"magenta\\\",fillOpacity:1,snapDuration:150,snapRatio:.25,snapClose:.01,strokeColor:\\\"white\\\",strokeOpacity:1,strokeWidth:1,handleHeight:8,handleOpacity:1,handleOverlap:0},cn:{axisExtentText:\\\"axis-extent-text\\\",parcoordsLineLayers:\\\"parcoords-line-layers\\\",parcoordsLineLayer:\\\"parcoords-lines\\\",parcoords:\\\"parcoords\\\",parcoordsControlView:\\\"parcoords-control-view\\\",yAxis:\\\"y-axis\\\",axisOverlays:\\\"axis-overlays\\\",axis:\\\"axis\\\",axisHeading:\\\"axis-heading\\\",axisTitle:\\\"axis-title\\\",axisExtent:\\\"axis-extent\\\",axisExtentTop:\\\"axis-extent-top\\\",axisExtentTopText:\\\"axis-extent-top-text\\\",axisExtentBottom:\\\"axis-extent-bottom\\\",axisExtentBottomText:\\\"axis-extent-bottom-text\\\",axisBrush:\\\"axis-brush\\\"},id:{filterBarPattern:\\\"filter-bar-pattern\\\"}}},{}],1012:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"../../plots/domain\\\").defaults,s=t(\\\"../../plots/array_container_defaults\\\"),l=t(\\\"./attributes\\\"),c=t(\\\"./axisbrush\\\"),u=t(\\\"./constants\\\").maxDimensionCount,f=t(\\\"./merge_length\\\");function h(t,e){function r(r,i){return n.coerce(t,e,l.dimensions,r,i)}var i=r(\\\"values\\\"),a=r(\\\"visible\\\");if(i&&i.length||(a=e.visible=!1),a){r(\\\"label\\\"),r(\\\"tickvals\\\"),r(\\\"ticktext\\\"),r(\\\"tickformat\\\"),r(\\\"range\\\"),r(\\\"multiselect\\\");var o=r(\\\"constraintrange\\\");o&&(e.constraintrange=c.cleanRanges(o,e))}}e.exports=function(t,e,r,c){function p(r,i){return n.coerce(t,e,l,r,i)}var d=t.dimensions;Array.isArray(d)&&d.length>u&&(n.log(\\\"parcoords traces support up to \\\"+u+\\\" dimensions at the moment\\\"),d.splice(u));var g=s(t,e,{name:\\\"dimensions\\\",handleItemDefaults:h}),v=function(t,e,r,o,s){var l=s(\\\"line.color\\\",r);if(i(t,\\\"line\\\")&&n.isArrayOrTypedArray(l)){if(l.length)return s(\\\"line.colorscale\\\"),a(t,e,o,s,{prefix:\\\"line.\\\",cLetter:\\\"c\\\"}),l.length;e.line.color=r}return 1/0}(t,e,r,c,p);o(e,c,p),Array.isArray(g)&&g.length||(e.visible=!1),f(e,g,\\\"values\\\",v);var m={family:c.font.family,size:Math.round(c.font.size/1.2),color:c.font.color};n.coerceFont(p,\\\"labelfont\\\",m),n.coerceFont(p,\\\"tickfont\\\",m),n.coerceFont(p,\\\"rangefont\\\",m)}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/domain\\\":770,\\\"./attributes\\\":1007,\\\"./axisbrush\\\":1008,\\\"./constants\\\":1011,\\\"./merge_length\\\":1015}],1013:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.colorbar={container:\\\"line\\\",min:\\\"cmin\\\",max:\\\"cmax\\\"},n.moduleType=\\\"trace\\\",n.name=\\\"parcoords\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"gl\\\",\\\"regl\\\",\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1007,\\\"./base_plot\\\":1009,\\\"./calc\\\":1010,\\\"./defaults\\\":1012,\\\"./plot\\\":1017}],1014:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=n([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 p0, p1, p2, p3,\\\\n               p4, p5, p6, p7,\\\\n               p8, p9, pa, pb,\\\\n               pc, pd, pe;\\\\n\\\\nattribute vec4 pf;\\\\n\\\\nuniform mat4 dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D,\\\\n             loA, hiA, loB, hiB, loC, hiC, loD, hiD;\\\\n\\\\nuniform vec2 resolution,\\\\n             viewBoxPosition,\\\\n             viewBoxSize;\\\\n\\\\nuniform sampler2D palette;\\\\nuniform sampler2D mask;\\\\nuniform float maskHeight;\\\\n\\\\nuniform vec2 colorClamp;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvec4 unit_1 = vec4(1, 1, 1, 1);\\\\n\\\\nfloat val(mat4 p, mat4 v) {\\\\n    return dot(matrixCompMult(p, v) * unit_1, unit_1);\\\\n}\\\\n\\\\nfloat axisY(\\\\n        float x,\\\\n        mat4 d[4],\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D\\\\n    ) {\\\\n\\\\n    float y1 = val(d[0], dim1A) + val(d[1], dim1B) + val(d[2], dim1C) + val(d[3], dim1D);\\\\n    float y2 = val(d[0], dim2A) + val(d[1], dim2B) + val(d[2], dim2C) + val(d[3], dim2D);\\\\n    return y1 * (1.0 - x) + y2 * x;\\\\n}\\\\n\\\\nconst int bitsPerByte = 8;\\\\n\\\\nint mod2(int a) {\\\\n    return a - 2 * (a / 2);\\\\n}\\\\n\\\\nint mod8(int a) {\\\\n    return a - 8 * (a / 8);\\\\n}\\\\n\\\\nvec4 zero = vec4(0, 0, 0, 0);\\\\nvec4 unit_0 = vec4(1, 1, 1, 1);\\\\nvec2 xyProjection = vec2(1, 1);\\\\n\\\\nmat4 mclamp(mat4 m, mat4 lo, mat4 hi) {\\\\n    return mat4(clamp(m[0], lo[0], hi[0]),\\\\n                clamp(m[1], lo[1], hi[1]),\\\\n                clamp(m[2], lo[2], hi[2]),\\\\n                clamp(m[3], lo[3], hi[3]));\\\\n}\\\\n\\\\nbool mshow(mat4 p, mat4 lo, mat4 hi) {\\\\n    return mclamp(p, lo, hi) == p;\\\\n}\\\\n\\\\nbool withinBoundingBox(\\\\n        mat4 d[4],\\\\n        mat4 loA, mat4 hiA, mat4 loB, mat4 hiB, mat4 loC, mat4 hiC, mat4 loD, mat4 hiD\\\\n    ) {\\\\n\\\\n    return mshow(d[0], loA, hiA) &&\\\\n           mshow(d[1], loB, hiB) &&\\\\n           mshow(d[2], loC, hiC) &&\\\\n           mshow(d[3], loD, hiD);\\\\n}\\\\n\\\\nbool withinRasterMask(mat4 d[4], sampler2D mask, float height) {\\\\n    bool result = true;\\\\n    int bitInByteStepper;\\\\n    float valY, valueY, scaleX;\\\\n    int hit, bitmask, valX;\\\\n    for(int i = 0; i < 4; i++) {\\\\n        for(int j = 0; j < 4; j++) {\\\\n            for(int k = 0; k < 4; k++) {\\\\n                bitInByteStepper = mod8(j * 4 + k);\\\\n                valX = i * 2 + j / 2;\\\\n                valY = d[i][j][k];\\\\n                valueY = valY * (height - 1.0) + 0.5;\\\\n                scaleX = (float(valX) + 0.5) / 8.0;\\\\n                hit = int(texture2D(mask, vec2(scaleX, (valueY + 0.5) / height))[3] * 255.0) / int(pow(2.0, float(bitInByteStepper)));\\\\n                result = result && mod2(hit) == 1;\\\\n            }\\\\n        }\\\\n    }\\\\n    return result;\\\\n}\\\\n\\\\nvec4 position(\\\\n        float depth,\\\\n        vec2 resolution, vec2 viewBoxPosition, vec2 viewBoxSize,\\\\n        mat4 dims[4],\\\\n        float signum,\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D,\\\\n        mat4 loA, mat4 hiA, mat4 loB, mat4 hiB, mat4 loC, mat4 hiC, mat4 loD, mat4 hiD,\\\\n        sampler2D mask, float maskHeight\\\\n    ) {\\\\n\\\\n    float x = 0.5 * signum + 0.5;\\\\n    float y = axisY(x, dims, dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D);\\\\n\\\\n    float show = float(\\\\n                            withinBoundingBox(dims, loA, hiA, loB, hiB, loC, hiC, loD, hiD)\\\\n                         && withinRasterMask(dims, mask, maskHeight)\\\\n                      );\\\\n\\\\n    vec2 viewBoxXY = viewBoxPosition + viewBoxSize * vec2(x, y);\\\\n    float depthOrHide = depth + 2.0 * (1.0 - show);\\\\n\\\\n    return vec4(\\\\n        xyProjection * (2.0 * viewBoxXY / resolution - 1.0),\\\\n        depthOrHide,\\\\n        1.0\\\\n    );\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\n    float prominence = abs(pf[3]);\\\\n\\\\n    mat4 p[4];\\\\n    p[0] = mat4(p0, p1, p2, p3);\\\\n    p[1] = mat4(p4, p5, p6, p7);\\\\n    p[2] = mat4(p8, p9, pa, pb);\\\\n    p[3] = mat4(pc, pd, pe, abs(pf));\\\\n\\\\n    gl_Position = position(\\\\n        1.0 - prominence,\\\\n        resolution, viewBoxPosition, viewBoxSize,\\\\n        p,\\\\n        sign(pf[3]),\\\\n        dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D,\\\\n        loA, hiA, loB, hiB, loC, hiC, loD, hiD,\\\\n        mask, maskHeight\\\\n    );\\\\n\\\\n    float clampedColorIndex = clamp((prominence - colorClamp[0]) / (colorClamp[1] - colorClamp[0]), 0.0, 1.0);\\\\n    fragColor = texture2D(palette, vec2((clampedColorIndex * 255.0 + 0.5) / 256.0, 0.5));\\\\n}\\\\n\\\"]),a=n([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 p0, p1, p2, p3,\\\\n               p4, p5, p6, p7,\\\\n               p8, p9, pa, pb,\\\\n               pc, pd, pe;\\\\n\\\\nattribute vec4 pf;\\\\n\\\\nuniform mat4 dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D;\\\\n\\\\nuniform vec2 resolution,\\\\n             viewBoxPosition,\\\\n             viewBoxSize;\\\\n\\\\nuniform sampler2D palette;\\\\n\\\\nuniform vec2 colorClamp;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvec2 xyProjection = vec2(1, 1);\\\\n\\\\nvec4 unit = vec4(1, 1, 1, 1);\\\\n\\\\nfloat val(mat4 p, mat4 v) {\\\\n    return dot(matrixCompMult(p, v) * unit, unit);\\\\n}\\\\n\\\\nfloat axisY(\\\\n        float x,\\\\n        mat4 d[4],\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D\\\\n    ) {\\\\n\\\\n    float y1 = val(d[0], dim1A) + val(d[1], dim1B) + val(d[2], dim1C) + val(d[3], dim1D);\\\\n    float y2 = val(d[0], dim2A) + val(d[1], dim2B) + val(d[2], dim2C) + val(d[3], dim2D);\\\\n    return y1 * (1.0 - x) + y2 * x;\\\\n}\\\\n\\\\nvec4 position(\\\\n        float depth,\\\\n        vec2 resolution, vec2 viewBoxPosition, vec2 viewBoxSize,\\\\n        mat4 dims[4],\\\\n        float signum,\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D\\\\n    ) {\\\\n\\\\n    float x = 0.5 * signum + 0.5;\\\\n    float y = axisY(x, dims, dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D);\\\\n\\\\n    vec2 viewBoxXY = viewBoxPosition + viewBoxSize * vec2(x, y);\\\\n\\\\n    return vec4(\\\\n        xyProjection * (2.0 * viewBoxXY / resolution - 1.0),\\\\n        depth,\\\\n        1.0\\\\n    );\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\n    float prominence = abs(pf[3]);\\\\n\\\\n    mat4 p[4];\\\\n    p[0] = mat4(p0, p1, p2, p3);\\\\n    p[1] = mat4(p4, p5, p6, p7);\\\\n    p[2] = mat4(p8, p9, pa, pb);\\\\n    p[3] = mat4(pc, pd, pe, abs(pf));\\\\n\\\\n    gl_Position = position(\\\\n        1.0 - prominence,\\\\n        resolution, viewBoxPosition, viewBoxSize,\\\\n        p,\\\\n        sign(pf[3]),\\\\n        dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D\\\\n    );\\\\n\\\\n    float clampedColorIndex = clamp((prominence - colorClamp[0]) / (colorClamp[1] - colorClamp[0]), 0.0, 1.0);\\\\n    fragColor = texture2D(palette, vec2((clampedColorIndex * 255.0 + 0.5) / 256.0, 0.5));\\\\n}\\\\n\\\"]),o=n([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 p0, p1, p2, p3,\\\\n               p4, p5, p6, p7,\\\\n               p8, p9, pa, pb,\\\\n               pc, pd, pe;\\\\n\\\\nattribute vec4 pf;\\\\n\\\\nuniform mat4 dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D,\\\\n             loA, hiA, loB, hiB, loC, hiC, loD, hiD;\\\\n\\\\nuniform vec2 resolution,\\\\n             viewBoxPosition,\\\\n             viewBoxSize;\\\\n\\\\nuniform sampler2D mask;\\\\nuniform float maskHeight;\\\\n\\\\nuniform vec2 colorClamp;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvec4 unit_1 = vec4(1, 1, 1, 1);\\\\n\\\\nfloat val(mat4 p, mat4 v) {\\\\n    return dot(matrixCompMult(p, v) * unit_1, unit_1);\\\\n}\\\\n\\\\nfloat axisY(\\\\n        float x,\\\\n        mat4 d[4],\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D\\\\n    ) {\\\\n\\\\n    float y1 = val(d[0], dim1A) + val(d[1], dim1B) + val(d[2], dim1C) + val(d[3], dim1D);\\\\n    float y2 = val(d[0], dim2A) + val(d[1], dim2B) + val(d[2], dim2C) + val(d[3], dim2D);\\\\n    return y1 * (1.0 - x) + y2 * x;\\\\n}\\\\n\\\\nconst int bitsPerByte = 8;\\\\n\\\\nint mod2(int a) {\\\\n    return a - 2 * (a / 2);\\\\n}\\\\n\\\\nint mod8(int a) {\\\\n    return a - 8 * (a / 8);\\\\n}\\\\n\\\\nvec4 zero = vec4(0, 0, 0, 0);\\\\nvec4 unit_0 = vec4(1, 1, 1, 1);\\\\nvec2 xyProjection = vec2(1, 1);\\\\n\\\\nmat4 mclamp(mat4 m, mat4 lo, mat4 hi) {\\\\n    return mat4(clamp(m[0], lo[0], hi[0]),\\\\n                clamp(m[1], lo[1], hi[1]),\\\\n                clamp(m[2], lo[2], hi[2]),\\\\n                clamp(m[3], lo[3], hi[3]));\\\\n}\\\\n\\\\nbool mshow(mat4 p, mat4 lo, mat4 hi) {\\\\n    return mclamp(p, lo, hi) == p;\\\\n}\\\\n\\\\nbool withinBoundingBox(\\\\n        mat4 d[4],\\\\n        mat4 loA, mat4 hiA, mat4 loB, mat4 hiB, mat4 loC, mat4 hiC, mat4 loD, mat4 hiD\\\\n    ) {\\\\n\\\\n    return mshow(d[0], loA, hiA) &&\\\\n           mshow(d[1], loB, hiB) &&\\\\n           mshow(d[2], loC, hiC) &&\\\\n           mshow(d[3], loD, hiD);\\\\n}\\\\n\\\\nbool withinRasterMask(mat4 d[4], sampler2D mask, float height) {\\\\n    bool result = true;\\\\n    int bitInByteStepper;\\\\n    float valY, valueY, scaleX;\\\\n    int hit, bitmask, valX;\\\\n    for(int i = 0; i < 4; i++) {\\\\n        for(int j = 0; j < 4; j++) {\\\\n            for(int k = 0; k < 4; k++) {\\\\n                bitInByteStepper = mod8(j * 4 + k);\\\\n                valX = i * 2 + j / 2;\\\\n                valY = d[i][j][k];\\\\n                valueY = valY * (height - 1.0) + 0.5;\\\\n                scaleX = (float(valX) + 0.5) / 8.0;\\\\n                hit = int(texture2D(mask, vec2(scaleX, (valueY + 0.5) / height))[3] * 255.0) / int(pow(2.0, float(bitInByteStepper)));\\\\n                result = result && mod2(hit) == 1;\\\\n            }\\\\n        }\\\\n    }\\\\n    return result;\\\\n}\\\\n\\\\nvec4 position(\\\\n        float depth,\\\\n        vec2 resolution, vec2 viewBoxPosition, vec2 viewBoxSize,\\\\n        mat4 dims[4],\\\\n        float signum,\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D,\\\\n        mat4 loA, mat4 hiA, mat4 loB, mat4 hiB, mat4 loC, mat4 hiC, mat4 loD, mat4 hiD,\\\\n        sampler2D mask, float maskHeight\\\\n    ) {\\\\n\\\\n    float x = 0.5 * signum + 0.5;\\\\n    float y = axisY(x, dims, dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D);\\\\n\\\\n    float show = float(\\\\n                            withinBoundingBox(dims, loA, hiA, loB, hiB, loC, hiC, loD, hiD)\\\\n                         && withinRasterMask(dims, mask, maskHeight)\\\\n                      );\\\\n\\\\n    vec2 viewBoxXY = viewBoxPosition + viewBoxSize * vec2(x, y);\\\\n    float depthOrHide = depth + 2.0 * (1.0 - show);\\\\n\\\\n    return vec4(\\\\n        xyProjection * (2.0 * viewBoxXY / resolution - 1.0),\\\\n        depthOrHide,\\\\n        1.0\\\\n    );\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\n    float prominence = abs(pf[3]);\\\\n\\\\n    mat4 p[4];\\\\n    p[0] = mat4(p0, p1, p2, p3);\\\\n    p[1] = mat4(p4, p5, p6, p7);\\\\n    p[2] = mat4(p8, p9, pa, pb);\\\\n    p[3] = mat4(pc, pd, pe, abs(pf));\\\\n\\\\n    gl_Position = position(\\\\n        1.0 - prominence,\\\\n        resolution, viewBoxPosition, viewBoxSize,\\\\n        p,\\\\n        sign(pf[3]),\\\\n        dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D,\\\\n        loA, hiA, loB, hiB, loC, hiC, loD, hiD,\\\\n        mask, maskHeight\\\\n    );\\\\n\\\\n    fragColor = vec4(pf.rgb, 1.0);\\\\n}\\\\n\\\"]),s=n([\\\"precision lowp float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n    gl_FragColor = fragColor;\\\\n}\\\\n\\\"]),l=t(\\\"../../lib\\\"),c=1e-6,u=1e-7,f=2048,h=64,p=2,d=4,g=8,v=h/g,m=[119,119,119],y=new Uint8Array(4),x=new Uint8Array(4),b={shape:[256,1],format:\\\"rgba\\\",type:\\\"uint8\\\",mag:\\\"nearest\\\",min:\\\"nearest\\\"};function _(t,e,r,n,i){var a=t._gl;a.enable(a.SCISSOR_TEST),a.scissor(e,r,n,i),t.clear({color:[0,0,0,0],depth:1})}function w(t,e,r,n,i,a){var o=a.key;r.drawCompleted||(!function(t){t.read({x:0,y:0,width:1,height:1,data:y})}(t),r.drawCompleted=!0),function s(l){var c;c=Math.min(n,i-l*n),a.offset=p*l*n,a.count=p*c,0===l&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],_(t,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),r.clearOnly||(e(a),l*n+c<i&&(r.currentRafs[o]=window.requestAnimationFrame(function(){s(l+1)})),r.drawCompleted=!1)}(0)}function k(t,e){return(t>>>8*e)%256/255}function M(t,e,r){var n,i,a,o=[];for(i=0;i<t;i++)for(a=0;a<p;a++)for(n=0;n<d;n++)o.push(e[i*h+r*d+n]),r*d+n===h-1&&a%2==0&&(o[o.length-1]*=-1);return o}e.exports=function(t,e){var r,n,p,d,y,A=e.context,T=e.pick,S=e.regl,E={currentRafs:{},drawCompleted:!0,clearOnly:!1},C=function(t){for(var e={},r=0;r<16;r++)e[\\\"p\\\"+r.toString(16)]=t.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array(0)});return e}(S),L=S.texture(b);O(e);var z=S({profile:!1,blend:{enable:A,func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:1,dstAlpha:1},equation:{rgb:\\\"add\\\",alpha:\\\"add\\\"},color:[0,0,0,0]},depth:{enable:!A,mask:!0,func:\\\"less\\\",range:[0,1]},cull:{enable:!0,face:\\\"back\\\"},scissor:{enable:!0,box:{x:S.prop(\\\"scissorX\\\"),y:S.prop(\\\"scissorY\\\"),width:S.prop(\\\"scissorWidth\\\"),height:S.prop(\\\"scissorHeight\\\")}},viewport:{x:S.prop(\\\"viewportX\\\"),y:S.prop(\\\"viewportY\\\"),width:S.prop(\\\"viewportWidth\\\"),height:S.prop(\\\"viewportHeight\\\")},dither:!1,vert:T?o:A?a:i,frag:s,primitive:\\\"lines\\\",lineWidth:1,attributes:C,uniforms:{resolution:S.prop(\\\"resolution\\\"),viewBoxPosition:S.prop(\\\"viewBoxPosition\\\"),viewBoxSize:S.prop(\\\"viewBoxSize\\\"),dim1A:S.prop(\\\"dim1A\\\"),dim2A:S.prop(\\\"dim2A\\\"),dim1B:S.prop(\\\"dim1B\\\"),dim2B:S.prop(\\\"dim2B\\\"),dim1C:S.prop(\\\"dim1C\\\"),dim2C:S.prop(\\\"dim2C\\\"),dim1D:S.prop(\\\"dim1D\\\"),dim2D:S.prop(\\\"dim2D\\\"),loA:S.prop(\\\"loA\\\"),hiA:S.prop(\\\"hiA\\\"),loB:S.prop(\\\"loB\\\"),hiB:S.prop(\\\"hiB\\\"),loC:S.prop(\\\"loC\\\"),hiC:S.prop(\\\"hiC\\\"),loD:S.prop(\\\"loD\\\"),hiD:S.prop(\\\"hiD\\\"),palette:L,mask:S.prop(\\\"maskTexture\\\"),maskHeight:S.prop(\\\"maskHeight\\\"),colorClamp:S.prop(\\\"colorClamp\\\")},offset:S.prop(\\\"offset\\\"),count:S.prop(\\\"count\\\")});function O(t){r=t.model,n=t.viewModel,p=n.dimensions.slice(),d=p[0]?p[0].values.length:0;var e=r.lines,i=T?e.color.map(function(t,r){return r/e.color.length}):e.color,a=Math.max(1/255,Math.pow(1/i.length,1/3)),o=function(t,e,r){for(var n,i=e.length,a=[],o=0;o<t;o++)for(var s=0;s<h;s++)a.push(s<i?e[s].paddedUnitValues[o]:s===h-1?(n=r[o],Math.max(c,Math.min(1-c,n))):s>=h-4?k(o,h-2-s):.5);return a}(d,p,i);!function(t,e,r){for(var n=0;n<16;n++)t[\\\"p\\\"+n.toString(16)](M(e,r,n))}(C,d,o),L=S.texture(l.extendFlat({data:function(t,e,r){for(var n=[],i=0;i<256;i++){var a=t(i/255);n.push((e?m:a).concat(r))}return n}(r.unitToColor,A,Math.round(255*(A?a:1)))},b))}var I=[0,1];var P=[];function D(t,e,n,i,a,o,s,c,u,f,h){var p,d,g,v,m=[t,e],y=[0,1].map(function(){return[0,1,2,3].map(function(){return new Float32Array(16)})});for(p=0;p<2;p++)for(v=m[p],d=0;d<4;d++)for(g=0;g<16;g++)y[p][d][g]=g+16*d===v?1:0;var x=r.lines.canvasOverdrag,b=r.domain,_=r.canvasWidth,w=r.canvasHeight;return l.extendFlat({key:s,resolution:[_,w],viewBoxPosition:[n+x,i],viewBoxSize:[a,o],i:t,ii:e,dim1A:y[0][0],dim1B:y[0][1],dim1C:y[0][2],dim1D:y[0][3],dim2A:y[1][0],dim2B:y[1][1],dim2C:y[1][2],dim2D:y[1][3],colorClamp:I,scissorX:(c===u?0:n+x)+(r.pad.l-x)+r.layoutWidth*b.x[0],scissorWidth:(c===f?_-n+x:a+.5)+(c===u?n+x:0),scissorY:i+r.pad.b+r.layoutHeight*b.y[0],scissorHeight:o,viewportX:r.pad.l-x+r.layoutWidth*b.x[0],viewportY:r.pad.b+r.layoutHeight*b.y[0],viewportWidth:_,viewportHeight:w},h)}return{setColorDomain:function(t){I[0]=t[0],I[1]=t[1]},render:function(t,e,n){var i,a,o,s=t.length,l=1/0,c=-1/0;for(i=0;i<s;i++)t[i].dim2.canvasX>c&&(c=t[i].dim2.canvasX,o=i),t[i].dim1.canvasX<l&&(l=t[i].dim1.canvasX,a=i);0===s&&_(S,0,0,r.canvasWidth,r.canvasHeight);var h=A?{}:function(){var t,e,r,n=[0,1].map(function(){return[0,1,2,3].map(function(){return new Float32Array(16)})});for(t=0;t<2;t++)for(e=0;e<4;e++)for(r=0;r<16;r++){var i,a=r+16*e;i=a<p.length?p[a].brush.filter.getBounds()[t]:t,n[t][e][r]=i+(2*t-1)*u}function o(t,e){var r=f-1;return[Math.max(0,Math.floor(e[0]*r)),Math.min(r,Math.ceil(e[1]*r))]}for(var s=Array.apply(null,new Array(f*v)).map(function(){return 255}),l=0;l<p.length;l++){var c=l%g,h=(l-c)/g,d=Math.pow(2,c),m=p[l],x=m.brush.filter.get();if(!(x.length<2))for(var b=o(0,x[0])[1],_=1;_<x.length;_++){for(var w=o(0,x[_]),k=b+1;k<w[0];k++)s[k*v+h]&=~d;b=Math.max(b,w[1])}}var M={shape:[v,f],format:\\\"alpha\\\",type:\\\"uint8\\\",mag:\\\"nearest\\\",min:\\\"nearest\\\",data:s};return y?y(M):y=S.texture(M),{maskTexture:y,maskHeight:f,loA:n[0][0],loB:n[0][1],loC:n[0][2],loD:n[0][3],hiA:n[1][0],hiB:n[1][1],hiC:n[1][2],hiD:n[1][3]}}();for(i=0;i<s;i++){var m=t[i],x=m.dim1,b=x.crossfilterDimensionIndex,k=m.canvasX,M=m.canvasY,T=m.dim2.crossfilterDimensionIndex,C=m.panelSizeX,L=m.panelSizeY,O=k+C;if(e||!P[b]||P[b][0]!==k||P[b][1]!==O){P[b]=[k,O];var I=D(b,T,k,M,C,L,x.crossfilterDimensionIndex,i,a,o,h);E.clearOnly=n,w(S,z,E,e?r.lines.blockLineCount:d,d,I)}}},readPixel:function(t,e){return S.read({x:t,y:e,width:1,height:1,data:x}),x},readPixels:function(t,e,r,n){var i=new Uint8Array(4*r*n);return S.read({x:t,y:e,width:r,height:n,data:i}),i},destroy:function(){for(var e in t.style[\\\"pointer-events\\\"]=\\\"none\\\",L.destroy(),y&&y.destroy(),C)C[e].destroy()},update:O}}},{\\\"../../lib\\\":696,glslify:392}],1015:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i,a;for(n||(n=1/0),i=0;i<e.length;i++)(a=e[i]).visible&&(n=Math.min(n,a[r].length));for(n===1/0&&(n=0),t._length=n,i=0;i<e.length;i++)(a=e[i]).visible&&(a._length=n);return n}},{}],1016:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lines\\\"),i=t(\\\"./constants\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"d3\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"../../lib/gup\\\"),c=l.keyFun,u=l.repeat,f=l.unwrap,h=t(\\\"./axisbrush\\\");function p(t){return!(\\\"visible\\\"in t)||t.visible}function d(t){var e=t.range?t.range[0]:a.aggNums(Math.min,null,t.values,t._length),r=t.range?t.range[1]:a.aggNums(Math.max,null,t.values,t._length);return!isNaN(e)&&isFinite(e)||(e=0),!isNaN(r)&&isFinite(r)||(r=0),e===r&&(0===e?(e-=1,r+=1):(e*=.9,r*=1.1)),[e,r]}function g(t){return t.dimensions.some(function(t){return t.brush.filterSpecified})}function v(t,e,r){var n=f(e),s=n.trace,l=n.lineColor,c=n.cscale,u=s.line,h=s.domain,g=s.dimensions,v=t.width,m=s.labelfont,y=s.tickfont,x=s.rangefont,b=a.extendDeepNoArrays({},u,{color:l.map(o.scale.linear().domain(d({values:l,range:[u.cmin,u.cmax],_length:s._length}))),blockLineCount:i.blockLineCount,canvasOverdrag:i.overdrag*i.canvasPixelRatio}),_=Math.floor(v*(h.x[1]-h.x[0])),w=Math.floor(t.height*(h.y[1]-h.y[0])),k=t.margin||{l:80,r:80,t:100,b:80},M=_,A=w;return{key:r,colCount:g.filter(p).length,dimensions:g,tickDistance:i.tickDistance,unitToColor:function(t){var e=t.map(function(t){return t[0]}),r=t.map(function(t){return o.rgb(t[1])}),n=\\\"rgb\\\".split(\\\"\\\").map(function(t){return o.scale.linear().clamp(!0).domain(e).range(r.map((n=t,function(t){return t[n]})));var n});return function(t){return n.map(function(e){return e(t)})}}(c),lines:b,labelFont:m,tickFont:y,rangeFont:x,layoutWidth:v,layoutHeight:t.height,domain:h,translateX:h.x[0]*v,translateY:t.height-h.y[1]*t.height,pad:k,canvasWidth:M*i.canvasPixelRatio+2*b.canvasOverdrag,canvasHeight:A*i.canvasPixelRatio,width:M,height:A,canvasPixelRatio:i.canvasPixelRatio}}function m(t,e,r){var n=r.width,s=r.height,l=r.dimensions,c=r.canvasPixelRatio,u=function(t){return n*t/Math.max(1,r.colCount-1)},f=i.verticalPadding/s,v=function(t,e){return o.scale.linear().range([e,t-e])}(s,i.verticalPadding),m={key:r.key,xScale:u,model:r,inBrushDrag:!1},y={};return m.dimensions=l.filter(p).map(function(n,l){var p=function(t,e){return o.scale.linear().domain(d(t)).range([e,1-e])}(n,f),x=y[n.label];y[n.label]=(x||0)+1;var b=n.label+(x?\\\"__\\\"+x:\\\"\\\"),_=n.constraintrange,w=_&&_.length;w&&!Array.isArray(_[0])&&(_=[_]);var k=w?_.map(function(t){return t.map(p)}):[[0,1]],M=n.values;M.length>n._length&&(M=M.slice(0,n._length));var A,T=n.tickvals;function S(t,e){return{val:t,text:A[e]}}function E(t,e){return t.val-e.val}if(Array.isArray(T)&&T.length){A=n.ticktext,Array.isArray(A)&&A.length?A.length>T.length?A=A.slice(0,T.length):T.length>A.length&&(T=T.slice(0,A.length)):A=T.map(o.format(n.tickformat));for(var C=1;C<T.length;C++)if(T[C]<T[C-1]){for(var L=T.map(S).sort(E),z=0;z<T.length;z++)T[z]=L[z].val,A[z]=L[z].text;break}}else T=void 0;return{key:b,label:n.label,tickFormat:n.tickformat,tickvals:T,ticktext:A,ordinal:!!T,multiselect:n.multiselect,xIndex:l,crossfilterDimensionIndex:l,visibleIndex:n._index,height:s,values:M,paddedUnitValues:M.map(p),unitTickvals:T&&T.map(p),xScale:u,x:u(l),canvasX:u(l)*c,unitToPaddedPx:v,domainScale:function(t,e,r,n,i){var a,s,l=d(r);return n?o.scale.ordinal().domain(n.map((a=o.format(r.tickformat),s=i,s?function(t,e){var r=s[e];return null==r?a(t):r}:a))).range(n.map(function(r){var n=(r-l[0])/(l[1]-l[0]);return t-e+n*(2*e-t)})):o.scale.linear().domain(l).range([t-e,e])}(s,i.verticalPadding,n,T,A),ordinalScale:function(t){if(t.tickvals){var e=d(t);return o.scale.ordinal().domain(t.tickvals).range(t.tickvals.map(function(t){return(t-e[0])/(e[1]-e[0])}))}}(n),parent:m,model:r,brush:h.makeBrush(t,w,k,function(){t.linePickActive(!1)},function(){var e=m;e.focusLayer&&e.focusLayer.render(e.panels,!0);var r=g(e);!t.contextShown()&&r?(e.contextLayer&&e.contextLayer.render(e.panels,!0),t.contextShown(!0)):t.contextShown()&&!r&&(e.contextLayer&&e.contextLayer.render(e.panels,!0,!0),t.contextShown(!1))},function(r){var i=m;if(i.focusLayer.render(i.panels,!0),i.pickLayer&&i.pickLayer.render(i.panels,!0),t.linePickActive(!0),e&&e.filterChanged){var o=p.invert,s=r.map(function(t){return t.map(o).sort(a.sorterAsc)}).sort(function(t,e){return t[0]-e[0]});e.filterChanged(i.key,n._index,s)}})}}),m}function y(t){t.classed(i.cn.axisExtentText,!0).attr(\\\"text-anchor\\\",\\\"middle\\\").style(\\\"cursor\\\",\\\"default\\\").style(\\\"user-select\\\",\\\"none\\\")}e.exports=function(t,e,r,l,p,d){var x,b,_=(x=!0,b=!1,{linePickActive:function(t){return arguments.length?x=!!t:x},contextShown:function(t){return arguments.length?b=!!t:b}}),w=l.filter(function(t){return f(t).trace.visible}).map(v.bind(0,p)).map(m.bind(0,_,d));r.each(function(t,e){return a.extendFlat(t,w[e])});var k=r.selectAll(\\\".gl-canvas\\\").each(function(t){t.viewModel=w[0],t.model=t.viewModel?t.viewModel.model:null}),M=null;k.filter(function(t){return t.pick}).style(\\\"pointer-events\\\",\\\"auto\\\").on(\\\"mousemove\\\",function(t){if(_.linePickActive()&&t.lineLayer&&d&&d.hover){var e=o.event,r=this.width,n=this.height,i=o.mouse(this),a=i[0],s=i[1];if(a<0||s<0||a>=r||s>=n)return;var l=t.lineLayer.readPixel(a,n-1-s),c=0!==l[3],u=c?l[2]+256*(l[1]+256*l[0]):null,f={x:a,y:s,clientX:e.clientX,clientY:e.clientY,dataIndex:t.model.key,curveNumber:u};u!==M&&(c?d.hover(f):d.unhover&&d.unhover(f),M=u)}}),k.style(\\\"opacity\\\",function(t){return t.pick?.01:1}),e.style(\\\"background\\\",\\\"rgba(255, 255, 255, 0)\\\");var A=e.selectAll(\\\".\\\"+i.cn.parcoords).data(w,c);A.exit().remove(),A.enter().append(\\\"g\\\").classed(i.cn.parcoords,!0).style(\\\"shape-rendering\\\",\\\"crispEdges\\\").style(\\\"pointer-events\\\",\\\"none\\\"),A.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.model.translateX+\\\",\\\"+t.model.translateY+\\\")\\\"});var T=A.selectAll(\\\".\\\"+i.cn.parcoordsControlView).data(u,c);T.enter().append(\\\"g\\\").classed(i.cn.parcoordsControlView,!0),T.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.model.pad.l+\\\",\\\"+t.model.pad.t+\\\")\\\"});var S=T.selectAll(\\\".\\\"+i.cn.yAxis).data(function(t){return t.dimensions},c);function E(t,e){for(var r=e.panels||(e.panels=[]),n=t.data(),i=n.length-1,a=0;a<i;a++){var o=r[a]||(r[a]={}),s=n[a],l=n[a+1];o.dim1=s,o.dim2=l,o.canvasX=s.canvasX,o.panelSizeX=l.canvasX-s.canvasX,o.panelSizeY=e.model.canvasHeight,o.y=0,o.canvasY=0}}S.enter().append(\\\"g\\\").classed(i.cn.yAxis,!0),T.each(function(t){E(S,t)}),k.each(function(t){if(t.viewModel){!t.lineLayer||d?t.lineLayer=n(this,t):t.lineLayer.update(t),(t.key||0===t.key)&&(t.viewModel[t.key]=t.lineLayer);var e=!t.context||d;t.lineLayer.render(t.viewModel.panels,e)}}),S.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.xScale(t.xIndex)+\\\", 0)\\\"}),S.call(o.behavior.drag().origin(function(t){return t}).on(\\\"drag\\\",function(t){var e=t.parent;_.linePickActive(!1),t.x=Math.max(-i.overdrag,Math.min(t.model.width+i.overdrag,o.event.x)),t.canvasX=t.x*t.model.canvasPixelRatio,S.sort(function(t,e){return t.x-e.x}).each(function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio}),E(S,e),S.filter(function(e){return 0!==Math.abs(t.xIndex-e.xIndex)}).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.xScale(t.xIndex)+\\\", 0)\\\"}),o.select(this).attr(\\\"transform\\\",\\\"translate(\\\"+t.x+\\\", 0)\\\"),S.each(function(r,n,i){i===t.parent.key&&(e.dimensions[n]=r)}),e.contextLayer&&e.contextLayer.render(e.panels,!1,!g(e)),e.focusLayer.render&&e.focusLayer.render(e.panels)}).on(\\\"dragend\\\",function(t){var e=t.parent;t.x=t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio,E(S,e),o.select(this).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\", 0)\\\"}),e.contextLayer&&e.contextLayer.render(e.panels,!1,!g(e)),e.focusLayer&&e.focusLayer.render(e.panels),e.pickLayer&&e.pickLayer.render(e.panels,!0),_.linePickActive(!0),d&&d.axesMoved&&d.axesMoved(e.key,e.dimensions.map(function(t){return t.crossfilterDimensionIndex}))})),S.exit().remove();var C=S.selectAll(\\\".\\\"+i.cn.axisOverlays).data(u,c);C.enter().append(\\\"g\\\").classed(i.cn.axisOverlays,!0),C.selectAll(\\\".\\\"+i.cn.axis).remove();var L=C.selectAll(\\\".\\\"+i.cn.axis).data(u,c);L.enter().append(\\\"g\\\").classed(i.cn.axis,!0),L.each(function(t){var e=t.model.height/t.model.tickDistance,r=t.domainScale,n=r.domain();o.select(this).call(o.svg.axis().orient(\\\"left\\\").tickSize(4).outerTickSize(2).ticks(e,t.tickFormat).tickValues(t.ordinal?n:null).tickFormat(t.ordinal?function(t){return t}:null).scale(r)),s.font(L.selectAll(\\\"text\\\"),t.model.tickFont)}),L.selectAll(\\\".domain, .tick>line\\\").attr(\\\"fill\\\",\\\"none\\\").attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-opacity\\\",.25).attr(\\\"stroke-width\\\",\\\"1px\\\"),L.selectAll(\\\"text\\\").style(\\\"text-shadow\\\",\\\"1px 1px 1px #fff, -1px -1px 1px #fff, 1px -1px 1px #fff, -1px 1px 1px #fff\\\").style(\\\"cursor\\\",\\\"default\\\").style(\\\"user-select\\\",\\\"none\\\");var z=C.selectAll(\\\".\\\"+i.cn.axisHeading).data(u,c);z.enter().append(\\\"g\\\").classed(i.cn.axisHeading,!0);var O=z.selectAll(\\\".\\\"+i.cn.axisTitle).data(u,c);O.enter().append(\\\"text\\\").classed(i.cn.axisTitle,!0).attr(\\\"text-anchor\\\",\\\"middle\\\").style(\\\"cursor\\\",\\\"ew-resize\\\").style(\\\"user-select\\\",\\\"none\\\").style(\\\"pointer-events\\\",\\\"auto\\\"),O.attr(\\\"transform\\\",\\\"translate(0,\\\"+-i.axisTitleOffset+\\\")\\\").text(function(t){return t.label}).each(function(t){s.font(o.select(this),t.model.labelFont)});var I=C.selectAll(\\\".\\\"+i.cn.axisExtent).data(u,c);I.enter().append(\\\"g\\\").classed(i.cn.axisExtent,!0);var P=I.selectAll(\\\".\\\"+i.cn.axisExtentTop).data(u,c);P.enter().append(\\\"g\\\").classed(i.cn.axisExtentTop,!0),P.attr(\\\"transform\\\",\\\"translate(0,\\\"+-i.axisExtentOffset+\\\")\\\");var D=P.selectAll(\\\".\\\"+i.cn.axisExtentTopText).data(u,c);function R(t,e){if(t.ordinal)return\\\"\\\";var r=t.domainScale.domain();return o.format(t.tickFormat)(r[e?r.length-1:0])}D.enter().append(\\\"text\\\").classed(i.cn.axisExtentTopText,!0).call(y),D.text(function(t){return R(t,!0)}).each(function(t){s.font(o.select(this),t.model.rangeFont)});var B=I.selectAll(\\\".\\\"+i.cn.axisExtentBottom).data(u,c);B.enter().append(\\\"g\\\").classed(i.cn.axisExtentBottom,!0),B.attr(\\\"transform\\\",function(t){return\\\"translate(0,\\\"+(t.model.height+i.axisExtentOffset)+\\\")\\\"});var F=B.selectAll(\\\".\\\"+i.cn.axisExtentBottomText).data(u,c);F.enter().append(\\\"text\\\").classed(i.cn.axisExtentBottomText,!0).attr(\\\"dy\\\",\\\"0.75em\\\").call(y),F.text(function(t){return R(t)}).each(function(t){s.font(o.select(this),t.model.rangeFont)}),h.ensureAxisBrush(C)}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"./axisbrush\\\":1008,\\\"./constants\\\":1011,\\\"./lines\\\":1014,d3:148}],1017:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./parcoords\\\"),i=t(\\\"../../lib/prepare_regl\\\");e.exports=function(t,e){var r=t._fullLayout,a=r._toppaper,o=r._paperdiv,s=r._glcontainer;if(i(t)){var l={},c={},u=r._size;e.forEach(function(e,r){l[r]=t.data[r].dimensions,c[r]=t.data[r].dimensions.slice()});n(o,a,s,e,{width:u.w,height:u.h,margin:{t:u.t,r:u.r,b:u.b,l:u.l}},{filterChanged:function(e,r,n){var i=c[e][r],a=n.map(function(t){return t.slice()});a.length?(1===a.length&&(a=a[0]),i.constraintrange=a,a=[a]):(delete i.constraintrange,a=null);var o={};o[\\\"dimensions[\\\"+r+\\\"].constraintrange\\\"]=a,t.emit(\\\"plotly_restyle\\\",[o,[e]])},hover:function(e){t.emit(\\\"plotly_hover\\\",e)},unhover:function(e){t.emit(\\\"plotly_unhover\\\",e)},axesMoved:function(e,r){function n(t){return!(\\\"visible\\\"in t)||t.visible}function i(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}var a=function(t){return function(e,n){return i(r,t,e)-i(r,t,n)}}(c[e].filter(n));l[e].sort(a),c[e].filter(function(t){return!n(t)}).sort(function(t){return c[e].indexOf(t)}).forEach(function(t){l[e].splice(l[e].indexOf(t),1),l[e].splice(c[e].indexOf(t),0,t)}),t.emit(\\\"plotly_restyle\\\")}})}}},{\\\"../../lib/prepare_regl\\\":709,\\\"./parcoords\\\":1016}],1018:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color/attributes\\\"),i=t(\\\"../../plots/font_attributes\\\"),a=t(\\\"../../plots/attributes\\\"),o=t(\\\"../../plots/domain\\\").attributes,s=t(\\\"../../lib/extend\\\").extendFlat,l=i({editType:\\\"calc\\\",arrayOk:!0,colorEditType:\\\"plot\\\"});e.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:n.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:\\\"calc\\\"},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:s({},a.hoverinfo,{flags:[\\\"label\\\",\\\"text\\\",\\\"value\\\",\\\"percent\\\",\\\"name\\\"]}),textposition:{valType:\\\"enumerated\\\",values:[\\\"inside\\\",\\\"outside\\\",\\\"auto\\\",\\\"none\\\"],dflt:\\\"auto\\\",arrayOk:!0,editType:\\\"calc\\\"},textfont:s({},l,{}),insidetextfont:s({},l,{}),outsidetextfont:s({},l,{}),title:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},titleposition:{valType:\\\"enumerated\\\",values:[\\\"top left\\\",\\\"top center\\\",\\\"top right\\\",\\\"middle center\\\",\\\"bottom left\\\",\\\"bottom center\\\",\\\"bottom right\\\"],editType:\\\"calc\\\"},titlefont:s({},l,{}),domain:o({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\\\"}}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771}],1019:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../plots/get_data\\\").getModuleCalcData;r.name=\\\"pie\\\",r.plot=function(t){var e=n.getModule(\\\"pie\\\"),r=i(t.calcdata,e)[0];r.length&&e.plot(t,r)},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"pie\\\"),a=e._has&&e._has(\\\"pie\\\");i&&!a&&n._pielayer.selectAll(\\\"g.trace\\\").remove()}},{\\\"../../plots/get_data\\\":781,\\\"../../registry\\\":827}],1020:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\").isArrayOrTypedArray,a=t(\\\"tinycolor2\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"./helpers\\\");r.calc=function(t,e){var r,l,c,u,f,h=e.values,p=i(h)&&h.length,d=e.labels,g=e.marker.colors||[],v=[],m=t._fullLayout,y=m._piecolormap,x={},b=0,_=m.hiddenlabels||[];if(e.dlabel)for(d=new Array(h.length),r=0;r<h.length;r++)d[r]=String(e.label0+r*e.dlabel);function w(t,e){return!!t&&(!!(t=a(t)).isValid()&&(t=o.addOpacity(t,t.getAlpha()),y[e]||(y[e]=t),t))}var k=(p?h:d).length;for(r=0;r<k;r++){if(p){if(l=h[r],!n(l))continue;if((l=+l)<0)continue}else l=1;void 0!==(c=d[r])&&\\\"\\\"!==c||(c=r);var M=x[c=String(c)];void 0===M?(x[c]=v.length,(u=-1!==_.indexOf(c))||(b+=l),v.push({v:l,label:c,color:w(g[r],c),i:r,pts:[r],hidden:u})):((f=v[M]).v+=l,f.pts.push(r),f.hidden||(b+=l),!1===f.color&&g[r]&&(f.color=w(g[r],c)))}if(e.sort&&v.sort(function(t,e){return e.v-t.v}),v[0]&&(v[0].vTotal=b),e.textinfo&&\\\"none\\\"!==e.textinfo){var A,T=-1!==e.textinfo.indexOf(\\\"label\\\"),S=-1!==e.textinfo.indexOf(\\\"text\\\"),E=-1!==e.textinfo.indexOf(\\\"value\\\"),C=-1!==e.textinfo.indexOf(\\\"percent\\\"),L=m.separators;for(r=0;r<v.length;r++){if(f=v[r],A=T?[f.label]:[],S){var z=s.getFirstFilled(e.text,f.pts);z&&A.push(z)}E&&A.push(s.formatPieValue(f.v,L)),C&&A.push(s.formatPiePercent(f.v/b,L)),f.text=A.join(\\\"<br>\\\")}}return v},r.crossTraceCalc=function(t){var e=t._fullLayout,r=t.calcdata,n=e.piecolorway,i=e._piecolormap;e.extendpiecolors&&(n=function(t){var e,r=JSON.stringify(t),n=l[r];if(!n){for(n=t.slice(),e=0;e<t.length;e++)n.push(a(t[e]).lighten(20).toHexString());for(e=0;e<t.length;e++)n.push(a(t[e]).darken(20).toHexString());l[r]=n}return n}(n));var o,s,c,u,f=0;for(o=0;o<r.length;o++)if(\\\"pie\\\"===(c=r[o])[0].trace.type)for(s=0;s<c.length;s++)!1===(u=c[s]).color&&(i[u.label]?u.color=i[u.label]:(i[u.label]=u.color=n[f%n.length],f++))};var l={}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"./helpers\\\":1023,\\\"fast-isnumeric\\\":214,tinycolor2:514}],1021:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"../../plots/domain\\\").defaults;e.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}var l,c=n.coerceFont,u=s(\\\"values\\\"),f=n.isArrayOrTypedArray(u),h=s(\\\"labels\\\");if(Array.isArray(h)?(l=h.length,f&&(l=Math.min(l,u.length))):f&&(l=u.length,s(\\\"label0\\\"),s(\\\"dlabel\\\")),l){e._length=l,s(\\\"marker.line.width\\\")&&s(\\\"marker.line.color\\\"),s(\\\"marker.colors\\\"),s(\\\"scalegroup\\\");var p=s(\\\"text\\\"),d=s(\\\"textinfo\\\",Array.isArray(p)?\\\"text+percent\\\":\\\"percent\\\");if(s(\\\"hovertext\\\"),d&&\\\"none\\\"!==d){var g=s(\\\"textposition\\\"),v=Array.isArray(g)||\\\"auto\\\"===g,m=v||\\\"inside\\\"===g,y=v||\\\"outside\\\"===g;if(m||y){var x=c(s,\\\"textfont\\\",o.font);if(m){var b=n.extendFlat({},x);!(t.textfont&&t.textfont.color)&&delete b.color,c(s,\\\"insidetextfont\\\",b)}y&&c(s,\\\"outsidetextfont\\\",x)}}a(e,o,s);var _=s(\\\"hole\\\");if(s(\\\"title\\\")){var w=s(\\\"titleposition\\\",_?\\\"middle center\\\":\\\"top center\\\");_||\\\"middle center\\\"!==w||(e.titleposition=\\\"top center\\\"),c(s,\\\"titlefont\\\",o.font)}s(\\\"sort\\\"),s(\\\"direction\\\"),s(\\\"rotation\\\"),s(\\\"pull\\\")}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../../plots/domain\\\":770,\\\"./attributes\\\":1018}],1022:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx/helpers\\\").appendArrayMultiPointValues;e.exports=function(t,e){var r={curveNumber:e.index,pointNumbers:t.pts,data:e._input,fullData:e,label:t.label,color:t.color,value:t.v,v:t.v};return 1===t.pts.length&&(r.pointNumber=r.i=t.pts[0]),n(r,e,t.pts),r}},{\\\"../../components/fx/helpers\\\":609}],1023:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");r.formatPiePercent=function(t,e){var r=(100*t).toPrecision(3);return-1!==r.lastIndexOf(\\\".\\\")&&(r=r.replace(/[.]?0+$/,\\\"\\\")),n.numSeparate(r,e)+\\\"%\\\"},r.formatPieValue=function(t,e){var r=t.toPrecision(10);return-1!==r.lastIndexOf(\\\".\\\")&&(r=r.replace(/[.]?0+$/,\\\"\\\")),n.numSeparate(r,e)},r.getFirstFilled=function(t,e){if(Array.isArray(t))for(var r=0;r<e.length;r++){var n=t[e[r]];if(n||0===n)return n}},r.castOption=function(t,e){return Array.isArray(t)?r.getFirstFilled(t,e):t||void 0}},{\\\"../../lib\\\":696}],1024:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),n.layoutAttributes=t(\\\"./layout_attributes\\\");var i=t(\\\"./calc\\\");n.calc=i.calc,n.crossTraceCalc=i.crossTraceCalc,n.plot=t(\\\"./plot\\\"),n.style=t(\\\"./style\\\"),n.styleOne=t(\\\"./style_one\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"pie\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"pie\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1018,\\\"./base_plot\\\":1019,\\\"./calc\\\":1020,\\\"./defaults\\\":1021,\\\"./layout_attributes\\\":1025,\\\"./layout_defaults\\\":1026,\\\"./plot\\\":1027,\\\"./style\\\":1028,\\\"./style_one\\\":1029}],1025:[function(t,e,r){\\\"use strict\\\";e.exports={hiddenlabels:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},piecolorway:{valType:\\\"colorlist\\\",editType:\\\"calc\\\"},extendpiecolors:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"}}},{}],1026:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r(\\\"hiddenlabels\\\"),r(\\\"piecolorway\\\",e.colorway),r(\\\"extendpiecolors\\\")}},{\\\"../../lib\\\":696,\\\"./layout_attributes\\\":1025}],1027:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/fx\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../../components/drawing\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"./helpers\\\"),u=t(\\\"./event_data\\\");function f(t,e){if(t.v===e.vTotal&&!e.trace.hole)return 1;var r=Math.PI*Math.min(t.v/e.vTotal,.5);return Math.min(1/(1+1/Math.sin(r)),(1-e.trace.hole)/2)}function h(t,e){var r=e.pxmid[0],n=e.pxmid[1],i=t.width/2,a=t.height/2;return r<0&&(i*=-1),n<0&&(a*=-1),{scale:1,rCenter:1,rotate:0,x:i+Math.abs(a)*(i>0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function p(t,e){var r=t.trace,n=e.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(t.titleBox.height,n/2)}function d(t){var e,r=t.pull;if(Array.isArray(r))for(r=0,e=0;e<t.pull.length;e++)t.pull[e]>r&&(r=t.pull[e]);return r}e.exports=function(t,e){var r=t._fullLayout;!function(t,e){for(var r,n,i=0;i<t.length;i++)if(r=t[i][0],(n=r.trace).title){var a=o.tester.append(\\\"text\\\").attr(\\\"data-notex\\\",1).text(n.title).call(o.font,n.titlefont).call(l.convertToTspans,e),s=o.bBox(a.node(),!0);r.titleBox={width:s.width,height:s.height},a.remove()}}(e,t),function(t,e){var r,n,i,a,o,s,l,c,u,f=[];for(i=0;i<t.length;i++)o=t[i][0],s=o.trace,r=e.w*(s.domain.x[1]-s.domain.x[0]),n=e.h*(s.domain.y[1]-s.domain.y[0]),s.title&&\\\"middle center\\\"!==s.titleposition&&(n-=p(o,e)),l=d(s),o.r=Math.min(r,n)/(2+2*l),o.cx=e.l+e.w*(s.domain.x[1]+s.domain.x[0])/2,o.cy=e.t+e.h*(1-s.domain.y[0])-n/2,s.title&&-1!==s.titleposition.indexOf(\\\"bottom\\\")&&(o.cy-=p(o,e)),s.scalegroup&&-1===f.indexOf(s.scalegroup)&&f.push(s.scalegroup);for(a=0;a<f.length;a++){for(u=1/0,c=f[a],i=0;i<t.length;i++)(o=t[i][0]).trace.scalegroup===c&&(u=Math.min(u,o.r*o.r/o.vTotal));for(i=0;i<t.length;i++)(o=t[i][0]).trace.scalegroup===c&&(o.r=Math.sqrt(u*o.vTotal))}}(e,r._size);var g=s.makeTraceGroups(r._pielayer,e,\\\"trace\\\").each(function(e){var g=n.select(this),v=e[0],m=v.trace;!function(t){var e,r,n,i=t[0],a=i.trace,o=a.rotation*Math.PI/180,s=2*Math.PI/i.vTotal,l=\\\"px0\\\",c=\\\"px1\\\";if(\\\"counterclockwise\\\"===a.direction){for(e=0;e<t.length&&t[e].hidden;e++);if(e===t.length)return;o+=s*t[e].v,s*=-1,l=\\\"px1\\\",c=\\\"px0\\\"}function u(t){return[i.r*Math.sin(t),-i.r*Math.cos(t)]}for(n=u(o),e=0;e<t.length;e++)(r=t[e]).hidden||(r[l]=n,o+=s*r.v/2,r.pxmid=u(o),r.midangle=o,o+=s*r.v/2,n=u(o),r[c]=n,r.largeArc=r.v>i.vTotal/2?1:0)}(e),g.attr(\\\"stroke-linejoin\\\",\\\"round\\\"),g.each(function(){var g=n.select(this).selectAll(\\\"g.slice\\\").data(e);g.enter().append(\\\"g\\\").classed(\\\"slice\\\",!0),g.exit().remove();var y=[[[],[]],[[],[]]],x=!1;g.each(function(e){if(e.hidden)n.select(this).selectAll(\\\"path,g\\\").remove();else{e.pointNumber=e.i,e.curveNumber=m.index,y[e.pxmid[1]<0?0:1][e.pxmid[0]<0?0:1].push(e);var p=v.cx,d=v.cy,g=n.select(this),b=g.selectAll(\\\"path.surface\\\").data([e]),_=!1,w=!1;if(b.enter().append(\\\"path\\\").classed(\\\"surface\\\",!0).style({\\\"pointer-events\\\":\\\"all\\\"}),g.select(\\\"path.textline\\\").remove(),g.on(\\\"mouseover\\\",function(){var a=t._fullLayout,o=t._fullData[m.index];if(!t._dragging&&!1!==a.hovermode){var s=o.hoverinfo;if(Array.isArray(s)&&(s=i.castHoverinfo({hoverinfo:[c.castOption(s,e.pts)],_module:m._module},a,0)),\\\"all\\\"===s&&(s=\\\"label+text+value+percent+name\\\"),\\\"none\\\"!==s&&\\\"skip\\\"!==s&&s){var l=f(e,v),h=p+e.pxmid[0]*(1-l),g=d+e.pxmid[1]*(1-l),y=r.separators,x=[];if(-1!==s.indexOf(\\\"label\\\")&&x.push(e.label),-1!==s.indexOf(\\\"text\\\")){var b=c.castOption(o.hovertext||o.text,e.pts);b&&x.push(b)}-1!==s.indexOf(\\\"value\\\")&&x.push(c.formatPieValue(e.v,y)),-1!==s.indexOf(\\\"percent\\\")&&x.push(c.formatPiePercent(e.v/v.vTotal,y));var k=m.hoverlabel,M=k.font;i.loneHover({x0:h-l*v.r,x1:h+l*v.r,y:g,text:x.join(\\\"<br>\\\"),name:-1!==s.indexOf(\\\"name\\\")?o.name:void 0,idealAlign:e.pxmid[0]<0?\\\"left\\\":\\\"right\\\",color:c.castOption(k.bgcolor,e.pts)||e.color,borderColor:c.castOption(k.bordercolor,e.pts),fontFamily:c.castOption(M.family,e.pts),fontSize:c.castOption(M.size,e.pts),fontColor:c.castOption(M.color,e.pts)},{container:a._hoverlayer.node(),outerContainer:a._paper.node(),gd:t}),_=!0}t.emit(\\\"plotly_hover\\\",{points:[u(e,o)],event:n.event}),w=!0}}).on(\\\"mouseout\\\",function(r){var a=t._fullLayout,o=t._fullData[m.index];w&&(r.originalEvent=n.event,t.emit(\\\"plotly_unhover\\\",{points:[u(e,o)],event:n.event}),w=!1),_&&(i.loneUnhover(a._hoverlayer.node()),_=!1)}).on(\\\"click\\\",function(){var r=t._fullLayout,a=t._fullData[m.index];t._dragging||!1===r.hovermode||(t._hoverdata=[u(e,a)],i.click(t,n.event))}),m.pull){var k=+c.castOption(m.pull,e.pts)||0;k>0&&(p+=k*e.pxmid[0],d+=k*e.pxmid[1])}e.cxFinal=p,e.cyFinal=d;var M=m.hole;if(e.v===v.vTotal){var A=\\\"M\\\"+(p+e.px0[0])+\\\",\\\"+(d+e.px0[1])+L(e.px0,e.pxmid,!0,1)+L(e.pxmid,e.px0,!0,1)+\\\"Z\\\";M?b.attr(\\\"d\\\",\\\"M\\\"+(p+M*e.px0[0])+\\\",\\\"+(d+M*e.px0[1])+L(e.px0,e.pxmid,!1,M)+L(e.pxmid,e.px0,!1,M)+\\\"Z\\\"+A):b.attr(\\\"d\\\",A)}else{var T=L(e.px0,e.px1,!0,1);if(M){var S=1-M;b.attr(\\\"d\\\",\\\"M\\\"+(p+M*e.px1[0])+\\\",\\\"+(d+M*e.px1[1])+L(e.px1,e.px0,!1,M)+\\\"l\\\"+S*e.px0[0]+\\\",\\\"+S*e.px0[1]+T+\\\"Z\\\")}else b.attr(\\\"d\\\",\\\"M\\\"+p+\\\",\\\"+d+\\\"l\\\"+e.px0[0]+\\\",\\\"+e.px0[1]+T+\\\"Z\\\")}var E=c.castOption(m.textposition,e.pts),C=g.selectAll(\\\"g.slicetext\\\").data(e.text&&\\\"none\\\"!==E?[0]:[]);C.enter().append(\\\"g\\\").classed(\\\"slicetext\\\",!0),C.exit().remove(),C.each(function(){var r=s.ensureSingle(n.select(this),\\\"text\\\",\\\"\\\",function(t){t.attr(\\\"data-notex\\\",1)});r.text(e.text).attr({class:\\\"slicetext\\\",transform:\\\"\\\",\\\"text-anchor\\\":\\\"middle\\\"}).call(o.font,\\\"outside\\\"===E?function(t,e,r){var n=c.castOption(t.outsidetextfont.color,e.pts)||c.castOption(t.textfont.color,e.pts)||r.color,i=c.castOption(t.outsidetextfont.family,e.pts)||c.castOption(t.textfont.family,e.pts)||r.family,a=c.castOption(t.outsidetextfont.size,e.pts)||c.castOption(t.textfont.size,e.pts)||r.size;return{color:n,family:i,size:a}}(m,e,t._fullLayout.font):function(t,e,r){var n=c.castOption(t.insidetextfont.color,e.pts);!n&&t._input.textfont&&(n=c.castOption(t._input.textfont.color,e.pts));var i=c.castOption(t.insidetextfont.family,e.pts)||c.castOption(t.textfont.family,e.pts)||r.family,o=c.castOption(t.insidetextfont.size,e.pts)||c.castOption(t.textfont.size,e.pts)||r.size;return{color:n||a.contrast(e.color),family:i,size:o}}(m,e,t._fullLayout.font)).call(l.convertToTspans,t);var i,u=o.bBox(r.node());\\\"outside\\\"===E?i=h(u,e):(i=function(t,e,r){var n=Math.sqrt(t.width*t.width+t.height*t.height),i=t.width/t.height,a=Math.PI*Math.min(e.v/r.vTotal,.5),o=1-r.trace.hole,s=f(e,r),l={scale:s*r.r*2/n,rCenter:1-s,rotate:0};if(l.scale>=1)return l;var c=i+1/(2*Math.tan(a)),u=r.r*Math.min(1/(Math.sqrt(c*c+.5)+c),o/(Math.sqrt(i*i+o/2)+i)),h={scale:2*u/t.height,rCenter:Math.cos(u/r.r)-u*i/r.r,rotate:(180/Math.PI*e.midangle+720)%180-90},p=1/i,d=p+1/(2*Math.tan(a)),g=r.r*Math.min(1/(Math.sqrt(d*d+.5)+d),o/(Math.sqrt(p*p+o/2)+p)),v={scale:2*g/t.width,rCenter:Math.cos(g/r.r)-g/i/r.r,rotate:(180/Math.PI*e.midangle+810)%180-90},m=v.scale>h.scale?v:h;return l.scale<1&&m.scale>l.scale?m:l}(u,e,v),\\\"auto\\\"===E&&i.scale<1&&(r.call(o.font,m.outsidetextfont),m.outsidetextfont.family===m.insidetextfont.family&&m.outsidetextfont.size===m.insidetextfont.size||(u=o.bBox(r.node())),i=h(u,e)));var g=p+e.pxmid[0]*i.rCenter+(i.x||0),y=d+e.pxmid[1]*i.rCenter+(i.y||0);i.outside&&(e.yLabelMin=y-u.height/2,e.yLabelMid=y,e.yLabelMax=y+u.height/2,e.labelExtraX=0,e.labelExtraY=0,x=!0),r.attr(\\\"transform\\\",\\\"translate(\\\"+g+\\\",\\\"+y+\\\")\\\"+(i.scale<1?\\\"scale(\\\"+i.scale+\\\")\\\":\\\"\\\")+(i.rotate?\\\"rotate(\\\"+i.rotate+\\\")\\\":\\\"\\\")+\\\"translate(\\\"+-(u.left+u.right)/2+\\\",\\\"+-(u.top+u.bottom)/2+\\\")\\\")})}function L(t,r,n,i){return\\\"a\\\"+i*v.r+\\\",\\\"+i*v.r+\\\" 0 \\\"+e.largeArc+(n?\\\" 1 \\\":\\\" 0 \\\")+i*(r[0]-t[0])+\\\",\\\"+i*(r[1]-t[1])}});var b=n.select(this).selectAll(\\\"g.titletext\\\").data(m.title?[0]:[]);b.enter().append(\\\"g\\\").classed(\\\"titletext\\\",!0),b.exit().remove(),b.each(function(){var e,i=s.ensureSingle(n.select(this),\\\"text\\\",\\\"\\\",function(t){t.attr(\\\"data-notex\\\",1)});i.text(m.title).attr({class:\\\"titletext\\\",transform:\\\"\\\",\\\"text-anchor\\\":\\\"middle\\\"}).call(o.font,m.titlefont).call(l.convertToTspans,t),e=\\\"middle center\\\"===m.titleposition?function(t){var e=Math.sqrt(t.titleBox.width*t.titleBox.width+t.titleBox.height*t.titleBox.height);return{x:t.cx,y:t.cy,scale:t.trace.hole*t.r*2/e,tx:0,ty:-t.titleBox.height/2+t.trace.titlefont.size}}(v):function(t,e){var r,n,i=1,a=1,o=t.trace,s={x:t.cx,y:t.cy},l={tx:0,ty:0};l.ty+=o.titlefont.size,n=d(o),-1!==o.titleposition.indexOf(\\\"top\\\")?(s.y-=(1+n)*t.r,l.ty-=t.titleBox.height):-1!==o.titleposition.indexOf(\\\"bottom\\\")&&(s.y+=(1+n)*t.r);-1!==o.titleposition.indexOf(\\\"left\\\")?(r=e.w*(o.domain.x[1]-o.domain.x[0])/2+t.r,s.x-=(1+n)*t.r,l.tx+=t.titleBox.width/2):-1!==o.titleposition.indexOf(\\\"center\\\")?r=e.w*(o.domain.x[1]-o.domain.x[0]):-1!==o.titleposition.indexOf(\\\"right\\\")&&(r=e.w*(o.domain.x[1]-o.domain.x[0])/2+t.r,s.x+=(1+n)*t.r,l.tx-=t.titleBox.width/2);return i=r/t.titleBox.width,a=p(t,e)/t.titleBox.height,{x:s.x,y:s.y,scale:Math.min(i,a),tx:l.tx,ty:l.ty}}(v,r._size),i.attr(\\\"transform\\\",\\\"translate(\\\"+e.x+\\\",\\\"+e.y+\\\")\\\"+(e.scale<1?\\\"scale(\\\"+e.scale+\\\")\\\":\\\"\\\")+\\\"translate(\\\"+e.tx+\\\",\\\"+e.ty+\\\")\\\")}),x&&function(t,e){var r,n,i,a,o,s,l,u,f,h,p,d,g;function v(t,e){return t.pxmid[1]-e.pxmid[1]}function m(t,e){return e.pxmid[1]-t.pxmid[1]}function y(t,r){r||(r={});var i,u,f,p,d,g,v=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),m=n?t.yLabelMin:t.yLabelMax,y=n?t.yLabelMax:t.yLabelMin,x=t.cyFinal+o(t.px0[1],t.px1[1]),b=v-m;if(b*l>0&&(t.labelExtraY=b),Array.isArray(e.pull))for(u=0;u<h.length;u++)(f=h[u])===t||(c.castOption(e.pull,t.pts)||0)>=(c.castOption(e.pull,f.pts)||0)||((t.pxmid[1]-f.pxmid[1])*l>0?(p=f.cyFinal+o(f.px0[1],f.px1[1]),(b=p-m-t.labelExtraY)*l>0&&(t.labelExtraY+=b)):(y+t.labelExtraY-x)*l>0&&(i=3*s*Math.abs(u-h.indexOf(t)),d=f.cxFinal+a(f.px0[0],f.px1[0]),(g=d+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=g)))}for(n=0;n<2;n++)for(i=n?v:m,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(u=t[n][r]).sort(i),f=t[1-n][r],h=f.concat(u),d=[],p=0;p<u.length;p++)void 0!==u[p].yLabelMid&&d.push(u[p]);for(g=!1,p=0;n&&p<f.length;p++)if(void 0!==f[p].yLabelMid){g=f[p];break}for(p=0;p<d.length;p++){var x=p&&d[p-1];g&&!p&&(x=g),y(d[p],x)}}}(y,m),g.each(function(t){if(t.labelExtraX||t.labelExtraY){var e=n.select(this),r=e.select(\\\"g.slicetext text\\\");r.attr(\\\"transform\\\",\\\"translate(\\\"+t.labelExtraX+\\\",\\\"+t.labelExtraY+\\\")\\\"+r.attr(\\\"transform\\\"));var i=t.cxFinal+t.pxmid[0],o=\\\"M\\\"+i+\\\",\\\"+(t.cyFinal+t.pxmid[1]),s=(t.yLabelMax-t.yLabelMin)*(t.pxmid[0]<0?-1:1)/4;if(t.labelExtraX){var l=t.labelExtraX*t.pxmid[1]/t.pxmid[0],c=t.yLabelMid+t.labelExtraY-(t.cyFinal+t.pxmid[1]);Math.abs(l)>Math.abs(c)?o+=\\\"l\\\"+c*t.pxmid[0]/t.pxmid[1]+\\\",\\\"+c+\\\"H\\\"+(i+t.labelExtraX+s):o+=\\\"l\\\"+t.labelExtraX+\\\",\\\"+l+\\\"v\\\"+(c-l)+\\\"h\\\"+s}else o+=\\\"V\\\"+(t.yLabelMid+t.labelExtraY)+\\\"h\\\"+s;e.append(\\\"path\\\").classed(\\\"textline\\\",!0).call(a.stroke,m.outsidetextfont.color).attr({\\\"stroke-width\\\":Math.min(2,m.outsidetextfont.size/8),d:o,fill:\\\"none\\\"})}})})});setTimeout(function(){g.selectAll(\\\"tspan\\\").each(function(){var t=n.select(this);t.attr(\\\"dy\\\")&&t.attr(\\\"dy\\\",t.attr(\\\"dy\\\"))})},0)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"./event_data\\\":1022,\\\"./helpers\\\":1023,d3:148}],1028:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"./style_one\\\");e.exports=function(t){t._fullLayout._pielayer.selectAll(\\\".trace\\\").each(function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll(\\\"path.surface\\\").each(function(t){n.select(this).call(i,t,e)})})}},{\\\"./style_one\\\":1029,d3:148}],1029:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"./helpers\\\").castOption;e.exports=function(t,e,r){var a=r.marker.line,o=i(a.color,e.pts)||n.defaultLine,s=i(a.width,e.pts)||0;t.style({\\\"stroke-width\\\":s}).call(n.fill,e.color).call(n.stroke,o)}},{\\\"../../components/color\\\":570,\\\"./helpers\\\":1023}],1030:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\");e.exports={x:n.x,y:n.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:n.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\\\":1043}],1031:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-pointcloud2d\\\"),i=t(\\\"../../lib/str2rgbarray\\\"),a=t(\\\"../../plots/cartesian/autorange\\\").findExtremes,o=t(\\\"../scatter/get_trace_color\\\");function s(t,e){this.scene=t,this.uid=e,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=n(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var l=s.prototype;l.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},l.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=o(t,{})},l.updateFast=function(t){var e,r,n,o,s,l,c=this.xData=this.pickXData=t.x,u=this.yData=this.pickYData=t.y,f=this.pickXYData=t.xy,h=t.xbounds&&t.ybounds,p=t.indices,d=this.bounds;if(f){if(n=f,e=f.length>>>1,h)d[0]=t.xbounds[0],d[2]=t.xbounds[1],d[1]=t.ybounds[0],d[3]=t.ybounds[1];else for(l=0;l<e;l++)o=n[2*l],s=n[2*l+1],o<d[0]&&(d[0]=o),o>d[2]&&(d[2]=o),s<d[1]&&(d[1]=s),s>d[3]&&(d[3]=s);if(p)r=p;else for(r=new Int32Array(e),l=0;l<e;l++)r[l]=l}else for(e=c.length,n=new Float32Array(2*e),r=new Int32Array(e),l=0;l<e;l++)o=c[l],s=u[l],r[l]=l,n[2*l]=o,n[2*l+1]=s,o<d[0]&&(d[0]=o),o>d[2]&&(d[2]=o),s<d[1]&&(d[1]=s),s>d[3]&&(d[3]=s);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var g=i(t.marker.color),v=i(t.marker.border.color),m=t.opacity*t.marker.opacity;g[3]*=m,this.pointcloudOptions.color=g;var y=t.marker.blend;if(null===y){y=c.length<100||u.length<100}this.pointcloudOptions.blend=y,v[3]*=m,this.pointcloudOptions.borderColor=v;var x=t.marker.sizemin,b=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=x,this.pointcloudOptions.sizeMax=b,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var _=this.scene.xaxis,w=this.scene.yaxis,k=b/2||.5;t._extremes[_._id]=a(_,[d[0],d[2]],{ppad:k}),t._extremes[w._id]=a(w,[d[1],d[3]],{ppad:k})},l.dispose=function(){this.pointcloud.dispose()},e.exports=function(t,e){var r=new s(t,e.uid);return r.update(e),r}},{\\\"../../lib/str2rgbarray\\\":719,\\\"../../plots/cartesian/autorange\\\":743,\\\"../scatter/get_trace_color\\\":1053,\\\"gl-pointcloud2d\\\":279}],1032:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\");e.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}a(\\\"x\\\"),a(\\\"y\\\"),a(\\\"xbounds\\\"),a(\\\"ybounds\\\"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),a(\\\"text\\\"),a(\\\"marker.color\\\",r),a(\\\"marker.opacity\\\"),a(\\\"marker.blend\\\"),a(\\\"marker.sizemin\\\"),a(\\\"marker.sizemax\\\"),a(\\\"marker.border.color\\\",r),a(\\\"marker.border.arearatio\\\"),e._length=null}},{\\\"../../lib\\\":696,\\\"./attributes\\\":1030}],1033:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"../scatter3d/calc\\\"),n.plot=t(\\\"./convert\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"pointcloud\\\",n.basePlotModule=t(\\\"../../plots/gl2d\\\"),n.categories=[\\\"gl\\\",\\\"gl2d\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../plots/gl2d\\\":784,\\\"../scatter3d/calc\\\":1071,\\\"./attributes\\\":1030,\\\"./convert\\\":1031,\\\"./defaults\\\":1032}],1034:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../components/color/attributes\\\"),o=t(\\\"../../components/fx/attributes\\\"),s=t(\\\"../../plots/domain\\\").attributes,l=t(\\\"../../lib/extend\\\").extendFlat,c=t(\\\"../../plot_api/edit_types\\\").overrideAll;(e.exports=c({hoverinfo:l({},i.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:o.hoverlabel,domain:s({name:\\\"sankey\\\",trace:!0}),orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],dflt:\\\"h\\\"},valueformat:{valType:\\\"string\\\",dflt:\\\".3s\\\"},valuesuffix:{valType:\\\"string\\\",dflt:\\\"\\\"},arrangement:{valType:\\\"enumerated\\\",values:[\\\"snap\\\",\\\"perpendicular\\\",\\\"freeform\\\",\\\"fixed\\\"],dflt:\\\"snap\\\"},textfont:n({}),node:{label:{valType:\\\"data_array\\\",dflt:[]},color:{valType:\\\"color\\\",arrayOk:!0},line:{color:{valType:\\\"color\\\",dflt:a.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:o.hoverlabel},link:{label:{valType:\\\"data_array\\\",dflt:[]},color:{valType:\\\"color\\\",arrayOk:!0},line:{color:{valType:\\\"color\\\",dflt:a.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:o.hoverlabel}},\\\"calc\\\",\\\"nested\\\")).transforms=void 0},{\\\"../../components/color/attributes\\\":569,\\\"../../components/fx/attributes\\\":604,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771}],1035:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plot_api/edit_types\\\").overrideAll,i=t(\\\"../../plots/get_data\\\").getModuleCalcData,a=t(\\\"./plot\\\"),o=t(\\\"../../components/fx/layout_attributes\\\");r.name=\\\"sankey\\\",r.baseLayoutAttrOverrides=n({hoverlabel:o.hoverlabel},\\\"plot\\\",\\\"nested\\\"),r.plot=function(t){var e=i(t.calcdata,\\\"sankey\\\")[0];a(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"sankey\\\"),a=e._has&&e._has(\\\"sankey\\\");i&&!a&&n._paperdiv.selectAll(\\\".sankey\\\").remove()}},{\\\"../../components/fx/layout_attributes\\\":613,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/get_data\\\":781,\\\"./plot\\\":1040}],1036:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"strongly-connected-components\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../lib/gup\\\").wrap;e.exports=function(t,e){return function(t,e,r){for(var a=t.length,o=i.init2dArray(a,0),s=0;s<Math.min(e.length,r.length);s++)if(i.isIndex(e[s],a)&&i.isIndex(r[s],a)){if(e[s]===r[s])return!0;o[e[s]].push(r[s])}return n(o).components.some(function(t){return t.length>1})}(e.node.label,e.link.source,e.link.target)&&(i.error(\\\"Circularity is present in the Sankey data. Removing all nodes and links.\\\"),e.link.label=[],e.link.source=[],e.link.target=[],e.link.value=[],e.link.color=[],e.node.label=[],e.node.color=[]),a({link:e.link,node:e.node})}},{\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"strongly-connected-components\\\":506}],1037:[function(t,e,r){\\\"use strict\\\";e.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:\\\"cubic-in-out\\\",cn:{sankey:\\\"sankey\\\",sankeyLinks:\\\"sankey-links\\\",sankeyLink:\\\"sankey-link\\\",sankeyNodeSet:\\\"sankey-node-set\\\",sankeyNode:\\\"sankey-node\\\",nodeRect:\\\"node-rect\\\",nodeCapture:\\\"node-capture\\\",nodeCentered:\\\"node-entered\\\",nodeLabelGuide:\\\"node-label-guide\\\",nodeLabel:\\\"node-label\\\",nodeLabelTextPath:\\\"node-label-text-path\\\"}}},{}],1038:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"tinycolor2\\\"),s=t(\\\"../../plots/domain\\\").defaults,l=t(\\\"../../components/fx/hoverlabel_defaults\\\"),c=t(\\\"../../plot_api/plot_template\\\");e.exports=function(t,e,r,u){function f(r,a){return n.coerce(t,e,i,r,a)}var h=n.extendDeep(u.hoverlabel,t.hoverlabel),p=t.node,d=c.newContainer(e,\\\"node\\\");function g(t,e){return n.coerce(p,d,i.node,t,e)}g(\\\"label\\\"),g(\\\"pad\\\"),g(\\\"thickness\\\"),g(\\\"line.color\\\"),g(\\\"line.width\\\"),g(\\\"hoverinfo\\\",t.hoverinfo),l(p,d,g,h);var v=u.colorway;g(\\\"color\\\",d.label.map(function(t,e){return a.addOpacity(function(t){return v[t%v.length]}(e),.8)}));var m=t.link,y=c.newContainer(e,\\\"link\\\");function x(t,e){return n.coerce(m,y,i.link,t,e)}x(\\\"label\\\"),x(\\\"source\\\"),x(\\\"target\\\"),x(\\\"value\\\"),x(\\\"line.color\\\"),x(\\\"line.width\\\"),x(\\\"hoverinfo\\\",t.hoverinfo),l(m,y,x,h);var b=o(u.paper_bgcolor).getLuminance()<.333?\\\"rgba(255, 255, 255, 0.6)\\\":\\\"rgba(0, 0, 0, 0.2)\\\";x(\\\"color\\\",n.repeat(b,y.value.length)),s(e,u,f),f(\\\"orientation\\\"),f(\\\"valueformat\\\"),f(\\\"valuesuffix\\\"),f(\\\"arrangement\\\"),n.coerceFont(f,\\\"textfont\\\",n.extendFlat({},u.font)),e._length=null}},{\\\"../../components/color\\\":570,\\\"../../components/fx/hoverlabel_defaults\\\":611,\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/domain\\\":770,\\\"./attributes\\\":1034,tinycolor2:514}],1039:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"sankey\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1034,\\\"./base_plot\\\":1035,\\\"./calc\\\":1036,\\\"./defaults\\\":1038,\\\"./plot\\\":1040}],1040:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"./render\\\"),a=t(\\\"../../components/fx\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"./constants\\\").cn,c=s._;function u(t){return\\\"\\\"!==t}function f(t,e){return t.filter(function(t){return t.key===e.traceId})}function h(t,e){n.select(t).select(\\\"path\\\").style(\\\"fill-opacity\\\",e),n.select(t).select(\\\"rect\\\").style(\\\"fill-opacity\\\",e)}function p(t){n.select(t).select(\\\"text.name\\\").style(\\\"fill\\\",\\\"black\\\")}function d(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function g(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function v(t,e,r){e&&r&&f(r,e).selectAll(\\\".\\\"+l.sankeyLink).filter(d(e)).call(y.bind(0,e,r,!1))}function m(t,e,r){e&&r&&f(r,e).selectAll(\\\".\\\"+l.sankeyLink).filter(d(e)).call(x.bind(0,e,r,!1))}function y(t,e,r,n){var i=n.datum().link.label;n.style(\\\"fill-opacity\\\",.4),i&&f(e,t).selectAll(\\\".\\\"+l.sankeyLink).filter(function(t){return t.link.label===i}).style(\\\"fill-opacity\\\",.4),r&&f(e,t).selectAll(\\\".\\\"+l.sankeyNode).filter(g(t)).call(v)}function x(t,e,r,n){var i=n.datum().link.label;n.style(\\\"fill-opacity\\\",function(t){return t.tinyColorAlpha}),i&&f(e,t).selectAll(\\\".\\\"+l.sankeyLink).filter(function(t){return t.link.label===i}).style(\\\"fill-opacity\\\",function(t){return t.tinyColorAlpha}),r&&f(e,t).selectAll(l.sankeyNode).filter(g(t)).call(m)}function b(t,e){var r=t.hoverlabel||{},n=s.nestedProperty(r,e).get();return!Array.isArray(n)&&n}e.exports=function(t,e){var r=t._fullLayout,s=r._paper,f=r._size,d=c(t,\\\"source:\\\")+\\\" \\\",g=c(t,\\\"target:\\\")+\\\" \\\",_=c(t,\\\"incoming flow count:\\\")+\\\" \\\",w=c(t,\\\"outgoing flow count:\\\")+\\\" \\\";i(s,e,{width:f.w,height:f.h,margin:{t:f.t,r:f.r,b:f.b,l:f.l}},{linkEvents:{hover:function(e,r,i){!1!==t._fullLayout.hovermode&&(n.select(e).call(y.bind(0,r,i,!0)),\\\"skip\\\"!==r.link.trace.link.hoverinfo&&t.emit(\\\"plotly_hover\\\",{event:n.event,points:[r.link]}))},follow:function(e,i){if(!1!==t._fullLayout.hovermode){var s=i.link.trace.link;if(\\\"none\\\"!==s.hoverinfo&&\\\"skip\\\"!==s.hoverinfo){var l=t._fullLayout._paperdiv.node().getBoundingClientRect(),c=e.getBoundingClientRect(),f=c.left+c.width/2,v=c.top+c.height/2,m=a.loneHover({x:f-l.left,y:v-l.top,name:n.format(i.valueFormat)(i.link.value)+i.valueSuffix,text:[i.link.label||\\\"\\\",d+i.link.source.label,g+i.link.target.label].filter(u).join(\\\"<br>\\\"),color:b(s,\\\"bgcolor\\\")||o.addOpacity(i.tinyColorHue,1),borderColor:b(s,\\\"bordercolor\\\"),fontFamily:b(s,\\\"font.family\\\"),fontSize:b(s,\\\"font.size\\\"),fontColor:b(s,\\\"font.color\\\"),idealAlign:n.event.x<f?\\\"right\\\":\\\"left\\\"},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});h(m,.65),p(m)}}},unhover:function(e,i,o){!1!==t._fullLayout.hovermode&&(n.select(e).call(x.bind(0,i,o,!0)),\\\"skip\\\"!==i.link.trace.link.hoverinfo&&t.emit(\\\"plotly_unhover\\\",{event:n.event,points:[i.link]}),a.loneUnhover(r._hoverlayer.node()))},select:function(e,r){var i=r.link;i.originalEvent=n.event,t._hoverdata=[i],a.click(t,{target:!0})}},nodeEvents:{hover:function(e,r,i){!1!==t._fullLayout.hovermode&&(n.select(e).call(v,r,i),\\\"skip\\\"!==r.node.trace.node.hoverinfo&&t.emit(\\\"plotly_hover\\\",{event:n.event,points:[r.node]}))},follow:function(e,i){if(!1!==t._fullLayout.hovermode){var o=i.node.trace.node;if(\\\"none\\\"!==o.hoverinfo&&\\\"skip\\\"!==o.hoverinfo){var s=n.select(e).select(\\\".\\\"+l.nodeRect),c=t._fullLayout._paperdiv.node().getBoundingClientRect(),f=s.node().getBoundingClientRect(),d=f.left-2-c.left,g=f.right+2-c.left,v=f.top+f.height/4-c.top,m=a.loneHover({x0:d,x1:g,y:v,name:n.format(i.valueFormat)(i.node.value)+i.valueSuffix,text:[i.node.label,_+i.node.targetLinks.length,w+i.node.sourceLinks.length].filter(u).join(\\\"<br>\\\"),color:b(o,\\\"bgcolor\\\")||i.tinyColorHue,borderColor:b(o,\\\"bordercolor\\\"),fontFamily:b(o,\\\"font.family\\\"),fontSize:b(o,\\\"font.size\\\"),fontColor:b(o,\\\"font.color\\\"),idealAlign:\\\"left\\\"},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});h(m,.85),p(m)}}},unhover:function(e,i,o){!1!==t._fullLayout.hovermode&&(n.select(e).call(m,i,o),\\\"skip\\\"!==i.node.trace.node.hoverinfo&&t.emit(\\\"plotly_unhover\\\",{event:n.event,points:[i.node]}),a.loneUnhover(r._hoverlayer.node()))},select:function(e,r,i){var o=r.node;o.originalEvent=n.event,t._hoverdata=[o],n.select(e).call(m,r,i),a.click(t,{target:!0})}}})}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"./constants\\\":1037,\\\"./render\\\":1041,d3:148}],1041:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"d3\\\"),a=t(\\\"tinycolor2\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"@plotly/d3-sankey\\\").sankey,c=t(\\\"d3-force\\\"),u=t(\\\"../../lib\\\"),f=u.isArrayOrTypedArray,h=u.isIndex,p=t(\\\"../../lib/gup\\\"),d=p.keyFun,g=p.repeat,v=p.unwrap;function m(t){t.lastDraggedX=t.x,t.lastDraggedY=t.y}function y(t){return function(e){return e.node.originalX===t.node.originalX}}function x(t){for(var e=0;e<t.length;e++)t[e].y=t[e].y+t[e].dy/2}function b(t){t.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.node.x.toFixed(3)+\\\", \\\"+(t.node.y-t.node.dy/2).toFixed(3)+\\\")\\\"})}function _(t){var e=t.sankey.nodes();!function(t){for(var e=0;e<t.length;e++)t[e].y=t[e].y-t[e].dy/2}(e);var r=t.sankey.link()(t.link);return x(e),r}function w(t){t.call(b)}function k(t,e){t.call(w),e.attr(\\\"d\\\",_)}function M(t){t.attr(\\\"width\\\",function(t){return t.visibleWidth}).attr(\\\"height\\\",function(t){return t.visibleHeight})}function A(t){return t.link.dy>1||t.linkLineWidth>0}function T(t){return\\\"translate(\\\"+t.translateX+\\\",\\\"+t.translateY+\\\")\\\"+(t.horizontal?\\\"matrix(1 0 0 1 0 0)\\\":\\\"matrix(0 1 1 0 0 0)\\\")}function S(t){return\\\"translate(\\\"+(t.horizontal?0:t.labelY)+\\\" \\\"+(t.horizontal?t.labelY:0)+\\\")\\\"}function E(t){return i.svg.line()([[t.horizontal?t.left?-t.sizeAcross:t.visibleWidth+n.nodeTextOffsetHorizontal:n.nodeTextOffsetHorizontal,0],[t.horizontal?t.left?-n.nodeTextOffsetHorizontal:t.sizeAcross:t.visibleHeight-n.nodeTextOffsetHorizontal,0]])}function C(t){return t.horizontal?\\\"matrix(1 0 0 1 0 0)\\\":\\\"matrix(0 1 1 0 0 0)\\\"}function L(t){return t.horizontal?\\\"scale(1 1)\\\":\\\"scale(-1 1)\\\"}function z(t){return t.darkBackground&&!t.horizontal?\\\"rgb(255,255,255)\\\":\\\"rgb(0,0,0)\\\"}function O(t){return t.horizontal&&t.left?\\\"100%\\\":\\\"0%\\\"}function I(t,e,r){t.on(\\\".basic\\\",null).on(\\\"mouseover.basic\\\",function(t){t.interactionState.dragInProgress||(r.hover(this,t,e),t.interactionState.hovered=[this,t])}).on(\\\"mousemove.basic\\\",function(t){t.interactionState.dragInProgress||(r.follow(this,t),t.interactionState.hovered=[this,t])}).on(\\\"mouseout.basic\\\",function(t){t.interactionState.dragInProgress||(r.unhover(this,t,e),t.interactionState.hovered=!1)}).on(\\\"click.basic\\\",function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||r.select(this,t,e)})}function P(t,e,r){var a=i.behavior.drag().origin(function(t){return t.node}).on(\\\"dragstart\\\",function(i){if(\\\"fixed\\\"!==i.arrangement&&(u.raiseToTop(this),i.interactionState.dragInProgress=i.node,m(i.node),i.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,i.interactionState.hovered),i.interactionState.hovered=!1),\\\"snap\\\"===i.arrangement)){var a=i.traceId+\\\"|\\\"+Math.floor(i.node.originalX);i.forceLayouts[a]?i.forceLayouts[a].alpha(1):function(t,e,r){var i=r.sankey.nodes().filter(function(t){return t.originalX===r.node.originalX});r.forceLayouts[e]=c.forceSimulation(i).alphaDecay(0).force(\\\"collide\\\",c.forceCollide().radius(function(t){return t.dy/2+r.nodePad/2}).strength(1).iterations(n.forceIterations)).force(\\\"constrain\\\",function(t,e,r,i){return function(){for(var t=0,a=0;a<r.length;a++){var o=r[a];o===i.interactionState.dragInProgress?(o.x=o.lastDraggedX,o.y=o.lastDraggedY):(o.vx=(o.originalX-o.x)/n.forceTicksPerFrame,o.y=Math.min(i.size-o.dy/2,Math.max(o.dy/2,o.y))),t=Math.max(t,Math.abs(o.vx),Math.abs(o.vy))}!i.interactionState.dragInProgress&&t<.1&&i.forceLayouts[e].alpha()>0&&i.forceLayouts[e].alpha(0)}}(0,e,i,r)).stop()}(0,a,i),function(t,e,r,i){window.requestAnimationFrame(function a(){for(var o=0;o<n.forceTicksPerFrame;o++)r.forceLayouts[i].tick();r.sankey.relayout(),k(t.filter(y(r)),e),r.forceLayouts[i].alpha()>0&&window.requestAnimationFrame(a)})}(t,e,i,a)}}).on(\\\"drag\\\",function(r){if(\\\"fixed\\\"!==r.arrangement){var n=i.event.x,a=i.event.y;\\\"snap\\\"===r.arrangement?(r.node.x=n,r.node.y=a):(\\\"freeform\\\"===r.arrangement&&(r.node.x=n),r.node.y=Math.max(r.node.dy/2,Math.min(r.size-r.node.dy/2,a))),m(r.node),\\\"snap\\\"!==r.arrangement&&(r.sankey.relayout(),k(t.filter(y(r)),e))}}).on(\\\"dragend\\\",function(t){t.interactionState.dragInProgress=!1});t.on(\\\".drag\\\",null).call(a)}e.exports=function(t,e,r,i){var c=t.selectAll(\\\".\\\"+n.cn.sankey).data(e.filter(function(t){return v(t).trace.visible}).map(function(t,e,r){var i,a=v(e).trace,o=a.domain,s=a.node,c=a.link,p=a.arrangement,d=\\\"h\\\"===a.orientation,g=a.node.pad,m=a.node.thickness,y=a.node.line.color,b=a.node.line.width,_=a.link.line.color,w=a.link.line.width,k=a.valueformat,M=a.valuesuffix,A=a.textfont,T=t.width*(o.x[1]-o.x[0]),S=t.height*(o.y[1]-o.y[0]),E=[],C=f(c.color),L={},z=s.label.length;for(i=0;i<c.value.length;i++){var O=c.value[i],I=c.source[i],P=c.target[i];O>0&&h(I,z)&&h(P,z)&&(P=+P,L[I=+I]=L[P]=!0,E.push({pointNumber:i,label:c.label[i],color:C?c.color[i]:c.color,source:I,target:P,value:+O}))}var D=f(s.color),R=[],B=!1,F={};for(i=0;i<z;i++)if(L[i]){var N=s.label[i];F[i]=R.length,R.push({pointNumber:i,label:N,color:D?s.color[i]:s.color})}else B=!0;if(B)for(i=0;i<E.length;i++)E[i].source=F[E[i].source],E[i].target=F[E[i].target];var j=l().size(d?[T,S]:[S,T]).nodeWidth(m).nodePadding(g).nodes(R).links(E).layout(n.sankeyIterations);j.nodePadding()<g&&u.warn(\\\"node.pad was reduced to \\\",j.nodePadding(),\\\" to fit within the figure.\\\");for(var V,U=j.nodes(),q=0;q<U.length;q++)(V=U[q]).width=T,V.height=S;return x(R),{key:r,trace:a,guid:Math.floor(1e12*(1+Math.random())),horizontal:d,width:T,height:S,nodePad:g,nodeLineColor:y,nodeLineWidth:b,linkLineColor:_,linkLineWidth:w,valueFormat:k,valueSuffix:M,textFont:A,translateX:o.x[0]*t.width+t.margin.l,translateY:t.height-o.y[1]*t.height+t.margin.t,dragParallel:d?S:T,dragPerpendicular:d?T:S,nodes:R,links:E,arrangement:p,sankey:j,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}.bind(null,r)),d);c.exit().remove(),c.enter().append(\\\"g\\\").classed(n.cn.sankey,!0).style(\\\"box-sizing\\\",\\\"content-box\\\").style(\\\"position\\\",\\\"absolute\\\").style(\\\"left\\\",0).style(\\\"shape-rendering\\\",\\\"geometricPrecision\\\").style(\\\"pointer-events\\\",\\\"auto\\\").attr(\\\"transform\\\",T),c.transition().ease(n.ease).duration(n.duration).attr(\\\"transform\\\",T);var p=c.selectAll(\\\".\\\"+n.cn.sankeyLinks).data(g,d);p.enter().append(\\\"g\\\").classed(n.cn.sankeyLinks,!0).style(\\\"fill\\\",\\\"none\\\");var m=p.selectAll(\\\".\\\"+n.cn.sankeyLink).data(function(t){return t.sankey.links().filter(function(t){return t.value}).map(function(t,e,r){var n=a(r.color),i=r.source.label+\\\"|\\\"+r.target.label,s=t[i];t[i]=(s||0)+1;var l=i+\\\"__\\\"+t[i];return r.trace=e.trace,r.curveNumber=e.trace.index,{key:l,traceId:e.key,link:r,tinyColorHue:o.tinyRGB(n),tinyColorAlpha:n.getAlpha(),linkLineColor:e.linkLineColor,linkLineWidth:e.linkLineWidth,valueFormat:e.valueFormat,valueSuffix:e.valueSuffix,sankey:e.sankey,interactionState:e.interactionState}}.bind(null,{},t))},d);m.enter().append(\\\"path\\\").classed(n.cn.sankeyLink,!0).attr(\\\"d\\\",_).call(I,c,i.linkEvents),m.style(\\\"stroke\\\",function(t){return A(t)?o.tinyRGB(a(t.linkLineColor)):t.tinyColorHue}).style(\\\"stroke-opacity\\\",function(t){return A(t)?o.opacity(t.linkLineColor):t.tinyColorAlpha}).style(\\\"stroke-width\\\",function(t){return A(t)?t.linkLineWidth:1}).style(\\\"fill\\\",function(t){return t.tinyColorHue}).style(\\\"fill-opacity\\\",function(t){return t.tinyColorAlpha}),m.transition().ease(n.ease).duration(n.duration).attr(\\\"d\\\",_),m.exit().transition().ease(n.ease).duration(n.duration).style(\\\"opacity\\\",0).remove();var y=c.selectAll(\\\".\\\"+n.cn.sankeyNodeSet).data(g,d);y.enter().append(\\\"g\\\").classed(n.cn.sankeyNodeSet,!0),y.style(\\\"cursor\\\",function(t){switch(t.arrangement){case\\\"fixed\\\":return\\\"default\\\";case\\\"perpendicular\\\":return\\\"ns-resize\\\";default:return\\\"move\\\"}});var w=y.selectAll(\\\".\\\"+n.cn.sankeyNode).data(function(t){var e=t.sankey.nodes();return function(t){var e,r=[];for(e=0;e<t.length;e++)t[e].originalX=t[e].x,t[e].originalY=t[e].y,-1===r.indexOf(t[e].x)&&r.push(t[e].x);for(r.sort(function(t,e){return t-e}),e=0;e<t.length;e++)t[e].originalLayerIndex=r.indexOf(t[e].originalX),t[e].originalLayer=t[e].originalLayerIndex/(r.length-1)}(e),e.filter(function(t){return t.value}).map(function(t,e,r){var i=a(r.color),s=n.nodePadAcross,l=e.nodePad/2,c=r.dx,u=Math.max(.5,r.dy),f=r.label,h=t[f];t[f]=(h||0)+1;var p=f+\\\"__\\\"+t[f];return r.trace=e.trace,r.curveNumber=e.trace.index,{key:p,traceId:e.key,node:r,nodePad:e.nodePad,nodeLineColor:e.nodeLineColor,nodeLineWidth:e.nodeLineWidth,textFont:e.textFont,size:e.horizontal?e.height:e.width,visibleWidth:Math.ceil(c),visibleHeight:u,zoneX:-s,zoneY:-l,zoneWidth:c+2*s,zoneHeight:u+2*l,labelY:e.horizontal?r.dy/2+1:r.dx/2+1,left:1===r.originalLayer,sizeAcross:e.width,forceLayouts:e.forceLayouts,horizontal:e.horizontal,darkBackground:i.getBrightness()<=128,tinyColorHue:o.tinyRGB(i),tinyColorAlpha:i.getAlpha(),valueFormat:e.valueFormat,valueSuffix:e.valueSuffix,sankey:e.sankey,arrangement:e.arrangement,uniqueNodeLabelPathId:[e.guid,e.key,p].join(\\\" \\\"),interactionState:e.interactionState}}.bind(null,{},t))},d);w.enter().append(\\\"g\\\").classed(n.cn.sankeyNode,!0).call(b).call(I,c,i.nodeEvents),w.call(P,m,i),w.transition().ease(n.ease).duration(n.duration).call(b),w.exit().transition().ease(n.ease).duration(n.duration).style(\\\"opacity\\\",0).remove();var k=w.selectAll(\\\".\\\"+n.cn.nodeRect).data(g);k.enter().append(\\\"rect\\\").classed(n.cn.nodeRect,!0).call(M),k.style(\\\"stroke-width\\\",function(t){return t.nodeLineWidth}).style(\\\"stroke\\\",function(t){return o.tinyRGB(a(t.nodeLineColor))}).style(\\\"stroke-opacity\\\",function(t){return o.opacity(t.nodeLineColor)}).style(\\\"fill\\\",function(t){return t.tinyColorHue}).style(\\\"fill-opacity\\\",function(t){return t.tinyColorAlpha}),k.transition().ease(n.ease).duration(n.duration).call(M);var D=w.selectAll(\\\".\\\"+n.cn.nodeCapture).data(g);D.enter().append(\\\"rect\\\").classed(n.cn.nodeCapture,!0).style(\\\"fill-opacity\\\",0),D.attr(\\\"x\\\",function(t){return t.zoneX}).attr(\\\"y\\\",function(t){return t.zoneY}).attr(\\\"width\\\",function(t){return t.zoneWidth}).attr(\\\"height\\\",function(t){return t.zoneHeight});var R=w.selectAll(\\\".\\\"+n.cn.nodeCentered).data(g);R.enter().append(\\\"g\\\").classed(n.cn.nodeCentered,!0).attr(\\\"transform\\\",S),R.transition().ease(n.ease).duration(n.duration).attr(\\\"transform\\\",S);var B=R.selectAll(\\\".\\\"+n.cn.nodeLabelGuide).data(g);B.enter().append(\\\"path\\\").classed(n.cn.nodeLabelGuide,!0).attr(\\\"id\\\",function(t){return t.uniqueNodeLabelPathId}).attr(\\\"d\\\",E).attr(\\\"transform\\\",C),B.transition().ease(n.ease).duration(n.duration).attr(\\\"d\\\",E).attr(\\\"transform\\\",C);var F=R.selectAll(\\\".\\\"+n.cn.nodeLabel).data(g);F.enter().append(\\\"text\\\").classed(n.cn.nodeLabel,!0).attr(\\\"transform\\\",L).style(\\\"user-select\\\",\\\"none\\\").style(\\\"cursor\\\",\\\"default\\\").style(\\\"fill\\\",\\\"black\\\"),F.style(\\\"text-shadow\\\",function(t){return t.horizontal?\\\"-1px 1px 1px #fff, 1px 1px 1px #fff, 1px -1px 1px #fff, -1px -1px 1px #fff\\\":\\\"none\\\"}).each(function(t){s.font(F,t.textFont)}),F.transition().ease(n.ease).duration(n.duration).attr(\\\"transform\\\",L);var N=F.selectAll(\\\".\\\"+n.cn.nodeLabelTextPath).data(g);N.enter().append(\\\"textPath\\\").classed(n.cn.nodeLabelTextPath,!0).attr(\\\"alignment-baseline\\\",\\\"middle\\\").attr(\\\"xlink:href\\\",function(t){return\\\"#\\\"+t.uniqueNodeLabelPathId}).attr(\\\"startOffset\\\",O).style(\\\"fill\\\",z),N.text(function(t){return t.horizontal||t.node.dy>5?t.node.label:\\\"\\\"}).attr(\\\"text-anchor\\\",function(t){return t.horizontal&&t.left?\\\"end\\\":\\\"start\\\"}),N.transition().ease(n.ease).duration(n.duration).attr(\\\"startOffset\\\",O).style(\\\"fill\\\",z)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"./constants\\\":1037,\\\"@plotly/d3-sankey\\\":46,d3:148,\\\"d3-force\\\":144,tinycolor2:514}],1042:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e){for(var r=0;r<t.length;r++)t[r].i=r;n.mergeArray(e.text,t,\\\"tx\\\"),n.mergeArray(e.hovertext,t,\\\"htx\\\"),n.mergeArray(e.customdata,t,\\\"data\\\"),n.mergeArray(e.textposition,t,\\\"tp\\\"),e.textfont&&(n.mergeArray(e.textfont.size,t,\\\"ts\\\"),n.mergeArray(e.textfont.color,t,\\\"tc\\\"),n.mergeArray(e.textfont.family,t,\\\"tf\\\"));var i=e.marker;if(i){n.mergeArray(i.size,t,\\\"ms\\\"),n.mergeArray(i.opacity,t,\\\"mo\\\"),n.mergeArray(i.symbol,t,\\\"mx\\\"),n.mergeArray(i.color,t,\\\"mc\\\");var a=i.line;i.line&&(n.mergeArray(a.color,t,\\\"mlc\\\"),n.mergeArray(a.width,t,\\\"mlw\\\"));var o=i.gradient;o&&\\\"none\\\"!==o.type&&(n.mergeArray(o.type,t,\\\"mgt\\\"),n.mergeArray(o.color,t,\\\"mgc\\\"))}}},{\\\"../../lib\\\":696}],1043:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../../plots/font_attributes\\\"),o=t(\\\"../../components/drawing/attributes\\\").dash,s=t(\\\"../../components/drawing\\\"),l=(t(\\\"./constants\\\"),t(\\\"../../lib/extend\\\").extendFlat);e.exports={x:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},x0:{valType:\\\"any\\\",dflt:0,editType:\\\"calc+clearAxisTypes\\\"},dx:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},y:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},y0:{valType:\\\"any\\\",dflt:0,editType:\\\"calc+clearAxisTypes\\\"},dy:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},stackgroup:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],editType:\\\"calc\\\"},groupnorm:{valType:\\\"enumerated\\\",values:[\\\"\\\",\\\"fraction\\\",\\\"percent\\\"],dflt:\\\"\\\",editType:\\\"calc\\\"},stackgaps:{valType:\\\"enumerated\\\",values:[\\\"infer zero\\\",\\\"interpolate\\\"],dflt:\\\"infer zero\\\",editType:\\\"calc\\\"},text:{valType:\\\"string\\\",dflt:\\\"\\\",arrayOk:!0,editType:\\\"calc\\\"},hovertext:{valType:\\\"string\\\",dflt:\\\"\\\",arrayOk:!0,editType:\\\"style\\\"},mode:{valType:\\\"flaglist\\\",flags:[\\\"lines\\\",\\\"markers\\\",\\\"text\\\"],extras:[\\\"none\\\"],editType:\\\"calc\\\"},hoveron:{valType:\\\"flaglist\\\",flags:[\\\"points\\\",\\\"fills\\\"],editType:\\\"style\\\"},line:{color:{valType:\\\"color\\\",editType:\\\"style\\\"},width:{valType:\\\"number\\\",min:0,dflt:2,editType:\\\"style\\\"},shape:{valType:\\\"enumerated\\\",values:[\\\"linear\\\",\\\"spline\\\",\\\"hv\\\",\\\"vh\\\",\\\"hvh\\\",\\\"vhv\\\"],dflt:\\\"linear\\\",editType:\\\"plot\\\"},smoothing:{valType:\\\"number\\\",min:0,max:1.3,dflt:1,editType:\\\"plot\\\"},dash:l({},o,{editType:\\\"style\\\"}),simplify:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},editType:\\\"plot\\\"},connectgaps:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},cliponaxis:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},fill:{valType:\\\"enumerated\\\",values:[\\\"none\\\",\\\"tozeroy\\\",\\\"tozerox\\\",\\\"tonexty\\\",\\\"tonextx\\\",\\\"toself\\\",\\\"tonext\\\"],editType:\\\"calc\\\"},fillcolor:{valType:\\\"color\\\",editType:\\\"style\\\"},marker:l({symbol:{valType:\\\"enumerated\\\",values:s.symbolList,dflt:\\\"circle\\\",arrayOk:!0,editType:\\\"style\\\"},opacity:{valType:\\\"number\\\",min:0,max:1,arrayOk:!0,editType:\\\"style\\\"},size:{valType:\\\"number\\\",min:0,dflt:6,arrayOk:!0,editType:\\\"calc\\\"},maxdisplayed:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"plot\\\"},sizeref:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},sizemin:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"calc\\\"},sizemode:{valType:\\\"enumerated\\\",values:[\\\"diameter\\\",\\\"area\\\"],dflt:\\\"diameter\\\",editType:\\\"calc\\\"},colorbar:i,line:l({width:{valType:\\\"number\\\",min:0,arrayOk:!0,editType:\\\"style\\\"},editType:\\\"calc\\\"},n(\\\"marker.line\\\")),gradient:{type:{valType:\\\"enumerated\\\",values:[\\\"radial\\\",\\\"horizontal\\\",\\\"vertical\\\",\\\"none\\\"],arrayOk:!0,dflt:\\\"none\\\",editType:\\\"calc\\\"},color:{valType:\\\"color\\\",arrayOk:!0,editType:\\\"calc\\\"},editType:\\\"calc\\\"},editType:\\\"calc\\\"},n(\\\"marker\\\")),selected:{marker:{opacity:{valType:\\\"number\\\",min:0,max:1,editType:\\\"style\\\"},color:{valType:\\\"color\\\",editType:\\\"style\\\"},size:{valType:\\\"number\\\",min:0,editType:\\\"style\\\"},editType:\\\"style\\\"},textfont:{color:{valType:\\\"color\\\",editType:\\\"style\\\"},editType:\\\"style\\\"},editType:\\\"style\\\"},unselected:{marker:{opacity:{valType:\\\"number\\\",min:0,max:1,editType:\\\"style\\\"},color:{valType:\\\"color\\\",editType:\\\"style\\\"},size:{valType:\\\"number\\\",min:0,editType:\\\"style\\\"},editType:\\\"style\\\"},textfont:{color:{valType:\\\"color\\\",editType:\\\"style\\\"},editType:\\\"style\\\"},editType:\\\"style\\\"},textposition:{valType:\\\"enumerated\\\",values:[\\\"top left\\\",\\\"top center\\\",\\\"top right\\\",\\\"middle left\\\",\\\"middle center\\\",\\\"middle right\\\",\\\"bottom left\\\",\\\"bottom center\\\",\\\"bottom right\\\"],dflt:\\\"middle center\\\",arrayOk:!0,editType:\\\"calc\\\"},textfont:a({editType:\\\"calc\\\",colorEditType:\\\"style\\\",arrayOk:!0}),r:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},t:{valType:\\\"data_array\\\",editType:\\\"calc\\\"}}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../components/drawing\\\":595,\\\"../../components/drawing/attributes\\\":594,\\\"../../lib/extend\\\":685,\\\"../../plots/font_attributes\\\":771,\\\"./constants\\\":1047}],1044:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../../constants/numerical\\\").BADNUM,s=t(\\\"./subtypes\\\"),l=t(\\\"./colorscale_calc\\\"),c=t(\\\"./arrays_to_calcdata\\\"),u=t(\\\"./calc_selection\\\");function f(t,e,r,n,i,o,l){var c=e._length,u=t._fullLayout,f=r._id,h=n._id,p=u._firstScatter[d(e)]===e.uid,v=(g(e,u,r,n)||{}).orientation,m=e.fill;r._minDtick=0,n._minDtick=0;var y={padded:!0},x={padded:!0};l&&(y.ppad=x.ppad=l);var b=c<2||i[0]!==i[c-1]||o[0]!==o[c-1];b&&(\\\"tozerox\\\"===m||\\\"tonextx\\\"===m&&(p||\\\"h\\\"===v))?y.tozero=!0:(e.error_y||{}).visible||\\\"tonexty\\\"!==m&&\\\"tozeroy\\\"!==m&&(s.hasMarkers(e)||s.hasText(e))||(y.padded=!1,y.ppad=0),b&&(\\\"tozeroy\\\"===m||\\\"tonexty\\\"===m&&(p||\\\"v\\\"===v))?x.tozero=!0:\\\"tonextx\\\"!==m&&\\\"tozerox\\\"!==m||(x.padded=!1),f&&(e._extremes[f]=a.findExtremes(r,i,y)),h&&(e._extremes[h]=a.findExtremes(n,o,x))}function h(t,e){if(s.hasMarkers(t)){var r,n=t.marker,o=1.6*(t.marker.sizeref||1);if(r=\\\"area\\\"===t.marker.sizemode?function(t){return Math.max(Math.sqrt((t||0)/o),3)}:function(t){return Math.max((t||0)/o,3)},i.isArrayOrTypedArray(n.size)){var l={type:\\\"linear\\\"};a.setConvert(l);for(var c=l.makeCalcdata(t.marker,\\\"size\\\"),u=new Array(e),f=0;f<e;f++)u[f]=r(c[f]);return u}return r(n.size)}}function p(t,e){var r=d(e),n=t._firstScatter;n[r]||(n[r]=e.uid)}function d(t){var e=t.stackgroup;return t.xaxis+t.yaxis+t.type+(e?\\\"-\\\"+e:\\\"\\\")}function g(t,e,r,n){var i=t.stackgroup;if(i){var a=e._scatterStackOpts[r._id+n._id][i],o=\\\"v\\\"===a.orientation?n:r;return\\\"linear\\\"===o.type||\\\"log\\\"===o.type?a:void 0}}e.exports={calc:function(t,e){var r,s,d,v,m,y,x=t._fullLayout,b=a.getFromId(t,e.xaxis||\\\"x\\\"),_=a.getFromId(t,e.yaxis||\\\"y\\\"),w=b.makeCalcdata(e,\\\"x\\\"),k=_.makeCalcdata(e,\\\"y\\\"),M=e._length,A=new Array(M),T=e.ids,S=g(e,x,b,_),E=!1;p(x,e);var C,L=\\\"x\\\",z=\\\"y\\\";for(S?(S.traceIndices.push(e.index),(r=\\\"v\\\"===S.orientation)?(z=\\\"s\\\",C=\\\"x\\\"):(L=\\\"s\\\",C=\\\"y\\\"),m=\\\"interpolate\\\"===S.stackgaps):f(t,e,b,_,w,k,h(e,M)),s=0;s<M;s++){var O=A[s]={},I=n(w[s]),P=n(k[s]);I&&P?(O[L]=w[s],O[z]=k[s]):S&&(r?I:P)?(O[C]=r?w[s]:k[s],O.gap=!0,m?(O.s=o,E=!0):O.s=0):O[L]=O[z]=o,T&&(O.id=String(T[s]))}if(c(A,e),l(e),u(A,e),S){for(s=0;s<A.length;)A[s][C]===o?A.splice(s,1):s++;if(i.sort(A,function(t,e){return t[C]-e[C]||t.i-e.i}),E){for(s=0;s<A.length-1&&A[s].gap;)s++;for((y=A[s].s)||(y=A[s].s=0),d=0;d<s;d++)A[d].s=y;for(v=A.length-1;v>s&&A[v].gap;)v--;for(y=A[v].s,d=A.length-1;d>v;d--)A[d].s=y;for(;s<v;)if(A[++s].gap){for(d=s+1;A[d].gap;)d++;for(var D=A[s-1][C],R=A[s-1].s,B=(A[d].s-R)/(A[d][C]-D);s<d;)A[s].s=R+(A[s][C]-D)*B,s++}}}return A},calcMarkerSize:h,calcAxisExpansion:f,setFirstScatter:p,getStackOpts:g}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"./arrays_to_calcdata\\\":1042,\\\"./calc_selection\\\":1045,\\\"./colorscale_calc\\\":1046,\\\"./subtypes\\\":1067,\\\"fast-isnumeric\\\":214}],1045:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e){n.isArrayOrTypedArray(e.selectedpoints)&&n.tagSelected(t,e)}},{\\\"../../lib\\\":696}],1046:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/has_colorscale\\\"),i=t(\\\"../../components/colorscale/calc\\\"),a=t(\\\"./subtypes\\\");e.exports=function(t){a.hasLines(t)&&n(t,\\\"line\\\")&&i(t,t.line.color,\\\"line\\\",\\\"c\\\"),a.hasMarkers(t)&&(n(t,\\\"marker\\\")&&i(t,t.marker.color,\\\"marker\\\",\\\"c\\\"),n(t,\\\"marker.line\\\")&&i(t,t.marker.line.color,\\\"marker.line\\\",\\\"c\\\"))}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"./subtypes\\\":1067}],1047:[function(t,e,r){\\\"use strict\\\";e.exports={PTS_LINESONLY:20,minTolerance:.2,toleranceGrowth:10,maxScreensAway:20}},{}],1048:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./calc\\\");function i(t,e,r,n,i,a,o){i[n]=!0;var s={i:null,gap:!0,s:0};if(s[o]=r,t.splice(e,0,s),e&&r===t[e-1][o]){var l=t[e-1];s.s=l.s,s.i=l.i,s.gap=l.gap}else a&&(s.s=function(t,e,r,n){var i=t[e-1],a=t[e+1];return a?i?i.s+(a.s-i.s)*(r-i[n])/(a[n]-i[n]):a.s:i.s}(t,e,r,o));e||(t[0].t=t[1].t,t[0].trace=t[1].trace,delete t[1].t,delete t[1].trace)}e.exports=function(t,e){var r=e.xaxis,a=e.yaxis,o=r._id+a._id,s=t._fullLayout._scatterStackOpts[o];if(s){var l,c,u,f,h,p,d,g,v,m,y,x,b,_,w,k=t.calcdata;for(var M in s){var A=(m=s[M]).traceIndices;if(A.length){for(y=\\\"interpolate\\\"===m.stackgaps,x=m.groupnorm,\\\"v\\\"===m.orientation?(b=\\\"x\\\",_=\\\"y\\\"):(b=\\\"y\\\",_=\\\"x\\\"),w=new Array(A.length),l=0;l<w.length;l++)w[l]=!1;p=k[A[0]];var T=new Array(p.length);for(l=0;l<p.length;l++)T[l]=p[l][b];for(l=1;l<A.length;l++){for(h=k[A[l]],c=u=0;c<h.length;c++){for(d=h[c][b];d>T[u]&&u<T.length;u++)i(h,c,T[u],l,w,y,b),c++;if(d!==T[u]){for(f=0;f<l;f++)i(k[A[f]],u,d,f,w,y,b);T.splice(u,0,d)}u++}for(;u<T.length;u++)i(h,c,T[u],l,w,y,b),c++}var S=T.length;for(c=0;c<p.length;c++){for(g=p[c][_]=p[c].s,l=1;l<A.length;l++)(h=k[A[l]])[0].trace._rawLength=h[0].trace._length,h[0].trace._length=S,g+=h[c].s,h[c][_]=g;if(x)for(v=(\\\"fraction\\\"===x?g:g/100)||1,l=0;l<A.length;l++){var E=k[A[l]][c];E[_]/=v,E.sNorm=E.s/v}}for(l=0;l<A.length;l++){var C=(h=k[A[l]])[0].trace,L=n.calcMarkerSize(C,C._rawLength),z=Array.isArray(L);if(L&&w[l]||z){var O=L;for(L=new Array(S),c=0;c<S;c++)L[c]=h[c].gap?0:z?O[h[c].i]:O}var I=new Array(S),P=new Array(S);for(c=0;c<S;c++)I[c]=h[c].x,P[c]=h[c].y;n.calcAxisExpansion(t,C,r,a,I,P,L),h[0].t.orientation=m.orientation}}}}}},{\\\"./calc\\\":1044}],1049:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=0;e<t.length;e++){var r=t[e];if(\\\"scatter\\\"===r.type){var n=r.fill;if(\\\"none\\\"!==n&&\\\"toself\\\"!==n&&(r.opacity=void 0,\\\"tonexty\\\"===n||\\\"tonextx\\\"===n))for(var i=e-1;i>=0;i--){var a=t[i];if(\\\"scatter\\\"===a.type&&a.xaxis===r.xaxis&&a.yaxis===r.yaxis){a.opacity=void 0;break}}}}}},{}],1050:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"./constants\\\"),s=t(\\\"./subtypes\\\"),l=t(\\\"./xy_defaults\\\"),c=t(\\\"./stack_defaults\\\"),u=t(\\\"./marker_defaults\\\"),f=t(\\\"./line_defaults\\\"),h=t(\\\"./line_shape_defaults\\\"),p=t(\\\"./text_defaults\\\"),d=t(\\\"./fillcolor_defaults\\\");e.exports=function(t,e,r,g){function v(r,i){return n.coerce(t,e,a,r,i)}var m=l(t,e,g,v);if(m||(e.visible=!1),e.visible){var y=c(t,e,g,v),x=!y&&m<o.PTS_LINESONLY?\\\"lines+markers\\\":\\\"lines\\\";v(\\\"text\\\"),v(\\\"hovertext\\\"),v(\\\"mode\\\",x),s.hasLines(e)&&(f(t,e,r,g,v),h(t,e,v),v(\\\"connectgaps\\\"),v(\\\"line.simplify\\\")),s.hasMarkers(e)&&u(t,e,r,g,v,{gradient:!0}),s.hasText(e)&&p(t,e,g,v);var b=[];(s.hasMarkers(e)||s.hasText(e))&&(v(\\\"cliponaxis\\\"),v(\\\"marker.maxdisplayed\\\"),b.push(\\\"points\\\")),v(\\\"fill\\\",y?y.fillDflt:\\\"none\\\"),\\\"none\\\"!==e.fill&&(d(t,e,r,v),s.hasLines(e)||h(t,e,v)),\\\"tonext\\\"!==e.fill&&\\\"toself\\\"!==e.fill||b.push(\\\"fills\\\"),v(\\\"hoveron\\\",b.join(\\\"+\\\")||\\\"points\\\");var _=i.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");_(t,e,r,{axis:\\\"y\\\"}),_(t,e,r,{axis:\\\"x\\\",inherit:\\\"y\\\"}),n.coerceSelectionMarkerOpacity(e,v)}}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":1043,\\\"./constants\\\":1047,\\\"./fillcolor_defaults\\\":1052,\\\"./line_defaults\\\":1056,\\\"./line_shape_defaults\\\":1058,\\\"./marker_defaults\\\":1062,\\\"./stack_defaults\\\":1065,\\\"./subtypes\\\":1067,\\\"./text_defaults\\\":1068,\\\"./xy_defaults\\\":1069}],1051:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");function i(t){return t||0===t}e.exports=function(t,e,r){var a=Array.isArray(r)?function(t){r.push(t)}:function(t){r.text=t},o=n.extractOption(t,e,\\\"htx\\\",\\\"hovertext\\\");if(i(o))return a(o);var s=n.extractOption(t,e,\\\"tx\\\",\\\"text\\\");return i(s)?a(s):void 0}},{\\\"../../lib\\\":696}],1052:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r,a){var o=!1;if(e.marker){var s=e.marker.color,l=(e.marker.line||{}).color;s&&!i(s)?o=s:l&&!i(l)&&(o=l)}a(\\\"fillcolor\\\",n.addOpacity((e.line||{}).color||o||r,.5))}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696}],1053:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"./subtypes\\\");e.exports=function(t,e){var r,a;if(\\\"lines\\\"===t.mode)return(r=t.line.color)&&n.opacity(r)?r:t.fillcolor;if(\\\"none\\\"===t.mode)return t.fill?t.fillcolor:\\\"\\\";var o=e.mcc||(t.marker||{}).color,s=e.mlcc||((t.marker||{}).line||{}).color;return(a=o&&n.opacity(o)?o:s&&n.opacity(s)&&(e.mlw||((t.marker||{}).line||{}).width)?s:\\\"\\\")?n.opacity(a)<.3?n.addOpacity(a,.3):a:(r=(t.line||{}).color)&&n.opacity(r)&&i.hasLines(t)&&t.line.width?r:t.fillcolor}},{\\\"../../components/color\\\":570,\\\"./subtypes\\\":1067}],1054:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/fx\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"./get_trace_color\\\"),s=t(\\\"../../components/color\\\"),l=t(\\\"./fill_hover_text\\\");e.exports=function(t,e,r,c){var u=t.cd,f=u[0].trace,h=t.xa,p=t.ya,d=h.c2p(e),g=p.c2p(r),v=[d,g],m=f.hoveron||\\\"\\\",y=-1!==f.mode.indexOf(\\\"markers\\\")?3:.5;if(-1!==m.indexOf(\\\"points\\\")){var x=function(t){var e=Math.max(y,t.mrc||0),r=h.c2p(t.x)-d,n=p.c2p(t.y)-g;return Math.max(Math.sqrt(r*r+n*n)-e,1-y/e)},b=i.getDistanceFunction(c,function(t){var e=Math.max(3,t.mrc||0),r=1-1/e,n=Math.abs(h.c2p(t.x)-d);return n<e?r*n/e:n-e+r},function(t){var e=Math.max(3,t.mrc||0),r=1-1/e,n=Math.abs(p.c2p(t.y)-g);return n<e?r*n/e:n-e+r},x);if(i.getClosest(u,b,t),!1!==t.index){var _=u[t.index],w=h.c2p(_.x,!0),k=p.c2p(_.y,!0),M=_.mrc||1;t.index=_.i;var A=u[0].t.orientation,T=A&&(_.sNorm||_.s),S=\\\"h\\\"===A?T:_.x,E=\\\"v\\\"===A?T:_.y;return n.extendFlat(t,{color:o(f,_),x0:w-M,x1:w+M,xLabelVal:S,y0:k-M,y1:k+M,yLabelVal:E,spikeDistance:x(_)}),l(_,f,t),a.getComponentMethod(\\\"errorbars\\\",\\\"hoverInfo\\\")(_,f,t),[t]}}if(-1!==m.indexOf(\\\"fills\\\")&&f._polygons){var C,L,z,O,I,P,D,R,B,F=f._polygons,N=[],j=!1,V=1/0,U=-1/0,q=1/0,H=-1/0;for(C=0;C<F.length;C++)(z=F[C]).contains(v)&&(j=!j,N.push(z),q=Math.min(q,z.ymin),H=Math.max(H,z.ymax));if(j){var G=((q=Math.max(q,0))+(H=Math.min(H,p._length)))/2;for(C=0;C<N.length;C++)for(O=N[C].pts,L=1;L<O.length;L++)(R=O[L-1][1])>G!=(B=O[L][1])>=G&&(P=O[L-1][0],D=O[L][0],B-R&&(I=P+(D-P)*(G-R)/(B-R),V=Math.min(V,I),U=Math.max(U,I)));V=Math.max(V,0),U=Math.min(U,h._length);var W=s.defaultLine;return s.opacity(f.fillcolor)?W=f.fillcolor:s.opacity((f.line||{}).color)&&(W=f.line.color),n.extendFlat(t,{distance:t.maxHoverDistance,x0:V,x1:U,y0:G,y1:G,color:W}),delete t.index,f.text&&!Array.isArray(f.text)?t.text=String(f.text):t.text=f.name,[t]}}}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./fill_hover_text\\\":1051,\\\"./get_trace_color\\\":1053}],1055:[function(t,e,r){\\\"use strict\\\";var n={},i=t(\\\"./subtypes\\\");n.hasLines=i.hasLines,n.hasMarkers=i.hasMarkers,n.hasText=i.hasText,n.isBubble=i.isBubble,n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.crossTraceDefaults=t(\\\"./cross_trace_defaults\\\"),n.calc=t(\\\"./calc\\\").calc,n.crossTraceCalc=t(\\\"./cross_trace_calc\\\"),n.arraysToCalcdata=t(\\\"./arrays_to_calcdata\\\"),n.plot=t(\\\"./plot\\\"),n.colorbar=t(\\\"./marker_colorbar\\\"),n.style=t(\\\"./style\\\").style,n.styleOnSelect=t(\\\"./style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.selectPoints=t(\\\"./select\\\"),n.animatable=!0,n.moduleType=\\\"trace\\\",n.name=\\\"scatter\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"symbols\\\",\\\"errorBarsOK\\\",\\\"showLegend\\\",\\\"scatter-like\\\",\\\"zoomScale\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./arrays_to_calcdata\\\":1042,\\\"./attributes\\\":1043,\\\"./calc\\\":1044,\\\"./cross_trace_calc\\\":1048,\\\"./cross_trace_defaults\\\":1049,\\\"./defaults\\\":1050,\\\"./hover\\\":1054,\\\"./marker_colorbar\\\":1061,\\\"./plot\\\":1063,\\\"./select\\\":1064,\\\"./style\\\":1066,\\\"./subtypes\\\":1067}],1056:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray,i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\");e.exports=function(t,e,r,o,s,l){var c=(t.marker||{}).color;(s(\\\"line.color\\\",r),i(t,\\\"line\\\"))?a(t,e,o,s,{prefix:\\\"line.\\\",cLetter:\\\"c\\\",noScale:!0}):s(\\\"line.color\\\",!n(c)&&c||r);s(\\\"line.width\\\"),(l||{}).noDash||s(\\\"line.dash\\\")}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696}],1057:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../constants/numerical\\\"),i=n.BADNUM,a=n.LOG_CLIP,o=a+.5,s=a-.5,l=t(\\\"../../lib\\\"),c=l.segmentsIntersect,u=l.constrain,f=t(\\\"./constants\\\");e.exports=function(t,e){var r,n,a,h,p,d,g,v,m,y,x,b,_,w,k,M,A,T,S=e.xaxis,E=e.yaxis,C=\\\"log\\\"===S.type,L=\\\"log\\\"===E.type,z=S._length,O=E._length,I=e.connectGaps,P=e.baseTolerance,D=e.shape,R=\\\"linear\\\"===D,B=[],F=f.minTolerance,N=new Array(t.length),j=0;function V(e){var r=t[e];if(!r)return!1;var n=S.c2p(r.x),a=E.c2p(r.y);if(n===i){if(C&&(n=S.c2p(r.x,!0)),n===i)return!1;L&&a===i&&(n*=Math.abs(S._m*O*(S._m>0?o:s)/(E._m*z*(E._m>0?o:s)))),n*=1e3}if(a===i){if(L&&(a=E.c2p(r.y,!0)),a===i)return!1;a*=1e3}return[n,a]}function U(t,e,r,n){var i=r-t,a=n-e,o=.5-t,s=.5-e,l=i*i+a*a,c=i*o+a*s;if(c>0&&c<l){var u=o*a-s*i;if(u*u<l)return!0}}function q(t,e){var r=t[0]/z,n=t[1]/O,i=Math.max(0,-r,r-1,-n,n-1);return i&&void 0!==A&&U(r,n,A,T)&&(i=0),i&&e&&U(r,n,e[0]/z,e[1]/O)&&(i=0),(1+f.toleranceGrowth*i)*P}function H(t,e){var r=t[0]-e[0],n=t[1]-e[1];return Math.sqrt(r*r+n*n)}var G,W,Y,X,Z,$,J,K=f.maxScreensAway,Q=-z*K,tt=z*(1+K),et=-O*K,rt=O*(1+K),nt=[[Q,et,tt,et],[tt,et,tt,rt],[tt,rt,Q,rt],[Q,rt,Q,et]];function it(t){if(t[0]<Q||t[0]>tt||t[1]<et||t[1]>rt)return[u(t[0],Q,tt),u(t[1],et,rt)]}function at(t,e){return t[0]===e[0]&&(t[0]===Q||t[0]===tt)||(t[1]===e[1]&&(t[1]===et||t[1]===rt)||void 0)}function ot(t,e,r){return function(n,i){var a=it(n),o=it(i),s=[];if(a&&o&&at(a,o))return s;a&&s.push(a),o&&s.push(o);var c=2*l.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);c&&((a&&o?c>0==a[t]>o[t]?a:o:a||o)[t]+=c);return s}}function st(t){var e=t[0],r=t[1],n=e===N[j-1][0],i=r===N[j-1][1];if(!n||!i)if(j>1){var a=e===N[j-2][0],o=r===N[j-2][1];n&&(e===Q||e===tt)&&a?o?j--:N[j-1]=t:i&&(r===et||r===rt)&&o?a?j--:N[j-1]=t:N[j++]=t}else N[j++]=t}function lt(t){N[j-1][0]!==t[0]&&N[j-1][1]!==t[1]&&st([Y,X]),st(t),Z=null,Y=X=0}function ct(t){if(A=t[0]/z,T=t[1]/O,G=t[0]<Q?Q:t[0]>tt?tt:0,W=t[1]<et?et:t[1]>rt?rt:0,G||W){if(j)if(Z){var e=J(Z,t);e.length>1&&(lt(e[0]),N[j++]=e[1])}else $=J(N[j-1],t)[0],N[j++]=$;else N[j++]=[G||t[0],W||t[1]];var r=N[j-1];G&&W&&(r[0]!==G||r[1]!==W)?(Z&&(Y!==G&&X!==W?st(Y&&X?(n=Z,a=(i=t)[0]-n[0],o=(i[1]-n[1])/a,(n[1]*i[0]-i[1]*n[0])/a>0?[o>0?Q:tt,rt]:[o>0?tt:Q,et]):[Y||G,X||W]):Y&&X&&st([Y,X])),st([G,W])):Y-G&&X-W&&st([G||Y,W||X]),Z=t,Y=G,X=W}else Z&&lt(J(Z,t)[0]),N[j++]=t;var n,i,a,o}for(\\\"linear\\\"===D||\\\"spline\\\"===D?J=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=nt[i],o=c(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&H(o,t)<H(r[0],t)?r.unshift(o):r.push(o),n++)}return r}:\\\"hv\\\"===D||\\\"vh\\\"===D?J=function(t,e){var r=[],n=it(t),i=it(e);return n&&i&&at(n,i)?r:(n&&r.push(n),i&&r.push(i),r)}:\\\"hvh\\\"===D?J=ot(0,Q,tt):\\\"vhv\\\"===D&&(J=ot(1,et,rt)),r=0;r<t.length;r++)if(n=V(r)){for(j=0,Z=null,ct(n),r++;r<t.length;r++){if(!(h=V(r))){if(I)continue;break}if(R&&e.simplify){var ut=V(r+1);if(!((y=H(h,n))<q(h,ut)*F)){for(v=[(h[0]-n[0])/y,(h[1]-n[1])/y],p=n,x=y,b=w=k=0,g=!1,a=h,r++;r<t.length;r++){if(d=ut,ut=V(r+1),!d){if(I)continue;break}if(M=(m=[d[0]-n[0],d[1]-n[1]])[0]*v[1]-m[1]*v[0],w=Math.min(w,M),(k=Math.max(k,M))-w>q(d,ut))break;a=d,(_=m[0]*v[0]+m[1]*v[1])>x?(x=_,h=d,g=!1):_<b&&(b=_,p=d,g=!0)}if(g?(ct(h),a!==p&&ct(p)):(p!==n&&ct(p),a!==h&&ct(h)),ct(a),r>=t.length||!d)break;ct(d),n=d}}else ct(h)}Z&&st([Y||Z[0],X||Z[1]]),B.push(N.slice(0,j))}return B}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"./constants\\\":1047}],1058:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){\\\"spline\\\"===r(\\\"line.shape\\\")&&r(\\\"line.smoothing\\\")}},{}],1059:[function(t,e,r){\\\"use strict\\\";var n={tonextx:1,tonexty:1,tonext:1};e.exports=function(t,e,r){var i,a,o,s,l,c={},u=!1,f=-1,h=0,p=-1;for(a=0;a<r.length;a++)(o=(i=r[a][0].trace).stackgroup||\\\"\\\")?o in c?l=c[o]:(l=c[o]=h,h++):i.fill in n&&p>=0?l=p:(l=p=h,h++),l<f&&(u=!0),i._groupIndex=f=l;var d=r.slice();u&&d.sort(function(t,e){var r=t[0].trace,n=e[0].trace;return r._groupIndex-n._groupIndex||r.index-n.index});var g={};for(a=0;a<d.length;a++)o=(i=d[a][0].trace).stackgroup||\\\"\\\",!0===i.visible?(i._nexttrace=null,i.fill in n&&(s=g[o],i._prevtrace=s||null,s&&(s._nexttrace=i)),i._ownfill=i.fill&&(\\\"tozero\\\"===i.fill.substr(0,6)||\\\"toself\\\"===i.fill||\\\"to\\\"===i.fill.substr(0,2)&&!i._prevtrace),g[o]=i):i._prevtrace=i._nexttrace=i._ownfill=null;return d}},{}],1060:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\");e.exports=function(t){var e=t.marker,r=e.sizeref||1,i=e.sizemin||0,a=\\\"area\\\"===e.sizemode?function(t){return Math.sqrt(t/r)}:function(t){return t/r};return function(t){var e=a(t/2);return n(e)&&e>0?Math.max(e,i):0}}},{\\\"fast-isnumeric\\\":214}],1061:[function(t,e,r){\\\"use strict\\\";e.exports={container:\\\"marker\\\",min:\\\"cmin\\\",max:\\\"cmax\\\"}},{}],1062:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"./subtypes\\\");e.exports=function(t,e,r,s,l,c){var u=o.isBubble(t),f=(t.line||{}).color;(c=c||{},f&&(r=f),l(\\\"marker.symbol\\\"),l(\\\"marker.opacity\\\",u?.7:1),l(\\\"marker.size\\\"),l(\\\"marker.color\\\",r),i(t,\\\"marker\\\")&&a(t,e,s,l,{prefix:\\\"marker.\\\",cLetter:\\\"c\\\"}),c.noSelect||(l(\\\"selected.marker.color\\\"),l(\\\"unselected.marker.color\\\"),l(\\\"selected.marker.size\\\"),l(\\\"unselected.marker.size\\\")),c.noLine||(l(\\\"marker.line.color\\\",f&&!Array.isArray(f)&&e.marker.color!==f?f:u?n.background:n.defaultLine),i(t,\\\"marker.line\\\")&&a(t,e,s,l,{prefix:\\\"marker.line.\\\",cLetter:\\\"c\\\"}),l(\\\"marker.line.width\\\",u?1:0)),u&&(l(\\\"marker.sizeref\\\"),l(\\\"marker.sizemin\\\"),l(\\\"marker.sizemode\\\")),c.gradient)&&(\\\"none\\\"!==l(\\\"marker.gradient.type\\\")&&l(\\\"marker.gradient.color\\\"))}},{\\\"../../components/color\\\":570,\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"./subtypes\\\":1067}],1063:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=a.ensureSingle,s=a.identity,l=t(\\\"../../components/drawing\\\"),c=t(\\\"./subtypes\\\"),u=t(\\\"./line_points\\\"),f=t(\\\"./link_traces\\\"),h=t(\\\"../../lib/polygon\\\").tester;function p(t,e,r,f,p,d,g){var v;!function(t,e,r,i,o){var s=r.xaxis,l=r.yaxis,u=n.extent(a.simpleMap(s.range,s.r2c)),f=n.extent(a.simpleMap(l.range,l.r2c)),h=i[0].trace;if(!c.hasMarkers(h))return;var p=h.marker.maxdisplayed;if(0===p)return;var d=i.filter(function(t){return t.x>=u[0]&&t.x<=u[1]&&t.y>=f[0]&&t.y<=f[1]}),g=Math.ceil(d.length/p),v=0;o.forEach(function(t,r){var n=t[0].trace;c.hasMarkers(n)&&n.marker.maxdisplayed>0&&r<e&&v++});var m=Math.round(v*g/3+Math.floor(v/3)*g/7.1);i.forEach(function(t){delete t.vis}),d.forEach(function(t,e){0===Math.round((e+m)%g)&&(t.vis=!0)})}(0,e,r,f,p);var m=!!g&&g.duration>0;function y(t){return m?t.transition():t}var x=r.xaxis,b=r.yaxis,_=f[0].trace,w=_.line,k=n.select(d),M=o(k,\\\"g\\\",\\\"errorbars\\\"),A=o(k,\\\"g\\\",\\\"lines\\\"),T=o(k,\\\"g\\\",\\\"points\\\"),S=o(k,\\\"g\\\",\\\"text\\\");if(i.getComponentMethod(\\\"errorbars\\\",\\\"plot\\\")(M,r,g),!0===_.visible){var E,C;y(k).style(\\\"opacity\\\",_.opacity);var L=_.fill.charAt(_.fill.length-1);\\\"x\\\"!==L&&\\\"y\\\"!==L&&(L=\\\"\\\"),r.isRangePlot||(f[0].node3=k);var z=\\\"\\\",O=[],I=_._prevtrace;I&&(z=I._prevRevpath||\\\"\\\",C=I._nextFill,O=I._polygons);var P,D,R,B,F,N,j,V,U,q=\\\"\\\",H=\\\"\\\",G=[],W=a.noop;if(E=_._ownFill,c.hasLines(_)||\\\"none\\\"!==_.fill){for(C&&C.datum(f),-1!==[\\\"hv\\\",\\\"vh\\\",\\\"hvh\\\",\\\"vhv\\\"].indexOf(w.shape)?(R=l.steps(w.shape),B=l.steps(w.shape.split(\\\"\\\").reverse().join(\\\"\\\"))):R=B=\\\"spline\\\"===w.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?l.smoothclosed(t.slice(1),w.smoothing):l.smoothopen(t,w.smoothing)}:function(t){return\\\"M\\\"+t.join(\\\"L\\\")},F=function(t){return B(t.reverse())},G=u(f,{xaxis:x,yaxis:b,connectGaps:_.connectgaps,baseTolerance:Math.max(w.width||1,3)/4,shape:w.shape,simplify:w.simplify}),U=_._polygons=new Array(G.length),v=0;v<G.length;v++)_._polygons[v]=h(G[v]);G.length&&(N=G[0][0],V=(j=G[G.length-1])[j.length-1]),W=function(t){return function(e){if(P=R(e),D=F(e),q?L?(q+=\\\"L\\\"+P.substr(1),H=D+\\\"L\\\"+H.substr(1)):(q+=\\\"Z\\\"+P,H=D+\\\"Z\\\"+H):(q=P,H=D),c.hasLines(_)&&e.length>1){var r=n.select(this);if(r.datum(f),t)y(r.style(\\\"opacity\\\",0).attr(\\\"d\\\",P).call(l.lineGroupStyle)).style(\\\"opacity\\\",1);else{var i=y(r);i.attr(\\\"d\\\",P),l.singleLineStyle(f,i)}}}}}var Y=A.selectAll(\\\".js-line\\\").data(G);y(Y.exit()).style(\\\"opacity\\\",0).remove(),Y.each(W(!1)),Y.enter().append(\\\"path\\\").classed(\\\"js-line\\\",!0).style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").call(l.lineGroupStyle).each(W(!0)),l.setClipUrl(Y,r.layerClipId),G.length?(E?(E.datum(f),N&&V&&(L?(\\\"y\\\"===L?N[1]=V[1]=b.c2p(0,!0):\\\"x\\\"===L&&(N[0]=V[0]=x.c2p(0,!0)),y(E).attr(\\\"d\\\",\\\"M\\\"+V+\\\"L\\\"+N+\\\"L\\\"+q.substr(1)).call(l.singleFillStyle)):y(E).attr(\\\"d\\\",q+\\\"Z\\\").call(l.singleFillStyle))):C&&(\\\"tonext\\\"===_.fill.substr(0,6)&&q&&z?(\\\"tonext\\\"===_.fill?y(C).attr(\\\"d\\\",q+\\\"Z\\\"+z+\\\"Z\\\").call(l.singleFillStyle):y(C).attr(\\\"d\\\",q+\\\"L\\\"+z.substr(1)+\\\"Z\\\").call(l.singleFillStyle),_._polygons=_._polygons.concat(O)):(Z(C),_._polygons=null)),_._prevRevpath=H,_._prevPolygons=U):(E?Z(E):C&&Z(C),_._polygons=_._prevRevpath=_._prevPolygons=null),T.datum(f),S.datum(f),function(e,i,a){var o,u=a[0].trace,f=c.hasMarkers(u),h=c.hasText(u),p=tt(u),d=et,g=et;if(f||h){var v=s,_=u.stackgroup,w=_&&\\\"infer zero\\\"===t._fullLayout._scatterStackOpts[x._id+b._id][_].stackgaps;u.marker.maxdisplayed||u._needsCull?v=w?J:$:_&&!w&&(v=K),f&&(d=v),h&&(g=v)}var k,M=(o=e.selectAll(\\\"path.point\\\").data(d,p)).enter().append(\\\"path\\\").classed(\\\"point\\\",!0);m&&M.call(l.pointStyle,u,t).call(l.translatePoints,x,b).style(\\\"opacity\\\",0).transition().style(\\\"opacity\\\",1),o.order(),f&&(k=l.makePointStyleFns(u)),o.each(function(e){var i=n.select(this),a=y(i);l.translatePoint(e,a,x,b)?(l.singlePointStyle(e,a,u,k,t),r.layerClipId&&l.hideOutsideRangePoint(e,a,x,b,u.xcalendar,u.ycalendar),u.customdata&&i.classed(\\\"plotly-customdata\\\",null!==e.data&&void 0!==e.data)):a.remove()}),m?o.exit().transition().style(\\\"opacity\\\",0).remove():o.exit().remove(),(o=i.selectAll(\\\"g\\\").data(g,p)).enter().append(\\\"g\\\").classed(\\\"textpoint\\\",!0).append(\\\"text\\\"),o.order(),o.each(function(t){var e=n.select(this),i=y(e.select(\\\"text\\\"));l.translatePoint(t,i,x,b)?r.layerClipId&&l.hideOutsideRangePoint(t,e,x,b,u.xcalendar,u.ycalendar):e.remove()}),o.selectAll(\\\"text\\\").call(l.textPointStyle,u,t).each(function(t){var e=x.c2p(t.x),r=b.c2p(t.y);n.select(this).selectAll(\\\"tspan.line\\\").each(function(){y(n.select(this)).attr({x:e,y:r})})}),o.exit().remove()}(T,S,f);var X=!1===_.cliponaxis?null:r.layerClipId;l.setClipUrl(T,X),l.setClipUrl(S,X)}function Z(t){y(t).attr(\\\"d\\\",\\\"M0,0Z\\\")}function $(t){return t.filter(function(t){return!t.gap&&t.vis})}function J(t){return t.filter(function(t){return t.vis})}function K(t){return t.filter(function(t){return!t.gap})}function Q(t){return t.id}function tt(t){if(t.ids)return Q}function et(){return!1}}e.exports=function(t,e,r,i,a,c){var u,h,d=!a,g=!!a&&a.duration>0,v=f(t,e,r);((u=i.selectAll(\\\"g.trace\\\").data(v,function(t){return t[0].trace.uid})).enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"trace scatter trace\\\"+t[0].trace.uid}).style(\\\"stroke-miterlimit\\\",2),u.order(),function(t,e,r){e.each(function(t){var e=o(n.select(this),\\\"g\\\",\\\"fills\\\");l.setClipUrl(e,r.layerClipId);var i=t[0].trace,a=[];i._ownfill&&a.push(\\\"_ownFill\\\"),i._nexttrace&&a.push(\\\"_nextFill\\\");var c=e.selectAll(\\\"g\\\").data(a,s);c.enter().append(\\\"g\\\"),c.exit().each(function(t){i[t]=null}).remove(),c.order().each(function(t){i[t]=o(n.select(this),\\\"path\\\",\\\"js-fill\\\")})})}(0,u,e),g)?(c&&(h=c()),n.transition().duration(a.duration).ease(a.easing).each(\\\"end\\\",function(){h&&h()}).each(\\\"interrupt\\\",function(){h&&h()}).each(function(){i.selectAll(\\\"g.trace\\\").each(function(r,n){p(t,n,e,r,v,this,a)})})):u.each(function(r,n){p(t,n,e,r,v,this,a)});d&&u.exit().remove(),i.selectAll(\\\"path:not([d])\\\").remove()}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/polygon\\\":708,\\\"../../registry\\\":827,\\\"./line_points\\\":1057,\\\"./link_traces\\\":1059,\\\"./subtypes\\\":1067,d3:148}],1064:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./subtypes\\\");e.exports=function(t,e){var r,i,a,o,s=t.cd,l=t.xaxis,c=t.yaxis,u=[],f=s[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===e)for(r=0;r<s.length;r++)s[r].selected=0;else for(r=0;r<s.length;r++)i=s[r],a=l.c2p(i.x),o=c.c2p(i.y),null!==i.i&&e.contains([a,o],!1,r,t)?(u.push({pointNumber:i.i,x:l.c2d(i.x),y:c.c2d(i.y)}),i.selected=1):i.selected=0;return u}},{\\\"./subtypes\\\":1067}],1065:[function(t,e,r){\\\"use strict\\\";var n=[\\\"orientation\\\",\\\"groupnorm\\\",\\\"stackgaps\\\"];e.exports=function(t,e,r,i){var a=r._scatterStackOpts,o=i(\\\"stackgroup\\\");if(o){var s=e.xaxis+e.yaxis,l=a[s];l||(l=a[s]={});var c=l[o],u=!1;c?c.traces.push(e):(c=l[o]={traceIndices:[],traces:[e]},u=!0);for(var f={orientation:e.x&&!e.y?\\\"h\\\":\\\"v\\\"},h=0;h<n.length;h++){var p=n[h],d=p+\\\"Found\\\";if(!c[d]){var g=void 0!==t[p],v=\\\"orientation\\\"===p;if((g||u)&&(c[p]=i(p,f[p]),v&&(c.fillDflt=\\\"h\\\"===c[p]?\\\"tonextx\\\":\\\"tonexty\\\"),g&&(c[d]=!0,!u&&(delete c.traces[0][p],v))))for(var m=0;m<c.traces.length-1;m++){var y=c.traces[m];y._input.fill!==y.fill&&(y.fill=c.fillDflt)}}}return c}}},{}],1066:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"../../registry\\\");function o(t,e,r){i.pointStyle(t.selectAll(\\\"path.point\\\"),e,r)}function s(t,e,r){i.textPointStyle(t.selectAll(\\\"text\\\"),e,r)}e.exports={style:function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.trace.scatter\\\");r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),r.selectAll(\\\"g.points\\\").each(function(e){o(n.select(this),e.trace||e[0].trace,t)}),r.selectAll(\\\"g.text\\\").each(function(e){s(n.select(this),e.trace||e[0].trace,t)}),r.selectAll(\\\"g.trace path.js-line\\\").call(i.lineGroupStyle),r.selectAll(\\\"g.trace path.js-fill\\\").call(i.fillGroupStyle),a.getComponentMethod(\\\"errorbars\\\",\\\"style\\\")(r)},stylePoints:o,styleText:s,styleOnSelect:function(t,e){var r=e[0].node3,n=e[0].trace;n.selectedpoints?(i.selectedPointStyle(r.selectAll(\\\"path.point\\\"),n),i.selectedTextStyle(r.selectAll(\\\"text\\\"),n)):(o(r,n,t),s(r,n,t))}}},{\\\"../../components/drawing\\\":595,\\\"../../registry\\\":827,d3:148}],1067:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports={hasLines:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf(\\\"lines\\\")},hasMarkers:function(t){return t.visible&&(t.mode&&-1!==t.mode.indexOf(\\\"markers\\\")||\\\"splom\\\"===t.type)},hasText:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf(\\\"text\\\")},isBubble:function(t){return n.isPlainObject(t.marker)&&n.isArrayOrTypedArray(t.marker.size)}}},{\\\"../../lib\\\":696}],1068:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e,r,i,a){a=a||{},i(\\\"textposition\\\"),n.coerceFont(i,\\\"textfont\\\",r.font),a.noSelect||(i(\\\"selected.textfont.color\\\"),i(\\\"unselected.textfont.color\\\"))}},{\\\"../../lib\\\":696}],1069:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\");e.exports=function(t,e,r,i){var a,o=i(\\\"x\\\"),s=i(\\\"y\\\");if(n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\"],r),o)s?a=Math.min(o.length,s.length):(a=o.length,i(\\\"y0\\\"),i(\\\"dy\\\"));else{if(!s)return 0;a=e.y.length,i(\\\"x0\\\"),i(\\\"dx\\\")}return e._length=a,a}},{\\\"../../registry\\\":827}],1070:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../plots/attributes\\\"),o=t(\\\"../../constants/gl3d_dashes\\\"),s=t(\\\"../../constants/gl3d_markers\\\"),l=t(\\\"../../lib/extend\\\").extendFlat,c=t(\\\"../../plot_api/edit_types\\\").overrideAll,u=n.line,f=n.marker,h=f.line,p=l({width:u.width,dash:{valType:\\\"enumerated\\\",values:Object.keys(o),dflt:\\\"solid\\\"}},i(\\\"line\\\"));delete p.showscale,delete p.colorbar;var d=e.exports=c({x:n.x,y:n.y,z:{valType:\\\"data_array\\\"},text:l({},n.text,{}),hovertext:l({},n.hovertext,{}),mode:l({},n.mode,{dflt:\\\"lines+markers\\\"}),surfaceaxis:{valType:\\\"enumerated\\\",values:[-1,0,1,2],dflt:-1},surfacecolor:{valType:\\\"color\\\"},projection:{x:{show:{valType:\\\"boolean\\\",dflt:!1},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1},scale:{valType:\\\"number\\\",min:0,max:10,dflt:2/3}},y:{show:{valType:\\\"boolean\\\",dflt:!1},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1},scale:{valType:\\\"number\\\",min:0,max:10,dflt:2/3}},z:{show:{valType:\\\"boolean\\\",dflt:!1},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1},scale:{valType:\\\"number\\\",min:0,max:10,dflt:2/3}}},connectgaps:n.connectgaps,line:p,marker:l({symbol:{valType:\\\"enumerated\\\",values:Object.keys(s),dflt:\\\"circle\\\",arrayOk:!0},size:l({},f.size,{dflt:8}),sizeref:f.sizeref,sizemin:f.sizemin,sizemode:f.sizemode,opacity:l({},f.opacity,{arrayOk:!1}),colorbar:f.colorbar,line:l({width:l({},h.width,{arrayOk:!1})},i(\\\"marker.line\\\"))},i(\\\"marker\\\")),textposition:l({},n.textposition,{dflt:\\\"top center\\\",arrayOk:!1}),textfont:{color:n.textfont.color,size:n.textfont.size,family:l({},n.textfont.family,{arrayOk:!1})},hoverinfo:l({},a.hoverinfo)},\\\"calc\\\",\\\"nested\\\");d.x.editType=d.y.editType=d.z.editType=\\\"calc+clearAxisTypes\\\"},{\\\"../../components/colorscale/attributes\\\":577,\\\"../../constants/gl3d_dashes\\\":670,\\\"../../constants/gl3d_markers\\\":671,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1071:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/arrays_to_calcdata\\\"),i=t(\\\"../scatter/colorscale_calc\\\");e.exports=function(t,e){var r=[{x:!1,y:!1,trace:e,t:{}}];return n(r,e),i(e),r}},{\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/colorscale_calc\\\":1046}],1072:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\");function i(t,e,r,i){if(!e||!e.visible)return null;for(var a=n.getComponentMethod(\\\"errorbars\\\",\\\"makeComputeError\\\")(e),o=new Array(t.length),s=0;s<t.length;s++){var l=a(+t[s],s);if(\\\"log\\\"===i.type){var c=i.c2l(t[s]),u=t[s]-l[0],f=t[s]+l[1];if(o[s]=[(i.c2l(u,!0)-c)*r,(i.c2l(f,!0)-c)*r],u>0){var h=i.c2l(u);i._lowerLogErrorBound||(i._lowerLogErrorBound=h),i._lowerErrorBound=Math.min(i._lowerLogErrorBound,h)}}else o[s]=[-l[0]*r,l[1]*r]}return o}e.exports=function(t,e,r){var n=[i(t.x,t.error_x,e[0],r.xaxis),i(t.y,t.error_y,e[1],r.yaxis),i(t.z,t.error_z,e[2],r.zaxis)],a=function(t){for(var e=0;e<t.length;e++)if(t[e])return t[e].length;return 0}(n);if(0===a)return null;for(var o=new Array(a),s=0;s<a;s++){for(var l=[[0,0,0],[0,0,0]],c=0;c<3;c++)if(n[c])for(var u=0;u<2;u++)l[u][c]=n[c][s][u];o[s]=l}return o}},{\\\"../../registry\\\":827}],1073:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-line3d\\\"),i=t(\\\"gl-scatter3d\\\"),a=t(\\\"gl-error3d\\\"),o=t(\\\"gl-mesh3d\\\"),s=t(\\\"delaunay-triangulate\\\"),l=t(\\\"../../lib\\\"),c=t(\\\"../../lib/str2rgbarray\\\"),u=t(\\\"../../lib/gl_format_color\\\").formatColor,f=t(\\\"../scatter/make_bubble_size_func\\\"),h=t(\\\"../../constants/gl3d_dashes\\\"),p=t(\\\"../../constants/gl3d_markers\\\"),d=t(\\\"./calc_errors\\\");function g(t,e){this.scene=t,this.uid=e,this.linePlot=null,this.scatterPlot=null,this.errorBars=null,this.textMarkers=null,this.delaunayMesh=null,this.color=null,this.mode=\\\"\\\",this.dataPoints=[],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.textLabels=null,this.data=null}var v=g.prototype;function m(t,e){return e(4*t)}function y(t){return p[t]}function x(t,e,r,n,i){var a=null;if(l.isArrayOrTypedArray(t)){a=[];for(var o=0;o<e;o++)void 0===t[o]?a[o]=n:a[o]=r(t[o],i)}else a=r(t,l.identity);return a}function b(t,e){var r,n,i,a,o,s,h,p,g=[],v=t.fullSceneLayout,b=t.dataScale,_=v.xaxis,w=v.yaxis,k=v.zaxis,M=e.marker,A=e.line,T=e.x||[],S=e.y||[],E=e.z||[],C=T.length,L=e.xcalendar,z=e.ycalendar,O=e.zcalendar;for(n=0;n<C;n++)i=_.d2l(T[n],0,L)*b[0],a=w.d2l(S[n],0,z)*b[1],o=k.d2l(E[n],0,O)*b[2],g[n]=[i,a,o];if(Array.isArray(e.text))s=e.text;else if(void 0!==e.text)for(s=new Array(C),n=0;n<C;n++)s[n]=e.text;if(r={position:g,mode:e.mode,text:s},\\\"line\\\"in e&&(r.lineColor=u(A,1,C),r.lineWidth=A.width,r.lineDashes=A.dash),\\\"marker\\\"in e){var I=f(e);r.scatterColor=u(M,1,C),r.scatterSize=x(M.size,C,m,20,I),r.scatterMarker=x(M.symbol,C,y,\\\"\\\\u25cf\\\"),r.scatterLineWidth=M.line.width,r.scatterLineColor=u(M.line,1,C),r.scatterAngle=0}\\\"textposition\\\"in e&&(r.textOffset=(h=e.textposition,p=[0,0],Array.isArray(h)?[0,-1]:(h.indexOf(\\\"bottom\\\")>=0&&(p[1]+=1),h.indexOf(\\\"top\\\")>=0&&(p[1]-=1),h.indexOf(\\\"left\\\")>=0&&(p[0]-=1),h.indexOf(\\\"right\\\")>=0&&(p[0]+=1),p)),r.textColor=u(e.textfont,1,C),r.textSize=x(e.textfont.size,C,l.identity,12),r.textFont=e.textfont.family,r.textAngle=0);var P=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];for(r.project=[!1,!1,!1],r.projectScale=[1,1,1],r.projectOpacity=[1,1,1],n=0;n<3;++n){var D=e.projection[P[n]];(r.project[n]=D.show)&&(r.projectOpacity[n]=D.opacity,r.projectScale[n]=D.scale)}r.errorBounds=d(e,b,v);var R=function(t){for(var e=[0,0,0],r=[[0,0,0],[0,0,0],[0,0,0]],n=[1,1,1],i=0;i<3;i++){var a=t[i];a&&!1!==a.copy_zstyle&&!1!==t[2].visible&&(a=t[2]),a&&a.visible&&(e[i]=a.width/2,r[i]=c(a.color),n[i]=a.thickness)}return{capSize:e,color:r,lineWidth:n}}([e.error_x,e.error_y,e.error_z]);return r.errorColor=R.color,r.errorLineWidth=R.lineWidth,r.errorCapSize=R.capSize,r.delaunayAxis=e.surfaceaxis,r.delaunayColor=c(e.surfacecolor),r}function _(t){if(Array.isArray(t)){var e=t[0];return Array.isArray(e)&&(t=e),\\\"rgb(\\\"+t.slice(0,3).map(function(t){return Math.round(255*t)})+\\\")\\\"}return null}v.handlePick=function(t){if(t.object&&(t.object===this.linePlot||t.object===this.delaunayMesh||t.object===this.textMarkers||t.object===this.scatterPlot)){var e=t.index=t.data.index;return t.object.highlight&&t.object.highlight(null),this.scatterPlot&&(t.object=this.scatterPlot,this.scatterPlot.highlight(t.data)),t.textLabel=\\\"\\\",this.textLabels&&(Array.isArray(this.textLabels)?(this.textLabels[e]||0===this.textLabels[e])&&(t.textLabel=this.textLabels[e]):t.textLabel=this.textLabels),t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]],!0}},v.update=function(t){var e,r,l,c,u=this.scene.glplot.gl,f=h.solid;this.data=t;var p=b(this.scene,t);\\\"mode\\\"in p&&(this.mode=p.mode),\\\"lineDashes\\\"in p&&p.lineDashes in h&&(f=h[p.lineDashes]),this.color=_(p.scatterColor)||_(p.lineColor),this.dataPoints=p.position,e={gl:u,position:p.position,color:p.lineColor,lineWidth:p.lineWidth||1,dashes:f[0],dashScale:f[1],opacity:t.opacity,connectGaps:t.connectgaps},-1!==this.mode.indexOf(\\\"lines\\\")?this.linePlot?this.linePlot.update(e):(this.linePlot=n(e),this.linePlot._trace=this,this.scene.glplot.add(this.linePlot)):this.linePlot&&(this.scene.glplot.remove(this.linePlot),this.linePlot.dispose(),this.linePlot=null);var d=t.opacity;if(t.marker&&t.marker.opacity&&(d*=t.marker.opacity),r={gl:u,position:p.position,color:p.scatterColor,size:p.scatterSize,glyph:p.scatterMarker,opacity:d,orthographic:!0,lineWidth:p.scatterLineWidth,lineColor:p.scatterLineColor,project:p.project,projectScale:p.projectScale,projectOpacity:p.projectOpacity},-1!==this.mode.indexOf(\\\"markers\\\")?this.scatterPlot?this.scatterPlot.update(r):(this.scatterPlot=i(r),this.scatterPlot._trace=this,this.scatterPlot.highlightScale=1,this.scene.glplot.add(this.scatterPlot)):this.scatterPlot&&(this.scene.glplot.remove(this.scatterPlot),this.scatterPlot.dispose(),this.scatterPlot=null),c={gl:u,position:p.position,glyph:p.text,color:p.textColor,size:p.textSize,angle:p.textAngle,alignment:p.textOffset,font:p.textFont,orthographic:!0,lineWidth:0,project:!1,opacity:t.opacity},this.textLabels=t.hovertext||t.text,-1!==this.mode.indexOf(\\\"text\\\")?this.textMarkers?this.textMarkers.update(c):(this.textMarkers=i(c),this.textMarkers._trace=this,this.textMarkers.highlightScale=1,this.scene.glplot.add(this.textMarkers)):this.textMarkers&&(this.scene.glplot.remove(this.textMarkers),this.textMarkers.dispose(),this.textMarkers=null),l={gl:u,position:p.position,color:p.errorColor,error:p.errorBounds,lineWidth:p.errorLineWidth,capSize:p.errorCapSize,opacity:t.opacity},this.errorBars?p.errorBounds?this.errorBars.update(l):(this.scene.glplot.remove(this.errorBars),this.errorBars.dispose(),this.errorBars=null):p.errorBounds&&(this.errorBars=a(l),this.errorBars._trace=this,this.scene.glplot.add(this.errorBars)),p.delaunayAxis>=0){var g=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],l=[];for(n=0;n<t.length;++n){var c=t[n];!isNaN(c[i])&&isFinite(c[i])&&!isNaN(c[a])&&isFinite(c[a])&&(o.push([c[i],c[a]]),l.push(n))}var u=s(o);for(n=0;n<u.length;++n)for(var f=u[n],h=0;h<f.length;++h)f[h]=l[f[h]];return{positions:t,cells:u,meshColor:e}}(p.position,p.delaunayColor,p.delaunayAxis);g.opacity=t.opacity,this.delaunayMesh?this.delaunayMesh.update(g):(g.gl=u,this.delaunayMesh=o(g),this.delaunayMesh._trace=this,this.scene.glplot.add(this.delaunayMesh))}else this.delaunayMesh&&(this.scene.glplot.remove(this.delaunayMesh),this.delaunayMesh.dispose(),this.delaunayMesh=null)},v.dispose=function(){this.linePlot&&(this.scene.glplot.remove(this.linePlot),this.linePlot.dispose()),this.scatterPlot&&(this.scene.glplot.remove(this.scatterPlot),this.scatterPlot.dispose()),this.errorBars&&(this.scene.glplot.remove(this.errorBars),this.errorBars.dispose()),this.textMarkers&&(this.scene.glplot.remove(this.textMarkers),this.textMarkers.dispose()),this.delaunayMesh&&(this.scene.glplot.remove(this.delaunayMesh),this.delaunayMesh.dispose())},e.exports=function(t,e){var r=new g(t,e.uid);return r.update(e),r}},{\\\"../../constants/gl3d_dashes\\\":670,\\\"../../constants/gl3d_markers\\\":671,\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../lib/str2rgbarray\\\":719,\\\"../scatter/make_bubble_size_func\\\":1060,\\\"./calc_errors\\\":1072,\\\"delaunay-triangulate\\\":150,\\\"gl-error3d\\\":237,\\\"gl-line3d\\\":245,\\\"gl-mesh3d\\\":268,\\\"gl-scatter3d\\\":284}],1074:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../scatter/subtypes\\\"),o=t(\\\"../scatter/marker_defaults\\\"),s=t(\\\"../scatter/line_defaults\\\"),l=t(\\\"../scatter/text_defaults\\\"),c=t(\\\"./attributes\\\");e.exports=function(t,e,r,u){function f(r,n){return i.coerce(t,e,c,r,n)}if(function(t,e,r,i){var a=0,o=r(\\\"x\\\"),s=r(\\\"y\\\"),l=r(\\\"z\\\");n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\",\\\"z\\\"],i),o&&s&&l&&(a=Math.min(o.length,s.length,l.length),e._length=e._xlength=e._ylength=e._zlength=a);return a}(t,e,f,u)){f(\\\"text\\\"),f(\\\"hovertext\\\"),f(\\\"mode\\\"),a.hasLines(e)&&(f(\\\"connectgaps\\\"),s(t,e,r,u,f)),a.hasMarkers(e)&&o(t,e,r,u,f,{noSelect:!0}),a.hasText(e)&&l(t,e,u,f,{noSelect:!0});var h=(e.line||{}).color,p=(e.marker||{}).color;f(\\\"surfaceaxis\\\")>=0&&f(\\\"surfacecolor\\\",h||p);for(var d=[\\\"x\\\",\\\"y\\\",\\\"z\\\"],g=0;g<3;++g){var v=\\\"projection.\\\"+d[g];f(v+\\\".show\\\")&&(f(v+\\\".opacity\\\"),f(v+\\\".scale\\\"))}var m=n.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");m(t,e,r,{axis:\\\"z\\\"}),m(t,e,r,{axis:\\\"y\\\",inherit:\\\"z\\\"}),m(t,e,r,{axis:\\\"x\\\",inherit:\\\"z\\\"})}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1070}],1075:[function(t,e,r){\\\"use strict\\\";var n={};n.plot=t(\\\"./convert\\\"),n.attributes=t(\\\"./attributes\\\"),n.markerSymbols=t(\\\"../../constants/gl3d_markers\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"scatter3d\\\",n.basePlotModule=t(\\\"../../plots/gl3d\\\"),n.categories=[\\\"gl3d\\\",\\\"symbols\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../constants/gl3d_markers\\\":671,\\\"../../plots/gl3d\\\":787,\\\"../scatter/marker_colorbar\\\":1061,\\\"./attributes\\\":1070,\\\"./calc\\\":1071,\\\"./convert\\\":1073,\\\"./defaults\\\":1074}],1076:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/colorbar/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat,l=n.marker,c=n.line,u=l.line;e.exports={carpet:{valType:\\\"string\\\",editType:\\\"calc\\\"},a:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},b:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},mode:s({},n.mode,{dflt:\\\"markers\\\"}),text:s({},n.text,{}),line:{color:c.color,width:c.width,dash:c.dash,shape:s({},c.shape,{values:[\\\"linear\\\",\\\"spline\\\"]}),smoothing:c.smoothing,editType:\\\"calc\\\"},connectgaps:n.connectgaps,fill:s({},n.fill,{values:[\\\"none\\\",\\\"toself\\\",\\\"tonext\\\"],dflt:\\\"none\\\"}),fillcolor:n.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:u.width,editType:\\\"calc\\\"},a(\\\"marker.line\\\")),gradient:l.gradient,editType:\\\"calc\\\"},a(\\\"marker\\\"),{colorbar:o}),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:s({},i.hoverinfo,{flags:[\\\"a\\\",\\\"b\\\",\\\"text\\\",\\\"name\\\"]}),hoveron:n.hoveron}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1077:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../scatter/colorscale_calc\\\"),a=t(\\\"../scatter/arrays_to_calcdata\\\"),o=t(\\\"../scatter/calc_selection\\\"),s=t(\\\"../scatter/calc\\\").calcMarkerSize,l=t(\\\"../carpet/lookup_carpetid\\\");e.exports=function(t,e){var r=e._carpetTrace=l(t,e);if(r&&r.visible&&\\\"legendonly\\\"!==r.visible){var c;e.xaxis=r.xaxis,e.yaxis=r.yaxis;var u,f,h=e._length,p=new Array(h),d=!1;for(c=0;c<h;c++)if(u=e.a[c],f=e.b[c],n(u)&&n(f)){var g=r.ab2xy(+u,+f,!0),v=r.isVisible(+u,+f);v||(d=!0),p[c]={x:g[0],y:g[1],a:u,b:f,vis:v}}else p[c]={x:!1,y:!1};return e._needsCull=d,p[0].carpet=r,p[0].trace=e,s(e,h),i(e),a(p,e),o(p,e),p}}},{\\\"../carpet/lookup_carpetid\\\":894,\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc\\\":1044,\\\"../scatter/calc_selection\\\":1045,\\\"../scatter/colorscale_calc\\\":1046,\\\"fast-isnumeric\\\":214}],1078:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/constants\\\"),a=t(\\\"../scatter/subtypes\\\"),o=t(\\\"../scatter/marker_defaults\\\"),s=t(\\\"../scatter/line_defaults\\\"),l=t(\\\"../scatter/line_shape_defaults\\\"),c=t(\\\"../scatter/text_defaults\\\"),u=t(\\\"../scatter/fillcolor_defaults\\\"),f=t(\\\"./attributes\\\");e.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}p(\\\"carpet\\\"),e.xaxis=\\\"x\\\",e.yaxis=\\\"y\\\";var d=p(\\\"a\\\"),g=p(\\\"b\\\"),v=Math.min(d.length,g.length);if(v){e._length=v,p(\\\"text\\\"),p(\\\"mode\\\",v<i.PTS_LINESONLY?\\\"lines+markers\\\":\\\"lines\\\"),a.hasLines(e)&&(s(t,e,r,h,p),l(t,e,p),p(\\\"connectgaps\\\")),a.hasMarkers(e)&&o(t,e,r,h,p,{gradient:!0}),a.hasText(e)&&c(t,e,h,p);var m=[];(a.hasMarkers(e)||a.hasText(e))&&(p(\\\"marker.maxdisplayed\\\"),m.push(\\\"points\\\")),p(\\\"fill\\\"),\\\"none\\\"!==e.fill&&(u(t,e,r,p),a.hasLines(e)||l(t,e,p)),\\\"tonext\\\"!==e.fill&&\\\"toself\\\"!==e.fill||m.push(\\\"fills\\\"),p(\\\"hoveron\\\",m.join(\\\"+\\\")||\\\"points\\\"),n.coerceSelectionMarkerOpacity(e,p)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/line_shape_defaults\\\":1058,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1076}],1079:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){var a=n[i];return t.a=a.a,t.b=a.b,t}},{}],1080:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/hover\\\");e.exports=function(t,e,r,i){var a=n(t,e,r,i);if(a&&!1!==a[0].index){var o=a[0];if(void 0===o.index){var s=1-o.y0/t.ya._length,l=t.xa._length,c=l*s/2,u=l-c;return o.x0=Math.max(Math.min(o.x0,u),c),o.x1=Math.max(Math.min(o.x1,u),c),a}var f=o.cd[o.index];o.a=f.a,o.b=f.b,o.xLabelVal=void 0,o.yLabelVal=void 0;var h=o.trace,p=h._carpet,d=(f.hi||h.hoverinfo).split(\\\"+\\\"),g=[];-1!==d.indexOf(\\\"all\\\")&&(d=[\\\"a\\\",\\\"b\\\"]),-1!==d.indexOf(\\\"a\\\")&&w(p.aaxis,f.a),-1!==d.indexOf(\\\"b\\\")&&w(p.baxis,f.b);var v=p.ab2ij([f.a,f.b]),m=Math.floor(v[0]),y=v[0]-m,x=Math.floor(v[1]),b=v[1]-x,_=p.evalxy([],m,x,y,b);return g.push(\\\"y: \\\"+_[1].toFixed(3)),o.extraText=g.join(\\\"<br>\\\"),a}function w(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,\\\"\\\"):t._hovertitle,g.push(r+\\\": \\\"+e.toFixed(3)+t.labelsuffix)}}},{\\\"../scatter/hover\\\":1054}],1081:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"../scatter/style\\\").style,n.styleOnSelect=t(\\\"../scatter/style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.selectPoints=t(\\\"../scatter/select\\\"),n.eventData=t(\\\"./event_data\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"scattercarpet\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"svg\\\",\\\"carpet\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"carpetDependent\\\",\\\"zoomScale\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/select\\\":1064,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1076,\\\"./calc\\\":1077,\\\"./defaults\\\":1078,\\\"./event_data\\\":1079,\\\"./hover\\\":1080,\\\"./plot\\\":1082}],1082:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/plot\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../components/drawing\\\");e.exports=function(t,e,r,o){var s,l,c,u=r[0][0].carpet,f={xaxis:i.getFromId(t,u.xaxis||\\\"x\\\"),yaxis:i.getFromId(t,u.yaxis||\\\"y\\\"),plot:e.plot};for(n(t,f,r,o),s=0;s<r.length;s++)l=r[s][0].trace,c=o.selectAll(\\\"g.trace\\\"+l.uid+\\\" .js-line\\\"),a.setClipUrl(c,u._clipPathId)}},{\\\"../../components/drawing\\\":595,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/plot\\\":1063}],1083:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/drawing/attributes\\\").dash,s=t(\\\"../../lib/extend\\\").extendFlat,l=t(\\\"../../plot_api/edit_types\\\").overrideAll,c=n.marker,u=n.line,f=c.line;e.exports=l({lon:{valType:\\\"data_array\\\"},lat:{valType:\\\"data_array\\\"},locations:{valType:\\\"data_array\\\"},locationmode:{valType:\\\"enumerated\\\",values:[\\\"ISO-3\\\",\\\"USA-states\\\",\\\"country names\\\"],dflt:\\\"ISO-3\\\"},mode:s({},n.mode,{dflt:\\\"markers\\\"}),text:s({},n.text,{}),hovertext:s({},n.hovertext,{}),textfont:n.textfont,textposition:n.textposition,line:{color:u.color,width:u.width,dash:o},connectgaps:n.connectgaps,marker:s({symbol:c.symbol,opacity:c.opacity,size:c.size,sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,colorbar:c.colorbar,line:s({width:f.width},a(\\\"marker.line\\\")),gradient:c.gradient},a(\\\"marker\\\")),fill:{valType:\\\"enumerated\\\",values:[\\\"none\\\",\\\"toself\\\"],dflt:\\\"none\\\"},fillcolor:n.fillcolor,selected:n.selected,unselected:n.unselected,hoverinfo:s({},i.hoverinfo,{flags:[\\\"lon\\\",\\\"lat\\\",\\\"location\\\",\\\"text\\\",\\\"name\\\"]})},\\\"calc\\\",\\\"nested\\\")},{\\\"../../components/colorscale/attributes\\\":577,\\\"../../components/drawing/attributes\\\":594,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1084:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM,a=t(\\\"../scatter/colorscale_calc\\\"),o=t(\\\"../scatter/arrays_to_calcdata\\\"),s=t(\\\"../scatter/calc_selection\\\"),l=t(\\\"../../lib\\\")._;e.exports=function(t,e){for(var r=Array.isArray(e.locations),c=r?e.locations.length:e._length,u=new Array(c),f=0;f<c;f++){var h=u[f]={};if(r){var p=e.locations[f];h.loc=\\\"string\\\"==typeof p?p:null}else{var d=e.lon[f],g=e.lat[f];n(d)&&n(g)?h.lonlat=[+d,+g]:h.lonlat=[i,i]}}return o(u,e),a(e),s(u,e),c&&(u[0].t={labels:{lat:l(t,\\\"lat:\\\")+\\\" \\\",lon:l(t,\\\"lon:\\\")+\\\" \\\"}}),u}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc_selection\\\":1045,\\\"../scatter/colorscale_calc\\\":1046,\\\"fast-isnumeric\\\":214}],1085:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../scatter/marker_defaults\\\"),o=t(\\\"../scatter/line_defaults\\\"),s=t(\\\"../scatter/text_defaults\\\"),l=t(\\\"../scatter/fillcolor_defaults\\\"),c=t(\\\"./attributes\\\");e.exports=function(t,e,r,u){function f(r,i){return n.coerce(t,e,c,r,i)}!function(t,e,r){var n,i,a=0,o=r(\\\"locations\\\");if(o)return r(\\\"locationmode\\\"),a=o.length;return n=r(\\\"lon\\\")||[],i=r(\\\"lat\\\")||[],a=Math.min(n.length,i.length),e._length=a,a}(0,e,f)?e.visible=!1:(f(\\\"text\\\"),f(\\\"hovertext\\\"),f(\\\"mode\\\"),i.hasLines(e)&&(o(t,e,r,u,f),f(\\\"connectgaps\\\")),i.hasMarkers(e)&&a(t,e,r,u,f,{gradient:!0}),i.hasText(e)&&s(t,e,u,f),f(\\\"fill\\\"),\\\"none\\\"!==e.fill&&l(t,e,r,f),n.coerceSelectionMarkerOpacity(e,f))}},{\\\"../../lib\\\":696,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1083}],1086:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.location=e.loc?e.loc:null,t}},{}],1087:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM,o=t(\\\"../scatter/get_trace_color\\\"),s=t(\\\"../scatter/fill_hover_text\\\"),l=t(\\\"./attributes\\\");e.exports=function(t,e,r){var c=t.cd,u=c[0].trace,f=t.xa,h=t.ya,p=t.subplot,d=p.projection.isLonLatOverEdges,g=p.project;if(n.getClosest(c,function(t){var n=t.lonlat;if(n[0]===a)return 1/0;if(d(n))return 1/0;var i=g(n),o=g([e,r]),s=Math.abs(i[0]-o[0]),l=Math.abs(i[1]-o[1]),c=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(s*s+l*l)-c,1-3/c)},t),!1!==t.index){var v=c[t.index],m=v.lonlat,y=[f.c2p(m),h.c2p(m)],x=v.mrc||1;return t.x0=y[0]-x,t.x1=y[0]+x,t.y0=y[1]-x,t.y1=y[1]+x,t.loc=v.loc,t.lon=m[0],t.lat=m[1],t.color=o(u,v),t.extraText=function(t,e,r,n){var a=e.hi||t.hoverinfo,o=\\\"all\\\"===a?l.hoverinfo.flags:a.split(\\\"+\\\"),c=-1!==o.indexOf(\\\"location\\\")&&Array.isArray(t.locations),u=-1!==o.indexOf(\\\"lon\\\"),f=-1!==o.indexOf(\\\"lat\\\"),h=-1!==o.indexOf(\\\"text\\\"),p=[];function d(t){return i.tickText(r,r.c2l(t),\\\"hover\\\").text+\\\"\\\\xb0\\\"}c?p.push(e.loc):u&&f?p.push(\\\"(\\\"+d(e.lonlat[0])+\\\", \\\"+d(e.lonlat[1])+\\\")\\\"):u?p.push(n.lon+d(e.lonlat[0])):f&&p.push(n.lat+d(e.lonlat[1]));h&&s(e,t,p);return p.join(\\\"<br>\\\")}(u,v,p.mockAxis,c[0].t.labels),[t]}}},{\\\"../../components/fx\\\":612,\\\"../../constants/numerical\\\":673,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/fill_hover_text\\\":1051,\\\"../scatter/get_trace_color\\\":1053,\\\"./attributes\\\":1083}],1088:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"./style\\\"),n.styleOnSelect=t(\\\"../scatter/style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.eventData=t(\\\"./event_data\\\"),n.selectPoints=t(\\\"./select\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"scattergeo\\\",n.basePlotModule=t(\\\"../../plots/geo\\\"),n.categories=[\\\"geo\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],n.meta={},e.exports=n},{\\\"../../plots/geo\\\":775,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1083,\\\"./calc\\\":1084,\\\"./defaults\\\":1085,\\\"./event_data\\\":1086,\\\"./hover\\\":1087,\\\"./plot\\\":1089,\\\"./select\\\":1090,\\\"./style\\\":1091}],1089:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM,o=t(\\\"../../lib/topojson_utils\\\").getTopojsonFeatures,s=t(\\\"../../lib/geo_location_utils\\\").locationToFeature,l=t(\\\"../../lib/geojson_utils\\\"),c=t(\\\"../scatter/subtypes\\\"),u=t(\\\"./style\\\");function f(t,e){var r=t[0].trace;if(Array.isArray(r.locations))for(var n=o(r,e),i=r.locationmode,l=0;l<t.length;l++){var c=t[l],u=s(i,c.loc,n);c.lonlat=u?u.properties.ct:[a,a]}}e.exports=function(t,e,r){for(var o=0;o<r.length;o++)f(r[o],e.topojson);function s(t,e){t.lonlat[0]===a&&n.select(e).remove()}var h=e.layers.frontplot.select(\\\".scatterlayer\\\"),p=i.makeTraceGroups(h,r,\\\"trace scattergeo\\\");p.selectAll(\\\"*\\\").remove(),p.each(function(e){var r=e[0].node3=n.select(this),a=e[0].trace;if(c.hasLines(a)||\\\"none\\\"!==a.fill){var o=l.calcTraceToLineCoords(e),f=\\\"none\\\"!==a.fill?l.makePolygon(o):l.makeLine(o);r.selectAll(\\\"path.js-line\\\").data([{geojson:f,trace:a}]).enter().append(\\\"path\\\").classed(\\\"js-line\\\",!0).style(\\\"stroke-miterlimit\\\",2)}c.hasMarkers(a)&&r.selectAll(\\\"path.point\\\").data(i.identity).enter().append(\\\"path\\\").classed(\\\"point\\\",!0).each(function(t){s(t,this)}),c.hasText(a)&&r.selectAll(\\\"g\\\").data(i.identity).enter().append(\\\"g\\\").append(\\\"text\\\").each(function(t){s(t,this)}),u(t,e)})}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../lib/geo_location_utils\\\":688,\\\"../../lib/geojson_utils\\\":689,\\\"../../lib/topojson_utils\\\":723,\\\"../scatter/subtypes\\\":1067,\\\"./style\\\":1091,d3:148}],1090:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/subtypes\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e){var r,a,o,s,l,c=t.cd,u=t.xaxis,f=t.yaxis,h=[],p=c[0].trace;if(!n.hasMarkers(p)&&!n.hasText(p))return[];if(!1===e)for(l=0;l<c.length;l++)c[l].selected=0;else for(l=0;l<c.length;l++)(a=(r=c[l]).lonlat)[0]!==i&&(o=u.c2p(a),s=f.c2p(a),e.contains([o,s],null,l,t)?(h.push({pointNumber:l,lon:a[0],lat:a[1]}),r.selected=1):r.selected=0);return h}},{\\\"../../constants/numerical\\\":673,\\\"../scatter/subtypes\\\":1067}],1091:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../scatter/style\\\"),s=o.stylePoints,l=o.styleText;e.exports=function(t,e){e&&function(t,e){var r=e[0].trace,o=e[0].node3;o.style(\\\"opacity\\\",e[0].trace.opacity),s(o,r,t),l(o,r,t),o.selectAll(\\\"path.js-line\\\").style(\\\"fill\\\",\\\"none\\\").each(function(t){var e=n.select(this),r=t.trace,o=r.line||{};e.call(a.stroke,o.color).call(i.dashLine,o.dash||\\\"\\\",o.width||0),\\\"none\\\"!==r.fill&&e.call(a.fill,r.fillcolor)})}(t,e)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../scatter/style\\\":1066,d3:148}],1092:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/attributes\\\"),i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../lib/extend\\\").extendFlat,s=t(\\\"../../plot_api/edit_types\\\").overrideAll,l=t(\\\"./constants\\\").DASHES,c=i.line,u=i.marker,f=u.line,h=e.exports=s({x:i.x,x0:i.x0,dx:i.dx,y:i.y,y0:i.y0,dy:i.dy,text:i.text,hovertext:i.hovertext,textposition:i.textposition,textfont:i.textfont,mode:{valType:\\\"flaglist\\\",flags:[\\\"lines\\\",\\\"markers\\\",\\\"text\\\"],extras:[\\\"none\\\"]},line:{color:c.color,width:c.width,shape:{valType:\\\"enumerated\\\",values:[\\\"linear\\\",\\\"hv\\\",\\\"vh\\\",\\\"hvh\\\",\\\"vhv\\\"],dflt:\\\"linear\\\",editType:\\\"plot\\\"},dash:{valType:\\\"enumerated\\\",values:Object.keys(l),dflt:\\\"solid\\\"}},marker:o({},a(\\\"marker\\\"),{symbol:u.symbol,size:u.size,sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,opacity:u.opacity,colorbar:u.colorbar,line:o({},a(\\\"marker.line\\\"),{width:f.width})}),connectgaps:i.connectgaps,fill:o({},i.fill,{dflt:\\\"none\\\"}),fillcolor:i.fillcolor,selected:{marker:i.selected.marker,textfont:i.selected.textfont},unselected:{marker:i.unselected.marker,textfont:i.unselected.textfont},opacity:n.opacity},\\\"calc\\\",\\\"nested\\\");h.x.editType=h.y.editType=h.x0.editType=h.y0.editType=\\\"calc+clearAxisTypes\\\"},{\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043,\\\"./constants\\\":1093}],1093:[function(t,e,r){\\\"use strict\\\";e.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]}}},{}],1094:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"svg-path-sdf\\\"),a=t(\\\"color-normalize\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../components/drawing\\\"),c=t(\\\"../../plots/cartesian/axis_ids\\\"),u=t(\\\"../../lib/gl_format_color\\\").formatColor,f=t(\\\"../scatter/subtypes\\\"),h=t(\\\"../scatter/make_bubble_size_func\\\"),p=t(\\\"./constants\\\"),d=t(\\\"../../constants/interactions\\\").DESELECTDIM,g={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1};function v(t){var e,r=t._length,i=t.textfont,a=t.textposition,o=Array.isArray(a)?a:[a],s=i.color,l=i.size,c=i.family,u={};for(u.text=t.text,u.opacity=t.opacity,u.font={},u.align=[],u.baseline=[],e=0;e<o.length;e++){var f=o[e].split(/\\\\s+/);switch(f[1]){case\\\"left\\\":u.align.push(\\\"right\\\");break;case\\\"right\\\":u.align.push(\\\"left\\\");break;default:u.align.push(f[1])}switch(f[0]){case\\\"top\\\":u.baseline.push(\\\"bottom\\\");break;case\\\"bottom\\\":u.baseline.push(\\\"top\\\");break;default:u.baseline.push(f[0])}}if(Array.isArray(s))for(u.color=new Array(r),e=0;e<r;e++)u.color[e]=s[e];else u.color=s;if(Array.isArray(l)||Array.isArray(c))for(u.font=new Array(r),e=0;e<r;e++){var h=u.font[e]={};h.size=Array.isArray(l)?n(l[e])?l[e]:0:l,h.family=Array.isArray(c)?c[e]:c}else u.font={size:l,family:c};return u}function m(t){var e,r,n=t._length,i=t.marker,o={},l=Array.isArray(i.symbol),c=s.isArrayOrTypedArray(i.color),f=s.isArrayOrTypedArray(i.line.color),d=s.isArrayOrTypedArray(i.opacity),g=s.isArrayOrTypedArray(i.size),v=s.isArrayOrTypedArray(i.line.width);if(l||(r=p.OPEN_RE.test(i.symbol)),l||c||f||d){o.colors=new Array(n),o.borderColors=new Array(n);var m=u(i,i.opacity,n),y=u(i.line,i.opacity,n);if(!Array.isArray(y[0])){var x=y;for(y=Array(n),e=0;e<n;e++)y[e]=x}if(!Array.isArray(m[0])){var b=m;for(m=Array(n),e=0;e<n;e++)m[e]=b}for(o.colors=m,o.borderColors=y,e=0;e<n;e++){if(l){var _=i.symbol[e];r=p.OPEN_RE.test(_)}r&&(y[e]=m[e].slice(),m[e]=m[e].slice(),m[e][3]=0)}o.opacity=t.opacity}else r?(o.color=a(i.color,\\\"uint8\\\"),o.color[3]=0,o.borderColor=a(i.color,\\\"uint8\\\")):(o.color=a(i.color,\\\"uint8\\\"),o.borderColor=a(i.line.color,\\\"uint8\\\")),o.opacity=t.opacity*i.opacity;if(l)for(o.markers=new Array(n),e=0;e<n;e++)o.markers[e]=T(i.symbol[e]);else o.marker=T(i.symbol);var w,k=h(t);if(g||v){var M,A=o.sizes=new Array(n),S=o.borderSizes=new Array(n),E=0;if(g){for(e=0;e<n;e++)A[e]=k(i.size[e]),E+=A[e];M=E/n}else for(w=k(i.size),e=0;e<n;e++)A[e]=w;if(v)for(e=0;e<n;e++)S[e]=i.line.width[e]/2;else for(w=i.line.width/2,e=0;e<n;e++)S[e]=w;o.sizeAvg=M}else o.size=k(i&&i.size||10),o.borderSizes=k(i.line.width);return o}function y(t,e){var r=t.marker,n={};return e?(e.marker&&e.marker.symbol?n=m(s.extendFlat({},r,e.marker)):e.marker&&(e.marker.size&&(n.size=e.marker.size/2),e.marker.color&&(n.colors=e.marker.color),void 0!==e.marker.opacity&&(n.opacity=e.marker.opacity)),n):n}function x(t,e){var r={};if(!e)return r;if(e.textfont){var n={opacity:1,text:t.text,textposition:t.textposition,textfont:s.extendFlat({},t.textfont)};e.textfont&&s.extendFlat(n.textfont,e.textfont),r=v(n)}return r}function b(t,e){var r={capSize:2*e.width,lineWidth:e.thickness,color:e.color};return e.copy_ystyle&&(r=t.error_y),r}var _=p.SYMBOL_SDF_SIZE,w=p.SYMBOL_SIZE,k=p.SYMBOL_STROKE,M={},A=l.symbolFuncs[0](.05*w);function T(t){if(\\\"circle\\\"===t)return null;var e,r,n=l.symbolNumber(t),a=l.symbolFuncs[n%100],o=!!l.symbolNoDot[n%100],s=!!l.symbolNoFill[n%100],c=p.DOT_RE.test(t);return M[t]?M[t]:(e=c&&!o?a(1.1*w)+A:a(w),r=i(e,{w:_,h:_,viewBox:[-w,-w,w,w],stroke:s?k:-k}),M[t]=r,r||null)}e.exports={style:function(t,e){var r,n={marker:void 0,markerSel:void 0,markerUnsel:void 0,line:void 0,fill:void 0,errorX:void 0,errorY:void 0,text:void 0,textSel:void 0,textUnsel:void 0};if(!0!==e.visible)return n;if(f.hasText(e)&&(n.text=v(e),n.textSel=x(e,e.selected),n.textUnsel=x(e,e.unselected)),f.hasMarkers(e)&&(n.marker=m(e),n.markerSel=y(e,e.selected),n.markerUnsel=y(e,e.unselected),!e.unselected&&Array.isArray(e.marker.opacity))){var i=e.marker.opacity;for(n.markerUnsel.opacity=new Array(i.length),r=0;r<i.length;r++)n.markerUnsel.opacity[r]=d*i[r]}if(f.hasLines(e)){n.line={overlay:!0,thickness:e.line.width,color:e.line.color,opacity:e.opacity};var a=(p.DASHES[e.line.dash]||[1]).slice();for(r=0;r<a.length;++r)a[r]*=e.line.width;n.line.dashes=a}return e.error_x&&e.error_x.visible&&(n.errorX=b(e,e.error_x)),e.error_y&&e.error_y.visible&&(n.errorY=b(e,e.error_y)),e.fill&&\\\"none\\\"!==e.fill&&(n.fill={closed:!0,fill:e.fillcolor,thickness:0}),n},markerStyle:m,markerSelection:y,linePositions:function(t,e,r){var n,i,a=r.length,o=a/2;if(f.hasLines(e)&&o)if(\\\"hv\\\"===e.line.shape){for(n=[],i=0;i<o-1;i++)isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN,NaN,NaN):(n.push(r[2*i],r[2*i+1]),isNaN(r[2*i+2])||isNaN(r[2*i+3])?n.push(NaN,NaN):n.push(r[2*i+2],r[2*i+1]));n.push(r[a-2],r[a-1])}else if(\\\"hvh\\\"===e.line.shape){for(n=[],i=0;i<o-1;i++)if(isNaN(r[2*i])||isNaN(r[2*i+1])||isNaN(r[2*i+2])||isNaN(r[2*i+3]))isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+1]),n.push(NaN,NaN);else{var s=(r[2*i]+r[2*i+2])/2;n.push(r[2*i],r[2*i+1],s,r[2*i+1],s,r[2*i+3])}n.push(r[a-2],r[a-1])}else if(\\\"vhv\\\"===e.line.shape){for(n=[],i=0;i<o-1;i++)if(isNaN(r[2*i])||isNaN(r[2*i+1])||isNaN(r[2*i+2])||isNaN(r[2*i+3]))isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+1]),n.push(NaN,NaN);else{var l=(r[2*i+1]+r[2*i+3])/2;n.push(r[2*i],r[2*i+1],r[2*i],l,r[2*i+2],l)}n.push(r[a-2],r[a-1])}else if(\\\"vh\\\"===e.line.shape){for(n=[],i=0;i<o-1;i++)isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN,NaN,NaN):(n.push(r[2*i],r[2*i+1]),isNaN(r[2*i+2])||isNaN(r[2*i+3])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+3]));n.push(r[a-2],r[a-1])}else n=r;var c=!1;for(i=0;i<n.length;i++)if(isNaN(n[i])){c=!0;break}var u=c||n.length>p.TOO_MANY_POINTS?\\\"rect\\\":f.hasMarkers(e)?\\\"rect\\\":\\\"round\\\";if(c&&e.connectgaps){var h=n[0],d=n[1];for(i=0;i<n.length;i+=2)isNaN(n[i])||isNaN(n[i+1])?(n[i]=h,n[i+1]=d):(h=n[i],d=n[i+1])}return{join:u,positions:n}},errorBarPositions:function(t,e,r,i,a){var s=o.getComponentMethod(\\\"errorbars\\\",\\\"makeComputeError\\\"),l=c.getFromId(t,e.xaxis),u=c.getFromId(t,e.yaxis),f=r.length/2,h={};function p(t,i){var a=i._id.charAt(0),o=e[\\\"error_\\\"+a];if(o&&o.visible&&(\\\"linear\\\"===i.type||\\\"log\\\"===i.type)){for(var l=s(o),c={x:0,y:1}[a],u={x:[0,1,2,3],y:[2,3,0,1]}[a],p=new Float64Array(4*f),d=1/0,g=-1/0,v=0,m=0;v<f;v++,m+=4){var y=t[v];if(n(y)){var x=r[2*v+c],b=l(y,v),_=b[0],w=b[1];if(n(_)&&n(w)){var k=y-_,M=y+w;p[m+u[0]]=x-i.c2l(k),p[m+u[1]]=i.c2l(M)-x,p[m+u[2]]=0,p[m+u[3]]=0,d=Math.min(d,y-_),g=Math.max(g,y+w)}}}h[a]={positions:r,errors:p,_bnds:[d,g]}}}return p(i,l),p(a,u),h},textPosition:function(t,e,r,n){var i,a=e._length,o={};if(f.hasMarkers(e)){var s=r.font,l=r.align,c=r.baseline;for(o.offset=new Array(a),i=0;i<a;i++){var u=n.sizes?n.sizes[i]:n.size,h=Array.isArray(s)?s[i].size:s.size,p=Array.isArray(l)?l.length>1?l[i]:l[0]:l,d=Array.isArray(c)?c.length>1?c[i]:c[0]:c,v=g[p],m=g[d],y=u?u/.8+1:0,x=-m*y-.5*m;o.offset[i]=[v*y/h,x/h]}}return o}}},{\\\"../../components/drawing\\\":595,\\\"../../constants/interactions\\\":672,\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../registry\\\":827,\\\"../scatter/make_bubble_size_func\\\":1060,\\\"../scatter/subtypes\\\":1067,\\\"./constants\\\":1093,\\\"color-normalize\\\":108,\\\"fast-isnumeric\\\":214,\\\"svg-path-sdf\\\":512}],1095:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"../scatter/constants\\\"),s=t(\\\"../scatter/subtypes\\\"),l=t(\\\"../scatter/xy_defaults\\\"),c=t(\\\"../scatter/marker_defaults\\\"),u=t(\\\"../scatter/line_defaults\\\"),f=t(\\\"../scatter/fillcolor_defaults\\\"),h=t(\\\"../scatter/text_defaults\\\");e.exports=function(t,e,r,p){function d(r,i){return n.coerce(t,e,a,r,i)}var g=!!t.marker&&/-open/.test(t.marker.symbol),v=s.isBubble(t),m=l(t,e,p,d);if(m){var y=m<o.PTS_LINESONLY?\\\"lines+markers\\\":\\\"lines\\\";d(\\\"text\\\"),d(\\\"hovertext\\\"),d(\\\"mode\\\",y),s.hasLines(e)&&(d(\\\"connectgaps\\\"),u(t,e,r,p,d),d(\\\"line.shape\\\")),s.hasMarkers(e)&&(c(t,e,r,p,d),d(\\\"marker.line.width\\\",g||v?1:0)),s.hasText(e)&&h(t,e,p,d),d(\\\"fill\\\"),\\\"none\\\"!==e.fill&&f(t,e,r,d);var x=i.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");x(t,e,r,{axis:\\\"y\\\"}),x(t,e,r,{axis:\\\"x\\\",inherit:\\\"y\\\"}),n.coerceSelectionMarkerOpacity(e,d)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"../scatter/xy_defaults\\\":1069,\\\"./attributes\\\":1092}],1096:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"regl-scatter2d\\\"),i=t(\\\"regl-line2d\\\"),a=t(\\\"regl-error2d\\\"),o=t(\\\"point-cluster\\\"),s=t(\\\"array-range\\\"),l=t(\\\"gl-text\\\"),c=t(\\\"../../registry\\\"),u=t(\\\"../../lib\\\"),f=t(\\\"../../lib/prepare_regl\\\"),h=t(\\\"../../plots/cartesian/axis_ids\\\"),p=t(\\\"../../plots/cartesian/autorange\\\").findExtremes,d=t(\\\"../../components/color\\\"),g=t(\\\"../scatter/subtypes\\\"),v=t(\\\"../scatter/calc\\\"),m=v.calcMarkerSize,y=v.calcAxisExpansion,x=v.setFirstScatter,b=t(\\\"../scatter/colorscale_calc\\\"),_=t(\\\"../scatter/link_traces\\\"),w=t(\\\"../scatter/get_trace_color\\\"),k=t(\\\"../scatter/fill_hover_text\\\"),M=t(\\\"./convert\\\"),A=t(\\\"../../constants/numerical\\\").BADNUM,T=t(\\\"./constants\\\").TOO_MANY_POINTS,S=t(\\\"../../constants/interactions\\\").DESELECTDIM;function E(t,e,r){var n=t._extremes[e._id],i=p(e,r._bnds,{padded:!0});n.min=n.min.concat(i.min),n.max=n.max.concat(i.max)}function C(t,e){var r=e._scene,n={count:0,dirty:!0,lineOptions:[],fillOptions:[],markerOptions:[],markerSelectedOptions:[],markerUnselectedOptions:[],errorXOptions:[],errorYOptions:[],textOptions:[],textSelectedOptions:[],textUnselectedOptions:[]},i={selectBatch:null,unselectBatch:null,fill2d:!1,scatter2d:!1,error2d:!1,line2d:!1,glText:!1,select2d:null};return e._scene||((r=e._scene={}).init=function(){u.extendFlat(r,i,n)},r.init(),r.update=function(t){var e=u.repeat(t,r.count);if(r.fill2d&&r.fill2d.update(e),r.scatter2d&&r.scatter2d.update(e),r.line2d&&r.line2d.update(e),r.error2d&&r.error2d.update(e.concat(e)),r.select2d&&r.select2d.update(e),r.glText)for(var n=0;n<r.count;n++)r.glText[n].update(t)},r.draw=function(){for(var t=r.count,e=r.fill2d,n=r.error2d,i=r.line2d,a=r.scatter2d,o=r.glText,s=r.select2d,l=r.selectBatch,c=r.unselectBatch,u=0;u<t;u++)e&&r.fillOrder[u]&&e.draw(r.fillOrder[u]),i&&r.lineOptions[u]&&i.draw(u),n&&(r.errorXOptions[u]&&n.draw(u),r.errorYOptions[u]&&n.draw(u+t)),!a||!r.markerOptions[u]||l&&l[u]||a.draw(u),o[u]&&r.textOptions[u]&&o[u].render();a&&s&&l&&(s.draw(l),a.draw(c)),r.dirty=!1},r.destroy=function(){r.fill2d&&r.fill2d.destroy&&r.fill2d.destroy(),r.scatter2d&&r.scatter2d.destroy&&r.scatter2d.destroy(),r.error2d&&r.error2d.destroy&&r.error2d.destroy(),r.line2d&&r.line2d.destroy&&r.line2d.destroy(),r.select2d&&r.select2d.destroy&&r.select2d.destroy(),r.glText&&r.glText.forEach(function(t){t.destroy&&t.destroy()}),r.lineOptions=null,r.fillOptions=null,r.markerOptions=null,r.markerSelectedOptions=null,r.markerUnselectedOptions=null,r.errorXOptions=null,r.errorYOptions=null,r.textOptions=null,r.textSelectedOptions=null,r.textUnselectedOptions=null,r.selectBatch=null,r.unselectBatch=null,e._scene=null}),r.dirty||u.extendFlat(r,n),r}function L(t,e,r,n){var i=t.xa,a=t.ya,o=t.distance,s=t.dxy,l=t.index,f={pointNumber:l,x:e[l],y:r[l]};f.tx=Array.isArray(n.text)?n.text[l]:n.text,f.htx=Array.isArray(n.hovertext)?n.hovertext[l]:n.hovertext,f.data=Array.isArray(n.customdata)?n.customdata[l]:n.customdata,f.tp=Array.isArray(n.textposition)?n.textposition[l]:n.textposition;var h=n.textfont;h&&(f.ts=Array.isArray(h.size)?h.size[l]:h.size,f.tc=Array.isArray(h.color)?h.color[l]:h.color,f.tf=Array.isArray(h.family)?h.family[l]:h.family);var p=n.marker;p&&(f.ms=u.isArrayOrTypedArray(p.size)?p.size[l]:p.size,f.mo=u.isArrayOrTypedArray(p.opacity)?p.opacity[l]:p.opacity,f.mx=Array.isArray(p.symbol)?p.symbol[l]:p.symbol,f.mc=u.isArrayOrTypedArray(p.color)?p.color[l]:p.color);var d=p&&p.line;d&&(f.mlc=Array.isArray(d.color)?d.color[l]:d.color,f.mlw=u.isArrayOrTypedArray(d.width)?d.width[l]:d.width);var g=p&&p.gradient;g&&\\\"none\\\"!==g.type&&(f.mgt=Array.isArray(g.type)?g.type[l]:g.type,f.mgc=Array.isArray(g.color)?g.color[l]:g.color);var v=i.c2p(f.x,!0),m=a.c2p(f.y,!0),y=f.mrc||1,x=n.hoverlabel;x&&(f.hbg=Array.isArray(x.bgcolor)?x.bgcolor[l]:x.bgcolor,f.hbc=Array.isArray(x.bordercolor)?x.bordercolor[l]:x.bordercolor,f.hts=Array.isArray(x.font.size)?x.font.size[l]:x.font.size,f.htc=Array.isArray(x.font.color)?x.font.color[l]:x.font.color,f.htf=Array.isArray(x.font.family)?x.font.family[l]:x.font.family,f.hnl=Array.isArray(x.namelength)?x.namelength[l]:x.namelength);var b=n.hoverinfo;b&&(f.hi=Array.isArray(b)?b[l]:b);var _={};return _[t.index]=f,u.extendFlat(t,{color:w(n,f),x0:v-y,x1:v+y,xLabelVal:f.x,y0:m-y,y1:m+y,yLabelVal:f.y,cd:_,distance:o,spikeDistance:s}),f.htx?t.text=f.htx:f.tx?t.text=f.tx:n.text&&(t.text=n.text),k(f,n,t),c.getComponentMethod(\\\"errorbars\\\",\\\"hoverInfo\\\")(f,n,t),t}function z(t){var e,r,n=t[0],i=n.trace,a=n.t,o=a._scene,s=a.index,l=o.selectBatch[s],c=o.unselectBatch[s],f=o.textOptions[s],h=o.textSelectedOptions[s]||{},p=o.textUnselectedOptions[s]||{},g=u.extendFlat({},f);if(l&&c){var v=h.color,m=p.color,y=f.color,x=Array.isArray(y);for(g.color=new Array(i._length),e=0;e<l.length;e++)r=l[e],g.color[r]=v||(x?y[r]:y);for(e=0;e<c.length;e++){r=c[e];var b=x?y[r]:y;g.color[r]=m||(v?b:d.addOpacity(b,S))}}o.glText[s].update(g)}e.exports={moduleType:\\\"trace\\\",name:\\\"scattergl\\\",basePlotModule:t(\\\"../../plots/cartesian\\\"),categories:[\\\"gl\\\",\\\"regl\\\",\\\"cartesian\\\",\\\"symbols\\\",\\\"errorBarsOK\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),crossTraceDefaults:t(\\\"../scatter/cross_trace_defaults\\\"),colorbar:t(\\\"../scatter/marker_colorbar\\\"),calc:function(t,e){var r,n,i,a=t._fullLayout,s=h.getFromId(t,e.xaxis),l=h.getFromId(t,e.yaxis),c=a._plots[e.xaxis+e.yaxis],f=e._length,p=2*f,d={},g=s.makeCalcdata(e,\\\"x\\\"),v=l.makeCalcdata(e,\\\"y\\\"),_=new Array(p);for(r=0;r<f;r++)n=g[r],i=v[r],_[2*r]=n===A?NaN:n,_[2*r+1]=i===A?NaN:i;if(\\\"log\\\"===s.type)for(r=0;r<p;r+=2)_[r]=s.c2l(_[r]);if(\\\"log\\\"===l.type)for(r=1;r<p;r+=2)_[r]=l.c2l(_[r]);if(\\\"log\\\"!==s.type&&\\\"log\\\"!==l.type)d.tree=o(_);else{var w=d.ids=new Array(f);for(r=0;r<f;r++)w[r]=r}b(e);var k,S=function(t,e,r,n,i,a){var o=M.style(t,r);if(o.marker&&(o.marker.positions=n),o.line&&n.length>1&&u.extendFlat(o.line,M.linePositions(t,r,n)),o.errorX||o.errorY){var s=M.errorBarPositions(t,r,n,i,a);o.errorX&&u.extendFlat(o.errorX,s.x),o.errorY&&u.extendFlat(o.errorY,s.y)}return o.text&&(u.extendFlat(o.text,{positions:n},M.textPosition(t,r,o.text,o.marker)),u.extendFlat(o.textSel,{positions:n},M.textPosition(t,r,o.text,o.markerSel)),u.extendFlat(o.textUnsel,{positions:n},M.textPosition(t,r,o.text,o.markerUnsel))),o}(t,0,e,_,g,v),L=C(0,c);return x(a,e),f<T?k=m(e,f):S.marker&&(k=2*(S.marker.sizeAvg||Math.max(S.marker.size,3))),y(t,e,s,l,g,v,k),S.errorX&&E(e,s,S.errorX),S.errorY&&E(e,l,S.errorY),S.fill&&!L.fill2d&&(L.fill2d=!0),S.marker&&!L.scatter2d&&(L.scatter2d=!0),S.line&&!L.line2d&&(L.line2d=!0),!S.errorX&&!S.errorY||L.error2d||(L.error2d=!0),S.text&&!L.glText&&(L.glText=!0),S.marker&&f>=T&&(S.marker.cluster=d.tree),L.lineOptions.push(S.line),L.errorXOptions.push(S.errorX),L.errorYOptions.push(S.errorY),L.fillOptions.push(S.fill),L.markerOptions.push(S.marker),L.markerSelectedOptions.push(S.markerSel),L.markerUnselectedOptions.push(S.markerUnsel),L.textOptions.push(S.text),L.textSelectedOptions.push(S.textSel),L.textUnselectedOptions.push(S.textUnsel),d._scene=L,d.index=L.count,d.x=g,d.y=v,d.positions=_,L.count++,[{x:!1,y:!1,t:d,trace:e}]},plot:function(t,e,r){if(r.length){var o,s,c=t._fullLayout,h=e._scene,p=e.xaxis,d=e.yaxis;if(h)if(f(t,[\\\"ANGLE_instanced_arrays\\\",\\\"OES_element_index_uint\\\"])){var g=c._glcanvas.data()[0].regl;if(_(t,e,r),h.dirty){if(!0===h.error2d&&(h.error2d=a(g)),!0===h.line2d&&(h.line2d=i(g)),!0===h.scatter2d&&(h.scatter2d=n(g)),!0===h.fill2d&&(h.fill2d=i(g)),!0===h.glText)for(h.glText=new Array(h.count),o=0;o<h.count;o++)h.glText[o]=new l(g);if(h.glText)for(o=0;o<h.count;o++)h.glText[o].update(h.textOptions[o]);if(h.line2d&&(h.line2d.update(h.lineOptions),h.lineOptions=h.lineOptions.map(function(t){if(t&&t.positions){for(var e=t.positions,r=0;r<e.length&&(isNaN(e[r])||isNaN(e[r+1]));)r+=2;for(var n=e.length-2;n>r&&(isNaN(e[n])||isNaN(e[n+1]));)n-=2;t.positions=e.slice(r,n+2)}return t}),h.line2d.update(h.lineOptions)),h.error2d){var v=(h.errorXOptions||[]).concat(h.errorYOptions||[]);h.error2d.update(v)}h.scatter2d&&h.scatter2d.update(h.markerOptions),h.fillOrder=u.repeat(null,h.count),h.fill2d&&(h.fillOptions=h.fillOptions.map(function(t,e){var n=r[e];if(t&&n&&n[0]&&n[0].trace){var i,a,o=n[0],s=o.trace,l=o.t,c=h.lineOptions[e],u=[];s._ownfill&&u.push(e),s._nexttrace&&u.push(e+1),u.length&&(h.fillOrder[e]=u);var f,p,d=[],g=c&&c.positions||l.positions;if(\\\"tozeroy\\\"===s.fill){for(f=0;f<g.length&&isNaN(g[f+1]);)f+=2;for(p=g.length-2;p>f&&isNaN(g[p+1]);)p-=2;0!==g[f+1]&&(d=[g[f],0]),d=d.concat(g.slice(f,p+2)),0!==g[p+1]&&(d=d.concat([g[p],0]))}else if(\\\"tozerox\\\"===s.fill){for(f=0;f<g.length&&isNaN(g[f]);)f+=2;for(p=g.length-2;p>f&&isNaN(g[p]);)p-=2;0!==g[f]&&(d=[0,g[f+1]]),d=d.concat(g.slice(f,p+2)),0!==g[p]&&(d=d.concat([0,g[p+1]]))}else if(\\\"toself\\\"===s.fill||\\\"tonext\\\"===s.fill){for(d=[],i=0,a=0;a<g.length;a+=2)(isNaN(g[a])||isNaN(g[a+1]))&&((d=d.concat(g.slice(i,a))).push(g[i],g[i+1]),i=a+2);d=d.concat(g.slice(i)),i&&d.push(g[i],g[i+1])}else{var v=s._nexttrace;if(v){var m=h.lineOptions[e+1];if(m){var y=m.positions;if(\\\"tonexty\\\"===s.fill){for(d=g.slice(),e=Math.floor(y.length/2);e--;){var x=y[2*e],b=y[2*e+1];isNaN(x)||isNaN(b)||d.push(x,b)}t.fill=v.fillcolor}}}}if(s._prevtrace&&\\\"tonext\\\"===s._prevtrace.fill){var _=h.lineOptions[e-1].positions,w=d.length/2,k=[i=w];for(a=0;a<_.length;a+=2)(isNaN(_[a])||isNaN(_[a+1]))&&(k.push(a/2+w+1),i=a+2);d=d.concat(_),t.hole=k}return t.fillmode=s.fill,t.opacity=s.opacity,t.positions=d,t}}),h.fill2d.update(h.fillOptions))}h.selectBatch=null,h.unselectBatch=null;var m=c.dragmode,y=\\\"lasso\\\"===m||\\\"select\\\"===m,x=c.clickmode.indexOf(\\\"select\\\")>-1;for(o=0;o<r.length;o++){var b=r[o][0],w=b.trace,k=b.t,M=k.index,A=w._length,T=k.x,S=k.y;if(w.selectedpoints||y||x){if(y||(y=!0),h.selectBatch||(h.selectBatch=[],h.unselectBatch=[]),w.selectedpoints){var E=h.selectBatch[M]=u.selIndices2selPoints(w),C={};for(s=0;s<E.length;s++)C[E[s]]=1;var L=[];for(s=0;s<A;s++)C[s]||L.push(s);h.unselectBatch[M]=L}var O=k.xpx=new Array(A),I=k.ypx=new Array(A);for(s=0;s<A;s++)O[s]=p.c2p(T[s]),I[s]=d.c2p(S[s])}else k.xpx=k.ypx=null}y?(h.select2d||(h.select2d=n(c._glcanvas.data()[1].regl)),h.scatter2d&&h.selectBatch&&h.selectBatch.length&&h.scatter2d.update(h.markerUnselectedOptions.map(function(t,e){return h.selectBatch[e]?t:null})),h.select2d&&(h.select2d.update(h.markerOptions),h.select2d.update(h.markerSelectedOptions)),h.glText&&r.forEach(function(t){t&&t[0]&&t[0].trace&&z(t)})):h.scatter2d&&h.scatter2d.update(h.markerOptions);var P={viewport:function(t,e,r){var n=t._size,i=t.width,a=t.height;return[n.l+e.domain[0]*n.w,n.b+r.domain[0]*n.h,i-n.r-(1-e.domain[1])*n.w,a-n.t-(1-r.domain[1])*n.h]}(c,p,d),range:[(p._rl||p.range)[0],(d._rl||d.range)[0],(p._rl||p.range)[1],(d._rl||d.range)[1]]},D=u.repeat(P,h.count);h.fill2d&&h.fill2d.update(D),h.line2d&&h.line2d.update(D),h.error2d&&h.error2d.update(D.concat(D)),h.scatter2d&&h.scatter2d.update(D),h.select2d&&h.select2d.update(D),h.glText&&h.glText.forEach(function(t){t.update(P)})}else h.init()}},hoverPoints:function(t,e,r,n){var i,a,o,s,l,c,u,f,h,p=t.cd,d=p[0].t,g=p[0].trace,v=t.xa,m=t.ya,y=d.x,x=d.y,b=v.c2p(e),_=m.c2p(r),w=t.distance;if(d.tree){var k=v.p2c(b-w),M=v.p2c(b+w),A=m.p2c(_-w),T=m.p2c(_+w);i=\\\"x\\\"===n?d.tree.range(Math.min(k,M),Math.min(m._rl[0],m._rl[1]),Math.max(k,M),Math.max(m._rl[0],m._rl[1])):d.tree.range(Math.min(k,M),Math.min(A,T),Math.max(k,M),Math.max(A,T))}else{if(!d.ids)return[t];i=d.ids}var S=w;if(\\\"x\\\"===n)for(l=0;l<i.length;l++)o=y[i[l]],(c=Math.abs(v.c2p(o)-b))<S&&(S=c,u=m.c2p(x[i[l]])-_,h=Math.sqrt(c*c+u*u),a=i[l]);else for(l=0;l<i.length;l++)o=y[i[l]],s=x[i[l]],c=v.c2p(o)-b,u=m.c2p(s)-_,(f=Math.sqrt(c*c+u*u))<S&&(S=h=f,a=i[l]);return t.index=a,t.distance=S,t.dxy=h,void 0===a?[t]:(L(t,y,x,g),[t])},selectPoints:function(t,e){var r=t.cd,n=[],i=r[0].trace,a=r[0].t,o=i._length,l=a.x,c=a.y,u=a._scene;if(!u)return n;var f=g.hasText(i),h=g.hasMarkers(i),p=!h&&!f;if(!0!==i.visible||p)return n;var d,v=null,m=null;if(!1===e||e.degenerate)m=s(o);else for(v=[],m=[],d=0;d<o;d++)e.contains([a.xpx[d],a.ypx[d]],!1,d,t)?(v.push(d),n.push({pointNumber:d,x:l[d],y:c[d]})):m.push(d);if(u.selectBatch||(u.selectBatch=[],u.unselectBatch=[]),!u.selectBatch[a.index]){for(d=0;d<u.count;d++)u.selectBatch[d]=[],u.unselectBatch[d]=[];h&&u.scatter2d.update(u.markerUnselectedOptions)}return u.selectBatch[a.index]=v,u.unselectBatch[a.index]=m,f&&z(r),n},sceneUpdate:C,calcHover:L,meta:{}}},{\\\"../../components/color\\\":570,\\\"../../constants/interactions\\\":672,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../lib/prepare_regl\\\":709,\\\"../../plots/cartesian\\\":756,\\\"../../plots/cartesian/autorange\\\":743,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../registry\\\":827,\\\"../scatter/calc\\\":1044,\\\"../scatter/colorscale_calc\\\":1046,\\\"../scatter/cross_trace_defaults\\\":1049,\\\"../scatter/fill_hover_text\\\":1051,\\\"../scatter/get_trace_color\\\":1053,\\\"../scatter/link_traces\\\":1059,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/subtypes\\\":1067,\\\"./attributes\\\":1092,\\\"./constants\\\":1093,\\\"./convert\\\":1094,\\\"./defaults\\\":1095,\\\"array-range\\\":55,\\\"gl-text\\\":304,\\\"point-cluster\\\":452,\\\"regl-error2d\\\":473,\\\"regl-line2d\\\":474,\\\"regl-scatter2d\\\":475}],1097:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scattergeo/attributes\\\"),i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../plots/mapbox/layout_attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../components/colorbar/attributes\\\"),l=t(\\\"../../lib/extend\\\").extendFlat,c=t(\\\"../../plot_api/edit_types\\\").overrideAll,u=n.line,f=n.marker;e.exports=c({lon:n.lon,lat:n.lat,mode:l({},i.mode,{dflt:\\\"markers\\\"}),text:l({},i.text,{}),hovertext:l({},i.hovertext,{}),line:{color:u.color,width:u.width},connectgaps:i.connectgaps,marker:{symbol:{valType:\\\"string\\\",dflt:\\\"circle\\\",arrayOk:!0},opacity:f.opacity,size:f.size,sizeref:f.sizeref,sizemin:f.sizemin,sizemode:f.sizemode,color:f.color,colorscale:f.colorscale,cauto:f.cauto,cmax:f.cmax,cmin:f.cmin,autocolorscale:f.autocolorscale,reversescale:f.reversescale,showscale:f.showscale,colorbar:s},fill:n.fill,fillcolor:i.fillcolor,textfont:a.layers.symbol.textfont,textposition:a.layers.symbol.textposition,selected:{marker:i.selected.marker},unselected:{marker:i.unselected.marker},hoverinfo:l({},o.hoverinfo,{flags:[\\\"lon\\\",\\\"lat\\\",\\\"text\\\",\\\"name\\\"]})},\\\"calc\\\",\\\"nested\\\")},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../../plots/mapbox/layout_attributes\\\":804,\\\"../scatter/attributes\\\":1043,\\\"../scattergeo/attributes\\\":1083}],1098:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM,o=t(\\\"../../lib/geojson_utils\\\"),s=t(\\\"../../components/colorscale\\\"),l=t(\\\"../../components/drawing\\\"),c=t(\\\"../scatter/make_bubble_size_func\\\"),u=t(\\\"../scatter/subtypes\\\"),f=t(\\\"../../plots/mapbox/convert_text_opts\\\");function h(){return{geojson:o.makeBlank(),layout:{visibility:\\\"none\\\"},paint:{}}}function p(t){return i.isArrayOrTypedArray(t)?function(t){return t}:t?function(){return t}:d}function d(){return\\\"\\\"}function g(t){return t[0]===a}e.exports=function(t){var e,r=t[0].trace,a=!0===r.visible,v=\\\"none\\\"!==r.fill,m=u.hasLines(r),y=u.hasMarkers(r),x=u.hasText(r),b=y&&\\\"circle\\\"===r.marker.symbol,_=y&&\\\"circle\\\"!==r.marker.symbol,w=h(),k=h(),M=h(),A=h(),T={fill:w,line:k,circle:M,symbol:A};if(!a)return T;if((v||m)&&(e=o.calcTraceToLineCoords(t)),v&&(w.geojson=o.makePolygon(e),w.layout.visibility=\\\"visible\\\",i.extendFlat(w.paint,{\\\"fill-color\\\":r.fillcolor})),m&&(k.geojson=o.makeLine(e),k.layout.visibility=\\\"visible\\\",i.extendFlat(k.paint,{\\\"line-width\\\":r.line.width,\\\"line-color\\\":r.line.color,\\\"line-opacity\\\":r.opacity})),b){var S=function(t){var e,r,a,o,u=t[0].trace,f=u.marker,h=u.selectedpoints,p=i.isArrayOrTypedArray(f.color),d=i.isArrayOrTypedArray(f.size),v=i.isArrayOrTypedArray(f.opacity);function m(t){return u.opacity*t}p&&(r=s.hasColorscale(u,\\\"marker\\\")?s.makeColorScaleFunc(s.extractScale(f.colorscale,f.cmin,f.cmax)):i.identity);d&&(a=c(u));v&&(o=function(t){var e=n(t)?+i.constrain(t,0,1):0;return m(e)});var y,x=[];for(e=0;e<t.length;e++){var b=t[e],_=b.lonlat;if(!g(_)){var w={};r&&(w.mcc=b.mcc=r(b.mc)),a&&(w.mrc=b.mrc=a(b.ms)),o&&(w.mo=o(b.mo)),h&&(w.selected=b.selected||0),x.push({type:\\\"Feature\\\",geometry:{type:\\\"Point\\\",coordinates:_},properties:w})}}if(h)for(y=l.makeSelectedPointStyleFns(u),e=0;e<x.length;e++){var k=x[e].properties;y.selectedOpacityFn&&(k.mo=m(y.selectedOpacityFn(k))),y.selectedColorFn&&(k.mcc=y.selectedColorFn(k)),y.selectedSizeFn&&(k.mrc=y.selectedSizeFn(k))}return{geojson:{type:\\\"FeatureCollection\\\",features:x},mcc:p||y&&y.selectedColorFn?{type:\\\"identity\\\",property:\\\"mcc\\\"}:f.color,mrc:d||y&&y.selectedSizeFn?{type:\\\"identity\\\",property:\\\"mrc\\\"}:(M=f.size,M/2),mo:v||y&&y.selectedOpacityFn?{type:\\\"identity\\\",property:\\\"mo\\\"}:m(f.opacity)};var M}(t);M.geojson=S.geojson,M.layout.visibility=\\\"visible\\\",i.extendFlat(M.paint,{\\\"circle-color\\\":S.mcc,\\\"circle-radius\\\":S.mrc,\\\"circle-opacity\\\":S.mo})}if((_||x)&&(A.geojson=function(t){for(var e=t[0].trace,r=(e.marker||{}).symbol,n=e.text,i=\\\"circle\\\"!==r?p(r):d,a=u.hasText(e)?p(n):d,o=[],s=0;s<t.length;s++){var l=t[s];g(l.lonlat)||o.push({type:\\\"Feature\\\",geometry:{type:\\\"Point\\\",coordinates:l.lonlat},properties:{symbol:i(l.mx),text:a(l.tx)}})}return{type:\\\"FeatureCollection\\\",features:o}}(t),i.extendFlat(A.layout,{visibility:\\\"visible\\\",\\\"icon-image\\\":\\\"{symbol}-15\\\",\\\"text-field\\\":\\\"{text}\\\"}),_&&(i.extendFlat(A.layout,{\\\"icon-size\\\":r.marker.size/10}),i.extendFlat(A.paint,{\\\"icon-opacity\\\":r.opacity*r.marker.opacity,\\\"icon-color\\\":r.marker.color})),x)){var E=(r.marker||{}).size,C=f(r.textposition,E);i.extendFlat(A.layout,{\\\"text-size\\\":r.textfont.size,\\\"text-anchor\\\":C.anchor,\\\"text-offset\\\":C.offset}),i.extendFlat(A.paint,{\\\"text-color\\\":r.textfont.color,\\\"text-opacity\\\":r.opacity})}return T}},{\\\"../../components/colorscale\\\":585,\\\"../../components/drawing\\\":595,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../lib/geojson_utils\\\":689,\\\"../../plots/mapbox/convert_text_opts\\\":801,\\\"../scatter/make_bubble_size_func\\\":1060,\\\"../scatter/subtypes\\\":1067,\\\"fast-isnumeric\\\":214}],1099:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../scatter/marker_defaults\\\"),o=t(\\\"../scatter/line_defaults\\\"),s=t(\\\"../scatter/text_defaults\\\"),l=t(\\\"../scatter/fillcolor_defaults\\\"),c=t(\\\"./attributes\\\");e.exports=function(t,e,r,u){function f(r,i){return n.coerce(t,e,c,r,i)}if(function(t,e,r){var n=r(\\\"lon\\\")||[],i=r(\\\"lat\\\")||[],a=Math.min(n.length,i.length);return e._length=a,a}(0,e,f)){if(f(\\\"text\\\"),f(\\\"hovertext\\\"),f(\\\"mode\\\"),i.hasLines(e)&&(o(t,e,r,u,f,{noDash:!0}),f(\\\"connectgaps\\\")),i.hasMarkers(e)){a(t,e,r,u,f,{noLine:!0});var h=e.marker;\\\"circle\\\"!==h.symbol&&(n.isArrayOrTypedArray(h.size)&&(h.size=h.size[0]),n.isArrayOrTypedArray(h.color)&&(h.color=h.color[0]))}i.hasText(e)&&s(t,e,u,f,{noSelect:!0}),f(\\\"fill\\\"),\\\"none\\\"!==e.fill&&l(t,e,r,f),n.coerceSelectionMarkerOpacity(e,f)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1097}],1100:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t}},{}],1101:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../scatter/get_trace_color\\\"),o=t(\\\"../scatter/fill_hover_text\\\"),s=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e,r){var l=t.cd,c=l[0].trace,u=t.xa,f=t.ya,h=t.subplot,p=360*(e>=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),d=e-p;if(n.getClosest(l,function(t){var e=t.lonlat;if(e[0]===s)return 1/0;var n=i.modHalf(e[0],360),a=e[1],o=h.project([n,a]),l=o.x-u.c2p([d,a]),c=o.y-f.c2p([n,r]),p=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(l*l+c*c)-p,1-3/p)},t),!1!==t.index){var g=l[t.index],v=g.lonlat,m=[i.modHalf(v[0],360)+p,v[1]],y=u.c2p(m),x=f.c2p(m),b=g.mrc||1;return t.x0=y-b,t.x1=y+b,t.y0=x-b,t.y1=x+b,t.color=a(c,g),t.extraText=function(t,e,r){var n=(e.hi||t.hoverinfo).split(\\\"+\\\"),i=-1!==n.indexOf(\\\"all\\\"),a=-1!==n.indexOf(\\\"lon\\\"),s=-1!==n.indexOf(\\\"lat\\\"),l=e.lonlat,c=[];function u(t){return t+\\\"\\\\xb0\\\"}i||a&&s?c.push(\\\"(\\\"+u(l[0])+\\\", \\\"+u(l[1])+\\\")\\\"):a?c.push(r.lon+u(l[0])):s&&c.push(r.lat+u(l[1]));(i||-1!==n.indexOf(\\\"text\\\"))&&o(e,t,c);return c.join(\\\"<br>\\\")}(c,g,l[0].t.labels),[t]}}},{\\\"../../components/fx\\\":612,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../scatter/fill_hover_text\\\":1051,\\\"../scatter/get_trace_color\\\":1053}],1102:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"../scattergeo/calc\\\"),n.plot=t(\\\"./plot\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.eventData=t(\\\"./event_data\\\"),n.selectPoints=t(\\\"./select\\\"),n.style=function(t,e){e&&e[0].trace._glTrace.update(e)},n.moduleType=\\\"trace\\\",n.name=\\\"scattermapbox\\\",n.basePlotModule=t(\\\"../../plots/mapbox\\\"),n.categories=[\\\"mapbox\\\",\\\"gl\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatterlike\\\"],n.meta={},e.exports=n},{\\\"../../plots/mapbox\\\":802,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scattergeo/calc\\\":1084,\\\"./attributes\\\":1097,\\\"./defaults\\\":1099,\\\"./event_data\\\":1100,\\\"./hover\\\":1101,\\\"./plot\\\":1103,\\\"./select\\\":1104}],1103:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./convert\\\");function i(t,e){this.subplot=t,this.uid=e,this.sourceIds={fill:e+\\\"-source-fill\\\",line:e+\\\"-source-line\\\",circle:e+\\\"-source-circle\\\",symbol:e+\\\"-source-symbol\\\"},this.layerIds={fill:e+\\\"-layer-fill\\\",line:e+\\\"-layer-line\\\",circle:e+\\\"-layer-circle\\\",symbol:e+\\\"-layer-symbol\\\"},this.order=[\\\"fill\\\",\\\"line\\\",\\\"circle\\\",\\\"symbol\\\"]}var a=i.prototype;a.addSource=function(t,e){this.subplot.map.addSource(this.sourceIds[t],{type:\\\"geojson\\\",data:e.geojson})},a.setSourceData=function(t,e){this.subplot.map.getSource(this.sourceIds[t]).setData(e.geojson)},a.addLayer=function(t,e){this.subplot.map.addLayer({type:t,id:this.layerIds[t],source:this.sourceIds[t],layout:e.layout,paint:e.paint})},a.update=function(t){for(var e=this.subplot,r=n(t),i=0;i<this.order.length;i++){var a=this.order[i],o=r[a];e.setOptions(this.layerIds[a],\\\"setLayoutProperty\\\",o.layout),\\\"visible\\\"===o.layout.visibility&&(this.setSourceData(a,o),e.setOptions(this.layerIds[a],\\\"setPaintProperty\\\",o.paint))}t[0].trace._glTrace=this},a.dispose=function(){for(var t=this.subplot.map,e=0;e<this.order.length;e++){var r=this.order[e];t.removeLayer(this.layerIds[r]),t.removeSource(this.sourceIds[r])}},e.exports=function(t,e){for(var r=new i(t,e[0].trace.uid),a=n(e),o=0;o<r.order.length;o++){var s=r.order[o],l=a[s];r.addSource(s,l),r.addLayer(s,l)}return e[0].trace._glTrace=r,r}},{\\\"./convert\\\":1098}],1104:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e){var r,o=t.cd,s=t.xaxis,l=t.yaxis,c=[],u=o[0].trace;if(!i.hasMarkers(u))return[];if(!1===e)for(r=0;r<o.length;r++)o[r].selected=0;else for(r=0;r<o.length;r++){var f=o[r],h=f.lonlat;if(h[0]!==a){var p=[n.modHalf(h[0],360),h[1]],d=[s.c2p(p),l.c2p(p)];e.contains(d,null,r,t)?(c.push({pointNumber:r,lon:h[0],lat:h[1]}),f.selected=1):f.selected=0}}return c}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../scatter/subtypes\\\":1067}],1105:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/extend\\\").extendFlat,i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../plots/attributes\\\"),o=i.line;e.exports={mode:i.mode,r:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},theta:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},r0:{valType:\\\"any\\\",dflt:0,editType:\\\"calc+clearAxisTypes\\\"},dr:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},theta0:{valType:\\\"any\\\",dflt:0,editType:\\\"calc+clearAxisTypes\\\"},dtheta:{valType:\\\"number\\\",editType:\\\"calc\\\"},thetaunit:{valType:\\\"enumerated\\\",values:[\\\"radians\\\",\\\"degrees\\\",\\\"gradians\\\"],dflt:\\\"degrees\\\",editType:\\\"calc+clearAxisTypes\\\"},text:i.text,hovertext:i.hovertext,line:{color:o.color,width:o.width,dash:o.dash,shape:n({},o.shape,{values:[\\\"linear\\\",\\\"spline\\\"]}),smoothing:o.smoothing,editType:\\\"calc\\\"},connectgaps:i.connectgaps,marker:i.marker,cliponaxis:n({},i.cliponaxis,{dflt:!1}),textposition:i.textposition,textfont:i.textfont,fill:n({},i.fill,{values:[\\\"none\\\",\\\"toself\\\",\\\"tonext\\\"],dflt:\\\"none\\\"}),fillcolor:i.fillcolor,hoverinfo:n({},a.hoverinfo,{flags:[\\\"r\\\",\\\"theta\\\",\\\"text\\\",\\\"name\\\"]}),hoveron:i.hoveron,selected:i.selected,unselected:i.unselected}},{\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1106:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM,a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../scatter/colorscale_calc\\\"),s=t(\\\"../scatter/arrays_to_calcdata\\\"),l=t(\\\"../scatter/calc_selection\\\"),c=t(\\\"../scatter/calc\\\").calcMarkerSize;e.exports=function(t,e){for(var r=t._fullLayout,u=e.subplot,f=r[u].radialaxis,h=r[u].angularaxis,p=f.makeCalcdata(e,\\\"r\\\"),d=h.makeCalcdata(e,\\\"theta\\\"),g=e._length,v=new Array(g),m=0;m<g;m++){var y=p[m],x=d[m],b=v[m]={};n(y)&&n(x)?(b.r=y,b.theta=x):b.r=i}var _=c(e,g);return e._extremes.x=a.findExtremes(f,p,{ppad:_}),o(e),s(v,e),l(v,e),v}},{\\\"../../constants/numerical\\\":673,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc\\\":1044,\\\"../scatter/calc_selection\\\":1045,\\\"../scatter/colorscale_calc\\\":1046,\\\"fast-isnumeric\\\":214}],1107:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../scatter/marker_defaults\\\"),o=t(\\\"../scatter/line_defaults\\\"),s=t(\\\"../scatter/line_shape_defaults\\\"),l=t(\\\"../scatter/text_defaults\\\"),c=t(\\\"../scatter/fillcolor_defaults\\\"),u=t(\\\"../scatter/constants\\\").PTS_LINESONLY,f=t(\\\"./attributes\\\");function h(t,e,r,n){var i,a=n(\\\"r\\\"),o=n(\\\"theta\\\");if(a)o?i=Math.min(a.length,o.length):(i=a.length,n(\\\"theta0\\\"),n(\\\"dtheta\\\"));else{if(!o)return 0;i=e.theta.length,n(\\\"r0\\\"),n(\\\"dr\\\")}return e._length=i,i}e.exports={handleRThetaDefaults:h,supplyDefaults:function(t,e,r,p){function d(r,i){return n.coerce(t,e,f,r,i)}var g=h(0,e,0,d);if(g){d(\\\"thetaunit\\\"),d(\\\"mode\\\",g<u?\\\"lines+markers\\\":\\\"lines\\\"),d(\\\"text\\\"),d(\\\"hovertext\\\"),i.hasLines(e)&&(o(t,e,r,p,d),s(t,e,d),d(\\\"connectgaps\\\")),i.hasMarkers(e)&&a(t,e,r,p,d,{gradient:!0}),i.hasText(e)&&l(t,e,p,d);var v=[];(i.hasMarkers(e)||i.hasText(e))&&(d(\\\"cliponaxis\\\"),d(\\\"marker.maxdisplayed\\\"),v.push(\\\"points\\\")),d(\\\"fill\\\"),\\\"none\\\"!==e.fill&&(c(t,e,r,d),i.hasLines(e)||s(t,e,d)),\\\"tonext\\\"!==e.fill&&\\\"toself\\\"!==e.fill||v.push(\\\"fills\\\"),d(\\\"hoveron\\\",v.join(\\\"+\\\")||\\\"points\\\"),n.coerceSelectionMarkerOpacity(e,d)}else e.visible=!1}}},{\\\"../../lib\\\":696,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/line_shape_defaults\\\":1058,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1105}],1108:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/hover\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../lib\\\");function o(t,e,r,n){var o=r.radialAxis,s=r.angularAxis,l=(t.hi||e.hoverinfo).split(\\\"+\\\"),c=[];function u(t,e){c.push(t._hovertitle+\\\": \\\"+i.tickText(t,e,\\\"hover\\\").text)}if(o._hovertitle=\\\"r\\\",s._hovertitle=\\\"\\\\u03b8\\\",-1!==l.indexOf(\\\"all\\\")&&(l=[\\\"r\\\",\\\"theta\\\",\\\"text\\\"]),-1!==l.indexOf(\\\"r\\\")&&u(o,o.c2l(t.r)),-1!==l.indexOf(\\\"theta\\\")){var f=t.theta;u(s,\\\"degrees\\\"===s.thetaunit?a.rad2deg(f):f)}-1!==l.indexOf(\\\"text\\\")&&n.text&&(c.push(n.text),delete n.text),n.extraText=c.join(\\\"<br>\\\")}e.exports={hoverPoints:function(t,e,r,i){var a=n(t,e,r,i);if(a&&!1!==a[0].index){var s=a[0];if(void 0===s.index)return a;var l=t.subplot,c=s.cd[s.index],u=s.trace;if(l.isPtInside(c))return s.xLabelVal=void 0,s.yLabelVal=void 0,o(c,u,l,s),a}},makeHoverPointText:o}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/hover\\\":1054}],1109:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"scatterpolar\\\",basePlotModule:t(\\\"../../plots/polar\\\"),categories:[\\\"polar\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\").supplyDefaults,colorbar:t(\\\"../scatter/marker_colorbar\\\"),calc:t(\\\"./calc\\\"),plot:t(\\\"./plot\\\"),style:t(\\\"../scatter/style\\\").style,hoverPoints:t(\\\"./hover\\\").hoverPoints,selectPoints:t(\\\"../scatter/select\\\"),meta:{}}},{\\\"../../plots/polar\\\":811,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/select\\\":1064,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1105,\\\"./calc\\\":1106,\\\"./defaults\\\":1107,\\\"./hover\\\":1108,\\\"./plot\\\":1110}],1110:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/plot\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e,r){for(var a=e.layers.frontplot.select(\\\"g.scatterlayer\\\"),o={xaxis:e.xaxis,yaxis:e.yaxis,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},s=e.radialAxis,l=e.angularAxis,c=0;c<r.length;c++)for(var u=r[c],f=0;f<u.length;f++){var h=u[f],p=h.r;if(p===i)h.x=h.y=i;else{var d=s.c2g(p),g=l.c2g(h.theta);h.x=d*Math.cos(g),h.y=d*Math.sin(g)}}n(t,o,r,a)}},{\\\"../../constants/numerical\\\":673,\\\"../scatter/plot\\\":1063}],1111:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatterpolar/attributes\\\"),i=t(\\\"../scattergl/attributes\\\");e.exports={mode:n.mode,r:n.r,theta:n.theta,r0:n.r0,dr:n.dr,theta0:n.theta0,dtheta:n.dtheta,thetaunit:n.thetaunit,text:n.text,hovertext:n.hovertext,line:i.line,connectgaps:i.connectgaps,marker:i.marker,fill:i.fill,fillcolor:i.fillcolor,textposition:i.textposition,textfont:i.textfont,hoverinfo:n.hoverinfo,selected:n.selected,unselected:n.unselected}},{\\\"../scattergl/attributes\\\":1092,\\\"../scatterpolar/attributes\\\":1105}],1112:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../scatterpolar/defaults\\\").handleRThetaDefaults,o=t(\\\"../scatter/marker_defaults\\\"),s=t(\\\"../scatter/line_defaults\\\"),l=t(\\\"../scatter/text_defaults\\\"),c=t(\\\"../scatter/fillcolor_defaults\\\"),u=t(\\\"../scatter/constants\\\").PTS_LINESONLY,f=t(\\\"./attributes\\\");e.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}var d=a(t,e,h,p);d?(p(\\\"thetaunit\\\"),p(\\\"mode\\\",d<u?\\\"lines+markers\\\":\\\"lines\\\"),p(\\\"text\\\"),p(\\\"hovertext\\\"),i.hasLines(e)&&(s(t,e,r,h,p),p(\\\"connectgaps\\\")),i.hasMarkers(e)&&o(t,e,r,h,p),i.hasText(e)&&l(t,e,h,p),p(\\\"fill\\\"),\\\"none\\\"!==e.fill&&c(t,e,r,p),n.coerceSelectionMarkerOpacity(e,p)):e.visible=!1}},{\\\"../../lib\\\":696,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"../scatterpolar/defaults\\\":1107,\\\"./attributes\\\":1111}],1113:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"point-cluster\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../scattergl\\\"),o=t(\\\"../scatter/colorscale_calc\\\"),s=t(\\\"../scatter/calc\\\").calcMarkerSize,l=t(\\\"../scattergl/convert\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../plots/cartesian/axes\\\"),f=t(\\\"../scatterpolar/hover\\\").makeHoverPointText,h=t(\\\"../scattergl/constants\\\").TOO_MANY_POINTS;e.exports={moduleType:\\\"trace\\\",name:\\\"scatterpolargl\\\",basePlotModule:t(\\\"../../plots/polar\\\"),categories:[\\\"gl\\\",\\\"regl\\\",\\\"polar\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),colorbar:t(\\\"../scatter/marker_colorbar\\\"),calc:function(t,e){var r=t._fullLayout,n=e.subplot,i=r[n].radialaxis,a=r[n].angularaxis,c=i.makeCalcdata(e,\\\"r\\\"),f=a.makeCalcdata(e,\\\"theta\\\"),p=e._length,d={};p<c.length&&(c=c.slice(0,p)),p<f.length&&(f=f.slice(0,p)),d.r=c,d.theta=f,o(e);var g,v=d.opts=l.style(t,e);return p<h?g=s(e,p):v.marker&&(g=2*(v.marker.sizeAvg||Math.max(v.marker.size,3))),e._extremes.x=u.findExtremes(i,c,{ppad:g}),[{x:!1,y:!1,t:d,trace:e}]},plot:function(t,e,r){if(r.length){var o=e.radialAxis,s=e.angularAxis,u=a.sceneUpdate(t,e);return r.forEach(function(r){if(r&&r[0]&&r[0].trace){var a,f=r[0],p=f.trace,d=f.t,g=p._length,v=d.r,m=d.theta,y=d.opts,x=v.slice(),b=m.slice();for(a=0;a<v.length;a++)e.isPtInside({r:v[a],theta:m[a]})||(x[a]=NaN,b[a]=NaN);var _=new Array(2*g),w=Array(g),k=Array(g);for(a=0;a<g;a++){var M,A,T=x[a];if(i(T)){var S=o.c2g(T),E=s.c2g(b[a],p.thetaunit);M=S*Math.cos(E),A=S*Math.sin(E)}else M=A=NaN;w[a]=_[2*a]=M,k[a]=_[2*a+1]=A}d.tree=n(_),y.marker&&g>=h&&(y.marker.cluster=d.tree),y.marker&&(y.markerSel.positions=y.markerUnsel.positions=y.marker.positions=_),y.line&&_.length>1&&c.extendFlat(y.line,l.linePositions(t,p,_)),y.text&&(c.extendFlat(y.text,{positions:_},l.textPosition(t,p,y.text,y.marker)),c.extendFlat(y.textSel,{positions:_},l.textPosition(t,p,y.text,y.markerSel)),c.extendFlat(y.textUnsel,{positions:_},l.textPosition(t,p,y.text,y.markerUnsel))),y.fill&&!u.fill2d&&(u.fill2d=!0),y.marker&&!u.scatter2d&&(u.scatter2d=!0),y.line&&!u.line2d&&(u.line2d=!0),y.text&&!u.glText&&(u.glText=!0),u.lineOptions.push(y.line),u.fillOptions.push(y.fill),u.markerOptions.push(y.marker),u.markerSelectedOptions.push(y.markerSel),u.markerUnselectedOptions.push(y.markerUnsel),u.textOptions.push(y.text),u.textSelectedOptions.push(y.textSel),u.textUnselectedOptions.push(y.textUnsel),d.x=w,d.y=k,d.rawx=w,d.rawy=k,d.r=v,d.theta=m,d.positions=_,d._scene=u,d.index=u.count,u.count++}}),a.plot(t,e,r)}},hoverPoints:function(t,e,r,n){var i=t.cd[0].t,o=i.r,s=i.theta,l=a.hoverPoints(t,e,r,n);if(l&&!1!==l[0].index){var c=l[0];if(void 0===c.index)return l;var u=t.subplot,h=c.cd[c.index],p=c.trace;if(h.r=o[c.index],h.theta=s[c.index],u.isPtInside(h))return c.xLabelVal=void 0,c.yLabelVal=void 0,f(h,p,u,c),l}},selectPoints:a.selectPoints,meta:{}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/polar\\\":811,\\\"../scatter/calc\\\":1044,\\\"../scatter/colorscale_calc\\\":1046,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scattergl\\\":1096,\\\"../scattergl/constants\\\":1093,\\\"../scattergl/convert\\\":1094,\\\"../scatterpolar/hover\\\":1108,\\\"./attributes\\\":1111,\\\"./defaults\\\":1112,\\\"fast-isnumeric\\\":214,\\\"point-cluster\\\":452}],1114:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/colorbar/attributes\\\"),s=t(\\\"../../components/drawing/attributes\\\").dash,l=t(\\\"../../lib/extend\\\").extendFlat,c=n.marker,u=n.line,f=c.line;e.exports={a:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},b:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},c:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},sum:{valType:\\\"number\\\",dflt:0,min:0,editType:\\\"calc\\\"},mode:l({},n.mode,{dflt:\\\"markers\\\"}),text:l({},n.text,{}),hovertext:l({},n.hovertext,{}),line:{color:u.color,width:u.width,dash:s,shape:l({},u.shape,{values:[\\\"linear\\\",\\\"spline\\\"]}),smoothing:u.smoothing,editType:\\\"calc\\\"},connectgaps:n.connectgaps,cliponaxis:n.cliponaxis,fill:l({},n.fill,{values:[\\\"none\\\",\\\"toself\\\",\\\"tonext\\\"],dflt:\\\"none\\\"}),fillcolor:n.fillcolor,marker:l({symbol:c.symbol,opacity:c.opacity,maxdisplayed:c.maxdisplayed,size:c.size,sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,line:l({width:f.width,editType:\\\"calc\\\"},a(\\\"marker.line\\\")),gradient:c.gradient,editType:\\\"calc\\\"},a(\\\"marker\\\"),{colorbar:o}),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:l({},i.hoverinfo,{flags:[\\\"a\\\",\\\"b\\\",\\\"c\\\",\\\"text\\\",\\\"name\\\"]}),hoveron:n.hoveron}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../components/drawing/attributes\\\":594,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1115:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../scatter/colorscale_calc\\\"),a=t(\\\"../scatter/arrays_to_calcdata\\\"),o=t(\\\"../scatter/calc_selection\\\"),s=t(\\\"../scatter/calc\\\").calcMarkerSize,l=[\\\"a\\\",\\\"b\\\",\\\"c\\\"],c={a:[\\\"b\\\",\\\"c\\\"],b:[\\\"a\\\",\\\"c\\\"],c:[\\\"a\\\",\\\"b\\\"]};e.exports=function(t,e){var r,u,f,h,p,d,g=t._fullLayout[e.subplot].sum,v=e.sum||g,m={a:e.a,b:e.b,c:e.c};for(r=0;r<l.length;r++)if(!m[f=l[r]]){for(p=m[c[f][0]],d=m[c[f][1]],h=new Array(p.length),u=0;u<p.length;u++)h[u]=v-p[u]-d[u];m[f]=h}var y,x,b,_,w,k,M=e._length,A=new Array(M);for(r=0;r<M;r++)y=m.a[r],x=m.b[r],b=m.c[r],n(y)&&n(x)&&n(b)?(1!==(_=g/((y=+y)+(x=+x)+(b=+b)))&&(y*=_,x*=_,b*=_),k=y,w=b-x,A[r]={x:w,y:k,a:y,b:x,c:b}):A[r]={x:!1,y:!1};return s(e,M),i(e),a(A,e),o(A,e),A}},{\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc\\\":1044,\\\"../scatter/calc_selection\\\":1045,\\\"../scatter/colorscale_calc\\\":1046,\\\"fast-isnumeric\\\":214}],1116:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/constants\\\"),a=t(\\\"../scatter/subtypes\\\"),o=t(\\\"../scatter/marker_defaults\\\"),s=t(\\\"../scatter/line_defaults\\\"),l=t(\\\"../scatter/line_shape_defaults\\\"),c=t(\\\"../scatter/text_defaults\\\"),u=t(\\\"../scatter/fillcolor_defaults\\\"),f=t(\\\"./attributes\\\");e.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}var d,g=p(\\\"a\\\"),v=p(\\\"b\\\"),m=p(\\\"c\\\");if(g?(d=g.length,v?(d=Math.min(d,v.length),m&&(d=Math.min(d,m.length))):d=m?Math.min(d,m.length):0):v&&m&&(d=Math.min(v.length,m.length)),d){e._length=d,p(\\\"sum\\\"),p(\\\"text\\\"),p(\\\"hovertext\\\"),p(\\\"mode\\\",d<i.PTS_LINESONLY?\\\"lines+markers\\\":\\\"lines\\\"),a.hasLines(e)&&(s(t,e,r,h,p),l(t,e,p),p(\\\"connectgaps\\\")),a.hasMarkers(e)&&o(t,e,r,h,p,{gradient:!0}),a.hasText(e)&&c(t,e,h,p);var y=[];(a.hasMarkers(e)||a.hasText(e))&&(p(\\\"cliponaxis\\\"),p(\\\"marker.maxdisplayed\\\"),y.push(\\\"points\\\")),p(\\\"fill\\\"),\\\"none\\\"!==e.fill&&(u(t,e,r,p),a.hasLines(e)||l(t,e,p)),\\\"tonext\\\"!==e.fill&&\\\"toself\\\"!==e.fill||y.push(\\\"fills\\\"),p(\\\"hoveron\\\",y.join(\\\"+\\\")||\\\"points\\\"),n.coerceSelectionMarkerOpacity(e,p)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/line_shape_defaults\\\":1058,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1114}],1117:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){if(e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),n[i]){var a=n[i];t.a=a.a,t.b=a.b,t.c=a.c}else t.a=e.a,t.b=e.b,t.c=e.c;return t}},{}],1118:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/hover\\\"),i=t(\\\"../../plots/cartesian/axes\\\");e.exports=function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index){var l=1-s.y0/t.ya._length,c=t.xa._length,u=c*l/2,f=c-u;return s.x0=Math.max(Math.min(s.x0,f),u),s.x1=Math.max(Math.min(s.x1,f),u),o}var h=s.cd[s.index];s.a=h.a,s.b=h.b,s.c=h.c,s.xLabelVal=void 0,s.yLabelVal=void 0;var p=s.trace,d=s.subplot,g=(h.hi||p.hoverinfo).split(\\\"+\\\"),v=[];return-1!==g.indexOf(\\\"all\\\")&&(g=[\\\"a\\\",\\\"b\\\",\\\"c\\\"]),-1!==g.indexOf(\\\"a\\\")&&m(d.aaxis,h.a),-1!==g.indexOf(\\\"b\\\")&&m(d.baxis,h.b),-1!==g.indexOf(\\\"c\\\")&&m(d.caxis,h.c),s.extraText=v.join(\\\"<br>\\\"),o}function m(t,e){v.push(t._hovertitle+\\\": \\\"+i.tickText(t,e,\\\"hover\\\").text)}}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/hover\\\":1054}],1119:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"../scatter/style\\\").style,n.styleOnSelect=t(\\\"../scatter/style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.selectPoints=t(\\\"../scatter/select\\\"),n.eventData=t(\\\"./event_data\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"scatterternary\\\",n.basePlotModule=t(\\\"../../plots/ternary\\\"),n.categories=[\\\"ternary\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],n.meta={},e.exports=n},{\\\"../../plots/ternary\\\":823,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/select\\\":1064,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1114,\\\"./calc\\\":1115,\\\"./defaults\\\":1116,\\\"./event_data\\\":1117,\\\"./hover\\\":1118,\\\"./plot\\\":1120}],1120:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/plot\\\");e.exports=function(t,e,r){var i=e.plotContainer;i.select(\\\".scatterlayer\\\").selectAll(\\\"*\\\").remove();var a={xaxis:e.xaxis,yaxis:e.yaxis,plot:i,layerClipId:e._hasClipOnAxisFalse?e.clipIdRelative:null},o=e.layers.frontplot.select(\\\"g.scatterlayer\\\");n(t,a,r,o)}},{\\\"../scatter/plot\\\":1063}],1121:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../scattergl/attributes\\\"),o=t(\\\"../../plots/cartesian/constants\\\").idRegex,s=t(\\\"../../plot_api/plot_template\\\").templatedArray,l=t(\\\"../../lib/extend\\\").extendFlat,c=n.marker,u=c.line,f=l(i(\\\"marker.line\\\",{editTypeOverride:\\\"calc\\\"}),{width:l({},u.width,{editType:\\\"calc\\\"}),editType:\\\"calc\\\"}),h=l(i(\\\"marker\\\"),{symbol:c.symbol,size:l({},c.size,{editType:\\\"markerSize\\\"}),sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,opacity:c.opacity,colorbar:c.colorbar,line:f,editType:\\\"calc\\\"});function p(t){return{valType:\\\"info_array\\\",freeLength:!0,editType:\\\"calc\\\",items:{valType:\\\"subplotid\\\",regex:o[t],editType:\\\"plot\\\"}}}h.color.editType=h.cmin.editType=h.cmax.editType=\\\"style\\\",e.exports={dimensions:s(\\\"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\\\"},editType:\\\"calc+clearAxisTypes\\\"},editType:\\\"calc+clearAxisTypes\\\"}),text:l({},a.text,{}),marker:h,xaxes:p(\\\"x\\\"),yaxes:p(\\\"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:a.selected.marker,editType:\\\"calc\\\"},unselected:{marker:a.unselected.marker,editType:\\\"calc\\\"},opacity:a.opacity}},{\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/constants\\\":750,\\\"../scatter/attributes\\\":1043,\\\"../scattergl/attributes\\\":1092}],1122:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"regl-line2d\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib/prepare_regl\\\"),o=t(\\\"../../plots/get_data\\\").getModuleCalcData,s=t(\\\"../../plots/cartesian\\\"),l=t(\\\"../../plots/cartesian/axis_ids\\\").getFromId,c=t(\\\"../../plots/cartesian/axes\\\").shouldShowZeroLine,u=\\\"splom\\\";function f(t,e,r){for(var n=r.matrixOptions.data.length,i=e._visibleDims,a=r.viewOpts.ranges=new Array(n),o=0;o<i.length;o++){var s=i[o],c=a[o]=new Array(4),u=l(t,e._diag[s][0]);u&&(c[0]=u.r2l(u.range[0]),c[2]=u.r2l(u.range[1]));var f=l(t,e._diag[s][1]);f&&(c[1]=f.r2l(f.range[0]),c[3]=f.r2l(f.range[1]))}r.selectBatch?r.matrix.update({ranges:a},{ranges:a}):r.matrix.update({ranges:a})}function h(t){var e=t._fullLayout,r=e._glcanvas.data()[0].regl,i=e._splomGrid;i||(i=e._splomGrid=n(r)),i.update(function(t){var e,r=t._fullLayout,n=r._size,i=[0,0,r.width,r.height],a={};function o(t,e,r,n,o,s){var l=e[t+\\\"color\\\"],c=e[t+\\\"width\\\"],u=String(l+c);u in a?a[u].data.push(NaN,NaN,r,n,o,s):a[u]={data:[r,n,o,s],join:\\\"rect\\\",thickness:c,color:l,viewport:i,range:i,overlay:!1}}for(e in r._splomSubplots){var s,l,u=r._plots[e],f=u.xaxis,h=u.yaxis,p=f._vals,d=h._vals,g=n.b+h.domain[0]*n.h,v=-h._m,m=-v*h.r2l(h.range[0],h.calendar);if(f.showgrid)for(e=0;e<p.length;e++)s=f._offset+f.l2p(p[e].x),o(\\\"grid\\\",f,s,g,s,g+h._length);if(h.showgrid)for(e=0;e<d.length;e++)l=g+m+v*d[e].x,o(\\\"grid\\\",h,f._offset,l,f._offset+f._length,l);c(t,f,h)&&(s=f._offset+f.l2p(0),o(\\\"zeroline\\\",f,s,g,s,g+h._length)),c(t,h,f)&&(l=g+m+0,o(\\\"zeroline\\\",h,f._offset,l,f._offset+f._length,l))}var y=[];for(e in a)y.push(a[e]);return y}(t))}e.exports={name:u,attr:s.attr,attrRegex:s.attrRegex,layoutAttributes:s.layoutAttributes,supplyLayoutDefaults:s.supplyLayoutDefaults,drawFramework:s.drawFramework,plot:function(t){var e=t._fullLayout,r=i.getModule(u),n=o(t.calcdata,r)[0];a(t,[\\\"ANGLE_instanced_arrays\\\",\\\"OES_element_index_uint\\\"])&&(e._hasOnlyLargeSploms&&h(t),r.plot(t,{},n))},drag:function(t){var e=t.calcdata,r=t._fullLayout;r._hasOnlyLargeSploms&&h(t);for(var n=0;n<e.length;n++){var i=e[n][0].trace,a=r._splomScenes[i.uid];\\\"splom\\\"===i.type&&a&&a.matrix&&f(t,i,a)}},updateGrid:h,clean:function(t,e,r,n){var i,a={};if(n._splomScenes){for(i=0;i<t.length;i++){var o=t[i];\\\"splom\\\"===o.type&&(a[o.uid]=1)}for(i=0;i<r.length;i++){var l=r[i];if(!a[l.uid]){var c=n._splomScenes[l.uid];c&&c.destroy&&c.destroy(),n._splomScenes[l.uid]=null,delete n._splomScenes[l.uid]}}}0===Object.keys(n._splomScenes||{}).length&&delete n._splomScenes,n._splomGrid&&!e._hasOnlyLargeSploms&&n._hasOnlyLargeSploms&&(n._splomGrid.destroy(),n._splomGrid=null,delete n._splomGrid),s.clean(t,e,r,n)},updateFx:function(t){s.updateFx(t);var e=t._fullLayout,r=e.dragmode;if(\\\"zoom\\\"===r||\\\"pan\\\"===r)for(var n=t.calcdata,i=0;i<n.length;i++){var a=n[i][0].trace;if(\\\"splom\\\"===a.type){var o=e._splomScenes[a.uid];null===o.selectBatch&&o.matrix.update(o.matrixOptions,null)}}},toSVG:s.toSVG}},{\\\"../../lib/prepare_regl\\\":709,\\\"../../plots/cartesian\\\":756,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../plots/get_data\\\":781,\\\"../../registry\\\":827,\\\"regl-line2d\\\":474}],1123:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/array_container_defaults\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"../scatter/subtypes\\\"),s=t(\\\"../scatter/marker_defaults\\\"),l=t(\\\"../parcoords/merge_length\\\"),c=/-open/;function u(t,e){function r(r,i){return n.coerce(t,e,a.dimensions,r,i)}r(\\\"label\\\");var i=r(\\\"values\\\");i&&i.length?r(\\\"visible\\\"):e.visible=!1,r(\\\"axis.type\\\")}e.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,a,r,i)}var p=i(t,e,{name:\\\"dimensions\\\",handleItemDefaults:u}),d=h(\\\"diagonal.visible\\\"),g=h(\\\"showupperhalf\\\"),v=h(\\\"showlowerhalf\\\");if(l(e,p,\\\"values\\\")&&(d||g||v)){h(\\\"text\\\"),s(t,e,r,f,h);var m=c.test(e.marker.symbol),y=o.isBubble(e);h(\\\"marker.line.width\\\",m||y?1:0),function(t,e,r,n){var i,a,o=e.dimensions,s=o.length,l=e.showupperhalf,c=e.showlowerhalf,u=e.diagonal.visible,f=new Array(s),h=new Array(s);for(i=0;i<s;i++){var p=i?i+1:\\\"\\\";f[i]=\\\"x\\\"+p,h[i]=\\\"y\\\"+p}var d=n(\\\"xaxes\\\",f),g=n(\\\"yaxes\\\",h),v=e._diag=new Array(s);e._xaxes={},e._yaxes={};var m=[],y=[];function x(t,n,i){if(t){var a=t.charAt(0),o=r._splomAxes[a];if(e[\\\"_\\\"+a+\\\"axes\\\"][t]=1,i.push(t),!(t in o)){var s=o[t]={};n&&(s.label=n.label||\\\"\\\",n.visible&&n.axis&&(s.type=n.axis.type))}}}var b=!u&&!c,_=!u&&!l;for(i=0;i<s;i++){var w=o[i],k=0===i,M=i===s-1,A=k&&b||M&&_?void 0:d[i],T=k&&_||M&&b?void 0:g[i];x(A,w,m),x(T,w,y),v[i]=[A,T]}for(i=0;i<m.length;i++)for(a=0;a<y.length;a++){var S=m[i]+y[a];i>a&&l?r._splomSubplots[S]=1:i<a&&c?r._splomSubplots[S]=1:i!==a||!u&&c&&l||(r._splomSubplots[S]=1)}(!c||!u&&l&&c)&&(r._splomGridDflt.xside=\\\"bottom\\\",r._splomGridDflt.yside=\\\"left\\\")}(0,e,f,h),n.coerceSelectionMarkerOpacity(e,h)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../parcoords/merge_length\\\":1015,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"./attributes\\\":1121}],1124:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"regl-splom\\\"),i=t(\\\"array-range\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../../components/grid\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../plots/cartesian/axis_ids\\\"),c=t(\\\"../scatter/subtypes\\\"),u=t(\\\"../scatter/calc\\\").calcMarkerSize,f=t(\\\"../scatter/calc\\\").calcAxisExpansion,h=t(\\\"../scatter/colorscale_calc\\\"),p=t(\\\"../scattergl/convert\\\").markerSelection,d=t(\\\"../scattergl/convert\\\").markerStyle,g=t(\\\"../scattergl\\\").calcHover,v=t(\\\"../../constants/numerical\\\").BADNUM,m=t(\\\"../scattergl/constants\\\").TOO_MANY_POINTS;function y(t,e){var r,i,a,o,c,u=t._fullLayout,f=u._size,h=e.trace,p=e.t,d=u._splomScenes[h.uid],g=d.matrixOptions,v=g.cdata,m=u._glcanvas.data()[0].regl,y=u.dragmode;if(0!==v.length){g.lower=h.showupperhalf,g.upper=h.showlowerhalf,g.diagonal=h.diagonal.visible;var x=h._visibleDims,b=v.length,_=d.viewOpts={};for(_.ranges=new Array(b),_.domains=new Array(b),c=0;c<x.length;c++){a=x[c];var w=_.ranges[c]=new Array(4),k=_.domains[c]=new Array(4);(r=l.getFromId(t,h._diag[a][0]))&&(w[0]=r._rl[0],w[2]=r._rl[1],k[0]=r.domain[0],k[2]=r.domain[1]),(i=l.getFromId(t,h._diag[a][1]))&&(w[1]=i._rl[0],w[3]=i._rl[1],k[1]=i.domain[0],k[3]=i.domain[1])}_.viewport=[f.l,f.b,f.w+f.l,f.h+f.b],!0===d.matrix&&(d.matrix=n(m));var M=u.clickmode.indexOf(\\\"select\\\")>-1,A=\\\"lasso\\\"===y||\\\"select\\\"===y||!!h.selectedpoints||M;if(d.selectBatch=null,d.unselectBatch=null,A){var T=h._length;if(d.selectBatch||(d.selectBatch=[],d.unselectBatch=[]),h.selectedpoints){d.selectBatch=h.selectedpoints;var S=h.selectedpoints,E={};for(a=0;a<S.length;a++)E[S[a]]=!0;var C=[];for(a=0;a<T;a++)E[a]||C.push(a);d.unselectBatch=C}var L=p.xpx=new Array(b),z=p.ypx=new Array(b);for(c=0;c<x.length;c++){if(a=x[c],r=l.getFromId(t,h._diag[a][0]))for(L[c]=new Array(T),o=0;o<T;o++)L[c][o]=r.c2p(v[c][o]);if(i=l.getFromId(t,h._diag[a][1]))for(z[c]=new Array(T),o=0;o<T;o++)z[c][o]=i.c2p(v[c][o])}d.selectBatch?(d.matrix.update(g,g),d.matrix.update(d.unselectedOptions,d.selectedOptions),d.matrix.update(_,_)):d.matrix.update(_,null)}else{var O=s.extendFlat({},g,_);d.matrix.update(O,null),p.xpx=p.ypx=null}}}function x(t,e){for(var r=e._id,n={x:0,y:1}[r.charAt(0)],i=t._visibleDims,a=0;a<i.length;a++){var o=i[a];if(t._diag[o][n]===r)return a}return!1}e.exports={moduleType:\\\"trace\\\",name:\\\"splom\\\",basePlotModule:t(\\\"./base_plot\\\"),categories:[\\\"gl\\\",\\\"regl\\\",\\\"cartesian\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),colorbar:t(\\\"../scatter/marker_colorbar\\\"),calc:function(t,e){var r,n,i,a,o,c,g=e.dimensions,y=e._length,x={},b=x.cdata=[],_=x.data=[],w=e._visibleDims=[];function k(t,r){for(var n=t.makeCalcdata({v:r.values,vcalendar:e.calendar},\\\"v\\\"),i=0;i<n.length;i++)n[i]=n[i]===v?NaN:n[i];b.push(n),_.push(\\\"log\\\"===t.type?s.simpleMap(n,t.c2l):n)}for(r=0;r<g.length;r++)if((i=g[r]).visible){if(a=l.getFromId(t,e._diag[r][0]),o=l.getFromId(t,e._diag[r][1]),a&&o&&a.type!==o.type){s.log(\\\"Skipping splom dimension \\\"+r+\\\" with conflicting axis types\\\");continue}a?(k(a,i),o&&\\\"category\\\"===o.type&&(o._categories=a._categories.slice())):k(o,i),w.push(r)}for(h(e),s.extendFlat(x,d(e)),c=b.length*y>m?2*(x.sizeAvg||Math.max(x.size,3)):u(e,y),n=0;n<w.length;n++)i=g[r=w[n]],a=l.getFromId(t,e._diag[r][0])||{},o=l.getFromId(t,e._diag[r][1])||{},f(t,e,a,o,b[n],b[n],c);var M=function(t,e){var r=t._fullLayout,n=e.uid,i=r._splomScenes;i||(i=r._splomScenes={});var a={dirty:!0},o=i[e.uid];return o||((o=i[n]=s.extendFlat({},a,{selectBatch:null,unselectBatch:null,matrix:!1,select:null})).draw=function(){o.matrix&&o.matrix.draw&&(o.selectBatch?o.matrix.draw(o.unselectBatch,o.selectBatch):o.matrix.draw()),o.dirty=!1},o.destroy=function(){o.matrix&&o.matrix.destroy&&o.matrix.destroy(),o.matrixOptions=null,o.selectBatch=null,o.unselectBatch=null,o=null}),o.dirty||s.extendFlat(o,a),o}(t,e);return M.matrix||(M.matrix=!0),M.matrixOptions=x,M.selectedOptions=p(e,e.selected),M.unselectedOptions=p(e,e.unselected),[{x:!1,y:!1,t:{},trace:e}]},plot:function(t,e,r){if(r.length)for(var n=0;n<r.length;n++)y(t,r[n][0])},hoverPoints:function(t,e,r){var n=t.cd[0].trace,i=t.scene.matrixOptions.cdata,a=t.xa,o=t.ya,s=a.c2p(e),l=o.c2p(r),c=t.distance,u=x(n,a),f=x(n,o);if(!1===u||!1===f)return[t];for(var h,p,d=i[u],v=i[f],m=c,y=0;y<d.length;y++){var b=d[y],_=v[y],w=a.c2p(b)-s,k=o.c2p(_)-l,M=Math.sqrt(w*w+k*k);M<m&&(m=p=M,h=y)}return t.index=h,t.distance=m,t.dxy=p,void 0===h?[t]:(g(t,d,v,n),[t])},selectPoints:function(t,e){var r,n=t.cd,a=n[0].trace,o=n[0].t,s=t.scene,l=s.matrixOptions.cdata,u=t.xaxis,f=t.yaxis,h=[];if(!s)return h;var p=!c.hasMarkers(a)&&!c.hasText(a);if(!0!==a.visible||p)return h;var d=x(a,u),g=x(a,f);if(!1===d||!1===g)return h;var v=o.xpx[d],m=o.ypx[g],y=l[d],b=l[g],_=null,w=null;if(!1===e||e.degenerate)w=i(o.count);else for(_=[],w=[],r=0;r<y.length;r++)e.contains([v[r],m[r]],null,r,t)?(_.push(r),h.push({pointNumber:r,x:y[r],y:b[r]})):w.push(r);if(s.selectBatch||(s.selectBatch=[],s.unselectBatch=[]),!s.selectBatch){for(r=0;r<s.count;r++)s.selectBatch=[],s.unselectBatch=[];s.matrix.update(s.unselectedOptions,s.selectedOptions)}return s.selectBatch=_,s.unselectBatch=w,h},editStyle:function(t,e){var r=e.trace,n=t._fullLayout._splomScenes[r.uid];if(n){h(r),s.extendFlat(n.matrixOptions,d(r));var i=s.extendFlat({},n.matrixOptions,n.viewOpts);n.matrix.update(i,null)}},meta:{}},a.register(o)},{\\\"../../components/grid\\\":616,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../registry\\\":827,\\\"../scatter/calc\\\":1044,\\\"../scatter/colorscale_calc\\\":1046,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/subtypes\\\":1067,\\\"../scattergl\\\":1096,\\\"../scattergl/constants\\\":1093,\\\"../scattergl/convert\\\":1094,\\\"./attributes\\\":1121,\\\"./base_plot\\\":1122,\\\"./defaults\\\":1123,\\\"array-range\\\":55,\\\"regl-splom\\\":477}],1125:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../mesh3d/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../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\\\"},starts:{x:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},y:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},z:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"},maxdisplayed:{valType:\\\"integer\\\",min:0,dflt:1e3,editType:\\\"calc\\\"},sizeref:{valType:\\\"number\\\",editType:\\\"calc\\\",min:0,dflt:1},text:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"}};s(l,n(\\\"\\\",{colorAttr:\\\"u/v/w norm\\\",showScaleDflt:!0,editTypeOverride:\\\"calc\\\"}),{colorbar:i});[\\\"opacity\\\",\\\"lightposition\\\",\\\"lighting\\\"].forEach(function(t){l[t]=a[t]}),l.hoverinfo=s({},o.hoverinfo,{editType:\\\"calc\\\",flags:[\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"u\\\",\\\"v\\\",\\\"w\\\",\\\"norm\\\",\\\"divergence\\\",\\\"text\\\",\\\"name\\\"],dflt:\\\"x+y+z+norm+text+name\\\"}),l.transforms=void 0,e.exports=l},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../mesh3d/attributes\\\":986}],1126:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\");e.exports=function(t,e){var r,i,a,o,s=e.u,l=e.v,c=e.w,u=e.x,f=e.y,h=e.z,p=Math.min(u.length,f.length,h.length,s.length,l.length,c.length),d=0;e.starts&&(i=e.starts.x||[],a=e.starts.y||[],o=e.starts.z||[],d=Math.min(i.length,a.length,o.length));var g=0,v=1/0;for(r=0;r<p;r++){var m=s[r],y=l[r],x=c[r],b=Math.sqrt(m*m+y*y+x*x);g=Math.max(g,b),v=Math.min(v,b)}n(e,[v,g],\\\"\\\",\\\"c\\\");var _=-1/0,w=1/0,k=-1/0,M=1/0,A=-1/0,T=1/0;for(r=0;r<p;r++){var S=u[r];_=Math.max(_,S),w=Math.min(w,S);var E=f[r];k=Math.max(k,E),M=Math.min(M,E);var C=h[r];A=Math.max(A,C),T=Math.min(T,C)}for(r=0;r<d;r++){var L=i[r];_=Math.max(_,L),w=Math.min(w,L);var z=a[r];k=Math.max(k,z),M=Math.min(M,z);var O=o[r];A=Math.max(A,O),T=Math.min(T,O)}e._len=p,e._slen=d,e._normMax=g,e._xbnds=[w,_],e._ybnds=[M,k],e._zbnds=[T,A]}},{\\\"../../components/colorscale/calc\\\":578}],1127:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-streamtube3d\\\"),i=n.createTubeMesh,a=t(\\\"../../lib\\\"),o=t(\\\"../../lib/gl_format_color\\\").parseColorScale,s=t(\\\"../../plots/gl3d/zip3\\\"),l={xaxis:0,yaxis:1,zaxis:2};function c(t,e){this.scene=t,this.uid=e,this.mesh=null,this.data=null}var u=c.prototype;function f(t){return a.distinctVals(t).vals}function h(t){var e=t.length;return e>2?t.slice(1,e-1):2===e?[(t[0]+t[1])/2]:t}function p(t){var e=t.length;return 1===e?[.5,.5]:[t[1]-t[0],t[e-1]-t[e-2]]}function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,c=e._len,u={};function d(t,e){var n=r[e],o=i[l[e]];return a.simpleMap(t,function(t){return n.d2l(t)*o})}u.vectors=s(d(e.u,\\\"xaxis\\\"),d(e.v,\\\"yaxis\\\"),d(e.w,\\\"zaxis\\\"),c);var g=f(e.x.slice(0,c)),v=f(e.y.slice(0,c)),m=f(e.z.slice(0,c));if(g.length*v.length*m.length>c)return{positions:[],cells:[]};var y=d(g,\\\"xaxis\\\"),x=d(v,\\\"yaxis\\\"),b=d(m,\\\"zaxis\\\");if(u.meshgrid=[y,x,b],e.starts){var _=e._slen;u.startingPositions=s(d(e.starts.x.slice(0,_),\\\"xaxis\\\"),d(e.starts.y.slice(0,_),\\\"yaxis\\\"),d(e.starts.z.slice(0,_),\\\"zaxis\\\"))}else{for(var w=x[0],k=h(y),M=h(b),A=new Array(k.length*M.length),T=0,S=0;S<k.length;S++)for(var E=0;E<M.length;E++)A[T++]=[k[S],w,M[E]];u.startingPositions=A}u.colormap=o(e.colorscale),u.tubeSize=e.sizeref,u.maxLength=e.maxdisplayed;var C=d(e._xbnds,\\\"xaxis\\\"),L=d(e._ybnds,\\\"yaxis\\\"),z=d(e._zbnds,\\\"zaxis\\\"),O=p(y),I=p(x),P=p(b),D=[[C[0]-O[0],L[0]-I[0],z[0]-P[0]],[C[1]+O[1],L[1]+I[1],z[1]+P[1]]],R=n(u,D);R.vertexIntensityBounds=[e.cmin/e._normMax,e.cmax/e._normMax];var B=e.lightposition;return R.lightPosition=[B.x,B.y,B.z],R.ambient=e.lighting.ambient,R.diffuse=e.lighting.diffuse,R.specular=e.lighting.specular,R.roughness=e.lighting.roughness,R.fresnel=e.lighting.fresnel,R.opacity=e.opacity,e._pad=R.tubeScale*e.sizeref*2,R}u.handlePick=function(t){var e=this.scene.fullSceneLayout,r=this.scene.dataScale;function n(t,n){var i=e[n],a=r[l[n]];return i.l2c(t)/a}if(t.object===this.mesh){var i=t.data.position,a=t.data.velocity;return t.traceCoordinate=[n(i[0],\\\"xaxis\\\"),n(i[1],\\\"yaxis\\\"),n(i[2],\\\"zaxis\\\"),n(a[0],\\\"xaxis\\\"),n(a[1],\\\"yaxis\\\"),n(a[2],\\\"zaxis\\\"),t.data.intensity*this.data._normMax,t.data.divergence],t.textLabel=this.data.text,!0}},u.update=function(t){this.data=t;var e=d(this.scene,t);this.mesh.update(e)},u.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},e.exports=function(t,e){var r=t.glplot.gl,n=d(t,e),a=i(r,n),o=new c(t,e.uid);return o.mesh=a,o.data=e,a._trace=o,t.glplot.add(a),o}},{\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../plots/gl3d/zip3\\\":798,\\\"gl-streamtube3d\\\":301}],1128:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/defaults\\\"),a=t(\\\"./attributes\\\");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s(\\\"u\\\"),c=s(\\\"v\\\"),u=s(\\\"w\\\"),f=s(\\\"x\\\"),h=s(\\\"y\\\"),p=s(\\\"z\\\");l&&l.length&&c&&c.length&&u&&u.length&&f&&f.length&&h&&h.length&&p&&p.length?(s(\\\"starts.x\\\"),s(\\\"starts.y\\\"),s(\\\"starts.z\\\"),s(\\\"maxdisplayed\\\"),s(\\\"sizeref\\\"),s(\\\"lighting.ambient\\\"),s(\\\"lighting.diffuse\\\"),s(\\\"lighting.specular\\\"),s(\\\"lighting.roughness\\\"),s(\\\"lighting.fresnel\\\"),s(\\\"lightposition.x\\\"),s(\\\"lightposition.y\\\"),s(\\\"lightposition.z\\\"),i(t,e,o,s,{prefix:\\\"\\\",cLetter:\\\"c\\\"}),s(\\\"text\\\"),e._length=null):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"./attributes\\\":1125}],1129:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"streamtube\\\",basePlotModule:t(\\\"../../plots/gl3d\\\"),categories:[\\\"gl3d\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),colorbar:{min:\\\"cmin\\\",max:\\\"cmax\\\"},calc:t(\\\"./calc\\\"),plot:t(\\\"./convert\\\"),eventData:function(t,e){return t.tubex=t.x,t.tubey=t.y,t.tubez=t.z,t.tubeu=e.traceCoordinate[3],t.tubev=e.traceCoordinate[4],t.tubew=e.traceCoordinate[5],t.norm=e.traceCoordinate[6],t.divergence=e.traceCoordinate[7],delete t.x,delete t.y,delete t.z,t},meta:{}}},{\\\"../../plots/gl3d\\\":787,\\\"./attributes\\\":1125,\\\"./calc\\\":1126,\\\"./convert\\\":1127,\\\"./defaults\\\":1128}],1130:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat,l=t(\\\"../../plot_api/edit_types\\\").overrideAll;function c(t){return{show:{valType:\\\"boolean\\\",dflt:!1},project:{x:{valType:\\\"boolean\\\",dflt:!1},y:{valType:\\\"boolean\\\",dflt:!1},z:{valType:\\\"boolean\\\",dflt:!1}},color:{valType:\\\"color\\\",dflt:n.defaultLine},usecolormap:{valType:\\\"boolean\\\",dflt:!1},width:{valType:\\\"number\\\",min:1,max:16,dflt:2},highlight:{valType:\\\"boolean\\\",dflt:!0},highlightcolor:{valType:\\\"color\\\",dflt:n.defaultLine},highlightwidth:{valType:\\\"number\\\",min:1,max:16,dflt:2}}}var u=e.exports=l(s({z:{valType:\\\"data_array\\\"},x:{valType:\\\"data_array\\\"},y:{valType:\\\"data_array\\\"},text:{valType:\\\"string\\\",dflt:\\\"\\\",arrayOk:!0},surfacecolor:{valType:\\\"data_array\\\"}},i(\\\"\\\",{colorAttr:\\\"z or surfacecolor\\\",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:\\\"calc\\\"}),{colorbar:a,contours:{x:c(),y:c(),z:c()},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},_deprecated:{zauto:s({},i.zauto,{}),zmin:s({},i.zmin,{}),zmax:s({},i.zmax,{})},hoverinfo:s({},o.hoverinfo)}),\\\"calc\\\",\\\"nested\\\");u.x.editType=u.y.editType=u.z.editType=\\\"calc+clearAxisTypes\\\",u.transforms=void 0},{\\\"../../components/color\\\":570,\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741}],1131:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\");e.exports=function(t,e){e.surfacecolor?n(e,e.surfacecolor,\\\"\\\",\\\"c\\\"):n(e,e.z,\\\"\\\",\\\"c\\\")}},{\\\"../../components/colorscale/calc\\\":578}],1132:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-surface3d\\\"),i=t(\\\"ndarray\\\"),a=t(\\\"ndarray-homography\\\"),o=t(\\\"ndarray-fill\\\"),s=t(\\\"ndarray-ops\\\"),l=t(\\\"../../lib\\\").isArrayOrTypedArray,c=t(\\\"../../lib/gl_format_color\\\").parseColorScale,u=t(\\\"../../lib/str2rgbarray\\\"),f=128;function h(t,e,r){this.scene=t,this.uid=r,this.surface=e,this.data=null,this.showContour=[!1,!1,!1],this.dataScale=1}var p=h.prototype;function d(t){var e=t.shape,r=[e[0]+2,e[1]+2],n=i(new Float32Array(r[0]*r[1]),r);return s.assign(n.lo(1,1).hi(e[0],e[1]),t),s.assign(n.lo(1).hi(e[0],1),t.hi(e[0],1)),s.assign(n.lo(1,r[1]-1).hi(e[0],1),t.lo(0,e[1]-1).hi(e[0],1)),s.assign(n.lo(0,1).hi(1,e[1]),t.hi(1)),s.assign(n.lo(r[0]-1,1).hi(1,e[1]),t.lo(e[0]-1)),n.set(0,0,t.get(0,0)),n.set(0,r[1]-1,t.get(0,e[1]-1)),n.set(r[0]-1,0,t.get(e[0]-1,0)),n.set(r[0]-1,r[1]-1,t.get(e[0]-1,e[1]-1)),n}p.handlePick=function(t){if(t.object===this.surface){var e=t.index=[Math.min(0|Math.round(t.data.index[0]/this.dataScale-1),this.data.z[0].length-1),Math.min(0|Math.round(t.data.index[1]/this.dataScale-1),this.data.z.length-1)],r=[0,0,0];l(this.data.x)?l(this.data.x[0])?r[0]=this.data.x[e[1]][e[0]]:r[0]=this.data.x[e[0]]:r[0]=e[0],l(this.data.y)?l(this.data.y[0])?r[1]=this.data.y[e[1]][e[0]]:r[1]=this.data.y[e[1]]:r[1]=e[1],r[2]=this.data.z[e[1]][e[0]],t.traceCoordinate=r;var n=this.scene.fullSceneLayout;t.dataCoordinate=[n.xaxis.d2l(r[0],0,this.data.xcalendar)*this.scene.dataScale[0],n.yaxis.d2l(r[1],0,this.data.ycalendar)*this.scene.dataScale[1],n.zaxis.d2l(r[2],0,this.data.zcalendar)*this.scene.dataScale[2]];var i=this.data.text;return Array.isArray(i)&&i[e[1]]&&void 0!==i[e[1]][e[0]]?t.textLabel=i[e[1]][e[0]]:t.textLabel=i||\\\"\\\",t.data.dataCoordinate=t.dataCoordinate.slice(),this.surface.highlight(t.data),this.scene.glplot.spikes.position=t.dataCoordinate,!0}},p.setContourLevels=function(){for(var t=[[],[],[]],e=!1,r=0;r<3;++r)this.showContour[r]&&(e=!0,t[r]=this.scene.contourLevels[r]);e&&this.surface.update({levels:t})},p.update=function(t){var e,r=this.scene,n=r.fullSceneLayout,s=this.surface,h=t.opacity,p=c(t.colorscale,h),g=t.z,v=t.x,m=t.y,y=n.xaxis,x=n.yaxis,b=n.zaxis,_=r.dataScale,w=g[0].length,k=t._ylength,M=[i(new Float32Array(w*k),[w,k]),i(new Float32Array(w*k),[w,k]),i(new Float32Array(w*k),[w,k])],A=M[0],T=M[1],S=r.contourLevels;this.data=t;var E=t.xcalendar,C=t.ycalendar,L=t.zcalendar;o(M[2],function(t,e){return b.d2l(g[e][t],0,L)*_[2]}),l(v)?l(v[0])?o(A,function(t,e){return y.d2l(v[e][t],0,E)*_[0]}):o(A,function(t){return y.d2l(v[t],0,E)*_[0]}):o(A,function(t){return y.d2l(t,0,E)*_[0]}),l(v)?l(m[0])?o(T,function(t,e){return x.d2l(m[e][t],0,C)*_[1]}):o(T,function(t,e){return x.d2l(m[e],0,C)*_[1]}):o(T,function(t,e){return x.d2l(e,0,E)*_[1]});var z={colormap:p,levels:[[],[],[]],showContour:[!0,!0,!0],showSurface:!t.hidesurface,contourProject:[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],contourWidth:[1,1,1],contourColor:[[1,1,1,1],[1,1,1,1],[1,1,1,1]],contourTint:[1,1,1],dynamicColor:[[1,1,1,1],[1,1,1,1],[1,1,1,1]],dynamicWidth:[1,1,1],dynamicTint:[1,1,1],opacity:t.opacity};if(z.intensityBounds=[t.cmin,t.cmax],t.surfacecolor){var O=i(new Float32Array(w*k),[w,k]);o(O,function(e,r){return t.surfacecolor[r][e]}),M.push(O)}else z.intensityBounds[0]*=_[2],z.intensityBounds[1]*=_[2];this.dataScale=function(t){var e=Math.max(t[0].shape[0],t[0].shape[1]);if(e<f){for(var r=f/e,n=[0|Math.floor(t[0].shape[0]*r+1),0|Math.floor(t[0].shape[1]*r+1)],o=n[0]*n[1],s=0;s<t.length;++s){var l=d(t[s]),c=i(new Float32Array(o),n);a(c,l,[r,0,0,0,r,0,0,0,1]),t[s]=c}return r}return 1}(M),t.surfacecolor&&(z.intensity=M.pop());var I=[!0,!0,!0],P=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];for(e=0;e<3;++e){var D=t.contours[P[e]];I[e]=D.highlight,z.showContour[e]=D.show||D.highlight,z.showContour[e]&&(z.contourProject[e]=[D.project.x,D.project.y,D.project.z],D.show?(this.showContour[e]=!0,z.levels[e]=S[e],s.highlightColor[e]=z.contourColor[e]=u(D.color),D.usecolormap?s.highlightTint[e]=z.contourTint[e]=0:s.highlightTint[e]=z.contourTint[e]=1,z.contourWidth[e]=D.width):this.showContour[e]=!1,D.highlight&&(z.dynamicColor[e]=u(D.highlightcolor),z.dynamicWidth[e]=D.highlightwidth))}(function(t){var e=t[0].rgb,r=t[t.length-1].rgb;return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]&&e[3]===r[3]})(p)&&(z.vertexColor=!0),z.coords=M,s.update(z),s.visible=t.visible,s.enableDynamic=I,s.enableHighlight=I,s.snapToData=!0,\\\"lighting\\\"in t&&(s.ambientLight=t.lighting.ambient,s.diffuseLight=t.lighting.diffuse,s.specularLight=t.lighting.specular,s.roughness=t.lighting.roughness,s.fresnel=t.lighting.fresnel),\\\"lightposition\\\"in t&&(s.lightPosition=[t.lightposition.x,t.lightposition.y,t.lightposition.z]),h&&h<1&&(s.supportsTransparency=!0)},p.dispose=function(){this.scene.glplot.remove(this.surface),this.surface.dispose()},e.exports=function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new h(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}},{\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../lib/str2rgbarray\\\":719,\\\"gl-surface3d\\\":303,ndarray:433,\\\"ndarray-fill\\\":423,\\\"ndarray-homography\\\":425,\\\"ndarray-ops\\\":427}],1133:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"./attributes\\\");function s(t,e,r){e in t&&!(r in t)&&(t[r]=t[e])}e.exports=function(t,e,r,l){var c,u;function f(r,n){return i.coerce(t,e,o,r,n)}var h=f(\\\"z\\\");if(h){var p=f(\\\"x\\\");f(\\\"y\\\"),e._xlength=Array.isArray(p)&&i.isArrayOrTypedArray(p[0])?h.length:h[0].length,e._ylength=h.length,n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\",\\\"z\\\"],l),f(\\\"text\\\"),[\\\"lighting.ambient\\\",\\\"lighting.diffuse\\\",\\\"lighting.specular\\\",\\\"lighting.roughness\\\",\\\"lighting.fresnel\\\",\\\"lightposition.x\\\",\\\"lightposition.y\\\",\\\"lightposition.z\\\",\\\"hidesurface\\\",\\\"opacity\\\"].forEach(function(t){f(t)});var d=f(\\\"surfacecolor\\\");f(\\\"colorscale\\\");var g=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];for(c=0;c<3;++c){var v=\\\"contours.\\\"+g[c],m=f(v+\\\".show\\\"),y=f(v+\\\".highlight\\\");if(m||y)for(u=0;u<3;++u)f(v+\\\".project.\\\"+g[u]);m&&(f(v+\\\".color\\\"),f(v+\\\".width\\\"),f(v+\\\".usecolormap\\\")),y&&(f(v+\\\".highlightcolor\\\"),f(v+\\\".highlightwidth\\\"))}d||(s(t,\\\"zmin\\\",\\\"cmin\\\"),s(t,\\\"zmax\\\",\\\"cmax\\\"),s(t,\\\"zauto\\\",\\\"cauto\\\")),a(t,e,l,f,{prefix:\\\"\\\",cLetter:\\\"c\\\"}),e._length=null}else e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":1130}],1134:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar={min:\\\"cmin\\\",max:\\\"cmax\\\"},n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./convert\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"surface\\\",n.basePlotModule=t(\\\"../../plots/gl3d\\\"),n.categories=[\\\"gl3d\\\",\\\"2dMap\\\",\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"../../plots/gl3d\\\":787,\\\"./attributes\\\":1130,\\\"./calc\\\":1131,\\\"./convert\\\":1132,\\\"./defaults\\\":1133}],1135:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/annotations/attributes\\\"),i=t(\\\"../../lib/extend\\\").extendFlat,a=t(\\\"../../plot_api/edit_types\\\").overrideAll,o=t(\\\"../../plots/font_attributes\\\"),s=t(\\\"../../plots/domain\\\").attributes;(e.exports=a({domain:s({name:\\\"table\\\",trace:!0}),columnwidth:{valType:\\\"number\\\",arrayOk:!0,dflt:null},columnorder:{valType:\\\"data_array\\\"},header:{values:{valType:\\\"data_array\\\",dflt:[]},format:{valType:\\\"data_array\\\",dflt:[]},prefix:{valType:\\\"string\\\",arrayOk:!0,dflt:null},suffix:{valType:\\\"string\\\",arrayOk:!0,dflt:null},height:{valType:\\\"number\\\",dflt:28},align:i({},n.align,{arrayOk:!0}),line:{width:{valType:\\\"number\\\",arrayOk:!0,dflt:1},color:{valType:\\\"color\\\",arrayOk:!0,dflt:\\\"grey\\\"}},fill:{color:{valType:\\\"color\\\",arrayOk:!0,dflt:\\\"white\\\"}},font:i({},o({arrayOk:!0}))},cells:{values:{valType:\\\"data_array\\\",dflt:[]},format:{valType:\\\"data_array\\\",dflt:[]},prefix:{valType:\\\"string\\\",arrayOk:!0,dflt:null},suffix:{valType:\\\"string\\\",arrayOk:!0,dflt:null},height:{valType:\\\"number\\\",dflt:20},align:i({},n.align,{arrayOk:!0}),line:{width:{valType:\\\"number\\\",arrayOk:!0,dflt:1},color:{valType:\\\"color\\\",arrayOk:!0,dflt:\\\"grey\\\"}},fill:{color:{valType:\\\"color\\\",arrayOk:!0,dflt:\\\"white\\\"}},font:i({},o({arrayOk:!0}))}},\\\"calc\\\",\\\"from-root\\\")).transforms=void 0},{\\\"../../components/annotations/attributes\\\":553,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771}],1136:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/get_data\\\").getModuleCalcData,i=t(\\\"./plot\\\");r.name=\\\"table\\\",r.plot=function(t){var e=n(t.calcdata,\\\"table\\\")[0];e.length&&i(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"table\\\"),a=e._has&&e._has(\\\"table\\\");i&&!a&&n._paperdiv.selectAll(\\\".table\\\").remove()}},{\\\"../../plots/get_data\\\":781,\\\"./plot\\\":1143}],1137:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/gup\\\").wrap;e.exports=function(){return n({})}},{\\\"../../lib/gup\\\":693}],1138:[function(t,e,r){\\\"use strict\\\";e.exports={cellPad:8,columnExtentOffset:10,columnTitleOffset:28,emptyHeaderHeight:16,latexCheck:/^\\\\$.*\\\\$$/,goldenRatio:1.618,lineBreaker:\\\"<br>\\\",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\\\"}}},{}],1139:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"../../lib/extend\\\").extendFlat,a=t(\\\"fast-isnumeric\\\");function o(t){if(Array.isArray(t)){for(var e=0,r=0;r<t.length;r++)e=Math.max(e,o(t[r]));return e}return t}function s(t,e){return t+e}function l(t){var e,r=t.slice(),n=1/0,i=0;for(e=0;e<r.length;e++)Array.isArray(r[e])||(r[e]=[r[e]]),n=Math.min(n,r[e].length),i=Math.max(i,r[e].length);if(n!==i)for(e=0;e<r.length;e++){var a=i-r[e].length;a&&(r[e]=r[e].concat(c(a)))}return r}function c(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=\\\"\\\";return e}function u(t){return t.calcdata.columns.reduce(function(e,r){return r.xIndex<t.xIndex?e+r.columnWidth:e},0)}function f(t,e){return Object.keys(t).map(function(r){return i({},t[r],{auxiliaryBlocks:e})})}function h(t,e){for(var r,n={},i=0,a=0,o={firstRowIndex:null,lastRowIndex:null,rows:[]},s=0,l=0,c=0;c<t.length;c++)r=t[c],o.rows.push({rowIndex:c,rowHeight:r}),((a+=r)>=e||c===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=c,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=c+1,a=0);return n}e.exports=function(t,e){var r=l(e.cells.values),p=function(t){return t.slice(e.header.values.length,t.length)},d=l(e.header.values);d.length&&!d[0].length&&(d[0]=[\\\"\\\"],d=l(d));var g=d.concat(p(r).map(function(){return c((d[0]||[\\\"\\\"]).length)})),v=e.domain,m=Math.floor(t._fullLayout._size.w*(v.x[1]-v.x[0])),y=Math.floor(t._fullLayout._size.h*(v.y[1]-v.y[0])),x=e.header.values.length?g[0].map(function(){return e.header.height}):[n.emptyHeaderHeight],b=r.length?r[0].map(function(){return e.cells.height}):[],_=x.reduce(s,0),w=h(b,y-_+n.uplift),k=f(h(x,_),[]),M=f(w,k),A={},T=e._fullInput.columnorder.concat(p(r.map(function(t,e){return e}))),S=g.map(function(t,r){var n=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(r,e.columnwidth.length-1)]:e.columnwidth;return a(n)?Number(n):1}),E=S.reduce(s,0);S=S.map(function(t){return t/E*m});var C=Math.max(o(e.header.line.width),o(e.cells.line.width)),L={key:e.index,translateX:v.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-v.y[1]),size:t._fullLayout._size,width:m,maxLineWidth:C,height:y,columnOrder:T,groupHeight:y,rowBlocks:M,headerRowBlocks:k,scrollY:0,cells:i({},e.cells,{values:r}),headerCells:i({},e.header,{values:g}),gdColumns:g.map(function(t){return t[0]}),gdColumnsOriginalOrder:g.map(function(t){return t[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:g.map(function(t,e){var r=A[t];return A[t]=(r||0)+1,{key:t+\\\"__\\\"+A[t],label:t,specIndex:e,xIndex:T[e],xScale:u,x:void 0,calcdata:void 0,columnWidth:S[e]}})};return L.columns.forEach(function(t){t.calcdata=L,t.x=u(t)}),L}},{\\\"../../lib/extend\\\":685,\\\"./constants\\\":1138,\\\"fast-isnumeric\\\":214}],1140:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/extend\\\").extendFlat;r.splitToPanels=function(t){var e=[0,0],r=n({},t,{key:\\\"header\\\",type:\\\"header\\\",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:n({},t.calcdata,{cells:t.calcdata.headerCells})});return[n({},t,{key:\\\"cells1\\\",type:\\\"cells\\\",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),n({},t,{key:\\\"cells2\\\",type:\\\"cells\\\",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},r.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0,n=e?r+e.rows.length:0;return[r,n]}(t);return(t.values||[]).slice(e[0],e[1]).map(function(r,n){return{keyWithinBlock:n+(\\\"string\\\"==typeof r&&r.match(/[<$&> ]/)?\\\"_keybuster_\\\"+Math.random():\\\"\\\"),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}})}},{\\\"../../lib/extend\\\":685}],1141:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"../../plots/domain\\\").defaults;e.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}a(e,o,s),s(\\\"columnwidth\\\"),s(\\\"header.values\\\"),s(\\\"header.format\\\"),s(\\\"header.align\\\"),s(\\\"header.prefix\\\"),s(\\\"header.suffix\\\"),s(\\\"header.height\\\"),s(\\\"header.line.width\\\"),s(\\\"header.line.color\\\"),s(\\\"header.fill.color\\\"),n.coerceFont(s,\\\"header.font\\\",n.extendFlat({},o.font)),function(t,e){for(var r=t.columnorder||[],n=t.header.values.length,i=r.slice(0,n),a=i.slice().sort(function(t,e){return t-e}),o=i.map(function(t){return a.indexOf(t)}),s=o.length;s<n;s++)o.push(s);e(\\\"columnorder\\\",o)}(e,s),s(\\\"cells.values\\\"),s(\\\"cells.format\\\"),s(\\\"cells.align\\\"),s(\\\"cells.prefix\\\"),s(\\\"cells.suffix\\\"),s(\\\"cells.height\\\"),s(\\\"cells.line.width\\\"),s(\\\"cells.line.color\\\"),s(\\\"cells.fill.color\\\"),n.coerceFont(s,\\\"cells.font\\\",n.extendFlat({},o.font)),e._length=null}},{\\\"../../lib\\\":696,\\\"../../plots/domain\\\":770,\\\"./attributes\\\":1135}],1142:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"table\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1135,\\\"./base_plot\\\":1136,\\\"./calc\\\":1137,\\\"./defaults\\\":1141,\\\"./plot\\\":1143}],1143:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"d3\\\"),a=t(\\\"../../lib/gup\\\"),o=t(\\\"../../components/drawing\\\"),s=t(\\\"../../lib/svg_text_utils\\\"),l=t(\\\"../../lib\\\").raiseToTop,c=t(\\\"../../lib\\\").cancelTransition,u=t(\\\"./data_preparation_helper\\\"),f=t(\\\"./data_split_helpers\\\"),h=t(\\\"../../components/color\\\");function p(t){return Math.ceil(t.calcdata.maxLineWidth/2)}function d(t,e){return\\\"clip\\\"+t._fullLayout._uid+\\\"_scrollAreaBottomClip_\\\"+e.key}function g(t,e){return\\\"clip\\\"+t._fullLayout._uid+\\\"_columnBoundaryClippath_\\\"+e.calcdata.key+\\\"_\\\"+e.specIndex}function v(t){return[].concat.apply([],t.map(function(t){return t})).map(function(t){return t.__data__})}function m(t,e,r){var o=t.selectAll(\\\".\\\"+n.cn.scrollbarKit).data(a.repeat,a.keyFun);o.enter().append(\\\"g\\\").classed(n.cn.scrollbarKit,!0).style(\\\"shape-rendering\\\",\\\"geometricPrecision\\\"),o.each(function(t){var e=t.scrollbarState;e.totalHeight=function(t){var e=t.rowBlocks;return I(e,e.length-1)+(e.length?P(e[e.length-1],1/0):1)}(t),e.scrollableAreaHeight=t.groupHeight-A(t),e.currentlyVisibleHeight=Math.min(e.totalHeight,e.scrollableAreaHeight),e.ratio=e.currentlyVisibleHeight/e.totalHeight,e.barLength=Math.max(e.ratio*e.currentlyVisibleHeight,n.goldenRatio*n.scrollbarWidth),e.barWiggleRoom=e.currentlyVisibleHeight-e.barLength,e.wiggleRoom=Math.max(0,e.totalHeight-e.scrollableAreaHeight),e.topY=0===e.barWiggleRoom?0:t.scrollY/e.wiggleRoom*e.barWiggleRoom,e.bottomY=e.topY+e.barLength,e.dragMultiplier=e.wiggleRoom/e.barWiggleRoom}).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+(t.width+n.scrollbarWidth/2+n.scrollbarOffset)+\\\" \\\"+A(t)+\\\")\\\"});var s=o.selectAll(\\\".\\\"+n.cn.scrollbar).data(a.repeat,a.keyFun);s.enter().append(\\\"g\\\").classed(n.cn.scrollbar,!0);var l=s.selectAll(\\\".\\\"+n.cn.scrollbarSlider).data(a.repeat,a.keyFun);l.enter().append(\\\"g\\\").classed(n.cn.scrollbarSlider,!0),l.attr(\\\"transform\\\",function(t){return\\\"translate(0 \\\"+(t.scrollbarState.topY||0)+\\\")\\\"});var c=l.selectAll(\\\".\\\"+n.cn.scrollbarGlyph).data(a.repeat,a.keyFun);c.enter().append(\\\"line\\\").classed(n.cn.scrollbarGlyph,!0).attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",n.scrollbarWidth).attr(\\\"stroke-linecap\\\",\\\"round\\\").attr(\\\"y1\\\",n.scrollbarWidth/2),c.attr(\\\"y2\\\",function(t){return t.scrollbarState.barLength-n.scrollbarWidth/2}).attr(\\\"stroke-opacity\\\",function(t){return t.columnDragInProgress||!t.scrollbarState.barWiggleRoom||r?0:.4}),c.transition().delay(0).duration(0),c.transition().delay(n.scrollbarHideDelay).duration(n.scrollbarHideDuration).attr(\\\"stroke-opacity\\\",0);var u=s.selectAll(\\\".\\\"+n.cn.scrollbarCaptureZone).data(a.repeat,a.keyFun);u.enter().append(\\\"line\\\").classed(n.cn.scrollbarCaptureZone,!0).attr(\\\"stroke\\\",\\\"white\\\").attr(\\\"stroke-opacity\\\",.01).attr(\\\"stroke-width\\\",n.scrollbarCaptureWidth).attr(\\\"stroke-linecap\\\",\\\"butt\\\").attr(\\\"y1\\\",0).on(\\\"mousedown\\\",function(r){var n=i.event.y,a=this.getBoundingClientRect(),o=r.scrollbarState,s=n-a.top,l=i.scale.linear().domain([0,o.scrollableAreaHeight]).range([0,o.totalHeight]).clamp(!0);o.topY<=s&&s<=o.bottomY||S(e,t,null,l(s-o.barLength/2))(r)}).call(i.behavior.drag().origin(function(t){return i.event.stopPropagation(),t.scrollbarState.scrollbarScrollInProgress=!0,t}).on(\\\"drag\\\",S(e,t)).on(\\\"dragend\\\",function(){})),u.attr(\\\"y2\\\",function(t){return t.scrollbarState.scrollableAreaHeight}),e._context.staticPlot&&(c.remove(),u.remove())}function y(t,e,r,s){var l=function(t){var e=t.selectAll(\\\".\\\"+n.cn.columnCell).data(f.splitToCells,function(t){return t.keyWithinBlock});return e.enter().append(\\\"g\\\").classed(n.cn.columnCell,!0),e.exit().remove(),e}(function(t){var e=t.selectAll(\\\".\\\"+n.cn.columnCells).data(a.repeat,a.keyFun);return e.enter().append(\\\"g\\\").classed(n.cn.columnCells,!0),e.exit().remove(),e}(r));!function(t){t.each(function(t,e){var r=t.calcdata.cells.font,n=t.column.specIndex,i={size:_(r.size,n,e),color:_(r.color,n,e),family:_(r.family,n,e)};t.rowNumber=t.key,t.align=_(t.calcdata.cells.align,n,e),t.cellBorderWidth=_(t.calcdata.cells.line.width,n,e),t.font=i})}(l),function(t){t.attr(\\\"width\\\",function(t){return t.column.columnWidth}).attr(\\\"stroke-width\\\",function(t){return t.cellBorderWidth}).each(function(t){var e=i.select(this);h.stroke(e,_(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),h.fill(e,_(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))})}(function(t){var e=t.selectAll(\\\".\\\"+n.cn.cellRect).data(a.repeat,function(t){return t.keyWithinBlock});return e.enter().append(\\\"rect\\\").classed(n.cn.cellRect,!0),e}(l));var c=function(t){var e=t.selectAll(\\\".\\\"+n.cn.cellText).data(a.repeat,function(t){return t.keyWithinBlock});return e.enter().append(\\\"text\\\").classed(n.cn.cellText,!0).style(\\\"cursor\\\",function(){return\\\"auto\\\"}).on(\\\"mousedown\\\",function(){i.event.stopPropagation()}),e}(function(t){var e=t.selectAll(\\\".\\\"+n.cn.cellTextHolder).data(a.repeat,function(t){return t.keyWithinBlock});return e.enter().append(\\\"g\\\").classed(n.cn.cellTextHolder,!0).style(\\\"shape-rendering\\\",\\\"geometricPrecision\\\"),e}(l));!function(t){t.each(function(t){o.font(i.select(this),t.font)})}(c),x(c,e,s,t),O(l)}function x(t,e,r,a){t.text(function(t){var e=t.column.specIndex,r=t.rowNumber,a=t.value,o=\\\"string\\\"==typeof a,s=o&&a.match(/<br>/i),l=!o||s;t.mayHaveMarkup=o&&a.match(/[<&>]/);var c,u=\\\"string\\\"==typeof(c=a)&&c.match(n.latexCheck);t.latex=u;var f,h,p=u?\\\"\\\":_(t.calcdata.cells.prefix,e,r)||\\\"\\\",d=u?\\\"\\\":_(t.calcdata.cells.suffix,e,r)||\\\"\\\",g=u?null:_(t.calcdata.cells.format,e,r)||null,v=p+(g?i.format(g)(t.value):t.value)+d;if(t.wrappingNeeded=!t.wrapped&&!l&&!u&&(f=b(v)),t.cellHeightMayIncrease=s||u||t.mayHaveMarkup||(void 0===f?b(v):f),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var m=(\\\" \\\"===n.wrapSplitCharacter?v.replace(/<a href=/gi,\\\"<a_href=\\\"):v).split(n.wrapSplitCharacter),y=\\\" \\\"===n.wrapSplitCharacter?m.map(function(t){return t.replace(/<a_href=/gi,\\\"<a href=\\\")}):m;t.fragments=y.map(function(t){return{text:t,width:null}}),t.fragments.push({fragment:n.wrapSpacer,width:null}),h=y.join(n.lineBreaker)+n.lineBreaker+n.wrapSpacer}else delete t.fragments,h=v;return h}).attr(\\\"dy\\\",function(t){return t.needsConvertToTspans?0:\\\"0.75em\\\"}).each(function(t){var o=i.select(this),l=t.wrappingNeeded?C:L;t.needsConvertToTspans?s.convertToTspans(o,a,l(r,this,e,a,t)):i.select(this.parentNode).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+z(t)+\\\" \\\"+n.cellPad+\\\")\\\"}).attr(\\\"text-anchor\\\",function(t){return{left:\\\"start\\\",center:\\\"middle\\\",right:\\\"end\\\"}[t.align]})})}function b(t){return-1!==t.indexOf(n.wrapSplitCharacter)}function _(t,e,r){if(Array.isArray(t)){var n=t[Math.min(e,t.length-1)];return Array.isArray(n)?n[Math.min(r,n.length-1)]:n}return t}function w(t,e,r){t.transition().ease(n.releaseTransitionEase).duration(n.releaseTransitionDuration).attr(\\\"transform\\\",\\\"translate(\\\"+e.x+\\\" \\\"+r+\\\")\\\")}function k(t){return\\\"cells\\\"===t.type}function M(t){return\\\"header\\\"===t.type}function A(t){return(t.rowBlocks.length?t.rowBlocks[0].auxiliaryBlocks:[]).reduce(function(t,e){return t+P(e,1/0)},0)}function T(t,e,r){var n=v(e)[0];if(void 0!==n){var i=n.rowBlocks,a=n.calcdata,o=I(i,i.length),s=n.calcdata.groupHeight-A(n),l=a.scrollY=Math.max(0,Math.min(o-s,a.scrollY)),c=function(t,e,r){for(var n=[],i=0,a=0;a<t.length;a++){for(var o=t[a],s=o.rows,l=0,c=0;c<s.length;c++)l+=s[c].rowHeight;o.allRowsHeight=l,e<i+l&&e+r>i&&n.push(a),i+=l}return n}(i,l,s);1===c.length&&(c[0]===i.length-1?c.unshift(c[0]-1):c.push(c[0]+1)),c[0]%2&&c.reverse(),e.each(function(t,e){t.page=c[e],t.scrollY=l}),e.attr(\\\"transform\\\",function(t){return\\\"translate(0 \\\"+(I(t.rowBlocks,t.page)-t.scrollY)+\\\")\\\"}),t&&(E(t,r,e,c,n.prevPages,n,0),E(t,r,e,c,n.prevPages,n,1),m(r,t))}}function S(t,e,r,a){return function(o){var s=o.calcdata?o.calcdata:o,l=e.filter(function(t){return s.key===t.key}),c=r||s.scrollbarState.dragMultiplier;s.scrollY=void 0===a?s.scrollY+c*i.event.dy:a;var u=l.selectAll(\\\".\\\"+n.cn.yColumn).selectAll(\\\".\\\"+n.cn.columnBlock).filter(k);T(t,u,l)}}function E(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout(function(){var a=r.filter(function(t,e){return e===o&&n[e]!==i[e]});y(t,e,a,r),i[o]=n[o]}))}function C(t,e,r,a){return function(){var o=i.select(e.parentNode);o.each(function(t){var e=t.fragments;o.selectAll(\\\"tspan.line\\\").each(function(t,r){e[r].width=this.getComputedTextLength()});var r,i,a=e[e.length-1].width,s=e.slice(0,-1),l=[],c=0,u=t.column.columnWidth-2*n.cellPad;for(t.value=\\\"\\\";s.length;)c+(i=(r=s.shift()).width+a)>u&&(t.value+=l.join(n.wrapSpacer)+n.lineBreaker,l=[],c=0),l.push(r.text),c+=i;c&&(t.value+=l.join(n.wrapSpacer)),t.wrapped=!0}),o.selectAll(\\\"tspan.line\\\").remove(),x(o.select(\\\".\\\"+n.cn.cellText),r,t,a),i.select(e.parentNode.parentNode).call(O)}}function L(t,e,r,a,o){return function(){if(!o.settledY){var s=i.select(e.parentNode),l=R(o),c=o.key-l.firstRowIndex,u=l.rows[c].rowHeight,f=o.cellHeightMayIncrease?e.parentNode.getBoundingClientRect().height+2*n.cellPad:u,h=Math.max(f,u);h-l.rows[c].rowHeight&&(l.rows[c].rowHeight=h,t.selectAll(\\\".\\\"+n.cn.columnCell).call(O),T(null,t.filter(k),0),m(r,a,!0)),s.attr(\\\"transform\\\",function(){var t=this.parentNode.getBoundingClientRect(),e=i.select(this.parentNode).select(\\\".\\\"+n.cn.cellRect).node().getBoundingClientRect(),r=this.transform.baseVal.consolidate(),a=e.top-t.top+(r?r.matrix.f:n.cellPad);return\\\"translate(\\\"+z(o,i.select(this.parentNode).select(\\\".\\\"+n.cn.cellTextHolder).node().getBoundingClientRect().width)+\\\" \\\"+a+\\\")\\\"}),o.settledY=!0}}}function z(t,e){switch(t.align){case\\\"left\\\":return n.cellPad;case\\\"right\\\":return t.column.columnWidth-(e||0)-n.cellPad;case\\\"center\\\":return(t.column.columnWidth-(e||0))/2;default:return n.cellPad}}function O(t){t.attr(\\\"transform\\\",function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce(function(t,e){return t+P(e,1/0)},0);return\\\"translate(0 \\\"+(P(R(t),t.key)+e)+\\\")\\\"}).selectAll(\\\".\\\"+n.cn.cellRect).attr(\\\"height\\\",function(t){return(e=R(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r})}function I(t,e){for(var r=0,n=e-1;n>=0;n--)r+=D(t[n]);return r}function P(t,e){for(var r=0,n=0;n<t.rows.length&&t.rows[n].rowIndex<e;n++)r+=t.rows[n].rowHeight;return r}function D(t){var e=t.allRowsHeight;if(void 0!==e)return e;for(var r=0,n=0;n<t.rows.length;n++)r+=t.rows[n].rowHeight;return t.allRowsHeight=r,r}function R(t){return t.rowBlocks[t.page]}e.exports=function(t,e){var r=t._fullLayout._paper.selectAll(\\\".\\\"+n.cn.table).data(e.map(function(e){var r=a.unwrap(e).trace;return u(t,r)}),a.keyFun);r.exit().remove(),r.enter().append(\\\"g\\\").classed(n.cn.table,!0).attr(\\\"overflow\\\",\\\"visible\\\").style(\\\"box-sizing\\\",\\\"content-box\\\").style(\\\"position\\\",\\\"absolute\\\").style(\\\"left\\\",0).style(\\\"overflow\\\",\\\"visible\\\").style(\\\"shape-rendering\\\",\\\"crispEdges\\\").style(\\\"pointer-events\\\",\\\"all\\\"),r.attr(\\\"width\\\",function(t){return t.width+t.size.l+t.size.r}).attr(\\\"height\\\",function(t){return t.height+t.size.t+t.size.b}).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.translateX+\\\",\\\"+t.translateY+\\\")\\\"});var s=r.selectAll(\\\".\\\"+n.cn.tableControlView).data(a.repeat,a.keyFun);s.enter().append(\\\"g\\\").classed(n.cn.tableControlView,!0).style(\\\"box-sizing\\\",\\\"content-box\\\").on(\\\"mousemove\\\",function(e){s.filter(function(t){return e===t}).call(m,t)}).on(\\\"mousewheel\\\",function(e){e.scrollbarState.wheeling||(e.scrollbarState.wheeling=!0,i.event.stopPropagation(),i.event.preventDefault(),S(t,s,null,e.scrollY+i.event.deltaY)(e),e.scrollbarState.wheeling=!1)}).call(m,t,!0),s.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.size.l+\\\" \\\"+t.size.t+\\\")\\\"});var h=s.selectAll(\\\".\\\"+n.cn.scrollBackground).data(a.repeat,a.keyFun);h.enter().append(\\\"rect\\\").classed(n.cn.scrollBackground,!0).attr(\\\"fill\\\",\\\"none\\\"),h.attr(\\\"width\\\",function(t){return t.width}).attr(\\\"height\\\",function(t){return t.height}),s.each(function(e){o.setClipUrl(i.select(this),d(t,e))});var x=s.selectAll(\\\".\\\"+n.cn.yColumn).data(function(t){return t.columns},a.keyFun);x.enter().append(\\\"g\\\").classed(n.cn.yColumn,!0),x.exit().remove(),x.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\" 0)\\\"}).call(i.behavior.drag().origin(function(e){return w(i.select(this),e,-n.uplift),l(this),e.calcdata.columnDragInProgress=!0,m(s.filter(function(t){return e.calcdata.key===t.key}),t),e}).on(\\\"drag\\\",function(t){var e=i.select(this),r=function(e){return(t===e?i.event.x:e.x)+e.columnWidth/2};t.x=Math.max(-n.overdrag,Math.min(t.calcdata.width+n.overdrag-t.columnWidth,i.event.x)),v(x).filter(function(e){return e.calcdata.key===t.calcdata.key}).sort(function(t,e){return r(t)-r(e)}).forEach(function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e)}),x.filter(function(e){return t!==e}).transition().ease(n.transitionEase).duration(n.transitionDuration).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\" 0)\\\"}),e.call(c).attr(\\\"transform\\\",\\\"translate(\\\"+t.x+\\\" -\\\"+n.uplift+\\\" )\\\")}).on(\\\"dragend\\\",function(e){var r=i.select(this),n=e.calcdata;e.x=e.xScale(e),e.calcdata.columnDragInProgress=!1,w(r,e,0),function(t,e,r){var n=e.gdColumnsOriginalOrder;e.gdColumns.sort(function(t,e){return r[n.indexOf(t)]-r[n.indexOf(e)]}),e.columnorder=r,t.emit(\\\"plotly_restyle\\\")}(t,n,n.columns.map(function(t){return t.xIndex}))})),x.each(function(e){o.setClipUrl(i.select(this),g(t,e))});var b=x.selectAll(\\\".\\\"+n.cn.columnBlock).data(f.splitToPanels,a.keyFun);b.enter().append(\\\"g\\\").classed(n.cn.columnBlock,!0).attr(\\\"id\\\",function(t){return t.key}),b.style(\\\"cursor\\\",function(t){return t.dragHandle?\\\"ew-resize\\\":t.calcdata.scrollbarState.barWiggleRoom?\\\"ns-resize\\\":\\\"default\\\"});var _=b.filter(M),A=b.filter(k);A.call(i.behavior.drag().origin(function(t){return i.event.stopPropagation(),t}).on(\\\"drag\\\",S(t,s,-1)).on(\\\"dragend\\\",function(){})),y(t,s,_,b),y(t,s,A,b);var E=s.selectAll(\\\".\\\"+n.cn.scrollAreaClip).data(a.repeat,a.keyFun);E.enter().append(\\\"clipPath\\\").classed(n.cn.scrollAreaClip,!0).attr(\\\"id\\\",function(e){return d(t,e)});var C=E.selectAll(\\\".\\\"+n.cn.scrollAreaClipRect).data(a.repeat,a.keyFun);C.enter().append(\\\"rect\\\").classed(n.cn.scrollAreaClipRect,!0).attr(\\\"x\\\",-n.overdrag).attr(\\\"y\\\",-n.uplift).attr(\\\"fill\\\",\\\"none\\\"),C.attr(\\\"width\\\",function(t){return t.width+2*n.overdrag}).attr(\\\"height\\\",function(t){return t.height+n.uplift}),x.selectAll(\\\".\\\"+n.cn.columnBoundary).data(a.repeat,a.keyFun).enter().append(\\\"g\\\").classed(n.cn.columnBoundary,!0);var L=x.selectAll(\\\".\\\"+n.cn.columnBoundaryClippath).data(a.repeat,a.keyFun);L.enter().append(\\\"clipPath\\\").classed(n.cn.columnBoundaryClippath,!0),L.attr(\\\"id\\\",function(e){return g(t,e)});var z=L.selectAll(\\\".\\\"+n.cn.columnBoundaryRect).data(a.repeat,a.keyFun);z.enter().append(\\\"rect\\\").classed(n.cn.columnBoundaryRect,!0).attr(\\\"fill\\\",\\\"none\\\"),z.attr(\\\"width\\\",function(t){return t.columnWidth+2*p(t)}).attr(\\\"height\\\",function(t){return t.calcdata.height+2*p(t)+n.uplift}).attr(\\\"x\\\",function(t){return-p(t)}).attr(\\\"y\\\",function(t){return-p(t)}),T(null,A,s)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"../../lib/svg_text_utils\\\":720,\\\"./constants\\\":1138,\\\"./data_preparation_helper\\\":1139,\\\"./data_split_helpers\\\":1140,d3:148}],1144:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../box/attributes\\\"),i=t(\\\"../../lib/extend\\\").extendFlat;e.exports={y:n.y,x:n.x,x0:n.x0,y0:n.y0,name:n.name,orientation:i({},n.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:n.fillcolor,points:i({},n.boxpoints,{}),jitter:i({},n.jitter,{}),pointpos:i({},n.pointpos,{}),marker:n.marker,text:n.text,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:\\\"plot\\\"},selected:n.selected,unselected:n.unselected,hoveron:{valType:\\\"flaglist\\\",flags:[\\\"violins\\\",\\\"points\\\",\\\"kde\\\"],dflt:\\\"violins+points+kde\\\",extras:[\\\"all\\\"],editType:\\\"style\\\"}}},{\\\"../../lib/extend\\\":685,\\\"../box/attributes\\\":859}],1145:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../box/calc\\\"),o=t(\\\"./helpers\\\"),s=t(\\\"../../constants/numerical\\\").BADNUM;function l(t,e,r){var i=e.max-e.min;if(!i)return 1;if(t.bandwidth)return Math.max(t.bandwidth,i/1e4);var a=r.length,o=n.stdev(r,a-1,e.mean);return Math.max(function(t,e,r){return 1.059*Math.min(e,r/1.349)*Math.pow(t,-.2)}(a,o,e.q3-e.q1),i/100)}function c(t,e,r,n){var a,o=t.spanmode,l=t.span||[],c=[e.min,e.max],u=[e.min-2*n,e.max+2*n];function f(n){var i=l[n],a=r.d2c(i,0,t[e.valLetter+\\\"calendar\\\"]);return a===s?u[n]:a}var h={type:\\\"linear\\\",range:a=\\\"soft\\\"===o?u:\\\"hard\\\"===o?c:[f(0),f(1)]};return i.setConvert(h),h.cleanRange(),a}e.exports=function(t,e){var r=a(t,e);if(r[0].t.empty)return r;var s=t._fullLayout,u=i.getFromId(t,e[\\\"h\\\"===e.orientation?\\\"xaxis\\\":\\\"yaxis\\\"]),f=s._violinScaleGroupStats,h=e.scalegroup,p=f[h];p||(p=f[h]={maxWidth:0,maxCount:0});for(var d=1/0,g=-1/0,v=0;v<r.length;v++){var m=r[v],y=m.pts.map(o.extractVal),x=m.bandwidth=l(e,m,y),b=m.span=c(e,m,u,x),_=b[1]-b[0],w=Math.ceil(_/(x/3)),k=_/w;if(!isFinite(k)||!isFinite(w))return n.error(\\\"Something went wrong with computing the violin span\\\"),r[0].t.empty=!0,r;var M=o.makeKDE(m,e,y);m.density=new Array(w);for(var A=0,T=b[0];T<b[1]+k/2;A++,T+=k){var S=M(T);p.maxWidth=Math.max(p.maxWidth,S),m.density[A]={v:S,t:T}}p.maxCount=Math.max(p.maxCount,y.length),d=Math.min(d,b[0]),g=Math.max(g,b[1])}var E=i.findExtremes(u,[d,g],{padded:!0});return e._extremes[u._id]=E,r[0].t.labels.kde=n._(t,\\\"kde:\\\"),r}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../box/calc\\\":860,\\\"./helpers\\\":1148}],1146:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../box/cross_trace_calc\\\").setPositionOffset,i=[\\\"v\\\",\\\"h\\\"];e.exports=function(t,e){for(var r=t.calcdata,a=e.xaxis,o=e.yaxis,s=0;s<i.length;s++){for(var l=i[s],c=\\\"h\\\"===l?o:a,u=[],f=0,h=0,p=0;p<r.length;p++){var d=r[p],g=d[0].t,v=d[0].trace;!0!==v.visible||\\\"violin\\\"!==v.type||g.empty||v.orientation!==l||v.xaxis!==a._id||v.yaxis!==o._id||(u.push(p),!1!==v.points&&(f=Math.max(f,v.jitter-v.pointpos-1),h=Math.max(h,v.jitter+v.pointpos-1)))}n(\\\"violin\\\",t,u,c,[f,h])}}},{\\\"../box/cross_trace_calc\\\":861}],1147:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../box/defaults\\\"),o=t(\\\"./attributes\\\");e.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,o,r,i)}function c(r,i){return n.coerce2(t,e,o,r,i)}if(a.handleSampleDefaults(t,e,l,s),!1!==e.visible){l(\\\"bandwidth\\\"),l(\\\"scalegroup\\\",e.name),l(\\\"scalemode\\\"),l(\\\"side\\\");var u,f=l(\\\"span\\\");Array.isArray(f)&&(u=\\\"manual\\\"),l(\\\"spanmode\\\",u);var h=l(\\\"line.color\\\",(t.marker||{}).color||r),p=l(\\\"line.width\\\"),d=l(\\\"fillcolor\\\",i.addOpacity(e.line.color,.5));a.handlePointsDefaults(t,e,l,{prefix:\\\"\\\"});var g=c(\\\"box.width\\\"),v=c(\\\"box.fillcolor\\\",d),m=c(\\\"box.line.color\\\",h),y=c(\\\"box.line.width\\\",p);l(\\\"box.visible\\\",Boolean(g||v||m||y))||(e.box={visible:!1});var x=c(\\\"meanline.color\\\",h),b=c(\\\"meanline.width\\\",p);l(\\\"meanline.visible\\\",Boolean(x||b))||(e.meanline={visible:!1})}}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../box/defaults\\\":862,\\\"./attributes\\\":1144}],1148:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=function(t){return 1/Math.sqrt(2*Math.PI)*Math.exp(-.5*t*t)};r.makeKDE=function(t,e,r){var n=r.length,a=i,o=t.bandwidth,s=1/(n*o);return function(t){for(var e=0,i=0;i<n;i++)e+=a((t-r[i])/o);return s*e}},r.getPositionOnKdePath=function(t,e,r){var i,a;\\\"h\\\"===e.orientation?(i=\\\"y\\\",a=\\\"x\\\"):(i=\\\"x\\\",a=\\\"y\\\");var o=n.findPointOnPath(t.path,r,a,{pathLength:t.pathLength}),s=t.posCenterPx,l=o[i];return[l,\\\"both\\\"===e.side?2*s-l:s]},r.getKdeValue=function(t,e,n){var i=t.pts.map(r.extractVal);return r.makeKDE(t,e,i)(n)/t.posDensityScale},r.extractVal=function(t){return t.v}},{\\\"../../lib\\\":696}],1149:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../box/hover\\\"),o=t(\\\"./helpers\\\");e.exports=function(t,e,r,s,l){var c,u,f=t.cd,h=f[0].trace,p=h.hoveron,d=-1!==p.indexOf(\\\"violins\\\"),g=-1!==p.indexOf(\\\"kde\\\"),v=[];if(d||g){var m=a.hoverOnBoxes(t,e,r,s);if(d&&(v=v.concat(m)),g&&m.length>0){var y,x,b,_,w,k=t.xa,M=t.ya;\\\"h\\\"===h.orientation?(w=e,y=\\\"y\\\",b=M,x=\\\"x\\\",_=k):(w=r,y=\\\"x\\\",b=k,x=\\\"y\\\",_=M);var A=f[t.index];if(w>=A.span[0]&&w<=A.span[1]){var T=n.extendFlat({},t),S=_.c2p(w,!0),E=o.getKdeValue(A,h,w),C=o.getPositionOnKdePath(A,h,S),L=b._offset,z=b._length;T[y+\\\"0\\\"]=C[0],T[y+\\\"1\\\"]=C[1],T[x+\\\"0\\\"]=T[x+\\\"1\\\"]=S,T[x+\\\"Label\\\"]=x+\\\": \\\"+i.hoverLabelText(_,w)+\\\", \\\"+f[0].t.labels.kde+\\\" \\\"+E.toFixed(3),T.spikeDistance=m[0].spikeDistance;var O=y+\\\"Spike\\\";T[O]=m[0][O],m[0].spikeDistance=void 0,m[0][O]=void 0,v.push(T),(u={stroke:t.color})[y+\\\"1\\\"]=n.constrain(L+C[0],L,L+z),u[y+\\\"2\\\"]=n.constrain(L+C[1],L,L+z),u[x+\\\"1\\\"]=u[x+\\\"2\\\"]=_._offset+S}}}-1!==p.indexOf(\\\"points\\\")&&(c=a.hoverOnPoints(t,e,r));var I=l.selectAll(\\\".violinline-\\\"+h.uid).data(u?[0]:[]);return I.enter().append(\\\"line\\\").classed(\\\"violinline-\\\"+h.uid,!0).attr(\\\"stroke-width\\\",1.5),I.exit().remove(),I.attr(u),\\\"closest\\\"===s?c?[c]:v:c?(v.push(c),v):v}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../box/hover\\\":864,\\\"./helpers\\\":1148}],1150:[function(t,e,r){\\\"use strict\\\";e.exports={attributes:t(\\\"./attributes\\\"),layoutAttributes:t(\\\"./layout_attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),supplyLayoutDefaults:t(\\\"./layout_defaults\\\"),calc:t(\\\"./calc\\\"),crossTraceCalc:t(\\\"./cross_trace_calc\\\"),plot:t(\\\"./plot\\\"),style:t(\\\"./style\\\"),styleOnSelect:t(\\\"../scatter/style\\\").styleOnSelect,hoverPoints:t(\\\"./hover\\\"),selectPoints:t(\\\"../box/select\\\"),moduleType:\\\"trace\\\",name:\\\"violin\\\",basePlotModule:t(\\\"../../plots/cartesian\\\"),categories:[\\\"cartesian\\\",\\\"svg\\\",\\\"symbols\\\",\\\"oriented\\\",\\\"box-violin\\\",\\\"showLegend\\\",\\\"violinLayout\\\",\\\"zoomScale\\\"],meta:{}}},{\\\"../../plots/cartesian\\\":756,\\\"../box/select\\\":869,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1144,\\\"./calc\\\":1145,\\\"./cross_trace_calc\\\":1146,\\\"./defaults\\\":1147,\\\"./hover\\\":1149,\\\"./layout_attributes\\\":1151,\\\"./layout_defaults\\\":1152,\\\"./plot\\\":1153,\\\"./style\\\":1154}],1151:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../box/layout_attributes\\\"),i=t(\\\"../../lib\\\").extendFlat;e.exports={violinmode:i({},n.boxmode,{}),violingap:i({},n.boxgap,{}),violingroupgap:i({},n.boxgroupgap,{})}},{\\\"../../lib\\\":696,\\\"../box/layout_attributes\\\":866}],1152:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\"),a=t(\\\"../box/layout_defaults\\\");e.exports=function(t,e,r){a._supply(t,e,r,function(r,a){return n.coerce(t,e,i,r,a)},\\\"violin\\\")}},{\\\"../../lib\\\":696,\\\"../box/layout_defaults\\\":867,\\\"./layout_attributes\\\":1151}],1153:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"../box/plot\\\"),s=t(\\\"../scatter/line_points\\\"),l=t(\\\"./helpers\\\");e.exports=function(t,e,r,c){var u=t._fullLayout,f=e.xaxis,h=e.yaxis;function p(t){var e=s(t,{xaxis:f,yaxis:h,connectGaps:!0,baseTolerance:.75,shape:\\\"spline\\\",simplify:!0});return a.smoothopen(e[0],1)}i.makeTraceGroups(c,r,\\\"trace violins\\\").each(function(t){var r=n.select(this),a=t[0],s=a.t,c=a.trace;e.isRangePlot||(a.node3=r);var d=u._numViolins,g=\\\"group\\\"===u.violinmode&&d>1,v=1-u.violingap,m=s.bdPos=s.dPos*v*(1-u.violingroupgap)/(g?d:1),y=s.bPos=g?2*s.dPos*((s.num+.5)/d-.5)*v:0;if(s.wHover=s.dPos*(g?v/d:1),!0!==c.visible||s.empty)r.remove();else{var x=e[s.valLetter+\\\"axis\\\"],b=e[s.posLetter+\\\"axis\\\"],_=\\\"both\\\"===c.side,w=_||\\\"positive\\\"===c.side,k=_||\\\"negative\\\"===c.side,M=u._violinScaleGroupStats[c.scalegroup],A=r.selectAll(\\\"path.violin\\\").data(i.identity);A.enter().append(\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").attr(\\\"class\\\",\\\"violin\\\"),A.exit().remove(),A.each(function(t){var e,r,i,a,o,l,u,f,h=n.select(this),d=t.density,g=d.length,v=t.pos+y,A=b.c2p(v);switch(c.scalemode){case\\\"width\\\":e=M.maxWidth/m;break;case\\\"count\\\":e=M.maxWidth/m*(M.maxCount/t.pts.length)}if(w){for(u=new Array(g),o=0;o<g;o++)(f=u[o]={})[s.posLetter]=v+d[o].v/e,f[s.valLetter]=d[o].t;r=p(u)}if(k){for(u=new Array(g),l=0,o=g-1;l<g;l++,o--)(f=u[l]={})[s.posLetter]=v-d[o].v/e,f[s.valLetter]=d[o].t;i=p(u)}if(_)a=r+\\\"L\\\"+i.substr(1)+\\\"Z\\\";else{var T=[A,x.c2p(d[0].t)],S=[A,x.c2p(d[g-1].t)];\\\"h\\\"===c.orientation&&(T.reverse(),S.reverse()),a=w?\\\"M\\\"+T+\\\"L\\\"+r.substr(1)+\\\"L\\\"+S:\\\"M\\\"+S+\\\"L\\\"+i.substr(1)+\\\"L\\\"+T}h.attr(\\\"d\\\",a),t.posCenterPx=A,t.posDensityScale=e*m,t.path=h.node(),t.pathLength=t.path.getTotalLength()/(_?2:1)});var T,S,E,C=c.box,L=C.width,z=(C.line||{}).width;_?(T=m*L,S=0):w?(T=[0,m*L/2],S=-z):(T=[m*L/2,0],S=z),o.plotBoxAndWhiskers(r,{pos:b,val:x},c,{bPos:y,bdPos:T,bPosPxOffset:S}),o.plotBoxMean(r,{pos:b,val:x},c,{bPos:y,bdPos:T,bPosPxOffset:S}),!c.box.visible&&c.meanline.visible&&(E=i.identity);var O=r.selectAll(\\\"path.meanline\\\").data(E||[]);O.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"meanline\\\").style(\\\"fill\\\",\\\"none\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\"),O.exit().remove(),O.each(function(t){var e=x.c2p(t.mean,!0),r=l.getPositionOnKdePath(t,c,e);n.select(this).attr(\\\"d\\\",\\\"h\\\"===c.orientation?\\\"M\\\"+e+\\\",\\\"+r[0]+\\\"V\\\"+r[1]:\\\"M\\\"+r[0]+\\\",\\\"+e+\\\"H\\\"+r[1])}),o.plotPoints(r,{x:f,y:h},c,s)}})}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../box/plot\\\":868,\\\"../scatter/line_points\\\":1057,\\\"./helpers\\\":1148,d3:148}],1154:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../scatter/style\\\").stylePoints;e.exports=function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.trace.violins\\\");r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),r.each(function(e){var r=e[0].trace,o=n.select(this),s=r.box||{},l=s.line||{},c=r.meanline||{},u=c.width;o.selectAll(\\\"path.violin\\\").style(\\\"stroke-width\\\",r.line.width+\\\"px\\\").call(i.stroke,r.line.color).call(i.fill,r.fillcolor),o.selectAll(\\\"path.box\\\").style(\\\"stroke-width\\\",l.width+\\\"px\\\").call(i.stroke,l.color).call(i.fill,s.fillcolor);var f={\\\"stroke-width\\\":u+\\\"px\\\",\\\"stroke-dasharray\\\":2*u+\\\"px,\\\"+u+\\\"px\\\"};o.selectAll(\\\"path.mean\\\").style(f).call(i.stroke,c.color),o.selectAll(\\\"path.meanline\\\").style(f).call(i.stroke,c.color),a(o,r,t)})}},{\\\"../../components/color\\\":570,\\\"../scatter/style\\\":1066,d3:148}],1155:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../plots/cartesian/axes\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../plot_api/plot_schema\\\"),o=t(\\\"./helpers\\\").pointsAccessorFunction,s=t(\\\"../constants/numerical\\\").BADNUM;r.moduleType=\\\"transform\\\",r.name=\\\"aggregate\\\";var l=r.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\\\"},c=l.aggregations;function u(t,e,r,a){if(a.enabled){for(var o=a.target,l=i.nestedProperty(e,o),c=l.get(),u=function(t,e){var r=t.func,n=e.d2c,i=e.c2d;switch(r){case\\\"count\\\":return f;case\\\"first\\\":return h;case\\\"last\\\":return p;case\\\"sum\\\":return function(t,e){for(var r=0,a=0;a<e.length;a++){var o=n(t[e[a]]);o!==s&&(r+=o)}return i(r)};case\\\"avg\\\":return function(t,e){for(var r=0,a=0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r+=l,a++)}return a?i(r/a):s};case\\\"min\\\":return function(t,e){for(var r=1/0,a=0;a<e.length;a++){var o=n(t[e[a]]);o!==s&&(r=Math.min(r,o))}return r===1/0?s:i(r)};case\\\"max\\\":return function(t,e){for(var r=-1/0,a=0;a<e.length;a++){var o=n(t[e[a]]);o!==s&&(r=Math.max(r,o))}return r===-1/0?s:i(r)};case\\\"range\\\":return function(t,e){for(var r=1/0,a=-1/0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r=Math.min(r,l),a=Math.max(a,l))}return a===-1/0||r===1/0?s:i(a-r)};case\\\"change\\\":return function(t,e){var r=n(t[e[0]]),a=n(t[e[e.length-1]]);return r===s||a===s?s:i(a-r)};case\\\"median\\\":return function(t,e){for(var r=[],a=0;a<e.length;a++){var o=n(t[e[a]]);o!==s&&r.push(o)}if(!r.length)return s;r.sort();var l=(r.length-1)/2;return i((r[Math.floor(l)]+r[Math.ceil(l)])/2)};case\\\"mode\\\":return function(t,e){for(var r={},a=0,o=s,l=0;l<e.length;l++){var c=n(t[e[l]]);if(c!==s){var u=r[c]=(r[c]||0)+1;u>a&&(a=u,o=c)}}return a?i(o):s};case\\\"rms\\\":return function(t,e){for(var r=0,a=0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r+=l*l,a++)}return a?i(Math.sqrt(r/a)):s};case\\\"stddev\\\":return function(e,r){var i,a=0,o=0,l=1,c=s;for(i=0;i<r.length&&c===s;i++)c=n(e[r[i]]);if(c===s)return s;for(;i<r.length;i++){var u=n(e[r[i]]);if(u!==s){var f=u-c;a+=f,o+=f*f,l++}}var h=\\\"sample\\\"===t.funcmode?l-1:l;return h?Math.sqrt((o-a*a/l)/h):0}}}(a,n.getDataConversions(t,e,o,c)),d=new Array(r.length),g=0;g<r.length;g++)d[g]=u(c,r[g]);l.set(d),\\\"count\\\"===a.func&&i.pushUnique(e._arrayAttrs,o)}}function f(t,e){return e.length}function h(t,e){return t[e[0]]}function p(t,e){return t[e[e.length-1]]}r.supplyDefaults=function(t,e){var r,n={};function o(e,r){return i.coerce(t,n,l,e,r)}if(!o(\\\"enabled\\\"))return n;var s=a.findArrayAttributes(e),u={};for(r=0;r<s.length;r++)u[s[r]]=1;var f=o(\\\"groups\\\");if(!Array.isArray(f)){if(!u[f])return n.enabled=!1,n;u[f]=0}var h,p=t.aggregations||[],d=n.aggregations=new Array(p.length);function g(t,e){return i.coerce(p[r],h,c,t,e)}for(r=0;r<p.length;r++){h={_index:r};var v=g(\\\"target\\\"),m=g(\\\"func\\\");g(\\\"enabled\\\")&&v&&(u[v]||\\\"count\\\"===m&&void 0===u[v])?(\\\"stddev\\\"===m&&g(\\\"funcmode\\\"),u[v]=0,d[r]=h):d[r]={enabled:!1,_index:r}}for(r=0;r<s.length;r++)u[s[r]]&&d.push({target:s[r],func:c.func.dflt,enabled:!0,_index:-1});return n},r.calcTransform=function(t,e,r){if(r.enabled){var n=r.groups,a=i.getTargetArray(e,{target:n});if(a){var s,l,c,f,h={},p={},d=[],g=o(e.transforms,r),v=a.length;for(e._length&&(v=Math.min(v,e._length)),s=0;s<v;s++)void 0===(c=h[l=a[s]])?(h[l]=d.length,f=[s],d.push(f),p[h[l]]=g(s)):(d[c].push(s),p[h[l]]=(p[h[l]]||[]).concat(g(s)));r._indexToPoints=p;var m=r.aggregations;for(s=0;s<m.length;s++)u(t,e,d,m[s]);\\\"string\\\"==typeof n&&u(t,e,d,{target:n,func:\\\"first\\\",enabled:!0}),e._length=d.length}}}},{\\\"../constants/numerical\\\":673,\\\"../lib\\\":696,\\\"../plot_api/plot_schema\\\":733,\\\"../plots/cartesian/axes\\\":744,\\\"./helpers\\\":1158}],1156:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../registry\\\"),a=t(\\\"../plots/cartesian/axes\\\"),o=t(\\\"./helpers\\\").pointsAccessorFunction,s=t(\\\"../constants/filter_ops\\\"),l=s.COMPARISON_OPS,c=s.INTERVAL_OPS,u=s.SET_OPS;r.moduleType=\\\"transform\\\",r.name=\\\"filter\\\",r.attributes={enabled:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},target:{valType:\\\"string\\\",strict:!0,noBlank:!0,arrayOk:!0,dflt:\\\"x\\\",editType:\\\"calc\\\"},operation:{valType:\\\"enumerated\\\",values:[].concat(l).concat(c).concat(u),dflt:\\\"=\\\",editType:\\\"calc\\\"},value:{valType:\\\"any\\\",dflt:0,editType:\\\"calc\\\"},preservegaps:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},editType:\\\"calc\\\"},r.supplyDefaults=function(t){var e={};function a(i,a){return n.coerce(t,e,r.attributes,i,a)}if(a(\\\"enabled\\\")){a(\\\"preservegaps\\\"),a(\\\"operation\\\"),a(\\\"value\\\"),a(\\\"target\\\");var o=i.getComponentMethod(\\\"calendars\\\",\\\"handleDefaults\\\");o(t,e,\\\"valuecalendar\\\",null),o(t,e,\\\"targetcalendar\\\",null)}return e},r.calcTransform=function(t,e,r){if(r.enabled){var i=n.getTargetArray(e,r);if(i){var s=r.target,f=i.length;e._length&&(f=Math.min(f,e._length));var h=r.targetcalendar,p=e._arrayAttrs,d=r.preservegaps;if(\\\"string\\\"==typeof s){var g=n.nestedProperty(e,s+\\\"calendar\\\").get();g&&(h=g)}var v,m,y=function(t,e,r){var n=t.operation,i=t.value,a=Array.isArray(i);function o(t){return-1!==t.indexOf(n)}var s,f=function(r){return e(r,0,t.valuecalendar)},h=function(t){return e(t,0,r)};o(l)?s=f(a?i[0]:i):o(c)?s=a?[f(i[0]),f(i[1])]:[f(i),f(i)]:o(u)&&(s=a?i.map(f):[f(i)]);switch(n){case\\\"=\\\":return function(t){return h(t)===s};case\\\"!=\\\":return function(t){return h(t)!==s};case\\\"<\\\":return function(t){return h(t)<s};case\\\"<=\\\":return function(t){return h(t)<=s};case\\\">\\\":return function(t){return h(t)>s};case\\\">=\\\":return function(t){return h(t)>=s};case\\\"[]\\\":return function(t){var e=h(t);return e>=s[0]&&e<=s[1]};case\\\"()\\\":return function(t){var e=h(t);return e>s[0]&&e<s[1]};case\\\"[)\\\":return function(t){var e=h(t);return e>=s[0]&&e<s[1]};case\\\"(]\\\":return function(t){var e=h(t);return e>s[0]&&e<=s[1]};case\\\"][\\\":return function(t){var e=h(t);return e<=s[0]||e>=s[1]};case\\\")(\\\":return function(t){var e=h(t);return e<s[0]||e>s[1]};case\\\"](\\\":return function(t){var e=h(t);return e<=s[0]||e>s[1]};case\\\")[\\\":return function(t){var e=h(t);return e<s[0]||e>=s[1]};case\\\"{}\\\":return function(t){return-1!==s.indexOf(h(t))};case\\\"}{\\\":return function(t){return-1===s.indexOf(h(t))}}}(r,a.getDataToCoordFunc(t,e,s,i),h),x={},b={},_=0;d?(v=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set(new Array(f))},m=function(t,e){var r=x[t.astr][e];t.get()[e]=r}):(v=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set([])},m=function(t,e){var r=x[t.astr][e];t.get().push(r)}),M(v);for(var w=o(e.transforms,r),k=0;k<f;k++){y(i[k])?(M(m,k),b[_++]=w(k)):d&&_++}r._indexToPoints=b,e._length=_}}function M(t,r){for(var i=0;i<p.length;i++){t(n.nestedProperty(e,p[i]),r)}}}},{\\\"../constants/filter_ops\\\":669,\\\"../lib\\\":696,\\\"../plots/cartesian/axes\\\":744,\\\"../registry\\\":827,\\\"./helpers\\\":1158}],1157:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plot_api/plot_schema\\\"),a=t(\\\"../plots/plots\\\"),o=t(\\\"./helpers\\\").pointsAccessorFunction;function s(t,e){var r,s,c,u,f,h,p,d,g,v,m=e.transform,y=e.transformIndex,x=t.transforms[y].groups,b=o(t.transforms,m);if(!Array.isArray(x)||0===x.length)return[t];var _=n.filterUnique(x),w=new Array(_.length),k=x.length,M=i.findArrayAttributes(t),A=m.styles||[],T={};for(r=0;r<A.length;r++)T[A[r].target]=A[r].value;m.styles&&(v=n.keyedContainer(m,\\\"styles\\\",\\\"target\\\",\\\"value.name\\\"));var S={},E={};for(r=0;r<_.length;r++){S[h=_[r]]=r,E[h]=0,(p=w[r]=n.extendDeepNoArrays({},t))._group=h,p.updateStyle=l(h,y),p.transforms[y]._indexToPoints={};var C=null;for(v&&(C=v.get(h)),p.name=C||\\\"\\\"===C?C:n.templateString(m.nameformat,{trace:t.name,group:h}),d=p.transforms,p.transforms=[],s=0;s<d.length;s++)p.transforms[s]=n.extendDeepNoArrays({},d[s]);for(s=0;s<M.length;s++)n.nestedProperty(p,M[s]).set([])}for(c=0;c<M.length;c++){for(u=M[c],s=0,g=[];s<_.length;s++)g[s]=n.nestedProperty(w[s],u).get();for(f=n.nestedProperty(t,u).get(),s=0;s<k;s++)g[S[x[s]]].push(f[s])}for(s=0;s<k;s++){(p=w[S[x[s]]]).transforms[y]._indexToPoints[E[x[s]]]=b(s),E[x[s]]++}for(r=0;r<_.length;r++)h=_[r],p=w[r],a.clearExpandedTraceDefaultColors(p),p=n.extendDeepNoArrays(p,T[h]||{});return w}function l(t,e){return function(r,i,a){n.keyedContainer(r,\\\"transforms[\\\"+e+\\\"].styles\\\",\\\"target\\\",\\\"value.\\\"+i).set(String(t),a)}}r.moduleType=\\\"transform\\\",r.name=\\\"groupby\\\",r.attributes={enabled:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},groups:{valType:\\\"data_array\\\",dflt:[],editType:\\\"calc\\\"},nameformat:{valType:\\\"string\\\",editType:\\\"calc\\\"},styles:{_isLinkedToArray:\\\"style\\\",target:{valType:\\\"string\\\",editType:\\\"calc\\\"},value:{valType:\\\"any\\\",dflt:{},editType:\\\"calc\\\",_compareAsJSON:!0},editType:\\\"calc\\\"},editType:\\\"calc\\\"},r.supplyDefaults=function(t,e,i){var a,o={};function s(e,i){return n.coerce(t,o,r.attributes,e,i)}if(!s(\\\"enabled\\\"))return o;s(\\\"groups\\\"),s(\\\"nameformat\\\",i._dataLength>1?\\\"%{group} (%{trace})\\\":\\\"%{group}\\\");var l=t.styles,c=o.styles=[];if(l)for(a=0;a<l.length;a++){var u=c[a]={};n.coerce(l[a],c[a],r.attributes.styles,\\\"target\\\");var f=n.coerce(l[a],c[a],r.attributes.styles,\\\"value\\\");n.isPlainObject(f)?u.value=n.extendDeep({},f):f&&delete u.value}return o},r.transform=function(t,e){var r,n,i,a=[];for(n=0;n<t.length;n++)for(r=s(t[n],e),i=0;i<r.length;i++)a.push(r[i]);return a}},{\\\"../lib\\\":696,\\\"../plot_api/plot_schema\\\":733,\\\"../plots/plots\\\":808,\\\"./helpers\\\":1158}],1158:[function(t,e,r){\\\"use strict\\\";r.pointsAccessorFunction=function(t,e){for(var r,n,i=0;i<t.length&&(r=t[i])!==e;i++)r._indexToPoints&&!1!==r.enabled&&(n=r._indexToPoints);return n?function(t){return n[t]}:function(t){return[t]}}},{}],1159:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plots/cartesian/axes\\\"),a=t(\\\"./helpers\\\").pointsAccessorFunction;r.moduleType=\\\"transform\\\",r.name=\\\"sort\\\",r.attributes={enabled:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},target:{valType:\\\"string\\\",strict:!0,noBlank:!0,arrayOk:!0,dflt:\\\"x\\\",editType:\\\"calc\\\"},order:{valType:\\\"enumerated\\\",values:[\\\"ascending\\\",\\\"descending\\\"],dflt:\\\"ascending\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"},r.supplyDefaults=function(t){var e={};function i(i,a){return n.coerce(t,e,r.attributes,i,a)}return i(\\\"enabled\\\")&&(i(\\\"target\\\"),i(\\\"order\\\")),e},r.calcTransform=function(t,e,r){if(r.enabled){var o=n.getTargetArray(e,r);if(o){var s=r.target,l=o.length;e._length&&(l=Math.min(l,e._length));var c,u,f=e._arrayAttrs,h=function(t,e,r,n){var i,a=new Array(n),o=new Array(n);for(i=0;i<n;i++)a[i]={v:e[i],i:i};for(a.sort(function(t,e){switch(t.order){case\\\"ascending\\\":return function(t,r){return e(t.v)-e(r.v)};case\\\"descending\\\":return function(t,r){return e(r.v)-e(t.v)}}}(t,r)),i=0;i<n;i++)o[i]=a[i].i;return o}(r,o,i.getDataToCoordFunc(t,e,s,o),l),p=a(e.transforms,r),d={};for(c=0;c<f.length;c++){var g=n.nestedProperty(e,f[c]),v=g.get(),m=new Array(l);for(u=0;u<l;u++)m[u]=v[h[u]];g.set(m)}for(u=0;u<l;u++)d[u]=p(h[u]);r._indexToPoints=d,e._length=l}}}},{\\\"../lib\\\":696,\\\"../plots/cartesian/axes\\\":744,\\\"./helpers\\\":1158}]},{},[22])(22)});});require(['plotly'], function(Plotly) {window._Plotly = Plotly;});}</script>\"\n      ],\n      \"text/vnd.plotly.v1+html\": [\n       \"<script type=\\\"text/javascript\\\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script><script type=\\\"text/javascript\\\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \\\"STIX-Web\\\"}});}</script><script type='text/javascript'>if(!window._Plotly){define('plotly', function(require, exports, module) {/**\\n\",\n       \"* plotly.js v1.42.5\\n\",\n       \"* Copyright 2012-2018, Plotly, Inc.\\n\",\n       \"* All rights reserved.\\n\",\n       \"* Licensed under the MIT license\\n\",\n       \"*/\\n\",\n       \"!function(t){if(\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module)module.exports=t();else if(\\\"function\\\"==typeof define&&define.amd)define([],t);else{(\\\"undefined\\\"!=typeof window?window:\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:this).Plotly=t()}}(function(){return function(){return function t(e,r,n){function i(o,s){if(!r[o]){if(!e[o]){var l=\\\"function\\\"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var c=new Error(\\\"Cannot find module '\\\"+o+\\\"'\\\");throw c.code=\\\"MODULE_NOT_FOUND\\\",c}var u=r[o]={exports:{}};e[o][0].call(u.exports,function(t){return i(e[o][1][t]||t)},u,u.exports,t,e,r,n)}return r[o].exports}for(var a=\\\"function\\\"==typeof require&&require,o=0;o<n.length;o++)i(n[o]);return i}}()({1:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../src/lib\\\"),i={\\\"X,X div\\\":\\\"direction:ltr;font-family:'Open Sans', verdana, arial, sans-serif;margin:0;padding:0;\\\",\\\"X input,X button\\\":\\\"font-family:'Open Sans', verdana, arial, sans-serif;\\\",\\\"X input:focus,X button:focus\\\":\\\"outline:none;\\\",\\\"X a\\\":\\\"text-decoration:none;\\\",\\\"X a:hover\\\":\\\"text-decoration:none;\\\",\\\"X .crisp\\\":\\\"shape-rendering:crispEdges;\\\",\\\"X .user-select-none\\\":\\\"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\\\",\\\"X svg\\\":\\\"overflow:hidden;\\\",\\\"X svg a\\\":\\\"fill:#447adb;\\\",\\\"X svg a:hover\\\":\\\"fill:#3c6dc5;\\\",\\\"X .main-svg\\\":\\\"position:absolute;top:0;left:0;pointer-events:none;\\\",\\\"X .main-svg .draglayer\\\":\\\"pointer-events:all;\\\",\\\"X .cursor-default\\\":\\\"cursor:default;\\\",\\\"X .cursor-pointer\\\":\\\"cursor:pointer;\\\",\\\"X .cursor-crosshair\\\":\\\"cursor:crosshair;\\\",\\\"X .cursor-move\\\":\\\"cursor:move;\\\",\\\"X .cursor-col-resize\\\":\\\"cursor:col-resize;\\\",\\\"X .cursor-row-resize\\\":\\\"cursor:row-resize;\\\",\\\"X .cursor-ns-resize\\\":\\\"cursor:ns-resize;\\\",\\\"X .cursor-ew-resize\\\":\\\"cursor:ew-resize;\\\",\\\"X .cursor-sw-resize\\\":\\\"cursor:sw-resize;\\\",\\\"X .cursor-s-resize\\\":\\\"cursor:s-resize;\\\",\\\"X .cursor-se-resize\\\":\\\"cursor:se-resize;\\\",\\\"X .cursor-w-resize\\\":\\\"cursor:w-resize;\\\",\\\"X .cursor-e-resize\\\":\\\"cursor:e-resize;\\\",\\\"X .cursor-nw-resize\\\":\\\"cursor:nw-resize;\\\",\\\"X .cursor-n-resize\\\":\\\"cursor:n-resize;\\\",\\\"X .cursor-ne-resize\\\":\\\"cursor:ne-resize;\\\",\\\"X .cursor-grab\\\":\\\"cursor:-webkit-grab;cursor:grab;\\\",\\\"X .modebar\\\":\\\"position:absolute;top:2px;right:2px;z-index:1001;\\\",\\\"X .modebar--hover\\\":\\\"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;\\\",\\\"X:hover .modebar--hover\\\":\\\"opacity:1;\\\",\\\"X .modebar-group\\\":\\\"float:left;display:inline-block;box-sizing:border-box;margin-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;margin-left:0px;margin-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:white;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:white;\\\",\\\"X .select-outline-2\\\":\\\"stroke:black;stroke-dasharray:2px 2px;\\\",Y:\\\"font-family:'Open Sans';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,0.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:0.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 a in i){var o=a.replace(/^,/,\\\" ,\\\").replace(/X/g,\\\".js-plotly-plot .plotly\\\").replace(/Y/g,\\\".plotly-notifier\\\");n.addStyleRule(o,i[a])}},{\\\"../src/lib\\\":696}],2:[function(t,e,r){\\\"use strict\\\";e.exports={undo:{width:857.1,height:1e3,path:\\\"m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},home:{width:928.6,height:1e3,path:\\\"m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},\\\"camera-retro\\\":{width:1e3,height:1e3,path:\\\"m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},zoombox:{width:1e3,height:1e3,path:\\\"m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},pan:{width:1e3,height:1e3,path:\\\"m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},zoom_plus:{width:875,height:1e3,path:\\\"m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},zoom_minus:{width:875,height:1e3,path:\\\"m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},autoscale:{width:1e3,height:1e3,path:\\\"m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},tooltip_basic:{width:1500,height:1e3,path:\\\"m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},tooltip_compare:{width:1125,height:1e3,path:\\\"m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},plotlylogo:{width:1542,height:1e3,path:\\\"m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},\\\"z-axis\\\":{width:1e3,height:1e3,path:\\\"m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},\\\"3d_rotate\\\":{width:1e3,height:1e3,path:\\\"m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},camera:{width:1e3,height:1e3,path:\\\"m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},movie:{width:1e3,height:1e3,path:\\\"m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},question:{width:857.1,height:1e3,path:\\\"m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},disk:{width:857.1,height:1e3,path:\\\"m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},lasso:{width:1031,height:1e3,path:\\\"m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},selectbox:{width:1e3,height:1e3,path:\\\"m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z\\\",transform:\\\"matrix(1 0 0 -1 0 850)\\\"},spikeline:{width:1e3,height:1e3,path:\\\"M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z\\\",transform:\\\"matrix(1.5 0 0 -1.5 0 850)\\\"},newplotlylogo:{name:\\\"newplotlylogo\\\",svg:\\\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 132'><defs><style>.cls-1 {fill: #119dff;} .cls-2 {fill: #25fefd;} .cls-3 {fill: #fff;}</style></defs><title>plotly-logomark</title><g id='symbol'><rect class='cls-1' width='132' height='132' rx='6' ry='6'/><circle class='cls-2' cx='78' cy='54' r='6'/><circle class='cls-2' cx='102' cy='30' r='6'/><circle class='cls-2' cx='78' cy='30' r='6'/><circle class='cls-2' cx='54' cy='30' r='6'/><circle class='cls-2' cx='30' cy='30' r='6'/><circle class='cls-2' cx='30' cy='54' r='6'/><path class='cls-3' d='M30,72a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V78A6,6,0,0,0,30,72Z'/><path class='cls-3' d='M78,72a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V78A6,6,0,0,0,78,72Z'/><path class='cls-3' d='M54,48a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V54A6,6,0,0,0,54,48Z'/><path class='cls-3' d='M102,48a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V54A6,6,0,0,0,102,48Z'/></g></svg>\\\"}}},{}],3:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/transforms/aggregate\\\")},{\\\"../src/transforms/aggregate\\\":1155}],4:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/bar\\\")},{\\\"../src/traces/bar\\\":843}],5:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/barpolar\\\")},{\\\"../src/traces/barpolar\\\":855}],6:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/box\\\")},{\\\"../src/traces/box\\\":865}],7:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/components/calendars\\\")},{\\\"../src/components/calendars\\\":568}],8:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/candlestick\\\")},{\\\"../src/traces/candlestick\\\":874}],9:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/carpet\\\")},{\\\"../src/traces/carpet\\\":893}],10:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/choropleth\\\")},{\\\"../src/traces/choropleth\\\":907}],11:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/cone\\\")},{\\\"../src/traces/cone\\\":915}],12:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/contour\\\")},{\\\"../src/traces/contour\\\":930}],13:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/contourcarpet\\\")},{\\\"../src/traces/contourcarpet\\\":941}],14:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/core\\\")},{\\\"../src/core\\\":675}],15:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/transforms/filter\\\")},{\\\"../src/transforms/filter\\\":1156}],16:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/transforms/groupby\\\")},{\\\"../src/transforms/groupby\\\":1157}],17:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/heatmap\\\")},{\\\"../src/traces/heatmap\\\":953}],18:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/heatmapgl\\\")},{\\\"../src/traces/heatmapgl\\\":963}],19:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/histogram\\\")},{\\\"../src/traces/histogram\\\":974}],20:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/histogram2d\\\")},{\\\"../src/traces/histogram2d\\\":981}],21:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/histogram2dcontour\\\")},{\\\"../src/traces/histogram2dcontour\\\":985}],22:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./core\\\");n.register([t(\\\"./bar\\\"),t(\\\"./box\\\"),t(\\\"./heatmap\\\"),t(\\\"./histogram\\\"),t(\\\"./histogram2d\\\"),t(\\\"./histogram2dcontour\\\"),t(\\\"./pie\\\"),t(\\\"./contour\\\"),t(\\\"./scatterternary\\\"),t(\\\"./violin\\\"),t(\\\"./scatter3d\\\"),t(\\\"./surface\\\"),t(\\\"./mesh3d\\\"),t(\\\"./cone\\\"),t(\\\"./streamtube\\\"),t(\\\"./scattergeo\\\"),t(\\\"./choropleth\\\"),t(\\\"./scattergl\\\"),t(\\\"./splom\\\"),t(\\\"./pointcloud\\\"),t(\\\"./heatmapgl\\\"),t(\\\"./parcoords\\\"),t(\\\"./parcats\\\"),t(\\\"./scattermapbox\\\"),t(\\\"./sankey\\\"),t(\\\"./table\\\"),t(\\\"./carpet\\\"),t(\\\"./scattercarpet\\\"),t(\\\"./contourcarpet\\\"),t(\\\"./ohlc\\\"),t(\\\"./candlestick\\\"),t(\\\"./scatterpolar\\\"),t(\\\"./scatterpolargl\\\"),t(\\\"./barpolar\\\")]),n.register([t(\\\"./aggregate\\\"),t(\\\"./filter\\\"),t(\\\"./groupby\\\"),t(\\\"./sort\\\")]),n.register([t(\\\"./calendars\\\")]),e.exports=n},{\\\"./aggregate\\\":3,\\\"./bar\\\":4,\\\"./barpolar\\\":5,\\\"./box\\\":6,\\\"./calendars\\\":7,\\\"./candlestick\\\":8,\\\"./carpet\\\":9,\\\"./choropleth\\\":10,\\\"./cone\\\":11,\\\"./contour\\\":12,\\\"./contourcarpet\\\":13,\\\"./core\\\":14,\\\"./filter\\\":15,\\\"./groupby\\\":16,\\\"./heatmap\\\":17,\\\"./heatmapgl\\\":18,\\\"./histogram\\\":19,\\\"./histogram2d\\\":20,\\\"./histogram2dcontour\\\":21,\\\"./mesh3d\\\":23,\\\"./ohlc\\\":24,\\\"./parcats\\\":25,\\\"./parcoords\\\":26,\\\"./pie\\\":27,\\\"./pointcloud\\\":28,\\\"./sankey\\\":29,\\\"./scatter3d\\\":30,\\\"./scattercarpet\\\":31,\\\"./scattergeo\\\":32,\\\"./scattergl\\\":33,\\\"./scattermapbox\\\":34,\\\"./scatterpolar\\\":35,\\\"./scatterpolargl\\\":36,\\\"./scatterternary\\\":37,\\\"./sort\\\":38,\\\"./splom\\\":39,\\\"./streamtube\\\":40,\\\"./surface\\\":41,\\\"./table\\\":42,\\\"./violin\\\":43}],23:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/mesh3d\\\")},{\\\"../src/traces/mesh3d\\\":990}],24:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/ohlc\\\")},{\\\"../src/traces/ohlc\\\":995}],25:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/parcats\\\")},{\\\"../src/traces/parcats\\\":1004}],26:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/parcoords\\\")},{\\\"../src/traces/parcoords\\\":1013}],27:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/pie\\\")},{\\\"../src/traces/pie\\\":1024}],28:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/pointcloud\\\")},{\\\"../src/traces/pointcloud\\\":1033}],29:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/sankey\\\")},{\\\"../src/traces/sankey\\\":1039}],30:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scatter3d\\\")},{\\\"../src/traces/scatter3d\\\":1075}],31:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scattercarpet\\\")},{\\\"../src/traces/scattercarpet\\\":1081}],32:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scattergeo\\\")},{\\\"../src/traces/scattergeo\\\":1088}],33:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scattergl\\\")},{\\\"../src/traces/scattergl\\\":1096}],34:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scattermapbox\\\")},{\\\"../src/traces/scattermapbox\\\":1102}],35:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scatterpolar\\\")},{\\\"../src/traces/scatterpolar\\\":1109}],36:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scatterpolargl\\\")},{\\\"../src/traces/scatterpolargl\\\":1113}],37:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/scatterternary\\\")},{\\\"../src/traces/scatterternary\\\":1119}],38:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/transforms/sort\\\")},{\\\"../src/transforms/sort\\\":1159}],39:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/splom\\\")},{\\\"../src/traces/splom\\\":1124}],40:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/streamtube\\\")},{\\\"../src/traces/streamtube\\\":1129}],41:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/surface\\\")},{\\\"../src/traces/surface\\\":1134}],42:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/table\\\")},{\\\"../src/traces/table\\\":1142}],43:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"../src/traces/violin\\\")},{\\\"../src/traces/violin\\\":1150}],44:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){t=t||document.body,e=e||{};var r=[.01,1/0];\\\"distanceLimits\\\"in e&&(r[0]=e.distanceLimits[0],r[1]=e.distanceLimits[1]);\\\"zoomMin\\\"in e&&(r[0]=e.zoomMin);\\\"zoomMax\\\"in e&&(r[1]=e.zoomMax);var c=i({center:e.center||[0,0,0],up:e.up||[0,1,0],eye:e.eye||[0,0,10],mode:e.mode||\\\"orbit\\\",distanceLimits:r}),u=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],f=0,h=t.clientWidth,p=t.clientHeight,d={view:c,element:t,delay:e.delay||16,rotateSpeed:e.rotateSpeed||1,zoomSpeed:e.zoomSpeed||1,translateSpeed:e.translateSpeed||1,flipX:!!e.flipX,flipY:!!e.flipY,modes:c.modes,tick:function(){var e=n(),r=this.delay;c.idle(e-r),c.flush(e-(100+2*r));var i=e-2*r;c.recalcMatrix(i);for(var a=!0,o=c.computedMatrix,s=0;s<16;++s)a=a&&u[s]===o[s],u[s]=o[s];var l=t.clientWidth===h&&t.clientHeight===p;return h=t.clientWidth,p=t.clientHeight,a?!l:(f=Math.exp(c.computedRadius[0]),!0)},lookAt:function(t,e,r){c.lookAt(c.lastT(),t,e,r)},rotate:function(t,e,r){c.rotate(c.lastT(),t,e,r)},pan:function(t,e,r){c.pan(c.lastT(),t,e,r)},translate:function(t,e,r){c.translate(c.lastT(),t,e,r)}};Object.defineProperties(d,{matrix:{get:function(){return c.computedMatrix},set:function(t){return c.setMatrix(c.lastT(),t),c.computedMatrix},enumerable:!0},mode:{get:function(){return c.getMode()},set:function(t){return c.setMode(t),c.getMode()},enumerable:!0},center:{get:function(){return c.computedCenter},set:function(t){return c.lookAt(c.lastT(),t),c.computedCenter},enumerable:!0},eye:{get:function(){return c.computedEye},set:function(t){return c.lookAt(c.lastT(),null,t),c.computedEye},enumerable:!0},up:{get:function(){return c.computedUp},set:function(t){return c.lookAt(c.lastT(),null,null,t),c.computedUp},enumerable:!0},distance:{get:function(){return f},set:function(t){return c.setDistance(c.lastT(),t),t},enumerable:!0},distanceLimits:{get:function(){return c.getDistanceLimits(r)},set:function(t){return c.setDistanceLimits(t),t},enumerable:!0}}),t.addEventListener(\\\"contextmenu\\\",function(t){return t.preventDefault(),!1});var g=0,v=0,m={shift:!1,control:!1,alt:!1,meta:!1};function y(e,r,i,a){var o=1/t.clientHeight,s=o*(r-g),l=o*(i-v),u=d.flipX?1:-1,h=d.flipY?1:-1,p=Math.PI*d.rotateSpeed,y=n();if(1&e)a.shift?c.rotate(y,0,0,-s*p):c.rotate(y,u*p*s,-h*p*l,0);else if(2&e)c.pan(y,-d.translateSpeed*s*f,d.translateSpeed*l*f,0);else if(4&e){var x=d.zoomSpeed*l/window.innerHeight*(y-c.lastT())*50;c.pan(y,0,0,f*(Math.exp(x)-1))}g=r,v=i,m=a}return a(t,y),t.addEventListener(\\\"touchstart\\\",function(e){var r=s(e.changedTouches[0],t);y(0,r[0],r[1],m),y(1,r[0],r[1],m),e.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\\\"touchmove\\\",function(e){var r=s(e.changedTouches[0],t);y(1,r[0],r[1],m),e.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\\\"touchend\\\",function(e){s(e.changedTouches[0],t),y(0,g,v,m),e.preventDefault()},!!l&&{passive:!1}),o(t,function(t,e,r){var i=d.flipX?1:-1,a=d.flipY?1:-1,o=n();if(Math.abs(t)>Math.abs(e))c.rotate(o,0,0,-t*i*Math.PI*d.rotateSpeed/window.innerWidth);else{var s=d.zoomSpeed*a*e/window.innerHeight*(o-c.lastT())/100;c.pan(o,0,0,f*(Math.exp(s)-1))}},!0),d};var n=t(\\\"right-now\\\"),i=t(\\\"3d-view\\\"),a=t(\\\"mouse-change\\\"),o=t(\\\"mouse-wheel\\\"),s=t(\\\"mouse-event-offset\\\"),l=t(\\\"has-passive-events\\\")},{\\\"3d-view\\\":45,\\\"has-passive-events\\\":394,\\\"mouse-change\\\":418,\\\"mouse-event-offset\\\":419,\\\"mouse-wheel\\\":421,\\\"right-now\\\":480}],45:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],c=t.mode||\\\"turntable\\\",u=n(),f=i(),h=a();return u.setDistanceLimits(l[0],l[1]),u.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),new o({turntable:u,orbit:f,matrix:h},c)};var n=t(\\\"turntable-camera-controller\\\"),i=t(\\\"orbit-camera-controller\\\"),a=t(\\\"matrix-camera-controller\\\");function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map(function(e){return t[e]}),this._mode=e,this._active=t[e],this._active||(this._mode=\\\"turntable\\\",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;[[\\\"flush\\\",1],[\\\"idle\\\",1],[\\\"lookAt\\\",4],[\\\"rotate\\\",4],[\\\"pan\\\",4],[\\\"translate\\\",4],[\\\"setMatrix\\\",2],[\\\"setDistanceLimits\\\",2],[\\\"setDistance\\\",2]].forEach(function(t){for(var e=t[0],r=[],n=0;n<t[1];++n)r.push(\\\"a\\\"+n);var i=\\\"var cc=this._controllerList;for(var i=0;i<cc.length;++i){cc[i].\\\"+t[0]+\\\"(\\\"+r.join()+\\\")}\\\";s[e]=Function.apply(null,r.concat(i))}),s.recalcMatrix=function(t){this._active.recalcMatrix(t)},s.getDistance=function(t){return this._active.getDistance(t)},s.getDistanceLimits=function(t){return this._active.getDistanceLimits(t)},s.lastT=function(){return this._active.lastT()},s.setMode=function(t){if(t!==this._mode){var e=this._controllerNames.indexOf(t);if(!(e<0)){var r=this._active,n=this._controllerList[e],i=Math.max(r.lastT(),n.lastT());r.recalcMatrix(i),n.setMatrix(i,r.computedMatrix),this._active=n,this._mode=t,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}}},s.getMode=function(){return this._mode}},{\\\"matrix-camera-controller\\\":416,\\\"orbit-camera-controller\\\":439,\\\"turntable-camera-controller\\\":519}],46:[function(t,e,r){var n,i;n=this,i=function(t,e,r,n){\\\"use strict\\\";t.sankey=function(){var t={},i=24,a=8,o=[1,1],s=[],l=[],c=2/3;function u(){function t(t,e){return t.source.y-e.source.y||t.originalIndex-e.originalIndex}function e(t,e){return t.target.y-e.target.y||t.originalIndex-e.originalIndex}s.forEach(function(r){r.sourceLinks.sort(e),r.targetLinks.sort(t)}),s.forEach(function(t){var e=0,r=0;t.sourceLinks.forEach(function(t){t.sy=e,e+=t.dy}),t.targetLinks.forEach(function(t){t.ty=r,r+=t.dy})})}function f(t){return t.y+t.dy/2}function h(t){return t.value}return t.nodeWidth=function(e){return arguments.length?(i=+e,t):i},t.nodePadding=function(e){return arguments.length?(a=+e,t):a},t.nodes=function(e){return arguments.length?(s=e,t):s},t.links=function(e){return arguments.length?(l=e,t):l},t.size=function(e){return arguments.length?(o=e,t):o},t.layout=function(n){return s.forEach(function(t){t.sourceLinks=[],t.targetLinks=[]}),l.forEach(function(t,e){var r=t.source,n=t.target;\\\"number\\\"==typeof r&&(r=t.source=s[t.source]),\\\"number\\\"==typeof n&&(n=t.target=s[t.target]),t.originalIndex=e,r.sourceLinks.push(t),n.targetLinks.push(t)}),s.forEach(function(t){t.value=Math.max(e.sum(t.sourceLinks,h),e.sum(t.targetLinks,h))}),function(){for(var t,e,r=s,n=0;r.length;)t=[],r.forEach(function(e){e.x=n,e.dx=i,e.sourceLinks.forEach(function(e){t.indexOf(e.target)<0&&t.push(e.target)})}),r=t,++n;(function(t){s.forEach(function(e){e.sourceLinks.length||(e.x=t-1)})})(n),e=(o[0]-i)/(n-1),s.forEach(function(t){t.x*=e})}(),function(t){var n=r.nest().key(function(t){return t.x}).sortKeys(e.ascending).entries(s).map(function(t){return t.values});(function(){var t=e.max(n,function(t){return t.length}),r=c*o[1]/(t-1);a>r&&(a=r);var i=e.min(n,function(t){return(o[1]-(t.length-1)*a)/e.sum(t,h)});n.forEach(function(t){t.forEach(function(t,e){t.y=e,t.dy=t.value*i})}),l.forEach(function(t){t.dy=t.value*i})})(),d();for(var i=1;t>0;--t)p(i*=.99),d(),u(i),d();function u(t){function r(t){return f(t.source)*t.value}n.forEach(function(n){n.forEach(function(n){if(n.targetLinks.length){var i=e.sum(n.targetLinks,r)/e.sum(n.targetLinks,h);n.y+=(i-f(n))*t}})})}function p(t){function r(t){return f(t.target)*t.value}n.slice().reverse().forEach(function(n){n.forEach(function(n){if(n.sourceLinks.length){var i=e.sum(n.sourceLinks,r)/e.sum(n.sourceLinks,h);n.y+=(i-f(n))*t}})})}function d(){n.forEach(function(t){var e,r,n,i=0,s=t.length;for(t.sort(g),n=0;n<s;++n)e=t[n],(r=i-e.y)>0&&(e.y+=r),i=e.y+e.dy+a;if((r=i-a-o[1])>0)for(i=e.y-=r,n=s-2;n>=0;--n)e=t[n],(r=e.y+e.dy+a-i)>0&&(e.y-=r),i=e.y})}function g(t,e){return t.y-e.y}}(n),u(),t},t.relayout=function(){return u(),t},t.link=function(){var t=.5;function e(e){var r=e.source.x+e.source.dx,i=e.target.x,a=n.interpolateNumber(r,i),o=a(t),s=a(1-t),l=e.source.y+e.sy,c=l+e.dy,u=e.target.y+e.ty,f=u+e.dy;return\\\"M\\\"+r+\\\",\\\"+l+\\\"C\\\"+o+\\\",\\\"+l+\\\" \\\"+s+\\\",\\\"+u+\\\" \\\"+i+\\\",\\\"+u+\\\"L\\\"+i+\\\",\\\"+f+\\\"C\\\"+s+\\\",\\\"+f+\\\" \\\"+o+\\\",\\\"+c+\\\" \\\"+r+\\\",\\\"+c+\\\"Z\\\"}return e.curvature=function(r){return arguments.length?(t=+r,e):t},e},t},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?i(r,t(\\\"d3-array\\\"),t(\\\"d3-collection\\\"),t(\\\"d3-interpolate\\\")):i(n.d3=n.d3||{},n.d3,n.d3,n.d3)},{\\\"d3-array\\\":140,\\\"d3-collection\\\":141,\\\"d3-interpolate\\\":145}],47:[function(t,e,r){\\\"use strict\\\";var n=\\\"undefined\\\"==typeof WeakMap?t(\\\"weak-map\\\"):WeakMap,i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=new n;e.exports=function(t){var e=o.get(t),r=e&&(e._triangleBuffer.handle||e._triangleBuffer.buffer);if(!r||!t.isBuffer(r)){var n=i(t,new Float32Array([-1,-1,-1,4,4,-1]));(e=a(t,[{buffer:n,type:t.FLOAT,size:2}]))._triangleBuffer=n,o.set(t,e)}e.bind(),t.drawArrays(t.TRIANGLES,0,3),e.unbind()}},{\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310,\\\"weak-map\\\":529}],48:[function(t,e,r){e.exports=function(t){var e=0,r=0,n=0,i=0;return t.map(function(t){var a=(t=t.slice())[0],o=a.toUpperCase();if(a!=o)switch(t[0]=o,a){case\\\"a\\\":t[6]+=n,t[7]+=i;break;case\\\"v\\\":t[1]+=i;break;case\\\"h\\\":t[1]+=n;break;default:for(var s=1;s<t.length;)t[s++]+=n,t[s++]+=i}switch(o){case\\\"Z\\\":n=e,i=r;break;case\\\"H\\\":n=t[1];break;case\\\"V\\\":i=t[1];break;case\\\"M\\\":n=e=t[1],i=r=t[2];break;default:n=t[t.length-2],i=t[t.length-1]}return t})}},{}],49:[function(t,e,r){var n=t(\\\"pad-left\\\");e.exports=function(t,e,r){e=\\\"number\\\"==typeof e?e:1,r=r||\\\": \\\";var i=t.split(/\\\\r?\\\\n/),a=String(i.length+e-1).length;return i.map(function(t,i){var o=i+e,s=String(o).length,l=n(o,a-s);return l+r+t}).join(\\\"\\\\n\\\")}},{\\\"pad-left\\\":440}],50:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.length;if(0===e)return[];if(1===e)return[0];for(var r=t[0].length,n=[t[0]],a=[0],o=1;o<e;++o)if(n.push(t[o]),i(n,r)){if(a.push(o),a.length===r+1)return a}else n.pop();return a};var n=t(\\\"robust-orientation\\\");function i(t,e){for(var r=new Array(e+1),i=0;i<t.length;++i)r[i]=t[i];for(i=0;i<=t.length;++i){for(var a=t.length;a<=e;++a){for(var o=new Array(e),s=0;s<e;++s)o[s]=Math.pow(a+1-i,s);r[a]=o}if(n.apply(void 0,r))return!0}return!1}},{\\\"robust-orientation\\\":486}],51:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return n(e).filter(function(r){for(var n=new Array(r.length),a=0;a<r.length;++a)n[a]=e[r[a]];return i(n)*t<1})};var n=t(\\\"delaunay-triangulate\\\"),i=t(\\\"circumradius\\\")},{circumradius:102,\\\"delaunay-triangulate\\\":150}],52:[function(t,e,r){e.exports=function(t,e){return i(n(t,e))};var n=t(\\\"alpha-complex\\\"),i=t(\\\"simplicial-complex-boundary\\\")},{\\\"alpha-complex\\\":51,\\\"simplicial-complex-boundary\\\":493}],53:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){if(!t||null==t.length)throw Error(\\\"Argument should be an array\\\");e=null==e?1:Math.floor(e);for(var r=Array(2*e),n=0;n<e;n++){for(var i=-1/0,a=1/0,o=n,s=t.length;o<s;o+=e)t[o]>i&&(i=t[o]),t[o]<a&&(a=t[o]);r[n]=a,r[e+n]=i}return r}},{}],54:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"array-bounds\\\");e.exports=function(t,e,r){if(!t||null==t.length)throw Error(\\\"Argument should be an array\\\");null==e&&(e=1);null==r&&(r=n(t,e));for(var i=0;i<e;i++){var a=r[e+i],o=r[i],s=i,l=t.length;if(a===1/0&&o===-1/0)for(s=i;s<l;s+=e)t[s]=t[s]===a?1:t[s]===o?0:.5;else if(a===1/0)for(s=i;s<l;s+=e)t[s]=t[s]===a?1:0;else if(o===-1/0)for(s=i;s<l;s+=e)t[s]=t[s]===o?0:1;else{var c=a-o;for(s=i;s<l;s+=e)t[s]=0===c?.5:(t[s]-o)/c}}return t}},{\\\"array-bounds\\\":53}],55:[function(t,e,r){e.exports=function(t,e){var r=\\\"number\\\"==typeof t,n=\\\"number\\\"==typeof e;r&&!n?(e=t,t=0):r||n||(t=0,e=0);var i=(e|=0)-(t|=0);if(i<0)throw new Error(\\\"array length must be positive\\\");for(var a=new Array(i),o=0,s=t;o<i;o++,s++)a[o]=s;return a}},{}],56:[function(t,e,r){(function(r){\\\"use strict\\\";function n(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0}function i(t){return r.Buffer&&\\\"function\\\"==typeof r.Buffer.isBuffer?r.Buffer.isBuffer(t):!(null==t||!t._isBuffer)}var a=t(\\\"util/\\\"),o=Object.prototype.hasOwnProperty,s=Array.prototype.slice,l=\\\"foo\\\"===function(){}.name;function c(t){return Object.prototype.toString.call(t)}function u(t){return!i(t)&&(\\\"function\\\"==typeof r.ArrayBuffer&&(\\\"function\\\"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):!!t&&(t instanceof DataView||!!(t.buffer&&t.buffer instanceof ArrayBuffer))))}var f=e.exports=m,h=/\\\\s*function\\\\s+([^\\\\(\\\\s]*)\\\\s*/;function p(t){if(a.isFunction(t)){if(l)return t.name;var e=t.toString().match(h);return e&&e[1]}}function d(t,e){return\\\"string\\\"==typeof t?t.length<e?t:t.slice(0,e):t}function g(t){if(l||!a.isFunction(t))return a.inspect(t);var e=p(t);return\\\"[Function\\\"+(e?\\\": \\\"+e:\\\"\\\")+\\\"]\\\"}function v(t,e,r,n,i){throw new f.AssertionError({message:r,actual:t,expected:e,operator:n,stackStartFunction:i})}function m(t,e){t||v(t,!0,e,\\\"==\\\",f.ok)}function y(t,e,r,o){if(t===e)return!0;if(i(t)&&i(e))return 0===n(t,e);if(a.isDate(t)&&a.isDate(e))return t.getTime()===e.getTime();if(a.isRegExp(t)&&a.isRegExp(e))return t.source===e.source&&t.global===e.global&&t.multiline===e.multiline&&t.lastIndex===e.lastIndex&&t.ignoreCase===e.ignoreCase;if(null!==t&&\\\"object\\\"==typeof t||null!==e&&\\\"object\\\"==typeof e){if(u(t)&&u(e)&&c(t)===c(e)&&!(t instanceof Float32Array||t instanceof Float64Array))return 0===n(new Uint8Array(t.buffer),new Uint8Array(e.buffer));if(i(t)!==i(e))return!1;var l=(o=o||{actual:[],expected:[]}).actual.indexOf(t);return-1!==l&&l===o.expected.indexOf(e)||(o.actual.push(t),o.expected.push(e),function(t,e,r,n){if(null==t||null==e)return!1;if(a.isPrimitive(t)||a.isPrimitive(e))return t===e;if(r&&Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;var i=x(t),o=x(e);if(i&&!o||!i&&o)return!1;if(i)return t=s.call(t),e=s.call(e),y(t,e,r);var l,c,u=w(t),f=w(e);if(u.length!==f.length)return!1;for(u.sort(),f.sort(),c=u.length-1;c>=0;c--)if(u[c]!==f[c])return!1;for(c=u.length-1;c>=0;c--)if(l=u[c],!y(t[l],e[l],r,n))return!1;return!0}(t,e,r,o))}return r?t===e:t==e}function x(t){return\\\"[object Arguments]\\\"==Object.prototype.toString.call(t)}function b(t,e){if(!t||!e)return!1;if(\\\"[object RegExp]\\\"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function _(t,e,r,n){var i;if(\\\"function\\\"!=typeof e)throw new TypeError('\\\"block\\\" argument must be a function');\\\"string\\\"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?\\\" (\\\"+r.name+\\\").\\\":\\\".\\\")+(n?\\\" \\\"+n:\\\".\\\"),t&&!i&&v(i,r,\\\"Missing expected exception\\\"+n);var o=\\\"string\\\"==typeof n,s=!t&&i&&!r;if((!t&&a.isError(i)&&o&&b(i,r)||s)&&v(i,r,\\\"Got unwanted exception\\\"+n),t&&i&&r&&!b(i,r)||!t&&i)throw i}f.AssertionError=function(t){var e;this.name=\\\"AssertionError\\\",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=d(g((e=this).actual),128)+\\\" \\\"+e.operator+\\\" \\\"+d(g(e.expected),128),this.generatedMessage=!0);var r=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,r);else{var n=new Error;if(n.stack){var i=n.stack,a=p(r),o=i.indexOf(\\\"\\\\n\\\"+a);if(o>=0){var s=i.indexOf(\\\"\\\\n\\\",o+1);i=i.substring(s+1)}this.stack=i}}},a.inherits(f.AssertionError,Error),f.fail=v,f.ok=m,f.equal=function(t,e,r){t!=e&&v(t,e,r,\\\"==\\\",f.equal)},f.notEqual=function(t,e,r){t==e&&v(t,e,r,\\\"!=\\\",f.notEqual)},f.deepEqual=function(t,e,r){y(t,e,!1)||v(t,e,r,\\\"deepEqual\\\",f.deepEqual)},f.deepStrictEqual=function(t,e,r){y(t,e,!0)||v(t,e,r,\\\"deepStrictEqual\\\",f.deepStrictEqual)},f.notDeepEqual=function(t,e,r){y(t,e,!1)&&v(t,e,r,\\\"notDeepEqual\\\",f.notDeepEqual)},f.notDeepStrictEqual=function t(e,r,n){y(e,r,!0)&&v(e,r,n,\\\"notDeepStrictEqual\\\",t)},f.strictEqual=function(t,e,r){t!==e&&v(t,e,r,\\\"===\\\",f.strictEqual)},f.notStrictEqual=function(t,e,r){t===e&&v(t,e,r,\\\"!==\\\",f.notStrictEqual)},f.throws=function(t,e,r){_(!0,t,e,r)},f.doesNotThrow=function(t,e,r){_(!1,t,e,r)},f.ifError=function(t){if(t)throw t};var w=Object.keys||function(t){var e=[];for(var r in t)o.call(t,r)&&e.push(r);return e}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"util/\\\":59}],57:[function(t,e,r){\\\"function\\\"==typeof Object.create?e.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],58:[function(t,e,r){e.exports=function(t){return t&&\\\"object\\\"==typeof t&&\\\"function\\\"==typeof t.copy&&\\\"function\\\"==typeof t.fill&&\\\"function\\\"==typeof t.readUInt8}},{}],59:[function(t,e,r){(function(e,n){var i=/%[sdj%]/g;r.format=function(t){if(!m(t)){for(var e=[],r=0;r<arguments.length;r++)e.push(s(arguments[r]));return e.join(\\\" \\\")}r=1;for(var n=arguments,a=n.length,o=String(t).replace(i,function(t){if(\\\"%%\\\"===t)return\\\"%\\\";if(r>=a)return t;switch(t){case\\\"%s\\\":return String(n[r++]);case\\\"%d\\\":return Number(n[r++]);case\\\"%j\\\":try{return JSON.stringify(n[r++])}catch(t){return\\\"[Circular]\\\"}default:return t}}),l=n[r];r<a;l=n[++r])g(l)||!b(l)?o+=\\\" \\\"+l:o+=\\\" \\\"+s(l);return o},r.deprecate=function(t,i){if(y(n.process))return function(){return r.deprecate(t,i).apply(this,arguments)};if(!0===e.noDeprecation)return t;var a=!1;return function(){if(!a){if(e.throwDeprecation)throw new Error(i);e.traceDeprecation?console.trace(i):console.error(i),a=!0}return t.apply(this,arguments)}};var a,o={};function s(t,e){var n={seen:[],stylize:c};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),d(e)?n.showHidden=e:e&&r._extend(n,e),y(n.showHidden)&&(n.showHidden=!1),y(n.depth)&&(n.depth=2),y(n.colors)&&(n.colors=!1),y(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),u(n,t,n.depth)}function l(t,e){var r=s.styles[e];return r?\\\"\\\\x1b[\\\"+s.colors[r][0]+\\\"m\\\"+t+\\\"\\\\x1b[\\\"+s.colors[r][1]+\\\"m\\\":t}function c(t,e){return t}function u(t,e,n){if(t.customInspect&&e&&k(e.inspect)&&e.inspect!==r.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(n,t);return m(i)||(i=u(t,i,n)),i}var a=function(t,e){if(y(e))return t.stylize(\\\"undefined\\\",\\\"undefined\\\");if(m(e)){var r=\\\"'\\\"+JSON.stringify(e).replace(/^\\\"|\\\"$/g,\\\"\\\").replace(/'/g,\\\"\\\\\\\\'\\\").replace(/\\\\\\\\\\\"/g,'\\\"')+\\\"'\\\";return t.stylize(r,\\\"string\\\")}if(v(e))return t.stylize(\\\"\\\"+e,\\\"number\\\");if(d(e))return t.stylize(\\\"\\\"+e,\\\"boolean\\\");if(g(e))return t.stylize(\\\"null\\\",\\\"null\\\")}(t,e);if(a)return a;var o=Object.keys(e),s=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(e)),w(e)&&(o.indexOf(\\\"message\\\")>=0||o.indexOf(\\\"description\\\")>=0))return f(e);if(0===o.length){if(k(e)){var l=e.name?\\\": \\\"+e.name:\\\"\\\";return t.stylize(\\\"[Function\\\"+l+\\\"]\\\",\\\"special\\\")}if(x(e))return t.stylize(RegExp.prototype.toString.call(e),\\\"regexp\\\");if(_(e))return t.stylize(Date.prototype.toString.call(e),\\\"date\\\");if(w(e))return f(e)}var c,b=\\\"\\\",M=!1,A=[\\\"{\\\",\\\"}\\\"];(p(e)&&(M=!0,A=[\\\"[\\\",\\\"]\\\"]),k(e))&&(b=\\\" [Function\\\"+(e.name?\\\": \\\"+e.name:\\\"\\\")+\\\"]\\\");return x(e)&&(b=\\\" \\\"+RegExp.prototype.toString.call(e)),_(e)&&(b=\\\" \\\"+Date.prototype.toUTCString.call(e)),w(e)&&(b=\\\" \\\"+f(e)),0!==o.length||M&&0!=e.length?n<0?x(e)?t.stylize(RegExp.prototype.toString.call(e),\\\"regexp\\\"):t.stylize(\\\"[Object]\\\",\\\"special\\\"):(t.seen.push(e),c=M?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o<s;++o)S(e,String(o))?a.push(h(t,e,r,n,String(o),!0)):a.push(\\\"\\\");return i.forEach(function(i){i.match(/^\\\\d+$/)||a.push(h(t,e,r,n,i,!0))}),a}(t,e,n,s,o):o.map(function(r){return h(t,e,n,s,r,M)}),t.seen.pop(),function(t,e,r){if(t.reduce(function(t,e){return 0,e.indexOf(\\\"\\\\n\\\")>=0&&0,t+e.replace(/\\\\u001b\\\\[\\\\d\\\\d?m/g,\\\"\\\").length+1},0)>60)return r[0]+(\\\"\\\"===e?\\\"\\\":e+\\\"\\\\n \\\")+\\\" \\\"+t.join(\\\",\\\\n  \\\")+\\\" \\\"+r[1];return r[0]+e+\\\" \\\"+t.join(\\\", \\\")+\\\" \\\"+r[1]}(c,b,A)):A[0]+b+A[1]}function f(t){return\\\"[\\\"+Error.prototype.toString.call(t)+\\\"]\\\"}function h(t,e,r,n,i,a){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=l.set?t.stylize(\\\"[Getter/Setter]\\\",\\\"special\\\"):t.stylize(\\\"[Getter]\\\",\\\"special\\\"):l.set&&(s=t.stylize(\\\"[Setter]\\\",\\\"special\\\")),S(n,i)||(o=\\\"[\\\"+i+\\\"]\\\"),s||(t.seen.indexOf(l.value)<0?(s=g(r)?u(t,l.value,null):u(t,l.value,r-1)).indexOf(\\\"\\\\n\\\")>-1&&(s=a?s.split(\\\"\\\\n\\\").map(function(t){return\\\"  \\\"+t}).join(\\\"\\\\n\\\").substr(2):\\\"\\\\n\\\"+s.split(\\\"\\\\n\\\").map(function(t){return\\\"   \\\"+t}).join(\\\"\\\\n\\\")):s=t.stylize(\\\"[Circular]\\\",\\\"special\\\")),y(o)){if(a&&i.match(/^\\\\d+$/))return s;(o=JSON.stringify(\\\"\\\"+i)).match(/^\\\"([a-zA-Z_][a-zA-Z_0-9]*)\\\"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,\\\"name\\\")):(o=o.replace(/'/g,\\\"\\\\\\\\'\\\").replace(/\\\\\\\\\\\"/g,'\\\"').replace(/(^\\\"|\\\"$)/g,\\\"'\\\"),o=t.stylize(o,\\\"string\\\"))}return o+\\\": \\\"+s}function p(t){return Array.isArray(t)}function d(t){return\\\"boolean\\\"==typeof t}function g(t){return null===t}function v(t){return\\\"number\\\"==typeof t}function m(t){return\\\"string\\\"==typeof t}function y(t){return void 0===t}function x(t){return b(t)&&\\\"[object RegExp]\\\"===M(t)}function b(t){return\\\"object\\\"==typeof t&&null!==t}function _(t){return b(t)&&\\\"[object Date]\\\"===M(t)}function w(t){return b(t)&&(\\\"[object Error]\\\"===M(t)||t instanceof Error)}function k(t){return\\\"function\\\"==typeof t}function M(t){return Object.prototype.toString.call(t)}function A(t){return t<10?\\\"0\\\"+t.toString(10):t.toString(10)}r.debuglog=function(t){if(y(a)&&(a=e.env.NODE_DEBUG||\\\"\\\"),t=t.toUpperCase(),!o[t])if(new RegExp(\\\"\\\\\\\\b\\\"+t+\\\"\\\\\\\\b\\\",\\\"i\\\").test(a)){var n=e.pid;o[t]=function(){var e=r.format.apply(r,arguments);console.error(\\\"%s %d: %s\\\",t,n,e)}}else o[t]=function(){};return o[t]},r.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\\\"},r.isArray=p,r.isBoolean=d,r.isNull=g,r.isNullOrUndefined=function(t){return null==t},r.isNumber=v,r.isString=m,r.isSymbol=function(t){return\\\"symbol\\\"==typeof t},r.isUndefined=y,r.isRegExp=x,r.isObject=b,r.isDate=_,r.isError=w,r.isFunction=k,r.isPrimitive=function(t){return null===t||\\\"boolean\\\"==typeof t||\\\"number\\\"==typeof t||\\\"string\\\"==typeof t||\\\"symbol\\\"==typeof t||\\\"undefined\\\"==typeof t},r.isBuffer=t(\\\"./support/isBuffer\\\");var T=[\\\"Jan\\\",\\\"Feb\\\",\\\"Mar\\\",\\\"Apr\\\",\\\"May\\\",\\\"Jun\\\",\\\"Jul\\\",\\\"Aug\\\",\\\"Sep\\\",\\\"Oct\\\",\\\"Nov\\\",\\\"Dec\\\"];function S(t,e){return Object.prototype.hasOwnProperty.call(t,e)}r.log=function(){var t,e;console.log(\\\"%s - %s\\\",(t=new Date,e=[A(t.getHours()),A(t.getMinutes()),A(t.getSeconds())].join(\\\":\\\"),[t.getDate(),T[t.getMonth()],e].join(\\\" \\\")),r.format.apply(r,arguments))},r.inherits=t(\\\"inherits\\\"),r._extend=function(t,e){if(!e||!b(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this,t(\\\"_process\\\"),\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"./support/isBuffer\\\":58,_process:465,inherits:57}],60:[function(t,e,r){e.exports=function(t){return atob(t)}},{}],61:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r=e.length,a=new Array(r+1),o=0;o<r;++o){for(var s=new Array(r+1),l=0;l<=r;++l)s[l]=t[l][o];a[o]=s}a[r]=new Array(r+1);for(var o=0;o<=r;++o)a[r][o]=1;for(var c=new Array(r+1),o=0;o<r;++o)c[o]=e[o];c[r]=1;var u=n(a,c),f=i(u[r+1]);0===f&&(f=1);for(var h=new Array(r+1),o=0;o<=r;++o)h[o]=i(u[o])/f;return h};var n=t(\\\"robust-linear-solve\\\");function i(t){for(var e=0,r=0;r<t.length;++r)e+=t[r];return e}},{\\\"robust-linear-solve\\\":485}],62:[function(t,e,r){\\\"use strict\\\";r.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},r.toByteArray=function(t){for(var e,r=c(t),n=r[0],o=r[1],s=new a(function(t,e,r){return 3*(e+r)/4-r}(0,n,o)),l=0,u=o>0?n-4:n,f=0;f<u;f+=4)e=i[t.charCodeAt(f)]<<18|i[t.charCodeAt(f+1)]<<12|i[t.charCodeAt(f+2)]<<6|i[t.charCodeAt(f+3)],s[l++]=e>>16&255,s[l++]=e>>8&255,s[l++]=255&e;2===o&&(e=i[t.charCodeAt(f)]<<2|i[t.charCodeAt(f+1)]>>4,s[l++]=255&e);1===o&&(e=i[t.charCodeAt(f)]<<10|i[t.charCodeAt(f+1)]<<4|i[t.charCodeAt(f+2)]>>2,s[l++]=e>>8&255,s[l++]=255&e);return s},r.fromByteArray=function(t){for(var e,r=t.length,i=r%3,a=[],o=0,s=r-i;o<s;o+=16383)a.push(u(t,o,o+16383>s?s:o+16383));1===i?(e=t[r-1],a.push(n[e>>2]+n[e<<4&63]+\\\"==\\\")):2===i&&(e=(t[r-2]<<8)+t[r-1],a.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+\\\"=\\\"));return a.join(\\\"\\\")};for(var n=[],i=[],a=\\\"undefined\\\"!=typeof Uint8Array?Uint8Array:Array,o=\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\",s=0,l=o.length;s<l;++s)n[s]=o[s],i[o.charCodeAt(s)]=s;function c(t){var e=t.length;if(e%4>0)throw new Error(\\\"Invalid string. Length must be a multiple of 4\\\");var r=t.indexOf(\\\"=\\\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,r){for(var i,a,o=[],s=e;s<r;s+=3)i=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),o.push(n[(a=i)>>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return o.join(\\\"\\\")}i[\\\"-\\\".charCodeAt(0)]=62,i[\\\"_\\\".charCodeAt(0)]=63},{}],63:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/rationalize\\\");e.exports=function(t,e){return n(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))}},{\\\"./lib/rationalize\\\":73}],64:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}},{}],65:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/rationalize\\\");e.exports=function(t,e){return n(t[0].mul(e[1]),t[1].mul(e[0]))}},{\\\"./lib/rationalize\\\":73}],66:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-rat\\\"),i=t(\\\"./lib/is-bn\\\"),a=t(\\\"./lib/num-to-bn\\\"),o=t(\\\"./lib/str-to-bn\\\"),s=t(\\\"./lib/rationalize\\\"),l=t(\\\"./div\\\");e.exports=function t(e,r){if(n(e))return r?l(e,t(r)):[e[0].clone(),e[1].clone()];var c=0;var u,f;if(i(e))u=e.clone();else if(\\\"string\\\"==typeof e)u=o(e);else{if(0===e)return[a(0),a(1)];if(e===Math.floor(e))u=a(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),c-=256;u=a(e)}}if(n(r))u.mul(r[1]),f=r[0].clone();else if(i(r))f=r.clone();else if(\\\"string\\\"==typeof r)f=o(r);else if(r)if(r===Math.floor(r))f=a(r);else{for(;r!==Math.floor(r);)r*=Math.pow(2,256),c+=256;f=a(r)}else f=a(1);c>0?u=u.ushln(c):c<0&&(f=f.ushln(-c));return s(u,f)}},{\\\"./div\\\":65,\\\"./is-rat\\\":67,\\\"./lib/is-bn\\\":71,\\\"./lib/num-to-bn\\\":72,\\\"./lib/rationalize\\\":73,\\\"./lib/str-to-bn\\\":74}],67:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/is-bn\\\");e.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},{\\\"./lib/is-bn\\\":71}],68:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"bn.js\\\");e.exports=function(t){return t.cmp(new n(0))}},{\\\"bn.js\\\":82}],69:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./bn-sign\\\");e.exports=function(t){var e=t.length,r=t.words,i=0;if(1===e)i=r[0];else if(2===e)i=r[0]+67108864*r[1];else for(var a=0;a<e;a++){var o=r[a];i+=o*Math.pow(67108864,a)}return n(t)*i}},{\\\"./bn-sign\\\":68}],70:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"double-bits\\\"),i=t(\\\"bit-twiddle\\\").countTrailingZeros;e.exports=function(t){var e=i(n.lo(t));if(e<32)return e;var r=i(n.hi(t));if(r>20)return 52;return r+32}},{\\\"bit-twiddle\\\":80,\\\"double-bits\\\":152}],71:[function(t,e,r){\\\"use strict\\\";t(\\\"bn.js\\\");e.exports=function(t){return t&&\\\"object\\\"==typeof t&&Boolean(t.words)}},{\\\"bn.js\\\":82}],72:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"bn.js\\\"),i=t(\\\"double-bits\\\");e.exports=function(t){var e=i.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},{\\\"bn.js\\\":82,\\\"double-bits\\\":152}],73:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./num-to-bn\\\"),i=t(\\\"./bn-sign\\\");e.exports=function(t,e){var r=i(t),a=i(e);if(0===r)return[n(0),n(1)];if(0===a)return[n(0),n(0)];a<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);if(o.cmpn(1))return[t.div(o),e.div(o)];return[t,e]}},{\\\"./bn-sign\\\":68,\\\"./num-to-bn\\\":72}],74:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"bn.js\\\");e.exports=function(t){return new n(t)}},{\\\"bn.js\\\":82}],75:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/rationalize\\\");e.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},{\\\"./lib/rationalize\\\":73}],76:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/bn-sign\\\");e.exports=function(t){return n(t[0])*n(t[1])}},{\\\"./lib/bn-sign\\\":68}],77:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/rationalize\\\");e.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},{\\\"./lib/rationalize\\\":73}],78:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/bn-to-num\\\"),i=t(\\\"./lib/ctz\\\");e.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var a=e.abs().divmod(r.abs()),o=a.div,s=n(o),l=a.mod,c=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return c*s;if(s){var u=i(s)+4,f=n(l.ushln(u).divRound(r));return c*(s+f*Math.pow(2,-u))}var h=r.bitLength()-l.bitLength()+53,f=n(l.ushln(h).divRound(r));return h<1023?c*f*Math.pow(2,-h):(f*=Math.pow(2,-1023),c*f*Math.pow(2,1023-h))}},{\\\"./lib/bn-to-num\\\":69,\\\"./lib/ctz\\\":70}],79:[function(t,e,r){\\\"use strict\\\";function n(t,e,r,n,i,a){var o=[\\\"function \\\",t,\\\"(a,l,h,\\\",n.join(\\\",\\\"),\\\"){\\\",a?\\\"\\\":\\\"var i=\\\",r?\\\"l-1\\\":\\\"h+1\\\",\\\";while(l<=h){var m=(l+h)>>>1,x=a\\\",i?\\\".get(m)\\\":\\\"[m]\\\"];return a?e.indexOf(\\\"c\\\")<0?o.push(\\\";if(x===y){return m}else if(x<=y){\\\"):o.push(\\\";var p=c(x,y);if(p===0){return m}else if(p<=0){\\\"):o.push(\\\";if(\\\",e,\\\"){i=m;\\\"),r?o.push(\\\"l=m+1}else{h=m-1}\\\"):o.push(\\\"h=m-1}else{l=m+1}\\\"),o.push(\\\"}\\\"),a?o.push(\\\"return -1};\\\"):o.push(\\\"return i};\\\"),o.join(\\\"\\\")}function i(t,e,r,i){return new Function([n(\\\"A\\\",\\\"x\\\"+t+\\\"y\\\",e,[\\\"y\\\"],!1,i),n(\\\"B\\\",\\\"x\\\"+t+\\\"y\\\",e,[\\\"y\\\"],!0,i),n(\\\"P\\\",\\\"c(x,y)\\\"+t+\\\"0\\\",e,[\\\"y\\\",\\\"c\\\"],!1,i),n(\\\"Q\\\",\\\"c(x,y)\\\"+t+\\\"0\\\",e,[\\\"y\\\",\\\"c\\\"],!0,i),\\\"function dispatchBsearch\\\",r,\\\"(a,y,c,l,h){if(a.shape){if(typeof(c)==='function'){return Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)}else{return B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)}}else{if(typeof(c)==='function'){return P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)}else{return A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)}}}return dispatchBsearch\\\",r].join(\\\"\\\"))()}e.exports={ge:i(\\\">=\\\",!1,\\\"GE\\\"),gt:i(\\\">\\\",!1,\\\"GT\\\"),lt:i(\\\"<\\\",!0,\\\"LT\\\"),le:i(\\\"<=\\\",!0,\\\"LE\\\"),eq:i(\\\"-\\\",!0,\\\"EQ\\\",!0)}},{}],80:[function(t,e,r){\\\"use strict\\\";function n(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}r.INT_BITS=32,r.INT_MAX=2147483647,r.INT_MIN=-1<<31,r.sign=function(t){return(t>0)-(t<0)},r.abs=function(t){var e=t>>31;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t<e)},r.max=function(t,e){return t^(t^e)&-(t<e)},r.isPow2=function(t){return!(t&t-1||!t)},r.log2=function(t){var e,r;return e=(t>65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var i=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<<i&255}}(i),r.reverse=function(t){return i[255&t]<<24|i[t>>>8&255]<<16|i[t>>>16&255]<<8|i[t>>>24&255]},r.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},r.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},r.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},r.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],81:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"clamp\\\");e.exports=function(t,e){e||(e={});var r,o,s,l,c,u,f,h,p,d,g,v=null==e.cutoff?.25:e.cutoff,m=null==e.radius?8:e.radius,y=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error(\\\"For raw data width and height should be provided by options\\\");r=e.width,o=e.height,l=t,u=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(f=(h=t).getContext(\\\"2d\\\"),r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(h=t.canvas,f=t,r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,u=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(c=l,l=Array(r*o),d=0,g=c.length;d<g;d++)l[d]=c[d*u+y]/255;else if(1!==u)throw Error(\\\"Raw data can have only 1 value per pixel\\\");var x=Array(r*o),b=Array(r*o),_=Array(s),w=Array(s),k=Array(s+1),M=Array(s);for(d=0,g=r*o;d<g;d++){var A=l[d];x[d]=1===A?0:0===A?i:Math.pow(Math.max(0,.5-A),2),b[d]=1===A?i:0===A?0:Math.pow(Math.max(0,A-.5),2)}a(x,r,o,_,w,M,k),a(b,r,o,_,w,M,k);var T=window.Float32Array?new Float32Array(r*o):new Array(r*o);for(d=0,g=r*o;d<g;d++)T[d]=n(1-((x[d]-b[d])/m+v),0,1);return T};var i=1e20;function a(t,e,r,n,i,a,s){for(var l=0;l<e;l++){for(var c=0;c<r;c++)n[c]=t[c*e+l];for(o(n,i,a,s,r),c=0;c<r;c++)t[c*e+l]=i[c]}for(c=0;c<r;c++){for(l=0;l<e;l++)n[l]=t[c*e+l];for(o(n,i,a,s,e),l=0;l<e;l++)t[c*e+l]=Math.sqrt(i[l])}}function o(t,e,r,n,a){r[0]=0,n[0]=-i,n[1]=+i;for(var o=1,s=0;o<a;o++){for(var l=(t[o]+o*o-(t[r[s]]+r[s]*r[s]))/(2*o-2*r[s]);l<=n[s];)s--,l=(t[o]+o*o-(t[r[s]]+r[s]*r[s]))/(2*o-2*r[s]);r[++s]=o,n[s]=l,n[s+1]=+i}for(o=0,s=0;o<a;o++){for(;n[s+1]<o;)s++;e[o]=(o-r[s])*(o-r[s])+t[r[s]]}}},{clamp:103}],82:[function(t,e,r){!function(e,r){\\\"use strict\\\";function n(t,e){if(!t)throw new Error(e||\\\"Assertion failed\\\")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&(\\\"le\\\"!==e&&\\\"be\\\"!==e||(r=e,e=10),this._init(t||0,e||10,r||\\\"be\\\"))}var o;\\\"object\\\"==typeof e?e.exports=a:r.BN=a,a.BN=a,a.wordSize=26;try{o=t(\\\"buffer\\\").Buffer}catch(t){}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),a=e;a<i;a++){var o=t.charCodeAt(a)-48;n<<=4,n|=o>=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function l(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o<a;o++){var s=t.charCodeAt(o)-48;i*=n,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&\\\"object\\\"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if(\\\"number\\\"==typeof t)return this._initNumber(t,e,r);if(\\\"object\\\"==typeof t)return this._initArray(t,e,r);\\\"hex\\\"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;\\\"-\\\"===(t=t.toString().replace(/\\\\s+/g,\\\"\\\"))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),\\\"-\\\"===t[0]&&(this.negative=1),this.strip(),\\\"le\\\"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),\\\"le\\\"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(n(\\\"number\\\"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if(\\\"be\\\"===r)for(i=t.length-1,a=0;i>=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if(\\\"le\\\"===r)for(i=0,a=0;i<t.length;i+=3)o=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,i,a=0;for(r=t.length-6,n=0;r>=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<<a&67108863,this.words[n+1]|=i>>>26-a&4194303,(a+=24)>=26&&(a-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<<a&67108863,this.words[n+1]|=i>>>26-a&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,s=Math.min(a,a-o)+r,c=0,u=r;u<s;u+=n)c=l(t,u,u+n,e),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var f=1;for(c=l(t,u,t.length,e),u=0;u<o;u++)f*=e;this.imuln(f),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}},a.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},a.prototype.clone=function(){var t=new a(null);return this.copy(t),t},a.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},a.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?\\\"<BN-R: \\\":\\\"<BN: \\\")+this.toString(16)+\\\">\\\"};var c=[\\\"\\\",\\\"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\\\"],u=[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],f=[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 h(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var c=1;c<n;c++){for(var u=l>>>26,f=67108863&l,h=Math.min(c,e.length-1),p=Math.max(0,c-t.length+1);p<=h;p++){var d=c-p|0;u+=(o=(i=0|t.words[d])*(a=0|e.words[p])+f)/67108864|0,f=67108863&o}r.words[c]=0|f,l=0|u}return 0!==l?r.words[c]=0|l:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||\\\"hex\\\"===t){r=\\\"\\\";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],l=(16777215&(s<<i|a)).toString(16);r=0!==(a=s>>>24-i&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%e!=0;)r=\\\"0\\\"+r;return 0!==this.negative&&(r=\\\"-\\\"+r),r}if(t===(0|t)&&t>=2&&t<=36){var h=u[t],p=f[t];r=\\\"\\\";var d=this.clone();for(d.negative=0;!d.isZero();){var g=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?g+r:c[h-g.length]+g+r}for(this.isZero()&&(r=\\\"0\\\"+r);r.length%e!=0;)r=\\\"0\\\"+r;return 0!==this.negative&&(r=\\\"-\\\"+r),r}n(!1,\\\"Base should be between 2 and 36\\\")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,\\\"Number can only safely store up to 53 bits\\\"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return n(\\\"undefined\\\"!=typeof o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,\\\"byte array longer than desired length\\\"),n(a>0,\\\"Requested array length <= 0\\\"),this.strip();var o,s,l=\\\"le\\\"===e,c=new t(a),u=this.clone();if(l){for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[s]=o;for(;s<a;s++)c[s]=0}else{for(s=0;s<a-i;s++)c[s]=0;for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[a-s-1]=o}return c},Math.clz32?a.prototype._countBits=function(t){return 32-Math.clz32(t)}:a.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},a.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},a.prototype.ior=function(t){return n(0==(this.negative|t.negative)),this.iuor(t)},a.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},a.prototype.iand=function(t){return n(0==(this.negative|t.negative)),this.iuand(t)},a.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},a.prototype.ixor=function(t){return n(0==(this.negative|t.negative)),this.iuxor(t)},a.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){n(\\\"number\\\"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){n(\\\"number\\\"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},a.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a<n.length;a++)e=(0|r.words[a])+(0|n.words[a])+i,this.words[a]=67108863&e,i=e>>>26;for(;0!==i&&a<r.length;a++)e=(0|r.words[a])+i,this.words[a]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this},a.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o<n.length;o++)a=(e=(0|r.words[o])-(0|n.words[o])+a)>>26,this.words[o]=67108863&e;for(;0!==a&&o<r.length;o++)a=(e=(0|r.words[o])+a)>>26,this.words[o]=67108863&e;if(0===a&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this.strip()},a.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,r){var n,i,a,o=t.words,s=e.words,l=r.words,c=0,u=0|o[0],f=8191&u,h=u>>>13,p=0|o[1],d=8191&p,g=p>>>13,v=0|o[2],m=8191&v,y=v>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],k=8191&w,M=w>>>13,A=0|o[5],T=8191&A,S=A>>>13,E=0|o[6],C=8191&E,L=E>>>13,z=0|o[7],O=8191&z,I=z>>>13,P=0|o[8],D=8191&P,R=P>>>13,B=0|o[9],F=8191&B,N=B>>>13,j=0|s[0],V=8191&j,U=j>>>13,q=0|s[1],H=8191&q,G=q>>>13,W=0|s[2],Y=8191&W,X=W>>>13,Z=0|s[3],$=8191&Z,J=Z>>>13,K=0|s[4],Q=8191&K,tt=K>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ct=st>>>13,ut=0|s[8],ft=8191&ut,ht=ut>>>13,pt=0|s[9],dt=8191&pt,gt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var vt=(c+(n=Math.imul(f,V))|0)+((8191&(i=(i=Math.imul(f,U))+Math.imul(h,V)|0))<<13)|0;c=((a=Math.imul(h,U))+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(d,V),i=(i=Math.imul(d,U))+Math.imul(g,V)|0,a=Math.imul(g,U);var mt=(c+(n=n+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(h,H)|0))<<13)|0;c=((a=a+Math.imul(h,G)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(m,V),i=(i=Math.imul(m,U))+Math.imul(y,V)|0,a=Math.imul(y,U),n=n+Math.imul(d,H)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0;var yt=(c+(n=n+Math.imul(f,Y)|0)|0)+((8191&(i=(i=i+Math.imul(f,X)|0)+Math.imul(h,Y)|0))<<13)|0;c=((a=a+Math.imul(h,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,U))+Math.imul(_,V)|0,a=Math.imul(_,U),n=n+Math.imul(m,H)|0,i=(i=i+Math.imul(m,G)|0)+Math.imul(y,H)|0,a=a+Math.imul(y,G)|0,n=n+Math.imul(d,Y)|0,i=(i=i+Math.imul(d,X)|0)+Math.imul(g,Y)|0,a=a+Math.imul(g,X)|0;var xt=(c+(n=n+Math.imul(f,$)|0)|0)+((8191&(i=(i=i+Math.imul(f,J)|0)+Math.imul(h,$)|0))<<13)|0;c=((a=a+Math.imul(h,J)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(k,V),i=(i=Math.imul(k,U))+Math.imul(M,V)|0,a=Math.imul(M,U),n=n+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(m,Y)|0,i=(i=i+Math.imul(m,X)|0)+Math.imul(y,Y)|0,a=a+Math.imul(y,X)|0,n=n+Math.imul(d,$)|0,i=(i=i+Math.imul(d,J)|0)+Math.imul(g,$)|0,a=a+Math.imul(g,J)|0;var bt=(c+(n=n+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,tt)|0)+Math.imul(h,Q)|0))<<13)|0;c=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(T,V),i=(i=Math.imul(T,U))+Math.imul(S,V)|0,a=Math.imul(S,U),n=n+Math.imul(k,H)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,G)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,X)|0,n=n+Math.imul(m,$)|0,i=(i=i+Math.imul(m,J)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,J)|0,n=n+Math.imul(d,Q)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,tt)|0;var _t=(c+(n=n+Math.imul(f,rt)|0)|0)+((8191&(i=(i=i+Math.imul(f,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((a=a+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,U))+Math.imul(L,V)|0,a=Math.imul(L,U),n=n+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(S,H)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(M,Y)|0,a=a+Math.imul(M,X)|0,n=n+Math.imul(b,$)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(_,$)|0,a=a+Math.imul(_,J)|0,n=n+Math.imul(m,Q)|0,i=(i=i+Math.imul(m,tt)|0)+Math.imul(y,Q)|0,a=a+Math.imul(y,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(g,rt)|0,a=a+Math.imul(g,nt)|0;var wt=(c+(n=n+Math.imul(f,at)|0)|0)+((8191&(i=(i=i+Math.imul(f,ot)|0)+Math.imul(h,at)|0))<<13)|0;c=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(O,V),i=(i=Math.imul(O,U))+Math.imul(I,V)|0,a=Math.imul(I,U),n=n+Math.imul(C,H)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(L,H)|0,a=a+Math.imul(L,G)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,X)|0,n=n+Math.imul(k,$)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(M,$)|0,a=a+Math.imul(M,J)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(m,rt)|0,i=(i=i+Math.imul(m,nt)|0)+Math.imul(y,rt)|0,a=a+Math.imul(y,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(g,at)|0,a=a+Math.imul(g,ot)|0;var kt=(c+(n=n+Math.imul(f,lt)|0)|0)+((8191&(i=(i=i+Math.imul(f,ct)|0)+Math.imul(h,lt)|0))<<13)|0;c=((a=a+Math.imul(h,ct)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,U))+Math.imul(R,V)|0,a=Math.imul(R,U),n=n+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(I,H)|0,a=a+Math.imul(I,G)|0,n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(L,Y)|0,a=a+Math.imul(L,X)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,J)|0,n=n+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(m,at)|0,i=(i=i+Math.imul(m,ot)|0)+Math.imul(y,at)|0,a=a+Math.imul(y,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ct)|0)+Math.imul(g,lt)|0,a=a+Math.imul(g,ct)|0;var Mt=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,ht)|0)+Math.imul(h,ft)|0))<<13)|0;c=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(F,V),i=(i=Math.imul(F,U))+Math.imul(N,V)|0,a=Math.imul(N,U),n=n+Math.imul(D,H)|0,i=(i=i+Math.imul(D,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(O,Y)|0,i=(i=i+Math.imul(O,X)|0)+Math.imul(I,Y)|0,a=a+Math.imul(I,X)|0,n=n+Math.imul(C,$)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(L,$)|0,a=a+Math.imul(L,J)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(S,Q)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(k,rt)|0,i=(i=i+Math.imul(k,nt)|0)+Math.imul(M,rt)|0,a=a+Math.imul(M,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(m,lt)|0,i=(i=i+Math.imul(m,ct)|0)+Math.imul(y,lt)|0,a=a+Math.imul(y,ct)|0,n=n+Math.imul(d,ft)|0,i=(i=i+Math.imul(d,ht)|0)+Math.imul(g,ft)|0,a=a+Math.imul(g,ht)|0;var At=(c+(n=n+Math.imul(f,dt)|0)|0)+((8191&(i=(i=i+Math.imul(f,gt)|0)+Math.imul(h,dt)|0))<<13)|0;c=((a=a+Math.imul(h,gt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(F,H),i=(i=Math.imul(F,G))+Math.imul(N,H)|0,a=Math.imul(N,G),n=n+Math.imul(D,Y)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(R,Y)|0,a=a+Math.imul(R,X)|0,n=n+Math.imul(O,$)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(I,$)|0,a=a+Math.imul(I,J)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(L,Q)|0,a=a+Math.imul(L,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(k,at)|0,i=(i=i+Math.imul(k,ot)|0)+Math.imul(M,at)|0,a=a+Math.imul(M,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ct)|0,n=n+Math.imul(m,ft)|0,i=(i=i+Math.imul(m,ht)|0)+Math.imul(y,ft)|0,a=a+Math.imul(y,ht)|0;var Tt=(c+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,gt)|0)+Math.imul(g,dt)|0))<<13)|0;c=((a=a+Math.imul(g,gt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,X))+Math.imul(N,Y)|0,a=Math.imul(N,X),n=n+Math.imul(D,$)|0,i=(i=i+Math.imul(D,J)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,J)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(I,Q)|0,a=a+Math.imul(I,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(L,rt)|0,a=a+Math.imul(L,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(k,lt)|0,i=(i=i+Math.imul(k,ct)|0)+Math.imul(M,lt)|0,a=a+Math.imul(M,ct)|0,n=n+Math.imul(b,ft)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(_,ft)|0,a=a+Math.imul(_,ht)|0;var St=(c+(n=n+Math.imul(m,dt)|0)|0)+((8191&(i=(i=i+Math.imul(m,gt)|0)+Math.imul(y,dt)|0))<<13)|0;c=((a=a+Math.imul(y,gt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(F,$),i=(i=Math.imul(F,J))+Math.imul(N,$)|0,a=Math.imul(N,J),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(I,rt)|0,a=a+Math.imul(I,nt)|0,n=n+Math.imul(C,at)|0,i=(i=i+Math.imul(C,ot)|0)+Math.imul(L,at)|0,a=a+Math.imul(L,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ct)|0,n=n+Math.imul(k,ft)|0,i=(i=i+Math.imul(k,ht)|0)+Math.imul(M,ft)|0,a=a+Math.imul(M,ht)|0;var Et=(c+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,gt)|0)+Math.imul(_,dt)|0))<<13)|0;c=((a=a+Math.imul(_,gt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(N,Q)|0,a=Math.imul(N,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(O,at)|0,i=(i=i+Math.imul(O,ot)|0)+Math.imul(I,at)|0,a=a+Math.imul(I,ot)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ct)|0)+Math.imul(L,lt)|0,a=a+Math.imul(L,ct)|0,n=n+Math.imul(T,ft)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(S,ft)|0,a=a+Math.imul(S,ht)|0;var Ct=(c+(n=n+Math.imul(k,dt)|0)|0)+((8191&(i=(i=i+Math.imul(k,gt)|0)+Math.imul(M,dt)|0))<<13)|0;c=((a=a+Math.imul(M,gt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(F,rt),i=(i=Math.imul(F,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(D,at)|0,i=(i=i+Math.imul(D,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(O,lt)|0,i=(i=i+Math.imul(O,ct)|0)+Math.imul(I,lt)|0,a=a+Math.imul(I,ct)|0,n=n+Math.imul(C,ft)|0,i=(i=i+Math.imul(C,ht)|0)+Math.imul(L,ft)|0,a=a+Math.imul(L,ht)|0;var Lt=(c+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,gt)|0)+Math.imul(S,dt)|0))<<13)|0;c=((a=a+Math.imul(S,gt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(F,at),i=(i=Math.imul(F,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ct)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ct)|0,n=n+Math.imul(O,ft)|0,i=(i=i+Math.imul(O,ht)|0)+Math.imul(I,ft)|0,a=a+Math.imul(I,ht)|0;var zt=(c+(n=n+Math.imul(C,dt)|0)|0)+((8191&(i=(i=i+Math.imul(C,gt)|0)+Math.imul(L,dt)|0))<<13)|0;c=((a=a+Math.imul(L,gt)|0)+(i>>>13)|0)+(zt>>>26)|0,zt&=67108863,n=Math.imul(F,lt),i=(i=Math.imul(F,ct))+Math.imul(N,lt)|0,a=Math.imul(N,ct),n=n+Math.imul(D,ft)|0,i=(i=i+Math.imul(D,ht)|0)+Math.imul(R,ft)|0,a=a+Math.imul(R,ht)|0;var Ot=(c+(n=n+Math.imul(O,dt)|0)|0)+((8191&(i=(i=i+Math.imul(O,gt)|0)+Math.imul(I,dt)|0))<<13)|0;c=((a=a+Math.imul(I,gt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(F,ft),i=(i=Math.imul(F,ht))+Math.imul(N,ft)|0,a=Math.imul(N,ht);var It=(c+(n=n+Math.imul(D,dt)|0)|0)+((8191&(i=(i=i+Math.imul(D,gt)|0)+Math.imul(R,dt)|0))<<13)|0;c=((a=a+Math.imul(R,gt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Pt=(c+(n=Math.imul(F,dt))|0)+((8191&(i=(i=Math.imul(F,gt))+Math.imul(N,dt)|0))<<13)|0;return c=((a=Math.imul(N,gt))+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,l[0]=vt,l[1]=mt,l[2]=yt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=kt,l[8]=Mt,l[9]=At,l[10]=Tt,l[11]=St,l[12]=Et,l[13]=Ct,l[14]=Lt,l[15]=zt,l[16]=Ot,l[17]=It,l[18]=Pt,0!==c&&(l[19]=c,r.length++),r};function d(t,e,r){return(new g).mulp(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=h),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?h(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a<r.length-1;a++){var o=i;i=0;for(var s=67108863&n,l=Math.min(a,e.length-1),c=Math.max(0,a-t.length+1);c<=l;c++){var u=a-c,f=(0|t.words[u])*(0|e.words[c]),h=67108863&f;s=67108863&(h=h+s|0),i+=(o=(o=o+(f/67108864|0)|0)+(h>>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):d(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},g.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},g.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o<a;o++)n[o]=e[t[o]],i[o]=r[t[o]]},g.prototype.transform=function(t,e,r,n,i,a){this.permute(a,t,e,r,n,i);for(var o=1;o<i;o<<=1)for(var s=o<<1,l=Math.cos(2*Math.PI/s),c=Math.sin(2*Math.PI/s),u=0;u<i;u+=s)for(var f=l,h=c,p=0;p<o;p++){var d=r[u+p],g=n[u+p],v=r[u+p+o],m=n[u+p+o],y=f*v-h*m;m=f*m+h*v,v=y,r[u+p]=d+v,n[u+p]=g+m,r[u+p+o]=d-v,n[u+p+o]=g-m,p!==s&&(y=l*f-c*h,h=l*h+c*f,f=y)}},g.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},g.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},g.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},g.prototype.convert13b=function(t,e,r,i){for(var a=0,o=0;o<e;o++)a+=0|t[o],r[2*o]=8191&a,a>>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*e;o<i;++o)r[o]=0;n(0===a),n(0==(-8192&a))},g.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},g.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),a=this.stub(n),o=new Array(n),s=new Array(n),l=new Array(n),c=new Array(n),u=new Array(n),f=new Array(n),h=r.words;h.length=n,this.convert13b(t.words,t.length,o,n),this.convert13b(e.words,e.length,c,n),this.transform(o,a,s,l,n,i),this.transform(c,a,u,f,n,i);for(var p=0;p<n;p++){var d=s[p]*u[p]-l[p]*f[p];l[p]=s[p]*f[p]+l[p]*u[p],s[p]=d}return this.conjugate(s,l,n),this.transform(s,l,h,a,n,i),this.conjugate(h,a,n),this.normalize13b(h,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},a.prototype.mul=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},a.prototype.mulf=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),d(this,t,e)},a.prototype.imul=function(t){return this.clone().mulTo(t,this)},a.prototype.imuln=function(t){n(\\\"number\\\"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,a=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=a>>>26,this.words[r]=67108863&a}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},a.prototype.iushln=function(t){n(\\\"number\\\"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e<this.length;e++){var s=this.words[e]&a,l=(0|this.words[e])-s<<r;this.words[e]=l|o,o=s>>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},a.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},a.prototype.iushrn=function(t,e,r){var i;n(\\\"number\\\"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<<a,l=r;if(i-=o,i=Math.max(0,i),l){for(var c=0;c<o;c++)l.words[c]=this.words[c];l.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var u=0;for(c=this.length-1;c>=0&&(0!==u||c>=i);c--){var f=0|this.words[c];this.words[c]=u<<26-a|f>>>a,u=f&s}return l&&0!==u&&(l.words[l.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){n(\\\"number\\\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r)&&!!(this.words[r]&i)},a.prototype.imaskn=function(t){n(\\\"number\\\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,\\\"imaskn works only with positive numbers\\\"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},a.prototype.maskn=function(t){return this.clone().imaskn(t)},a.prototype.iaddn=function(t){return n(\\\"number\\\"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},a.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(n(\\\"number\\\"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},a.prototype.addn=function(t){return this.clone().iaddn(t)},a.prototype.subn=function(t){return this.clone().isubn(t)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(t,e,r){var i,a,o=t.length+r;this._expand(o);var s=0;for(i=0;i<t.length;i++){a=(0|this.words[i+r])+s;var l=(0|t.words[i])*e;s=((a-=67108863&l)>>26)-(l/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,l=n.length-i.length;if(\\\"mod\\\"!==e){(s=new a(null)).length=l+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var u=n.clone()._ishlnsubmul(i,1,l);0===u.negative&&(n=u,s&&(s.words[l]=1));for(var f=l-1;f>=0;f--){var h=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,f);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=h)}return s&&s.strip(),n.strip(),\\\"div\\\"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),\\\"mod\\\"!==e&&(i=s.div.neg()),\\\"div\\\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),\\\"mod\\\"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),\\\"div\\\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?\\\"div\\\"===e?{div:this.divn(t.words[0]),mod:null}:\\\"mod\\\"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,\\\"div\\\",!1).div},a.prototype.mod=function(t){return this.divmod(t,\\\"mod\\\",!1).mod},a.prototype.umod=function(t){return this.divmod(t,\\\"mod\\\",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},a.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),l=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var u=r.clone(),f=e.clone();!e.isZero();){for(var h=0,p=1;0==(e.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(f)),i.iushrn(1),o.iushrn(1);for(var d=0,g=1;0==(r.words[0]&g)&&d<26;++d,g<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(u),l.isub(f)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s),o.isub(l)):(r.isub(e),s.isub(i),l.isub(o))}return{a:s,b:l,gcd:r.iushln(c)}},a.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(e.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){n(\\\"number\\\"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,\\\"Number is too big\\\");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},a.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},a.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new w(t)},a.prototype.toRed=function(t){return n(!this.red,\\\"Already a number in reduction context\\\"),n(0===this.negative,\\\"red works only with positives\\\"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return n(this.red,\\\"fromRed works only with numbers in reduction context\\\"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return n(!this.red,\\\"Already a number in reduction context\\\"),this._forceRed(t)},a.prototype.redAdd=function(t){return n(this.red,\\\"redAdd works only with red numbers\\\"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return n(this.red,\\\"redIAdd works only with red numbers\\\"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return n(this.red,\\\"redSub works only with red numbers\\\"),this.red.sub(this,t)},a.prototype.redISub=function(t){return n(this.red,\\\"redISub works only with red numbers\\\"),this.red.isub(this,t)},a.prototype.redShl=function(t){return n(this.red,\\\"redShl works only with red numbers\\\"),this.red.shl(this,t)},a.prototype.redMul=function(t){return n(this.red,\\\"redMul works only with red numbers\\\"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return n(this.red,\\\"redMul works only with red numbers\\\"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return n(this.red,\\\"redSqr works only with red numbers\\\"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return n(this.red,\\\"redISqr works only with red numbers\\\"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return n(this.red,\\\"redSqrt works only with red numbers\\\"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return n(this.red,\\\"redInvm works only with red numbers\\\"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return n(this.red,\\\"redNeg works only with red numbers\\\"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return n(this.red&&!t.red,\\\"redPow(normalNum)\\\"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function m(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){m.call(this,\\\"k256\\\",\\\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\\\")}function x(){m.call(this,\\\"p224\\\",\\\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\\\")}function b(){m.call(this,\\\"p192\\\",\\\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\\\")}function _(){m.call(this,\\\"25519\\\",\\\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\\\")}function w(t){if(\\\"string\\\"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),\\\"modulus must be greater than 1\\\"),this.m=t,this.prime=null}function k(t){w.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(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)}m.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},m.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):r.strip(),r},m.prototype.split=function(t,e){t.iushrn(this.n,0,e)},m.prototype.imulK=function(t){return t.imul(this.k)},i(y,m),y.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var i=t.words[9];for(e.words[e.length++]=4194303&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(4194303&a)<<4|i>>>22,i=a}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},y.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(x,m),i(b,m),i(_,m),_.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(v[t])return v[t];var e;if(\\\"k256\\\"===t)e=new y;else if(\\\"p224\\\"===t)e=new x;else if(\\\"p192\\\"===t)e=new b;else{if(\\\"p25519\\\"!==t)throw new Error(\\\"Unknown prime \\\"+t);e=new _}return v[t]=e,e},w.prototype._verify1=function(t){n(0===t.negative,\\\"red works only with positives\\\"),n(t.red,\\\"red works only with red numbers\\\")},w.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),\\\"red works only with positives\\\"),n(t.red&&t.red===e.red,\\\"red works only with red numbers\\\")},w.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},w.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},w.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},w.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},w.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},w.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},w.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},w.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},w.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},w.prototype.isqr=function(t){return this.imul(t,t.clone())},w.prototype.sqr=function(t){return this.mul(t,t)},w.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var s=new a(1).toRed(this),l=s.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new a(2*u*u).toRed(this);0!==this.pow(u,c).cmp(l);)u.redIAdd(l);for(var f=this.pow(u,i),h=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),d=o;0!==p.cmp(s);){for(var g=p,v=0;0!==g.cmp(s);v++)g=g.redSqr();n(v<d);var m=this.pow(f,new a(1).iushln(d-v-1));h=h.redMul(m),f=m.redSqr(),p=p.redMul(f),d=v}return h},w.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},w.prototype.pow=function(t,e){if(e.isZero())return new a(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new a(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],o=0,s=0,l=e.bitLength()%26;for(0===l&&(l=26),n=e.length-1;n>=0;n--){for(var c=e.words[n],u=l-1;u>=0;u--){var f=c>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==o?(o<<=1,o|=f,(4===++s||0===n&&0===u)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}l=26}return i},w.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},w.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new k(t)},i(k,w),k.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},k.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},k.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},k.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},k.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(\\\"undefined\\\"==typeof e||e,this)},{buffer:91}],83:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e,r,n,i=t.length,a=0;for(e=0;e<i;++e)a+=t[e].length;var o=new Array(a),s=0;for(e=0;e<i;++e){var l=t[e],c=l.length;for(r=0;r<c;++r){var u=o[s++]=new Array(c-1),f=0;for(n=0;n<c;++n)n!==r&&(u[f++]=l[n]);if(1&r){var h=u[1];u[1]=u[0],u[0]=h}}}return o}},{}],84:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){switch(arguments.length){case 1:return n=[],c(i=t,i,u,!0),n;case 2:return\\\"function\\\"==typeof e?c(t,t,e,!0):function(t,e){return n=[],c(t,e,u,!1),n}(t,e);case 3:return c(t,e,r,!1);default:throw new Error(\\\"box-intersect: Invalid arguments\\\")}var i};var n,i=t(\\\"typedarray-pool\\\"),a=t(\\\"./lib/sweep\\\"),o=t(\\\"./lib/intersect\\\");function s(t,e){for(var r=0;r<t;++r)if(!(e[r]<=e[r+t]))return!0;return!1}function l(t,e,r,n){for(var i=0,a=0,o=0,l=t.length;o<l;++o){var c=t[o];if(!s(e,c)){for(var u=0;u<2*e;++u)r[i++]=c[u];n[a++]=o}}return a}function c(t,e,r,n){var s=t.length,c=e.length;if(!(s<=0||c<=0)){var u=t[0].length>>>1;if(!(u<=0)){var f,h=i.mallocDouble(2*u*s),p=i.mallocInt32(s);if((s=l(t,u,h,p))>0){if(1===u&&n)a.init(s),f=a.sweepComplete(u,r,0,s,h,p,0,s,h,p);else{var d=i.mallocDouble(2*u*c),g=i.mallocInt32(c);(c=l(e,u,d,g))>0&&(a.init(s+c),f=1===u?a.sweepBipartite(u,r,0,s,h,p,0,c,d,g):o(u,r,n,s,h,p,c,d,g),i.free(d),i.free(g))}i.free(h),i.free(p)}return f}}}function u(t,e){n.push([t,e])}},{\\\"./lib/intersect\\\":86,\\\"./lib/sweep\\\":90,\\\"typedarray-pool\\\":522}],85:[function(t,e,r){\\\"use strict\\\";var n=\\\"d\\\",i=\\\"ax\\\",a=\\\"vv\\\",o=\\\"fp\\\",s=\\\"es\\\",l=\\\"rs\\\",c=\\\"re\\\",u=\\\"rb\\\",f=\\\"ri\\\",h=\\\"rp\\\",p=\\\"bs\\\",d=\\\"be\\\",g=\\\"bb\\\",v=\\\"bi\\\",m=\\\"bp\\\",y=\\\"rv\\\",x=\\\"Q\\\",b=[n,i,a,l,c,u,f,p,d,g,v];function _(t){var e=\\\"bruteForce\\\"+(t?\\\"Full\\\":\\\"Partial\\\"),r=[],_=b.slice();t||_.splice(3,0,o);var w=[\\\"function \\\"+e+\\\"(\\\"+_.join()+\\\"){\\\"];function k(e,o){var _=function(t,e,r){var o=\\\"bruteForce\\\"+(t?\\\"Red\\\":\\\"Blue\\\")+(e?\\\"Flip\\\":\\\"\\\")+(r?\\\"Full\\\":\\\"\\\"),_=[\\\"function \\\",o,\\\"(\\\",b.join(),\\\"){\\\",\\\"var \\\",s,\\\"=2*\\\",n,\\\";\\\"],w=\\\"for(var i=\\\"+l+\\\",\\\"+h+\\\"=\\\"+s+\\\"*\\\"+l+\\\";i<\\\"+c+\\\";++i,\\\"+h+\\\"+=\\\"+s+\\\"){var x0=\\\"+u+\\\"[\\\"+i+\\\"+\\\"+h+\\\"],x1=\\\"+u+\\\"[\\\"+i+\\\"+\\\"+h+\\\"+\\\"+n+\\\"],xi=\\\"+f+\\\"[i];\\\",k=\\\"for(var j=\\\"+p+\\\",\\\"+m+\\\"=\\\"+s+\\\"*\\\"+p+\\\";j<\\\"+d+\\\";++j,\\\"+m+\\\"+=\\\"+s+\\\"){var y0=\\\"+g+\\\"[\\\"+i+\\\"+\\\"+m+\\\"],\\\"+(r?\\\"y1=\\\"+g+\\\"[\\\"+i+\\\"+\\\"+m+\\\"+\\\"+n+\\\"],\\\":\\\"\\\")+\\\"yi=\\\"+v+\\\"[j];\\\";return t?_.push(w,x,\\\":\\\",k):_.push(k,x,\\\":\\\",w),r?_.push(\\\"if(y1<x0||x1<y0)continue;\\\"):e?_.push(\\\"if(y0<=x0||x1<y0)continue;\\\"):_.push(\\\"if(y0<x0||x1<y0)continue;\\\"),_.push(\\\"for(var k=\\\"+i+\\\"+1;k<\\\"+n+\\\";++k){var r0=\\\"+u+\\\"[k+\\\"+h+\\\"],r1=\\\"+u+\\\"[k+\\\"+n+\\\"+\\\"+h+\\\"],b0=\\\"+g+\\\"[k+\\\"+m+\\\"],b1=\\\"+g+\\\"[k+\\\"+n+\\\"+\\\"+m+\\\"];if(r1<b0||b1<r0)continue \\\"+x+\\\";}var \\\"+y+\\\"=\\\"+a+\\\"(\\\"),e?_.push(\\\"yi,xi\\\"):_.push(\\\"xi,yi\\\"),_.push(\\\");if(\\\"+y+\\\"!==void 0)return \\\"+y+\\\";}}}\\\"),{name:o,code:_.join(\\\"\\\")}}(e,o,t);r.push(_.code),w.push(\\\"return \\\"+_.name+\\\"(\\\"+b.join()+\\\");\\\")}w.push(\\\"if(\\\"+c+\\\"-\\\"+l+\\\">\\\"+d+\\\"-\\\"+p+\\\"){\\\"),t?(k(!0,!1),w.push(\\\"}else{\\\"),k(!1,!1)):(w.push(\\\"if(\\\"+o+\\\"){\\\"),k(!0,!0),w.push(\\\"}else{\\\"),k(!0,!1),w.push(\\\"}}else{if(\\\"+o+\\\"){\\\"),k(!1,!0),w.push(\\\"}else{\\\"),k(!1,!1),w.push(\\\"}\\\")),w.push(\\\"}}return \\\"+e);var M=r.join(\\\"\\\")+w.join(\\\"\\\");return new Function(M)()}r.partial=_(!1),r.full=_(!0)},{}],86:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,a,u,S,E,C,L){!function(t,e){var r=8*i.log2(e+1)*(t+1)|0,a=i.nextPow2(b*r);w.length<a&&(n.free(w),w=n.mallocInt32(a));var o=i.nextPow2(_*r);k<o&&(n.free(k),k=n.mallocDouble(o))}(t,a+E);var z,O=0,I=2*t;M(O++,0,0,a,0,E,r?16:0,-1/0,1/0),r||M(O++,0,0,E,0,a,1,-1/0,1/0);for(;O>0;){var P=(O-=1)*b,D=w[P],R=w[P+1],B=w[P+2],F=w[P+3],N=w[P+4],j=w[P+5],V=O*_,U=k[V],q=k[V+1],H=1&j,G=!!(16&j),W=u,Y=S,X=C,Z=L;if(H&&(W=C,Y=L,X=u,Z=S),!(2&j&&(B=v(t,D,R,B,W,Y,q),R>=B)||4&j&&(R=m(t,D,R,B,W,Y,U))>=B)){var $=B-R,J=N-F;if(G){if(t*$*($+J)<p){if(void 0!==(z=l.scanComplete(t,D,e,R,B,W,Y,F,N,X,Z)))return z;continue}}else{if(t*Math.min($,J)<f){if(void 0!==(z=o(t,D,e,H,R,B,W,Y,F,N,X,Z)))return z;continue}if(t*$*J<h){if(void 0!==(z=l.scanBipartite(t,D,e,H,R,B,W,Y,F,N,X,Z)))return z;continue}}var K=d(t,D,R,B,W,Y,U,q);if(R<K)if(t*(K-R)<f){if(void 0!==(z=s(t,D+1,e,R,K,W,Y,F,N,X,Z)))return z}else if(D===t-2){if(void 0!==(z=H?l.sweepBipartite(t,e,F,N,X,Z,R,K,W,Y):l.sweepBipartite(t,e,R,K,W,Y,F,N,X,Z)))return z}else M(O++,D+1,R,K,F,N,H,-1/0,1/0),M(O++,D+1,F,N,R,K,1^H,-1/0,1/0);if(K<B){var Q=c(t,D,F,N,X,Z),tt=X[I*Q+D],et=g(t,D,Q,N,X,Z,tt);if(et<N&&M(O++,D,K,B,et,N,(4|H)+(G?16:0),tt,q),F<Q&&M(O++,D,K,B,F,Q,(2|H)+(G?16:0),U,tt),Q+1===et){if(void 0!==(z=G?T(t,D,e,K,B,W,Y,Q,X,Z[Q]):A(t,D,e,H,K,B,W,Y,Q,X,Z[Q])))return z}else if(Q<et){var rt;if(G){if(rt=y(t,D,K,B,W,Y,tt),K<rt){var nt=g(t,D,K,rt,W,Y,tt);if(D===t-2){if(K<nt&&void 0!==(z=l.sweepComplete(t,e,K,nt,W,Y,Q,et,X,Z)))return z;if(nt<rt&&void 0!==(z=l.sweepBipartite(t,e,nt,rt,W,Y,Q,et,X,Z)))return z}else K<nt&&M(O++,D+1,K,nt,Q,et,16,-1/0,1/0),nt<rt&&(M(O++,D+1,nt,rt,Q,et,0,-1/0,1/0),M(O++,D+1,Q,et,nt,rt,1,-1/0,1/0))}}else rt=H?x(t,D,K,B,W,Y,tt):y(t,D,K,B,W,Y,tt),K<rt&&(D===t-2?z=H?l.sweepBipartite(t,e,Q,et,X,Z,K,rt,W,Y):l.sweepBipartite(t,e,K,rt,W,Y,Q,et,X,Z):(M(O++,D+1,K,rt,Q,et,H,-1/0,1/0),M(O++,D+1,Q,et,K,rt,1^H,-1/0,1/0)))}}}}};var n=t(\\\"typedarray-pool\\\"),i=t(\\\"bit-twiddle\\\"),a=t(\\\"./brute\\\"),o=a.partial,s=a.full,l=t(\\\"./sweep\\\"),c=t(\\\"./median\\\"),u=t(\\\"./partition\\\"),f=128,h=1<<22,p=1<<22,d=u(\\\"!(lo>=p0)&&!(p1>=hi)\\\",[\\\"p0\\\",\\\"p1\\\"]),g=u(\\\"lo===p0\\\",[\\\"p0\\\"]),v=u(\\\"lo<p0\\\",[\\\"p0\\\"]),m=u(\\\"hi<=p0\\\",[\\\"p0\\\"]),y=u(\\\"lo<=p0&&p0<=hi\\\",[\\\"p0\\\"]),x=u(\\\"lo<p0&&p0<=hi\\\",[\\\"p0\\\"]),b=6,_=2,w=n.mallocInt32(1024),k=n.mallocDouble(1024);function M(t,e,r,n,i,a,o,s,l){var c=b*t;w[c]=e,w[c+1]=r,w[c+2]=n,w[c+3]=i,w[c+4]=a,w[c+5]=o;var u=_*t;k[u]=s,k[u+1]=l}function A(t,e,r,n,i,a,o,s,l,c,u){var f=2*t,h=l*f,p=c[h+e];t:for(var d=i,g=i*f;d<a;++d,g+=f){var v=o[g+e],m=o[g+e+t];if(!(p<v||m<p)&&(!n||p!==v)){for(var y,x=s[d],b=e+1;b<t;++b){v=o[g+b],m=o[g+b+t];var _=c[h+b],w=c[h+b+t];if(m<_||w<v)continue t}if(void 0!==(y=n?r(u,x):r(x,u)))return y}}}function T(t,e,r,n,i,a,o,s,l,c){var u=2*t,f=s*u,h=l[f+e];t:for(var p=n,d=n*u;p<i;++p,d+=u){var g=o[p];if(g!==c){var v=a[d+e],m=a[d+e+t];if(!(h<v||m<h)){for(var y=e+1;y<t;++y){v=a[d+y],m=a[d+y+t];var x=l[f+y],b=l[f+y+t];if(m<x||b<v)continue t}var _=r(g,c);if(void 0!==_)return _}}}}},{\\\"./brute\\\":85,\\\"./median\\\":87,\\\"./partition\\\":88,\\\"./sweep\\\":90,\\\"bit-twiddle\\\":80,\\\"typedarray-pool\\\":522}],87:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,o,s,l){if(o<=r+1)return r;var c=r,u=o,f=o+r>>>1,h=2*t,p=f,d=s[h*f+e];for(;c<u;){if(u-c<i){a(t,e,c,u,s,l),d=s[h*f+e];break}var g=u-c,v=Math.random()*g+c|0,m=s[h*v+e],y=Math.random()*g+c|0,x=s[h*y+e],b=Math.random()*g+c|0,_=s[h*b+e];m<=x?_>=x?(p=y,d=x):m>=_?(p=v,d=m):(p=b,d=_):x>=_?(p=y,d=x):_>=m?(p=v,d=m):(p=b,d=_);for(var w=h*(u-1),k=h*p,M=0;M<h;++M,++w,++k){var A=s[w];s[w]=s[k],s[k]=A}var T=l[u-1];l[u-1]=l[p],l[p]=T,p=n(t,e,c,u-1,s,l,d);for(var w=h*(u-1),k=h*p,M=0;M<h;++M,++w,++k){var A=s[w];s[w]=s[k],s[k]=A}var T=l[u-1];if(l[u-1]=l[p],l[p]=T,f<p){for(u=p-1;c<u&&s[h*(u-1)+e]===d;)u-=1;u+=1}else{if(!(p<f))break;for(c=p+1;c<u&&s[h*c+e]===d;)c+=1}}return n(t,e,r,f,s,l,s[h*f+e])};var n=t(\\\"./partition\\\")(\\\"lo<p0\\\",[\\\"p0\\\"]),i=8;function a(t,e,r,n,i,a){for(var o=2*t,s=o*(r+1)+e,l=r+1;l<n;++l,s+=o)for(var c=i[s],u=l,f=o*(l-1);u>r&&i[f+e]>c;--u,f-=o){for(var h=f,p=f+o,d=0;d<o;++d,++h,++p){var g=i[h];i[h]=i[p],i[p]=g}var v=a[u];a[u]=a[u-1],a[u-1]=v}}},{\\\"./partition\\\":88}],88:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=\\\"abcdef\\\".split(\\\"\\\").concat(e),i=[];t.indexOf(\\\"lo\\\")>=0&&i.push(\\\"lo=e[k+n]\\\");t.indexOf(\\\"hi\\\")>=0&&i.push(\\\"hi=e[k+o]\\\");return r.push(n.replace(\\\"_\\\",i.join()).replace(\\\"$\\\",t)),Function.apply(void 0,r)};var n=\\\"for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m\\\"},{}],89:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){e<=4*n?i(0,e-1,t):function t(e,r,f){var h=(r-e+1)/6|0,p=e+h,d=r-h,g=e+r>>1,v=g-h,m=g+h,y=p,x=v,b=g,_=m,w=d,k=e+1,M=r-1,A=0;c(y,x,f)&&(A=y,y=x,x=A);c(_,w,f)&&(A=_,_=w,w=A);c(y,b,f)&&(A=y,y=b,b=A);c(x,b,f)&&(A=x,x=b,b=A);c(y,_,f)&&(A=y,y=_,_=A);c(b,_,f)&&(A=b,b=_,_=A);c(x,w,f)&&(A=x,x=w,w=A);c(x,b,f)&&(A=x,x=b,b=A);c(_,w,f)&&(A=_,_=w,w=A);var T=f[2*x];var S=f[2*x+1];var E=f[2*_];var C=f[2*_+1];var L=2*y;var z=2*b;var O=2*w;var I=2*p;var P=2*g;var D=2*d;for(var R=0;R<2;++R){var B=f[L+R],F=f[z+R],N=f[O+R];f[I+R]=B,f[P+R]=F,f[D+R]=N}o(v,e,f);o(m,r,f);for(var j=k;j<=M;++j)if(u(j,T,S,f))j!==k&&a(j,k,f),++k;else if(!u(j,E,C,f))for(;;){if(u(M,E,C,f)){u(M,T,S,f)?(s(j,k,M,f),++k,--M):(a(j,M,f),--M);break}if(--M<j)break}l(e,k-1,T,S,f);l(r,M+1,E,C,f);k-2-e<=n?i(e,k-2,f):t(e,k-2,f);r-(M+2)<=n?i(M+2,r,f):t(M+2,r,f);M-k<=n?i(k,M,f):t(k,M,f)}(0,e-1,t)};var n=32;function i(t,e,r){for(var n=2*(t+1),i=t+1;i<=e;++i){for(var a=r[n++],o=r[n++],s=i,l=n-2;s-- >t;){var c=r[l-2],u=r[l-1];if(c<a)break;if(c===a&&u<o)break;r[l]=c,r[l+1]=u,l-=2}r[l]=a,r[l+1]=o}}function a(t,e,r){e*=2;var n=r[t*=2],i=r[t+1];r[t]=r[e],r[t+1]=r[e+1],r[e]=n,r[e+1]=i}function o(t,e,r){e*=2,r[t*=2]=r[e],r[t+1]=r[e+1]}function s(t,e,r,n){e*=2,r*=2;var i=n[t*=2],a=n[t+1];n[t]=n[e],n[t+1]=n[e+1],n[e]=n[r],n[e+1]=n[r+1],n[r]=i,n[r+1]=a}function l(t,e,r,n,i){e*=2,i[t*=2]=i[e],i[e]=r,i[t+1]=i[e+1],i[e+1]=n}function c(t,e,r){e*=2;var n=r[t*=2],i=r[e];return!(n<i)&&(n!==i||r[t+1]>r[e+1])}function u(t,e,r,n){var i=n[t*=2];return i<e||i===e&&n[t+1]<r}},{}],90:[function(t,e,r){\\\"use strict\\\";e.exports={init:function(t){var e=i.nextPow2(t);s.length<e&&(n.free(s),s=n.mallocInt32(e));l.length<e&&(n.free(l),l=n.mallocInt32(e));c.length<e&&(n.free(c),c=n.mallocInt32(e));u.length<e&&(n.free(u),u=n.mallocInt32(e));f.length<e&&(n.free(f),f=n.mallocInt32(e));h.length<e&&(n.free(h),h=n.mallocInt32(e));var r=8*e;p.length<r&&(n.free(p),p=n.mallocDouble(r))},sweepBipartite:function(t,e,r,n,i,f,h,v,m,y){for(var x=0,b=2*t,_=t-1,w=b-1,k=r;k<n;++k){var M=f[k],A=b*k;p[x++]=i[A+_],p[x++]=-(M+1),p[x++]=i[A+w],p[x++]=M}for(var k=h;k<v;++k){var M=y[k]+o,T=b*k;p[x++]=m[T+_],p[x++]=-M,p[x++]=m[T+w],p[x++]=M}var S=x>>>1;a(p,S);for(var E=0,C=0,k=0;k<S;++k){var L=0|p[2*k+1];if(L>=o)d(c,u,C--,L=L-o|0);else if(L>=0)d(s,l,E--,L);else if(L<=-o){L=-L-o|0;for(var z=0;z<E;++z){var O=e(s[z],L);if(void 0!==O)return O}g(c,u,C++,L)}else{L=-L-1|0;for(var z=0;z<C;++z){var O=e(L,c[z]);if(void 0!==O)return O}g(s,l,E++,L)}}},sweepComplete:function(t,e,r,n,i,o,v,m,y,x){for(var b=0,_=2*t,w=t-1,k=_-1,M=r;M<n;++M){var A=o[M]+1<<1,T=_*M;p[b++]=i[T+w],p[b++]=-A,p[b++]=i[T+k],p[b++]=A}for(var M=v;M<m;++M){var A=x[M]+1<<1,S=_*M;p[b++]=y[S+w],p[b++]=1|-A,p[b++]=y[S+k],p[b++]=1|A}var E=b>>>1;a(p,E);for(var C=0,L=0,z=0,M=0;M<E;++M){var O=0|p[2*M+1],I=1&O;if(M<E-1&&O>>1==p[2*M+3]>>1&&(I=2,M+=1),O<0){for(var P=-(O>>1)-1,D=0;D<z;++D){var R=e(f[D],P);if(void 0!==R)return R}if(0!==I)for(var D=0;D<C;++D){var R=e(s[D],P);if(void 0!==R)return R}if(1!==I)for(var D=0;D<L;++D){var R=e(c[D],P);if(void 0!==R)return R}0===I?g(s,l,C++,P):1===I?g(c,u,L++,P):2===I&&g(f,h,z++,P)}else{var P=(O>>1)-1;0===I?d(s,l,C--,P):1===I?d(c,u,L--,P):2===I&&d(f,h,z--,P)}}},scanBipartite:function(t,e,r,n,i,c,u,f,h,v,m,y){var x=0,b=2*t,_=e,w=e+t,k=1,M=1;n?M=o:k=o;for(var A=i;A<c;++A){var T=A+k,S=b*A;p[x++]=u[S+_],p[x++]=-T,p[x++]=u[S+w],p[x++]=T}for(var A=h;A<v;++A){var T=A+M,E=b*A;p[x++]=m[E+_],p[x++]=-T}var C=x>>>1;a(p,C);for(var L=0,A=0;A<C;++A){var z=0|p[2*A+1];if(z<0){var T=-z,O=!1;if(T>=o?(O=!n,T-=o):(O=!!n,T-=1),O)g(s,l,L++,T);else{var I=y[T],P=b*T,D=m[P+e+1],R=m[P+e+1+t];t:for(var B=0;B<L;++B){var F=s[B],N=b*F;if(!(R<u[N+e+1]||u[N+e+1+t]<D)){for(var j=e+2;j<t;++j)if(m[P+j+t]<u[N+j]||u[N+j+t]<m[P+j])continue t;var V,U=f[F];if(void 0!==(V=n?r(I,U):r(U,I)))return V}}}}else d(s,l,L--,z-k)}},scanComplete:function(t,e,r,n,i,l,c,u,f,h,d){for(var g=0,v=2*t,m=e,y=e+t,x=n;x<i;++x){var b=x+o,_=v*x;p[g++]=l[_+m],p[g++]=-b,p[g++]=l[_+y],p[g++]=b}for(var x=u;x<f;++x){var b=x+1,w=v*x;p[g++]=h[w+m],p[g++]=-b}var k=g>>>1;a(p,k);for(var M=0,x=0;x<k;++x){var A=0|p[2*x+1];if(A<0){var b=-A;if(b>=o)s[M++]=b-o;else{var T=d[b-=1],S=v*b,E=h[S+e+1],C=h[S+e+1+t];t:for(var L=0;L<M;++L){var z=s[L],O=c[z];if(O===T)break;var I=v*z;if(!(C<l[I+e+1]||l[I+e+1+t]<E)){for(var P=e+2;P<t;++P)if(h[S+P+t]<l[I+P]||l[I+P+t]<h[S+P])continue t;var D=r(O,T);if(void 0!==D)return D}}}}else{for(var b=A-o,L=M-1;L>=0;--L)if(s[L]===b){for(var P=L+1;P<M;++P)s[P-1]=s[P];break}--M}}}};var n=t(\\\"typedarray-pool\\\"),i=t(\\\"bit-twiddle\\\"),a=t(\\\"./sort\\\"),o=1<<28,s=n.mallocInt32(1024),l=n.mallocInt32(1024),c=n.mallocInt32(1024),u=n.mallocInt32(1024),f=n.mallocInt32(1024),h=n.mallocInt32(1024),p=n.mallocDouble(8192);function d(t,e,r,n){var i=e[n],a=t[r-1];t[i]=a,e[a]=i}function g(t,e,r,n){t[r]=n,e[n]=r}},{\\\"./sort\\\":89,\\\"bit-twiddle\\\":80,\\\"typedarray-pool\\\":522}],91:[function(t,e,r){},{}],92:[function(t,e,r){var n=Object.create||function(t){var e=function(){};return e.prototype=t,new e},i=Object.keys||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.push(r);return r},a=Function.prototype.bind||function(t){var e=this;return function(){return e.apply(t,arguments)}};function o(){this._events&&Object.prototype.hasOwnProperty.call(this,\\\"_events\\\")||(this._events=n(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0}e.exports=o,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._maxListeners=void 0;var s,l=10;try{var c={};Object.defineProperty&&Object.defineProperty(c,\\\"x\\\",{value:0}),s=0===c.x}catch(t){s=!1}function u(t){return void 0===t._maxListeners?o.defaultMaxListeners:t._maxListeners}function f(t,e,r,i){var a,o,s;if(\\\"function\\\"!=typeof r)throw new TypeError('\\\"listener\\\" argument must be a function');if((o=t._events)?(o.newListener&&(t.emit(\\\"newListener\\\",e,r.listener?r.listener:r),o=t._events),s=o[e]):(o=t._events=n(null),t._eventsCount=0),s){if(\\\"function\\\"==typeof s?s=o[e]=i?[r,s]:[s,r]:i?s.unshift(r):s.push(r),!s.warned&&(a=u(t))&&a>0&&s.length>a){s.warned=!0;var l=new Error(\\\"Possible EventEmitter memory leak detected. \\\"+s.length+' \\\"'+String(e)+'\\\" listeners added. Use emitter.setMaxListeners() to increase limit.');l.name=\\\"MaxListenersExceededWarning\\\",l.emitter=t,l.type=e,l.count=s.length,\\\"object\\\"==typeof console&&console.warn&&console.warn(\\\"%s: %s\\\",l.name,l.message)}}else s=o[e]=r,++t._eventsCount;return t}function h(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var t=new Array(arguments.length),e=0;e<t.length;++e)t[e]=arguments[e];this.listener.apply(this.target,t)}}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=a.call(h,n);return i.listener=r,n.wrapFn=i,i}function d(t,e,r){var n=t._events;if(!n)return[];var i=n[e];return i?\\\"function\\\"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}(i):v(i,i.length):[]}function g(t){var e=this._events;if(e){var r=e[t];if(\\\"function\\\"==typeof r)return 1;if(r)return r.length}return 0}function v(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}s?Object.defineProperty(o,\\\"defaultMaxListeners\\\",{enumerable:!0,get:function(){return l},set:function(t){if(\\\"number\\\"!=typeof t||t<0||t!=t)throw new TypeError('\\\"defaultMaxListeners\\\" must be a positive number');l=t}}):o.defaultMaxListeners=l,o.prototype.setMaxListeners=function(t){if(\\\"number\\\"!=typeof t||t<0||isNaN(t))throw new TypeError('\\\"n\\\" argument must be a positive number');return this._maxListeners=t,this},o.prototype.getMaxListeners=function(){return u(this)},o.prototype.emit=function(t){var e,r,n,i,a,o,s=\\\"error\\\"===t;if(o=this._events)s=s&&null==o.error;else if(!s)return!1;if(s){if(arguments.length>1&&(e=arguments[1]),e instanceof Error)throw e;var l=new Error('Unhandled \\\"error\\\" event. ('+e+\\\")\\\");throw l.context=e,l}if(!(r=o[t]))return!1;var c=\\\"function\\\"==typeof r;switch(n=arguments.length){case 1:!function(t,e,r){if(e)t.call(r);else for(var n=t.length,i=v(t,n),a=0;a<n;++a)i[a].call(r)}(r,c,this);break;case 2:!function(t,e,r,n){if(e)t.call(r,n);else for(var i=t.length,a=v(t,i),o=0;o<i;++o)a[o].call(r,n)}(r,c,this,arguments[1]);break;case 3:!function(t,e,r,n,i){if(e)t.call(r,n,i);else for(var a=t.length,o=v(t,a),s=0;s<a;++s)o[s].call(r,n,i)}(r,c,this,arguments[1],arguments[2]);break;case 4:!function(t,e,r,n,i,a){if(e)t.call(r,n,i,a);else for(var o=t.length,s=v(t,o),l=0;l<o;++l)s[l].call(r,n,i,a)}(r,c,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),a=1;a<n;a++)i[a-1]=arguments[a];!function(t,e,r,n){if(e)t.apply(r,n);else for(var i=t.length,a=v(t,i),o=0;o<i;++o)a[o].apply(r,n)}(r,c,this,i)}return!0},o.prototype.addListener=function(t,e){return f(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return f(this,t,e,!0)},o.prototype.once=function(t,e){if(\\\"function\\\"!=typeof e)throw new TypeError('\\\"listener\\\" argument must be a function');return this.on(t,p(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){if(\\\"function\\\"!=typeof e)throw new TypeError('\\\"listener\\\" argument must be a function');return this.prependListener(t,p(this,t,e)),this},o.prototype.removeListener=function(t,e){var r,i,a,o,s;if(\\\"function\\\"!=typeof e)throw new TypeError('\\\"listener\\\" argument must be a function');if(!(i=this._events))return this;if(!(r=i[t]))return this;if(r===e||r.listener===e)0==--this._eventsCount?this._events=n(null):(delete i[t],i.removeListener&&this.emit(\\\"removeListener\\\",t,r.listener||e));else if(\\\"function\\\"!=typeof r){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===e||r[o].listener===e){s=r[o].listener,a=o;break}if(a<0)return this;0===a?r.shift():function(t,e){for(var r=e,n=r+1,i=t.length;n<i;r+=1,n+=1)t[r]=t[n];t.pop()}(r,a),1===r.length&&(i[t]=r[0]),i.removeListener&&this.emit(\\\"removeListener\\\",t,s||e)}return this},o.prototype.removeAllListeners=function(t){var e,r,a;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=n(null),this._eventsCount=0):r[t]&&(0==--this._eventsCount?this._events=n(null):delete r[t]),this;if(0===arguments.length){var o,s=i(r);for(a=0;a<s.length;++a)\\\"removeListener\\\"!==(o=s[a])&&this.removeAllListeners(o);return this.removeAllListeners(\\\"removeListener\\\"),this._events=n(null),this._eventsCount=0,this}if(\\\"function\\\"==typeof(e=r[t]))this.removeListener(t,e);else if(e)for(a=e.length-1;a>=0;a--)this.removeListener(t,e[a]);return this},o.prototype.listeners=function(t){return d(this,t,!0)},o.prototype.rawListeners=function(t){return d(this,t,!1)},o.listenerCount=function(t,e){return\\\"function\\\"==typeof t.listenerCount?t.listenerCount(e):g.call(t,e)},o.prototype.listenerCount=g,o.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],93:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"base64-js\\\"),i=t(\\\"ieee754\\\");r.Buffer=s,r.SlowBuffer=function(t){+t!=t&&(t=0);return s.alloc(+t)},r.INSPECT_MAX_BYTES=50;var a=2147483647;function o(t){if(t>a)throw new RangeError('The value \\\"'+t+'\\\" is invalid for option \\\"size\\\"');var e=new Uint8Array(t);return e.__proto__=s.prototype,e}function s(t,e,r){if(\\\"number\\\"==typeof t){if(\\\"string\\\"==typeof e)throw new TypeError('The \\\"string\\\" argument must be of type string. Received type number');return u(t)}return l(t,e,r)}function l(t,e,r){if(\\\"string\\\"==typeof t)return function(t,e){\\\"string\\\"==typeof e&&\\\"\\\"!==e||(e=\\\"utf8\\\");if(!s.isEncoding(e))throw new TypeError(\\\"Unknown encoding: \\\"+e);var r=0|p(t,e),n=o(r),i=n.write(t,e);i!==r&&(n=n.slice(0,i));return n}(t,e);if(ArrayBuffer.isView(t))return f(t);if(null==t)throw TypeError(\\\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \\\"+typeof t);if(j(t,ArrayBuffer)||t&&j(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('\\\"offset\\\" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('\\\"length\\\" is outside of buffer bounds');var n;n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r);return n.__proto__=s.prototype,n}(t,e,r);if(\\\"number\\\"==typeof t)throw new TypeError('The \\\"value\\\" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return s.from(n,e,r);var i=function(t){if(s.isBuffer(t)){var e=0|h(t.length),r=o(e);return 0===r.length?r:(t.copy(r,0,0,e),r)}if(void 0!==t.length)return\\\"number\\\"!=typeof t.length||V(t.length)?o(0):f(t);if(\\\"Buffer\\\"===t.type&&Array.isArray(t.data))return f(t.data)}(t);if(i)return i;if(\\\"undefined\\\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\\\"function\\\"==typeof t[Symbol.toPrimitive])return s.from(t[Symbol.toPrimitive](\\\"string\\\"),e,r);throw new TypeError(\\\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \\\"+typeof t)}function c(t){if(\\\"number\\\"!=typeof t)throw new TypeError('\\\"size\\\" argument must be of type number');if(t<0)throw new RangeError('The value \\\"'+t+'\\\" is invalid for option \\\"size\\\"')}function u(t){return c(t),o(t<0?0:0|h(t))}function f(t){for(var e=t.length<0?0:0|h(t.length),r=o(e),n=0;n<e;n+=1)r[n]=255&t[n];return r}function h(t){if(t>=a)throw new RangeError(\\\"Attempt to allocate Buffer larger than maximum size: 0x\\\"+a.toString(16)+\\\" bytes\\\");return 0|t}function p(t,e){if(s.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||j(t,ArrayBuffer))return t.byteLength;if(\\\"string\\\"!=typeof t)throw new TypeError('The \\\"string\\\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case\\\"ascii\\\":case\\\"latin1\\\":case\\\"binary\\\":return r;case\\\"utf8\\\":case\\\"utf-8\\\":return B(t).length;case\\\"ucs2\\\":case\\\"ucs-2\\\":case\\\"utf16le\\\":case\\\"utf-16le\\\":return 2*r;case\\\"hex\\\":return r>>>1;case\\\"base64\\\":return F(t).length;default:if(i)return n?-1:B(t).length;e=(\\\"\\\"+e).toLowerCase(),i=!0}}function d(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function g(t,e,r,n,i){if(0===t.length)return-1;if(\\\"string\\\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),V(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\\\"string\\\"==typeof e&&(e=s.from(e,n)),s.isBuffer(e))return 0===e.length?-1:v(t,e,r,n,i);if(\\\"number\\\"==typeof e)return e&=255,\\\"function\\\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):v(t,[e],r,n,i);throw new TypeError(\\\"val must be string, number or Buffer\\\")}function v(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&(\\\"ucs2\\\"===(n=String(n).toLowerCase())||\\\"ucs-2\\\"===n||\\\"utf16le\\\"===n||\\\"utf-16le\\\"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var u=-1;for(a=r;a<s;a++)if(c(t,a)===c(e,-1===u?0:a-u)){if(-1===u&&(u=a),a-u+1===l)return u*o}else-1!==u&&(a-=a-u),u=-1}else for(r+l>s&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;h<l;h++)if(c(t,a+h)!==c(e,h)){f=!1;break}if(f)return a}return-1}function m(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;var a=e.length;n>a/2&&(n=a/2);for(var o=0;o<n;++o){var s=parseInt(e.substr(2*o,2),16);if(V(s))return o;t[r+o]=s}return o}function y(t,e,r,n){return N(B(e,t.length-r),t,r,n)}function x(t,e,r,n){return N(function(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function b(t,e,r,n){return x(t,e,r,n)}function _(t,e,r,n){return N(F(e),t,r,n)}function w(t,e,r,n){return N(function(t,e){for(var r,n,i,a=[],o=0;o<t.length&&!((e-=2)<0);++o)r=t.charCodeAt(o),n=r>>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function k(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function M(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var a,o,s,l,c=t[i],u=null,f=c>239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(u=c);break;case 2:128==(192&(a=t[i+1]))&&(l=(31&c)<<6|63&a)>127&&(u=l);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(l=(15&c)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,f=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=f}return function(t){var e=t.length;if(e<=A)return String.fromCharCode.apply(String,t);var r=\\\"\\\",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=A));return r}(n)}r.kMaxLength=a,s.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}(),s.TYPED_ARRAY_SUPPORT||\\\"undefined\\\"==typeof console||\\\"function\\\"!=typeof console.error||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(s.prototype,\\\"parent\\\",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,\\\"offset\\\",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),\\\"undefined\\\"!=typeof Symbol&&null!=Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),s.poolSize=8192,s.from=function(t,e,r){return l(t,e,r)},s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,s.alloc=function(t,e,r){return function(t,e,r){return c(t),t<=0?o(t):void 0!==e?\\\"string\\\"==typeof r?o(t).fill(e,r):o(t).fill(e):o(t)}(t,e,r)},s.allocUnsafe=function(t){return u(t)},s.allocUnsafeSlow=function(t){return u(t)},s.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==s.prototype},s.compare=function(t,e){if(j(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),j(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(t)||!s.isBuffer(e))throw new TypeError('The \\\"buf1\\\", \\\"buf2\\\" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},s.isEncoding=function(t){switch(String(t).toLowerCase()){case\\\"hex\\\":case\\\"utf8\\\":case\\\"utf-8\\\":case\\\"ascii\\\":case\\\"latin1\\\":case\\\"binary\\\":case\\\"base64\\\":case\\\"ucs2\\\":case\\\"ucs-2\\\":case\\\"utf16le\\\":case\\\"utf-16le\\\":return!0;default:return!1}},s.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('\\\"list\\\" argument must be an Array of Buffers');if(0===t.length)return s.alloc(0);var r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;var n=s.allocUnsafe(e),i=0;for(r=0;r<t.length;++r){var a=t[r];if(j(a,Uint8Array)&&(a=s.from(a)),!s.isBuffer(a))throw new TypeError('\\\"list\\\" argument must be an Array of Buffers');a.copy(n,i),i+=a.length}return n},s.byteLength=p,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError(\\\"Buffer size must be a multiple of 16-bits\\\");for(var e=0;e<t;e+=2)d(this,e,e+1);return this},s.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError(\\\"Buffer size must be a multiple of 32-bits\\\");for(var e=0;e<t;e+=4)d(this,e,e+3),d(this,e+1,e+2);return this},s.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError(\\\"Buffer size must be a multiple of 64-bits\\\");for(var e=0;e<t;e+=8)d(this,e,e+7),d(this,e+1,e+6),d(this,e+2,e+5),d(this,e+3,e+4);return this},s.prototype.toString=function(){var t=this.length;return 0===t?\\\"\\\":0===arguments.length?M(this,0,t):function(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\\\"\\\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\\\"\\\";if((r>>>=0)<=(e>>>=0))return\\\"\\\";for(t||(t=\\\"utf8\\\");;)switch(t){case\\\"hex\\\":return E(this,e,r);case\\\"utf8\\\":case\\\"utf-8\\\":return M(this,e,r);case\\\"ascii\\\":return T(this,e,r);case\\\"latin1\\\":case\\\"binary\\\":return S(this,e,r);case\\\"base64\\\":return k(this,e,r);case\\\"ucs2\\\":case\\\"ucs-2\\\":case\\\"utf16le\\\":case\\\"utf-16le\\\":return C(this,e,r);default:if(n)throw new TypeError(\\\"Unknown encoding: \\\"+t);t=(t+\\\"\\\").toLowerCase(),n=!0}}.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(t){if(!s.isBuffer(t))throw new TypeError(\\\"Argument must be a Buffer\\\");return this===t||0===s.compare(this,t)},s.prototype.inspect=function(){var t=\\\"\\\",e=r.INSPECT_MAX_BYTES;return t=this.toString(\\\"hex\\\",0,e).replace(/(.{2})/g,\\\"$1 \\\").trim(),this.length>e&&(t+=\\\" ... \\\"),\\\"<Buffer \\\"+t+\\\">\\\"},s.prototype.compare=function(t,e,r,n,i){if(j(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),!s.isBuffer(t))throw new TypeError('The \\\"target\\\" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError(\\\"out of range index\\\");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),l=Math.min(a,o),c=this.slice(n,i),u=t.slice(e,r),f=0;f<l;++f)if(c[f]!==u[f]){a=c[f],o=u[f];break}return a<o?-1:o<a?1:0},s.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},s.prototype.indexOf=function(t,e,r){return g(this,t,e,r,!0)},s.prototype.lastIndexOf=function(t,e,r){return g(this,t,e,r,!1)},s.prototype.write=function(t,e,r,n){if(void 0===e)n=\\\"utf8\\\",r=this.length,e=0;else if(void 0===r&&\\\"string\\\"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error(\\\"Buffer.write(string, encoding, offset[, length]) is no longer supported\\\");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n=\\\"utf8\\\")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\\\"Attempt to write outside buffer bounds\\\");n||(n=\\\"utf8\\\");for(var a=!1;;)switch(n){case\\\"hex\\\":return m(this,t,e,r);case\\\"utf8\\\":case\\\"utf-8\\\":return y(this,t,e,r);case\\\"ascii\\\":return x(this,t,e,r);case\\\"latin1\\\":case\\\"binary\\\":return b(this,t,e,r);case\\\"base64\\\":return _(this,t,e,r);case\\\"ucs2\\\":case\\\"ucs-2\\\":case\\\"utf16le\\\":case\\\"utf-16le\\\":return w(this,t,e,r);default:if(a)throw new TypeError(\\\"Unknown encoding: \\\"+n);n=(\\\"\\\"+n).toLowerCase(),a=!0}},s.prototype.toJSON=function(){return{type:\\\"Buffer\\\",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function T(t,e,r){var n=\\\"\\\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function S(t,e,r){var n=\\\"\\\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function E(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i=\\\"\\\",a=e;a<r;++a)i+=R(t[a]);return i}function C(t,e,r){for(var n=t.slice(e,r),i=\\\"\\\",a=0;a<n.length;a+=2)i+=String.fromCharCode(n[a]+256*n[a+1]);return i}function L(t,e,r){if(t%1!=0||t<0)throw new RangeError(\\\"offset is not uint\\\");if(t+e>r)throw new RangeError(\\\"Trying to access beyond buffer length\\\")}function z(t,e,r,n,i,a){if(!s.isBuffer(t))throw new TypeError('\\\"buffer\\\" argument must be a Buffer instance');if(e>i||e<a)throw new RangeError('\\\"value\\\" argument is out of bounds');if(r+n>t.length)throw new RangeError(\\\"Index out of range\\\")}function O(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError(\\\"Index out of range\\\");if(r<0)throw new RangeError(\\\"Index out of range\\\")}function I(t,e,r,n,a){return e=+e,r>>>=0,a||O(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function P(t,e,r,n,a){return e=+e,r>>>=0,a||O(t,0,r,8),i.write(t,e,r,n,52,8),r+8}s.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);var n=this.subarray(t,e);return n.__proto__=s.prototype,n},s.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n},s.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},s.prototype.readUInt8=function(t,e){return t>>>=0,e||L(t,1,this.length),this[t]},s.prototype.readUInt16LE=function(t,e){return t>>>=0,e||L(t,2,this.length),this[t]|this[t+1]<<8},s.prototype.readUInt16BE=function(t,e){return t>>>=0,e||L(t,2,this.length),this[t]<<8|this[t+1]},s.prototype.readUInt32LE=function(t,e){return t>>>=0,e||L(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},s.prototype.readUInt32BE=function(t,e){return t>>>=0,e||L(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},s.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*e)),n},s.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},s.prototype.readInt8=function(t,e){return t>>>=0,e||L(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},s.prototype.readInt16LE=function(t,e){t>>>=0,e||L(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(t,e){t>>>=0,e||L(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(t,e){return t>>>=0,e||L(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},s.prototype.readInt32BE=function(t,e){return t>>>=0,e||L(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},s.prototype.readFloatLE=function(t,e){return t>>>=0,e||L(t,4,this.length),i.read(this,t,!0,23,4)},s.prototype.readFloatBE=function(t,e){return t>>>=0,e||L(t,4,this.length),i.read(this,t,!1,23,4)},s.prototype.readDoubleLE=function(t,e){return t>>>=0,e||L(t,8,this.length),i.read(this,t,!0,52,8)},s.prototype.readDoubleBE=function(t,e){return t>>>=0,e||L(t,8,this.length),i.read(this,t,!1,52,8)},s.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||z(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a<r&&(i*=256);)this[e+a]=t/i&255;return e+r},s.prototype.writeUIntBE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||z(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},s.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,1,255,0),this[e]=255&t,e+1},s.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},s.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},s.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},s.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},s.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);z(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a<r&&(o*=256);)t<0&&0===s&&0!==this[e+a-1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},s.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);z(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},s.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},s.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},s.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},s.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},s.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||z(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},s.prototype.writeFloatLE=function(t,e,r){return I(this,t,e,!0,r)},s.prototype.writeFloatBE=function(t,e,r){return I(this,t,e,!1,r)},s.prototype.writeDoubleLE=function(t,e,r){return P(this,t,e,!0,r)},s.prototype.writeDoubleBE=function(t,e,r){return P(this,t,e,!1,r)},s.prototype.copy=function(t,e,r,n){if(!s.isBuffer(t))throw new TypeError(\\\"argument should be a Buffer\\\");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError(\\\"targetStart out of bounds\\\");if(r<0||r>=this.length)throw new RangeError(\\\"Index out of range\\\");if(n<0)throw new RangeError(\\\"sourceEnd out of bounds\\\");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);var i=n-r;if(this===t&&\\\"function\\\"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(e,r,n);else if(this===t&&r<e&&e<n)for(var a=i-1;a>=0;--a)t[a+e]=this[a+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return i},s.prototype.fill=function(t,e,r,n){if(\\\"string\\\"==typeof t){if(\\\"string\\\"==typeof e?(n=e,e=0,r=this.length):\\\"string\\\"==typeof r&&(n=r,r=this.length),void 0!==n&&\\\"string\\\"!=typeof n)throw new TypeError(\\\"encoding must be a string\\\");if(\\\"string\\\"==typeof n&&!s.isEncoding(n))throw new TypeError(\\\"Unknown encoding: \\\"+n);if(1===t.length){var i=t.charCodeAt(0);(\\\"utf8\\\"===n&&i<128||\\\"latin1\\\"===n)&&(t=i)}}else\\\"number\\\"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<r)throw new RangeError(\\\"Out of range index\\\");if(r<=e)return this;var a;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),\\\"number\\\"==typeof t)for(a=e;a<r;++a)this[a]=t;else{var o=s.isBuffer(t)?t:s.from(t,n),l=o.length;if(0===l)throw new TypeError('The value \\\"'+t+'\\\" is invalid for argument \\\"value\\\"');for(a=0;a<r-e;++a)this[a+e]=o[a%l]}return this};var D=/[^+\\\\/0-9A-Za-z-_]/g;function R(t){return t<16?\\\"0\\\"+t.toString(16):t.toString(16)}function B(t,e){var r;e=e||1/0;for(var n=t.length,i=null,a=[],o=0;o<n;++o){if((r=t.charCodeAt(o))>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\\\"Invalid code point\\\");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function F(t){return n.toByteArray(function(t){if((t=(t=t.split(\\\"=\\\")[0]).trim().replace(D,\\\"\\\")).length<2)return\\\"\\\";for(;t.length%4!=0;)t+=\\\"=\\\";return t}(t))}function N(t,e,r,n){for(var i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function j(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function V(t){return t!=t}},{\\\"base64-js\\\":62,ieee754:395}],94:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/monotone\\\"),i=t(\\\"./lib/triangulation\\\"),a=t(\\\"./lib/delaunay\\\"),o=t(\\\"./lib/filter\\\");function s(t){return[Math.min(t[0],t[1]),Math.max(t[0],t[1])]}function l(t,e){return t[0]-e[0]||t[1]-e[1]}function c(t,e,r){return e in t?t[e]:r}e.exports=function(t,e,r){Array.isArray(e)?(r=r||{},e=e||[]):(r=e||{},e=[]);var u=!!c(r,\\\"delaunay\\\",!0),f=!!c(r,\\\"interior\\\",!0),h=!!c(r,\\\"exterior\\\",!0),p=!!c(r,\\\"infinity\\\",!1);if(!f&&!h||0===t.length)return[];var d=n(t,e);if(u||f!==h||p){for(var g=i(t.length,function(t){return t.map(s).sort(l)}(e)),v=0;v<d.length;++v){var m=d[v];g.addTriangle(m[0],m[1],m[2])}return u&&a(t,g),h?f?p?o(g,0,p):g.cells():o(g,1,p):o(g,-1)}return d}},{\\\"./lib/delaunay\\\":95,\\\"./lib/filter\\\":96,\\\"./lib/monotone\\\":97,\\\"./lib/triangulation\\\":98}],95:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"robust-in-sphere\\\")[4];t(\\\"binary-search-bounds\\\");function i(t,e,r,i,a,o){var s=e.opposite(i,a);if(!(s<0)){if(a<i){var l=i;i=a,a=l,l=o,o=s,s=l}e.isConstraint(i,a)||n(t[i],t[a],t[o],t[s])<0&&r.push(i,a)}}e.exports=function(t,e){for(var r=[],a=t.length,o=e.stars,s=0;s<a;++s)for(var l=o[s],c=1;c<l.length;c+=2){var u=l[c];if(!(u<s)&&!e.isConstraint(s,u)){for(var f=l[c-1],h=-1,p=1;p<l.length;p+=2)if(l[p-1]===u){h=l[p];break}h<0||n(t[s],t[u],t[f],t[h])<0&&r.push(s,u)}}for(;r.length>0;){for(var u=r.pop(),s=r.pop(),f=-1,h=-1,l=o[s],d=1;d<l.length;d+=2){var g=l[d-1],v=l[d];g===u?h=v:v===u&&(f=g)}f<0||h<0||(n(t[s],t[u],t[f],t[h])>=0||(e.flip(s,u),i(t,e,r,f,s,h),i(t,e,r,s,h,f),i(t,e,r,h,u,f),i(t,e,r,u,f,h)))}}},{\\\"binary-search-bounds\\\":99,\\\"robust-in-sphere\\\":484}],96:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"binary-search-bounds\\\");function a(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}e.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,i=0;i<n;++i){var s=r[i],l=s[0],c=s[1],u=s[2];c<u?c<l&&(s[0]=c,s[1]=u,s[2]=l):u<l&&(s[0]=u,s[1]=l,s[2]=c)}r.sort(o);for(var f=new Array(n),i=0;i<f.length;++i)f[i]=0;var h=[],p=[],d=new Array(3*n),g=new Array(3*n),v=null;e&&(v=[]);for(var m=new a(r,d,g,f,h,p,v),i=0;i<n;++i)for(var s=r[i],y=0;y<3;++y){var l=s[y],c=s[(y+1)%3],x=d[3*i+y]=m.locate(c,l,t.opposite(c,l)),b=g[3*i+y]=t.isConstraint(l,c);x<0&&(b?p.push(i):(h.push(i),f[i]=1),e&&v.push([c,l,-1]))}return m}(t,r);if(0===e)return r?n.cells.concat(n.boundary):n.cells;var i=1,s=n.active,l=n.next,c=n.flags,u=n.cells,f=n.constraint,h=n.neighbor;for(;s.length>0||l.length>0;){for(;s.length>0;){var p=s.pop();if(c[p]!==-i){c[p]=i;u[p];for(var d=0;d<3;++d){var g=h[3*p+d];g>=0&&0===c[g]&&(f[3*p+d]?l.push(g):(s.push(g),c[g]=i))}}}var v=l;l=s,s=v,l.length=0,i=-i}var m=function(t,e,r){for(var n=0,i=0;i<t.length;++i)e[i]===r&&(t[n++]=t[i]);return t.length=n,t}(u,c,e);if(r)return m.concat(n.boundary);return m},a.prototype.locate=(n=[0,0,0],function(t,e,r){var a=t,s=e,l=r;return e<r?e<t&&(a=e,s=r,l=t):r<t&&(a=r,s=t,l=e),a<0?-1:(n[0]=a,n[1]=s,n[2]=l,i.eq(this.cells,n,o))})},{\\\"binary-search-bounds\\\":99}],97:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"robust-orientation\\\")[3],a=0,o=1,s=2;function l(t,e,r,n,i){this.a=t,this.b=e,this.idx=r,this.lowerIds=n,this.upperIds=i}function c(t,e,r,n){this.a=t,this.b=e,this.type=r,this.idx=n}function u(t,e){var r=t.a[0]-e.a[0]||t.a[1]-e.a[1]||t.type-e.type;return r||(t.type!==a&&(r=i(t.a,t.b,e.b))?r:t.idx-e.idx)}function f(t,e){return i(t.a,t.b,e)}function h(t,e,r,a,o){for(var s=n.lt(e,a,f),l=n.gt(e,a,f),c=s;c<l;++c){for(var u=e[c],h=u.lowerIds,p=h.length;p>1&&i(r[h[p-2]],r[h[p-1]],a)>0;)t.push([h[p-1],h[p-2],o]),p-=1;h.length=p,h.push(o);var d=u.upperIds;for(p=d.length;p>1&&i(r[d[p-2]],r[d[p-1]],a)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function p(t,e){var r;return(r=t.a[0]<e.a[0]?i(t.a,t.b,e.a):i(e.b,e.a,t.a))?r:(r=e.b[0]<t.b[0]?i(t.a,t.b,e.b):i(e.b,e.a,t.b))||t.idx-e.idx}function d(t,e,r){var i=n.le(t,r,p),a=t[i],o=a.upperIds,s=o[o.length-1];a.upperIds=[s],t.splice(i+1,0,new l(r.a,r.b,r.idx,[s],o))}function g(t,e,r){var i=r.a;r.a=r.b,r.b=i;var a=n.eq(t,r,p),o=t[a];t[a-1].upperIds=o.upperIds,t.splice(a,1)}e.exports=function(t,e){for(var r=t.length,n=e.length,i=[],f=0;f<r;++f)i.push(new c(t[f],null,a,f));for(var f=0;f<n;++f){var p=e[f],v=t[p[0]],m=t[p[1]];v[0]<m[0]?i.push(new c(v,m,s,f),new c(m,v,o,f)):v[0]>m[0]&&i.push(new c(m,v,s,f),new c(v,m,o,f))}i.sort(u);for(var y=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),x=[new l([y,1],[y,0],-1,[],[],[],[])],b=[],f=0,_=i.length;f<_;++f){var w=i[f],k=w.type;k===a?h(b,x,t,w.a,w.idx):k===s?d(x,t,w):g(x,t,w)}return b}},{\\\"binary-search-bounds\\\":99,\\\"robust-orientation\\\":486}],98:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\");function i(t,e){this.stars=t,this.edges=e}e.exports=function(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=[];return new i(r,e)};var a=i.prototype;function o(t,e,r){for(var n=1,i=t.length;n<i;n+=2)if(t[n-1]===e&&t[n]===r)return t[n-1]=t[i-2],t[n]=t[i-1],void(t.length=i-2)}a.isConstraint=function(){var t=[0,0];function e(t,e){return t[0]-e[0]||t[1]-e[1]}return function(r,i){return t[0]=Math.min(r,i),t[1]=Math.max(r,i),n.eq(this.edges,t,e)>=0}}(),a.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},a.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},a.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;n<i;n+=2)if(r[n]===t)return r[n-1];return-1},a.flip=function(t,e){var r=this.opposite(t,e),n=this.opposite(e,t);this.removeTriangle(t,e,r),this.removeTriangle(e,t,n),this.addTriangle(t,n,r),this.addTriangle(e,r,n)},a.edges=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;a+=2)e.push([i[a],i[a+1]]);return e},a.cells=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;a+=2){var s=i[a],l=i[a+1];r<Math.min(s,l)&&e.push([r,s,l])}return e}},{\\\"binary-search-bounds\\\":99}],99:[function(t,e,r){\\\"use strict\\\";function n(t,e,r,n,i){var a=[\\\"function \\\",t,\\\"(a,l,h,\\\",n.join(\\\",\\\"),\\\"){\\\",i?\\\"\\\":\\\"var i=\\\",r?\\\"l-1\\\":\\\"h+1\\\",\\\";while(l<=h){var m=(l+h)>>>1,x=a[m]\\\"];return i?e.indexOf(\\\"c\\\")<0?a.push(\\\";if(x===y){return m}else if(x<=y){\\\"):a.push(\\\";var p=c(x,y);if(p===0){return m}else if(p<=0){\\\"):a.push(\\\";if(\\\",e,\\\"){i=m;\\\"),r?a.push(\\\"l=m+1}else{h=m-1}\\\"):a.push(\\\"h=m-1}else{l=m+1}\\\"),a.push(\\\"}\\\"),i?a.push(\\\"return -1};\\\"):a.push(\\\"return i};\\\"),a.join(\\\"\\\")}function i(t,e,r,i){return new Function([n(\\\"A\\\",\\\"x\\\"+t+\\\"y\\\",e,[\\\"y\\\"],i),n(\\\"P\\\",\\\"c(x,y)\\\"+t+\\\"0\\\",e,[\\\"y\\\",\\\"c\\\"],i),\\\"function dispatchBsearch\\\",r,\\\"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch\\\",r].join(\\\"\\\"))()}e.exports={ge:i(\\\">=\\\",!1,\\\"GE\\\"),gt:i(\\\">\\\",!1,\\\"GT\\\"),lt:i(\\\"<\\\",!0,\\\"LT\\\"),le:i(\\\"<=\\\",!0,\\\"LE\\\"),eq:i(\\\"-\\\",!0,\\\"EQ\\\",!0)}},{}],100:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=1,r=1;r<t.length;++r)for(var n=0;n<r;++n)if(t[r]<t[n])e=-e;else if(t[n]===t[r])return 0;return e}},{}],101:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"dup\\\"),i=t(\\\"robust-linear-solve\\\");function a(t,e){for(var r=0,n=t.length,i=0;i<n;++i)r+=t[i]*e[i];return r}function o(t){var e=t.length;if(0===e)return[];t[0].length;var r=n([t.length+1,t.length+1],1),o=n([t.length+1],1);r[e][e]=0;for(var s=0;s<e;++s){for(var l=0;l<=s;++l)r[l][s]=r[s][l]=2*a(t[s],t[l]);o[s]=a(t[s],t[s])}var c=i(r,o),u=0,f=c[e+1];for(s=0;s<f.length;++s)u+=f[s];var h=new Array(e);for(s=0;s<e;++s){f=c[s];var p=0;for(l=0;l<f.length;++l)p+=f[l];h[s]=p/u}return h}function s(t){if(0===t.length)return[];for(var e=t[0].length,r=n([e]),i=o(t),a=0;a<t.length;++a)for(var s=0;s<e;++s)r[s]+=t[a][s]*i[a];return r}s.barycenetric=o,e.exports=s},{dup:155,\\\"robust-linear-solve\\\":485}],102:[function(t,e,r){e.exports=function(t){for(var e=n(t),r=0,i=0;i<t.length;++i)for(var a=t[i],o=0;o<e.length;++o)r+=Math.pow(a[o]-e[o],2);return Math.sqrt(r/t.length)};var n=t(\\\"circumcenter\\\")},{circumcenter:101}],103:[function(t,e,r){e.exports=function(t,e,r){return e<r?t<e?e:t>r?r:t:t<r?r:t>e?e:t}},{}],104:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n;if(r){n=e;for(var i=new Array(e.length),a=0;a<e.length;++a){var o=e[a];i[a]=[o[0],o[1],r[a]]}e=i}var s=function(t,e,r){var n=d(t,[],p(t));return m(e,n,r),!!n}(t,e,!!r);for(;y(t,e,!!r);)s=!0;if(r&&s){n.length=0,r.length=0;for(var a=0;a<e.length;++a){var o=e[a];n.push([o[0],o[1]]),r.push(o[2])}}return s};var n=t(\\\"union-find\\\"),i=t(\\\"box-intersect\\\"),a=t(\\\"robust-segment-intersect\\\"),o=t(\\\"big-rat\\\"),s=t(\\\"big-rat/cmp\\\"),l=t(\\\"big-rat/to-float\\\"),c=t(\\\"rat-vec\\\"),u=t(\\\"nextafter\\\"),f=t(\\\"./lib/rat-seg-intersect\\\");function h(t){var e=l(t);return[u(e,-1/0),u(e,1/0)]}function p(t){for(var e=new Array(t.length),r=0;r<t.length;++r){var n=t[r];e[r]=[u(n[0],-1/0),u(n[1],-1/0),u(n[0],1/0),u(n[1],1/0)]}return e}function d(t,e,r){for(var a=e.length,o=new n(a),s=[],l=0;l<e.length;++l){var c=e[l],f=h(c[0]),p=h(c[1]);s.push([u(f[0],-1/0),u(p[0],-1/0),u(f[1],1/0),u(p[1],1/0)])}i(s,function(t,e){o.link(t,e)});var d=!0,g=new Array(a);for(l=0;l<a;++l){(m=o.find(l))!==l&&(d=!1,t[m]=[Math.min(t[l][0],t[m][0]),Math.min(t[l][1],t[m][1])])}if(d)return null;var v=0;for(l=0;l<a;++l){var m;(m=o.find(l))===l?(g[l]=v,t[v++]=t[l]):g[l]=-1}t.length=v;for(l=0;l<a;++l)g[l]<0&&(g[l]=g[o.find(l)]);return g}function g(t,e){return t[0]-e[0]||t[1]-e[1]}function v(t,e){var r=t[0]-e[0]||t[1]-e[1];return r||(t[2]<e[2]?-1:t[2]>e[2]?1:0)}function m(t,e,r){if(0!==t.length){if(e)for(var n=0;n<t.length;++n){var i=e[(o=t[n])[0]],a=e[o[1]];o[0]=Math.min(i,a),o[1]=Math.max(i,a)}else for(n=0;n<t.length;++n){var o;i=(o=t[n])[0],a=o[1];o[0]=Math.min(i,a),o[1]=Math.max(i,a)}r?t.sort(v):t.sort(g);var s=1;for(n=1;n<t.length;++n){var l=t[n-1],c=t[n];(c[0]!==l[0]||c[1]!==l[1]||r&&c[2]!==l[2])&&(t[s++]=c)}t.length=s}}function y(t,e,r){var n=function(t,e){for(var r=new Array(e.length),n=0;n<e.length;++n){var i=e[n],a=t[i[0]],o=t[i[1]];r[n]=[u(Math.min(a[0],o[0]),-1/0),u(Math.min(a[1],o[1]),-1/0),u(Math.max(a[0],o[0]),1/0),u(Math.max(a[1],o[1]),1/0)]}return r}(t,e),h=function(t,e,r){var n=[];return i(r,function(r,i){var o=e[r],s=e[i];if(o[0]!==s[0]&&o[0]!==s[1]&&o[1]!==s[0]&&o[1]!==s[1]){var l=t[o[0]],c=t[o[1]],u=t[s[0]],f=t[s[1]];a(l,c,u,f)&&n.push([r,i])}}),n}(t,e,n),g=p(t),v=function(t,e,r,n){var o=[];return i(r,n,function(r,n){var i=e[r];if(i[0]!==n&&i[1]!==n){var s=t[n],l=t[i[0]],c=t[i[1]];a(l,c,s,s)&&o.push([r,n])}}),o}(t,e,n,g),y=d(t,function(t,e,r,n,i){var a,u,h=t.map(function(t){return[o(t[0]),o(t[1])]});for(a=0;a<r.length;++a){var p=r[a];u=p[0];var d=p[1],g=e[u],v=e[d],m=f(c(t[g[0]]),c(t[g[1]]),c(t[v[0]]),c(t[v[1]]));if(m){var y=t.length;t.push([l(m[0]),l(m[1])]),h.push(m),n.push([u,y],[d,y])}}for(n.sort(function(t,e){if(t[0]!==e[0])return t[0]-e[0];var r=h[t[1]],n=h[e[1]];return s(r[0],n[0])||s(r[1],n[1])}),a=n.length-1;a>=0;--a){var x=e[u=(S=n[a])[0]],b=x[0],_=x[1],w=t[b],k=t[_];if((w[0]-k[0]||w[1]-k[1])<0){var M=b;b=_,_=M}x[0]=b;var A,T=x[1]=S[1];for(i&&(A=x[2]);a>0&&n[a-1][0]===u;){var S,E=(S=n[--a])[1];i?e.push([T,E,A]):e.push([T,E]),T=E}i?e.push([T,_,A]):e.push([T,_])}return h}(t,e,h,v,r));return m(e,y,r),!!y||(h.length>0||v.length>0)}},{\\\"./lib/rat-seg-intersect\\\":105,\\\"big-rat\\\":66,\\\"big-rat/cmp\\\":64,\\\"big-rat/to-float\\\":78,\\\"box-intersect\\\":84,nextafter:434,\\\"rat-vec\\\":469,\\\"robust-segment-intersect\\\":489,\\\"union-find\\\":523}],105:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var a=s(e,t),f=s(n,r),h=u(a,f);if(0===o(h))return null;var p=s(t,r),d=u(f,p),g=i(d,h),v=c(a,g);return l(t,v)};var n=t(\\\"big-rat/mul\\\"),i=t(\\\"big-rat/div\\\"),a=t(\\\"big-rat/sub\\\"),o=t(\\\"big-rat/sign\\\"),s=t(\\\"rat-vec/sub\\\"),l=t(\\\"rat-vec/add\\\"),c=t(\\\"rat-vec/muls\\\");function u(t,e){return a(n(t[0],e[1]),n(t[1],e[0]))}},{\\\"big-rat/div\\\":65,\\\"big-rat/mul\\\":75,\\\"big-rat/sign\\\":76,\\\"big-rat/sub\\\":77,\\\"rat-vec/add\\\":468,\\\"rat-vec/muls\\\":470,\\\"rat-vec/sub\\\":471}],106:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"clamp\\\");function i(t,e){null==e&&(e=!0);var r=t[0],i=t[1],a=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,i*=255,a*=255,o*=255),16777216*(r=255&n(r,0,255))+((i=255&n(i,0,255))<<16)+((a=255&n(a,0,255))<<8)+(o=255&n(o,0,255))}e.exports=i,e.exports.to=i,e.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]}},{clamp:103}],107:[function(t,e,r){\\\"use strict\\\";e.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]}},{}],108:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-rgba\\\"),i=t(\\\"clamp\\\"),a=t(\\\"dtype\\\");e.exports=function(t,e){\\\"float\\\"!==e&&e||(e=\\\"array\\\"),\\\"uint\\\"===e&&(e=\\\"uint8\\\"),\\\"uint_clamped\\\"===e&&(e=\\\"uint8_clamped\\\");var r=new(a(e))(4),o=\\\"uint8\\\"!==e&&\\\"uint8_clamped\\\"!==e;return t.length&&\\\"string\\\"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=i(Math.floor(255*t[0]),0,255),r[1]=i(Math.floor(255*t[1]),0,255),r[2]=i(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:i(Math.floor(255*t[3]),0,255)),r)}},{clamp:103,\\\"color-rgba\\\":110,dtype:154}],109:[function(t,e,r){(function(r){\\\"use strict\\\";var n=t(\\\"color-name\\\"),i=t(\\\"is-plain-obj\\\"),a=t(\\\"defined\\\");e.exports=function(t){var e,s,l=[],c=1;if(\\\"string\\\"==typeof t)if(n[t])l=n[t].slice(),s=\\\"rgb\\\";else if(\\\"transparent\\\"===t)c=0,s=\\\"rgb\\\",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var u=t.slice(1),f=u.length,h=f<=4;c=1,h?(l=[parseInt(u[0]+u[0],16),parseInt(u[1]+u[1],16),parseInt(u[2]+u[2],16)],4===f&&(c=parseInt(u[3]+u[3],16)/255)):(l=[parseInt(u[0]+u[1],16),parseInt(u[2]+u[3],16),parseInt(u[4]+u[5],16)],8===f&&(c=parseInt(u[6]+u[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s=\\\"rgb\\\"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\\\\s*\\\\(([^\\\\)]*)\\\\)/.exec(t)){var p=e[1],u=p.replace(/a$/,\\\"\\\");s=u;var f=\\\"cmyk\\\"===u?4:\\\"gray\\\"===u?1:3;l=e[2].trim().split(/\\\\s*,\\\\s*/).map(function(t,e){if(/%$/.test(t))return e===f?parseFloat(t)/100:\\\"rgb\\\"===u?255*parseFloat(t)/100:parseFloat(t);if(\\\"h\\\"===u[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)}),p===u&&l.push(1),c=void 0===l[f]?1:l[f],l=l.slice(0,f)}else t.length>10&&/[0-9](?:\\\\s|\\\\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map(function(t){return parseFloat(t)}),s=t.match(/([a-z])/gi).join(\\\"\\\").toLowerCase());else if(isNaN(t))if(i(t)){var d=a(t.r,t.red,t.R,null);null!==d?(s=\\\"rgb\\\",l=[d,a(t.g,t.green,t.G),a(t.b,t.blue,t.B)]):(s=\\\"hsl\\\",l=[a(t.h,t.hue,t.H),a(t.s,t.saturation,t.S),a(t.l,t.lightness,t.L,t.b,t.brightness)]),c=a(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(c/=100)}else(Array.isArray(t)||r.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s=\\\"rgb\\\",c=4===t.length?t[3]:1);else s=\\\"rgb\\\",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:c}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"color-name\\\":107,defined:149,\\\"is-plain-obj\\\":405}],110:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-parse\\\"),i=t(\\\"color-space/hsl\\\"),a=t(\\\"clamp\\\");e.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=a(r.values[0],0,255),e[1]=a(r.values[1],0,255),e[2]=a(r.values[2],0,255),\\\"h\\\"===r.space[0]&&(e=i.rgb(e)),e.push(a(r.alpha,0,1)),e):[]}},{clamp:103,\\\"color-parse\\\":109,\\\"color-space/hsl\\\":111}],111:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./rgb\\\");e.exports={name:\\\"hsl\\\",min:[0,0,0],max:[360,100,100],channel:[\\\"hue\\\",\\\"saturation\\\",\\\"lightness\\\"],alias:[\\\"HSL\\\"],rgb:function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var c=0;c<3;c++)(n=o+1/3*-(c-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[c]=255*a;return i}},n.hsl=function(t){var e,r,n=t[0]/255,i=t[1]/255,a=t[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o;return s===o?e=0:n===s?e=(i-a)/l:i===s?e=2+(a-n)/l:a===s&&(e=4+(n-i)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},{\\\"./rgb\\\":112}],112:[function(t,e,r){\\\"use strict\\\";e.exports={name:\\\"rgb\\\",min:[0,0,0],max:[255,255,255],channel:[\\\"red\\\",\\\"green\\\",\\\"blue\\\"],alias:[\\\"RGB\\\"]}},{}],113:[function(t,e,r){e.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]}],cool:[{index:0,rgb:[0,255,255]},{index:1,rgb:[255,0,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]}]}},{}],114:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./colorScale\\\"),i=t(\\\"lerp\\\");function a(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r=\\\"#\\\",n=0;n<3;++n)r+=(\\\"00\\\"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return\\\"rgba(\\\"+t.join(\\\",\\\")+\\\")\\\"}e.exports=function(t){var e,r,l,c,u,f,h,p,d,g;t||(t={});p=(t.nshades||72)-1,h=t.format||\\\"hex\\\",(f=t.colormap)||(f=\\\"jet\\\");if(\\\"string\\\"==typeof f){if(f=f.toLowerCase(),!n[f])throw Error(f+\\\" not a supported colorscale\\\");u=n[f]}else{if(!Array.isArray(f))throw Error(\\\"unsupported colormap option\\\",f);u=f.slice()}if(u.length>p)throw new Error(f+\\\" map requires nshades to be at least size \\\"+u.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():\\\"number\\\"==typeof t.alpha?[t.alpha,t.alpha]:[1,1];e=u.map(function(t){return Math.round(t.index*p)}),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var v=u.map(function(t,e){var r=u[e].index,n=u[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1?n:(n[3]=d[0]+(d[1]-d[0])*r,n)}),m=[];for(g=0;g<e.length-1;++g){c=e[g+1]-e[g],r=v[g],l=v[g+1];for(var y=0;y<c;y++){var x=y/c;m.push([Math.round(i(r[0],l[0],x)),Math.round(i(r[1],l[1],x)),Math.round(i(r[2],l[2],x)),i(r[3],l[3],x)])}}m.push(u[u.length-1].rgb.concat(d[1])),\\\"hex\\\"===h?m=m.map(o):\\\"rgbaString\\\"===h?m=m.map(s):\\\"float\\\"===h&&(m=m.map(a));return m}},{\\\"./colorScale\\\":113,lerp:408}],115:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,a){var o=n(e,r,a);if(0===o){var s=i(n(t,e,r)),c=i(n(t,e,a));if(s===c){if(0===s){var u=l(t,e,r),f=l(t,e,a);return u===f?0:u?1:-1}return 0}return 0===c?s>0?-1:l(t,e,a)?-1:1:0===s?c>0?1:l(t,e,r)?1:-1:i(c-s)}var h=n(t,e,r);if(h>0)return o>0&&n(t,e,a)>0?1:-1;if(h<0)return o>0||n(t,e,a)>0?1:-1;var p=n(t,e,a);return p>0?1:l(t,e,r)?1:-1};var n=t(\\\"robust-orientation\\\"),i=t(\\\"signum\\\"),a=t(\\\"two-sum\\\"),o=t(\\\"robust-product\\\"),s=t(\\\"robust-sum\\\");function l(t,e,r){var n=a(t[0],-e[0]),i=a(t[1],-e[1]),l=a(r[0],-e[0]),c=a(r[1],-e[1]),u=s(o(n,l),o(i,c));return u[u.length-1]>=0}},{\\\"robust-orientation\\\":486,\\\"robust-product\\\":487,\\\"robust-sum\\\":491,signum:492,\\\"two-sum\\\":521}],116:[function(t,e,r){e.exports=function(t,e){var r=t.length,a=t.length-e.length;if(a)return a;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return t[0]+t[1]-e[0]-e[1]||n(t[0],t[1])-n(e[0],e[1]);case 3:var o=t[0]+t[1],s=e[0]+e[1];if(a=o+t[2]-(s+e[2]))return a;var l=n(t[0],t[1]),c=n(e[0],e[1]);return n(l,t[2])-n(c,e[2])||n(l+t[2],o)-n(c+e[2],s);case 4:var u=t[0],f=t[1],h=t[2],p=t[3],d=e[0],g=e[1],v=e[2],m=e[3];return u+f+h+p-(d+g+v+m)||n(u,f,h,p)-n(d,g,v,m,d)||n(u+f,u+h,u+p,f+h,f+p,h+p)-n(d+g,d+v,d+m,g+v,g+m,v+m)||n(u+f+h,u+f+p,u+h+p,f+h+p)-n(d+g+v,d+g+m,d+v+m,g+v+m);default:for(var y=t.slice().sort(i),x=e.slice().sort(i),b=0;b<r;++b)if(a=y[b]-x[b])return a;return 0}};var n=Math.min;function i(t,e){return t-e}},{}],117:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"compare-cell\\\"),i=t(\\\"cell-orientation\\\");e.exports=function(t,e){return n(t,e)||i(t)-i(e)}},{\\\"cell-orientation\\\":100,\\\"compare-cell\\\":116}],118:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/ch1d\\\"),i=t(\\\"./lib/ch2d\\\"),a=t(\\\"./lib/chnd\\\");e.exports=function(t){var e=t.length;if(0===e)return[];if(1===e)return[[0]];var r=t[0].length;if(0===r)return[];if(1===r)return n(t);if(2===r)return i(t);return a(t,r)}},{\\\"./lib/ch1d\\\":119,\\\"./lib/ch2d\\\":120,\\\"./lib/chnd\\\":121}],119:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=0,r=0,n=1;n<t.length;++n)t[n][0]<t[e][0]&&(e=n),t[n][0]>t[r][0]&&(r=n);return e<r?[[e],[r]]:e>r?[[r],[e]]:[[e]]}},{}],120:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var i=new Array(r),a=e[r-1],o=0;o<r;++o){var s=e[o];i[o]=[a,s],a=s}return i};var n=t(\\\"monotone-convex-hull-2d\\\")},{\\\"monotone-convex-hull-2d\\\":417}],121:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){try{return n(t,!0)}catch(s){var r=i(t);if(r.length<=e)return[];var a=function(t,e){for(var r=t.length,n=new Array(r),i=0;i<e.length;++i)n[i]=t[e[i]];for(var a=e.length,i=0;i<r;++i)e.indexOf(i)<0&&(n[a++]=t[i]);return n}(t,r),o=n(a,!0);return function(t,e){for(var r=t.length,n=e.length,i=0;i<r;++i)for(var a=t[i],o=0;o<a.length;++o){var s=a[o];if(s<n)a[o]=e[s];else{s-=n;for(var l=0;l<n;++l)s>=e[l]&&(s+=1);a[o]=s}}return t}(o,r)}};var n=t(\\\"incremental-convex-hull\\\"),i=t(\\\"affine-hull\\\")},{\\\"affine-hull\\\":50,\\\"incremental-convex-hull\\\":396}],122:[function(t,e,r){e.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\\\"}},{}],123:[function(t,e,r){e.exports=[\\\"xx-small\\\",\\\"x-small\\\",\\\"small\\\",\\\"medium\\\",\\\"large\\\",\\\"x-large\\\",\\\"xx-large\\\",\\\"larger\\\",\\\"smaller\\\"]},{}],124:[function(t,e,r){e.exports=[\\\"normal\\\",\\\"condensed\\\",\\\"semi-condensed\\\",\\\"extra-condensed\\\",\\\"ultra-condensed\\\",\\\"expanded\\\",\\\"semi-expanded\\\",\\\"extra-expanded\\\",\\\"ultra-expanded\\\"]},{}],125:[function(t,e,r){e.exports=[\\\"normal\\\",\\\"italic\\\",\\\"oblique\\\"]},{}],126:[function(t,e,r){e.exports=[\\\"normal\\\",\\\"bold\\\",\\\"bolder\\\",\\\"lighter\\\",\\\"100\\\",\\\"200\\\",\\\"300\\\",\\\"400\\\",\\\"500\\\",\\\"600\\\",\\\"700\\\",\\\"800\\\",\\\"900\\\"]},{}],127:[function(t,e,r){\\\"use strict\\\";e.exports={parse:t(\\\"./parse\\\"),stringify:t(\\\"./stringify\\\")}},{\\\"./parse\\\":129,\\\"./stringify\\\":130}],128:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"css-font-size-keywords\\\");e.exports={isSize:function(t){return/^[\\\\d\\\\.]/.test(t)||-1!==t.indexOf(\\\"/\\\")||-1!==n.indexOf(t)}}},{\\\"css-font-size-keywords\\\":123}],129:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"unquote\\\"),i=t(\\\"css-global-keywords\\\"),a=t(\\\"css-system-font-keywords\\\"),o=t(\\\"css-font-weight-keywords\\\"),s=t(\\\"css-font-style-keywords\\\"),l=t(\\\"css-font-stretch-keywords\\\"),c=t(\\\"string-split-by\\\"),u=t(\\\"./lib/util\\\").isSize;e.exports=h;var f=h.cache={};function h(t){if(\\\"string\\\"!=typeof t)throw new Error(\\\"Font argument must be a string.\\\");if(f[t])return f[t];if(\\\"\\\"===t)throw new Error(\\\"Cannot parse an empty string.\\\");if(-1!==a.indexOf(t))return f[t]={system:t};for(var e,r={style:\\\"normal\\\",variant:\\\"normal\\\",weight:\\\"normal\\\",stretch:\\\"normal\\\",lineHeight:\\\"normal\\\",size:\\\"1rem\\\",family:[\\\"serif\\\"]},h=c(t,/\\\\s+/);e=h.shift();){if(-1!==i.indexOf(e))return[\\\"style\\\",\\\"variant\\\",\\\"weight\\\",\\\"stretch\\\"].forEach(function(t){r[t]=e}),f[t]=r;if(-1===s.indexOf(e))if(\\\"normal\\\"!==e&&\\\"small-caps\\\"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(u(e)){var d=c(e,\\\"/\\\");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):\\\"/\\\"===h[0]&&(h.shift(),r.lineHeight=p(h.shift())),!h.length)throw new Error(\\\"Missing required font-family.\\\");return r.family=c(h.join(\\\" \\\"),/\\\\s*,\\\\s*/).map(n),f[t]=r}throw new Error(\\\"Unknown or unsupported font token: \\\"+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error(\\\"Missing required font-size.\\\")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},{\\\"./lib/util\\\":128,\\\"css-font-stretch-keywords\\\":124,\\\"css-font-style-keywords\\\":125,\\\"css-font-weight-keywords\\\":126,\\\"css-global-keywords\\\":131,\\\"css-system-font-keywords\\\":132,\\\"string-split-by\\\":505,unquote:525}],130:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"pick-by-alias\\\"),i=t(\\\"./lib/util\\\").isSize,a=g(t(\\\"css-global-keywords\\\")),o=g(t(\\\"css-system-font-keywords\\\")),s=g(t(\\\"css-font-weight-keywords\\\")),l=g(t(\\\"css-font-style-keywords\\\")),c=g(t(\\\"css-font-stretch-keywords\\\")),u={normal:1,\\\"small-caps\\\":1},f={serif:1,\\\"sans-serif\\\":1,monospace:1,cursive:1,fantasy:1,\\\"system-ui\\\":1},h=\\\"1rem\\\",p=\\\"serif\\\";function d(t,e){if(t&&!e[t]&&!a[t])throw Error(\\\"Unknown keyword `\\\"+t+\\\"`\\\");return t}function g(t){for(var e={},r=0;r<t.length;r++)e[t[r]]=1;return e}e.exports=function(t){if((t=n(t,{style:\\\"style fontstyle fontStyle font-style slope distinction\\\",variant:\\\"variant font-variant fontVariant fontvariant var capitalization\\\",weight:\\\"weight w font-weight fontWeight fontweight\\\",stretch:\\\"stretch font-stretch fontStretch fontstretch width\\\",size:\\\"size s font-size fontSize fontsize height em emSize\\\",lineHeight:\\\"lh line-height lineHeight lineheight leading\\\",family:\\\"font family fontFamily font-family fontfamily type typeface face\\\",system:\\\"system reserved default global\\\"})).system)return t.system&&d(t.system,o),t.system;if(d(t.style,l),d(t.variant,u),d(t.weight,s),d(t.stretch,c),null==t.size&&(t.size=h),\\\"number\\\"==typeof t.size&&(t.size+=\\\"px\\\"),!i)throw Error(\\\"Bad size value `\\\"+t.size+\\\"`\\\");t.family||(t.family=p),Array.isArray(t.family)&&(t.family.length||(t.family=[p]),t.family=t.family.map(function(t){return f[t]?t:'\\\"'+t+'\\\"'}).join(\\\", \\\"));var e=[];return e.push(t.style),t.variant!==t.style&&e.push(t.variant),t.weight!==t.variant&&t.weight!==t.style&&e.push(t.weight),t.stretch!==t.weight&&t.stretch!==t.variant&&t.stretch!==t.style&&e.push(t.stretch),e.push(t.size+(null==t.lineHeight||\\\"normal\\\"===t.lineHeight||t.lineHeight+\\\"\\\"==\\\"1\\\"?\\\"\\\":\\\"/\\\"+t.lineHeight)),e.push(t.family),e.filter(Boolean).join(\\\" \\\")}},{\\\"./lib/util\\\":128,\\\"css-font-stretch-keywords\\\":124,\\\"css-font-style-keywords\\\":125,\\\"css-font-weight-keywords\\\":126,\\\"css-global-keywords\\\":131,\\\"css-system-font-keywords\\\":132,\\\"pick-by-alias\\\":448}],131:[function(t,e,r){e.exports=[\\\"inherit\\\",\\\"initial\\\",\\\"unset\\\"]},{}],132:[function(t,e,r){e.exports=[\\\"caption\\\",\\\"icon\\\",\\\"menu\\\",\\\"message-box\\\",\\\"small-caption\\\",\\\"status-bar\\\"]},{}],133:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i,a){var o=i-1,s=i*i,l=o*o,c=(1+2*i)*l,u=i*l,f=s*(3-2*i),h=s*o;if(t.length){a||(a=new Array(t.length));for(var p=t.length-1;p>=0;--p)a[p]=c*t[p]+u*e[p]+f*r[p]+h*n[p];return a}return c*t+u*e+f*r+h*n},e.exports.derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,c=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var u=t.length-1;u>=0;--u)a[u]=o*t[u]+s*e[u]+l*r[u]+c*n[u];return a}return o*t+s*e+l*r[u]+c*n}},{}],134:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/thunk.js\\\");function i(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName=\\\"\\\",this.pre=null,this.body=null,this.post=null,this.debug=!1}e.exports=function(t){var e=new i;e.pre=t.pre,e.body=t.body,e.post=t.post;var r=t.args.slice(0);e.argTypes=r;for(var a=0;a<r.length;++a){var o=r[a];if(\\\"array\\\"===o||\\\"object\\\"==typeof o&&o.blockIndices){if(e.argTypes[a]=\\\"array\\\",e.arrayArgs.push(a),e.arrayBlockIndices.push(o.blockIndices?o.blockIndices:0),e.shimArgs.push(\\\"array\\\"+a),a<e.pre.args.length&&e.pre.args[a].count>0)throw new Error(\\\"cwise: pre() block may not reference array args\\\");if(a<e.post.args.length&&e.post.args[a].count>0)throw new Error(\\\"cwise: post() block may not reference array args\\\")}else if(\\\"scalar\\\"===o)e.scalarArgs.push(a),e.shimArgs.push(\\\"scalar\\\"+a);else if(\\\"index\\\"===o){if(e.indexArgs.push(a),a<e.pre.args.length&&e.pre.args[a].count>0)throw new Error(\\\"cwise: pre() block may not reference array index\\\");if(a<e.body.args.length&&e.body.args[a].lvalue)throw new Error(\\\"cwise: body() block may not write to array index\\\");if(a<e.post.args.length&&e.post.args[a].count>0)throw new Error(\\\"cwise: post() block may not reference array index\\\")}else if(\\\"shape\\\"===o){if(e.shapeArgs.push(a),a<e.pre.args.length&&e.pre.args[a].lvalue)throw new Error(\\\"cwise: pre() block may not write to array shape\\\");if(a<e.body.args.length&&e.body.args[a].lvalue)throw new Error(\\\"cwise: body() block may not write to array shape\\\");if(a<e.post.args.length&&e.post.args[a].lvalue)throw new Error(\\\"cwise: post() block may not write to array shape\\\")}else{if(\\\"object\\\"!=typeof o||!o.offset)throw new Error(\\\"cwise: Unknown argument type \\\"+r[a]);e.argTypes[a]=\\\"offset\\\",e.offsetArgs.push({array:o.array,offset:o.offset}),e.offsetArgIndex.push(a)}}if(e.arrayArgs.length<=0)throw new Error(\\\"cwise: No array arguments specified\\\");if(e.pre.args.length>r.length)throw new Error(\\\"cwise: Too many arguments in pre() block\\\");if(e.body.args.length>r.length)throw new Error(\\\"cwise: Too many arguments in body() block\\\");if(e.post.args.length>r.length)throw new Error(\\\"cwise: Too many arguments in post() block\\\");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||\\\"cwise\\\",e.blockSize=t.blockSize||64,n(e)}},{\\\"./lib/thunk.js\\\":136}],135:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"uniq\\\");function i(t,e,r){var n,i,a=t.length,o=e.arrayArgs.length,s=e.indexArgs.length>0,l=[],c=[],u=0,f=0;for(n=0;n<a;++n)c.push([\\\"i\\\",n,\\\"=0\\\"].join(\\\"\\\"));for(i=0;i<o;++i)for(n=0;n<a;++n)f=u,u=t[n],0===n?c.push([\\\"d\\\",i,\\\"s\\\",n,\\\"=t\\\",i,\\\"p\\\",u].join(\\\"\\\")):c.push([\\\"d\\\",i,\\\"s\\\",n,\\\"=(t\\\",i,\\\"p\\\",u,\\\"-s\\\",f,\\\"*t\\\",i,\\\"p\\\",f,\\\")\\\"].join(\\\"\\\"));for(c.length>0&&l.push(\\\"var \\\"+c.join(\\\",\\\")),n=a-1;n>=0;--n)u=t[n],l.push([\\\"for(i\\\",n,\\\"=0;i\\\",n,\\\"<s\\\",u,\\\";++i\\\",n,\\\"){\\\"].join(\\\"\\\"));for(l.push(r),n=0;n<a;++n){for(f=u,u=t[n],i=0;i<o;++i)l.push([\\\"p\\\",i,\\\"+=d\\\",i,\\\"s\\\",n].join(\\\"\\\"));s&&(n>0&&l.push([\\\"index[\\\",f,\\\"]-=s\\\",f].join(\\\"\\\")),l.push([\\\"++index[\\\",u,\\\"]\\\"].join(\\\"\\\"))),l.push(\\\"}\\\")}return l.join(\\\"\\\\n\\\")}function a(t,e,r){for(var n=t.body,i=[],a=[],o=0;o<t.args.length;++o){var s=t.args[o];if(!(s.count<=0)){var l=new RegExp(s.name,\\\"g\\\"),c=\\\"\\\",u=e.arrayArgs.indexOf(o);switch(e.argTypes[o]){case\\\"offset\\\":var f=e.offsetArgIndex.indexOf(o);u=e.offsetArgs[f].array,c=\\\"+q\\\"+f;case\\\"array\\\":c=\\\"p\\\"+u+c;var h=\\\"l\\\"+o,p=\\\"a\\\"+u;if(0===e.arrayBlockIndices[u])1===s.count?\\\"generic\\\"===r[u]?s.lvalue?(i.push([\\\"var \\\",h,\\\"=\\\",p,\\\".get(\\\",c,\\\")\\\"].join(\\\"\\\")),n=n.replace(l,h),a.push([p,\\\".set(\\\",c,\\\",\\\",h,\\\")\\\"].join(\\\"\\\"))):n=n.replace(l,[p,\\\".get(\\\",c,\\\")\\\"].join(\\\"\\\")):n=n.replace(l,[p,\\\"[\\\",c,\\\"]\\\"].join(\\\"\\\")):\\\"generic\\\"===r[u]?(i.push([\\\"var \\\",h,\\\"=\\\",p,\\\".get(\\\",c,\\\")\\\"].join(\\\"\\\")),n=n.replace(l,h),s.lvalue&&a.push([p,\\\".set(\\\",c,\\\",\\\",h,\\\")\\\"].join(\\\"\\\"))):(i.push([\\\"var \\\",h,\\\"=\\\",p,\\\"[\\\",c,\\\"]\\\"].join(\\\"\\\")),n=n.replace(l,h),s.lvalue&&a.push([p,\\\"[\\\",c,\\\"]=\\\",h].join(\\\"\\\")));else{for(var d=[s.name],g=[c],v=0;v<Math.abs(e.arrayBlockIndices[u]);v++)d.push(\\\"\\\\\\\\s*\\\\\\\\[([^\\\\\\\\]]+)\\\\\\\\]\\\"),g.push(\\\"$\\\"+(v+1)+\\\"*t\\\"+u+\\\"b\\\"+v);if(l=new RegExp(d.join(\\\"\\\"),\\\"g\\\"),c=g.join(\\\"+\\\"),\\\"generic\\\"===r[u])throw new Error(\\\"cwise: Generic arrays not supported in combination with blocks!\\\");n=n.replace(l,[p,\\\"[\\\",c,\\\"]\\\"].join(\\\"\\\"))}break;case\\\"scalar\\\":n=n.replace(l,\\\"Y\\\"+e.scalarArgs.indexOf(o));break;case\\\"index\\\":n=n.replace(l,\\\"index\\\");break;case\\\"shape\\\":n=n.replace(l,\\\"shape\\\")}}}return[i.join(\\\"\\\\n\\\"),n,a.join(\\\"\\\\n\\\")].join(\\\"\\\\n\\\").trim()}e.exports=function(t,e){for(var r=e[1].length-Math.abs(t.arrayBlockIndices[0])|0,o=new Array(t.arrayArgs.length),s=new Array(t.arrayArgs.length),l=0;l<t.arrayArgs.length;++l)s[l]=e[2*l],o[l]=e[2*l+1];var c=[],u=[],f=[],h=[],p=[];for(l=0;l<t.arrayArgs.length;++l){t.arrayBlockIndices[l]<0?(f.push(0),h.push(r),c.push(r),u.push(r+t.arrayBlockIndices[l])):(f.push(t.arrayBlockIndices[l]),h.push(t.arrayBlockIndices[l]+r),c.push(0),u.push(t.arrayBlockIndices[l]));for(var d=[],g=0;g<o[l].length;g++)f[l]<=o[l][g]&&o[l][g]<h[l]&&d.push(o[l][g]-f[l]);p.push(d)}var v=[\\\"SS\\\"],m=[\\\"'use strict'\\\"],y=[];for(g=0;g<r;++g)y.push([\\\"s\\\",g,\\\"=SS[\\\",g,\\\"]\\\"].join(\\\"\\\"));for(l=0;l<t.arrayArgs.length;++l){for(v.push(\\\"a\\\"+l),v.push(\\\"t\\\"+l),v.push(\\\"p\\\"+l),g=0;g<r;++g)y.push([\\\"t\\\",l,\\\"p\\\",g,\\\"=t\\\",l,\\\"[\\\",f[l]+g,\\\"]\\\"].join(\\\"\\\"));for(g=0;g<Math.abs(t.arrayBlockIndices[l]);++g)y.push([\\\"t\\\",l,\\\"b\\\",g,\\\"=t\\\",l,\\\"[\\\",c[l]+g,\\\"]\\\"].join(\\\"\\\"))}for(l=0;l<t.scalarArgs.length;++l)v.push(\\\"Y\\\"+l);if(t.shapeArgs.length>0&&y.push(\\\"shape=SS.slice(0)\\\"),t.indexArgs.length>0){var x=new Array(r);for(l=0;l<r;++l)x[l]=\\\"0\\\";y.push([\\\"index=[\\\",x.join(\\\",\\\"),\\\"]\\\"].join(\\\"\\\"))}for(l=0;l<t.offsetArgs.length;++l){var b=t.offsetArgs[l],_=[];for(g=0;g<b.offset.length;++g)0!==b.offset[g]&&(1===b.offset[g]?_.push([\\\"t\\\",b.array,\\\"p\\\",g].join(\\\"\\\")):_.push([b.offset[g],\\\"*t\\\",b.array,\\\"p\\\",g].join(\\\"\\\")));0===_.length?y.push(\\\"q\\\"+l+\\\"=0\\\"):y.push([\\\"q\\\",l,\\\"=\\\",_.join(\\\"+\\\")].join(\\\"\\\"))}var w=n([].concat(t.pre.thisVars).concat(t.body.thisVars).concat(t.post.thisVars));for((y=y.concat(w)).length>0&&m.push(\\\"var \\\"+y.join(\\\",\\\")),l=0;l<t.arrayArgs.length;++l)m.push(\\\"p\\\"+l+\\\"|=0\\\");t.pre.body.length>3&&m.push(a(t.pre,t,s));var k=a(t.body,t,s),M=function(t){for(var e=0,r=t[0].length;e<r;){for(var n=1;n<t.length;++n)if(t[n][e]!==t[0][e])return e;++e}return e}(p);M<r?m.push(function(t,e,r,n){for(var a=e.length,o=r.arrayArgs.length,s=r.blockSize,l=r.indexArgs.length>0,c=[],u=0;u<o;++u)c.push([\\\"var offset\\\",u,\\\"=p\\\",u].join(\\\"\\\"));for(u=t;u<a;++u)c.push([\\\"for(var j\\\"+u+\\\"=SS[\\\",e[u],\\\"]|0;j\\\",u,\\\">0;){\\\"].join(\\\"\\\")),c.push([\\\"if(j\\\",u,\\\"<\\\",s,\\\"){\\\"].join(\\\"\\\")),c.push([\\\"s\\\",e[u],\\\"=j\\\",u].join(\\\"\\\")),c.push([\\\"j\\\",u,\\\"=0\\\"].join(\\\"\\\")),c.push([\\\"}else{s\\\",e[u],\\\"=\\\",s].join(\\\"\\\")),c.push([\\\"j\\\",u,\\\"-=\\\",s,\\\"}\\\"].join(\\\"\\\")),l&&c.push([\\\"index[\\\",e[u],\\\"]=j\\\",u].join(\\\"\\\"));for(u=0;u<o;++u){for(var f=[\\\"offset\\\"+u],h=t;h<a;++h)f.push([\\\"j\\\",h,\\\"*t\\\",u,\\\"p\\\",e[h]].join(\\\"\\\"));c.push([\\\"p\\\",u,\\\"=(\\\",f.join(\\\"+\\\"),\\\")\\\"].join(\\\"\\\"))}for(c.push(i(e,r,n)),u=t;u<a;++u)c.push(\\\"}\\\");return c.join(\\\"\\\\n\\\")}(M,p[0],t,k)):m.push(i(p[0],t,k)),t.post.body.length>3&&m.push(a(t.post,t,s)),t.debug&&console.log(\\\"-----Generated cwise routine for \\\",e,\\\":\\\\n\\\"+m.join(\\\"\\\\n\\\")+\\\"\\\\n----------\\\");var A=[t.funcName||\\\"unnamed\\\",\\\"_cwise_loop_\\\",o[0].join(\\\"s\\\"),\\\"m\\\",M,function(t){for(var e=new Array(t.length),r=!0,n=0;n<t.length;++n){var i=t[n],a=i.match(/\\\\d+/);a=a?a[0]:\\\"\\\",0===i.charAt(0)?e[n]=\\\"u\\\"+i.charAt(1)+a:e[n]=i.charAt(0)+a,n>0&&(r=r&&e[n]===e[n-1])}return r?e[0]:e.join(\\\"\\\")}(s)].join(\\\"\\\");return new Function([\\\"function \\\",A,\\\"(\\\",v.join(\\\",\\\"),\\\"){\\\",m.join(\\\"\\\\n\\\"),\\\"} return \\\",A].join(\\\"\\\"))()}},{uniq:524}],136:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./compile.js\\\");e.exports=function(t){var e=[\\\"'use strict'\\\",\\\"var CACHED={}\\\"],r=[],i=t.funcName+\\\"_cwise_thunk\\\";e.push([\\\"return function \\\",i,\\\"(\\\",t.shimArgs.join(\\\",\\\"),\\\"){\\\"].join(\\\"\\\"));for(var a=[],o=[],s=[[\\\"array\\\",t.arrayArgs[0],\\\".shape.slice(\\\",Math.max(0,t.arrayBlockIndices[0]),t.arrayBlockIndices[0]<0?\\\",\\\"+t.arrayBlockIndices[0]+\\\")\\\":\\\")\\\"].join(\\\"\\\")],l=[],c=[],u=0;u<t.arrayArgs.length;++u){var f=t.arrayArgs[u];r.push([\\\"t\\\",f,\\\"=array\\\",f,\\\".dtype,\\\",\\\"r\\\",f,\\\"=array\\\",f,\\\".order\\\"].join(\\\"\\\")),a.push(\\\"t\\\"+f),a.push(\\\"r\\\"+f),o.push(\\\"t\\\"+f),o.push(\\\"r\\\"+f+\\\".join()\\\"),s.push(\\\"array\\\"+f+\\\".data\\\"),s.push(\\\"array\\\"+f+\\\".stride\\\"),s.push(\\\"array\\\"+f+\\\".offset|0\\\"),u>0&&(l.push(\\\"array\\\"+t.arrayArgs[0]+\\\".shape.length===array\\\"+f+\\\".shape.length+\\\"+(Math.abs(t.arrayBlockIndices[0])-Math.abs(t.arrayBlockIndices[u]))),c.push(\\\"array\\\"+t.arrayArgs[0]+\\\".shape[shapeIndex+\\\"+Math.max(0,t.arrayBlockIndices[0])+\\\"]===array\\\"+f+\\\".shape[shapeIndex+\\\"+Math.max(0,t.arrayBlockIndices[u])+\\\"]\\\"))}for(t.arrayArgs.length>1&&(e.push(\\\"if (!(\\\"+l.join(\\\" && \\\")+\\\")) throw new Error('cwise: Arrays do not all have the same dimensionality!')\\\"),e.push(\\\"for(var shapeIndex=array\\\"+t.arrayArgs[0]+\\\".shape.length-\\\"+Math.abs(t.arrayBlockIndices[0])+\\\"; shapeIndex--\\\\x3e0;) {\\\"),e.push(\\\"if (!(\\\"+c.join(\\\" && \\\")+\\\")) throw new Error('cwise: Arrays do not all have the same shape!')\\\"),e.push(\\\"}\\\")),u=0;u<t.scalarArgs.length;++u)s.push(\\\"scalar\\\"+t.scalarArgs[u]);return r.push([\\\"type=[\\\",o.join(\\\",\\\"),\\\"].join()\\\"].join(\\\"\\\")),r.push(\\\"proc=CACHED[type]\\\"),e.push(\\\"var \\\"+r.join(\\\",\\\")),e.push([\\\"if(!proc){\\\",\\\"CACHED[type]=proc=compile([\\\",a.join(\\\",\\\"),\\\"])}\\\",\\\"return proc(\\\",s.join(\\\",\\\"),\\\")}\\\"].join(\\\"\\\")),t.debug&&console.log(\\\"-----Generated thunk:\\\\n\\\"+e.join(\\\"\\\\n\\\")+\\\"\\\\n----------\\\"),new Function(\\\"compile\\\",e.join(\\\"\\\\n\\\"))(n.bind(void 0,t))}},{\\\"./compile.js\\\":135}],137:[function(t,e,r){e.exports=t(\\\"cwise-compiler\\\")},{\\\"cwise-compiler\\\":134}],138:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/object/copy\\\"),a=t(\\\"es5-ext/object/normalize-options\\\"),o=t(\\\"es5-ext/object/valid-callable\\\"),s=t(\\\"es5-ext/object/map\\\"),l=t(\\\"es5-ext/object/valid-callable\\\"),c=t(\\\"es5-ext/object/valid-value\\\"),u=Function.prototype.bind,f=Object.defineProperty,h=Object.prototype.hasOwnProperty;n=function(t,e,r){var n,a=c(e)&&l(e.value);return delete(n=i(e)).writable,delete n.value,n.get=function(){return!r.overwriteDefinition&&h.call(this,t)?a:(e.value=u.call(a,r.resolveContext?r.resolveContext(this):this),f(this,t,e),this[t])},n},e.exports=function(t){var e=a(arguments[1]);return null!=e.resolveContext&&o(e.resolveContext),s(t,function(t,r){return n(r,t,e)})}},{\\\"es5-ext/object/copy\\\":174,\\\"es5-ext/object/map\\\":183,\\\"es5-ext/object/normalize-options\\\":184,\\\"es5-ext/object/valid-callable\\\":188,\\\"es5-ext/object/valid-value\\\":190}],139:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es5-ext/object/assign\\\"),i=t(\\\"es5-ext/object/normalize-options\\\"),a=t(\\\"es5-ext/object/is-callable\\\"),o=t(\\\"es5-ext/string/#/contains\\\");(e.exports=function(t,e){var r,a,s,l,c;return arguments.length<2||\\\"string\\\"!=typeof t?(l=e,e=t,t=null):l=arguments[2],null==t?(r=s=!0,a=!1):(r=o.call(t,\\\"c\\\"),a=o.call(t,\\\"e\\\"),s=o.call(t,\\\"w\\\")),c={value:e,configurable:r,enumerable:a,writable:s},l?n(i(l),c):c}).gs=function(t,e,r){var s,l,c,u;return\\\"string\\\"!=typeof t?(c=r,r=e,e=t,t=null):c=arguments[3],null==e?e=void 0:a(e)?null==r?r=void 0:a(r)||(c=r,r=void 0):(c=e,e=r=void 0),null==t?(s=!0,l=!1):(s=o.call(t,\\\"c\\\"),l=o.call(t,\\\"e\\\")),u={get:e,set:r,configurable:s,enumerable:l},c?n(i(c),u):u}},{\\\"es5-ext/object/assign\\\":171,\\\"es5-ext/object/is-callable\\\":177,\\\"es5-ext/object/normalize-options\\\":184,\\\"es5-ext/string/#/contains\\\":191}],140:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";function e(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function r(t){var r;return 1===t.length&&(r=t,t=function(t,n){return e(r(t),n)}),{left:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}var n=r(e),i=n.right,a=n.left;function o(t,e){return[t,e]}function s(t){return null===t?NaN:+t}function l(t,e){var r,n,i=t.length,a=0,o=-1,l=0,c=0;if(null==e)for(;++o<i;)isNaN(r=s(t[o]))||(c+=(n=r-l)*(r-(l+=n/++a)));else for(;++o<i;)isNaN(r=s(e(t[o],o,t)))||(c+=(n=r-l)*(r-(l+=n/++a)));if(a>1)return c/(a-1)}function c(t,e){var r=l(t,e);return r?Math.sqrt(r):r}function u(t,e){var r,n,i,a=t.length,o=-1;if(null==e){for(;++o<a;)if(null!=(r=t[o])&&r>=r)for(n=i=r;++o<a;)null!=(r=t[o])&&(n>r&&(n=r),i<r&&(i=r))}else for(;++o<a;)if(null!=(r=e(t[o],o,t))&&r>=r)for(n=i=r;++o<a;)null!=(r=e(t[o],o,t))&&(n>r&&(n=r),i<r&&(i=r));return[n,i]}var f=Array.prototype,h=f.slice,p=f.map;function d(t){return function(){return t}}function g(t){return t}function v(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),a=new Array(i);++n<i;)a[n]=t+n*r;return a}var m=Math.sqrt(50),y=Math.sqrt(10),x=Math.sqrt(2);function b(t,e,r){var n=(e-t)/Math.max(0,r),i=Math.floor(Math.log(n)/Math.LN10),a=n/Math.pow(10,i);return i>=0?(a>=m?10:a>=y?5:a>=x?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=m?10:a>=y?5:a>=x?2:1)}function _(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),a=n/i;return a>=m?i*=10:a>=y?i*=5:a>=x&&(i*=2),e<t?-i:i}function w(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function k(t,e,r){if(null==r&&(r=s),n=t.length){if((e=+e)<=0||n<2)return+r(t[0],0,t);if(e>=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,a=Math.floor(i),o=+r(t[a],a,t);return o+(+r(t[a+1],a+1,t)-o)*(i-a)}}function M(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a<i;)if(null!=(r=t[a])&&r>=r)for(n=r;++a<i;)null!=(r=t[a])&&n>r&&(n=r)}else for(;++a<i;)if(null!=(r=e(t[a],a,t))&&r>=r)for(n=r;++a<i;)null!=(r=e(t[a],a,t))&&n>r&&(n=r);return n}function A(t){if(!(i=t.length))return[];for(var e=-1,r=M(t,T),n=new Array(r);++e<r;)for(var i,a=-1,o=n[e]=new Array(i);++a<i;)o[a]=t[a][e];return n}function T(t){return t.length}t.bisect=i,t.bisectRight=i,t.bisectLeft=a,t.ascending=e,t.bisector=r,t.cross=function(t,e,r){var n,i,a,s,l=t.length,c=e.length,u=new Array(l*c);for(null==r&&(r=o),n=a=0;n<l;++n)for(s=t[n],i=0;i<c;++i,++a)u[a]=r(s,e[i]);return u},t.descending=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},t.deviation=c,t.extent=u,t.histogram=function(){var t=g,e=u,r=w;function n(n){var a,o,s=n.length,l=new Array(s);for(a=0;a<s;++a)l[a]=t(n[a],a,n);var c=e(l),u=c[0],f=c[1],h=r(l,u,f);Array.isArray(h)||(h=_(u,f,h),h=v(Math.ceil(u/h)*h,f,h));for(var p=h.length;h[0]<=u;)h.shift(),--p;for(;h[p-1]>f;)h.pop(),--p;var d,g=new Array(p+1);for(a=0;a<=p;++a)(d=g[a]=[]).x0=a>0?h[a-1]:u,d.x1=a<p?h[a]:f;for(a=0;a<s;++a)u<=(o=l[a])&&o<=f&&g[i(h,o,0,p)].push(n[a]);return g}return n.value=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:d(e),n):t},n.domain=function(t){return arguments.length?(e=\\\"function\\\"==typeof t?t:d([t[0],t[1]]),n):e},n.thresholds=function(t){return arguments.length?(r=\\\"function\\\"==typeof t?t:Array.isArray(t)?d(h.call(t)):d(t),n):r},n},t.thresholdFreedmanDiaconis=function(t,r,n){return t=p.call(t,s).sort(e),Math.ceil((n-r)/(2*(k(t,.75)-k(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,e,r){return Math.ceil((r-e)/(3.5*c(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=w,t.max=function(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a<i;)if(null!=(r=t[a])&&r>=r)for(n=r;++a<i;)null!=(r=t[a])&&r>n&&(n=r)}else for(;++a<i;)if(null!=(r=e(t[a],a,t))&&r>=r)for(n=r;++a<i;)null!=(r=e(t[a],a,t))&&r>n&&(n=r);return n},t.mean=function(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a<n;)isNaN(r=s(t[a]))?--i:o+=r;else for(;++a<n;)isNaN(r=s(e(t[a],a,t)))?--i:o+=r;if(i)return o/i},t.median=function(t,r){var n,i=t.length,a=-1,o=[];if(null==r)for(;++a<i;)isNaN(n=s(t[a]))||o.push(n);else for(;++a<i;)isNaN(n=s(r(t[a],a,t)))||o.push(n);return k(o.sort(e),.5)},t.merge=function(t){for(var e,r,n,i=t.length,a=-1,o=0;++a<i;)o+=t[a].length;for(r=new Array(o);--i>=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r},t.min=M,t.pairs=function(t,e){null==e&&(e=o);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r<n;)a[r]=e(i,i=t[++r]);return a},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.quantile=k,t.range=v,t.scan=function(t,r){if(n=t.length){var n,i,a=0,o=0,s=t[o];for(null==r&&(r=e);++a<n;)(r(i=t[a],s)<0||0!==r(s,s))&&(s=i,o=a);return 0===r(s,s)?o:void 0}},t.shuffle=function(t,e,r){for(var n,i,a=(null==r?t.length:r)-(e=null==e?0:+e);a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},t.sum=function(t,e){var r,n=t.length,i=-1,a=0;if(null==e)for(;++i<n;)(r=+t[i])&&(a+=r);else for(;++i<n;)(r=+e(t[i],i,t))&&(a+=r);return a},t.ticks=function(t,e,r){var n,i,a,o,s=-1;if(r=+r,(t=+t)==(e=+e)&&r>0)return[t];if((n=e<t)&&(i=t,t=e,e=i),0===(o=b(t,e,r))||!isFinite(o))return[];if(o>0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++s<i;)a[s]=(t+s)*o;else for(t=Math.floor(t*o),e=Math.ceil(e*o),a=new Array(i=Math.ceil(t-e+1));++s<i;)a[s]=(t-s)/o;return n&&a.reverse(),a},t.tickIncrement=b,t.tickStep=_,t.transpose=A,t.variance=l,t.zip=function(){return A(arguments)},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],141:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";function e(){}function r(t,r){var n=new e;if(t instanceof e)t.each(function(t,e){n.set(e,t)});else if(Array.isArray(t)){var i,a=-1,o=t.length;if(null==r)for(;++a<o;)n.set(a,t[a]);else for(;++a<o;)n.set(r(i=t[a],a,t),i)}else if(t)for(var s in t)n.set(s,t[s]);return n}e.prototype=r.prototype={constructor:e,has:function(t){return\\\"$\\\"+t in this},get:function(t){return this[\\\"$\\\"+t]},set:function(t,e){return this[\\\"$\\\"+t]=e,this},remove:function(t){var e=\\\"$\\\"+t;return e in this&&delete this[e]},clear:function(){for(var t in this)\\\"$\\\"===t[0]&&delete this[t]},keys:function(){var t=[];for(var e in this)\\\"$\\\"===e[0]&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)\\\"$\\\"===e[0]&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)\\\"$\\\"===e[0]&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)\\\"$\\\"===e[0]&&++t;return t},empty:function(){for(var t in this)if(\\\"$\\\"===t[0])return!1;return!0},each:function(t){for(var e in this)\\\"$\\\"===e[0]&&t(this[e],e.slice(1),this)}};function n(){return{}}function i(t,e,r){t[e]=r}function a(){return r()}function o(t,e,r){t.set(e,r)}function s(){}var l=r.prototype;function c(t,e){var r=new s;if(t instanceof s)t.each(function(t){r.add(t)});else if(t){var n=-1,i=t.length;if(null==e)for(;++n<i;)r.add(t[n]);else for(;++n<i;)r.add(e(t[n],n,t))}return r}s.prototype=c.prototype={constructor:s,has:l.has,add:function(t){return this[\\\"$\\\"+(t+=\\\"\\\")]=t,this},remove:l.remove,clear:l.clear,values:l.keys,size:l.size,empty:l.empty,each:l.each};t.nest=function(){var t,e,s,l=[],c=[];function u(n,i,a,o){if(i>=l.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var s,c,f,h=-1,p=n.length,d=l[i++],g=r(),v=a();++h<p;)(f=g.get(s=d(c=n[h])+\\\"\\\"))?f.push(c):g.set(s,[c]);return g.each(function(t,e){o(v,e,u(t,i,a,o))}),v}return s={object:function(t){return u(t,0,n,i)},map:function(t){return u(t,0,a,o)},entries:function(t){return function t(r,n){if(++n>l.length)return r;var i,a=c[n-1];return null!=e&&n>=l.length?i=r.entries():(i=[],r.each(function(e,r){i.push({key:r,values:t(e,n)})})),null!=a?i.sort(function(t,e){return a(t.key,e.key)}):i}(u(t,0,a,o),0)},key:function(t){return l.push(t),s},sortKeys:function(t){return c[l.length-1]=t,s},sortValues:function(e){return t=e,s},rollup:function(t){return e=t,s}}},t.set=c,t.map=r,t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],142:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";function e(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function r(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function n(){}var i=\\\"\\\\\\\\s*([+-]?\\\\\\\\d+)\\\\\\\\s*\\\",a=\\\"\\\\\\\\s*([+-]?\\\\\\\\d*\\\\\\\\.?\\\\\\\\d+(?:[eE][+-]?\\\\\\\\d+)?)\\\\\\\\s*\\\",o=\\\"\\\\\\\\s*([+-]?\\\\\\\\d*\\\\\\\\.?\\\\\\\\d+(?:[eE][+-]?\\\\\\\\d+)?)%\\\\\\\\s*\\\",s=/^#([0-9a-f]{3})$/,l=/^#([0-9a-f]{6})$/,c=new RegExp(\\\"^rgb\\\\\\\\(\\\"+[i,i,i]+\\\"\\\\\\\\)$\\\"),u=new RegExp(\\\"^rgb\\\\\\\\(\\\"+[o,o,o]+\\\"\\\\\\\\)$\\\"),f=new RegExp(\\\"^rgba\\\\\\\\(\\\"+[i,i,i,a]+\\\"\\\\\\\\)$\\\"),h=new RegExp(\\\"^rgba\\\\\\\\(\\\"+[o,o,o,a]+\\\"\\\\\\\\)$\\\"),p=new RegExp(\\\"^hsl\\\\\\\\(\\\"+[a,o,o]+\\\"\\\\\\\\)$\\\"),d=new RegExp(\\\"^hsla\\\\\\\\(\\\"+[a,o,o,a]+\\\"\\\\\\\\)$\\\"),g={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 v(t){var e;return t=(t+\\\"\\\").trim().toLowerCase(),(e=s.exec(t))?new _((e=parseInt(e[1],16))>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=l.exec(t))?m(parseInt(e[1],16)):(e=c.exec(t))?new _(e[1],e[2],e[3],1):(e=u.exec(t))?new _(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=f.exec(t))?y(e[1],e[2],e[3],e[4]):(e=h.exec(t))?y(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=p.exec(t))?k(e[1],e[2]/100,e[3]/100,1):(e=d.exec(t))?k(e[1],e[2]/100,e[3]/100,e[4]):g.hasOwnProperty(t)?m(g[t]):\\\"transparent\\\"===t?new _(NaN,NaN,NaN,0):null}function m(t){return new _(t>>16&255,t>>8&255,255&t,1)}function y(t,e,r,n){return n<=0&&(t=e=r=NaN),new _(t,e,r,n)}function x(t){return t instanceof n||(t=v(t)),t?new _((t=t.rgb()).r,t.g,t.b,t.opacity):new _}function b(t,e,r,n){return 1===arguments.length?x(t):new _(t,e,r,null==n?1:n)}function _(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function w(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?\\\"0\\\":\\\"\\\")+t.toString(16)}function k(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new A(t,e,r,n)}function M(t,e,r,i){return 1===arguments.length?function(t){if(t instanceof A)return new A(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=v(t)),!t)return new A;if(t instanceof A)return t;var e=(t=t.rgb()).r/255,r=t.g/255,i=t.b/255,a=Math.min(e,r,i),o=Math.max(e,r,i),s=NaN,l=o-a,c=(o+a)/2;return l?(s=e===o?(r-i)/l+6*(r<i):r===o?(i-e)/l+2:(e-r)/l+4,l/=c<.5?o+a:2-o-a,s*=60):l=c>0&&c<1?0:s,new A(s,l,c,t.opacity)}(t):new A(t,e,r,null==i?1:i)}function A(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function T(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}e(n,v,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+\\\"\\\"}}),e(_,b,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return\\\"#\\\"+w(this.r)+w(this.g)+w(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?\\\"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))+(1===t?\\\")\\\":\\\", \\\"+t+\\\")\\\")}})),e(A,M,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new A(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new A(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new _(T(t>=240?t-240:t+120,i,n),T(t,i,n),T(t<120?t+240:t-120,i,n),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}}));var S=Math.PI/180,E=180/Math.PI,C=.96422,L=1,z=.82521,O=4/29,I=6/29,P=3*I*I,D=I*I*I;function R(t){if(t instanceof F)return new F(t.l,t.a,t.b,t.opacity);if(t instanceof G){if(isNaN(t.h))return new F(t.l,0,0,t.opacity);var e=t.h*S;return new F(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof _||(t=x(t));var r,n,i=U(t.r),a=U(t.g),o=U(t.b),s=N((.2225045*i+.7168786*a+.0606169*o)/L);return i===a&&a===o?r=n=s:(r=N((.4360747*i+.3850649*a+.1430804*o)/C),n=N((.0139322*i+.0971045*a+.7141733*o)/z)),new F(116*s-16,500*(r-s),200*(s-n),t.opacity)}function B(t,e,r,n){return 1===arguments.length?R(t):new F(t,e,r,null==n?1:n)}function F(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function N(t){return t>D?Math.pow(t,1/3):t/P+O}function j(t){return t>I?t*t*t:P*(t-O)}function V(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function U(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function q(t){if(t instanceof G)return new G(t.h,t.c,t.l,t.opacity);if(t instanceof F||(t=R(t)),0===t.a&&0===t.b)return new G(NaN,0,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*E;return new G(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function H(t,e,r,n){return 1===arguments.length?q(t):new G(t,e,r,null==n?1:n)}function G(t,e,r,n){this.h=+t,this.c=+e,this.l=+r,this.opacity=+n}e(F,B,r(n,{brighter:function(t){return new F(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new F(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return new _(V(3.1338561*(e=C*j(e))-1.6168667*(t=L*j(t))-.4906146*(r=z*j(r))),V(-.9787684*e+1.9161415*t+.033454*r),V(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}})),e(G,H,r(n,{brighter:function(t){return new G(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new G(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return R(this).rgb()}}));var W=-.14861,Y=1.78277,X=-.29227,Z=-.90649,$=1.97294,J=$*Z,K=$*Y,Q=Y*X-Z*W;function tt(t,e,r,n){return 1===arguments.length?function(t){if(t instanceof et)return new et(t.h,t.s,t.l,t.opacity);t instanceof _||(t=x(t));var e=t.r/255,r=t.g/255,n=t.b/255,i=(Q*n+J*e-K*r)/(Q+J-K),a=n-i,o=($*(r-i)-X*a)/Z,s=Math.sqrt(o*o+a*a)/($*i*(1-i)),l=s?Math.atan2(o,a)*E-120:NaN;return new et(l<0?l+360:l,s,i,t.opacity)}(t):new et(t,e,r,null==n?1:n)}function et(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}e(et,tt,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new et(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new et(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*S,e=+this.l,r=isNaN(this.s)?0:this.s*e*(1-e),n=Math.cos(t),i=Math.sin(t);return new _(255*(e+r*(W*n+Y*i)),255*(e+r*(X*n+Z*i)),255*(e+r*($*n)),this.opacity)}})),t.color=v,t.rgb=b,t.hsl=M,t.lab=B,t.hcl=H,t.lch=function(t,e,r,n){return 1===arguments.length?q(t):new G(r,e,t,null==n?1:n)},t.gray=function(t,e){return new F(t,0,0,null==e?1:e)},t.cubehelix=tt,Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],143:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";var e={value:function(){}};function r(){for(var t,e=0,r=arguments.length,i={};e<r;++e){if(!(t=arguments[e]+\\\"\\\")||t in i)throw new Error(\\\"illegal type: \\\"+t);i[t]=[]}return new n(i)}function n(t){this._=t}function i(t,e){for(var r,n=0,i=t.length;n<i;++n)if((r=t[n]).name===e)return r.value}function a(t,r,n){for(var i=0,a=t.length;i<a;++i)if(t[i].name===r){t[i]=e,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:r,value:n}),t}n.prototype=r.prototype={constructor:n,on:function(t,e){var r,n,o=this._,s=(n=o,(t+\\\"\\\").trim().split(/^|\\\\s+/).map(function(t){var e=\\\"\\\",r=t.indexOf(\\\".\\\");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error(\\\"unknown type: \\\"+t);return{type:t,name:e}})),l=-1,c=s.length;if(!(arguments.length<2)){if(null!=e&&\\\"function\\\"!=typeof e)throw new Error(\\\"invalid callback: \\\"+e);for(;++l<c;)if(r=(t=s[l]).type)o[r]=a(o[r],t.name,e);else if(null==e)for(r in o)o[r]=a(o[r],t.name,null);return this}for(;++l<c;)if((r=(t=s[l]).type)&&(r=i(o[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new n(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,i=new Array(r),a=0;a<r;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error(\\\"unknown type: \\\"+t);for(a=0,r=(n=this._[t]).length;a<r;++a)n[a].value.apply(e,i)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error(\\\"unknown type: \\\"+t);for(var n=this._[t],i=0,a=n.length;i<a;++i)n[i].value.apply(e,r)}},t.dispatch=r,Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],144:[function(t,e,r){var n,i;n=this,i=function(t,e,r,n,i){\\\"use strict\\\";var a=function(t){return function(){return t}},o=function(){return 1e-6*(Math.random()-.5)};function s(t){return t.x+t.vx}function l(t){return t.y+t.vy}function c(t){return t.index}function u(t,e){var r=t.get(e);if(!r)throw new Error(\\\"missing: \\\"+e);return r}function f(t){return t.x}function h(t){return t.y}var p=10,d=Math.PI*(3-Math.sqrt(5));t.forceCenter=function(t,e){var r;function n(){var n,i,a=r.length,o=0,s=0;for(n=0;n<a;++n)o+=(i=r[n]).x,s+=i.y;for(o=o/a-t,s=s/a-e,n=0;n<a;++n)(i=r[n]).x-=o,i.y-=s}return null==t&&(t=0),null==e&&(e=0),n.initialize=function(t){r=t},n.x=function(e){return arguments.length?(t=+e,n):t},n.y=function(t){return arguments.length?(e=+t,n):e},n},t.forceCollide=function(t){var r,n,i=1,c=1;function u(){for(var t,a,u,h,p,d,g,v=r.length,m=0;m<c;++m)for(a=e.quadtree(r,s,l).visitAfter(f),t=0;t<v;++t)u=r[t],d=n[u.index],g=d*d,h=u.x+u.vx,p=u.y+u.vy,a.visit(y);function y(t,e,r,n,a){var s=t.data,l=t.r,c=d+l;if(!s)return e>h+c||n<h-c||r>p+c||a<p-c;if(s.index>u.index){var f=h-s.x-s.vx,v=p-s.y-s.vy,m=f*f+v*v;m<c*c&&(0===f&&(m+=(f=o())*f),0===v&&(m+=(v=o())*v),m=(c-(m=Math.sqrt(m)))/m*i,u.vx+=(f*=m)*(c=(l*=l)/(g+l)),u.vy+=(v*=m)*c,s.vx-=f*(c=1-c),s.vy-=v*c)}}}function f(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function h(){if(r){var e,i,a=r.length;for(n=new Array(a),e=0;e<a;++e)i=r[e],n[i.index]=+t(i,e,r)}}return\\\"function\\\"!=typeof t&&(t=a(null==t?1:+t)),u.initialize=function(t){r=t,h()},u.iterations=function(t){return arguments.length?(c=+t,u):c},u.strength=function(t){return arguments.length?(i=+t,u):i},u.radius=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:a(+e),h(),u):t},u},t.forceLink=function(t){var e,n,i,s,l,f=c,h=function(t){return 1/Math.min(s[t.source.index],s[t.target.index])},p=a(30),d=1;function g(r){for(var i=0,a=t.length;i<d;++i)for(var s,c,u,f,h,p,g,v=0;v<a;++v)c=(s=t[v]).source,f=(u=s.target).x+u.vx-c.x-c.vx||o(),h=u.y+u.vy-c.y-c.vy||o(),f*=p=((p=Math.sqrt(f*f+h*h))-n[v])/p*r*e[v],h*=p,u.vx-=f*(g=l[v]),u.vy-=h*g,c.vx+=f*(g=1-g),c.vy+=h*g}function v(){if(i){var a,o,c=i.length,h=t.length,p=r.map(i,f);for(a=0,s=new Array(c);a<h;++a)(o=t[a]).index=a,\\\"object\\\"!=typeof o.source&&(o.source=u(p,o.source)),\\\"object\\\"!=typeof o.target&&(o.target=u(p,o.target)),s[o.source.index]=(s[o.source.index]||0)+1,s[o.target.index]=(s[o.target.index]||0)+1;for(a=0,l=new Array(h);a<h;++a)o=t[a],l[a]=s[o.source.index]/(s[o.source.index]+s[o.target.index]);e=new Array(h),m(),n=new Array(h),y()}}function m(){if(i)for(var r=0,n=t.length;r<n;++r)e[r]=+h(t[r],r,t)}function y(){if(i)for(var e=0,r=t.length;e<r;++e)n[e]=+p(t[e],e,t)}return null==t&&(t=[]),g.initialize=function(t){i=t,v()},g.links=function(e){return arguments.length?(t=e,v(),g):t},g.id=function(t){return arguments.length?(f=t,g):f},g.iterations=function(t){return arguments.length?(d=+t,g):d},g.strength=function(t){return arguments.length?(h=\\\"function\\\"==typeof t?t:a(+t),m(),g):h},g.distance=function(t){return arguments.length?(p=\\\"function\\\"==typeof t?t:a(+t),y(),g):p},g},t.forceManyBody=function(){var t,r,n,i,s=a(-30),l=1,c=1/0,u=.81;function p(i){var a,o=t.length,s=e.quadtree(t,f,h).visitAfter(g);for(n=i,a=0;a<o;++a)r=t[a],s.visit(v)}function d(){if(t){var e,r,n=t.length;for(i=new Array(n),e=0;e<n;++e)r=t[e],i[r.index]=+s(r,e,t)}}function g(t){var e,r,n,a,o,s=0,l=0;if(t.length){for(n=a=o=0;o<4;++o)(e=t[o])&&(r=Math.abs(e.value))&&(s+=e.value,l+=r,n+=r*e.x,a+=r*e.y);t.x=n/l,t.y=a/l}else{(e=t).x=e.data.x,e.y=e.data.y;do{s+=i[e.data.index]}while(e=e.next)}t.value=s}function v(t,e,a,s){if(!t.value)return!0;var f=t.x-r.x,h=t.y-r.y,p=s-e,d=f*f+h*h;if(p*p/u<d)return d<c&&(0===f&&(d+=(f=o())*f),0===h&&(d+=(h=o())*h),d<l&&(d=Math.sqrt(l*d)),r.vx+=f*t.value*n/d,r.vy+=h*t.value*n/d),!0;if(!(t.length||d>=c)){(t.data!==r||t.next)&&(0===f&&(d+=(f=o())*f),0===h&&(d+=(h=o())*h),d<l&&(d=Math.sqrt(l*d)));do{t.data!==r&&(p=i[t.data.index]*n/d,r.vx+=f*p,r.vy+=h*p)}while(t=t.next)}}return p.initialize=function(e){t=e,d()},p.strength=function(t){return arguments.length?(s=\\\"function\\\"==typeof t?t:a(+t),d(),p):s},p.distanceMin=function(t){return arguments.length?(l=t*t,p):Math.sqrt(l)},p.distanceMax=function(t){return arguments.length?(c=t*t,p):Math.sqrt(c)},p.theta=function(t){return arguments.length?(u=t*t,p):Math.sqrt(u)},p},t.forceRadial=function(t,e,r){var n,i,o,s=a(.1);function l(t){for(var a=0,s=n.length;a<s;++a){var l=n[a],c=l.x-e||1e-6,u=l.y-r||1e-6,f=Math.sqrt(c*c+u*u),h=(o[a]-f)*i[a]*t/f;l.vx+=c*h,l.vy+=u*h}}function c(){if(n){var e,r=n.length;for(i=new Array(r),o=new Array(r),e=0;e<r;++e)o[e]=+t(n[e],e,n),i[e]=isNaN(o[e])?0:+s(n[e],e,n)}}return\\\"function\\\"!=typeof t&&(t=a(+t)),null==e&&(e=0),null==r&&(r=0),l.initialize=function(t){n=t,c()},l.strength=function(t){return arguments.length?(s=\\\"function\\\"==typeof t?t:a(+t),c(),l):s},l.radius=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:a(+e),c(),l):t},l.x=function(t){return arguments.length?(e=+t,l):e},l.y=function(t){return arguments.length?(r=+t,l):r},l},t.forceSimulation=function(t){var e,a=1,o=.001,s=1-Math.pow(o,1/300),l=0,c=.6,u=r.map(),f=i.timer(g),h=n.dispatch(\\\"tick\\\",\\\"end\\\");function g(){v(),h.call(\\\"tick\\\",e),a<o&&(f.stop(),h.call(\\\"end\\\",e))}function v(){var e,r,n=t.length;for(a+=(l-a)*s,u.each(function(t){t(a)}),e=0;e<n;++e)null==(r=t[e]).fx?r.x+=r.vx*=c:(r.x=r.fx,r.vx=0),null==r.fy?r.y+=r.vy*=c:(r.y=r.fy,r.vy=0)}function m(){for(var e,r=0,n=t.length;r<n;++r){if((e=t[r]).index=r,isNaN(e.x)||isNaN(e.y)){var i=p*Math.sqrt(r),a=r*d;e.x=i*Math.cos(a),e.y=i*Math.sin(a)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function y(e){return e.initialize&&e.initialize(t),e}return null==t&&(t=[]),m(),e={tick:v,restart:function(){return f.restart(g),e},stop:function(){return f.stop(),e},nodes:function(r){return arguments.length?(t=r,m(),u.each(y),e):t},alpha:function(t){return arguments.length?(a=+t,e):a},alphaMin:function(t){return arguments.length?(o=+t,e):o},alphaDecay:function(t){return arguments.length?(s=+t,e):+s},alphaTarget:function(t){return arguments.length?(l=+t,e):l},velocityDecay:function(t){return arguments.length?(c=1-t,e):1-c},force:function(t,r){return arguments.length>1?(null==r?u.remove(t):u.set(t,y(r)),e):u.get(t)},find:function(e,r,n){var i,a,o,s,l,c=0,u=t.length;for(null==n?n=1/0:n*=n,c=0;c<u;++c)(o=(i=e-(s=t[c]).x)*i+(a=r-s.y)*a)<n&&(l=s,n=o);return l},on:function(t,r){return arguments.length>1?(h.on(t,r),e):h.on(t)}}},t.forceX=function(t){var e,r,n,i=a(.1);function o(t){for(var i,a=0,o=e.length;a<o;++a)(i=e[a]).vx+=(n[a]-i.x)*r[a]*t}function s(){if(e){var a,o=e.length;for(r=new Array(o),n=new Array(o),a=0;a<o;++a)r[a]=isNaN(n[a]=+t(e[a],a,e))?0:+i(e[a],a,e)}}return\\\"function\\\"!=typeof t&&(t=a(null==t?0:+t)),o.initialize=function(t){e=t,s()},o.strength=function(t){return arguments.length?(i=\\\"function\\\"==typeof t?t:a(+t),s(),o):i},o.x=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:a(+e),s(),o):t},o},t.forceY=function(t){var e,r,n,i=a(.1);function o(t){for(var i,a=0,o=e.length;a<o;++a)(i=e[a]).vy+=(n[a]-i.y)*r[a]*t}function s(){if(e){var a,o=e.length;for(r=new Array(o),n=new Array(o),a=0;a<o;++a)r[a]=isNaN(n[a]=+t(e[a],a,e))?0:+i(e[a],a,e)}}return\\\"function\\\"!=typeof t&&(t=a(null==t?0:+t)),o.initialize=function(t){e=t,s()},o.strength=function(t){return arguments.length?(i=\\\"function\\\"==typeof t?t:a(+t),s(),o):i},o.y=function(e){return arguments.length?(t=\\\"function\\\"==typeof e?e:a(+e),s(),o):t},o},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?i(r,t(\\\"d3-quadtree\\\"),t(\\\"d3-collection\\\"),t(\\\"d3-dispatch\\\"),t(\\\"d3-timer\\\")):i(n.d3=n.d3||{},n.d3,n.d3,n.d3,n.d3)},{\\\"d3-collection\\\":141,\\\"d3-dispatch\\\":143,\\\"d3-quadtree\\\":146,\\\"d3-timer\\\":147}],145:[function(t,e,r){var n,i;n=this,i=function(t,e){\\\"use strict\\\";function r(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}function n(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],s=i>0?t[i-1]:2*a-o,l=i<e-1?t[i+2]:2*o-a;return r((n-i/e)*e,s,a,o,l)}}function i(t){var e=t.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*e),a=t[(i+e-1)%e],o=t[i%e],s=t[(i+1)%e],l=t[(i+2)%e];return r((n-i/e)*e,a,o,s,l)}}function a(t){return function(){return t}}function o(t,e){return function(r){return t+r*e}}function s(t,e){var r=e-t;return r?o(t,r>180||r<-180?r-360*Math.round(r/360):r):a(isNaN(t)?e:t)}function l(t){return 1==(t=+t)?c:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):a(isNaN(e)?r:e)}}function c(t,e){var r=e-t;return r?o(t,r):a(isNaN(t)?e:t)}var u=function t(r){var n=l(r);function i(t,r){var i=n((t=e.rgb(t)).r,(r=e.rgb(r)).r),a=n(t.g,r.g),o=n(t.b,r.b),s=c(t.opacity,r.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=o(e),t.opacity=s(e),t+\\\"\\\"}}return i.gamma=t,i}(1);function f(t){return function(r){var n,i,a=r.length,o=new Array(a),s=new Array(a),l=new Array(a);for(n=0;n<a;++n)i=e.rgb(r[n]),o[n]=i.r||0,s[n]=i.g||0,l[n]=i.b||0;return o=t(o),s=t(s),l=t(l),i.opacity=1,function(t){return i.r=o(t),i.g=s(t),i.b=l(t),i+\\\"\\\"}}}var h=f(n),p=f(i);function d(t,e){var r,n=e?e.length:0,i=t?Math.min(n,t.length):0,a=new Array(i),o=new Array(n);for(r=0;r<i;++r)a[r]=_(t[r],e[r]);for(;r<n;++r)o[r]=e[r];return function(t){for(r=0;r<i;++r)o[r]=a[r](t);return o}}function g(t,e){var r=new Date;return e-=t=+t,function(n){return r.setTime(t+e*n),r}}function v(t,e){return e-=t=+t,function(r){return t+e*r}}function m(t,e){var r,n={},i={};for(r in null!==t&&\\\"object\\\"==typeof t||(t={}),null!==e&&\\\"object\\\"==typeof e||(e={}),e)r in t?n[r]=_(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}var y=/[-+]?(?:\\\\d+\\\\.?\\\\d*|\\\\.?\\\\d+)(?:[eE][-+]?\\\\d+)?/g,x=new RegExp(y.source,\\\"g\\\");function b(t,e){var r,n,i,a=y.lastIndex=x.lastIndex=0,o=-1,s=[],l=[];for(t+=\\\"\\\",e+=\\\"\\\";(r=y.exec(t))&&(n=x.exec(e));)(i=n.index)>a&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:v(r,n)})),a=x.lastIndex;return a<e.length&&(i=e.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?function(t){return function(e){return t(e)+\\\"\\\"}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join(\\\"\\\")})}function _(t,r){var n,i=typeof r;return null==r||\\\"boolean\\\"===i?a(r):(\\\"number\\\"===i?v:\\\"string\\\"===i?(n=e.color(r))?(r=n,u):b:r instanceof e.color?u:r instanceof Date?g:Array.isArray(r)?d:\\\"function\\\"!=typeof r.valueOf&&\\\"function\\\"!=typeof r.toString||isNaN(r)?m:v)(t,r)}var w,k,M,A,T=180/Math.PI,S={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function E(t,e,r,n,i,a){var o,s,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(s=Math.sqrt(r*r+n*n))&&(r/=s,n/=s,l/=s),t*n<e*r&&(t=-t,e=-e,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*T,skewX:Math.atan(l)*T,scaleX:o,scaleY:s}}function C(t,e,r,n){function i(t){return t.length?t.pop()+\\\" \\\":\\\"\\\"}return function(a,o){var s=[],l=[];return a=t(a),o=t(o),function(t,n,i,a,o,s){if(t!==i||n!==a){var l=o.push(\\\"translate(\\\",null,e,null,r);s.push({i:l-4,x:v(t,i)},{i:l-2,x:v(n,a)})}else(i||a)&&o.push(\\\"translate(\\\"+i+e+a+r)}(a.translateX,a.translateY,o.translateX,o.translateY,s,l),function(t,e,r,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:r.push(i(r)+\\\"rotate(\\\",null,n)-2,x:v(t,e)})):e&&r.push(i(r)+\\\"rotate(\\\"+e+n)}(a.rotate,o.rotate,s,l),function(t,e,r,a){t!==e?a.push({i:r.push(i(r)+\\\"skewX(\\\",null,n)-2,x:v(t,e)}):e&&r.push(i(r)+\\\"skewX(\\\"+e+n)}(a.skewX,o.skewX,s,l),function(t,e,r,n,a,o){if(t!==r||e!==n){var s=a.push(i(a)+\\\"scale(\\\",null,\\\",\\\",null,\\\")\\\");o.push({i:s-4,x:v(t,r)},{i:s-2,x:v(e,n)})}else 1===r&&1===n||a.push(i(a)+\\\"scale(\\\"+r+\\\",\\\"+n+\\\")\\\")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,l),a=o=null,function(t){for(var e,r=-1,n=l.length;++r<n;)s[(e=l[r]).i]=e.x(t);return s.join(\\\"\\\")}}}var L=C(function(t){return\\\"none\\\"===t?S:(w||(w=document.createElement(\\\"DIV\\\"),k=document.documentElement,M=document.defaultView),w.style.transform=t,t=M.getComputedStyle(k.appendChild(w),null).getPropertyValue(\\\"transform\\\"),k.removeChild(w),E(+(t=t.slice(7,-1).split(\\\",\\\"))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},\\\"px, \\\",\\\"px)\\\",\\\"deg)\\\"),z=C(function(t){return null==t?S:(A||(A=document.createElementNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\")),A.setAttribute(\\\"transform\\\",t),(t=A.transform.baseVal.consolidate())?E((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):S)},\\\", \\\",\\\")\\\",\\\")\\\"),O=Math.SQRT2,I=2,P=4,D=1e-12;function R(t){return((t=Math.exp(t))+1/t)/2}function B(t){return function(r,n){var i=t((r=e.hsl(r)).h,(n=e.hsl(n)).h),a=c(r.s,n.s),o=c(r.l,n.l),s=c(r.opacity,n.opacity);return function(t){return r.h=i(t),r.s=a(t),r.l=o(t),r.opacity=s(t),r+\\\"\\\"}}}var F=B(s),N=B(c);function j(t){return function(r,n){var i=t((r=e.hcl(r)).h,(n=e.hcl(n)).h),a=c(r.c,n.c),o=c(r.l,n.l),s=c(r.opacity,n.opacity);return function(t){return r.h=i(t),r.c=a(t),r.l=o(t),r.opacity=s(t),r+\\\"\\\"}}}var V=j(s),U=j(c);function q(t){return function r(n){function i(r,i){var a=t((r=e.cubehelix(r)).h,(i=e.cubehelix(i)).h),o=c(r.s,i.s),s=c(r.l,i.l),l=c(r.opacity,i.opacity);return function(t){return r.h=a(t),r.s=o(t),r.l=s(Math.pow(t,n)),r.opacity=l(t),r+\\\"\\\"}}return n=+n,i.gamma=r,i}(1)}var H=q(s),G=q(c);t.interpolate=_,t.interpolateArray=d,t.interpolateBasis=n,t.interpolateBasisClosed=i,t.interpolateDate=g,t.interpolateDiscrete=function(t){var e=t.length;return function(r){return t[Math.max(0,Math.min(e-1,Math.floor(r*e)))]}},t.interpolateHue=function(t,e){var r=s(+t,+e);return function(t){var e=r(t);return e-360*Math.floor(e/360)}},t.interpolateNumber=v,t.interpolateObject=m,t.interpolateRound=function(t,e){return e-=t=+t,function(r){return Math.round(t+e*r)}},t.interpolateString=b,t.interpolateTransformCss=L,t.interpolateTransformSvg=z,t.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-i,f=l-a,h=u*u+f*f;if(h<D)n=Math.log(c/o)/O,r=function(t){return[i+t*u,a+t*f,o*Math.exp(O*t*n)]};else{var p=Math.sqrt(h),d=(c*c-o*o+P*h)/(2*o*I*p),g=(c*c-o*o-P*h)/(2*c*I*p),v=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(g*g+1)-g);n=(m-v)/O,r=function(t){var e,r=t*n,s=R(v),l=o/(I*p)*(s*(e=O*r+v,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(v));return[i+l*u,a+l*f,o*s/R(O*r+v)]}}return r.duration=1e3*n,r},t.interpolateRgb=u,t.interpolateRgbBasis=h,t.interpolateRgbBasisClosed=p,t.interpolateHsl=F,t.interpolateHslLong=N,t.interpolateLab=function(t,r){var n=c((t=e.lab(t)).l,(r=e.lab(r)).l),i=c(t.a,r.a),a=c(t.b,r.b),o=c(t.opacity,r.opacity);return function(e){return t.l=n(e),t.a=i(e),t.b=a(e),t.opacity=o(e),t+\\\"\\\"}},t.interpolateHcl=V,t.interpolateHclLong=U,t.interpolateCubehelix=H,t.interpolateCubehelixLong=G,t.piecewise=function(t,e){for(var r=0,n=e.length-1,i=e[0],a=new Array(n<0?0:n);r<n;)a[r]=t(i,i=e[++r]);return function(t){var e=Math.max(0,Math.min(n-1,Math.floor(t*=n)));return a[e](t-e)}},t.quantize=function(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t(n/(e-1));return r},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?i(r,t(\\\"d3-color\\\")):i(n.d3=n.d3||{},n.d3)},{\\\"d3-color\\\":142}],146:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";function e(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var i,a,o,s,l,c,u,f,h,p=t._root,d={data:n},g=t._x0,v=t._y0,m=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((c=e>=(a=(g+m)/2))?g=a:m=a,(u=r>=(o=(v+y)/2))?v=o:y=o,i=p,!(p=p[f=u<<1|c]))return i[f]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(c=e>=(a=(g+m)/2))?g=a:m=a,(u=r>=(o=(v+y)/2))?v=o:y=o}while((f=u<<1|c)==(h=(l>=o)<<1|s>=a));return i[h]=p,i[f]=d,t}var r=function(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i};function n(t){return t[0]}function i(t){return t[1]}function a(t,e,r){var a=new o(null==e?n:e,null==r?i:r,NaN,NaN,NaN,NaN);return null==t?a:a.addAll(t)}function o(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function s(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var l=a.prototype=o.prototype;l.copy=function(){var t,e,r=new o(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=s(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var i=0;i<4;++i)(e=n.source[i])&&(e.length?t.push({source:e,target:n.target[i]=new Array(4)}):n.target[i]=s(e));return r},l.add=function(t){var r=+this._x.call(null,t),n=+this._y.call(null,t);return e(this.cover(r,n),r,n,t)},l.addAll=function(t){var r,n,i,a,o=t.length,s=new Array(o),l=new Array(o),c=1/0,u=1/0,f=-1/0,h=-1/0;for(n=0;n<o;++n)isNaN(i=+this._x.call(null,r=t[n]))||isNaN(a=+this._y.call(null,r))||(s[n]=i,l[n]=a,i<c&&(c=i),i>f&&(f=i),a<u&&(u=a),a>h&&(h=a));for(f<c&&(c=this._x0,f=this._x1),h<u&&(u=this._y0,h=this._y1),this.cover(c,u).cover(f,h),n=0;n<o;++n)e(this,s[n],l[n],t[n]);return this},l.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,n=this._y0,i=this._x1,a=this._y1;if(isNaN(r))i=(r=Math.floor(t))+1,a=(n=Math.floor(e))+1;else{if(!(r>t||t>i||n>e||e>a))return this;var o,s,l=i-r,c=this._root;switch(s=(e<(n+a)/2)<<1|t<(r+i)/2){case 0:do{(o=new Array(4))[s]=c,c=o}while(a=n+(l*=2),t>(i=r+l)||e>a);break;case 1:do{(o=new Array(4))[s]=c,c=o}while(a=n+(l*=2),(r=i-l)>t||e>a);break;case 2:do{(o=new Array(4))[s]=c,c=o}while(n=a-(l*=2),t>(i=r+l)||n>e);break;case 3:do{(o=new Array(4))[s]=c,c=o}while(n=a-(l*=2),(r=i-l)>t||n>e)}this._root&&this._root.length&&(this._root=c)}return this._x0=r,this._y0=n,this._x1=i,this._y1=a,this},l.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},l.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},l.find=function(t,e,n){var i,a,o,s,l,c,u,f=this._x0,h=this._y0,p=this._x1,d=this._y1,g=[],v=this._root;for(v&&g.push(new r(v,f,h,p,d)),null==n?n=1/0:(f=t-n,h=e-n,p=t+n,d=e+n,n*=n);c=g.pop();)if(!(!(v=c.node)||(a=c.x0)>p||(o=c.y0)>d||(s=c.x1)<f||(l=c.y1)<h))if(v.length){var m=(a+s)/2,y=(o+l)/2;g.push(new r(v[3],m,y,s,l),new r(v[2],a,y,m,l),new r(v[1],m,o,s,y),new r(v[0],a,o,m,y)),(u=(e>=y)<<1|t>=m)&&(c=g[g.length-1],g[g.length-1]=g[g.length-1-u],g[g.length-1-u]=c)}else{var x=t-+this._x.call(null,v.data),b=e-+this._y.call(null,v.data),_=x*x+b*b;if(_<n){var w=Math.sqrt(n=_);f=t-w,h=e-w,p=t+w,d=e+w,i=v.data}}return i},l.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var e,r,n,i,a,o,s,l,c,u,f,h,p=this._root,d=this._x0,g=this._y0,v=this._x1,m=this._y1;if(!p)return this;if(p.length)for(;;){if((c=a>=(s=(d+v)/2))?d=s:v=s,(u=o>=(l=(g+m)/2))?g=l:m=l,e=p,!(p=p[f=u<<1|c]))return this;if(!p.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(r=e,h=f)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[f]=i:delete e[f],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[h]=p:this._root=p),this):(this._root=i,this)},l.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},l.root=function(){return this._root},l.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},l.visit=function(t){var e,n,i,a,o,s,l=[],c=this._root;for(c&&l.push(new r(c,this._x0,this._y0,this._x1,this._y1));e=l.pop();)if(!t(c=e.node,i=e.x0,a=e.y0,o=e.x1,s=e.y1)&&c.length){var u=(i+o)/2,f=(a+s)/2;(n=c[3])&&l.push(new r(n,u,f,o,s)),(n=c[2])&&l.push(new r(n,i,f,u,s)),(n=c[1])&&l.push(new r(n,u,a,o,f)),(n=c[0])&&l.push(new r(n,i,a,u,f))}return this},l.visitAfter=function(t){var e,n=[],i=[];for(this._root&&n.push(new r(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var a=e.node;if(a.length){var o,s=e.x0,l=e.y0,c=e.x1,u=e.y1,f=(s+c)/2,h=(l+u)/2;(o=a[0])&&n.push(new r(o,s,l,f,h)),(o=a[1])&&n.push(new r(o,f,l,c,h)),(o=a[2])&&n.push(new r(o,s,h,f,u)),(o=a[3])&&n.push(new r(o,f,h,c,u))}i.push(e)}for(;e=i.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},l.x=function(t){return arguments.length?(this._x=t,this):this._x},l.y=function(t){return arguments.length?(this._y=t,this):this._y},t.quadtree=a,Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],147:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";var e,r,n=0,i=0,a=0,o=1e3,s=0,l=0,c=0,u=\\\"object\\\"==typeof performance&&performance.now?performance:Date,f=\\\"object\\\"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function h(){return l||(f(p),l=u.now()+c)}function p(){l=0}function d(){this._call=this._time=this._next=null}function g(t,e,r){var n=new d;return n.restart(t,e,r),n}function v(){h(),++n;for(var t,r=e;r;)(t=l-r._time)>=0&&r._call.call(null,t),r=r._next;--n}function m(){l=(s=u.now())+c,n=i=0;try{v()}finally{n=0,function(){var t,n,i=e,a=1/0;for(;i;)i._call?(a>i._time&&(a=i._time),t=i,i=i._next):(n=i._next,i._next=null,i=t?t._next=n:e=n);r=t,x(a)}(),l=0}}function y(){var t=u.now(),e=t-s;e>o&&(c-=e,s=t)}function x(t){n||(i&&(i=clearTimeout(i)),t-l>24?(t<1/0&&(i=setTimeout(m,t-u.now()-c)),a&&(a=clearInterval(a))):(a||(s=u.now(),a=setInterval(y,o)),n=1,f(m)))}d.prototype=g.prototype={constructor:d,restart:function(t,n,i){if(\\\"function\\\"!=typeof t)throw new TypeError(\\\"callback is not a function\\\");i=(null==i?h():+i)+(null==n?0:+n),this._next||r===this||(r?r._next=this:e=this,r=this),this._call=t,this._time=i,x()},stop:function(){this._call&&(this._call=null,this._time=1/0,x())}};t.now=h,t.timer=g,t.timerFlush=v,t.timeout=function(t,e,r){var n=new d;return e=null==e?0:+e,n.restart(function(r){n.stop(),t(r+e)},e,r),n},t.interval=function(t,e,r){var n=new d,i=e;return null==e?(n.restart(t,e,r),n):(e=+e,r=null==r?h():+r,n.restart(function a(o){o+=i,n.restart(a,i+=e,r),t(o)},e,r),n)},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.d3=n.d3||{})},{}],148:[function(t,e,r){!function(){var t={version:\\\"3.5.17\\\"},r=[].slice,n=function(t){return r.call(t)},i=this.document;function a(t){return t&&(t.ownerDocument||t.document||t).documentElement}function o(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(i)try{n(i.documentElement.childNodes)[0].nodeType}catch(t){n=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),i)try{i.createElement(\\\"DIV\\\").style.setProperty(\\\"opacity\\\",0,\\\"\\\")}catch(t){var s=this.Element.prototype,l=s.setAttribute,c=s.setAttributeNS,u=this.CSSStyleDeclaration.prototype,f=u.setProperty;s.setAttribute=function(t,e){l.call(this,t,e+\\\"\\\")},s.setAttributeNS=function(t,e,r){c.call(this,t,e,r+\\\"\\\")},u.setProperty=function(t,e,r){f.call(this,t,e+\\\"\\\",r)}}function h(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function p(t){return null===t?NaN:+t}function d(t){return!isNaN(t)}function g(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}t.ascending=h,t.descending=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},t.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i<a;)if(null!=(n=t[i])&&n>=n){r=n;break}for(;++i<a;)null!=(n=t[i])&&r>n&&(r=n)}else{for(;++i<a;)if(null!=(n=e.call(t,t[i],i))&&n>=n){r=n;break}for(;++i<a;)null!=(n=e.call(t,t[i],i))&&r>n&&(r=n)}return r},t.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i<a;)if(null!=(n=t[i])&&n>=n){r=n;break}for(;++i<a;)null!=(n=t[i])&&n>r&&(r=n)}else{for(;++i<a;)if(null!=(n=e.call(t,t[i],i))&&n>=n){r=n;break}for(;++i<a;)null!=(n=e.call(t,t[i],i))&&n>r&&(r=n)}return r},t.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a<o;)if(null!=(n=t[a])&&n>=n){r=i=n;break}for(;++a<o;)null!=(n=t[a])&&(r>n&&(r=n),i<n&&(i=n))}else{for(;++a<o;)if(null!=(n=e.call(t,t[a],a))&&n>=n){r=i=n;break}for(;++a<o;)null!=(n=e.call(t,t[a],a))&&(r>n&&(r=n),i<n&&(i=n))}return[r,i]},t.sum=function(t,e){var r,n=0,i=t.length,a=-1;if(1===arguments.length)for(;++a<i;)d(r=+t[a])&&(n+=r);else for(;++a<i;)d(r=+e.call(t,t[a],a))&&(n+=r);return n},t.mean=function(t,e){var r,n=0,i=t.length,a=-1,o=i;if(1===arguments.length)for(;++a<i;)d(r=p(t[a]))?n+=r:--o;else for(;++a<i;)d(r=p(e.call(t,t[a],a)))?n+=r:--o;if(o)return n/o},t.quantile=function(t,e){var r=(t.length-1)*e+1,n=Math.floor(r),i=+t[n-1],a=r-n;return a?i+a*(t[n]-i):i},t.median=function(e,r){var n,i=[],a=e.length,o=-1;if(1===arguments.length)for(;++o<a;)d(n=p(e[o]))&&i.push(n);else for(;++o<a;)d(n=p(r.call(e,e[o],o)))&&i.push(n);if(i.length)return t.quantile(i.sort(h),.5)},t.variance=function(t,e){var r,n,i=t.length,a=0,o=0,s=-1,l=0;if(1===arguments.length)for(;++s<i;)d(r=p(t[s]))&&(o+=(n=r-a)*(r-(a+=n/++l)));else for(;++s<i;)d(r=p(e.call(t,t[s],s)))&&(o+=(n=r-a)*(r-(a+=n/++l)));if(l>1)return o/(l-1)},t.deviation=function(){var e=t.variance.apply(this,arguments);return e?Math.sqrt(e):e};var v=g(h);function m(t){return t.length}t.bisectLeft=v.left,t.bisect=t.bisectRight=v.right,t.bisector=function(t){return g(1===t.length?function(e,r){return h(t(e),r)}:t)},t.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e<r;)i[e]=[n,n=t[++e]];return i},t.transpose=function(e){if(!(a=e.length))return[];for(var r=-1,n=t.min(e,m),i=new Array(n);++r<n;)for(var a,o=-1,s=i[r]=new Array(a);++o<a;)s[o]=e[o][r];return i},t.zip=function(){return t.transpose(arguments)},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},t.merge=function(t){for(var e,r,n,i=t.length,a=-1,o=0;++a<i;)o+=t[a].length;for(r=new Array(o);--i>=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var y=Math.abs;function x(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function b(){this._=Object.create(null)}t.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error(\\\"infinite range\\\");var n,i=[],a=function(t){var e=1;for(;t*e%1;)e*=10;return e}(y(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)<e;)i.push(n/a);return i},t.map=function(t,e){var r=new b;if(t instanceof b)t.forEach(function(t,e){r.set(t,e)});else if(Array.isArray(t)){var n,i=-1,a=t.length;if(1===arguments.length)for(;++i<a;)r.set(i,t[i]);else for(;++i<a;)r.set(e.call(t,n=t[i],i),n)}else for(var o in t)r.set(o,t[o]);return r};var _=\\\"__proto__\\\",w=\\\"\\\\0\\\";function k(t){return(t+=\\\"\\\")===_||t[0]===w?w+t:t}function M(t){return(t+=\\\"\\\")[0]===w?t.slice(1):t}function A(t){return k(t)in this._}function T(t){return(t=k(t))in this._&&delete this._[t]}function S(){var t=[];for(var e in this._)t.push(M(e));return t}function E(){var t=0;for(var e in this._)++t;return t}function C(){for(var t in this._)return!1;return!0}function L(){this._=Object.create(null)}function z(t){return t}function O(t,e,r){return function(){var n=r.apply(e,arguments);return n===e?t:n}}function I(t,e){if(e in t)return e;e=e.charAt(0).toUpperCase()+e.slice(1);for(var r=0,n=P.length;r<n;++r){var i=P[r]+e;if(i in t)return i}}x(b,{has:A,get:function(t){return this._[k(t)]},set:function(t,e){return this._[k(t)]=e},remove:T,keys:S,values:function(){var t=[];for(var e in this._)t.push(this._[e]);return t},entries:function(){var t=[];for(var e in this._)t.push({key:M(e),value:this._[e]});return t},size:E,empty:C,forEach:function(t){for(var e in this._)t.call(this,M(e),this._[e])}}),t.nest=function(){var e,r,n={},i=[],a=[];function o(t,a,s){if(s>=i.length)return r?r.call(n,a):e?a.sort(e):a;for(var l,c,u,f,h=-1,p=a.length,d=i[s++],g=new b;++h<p;)(f=g.get(l=d(c=a[h])))?f.push(c):g.set(l,[c]);return t?(c=t(),u=function(e,r){c.set(e,o(t,r,s))}):(c={},u=function(e,r){c[e]=o(t,r,s)}),g.forEach(u),c}return n.map=function(t,e){return o(e,t,0)},n.entries=function(e){return function t(e,r){if(r>=i.length)return e;var n=[],o=a[r++];return e.forEach(function(e,i){n.push({key:e,values:t(i,r)})}),o?n.sort(function(t,e){return o(t.key,e.key)}):n}(o(t.map,e,0),0)},n.key=function(t){return i.push(t),n},n.sortKeys=function(t){return a[i.length-1]=t,n},n.sortValues=function(t){return e=t,n},n.rollup=function(t){return r=t,n},n},t.set=function(t){var e=new L;if(t)for(var r=0,n=t.length;r<n;++r)e.add(t[r]);return e},x(L,{has:A,add:function(t){return this._[k(t+=\\\"\\\")]=!0,t},remove:T,values:S,size:E,empty:C,forEach:function(t){for(var e in this._)t.call(this,M(e))}}),t.behavior={},t.rebind=function(t,e){for(var r,n=1,i=arguments.length;++n<i;)t[r=arguments[n]]=O(t,e,e[r]);return t};var P=[\\\"webkit\\\",\\\"ms\\\",\\\"moz\\\",\\\"Moz\\\",\\\"o\\\",\\\"O\\\"];function D(){}function R(){}function B(t){var e=[],r=new b;function n(){for(var r,n=e,i=-1,a=n.length;++i<a;)(r=n[i].on)&&r.apply(this,arguments);return t}return n.on=function(n,i){var a,o=r.get(n);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,a=e.indexOf(o)).concat(e.slice(a+1)),r.remove(n)),i&&e.push(r.set(n,{on:i})),t)},n}function F(){t.event.preventDefault()}function N(){for(var e,r=t.event;e=r.sourceEvent;)r=e;return r}function j(e){for(var r=new R,n=0,i=arguments.length;++n<i;)r[arguments[n]]=B(r);return r.of=function(n,i){return function(a){try{var o=a.sourceEvent=t.event;a.target=e,t.event=a,r[a.type].apply(n,i)}finally{t.event=o}}},r}t.dispatch=function(){for(var t=new R,e=-1,r=arguments.length;++e<r;)t[arguments[e]]=B(t);return t},R.prototype.on=function(t,e){var r=t.indexOf(\\\".\\\"),n=\\\"\\\";if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},t.event=null,t.requote=function(t){return t.replace(V,\\\"\\\\\\\\$&\\\")};var V=/[\\\\\\\\\\\\^\\\\$\\\\*\\\\+\\\\?\\\\|\\\\[\\\\]\\\\(\\\\)\\\\.\\\\{\\\\}]/g,U={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function q(t){return U(t,Y),t}var H=function(t,e){return e.querySelector(t)},G=function(t,e){return e.querySelectorAll(t)},W=function(t,e){var r=t.matches||t[I(t,\\\"matchesSelector\\\")];return(W=function(t,e){return r.call(t,e)})(t,e)};\\\"function\\\"==typeof Sizzle&&(H=function(t,e){return Sizzle(t,e)[0]||null},G=Sizzle,W=Sizzle.matchesSelector),t.selection=function(){return t.select(i.documentElement)};var Y=t.selection.prototype=[];function X(t){return\\\"function\\\"==typeof t?t:function(){return H(t,this)}}function Z(t){return\\\"function\\\"==typeof t?t:function(){return G(t,this)}}Y.select=function(t){var e,r,n,i,a=[];t=X(t);for(var o=-1,s=this.length;++o<s;){a.push(e=[]),e.parentNode=(n=this[o]).parentNode;for(var l=-1,c=n.length;++l<c;)(i=n[l])?(e.push(r=t.call(i,i.__data__,l,o)),r&&\\\"__data__\\\"in i&&(r.__data__=i.__data__)):e.push(null)}return q(a)},Y.selectAll=function(t){var e,r,i=[];t=Z(t);for(var a=-1,o=this.length;++a<o;)for(var s=this[a],l=-1,c=s.length;++l<c;)(r=s[l])&&(i.push(e=n(t.call(r,r.__data__,l,a))),e.parentNode=r);return q(i)};var $=\\\"http://www.w3.org/1999/xhtml\\\",J={svg:\\\"http://www.w3.org/2000/svg\\\",xhtml:$,xlink:\\\"http://www.w3.org/1999/xlink\\\",xml:\\\"http://www.w3.org/XML/1998/namespace\\\",xmlns:\\\"http://www.w3.org/2000/xmlns/\\\"};function K(e,r){return e=t.ns.qualify(e),null==r?e.local?function(){this.removeAttributeNS(e.space,e.local)}:function(){this.removeAttribute(e)}:\\\"function\\\"==typeof r?e.local?function(){var t=r.apply(this,arguments);null==t?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,t)}:function(){var t=r.apply(this,arguments);null==t?this.removeAttribute(e):this.setAttribute(e,t)}:e.local?function(){this.setAttributeNS(e.space,e.local,r)}:function(){this.setAttribute(e,r)}}function Q(t){return t.trim().replace(/\\\\s+/g,\\\" \\\")}function tt(e){return new RegExp(\\\"(?:^|\\\\\\\\s+)\\\"+t.requote(e)+\\\"(?:\\\\\\\\s+|$)\\\",\\\"g\\\")}function et(t){return(t+\\\"\\\").trim().split(/^|\\\\s+/)}function rt(t,e){var r=(t=et(t).map(nt)).length;return\\\"function\\\"==typeof e?function(){for(var n=-1,i=e.apply(this,arguments);++n<r;)t[n](this,i)}:function(){for(var n=-1;++n<r;)t[n](this,e)}}function nt(t){var e=tt(t);return function(r,n){if(i=r.classList)return n?i.add(t):i.remove(t);var i=r.getAttribute(\\\"class\\\")||\\\"\\\";n?(e.lastIndex=0,e.test(i)||r.setAttribute(\\\"class\\\",Q(i+\\\" \\\"+t))):r.setAttribute(\\\"class\\\",Q(i.replace(e,\\\" \\\")))}}function it(t,e,r){return null==e?function(){this.style.removeProperty(t)}:\\\"function\\\"==typeof e?function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,r)}:function(){this.style.setProperty(t,e,r)}}function at(t,e){return null==e?function(){delete this[t]}:\\\"function\\\"==typeof e?function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}:function(){this[t]=e}}function ot(e){return\\\"function\\\"==typeof e?e:(e=t.ns.qualify(e)).local?function(){return this.ownerDocument.createElementNS(e.space,e.local)}:function(){var t=this.ownerDocument,r=this.namespaceURI;return r===$&&t.documentElement.namespaceURI===$?t.createElement(e):t.createElementNS(r,e)}}function st(){var t=this.parentNode;t&&t.removeChild(this)}function lt(t){return{__data__:t}}function ct(t){return function(){return W(this,t)}}function ut(t,e){for(var r=0,n=t.length;r<n;r++)for(var i,a=t[r],o=0,s=a.length;o<s;o++)(i=a[o])&&e(i,o,r);return t}function ft(t){return U(t,ht),t}t.ns={prefix:J,qualify:function(t){var e=t.indexOf(\\\":\\\"),r=t;return e>=0&&\\\"xmlns\\\"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),J.hasOwnProperty(r)?{space:J[r],local:t}:t}},Y.attr=function(e,r){if(arguments.length<2){if(\\\"string\\\"==typeof e){var n=this.node();return(e=t.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(r in e)this.each(K(r,e[r]));return this}return this.each(K(e,r))},Y.classed=function(t,e){if(arguments.length<2){if(\\\"string\\\"==typeof t){var r=this.node(),n=(t=et(t)).length,i=-1;if(e=r.classList){for(;++i<n;)if(!e.contains(t[i]))return!1}else for(e=r.getAttribute(\\\"class\\\");++i<n;)if(!tt(t[i]).test(e))return!1;return!0}for(e in t)this.each(rt(e,t[e]));return this}return this.each(rt(t,e))},Y.style=function(t,e,r){var n=arguments.length;if(n<3){if(\\\"string\\\"!=typeof t){for(r in n<2&&(e=\\\"\\\"),t)this.each(it(r,t[r],e));return this}if(n<2){var i=this.node();return o(i).getComputedStyle(i,null).getPropertyValue(t)}r=\\\"\\\"}return this.each(it(t,e,r))},Y.property=function(t,e){if(arguments.length<2){if(\\\"string\\\"==typeof t)return this.node()[t];for(e in t)this.each(at(e,t[e]));return this}return this.each(at(t,e))},Y.text=function(t){return arguments.length?this.each(\\\"function\\\"==typeof t?function(){var e=t.apply(this,arguments);this.textContent=null==e?\\\"\\\":e}:null==t?function(){this.textContent=\\\"\\\"}:function(){this.textContent=t}):this.node().textContent},Y.html=function(t){return arguments.length?this.each(\\\"function\\\"==typeof t?function(){var e=t.apply(this,arguments);this.innerHTML=null==e?\\\"\\\":e}:null==t?function(){this.innerHTML=\\\"\\\"}:function(){this.innerHTML=t}):this.node().innerHTML},Y.append=function(t){return t=ot(t),this.select(function(){return this.appendChild(t.apply(this,arguments))})},Y.insert=function(t,e){return t=ot(t),e=X(e),this.select(function(){return this.insertBefore(t.apply(this,arguments),e.apply(this,arguments)||null)})},Y.remove=function(){return this.each(st)},Y.data=function(t,e){var r,n,i=-1,a=this.length;if(!arguments.length){for(t=new Array(a=(r=this[0]).length);++i<a;)(n=r[i])&&(t[i]=n.__data__);return t}function o(t,r){var n,i,a,o=t.length,u=r.length,f=Math.min(o,u),h=new Array(u),p=new Array(u),d=new Array(o);if(e){var g,v=new b,m=new Array(o);for(n=-1;++n<o;)(i=t[n])&&(v.has(g=e.call(i,i.__data__,n))?d[n]=i:v.set(g,i),m[n]=g);for(n=-1;++n<u;)(i=v.get(g=e.call(r,a=r[n],n)))?!0!==i&&(h[n]=i,i.__data__=a):p[n]=lt(a),v.set(g,!0);for(n=-1;++n<o;)n in m&&!0!==v.get(m[n])&&(d[n]=t[n])}else{for(n=-1;++n<f;)i=t[n],a=r[n],i?(i.__data__=a,h[n]=i):p[n]=lt(a);for(;n<u;++n)p[n]=lt(r[n]);for(;n<o;++n)d[n]=t[n]}p.update=h,p.parentNode=h.parentNode=d.parentNode=t.parentNode,s.push(p),l.push(h),c.push(d)}var s=ft([]),l=q([]),c=q([]);if(\\\"function\\\"==typeof t)for(;++i<a;)o(r=this[i],t.call(r,r.parentNode.__data__,i));else for(;++i<a;)o(r=this[i],t);return l.enter=function(){return s},l.exit=function(){return c},l},Y.datum=function(t){return arguments.length?this.property(\\\"__data__\\\",t):this.property(\\\"__data__\\\")},Y.filter=function(t){var e,r,n,i=[];\\\"function\\\"!=typeof t&&(t=ct(t));for(var a=0,o=this.length;a<o;a++){i.push(e=[]),e.parentNode=(r=this[a]).parentNode;for(var s=0,l=r.length;s<l;s++)(n=r[s])&&t.call(n,n.__data__,s,a)&&e.push(n)}return q(i)},Y.order=function(){for(var t=-1,e=this.length;++t<e;)for(var r,n=this[t],i=n.length-1,a=n[i];--i>=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},Y.sort=function(t){t=function(t){arguments.length||(t=h);return function(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}}.apply(this,arguments);for(var e=-1,r=this.length;++e<r;)this[e].sort(t);return this.order()},Y.each=function(t){return ut(this,function(e,r,n){t.call(e,e.__data__,r,n)})},Y.call=function(t){var e=n(arguments);return t.apply(e[0]=this,e),this},Y.empty=function(){return!this.node()},Y.node=function(){for(var t=0,e=this.length;t<e;t++)for(var r=this[t],n=0,i=r.length;n<i;n++){var a=r[n];if(a)return a}return null},Y.size=function(){var t=0;return ut(this,function(){++t}),t};var ht=[];function pt(e,r,i){var a=\\\"__on\\\"+e,o=e.indexOf(\\\".\\\"),s=gt;o>0&&(e=e.slice(0,o));var l=dt.get(e);function c(){var t=this[a];t&&(this.removeEventListener(e,t,t.$),delete this[a])}return l&&(e=l,s=vt),o?r?function(){var t=s(r,n(arguments));c.call(this),this.addEventListener(e,this[a]=t,t.$=i),t._=r}:c:r?D:function(){var r,n=new RegExp(\\\"^__on([^.]+)\\\"+t.requote(e)+\\\"$\\\");for(var i in this)if(r=i.match(n)){var a=this[i];this.removeEventListener(r[1],a,a.$),delete this[i]}}}t.selection.enter=ft,t.selection.enter.prototype=ht,ht.append=Y.append,ht.empty=Y.empty,ht.node=Y.node,ht.call=Y.call,ht.size=Y.size,ht.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s<l;){n=(i=this[s]).update,o.push(e=[]),e.parentNode=i.parentNode;for(var c=-1,u=i.length;++c<u;)(a=i[c])?(e.push(n[c]=r=t.call(i.parentNode,a.__data__,c,s)),r.__data__=a.__data__):e.push(null)}return q(o)},ht.insert=function(t,e){var r,n,i;return arguments.length<2&&(r=this,e=function(t,e,a){var o,s=r[a].update,l=s.length;for(a!=i&&(i=a,n=0),e>=n&&(n=e+1);!(o=s[n])&&++n<l;);return o}),Y.insert.call(this,t,e)},t.select=function(t){var e;return\\\"string\\\"==typeof t?(e=[H(t,i)]).parentNode=i.documentElement:(e=[t]).parentNode=a(t),q([e])},t.selectAll=function(t){var e;return\\\"string\\\"==typeof t?(e=n(G(t,i))).parentNode=i.documentElement:(e=n(t)).parentNode=null,q([e])},Y.on=function(t,e,r){var n=arguments.length;if(n<3){if(\\\"string\\\"!=typeof t){for(r in n<2&&(e=!1),t)this.each(pt(r,t[r],e));return this}if(n<2)return(n=this.node()[\\\"__on\\\"+t])&&n._;r=!1}return this.each(pt(t,e,r))};var dt=t.map({mouseenter:\\\"mouseover\\\",mouseleave:\\\"mouseout\\\"});function gt(e,r){return function(n){var i=t.event;t.event=n,r[0]=this.__data__;try{e.apply(this,r)}finally{t.event=i}}}function vt(t,e){var r=gt(t,e);return function(t){var e=t.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||r.call(this,t)}}i&&dt.forEach(function(t){\\\"on\\\"+t in i&&dt.remove(t)});var mt,yt=0;function xt(e){var r=\\\".dragsuppress-\\\"+ ++yt,n=\\\"click\\\"+r,i=t.select(o(e)).on(\\\"touchmove\\\"+r,F).on(\\\"dragstart\\\"+r,F).on(\\\"selectstart\\\"+r,F);if(null==mt&&(mt=!(\\\"onselectstart\\\"in e)&&I(e.style,\\\"userSelect\\\")),mt){var s=a(e).style,l=s[mt];s[mt]=\\\"none\\\"}return function(t){if(i.on(r,null),mt&&(s[mt]=l),t){var e=function(){i.on(n,null)};i.on(n,function(){F(),e()},!0),setTimeout(e,0)}}}t.mouse=function(t){return _t(t,N())};var bt=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function _t(e,r){r.changedTouches&&(r=r.changedTouches[0]);var n=e.ownerSVGElement||e;if(n.createSVGPoint){var i=n.createSVGPoint();if(bt<0){var a=o(e);if(a.scrollX||a.scrollY){var s=(n=t.select(\\\"body\\\").append(\\\"svg\\\").style({position:\\\"absolute\\\",top:0,left:0,margin:0,padding:0,border:\\\"none\\\"},\\\"important\\\"))[0][0].getScreenCTM();bt=!(s.f||s.e),n.remove()}}return bt?(i.x=r.pageX,i.y=r.pageY):(i.x=r.clientX,i.y=r.clientY),[(i=i.matrixTransform(e.getScreenCTM().inverse())).x,i.y]}var l=e.getBoundingClientRect();return[r.clientX-l.left-e.clientLeft,r.clientY-l.top-e.clientTop]}function wt(){return t.event.changedTouches[0].identifier}t.touch=function(t,e,r){if(arguments.length<3&&(r=e,e=N().changedTouches),e)for(var n,i=0,a=e.length;i<a;++i)if((n=e[i]).identifier===r)return _t(t,n)},t.behavior.drag=function(){var e=j(a,\\\"drag\\\",\\\"dragstart\\\",\\\"dragend\\\"),r=null,n=s(D,t.mouse,o,\\\"mousemove\\\",\\\"mouseup\\\"),i=s(wt,t.touch,z,\\\"touchmove\\\",\\\"touchend\\\");function a(){this.on(\\\"mousedown.drag\\\",n).on(\\\"touchstart.drag\\\",i)}function s(n,i,a,o,s){return function(){var l,c=t.event.target.correspondingElement||t.event.target,u=this.parentNode,f=e.of(this,arguments),h=0,p=n(),d=\\\".drag\\\"+(null==p?\\\"\\\":\\\"-\\\"+p),g=t.select(a(c)).on(o+d,function(){var t,e,r=i(u,p);if(!r)return;t=r[0]-m[0],e=r[1]-m[1],h|=t|e,m=r,f({type:\\\"drag\\\",x:r[0]+l[0],y:r[1]+l[1],dx:t,dy:e})}).on(s+d,function(){if(!i(u,p))return;g.on(o+d,null).on(s+d,null),v(h),f({type:\\\"dragend\\\"})}),v=xt(c),m=i(u,p);l=r?[(l=r.apply(this,arguments)).x-m[0],l.y-m[1]]:[0,0],f({type:\\\"dragstart\\\"})}}return a.origin=function(t){return arguments.length?(r=t,a):r},t.rebind(a,e,\\\"on\\\")},t.touches=function(t,e){return arguments.length<2&&(e=N().touches),e?n(e).map(function(e){var r=_t(t,e);return r.identifier=e.identifier,r}):[]};var kt=1e-6,Mt=kt*kt,At=Math.PI,Tt=2*At,St=Tt-kt,Et=At/2,Ct=At/180,Lt=180/At;function zt(t){return t>0?1:t<0?-1:0}function Ot(t,e,r){return(e[0]-t[0])*(r[1]-t[1])-(e[1]-t[1])*(r[0]-t[0])}function It(t){return t>1?0:t<-1?At:Math.acos(t)}function Pt(t){return t>1?Et:t<-1?-Et:Math.asin(t)}function Dt(t){return((t=Math.exp(t))+1/t)/2}function Rt(t){return(t=Math.sin(t/2))*t}var Bt=Math.SQRT2;t.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-i,f=l-a,h=u*u+f*f;if(h<Mt)n=Math.log(c/o)/Bt,r=function(t){return[i+t*u,a+t*f,o*Math.exp(Bt*t*n)]};else{var p=Math.sqrt(h),d=(c*c-o*o+4*h)/(2*o*2*p),g=(c*c-o*o-4*h)/(2*c*2*p),v=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(g*g+1)-g);n=(m-v)/Bt,r=function(t){var e,r=t*n,s=Dt(v),l=o/(2*p)*(s*(e=Bt*r+v,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(v));return[i+l*u,a+l*f,o*s/Dt(Bt*r+v)]}}return r.duration=1e3*n,r},t.behavior.zoom=function(){var e,r,n,a,s,l,c,u,f,h={x:0,y:0,k:1},p=[960,500],d=jt,g=250,v=0,m=\\\"mousedown.zoom\\\",y=\\\"mousemove.zoom\\\",x=\\\"mouseup.zoom\\\",b=\\\"touchstart.zoom\\\",_=j(w,\\\"zoomstart\\\",\\\"zoom\\\",\\\"zoomend\\\");function w(t){t.on(m,z).on(Nt+\\\".zoom\\\",I).on(\\\"dblclick.zoom\\\",P).on(b,O)}function k(t){return[(t[0]-h.x)/h.k,(t[1]-h.y)/h.k]}function M(t){h.k=Math.max(d[0],Math.min(d[1],t))}function A(t,e){e=function(t){return[t[0]*h.k+h.x,t[1]*h.k+h.y]}(e),h.x+=t[0]-e[0],h.y+=t[1]-e[1]}function T(e,n,i,a){e.__chart__={x:h.x,y:h.y,k:h.k},M(Math.pow(2,a)),A(r=n,i),e=t.select(e),g>0&&(e=e.transition().duration(g)),e.call(w.event)}function S(){c&&c.domain(l.range().map(function(t){return(t-h.x)/h.k}).map(l.invert)),f&&f.domain(u.range().map(function(t){return(t-h.y)/h.k}).map(u.invert))}function E(t){v++||t({type:\\\"zoomstart\\\"})}function C(t){S(),t({type:\\\"zoom\\\",scale:h.k,translate:[h.x,h.y]})}function L(t){--v||(t({type:\\\"zoomend\\\"}),r=null)}function z(){var e=this,r=_.of(e,arguments),n=0,i=t.select(o(e)).on(y,function(){n=1,A(t.mouse(e),a),C(r)}).on(x,function(){i.on(y,null).on(x,null),s(n),L(r)}),a=k(t.mouse(e)),s=xt(e);fs.call(e),E(r)}function O(){var e,r=this,n=_.of(r,arguments),i={},a=0,o=\\\".zoom-\\\"+t.event.changedTouches[0].identifier,l=\\\"touchmove\\\"+o,c=\\\"touchend\\\"+o,u=[],f=t.select(r),p=xt(r);function d(){var n=t.touches(r);return e=h.k,n.forEach(function(t){t.identifier in i&&(i[t.identifier]=k(t))}),n}function g(){var e=t.event.target;t.select(e).on(l,v).on(c,y),u.push(e);for(var n=t.event.changedTouches,o=0,f=n.length;o<f;++o)i[n[o].identifier]=null;var p=d(),g=Date.now();if(1===p.length){if(g-s<500){var m=p[0];T(r,m,i[m.identifier],Math.floor(Math.log(h.k)/Math.LN2)+1),F()}s=g}else if(p.length>1){m=p[0];var x=p[1],b=m[0]-x[0],_=m[1]-x[1];a=b*b+_*_}}function v(){var o,l,c,u,f=t.touches(r);fs.call(r);for(var h=0,p=f.length;h<p;++h,u=null)if(c=f[h],u=i[c.identifier]){if(l)break;o=c,l=u}if(u){var d=(d=c[0]-o[0])*d+(d=c[1]-o[1])*d,g=a&&Math.sqrt(d/a);o=[(o[0]+c[0])/2,(o[1]+c[1])/2],l=[(l[0]+u[0])/2,(l[1]+u[1])/2],M(g*e)}s=null,A(o,l),C(n)}function y(){if(t.event.touches.length){for(var e=t.event.changedTouches,r=0,a=e.length;r<a;++r)delete i[e[r].identifier];for(var s in i)return void d()}t.selectAll(u).on(o,null),f.on(m,z).on(b,O),p(),L(n)}g(),E(n),f.on(m,null).on(b,g)}function I(){var i=_.of(this,arguments);a?clearTimeout(a):(fs.call(this),e=k(r=n||t.mouse(this)),E(i)),a=setTimeout(function(){a=null,L(i)},50),F(),M(Math.pow(2,.002*Ft())*h.k),A(r,e),C(i)}function P(){var e=t.mouse(this),r=Math.log(h.k)/Math.LN2;T(this,e,k(e),t.event.shiftKey?Math.ceil(r)-1:Math.floor(r)+1)}return Nt||(Nt=\\\"onwheel\\\"in i?(Ft=function(){return-t.event.deltaY*(t.event.deltaMode?120:1)},\\\"wheel\\\"):\\\"onmousewheel\\\"in i?(Ft=function(){return t.event.wheelDelta},\\\"mousewheel\\\"):(Ft=function(){return-t.event.detail},\\\"MozMousePixelScroll\\\")),w.event=function(e){e.each(function(){var e=_.of(this,arguments),n=h;ds?t.select(this).transition().each(\\\"start.zoom\\\",function(){h=this.__chart__||{x:0,y:0,k:1},E(e)}).tween(\\\"zoom:zoom\\\",function(){var i=p[0],a=p[1],o=r?r[0]:i/2,s=r?r[1]:a/2,l=t.interpolateZoom([(o-h.x)/h.k,(s-h.y)/h.k,i/h.k],[(o-n.x)/n.k,(s-n.y)/n.k,i/n.k]);return function(t){var r=l(t),n=i/r[2];this.__chart__=h={x:o-r[0]*n,y:s-r[1]*n,k:n},C(e)}}).each(\\\"interrupt.zoom\\\",function(){L(e)}).each(\\\"end.zoom\\\",function(){L(e)}):(this.__chart__=h,E(e),C(e),L(e))})},w.translate=function(t){return arguments.length?(h={x:+t[0],y:+t[1],k:h.k},S(),w):[h.x,h.y]},w.scale=function(t){return arguments.length?(h={x:h.x,y:h.y,k:null},M(+t),S(),w):h.k},w.scaleExtent=function(t){return arguments.length?(d=null==t?jt:[+t[0],+t[1]],w):d},w.center=function(t){return arguments.length?(n=t&&[+t[0],+t[1]],w):n},w.size=function(t){return arguments.length?(p=t&&[+t[0],+t[1]],w):p},w.duration=function(t){return arguments.length?(g=+t,w):g},w.x=function(t){return arguments.length?(c=t,l=t.copy(),h={x:0,y:0,k:1},w):c},w.y=function(t){return arguments.length?(f=t,u=t.copy(),h={x:0,y:0,k:1},w):f},t.rebind(w,_,\\\"on\\\")};var Ft,Nt,jt=[0,1/0];function Vt(){}function Ut(t,e,r){return this instanceof Ut?(this.h=+t,this.s=+e,void(this.l=+r)):arguments.length<2?t instanceof Ut?new Ut(t.h,t.s,t.l):ue(\\\"\\\"+t,fe,Ut):new Ut(t,e,r)}t.color=Vt,Vt.prototype.toString=function(){return this.rgb()+\\\"\\\"},t.hsl=Ut;var qt=Ut.prototype=new Vt;function Ht(t,e,r){var n,i;function a(t){return Math.round(255*function(t){return t>360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)?0:e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ae(a(t+120),a(t),a(t-120))}function Gt(e,r,n){return this instanceof Gt?(this.h=+e,this.c=+r,void(this.l=+n)):arguments.length<2?e instanceof Gt?new Gt(e.h,e.c,e.l):ee(e instanceof Xt?e.l:(e=he((e=t.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Gt(e,r,n)}qt.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,this.l/t)},qt.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,t*this.l)},qt.rgb=function(){return Ht(this.h,this.s,this.l)},t.hcl=Gt;var Wt=Gt.prototype=new Vt;function Yt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Xt(r,Math.cos(t*=Ct)*e,Math.sin(t)*e)}function Xt(t,e,r){return this instanceof Xt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Xt?new Xt(t.l,t.a,t.b):t instanceof Gt?Yt(t.h,t.c,t.l):he((t=ae(t)).r,t.g,t.b):new Xt(t,e,r)}Wt.brighter=function(t){return new Gt(this.h,this.c,Math.min(100,this.l+Zt*(arguments.length?t:1)))},Wt.darker=function(t){return new Gt(this.h,this.c,Math.max(0,this.l-Zt*(arguments.length?t:1)))},Wt.rgb=function(){return Yt(this.h,this.c,this.l).rgb()},t.lab=Xt;var Zt=18,$t=.95047,Jt=1,Kt=1.08883,Qt=Xt.prototype=new Vt;function te(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ae(ie(3.2404542*(i=re(i)*$t)-1.5371385*(n=re(n)*Jt)-.4985314*(a=re(a)*Kt)),ie(-.969266*i+1.8760108*n+.041556*a),ie(.0556434*i-.2040259*n+1.0572252*a))}function ee(t,e,r){return t>0?new Gt(Math.atan2(r,e)*Lt,Math.sqrt(e*e+r*r),t):new Gt(NaN,NaN,t)}function re(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ne(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ie(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ae(t,e,r){return this instanceof ae?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ae?new ae(t.r,t.g,t.b):ue(\\\"\\\"+t,ae,Ht):new ae(t,e,r)}function oe(t){return new ae(t>>16,t>>8&255,255&t)}function se(t){return oe(t)+\\\"\\\"}Qt.brighter=function(t){return new Xt(Math.min(100,this.l+Zt*(arguments.length?t:1)),this.a,this.b)},Qt.darker=function(t){return new Xt(Math.max(0,this.l-Zt*(arguments.length?t:1)),this.a,this.b)},Qt.rgb=function(){return te(this.l,this.a,this.b)},t.rgb=ae;var le=ae.prototype=new Vt;function ce(t){return t<16?\\\"0\\\"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function ue(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\\\\((.*)\\\\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(\\\",\\\"),n[1]){case\\\"hsl\\\":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case\\\"rgb\\\":return e(de(i[0]),de(i[1]),de(i[2]))}return(a=ge.get(t))?e(a.r,a.g,a.b):(null==t||\\\"#\\\"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function fe(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e<r?6:0):e==o?(r-t)/s+2:(t-e)/s+4,n*=60):(n=NaN,i=l>0&&l<1?0:n),new Ut(n,i,l)}function he(t,e,r){var n=ne((.4124564*(t=pe(t))+.3575761*(e=pe(e))+.1804375*(r=pe(r)))/$t),i=ne((.2126729*t+.7151522*e+.072175*r)/Jt);return Xt(116*i-16,500*(n-i),200*(i-ne((.0193339*t+.119192*e+.9503041*r)/Kt)))}function pe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function de(t){var e=parseFloat(t);return\\\"%\\\"===t.charAt(t.length-1)?Math.round(2.55*e):e}le.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e<i&&(e=i),r&&r<i&&(r=i),n&&n<i&&(n=i),new ae(Math.min(255,e/t),Math.min(255,r/t),Math.min(255,n/t))):new ae(i,i,i)},le.darker=function(t){return new ae((t=Math.pow(.7,arguments.length?t:1))*this.r,t*this.g,t*this.b)},le.hsl=function(){return fe(this.r,this.g,this.b)},le.toString=function(){return\\\"#\\\"+ce(this.r)+ce(this.g)+ce(this.b)};var ge=t.map({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 ve(t){return\\\"function\\\"==typeof t?t:function(){return t}}function me(t){return function(e,r,n){return 2===arguments.length&&\\\"function\\\"==typeof r&&(n=r,r=null),ye(e,r,t,n)}}function ye(e,r,i,a){var o={},s=t.dispatch(\\\"beforesend\\\",\\\"progress\\\",\\\"load\\\",\\\"error\\\"),l={},c=new XMLHttpRequest,u=null;function f(){var t,e=c.status;if(!e&&function(t){var e=t.responseType;return e&&\\\"text\\\"!==e?t.response:t.responseText}(c)||e>=200&&e<300||304===e){try{t=i.call(o,c)}catch(t){return void s.error.call(o,t)}s.load.call(o,t)}else s.error.call(o,c)}return!this.XDomainRequest||\\\"withCredentials\\\"in c||!/^(http(s)?:)?\\\\/\\\\//.test(e)||(c=new XDomainRequest),\\\"onload\\\"in c?c.onload=c.onerror=f:c.onreadystatechange=function(){c.readyState>3&&f()},c.onprogress=function(e){var r=t.event;t.event=e;try{s.progress.call(o,c)}finally{t.event=r}},o.header=function(t,e){return t=(t+\\\"\\\").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+\\\"\\\",o)},o.mimeType=function(t){return arguments.length?(r=null==t?null:t+\\\"\\\",o):r},o.responseType=function(t){return arguments.length?(u=t,o):u},o.response=function(t){return i=t,o},[\\\"get\\\",\\\"post\\\"].forEach(function(t){o[t]=function(){return o.send.apply(o,[t].concat(n(arguments)))}}),o.send=function(t,n,i){if(2===arguments.length&&\\\"function\\\"==typeof n&&(i=n,n=null),c.open(t,e,!0),null==r||\\\"accept\\\"in l||(l.accept=r+\\\",*/*\\\"),c.setRequestHeader)for(var a in l)c.setRequestHeader(a,l[a]);return null!=r&&c.overrideMimeType&&c.overrideMimeType(r),null!=u&&(c.responseType=u),null!=i&&o.on(\\\"error\\\",i).on(\\\"load\\\",function(t){i(null,t)}),s.beforesend.call(o,c),c.send(null==n?null:n),o},o.abort=function(){return c.abort(),o},t.rebind(o,s,\\\"on\\\"),null==a?o:o.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(a))}ge.forEach(function(t,e){ge.set(t,oe(e))}),t.functor=ve,t.xhr=me(z),t.dsv=function(t,e){var r=new RegExp('[\\\"'+t+\\\"\\\\n]\\\"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=ye(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'\\\"'+t.replace(/\\\\\\\"/g,'\\\"\\\"')+'\\\"':t}return i.parse=function(t,e){var r;return i.parseRows(t,function(t,n){if(r)return r(t,n-1);var i=new Function(\\\"d\\\",\\\"return {\\\"+t.map(function(t,e){return JSON.stringify(t)+\\\": d[\\\"+e+\\\"]\\\"}).join(\\\",\\\")+\\\"}\\\");r=e?function(t,r){return e(i(t),r)}:i})},i.parseRows=function(t,e){var r,i,a={},o={},s=[],l=t.length,c=0,u=0;function f(){if(c>=l)return o;if(i)return i=!1,a;var e=c;if(34===t.charCodeAt(e)){for(var r=e;r++<l;)if(34===t.charCodeAt(r)){if(34!==t.charCodeAt(r+1))break;++r}return c=r+2,13===(s=t.charCodeAt(r+1))?(i=!0,10===t.charCodeAt(r+2)&&++c):10===s&&(i=!0),t.slice(e+1,r).replace(/\\\"\\\"/g,'\\\"')}for(;c<l;){var s,u=1;if(10===(s=t.charCodeAt(c++)))i=!0;else if(13===s)i=!0,10===t.charCodeAt(c)&&(++c,++u);else if(s!==n)continue;return t.slice(e,c-u)}return t.slice(e)}for(;(r=f())!==o;){for(var h=[];r!==a&&r!==o;)h.push(r),r=f();e&&null==(h=e(h,u++))||s.push(h)}return s},i.format=function(e){if(Array.isArray(e[0]))return i.formatRows(e);var r=new L,n=[];return e.forEach(function(t){for(var e in t)r.has(e)||n.push(r.add(e))}),[n.map(l).join(t)].concat(e.map(function(e){return n.map(function(t){return l(e[t])}).join(t)})).join(\\\"\\\\n\\\")},i.formatRows=function(t){return t.map(s).join(\\\"\\\\n\\\")},i},t.csv=t.dsv(\\\",\\\",\\\"text/csv\\\"),t.tsv=t.dsv(\\\"\\\\t\\\",\\\"text/tab-separated-values\\\");var xe,be,_e,we,ke=this[I(this,\\\"requestAnimationFrame\\\")]||function(t){setTimeout(t,17)};function Me(t,e,r){var n=arguments.length;n<2&&(e=0),n<3&&(r=Date.now());var i={c:t,t:r+e,n:null};return be?be.n=i:xe=i,be=i,_e||(we=clearTimeout(we),_e=1,ke(Ae)),i}function Ae(){var t=Te(),e=Se()-t;e>24?(isFinite(e)&&(clearTimeout(we),we=setTimeout(Ae,e)),_e=0):(_e=1,ke(Ae))}function Te(){for(var t=Date.now(),e=xe;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Se(){for(var t,e=xe,r=1/0;e;)e.c?(e.t<r&&(r=e.t),e=(t=e).n):e=t?t.n=e.n:xe=e.n;return be=t,r}function Ee(t,e){return e-(t?Math.ceil(Math.log(t)/Math.LN10):1)}t.timer=function(){Me.apply(this,arguments)},t.timer.flush=function(){Te(),Se()},t.round=function(t,e){return e?Math.round(t*(e=Math.pow(10,e)))/e:Math.round(t)};var Ce=[\\\"y\\\",\\\"z\\\",\\\"a\\\",\\\"f\\\",\\\"p\\\",\\\"n\\\",\\\"\\\\xb5\\\",\\\"m\\\",\\\"\\\",\\\"k\\\",\\\"M\\\",\\\"G\\\",\\\"T\\\",\\\"P\\\",\\\"E\\\",\\\"Z\\\",\\\"Y\\\"].map(function(t,e){var r=Math.pow(10,3*y(8-e));return{scale:e>8?function(t){return t/r}:function(t){return t*r},symbol:t}});t.formatPrefix=function(e,r){var n=0;return(e=+e)&&(e<0&&(e*=-1),r&&(e=t.round(e,Ee(e,r))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),Ce[8+n/3]};var Le=/(?:([^{])?([<>=^]))?([+\\\\- ])?([$#])?(0)?(\\\\d+)?(,)?(\\\\.-?\\\\d+)?([a-z%])?/i,ze=t.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(e,r){return(e=t.round(e,Ee(e,r))).toFixed(Math.max(0,Math.min(20,Ee(e*(1+1e-15),r))))}});function Oe(t){return t+\\\"\\\"}var Ie=t.time={},Pe=Date;function De(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}De.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Re.setUTCDate.apply(this._,arguments)},setDay:function(){Re.setUTCDay.apply(this._,arguments)},setFullYear:function(){Re.setUTCFullYear.apply(this._,arguments)},setHours:function(){Re.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Re.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Re.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Re.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Re.setUTCSeconds.apply(this._,arguments)},setTime:function(){Re.setTime.apply(this._,arguments)}};var Re=Date.prototype;function Be(t,e,r){function n(e){var r=t(e),n=a(r,1);return e-r<n-e?r:n}function i(r){return e(r=t(new Pe(r-1)),1),r}function a(t,r){return e(t=new Pe(+t),r),t}function o(t,n,a){var o=i(t),s=[];if(a>1)for(;o<n;)r(o)%a||s.push(new Date(+o)),e(o,1);else for(;o<n;)s.push(new Date(+o)),e(o,1);return s}t.floor=t,t.round=n,t.ceil=i,t.offset=a,t.range=o;var s=t.utc=Fe(t);return s.floor=s,s.round=Fe(n),s.ceil=Fe(i),s.offset=Fe(a),s.range=function(t,e,r){try{Pe=De;var n=new De;return n._=t,o(n,e,r)}finally{Pe=Date}},t}function Fe(t){return function(e,r){try{Pe=De;var n=new De;return n._=e,t(n,r)._}finally{Pe=Date}}}Ie.year=Be(function(t){return(t=Ie.day(t)).setMonth(0,1),t},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t){return t.getFullYear()}),Ie.years=Ie.year.range,Ie.years.utc=Ie.year.utc.range,Ie.day=Be(function(t){var e=new Pe(2e3,0);return e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),e},function(t,e){t.setDate(t.getDate()+e)},function(t){return t.getDate()-1}),Ie.days=Ie.day.range,Ie.days.utc=Ie.day.utc.range,Ie.dayOfYear=function(t){var e=Ie.year(t);return Math.floor((t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5)},[\\\"sunday\\\",\\\"monday\\\",\\\"tuesday\\\",\\\"wednesday\\\",\\\"thursday\\\",\\\"friday\\\",\\\"saturday\\\"].forEach(function(t,e){e=7-e;var r=Ie[t]=Be(function(t){return(t=Ie.day(t)).setDate(t.getDate()-(t.getDay()+e)%7),t},function(t,e){t.setDate(t.getDate()+7*Math.floor(e))},function(t){var r=Ie.year(t).getDay();return Math.floor((Ie.dayOfYear(t)+(r+e)%7)/7)-(r!==e)});Ie[t+\\\"s\\\"]=r.range,Ie[t+\\\"s\\\"].utc=r.utc.range,Ie[t+\\\"OfYear\\\"]=function(t){var r=Ie.year(t).getDay();return Math.floor((Ie.dayOfYear(t)+(r+e)%7)/7)}}),Ie.week=Ie.sunday,Ie.weeks=Ie.sunday.range,Ie.weeks.utc=Ie.sunday.utc.range,Ie.weekOfYear=Ie.sundayOfYear;var Ne={\\\"-\\\":\\\"\\\",_:\\\" \\\",0:\\\"0\\\"},je=/^\\\\s*\\\\d+/,Ve=/^%/;function Ue(t,e,r){var n=t<0?\\\"-\\\":\\\"\\\",i=(n?-t:t)+\\\"\\\",a=i.length;return n+(a<r?new Array(r-a+1).join(e)+i:i)}function qe(e){return new RegExp(\\\"^(?:\\\"+e.map(t.requote).join(\\\"|\\\")+\\\")\\\",\\\"i\\\")}function He(t){for(var e=new b,r=-1,n=t.length;++r<n;)e.set(t[r].toLowerCase(),r);return e}function Ge(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function We(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r));return n?(t.U=+n[0],r+n[0].length):-1}function Ye(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r));return n?(t.W=+n[0],r+n[0].length):-1}function Xe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function Ze(t,e,r){je.lastIndex=0;var n,i=je.exec(e.slice(r,r+2));return i?(t.y=(n=+i[0])+(n>68?1900:2e3),r+i[0].length):-1}function $e(t,e,r){return/^[+-]\\\\d{4}$/.test(e=e.slice(r,r+5))?(t.Z=-e,r+5):-1}function Je(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Ke(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function Qe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.j=+n[0],r+n[0].length):-1}function tr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function er(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function rr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function nr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ir(t){var e=t.getTimezoneOffset(),r=e>0?\\\"-\\\":\\\"+\\\",n=y(e)/60|0,i=y(e)%60;return r+Ue(n,\\\"0\\\",2)+Ue(i,\\\"0\\\",2)}function ar(t,e,r){Ve.lastIndex=0;var n=Ve.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function or(t){for(var e=t.length,r=-1;++r<e;)t[r][0]=this(t[r][0]);return function(e){for(var r=0,n=t[r];!n[1](e);)n=t[++r];return n[0](e)}}t.locale=function(e){return{numberFormat:function(e){var r=e.decimal,n=e.thousands,i=e.grouping,a=e.currency,o=i&&n?function(t,e){for(var r=t.length,a=[],o=0,s=i[0],l=0;r>0&&s>0&&(l+s+1>e&&(s=Math.max(1,e-l)),a.push(t.substring(r-=s,r+s)),!((l+=s+1)>e));)s=i[o=(o+1)%i.length];return a.reverse().join(n)}:z;return function(e){var n=Le.exec(e),i=n[1]||\\\" \\\",s=n[2]||\\\">\\\",l=n[3]||\\\"-\\\",c=n[4]||\\\"\\\",u=n[5],f=+n[6],h=n[7],p=n[8],d=n[9],g=1,v=\\\"\\\",m=\\\"\\\",y=!1,x=!0;switch(p&&(p=+p.substring(1)),(u||\\\"0\\\"===i&&\\\"=\\\"===s)&&(u=i=\\\"0\\\",s=\\\"=\\\"),d){case\\\"n\\\":h=!0,d=\\\"g\\\";break;case\\\"%\\\":g=100,m=\\\"%\\\",d=\\\"f\\\";break;case\\\"p\\\":g=100,m=\\\"%\\\",d=\\\"r\\\";break;case\\\"b\\\":case\\\"o\\\":case\\\"x\\\":case\\\"X\\\":\\\"#\\\"===c&&(v=\\\"0\\\"+d.toLowerCase());case\\\"c\\\":x=!1;case\\\"d\\\":y=!0,p=0;break;case\\\"s\\\":g=-1,d=\\\"r\\\"}\\\"$\\\"===c&&(v=a[0],m=a[1]),\\\"r\\\"!=d||p||(d=\\\"g\\\"),null!=p&&(\\\"g\\\"==d?p=Math.max(1,Math.min(21,p)):\\\"e\\\"!=d&&\\\"f\\\"!=d||(p=Math.max(0,Math.min(20,p)))),d=ze.get(d)||Oe;var b=u&&h;return function(e){var n=m;if(y&&e%1)return\\\"\\\";var a=e<0||0===e&&1/e<0?(e=-e,\\\"-\\\"):\\\"-\\\"===l?\\\"\\\":l;if(g<0){var c=t.formatPrefix(e,p);e=c.scale(e),n=c.symbol+m}else e*=g;var _,w,k=(e=d(e,p)).lastIndexOf(\\\".\\\");if(k<0){var M=x?e.lastIndexOf(\\\"e\\\"):-1;M<0?(_=e,w=\\\"\\\"):(_=e.substring(0,M),w=e.substring(M))}else _=e.substring(0,k),w=r+e.substring(k+1);!u&&h&&(_=o(_,1/0));var A=v.length+_.length+w.length+(b?0:a.length),T=A<f?new Array(A=f-A+1).join(i):\\\"\\\";return b&&(_=o(T+_,T.length?f-w.length:1/0)),a+=v,e=_+w,(\\\"<\\\"===s?a+e+T:\\\">\\\"===s?T+a+e:\\\"^\\\"===s?T.substring(0,A>>=1)+a+e+T.substring(A):a+(b?e:T+e))+n}}}(e),timeFormat:function(e){var r=e.dateTime,n=e.date,i=e.time,a=e.periods,o=e.days,s=e.shortDays,l=e.months,c=e.shortMonths;function u(t){var e=t.length;function r(r){for(var n,i,a,o=[],s=-1,l=0;++s<e;)37===t.charCodeAt(s)&&(o.push(t.slice(l,s)),null!=(i=Ne[n=t.charAt(++s)])&&(n=t.charAt(++s)),(a=_[n])&&(n=a(r,null==i?\\\"e\\\"===n?\\\" \\\":\\\"0\\\":i)),o.push(n),l=s+1);return o.push(t.slice(l,s)),o.join(\\\"\\\")}return r.parse=function(e){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null};if(f(r,t,e,0)!=e.length)return null;\\\"p\\\"in r&&(r.H=r.H%12+12*r.p);var n=null!=r.Z&&Pe!==De,i=new(n?De:Pe);return\\\"j\\\"in r?i.setFullYear(r.y,0,r.j):\\\"W\\\"in r||\\\"U\\\"in r?(\\\"w\\\"in r||(r.w=\\\"W\\\"in r?1:0),i.setFullYear(r.y,0,1),i.setFullYear(r.y,0,\\\"W\\\"in r?(r.w+6)%7+7*r.W-(i.getDay()+5)%7:r.w+7*r.U-(i.getDay()+6)%7)):i.setFullYear(r.y,r.m,r.d),i.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),n?i._:i},r.toString=function(){return t},r}function f(t,e,r,n){for(var i,a,o,s=0,l=e.length,c=r.length;s<l;){if(n>=c)return-1;if(37===(i=e.charCodeAt(s++))){if(o=e.charAt(s++),!(a=w[o in Ne?e.charAt(s++):o])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}u.utc=function(t){var e=u(t);function r(t){try{var r=new(Pe=De);return r._=t,e(r)}finally{Pe=Date}}return r.parse=function(t){try{Pe=De;var r=e.parse(t);return r&&r._}finally{Pe=Date}},r.toString=e.toString,r},u.multi=u.utc.multi=or;var h=t.map(),p=qe(o),d=He(o),g=qe(s),v=He(s),m=qe(l),y=He(l),x=qe(c),b=He(c);a.forEach(function(t,e){h.set(t.toLowerCase(),e)});var _={a:function(t){return s[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return l[t.getMonth()]},c:u(r),d:function(t,e){return Ue(t.getDate(),e,2)},e:function(t,e){return Ue(t.getDate(),e,2)},H:function(t,e){return Ue(t.getHours(),e,2)},I:function(t,e){return Ue(t.getHours()%12||12,e,2)},j:function(t,e){return Ue(1+Ie.dayOfYear(t),e,3)},L:function(t,e){return Ue(t.getMilliseconds(),e,3)},m:function(t,e){return Ue(t.getMonth()+1,e,2)},M:function(t,e){return Ue(t.getMinutes(),e,2)},p:function(t){return a[+(t.getHours()>=12)]},S:function(t,e){return Ue(t.getSeconds(),e,2)},U:function(t,e){return Ue(Ie.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return Ue(Ie.mondayOfYear(t),e,2)},x:u(n),X:u(i),y:function(t,e){return Ue(t.getFullYear()%100,e,2)},Y:function(t,e){return Ue(t.getFullYear()%1e4,e,4)},Z:ir,\\\"%\\\":function(){return\\\"%\\\"}},w={a:function(t,e,r){g.lastIndex=0;var n=g.exec(e.slice(r));return n?(t.w=v.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(t,e,r){p.lastIndex=0;var n=p.exec(e.slice(r));return n?(t.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(t,e,r){x.lastIndex=0;var n=x.exec(e.slice(r));return n?(t.m=b.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(t,e,r){m.lastIndex=0;var n=m.exec(e.slice(r));return n?(t.m=y.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(t,e,r){return f(t,_.c.toString(),e,r)},d:Ke,e:Ke,H:tr,I:tr,j:Qe,L:nr,m:Je,M:er,p:function(t,e,r){var n=h.get(e.slice(r,r+=2).toLowerCase());return null==n?-1:(t.p=n,r)},S:rr,U:We,w:Ge,W:Ye,x:function(t,e,r){return f(t,_.x.toString(),e,r)},X:function(t,e,r){return f(t,_.X.toString(),e,r)},y:Ze,Y:Xe,Z:$e,\\\"%\\\":ar};return u}(e)}};var sr=t.locale({decimal:\\\".\\\",thousands:\\\",\\\",grouping:[3],currency:[\\\"$\\\",\\\"\\\"],dateTime:\\\"%a %b %e %X %Y\\\",date:\\\"%m/%d/%Y\\\",time:\\\"%H:%M:%S\\\",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 lr(){}t.format=sr.numberFormat,t.geo={},lr.prototype={s:0,t:0,add:function(t){ur(t,this.t,cr),ur(cr.s,this.s,this),this.s?this.t+=cr.t:this.s=cr.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var cr=new lr;function ur(t,e,r){var n=r.s=t+e,i=n-t,a=n-i;r.t=t-a+(e-i)}function fr(t,e){t&&pr.hasOwnProperty(t.type)&&pr[t.type](t,e)}t.geo.stream=function(t,e){t&&hr.hasOwnProperty(t.type)?hr[t.type](t,e):fr(t,e)};var hr={Feature:function(t,e){fr(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n<i;)fr(r[n].geometry,e)}},pr={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)t=r[n],e.point(t[0],t[1],t[2])},LineString:function(t,e){dr(t.coordinates,e,0)},MultiLineString:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)dr(r[n],e,0)},Polygon:function(t,e){gr(t.coordinates,e)},MultiPolygon:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)gr(r[n],e)},GeometryCollection:function(t,e){for(var r=t.geometries,n=-1,i=r.length;++n<i;)fr(r[n],e)}};function dr(t,e,r){var n,i=-1,a=t.length-r;for(e.lineStart();++i<a;)n=t[i],e.point(n[0],n[1],n[2]);e.lineEnd()}function gr(t,e){var r=-1,n=t.length;for(e.polygonStart();++r<n;)dr(t[r],e,1);e.polygonEnd()}t.geo.area=function(e){return vr=0,t.geo.stream(e,Cr),vr};var vr,mr,yr,xr,br,_r,wr,kr,Mr,Ar,Tr,Sr,Er=new lr,Cr={sphere:function(){vr+=4*At},point:D,lineStart:D,lineEnd:D,polygonStart:function(){Er.reset(),Cr.lineStart=Lr},polygonEnd:function(){var t=2*Er;vr+=t<0?4*At+t:t,Cr.lineStart=Cr.lineEnd=Cr.point=D}};function Lr(){var t,e,r,n,i;function a(t,e){e=e*Ct/2+At/4;var a=(t*=Ct)-r,o=a>=0?1:-1,s=o*a,l=Math.cos(e),c=Math.sin(e),u=i*c,f=n*l+u*Math.cos(s),h=u*o*Math.sin(s);Er.add(Math.atan2(h,f)),r=t,n=l,i=c}Cr.point=function(o,s){Cr.point=a,r=(t=o)*Ct,n=Math.cos(s=(e=s)*Ct/2+At/4),i=Math.sin(s)},Cr.lineEnd=function(){a(t,e)}}function zr(t){var e=t[0],r=t[1],n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}function Or(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Ir(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Pr(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Dr(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Rr(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function Br(t){return[Math.atan2(t[1],t[0]),Pt(t[2])]}function Fr(t,e){return y(t[0]-e[0])<kt&&y(t[1]-e[1])<kt}t.geo.bounds=function(){var e,r,n,i,a,o,s,l,c,u,f,h={point:p,lineStart:g,lineEnd:v,polygonStart:function(){h.point=m,h.lineStart=x,h.lineEnd=b,c=0,Cr.polygonStart()},polygonEnd:function(){Cr.polygonEnd(),h.point=p,h.lineStart=g,h.lineEnd=v,Er<0?(e=-(n=180),r=-(i=90)):c>kt?i=90:c<-kt&&(r=-90),f[0]=e,f[1]=n}};function p(t,a){u.push(f=[e=t,n=t]),a<r&&(r=a),a>i&&(i=a)}function d(t,o){var s=zr([t*Ct,o*Ct]);if(l){var c=Ir(l,s),u=Ir([c[1],-c[0],0],c);Rr(u),u=Br(u);var f=t-a,h=f>0?1:-1,d=u[0]*Lt*h,g=y(f)>180;if(g^(h*a<d&&d<h*t))(v=u[1]*Lt)>i&&(i=v);else if(g^(h*a<(d=(d+360)%360-180)&&d<h*t)){var v;(v=-u[1]*Lt)<r&&(r=v)}else o<r&&(r=o),o>i&&(i=o);g?t<a?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t):n>=e?(t<e&&(e=t),t>n&&(n=t)):t>a?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t)}else p(t,o);l=s,a=t}function g(){h.point=d}function v(){f[0]=e,f[1]=n,h.point=p,l=null}function m(t,e){if(l){var r=t-a;c+=y(r)>180?r+(r>0?360:-360):r}else o=t,s=e;Cr.point(t,e),d(t,e)}function x(){Cr.lineStart()}function b(){m(o,s),Cr.lineEnd(),y(c)>kt&&(e=-(n=180)),f[0]=e,f[1]=n,l=null}function _(t,e){return(e-=t)<0?e+360:e}function w(t,e){return t[0]-e[0]}function k(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}return function(a){if(i=n=-(e=r=1/0),u=[],t.geo.stream(a,h),c=u.length){u.sort(w);for(var o=1,s=[g=u[0]];o<c;++o)k((p=u[o])[0],g)||k(p[1],g)?(_(g[0],p[1])>_(g[0],g[1])&&(g[1]=p[1]),_(p[0],g[1])>_(g[0],g[1])&&(g[0]=p[0])):s.push(g=p);for(var l,c,p,d=-1/0,g=(o=0,s[c=s.length-1]);o<=c;g=p,++o)p=s[o],(l=_(g[1],p[0]))>d&&(d=l,e=p[0],n=g[1])}return u=f=null,e===1/0||r===1/0?[[NaN,NaN],[NaN,NaN]]:[[e,r],[n,i]]}}(),t.geo.centroid=function(e){mr=yr=xr=br=_r=wr=kr=Mr=Ar=Tr=Sr=0,t.geo.stream(e,Nr);var r=Ar,n=Tr,i=Sr,a=r*r+n*n+i*i;return a<Mt&&(r=wr,n=kr,i=Mr,yr<kt&&(r=xr,n=br,i=_r),(a=r*r+n*n+i*i)<Mt)?[NaN,NaN]:[Math.atan2(n,r)*Lt,Pt(i/Math.sqrt(a))*Lt]};var Nr={sphere:D,point:jr,lineStart:Ur,lineEnd:qr,polygonStart:function(){Nr.lineStart=Hr},polygonEnd:function(){Nr.lineStart=Ur}};function jr(t,e){t*=Ct;var r=Math.cos(e*=Ct);Vr(r*Math.cos(t),r*Math.sin(t),Math.sin(e))}function Vr(t,e,r){xr+=(t-xr)/++mr,br+=(e-br)/mr,_r+=(r-_r)/mr}function Ur(){var t,e,r;function n(n,i){n*=Ct;var a=Math.cos(i*=Ct),o=a*Math.cos(n),s=a*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*s)*c+(c=r*o-t*l)*c+(c=t*s-e*o)*c),t*o+e*s+r*l);yr+=c,wr+=c*(t+(t=o)),kr+=c*(e+(e=s)),Mr+=c*(r+(r=l)),Vr(t,e,r)}Nr.point=function(i,a){i*=Ct;var o=Math.cos(a*=Ct);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(a),Nr.point=n,Vr(t,e,r)}}function qr(){Nr.point=jr}function Hr(){var t,e,r,n,i;function a(t,e){t*=Ct;var a=Math.cos(e*=Ct),o=a*Math.cos(t),s=a*Math.sin(t),l=Math.sin(e),c=n*l-i*s,u=i*o-r*l,f=r*s-n*o,h=Math.sqrt(c*c+u*u+f*f),p=r*o+n*s+i*l,d=h&&-It(p)/h,g=Math.atan2(h,p);Ar+=d*c,Tr+=d*u,Sr+=d*f,yr+=g,wr+=g*(r+(r=o)),kr+=g*(n+(n=s)),Mr+=g*(i+(i=l)),Vr(r,n,i)}Nr.point=function(o,s){t=o,e=s,Nr.point=a,o*=Ct;var l=Math.cos(s*=Ct);r=l*Math.cos(o),n=l*Math.sin(o),i=Math.sin(s),Vr(r,n,i)},Nr.lineEnd=function(){a(t,e),Nr.lineEnd=qr,Nr.point=jr}}function Gr(t,e){function r(r,n){return r=t(r,n),e(r[0],r[1])}return t.invert&&e.invert&&(r.invert=function(r,n){return(r=e.invert(r,n))&&t.invert(r[0],r[1])}),r}function Wr(){return!0}function Yr(t,e,r,n,i){var a=[],o=[];if(t.forEach(function(t){if(!((e=t.length-1)<=0)){var e,r=t[0],n=t[e];if(Fr(r,n)){i.lineStart();for(var s=0;s<e;++s)i.point((r=t[s])[0],r[1]);i.lineEnd()}else{var l=new Zr(r,t,null,!0),c=new Zr(r,null,l,!1);l.o=c,a.push(l),o.push(c),l=new Zr(n,t,null,!1),c=new Zr(n,null,l,!0),l.o=c,a.push(l),o.push(c)}}}),o.sort(e),Xr(a),Xr(o),a.length){for(var s=0,l=r,c=o.length;s<c;++s)o[s].e=l=!l;for(var u,f,h=a[0];;){for(var p=h,d=!0;p.v;)if((p=p.n)===h)return;u=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(d)for(s=0,c=u.length;s<c;++s)i.point((f=u[s])[0],f[1]);else n(p.x,p.n.x,1,i);p=p.n}else{if(d)for(s=(u=p.p.z).length-1;s>=0;--s)i.point((f=u[s])[0],f[1]);else n(p.x,p.p.x,-1,i);p=p.p}u=(p=p.o).z,d=!d}while(!p.v);i.lineEnd()}}}function Xr(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n<e;)i.n=r=t[n],r.p=i,i=r;i.n=r=t[0],r.p=i}}function Zr(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function $r(e,r,n,i){return function(a,o){var s,l=r(o),c=a.invert(i[0],i[1]),u={point:f,lineStart:p,lineEnd:d,polygonStart:function(){u.point=b,u.lineStart=_,u.lineEnd=w,s=[],g=[]},polygonEnd:function(){u.point=f,u.lineStart=p,u.lineEnd=d,s=t.merge(s);var e=function(t,e){var r=t[0],n=t[1],i=[Math.sin(r),-Math.cos(r),0],a=0,o=0;Er.reset();for(var s=0,l=e.length;s<l;++s){var c=e[s],u=c.length;if(u)for(var f=c[0],h=f[0],p=f[1]/2+At/4,d=Math.sin(p),g=Math.cos(p),v=1;;){v===u&&(v=0);var m=(t=c[v])[0],y=t[1]/2+At/4,x=Math.sin(y),b=Math.cos(y),_=m-h,w=_>=0?1:-1,k=w*_,M=k>At,A=d*x;if(Er.add(Math.atan2(A*w*Math.sin(k),g*b+A*Math.cos(k))),a+=M?_+w*Tt:_,M^h>=r^m>=r){var T=Ir(zr(f),zr(t));Rr(T);var S=Ir(i,T);Rr(S);var E=(M^_>=0?-1:1)*Pt(S[2]);(n>E||n===E&&(T[0]||T[1]))&&(o+=M^_>=0?1:-1)}if(!v++)break;h=m,d=x,g=b,f=t}}return(a<-kt||a<kt&&Er<-kt)^1&o}(c,g);s.length?(x||(o.polygonStart(),x=!0),Yr(s,Qr,e,n,o)):e&&(x||(o.polygonStart(),x=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),s=g=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}};function f(t,r){var n=a(t,r);e(t=n[0],r=n[1])&&o.point(t,r)}function h(t,e){var r=a(t,e);l.point(r[0],r[1])}function p(){u.point=h,l.lineStart()}function d(){u.point=f,l.lineEnd()}var g,v,m=Kr(),y=r(m),x=!1;function b(t,e){v.push([t,e]);var r=a(t,e);y.point(r[0],r[1])}function _(){y.lineStart(),v=[]}function w(){b(v[0][0],v[0][1]),y.lineEnd();var t,e=y.clean(),r=m.buffer(),n=r.length;if(v.pop(),g.push(v),v=null,n)if(1&e){var i,a=-1;if((n=(t=r[0]).length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart();++a<n;)o.point((i=t[a])[0],i[1]);o.lineEnd()}}else n>1&&2&e&&r.push(r.pop().concat(r.shift())),s.push(r.filter(Jr))}return u}}function Jr(t){return t.length>1}function Kr(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,r){t.push([e,r])},lineEnd:D,buffer:function(){var r=e;return e=[],t=null,r},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function Qr(t,e){return((t=t.x)[0]<0?t[1]-Et-kt:Et-t[1])-((e=e.x)[0]<0?e[1]-Et-kt:Et-e[1])}var tn=$r(Wr,function(t){var e,r=NaN,n=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var s=a>0?At:-At,l=y(a-r);y(l-At)<kt?(t.point(r,n=(n+o)/2>0?Et:-Et),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(a,n),e=0):i!==s&&l>=At&&(y(r-i)<kt&&(r-=i*kt),y(a-s)<kt&&(a-=s*kt),n=function(t,e,r,n){var i,a,o=Math.sin(t-r);return y(o)>kt?Math.atan((Math.sin(e)*(a=Math.cos(n))*Math.sin(r)-Math.sin(n)*(i=Math.cos(e))*Math.sin(t))/(i*a*o)):(e+n)/2}(r,n,a,o),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),e=0),t.point(r=a,n=o),i=s},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}},function(t,e,r,n){var i;if(null==t)i=r*Et,n.point(-At,i),n.point(0,i),n.point(At,i),n.point(At,0),n.point(At,-i),n.point(0,-i),n.point(-At,-i),n.point(-At,0),n.point(-At,i);else if(y(t[0]-e[0])>kt){var a=t[0]<e[0]?At:-At;i=r*a/2,n.point(-a,i),n.point(0,i),n.point(a,i)}else n.point(e[0],e[1])},[-At,-At/2]);function en(t,e,r,n){return function(i){var a,o=i.a,s=i.b,l=o.x,c=o.y,u=0,f=1,h=s.x-l,p=s.y-c;if(a=t-l,h||!(a>0)){if(a/=h,h<0){if(a<u)return;a<f&&(f=a)}else if(h>0){if(a>f)return;a>u&&(u=a)}if(a=r-l,h||!(a<0)){if(a/=h,h<0){if(a>f)return;a>u&&(u=a)}else if(h>0){if(a<u)return;a<f&&(f=a)}if(a=e-c,p||!(a>0)){if(a/=p,p<0){if(a<u)return;a<f&&(f=a)}else if(p>0){if(a>f)return;a>u&&(u=a)}if(a=n-c,p||!(a<0)){if(a/=p,p<0){if(a>f)return;a>u&&(u=a)}else if(p>0){if(a<u)return;a<f&&(f=a)}return u>0&&(i.a={x:l+u*h,y:c+u*p}),f<1&&(i.b={x:l+f*h,y:c+f*p}),i}}}}}}var rn=1e9;function nn(e,r,n,i){return function(l){var c,u,f,h,p,d,g,v,m,y,x,b=l,_=Kr(),w=en(e,r,n,i),k={point:T,lineStart:function(){k.point=S,u&&u.push(f=[]);y=!0,m=!1,g=v=NaN},lineEnd:function(){c&&(S(h,p),d&&m&&_.rejoin(),c.push(_.buffer()));k.point=T,m&&l.lineEnd()},polygonStart:function(){l=_,c=[],u=[],x=!0},polygonEnd:function(){l=b,c=t.merge(c);var r=function(t){for(var e=0,r=u.length,n=t[1],i=0;i<r;++i)for(var a,o=1,s=u[i],l=s.length,c=s[0];o<l;++o)a=s[o],c[1]<=n?a[1]>n&&Ot(c,a,t)>0&&++e:a[1]<=n&&Ot(c,a,t)<0&&--e,c=a;return 0!==e}([e,i]),n=x&&r,a=c.length;(n||a)&&(l.polygonStart(),n&&(l.lineStart(),M(null,null,1,l),l.lineEnd()),a&&Yr(c,o,r,M,l),l.polygonEnd()),c=u=f=null}};function M(t,o,l,c){var u=0,f=0;if(null==t||(u=a(t,l))!==(f=a(o,l))||s(t,o)<0^l>0)do{c.point(0===u||3===u?e:n,u>1?i:r)}while((u=(u+l+4)%4)!==f);else c.point(o[0],o[1])}function A(t,a){return e<=t&&t<=n&&r<=a&&a<=i}function T(t,e){A(t,e)&&l.point(t,e)}function S(t,e){var r=A(t=Math.max(-rn,Math.min(rn,t)),e=Math.max(-rn,Math.min(rn,e)));if(u&&f.push([t,e]),y)h=t,p=e,d=r,y=!1,r&&(l.lineStart(),l.point(t,e));else if(r&&m)l.point(t,e);else{var n={a:{x:g,y:v},b:{x:t,y:e}};w(n)?(m||(l.lineStart(),l.point(n.a.x,n.a.y)),l.point(n.b.x,n.b.y),r||l.lineEnd(),x=!1):r&&(l.lineStart(),l.point(t,e),x=!1)}g=t,v=e,m=r}return k};function a(t,i){return y(t[0]-e)<kt?i>0?0:3:y(t[0]-n)<kt?i>0?2:1:y(t[1]-r)<kt?i>0?1:0:i>0?3:2}function o(t,e){return s(t.x,e.x)}function s(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}}function an(t){var e=0,r=At/3,n=Cn(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*At/180,r=t[1]*At/180):[e/At*180,r/At*180]},i}function on(t,e){var r=Math.sin(t),n=(r+Math.sin(e))/2,i=1+r*(2*n-r),a=Math.sqrt(i)/n;function o(t,e){var r=Math.sqrt(i-2*n*Math.sin(e))/n;return[r*Math.sin(t*=n),a-r*Math.cos(t)]}return o.invert=function(t,e){var r=a-e;return[Math.atan2(t,r)/n,Pt((i-(t*t+r*r)*n*n)/(2*n))]},o}t.geo.clipExtent=function(){var t,e,r,n,i,a,o={stream:function(t){return i&&(i.valid=!1),(i=a(t)).valid=!0,i},extent:function(s){return arguments.length?(a=nn(t=+s[0][0],e=+s[0][1],r=+s[1][0],n=+s[1][1]),i&&(i.valid=!1,i=null),o):[[t,e],[r,n]]}};return o.extent([[0,0],[960,500]])},(t.geo.conicEqualArea=function(){return an(on)}).raw=on,t.geo.albers=function(){return t.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},t.geo.albersUsa=function(){var e,r,n,i,a=t.geo.albers(),o=t.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=t.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,r){e=[t,r]}};function c(t){var a=t[0],o=t[1];return e=null,r(a,o),e||(n(a,o),e)||i(a,o),e}return c.invert=function(t){var e=a.scale(),r=a.translate(),n=(t[0]-r[0])/e,i=(t[1]-r[1])/e;return(i>=.12&&i<.234&&n>=-.425&&n<-.214?o:i>=.166&&i<.234&&n>=-.214&&n<-.115?s:a).invert(t)},c.stream=function(t){var e=a.stream(t),r=o.stream(t),n=s.stream(t);return{point:function(t,i){e.point(t,i),r.point(t,i),n.point(t,i)},sphere:function(){e.sphere(),r.sphere(),n.sphere()},lineStart:function(){e.lineStart(),r.lineStart(),n.lineStart()},lineEnd:function(){e.lineEnd(),r.lineEnd(),n.lineEnd()},polygonStart:function(){e.polygonStart(),r.polygonStart(),n.polygonStart()},polygonEnd:function(){e.polygonEnd(),r.polygonEnd(),n.polygonEnd()}}},c.precision=function(t){return arguments.length?(a.precision(t),o.precision(t),s.precision(t),c):a.precision()},c.scale=function(t){return arguments.length?(a.scale(t),o.scale(.35*t),s.scale(t),c.translate(a.translate())):a.scale()},c.translate=function(t){if(!arguments.length)return a.translate();var e=a.scale(),u=+t[0],f=+t[1];return r=a.translate(t).clipExtent([[u-.455*e,f-.238*e],[u+.455*e,f+.238*e]]).stream(l).point,n=o.translate([u-.307*e,f+.201*e]).clipExtent([[u-.425*e+kt,f+.12*e+kt],[u-.214*e-kt,f+.234*e-kt]]).stream(l).point,i=s.translate([u-.205*e,f+.212*e]).clipExtent([[u-.214*e+kt,f+.166*e+kt],[u-.115*e-kt,f+.234*e-kt]]).stream(l).point,c},c.scale(1070)};var sn,ln,cn,un,fn,hn,pn={point:D,lineStart:D,lineEnd:D,polygonStart:function(){ln=0,pn.lineStart=dn},polygonEnd:function(){pn.lineStart=pn.lineEnd=pn.point=D,sn+=y(ln/2)}};function dn(){var t,e,r,n;function i(t,e){ln+=n*t-r*e,r=t,n=e}pn.point=function(a,o){pn.point=i,t=r=a,e=n=o},pn.lineEnd=function(){i(t,e)}}var gn={point:function(t,e){t<cn&&(cn=t);t>fn&&(fn=t);e<un&&(un=e);e>hn&&(hn=e)},lineStart:D,lineEnd:D,polygonStart:D,polygonEnd:D};function vn(){var t=mn(4.5),e=[],r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(e){return t=mn(e),r},result:function(){if(e.length){var t=e.join(\\\"\\\");return e=[],t}}};function n(r,n){e.push(\\\"M\\\",r,\\\",\\\",n,t)}function i(t,n){e.push(\\\"M\\\",t,\\\",\\\",n),r.point=a}function a(t,r){e.push(\\\"L\\\",t,\\\",\\\",r)}function o(){r.point=n}function s(){e.push(\\\"Z\\\")}return r}function mn(t){return\\\"m0,\\\"+t+\\\"a\\\"+t+\\\",\\\"+t+\\\" 0 1,1 0,\\\"+-2*t+\\\"a\\\"+t+\\\",\\\"+t+\\\" 0 1,1 0,\\\"+2*t+\\\"z\\\"}var yn,xn={point:bn,lineStart:_n,lineEnd:wn,polygonStart:function(){xn.lineStart=kn},polygonEnd:function(){xn.point=bn,xn.lineStart=_n,xn.lineEnd=wn}};function bn(t,e){xr+=t,br+=e,++_r}function _n(){var t,e;function r(r,n){var i=r-t,a=n-e,o=Math.sqrt(i*i+a*a);wr+=o*(t+r)/2,kr+=o*(e+n)/2,Mr+=o,bn(t=r,e=n)}xn.point=function(n,i){xn.point=r,bn(t=n,e=i)}}function wn(){xn.point=bn}function kn(){var t,e,r,n;function i(t,e){var i=t-r,a=e-n,o=Math.sqrt(i*i+a*a);wr+=o*(r+t)/2,kr+=o*(n+e)/2,Mr+=o,Ar+=(o=n*t-r*e)*(r+t),Tr+=o*(n+e),Sr+=3*o,bn(r=t,n=e)}xn.point=function(a,o){xn.point=i,bn(t=r=a,e=n=o)},xn.lineEnd=function(){i(t,e)}}function Mn(t){var e=4.5,r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(t){return e=t,r},result:D};function n(r,n){t.moveTo(r+e,n),t.arc(r,n,e,0,Tt)}function i(e,n){t.moveTo(e,n),r.point=a}function a(e,r){t.lineTo(e,r)}function o(){r.point=n}function s(){t.closePath()}return r}function An(t){var e=.5,r=Math.cos(30*Ct),n=16;function i(e){return(n?function(e){var r,i,o,s,l,c,u,f,h,p,d,g,v={point:m,lineStart:y,lineEnd:b,polygonStart:function(){e.polygonStart(),v.lineStart=_},polygonEnd:function(){e.polygonEnd(),v.lineStart=y}};function m(r,n){r=t(r,n),e.point(r[0],r[1])}function y(){f=NaN,v.point=x,e.lineStart()}function x(r,i){var o=zr([r,i]),s=t(r,i);a(f,h,u,p,d,g,f=s[0],h=s[1],u=r,p=o[0],d=o[1],g=o[2],n,e),e.point(f,h)}function b(){v.point=m,e.lineEnd()}function _(){y(),v.point=w,v.lineEnd=k}function w(t,e){x(r=t,e),i=f,o=h,s=p,l=d,c=g,v.point=x}function k(){a(f,h,u,p,d,g,i,o,r,s,l,c,n,e),v.lineEnd=b,b()}return v}:function(e){return Sn(e,function(r,n){r=t(r,n),e.point(r[0],r[1])})})(e)}function a(n,i,o,s,l,c,u,f,h,p,d,g,v,m){var x=u-n,b=f-i,_=x*x+b*b;if(_>4*e&&v--){var w=s+p,k=l+d,M=c+g,A=Math.sqrt(w*w+k*k+M*M),T=Math.asin(M/=A),S=y(y(M)-1)<kt||y(o-h)<kt?(o+h)/2:Math.atan2(k,w),E=t(S,T),C=E[0],L=E[1],z=C-n,O=L-i,I=b*z-x*O;(I*I/_>e||y((x*z+b*O)/_-.5)>.3||s*p+l*d+c*g<r)&&(a(n,i,o,s,l,c,C,L,S,w/=A,k/=A,M,v,m),m.point(C,L),a(C,L,S,w,k,M,u,f,h,p,d,g,v,m))}}return i.precision=function(t){return arguments.length?(n=(e=t*t)>0&&16,i):Math.sqrt(e)},i}function Tn(t){this.stream=t}function Sn(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function En(t){return Cn(function(){return t})()}function Cn(e){var r,n,i,a,o,s,l=An(function(t,e){return[(t=r(t,e))[0]*c+a,o-t[1]*c]}),c=150,u=480,f=250,h=0,p=0,d=0,g=0,v=0,m=tn,x=z,b=null,_=null;function w(t){return[(t=i(t[0]*Ct,t[1]*Ct))[0]*c+a,o-t[1]*c]}function k(t){return(t=i.invert((t[0]-a)/c,(o-t[1])/c))&&[t[0]*Lt,t[1]*Lt]}function M(){i=Gr(n=In(d,g,v),r);var t=r(h,p);return a=u-t[0]*c,o=f+t[1]*c,A()}function A(){return s&&(s.valid=!1,s=null),w}return w.stream=function(t){return s&&(s.valid=!1),(s=Ln(m(n,l(x(t))))).valid=!0,s},w.clipAngle=function(t){return arguments.length?(m=null==t?(b=t,tn):function(t){var e=Math.cos(t),r=e>0,n=y(e)>kt;return $r(i,function(t){var e,s,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(f,h){var p,d=[f,h],g=i(f,h),v=r?g?0:o(f,h):g?o(f+(f<0?At:-At),h):0;if(!e&&(c=l=g)&&t.lineStart(),g!==l&&(p=a(e,d),(Fr(e,p)||Fr(d,p))&&(d[0]+=kt,d[1]+=kt,g=i(d[0],d[1]))),g!==l)u=0,g?(t.lineStart(),p=a(d,e),t.point(p[0],p[1])):(p=a(e,d),t.point(p[0],p[1]),t.lineEnd()),e=p;else if(n&&e&&r^g){var m;v&s||!(m=a(d,e,!0))||(u=0,r?(t.lineStart(),t.point(m[0][0],m[0][1]),t.point(m[1][0],m[1][1]),t.lineEnd()):(t.point(m[1][0],m[1][1]),t.lineEnd(),t.lineStart(),t.point(m[0][0],m[0][1])))}!g||e&&Fr(e,d)||t.point(d[0],d[1]),e=d,l=g,s=v},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return u|(c&&l)<<1}}},Bn(t,6*Ct),r?[0,-t]:[-At,t-At]);function i(t,r){return Math.cos(t)*Math.cos(r)>e}function a(t,r,n){var i=[1,0,0],a=Ir(zr(t),zr(r)),o=Or(a,a),s=a[0],l=o-s*s;if(!l)return!n&&t;var c=e*o/l,u=-e*s/l,f=Ir(i,a),h=Dr(i,c);Pr(h,Dr(a,u));var p=f,d=Or(h,p),g=Or(p,p),v=d*d-g*(Or(h,h)-1);if(!(v<0)){var m=Math.sqrt(v),x=Dr(p,(-d-m)/g);if(Pr(x,h),x=Br(x),!n)return x;var b,_=t[0],w=r[0],k=t[1],M=r[1];w<_&&(b=_,_=w,w=b);var A=w-_,T=y(A-At)<kt;if(!T&&M<k&&(b=k,k=M,M=b),T||A<kt?T?k+M>0^x[1]<(y(x[0]-_)<kt?k:M):k<=x[1]&&x[1]<=M:A>At^(_<=x[0]&&x[0]<=w)){var S=Dr(p,(-d+m)/g);return Pr(S,h),[x,Br(S)]}}}function o(e,n){var i=r?t:At-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}}((b=+t)*Ct),A()):b},w.clipExtent=function(t){return arguments.length?(_=t,x=t?nn(t[0][0],t[0][1],t[1][0],t[1][1]):z,A()):_},w.scale=function(t){return arguments.length?(c=+t,M()):c},w.translate=function(t){return arguments.length?(u=+t[0],f=+t[1],M()):[u,f]},w.center=function(t){return arguments.length?(h=t[0]%360*Ct,p=t[1]%360*Ct,M()):[h*Lt,p*Lt]},w.rotate=function(t){return arguments.length?(d=t[0]%360*Ct,g=t[1]%360*Ct,v=t.length>2?t[2]%360*Ct:0,M()):[d*Lt,g*Lt,v*Lt]},t.rebind(w,l,\\\"precision\\\"),function(){return r=e.apply(this,arguments),w.invert=r.invert&&k,M()}}function Ln(t){return Sn(t,function(e,r){t.point(e*Ct,r*Ct)})}function zn(t,e){return[t,e]}function On(t,e){return[t>At?t-Tt:t<-At?t+Tt:t,e]}function In(t,e,r){return t?e||r?Gr(Dn(t),Rn(e,r)):Dn(t):e||r?Rn(e,r):On}function Pn(t){return function(e,r){return[(e+=t)>At?e-Tt:e<-At?e+Tt:e,r]}}function Dn(t){var e=Pn(t);return e.invert=Pn(-t),e}function Rn(t,e){var r=Math.cos(t),n=Math.sin(t),i=Math.cos(e),a=Math.sin(e);function o(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*r+s*n;return[Math.atan2(l*i-u*a,s*r-c*n),Pt(u*i+l*a)]}return o.invert=function(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*i-l*a;return[Math.atan2(l*i+c*a,s*r+u*n),Pt(u*r-s*n)]},o}function Bn(t,e){var r=Math.cos(t),n=Math.sin(t);return function(i,a,o,s){var l=o*e;null!=i?(i=Fn(r,i),a=Fn(r,a),(o>0?i<a:i>a)&&(i+=o*Tt)):(i=t+o*Tt,a=t-.5*l);for(var c,u=i;o>0?u>a:u<a;u-=l)s.point((c=Br([r,-n*Math.cos(u),-n*Math.sin(u)]))[0],c[1])}}function Fn(t,e){var r=zr(e);r[0]-=t,Rr(r);var n=It(-r[1]);return((-r[2]<0?-n:n)+2*Math.PI-kt)%(2*Math.PI)}function Nn(e,r,n){var i=t.range(e,r-kt,n).concat(r);return function(t){return i.map(function(e){return[t,e]})}}function jn(e,r,n){var i=t.range(e,r-kt,n).concat(r);return function(t){return i.map(function(e){return[e,t]})}}function Vn(t){return t.source}function Un(t){return t.target}t.geo.path=function(){var e,r,n,i,a,o=4.5;function s(e){return e&&(\\\"function\\\"==typeof o&&i.pointRadius(+o.apply(this,arguments)),a&&a.valid||(a=n(i)),t.geo.stream(e,a)),i.result()}function l(){return a=null,s}return s.area=function(e){return sn=0,t.geo.stream(e,n(pn)),sn},s.centroid=function(e){return xr=br=_r=wr=kr=Mr=Ar=Tr=Sr=0,t.geo.stream(e,n(xn)),Sr?[Ar/Sr,Tr/Sr]:Mr?[wr/Mr,kr/Mr]:_r?[xr/_r,br/_r]:[NaN,NaN]},s.bounds=function(e){return fn=hn=-(cn=un=1/0),t.geo.stream(e,n(gn)),[[cn,un],[fn,hn]]},s.projection=function(t){return arguments.length?(n=(e=t)?t.stream||(r=t,i=An(function(t,e){return r([t*Lt,e*Lt])}),function(t){return Ln(i(t))}):z,l()):e;var r,i},s.context=function(t){return arguments.length?(i=null==(r=t)?new vn:new Mn(t),\\\"function\\\"!=typeof o&&i.pointRadius(o),l()):r},s.pointRadius=function(t){return arguments.length?(o=\\\"function\\\"==typeof t?t:(i.pointRadius(+t),+t),s):o},s.projection(t.geo.albersUsa()).context(null)},t.geo.transform=function(t){return{stream:function(e){var r=new Tn(e);for(var n in t)r[n]=t[n];return r}}},Tn.prototype={point:function(t,e){this.stream.point(t,e)},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()}},t.geo.projection=En,t.geo.projectionMutator=Cn,(t.geo.equirectangular=function(){return En(zn)}).raw=zn.invert=zn,t.geo.rotation=function(t){function e(e){return(e=t(e[0]*Ct,e[1]*Ct))[0]*=Lt,e[1]*=Lt,e}return t=In(t[0]%360*Ct,t[1]*Ct,t.length>2?t[2]*Ct:0),e.invert=function(e){return(e=t.invert(e[0]*Ct,e[1]*Ct))[0]*=Lt,e[1]*=Lt,e},e},On.invert=zn,t.geo.circle=function(){var t,e,r=[0,0],n=6;function i(){var t=\\\"function\\\"==typeof r?r.apply(this,arguments):r,n=In(-t[0]*Ct,-t[1]*Ct,0).invert,i=[];return e(null,null,1,{point:function(t,e){i.push(t=n(t,e)),t[0]*=Lt,t[1]*=Lt}}),{type:\\\"Polygon\\\",coordinates:[i]}}return i.origin=function(t){return arguments.length?(r=t,i):r},i.angle=function(r){return arguments.length?(e=Bn((t=+r)*Ct,n*Ct),i):t},i.precision=function(r){return arguments.length?(e=Bn(t*Ct,(n=+r)*Ct),i):n},i.angle(90)},t.geo.distance=function(t,e){var r,n=(e[0]-t[0])*Ct,i=t[1]*Ct,a=e[1]*Ct,o=Math.sin(n),s=Math.cos(n),l=Math.sin(i),c=Math.cos(i),u=Math.sin(a),f=Math.cos(a);return Math.atan2(Math.sqrt((r=f*o)*r+(r=c*u-l*f*s)*r),l*u+c*f*s)},t.geo.graticule=function(){var e,r,n,i,a,o,s,l,c,u,f,h,p=10,d=p,g=90,v=360,m=2.5;function x(){return{type:\\\"MultiLineString\\\",coordinates:b()}}function b(){return t.range(Math.ceil(i/g)*g,n,g).map(f).concat(t.range(Math.ceil(l/v)*v,s,v).map(h)).concat(t.range(Math.ceil(r/p)*p,e,p).filter(function(t){return y(t%g)>kt}).map(c)).concat(t.range(Math.ceil(o/d)*d,a,d).filter(function(t){return y(t%v)>kt}).map(u))}return x.lines=function(){return b().map(function(t){return{type:\\\"LineString\\\",coordinates:t}})},x.outline=function(){return{type:\\\"Polygon\\\",coordinates:[f(i).concat(h(s).slice(1),f(n).reverse().slice(1),h(l).reverse().slice(1))]}},x.extent=function(t){return arguments.length?x.majorExtent(t).minorExtent(t):x.minorExtent()},x.majorExtent=function(t){return arguments.length?(i=+t[0][0],n=+t[1][0],l=+t[0][1],s=+t[1][1],i>n&&(t=i,i=n,n=t),l>s&&(t=l,l=s,s=t),x.precision(m)):[[i,l],[n,s]]},x.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),o>a&&(t=o,o=a,a=t),x.precision(m)):[[r,o],[e,a]]},x.step=function(t){return arguments.length?x.majorStep(t).minorStep(t):x.minorStep()},x.majorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],x):[g,v]},x.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],x):[p,d]},x.precision=function(t){return arguments.length?(m=+t,c=Nn(o,a,90),u=jn(r,e,m),f=Nn(l,s,90),h=jn(i,n,m),x):m},x.majorExtent([[-180,-90+kt],[180,90-kt]]).minorExtent([[-180,-80-kt],[180,80+kt]])},t.geo.greatArc=function(){var e,r,n=Vn,i=Un;function a(){return{type:\\\"LineString\\\",coordinates:[e||n.apply(this,arguments),r||i.apply(this,arguments)]}}return a.distance=function(){return t.geo.distance(e||n.apply(this,arguments),r||i.apply(this,arguments))},a.source=function(t){return arguments.length?(n=t,e=\\\"function\\\"==typeof t?null:t,a):n},a.target=function(t){return arguments.length?(i=t,r=\\\"function\\\"==typeof t?null:t,a):i},a.precision=function(){return arguments.length?a:0},a},t.geo.interpolate=function(t,e){return r=t[0]*Ct,n=t[1]*Ct,i=e[0]*Ct,a=e[1]*Ct,o=Math.cos(n),s=Math.sin(n),l=Math.cos(a),c=Math.sin(a),u=o*Math.cos(r),f=o*Math.sin(r),h=l*Math.cos(i),p=l*Math.sin(i),d=2*Math.asin(Math.sqrt(Rt(a-n)+o*l*Rt(i-r))),g=1/Math.sin(d),(v=d?function(t){var e=Math.sin(t*=d)*g,r=Math.sin(d-t)*g,n=r*u+e*h,i=r*f+e*p,a=r*s+e*c;return[Math.atan2(i,n)*Lt,Math.atan2(a,Math.sqrt(n*n+i*i))*Lt]}:function(){return[r*Lt,n*Lt]}).distance=d,v;var r,n,i,a,o,s,l,c,u,f,h,p,d,g,v},t.geo.length=function(e){return yn=0,t.geo.stream(e,qn),yn};var qn={sphere:D,point:D,lineStart:function(){var t,e,r;function n(n,i){var a=Math.sin(i*=Ct),o=Math.cos(i),s=y((n*=Ct)-t),l=Math.cos(s);yn+=Math.atan2(Math.sqrt((s=o*Math.sin(s))*s+(s=r*a-e*o*l)*s),e*a+r*o*l),t=n,e=a,r=o}qn.point=function(i,a){t=i*Ct,e=Math.sin(a*=Ct),r=Math.cos(a),qn.point=n},qn.lineEnd=function(){qn.point=qn.lineEnd=D}},lineEnd:D,polygonStart:D,polygonEnd:D};function Hn(t,e){function r(e,r){var n=Math.cos(e),i=Math.cos(r),a=t(n*i);return[a*i*Math.sin(e),a*Math.sin(r)]}return r.invert=function(t,r){var n=Math.sqrt(t*t+r*r),i=e(n),a=Math.sin(i),o=Math.cos(i);return[Math.atan2(t*a,n*o),Math.asin(n&&r*a/n)]},r}var Gn=Hn(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(t.geo.azimuthalEqualArea=function(){return En(Gn)}).raw=Gn;var Wn=Hn(function(t){var e=Math.acos(t);return e&&e/Math.sin(e)},z);function Yn(t,e){var r=Math.cos(t),n=function(t){return Math.tan(At/4+t/2)},i=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(n(e)/n(t)),a=r*Math.pow(n(t),i)/i;if(!i)return $n;function o(t,e){a>0?e<-Et+kt&&(e=-Et+kt):e>Et-kt&&(e=Et-kt);var r=a/Math.pow(n(e),i);return[r*Math.sin(i*t),a-r*Math.cos(i*t)]}return o.invert=function(t,e){var r=a-e,n=zt(i)*Math.sqrt(t*t+r*r);return[Math.atan2(t,r)/i,2*Math.atan(Math.pow(a/n,1/i))-Et]},o}function Xn(t,e){var r=Math.cos(t),n=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),i=r/n+t;if(y(n)<kt)return zn;function a(t,e){var r=i-e;return[r*Math.sin(n*t),i-r*Math.cos(n*t)]}return a.invert=function(t,e){var r=i-e;return[Math.atan2(t,r)/n,i-zt(n)*Math.sqrt(t*t+r*r)]},a}(t.geo.azimuthalEquidistant=function(){return En(Wn)}).raw=Wn,(t.geo.conicConformal=function(){return an(Yn)}).raw=Yn,(t.geo.conicEquidistant=function(){return an(Xn)}).raw=Xn;var Zn=Hn(function(t){return 1/t},Math.atan);function $n(t,e){return[t,Math.log(Math.tan(At/4+e/2))]}function Jn(t){var e,r=En(t),n=r.scale,i=r.translate,a=r.clipExtent;return r.scale=function(){var t=n.apply(r,arguments);return t===r?e?r.clipExtent(null):r:t},r.translate=function(){var t=i.apply(r,arguments);return t===r?e?r.clipExtent(null):r:t},r.clipExtent=function(t){var o=a.apply(r,arguments);if(o===r){if(e=null==t){var s=At*n(),l=i();a([[l[0]-s,l[1]-s],[l[0]+s,l[1]+s]])}}else e&&(o=null);return o},r.clipExtent(null)}(t.geo.gnomonic=function(){return En(Zn)}).raw=Zn,$n.invert=function(t,e){return[t,2*Math.atan(Math.exp(e))-Et]},(t.geo.mercator=function(){return Jn($n)}).raw=$n;var Kn=Hn(function(){return 1},Math.asin);(t.geo.orthographic=function(){return En(Kn)}).raw=Kn;var Qn=Hn(function(t){return 1/(1+t)},function(t){return 2*Math.atan(t)});function ti(t,e){return[Math.log(Math.tan(At/4+e/2)),-t]}function ei(t){return t[0]}function ri(t){return t[1]}function ni(t){for(var e=t.length,r=[0,1],n=2,i=2;i<e;i++){for(;n>1&&Ot(t[r[n-2]],t[r[n-1]],t[i])<=0;)--n;r[n++]=i}return r.slice(0,n)}function ii(t,e){return t[0]-e[0]||t[1]-e[1]}(t.geo.stereographic=function(){return En(Qn)}).raw=Qn,ti.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Et]},(t.geo.transverseMercator=function(){var t=Jn(ti),e=t.center,r=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return t?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90])}).raw=ti,t.geom={},t.geom.hull=function(t){var e=ei,r=ri;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=ve(e),a=ve(r),o=t.length,s=[],l=[];for(n=0;n<o;n++)s.push([+i.call(this,t[n],n),+a.call(this,t[n],n),n]);for(s.sort(ii),n=0;n<o;n++)l.push([s[n][0],-s[n][1]]);var c=ni(s),u=ni(l),f=u[0]===c[0],h=u[u.length-1]===c[c.length-1],p=[];for(n=c.length-1;n>=0;--n)p.push(t[s[c[n]][2]]);for(n=+f;n<u.length-h;++n)p.push(t[s[u[n]][2]]);return p}return n.x=function(t){return arguments.length?(e=t,n):e},n.y=function(t){return arguments.length?(r=t,n):r},n},t.geom.polygon=function(t){return U(t,ai),t};var ai=t.geom.polygon.prototype=[];function oi(t,e,r){return(r[0]-e[0])*(t[1]-e[1])<(r[1]-e[1])*(t[0]-e[0])}function si(t,e,r,n){var i=t[0],a=r[0],o=e[0]-i,s=n[0]-a,l=t[1],c=r[1],u=e[1]-l,f=n[1]-c,h=(s*(l-c)-f*(i-a))/(f*o-s*u);return[i+h*o,l+h*u]}function li(t){var e=t[0],r=t[t.length-1];return!(e[0]-r[0]||e[1]-r[1])}ai.area=function(){for(var t,e=-1,r=this.length,n=this[r-1],i=0;++e<r;)t=n,n=this[e],i+=t[1]*n[0]-t[0]*n[1];return.5*i},ai.centroid=function(t){var e,r,n=-1,i=this.length,a=0,o=0,s=this[i-1];for(arguments.length||(t=-1/(6*this.area()));++n<i;)e=s,s=this[n],r=e[0]*s[1]-s[0]*e[1],a+=(e[0]+s[0])*r,o+=(e[1]+s[1])*r;return[a*t,o*t]},ai.clip=function(t){for(var e,r,n,i,a,o,s=li(t),l=-1,c=this.length-li(this),u=this[c-1];++l<c;){for(e=t.slice(),t.length=0,i=this[l],a=e[(n=e.length-s)-1],r=-1;++r<n;)oi(o=e[r],u,i)?(oi(a,u,i)||t.push(si(a,o,u,i)),t.push(o)):oi(a,u,i)&&t.push(si(a,o,u,i)),a=o;s&&t.push(t[0]),u=i}return t};var ci,ui,fi,hi,pi,di=[],gi=[];function vi(){Pi(this),this.edge=this.site=this.circle=null}function mi(t){var e=di.pop()||new vi;return e.site=t,e}function yi(t){Si(t),fi.remove(t),di.push(t),Pi(t)}function xi(t){var e=t.circle,r=e.x,n=e.cy,i={x:r,y:n},a=t.P,o=t.N,s=[t];yi(t);for(var l=a;l.circle&&y(r-l.circle.x)<kt&&y(n-l.circle.cy)<kt;)a=l.P,s.unshift(l),yi(l),l=a;s.unshift(l),Si(l);for(var c=o;c.circle&&y(r-c.circle.x)<kt&&y(n-c.circle.cy)<kt;)o=c.N,s.push(c),yi(c),c=o;s.push(c),Si(c);var u,f=s.length;for(u=1;u<f;++u)c=s[u],l=s[u-1],zi(c.edge,l.site,c.site,i);l=s[0],(c=s[f-1]).edge=Li(l.site,c.site,null,i),Ti(l),Ti(c)}function bi(t){for(var e,r,n,i,a=t.x,o=t.y,s=fi._;s;)if((n=_i(s,o)-a)>kt)s=s.L;else{if(!((i=a-wi(s,o))>kt)){n>-kt?(e=s.P,r=s):i>-kt?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=mi(t);if(fi.insert(e,l),e||r){if(e===r)return Si(e),r=mi(e.site),fi.insert(l,r),l.edge=r.edge=Li(e.site,l.site),Ti(e),void Ti(r);if(r){Si(e),Si(r);var c=e.site,u=c.x,f=c.y,h=t.x-u,p=t.y-f,d=r.site,g=d.x-u,v=d.y-f,m=2*(h*v-p*g),y=h*h+p*p,x=g*g+v*v,b={x:(v*y-p*x)/m+u,y:(h*x-g*y)/m+f};zi(r.edge,c,d,b),l.edge=Li(c,t,null,b),r.edge=Li(t,d,null,b),Ti(e),Ti(r)}else l.edge=Li(e.site,l.site)}}function _i(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,c=l-e;if(!c)return s;var u=s-n,f=1/a-1/c,h=u/c;return f?(-h+Math.sqrt(h*h-2*f*(u*u/(-2*c)-l+c/2+i-a/2)))/f+n:(n+s)/2}function wi(t,e){var r=t.N;if(r)return _i(r,e);var n=t.site;return n.y===e?n.x:1/0}function ki(t){this.site=t,this.edges=[]}function Mi(t,e){return e.angle-t.angle}function Ai(){Pi(this),this.x=this.y=this.arc=this.site=this.cy=null}function Ti(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,c=n.y-s,u=a.x-o,f=2*(l*(v=a.y-s)-c*u);if(!(f>=-Mt)){var h=l*l+c*c,p=u*u+v*v,d=(v*h-c*p)/f,g=(l*p-u*h)/f,v=g+s,m=gi.pop()||new Ai;m.arc=t,m.site=i,m.x=d+o,m.y=v+Math.sqrt(d*d+g*g),m.cy=v,t.circle=m;for(var y=null,x=pi._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}pi.insert(y,m),y||(hi=m)}}}}function Si(t){var e=t.circle;e&&(e.P||(hi=e.N),pi.remove(e),gi.push(e),Pi(e),t.circle=null)}function Ei(t,e){var r=t.b;if(r)return!0;var n,i,a=t.a,o=e[0][0],s=e[1][0],l=e[0][1],c=e[1][1],u=t.l,f=t.r,h=u.x,p=u.y,d=f.x,g=f.y,v=(h+d)/2,m=(p+g)/2;if(g===p){if(v<o||v>=s)return;if(h>d){if(a){if(a.y>=c)return}else a={x:v,y:l};r={x:v,y:c}}else{if(a){if(a.y<l)return}else a={x:v,y:c};r={x:v,y:l}}}else if(i=m-(n=(h-d)/(g-p))*v,n<-1||n>1)if(h>d){if(a){if(a.y>=c)return}else a={x:(l-i)/n,y:l};r={x:(c-i)/n,y:c}}else{if(a){if(a.y<l)return}else a={x:(c-i)/n,y:c};r={x:(l-i)/n,y:l}}else if(p<g){if(a){if(a.x>=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.x<o)return}else a={x:s,y:n*s+i};r={x:o,y:n*o+i}}return t.a=a,t.b=r,!0}function Ci(t,e){this.l=t,this.r=e,this.a=this.b=null}function Li(t,e,r,n){var i=new Ci(t,e);return ci.push(i),r&&zi(i,t,e,r),n&&zi(i,e,t,n),ui[t.i].edges.push(new Oi(i,t,e)),ui[e.i].edges.push(new Oi(i,e,t)),i}function zi(t,e,r,n){t.a||t.b?t.l===r?t.b=n:t.a=n:(t.a=n,t.l=e,t.r=r)}function Oi(t,e,r){var n=t.a,i=t.b;this.edge=t,this.site=e,this.angle=r?Math.atan2(r.y-e.y,r.x-e.x):t.l===e?Math.atan2(i.x-n.x,n.y-i.y):Math.atan2(n.x-i.x,i.y-n.y)}function Ii(){this._=null}function Pi(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Di(t,e){var r=e,n=e.R,i=r.U;i?i.L===r?i.L=n:i.R=n:t._=n,n.U=i,r.U=n,r.R=n.L,r.R&&(r.R.U=r),n.L=r}function Ri(t,e){var r=e,n=e.L,i=r.U;i?i.L===r?i.L=n:i.R=n:t._=n,n.U=i,r.U=n,r.L=n.R,r.L&&(r.L.U=r),n.R=r}function Bi(t){for(;t.L;)t=t.L;return t}function Fi(t,e){var r,n,i,a=t.sort(Ni).pop();for(ci=[],ui=new Array(t.length),fi=new Ii,pi=new Ii;;)if(i=hi,a&&(!i||a.y<i.y||a.y===i.y&&a.x<i.x))a.x===r&&a.y===n||(ui[a.i]=new ki(a),bi(a),r=a.x,n=a.y),a=t.pop();else{if(!i)break;xi(i.arc)}e&&(function(t){for(var e,r=ci,n=en(t[0][0],t[0][1],t[1][0],t[1][1]),i=r.length;i--;)(!Ei(e=r[i],t)||!n(e)||y(e.a.x-e.b.x)<kt&&y(e.a.y-e.b.y)<kt)&&(e.a=e.b=null,r.splice(i,1))}(e),function(t){for(var e,r,n,i,a,o,s,l,c,u,f=t[0][0],h=t[1][0],p=t[0][1],d=t[1][1],g=ui,v=g.length;v--;)if((a=g[v])&&a.prepare())for(l=(s=a.edges).length,o=0;o<l;)n=(u=s[o].end()).x,i=u.y,e=(c=s[++o%l].start()).x,r=c.y,(y(n-e)>kt||y(i-r)>kt)&&(s.splice(o,0,new Oi((m=a.site,x=u,b=y(n-f)<kt&&d-i>kt?{x:f,y:y(e-f)<kt?r:d}:y(i-d)<kt&&h-n>kt?{x:y(r-d)<kt?e:h,y:d}:y(n-h)<kt&&i-p>kt?{x:h,y:y(e-h)<kt?r:p}:y(i-p)<kt&&n-f>kt?{x:y(r-p)<kt?e:f,y:p}:null,_=void 0,_=new Ci(m,null),_.a=x,_.b=b,ci.push(_),_),a.site,null)),++l);var m,x,b,_}(e));var o={cells:ui,edges:ci};return fi=pi=ci=ui=null,o}function Ni(t,e){return e.y-t.y||e.x-t.x}ki.prototype.prepare=function(){for(var t,e=this.edges,r=e.length;r--;)(t=e[r].edge).b&&t.a||e.splice(r,1);return e.sort(Mi),e.length},Oi.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},Ii.prototype={insert:function(t,e){var r,n,i;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;r=t}else this._?(t=Bi(this._),e.P=null,e.N=t,t.P=t.L=e,r=t):(e.P=e.N=null,this._=e,r=null);for(e.L=e.R=null,e.U=r,e.C=!0,t=e;r&&r.C;)r===(n=r.U).L?(i=n.R)&&i.C?(r.C=i.C=!1,n.C=!0,t=n):(t===r.R&&(Di(this,r),r=(t=r).U),r.C=!1,n.C=!0,Ri(this,n)):(i=n.L)&&i.C?(r.C=i.C=!1,n.C=!0,t=n):(t===r.L&&(Ri(this,r),r=(t=r).U),r.C=!1,n.C=!0,Di(this,n)),r=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,r,n,i=t.U,a=t.L,o=t.R;if(r=a?o?Bi(o):a:o,i?i.L===t?i.L=r:i.R=r:this._=r,a&&o?(n=r.C,r.C=t.C,r.L=a,a.U=r,r!==o?(i=r.U,r.U=t.U,t=r.R,i.L=t,r.R=o,o.U=r):(r.U=i,i=r,t=r.R)):(n=t.C,t=r),t&&(t.U=i),!n)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((e=i.R).C&&(e.C=!1,i.C=!0,Di(this,i),e=i.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,Ri(this,e),e=i.R),e.C=i.C,i.C=e.R.C=!1,Di(this,i),t=this._;break}}else if((e=i.L).C&&(e.C=!1,i.C=!0,Ri(this,i),e=i.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,Di(this,e),e=i.L),e.C=i.C,i.C=e.L.C=!1,Ri(this,i),t=this._;break}e.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}},t.geom.voronoi=function(t){var e=ei,r=ri,n=e,i=r,a=ji;if(t)return o(t);function o(t){var e=new Array(t.length),r=a[0][0],n=a[0][1],i=a[1][0],o=a[1][1];return Fi(s(t),a).cells.forEach(function(a,s){var l=a.edges,c=a.site;(e[s]=l.length?l.map(function(t){var e=t.start();return[e.x,e.y]}):c.x>=r&&c.x<=i&&c.y>=n&&c.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]}),e}function s(t){return t.map(function(t,e){return{x:Math.round(n(t,e)/kt)*kt,y:Math.round(i(t,e)/kt)*kt,i:e}})}return o.links=function(t){return Fi(s(t)).edges.filter(function(t){return t.l&&t.r}).map(function(e){return{source:t[e.l.i],target:t[e.r.i]}})},o.triangles=function(t){var e=[];return Fi(s(t)).cells.forEach(function(r,n){for(var i,a,o,s,l=r.site,c=r.edges.sort(Mi),u=-1,f=c.length,h=c[f-1].edge,p=h.l===l?h.r:h.l;++u<f;)h,i=p,p=(h=c[u].edge).l===l?h.r:h.l,n<i.i&&n<p.i&&(o=i,s=p,((a=l).x-s.x)*(o.y-a.y)-(a.x-o.x)*(s.y-a.y)<0)&&e.push([t[n],t[i.i],t[p.i]])}),e},o.x=function(t){return arguments.length?(n=ve(e=t),o):e},o.y=function(t){return arguments.length?(i=ve(r=t),o):r},o.clipExtent=function(t){return arguments.length?(a=null==t?ji:t,o):a===ji?null:a},o.size=function(t){return arguments.length?o.clipExtent(t&&[[0,0],t]):a===ji?null:a&&a[1]},o};var ji=[[-1e6,-1e6],[1e6,1e6]];function Vi(t){return t.x}function Ui(t){return t.y}function qi(e,r){e=t.rgb(e),r=t.rgb(r);var n=e.r,i=e.g,a=e.b,o=r.r-n,s=r.g-i,l=r.b-a;return function(t){return\\\"#\\\"+ce(Math.round(n+o*t))+ce(Math.round(i+s*t))+ce(Math.round(a+l*t))}}function Hi(t,e){var r,n={},i={};for(r in t)r in e?n[r]=Zi(t[r],e[r]):i[r]=t[r];for(r in e)r in t||(i[r]=e[r]);return function(t){for(r in n)i[r]=n[r](t);return i}}function Gi(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function Wi(t,e){var r,n,i,a=Yi.lastIndex=Xi.lastIndex=0,o=-1,s=[],l=[];for(t+=\\\"\\\",e+=\\\"\\\";(r=Yi.exec(t))&&(n=Xi.exec(e));)(i=n.index)>a&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:Gi(r,n)})),a=Xi.lastIndex;return a<e.length&&(i=e.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?(e=l[0].x,function(t){return e(t)+\\\"\\\"}):function(){return e}:(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join(\\\"\\\")})}t.geom.delaunay=function(e){return t.geom.voronoi().triangles(e)},t.geom.quadtree=function(t,e,r,n,i){var a,o=ei,s=ri;if(a=arguments.length)return o=Vi,s=Ui,3===a&&(i=r,n=e,r=e=0),l(t);function l(t){var l,c,u,f,h,p,d,g,v,m=ve(o),x=ve(s);if(null!=e)p=e,d=r,g=n,v=i;else if(g=v=-(p=d=1/0),c=[],u=[],h=t.length,a)for(f=0;f<h;++f)(l=t[f]).x<p&&(p=l.x),l.y<d&&(d=l.y),l.x>g&&(g=l.x),l.y>v&&(v=l.y),c.push(l.x),u.push(l.y);else for(f=0;f<h;++f){var b=+m(l=t[f],f),_=+x(l,f);b<p&&(p=b),_<d&&(d=_),b>g&&(g=b),_>v&&(v=_),c.push(b),u.push(_)}var w=g-p,k=v-d;function M(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,c=t.y;if(null!=l)if(y(l-r)+y(c-n)<.01)A(t,e,r,n,i,a,o,s);else{var u=t.point;t.x=t.y=t.point=null,A(t,u,l,c,i,a,o,s),A(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else A(t,e,r,n,i,a,o,s)}function A(t,e,r,n,i,a,o,s){var l=.5*(i+o),c=.5*(a+s),u=r>=l,f=n>=c,h=f<<1|u;t.leaf=!1,u?i=l:o=l,f?a=c:s=c,M(t=t.nodes[h]||(t.nodes[h]={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){M(T,t,+m(t,++f),+x(t,f),p,d,g,v)}}),e,r,n,i,a,o,s)}w>k?v=d+w:g=p+k;var T={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){M(T,t,+m(t,++f),+x(t,f),p,d,g,v)}};if(T.visit=function(t){!function t(e,r,n,i,a,o){if(!e(r,n,i,a,o)){var s=.5*(n+a),l=.5*(i+o),c=r.nodes;c[0]&&t(e,c[0],n,i,s,l),c[1]&&t(e,c[1],s,i,a,l),c[2]&&t(e,c[2],n,l,s,o),c[3]&&t(e,c[3],s,l,a,o)}}(t,T,p,d,g,v)},T.find=function(t){return function(t,e,r,n,i,a,o){var s,l=1/0;return function t(c,u,f,h,p){if(!(u>a||f>o||h<n||p<i)){if(d=c.point){var d,g=e-c.x,v=r-c.y,m=g*g+v*v;if(m<l){var y=Math.sqrt(l=m);n=e-y,i=r-y,a=e+y,o=r+y,s=d}}for(var x=c.nodes,b=.5*(u+h),_=.5*(f+p),w=(r>=_)<<1|e>=b,k=w+4;w<k;++w)if(c=x[3&w])switch(3&w){case 0:t(c,u,f,b,_);break;case 1:t(c,b,f,h,_);break;case 2:t(c,u,_,b,p);break;case 3:t(c,b,_,h,p)}}}(t,n,i,a,o),s}(T,t[0],t[1],p,d,g,v)},f=-1,null==e){for(;++f<h;)M(T,t[f],c[f],u[f],p,d,g,v);--f}else t.forEach(T.add);return c=u=t=l=null,T}return l.x=function(t){return arguments.length?(o=t,l):o},l.y=function(t){return arguments.length?(s=t,l):s},l.extent=function(t){return arguments.length?(null==t?e=r=n=i=null:(e=+t[0][0],r=+t[0][1],n=+t[1][0],i=+t[1][1]),l):null==e?null:[[e,r],[n,i]]},l.size=function(t){return arguments.length?(null==t?e=r=n=i=null:(e=r=0,n=+t[0],i=+t[1]),l):null==e?null:[n-e,i-r]},l},t.interpolateRgb=qi,t.interpolateObject=Hi,t.interpolateNumber=Gi,t.interpolateString=Wi;var Yi=/[-+]?(?:\\\\d+\\\\.?\\\\d*|\\\\.?\\\\d+)(?:[eE][-+]?\\\\d+)?/g,Xi=new RegExp(Yi.source,\\\"g\\\");function Zi(e,r){for(var n,i=t.interpolators.length;--i>=0&&!(n=t.interpolators[i](e,r)););return n}function $i(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r<s;++r)n.push(Zi(t[r],e[r]));for(;r<a;++r)i[r]=t[r];for(;r<o;++r)i[r]=e[r];return function(t){for(r=0;r<s;++r)i[r]=n[r](t);return i}}t.interpolate=Zi,t.interpolators=[function(t,e){var r=typeof e;return(\\\"string\\\"===r?ge.has(e.toLowerCase())||/^(#|rgb\\\\(|hsl\\\\()/i.test(e)?qi:Wi:e instanceof Vt?qi:Array.isArray(e)?$i:\\\"object\\\"===r&&isNaN(e)?Hi:Gi)(t,e)}],t.interpolateArray=$i;var Ji=function(){return z},Ki=t.map({linear:Ji,poly:function(t){return function(e){return Math.pow(e,t)}},quad:function(){return ra},cubic:function(){return na},sin:function(){return aa},exp:function(){return oa},circle:function(){return sa},elastic:function(t,e){var r;arguments.length<2&&(e=.45);arguments.length?r=e/Tt*Math.asin(1/t):(t=1,r=e/4);return function(n){return 1+t*Math.pow(2,-10*n)*Math.sin((n-r)*Tt/e)}},back:function(t){t||(t=1.70158);return function(e){return e*e*((t+1)*e-t)}},bounce:function(){return la}}),Qi=t.map({in:z,out:ta,\\\"in-out\\\":ea,\\\"out-in\\\":function(t){return ea(ta(t))}});function ta(t){return function(e){return 1-t(1-e)}}function ea(t){return function(e){return.5*(e<.5?t(2*e):2-t(2-2*e))}}function ra(t){return t*t}function na(t){return t*t*t}function ia(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function aa(t){return 1-Math.cos(t*Et)}function oa(t){return Math.pow(2,10*(t-1))}function sa(t){return 1-Math.sqrt(1-t*t)}function la(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function ca(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function ua(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=ha(i),s=fa(i,a),l=ha(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]<a[0]*i[1]&&(i[0]*=-1,i[1]*=-1,o*=-1,s*=-1),this.rotate=(o?Math.atan2(i[1],i[0]):Math.atan2(-a[0],a[1]))*Lt,this.translate=[t.e,t.f],this.scale=[o,l],this.skew=l?Math.atan2(s,l)*Lt:0}function fa(t,e){return t[0]*e[0]+t[1]*e[1]}function ha(t){var e=Math.sqrt(fa(t,t));return e&&(t[0]/=e,t[1]/=e),e}t.ease=function(t){var e,n=t.indexOf(\\\"-\\\"),i=n>=0?t.slice(0,n):t,a=n>=0?t.slice(n+1):\\\"in\\\";return i=Ki.get(i)||Ji,a=Qi.get(a)||z,e=a(i.apply(null,r.call(arguments,1))),function(t){return t<=0?0:t>=1?1:e(t)}},t.interpolateHcl=function(e,r){e=t.hcl(e),r=t.hcl(r);var n=e.h,i=e.c,a=e.l,o=r.h-n,s=r.c-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.c:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Yt(n+o*t,i+s*t,a+l*t)+\\\"\\\"}},t.interpolateHsl=function(e,r){e=t.hsl(e),r=t.hsl(r);var n=e.h,i=e.s,a=e.l,o=r.h-n,s=r.s-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.s:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Ht(n+o*t,i+s*t,a+l*t)+\\\"\\\"}},t.interpolateLab=function(e,r){e=t.lab(e),r=t.lab(r);var n=e.l,i=e.a,a=e.b,o=r.l-n,s=r.a-i,l=r.b-a;return function(t){return te(n+o*t,i+s*t,a+l*t)+\\\"\\\"}},t.interpolateRound=ca,t.transform=function(e){var r=i.createElementNS(t.ns.prefix.svg,\\\"g\\\");return(t.transform=function(t){if(null!=t){r.setAttribute(\\\"transform\\\",t);var e=r.transform.baseVal.consolidate()}return new ua(e?e.matrix:pa)})(e)},ua.prototype.toString=function(){return\\\"translate(\\\"+this.translate+\\\")rotate(\\\"+this.rotate+\\\")skewX(\\\"+this.skew+\\\")scale(\\\"+this.scale+\\\")\\\"};var pa={a:1,b:0,c:0,d:1,e:0,f:0};function da(t){return t.length?t.pop()+\\\",\\\":\\\"\\\"}function ga(e,r){var n=[],i=[];return e=t.transform(e),r=t.transform(r),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(\\\"translate(\\\",null,\\\",\\\",null,\\\")\\\");n.push({i:i-4,x:Gi(t[0],e[0])},{i:i-2,x:Gi(t[1],e[1])})}else(e[0]||e[1])&&r.push(\\\"translate(\\\"+e+\\\")\\\")}(e.translate,r.translate,n,i),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(da(r)+\\\"rotate(\\\",null,\\\")\\\")-2,x:Gi(t,e)})):e&&r.push(da(r)+\\\"rotate(\\\"+e+\\\")\\\")}(e.rotate,r.rotate,n,i),function(t,e,r,n){t!==e?n.push({i:r.push(da(r)+\\\"skewX(\\\",null,\\\")\\\")-2,x:Gi(t,e)}):e&&r.push(da(r)+\\\"skewX(\\\"+e+\\\")\\\")}(e.skew,r.skew,n,i),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(da(r)+\\\"scale(\\\",null,\\\",\\\",null,\\\")\\\");n.push({i:i-4,x:Gi(t[0],e[0])},{i:i-2,x:Gi(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(da(r)+\\\"scale(\\\"+e+\\\")\\\")}(e.scale,r.scale,n,i),e=r=null,function(t){for(var e,r=-1,a=i.length;++r<a;)n[(e=i[r]).i]=e.x(t);return n.join(\\\"\\\")}}function va(t,e){return e=(e-=t=+t)||1/e,function(r){return(r-t)/e}}function ma(t,e){return e=(e-=t=+t)||1/e,function(r){return Math.max(0,Math.min(1,(r-t)/e))}}function ya(t){for(var e=t.source,r=t.target,n=function(t,e){if(t===e)return t;var r=xa(t),n=xa(e),i=r.pop(),a=n.pop(),o=null;for(;i===a;)o=i,i=r.pop(),a=n.pop();return o}(e,r),i=[e];e!==n;)e=e.parent,i.push(e);for(var a=i.length;r!==n;)i.splice(a,0,r),r=r.parent;return i}function xa(t){for(var e=[],r=t.parent;null!=r;)e.push(t),t=r,r=r.parent;return e.push(t),e}function ba(t){t.fixed|=2}function _a(t){t.fixed&=-7}function wa(t){t.fixed|=4,t.px=t.x,t.py=t.y}function ka(t){t.fixed&=-5}t.interpolateTransform=ga,t.layout={},t.layout.bundle=function(){return function(t){for(var e=[],r=-1,n=t.length;++r<n;)e.push(ya(t[r]));return e}},t.layout.chord=function(){var e,r,n,i,a,o,s,l={},c=0;function u(){var l,u,h,p,d,g={},v=[],m=t.range(i),y=[];for(e=[],r=[],l=0,p=-1;++p<i;){for(u=0,d=-1;++d<i;)u+=n[p][d];v.push(u),y.push(t.range(i)),l+=u}for(a&&m.sort(function(t,e){return a(v[t],v[e])}),o&&y.forEach(function(t,e){t.sort(function(t,r){return o(n[e][t],n[e][r])})}),l=(Tt-c*i)/l,u=0,p=-1;++p<i;){for(h=u,d=-1;++d<i;){var x=m[p],b=y[x][d],_=n[x][b],w=u,k=u+=_*l;g[x+\\\"-\\\"+b]={index:x,subindex:b,startAngle:w,endAngle:k,value:_}}r[x]={index:x,startAngle:h,endAngle:u,value:v[x]},u+=c}for(p=-1;++p<i;)for(d=p-1;++d<i;){var M=g[p+\\\"-\\\"+d],A=g[d+\\\"-\\\"+p];(M.value||A.value)&&e.push(M.value<A.value?{source:A,target:M}:{source:M,target:A})}s&&f()}function f(){e.sort(function(t,e){return s((t.source.value+t.target.value)/2,(e.source.value+e.target.value)/2)})}return l.matrix=function(t){return arguments.length?(i=(n=t)&&n.length,e=r=null,l):n},l.padding=function(t){return arguments.length?(c=t,e=r=null,l):c},l.sortGroups=function(t){return arguments.length?(a=t,e=r=null,l):a},l.sortSubgroups=function(t){return arguments.length?(o=t,e=null,l):o},l.sortChords=function(t){return arguments.length?(s=t,e&&f(),l):s},l.chords=function(){return e||u(),e},l.groups=function(){return r||u(),r},l},t.layout.force=function(){var e,r,n,i,a,o,s={},l=t.dispatch(\\\"start\\\",\\\"tick\\\",\\\"end\\\"),c=[1,1],u=.9,f=Ma,h=Aa,p=-30,d=Ta,g=.1,v=.64,m=[],y=[];function x(t){return function(e,r,n,i){if(e.point!==t){var a=e.cx-t.x,o=e.cy-t.y,s=i-r,l=a*a+o*o;if(s*s/v<l){if(l<d){var c=e.charge/l;t.px-=a*c,t.py-=o*c}return!0}if(e.point&&l&&l<d){c=e.pointCharge/l;t.px-=a*c,t.py-=o*c}}return!e.charge}}function b(e){e.px=t.event.x,e.py=t.event.y,s.resume()}return s.tick=function(){if((n*=.99)<.005)return e=null,l.end({type:\\\"end\\\",alpha:n=0}),!0;var r,s,f,h,d,v,b,_,w,k=m.length,M=y.length;for(s=0;s<M;++s)h=(f=y[s]).source,(v=(_=(d=f.target).x-h.x)*_+(w=d.y-h.y)*w)&&(_*=v=n*a[s]*((v=Math.sqrt(v))-i[s])/v,w*=v,d.x-=_*(b=h.weight+d.weight?h.weight/(h.weight+d.weight):.5),d.y-=w*b,h.x+=_*(b=1-b),h.y+=w*b);if((b=n*g)&&(_=c[0]/2,w=c[1]/2,s=-1,b))for(;++s<k;)(f=m[s]).x+=(_-f.x)*b,f.y+=(w-f.y)*b;if(p)for(!function t(e,r,n){var i=0,a=0;e.charge=0;if(!e.leaf)for(var o,s=e.nodes,l=s.length,c=-1;++c<l;)null!=(o=s[c])&&(t(o,r,n),e.charge+=o.charge,i+=o.charge*o.cx,a+=o.charge*o.cy);if(e.point){e.leaf||(e.point.x+=Math.random()-.5,e.point.y+=Math.random()-.5);var u=r*n[e.point.index];e.charge+=e.pointCharge=u,i+=u*e.point.x,a+=u*e.point.y}e.cx=i/e.charge;e.cy=a/e.charge}(r=t.geom.quadtree(m),n,o),s=-1;++s<k;)(f=m[s]).fixed||r.visit(x(f));for(s=-1;++s<k;)(f=m[s]).fixed?(f.x=f.px,f.y=f.py):(f.x-=(f.px-(f.px=f.x))*u,f.y-=(f.py-(f.py=f.y))*u);l.tick({type:\\\"tick\\\",alpha:n})},s.nodes=function(t){return arguments.length?(m=t,s):m},s.links=function(t){return arguments.length?(y=t,s):y},s.size=function(t){return arguments.length?(c=t,s):c},s.linkDistance=function(t){return arguments.length?(f=\\\"function\\\"==typeof t?t:+t,s):f},s.distance=s.linkDistance,s.linkStrength=function(t){return arguments.length?(h=\\\"function\\\"==typeof t?t:+t,s):h},s.friction=function(t){return arguments.length?(u=+t,s):u},s.charge=function(t){return arguments.length?(p=\\\"function\\\"==typeof t?t:+t,s):p},s.chargeDistance=function(t){return arguments.length?(d=t*t,s):Math.sqrt(d)},s.gravity=function(t){return arguments.length?(g=+t,s):g},s.theta=function(t){return arguments.length?(v=t*t,s):Math.sqrt(v)},s.alpha=function(t){return arguments.length?(t=+t,n?t>0?n=t:(e.c=null,e.t=NaN,e=null,l.end({type:\\\"end\\\",alpha:n=0})):t>0&&(l.start({type:\\\"start\\\",alpha:n=t}),e=Me(s.tick)),s):n},s.start=function(){var t,e,r,n=m.length,l=y.length,u=c[0],d=c[1];for(t=0;t<n;++t)(r=m[t]).index=t,r.weight=0;for(t=0;t<l;++t)\\\"number\\\"==typeof(r=y[t]).source&&(r.source=m[r.source]),\\\"number\\\"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;t<n;++t)r=m[t],isNaN(r.x)&&(r.x=g(\\\"x\\\",u)),isNaN(r.y)&&(r.y=g(\\\"y\\\",d)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(i=[],\\\"function\\\"==typeof f)for(t=0;t<l;++t)i[t]=+f.call(this,y[t],t);else for(t=0;t<l;++t)i[t]=f;if(a=[],\\\"function\\\"==typeof h)for(t=0;t<l;++t)a[t]=+h.call(this,y[t],t);else for(t=0;t<l;++t)a[t]=h;if(o=[],\\\"function\\\"==typeof p)for(t=0;t<n;++t)o[t]=+p.call(this,m[t],t);else for(t=0;t<n;++t)o[t]=p;function g(r,i){if(!e){for(e=new Array(n),c=0;c<n;++c)e[c]=[];for(c=0;c<l;++c){var a=y[c];e[a.source.index].push(a.target),e[a.target.index].push(a.source)}}for(var o,s=e[t],c=-1,u=s.length;++c<u;)if(!isNaN(o=s[c][r]))return o;return Math.random()*i}return s.resume()},s.resume=function(){return s.alpha(.1)},s.stop=function(){return s.alpha(0)},s.drag=function(){if(r||(r=t.behavior.drag().origin(z).on(\\\"dragstart.force\\\",ba).on(\\\"drag.force\\\",b).on(\\\"dragend.force\\\",_a)),!arguments.length)return r;this.on(\\\"mouseover.force\\\",wa).on(\\\"mouseout.force\\\",ka).call(r)},t.rebind(s,l,\\\"on\\\")};var Ma=20,Aa=1,Ta=1/0;function Sa(e,r){return t.rebind(e,r,\\\"sort\\\",\\\"children\\\",\\\"value\\\"),e.nodes=e,e.links=Ia,e}function Ea(t,e){for(var r=[t];null!=(t=r.pop());)if(e(t),(i=t.children)&&(n=i.length))for(var n,i;--n>=0;)r.push(i[n])}function Ca(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o<i;)r.push(a[o]);for(;null!=(t=n.pop());)e(t)}function La(t){return t.children}function za(t){return t.value}function Oa(t,e){return e.value-t.value}function Ia(e){return t.merge(e.map(function(t){return(t.children||[]).map(function(e){return{source:t,target:e}})}))}t.layout.hierarchy=function(){var t=Oa,e=La,r=za;function n(i){var a,o=[i],s=[];for(i.depth=0;null!=(a=o.pop());)if(s.push(a),(c=e.call(n,a,a.depth))&&(l=c.length)){for(var l,c,u;--l>=0;)o.push(u=c[l]),u.parent=a,u.depth=a.depth+1;r&&(a.value=0),a.children=c}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return Ca(i,function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)}),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ea(t,function(t){t.children&&(t.value=0)}),Ca(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},t.layout.partition=function(){var e=t.layout.hierarchy(),r=[1,1];function n(t,n){var i=e.call(this,t,n);return function t(e,r,n,i){var a=e.children;if(e.x=r,e.y=e.depth*i,e.dx=n,e.dy=i,a&&(o=a.length)){var o,s,l,c=-1;for(n=e.value?n/e.value:0;++c<o;)t(s=a[c],r,l=s.value*n,i),r+=l}}(i[0],0,r[0],r[1]/function t(e){var r=e.children,n=0;if(r&&(i=r.length))for(var i,a=-1;++a<i;)n=Math.max(n,t(r[a]));return 1+n}(i[0])),i}return n.size=function(t){return arguments.length?(r=t,n):r},Sa(n,e)},t.layout.pie=function(){var e=Number,r=Pa,n=0,i=Tt,a=0;function o(s){var l,c=s.length,u=s.map(function(t,r){return+e.call(o,t,r)}),f=+(\\\"function\\\"==typeof n?n.apply(this,arguments):n),h=(\\\"function\\\"==typeof i?i.apply(this,arguments):i)-f,p=Math.min(Math.abs(h)/c,+(\\\"function\\\"==typeof a?a.apply(this,arguments):a)),d=p*(h<0?-1:1),g=t.sum(u),v=g?(h-c*d)/g:0,m=t.range(c),y=[];return null!=r&&m.sort(r===Pa?function(t,e){return u[e]-u[t]}:function(t,e){return r(s[t],s[e])}),m.forEach(function(t){y[t]={data:s[t],value:l=u[t],startAngle:f,endAngle:f+=l*v+d,padAngle:p}}),y}return o.value=function(t){return arguments.length?(e=t,o):e},o.sort=function(t){return arguments.length?(r=t,o):r},o.startAngle=function(t){return arguments.length?(n=t,o):n},o.endAngle=function(t){return arguments.length?(i=t,o):i},o.padAngle=function(t){return arguments.length?(a=t,o):a},o};var Pa={};function Da(t){return t.x}function Ra(t){return t.y}function Ba(t,e,r){t.y0=e,t.y=r}t.layout.stack=function(){var e=z,r=ja,n=Va,i=Ba,a=Da,o=Ra;function s(l,c){if(!(p=l.length))return l;var u=l.map(function(t,r){return e.call(s,t,r)}),f=u.map(function(t){return t.map(function(t,e){return[a.call(s,t,e),o.call(s,t,e)]})}),h=r.call(s,f,c);u=t.permute(u,h),f=t.permute(f,h);var p,d,g,v,m=n.call(s,f,c),y=u[0].length;for(g=0;g<y;++g)for(i.call(s,u[0][g],v=m[g],f[0][g][1]),d=1;d<p;++d)i.call(s,u[d][g],v+=f[d-1][g][1],f[d][g][1]);return l}return s.values=function(t){return arguments.length?(e=t,s):e},s.order=function(t){return arguments.length?(r=\\\"function\\\"==typeof t?t:Fa.get(t)||ja,s):r},s.offset=function(t){return arguments.length?(n=\\\"function\\\"==typeof t?t:Na.get(t)||Va,s):n},s.x=function(t){return arguments.length?(a=t,s):a},s.y=function(t){return arguments.length?(o=t,s):o},s.out=function(t){return arguments.length?(i=t,s):i},s};var Fa=t.map({\\\"inside-out\\\":function(e){var r,n,i=e.length,a=e.map(Ua),o=e.map(qa),s=t.range(i).sort(function(t,e){return a[t]-a[e]}),l=0,c=0,u=[],f=[];for(r=0;r<i;++r)n=s[r],l<c?(l+=o[n],u.push(n)):(c+=o[n],f.push(n));return f.reverse().concat(u)},reverse:function(e){return t.range(e.length).reverse()},default:ja}),Na=t.map({silhouette:function(t){var e,r,n,i=t.length,a=t[0].length,o=[],s=0,l=[];for(r=0;r<a;++r){for(e=0,n=0;e<i;e++)n+=t[e][r][1];n>s&&(s=n),o.push(n)}for(r=0;r<a;++r)l[r]=(s-o[r])/2;return l},wiggle:function(t){var e,r,n,i,a,o,s,l,c,u=t.length,f=t[0],h=f.length,p=[];for(p[0]=l=c=0,r=1;r<h;++r){for(e=0,i=0;e<u;++e)i+=t[e][r][1];for(e=0,a=0,s=f[r][0]-f[r-1][0];e<u;++e){for(n=0,o=(t[e][r][1]-t[e][r-1][1])/(2*s);n<e;++n)o+=(t[n][r][1]-t[n][r-1][1])/s;a+=o*t[e][r][1]}p[r]=l-=i?a/i*s:0,l<c&&(c=l)}for(r=0;r<h;++r)p[r]-=c;return p},expand:function(t){var e,r,n,i=t.length,a=t[0].length,o=1/i,s=[];for(r=0;r<a;++r){for(e=0,n=0;e<i;e++)n+=t[e][r][1];if(n)for(e=0;e<i;e++)t[e][r][1]/=n;else for(e=0;e<i;e++)t[e][r][1]=o}for(r=0;r<a;++r)s[r]=0;return s},zero:Va});function ja(e){return t.range(e.length)}function Va(t){for(var e=-1,r=t[0].length,n=[];++e<r;)n[e]=0;return n}function Ua(t){for(var e,r=1,n=0,i=t[0][1],a=t.length;r<a;++r)(e=t[r][1])>i&&(n=r,i=e);return n}function qa(t){return t.reduce(Ha,0)}function Ha(t,e){return t+e[1]}function Ga(t,e){return Wa(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Wa(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function Ya(e){return[t.min(e),t.max(e)]}function Xa(t,e){return t.value-e.value}function Za(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function $a(t,e){t._pack_next=e,e._pack_prev=t}function Ja(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function Ka(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,c=1/0,u=-1/0,f=1/0,h=-1/0;if(e.forEach(Qa),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(eo(r,n,i=e[2]),x(i),Za(r,i),r._pack_prev=i,Za(i,n),n=r._pack_next,a=3;a<l;a++){eo(r,n,i=e[a]);var p=0,d=1,g=1;for(o=n._pack_next;o!==n;o=o._pack_next,d++)if(Ja(o,i)){p=1;break}if(1==p)for(s=r._pack_prev;s!==o._pack_prev&&!Ja(s,i);s=s._pack_prev,g++);p?(d<g||d==g&&n.r<r.r?$a(r,n=o):$a(r=s,n),a--):(Za(r,i),n=i,x(i))}var v=(c+u)/2,m=(f+h)/2,y=0;for(a=0;a<l;a++)(i=e[a]).x-=v,i.y-=m,y=Math.max(y,i.r+Math.sqrt(i.x*i.x+i.y*i.y));t.r=y,e.forEach(to)}function x(t){c=Math.min(t.x-t.r,c),u=Math.max(t.x+t.r,u),f=Math.min(t.y-t.r,f),h=Math.max(t.y+t.r,h)}}function Qa(t){t._pack_next=t._pack_prev=t}function to(t){delete t._pack_next,delete t._pack_prev}function eo(t,e,r){var n=t.r+r.r,i=e.x-t.x,a=e.y-t.y;if(n&&(i||a)){var o=e.r+r.r,s=i*i+a*a,l=.5+((n*=n)-(o*=o))/(2*s),c=Math.sqrt(Math.max(0,2*o*(n+s)-(n-=s)*n-o*o))/(2*s);r.x=t.x+l*i+c*a,r.y=t.y+l*a-c*i}else r.x=t.x+n,r.y=t.y}function ro(t,e){return t.parent==e.parent?1:2}function no(t){var e=t.children;return e.length?e[0]:t.t}function io(t){var e,r=t.children;return(e=r.length)?r[e-1]:t.t}function ao(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function oo(t,e,r){return t.a.parent===e.parent?t.a:r}function so(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function lo(t,e){var r=t.x+e[3],n=t.y+e[0],i=t.dx-e[1]-e[3],a=t.dy-e[0]-e[2];return i<0&&(r+=i/2,i=0),a<0&&(n+=a/2,a=0),{x:r,y:n,dx:i,dy:a}}function co(t){var e=t[0],r=t[t.length-1];return e<r?[e,r]:[r,e]}function uo(t){return t.rangeExtent?t.rangeExtent():co(t.range())}function fo(t,e,r,n){var i=r(t[0],t[1]),a=n(e[0],e[1]);return function(t){return a(i(t))}}function ho(t,e){var r,n=0,i=t.length-1,a=t[n],o=t[i];return o<a&&(r=n,n=i,i=r,r=a,a=o,o=r),t[n]=e.floor(a),t[i]=e.ceil(o),t}function po(t){return t?{floor:function(e){return Math.floor(e/t)*t},ceil:function(e){return Math.ceil(e/t)*t}}:go}t.layout.histogram=function(){var e=!0,r=Number,n=Ya,i=Ga;function a(a,o){for(var s,l,c=[],u=a.map(r,this),f=n.call(this,u,o),h=i.call(this,f,u,o),p=(o=-1,u.length),d=h.length-1,g=e?1:1/p;++o<d;)(s=c[o]=[]).dx=h[o+1]-(s.x=h[o]),s.y=0;if(d>0)for(o=-1;++o<p;)(l=u[o])>=f[0]&&l<=f[1]&&((s=c[t.bisect(h,l,1,d)-1]).y+=g,s.push(a[o]));return c}return a.value=function(t){return arguments.length?(r=t,a):r},a.range=function(t){return arguments.length?(n=ve(t),a):n},a.bins=function(t){return arguments.length?(i=\\\"number\\\"==typeof t?function(e){return Wa(e,t)}:ve(t),a):i},a.frequency=function(t){return arguments.length?(e=!!t,a):e},a},t.layout.pack=function(){var e,r=t.layout.hierarchy().sort(Xa),n=0,i=[1,1];function a(t,a){var o=r.call(this,t,a),s=o[0],l=i[0],c=i[1],u=null==e?Math.sqrt:\\\"function\\\"==typeof e?e:function(){return e};if(s.x=s.y=0,Ca(s,function(t){t.r=+u(t.value)}),Ca(s,Ka),n){var f=n*(e?1:Math.max(2*s.r/l,2*s.r/c))/2;Ca(s,function(t){t.r+=f}),Ca(s,Ka),Ca(s,function(t){t.r-=f})}return function t(e,r,n,i){var a=e.children;e.x=r+=i*e.x;e.y=n+=i*e.y;e.r*=i;if(a)for(var o=-1,s=a.length;++o<s;)t(a[o],r,n,i)}(s,l/2,c/2,e?1:1/Math.max(2*s.r/l,2*s.r/c)),o}return a.size=function(t){return arguments.length?(i=t,a):i},a.radius=function(t){return arguments.length?(e=null==t||\\\"function\\\"==typeof t?t:+t,a):e},a.padding=function(t){return arguments.length?(n=+t,a):n},Sa(a,r)},t.layout.tree=function(){var e=t.layout.hierarchy().sort(null).value(null),r=ro,n=[1,1],i=null;function a(t,a){var c=e.call(this,t,a),u=c[0],f=function(t){var e,r={A:null,children:[t]},n=[r];for(;null!=(e=n.pop());)for(var i,a=e.children,o=0,s=a.length;o<s;++o)n.push((a[o]=i={_:a[o],parent:e,children:(i=a[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return r.children[0]}(u);if(Ca(f,o),f.parent.m=-f.z,Ea(f,s),i)Ea(u,l);else{var h=u,p=u,d=u;Ea(u,function(t){t.x<h.x&&(h=t),t.x>p.x&&(p=t),t.depth>d.depth&&(d=t)});var g=r(h,p)/2-h.x,v=n[0]/(p.x+r(p,h)/2+g),m=n[1]/(d.depth||1);Ea(u,function(t){t.x=(t.x+g)*v,t.y=t.depth*m})}return c}function o(t){var e=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,r=0,n=0,i=t.children,a=i.length;for(;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;i?(t.z=i.z+r(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+r(t._,i._));t.parent.A=function(t,e,n){if(e){for(var i,a=t,o=t,s=e,l=a.parent.children[0],c=a.m,u=o.m,f=s.m,h=l.m;s=io(s),a=no(a),s&&a;)l=no(l),(o=io(o)).a=t,(i=s.z+f-a.z-c+r(s._,a._))>0&&(ao(oo(s,t,n),t,i),c+=i,u+=i),f+=s.m,c+=a.m,h+=l.m,u+=o.m;s&&!io(o)&&(o.t=s,o.m+=f-u),a&&!no(l)&&(l.t=a,l.m+=c-h,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=n[0],t.y=t.depth*n[1]}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t)?l:null,a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null==(n=t)?null:l,a):i?n:null},Sa(a,e)},t.layout.cluster=function(){var e=t.layout.hierarchy().sort(null).value(null),r=ro,n=[1,1],i=!1;function a(a,o){var s,l=e.call(this,a,o),c=l[0],u=0;Ca(c,function(e){var n=e.children;n&&n.length?(e.x=function(t){return t.reduce(function(t,e){return t+e.x},0)/t.length}(n),e.y=function(e){return 1+t.max(e,function(t){return t.y})}(n)):(e.x=s?u+=r(e,s):0,e.y=0,s=e)});var f=function t(e){var r=e.children;return r&&r.length?t(r[0]):e}(c),h=function t(e){var r,n=e.children;return n&&(r=n.length)?t(n[r-1]):e}(c),p=f.x-r(f,h)/2,d=h.x+r(h,f)/2;return Ca(c,i?function(t){t.x=(t.x-c.x)*n[0],t.y=(c.y-t.y)*n[1]}:function(t){t.x=(t.x-p)/(d-p)*n[0],t.y=(1-(c.y?t.y/c.y:1))*n[1]}),l}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t),a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null!=(n=t),a):i?n:null},Sa(a,e)},t.layout.treemap=function(){var e,r=t.layout.hierarchy(),n=Math.round,i=[1,1],a=null,o=so,s=!1,l=\\\"squarify\\\",c=.5*(1+Math.sqrt(5));function u(t,e){for(var r,n,i=-1,a=t.length;++i<a;)n=(r=t[i]).value*(e<0?0:e),r.area=isNaN(n)||n<=0?0:n}function f(t){var e=t.children;if(e&&e.length){var r,n,i,a=o(t),s=[],c=e.slice(),h=1/0,g=\\\"slice\\\"===l?a.dx:\\\"dice\\\"===l?a.dy:\\\"slice-dice\\\"===l?1&t.depth?a.dy:a.dx:Math.min(a.dx,a.dy);for(u(c,a.dx*a.dy/t.value),s.area=0;(i=c.length)>0;)s.push(r=c[i-1]),s.area+=r.area,\\\"squarify\\\"!==l||(n=p(s,g))<=h?(c.pop(),h=n):(s.area-=s.pop().area,d(s,g,a,!1),g=Math.min(a.dx,a.dy),s.length=s.area=0,h=1/0);s.length&&(d(s,g,a,!0),s.length=s.area=0),e.forEach(f)}}function h(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(u(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(h)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++o<s;)(r=t[o].area)&&(r<a&&(a=r),r>i&&(i=r));return e*=e,(n*=n)?Math.max(e*i*c/n,n/(e*a*c)):1/0}function d(t,e,r,i){var a,o=-1,s=t.length,l=r.x,c=r.y,u=e?n(t.area/e):0;if(e==r.dx){for((i||u>r.dy)&&(u=r.dy);++o<s;)(a=t[o]).x=l,a.y=c,a.dy=u,l+=a.dx=Math.min(r.x+r.dx-l,u?n(a.area/u):0);a.z=!0,a.dx+=r.x+r.dx-l,r.y+=u,r.dy-=u}else{for((i||u>r.dx)&&(u=r.dx);++o<s;)(a=t[o]).x=l,a.y=c,a.dx=u,c+=a.dy=Math.min(r.y+r.dy-c,u?n(a.area/u):0);a.z=!1,a.dy+=r.y+r.dy-c,r.x+=u,r.dx-=u}}function g(t){var n=e||r(t),a=n[0];return a.x=a.y=0,a.value?(a.dx=i[0],a.dy=i[1]):a.dx=a.dy=0,e&&r.revalue(a),u([a],a.dx*a.dy/a.value),(e?h:f)(a),s&&(e=n),n}return g.size=function(t){return arguments.length?(i=t,g):i},g.padding=function(t){if(!arguments.length)return a;function e(e){return lo(e,t)}var r;return o=null==(a=t)?so:\\\"function\\\"==(r=typeof t)?function(e){var r=t.call(g,e,e.depth);return null==r?so(e):lo(e,\\\"number\\\"==typeof r?[r,r,r,r]:r)}:\\\"number\\\"===r?(t=[t,t,t,t],e):e,g},g.round=function(t){return arguments.length?(n=t?Math.round:Number,g):n!=Number},g.sticky=function(t){return arguments.length?(s=t,e=null,g):s},g.ratio=function(t){return arguments.length?(c=t,g):c},g.mode=function(t){return arguments.length?(l=t+\\\"\\\",g):l},Sa(g,r)},t.random={normal:function(t,e){var r=arguments.length;return r<2&&(e=1),r<1&&(t=0),function(){var r,n,i;do{i=(r=2*Math.random()-1)*r+(n=2*Math.random()-1)*n}while(!i||i>1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var e=t.random.normal.apply(t,arguments);return function(){return Math.exp(e())}},bates:function(e){var r=t.random.irwinHall(e);return function(){return r()/e}},irwinHall:function(t){return function(){for(var e=0,r=0;r<t;r++)e+=Math.random();return e}}},t.scale={};var go={floor:z,ceil:z};function vo(e,r,n,i){var a=[],o=[],s=0,l=Math.min(e.length,r.length)-1;for(e[l]<e[0]&&(e=e.slice().reverse(),r=r.slice().reverse());++s<=l;)a.push(n(e[s-1],e[s])),o.push(i(r[s-1],r[s]));return function(r){var n=t.bisect(e,r,1,l)-1;return o[n](a[n](r))}}function mo(e,r){return t.rebind(e,r,\\\"range\\\",\\\"rangeRound\\\",\\\"interpolate\\\",\\\"clamp\\\")}function yo(t,e){return ho(t,po(xo(t,e)[2])),ho(t,po(xo(t,e)[2])),t}function xo(t,e){null==e&&(e=10);var r=co(t),n=r[1]-r[0],i=Math.pow(10,Math.floor(Math.log(n/e)/Math.LN10)),a=e/n*i;return a<=.15?i*=10:a<=.35?i*=5:a<=.75&&(i*=2),r[0]=Math.ceil(r[0]/i)*i,r[1]=Math.floor(r[1]/i)*i+.5*i,r[2]=i,r}function bo(e,r){return t.range.apply(t,xo(e,r))}function _o(e,r,n){var i=xo(e,r);if(n){var a=Le.exec(n);if(a.shift(),\\\"s\\\"===a[8]){var o=t.formatPrefix(Math.max(y(i[0]),y(i[1])));return a[7]||(a[7]=\\\".\\\"+ko(o.scale(i[2]))),a[8]=\\\"f\\\",n=t.format(a.join(\\\"\\\")),function(t){return n(o.scale(t))+o.symbol}}a[7]||(a[7]=\\\".\\\"+function(t,e){var r=ko(e[2]);return t in wo?Math.abs(r-ko(Math.max(y(e[0]),y(e[1]))))+ +(\\\"e\\\"!==t):r-2*(\\\"%\\\"===t)}(a[8],i)),n=a.join(\\\"\\\")}else n=\\\",.\\\"+ko(i[2])+\\\"f\\\";return t.format(n)}t.scale.linear=function(){return function t(e,r,n,i){var a,o;function s(){var t=Math.min(e.length,r.length)>2?vo:fo,s=i?ma:va;return a=t(e,r,s,n),o=t(r,e,s,Zi),l}function l(t){return a(t)}l.invert=function(t){return o(t)};l.domain=function(t){return arguments.length?(e=t.map(Number),s()):e};l.range=function(t){return arguments.length?(r=t,s()):r};l.rangeRound=function(t){return l.range(t).interpolate(ca)};l.clamp=function(t){return arguments.length?(i=t,s()):i};l.interpolate=function(t){return arguments.length?(n=t,s()):n};l.ticks=function(t){return bo(e,t)};l.tickFormat=function(t,r){return _o(e,t,r)};l.nice=function(t){return yo(e,t),s()};l.copy=function(){return t(e,r,n,i)};return s()}([0,1],[0,1],Zi,!1)};var wo={s:1,g:1,p:1,r:1,e:1};function ko(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}t.scale.log=function(){return function e(r,n,i,a){function o(t){return(i?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(n)}function s(t){return i?Math.pow(n,t):-Math.pow(n,-t)}function l(t){return r(o(t))}l.invert=function(t){return s(r.invert(t))};l.domain=function(t){return arguments.length?(i=t[0]>=0,r.domain((a=t.map(Number)).map(o)),l):a};l.base=function(t){return arguments.length?(n=+t,r.domain(a.map(o)),l):n};l.nice=function(){var t=ho(a.map(o),i?Math:Ao);return r.domain(t),a=t.map(s),l};l.ticks=function(){var t=co(a),e=[],r=t[0],l=t[1],c=Math.floor(o(r)),u=Math.ceil(o(l)),f=n%1?2:n;if(isFinite(u-c)){if(i){for(;c<u;c++)for(var h=1;h<f;h++)e.push(s(c)*h);e.push(s(c))}else for(e.push(s(c));c++<u;)for(var h=f-1;h>0;h--)e.push(s(c)*h);for(c=0;e[c]<r;c++);for(u=e.length;e[u-1]>l;u--);e=e.slice(c,u)}return e};l.tickFormat=function(e,r){if(!arguments.length)return Mo;arguments.length<2?r=Mo:\\\"function\\\"!=typeof r&&(r=t.format(r));var i=Math.max(1,n*e/l.ticks().length);return function(t){var e=t/s(Math.round(o(t)));return e*n<n-.5&&(e*=n),e<=i?r(t):\\\"\\\"}};l.copy=function(){return e(r.copy(),n,i,a)};return mo(l,r)}(t.scale.linear().domain([0,1]),10,!0,[1,10])};var Mo=t.format(\\\".0e\\\"),Ao={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};function To(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}t.scale.pow=function(){return function t(e,r,n){var i=To(r),a=To(1/r);function o(t){return e(i(t))}o.invert=function(t){return a(e.invert(t))};o.domain=function(t){return arguments.length?(e.domain((n=t.map(Number)).map(i)),o):n};o.ticks=function(t){return bo(n,t)};o.tickFormat=function(t,e){return _o(n,t,e)};o.nice=function(t){return o.domain(yo(n,t))};o.exponent=function(t){return arguments.length?(i=To(r=t),a=To(1/r),e.domain(n.map(i)),o):r};o.copy=function(){return t(e.copy(),r,n)};return mo(o,e)}(t.scale.linear(),1,[0,1])},t.scale.sqrt=function(){return t.scale.pow().exponent(.5)},t.scale.ordinal=function(){return function e(r,n){var i,a,o;function s(t){return a[((i.get(t)||(\\\"range\\\"===n.t?i.set(t,r.push(t)):NaN))-1)%a.length]}function l(e,n){return t.range(r.length).map(function(t){return e+n*t})}s.domain=function(t){if(!arguments.length)return r;r=[],i=new b;for(var e,a=-1,o=t.length;++a<o;)i.has(e=t[a])||i.set(e,r.push(e));return s[n.t].apply(s,n.a)};s.range=function(t){return arguments.length?(a=t,o=0,n={t:\\\"range\\\",a:arguments},s):a};s.rangePoints=function(t,e){arguments.length<2&&(e=0);var i=t[0],c=t[1],u=r.length<2?(i=(i+c)/2,0):(c-i)/(r.length-1+e);return a=l(i+u*e/2,u),o=0,n={t:\\\"rangePoints\\\",a:arguments},s};s.rangeRoundPoints=function(t,e){arguments.length<2&&(e=0);var i=t[0],c=t[1],u=r.length<2?(i=c=Math.round((i+c)/2),0):(c-i)/(r.length-1+e)|0;return a=l(i+Math.round(u*e/2+(c-i-(r.length-1+e)*u)/2),u),o=0,n={t:\\\"rangeRoundPoints\\\",a:arguments},s};s.rangeBands=function(t,e,i){arguments.length<2&&(e=0),arguments.length<3&&(i=e);var c=t[1]<t[0],u=t[c-0],f=t[1-c],h=(f-u)/(r.length-e+2*i);return a=l(u+h*i,h),c&&a.reverse(),o=h*(1-e),n={t:\\\"rangeBands\\\",a:arguments},s};s.rangeRoundBands=function(t,e,i){arguments.length<2&&(e=0),arguments.length<3&&(i=e);var c=t[1]<t[0],u=t[c-0],f=t[1-c],h=Math.floor((f-u)/(r.length-e+2*i));return a=l(u+Math.round((f-u-(r.length-e)*h)/2),h),c&&a.reverse(),o=Math.round(h*(1-e)),n={t:\\\"rangeRoundBands\\\",a:arguments},s};s.rangeBand=function(){return o};s.rangeExtent=function(){return co(n.a[0])};s.copy=function(){return e(r,n)};return s.domain(r)}([],{t:\\\"range\\\",a:[[]]})},t.scale.category10=function(){return t.scale.ordinal().range(So)},t.scale.category20=function(){return t.scale.ordinal().range(Eo)},t.scale.category20b=function(){return t.scale.ordinal().range(Co)},t.scale.category20c=function(){return t.scale.ordinal().range(Lo)};var So=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(se),Eo=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(se),Co=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(se),Lo=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(se);function zo(){return 0}t.scale.quantile=function(){return function e(r,n){var i;function a(){var e=0,a=n.length;for(i=[];++e<a;)i[e-1]=t.quantile(r,e/a);return o}function o(e){if(!isNaN(e=+e))return n[t.bisect(i,e)]}o.domain=function(t){return arguments.length?(r=t.map(p).filter(d).sort(h),a()):r};o.range=function(t){return arguments.length?(n=t,a()):n};o.quantiles=function(){return i};o.invertExtent=function(t){return(t=n.indexOf(t))<0?[NaN,NaN]:[t>0?i[t-1]:r[0],t<i.length?i[t]:r[r.length-1]]};o.copy=function(){return e(r,n)};return a()}([],[])},t.scale.quantize=function(){return function t(e,r,n){var i,a;function o(t){return n[Math.max(0,Math.min(a,Math.floor(i*(t-e))))]}function s(){return i=n.length/(r-e),a=n.length-1,o}o.domain=function(t){return arguments.length?(e=+t[0],r=+t[t.length-1],s()):[e,r]};o.range=function(t){return arguments.length?(n=t,s()):n};o.invertExtent=function(t){return[t=(t=n.indexOf(t))<0?NaN:t/i+e,t+1/i]};o.copy=function(){return t(e,r,n)};return s()}(0,1,[0,1])},t.scale.threshold=function(){return function e(r,n){function i(e){if(e<=e)return n[t.bisect(r,e)]}i.domain=function(t){return arguments.length?(r=t,i):r};i.range=function(t){return arguments.length?(n=t,i):n};i.invertExtent=function(t){return t=n.indexOf(t),[r[t-1],r[t]]};i.copy=function(){return e(r,n)};return i}([.5],[0,1])},t.scale.identity=function(){return function t(e){function r(t){return+t}r.invert=r;r.domain=r.range=function(t){return arguments.length?(e=t.map(r),r):e};r.ticks=function(t){return bo(e,t)};r.tickFormat=function(t,r){return _o(e,t,r)};r.copy=function(){return t(e)};return r}([0,1])},t.svg={},t.svg.arc=function(){var t=Io,e=Po,r=zo,n=Oo,i=Do,a=Ro,o=Bo;function s(){var s=Math.max(0,+t.apply(this,arguments)),c=Math.max(0,+e.apply(this,arguments)),u=i.apply(this,arguments)-Et,f=a.apply(this,arguments)-Et,h=Math.abs(f-u),p=u>f?0:1;if(c<s&&(d=c,c=s,s=d),h>=St)return l(c,p)+(s?l(s,1-p):\\\"\\\")+\\\"Z\\\";var d,g,v,m,y,x,b,_,w,k,M,A,T=0,S=0,E=[];if((m=(+o.apply(this,arguments)||0)/2)&&(v=n===Oo?Math.sqrt(s*s+c*c):+n.apply(this,arguments),p||(S*=-1),c&&(S=Pt(v/c*Math.sin(m))),s&&(T=Pt(v/s*Math.sin(m)))),c){y=c*Math.cos(u+S),x=c*Math.sin(u+S),b=c*Math.cos(f-S),_=c*Math.sin(f-S);var C=Math.abs(f-u-2*S)<=At?0:1;if(S&&Fo(y,x,b,_)===p^C){var L=(u+f)/2;y=c*Math.cos(L),x=c*Math.sin(L),b=_=null}}else y=x=0;if(s){w=s*Math.cos(f-T),k=s*Math.sin(f-T),M=s*Math.cos(u+T),A=s*Math.sin(u+T);var z=Math.abs(u-f+2*T)<=At?0:1;if(T&&Fo(w,k,M,A)===1-p^z){var O=(u+f)/2;w=s*Math.cos(O),k=s*Math.sin(O),M=A=null}}else w=k=0;if(h>kt&&(d=Math.min(Math.abs(c-s)/2,+r.apply(this,arguments)))>.001){g=s<c^p?0:1;var I=d,P=d;if(h<At){var D=null==M?[w,k]:null==b?[y,x]:si([y,x],[M,A],[b,_],[w,k]),R=y-D[0],B=x-D[1],F=b-D[0],N=_-D[1],j=1/Math.sin(Math.acos((R*F+B*N)/(Math.sqrt(R*R+B*B)*Math.sqrt(F*F+N*N)))/2),V=Math.sqrt(D[0]*D[0]+D[1]*D[1]);P=Math.min(d,(s-V)/(j-1)),I=Math.min(d,(c-V)/(j+1))}if(null!=b){var U=No(null==M?[w,k]:[M,A],[y,x],c,I,p),q=No([b,_],[w,k],c,I,p);d===I?E.push(\\\"M\\\",U[0],\\\"A\\\",I,\\\",\\\",I,\\\" 0 0,\\\",g,\\\" \\\",U[1],\\\"A\\\",c,\\\",\\\",c,\\\" 0 \\\",1-p^Fo(U[1][0],U[1][1],q[1][0],q[1][1]),\\\",\\\",p,\\\" \\\",q[1],\\\"A\\\",I,\\\",\\\",I,\\\" 0 0,\\\",g,\\\" \\\",q[0]):E.push(\\\"M\\\",U[0],\\\"A\\\",I,\\\",\\\",I,\\\" 0 1,\\\",g,\\\" \\\",q[0])}else E.push(\\\"M\\\",y,\\\",\\\",x);if(null!=M){var H=No([y,x],[M,A],s,-P,p),G=No([w,k],null==b?[y,x]:[b,_],s,-P,p);d===P?E.push(\\\"L\\\",G[0],\\\"A\\\",P,\\\",\\\",P,\\\" 0 0,\\\",g,\\\" \\\",G[1],\\\"A\\\",s,\\\",\\\",s,\\\" 0 \\\",p^Fo(G[1][0],G[1][1],H[1][0],H[1][1]),\\\",\\\",1-p,\\\" \\\",H[1],\\\"A\\\",P,\\\",\\\",P,\\\" 0 0,\\\",g,\\\" \\\",H[0]):E.push(\\\"L\\\",G[0],\\\"A\\\",P,\\\",\\\",P,\\\" 0 0,\\\",g,\\\" \\\",H[0])}else E.push(\\\"L\\\",w,\\\",\\\",k)}else E.push(\\\"M\\\",y,\\\",\\\",x),null!=b&&E.push(\\\"A\\\",c,\\\",\\\",c,\\\" 0 \\\",C,\\\",\\\",p,\\\" \\\",b,\\\",\\\",_),E.push(\\\"L\\\",w,\\\",\\\",k),null!=M&&E.push(\\\"A\\\",s,\\\",\\\",s,\\\" 0 \\\",z,\\\",\\\",1-p,\\\" \\\",M,\\\",\\\",A);return E.push(\\\"Z\\\"),E.join(\\\"\\\")}function l(t,e){return\\\"M0,\\\"+t+\\\"A\\\"+t+\\\",\\\"+t+\\\" 0 1,\\\"+e+\\\" 0,\\\"+-t+\\\"A\\\"+t+\\\",\\\"+t+\\\" 0 1,\\\"+e+\\\" 0,\\\"+t}return s.innerRadius=function(e){return arguments.length?(t=ve(e),s):t},s.outerRadius=function(t){return arguments.length?(e=ve(t),s):e},s.cornerRadius=function(t){return arguments.length?(r=ve(t),s):r},s.padRadius=function(t){return arguments.length?(n=t==Oo?Oo:ve(t),s):n},s.startAngle=function(t){return arguments.length?(i=ve(t),s):i},s.endAngle=function(t){return arguments.length?(a=ve(t),s):a},s.padAngle=function(t){return arguments.length?(o=ve(t),s):o},s.centroid=function(){var r=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,n=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-Et;return[Math.cos(n)*r,Math.sin(n)*r]},s};var Oo=\\\"auto\\\";function Io(t){return t.innerRadius}function Po(t){return t.outerRadius}function Do(t){return t.startAngle}function Ro(t){return t.endAngle}function Bo(t){return t&&t.padAngle}function Fo(t,e,r,n){return(t-r)*e-(e-n)*t>0?0:1}function No(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,c=-s*a,u=t[0]+l,f=t[1]+c,h=e[0]+l,p=e[1]+c,d=(u+h)/2,g=(f+p)/2,v=h-u,m=p-f,y=v*v+m*m,x=r-n,b=u*p-h*f,_=(m<0?-1:1)*Math.sqrt(Math.max(0,x*x*y-b*b)),w=(b*m-v*_)/y,k=(-b*v-m*_)/y,M=(b*m+v*_)/y,A=(-b*v+m*_)/y,T=w-d,S=k-g,E=M-d,C=A-g;return T*T+S*S>E*E+C*C&&(w=M,k=A),[[w-l,k-c],[w*r/x,k*r/x]]}function jo(t){var e=ei,r=ri,n=Wr,i=Uo,a=i.key,o=.7;function s(a){var s,l=[],c=[],u=-1,f=a.length,h=ve(e),p=ve(r);function d(){l.push(\\\"M\\\",i(t(c),o))}for(;++u<f;)n.call(this,s=a[u],u)?c.push([+h.call(this,s,u),+p.call(this,s,u)]):c.length&&(d(),c=[]);return c.length&&d(),l.length?l.join(\\\"\\\"):null}return s.x=function(t){return arguments.length?(e=t,s):e},s.y=function(t){return arguments.length?(r=t,s):r},s.defined=function(t){return arguments.length?(n=t,s):n},s.interpolate=function(t){return arguments.length?(a=\\\"function\\\"==typeof t?i=t:(i=Vo.get(t)||Uo).key,s):a},s.tension=function(t){return arguments.length?(o=t,s):o},s}t.svg.line=function(){return jo(z)};var Vo=t.map({linear:Uo,\\\"linear-closed\\\":qo,step:function(t){var e=0,r=t.length,n=t[0],i=[n[0],\\\",\\\",n[1]];for(;++e<r;)i.push(\\\"H\\\",(n[0]+(n=t[e])[0])/2,\\\"V\\\",n[1]);r>1&&i.push(\\\"H\\\",n[0]);return i.join(\\\"\\\")},\\\"step-before\\\":Ho,\\\"step-after\\\":Go,basis:Xo,\\\"basis-open\\\":function(t){if(t.length<4)return Uo(t);var e,r=[],n=-1,i=t.length,a=[0],o=[0];for(;++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);r.push(Zo(Ko,a)+\\\",\\\"+Zo(Ko,o)),--n;for(;++n<i;)e=t[n],a.shift(),a.push(e[0]),o.shift(),o.push(e[1]),Qo(r,a,o);return r.join(\\\"\\\")},\\\"basis-closed\\\":function(t){var e,r,n=-1,i=t.length,a=i+4,o=[],s=[];for(;++n<4;)r=t[n%i],o.push(r[0]),s.push(r[1]);e=[Zo(Ko,o),\\\",\\\",Zo(Ko,s)],--n;for(;++n<a;)r=t[n%i],o.shift(),o.push(r[0]),s.shift(),s.push(r[1]),Qo(e,o,s);return e.join(\\\"\\\")},bundle:function(t,e){var r=t.length-1;if(r)for(var n,i,a=t[0][0],o=t[0][1],s=t[r][0]-a,l=t[r][1]-o,c=-1;++c<=r;)n=t[c],i=c/r,n[0]=e*n[0]+(1-e)*(a+i*s),n[1]=e*n[1]+(1-e)*(o+i*l);return Xo(t)},cardinal:function(t,e){return t.length<3?Uo(t):t[0]+Wo(t,Yo(t,e))},\\\"cardinal-open\\\":function(t,e){return t.length<4?Uo(t):t[1]+Wo(t.slice(1,-1),Yo(t,e))},\\\"cardinal-closed\\\":function(t,e){return t.length<3?qo(t):t[0]+Wo((t.push(t[0]),t),Yo([t[t.length-2]].concat(t,[t[1]]),e))},monotone:function(t){return t.length<3?Uo(t):t[0]+Wo(t,function(t){var e,r,n,i,a=[],o=function(t){var e=0,r=t.length-1,n=[],i=t[0],a=t[1],o=n[0]=ts(i,a);for(;++e<r;)n[e]=(o+(o=ts(i=a,a=t[e+1])))/2;return n[e]=o,n}(t),s=-1,l=t.length-1;for(;++s<l;)e=ts(t[s],t[s+1]),y(e)<kt?o[s]=o[s+1]=0:(r=o[s]/e,n=o[s+1]/e,(i=r*r+n*n)>9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n));s=-1;for(;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Uo(t){return t.length>1?t.join(\\\"L\\\"):t+\\\"Z\\\"}function qo(t){return t.join(\\\"L\\\")+\\\"Z\\\"}function Ho(t){for(var e=0,r=t.length,n=t[0],i=[n[0],\\\",\\\",n[1]];++e<r;)i.push(\\\"V\\\",(n=t[e])[1],\\\"H\\\",n[0]);return i.join(\\\"\\\")}function Go(t){for(var e=0,r=t.length,n=t[0],i=[n[0],\\\",\\\",n[1]];++e<r;)i.push(\\\"H\\\",(n=t[e])[0],\\\"V\\\",n[1]);return i.join(\\\"\\\")}function Wo(t,e){if(e.length<1||t.length!=e.length&&t.length!=e.length+2)return Uo(t);var r=t.length!=e.length,n=\\\"\\\",i=t[0],a=t[1],o=e[0],s=o,l=1;if(r&&(n+=\\\"Q\\\"+(a[0]-2*o[0]/3)+\\\",\\\"+(a[1]-2*o[1]/3)+\\\",\\\"+a[0]+\\\",\\\"+a[1],i=t[1],l=2),e.length>1){s=e[1],a=t[l],l++,n+=\\\"C\\\"+(i[0]+o[0])+\\\",\\\"+(i[1]+o[1])+\\\",\\\"+(a[0]-s[0])+\\\",\\\"+(a[1]-s[1])+\\\",\\\"+a[0]+\\\",\\\"+a[1];for(var c=2;c<e.length;c++,l++)a=t[l],s=e[c],n+=\\\"S\\\"+(a[0]-s[0])+\\\",\\\"+(a[1]-s[1])+\\\",\\\"+a[0]+\\\",\\\"+a[1]}if(r){var u=t[l];n+=\\\"Q\\\"+(a[0]+2*s[0]/3)+\\\",\\\"+(a[1]+2*s[1]/3)+\\\",\\\"+u[0]+\\\",\\\"+u[1]}return n}function Yo(t,e){for(var r,n=[],i=(1-e)/2,a=t[0],o=t[1],s=1,l=t.length;++s<l;)r=a,a=o,o=t[s],n.push([i*(o[0]-r[0]),i*(o[1]-r[1])]);return n}function Xo(t){if(t.length<3)return Uo(t);var e=1,r=t.length,n=t[0],i=n[0],a=n[1],o=[i,i,i,(n=t[1])[0]],s=[a,a,a,n[1]],l=[i,\\\",\\\",a,\\\"L\\\",Zo(Ko,o),\\\",\\\",Zo(Ko,s)];for(t.push(t[r-1]);++e<=r;)n=t[e],o.shift(),o.push(n[0]),s.shift(),s.push(n[1]),Qo(l,o,s);return t.pop(),l.push(\\\"L\\\",n),l.join(\\\"\\\")}function Zo(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}Vo.forEach(function(t,e){e.key=t,e.closed=/-closed$/.test(t)});var $o=[0,2/3,1/3,0],Jo=[0,1/3,2/3,0],Ko=[0,1/6,2/3,1/6];function Qo(t,e,r){t.push(\\\"C\\\",Zo($o,e),\\\",\\\",Zo($o,r),\\\",\\\",Zo(Jo,e),\\\",\\\",Zo(Jo,r),\\\",\\\",Zo(Ko,e),\\\",\\\",Zo(Ko,r))}function ts(t,e){return(e[1]-t[1])/(e[0]-t[0])}function es(t){for(var e,r,n,i=-1,a=t.length;++i<a;)r=(e=t[i])[0],n=e[1]-Et,e[0]=r*Math.cos(n),e[1]=r*Math.sin(n);return t}function rs(t){var e=ei,r=ei,n=0,i=ri,a=Wr,o=Uo,s=o.key,l=o,c=\\\"L\\\",u=.7;function f(s){var f,h,p,d=[],g=[],v=[],m=-1,y=s.length,x=ve(e),b=ve(n),_=e===r?function(){return h}:ve(r),w=n===i?function(){return p}:ve(i);function k(){d.push(\\\"M\\\",o(t(v),u),c,l(t(g.reverse()),u),\\\"Z\\\")}for(;++m<y;)a.call(this,f=s[m],m)?(g.push([h=+x.call(this,f,m),p=+b.call(this,f,m)]),v.push([+_.call(this,f,m),+w.call(this,f,m)])):g.length&&(k(),g=[],v=[]);return g.length&&k(),d.length?d.join(\\\"\\\"):null}return f.x=function(t){return arguments.length?(e=r=t,f):r},f.x0=function(t){return arguments.length?(e=t,f):e},f.x1=function(t){return arguments.length?(r=t,f):r},f.y=function(t){return arguments.length?(n=i=t,f):i},f.y0=function(t){return arguments.length?(n=t,f):n},f.y1=function(t){return arguments.length?(i=t,f):i},f.defined=function(t){return arguments.length?(a=t,f):a},f.interpolate=function(t){return arguments.length?(s=\\\"function\\\"==typeof t?o=t:(o=Vo.get(t)||Uo).key,l=o.reverse||o,c=o.closed?\\\"M\\\":\\\"L\\\",f):s},f.tension=function(t){return arguments.length?(u=t,f):u},f}function ns(t){return t.radius}function is(t){return[t.x,t.y]}function as(){return 64}function os(){return\\\"circle\\\"}function ss(t){var e=Math.sqrt(t/At);return\\\"M0,\\\"+e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,\\\"+-e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,\\\"+e+\\\"Z\\\"}t.svg.line.radial=function(){var t=jo(es);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},Ho.reverse=Go,Go.reverse=Ho,t.svg.area=function(){return rs(z)},t.svg.area.radial=function(){var t=rs(es);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},t.svg.chord=function(){var t=Vn,e=Un,r=ns,n=Do,i=Ro;function a(r,n){var i,a,c=o(this,t,r,n),u=o(this,e,r,n);return\\\"M\\\"+c.p0+s(c.r,c.p1,c.a1-c.a0)+(a=u,(i=c).a0==a.a0&&i.a1==a.a1?l(c.r,c.p1,c.r,c.p0):l(c.r,c.p1,u.r,u.p0)+s(u.r,u.p1,u.a1-u.a0)+l(u.r,u.p1,c.r,c.p0))+\\\"Z\\\"}function o(t,e,a,o){var s=e.call(t,a,o),l=r.call(t,s,o),c=n.call(t,s,o)-Et,u=i.call(t,s,o)-Et;return{r:l,a0:c,a1:u,p0:[l*Math.cos(c),l*Math.sin(c)],p1:[l*Math.cos(u),l*Math.sin(u)]}}function s(t,e,r){return\\\"A\\\"+t+\\\",\\\"+t+\\\" 0 \\\"+ +(r>At)+\\\",1 \\\"+e}function l(t,e,r,n){return\\\"Q 0,0 \\\"+n}return a.radius=function(t){return arguments.length?(r=ve(t),a):r},a.source=function(e){return arguments.length?(t=ve(e),a):t},a.target=function(t){return arguments.length?(e=ve(t),a):e},a.startAngle=function(t){return arguments.length?(n=ve(t),a):n},a.endAngle=function(t){return arguments.length?(i=ve(t),a):i},a},t.svg.diagonal=function(){var t=Vn,e=Un,r=is;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return\\\"M\\\"+(l=l.map(r))[0]+\\\"C\\\"+l[1]+\\\" \\\"+l[2]+\\\" \\\"+l[3]}return n.source=function(e){return arguments.length?(t=ve(e),n):t},n.target=function(t){return arguments.length?(e=ve(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},t.svg.diagonal.radial=function(){var e=t.svg.diagonal(),r=is,n=e.projection;return e.projection=function(t){return arguments.length?n(function(t){return function(){var e=t.apply(this,arguments),r=e[0],n=e[1]-Et;return[r*Math.cos(n),r*Math.sin(n)]}}(r=t)):r},e},t.svg.symbol=function(){var t=os,e=as;function r(r,n){return(ls.get(t.call(this,r,n))||ss)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=ve(e),r):t},r.size=function(t){return arguments.length?(e=ve(t),r):e},r};var ls=t.map({circle:ss,cross:function(t){var e=Math.sqrt(t/5)/2;return\\\"M\\\"+-3*e+\\\",\\\"+-e+\\\"H\\\"+-e+\\\"V\\\"+-3*e+\\\"H\\\"+e+\\\"V\\\"+-e+\\\"H\\\"+3*e+\\\"V\\\"+e+\\\"H\\\"+e+\\\"V\\\"+3*e+\\\"H\\\"+-e+\\\"V\\\"+e+\\\"H\\\"+-3*e+\\\"Z\\\"},diamond:function(t){var e=Math.sqrt(t/(2*us)),r=e*us;return\\\"M0,\\\"+-e+\\\"L\\\"+r+\\\",0 0,\\\"+e+\\\" \\\"+-r+\\\",0Z\\\"},square:function(t){var e=Math.sqrt(t)/2;return\\\"M\\\"+-e+\\\",\\\"+-e+\\\"L\\\"+e+\\\",\\\"+-e+\\\" \\\"+e+\\\",\\\"+e+\\\" \\\"+-e+\\\",\\\"+e+\\\"Z\\\"},\\\"triangle-down\\\":function(t){var e=Math.sqrt(t/cs),r=e*cs/2;return\\\"M0,\\\"+r+\\\"L\\\"+e+\\\",\\\"+-r+\\\" \\\"+-e+\\\",\\\"+-r+\\\"Z\\\"},\\\"triangle-up\\\":function(t){var e=Math.sqrt(t/cs),r=e*cs/2;return\\\"M0,\\\"+-r+\\\"L\\\"+e+\\\",\\\"+r+\\\" \\\"+-e+\\\",\\\"+r+\\\"Z\\\"}});t.svg.symbolTypes=ls.keys();var cs=Math.sqrt(3),us=Math.tan(30*Ct);Y.transition=function(t){for(var e,r,n=ds||++ms,i=bs(t),a=[],o=gs||{time:Date.now(),ease:ia,delay:0,duration:250},s=-1,l=this.length;++s<l;){a.push(e=[]);for(var c=this[s],u=-1,f=c.length;++u<f;)(r=c[u])&&_s(r,u,i,n,o),e.push(r)}return ps(a,i,n)},Y.interrupt=function(t){return this.each(null==t?fs:hs(bs(t)))};var fs=hs(bs());function hs(t){return function(){var e,r,n;(e=this[t])&&(n=e[r=e.active])&&(n.timer.c=null,n.timer.t=NaN,--e.count?delete e[r]:delete this[t],e.active+=.5,n.event&&n.event.interrupt.call(this,this.__data__,n.index))}}function ps(t,e,r){return U(t,vs),t.namespace=e,t.id=r,t}var ds,gs,vs=[],ms=0;function ys(t,e,r,n){var i=t.id,a=t.namespace;return ut(t,\\\"function\\\"==typeof r?function(t,o,s){t[a][i].tween.set(e,n(r.call(t,t.__data__,o,s)))}:(r=n(r),function(t){t[a][i].tween.set(e,r)}))}function xs(t){return null==t&&(t=\\\"\\\"),function(){this.textContent=t}}function bs(t){return null==t?\\\"__transition__\\\":\\\"__transition_\\\"+t+\\\"__\\\"}function _s(t,e,r,n,i){var a,o,s,l,c,u=t[r]||(t[r]={active:0,count:0}),f=u[n];function h(r){var i=u.active,h=u[i];for(var d in h&&(h.timer.c=null,h.timer.t=NaN,--u.count,delete u[i],h.event&&h.event.interrupt.call(t,t.__data__,h.index)),u)if(+d<n){var g=u[d];g.timer.c=null,g.timer.t=NaN,--u.count,delete u[d]}o.c=p,Me(function(){return o.c&&p(r||1)&&(o.c=null,o.t=NaN),1},0,a),u.active=n,f.event&&f.event.start.call(t,t.__data__,e),c=[],f.tween.forEach(function(r,n){(n=n.call(t,t.__data__,e))&&c.push(n)}),l=f.ease,s=f.duration}function p(i){for(var a=i/s,o=l(a),h=c.length;h>0;)c[--h].call(t,o);if(a>=1)return f.event&&f.event.end.call(t,t.__data__,e),--u.count?delete u[n]:delete t[r],1}f||(a=i.time,o=Me(function(t){var e=f.delay;if(o.t=e+a,e<=t)return h(t-e);o.c=h},0,a),f=u[n]={tween:new b,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++u.count)}vs.call=Y.call,vs.empty=Y.empty,vs.node=Y.node,vs.size=Y.size,t.transition=function(e,r){return e&&e.transition?ds?e.transition(r):e:t.selection().transition(e)},t.transition.prototype=vs,vs.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=X(t);for(var s=-1,l=this.length;++s<l;){o.push(e=[]);for(var c=this[s],u=-1,f=c.length;++u<f;)(n=c[u])&&(r=t.call(n,n.__data__,u,s))?(\\\"__data__\\\"in n&&(r.__data__=n.__data__),_s(r,u,a,i,n[a][i]),e.push(r)):e.push(null)}return ps(o,a,i)},vs.selectAll=function(t){var e,r,n,i,a,o=this.id,s=this.namespace,l=[];t=Z(t);for(var c=-1,u=this.length;++c<u;)for(var f=this[c],h=-1,p=f.length;++h<p;)if(n=f[h]){a=n[s][o],r=t.call(n,n.__data__,h,c),l.push(e=[]);for(var d=-1,g=r.length;++d<g;)(i=r[d])&&_s(i,d,s,o,a),e.push(i)}return ps(l,s,o)},vs.filter=function(t){var e,r,n=[];\\\"function\\\"!=typeof t&&(t=ct(t));for(var i=0,a=this.length;i<a;i++){n.push(e=[]);for(var o,s=0,l=(o=this[i]).length;s<l;s++)(r=o[s])&&t.call(r,r.__data__,s,i)&&e.push(r)}return ps(n,this.namespace,this.id)},vs.tween=function(t,e){var r=this.id,n=this.namespace;return arguments.length<2?this.node()[n][r].tween.get(t):ut(this,null==e?function(e){e[n][r].tween.remove(t)}:function(i){i[n][r].tween.set(t,e)})},vs.attr=function(e,r){if(arguments.length<2){for(r in e)this.attr(r,e[r]);return this}var n=\\\"transform\\\"==e?ga:Zi,i=t.ns.qualify(e);function a(){this.removeAttribute(i)}function o(){this.removeAttributeNS(i.space,i.local)}return ys(this,\\\"attr.\\\"+e,r,i.local?function(t){return null==t?o:(t+=\\\"\\\",function(){var e,r=this.getAttributeNS(i.space,i.local);return r!==t&&(e=n(r,t),function(t){this.setAttributeNS(i.space,i.local,e(t))})})}:function(t){return null==t?a:(t+=\\\"\\\",function(){var e,r=this.getAttribute(i);return r!==t&&(e=n(r,t),function(t){this.setAttribute(i,e(t))})})})},vs.attrTween=function(e,r){var n=t.ns.qualify(e);return this.tween(\\\"attr.\\\"+e,n.local?function(t,e){var i=r.call(this,t,e,this.getAttributeNS(n.space,n.local));return i&&function(t){this.setAttributeNS(n.space,n.local,i(t))}}:function(t,e){var i=r.call(this,t,e,this.getAttribute(n));return i&&function(t){this.setAttribute(n,i(t))}})},vs.style=function(t,e,r){var n=arguments.length;if(n<3){if(\\\"string\\\"!=typeof t){for(r in n<2&&(e=\\\"\\\"),t)this.style(r,t[r],e);return this}r=\\\"\\\"}function i(){this.style.removeProperty(t)}return ys(this,\\\"style.\\\"+t,e,function(e){return null==e?i:(e+=\\\"\\\",function(){var n,i=o(this).getComputedStyle(this,null).getPropertyValue(t);return i!==e&&(n=Zi(i,e),function(e){this.style.setProperty(t,n(e),r)})})})},vs.styleTween=function(t,e,r){return arguments.length<3&&(r=\\\"\\\"),this.tween(\\\"style.\\\"+t,function(n,i){var a=e.call(this,n,i,o(this).getComputedStyle(this,null).getPropertyValue(t));return a&&function(e){this.style.setProperty(t,a(e),r)}})},vs.text=function(t){return ys(this,\\\"text\\\",t,xs)},vs.remove=function(){var t=this.namespace;return this.each(\\\"end.transition\\\",function(){var e;this[t].count<2&&(e=this.parentNode)&&e.removeChild(this)})},vs.ease=function(e){var r=this.id,n=this.namespace;return arguments.length<1?this.node()[n][r].ease:(\\\"function\\\"!=typeof e&&(e=t.ease.apply(t,arguments)),ut(this,function(t){t[n][r].ease=e}))},vs.delay=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].delay:ut(this,\\\"function\\\"==typeof t?function(n,i,a){n[r][e].delay=+t.call(n,n.__data__,i,a)}:(t=+t,function(n){n[r][e].delay=t}))},vs.duration=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].duration:ut(this,\\\"function\\\"==typeof t?function(n,i,a){n[r][e].duration=Math.max(1,t.call(n,n.__data__,i,a))}:(t=Math.max(1,t),function(n){n[r][e].duration=t}))},vs.each=function(e,r){var n=this.id,i=this.namespace;if(arguments.length<2){var a=gs,o=ds;try{ds=n,ut(this,function(t,r,a){gs=t[i][n],e.call(t,t.__data__,r,a)})}finally{gs=a,ds=o}}else ut(this,function(a){var o=a[i][n];(o.event||(o.event=t.dispatch(\\\"start\\\",\\\"end\\\",\\\"interrupt\\\"))).on(e,r)});return this},vs.transition=function(){for(var t,e,r,n=this.id,i=++ms,a=this.namespace,o=[],s=0,l=this.length;s<l;s++){o.push(t=[]);for(var c,u=0,f=(c=this[s]).length;u<f;u++)(e=c[u])&&_s(e,u,a,i,{time:(r=e[a][n]).time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration}),t.push(e)}return ps(o,a,i)},t.svg.axis=function(){var e,r=t.scale.linear(),i=ws,a=6,o=6,s=3,l=[10],c=null;function u(n){n.each(function(){var n,u=t.select(this),f=this.__chart__||r,h=this.__chart__=r.copy(),p=null==c?h.ticks?h.ticks.apply(h,l):h.domain():c,d=null==e?h.tickFormat?h.tickFormat.apply(h,l):z:e,g=u.selectAll(\\\".tick\\\").data(p,h),v=g.enter().insert(\\\"g\\\",\\\".domain\\\").attr(\\\"class\\\",\\\"tick\\\").style(\\\"opacity\\\",kt),m=t.transition(g.exit()).style(\\\"opacity\\\",kt).remove(),y=t.transition(g.order()).style(\\\"opacity\\\",1),x=Math.max(a,0)+s,b=uo(h),_=u.selectAll(\\\".domain\\\").data([0]),w=(_.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"domain\\\"),t.transition(_));v.append(\\\"line\\\"),v.append(\\\"text\\\");var k,M,A,T,S=v.select(\\\"line\\\"),E=y.select(\\\"line\\\"),C=g.select(\\\"text\\\").text(d),L=v.select(\\\"text\\\"),O=y.select(\\\"text\\\"),I=\\\"top\\\"===i||\\\"left\\\"===i?-1:1;if(\\\"bottom\\\"===i||\\\"top\\\"===i?(n=Ms,k=\\\"x\\\",A=\\\"y\\\",M=\\\"x2\\\",T=\\\"y2\\\",C.attr(\\\"dy\\\",I<0?\\\"0em\\\":\\\".71em\\\").style(\\\"text-anchor\\\",\\\"middle\\\"),w.attr(\\\"d\\\",\\\"M\\\"+b[0]+\\\",\\\"+I*o+\\\"V0H\\\"+b[1]+\\\"V\\\"+I*o)):(n=As,k=\\\"y\\\",A=\\\"x\\\",M=\\\"y2\\\",T=\\\"x2\\\",C.attr(\\\"dy\\\",\\\".32em\\\").style(\\\"text-anchor\\\",I<0?\\\"end\\\":\\\"start\\\"),w.attr(\\\"d\\\",\\\"M\\\"+I*o+\\\",\\\"+b[0]+\\\"H0V\\\"+b[1]+\\\"H\\\"+I*o)),S.attr(T,I*a),L.attr(A,I*x),E.attr(M,0).attr(T,I*a),O.attr(k,0).attr(A,I*x),h.rangeBand){var P=h,D=P.rangeBand()/2;f=h=function(t){return P(t)+D}}else f.rangeBand?f=h:m.call(n,h,f);v.call(n,f,h),y.call(n,h,h)})}return u.scale=function(t){return arguments.length?(r=t,u):r},u.orient=function(t){return arguments.length?(i=t in ks?t+\\\"\\\":ws,u):i},u.ticks=function(){return arguments.length?(l=n(arguments),u):l},u.tickValues=function(t){return arguments.length?(c=t,u):c},u.tickFormat=function(t){return arguments.length?(e=t,u):e},u.tickSize=function(t){var e=arguments.length;return e?(a=+t,o=+arguments[e-1],u):a},u.innerTickSize=function(t){return arguments.length?(a=+t,u):a},u.outerTickSize=function(t){return arguments.length?(o=+t,u):o},u.tickPadding=function(t){return arguments.length?(s=+t,u):s},u.tickSubdivide=function(){return arguments.length&&u},u};var ws=\\\"bottom\\\",ks={top:1,right:1,bottom:1,left:1};function Ms(t,e,r){t.attr(\\\"transform\\\",function(t){var n=e(t);return\\\"translate(\\\"+(isFinite(n)?n:r(t))+\\\",0)\\\"})}function As(t,e,r){t.attr(\\\"transform\\\",function(t){var n=e(t);return\\\"translate(0,\\\"+(isFinite(n)?n:r(t))+\\\")\\\"})}t.svg.brush=function(){var e,r,n=j(h,\\\"brushstart\\\",\\\"brush\\\",\\\"brushend\\\"),i=null,a=null,s=[0,0],l=[0,0],c=!0,u=!0,f=Ss[0];function h(e){e.each(function(){var e=t.select(this).style(\\\"pointer-events\\\",\\\"all\\\").style(\\\"-webkit-tap-highlight-color\\\",\\\"rgba(0,0,0,0)\\\").on(\\\"mousedown.brush\\\",v).on(\\\"touchstart.brush\\\",v),r=e.selectAll(\\\".background\\\").data([0]);r.enter().append(\\\"rect\\\").attr(\\\"class\\\",\\\"background\\\").style(\\\"visibility\\\",\\\"hidden\\\").style(\\\"cursor\\\",\\\"crosshair\\\"),e.selectAll(\\\".extent\\\").data([0]).enter().append(\\\"rect\\\").attr(\\\"class\\\",\\\"extent\\\").style(\\\"cursor\\\",\\\"move\\\");var n=e.selectAll(\\\".resize\\\").data(f,z);n.exit().remove(),n.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"resize \\\"+t}).style(\\\"cursor\\\",function(t){return Ts[t]}).append(\\\"rect\\\").attr(\\\"x\\\",function(t){return/[ew]$/.test(t)?-3:null}).attr(\\\"y\\\",function(t){return/^[ns]/.test(t)?-3:null}).attr(\\\"width\\\",6).attr(\\\"height\\\",6).style(\\\"visibility\\\",\\\"hidden\\\"),n.style(\\\"display\\\",h.empty()?\\\"none\\\":null);var o,s=t.transition(e),l=t.transition(r);i&&(o=uo(i),l.attr(\\\"x\\\",o[0]).attr(\\\"width\\\",o[1]-o[0]),d(s)),a&&(o=uo(a),l.attr(\\\"y\\\",o[0]).attr(\\\"height\\\",o[1]-o[0]),g(s)),p(s)})}function p(t){t.selectAll(\\\".resize\\\").attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+s[+/e$/.test(t)]+\\\",\\\"+l[+/^s/.test(t)]+\\\")\\\"})}function d(t){t.select(\\\".extent\\\").attr(\\\"x\\\",s[0]),t.selectAll(\\\".extent,.n>rect,.s>rect\\\").attr(\\\"width\\\",s[1]-s[0])}function g(t){t.select(\\\".extent\\\").attr(\\\"y\\\",l[0]),t.selectAll(\\\".extent,.e>rect,.w>rect\\\").attr(\\\"height\\\",l[1]-l[0])}function v(){var f,v,m=this,y=t.select(t.event.target),x=n.of(m,arguments),b=t.select(m),_=y.datum(),w=!/^(n|s)$/.test(_)&&i,k=!/^(e|w)$/.test(_)&&a,M=y.classed(\\\"extent\\\"),A=xt(m),T=t.mouse(m),S=t.select(o(m)).on(\\\"keydown.brush\\\",function(){32==t.event.keyCode&&(M||(f=null,T[0]-=s[1],T[1]-=l[1],M=2),F())}).on(\\\"keyup.brush\\\",function(){32==t.event.keyCode&&2==M&&(T[0]+=s[1],T[1]+=l[1],M=0,F())});if(t.event.changedTouches?S.on(\\\"touchmove.brush\\\",L).on(\\\"touchend.brush\\\",O):S.on(\\\"mousemove.brush\\\",L).on(\\\"mouseup.brush\\\",O),b.interrupt().selectAll(\\\"*\\\").interrupt(),M)T[0]=s[0]-T[0],T[1]=l[0]-T[1];else if(_){var E=+/w$/.test(_),C=+/^n/.test(_);v=[s[1-E]-T[0],l[1-C]-T[1]],T[0]=s[E],T[1]=l[C]}else t.event.altKey&&(f=T.slice());function L(){var e=t.mouse(m),r=!1;v&&(e[0]+=v[0],e[1]+=v[1]),M||(t.event.altKey?(f||(f=[(s[0]+s[1])/2,(l[0]+l[1])/2]),T[0]=s[+(e[0]<f[0])],T[1]=l[+(e[1]<f[1])]):f=null),w&&z(e,i,0)&&(d(b),r=!0),k&&z(e,a,1)&&(g(b),r=!0),r&&(p(b),x({type:\\\"brush\\\",mode:M?\\\"move\\\":\\\"resize\\\"}))}function z(t,n,i){var a,o,h=uo(n),p=h[0],d=h[1],g=T[i],v=i?l:s,m=v[1]-v[0];if(M&&(p-=g,d-=m+g),a=(i?u:c)?Math.max(p,Math.min(d,t[i])):t[i],M?o=(a+=g)+m:(f&&(g=Math.max(p,Math.min(d,2*f[i]-a))),g<a?(o=a,a=g):o=g),v[0]!=a||v[1]!=o)return i?r=null:e=null,v[0]=a,v[1]=o,!0}function O(){L(),b.style(\\\"pointer-events\\\",\\\"all\\\").selectAll(\\\".resize\\\").style(\\\"display\\\",h.empty()?\\\"none\\\":null),t.select(\\\"body\\\").style(\\\"cursor\\\",null),S.on(\\\"mousemove.brush\\\",null).on(\\\"mouseup.brush\\\",null).on(\\\"touchmove.brush\\\",null).on(\\\"touchend.brush\\\",null).on(\\\"keydown.brush\\\",null).on(\\\"keyup.brush\\\",null),A(),x({type:\\\"brushend\\\"})}b.style(\\\"pointer-events\\\",\\\"none\\\").selectAll(\\\".resize\\\").style(\\\"display\\\",null),t.select(\\\"body\\\").style(\\\"cursor\\\",y.style(\\\"cursor\\\")),x({type:\\\"brushstart\\\"}),L()}return h.event=function(i){i.each(function(){var i=n.of(this,arguments),a={x:s,y:l,i:e,j:r},o=this.__chart__||a;this.__chart__=a,ds?t.select(this).transition().each(\\\"start.brush\\\",function(){e=o.i,r=o.j,s=o.x,l=o.y,i({type:\\\"brushstart\\\"})}).tween(\\\"brush:brush\\\",function(){var t=$i(s,a.x),n=$i(l,a.y);return e=r=null,function(e){s=a.x=t(e),l=a.y=n(e),i({type:\\\"brush\\\",mode:\\\"resize\\\"})}}).each(\\\"end.brush\\\",function(){e=a.i,r=a.j,i({type:\\\"brush\\\",mode:\\\"resize\\\"}),i({type:\\\"brushend\\\"})}):(i({type:\\\"brushstart\\\"}),i({type:\\\"brush\\\",mode:\\\"resize\\\"}),i({type:\\\"brushend\\\"}))})},h.x=function(t){return arguments.length?(f=Ss[!(i=t)<<1|!a],h):i},h.y=function(t){return arguments.length?(f=Ss[!i<<1|!(a=t)],h):a},h.clamp=function(t){return arguments.length?(i&&a?(c=!!t[0],u=!!t[1]):i?c=!!t:a&&(u=!!t),h):i&&a?[c,u]:i?c:a?u:null},h.extent=function(t){var n,o,c,u,f;return arguments.length?(i&&(n=t[0],o=t[1],a&&(n=n[0],o=o[0]),e=[n,o],i.invert&&(n=i(n),o=i(o)),o<n&&(f=n,n=o,o=f),n==s[0]&&o==s[1]||(s=[n,o])),a&&(c=t[0],u=t[1],i&&(c=c[1],u=u[1]),r=[c,u],a.invert&&(c=a(c),u=a(u)),u<c&&(f=c,c=u,u=f),c==l[0]&&u==l[1]||(l=[c,u])),h):(i&&(e?(n=e[0],o=e[1]):(n=s[0],o=s[1],i.invert&&(n=i.invert(n),o=i.invert(o)),o<n&&(f=n,n=o,o=f))),a&&(r?(c=r[0],u=r[1]):(c=l[0],u=l[1],a.invert&&(c=a.invert(c),u=a.invert(u)),u<c&&(f=c,c=u,u=f))),i&&a?[[n,c],[o,u]]:i?[n,o]:a&&[c,u])},h.clear=function(){return h.empty()||(s=[0,0],l=[0,0],e=r=null),h},h.empty=function(){return!!i&&s[0]==s[1]||!!a&&l[0]==l[1]},t.rebind(h,n,\\\"on\\\")};var Ts={n:\\\"ns-resize\\\",e:\\\"ew-resize\\\",s:\\\"ns-resize\\\",w:\\\"ew-resize\\\",nw:\\\"nwse-resize\\\",ne:\\\"nesw-resize\\\",se:\\\"nwse-resize\\\",sw:\\\"nesw-resize\\\"},Ss=[[\\\"n\\\",\\\"e\\\",\\\"s\\\",\\\"w\\\",\\\"nw\\\",\\\"ne\\\",\\\"se\\\",\\\"sw\\\"],[\\\"e\\\",\\\"w\\\"],[\\\"n\\\",\\\"s\\\"],[]],Es=Ie.format=sr.timeFormat,Cs=Es.utc,Ls=Cs(\\\"%Y-%m-%dT%H:%M:%S.%LZ\\\");function zs(t){return t.toISOString()}function Os(e,r,n){function i(t){return e(t)}function a(e,n){var i=(e[1]-e[0])/n,a=t.bisect(Ps,i);return a==Ps.length?[r.year,xo(e.map(function(t){return t/31536e6}),n)[2]]:a?r[i/Ps[a-1]<Ps[a]/i?a-1:a]:[Bs,xo(e,n)[2]]}return i.invert=function(t){return Is(e.invert(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain().map(Is)},i.nice=function(t,e){var r=i.domain(),n=co(r),o=null==t?a(n,10):\\\"number\\\"==typeof t&&a(n,t);function s(r){return!isNaN(r)&&!t.range(r,Is(+r+1),e).length}return o&&(t=o[0],e=o[1]),i.domain(ho(r,e>1?{floor:function(e){for(;s(e=t.floor(e));)e=Is(e-1);return e},ceil:function(e){for(;s(e=t.ceil(e));)e=Is(+e+1);return e}}:t))},i.ticks=function(t,e){var r=co(i.domain()),n=null==t?a(r,10):\\\"number\\\"==typeof t?a(r,t):!t.range&&[{range:t},e];return n&&(t=n[0],e=n[1]),t.range(r[0],Is(+r[1]+1),e<1?1:e)},i.tickFormat=function(){return n},i.copy=function(){return Os(e.copy(),r,n)},mo(i,e)}function Is(t){return new Date(t)}Es.iso=Date.prototype.toISOString&&+new Date(\\\"2000-01-01T00:00:00.000Z\\\")?zs:Ls,zs.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},zs.toString=Ls.toString,Ie.second=Be(function(t){return new Pe(1e3*Math.floor(t/1e3))},function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))},function(t){return t.getSeconds()}),Ie.seconds=Ie.second.range,Ie.seconds.utc=Ie.second.utc.range,Ie.minute=Be(function(t){return new Pe(6e4*Math.floor(t/6e4))},function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))},function(t){return t.getMinutes()}),Ie.minutes=Ie.minute.range,Ie.minutes.utc=Ie.minute.utc.range,Ie.hour=Be(function(t){var e=t.getTimezoneOffset()/60;return new Pe(36e5*(Math.floor(t/36e5-e)+e))},function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))},function(t){return t.getHours()}),Ie.hours=Ie.hour.range,Ie.hours.utc=Ie.hour.utc.range,Ie.month=Be(function(t){return(t=Ie.day(t)).setDate(1),t},function(t,e){t.setMonth(t.getMonth()+e)},function(t){return t.getMonth()}),Ie.months=Ie.month.range,Ie.months.utc=Ie.month.utc.range;var Ps=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ds=[[Ie.second,1],[Ie.second,5],[Ie.second,15],[Ie.second,30],[Ie.minute,1],[Ie.minute,5],[Ie.minute,15],[Ie.minute,30],[Ie.hour,1],[Ie.hour,3],[Ie.hour,6],[Ie.hour,12],[Ie.day,1],[Ie.day,2],[Ie.week,1],[Ie.month,1],[Ie.month,3],[Ie.year,1]],Rs=Es.multi([[\\\".%L\\\",function(t){return t.getMilliseconds()}],[\\\":%S\\\",function(t){return t.getSeconds()}],[\\\"%I:%M\\\",function(t){return t.getMinutes()}],[\\\"%I %p\\\",function(t){return t.getHours()}],[\\\"%a %d\\\",function(t){return t.getDay()&&1!=t.getDate()}],[\\\"%b %d\\\",function(t){return 1!=t.getDate()}],[\\\"%B\\\",function(t){return t.getMonth()}],[\\\"%Y\\\",Wr]]),Bs={range:function(e,r,n){return t.range(Math.ceil(e/n)*n,+r,n).map(Is)},floor:z,ceil:z};Ds.year=Ie.year,Ie.scale=function(){return Os(t.scale.linear(),Ds,Rs)};var Fs=Ds.map(function(t){return[t[0].utc,t[1]]}),Ns=Cs.multi([[\\\".%L\\\",function(t){return t.getUTCMilliseconds()}],[\\\":%S\\\",function(t){return t.getUTCSeconds()}],[\\\"%I:%M\\\",function(t){return t.getUTCMinutes()}],[\\\"%I %p\\\",function(t){return t.getUTCHours()}],[\\\"%a %d\\\",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],[\\\"%b %d\\\",function(t){return 1!=t.getUTCDate()}],[\\\"%B\\\",function(t){return t.getUTCMonth()}],[\\\"%Y\\\",Wr]]);function js(t){return JSON.parse(t.responseText)}function Vs(t){var e=i.createRange();return e.selectNode(i.body),e.createContextualFragment(t.responseText)}Fs.year=Ie.year.utc,Ie.scale.utc=function(){return Os(t.scale.linear(),Fs,Ns)},t.text=me(function(t){return t.responseText}),t.json=function(t,e){return ye(t,\\\"application/json\\\",js,e)},t.html=function(t,e){return ye(t,\\\"text/html\\\",Vs,e)},t.xml=me(function(t){return t.responseXML}),\\\"object\\\"==typeof e&&e.exports?e.exports=t:this.d3=t}()},{}],149:[function(t,e,r){e.exports=function(){for(var t=0;t<arguments.length;t++)if(void 0!==arguments[t])return arguments[t]}},{}],150:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"incremental-convex-hull\\\"),i=t(\\\"uniq\\\");function a(t,e){this.point=t,this.index=e}function o(t,e){for(var r=t.point,n=e.point,i=r.length,a=0;a<i;++a){var o=n[a]-r[a];if(o)return o}return 0}e.exports=function(t,e){var r=t.length;if(0===r)return[];var s=t[0].length;if(s<1)return[];if(1===s)return function(t,e,r){if(1===t)return r?[[-1,0]]:[];var n=e.map(function(t,e){return[t[0],e]});n.sort(function(t,e){return t[0]-e[0]});for(var i=new Array(t-1),a=1;a<t;++a){var o=n[a-1],s=n[a];i[a-1]=[o[1],s[1]]}r&&i.push([-1,i[0][1]],[i[t-1][1],-1]);return i}(r,t,e);for(var l=new Array(r),c=1,u=0;u<r;++u){for(var f=t[u],h=new Array(s+1),p=0,d=0;d<s;++d){var g=f[d];h[d]=g,p+=g*g}h[s]=p,l[u]=new a(h,u),c=Math.max(p,c)}i(l,o),r=l.length;for(var v=new Array(r+s+1),m=new Array(r+s+1),y=(s+1)*(s+1)*c,x=new Array(s+1),u=0;u<=s;++u)x[u]=0;x[s]=y,v[0]=x.slice(),m[0]=-1;for(var u=0;u<=s;++u){var h=x.slice();h[u]=1,v[u+1]=h,m[u+1]=-1}for(var u=0;u<r;++u){var b=l[u];v[u+s+1]=b.point,m[u+s+1]=b.index}var _=n(v,!1);_=e?_.filter(function(t){for(var e=0,r=0;r<=s;++r){var n=m[t[r]];if(n<0&&++e>=2)return!1;t[r]=n}return!0}):_.filter(function(t){for(var e=0;e<=s;++e){var r=m[t[e]];if(r<0)return!1;t[e]=r}return!0});if(1&s)for(var u=0;u<_.length;++u){var b=_[u],h=b[0];b[0]=b[1],b[1]=h}return _}},{\\\"incremental-convex-hull\\\":396,uniq:524}],151:[function(t,e,r){\\\"use strict\\\";e.exports=a;var n=(a.canvas=document.createElement(\\\"canvas\\\")).getContext(\\\"2d\\\"),i=o([32,126]);function a(t,e){Array.isArray(t)&&(t=t.join(\\\", \\\"));var r,a={},s=16,l=.05;e&&(2===e.length&&\\\"number\\\"==typeof e[0]?r=o(e):Array.isArray(e)?r=e:(e.o?r=o(e.o):e.pairs&&(r=e.pairs),e.fontSize&&(s=e.fontSize),null!=e.threshold&&(l=e.threshold))),r||(r=i),n.font=s+\\\"px \\\"+t;for(var c=0;c<r.length;c++){var u=r[c],f=n.measureText(u[0]).width+n.measureText(u[1]).width,h=n.measureText(u).width;if(Math.abs(f-h)>s*l){var p=(h-f)/s;a[u]=1e3*p}}return a}function o(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),i=t[0];i<t[1];i++){var a=n+String.fromCharCode(i);e.push(a)}return e}a.createPairs=o,a.ascii=i},{}],152:[function(t,e,r){(function(t){var r=!1;if(\\\"undefined\\\"!=typeof Float64Array){var n=new Float64Array(1),i=new Uint32Array(n.buffer);if(n[0]=1,r=!0,1072693248===i[1]){e.exports=function(t){return n[0]=t,[i[0],i[1]]},e.exports.pack=function(t,e){return i[0]=t,i[1]=e,n[0]},e.exports.lo=function(t){return n[0]=t,i[0]},e.exports.hi=function(t){return n[0]=t,i[1]}}else if(1072693248===i[0]){e.exports=function(t){return n[0]=t,[i[1],i[0]]},e.exports.pack=function(t,e){return i[1]=t,i[0]=e,n[0]},e.exports.lo=function(t){return n[0]=t,i[1]},e.exports.hi=function(t){return n[0]=t,i[0]}}else r=!1}if(!r){var a=new t(8);e.exports=function(t){return a.writeDoubleLE(t,0,!0),[a.readUInt32LE(0,!0),a.readUInt32LE(4,!0)]},e.exports.pack=function(t,e){return a.writeUInt32LE(t,0,!0),a.writeUInt32LE(e,4,!0),a.readDoubleLE(0,!0)},e.exports.lo=function(t){return a.writeDoubleLE(t,0,!0),a.readUInt32LE(0,!0)},e.exports.hi=function(t){return a.writeDoubleLE(t,0,!0),a.readUInt32LE(4,!0)}}e.exports.sign=function(t){return e.exports.hi(t)>>>31},e.exports.exponent=function(t){return(e.exports.hi(t)<<1>>>21)-1023},e.exports.fraction=function(t){var r=e.exports.lo(t),n=e.exports.hi(t),i=1048575&n;return 2146435072&n&&(i+=1<<20),[r,i]},e.exports.denormalized=function(t){return!(2146435072&e.exports.hi(t))}}).call(this,t(\\\"buffer\\\").Buffer)},{buffer:93}],153:[function(t,e,r){var n=t(\\\"abs-svg-path\\\"),i=t(\\\"normalize-svg-path\\\"),a={M:\\\"moveTo\\\",C:\\\"bezierCurveTo\\\"};e.exports=function(t,e){t.beginPath(),i(n(e)).forEach(function(e){var r=e[0],n=e.slice(1);t[a[r]].apply(t,n)}),t.closePath()}},{\\\"abs-svg-path\\\":48,\\\"normalize-svg-path\\\":435}],154:[function(t,e,r){e.exports=function(t){switch(t){case\\\"int8\\\":return Int8Array;case\\\"int16\\\":return Int16Array;case\\\"int32\\\":return Int32Array;case\\\"uint8\\\":return Uint8Array;case\\\"uint16\\\":return Uint16Array;case\\\"uint32\\\":return Uint32Array;case\\\"float32\\\":return Float32Array;case\\\"float64\\\":return Float64Array;case\\\"array\\\":return Array;case\\\"uint8_clamped\\\":return Uint8ClampedArray}}},{}],155:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){switch(\\\"undefined\\\"==typeof e&&(e=0),typeof t){case\\\"number\\\":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n<t;++n)r[n]=e;return r}(0|t,e);break;case\\\"object\\\":if(\\\"number\\\"==typeof t.length)return function t(e,r,n){var i=0|e[n];if(i<=0)return[];var a,o=new Array(i);if(n===e.length-1)for(a=0;a<i;++a)o[a]=r;else for(a=0;a<i;++a)o[a]=t(e,r,n+1);return o}(t,e,0)}return[]}},{}],156:[function(t,e,r){\\\"use strict\\\";function n(t,e,r){r=r||2;var n,s,l,c,u,p,g,v=e&&e.length,m=v?e[0]*r:t.length,y=i(t,0,m,r,!0),x=[];if(!y)return x;if(v&&(y=function(t,e,r,n){var o,s,l,c,u,p=[];for(o=0,s=e.length;o<s;o++)l=e[o]*n,c=o<s-1?e[o+1]*n:t.length,(u=i(t,l,c,n,!1))===u.next&&(u.steiner=!0),p.push(d(u));for(p.sort(f),o=0;o<p.length;o++)h(p[o],r),r=a(r,r.next);return r}(t,e,y,r)),t.length>80*r){n=l=t[0],s=c=t[1];for(var b=r;b<m;b+=r)(u=t[b])<n&&(n=u),(p=t[b+1])<s&&(s=p),u>l&&(l=u),p>c&&(c=p);g=0!==(g=Math.max(l-n,c-s))?1/g:0}return o(y,x,r,n,s,g),x}function i(t,e,r,n,i){var a,o;if(i===A(t,e,r,n)>0)for(a=e;a<r;a+=n)o=w(a,t[a],t[a+1],o);else for(a=r-n;a>=e;a-=n)o=w(a,t[a],t[a+1],o);return o&&y(o,o.next)&&(k(o),o=o.next),o}function a(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!y(n,n.next)&&0!==m(n.prev,n,n.next))n=n.next;else{if(k(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function o(t,e,r,n,i,f,h){if(t){!h&&f&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=p(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e<c&&(s++,n=n.nextZ);e++);for(l=c;s>0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,f);for(var d,g,v=t;t.prev!==t.next;)if(d=t.prev,g=t.next,f?l(t,n,i,f):s(t))e.push(d.i/r),e.push(t.i/r),e.push(g.i/r),k(t),t=g.next,v=g.next;else if((t=g)===v){h?1===h?o(t=c(t,e,r),e,r,n,i,f,2):2===h&&u(t,e,r,n,i,f):o(a(t),e,r,n,i,f,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(m(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(g(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&m(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function l(t,e,r,n){var i=t.prev,a=t,o=t.next;if(m(i,a,o)>=0)return!1;for(var s=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,l=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(s,l,e,r,n),h=p(c,u,e,r,n),d=t.prevZ,v=t.nextZ;d&&d.z>=f&&v&&v.z<=h;){if(d!==t.prev&&d!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&m(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,v!==t.prev&&v!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&m(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;d&&d.z>=f;){if(d!==t.prev&&d!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&m(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;v&&v.z<=h;){if(v!==t.prev&&v!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&m(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function c(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!y(i,a)&&x(i,n,n.next,a)&&b(i,a)&&b(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),k(n),k(n.next),n=t=a),n=n.next}while(n!==t);return n}function u(t,e,r,n,i,s){var l=t;do{for(var c=l.next.next;c!==l.prev;){if(l.i!==c.i&&v(l,c)){var u=_(l,c);return l=a(l,l.next),u=a(u,u.next),o(l,e,r,n,i,s),void o(u,e,r,n,i,s)}c=c.next}l=l.next}while(l!==t)}function f(t,e){return t.x-e.x}function h(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===o)return r.prev;var l,c=r,u=r.x,f=r.y,h=1/0;n=r.next;for(;n!==c;)i>=n.x&&n.x>=u&&i!==n.x&&g(a<f?i:o,a,u,f,a<f?o:i,a,n.x,n.y)&&((l=Math.abs(a-n.y)/(i-n.x))<h||l===h&&n.x>r.x)&&b(n,t)&&(r=n,h=l),n=n.next;return r}(t,e)){var r=_(e,t);a(r,r.next)}}function p(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function d(t){var e=t,r=t;do{e.x<r.x&&(r=e),e=e.next}while(e!==t);return r}function g(t,e,r,n,i,a,o,s){return(i-o)*(e-s)-(t-o)*(a-s)>=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&x(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&b(t,e)&&b(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)}function m(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function y(t,e){return t.x===e.x&&t.y===e.y}function x(t,e,r,n){return!!(y(t,e)&&y(r,n)||y(t,n)&&y(r,e))||m(t,e,r)>0!=m(t,e,n)>0&&m(r,n,t)>0!=m(r,n,e)>0}function b(t,e){return m(t.prev,t,t.next)<0?m(t,e,t.next)>=0&&m(t,t.prev,e)>=0:m(t,e,t.prev)<0||m(t,t.next,e)<0}function _(t,e){var r=new M(t.i,t.x,t.y),n=new M(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function w(t,e,r,n){var i=new M(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function k(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function M(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function A(t,e,r,n){for(var i=0,a=e,o=r-n;a<r;a+=n)i+=(t[o]-t[a])*(t[a+1]+t[o+1]),o=a;return i}e.exports=n,e.exports.default=n,n.deviation=function(t,e,r,n){var i=e&&e.length,a=i?e[0]*r:t.length,o=Math.abs(A(t,0,a,r));if(i)for(var s=0,l=e.length;s<l;s++){var c=e[s]*r,u=s<l-1?e[s+1]*r:t.length;o-=Math.abs(A(t,c,u,r))}var f=0;for(s=0;s<n.length;s+=3){var h=n[s]*r,p=n[s+1]*r,d=n[s+2]*r;f+=Math.abs((t[h]-t[d])*(t[p+1]-t[h+1])-(t[h]-t[p])*(t[d+1]-t[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},n.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var a=0;a<t[i].length;a++)for(var o=0;o<e;o++)r.vertices.push(t[i][a][o]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],157:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=t.length;if(\\\"number\\\"!=typeof e){e=0;for(var i=0;i<r;++i){var a=t[i];e=Math.max(e,a[0],a[1])}e=1+(0|e)}e|=0;for(var o=new Array(e),i=0;i<e;++i)o[i]=[];for(var i=0;i<r;++i){var a=t[i];o[a[0]].push(a[1]),o[a[1]].push(a[0])}for(var s=0;s<e;++s)n(o[s],function(t,e){return t-e});return o};var n=t(\\\"uniq\\\")},{uniq:524}],158:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../object/valid-value\\\");e.exports=function(){return n(this).length=0,this}},{\\\"../../object/valid-value\\\":190}],159:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Array.from:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":160,\\\"./shim\\\":161}],160:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t,e,r=Array.from;return\\\"function\\\"==typeof r&&(e=r(t=[\\\"raz\\\",\\\"dwa\\\"]),Boolean(e&&e!==t&&\\\"dwa\\\"===e[1]))}},{}],161:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es6-symbol\\\").iterator,i=t(\\\"../../function/is-arguments\\\"),a=t(\\\"../../function/is-function\\\"),o=t(\\\"../../number/to-pos-integer\\\"),s=t(\\\"../../object/valid-callable\\\"),l=t(\\\"../../object/valid-value\\\"),c=t(\\\"../../object/is-value\\\"),u=t(\\\"../../string/is-string\\\"),f=Array.isArray,h=Function.prototype.call,p={configurable:!0,enumerable:!0,writable:!0,value:null},d=Object.defineProperty;e.exports=function(t){var e,r,g,v,m,y,x,b,_,w,k=arguments[1],M=arguments[2];if(t=Object(l(t)),c(k)&&s(k),this&&this!==Array&&a(this))e=this;else{if(!k){if(i(t))return 1!==(m=t.length)?Array.apply(null,t):((v=new Array(1))[0]=t[0],v);if(f(t)){for(v=new Array(m=t.length),r=0;r<m;++r)v[r]=t[r];return v}}v=[]}if(!f(t))if(void 0!==(_=t[n])){for(x=s(_).call(t),e&&(v=new e),b=x.next(),r=0;!b.done;)w=k?h.call(k,M,b.value,r):b.value,e?(p.value=w,d(v,r,p)):v[r]=w,b=x.next(),++r;m=r}else if(u(t)){for(m=t.length,e&&(v=new e),r=0,g=0;r<m;++r)w=t[r],r+1<m&&(y=w.charCodeAt(0))>=55296&&y<=56319&&(w+=t[++r]),w=k?h.call(k,M,w,g):w,e?(p.value=w,d(v,g,p)):v[g]=w,++g;m=g}if(void 0===m)for(m=o(t.length),e&&(v=new e(m)),r=0;r<m;++r)w=k?h.call(k,M,t[r],r):t[r],e?(p.value=w,d(v,r,p)):v[r]=w;return e&&(p.value=null,v.length=m),v}},{\\\"../../function/is-arguments\\\":162,\\\"../../function/is-function\\\":163,\\\"../../number/to-pos-integer\\\":169,\\\"../../object/is-value\\\":179,\\\"../../object/valid-callable\\\":188,\\\"../../object/valid-value\\\":190,\\\"../../string/is-string\\\":194,\\\"es6-symbol\\\":204}],162:[function(t,e,r){\\\"use strict\\\";var n=Object.prototype.toString,i=n.call(function(){return arguments}());e.exports=function(t){return n.call(t)===i}},{}],163:[function(t,e,r){\\\"use strict\\\";var n=Object.prototype.toString,i=n.call(t(\\\"./noop\\\"));e.exports=function(t){return\\\"function\\\"==typeof t&&n.call(t)===i}},{\\\"./noop\\\":164}],164:[function(t,e,r){\\\"use strict\\\";e.exports=function(){}},{}],165:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Math.sign:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":166,\\\"./shim\\\":167}],166:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t=Math.sign;return\\\"function\\\"==typeof t&&(1===t(10)&&-1===t(-20))}},{}],167:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t=Number(t),isNaN(t)||0===t?t:t>0?1:-1}},{}],168:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../math/sign\\\"),i=Math.abs,a=Math.floor;e.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*a(i(t)):t}},{\\\"../math/sign\\\":165}],169:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./to-integer\\\"),i=Math.max;e.exports=function(t){return i(0,n(t))}},{\\\"./to-integer\\\":168}],170:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./valid-callable\\\"),i=t(\\\"./valid-value\\\"),a=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;e.exports=function(t,e){return function(r,c){var u,f=arguments[2],h=arguments[3];return r=Object(i(r)),n(c),u=s(r),h&&u.sort(\\\"function\\\"==typeof h?a.call(h,r):void 0),\\\"function\\\"!=typeof t&&(t=u[t]),o.call(t,u,function(t,n){return l.call(r,t)?o.call(c,f,r[t],t,r,n):e})}}},{\\\"./valid-callable\\\":188,\\\"./valid-value\\\":190}],171:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Object.assign:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":172,\\\"./shim\\\":173}],172:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t,e=Object.assign;return\\\"function\\\"==typeof e&&(e(t={foo:\\\"raz\\\"},{bar:\\\"dwa\\\"},{trzy:\\\"trzy\\\"}),t.foo+t.bar+t.trzy===\\\"razdwatrzy\\\")}},{}],173:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../keys\\\"),i=t(\\\"../valid-value\\\"),a=Math.max;e.exports=function(t,e){var r,o,s,l=a(arguments.length,2);for(t=Object(i(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o<l;++o)e=arguments[o],n(e).forEach(s);if(void 0!==r)throw r;return t}},{\\\"../keys\\\":180,\\\"../valid-value\\\":190}],174:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../array/from\\\"),i=t(\\\"./assign\\\"),a=t(\\\"./valid-value\\\");e.exports=function(t){var e=Object(a(t)),r=arguments[1],o=Object(arguments[2]);if(e!==t&&!r)return e;var s={};return r?n(r,function(e){(o.ensure||e in t)&&(s[e]=t[e])}):i(s,t),s}},{\\\"../array/from\\\":159,\\\"./assign\\\":171,\\\"./valid-value\\\":190}],175:[function(t,e,r){\\\"use strict\\\";var n,i,a,o,s=Object.create;t(\\\"./set-prototype-of/is-implemented\\\")()||(n=t(\\\"./set-prototype-of/shim\\\")),e.exports=n?1!==n.level?s:(i={},a={},o={configurable:!1,enumerable:!1,writable:!0,value:void 0},Object.getOwnPropertyNames(Object.prototype).forEach(function(t){a[t]=\\\"__proto__\\\"!==t?o:{configurable:!0,enumerable:!1,writable:!0,value:void 0}}),Object.defineProperties(i,a),Object.defineProperty(n,\\\"nullPolyfill\\\",{configurable:!1,enumerable:!1,writable:!1,value:i}),function(t,e){return s(null===t?i:t,e)}):s},{\\\"./set-prototype-of/is-implemented\\\":186,\\\"./set-prototype-of/shim\\\":187}],176:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./_iterate\\\")(\\\"forEach\\\")},{\\\"./_iterate\\\":170}],177:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return\\\"function\\\"==typeof t}},{}],178:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-value\\\"),i={function:!0,object:!0};e.exports=function(t){return n(t)&&i[typeof t]||!1}},{\\\"./is-value\\\":179}],179:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../function/noop\\\")();e.exports=function(t){return t!==n&&null!==t}},{\\\"../function/noop\\\":164}],180:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Object.keys:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":181,\\\"./shim\\\":182}],181:[function(t,e,r){\\\"use strict\\\";e.exports=function(){try{return Object.keys(\\\"primitive\\\"),!0}catch(t){return!1}}},{}],182:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../is-value\\\"),i=Object.keys;e.exports=function(t){return i(n(t)?Object(t):t)}},{\\\"../is-value\\\":179}],183:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./valid-callable\\\"),i=t(\\\"./for-each\\\"),a=Function.prototype.call;e.exports=function(t,e){var r={},o=arguments[2];return n(e),i(t,function(t,n,i,s){r[n]=a.call(e,o,t,n,i,s)}),r}},{\\\"./for-each\\\":176,\\\"./valid-callable\\\":188}],184:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-value\\\"),i=Array.prototype.forEach,a=Object.create;e.exports=function(t){var e=a(null);return i.call(arguments,function(t){n(t)&&function(t,e){var r;for(r in t)e[r]=t[r]}(Object(t),e)}),e}},{\\\"./is-value\\\":179}],185:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Object.setPrototypeOf:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":186,\\\"./shim\\\":187}],186:[function(t,e,r){\\\"use strict\\\";var n=Object.create,i=Object.getPrototypeOf,a={};e.exports=function(){var t=Object.setPrototypeOf,e=arguments[0]||n;return\\\"function\\\"==typeof t&&i(t(e(null),a))===a}},{}],187:[function(t,e,r){\\\"use strict\\\";var n,i,a,o,s=t(\\\"../is-object\\\"),l=t(\\\"../valid-value\\\"),c=Object.prototype.isPrototypeOf,u=Object.defineProperty,f={configurable:!0,enumerable:!1,writable:!0,value:void 0};n=function(t,e){if(l(t),null===e||s(e))return t;throw new TypeError(\\\"Prototype must be null or an object\\\")},e.exports=(i=function(){var t,e=Object.create(null),r={},n=Object.getOwnPropertyDescriptor(Object.prototype,\\\"__proto__\\\");if(n){try{(t=n.set).call(e,r)}catch(t){}if(Object.getPrototypeOf(e)===r)return{set:t,level:2}}return e.__proto__=r,Object.getPrototypeOf(e)===r?{level:2}:((e={}).__proto__=r,Object.getPrototypeOf(e)===r&&{level:1})}())?(2===i.level?i.set?(o=i.set,a=function(t,e){return o.call(n(t,e),e),t}):a=function(t,e){return n(t,e).__proto__=e,t}:a=function t(e,r){var i;return n(e,r),(i=c.call(t.nullPolyfill,e))&&delete t.nullPolyfill.__proto__,null===r&&(r=t.nullPolyfill),e.__proto__=r,i&&u(t.nullPolyfill,\\\"__proto__\\\",f),e},Object.defineProperty(a,\\\"level\\\",{configurable:!1,enumerable:!1,writable:!1,value:i.level})):null,t(\\\"../create\\\")},{\\\"../create\\\":175,\\\"../is-object\\\":178,\\\"../valid-value\\\":190}],188:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){if(\\\"function\\\"!=typeof t)throw new TypeError(t+\\\" is not a function\\\");return t}},{}],189:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-object\\\");e.exports=function(t){if(!n(t))throw new TypeError(t+\\\" is not an Object\\\");return t}},{\\\"./is-object\\\":178}],190:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-value\\\");e.exports=function(t){if(!n(t))throw new TypeError(\\\"Cannot use null or undefined\\\");return t}},{\\\"./is-value\\\":179}],191:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?String.prototype.contains:t(\\\"./shim\\\")},{\\\"./is-implemented\\\":192,\\\"./shim\\\":193}],192:[function(t,e,r){\\\"use strict\\\";var n=\\\"razdwatrzy\\\";e.exports=function(){return\\\"function\\\"==typeof n.contains&&(!0===n.contains(\\\"dwa\\\")&&!1===n.contains(\\\"foo\\\"))}},{}],193:[function(t,e,r){\\\"use strict\\\";var n=String.prototype.indexOf;e.exports=function(t){return n.call(this,t,arguments[1])>-1}},{}],194:[function(t,e,r){\\\"use strict\\\";var n=Object.prototype.toString,i=n.call(\\\"\\\");e.exports=function(t){return\\\"string\\\"==typeof t||t&&\\\"object\\\"==typeof t&&(t instanceof String||n.call(t)===i)||!1}},{}],195:[function(t,e,r){\\\"use strict\\\";var n=Object.create(null),i=Math.random;e.exports=function(){var t;do{t=i().toString(36).slice(2)}while(n[t]);return t}},{}],196:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/object/set-prototype-of\\\"),a=t(\\\"es5-ext/string/#/contains\\\"),o=t(\\\"d\\\"),s=t(\\\"es6-symbol\\\"),l=t(\\\"./\\\"),c=Object.defineProperty;n=e.exports=function(t,e){if(!(this instanceof n))throw new TypeError(\\\"Constructor requires 'new'\\\");l.call(this,t),e=e?a.call(e,\\\"key+value\\\")?\\\"key+value\\\":a.call(e,\\\"key\\\")?\\\"key\\\":\\\"value\\\":\\\"value\\\",c(this,\\\"__kind__\\\",o(\\\"\\\",e))},i&&i(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o(function(t){return\\\"value\\\"===this.__kind__?this.__list__[t]:\\\"key+value\\\"===this.__kind__?[t,this.__list__[t]]:t})}),c(n.prototype,s.toStringTag,o(\\\"c\\\",\\\"Array Iterator\\\"))},{\\\"./\\\":199,d:139,\\\"es5-ext/object/set-prototype-of\\\":185,\\\"es5-ext/string/#/contains\\\":191,\\\"es6-symbol\\\":204}],197:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es5-ext/function/is-arguments\\\"),i=t(\\\"es5-ext/object/valid-callable\\\"),a=t(\\\"es5-ext/string/is-string\\\"),o=t(\\\"./get\\\"),s=Array.isArray,l=Function.prototype.call,c=Array.prototype.some;e.exports=function(t,e){var r,u,f,h,p,d,g,v,m=arguments[2];if(s(t)||n(t)?r=\\\"array\\\":a(t)?r=\\\"string\\\":t=o(t),i(e),f=function(){h=!0},\\\"array\\\"!==r)if(\\\"string\\\"!==r)for(u=t.next();!u.done;){if(l.call(e,m,u.value,f),h)return;u=t.next()}else for(d=t.length,p=0;p<d&&(g=t[p],p+1<d&&(v=g.charCodeAt(0))>=55296&&v<=56319&&(g+=t[++p]),l.call(e,m,g,f),!h);++p);else c.call(t,function(t){return l.call(e,m,t,f),h})}},{\\\"./get\\\":198,\\\"es5-ext/function/is-arguments\\\":162,\\\"es5-ext/object/valid-callable\\\":188,\\\"es5-ext/string/is-string\\\":194}],198:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es5-ext/function/is-arguments\\\"),i=t(\\\"es5-ext/string/is-string\\\"),a=t(\\\"./array\\\"),o=t(\\\"./string\\\"),s=t(\\\"./valid-iterable\\\"),l=t(\\\"es6-symbol\\\").iterator;e.exports=function(t){return\\\"function\\\"==typeof s(t)[l]?t[l]():n(t)?new a(t):i(t)?new o(t):new a(t)}},{\\\"./array\\\":196,\\\"./string\\\":201,\\\"./valid-iterable\\\":202,\\\"es5-ext/function/is-arguments\\\":162,\\\"es5-ext/string/is-string\\\":194,\\\"es6-symbol\\\":204}],199:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/array/#/clear\\\"),a=t(\\\"es5-ext/object/assign\\\"),o=t(\\\"es5-ext/object/valid-callable\\\"),s=t(\\\"es5-ext/object/valid-value\\\"),l=t(\\\"d\\\"),c=t(\\\"d/auto-bind\\\"),u=t(\\\"es6-symbol\\\"),f=Object.defineProperty,h=Object.defineProperties;e.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError(\\\"Constructor requires 'new'\\\");h(this,{__list__:l(\\\"w\\\",s(t)),__context__:l(\\\"w\\\",e),__nextIndex__:l(\\\"w\\\",0)}),e&&(o(e.on),e.on(\\\"_add\\\",this._onAdd),e.on(\\\"_delete\\\",this._onDelete),e.on(\\\"_clear\\\",this._onClear))},delete n.prototype.constructor,h(n.prototype,a({_next:l(function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__<this.__list__.length?this.__nextIndex__++:void this._unBind()}),next:l(function(){return this._createResult(this._next())}),_createResult:l(function(t){return void 0===t?{done:!0,value:void 0}:{done:!1,value:this._resolve(t)}}),_resolve:l(function(t){return this.__list__[t]}),_unBind:l(function(){this.__list__=null,delete this.__redo__,this.__context__&&(this.__context__.off(\\\"_add\\\",this._onAdd),this.__context__.off(\\\"_delete\\\",this._onDelete),this.__context__.off(\\\"_clear\\\",this._onClear),this.__context__=null)}),toString:l(function(){return\\\"[object \\\"+(this[u.toStringTag]||\\\"Object\\\")+\\\"]\\\"})},c({_onAdd:l(function(t){t>=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach(function(e,r){e>=t&&(this.__redo__[r]=++e)},this),this.__redo__.push(t)):f(this,\\\"__redo__\\\",l(\\\"c\\\",[t])))}),_onDelete:l(function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach(function(e,r){e>t&&(this.__redo__[r]=--e)},this)))}),_onClear:l(function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0})}))),f(n.prototype,u.iterator,l(function(){return this}))},{d:139,\\\"d/auto-bind\\\":138,\\\"es5-ext/array/#/clear\\\":158,\\\"es5-ext/object/assign\\\":171,\\\"es5-ext/object/valid-callable\\\":188,\\\"es5-ext/object/valid-value\\\":190,\\\"es6-symbol\\\":204}],200:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"es5-ext/function/is-arguments\\\"),i=t(\\\"es5-ext/object/is-value\\\"),a=t(\\\"es5-ext/string/is-string\\\"),o=t(\\\"es6-symbol\\\").iterator,s=Array.isArray;e.exports=function(t){return!!i(t)&&(!!s(t)||(!!a(t)||(!!n(t)||\\\"function\\\"==typeof t[o])))}},{\\\"es5-ext/function/is-arguments\\\":162,\\\"es5-ext/object/is-value\\\":179,\\\"es5-ext/string/is-string\\\":194,\\\"es6-symbol\\\":204}],201:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/object/set-prototype-of\\\"),a=t(\\\"d\\\"),o=t(\\\"es6-symbol\\\"),s=t(\\\"./\\\"),l=Object.defineProperty;n=e.exports=function(t){if(!(this instanceof n))throw new TypeError(\\\"Constructor requires 'new'\\\");t=String(t),s.call(this,t),l(this,\\\"__length__\\\",a(\\\"\\\",t.length))},i&&i(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:a(function(){if(this.__list__)return this.__nextIndex__<this.__length__?this.__nextIndex__++:void this._unBind()}),_resolve:a(function(t){var e,r=this.__list__[t];return this.__nextIndex__===this.__length__?r:(e=r.charCodeAt(0))>=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r})}),l(n.prototype,o.toStringTag,a(\\\"c\\\",\\\"String Iterator\\\"))},{\\\"./\\\":199,d:139,\\\"es5-ext/object/set-prototype-of\\\":185,\\\"es6-symbol\\\":204}],202:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-iterable\\\");e.exports=function(t){if(!n(t))throw new TypeError(t+\\\" is not iterable\\\");return t}},{\\\"./is-iterable\\\":200}],203:[function(t,e,r){(function(n,i){!function(t,n){\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?e.exports=n():t.ES6Promise=n()}(this,function(){\\\"use strict\\\";function e(t){return\\\"function\\\"==typeof t}var r=Array.isArray?Array.isArray:function(t){return\\\"[object Array]\\\"===Object.prototype.toString.call(t)},a=0,o=void 0,s=void 0,l=function(t,e){g[a]=t,g[a+1]=e,2===(a+=2)&&(s?s(v):_())};var c=\\\"undefined\\\"!=typeof window?window:void 0,u=c||{},f=u.MutationObserver||u.WebKitMutationObserver,h=\\\"undefined\\\"==typeof self&&\\\"undefined\\\"!=typeof n&&\\\"[object process]\\\"==={}.toString.call(n),p=\\\"undefined\\\"!=typeof Uint8ClampedArray&&\\\"undefined\\\"!=typeof importScripts&&\\\"undefined\\\"!=typeof MessageChannel;function d(){var t=setTimeout;return function(){return t(v,1)}}var g=new Array(1e3);function v(){for(var t=0;t<a;t+=2){(0,g[t])(g[t+1]),g[t]=void 0,g[t+1]=void 0}a=0}var m,y,x,b,_=void 0;function w(t,e){var r=arguments,n=this,i=new this.constructor(A);void 0===i[M]&&U(i);var a,o=n._state;return o?(a=r[o-1],l(function(){return j(o,i,a,n._result)})):R(n,i,t,e),i}function k(t){if(t&&\\\"object\\\"==typeof t&&t.constructor===this)return t;var e=new this(A);return O(e,t),e}h?_=function(){return n.nextTick(v)}:f?(y=0,x=new f(v),b=document.createTextNode(\\\"\\\"),x.observe(b,{characterData:!0}),_=function(){b.data=y=++y%2}):p?((m=new MessageChannel).port1.onmessage=v,_=function(){return m.port2.postMessage(0)}):_=void 0===c&&\\\"function\\\"==typeof t?function(){try{var e=t(\\\"vertx\\\");return o=e.runOnLoop||e.runOnContext,function(){o(v)}}catch(t){return d()}}():d();var M=Math.random().toString(36).substring(16);function A(){}var T=void 0,S=1,E=2,C=new F;function L(t){try{return t.then}catch(t){return C.error=t,C}}function z(t,r,n){r.constructor===t.constructor&&n===w&&r.constructor.resolve===k?function(t,e){e._state===S?P(t,e._result):e._state===E?D(t,e._result):R(e,void 0,function(e){return O(t,e)},function(e){return D(t,e)})}(t,r):n===C?D(t,C.error):void 0===n?P(t,r):e(n)?function(t,e,r){l(function(t){var n=!1,i=function(t,e,r,n){try{t.call(e,r,n)}catch(t){return t}}(r,e,function(r){n||(n=!0,e!==r?O(t,r):P(t,r))},function(e){n||(n=!0,D(t,e))},t._label);!n&&i&&(n=!0,D(t,i))},t)}(t,r,n):P(t,r)}function O(t,e){var r;t===e?D(t,new TypeError(\\\"You cannot resolve a promise with itself\\\")):\\\"function\\\"==typeof(r=e)||\\\"object\\\"==typeof r&&null!==r?z(t,e,L(e)):P(t,e)}function I(t){t._onerror&&t._onerror(t._result),B(t)}function P(t,e){t._state===T&&(t._result=e,t._state=S,0!==t._subscribers.length&&l(B,t))}function D(t,e){t._state===T&&(t._state=E,t._result=e,l(I,t))}function R(t,e,r,n){var i=t._subscribers,a=i.length;t._onerror=null,i[a]=e,i[a+S]=r,i[a+E]=n,0===a&&t._state&&l(B,t)}function B(t){var e=t._subscribers,r=t._state;if(0!==e.length){for(var n=void 0,i=void 0,a=t._result,o=0;o<e.length;o+=3)n=e[o],i=e[o+r],n?j(r,n,i,a):i(a);t._subscribers.length=0}}function F(){this.error=null}var N=new F;function j(t,r,n,i){var a=e(n),o=void 0,s=void 0,l=void 0,c=void 0;if(a){if((o=function(t,e){try{return t(e)}catch(t){return N.error=t,N}}(n,i))===N?(c=!0,s=o.error,o=null):l=!0,r===o)return void D(r,new TypeError(\\\"A promises callback cannot return that same promise.\\\"))}else o=i,l=!0;r._state!==T||(a&&l?O(r,o):c?D(r,s):t===S?P(r,o):t===E&&D(r,o))}var V=0;function U(t){t[M]=V++,t._state=void 0,t._result=void 0,t._subscribers=[]}function q(t,e){this._instanceConstructor=t,this.promise=new t(A),this.promise[M]||U(this.promise),r(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?P(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&P(this.promise,this._result))):D(this.promise,new Error(\\\"Array Methods must be provided an Array\\\"))}function H(t){this[M]=V++,this._result=this._state=void 0,this._subscribers=[],A!==t&&(\\\"function\\\"!=typeof t&&function(){throw new TypeError(\\\"You must pass a resolver function as the first argument to the promise constructor\\\")}(),this instanceof H?function(t,e){try{e(function(e){O(t,e)},function(e){D(t,e)})}catch(e){D(t,e)}}(this,t):function(){throw new TypeError(\\\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\\\")}())}function G(){var t=void 0;if(\\\"undefined\\\"!=typeof i)t=i;else if(\\\"undefined\\\"!=typeof self)t=self;else try{t=Function(\\\"return this\\\")()}catch(t){throw new Error(\\\"polyfill failed because global object is unavailable in this environment\\\")}var e=t.Promise;if(e){var r=null;try{r=Object.prototype.toString.call(e.resolve())}catch(t){}if(\\\"[object Promise]\\\"===r&&!e.cast)return}t.Promise=H}return q.prototype._enumerate=function(){for(var t=this.length,e=this._input,r=0;this._state===T&&r<t;r++)this._eachEntry(e[r],r)},q.prototype._eachEntry=function(t,e){var r=this._instanceConstructor,n=r.resolve;if(n===k){var i=L(t);if(i===w&&t._state!==T)this._settledAt(t._state,e,t._result);else if(\\\"function\\\"!=typeof i)this._remaining--,this._result[e]=t;else if(r===H){var a=new r(A);z(a,t,i),this._willSettleAt(a,e)}else this._willSettleAt(new r(function(e){return e(t)}),e)}else this._willSettleAt(n(t),e)},q.prototype._settledAt=function(t,e,r){var n=this.promise;n._state===T&&(this._remaining--,t===E?D(n,r):this._result[e]=r),0===this._remaining&&P(n,this._result)},q.prototype._willSettleAt=function(t,e){var r=this;R(t,void 0,function(t){return r._settledAt(S,e,t)},function(t){return r._settledAt(E,e,t)})},H.all=function(t){return new q(this,t).promise},H.race=function(t){var e=this;return r(t)?new e(function(r,n){for(var i=t.length,a=0;a<i;a++)e.resolve(t[a]).then(r,n)}):new e(function(t,e){return e(new TypeError(\\\"You must pass an array to race.\\\"))})},H.resolve=k,H.reject=function(t){var e=new this(A);return D(e,t),e},H._setScheduler=function(t){s=t},H._setAsap=function(t){l=t},H._asap=l,H.prototype={constructor:H,then:w,catch:function(t){return this.then(null,t)}},G(),H.polyfill=G,H.Promise=H,H})}).call(this,t(\\\"_process\\\"),\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{_process:465}],204:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?Symbol:t(\\\"./polyfill\\\")},{\\\"./is-implemented\\\":205,\\\"./polyfill\\\":207}],205:[function(t,e,r){\\\"use strict\\\";var n={object:!0,symbol:!0};e.exports=function(){var t;if(\\\"function\\\"!=typeof Symbol)return!1;t=Symbol(\\\"test symbol\\\");try{String(t)}catch(t){return!1}return!!n[typeof Symbol.iterator]&&(!!n[typeof Symbol.toPrimitive]&&!!n[typeof Symbol.toStringTag])}},{}],206:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return!!t&&(\\\"symbol\\\"==typeof t||!!t.constructor&&(\\\"Symbol\\\"===t.constructor.name&&\\\"Symbol\\\"===t[t.constructor.toStringTag]))}},{}],207:[function(t,e,r){\\\"use strict\\\";var n,i,a,o,s=t(\\\"d\\\"),l=t(\\\"./validate-symbol\\\"),c=Object.create,u=Object.defineProperties,f=Object.defineProperty,h=Object.prototype,p=c(null);if(\\\"function\\\"==typeof Symbol){n=Symbol;try{String(n()),o=!0}catch(t){}}var d,g=(d=c(null),function(t){for(var e,r,n=0;d[t+(n||\\\"\\\")];)++n;return d[t+=n||\\\"\\\"]=!0,f(h,e=\\\"@@\\\"+t,s.gs(null,function(t){r||(r=!0,f(this,e,s(t)),r=!1)})),e});a=function(t){if(this instanceof a)throw new TypeError(\\\"Symbol is not a constructor\\\");return i(t)},e.exports=i=function t(e){var r;if(this instanceof t)throw new TypeError(\\\"Symbol is not a constructor\\\");return o?n(e):(r=c(a.prototype),e=void 0===e?\\\"\\\":String(e),u(r,{__description__:s(\\\"\\\",e),__name__:s(\\\"\\\",g(e))}))},u(i,{for:s(function(t){return p[t]?p[t]:p[t]=i(String(t))}),keyFor:s(function(t){var e;for(e in l(t),p)if(p[e]===t)return e}),hasInstance:s(\\\"\\\",n&&n.hasInstance||i(\\\"hasInstance\\\")),isConcatSpreadable:s(\\\"\\\",n&&n.isConcatSpreadable||i(\\\"isConcatSpreadable\\\")),iterator:s(\\\"\\\",n&&n.iterator||i(\\\"iterator\\\")),match:s(\\\"\\\",n&&n.match||i(\\\"match\\\")),replace:s(\\\"\\\",n&&n.replace||i(\\\"replace\\\")),search:s(\\\"\\\",n&&n.search||i(\\\"search\\\")),species:s(\\\"\\\",n&&n.species||i(\\\"species\\\")),split:s(\\\"\\\",n&&n.split||i(\\\"split\\\")),toPrimitive:s(\\\"\\\",n&&n.toPrimitive||i(\\\"toPrimitive\\\")),toStringTag:s(\\\"\\\",n&&n.toStringTag||i(\\\"toStringTag\\\")),unscopables:s(\\\"\\\",n&&n.unscopables||i(\\\"unscopables\\\"))}),u(a.prototype,{constructor:s(i),toString:s(\\\"\\\",function(){return this.__name__})}),u(i.prototype,{toString:s(function(){return\\\"Symbol (\\\"+l(this).__description__+\\\")\\\"}),valueOf:s(function(){return l(this)})}),f(i.prototype,i.toPrimitive,s(\\\"\\\",function(){var t=l(this);return\\\"symbol\\\"==typeof t?t:t.toString()})),f(i.prototype,i.toStringTag,s(\\\"c\\\",\\\"Symbol\\\")),f(a.prototype,i.toStringTag,s(\\\"c\\\",i.prototype[i.toStringTag])),f(a.prototype,i.toPrimitive,s(\\\"c\\\",i.prototype[i.toPrimitive]))},{\\\"./validate-symbol\\\":208,d:139}],208:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is-symbol\\\");e.exports=function(t){if(!n(t))throw new TypeError(t+\\\" is not a symbol\\\");return t}},{\\\"./is-symbol\\\":206}],209:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./is-implemented\\\")()?WeakMap:t(\\\"./polyfill\\\")},{\\\"./is-implemented\\\":210,\\\"./polyfill\\\":212}],210:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t,e;if(\\\"function\\\"!=typeof WeakMap)return!1;try{t=new WeakMap([[e={},\\\"one\\\"],[{},\\\"two\\\"],[{},\\\"three\\\"]])}catch(t){return!1}return\\\"[object WeakMap]\\\"===String(t)&&(\\\"function\\\"==typeof t.set&&(t.set({},1)===t&&(\\\"function\\\"==typeof t.delete&&(\\\"function\\\"==typeof t.has&&\\\"one\\\"===t.get(e)))))}},{}],211:[function(t,e,r){\\\"use strict\\\";e.exports=\\\"function\\\"==typeof WeakMap&&\\\"[object WeakMap]\\\"===Object.prototype.toString.call(new WeakMap)},{}],212:[function(t,e,r){\\\"use strict\\\";var n,i=t(\\\"es5-ext/object/set-prototype-of\\\"),a=t(\\\"es5-ext/object/valid-object\\\"),o=t(\\\"es5-ext/object/valid-value\\\"),s=t(\\\"es5-ext/string/random-uniq\\\"),l=t(\\\"d\\\"),c=t(\\\"es6-iterator/get\\\"),u=t(\\\"es6-iterator/for-of\\\"),f=t(\\\"es6-symbol\\\").toStringTag,h=t(\\\"./is-native-implemented\\\"),p=Array.isArray,d=Object.defineProperty,g=Object.prototype.hasOwnProperty,v=Object.getPrototypeOf;e.exports=n=function(){var t,e=arguments[0];if(!(this instanceof n))throw new TypeError(\\\"Constructor requires 'new'\\\");return t=h&&i&&WeakMap!==n?i(new WeakMap,v(this)):this,null!=e&&(p(e)||(e=c(e))),d(t,\\\"__weakMapData__\\\",l(\\\"c\\\",\\\"$weakMap$\\\"+s())),e?(u(e,function(e){o(e),t.set(e[0],e[1])}),t):t},h&&(i&&i(n,WeakMap),n.prototype=Object.create(WeakMap.prototype,{constructor:l(n)})),Object.defineProperties(n.prototype,{delete:l(function(t){return!!g.call(a(t),this.__weakMapData__)&&(delete t[this.__weakMapData__],!0)}),get:l(function(t){if(g.call(a(t),this.__weakMapData__))return t[this.__weakMapData__]}),has:l(function(t){return g.call(a(t),this.__weakMapData__)}),set:l(function(t,e){return d(a(t),this.__weakMapData__,l(\\\"c\\\",e)),this}),toString:l(function(){return\\\"[object WeakMap]\\\"})}),d(n.prototype,f,l(\\\"c\\\",\\\"WeakMap\\\"))},{\\\"./is-native-implemented\\\":211,d:139,\\\"es5-ext/object/set-prototype-of\\\":185,\\\"es5-ext/object/valid-object\\\":189,\\\"es5-ext/object/valid-value\\\":190,\\\"es5-ext/string/random-uniq\\\":195,\\\"es6-iterator/for-of\\\":197,\\\"es6-iterator/get\\\":198,\\\"es6-symbol\\\":204}],213:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n=e||0,i=r||1;return[[t[12]+t[0],t[13]+t[1],t[14]+t[2],t[15]+t[3]],[t[12]-t[0],t[13]-t[1],t[14]-t[2],t[15]-t[3]],[t[12]+t[4],t[13]+t[5],t[14]+t[6],t[15]+t[7]],[t[12]-t[4],t[13]-t[5],t[14]-t[6],t[15]-t[7]],[n*t[12]+t[8],n*t[13]+t[9],n*t[14]+t[10],n*t[15]+t[11]],[i*t[12]-t[8],i*t[13]-t[9],i*t[14]-t[10],i*t[15]-t[11]]]}},{}],214:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"is-string-blank\\\");e.exports=function(t){var e=typeof t;if(\\\"string\\\"===e){var r=t;if(0===(t=+t)&&n(r))return!1}else if(\\\"number\\\"!==e)return!1;return t-t<1}},{\\\"is-string-blank\\\":406}],215:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){switch(arguments.length){case 0:return new o([0],[0],0);case 1:if(\\\"number\\\"==typeof t){var n=l(t);return new o(n,n,0)}return new o(t,l(t.length),0);case 2:if(\\\"number\\\"==typeof e){var n=l(t.length);return new o(t,n,+e)}r=0;case 3:if(t.length!==e.length)throw new Error(\\\"state and velocity lengths must match\\\");return new o(t,e,r)}};var n=t(\\\"cubic-hermite\\\"),i=t(\\\"binary-search-bounds\\\");function a(t,e,r){return Math.min(e,Math.max(t,r))}function o(t,e,r){this.dimension=t.length,this.bounds=[new Array(this.dimension),new Array(this.dimension)];for(var n=0;n<this.dimension;++n)this.bounds[0][n]=-1/0,this.bounds[1][n]=1/0;this._state=t.slice().reverse(),this._velocity=e.slice().reverse(),this._time=[r],this._scratch=[t.slice(),t.slice(),t.slice(),t.slice(),t.slice()]}var s=o.prototype;function l(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=0;return e}s.flush=function(t){var e=i.gt(this._time,t)-1;e<=0||(this._time.splice(0,e),this._state.splice(0,e*this.dimension),this._velocity.splice(0,e*this.dimension))},s.curve=function(t){var e=this._time,r=e.length,o=i.le(e,t),s=this._scratch[0],l=this._state,c=this._velocity,u=this.dimension,f=this.bounds;if(o<0)for(var h=u-1,p=0;p<u;++p,--h)s[p]=l[h];else if(o>=r-1){h=l.length-1;var d=t-e[r-1];for(p=0;p<u;++p,--h)s[p]=l[h]+d*c[h]}else{h=u*(o+1)-1;var g=e[o],v=e[o+1]-g||1,m=this._scratch[1],y=this._scratch[2],x=this._scratch[3],b=this._scratch[4],_=!0;for(p=0;p<u;++p,--h)m[p]=l[h],x[p]=c[h]*v,y[p]=l[h+u],b[p]=c[h+u]*v,_=_&&m[p]===y[p]&&x[p]===b[p]&&0===x[p];if(_)for(p=0;p<u;++p)s[p]=m[p];else n(m,x,y,b,(t-g)/v,s)}var w=f[0],k=f[1];for(p=0;p<u;++p)s[p]=a(w[p],k[p],s[p]);return s},s.dcurve=function(t){var e=this._time,r=e.length,a=i.le(e,t),o=this._scratch[0],s=this._state,l=this._velocity,c=this.dimension;if(a>=r-1)for(var u=s.length-1,f=(e[r-1],0);f<c;++f,--u)o[f]=l[u];else{u=c*(a+1)-1;var h=e[a],p=e[a+1]-h||1,d=this._scratch[1],g=this._scratch[2],v=this._scratch[3],m=this._scratch[4],y=!0;for(f=0;f<c;++f,--u)d[f]=s[u],v[f]=l[u]*p,g[f]=s[u+c],m[f]=l[u+c]*p,y=y&&d[f]===g[f]&&v[f]===m[f]&&0===v[f];if(y)for(f=0;f<c;++f)o[f]=0;else{n.derivative(d,v,g,m,(t-h)/p,o);for(f=0;f<c;++f)o[f]/=p}}return o},s.lastT=function(){var t=this._time;return t[t.length-1]},s.stable=function(){for(var t=this._velocity,e=t.length,r=this.dimension-1;r>=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t<e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1];this._time.push(e,t);for(var u=0;u<2;++u)for(var f=0;f<r;++f)n.push(n[o++]),i.push(0);this._time.push(t);for(f=r;f>0;--f)n.push(a(l[f-1],c[f-1],arguments[f])),i.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t<e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=t-e,l=this.bounds,c=l[0],u=l[1],f=s>1e-6?1/s:0;this._time.push(t);for(var h=r;h>0;--h){var p=a(c[h-1],u[h-1],arguments[h]);n.push(p),i.push((p-n[o++])*f)}}},s.set=function(t){var e=this.dimension;if(!(t<this.lastT()||arguments.length!==e+1)){var r=this._state,n=this._velocity,i=this.bounds,o=i[0],s=i[1];this._time.push(t);for(var l=e;l>0;--l)r.push(a(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1],u=t-e,f=u>1e-6?1/u:0;this._time.push(t);for(var h=r;h>0;--h){var p=arguments[h];n.push(a(l[h-1],c[h-1],n[o++]+p)),i.push(p*f)}}},s.idle=function(t){var e=this.lastT();if(!(t<e)){var r=this.dimension,n=this._state,i=this._velocity,o=n.length-r,s=this.bounds,l=s[0],c=s[1],u=t-e;this._time.push(t);for(var f=r-1;f>=0;--f)n.push(a(l[f],c[f],n[o]+u*i[o])),i.push(0),o+=1}}},{\\\"binary-search-bounds\\\":79,\\\"cubic-hermite\\\":133}],216:[function(t,e,r){var n=t(\\\"dtype\\\");e.exports=function(t,e,r){if(!t)throw new TypeError(\\\"must specify data as first parameter\\\");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&\\\"number\\\"==typeof t[0][0]){var i,a,o,s,l=t[0].length,c=t.length*l;e&&\\\"string\\\"!=typeof e||(e=new(n(e||\\\"float32\\\"))(c+r));var u=e.length-r;if(c!==u)throw new Error(\\\"source length \\\"+c+\\\" (\\\"+l+\\\"x\\\"+t.length+\\\") does not match destination length \\\"+u);for(i=0,o=r;i<t.length;i++)for(a=0;a<l;a++)e[o++]=null===t[i][a]?NaN:t[i][a]}else if(e&&\\\"string\\\"!=typeof e)e.set(t,r);else{var f=n(e||\\\"float32\\\");if(Array.isArray(t)||\\\"array\\\"===e)for(e=new f(t.length+r),i=0,o=r,s=e.length;o<s;o++,i++)e[o]=null===t[i]?NaN:t[i];else 0===r?e=new f(t):(e=new f(t.length+r)).set(t,r)}return e}},{dtype:154}],217:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"css-font/stringify\\\"),i=[32,126];e.exports=function(t){var e=(t=t||{}).shape?t.shape:t.canvas?[t.canvas.width,t.canvas.height]:[512,512],r=t.canvas||document.createElement(\\\"canvas\\\"),a=t.font,o=\\\"number\\\"==typeof t.step?[t.step,t.step]:t.step||[32,32],s=t.chars||i;a&&\\\"string\\\"!=typeof a&&(a=n(a));if(Array.isArray(s)){if(2===s.length&&\\\"number\\\"==typeof s[0]&&\\\"number\\\"==typeof s[1]){for(var l=[],c=s[0],u=0;c<=s[1];c++)l[u++]=String.fromCharCode(c);s=l}}else s=String(s).split(\\\"\\\");e=e.slice(),r.width=e[0],r.height=e[1];var f=r.getContext(\\\"2d\\\");f.fillStyle=\\\"#000\\\",f.fillRect(0,0,r.width,r.height),f.font=a,f.textAlign=\\\"center\\\",f.textBaseline=\\\"middle\\\",f.fillStyle=\\\"#fff\\\";for(var h=o[0]/2,p=o[1]/2,c=0;c<s.length;c++)f.fillText(s[c],h,p),(h+=o[0])>e[0]-o[0]/2&&(h=o[0]/2,p+=o[1]);return r}},{\\\"css-font/stringify\\\":130}],218:[function(t,e,r){\\\"use strict\\\";function n(t,e){e||(e={}),(\\\"string\\\"==typeof t||Array.isArray(t))&&(e.family=t);var r=Array.isArray(e.family)?e.family.join(\\\", \\\"):e.family;if(!r)throw Error(\\\"`family` must be defined\\\");var s=e.size||e.fontSize||e.em||48,l=e.weight||e.fontWeight||\\\"\\\",c=(t=[e.style||e.fontStyle||\\\"\\\",l,s].join(\\\" \\\")+\\\"px \\\"+r,e.origin||\\\"top\\\");if(n.cache[r]&&s<=n.cache[r].em)return i(n.cache[r],c);var u=e.canvas||n.canvas,f=u.getContext(\\\"2d\\\"),h={upper:void 0!==e.upper?e.upper:\\\"H\\\",lower:void 0!==e.lower?e.lower:\\\"x\\\",descent:void 0!==e.descent?e.descent:\\\"p\\\",ascent:void 0!==e.ascent?e.ascent:\\\"h\\\",tittle:void 0!==e.tittle?e.tittle:\\\"i\\\",overshoot:void 0!==e.overshoot?e.overshoot:\\\"O\\\"},p=Math.ceil(1.5*s);u.height=p,u.width=.5*p,f.font=t;var d={top:0};f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillStyle=\\\"black\\\",f.fillText(\\\"H\\\",0,0);var g=a(f.getImageData(0,0,p,p));f.clearRect(0,0,p,p),f.textBaseline=\\\"bottom\\\",f.fillText(\\\"H\\\",0,p);var v=a(f.getImageData(0,0,p,p));d.lineHeight=d.bottom=p-v+g,f.clearRect(0,0,p,p),f.textBaseline=\\\"alphabetic\\\",f.fillText(\\\"H\\\",0,p);var m=p-a(f.getImageData(0,0,p,p))-1+g;d.baseline=d.alphabetic=m,f.clearRect(0,0,p,p),f.textBaseline=\\\"middle\\\",f.fillText(\\\"H\\\",0,.5*p);var y=a(f.getImageData(0,0,p,p));d.median=d.middle=p-y-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline=\\\"hanging\\\",f.fillText(\\\"H\\\",0,.5*p);var x=a(f.getImageData(0,0,p,p));d.hanging=p-x-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline=\\\"ideographic\\\",f.fillText(\\\"H\\\",0,p);var b=a(f.getImageData(0,0,p,p));if(d.ideographic=p-b-1+g,h.upper&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.upper,0,0),d.upper=a(f.getImageData(0,0,p,p)),d.capHeight=d.baseline-d.upper),h.lower&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.lower,0,0),d.lower=a(f.getImageData(0,0,p,p)),d.xHeight=d.baseline-d.lower),h.tittle&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.tittle,0,0),d.tittle=a(f.getImageData(0,0,p,p))),h.ascent&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.ascent,0,0),d.ascent=a(f.getImageData(0,0,p,p))),h.descent&&(f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.descent,0,0),d.descent=o(f.getImageData(0,0,p,p))),h.overshoot){f.clearRect(0,0,p,p),f.textBaseline=\\\"top\\\",f.fillText(h.overshoot,0,0);var _=o(f.getImageData(0,0,p,p));d.overshoot=_-m}for(var w in d)d[w]/=s;return d.em=s,n.cache[r]=d,i(d,c)}function i(t,e){var r={};for(var n in\\\"string\\\"==typeof e&&(e=t[e]),t)\\\"em\\\"!==n&&(r[n]=t[n]-e);return r}function a(t){for(var e=t.height,r=t.data,n=3;n<r.length;n+=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}function o(t){for(var e=t.height,r=t.data,n=r.length-1;n>0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}e.exports=n,n.canvas=document.createElement(\\\"canvas\\\"),n.cache={}},{}],219:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return new c(t||d,null)};var n=0,i=1;function a(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function o(t){return new a(t._color,t.key,t.value,t.left,t.right,t._count)}function s(t,e){return new a(t,e.key,e.value,e.left,e.right,e._count)}function l(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function c(t,e){this._compare=t,this.root=e}var u=c.prototype;function f(t,e){this.tree=t,this._stack=e}Object.defineProperty(u,\\\"keys\\\",{get:function(){var t=[];return this.forEach(function(e,r){t.push(e)}),t}}),Object.defineProperty(u,\\\"values\\\",{get:function(){var t=[];return this.forEach(function(e,r){t.push(r)}),t}}),Object.defineProperty(u,\\\"length\\\",{get:function(){return this.root?this.root._count:0}}),u.insert=function(t,e){for(var r=this._compare,o=this.root,u=[],f=[];o;){var h=r(t,o.key);u.push(o),f.push(h),o=h<=0?o.left:o.right}u.push(new a(n,t,e,null,null,1));for(var p=u.length-2;p>=0;--p){o=u[p];f[p]<=0?u[p]=new a(o._color,o.key,o.value,u[p+1],o.right,o._count+1):u[p]=new a(o._color,o.key,o.value,o.left,u[p+1],o._count+1)}for(p=u.length-1;p>1;--p){var d=u[p-1];o=u[p];if(d._color===i||o._color===i)break;var g=u[p-2];if(g.left===d)if(d.left===o){if(!(v=g.right)||v._color!==n){if(g._color=n,g.left=d.right,d._color=i,d.right=g,u[p-2]=d,u[p-1]=o,l(g),l(d),p>=3)(m=u[p-3]).left===g?m.left=d:m.right=d;break}d._color=i,g.right=s(i,v),g._color=n,p-=1}else{if(!(v=g.right)||v._color!==n){if(d.right=o.left,g._color=n,g.left=o.right,o._color=i,o.left=d,o.right=g,u[p-2]=o,u[p-1]=d,l(g),l(d),l(o),p>=3)(m=u[p-3]).left===g?m.left=o:m.right=o;break}d._color=i,g.right=s(i,v),g._color=n,p-=1}else if(d.right===o){if(!(v=g.left)||v._color!==n){if(g._color=n,g.right=d.left,d._color=i,d.left=g,u[p-2]=d,u[p-1]=o,l(g),l(d),p>=3)(m=u[p-3]).right===g?m.right=d:m.left=d;break}d._color=i,g.left=s(i,v),g._color=n,p-=1}else{var v;if(!(v=g.left)||v._color!==n){var m;if(d.left=o.right,g._color=n,g.right=o.left,o._color=i,o.right=d,o.left=g,u[p-2]=o,u[p-1]=d,l(g),l(d),l(o),p>=3)(m=u[p-3]).right===g?m.right=o:m.left=o;break}d._color=i,g.left=s(i,v),g._color=n,p-=1}}return u[0]._color=i,new c(r,u[0])},u.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return function t(e,r){var n;if(r.left&&(n=t(e,r.left)))return n;return(n=e(r.key,r.value))||(r.right?t(e,r.right):void 0)}(t,this.root);case 2:return function t(e,r,n,i){if(r(e,i.key)<=0){var a;if(i.left&&(a=t(e,r,n,i.left)))return a;if(a=n(i.key,i.value))return a}if(i.right)return t(e,r,n,i.right)}(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return function t(e,r,n,i,a){var o,s=n(e,a.key),l=n(r,a.key);if(s<=0){if(a.left&&(o=t(e,r,n,i,a.left)))return o;if(l>0&&(o=i(a.key,a.value)))return o}if(l>0&&a.right)return t(e,r,n,i,a.right)}(e,r,this._compare,t,this.root)}},Object.defineProperty(u,\\\"begin\\\",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new f(this,t)}}),Object.defineProperty(u,\\\"end\\\",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new f(this,t)}}),u.at=function(t){if(t<0)return new f(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t<e.left._count){e=e.left;continue}t-=e.left._count}if(!t)return new f(this,r);if(t-=1,!e.right)break;if(t>=e.right._count)break;e=e.right}return new f(this,[])},u.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new f(this,n)},u.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new f(this,n)},u.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new f(this,n)},u.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new f(this,n)},u.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new f(this,n);r=i<=0?r.left:r.right}return new f(this,[])},u.remove=function(t){var e=this.find(t);return e?e.remove():this},u.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var h=f.prototype;function p(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function d(t,e){return t<e?-1:t>e?1:0}Object.defineProperty(h,\\\"valid\\\",{get:function(){return this._stack.length>0}}),Object.defineProperty(h,\\\"node\\\",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),h.clone=function(){return new f(this.tree,this._stack.slice())},h.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var e=new Array(t.length),r=t[t.length-1];e[e.length-1]=new a(r._color,r.key,r.value,r.left,r.right,r._count);for(var u=t.length-2;u>=0;--u){(r=t[u]).left===t[u+1]?e[u]=new a(r._color,r.key,r.value,e[u+1],r.right,r._count):e[u]=new a(r._color,r.key,r.value,r.left,e[u+1],r._count)}if((r=e[e.length-1]).left&&r.right){var f=e.length;for(r=r.left;r.right;)e.push(r),r=r.right;var h=e[f-1];e.push(new a(r._color,h.key,h.value,r.left,r.right,r._count)),e[f-1].key=r.key,e[f-1].value=r.value;for(u=e.length-2;u>=f;--u)r=e[u],e[u]=new a(r._color,r.key,r.value,r.left,e[u+1],r._count);e[f-1].left=e[f]}if((r=e[e.length-1])._color===n){var d=e[e.length-2];d.left===r?d.left=null:d.right===r&&(d.right=null),e.pop();for(u=0;u<e.length;++u)e[u]._count--;return new c(this.tree._compare,e[0])}if(r.left||r.right){r.left?p(r,r.left):r.right&&p(r,r.right),r._color=i;for(u=0;u<e.length-1;++u)e[u]._count--;return new c(this.tree._compare,e[0])}if(1===e.length)return new c(this.tree._compare,null);for(u=0;u<e.length;++u)e[u]._count--;var g=e[e.length-2];return function(t){for(var e,r,a,c,u=t.length-1;u>=0;--u){if(e=t[u],0===u)return void(e._color=i);if((r=t[u-1]).left===e){if((a=r.right).right&&a.right._color===n)return c=(a=r.right=o(a)).right=o(a.right),r.right=a.left,a.left=r,a.right=c,a._color=r._color,e._color=i,r._color=i,c._color=i,l(r),l(a),u>1&&((f=t[u-2]).left===r?f.left=a:f.right=a),void(t[u-1]=a);if(a.left&&a.left._color===n)return c=(a=r.right=o(a)).left=o(a.left),r.right=c.left,a.left=c.right,c.left=r,c.right=a,c._color=r._color,r._color=i,a._color=i,e._color=i,l(r),l(a),l(c),u>1&&((f=t[u-2]).left===r?f.left=c:f.right=c),void(t[u-1]=c);if(a._color===i){if(r._color===n)return r._color=i,void(r.right=s(n,a));r.right=s(n,a);continue}a=o(a),r.right=a.left,a.left=r,a._color=r._color,r._color=n,l(r),l(a),u>1&&((f=t[u-2]).left===r?f.left=a:f.right=a),t[u-1]=a,t[u]=r,u+1<t.length?t[u+1]=e:t.push(e),u+=2}else{if((a=r.left).left&&a.left._color===n)return c=(a=r.left=o(a)).left=o(a.left),r.left=a.right,a.right=r,a.left=c,a._color=r._color,e._color=i,r._color=i,c._color=i,l(r),l(a),u>1&&((f=t[u-2]).right===r?f.right=a:f.left=a),void(t[u-1]=a);if(a.right&&a.right._color===n)return c=(a=r.left=o(a)).right=o(a.right),r.left=c.right,a.right=c.left,c.right=r,c.left=a,c._color=r._color,r._color=i,a._color=i,e._color=i,l(r),l(a),l(c),u>1&&((f=t[u-2]).right===r?f.right=c:f.left=c),void(t[u-1]=c);if(a._color===i){if(r._color===n)return r._color=i,void(r.left=s(n,a));r.left=s(n,a);continue}var f;a=o(a),r.left=a.right,a.right=r,a._color=r._color,r._color=n,l(r),l(a),u>1&&((f=t[u-2]).right===r?f.right=a:f.left=a),t[u-1]=a,t[u]=r,u+1<t.length?t[u+1]=e:t.push(e),u+=2}}}(e),g.left===r?g.left=null:g.right=null,new c(this.tree._compare,e[0])},Object.defineProperty(h,\\\"key\\\",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(h,\\\"value\\\",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(h,\\\"index\\\",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),h.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(h,\\\"hasNext\\\",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),h.update=function(t){var e=this._stack;if(0===e.length)throw new Error(\\\"Can't update empty node!\\\");var r=new Array(e.length),n=e[e.length-1];r[r.length-1]=new a(n._color,n.key,t,n.left,n.right,n._count);for(var i=e.length-2;i>=0;--i)(n=e[i]).left===e[i+1]?r[i]=new a(n._color,n.key,n.value,r[i+1],n.right,n._count):r[i]=new a(n._color,n.key,n.value,n.left,r[i+1],n._count);return new c(this.tree._compare,r[0])},h.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(h,\\\"hasPrev\\\",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},{}],220:[function(t,e,r){var n=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],i=607/128,a=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];function o(t){if(t<0)return Number(\\\"0/0\\\");for(var e=a[0],r=a.length-1;r>0;--r)e+=a[r]/(t+r);var n=t+i+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}e.exports=function t(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*t(1-e));if(e>100)return Math.exp(o(e));e-=1;for(var r=n[0],i=1;i<9;i++)r+=n[i]/(e+i);var a=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(a,e+.5)*Math.exp(-a)*r},e.exports.log=o},{}],221:[function(t,e,r){e.exports=function(t,e){if(\\\"string\\\"!=typeof t)throw new TypeError(\\\"must specify type string\\\");if(e=e||{},\\\"undefined\\\"==typeof document&&!e.canvas)return null;var r=e.canvas||document.createElement(\\\"canvas\\\");\\\"number\\\"==typeof e.width&&(r.width=e.width);\\\"number\\\"==typeof e.height&&(r.height=e.height);var n,i=e;try{var a=[t];0===t.indexOf(\\\"webgl\\\")&&a.push(\\\"experimental-\\\"+t);for(var o=0;o<a.length;o++)if(n=r.getContext(a[o],i))return n}catch(t){n=null}return n||null}},{}],222:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=new u(t);return r.update(e),r};var n=t(\\\"./lib/text.js\\\"),i=t(\\\"./lib/lines.js\\\"),a=t(\\\"./lib/background.js\\\"),o=t(\\\"./lib/cube.js\\\"),s=t(\\\"./lib/ticks.js\\\"),l=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);function c(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function u(t){this.gl=t,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=a(t)}var f=u.prototype;function h(){this.primalOffset=[0,0,0],this.primalMinor=[0,0,0],this.mirrorOffset=[0,0,0],this.mirrorMinor=[0,0,0]}f.update=function(t){function e(e,r,n){if(n in t){var i,a=t[n],o=this[n];(e?Array.isArray(a)&&Array.isArray(a[0]):Array.isArray(a))?this[n]=i=[r(a[0]),r(a[1]),r(a[2])]:this[n]=i=[r(a),r(a),r(a)];for(var s=0;s<3;++s)if(i[s]!==o[s])return!0}return!1}t=t||{};var r,a=e.bind(this,!1,Number),o=e.bind(this,!1,Boolean),l=e.bind(this,!1,String),c=e.bind(this,!0,function(t){if(Array.isArray(t)){if(3===t.length)return[+t[0],+t[1],+t[2],1];if(4===t.length)return[+t[0],+t[1],+t[2],+t[3]]}return[0,0,0,1]}),u=!1,f=!1;if(\\\"bounds\\\"in t)for(var h=t.bounds,p=0;p<2;++p)for(var d=0;d<3;++d)h[p][d]!==this.bounds[p][d]&&(f=!0),this.bounds[p][d]=h[p][d];if(\\\"ticks\\\"in t){r=t.ticks,u=!0,this.autoTicks=!1;for(p=0;p<3;++p)this.tickSpacing[p]=0}else a(\\\"tickSpacing\\\")&&(this.autoTicks=!0,f=!0);if(this._firstInit&&(\\\"ticks\\\"in t||\\\"tickSpacing\\\"in t||(this.autoTicks=!0),f=!0,u=!0,this._firstInit=!1),f&&this.autoTicks&&(r=s.create(this.bounds,this.tickSpacing),u=!0),u){for(p=0;p<3;++p)r[p].sort(function(t,e){return t.x-e.x});s.equal(r,this.ticks)?u=!1:this.ticks=r}o(\\\"tickEnable\\\"),l(\\\"tickFont\\\")&&(u=!0),a(\\\"tickSize\\\"),a(\\\"tickAngle\\\"),a(\\\"tickPad\\\"),c(\\\"tickColor\\\");var g=l(\\\"labels\\\");l(\\\"labelFont\\\")&&(g=!0),o(\\\"labelEnable\\\"),a(\\\"labelSize\\\"),a(\\\"labelPad\\\"),c(\\\"labelColor\\\"),o(\\\"lineEnable\\\"),o(\\\"lineMirror\\\"),a(\\\"lineWidth\\\"),c(\\\"lineColor\\\"),o(\\\"lineTickEnable\\\"),o(\\\"lineTickMirror\\\"),a(\\\"lineTickLength\\\"),a(\\\"lineTickWidth\\\"),c(\\\"lineTickColor\\\"),o(\\\"gridEnable\\\"),a(\\\"gridWidth\\\"),c(\\\"gridColor\\\"),o(\\\"zeroEnable\\\"),c(\\\"zeroLineColor\\\"),a(\\\"zeroLineWidth\\\"),o(\\\"backgroundEnable\\\"),c(\\\"backgroundColor\\\"),this._text?this._text&&(g||u)&&this._text.update(this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont):this._text=n(this.gl,this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont),this._lines&&u&&(this._lines.dispose(),this._lines=null),this._lines||(this._lines=i(this.gl,this.bounds,this.ticks))};var p=[new h,new h,new h];function d(t,e,r,n,i){for(var a=t.primalOffset,o=t.primalMinor,s=t.mirrorOffset,l=t.mirrorMinor,c=n[e],u=0;u<3;++u)if(e!==u){var f=a,h=s,p=o,d=l;c&1<<u&&(f=s,h=a,p=l,d=o),f[u]=r[0][u],h[u]=r[1][u],i[u]>0?(p[u]=-1,d[u]=0):(p[u]=0,d[u]=1)}}var g=[0,0,0],v={model:l,view:l,projection:l};f.isOpaque=function(){return!0},f.isTransparent=function(){return!1},f.drawTransparent=function(t){};var m=[0,0,0],y=[0,0,0],x=[0,0,0];f.draw=function(t){t=t||v;for(var e=this.gl,r=t.model||l,n=t.view||l,i=t.projection||l,a=this.bounds,s=o(r,n,i,a),u=s.cubeEdges,f=s.axis,h=n[12],b=n[13],_=n[14],w=n[15],k=this.pixelRatio*(i[3]*h+i[7]*b+i[11]*_+i[15]*w)/e.drawingBufferHeight,M=0;M<3;++M)this.lastCubeProps.cubeEdges[M]=u[M],this.lastCubeProps.axis[M]=f[M];var A=p;for(M=0;M<3;++M)d(p[M],M,this.bounds,u,f);e=this.gl;var T,S=g;for(M=0;M<3;++M)this.backgroundEnable[M]?S[M]=f[M]:S[M]=0;this._background.draw(r,n,i,a,S,this.backgroundColor),this._lines.bind(r,n,i,this);for(M=0;M<3;++M){var E=[0,0,0];f[M]>0?E[M]=a[1][M]:E[M]=a[0][M];for(var C=0;C<2;++C){var L=(M+1+C)%3,z=(M+1+(1^C))%3;this.gridEnable[L]&&this._lines.drawGrid(L,z,this.bounds,E,this.gridColor[L],this.gridWidth[L]*this.pixelRatio)}for(C=0;C<2;++C){L=(M+1+C)%3,z=(M+1+(1^C))%3;this.zeroEnable[z]&&Math.min(a[0][z],a[1][z])<=0&&Math.max(a[0][z],a[1][z])>=0&&this._lines.drawZero(L,z,this.bounds,E,this.zeroLineColor[z],this.zeroLineWidth[z]*this.pixelRatio)}}for(M=0;M<3;++M){this.lineEnable[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].primalOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio),this.lineMirror[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].mirrorOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio);var O=c(m,A[M].primalMinor),I=c(y,A[M].mirrorMinor),P=this.lineTickLength;for(C=0;C<3;++C){var D=k/r[5*C];O[C]*=P[C]*D,I[C]*=P[C]*D}this.lineTickEnable[M]&&this._lines.drawAxisTicks(M,A[M].primalOffset,O,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio),this.lineTickMirror[M]&&this._lines.drawAxisTicks(M,A[M].mirrorOffset,I,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio)}this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio);var R,B;function F(t){(B=[0,0,0])[t]=1}function N(t,e,r){var n=(t+1)%3,i=(t+2)%3,a=e[n],o=e[i],s=r[n],l=r[i];a>0&&l>0?F(n):a>0&&l<0?F(n):a<0&&l>0?F(n):a<0&&l<0?F(n):o>0&&s>0?F(i):o>0&&s<0?F(i):o<0&&s>0?F(i):o<0&&s<0&&F(i)}for(M=0;M<3;++M){var j=A[M].primalMinor,V=A[M].mirrorMinor,U=c(x,A[M].primalOffset);for(C=0;C<3;++C)this.lineTickEnable[M]&&(U[C]+=k*j[C]*Math.max(this.lineTickLength[C],0)/r[5*C]);var q=[0,0,0];if(q[M]=1,this.tickEnable[M]){-3600===this.tickAngle[M]?(this.tickAngle[M]=0,this._tickAlign[M]=\\\"auto\\\"):this._tickAlign[M]=-1,R=1,\\\"auto\\\"===(T=[this._tickAlign[M],.5,R])[0]?T[0]=0:T[0]=parseInt(\\\"\\\"+T[0]),B=[0,0,0],N(M,j,V);for(C=0;C<3;++C)U[C]+=k*j[C]*this.tickPad[C]/r[5*C];this._text.drawTicks(M,this.tickSize[M],this.tickAngle[M],U,this.tickColor[M],q,B,T)}if(this.labelEnable[M]){R=0,B=[0,0,0],this.labels[M].length>4&&(F(M),R=1),\\\"auto\\\"===(T=[this._labelAlign[M],.5,R])[0]?T[0]=0:T[0]=parseInt(\\\"\\\"+T[0]);for(C=0;C<3;++C)U[C]+=k*j[C]*this.labelPad[C]/r[5*C];U[M]+=.5*(a[0][M]+a[1][M]),this._text.drawLabel(M,this.labelSize[M],this._labelAngle[M],U,this.labelColor[M],[0,0,0],B,T)}}this._text.unbind()},f.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\\\":223,\\\"./lib/cube.js\\\":224,\\\"./lib/lines.js\\\":225,\\\"./lib/text.js\\\":227,\\\"./lib/ticks.js\\\":228}],223:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var c=(l+1)%3,u=(l+2)%3,f=[0,0,0],h=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),f[l]=p,h[l]=p;for(var d=-1;d<=1;d+=2){f[c]=d;for(var g=-1;g<=1;g+=2)f[u]=g,e.push(f[0],f[1],f[2],h[0],h[1],h[2]),s+=1}var v=c;c=u,u=v}var m=n(t,new Float32Array(e)),y=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=i(t,[{buffer:m,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:m,type:t.FLOAT,size:3,offset:12,stride:24}],y),b=a(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,m,x,b)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"./shaders\\\").bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":226,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310}],224:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,a){i(s,e,t),i(s,r,s);for(var p=0,y=0;y<2;++y){u[2]=a[y][2];for(var x=0;x<2;++x){u[1]=a[x][1];for(var b=0;b<2;++b)u[0]=a[b][0],h(l[p],u,s),p+=1}}for(var _=-1,y=0;y<8;++y){for(var w=l[y][3],k=0;k<3;++k)c[y][k]=l[y][k]/w;w<0&&(_<0?_=y:c[y][2]<c[_][2]&&(_=y))}if(_<0){_=0;for(var M=0;M<3;++M){for(var A=(M+2)%3,T=(M+1)%3,S=-1,E=-1,C=0;C<2;++C){var L=C<<M,z=L+(C<<A)+(1-C<<T),O=L+(1-C<<A)+(C<<T);o(c[L],c[z],c[O],f)<0||(C?S=1:E=1)}if(S<0||E<0)E>S&&(_|=1<<M);else{for(var C=0;C<2;++C){var L=C<<M,z=L+(C<<A)+(1-C<<T),O=L+(1-C<<A)+(C<<T),I=d([l[L],l[z],l[O],l[L+(1<<A)+(1<<T)]]);C?S=I:E=I}E>S&&(_|=1<<M)}}}for(var P=7^_,D=-1,y=0;y<8;++y)y!==_&&y!==P&&(D<0?D=y:c[D][1]>c[y][1]&&(D=y));for(var R=-1,y=0;y<3;++y){var B=D^1<<y;if(B!==_&&B!==P){R<0&&(R=B);var T=c[B];T[0]<c[R][0]&&(R=B)}}for(var F=-1,y=0;y<3;++y){var B=D^1<<y;if(B!==_&&B!==P&&B!==R){F<0&&(F=B);var T=c[B];T[0]>c[F][0]&&(F=B)}}var N=g;N[0]=N[1]=N[2]=0,N[n.log2(R^D)]=D&R,N[n.log2(D^F)]=D&F;var j=7^F;j===_||j===P?(j=7^R,N[n.log2(F^j)]=j&F):N[n.log2(R^j)]=j&R;for(var V=v,U=_,M=0;M<3;++M)V[M]=U&1<<M?-1:1;return m};var n=t(\\\"bit-twiddle\\\"),i=t(\\\"gl-mat4/multiply\\\"),a=(t(\\\"gl-mat4/invert\\\"),t(\\\"split-polygon\\\")),o=t(\\\"robust-orientation\\\"),s=new Array(16),l=(new Array(16),new Array(8)),c=new Array(8),u=new Array(3),f=[0,0,0];function h(t,e,r){for(var n=0;n<4;++n){t[n]=r[12+n];for(var i=0;i<3;++i)t[n]+=e[i]*r[4*i+n]}}!function(){for(var t=0;t<8;++t)l[t]=[1,1,1,1],c[t]=[1,1,1]}();var p=[[0,0,1,0,0],[0,0,-1,1,0],[0,-1,0,1,0],[0,1,0,1,0],[-1,0,0,1,0],[1,0,0,1,0]];function d(t){for(var e=0;e<p.length;++e)if((t=a.positive(t,p[e])).length<3)return 0;var r=t[0],n=r[0]/r[3],i=r[1]/r[3],o=0;for(e=1;e+1<t.length;++e){var s=t[e],l=t[e+1],c=s[0]/s[3]-n,u=s[1]/s[3]-i,f=l[0]/l[3]-n,h=l[1]/l[3]-i;o+=Math.abs(c*h-u*f)}return o}var g=[1,1,1],v=[0,0,0],m={cubeEdges:g,axis:v}},{\\\"bit-twiddle\\\":80,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"robust-orientation\\\":486,\\\"split-polygon\\\":503}],225:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var o=[],s=[0,0,0],l=[0,0,0],c=[0,0,0],u=[0,0,0];o.push(0,0,1,0,1,1,0,0,-1,0,0,-1,0,1,1,0,1,-1);for(var f=0;f<3;++f){for(var h=o.length/3|0,d=0;d<r[f].length;++d){var g=+r[f][d].x;o.push(g,0,1,g,1,1,g,0,-1,g,0,-1,g,1,1,g,1,-1)}var v=o.length/3|0;s[f]=h,l[f]=v-h;for(var h=o.length/3|0,m=0;m<r[f].length;++m){var g=+r[f][m].x;o.push(g,0,1,g,1,1,g,0,-1,g,0,-1,g,1,1,g,1,-1)}var v=o.length/3|0;c[f]=h,u[f]=v-h}var y=n(t,new Float32Array(o)),x=i(t,[{buffer:y,type:t.FLOAT,size:3,stride:0,offset:0}]),b=a(t);return b.attributes.position.location=0,new p(t,y,x,b,l,s,u,c)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"./shaders\\\").line,o=[0,0,0],s=[0,0,0],l=[0,0,0],c=[0,0,0],u=[1,1];function f(t){return t[0]=t[1]=t[2]=0,t}function h(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function p(t,e,r,n,i,a,o,s){this.gl=t,this.vertBuffer=e,this.vao=r,this.shader=n,this.tickCount=i,this.tickOffset=a,this.gridCount=o,this.gridOffset=s}var d=p.prototype;d.bind=function(t,e,r){this.shader.bind(),this.shader.uniforms.model=t,this.shader.uniforms.view=e,this.shader.uniforms.projection=r,u[0]=this.gl.drawingBufferWidth,u[1]=this.gl.drawingBufferHeight,this.shader.uniforms.screenShape=u,this.vao.bind()},d.unbind=function(){this.vao.unbind()},d.drawAxisLine=function(t,e,r,n,i){var a=f(s);this.shader.uniforms.majorAxis=s,a[t]=e[1][t]-e[0][t],this.shader.uniforms.minorAxis=a;var o,u=h(c,r);u[t]+=e[0][t],this.shader.uniforms.offset=u,this.shader.uniforms.lineWidth=i,this.shader.uniforms.color=n,(o=f(l))[(t+2)%3]=1,this.shader.uniforms.screenAxis=o,this.vao.draw(this.gl.TRIANGLES,6),(o=f(l))[(t+1)%3]=1,this.shader.uniforms.screenAxis=o,this.vao.draw(this.gl.TRIANGLES,6)},d.drawAxisTicks=function(t,e,r,n,i){if(this.tickCount[t]){var a=f(o);a[t]=1,this.shader.uniforms.majorAxis=a,this.shader.uniforms.offset=e,this.shader.uniforms.minorAxis=r,this.shader.uniforms.color=n,this.shader.uniforms.lineWidth=i;var s=f(l);s[t]=1,this.shader.uniforms.screenAxis=s,this.vao.draw(this.gl.TRIANGLES,this.tickCount[t],this.tickOffset[t])}},d.drawGrid=function(t,e,r,n,i,a){if(this.gridCount[t]){var u=f(s);u[e]=r[1][e]-r[0][e],this.shader.uniforms.minorAxis=u;var p=h(c,n);p[e]+=r[0][e],this.shader.uniforms.offset=p;var d=f(o);d[t]=1,this.shader.uniforms.majorAxis=d;var g=f(l);g[t]=1,this.shader.uniforms.screenAxis=g,this.shader.uniforms.lineWidth=a,this.shader.uniforms.color=i,this.vao.draw(this.gl.TRIANGLES,this.gridCount[t],this.gridOffset[t])}},d.drawZero=function(t,e,r,n,i,a){var o=f(s);this.shader.uniforms.majorAxis=o,o[t]=r[1][t]-r[0][t],this.shader.uniforms.minorAxis=o;var u=h(c,n);u[t]+=r[0][t],this.shader.uniforms.offset=u;var p=f(l);p[e]=1,this.shader.uniforms.screenAxis=p,this.shader.uniforms.lineWidth=a,this.shader.uniforms.color=i,this.vao.draw(this.gl.TRIANGLES,6)},d.dispose=function(){this.vao.dispose(),this.vertBuffer.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":226,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310}],226:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"#define GLSLIFY 1\\\\nattribute vec3 position;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 offset, majorAxis, minorAxis, screenAxis;\\\\nuniform float lineWidth;\\\\nuniform vec2 screenShape;\\\\n\\\\nvec3 project(vec3 p) {\\\\n  vec4 pp = projection * view * model * vec4(p, 1.0);\\\\n  return pp.xyz / max(pp.w, 0.0001);\\\\n}\\\\n\\\\nvoid main() {\\\\n  vec3 major = position.x * majorAxis;\\\\n  vec3 minor = position.y * minorAxis;\\\\n\\\\n  vec3 vPosition = major + minor + offset;\\\\n  vec3 pPosition = project(vPosition);\\\\n  vec3 offset = project(vPosition + screenAxis * position.z);\\\\n\\\\n  vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;\\\\n\\\\n  gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);\\\\n}\\\\n\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\nuniform vec4 color;\\\\nvoid main() {\\\\n  gl_FragColor = color;\\\\n}\\\"]);r.line=function(t){return i(t,a,o,null,[{name:\\\"position\\\",type:\\\"vec3\\\"}])};var s=n([\\\"#define GLSLIFY 1\\\\nattribute vec3 position;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 offset, axis, alignDir, alignOpt;\\\\nuniform float scale, angle, pixelScale;\\\\nuniform vec2 resolution;\\\\n\\\\nvec3 project(vec3 p) {\\\\n  vec4 pp = projection * view * model * vec4(p, 1.0);\\\\n  return pp.xyz / max(pp.w, 0.0001);\\\\n}\\\\n\\\\nfloat computeViewAngle(vec3 a, vec3 b) {\\\\n  vec3 A = project(a);\\\\n  vec3 B = project(b);\\\\n\\\\n  return atan(\\\\n    (B.y - A.y) * resolution.y,\\\\n    (B.x - A.x) * resolution.x\\\\n  );\\\\n}\\\\n\\\\nconst float PI = 3.141592;\\\\nconst float TWO_PI = 2.0 * PI;\\\\nconst float HALF_PI = 0.5 * PI;\\\\nconst float ONE_AND_HALF_PI = 1.5 * PI;\\\\n\\\\nint option = int(floor(alignOpt.x + 0.001));\\\\nfloat hv_ratio =       alignOpt.y;\\\\nbool enableAlign =    (alignOpt.z != 0.0);\\\\n\\\\nfloat mod_angle(float a) {\\\\n  return mod(a, PI);\\\\n}\\\\n\\\\nfloat positive_angle(float a) {\\\\n  return mod_angle((a < 0.0) ?\\\\n    a + TWO_PI :\\\\n    a\\\\n  );\\\\n}\\\\n\\\\nfloat look_upwards(float a) {\\\\n  float b = positive_angle(a);\\\\n  return ((b > HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\\\\n    b - PI :\\\\n    b;\\\\n}\\\\n\\\\nfloat look_horizontal_or_vertical(float a, float ratio) {\\\\n  // ratio controls the ratio between being horizontal to (vertical + horizontal)\\\\n  // if ratio is set to 0.5 then it is 50%, 50%.\\\\n  // when using a higher ratio e.g. 0.75 the result would\\\\n  // likely be more horizontal than vertical.\\\\n\\\\n  float b = positive_angle(a);\\\\n\\\\n  return\\\\n    (b < (      ratio) * HALF_PI) ? 0.0 :\\\\n    (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\\\\n    (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\\\\n    (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\\\\n                                    0.0;\\\\n}\\\\n\\\\nfloat roundTo(float a, float b) {\\\\n  return float(b * floor((a + 0.5 * b) / b));\\\\n}\\\\n\\\\nfloat look_round_n_directions(float a, int n) {\\\\n  float b = positive_angle(a);\\\\n  float div = TWO_PI / float(n);\\\\n  float c = roundTo(b, div);\\\\n  return look_upwards(c);\\\\n}\\\\n\\\\nfloat applyAlignOption(float rawAngle, float delta) {\\\\n  return\\\\n    (option >  2) ? look_round_n_directions(rawAngle + delta, option) :       // option 3-n: round to n directions\\\\n    (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\\\\n    (option == 1) ? rawAngle + delta :       // use free angle, and flip to align with one direction of the axis\\\\n    (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\\\\n    (option ==-1) ? 0.0 :                    // useful for backward compatibility, all texts remains horizontal\\\\n                    rawAngle;                // otherwise return back raw input angle\\\\n}\\\\n\\\\nbool isAxisTitle = (axis.x == 0.0) &&\\\\n                   (axis.y == 0.0) &&\\\\n                   (axis.z == 0.0);\\\\n\\\\nvoid main() {\\\\n  //Compute world offset\\\\n  float axisDistance = position.z;\\\\n  vec3 dataPosition = axisDistance * axis + offset;\\\\n\\\\n  float beta = angle; // i.e. user defined attributes for each tick\\\\n\\\\n  float axisAngle;\\\\n  float clipAngle;\\\\n  float flip;\\\\n\\\\n  if (enableAlign) {\\\\n    axisAngle = (isAxisTitle) ? HALF_PI :\\\\n                      computeViewAngle(dataPosition, dataPosition + axis);\\\\n    clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\\\\n\\\\n    axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\\\\n    clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\\\\n\\\\n    flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\\\\n                vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\\\\n\\\\n    beta += applyAlignOption(clipAngle, flip * PI);\\\\n  }\\\\n\\\\n  //Compute plane offset\\\\n  vec2 planeCoord = position.xy * pixelScale;\\\\n\\\\n  mat2 planeXform = scale * mat2(\\\\n     cos(beta), sin(beta),\\\\n    -sin(beta), cos(beta)\\\\n  );\\\\n\\\\n  vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\\\\n\\\\n  //Compute clip position\\\\n  vec3 clipPosition = project(dataPosition);\\\\n\\\\n  //Apply text offset in clip coordinates\\\\n  clipPosition += vec3(viewOffset, 0.0);\\\\n\\\\n  //Done\\\\n  gl_Position = vec4(clipPosition, 1.0);\\\\n}\\\"]),l=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\nuniform vec4 color;\\\\nvoid main() {\\\\n  gl_FragColor = color;\\\\n}\\\"]);r.text=function(t){return i(t,s,l,null,[{name:\\\"position\\\",type:\\\"vec3\\\"}])};var c=n([\\\"#define GLSLIFY 1\\\\nattribute vec3 position;\\\\nattribute vec3 normal;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 enable;\\\\nuniform vec3 bounds[2];\\\\n\\\\nvarying vec3 colorChannel;\\\\n\\\\nvoid main() {\\\\n\\\\n  vec3 signAxis = sign(bounds[1] - bounds[0]);\\\\n\\\\n  vec3 realNormal = signAxis * normal;\\\\n\\\\n  if(dot(realNormal, enable) > 0.0) {\\\\n    vec3 minRange = min(bounds[0], bounds[1]);\\\\n    vec3 maxRange = max(bounds[0], bounds[1]);\\\\n    vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\\\\n    gl_Position = projection * view * model * vec4(nPosition, 1.0);\\\\n  } else {\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  }\\\\n\\\\n  colorChannel = abs(realNormal);\\\\n}\\\"]),u=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform vec4 colors[3];\\\\n\\\\nvarying vec3 colorChannel;\\\\n\\\\nvoid main() {\\\\n  gl_FragColor = colorChannel.x * colors[0] +\\\\n                 colorChannel.y * colors[1] +\\\\n                 colorChannel.z * colors[2];\\\\n}\\\"]);r.bg=function(t){return i(t,c,u,null,[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"}])}},{\\\"gl-shader\\\":288,glslify:392}],227:[function(t,e,r){(function(r){\\\"use strict\\\";e.exports=function(t,e,r,a,s,l){var u=n(t),f=i(t,[{buffer:u,size:3}]),h=o(t);h.attributes.position.location=0;var p=new c(t,h,u,f);return p.update(e,r,a,s,l),p};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"vectorize-text\\\"),o=t(\\\"./shaders\\\").text,s=window||r.global||{},l=s.__TEXT_CACHE||{};s.__TEXT_CACHE={};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}var u=c.prototype,f=[0,0];u.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var i=this.shader.uniforms;i.model=t,i.view=e,i.projection=r,i.pixelScale=n,f[0]=this.gl.drawingBufferWidth,f[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=f},u.unbind=function(){this.vao.unbind()},u.update=function(t,e,r,n,i){this.gl;var o=[];function s(t,e,r,n){var i=l[r];i||(i=l[r]={});var s=i[e];s||(s=i[e]=function(t,e){try{return a(t,e)}catch(t){return console.warn(\\\"error vectorizing text:\\\",t),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:\\\"center\\\",textBaseline:\\\"middle\\\"}));for(var c=(n||12)/12,u=s.positions,f=s.cells,h=0,p=f.length;h<p;++h)for(var d=f[h],g=2;g>=0;--g){var v=u[d[g]];o.push(c*v[0],-c*v[1],t)}}for(var c=[0,0,0],u=[0,0,0],f=[0,0,0],h=[0,0,0],p=0;p<3;++p){f[p]=o.length/3|0,s(.5*(t[0][p]+t[1][p]),e[p],r),h[p]=(o.length/3|0)-f[p],c[p]=o.length/3|0;for(var d=0;d<n[p].length;++d)n[p][d].text&&s(n[p][d].x,n[p][d].text,n[p][d].font||i,n[p][d].fontSize||12);u[p]=(o.length/3|0)-c[p]}this.buffer.update(o),this.tickOffset=c,this.tickCount=u,this.labelOffset=f,this.labelCount=h},u.drawTicks=function(t,e,r,n,i,a,o,s){this.tickCount[t]&&(this.shader.uniforms.axis=a,this.shader.uniforms.color=i,this.shader.uniforms.angle=r,this.shader.uniforms.scale=e,this.shader.uniforms.offset=n,this.shader.uniforms.alignDir=o,this.shader.uniforms.alignOpt=s,this.vao.draw(this.gl.TRIANGLES,this.tickCount[t],this.tickOffset[t]))},u.drawLabel=function(t,e,r,n,i,a,o,s){this.labelCount[t]&&(this.shader.uniforms.axis=a,this.shader.uniforms.color=i,this.shader.uniforms.angle=r,this.shader.uniforms.scale=e,this.shader.uniforms.offset=n,this.shader.uniforms.alignDir=o,this.shader.uniforms.alignOpt=s,this.vao.draw(this.gl.TRIANGLES,this.labelCount[t],this.labelOffset[t]))},u.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()}}).call(this,t(\\\"_process\\\"))},{\\\"./shaders\\\":226,_process:465,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310,\\\"vectorize-text\\\":527}],228:[function(t,e,r){\\\"use strict\\\";function n(t,e){var r=t+\\\"\\\",n=r.indexOf(\\\".\\\"),i=0;n>=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+\\\"\\\";if(s.indexOf(\\\"e\\\")>=0)return s;var l=o/a,c=o%a;o<0?(l=0|-Math.ceil(l),c=0|-c):(l=0|Math.floor(l),c|=0);var u=\\\"\\\"+l;if(o<0&&(u=\\\"-\\\"+u),i){for(var f=\\\"\\\"+c;f.length<i;)f=\\\"0\\\"+f;return u+\\\".\\\"+f}return u}r.create=function(t,e){for(var r=[],i=0;i<3;++i){for(var a=[],o=(t[0][i],t[1][i],0);o*e[i]<=t[1][i];++o)a.push({x:o*e[i],text:n(e[i],o)});for(var o=-1;o*e[i]>=t[0][i];--o)a.push({x:o*e[i],text:n(e[i],o)});r.push(a)}return r},r.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n<t[r].length;++n){var i=t[r][n],a=e[r][n];if(i.x!==a.x||i.text!==a.text||i.font!==a.font||i.fontColor!==a.fontColor||i.fontSize!==a.fontSize||i.dx!==a.dx||i.dy!==a.dy)return!1}}return!0}},{}],229:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,l,f){var h=e.model||c,p=e.view||c,m=e.projection||c,y=t.bounds,x=(f=f||a(h,p,m,y)).axis;f.edges;o(u,p,h),o(u,m,u);for(var b=g,_=0;_<3;++_)b[_].lo=1/0,b[_].hi=-1/0,b[_].pixelsPerDataUnit=1/0;var w=n(s(u,u));s(u,u);for(var k=0;k<3;++k){var M=(k+1)%3,A=(k+2)%3,T=v;t:for(var _=0;_<2;++_){var S=[];if(x[k]<0!=!!_){T[k]=y[_][k];for(var E=0;E<2;++E){T[M]=y[E^_][M];for(var C=0;C<2;++C)T[A]=y[C^E^_][A],S.push(T.slice())}for(var E=0;E<w.length;++E){if(0===S.length)continue t;S=i.positive(S,w[E])}for(var E=0;E<S.length;++E)for(var A=S[E],L=d(v,u,A,r,l),C=0;C<3;++C)b[C].lo=Math.min(b[C].lo,A[C]),b[C].hi=Math.max(b[C].hi,A[C]),C!==k&&(b[C].pixelsPerDataUnit=Math.min(b[C].pixelsPerDataUnit,Math.abs(L[C])))}}}return b};var n=t(\\\"extract-frustum-planes\\\"),i=t(\\\"split-polygon\\\"),a=t(\\\"./lib/cube.js\\\"),o=t(\\\"gl-mat4/multiply\\\"),s=t(\\\"gl-mat4/transpose\\\"),l=t(\\\"gl-vec4/transformMat4\\\"),c=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),u=new Float32Array(16);function f(t,e,r){this.lo=t,this.hi=e,this.pixelsPerDataUnit=r}var h=[0,0,0,1],p=[0,0,0,1];function d(t,e,r,n,i){for(var a=0;a<3;++a){for(var o=h,s=p,c=0;c<3;++c)s[c]=o[c]=r[c];s[3]=o[3]=1,s[a]+=1,l(s,s,e),s[3]<0&&(t[a]=1/0),o[a]-=1,l(o,o,e),o[3]<0&&(t[a]=1/0);var u=(o[0]/o[3]-s[0]/s[3])*n,f=(o[1]/o[3]-s[1]/s[3])*i;t[a]=.25*Math.sqrt(u*u+f*f)}return t}var g=[new f(1/0,-1/0,1/0),new f(1/0,-1/0,1/0),new f(1/0,-1/0,1/0)],v=[0,0,0]},{\\\"./lib/cube.js\\\":224,\\\"extract-frustum-planes\\\":213,\\\"gl-mat4/multiply\\\":256,\\\"gl-mat4/transpose\\\":264,\\\"gl-vec4/transformMat4\\\":381,\\\"split-polygon\\\":503}],230:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"typedarray-pool\\\"),i=t(\\\"ndarray-ops\\\"),a=t(\\\"ndarray\\\"),o=[\\\"uint8\\\",\\\"uint8_clamped\\\",\\\"uint16\\\",\\\"uint32\\\",\\\"int8\\\",\\\"int16\\\",\\\"int32\\\",\\\"float32\\\"];function s(t,e,r,n,i){this.gl=t,this.type=e,this.handle=r,this.length=n,this.usage=i}var l=s.prototype;function c(t,e,r,n,i,a){var o=i.length*i.BYTES_PER_ELEMENT;if(a<0)return t.bufferData(e,i,n),o;if(o+a>r)throw new Error(\\\"gl-buffer: If resizing buffer, must not specify offset\\\");return t.bufferSubData(e,a,i),r}function u(t,e){for(var r=n.malloc(t.length,e),i=t.length,a=0;a<i;++a)r[a]=t[a];return r}l.bind=function(){this.gl.bindBuffer(this.type,this.handle)},l.unbind=function(){this.gl.bindBuffer(this.type,null)},l.dispose=function(){this.gl.deleteBuffer(this.handle)},l.update=function(t,e){if(\\\"number\\\"!=typeof e&&(e=-1),this.bind(),\\\"object\\\"==typeof t&&\\\"undefined\\\"!=typeof t.shape){var r=t.dtype;if(o.indexOf(r)<0&&(r=\\\"float32\\\"),this.type===this.gl.ELEMENT_ARRAY_BUFFER)r=gl.getExtension(\\\"OES_element_index_uint\\\")&&\\\"uint16\\\"!==r?\\\"uint32\\\":\\\"uint16\\\";if(r===t.dtype&&function(t,e){for(var r=1,n=e.length-1;n>=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=c(this.gl,this.type,this.length,this.usage,t.data,e):this.length=c(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=a(s,t.shape);i.assign(l,t),this.length=c(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var f;f=this.type===this.gl.ELEMENT_ARRAY_BUFFER?u(t,\\\"uint16\\\"):u(t,\\\"float32\\\"),this.length=c(this.gl,this.type,this.length,this.usage,e<0?f:f.subarray(0,t.length),e),n.free(f)}else if(\\\"object\\\"==typeof t&&\\\"number\\\"==typeof t.length)this.length=c(this.gl,this.type,this.length,this.usage,t,e);else{if(\\\"number\\\"!=typeof t&&void 0!==t)throw new Error(\\\"gl-buffer: Invalid data type\\\");if(e>=0)throw new Error(\\\"gl-buffer: Cannot specify offset when resizing buffer\\\");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},e.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.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(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.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 i=t.createBuffer(),a=new s(t,r,i,0,n);return a.update(e),a}},{ndarray:433,\\\"ndarray-ops\\\":427,\\\"typedarray-pool\\\":522}],231:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-vec3\\\"),i=(t(\\\"gl-vec4\\\"),function(t,e){for(var r=0;r<t.length;r++)if(t[r]>=e)return r-1;return r}),a=n.create(),o=n.create(),s=function(t,e,r){return t<e?e:t>r?r:t},l=function(t,e,r,l){var c=t[0],u=t[1],f=t[2],h=r[0].length,p=r[1].length,d=r[2].length,g=i(r[0],c),v=i(r[1],u),m=i(r[2],f),y=g+1,x=v+1,b=m+1;if(l&&(g=s(g,0,h-1),y=s(y,0,h-1),v=s(v,0,p-1),x=s(x,0,p-1),m=s(m,0,d-1),b=s(b,0,d-1)),g<0||v<0||m<0||y>=h||x>=p||b>=d)return n.create();var _=(c-r[0][g])/(r[0][y]-r[0][g]),w=(u-r[1][v])/(r[1][x]-r[1][v]),k=(f-r[2][m])/(r[2][b]-r[2][m]);(_<0||_>1||isNaN(_))&&(_=0),(w<0||w>1||isNaN(w))&&(w=0),(k<0||k>1||isNaN(k))&&(k=0);var M=m*h*p,A=b*h*p,T=v*h,S=x*h,E=g,C=y,L=e[T+M+E],z=e[T+M+C],O=e[S+M+E],I=e[S+M+C],P=e[T+A+E],D=e[T+A+C],R=e[S+A+E],B=e[S+A+C],F=n.create();return n.lerp(F,L,z,_),n.lerp(a,O,I,_),n.lerp(F,F,a,w),n.lerp(a,P,D,_),n.lerp(o,R,B,_),n.lerp(a,a,o,w),n.lerp(F,F,a,k),F};e.exports=function(t,e){var r;r=t.positions?t.positions:function(t){for(var e=t[0],r=t[1],n=t[2],i=[],a=0;a<n.length;a++)for(var o=0;o<r.length;o++)for(var s=0;s<e.length;s++)i.push([n[a],r[o],e[s]]);return i}(t.meshgrid);var i=t.meshgrid,a=t.vectors,o={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vertexNormals:[],vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),o;for(var s=0,c=1/0,u=-1/0,f=1/0,h=-1/0,p=1/0,d=-1/0,g=null,v=null,m=[],y=1/0,x=0;x<r.length;x++){var b,_=r[x];c=Math.min(_[0],c),u=Math.max(_[0],u),f=Math.min(_[1],f),h=Math.max(_[1],h),p=Math.min(_[2],p),d=Math.max(_[2],d),b=i?l(_,a,i,!0):a[x],n.length(b)>s&&(s=n.length(b)),x&&(y=Math.min(y,2*n.distance(g,_)/(n.length(v)+n.length(b)))),g=_,v=b,m.push(b)}var w=[c,f,p],k=[u,h,d];e&&(e[0]=w,e[1]=k),0===s&&(s=1);var M=1/s;isFinite(y)&&!isNaN(y)||(y=1),o.vectorScale=y;var A=function(t,e,r){var i=n.create();return void 0!==t&&n.set(i,t,e,r),i}(0,1,0),T=t.coneSize||.5;t.absoluteConeSize&&(T=t.absoluteConeSize*M),o.coneScale=T;x=0;for(var S=0;x<r.length;x++)for(var E=(_=r[x])[0],C=_[1],L=_[2],z=m[x],O=n.length(z)*M,I=0;I<8;I++){o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.positions.push([E,C,L,S++]),o.vectors.push(z),o.vectors.push(z),o.vectors.push(z),o.vectors.push(z),o.vectors.push(z),o.vectors.push(z),o.vertexIntensity.push(O,O,O),o.vertexIntensity.push(O,O,O),o.vertexNormals.push(A,A,A),o.vertexNormals.push(A,A,A);var P=o.positions.length;o.cells.push([P-6,P-5,P-4],[P-3,P-2,P-1])}return o},e.exports.createConeMesh=t(\\\"./lib/conemesh\\\")},{\\\"./lib/conemesh\\\":233,\\\"gl-vec3\\\":329,\\\"gl-vec4\\\":365}],232:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"barycentric\\\"),i=t(\\\"polytope-closest-point/lib/closest_point_2d.js\\\");function a(t,e){for(var r=[0,0,0,0],n=0;n<4;++n)for(var i=0;i<4;++i)r[i]+=t[4*n+i]*e[n];return r}function o(t,e,r,n,i){for(var o=a(n,a(r,a(e,[t[0],t[1],t[2],1]))),s=0;s<3;++s)o[s]/=o[3];return[.5*i[0]*(1+o[0]),.5*i[1]*(1-o[1])]}e.exports=function(t,e,r,a,s,l){if(1===t.length)return[0,t[0].slice()];for(var c=new Array(t.length),u=0;u<t.length;++u)c[u]=o(t[u],r,a,s,l);for(var f=0,h=1/0,u=0;u<c.length;++u){for(var p=0,d=0;d<2;++d)p+=Math.pow(c[u][d]-e[d],2);p<h&&(h=p,f=u)}for(var g=function(t,e){if(2===t.length){for(var r=0,a=0,o=0;o<2;++o)r+=Math.pow(e[o]-t[0][o],2),a+=Math.pow(e[o]-t[1][o],2);return r=Math.sqrt(r),a=Math.sqrt(a),r+a<1e-6?[1,0]:[a/(r+a),r/(a+r)]}if(3===t.length){var s=[0,0];return i(t[0],t[1],t[2],e,s),n(t,s)}return[]}(c,e),v=0,u=0;u<3;++u){if(g[u]<-.001||g[u]>1.0001)return null;v+=g[u]}if(Math.abs(v-1)>.001)return null;return[f,function(t,e){for(var r=[0,0,0],n=0;n<t.length;++n)for(var i=t[n],a=e[n],o=0;o<3;++o)r[o]+=a*i[o];return r}(t,g),g]}},{barycentric:61,\\\"polytope-closest-point/lib/closest_point_2d.js\\\":464}],233:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"gl-texture2d\\\"),s=t(\\\"normals\\\"),l=t(\\\"gl-mat4/multiply\\\"),c=t(\\\"gl-mat4/invert\\\"),u=t(\\\"ndarray\\\"),f=t(\\\"colormap\\\"),h=t(\\\"simplicial-complex-contour\\\"),p=t(\\\"typedarray-pool\\\"),d=t(\\\"./shaders\\\"),g=(t(\\\"./closest-point\\\"),d.meshShader),v=d.pickShader,m=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function y(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,v,y,x,b,_,w,k,M,A,T,S,E){this.gl=t,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleVectors=c,this.triangleColors=f,this.triangleNormals=p,this.triangleUVs=h,this.triangleIds=u,this.triangleVAO=d,this.triangleCount=0,this.lineWidth=1,this.edgePositions=g,this.edgeColors=y,this.edgeUVs=x,this.edgeIds=v,this.edgeVAO=b,this.edgeCount=0,this.pointPositions=_,this.pointColors=k,this.pointUVs=M,this.pointSizes=A,this.pointIds=w,this.pointVAO=T,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=S,this.contourVAO=E,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!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.coneScale=2,this.vectorScale=1,this.coneOffset=.25,this._model=m,this._view=m,this._projection=m,this._resolution=[1,1]}var x=y.prototype;function b(t){var e=n(t,v.vertex,v.fragment,null,v.attributes);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.vector.location=5,e}x.isOpaque=function(){return this.opacity>=1},x.isTransparent=function(){return this.opacity<1},x.pickSlots=1,x.setPickBase=function(t){this.pickId=t},x.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l<a;++l)for(var c=r[l],u=0;u<2;++u){var f=c[0];2===c.length&&(f=c[u]);for(var d=n[f][0],g=n[f][1],v=i[f],m=1-v,y=this.positions[d],x=this.positions[g],b=0;b<3;++b)o[s++]=v*y[b]+m*x[b]}this.contourCount=s/3|0,this.contourPositions.update(o.subarray(0,s)),p.free(o)}else this.contourCount=0},x.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,\\\"contourEnable\\\"in t&&(this.contourEnable=t.contourEnable),\\\"contourColor\\\"in t&&(this.contourColor=t.contourColor),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"lightPosition\\\"in t&&(this.lightPosition=t.lightPosition),\\\"opacity\\\"in t&&(this.opacity=t.opacity),\\\"ambient\\\"in t&&(this.ambientLight=t.ambient),\\\"diffuse\\\"in t&&(this.diffuseLight=t.diffuse),\\\"specular\\\"in t&&(this.specularLight=t.specular),\\\"roughness\\\"in t&&(this.roughness=t.roughness),\\\"fresnel\\\"in t&&(this.fresnel=t.fresnel),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.texture?(this.texture.dispose(),this.texture=o(e,t.texture)):t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=f({colormap:t,nshades:256,format:\\\"rgba\\\"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){var a=[],l=[],c=[],h=[],p=[],d=[],g=[],v=[],m=[],y=[],x=[],b=[],_=[],w=[],k=[];this.cells=r,this.positions=n;var M=t.vertexNormals,A=t.cellNormals,T=void 0===t.vertexNormalsEpsilon?1e-6:t.vertexNormalsEpsilon,S=void 0===t.faceNormalsEpsilon?1e-6:t.faceNormalsEpsilon;t.useFacetNormals&&!A&&(A=s.faceNormals(r,n,S)),A||M||(M=s.vertexNormals(r,n,T));var E=t.vertexColors,C=t.cellColors,L=t.meshColor||[1,1,1,1],z=t.vertexUVs,O=t.vertexIntensity,I=t.cellUVs,P=t.cellIntensity,D=1/0,R=-1/0;if(!z&&!I)if(O)if(t.vertexIntensityBounds)D=+t.vertexIntensityBounds[0],R=+t.vertexIntensityBounds[1];else for(var B=0;B<O.length;++B){var F=O[B];D=Math.min(D,F),R=Math.max(R,F)}else if(P)for(B=0;B<P.length;++B){F=P[B];D=Math.min(D,F),R=Math.max(R,F)}else for(B=0;B<n.length;++B){F=n[B][2];D=Math.min(D,F),R=Math.max(R,F)}this.intensity=O||(P?function(t,e,r){for(var n=new Array(e),i=0;i<e;++i)n[i]=0;var a=t.length;for(i=0;i<a;++i)for(var o=t[i],s=0;s<o.length;++s)n[o[s]]=r[i];return n}(r,n.length,P):function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n));var N=t.pointSizes,j=t.pointSize||1;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(B=0;B<n.length;++B)for(var V=n[B],U=0;U<3;++U)!isNaN(V[U])&&isFinite(V[U])&&(this.bounds[0][U]=Math.min(this.bounds[0][U],V[U]),this.bounds[1][U]=Math.max(this.bounds[1][U],V[U]));var q=0,H=0,G=0;t:for(B=0;B<r.length;++B){var W=r[B];switch(W.length){case 1:for(V=n[X=W[0]],U=0;U<3;++U)if(isNaN(V[U])||!isFinite(V[U]))continue t;x.push(V[0],V[1],V[2],V[3]),3===(Z=E?E[X]:C?C[B]:L).length?b.push(Z[0],Z[1],Z[2],1):b.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],_.push($[0],$[1]),N?w.push(N[X]):w.push(j),k.push(B),G+=1;break;case 2:for(U=0;U<2;++U){V=n[X=W[U]];for(var Y=0;Y<3;++Y)if(isNaN(V[Y])||!isFinite(V[Y]))continue t}for(U=0;U<2;++U){V=n[X=W[U]];g.push(V[0],V[1],V[2]),3===(Z=E?E[X]:C?C[B]:L).length?v.push(Z[0],Z[1],Z[2],1):v.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],m.push($[0],$[1]),y.push(B)}H+=1;break;case 3:for(U=0;U<3;++U)for(V=n[X=W[U]],Y=0;Y<3;++Y)if(isNaN(V[Y])||!isFinite(V[Y]))continue t;for(U=0;U<3;++U){var X;V=n[X=W[U]];a.push(V[0],V[1],V[2],V[3]);var Z,$,J,K=i[X];l.push(K[0],K[1],K[2]),3===(Z=E?E[X]:C?C[B]:L).length?c.push(Z[0],Z[1],Z[2],1):c.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],p.push($[0],$[1]),J=M?M[X]:A[B],h.push(J[0],J[1],J[2]),d.push(B)}q+=1}}this.pointCount=G,this.edgeCount=H,this.triangleCount=q,this.pointPositions.update(x),this.pointColors.update(b),this.pointUVs.update(_),this.pointSizes.update(w),this.pointIds.update(new Uint32Array(k)),this.edgePositions.update(g),this.edgeColors.update(v),this.edgeUVs.update(m),this.edgeIds.update(new Uint32Array(y)),this.trianglePositions.update(a),this.triangleVectors.update(l),this.triangleColors.update(c),this.triangleUVs.update(p),this.triangleNormals.update(h),this.triangleIds.update(new Uint32Array(d))}},x.drawTransparent=x.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||m,n=t.view||m,i=t.projection||m,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);var s={model:r,view:n,projection:i,clipBounds:a,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],opacity:this.opacity,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,contourColor:this.contourColor,texture:0};this.texture.bind(0);var u=new Array(16);l(u,s.view,s.model),l(u,s.projection,u),c(u,u);for(o=0;o<3;++o)s.eyePosition[o]=u[12+o]/u[15];var f,h=u[15];for(o=0;o<3;++o)h+=this.lightPosition[o]*u[4*o+3];for(o=0;o<3;++o){for(var p=u[12+o],d=0;d<3;++d)p+=u[4*d+o]*this.lightPosition[d];s.lightPosition[o]=p/h}this.triangleCount>0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},x.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||m,n=t.view||m,i=t.projection||m,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},x.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3);return{index:Math.floor(r[1]/48),position:n,dataCoordinate:n}},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.triangleNormals.dispose(),this.triangleIds.dispose(),this.edgeVAO.dispose(),this.edgePositions.dispose(),this.edgeColors.dispose(),this.edgeUVs.dispose(),this.edgeIds.dispose(),this.pointVAO.dispose(),this.pointPositions.dispose(),this.pointColors.dispose(),this.pointUVs.dispose(),this.pointSizes.dispose(),this.pointIds.dispose(),this.contourVAO.dispose(),this.contourPositions.dispose()},e.exports=function(t,e){1===arguments.length&&(t=(e=t).gl);var r=e.triShader||function(t){var e=n(t,g.vertex,g.fragment,null,g.attributes);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.vector.location=5,e}(t),s=b(t),l=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));l.generateMipmap(),l.minFilter=t.LINEAR_MIPMAP_LINEAR,l.magFilter=t.LINEAR;var c=i(t),f=i(t),h=i(t),p=i(t),d=i(t),v=i(t),m=a(t,[{buffer:c,type:t.FLOAT,size:4},{buffer:v,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:h,type:t.FLOAT,size:4},{buffer:p,type:t.FLOAT,size:2},{buffer:d,type:t.FLOAT,size:3},{buffer:f,type:t.FLOAT,size:3}]),x=i(t),_=i(t),w=i(t),k=i(t),M=a(t,[{buffer:x,type:t.FLOAT,size:3},{buffer:k,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:_,type:t.FLOAT,size:4},{buffer:w,type:t.FLOAT,size:2}]),A=i(t),T=i(t),S=i(t),E=i(t),C=i(t),L=a(t,[{buffer:A,type:t.FLOAT,size:3},{buffer:C,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:T,type:t.FLOAT,size:4},{buffer:S,type:t.FLOAT,size:2},{buffer:E,type:t.FLOAT,size:1}]),z=i(t),O=new y(t,l,r,null,null,s,null,null,c,f,v,h,p,d,m,x,k,_,w,M,A,C,T,S,E,L,z,a(t,[{buffer:z,type:t.FLOAT,size:3}]));return O.update(e),O}},{\\\"./closest-point\\\":232,\\\"./shaders\\\":234,colormap:114,\\\"gl-buffer\\\":230,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"gl-shader\\\":288,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,ndarray:433,normals:436,\\\"simplicial-complex-contour\\\":494,\\\"typedarray-pool\\\":522}],234:[function(t,e,r){var n=t(\\\"glslify\\\"),i=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat inverse(float m) {\\\\n  return 1.0 / m;\\\\n}\\\\n\\\\nmat2 inverse(mat2 m) {\\\\n  return mat2(m[1][1],-m[0][1],\\\\n             -m[1][0], m[0][0]) / (m[0][0]*m[1][1] - m[0][1]*m[1][0]);\\\\n}\\\\n\\\\nmat3 inverse(mat3 m) {\\\\n  float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2];\\\\n  float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2];\\\\n  float a20 = m[2][0], a21 = m[2][1], a22 = m[2][2];\\\\n\\\\n  float b01 = a22 * a11 - a12 * a21;\\\\n  float b11 = -a22 * a10 + a12 * a20;\\\\n  float b21 = a21 * a10 - a11 * a20;\\\\n\\\\n  float det = a00 * b01 + a01 * b11 + a02 * b21;\\\\n\\\\n  return mat3(b01, (-a22 * a01 + a02 * a21), (a12 * a01 - a02 * a11),\\\\n              b11, (a22 * a00 - a02 * a20), (-a12 * a00 + a02 * a10),\\\\n              b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det;\\\\n}\\\\n\\\\nmat4 inverse(mat4 m) {\\\\n  float\\\\n      a00 = m[0][0], a01 = m[0][1], a02 = m[0][2], a03 = m[0][3],\\\\n      a10 = m[1][0], a11 = m[1][1], a12 = m[1][2], a13 = m[1][3],\\\\n      a20 = m[2][0], a21 = m[2][1], a22 = m[2][2], a23 = m[2][3],\\\\n      a30 = m[3][0], a31 = m[3][1], a32 = m[3][2], a33 = m[3][3],\\\\n\\\\n      b00 = a00 * a11 - a01 * a10,\\\\n      b01 = a00 * a12 - a02 * a10,\\\\n      b02 = a00 * a13 - a03 * a10,\\\\n      b03 = a01 * a12 - a02 * a11,\\\\n      b04 = a01 * a13 - a03 * a11,\\\\n      b05 = a02 * a13 - a03 * a12,\\\\n      b06 = a20 * a31 - a21 * a30,\\\\n      b07 = a20 * a32 - a22 * a30,\\\\n      b08 = a20 * a33 - a23 * a30,\\\\n      b09 = a21 * a32 - a22 * a31,\\\\n      b10 = a21 * a33 - a23 * a31,\\\\n      b11 = a22 * a33 - a23 * a32,\\\\n\\\\n      det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\\\\n\\\\n  return mat4(\\\\n      a11 * b11 - a12 * b10 + a13 * b09,\\\\n      a02 * b10 - a01 * b11 - a03 * b09,\\\\n      a31 * b05 - a32 * b04 + a33 * b03,\\\\n      a22 * b04 - a21 * b05 - a23 * b03,\\\\n      a12 * b08 - a10 * b11 - a13 * b07,\\\\n      a00 * b11 - a02 * b08 + a03 * b07,\\\\n      a32 * b02 - a30 * b05 - a33 * b01,\\\\n      a20 * b05 - a22 * b02 + a23 * b01,\\\\n      a10 * b10 - a11 * b08 + a13 * b06,\\\\n      a01 * b08 - a00 * b10 - a03 * b06,\\\\n      a30 * b04 - a31 * b02 + a33 * b00,\\\\n      a21 * b02 - a20 * b04 - a23 * b00,\\\\n      a11 * b07 - a10 * b09 - a12 * b06,\\\\n      a00 * b09 - a01 * b07 + a02 * b06,\\\\n      a31 * b01 - a30 * b03 - a32 * b00,\\\\n      a20 * b03 - a21 * b01 + a22 * b00) / det;\\\\n}\\\\n\\\\nvec3 getOrthogonalVector(vec3 v) {\\\\n  // Return up-vector for only-z vector.\\\\n  // 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).\\\\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\\\\n  // Assign z = 0, x = -b, y = a:\\\\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\\\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\\\n    return normalize(vec3(-v.y, v.x, 0.0));\\\\n  } else {\\\\n    return normalize(vec3(0.0, v.z, -v.y));\\\\n  }\\\\n}\\\\n\\\\n// Calculate the cone vertex and normal at the given index.\\\\n//\\\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\\\n// pointing in the direction of the vector attribute.\\\\n//\\\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\\\n// These vertices are used to make up the triangles of the cone by the following:\\\\n//   segment + 0 top vertex\\\\n//   segment + 1 perimeter vertex a+1\\\\n//   segment + 2 perimeter vertex a\\\\n//   segment + 3 center base vertex\\\\n//   segment + 4 perimeter vertex a\\\\n//   segment + 5 perimeter vertex a+1\\\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\\\n// To go from index to segment, floor(index / 6)\\\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\\\n// To go from index to segment index, index - (segment*6)\\\\n//\\\\nvec3 getConePosition(vec3 d, float index, float coneOffset, out vec3 normal) {\\\\n\\\\n  const float segmentCount = 8.0;\\\\n\\\\n  index = mod(index, segmentCount * 6.0);\\\\n\\\\n  float segment = floor(index/6.0);\\\\n  float segmentIndex = index - (segment*6.0);\\\\n\\\\n  normal = -normalize(d);\\\\n\\\\n  if (segmentIndex == 3.0) {\\\\n    return mix(vec3(0.0), -d, coneOffset);\\\\n  }\\\\n\\\\n  // angle = 2pi * ((segment + ((segmentIndex == 1.0 || segmentIndex == 5.0) ? 1.0 : 0.0)) / segmentCount)\\\\n  float nextAngle = float(segmentIndex == 1.0 || segmentIndex == 5.0);\\\\n  float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\\\n\\\\n  vec3 v1 = mix(d, vec3(0.0), coneOffset);\\\\n  vec3 v2 = v1 - d;\\\\n\\\\n  vec3 u = getOrthogonalVector(d);\\\\n  vec3 v = normalize(cross(u, d));\\\\n\\\\n  vec3 x = u * cos(angle) * length(d)*0.25;\\\\n  vec3 y = v * sin(angle) * length(d)*0.25;\\\\n  vec3 v3 = v2 + x + y;\\\\n  if (segmentIndex <= 2.0) {\\\\n    vec3 tx = u * sin(angle);\\\\n    vec3 ty = v * -cos(angle);\\\\n    vec3 tangent = tx + ty;\\\\n    normal = normalize(cross(v3 - v1, tangent));\\\\n  }\\\\n\\\\n  if (segmentIndex == 0.0) {\\\\n    return mix(d, vec3(0.0), coneOffset);\\\\n  }\\\\n  return v3;\\\\n}\\\\n\\\\nattribute vec3 vector;\\\\nattribute vec4 color, position;\\\\nattribute vec2 uv;\\\\nuniform float vectorScale;\\\\nuniform float coneScale;\\\\n\\\\nuniform float coneOffset;\\\\n\\\\nuniform mat4 model\\\\n           , view\\\\n           , projection;\\\\nuniform vec3 eyePosition\\\\n           , lightPosition;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data\\\\n           , f_position;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  // Scale the vector magnitude to stay constant with\\\\n  // model & view changes.\\\\n  vec3 normal;\\\\n  vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\\\\n  vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\\\n  normal = normalize(normal * inverse(mat3(model)));\\\\n\\\\n  // vec4 m_position  = model * vec4(conePosition, 1.0);\\\\n  vec4 t_position  = view * conePosition;\\\\n  gl_Position      = projection * t_position;\\\\n  f_color          = color; //vec4(position.w, color.r, 0, 0);\\\\n  f_normal         = normal;\\\\n  f_data           = conePosition.xyz;\\\\n  f_position       = position.xyz;\\\\n  f_eyeDirection   = eyePosition   - conePosition.xyz;\\\\n  f_lightDirection = lightPosition - conePosition.xyz;\\\\n  f_uv             = uv;\\\\n}\\\\n\\\"]),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat beckmannDistribution(float x, float roughness) {\\\\n  float NdotH = max(x, 0.0001);\\\\n  float cos2Alpha = NdotH * NdotH;\\\\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\\\n  float roughness2 = roughness * roughness;\\\\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\\\n  return exp(tan2Alpha / roughness2) / denom;\\\\n}\\\\n\\\\nfloat cookTorranceSpecular(\\\\n  vec3 lightDirection,\\\\n  vec3 viewDirection,\\\\n  vec3 surfaceNormal,\\\\n  float roughness,\\\\n  float fresnel) {\\\\n\\\\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\\\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\\\n\\\\n  //Half angle vector\\\\n  vec3 H = normalize(lightDirection + viewDirection);\\\\n\\\\n  //Geometric term\\\\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\\\\n  float VdotH = max(dot(viewDirection, H), 0.000001);\\\\n  float LdotH = max(dot(lightDirection, H), 0.000001);\\\\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\\\\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\\\\n  float G = min(1.0, min(G1, G2));\\\\n  \\\\n  //Distribution term\\\\n  float D = beckmannDistribution(NdotH, roughness);\\\\n\\\\n  //Fresnel term\\\\n  float F = pow(1.0 - VdotN, fresnel);\\\\n\\\\n  //Multiply terms and done\\\\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform float roughness\\\\n            , fresnel\\\\n            , kambient\\\\n            , kdiffuse\\\\n            , kspecular\\\\n            , opacity;\\\\nuniform sampler2D texture;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data\\\\n           , f_position;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  vec3 N = normalize(f_normal);\\\\n  vec3 L = normalize(f_lightDirection);\\\\n  vec3 V = normalize(f_eyeDirection);\\\\n\\\\n  if(!gl_FrontFacing) {\\\\n    N = -N;\\\\n  }\\\\n\\\\n  float specular = cookTorranceSpecular(L, V, N, roughness, fresnel);\\\\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\\\n\\\\n  vec4 surfaceColor =  texture2D(texture, f_uv);\\\\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\\\\n\\\\n  gl_FragColor = litColor * opacity;\\\\n}\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvec3 getOrthogonalVector(vec3 v) {\\\\n  // Return up-vector for only-z vector.\\\\n  // 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).\\\\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\\\\n  // Assign z = 0, x = -b, y = a:\\\\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\\\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\\\n    return normalize(vec3(-v.y, v.x, 0.0));\\\\n  } else {\\\\n    return normalize(vec3(0.0, v.z, -v.y));\\\\n  }\\\\n}\\\\n\\\\n// Calculate the cone vertex and normal at the given index.\\\\n//\\\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\\\n// pointing in the direction of the vector attribute.\\\\n//\\\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\\\n// These vertices are used to make up the triangles of the cone by the following:\\\\n//   segment + 0 top vertex\\\\n//   segment + 1 perimeter vertex a+1\\\\n//   segment + 2 perimeter vertex a\\\\n//   segment + 3 center base vertex\\\\n//   segment + 4 perimeter vertex a\\\\n//   segment + 5 perimeter vertex a+1\\\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\\\n// To go from index to segment, floor(index / 6)\\\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\\\n// To go from index to segment index, index - (segment*6)\\\\n//\\\\nvec3 getConePosition(vec3 d, float index, float coneOffset, out vec3 normal) {\\\\n\\\\n  const float segmentCount = 8.0;\\\\n\\\\n  index = mod(index, segmentCount * 6.0);\\\\n\\\\n  float segment = floor(index/6.0);\\\\n  float segmentIndex = index - (segment*6.0);\\\\n\\\\n  normal = -normalize(d);\\\\n\\\\n  if (segmentIndex == 3.0) {\\\\n    return mix(vec3(0.0), -d, coneOffset);\\\\n  }\\\\n\\\\n  // angle = 2pi * ((segment + ((segmentIndex == 1.0 || segmentIndex == 5.0) ? 1.0 : 0.0)) / segmentCount)\\\\n  float nextAngle = float(segmentIndex == 1.0 || segmentIndex == 5.0);\\\\n  float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\\\n\\\\n  vec3 v1 = mix(d, vec3(0.0), coneOffset);\\\\n  vec3 v2 = v1 - d;\\\\n\\\\n  vec3 u = getOrthogonalVector(d);\\\\n  vec3 v = normalize(cross(u, d));\\\\n\\\\n  vec3 x = u * cos(angle) * length(d)*0.25;\\\\n  vec3 y = v * sin(angle) * length(d)*0.25;\\\\n  vec3 v3 = v2 + x + y;\\\\n  if (segmentIndex <= 2.0) {\\\\n    vec3 tx = u * sin(angle);\\\\n    vec3 ty = v * -cos(angle);\\\\n    vec3 tangent = tx + ty;\\\\n    normal = normalize(cross(v3 - v1, tangent));\\\\n  }\\\\n\\\\n  if (segmentIndex == 0.0) {\\\\n    return mix(d, vec3(0.0), coneOffset);\\\\n  }\\\\n  return v3;\\\\n}\\\\n\\\\nattribute vec3 vector;\\\\nattribute vec4 position;\\\\nattribute vec4 id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\n\\\\nuniform float vectorScale;\\\\nuniform float coneScale;\\\\nuniform float coneOffset;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  vec3 normal;\\\\n  vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\\\\n  vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\\\n  gl_Position = projection * view * conePosition;\\\\n  f_id        = id;\\\\n  f_position  = position.xyz;\\\\n}\\\\n\\\"]),s=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3  clipBounds[2];\\\\nuniform float pickId;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickId, f_id.xyz);\\\\n}\\\"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:\\\"position\\\",type:\\\"vec4\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"},{name:\\\"vector\\\",type:\\\"vec3\\\"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:\\\"position\\\",type:\\\"vec4\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"},{name:\\\"vector\\\",type:\\\"vec3\\\"}]}},{glslify:392}],235:[function(t,e,r){e.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\\\",34000:\\\"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\\\"}},{}],236:[function(t,e,r){var n=t(\\\"./1.0/numbers\\\");e.exports=function(t){return n[t]}},{\\\"./1.0/numbers\\\":235}],237:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e),o=i(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=a(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var c=new s(e,r,o,l);return c.update(t),c};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"./shaders/index\\\"),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,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}var l=s.prototype;function c(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return this.opacity>=1},l.isTransparent=function(){return this.opacity<1},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,i=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],s=n[13],l=n[14],c=n[15],u=this.pixelRatio*(i[3]*a+i[7]*s+i[11]*l+i[15]*c)/e.drawingBufferHeight;this.vao.bind();for(var f=0;f<3;++f)e.lineWidth(this.lineWidth[f]),r.capSize=this.capSize[f]*u,this.lineCount[f]&&e.drawArrays(e.LINES,this.lineOffset[f],this.lineCount[f]);this.vao.unbind()};var u=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function f(t,e,r,n){for(var i=u[n],a=0;a<i.length;++a){var o=i[a];t.push(e[0],e[1],e[2],r[0],r[1],r[2],r[3],o[0],o[1],o[2])}return i.length}l.update=function(t){\\\"lineWidth\\\"in(t=t||{})&&(this.lineWidth=t.lineWidth,Array.isArray(this.lineWidth)||(this.lineWidth=[this.lineWidth,this.lineWidth,this.lineWidth])),\\\"capSize\\\"in t&&(this.capSize=t.capSize,Array.isArray(this.capSize)||(this.capSize=[this.capSize,this.capSize,this.capSize])),\\\"opacity\\\"in t&&(this.opacity=t.opacity);var e=t.color||[[0,0,0],[0,0,0],[0,0,0]],r=t.position,n=t.error;if(Array.isArray(e[0])||(e=[e,e,e]),r&&n){var i=[],a=r.length,o=0;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.lineCount=[0,0,0];for(var s=0;s<3;++s){this.lineOffset[s]=o;t:for(var l=0;l<a;++l){for(var u=r[l],h=0;h<3;++h)if(isNaN(u[h])||!isFinite(u[h]))continue t;var p=n[l],d=e[s];if(Array.isArray(d[0])&&(d=e[l]),3===d.length&&(d=[d[0],d[1],d[2],1]),!isNaN(p[0][s])&&!isNaN(p[1][s])){var g;if(p[0][s]<0)(g=u.slice())[s]+=p[0][s],i.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,g[0],g[1],g[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,g),o+=2+f(i,g,d,s);if(p[1][s]>0)(g=u.slice())[s]+=p[1][s],i.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,g[0],g[1],g[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,g),o+=2+f(i,g,d,s)}}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},{\\\"./shaders/index\\\":238,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310}],238:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position, offset;\\\\nattribute vec4 color;\\\\nuniform mat4 model, view, projection;\\\\nuniform float capSize;\\\\nvarying vec4 fragColor;\\\\nvarying vec3 fragPosition;\\\\n\\\\nvoid main() {\\\\n  vec4 worldPosition  = model * vec4(position, 1.0);\\\\n  worldPosition       = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\\\\n  gl_Position         = projection * view * worldPosition;\\\\n  fragColor           = color;\\\\n  fragPosition        = position;\\\\n}\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform float opacity;\\\\nvarying vec3 fragPosition;\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], fragPosition)) discard;\\\\n\\\\n  gl_FragColor = opacity * fragColor;\\\\n}\\\"]);e.exports=function(t){return i(t,a,o,null,[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"offset\\\",type:\\\"vec3\\\"}])}},{\\\"gl-shader\\\":288,glslify:392}],239:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-texture2d\\\");e.exports=function(t,e,r,n){i||(i=t.FRAMEBUFFER_UNSUPPORTED,a=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var c=t.getExtension(\\\"WEBGL_draw_buffers\\\");!l&&c&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;a<n;++a)i[a]=t.COLOR_ATTACHMENT0+a;for(var a=n;a<r;++a)i[a]=t.NONE;l[n]=i}}(t,c);Array.isArray(e)&&(n=r,r=0|e[1],e=0|e[0]);if(\\\"number\\\"!=typeof e)throw new Error(\\\"gl-fbo: Missing shape parameter\\\");var u=t.getParameter(t.MAX_RENDERBUFFER_SIZE);if(e<0||e>u||r<0||r>u)throw new Error(\\\"gl-fbo: Parameters are too large for FBO\\\");var f=1;if(\\\"color\\\"in(n=n||{})){if((f=Math.max(0|n.color,0))<0)throw new Error(\\\"gl-fbo: Must specify a nonnegative number of colors\\\");if(f>1){if(!c)throw new Error(\\\"gl-fbo: Multiple draw buffer extension not supported\\\");if(f>t.getParameter(c.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error(\\\"gl-fbo: Context does not support \\\"+f+\\\" draw buffers\\\")}}var h=t.UNSIGNED_BYTE,p=t.getExtension(\\\"OES_texture_float\\\");if(n.float&&f>0){if(!p)throw new Error(\\\"gl-fbo: Context does not support floating point textures\\\");h=t.FLOAT}else n.preferFloat&&f>0&&p&&(h=t.FLOAT);var g=!0;\\\"depth\\\"in n&&(g=!!n.depth);var v=!1;\\\"stencil\\\"in n&&(v=!!n.stencil);return new d(t,e,r,h,f,g,v,c)};var i,a,o,s,l=null;function c(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function u(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function f(t){switch(t){case i:throw new Error(\\\"gl-fbo: Framebuffer unsupported\\\");case a:throw new Error(\\\"gl-fbo: Framebuffer incomplete attachment\\\");case o:throw new Error(\\\"gl-fbo: Framebuffer incomplete dimensions\\\");case s:throw new Error(\\\"gl-fbo: Framebuffer incomplete missing attachment\\\");default:throw new Error(\\\"gl-fbo: Framebuffer failed for unspecified reason\\\")}}function h(t,e,r,i,a,o){if(!i)return null;var s=n(t,e,r,a,i);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function d(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var d=0;d<i;++d)this.color[d]=null;this._color_rb=null,this.depth=null,this._depth_rb=null,this._colorType=n,this._useDepth=a,this._useStencil=o;var g=this,v=[0|e,0|r];Object.defineProperties(v,{0:{get:function(){return g._shape[0]},set:function(t){return g.width=t}},1:{get:function(){return g._shape[1]},set:function(t){return g.height=t}}}),this._shapeVector=v,function(t){var e=c(t.gl),r=t.gl,n=t.handle=r.createFramebuffer(),i=t._shape[0],a=t._shape[1],o=t.color.length,s=t._ext,d=t._useStencil,g=t._useDepth,v=t._colorType;r.bindFramebuffer(r.FRAMEBUFFER,n);for(var m=0;m<o;++m)t.color[m]=h(r,i,a,v,r.RGBA,r.COLOR_ATTACHMENT0+m);0===o?(t._color_rb=p(r,i,a,r.RGBA4,r.COLOR_ATTACHMENT0),s&&s.drawBuffersWEBGL(l[0])):o>1&&s.drawBuffersWEBGL(l[o]);var y=r.getExtension(\\\"WEBGL_depth_texture\\\");y?d?t.depth=h(r,i,a,y.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g&&(t.depth=h(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):g&&d?t._depth_rb=p(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g?t._depth_rb=p(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){for(t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null),m=0;m<t.color.length;++m)t.color[m].dispose(),t.color[m]=null;t._color_rb&&(r.deleteRenderbuffer(t._color_rb),t._color_rb=null),u(r,e),f(x)}u(r,e)}(this)}var g=d.prototype;function v(t,e,r){if(t._destroyed)throw new Error(\\\"gl-fbo: Can't resize destroyed FBO\\\");if(t._shape[0]!==e||t._shape[1]!==r){var n=t.gl,i=n.getParameter(n.MAX_RENDERBUFFER_SIZE);if(e<0||e>i||r<0||r>i)throw new Error(\\\"gl-fbo: Can't resize FBO, invalid dimensions\\\");t._shape[0]=e,t._shape[1]=r;for(var a=c(n),o=0;o<t.color.length;++o)t.color[o].shape=t._shape;t._color_rb&&(n.bindRenderbuffer(n.RENDERBUFFER,t._color_rb),n.renderbufferStorage(n.RENDERBUFFER,n.RGBA4,t._shape[0],t._shape[1])),t.depth&&(t.depth.shape=t._shape),t._depth_rb&&(n.bindRenderbuffer(n.RENDERBUFFER,t._depth_rb),t._useDepth&&t._useStencil?n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,t._shape[0],t._shape[1]):t._useDepth?n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t._shape[0],t._shape[1]):t._useStencil&&n.renderbufferStorage(n.RENDERBUFFER,n.STENCIL_INDEX,t._shape[0],t._shape[1])),n.bindFramebuffer(n.FRAMEBUFFER,t.handle);var s=n.checkFramebufferStatus(n.FRAMEBUFFER);s!==n.FRAMEBUFFER_COMPLETE&&(t.dispose(),u(n,a),f(s)),u(n,a)}}Object.defineProperties(g,{shape:{get:function(){return this._destroyed?[0,0]:this._shapeVector},set:function(t){if(Array.isArray(t)||(t=[0|t,0|t]),2!==t.length)throw new Error(\\\"gl-fbo: Shape vector must be length 2\\\");var e=0|t[0],r=0|t[1];return v(this,e,r),[e,r]},enumerable:!1},width:{get:function(){return this._destroyed?0:this._shape[0]},set:function(t){return v(this,t|=0,this._shape[1]),t},enumerable:!1},height:{get:function(){return this._destroyed?0:this._shape[1]},set:function(t){return t|=0,v(this,this._shape[0],t),t},enumerable:!1}}),g.bind=function(){if(!this._destroyed){var t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.handle),t.viewport(0,0,this._shape[0],this._shape[1])}},g.dispose=function(){if(!this._destroyed){this._destroyed=!0;var t=this.gl;t.deleteFramebuffer(this.handle),this.handle=null,this.depth&&(this.depth.dispose(),this.depth=null),this._depth_rb&&(t.deleteRenderbuffer(this._depth_rb),this._depth_rb=null);for(var e=0;e<this.color.length;++e)this.color[e].dispose(),this.color[e]=null;this._color_rb&&(t.deleteRenderbuffer(this._color_rb),this._color_rb=null)}}},{\\\"gl-texture2d\\\":305}],240:[function(t,e,r){var n=t(\\\"sprintf-js\\\").sprintf,i=t(\\\"gl-constants/lookup\\\"),a=t(\\\"glsl-shader-name\\\"),o=t(\\\"add-line-numbers\\\");e.exports=function(t,e,r){\\\"use strict\\\";var s=a(e)||\\\"of unknown name (see npm glsl-shader-name)\\\",l=\\\"unknown type\\\";void 0!==r&&(l=r===i.FRAGMENT_SHADER?\\\"fragment\\\":\\\"vertex\\\");for(var c=n(\\\"Error compiling %s shader %s:\\\\n\\\",l,s),u=n(\\\"%s%s\\\",c,t),f=t.split(\\\"\\\\n\\\"),h={},p=0;p<f.length;p++){var d=f[p];if(\\\"\\\"!==d&&\\\"\\\\0\\\"!==d){var g=parseInt(d.split(\\\":\\\")[2]);if(isNaN(g))throw new Error(n(\\\"Could not parse error: %s\\\",d));h[g]=d}}for(var v=o(e).split(\\\"\\\\n\\\"),p=0;p<v.length;p++)if(h[p+3]||h[p+2]||h[p+1]){var m=v[p];if(c+=m+\\\"\\\\n\\\",h[p+1]){var y=h[p+1];y=y.substr(y.split(\\\":\\\",3).join(\\\":\\\").length+1).trim(),c+=n(\\\"^^^ %s\\\\n\\\\n\\\",y)}}return{long:c.trim(),short:u.trim()}}},{\\\"add-line-numbers\\\":49,\\\"gl-constants/lookup\\\":236,\\\"glsl-shader-name\\\":384,\\\"sprintf-js\\\":504}],241:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=t.gl,n=o(r,l.vertex,l.fragment),i=o(r,l.pickVertex,l.pickFragment),a=s(r),u=s(r),f=s(r),h=s(r),p=new c(t,n,i,a,u,f,h);return p.update(e),t.addObject(p),p};var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"iota-array\\\"),a=t(\\\"typedarray-pool\\\"),o=t(\\\"gl-shader\\\"),s=t(\\\"gl-buffer\\\"),l=t(\\\"./lib/shaders\\\");function c(t,e,r,n,i,a,o){this.plot=t,this.shader=e,this.pickShader=r,this.positionBuffer=n,this.weightBuffer=i,this.colorBuffer=a,this.idBuffer=o,this.xData=[],this.yData=[],this.shape=[0,0],this.bounds=[1/0,1/0,-1/0,-1/0],this.pickOffset=0}var u,f=c.prototype,h=[0,0,1,0,0,1,1,0,1,1,0,1];f.draw=(u=[1,0,0,0,1,0,0,0,1],function(){var t=this.plot,e=this.shader,r=this.bounds,n=this.numVertices;if(!(n<=0)){var i=t.gl,a=t.dataBox,o=r[2]-r[0],s=r[3]-r[1],l=a[2]-a[0],c=a[3]-a[1];u[0]=2*o/l,u[4]=2*s/c,u[6]=2*(r[0]-a[0])/l-1,u[7]=2*(r[1]-a[1])/c-1,e.bind();var f=e.uniforms;f.viewTransform=u,f.shape=this.shape;var h=e.attributes;this.positionBuffer.bind(),h.position.pointer(),this.weightBuffer.bind(),h.weight.pointer(i.UNSIGNED_BYTE,!1),this.colorBuffer.bind(),h.color.pointer(i.UNSIGNED_BYTE,!0),i.drawArrays(i.TRIANGLES,0,n)}}),f.drawPick=function(){var t=[1,0,0,0,1,0,0,0,1],e=[0,0,0,0];return function(r){var n=this.plot,i=this.pickShader,a=this.bounds,o=this.numVertices;if(!(o<=0)){var s=n.gl,l=n.dataBox,c=a[2]-a[0],u=a[3]-a[1],f=l[2]-l[0],h=l[3]-l[1];t[0]=2*c/f,t[4]=2*u/h,t[6]=2*(a[0]-l[0])/f-1,t[7]=2*(a[1]-l[1])/h-1;for(var p=0;p<4;++p)e[p]=r>>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var g=i.attributes;return this.positionBuffer.bind(),g.position.pointer(),this.weightBuffer.bind(),g.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),g.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),f.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r<n||r>=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},f.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||i(e[0]),o=t.y||i(e[1]),s=t.z||new Float32Array(e[0]*e[1]);this.xData=r,this.yData=o;var l=t.colorLevels||[0],c=t.colorValues||[0,0,0,1],u=l.length,f=this.bounds,p=f[0]=r[0],d=f[1]=o[0],g=1/((f[2]=r[r.length-1])-p),v=1/((f[3]=o[o.length-1])-d),m=e[0],y=e[1];this.shape=[m,y];var x=(m-1)*(y-1)*(h.length>>>1);this.numVertices=x;for(var b=a.mallocUint8(4*x),_=a.mallocFloat32(2*x),w=a.mallocUint8(2*x),k=a.mallocUint32(x),M=0,A=0;A<y-1;++A)for(var T=v*(o[A]-d),S=v*(o[A+1]-d),E=0;E<m-1;++E)for(var C=g*(r[E]-p),L=g*(r[E+1]-p),z=0;z<h.length;z+=2){var O,I,P,D,R=h[z],B=h[z+1],F=s[(A+B)*m+(E+R)],N=n.le(l,F);if(N<0)O=c[0],I=c[1],P=c[2],D=c[3];else if(N===u-1)O=c[4*u-4],I=c[4*u-3],P=c[4*u-2],D=c[4*u-1];else{var j=(F-l[N])/(l[N+1]-l[N]),V=1-j,U=4*N,q=4*(N+1);O=V*c[U]+j*c[q],I=V*c[U+1]+j*c[q+1],P=V*c[U+2]+j*c[q+2],D=V*c[U+3]+j*c[q+3]}b[4*M]=255*O,b[4*M+1]=255*I,b[4*M+2]=255*P,b[4*M+3]=255*D,_[2*M]=.5*C+.5*L,_[2*M+1]=.5*T+.5*S,w[2*M]=R,w[2*M+1]=B,k[M]=A*m+E,M+=1}this.positionBuffer.update(_),this.weightBuffer.update(w),this.colorBuffer.update(b),this.idBuffer.update(k),a.free(_),a.free(b),a.free(w),a.free(k)},f.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.positionBuffer.dispose(),this.weightBuffer.dispose(),this.colorBuffer.dispose(),this.idBuffer.dispose(),this.plot.removeObject(this)}},{\\\"./lib/shaders\\\":242,\\\"binary-search-bounds\\\":243,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288,\\\"iota-array\\\":399,\\\"typedarray-pool\\\":522}],242:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\");e.exports={fragment:n([\\\"precision lowp float;\\\\n#define GLSLIFY 1\\\\nvarying vec4 fragColor;\\\\nvoid main() {\\\\n  gl_FragColor = vec4(fragColor.rgb * fragColor.a, fragColor.a);\\\\n}\\\\n\\\"]),vertex:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position;\\\\nattribute vec4 color;\\\\nattribute vec2 weight;\\\\n\\\\nuniform vec2 shape;\\\\nuniform mat3 viewTransform;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\\\n  fragColor = color;\\\\n  gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\\\n}\\\\n\\\"]),pickFragment:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragId;\\\\nvarying vec2 vWeight;\\\\n\\\\nuniform vec2 shape;\\\\nuniform vec4 pickOffset;\\\\n\\\\nvoid main() {\\\\n  vec2 d = step(.5, vWeight);\\\\n  vec4 id = fragId + pickOffset;\\\\n  id.x += d.x + d.y*shape.x;\\\\n\\\\n  id.y += floor(id.x / 256.0);\\\\n  id.x -= floor(id.x / 256.0) * 256.0;\\\\n\\\\n  id.z += floor(id.y / 256.0);\\\\n  id.y -= floor(id.y / 256.0) * 256.0;\\\\n\\\\n  id.w += floor(id.z / 256.0);\\\\n  id.z -= floor(id.z / 256.0) * 256.0;\\\\n\\\\n  gl_FragColor = id/255.;\\\\n}\\\\n\\\"]),pickVertex:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position;\\\\nattribute vec4 pickId;\\\\nattribute vec2 weight;\\\\n\\\\nuniform vec2 shape;\\\\nuniform mat3 viewTransform;\\\\n\\\\nvarying vec4 fragId;\\\\nvarying vec2 vWeight;\\\\n\\\\nvoid main() {\\\\n  vWeight = weight;\\\\n\\\\n  fragId = pickId;\\\\n\\\\n  vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\\\n  gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\\\n}\\\\n\\\"])}},{glslify:392}],243:[function(t,e,r){arguments[4][99][0].apply(r,arguments)},{dup:99}],244:[function(t,e,r){var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position, nextPosition;\\\\nattribute float arcLength, lineWidth;\\\\nattribute vec4 color;\\\\n\\\\nuniform vec2 screenShape;\\\\nuniform float pixelRatio;\\\\nuniform mat4 model, view, projection;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec3 worldPosition;\\\\nvarying float pixelArcLength;\\\\n\\\\nvec4 project(vec3 p) {\\\\n  return projection * view * model * vec4(p, 1.0);\\\\n}\\\\n\\\\nvoid main() {\\\\n  vec4 startPoint = project(position);\\\\n  vec4 endPoint   = project(nextPosition);\\\\n\\\\n  vec2 A = startPoint.xy / startPoint.w;\\\\n  vec2 B =   endPoint.xy /   endPoint.w;\\\\n\\\\n  float clipAngle = atan(\\\\n    (B.y - A.y) * screenShape.y,\\\\n    (B.x - A.x) * screenShape.x\\\\n  );\\\\n\\\\n  vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(\\\\n    sin(clipAngle),\\\\n    -cos(clipAngle)\\\\n  ) / screenShape;\\\\n\\\\n  gl_Position = vec4(startPoint.xy + startPoint.w * offset, startPoint.zw);\\\\n\\\\n  worldPosition = position;\\\\n  pixelArcLength = arcLength;\\\\n  fragColor = color;\\\\n}\\\\n\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3      clipBounds[2];\\\\nuniform sampler2D dashTexture;\\\\nuniform float     dashScale;\\\\nuniform float     opacity;\\\\n\\\\nvarying vec3    worldPosition;\\\\nvarying float   pixelArcLength;\\\\nvarying vec4    fragColor;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\\\\n\\\\n  float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\\\\n  if(dashWeight < 0.5) {\\\\n    discard;\\\\n  }\\\\n  gl_FragColor = fragColor * opacity;\\\\n}\\\\n\\\"]),s=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\n#define FLOAT_MAX  1.70141184e38\\\\n#define FLOAT_MIN  1.17549435e-38\\\\n\\\\nlowp vec4 encode_float_1540259130(highp float v) {\\\\n  highp float av = abs(v);\\\\n\\\\n  //Handle special cases\\\\n  if(av < FLOAT_MIN) {\\\\n    return vec4(0.0, 0.0, 0.0, 0.0);\\\\n  } else if(v > FLOAT_MAX) {\\\\n    return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\\\\n  } else if(v < -FLOAT_MAX) {\\\\n    return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\\\\n  }\\\\n\\\\n  highp vec4 c = vec4(0,0,0,0);\\\\n\\\\n  //Compute exponent and mantissa\\\\n  highp float e = floor(log2(av));\\\\n  highp float m = av * pow(2.0, -e) - 1.0;\\\\n  \\\\n  //Unpack mantissa\\\\n  c[1] = floor(128.0 * m);\\\\n  m -= c[1] / 128.0;\\\\n  c[2] = floor(32768.0 * m);\\\\n  m -= c[2] / 32768.0;\\\\n  c[3] = floor(8388608.0 * m);\\\\n  \\\\n  //Unpack exponent\\\\n  highp float ebias = e + 127.0;\\\\n  c[0] = floor(ebias / 2.0);\\\\n  ebias -= c[0] * 2.0;\\\\n  c[1] += floor(ebias) * 128.0; \\\\n\\\\n  //Unpack sign bit\\\\n  c[0] += 128.0 * step(0.0, -v);\\\\n\\\\n  //Scale back to range\\\\n  return c / 255.0;\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform float pickId;\\\\nuniform vec3 clipBounds[2];\\\\n\\\\nvarying vec3 worldPosition;\\\\nvarying float pixelArcLength;\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickId/255.0, encode_float_1540259130(pixelArcLength).xyz);\\\\n}\\\"]),l=[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"nextPosition\\\",type:\\\"vec3\\\"},{name:\\\"arcLength\\\",type:\\\"float\\\"},{name:\\\"lineWidth\\\",type:\\\"float\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"}];r.createShader=function(t){return i(t,a,o,null,l)},r.createPickShader=function(t){return i(t,a,s,null,l)}},{\\\"gl-shader\\\":288,glslify:392}],245:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=u(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=f(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),c=i(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),h=l(new Array(1024),[256,1,4]),p=0;p<1024;++p)h.data[p]=255;var d=a(e,h);d.wrap=e.REPEAT;var g=new v(e,r,o,s,c,d);return g.update(t),g};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"gl-texture2d\\\"),o=t(\\\"glsl-read-float\\\"),s=t(\\\"binary-search-bounds\\\"),l=t(\\\"ndarray\\\"),c=t(\\\"./lib/shaders\\\"),u=c.createShader,f=c.createPickShader,h=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function p(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function d(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function g(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function v(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,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=a,this.dashScale=1,this.opacity=1,this.dirty=!0,this.pixelRatio=1}var m=v.prototype;m.isTransparent=function(){return this.opacity<1},m.isOpaque=function(){return this.opacity>=1},m.pickSlots=1,m.setPickBase=function(t){this.pickId=t},m.drawTransparent=m.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||h,view:t.view||h,projection:t.projection||h,clipBounds:d(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||h,view:t.view||h,projection:t.projection||h,pickId:this.pickId,clipBounds:d(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;\\\"dashScale\\\"in t&&(this.dashScale=t.dashScale),\\\"opacity\\\"in t&&(this.opacity=+t.opacity);var i=[],a=[],o=[],c=0,u=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],h=t.position||t.positions;if(h){var d=t.color||t.colors||[0,0,0,1],g=t.lineWidth||1,v=!1;t:for(e=1;e<h.length;++e){var m,y,x,b=h[e-1],_=h[e];for(a.push(c),o.push(b.slice()),r=0;r<3;++r){if(isNaN(b[r])||isNaN(_[r])||!isFinite(b[r])||!isFinite(_[r])){if(!n&&i.length>0){for(var w=0;w<24;++w)i.push(i[i.length-12]);u+=2,v=!0}continue t}f[0][r]=Math.min(f[0][r],b[r],_[r]),f[1][r]=Math.max(f[1][r],b[r],_[r])}Array.isArray(d[0])?(m=d.length>e-1?d[e-1]:d.length>0?d[d.length-1]:[0,0,0,1],y=d.length>e?d[e]:d.length>0?d[d.length-1]:[0,0,0,1]):m=y=d,3===m.length&&(m=[m[0],m[1],m[2],1]),3===y.length&&(y=[y[0],y[1],y[2],1]),x=Array.isArray(g)?g.length>e-1?g[e-1]:g.length>0?g[g.length-1]:[0,0,0,1]:g;var k=c;if(c+=p(b,_),v){for(r=0;r<2;++r)i.push(b[0],b[1],b[2],_[0],_[1],_[2],k,x,m[0],m[1],m[2],m[3]);u+=2,v=!1}i.push(b[0],b[1],b[2],_[0],_[1],_[2],k,x,m[0],m[1],m[2],m[3],b[0],b[1],b[2],_[0],_[1],_[2],k,-x,m[0],m[1],m[2],m[3],_[0],_[1],_[2],b[0],b[1],b[2],c,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],c,x,y[0],y[1],y[2],y[3]),u+=4}}if(this.buffer.update(i),a.push(c),o.push(h[h.length-1].slice()),this.bounds=f,this.vertexCount=u,this.points=o,this.arcLength=a,\\\"dashes\\\"in t){var M=t.dashes.slice();for(M.unshift(0),e=1;e<M.length;++e)M[e]=M[e-1]+M[e];var A=l(new Array(1024),[256,1,4]);for(e=0;e<256;++e){for(r=0;r<4;++r)A.set(e,0,r,0);1&s.le(M,M[M.length-1]*e/255)?A.set(e,0,0,0):A.set(e,0,0,255)}this.texture.setPixels(A)}},m.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()},m.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=o(t.value[0],t.value[1],t.value[2],0),r=s.le(this.arcLength,e);if(r<0)return null;if(r===this.arcLength.length-1)return new g(this.arcLength[this.arcLength.length-1],this.points[this.points.length-1].slice(),r);for(var n=this.points[r],i=this.points[Math.min(r+1,this.points.length-1)],a=(e-this.arcLength[r])/(this.arcLength[r+1]-this.arcLength[r]),l=1-a,c=[0,0,0],u=0;u<3;++u)c[u]=l*n[u]+a*i[u];var f=Math.min(a<.5?r:r+1,this.points.length-1);return new g(e,c,f,this.points[f])}},{\\\"./lib/shaders\\\":244,\\\"binary-search-bounds\\\":79,\\\"gl-buffer\\\":230,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,\\\"glsl-read-float\\\":383,ndarray:433}],246:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*a-i*n;return o?(o=1/o,t[0]=a*o,t[1]=-n*o,t[2]=-i*o,t[3]=r*o,t):null}},{}],247:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],f=u*o-s*c,h=-u*a+s*l,p=c*a-o*l,d=r*f+n*h+i*p;return d?(d=1/d,t[0]=f*d,t[1]=(-u*n+i*c)*d,t[2]=(s*n-i*o)*d,t[3]=h*d,t[4]=(u*r-i*l)*d,t[5]=(-s*r+i*a)*d,t[6]=p*d,t[7]=(-c*r+n*l)*d,t[8]=(o*r-n*a)*d,t):null}},{}],248:[function(t,e,r){e.exports=function(t){var e=new Float32Array(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},{}],249:[function(t,e,r){e.exports=function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],250:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],o=t[5],s=t[6],l=t[7],c=t[8],u=t[9],f=t[10],h=t[11],p=t[12],d=t[13],g=t[14],v=t[15];return(e*o-r*a)*(f*v-h*g)-(e*s-n*a)*(u*v-h*d)+(e*l-i*a)*(u*g-f*d)+(r*s-n*o)*(c*v-h*p)-(r*l-i*o)*(c*g-f*p)+(n*l-i*s)*(c*d-u*p)}},{}],251:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r+r,s=n+n,l=i+i,c=r*o,u=n*o,f=n*s,h=i*o,p=i*s,d=i*l,g=a*o,v=a*s,m=a*l;return t[0]=1-f-d,t[1]=u+m,t[2]=h-v,t[3]=0,t[4]=u-m,t[5]=1-c-d,t[6]=p+g,t[7]=0,t[8]=h+v,t[9]=p-g,t[10]=1-c-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],252:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=n+n,l=i+i,c=a+a,u=n*s,f=n*l,h=n*c,p=i*l,d=i*c,g=a*c,v=o*s,m=o*l,y=o*c;return t[0]=1-(p+g),t[1]=f+y,t[2]=h-m,t[3]=0,t[4]=f-y,t[5]=1-(u+g),t[6]=d+v,t[7]=0,t[8]=h+m,t[9]=d-v,t[10]=1-(u+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}},{}],253:[function(t,e,r){e.exports=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],254:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],f=e[9],h=e[10],p=e[11],d=e[12],g=e[13],v=e[14],m=e[15],y=r*s-n*o,x=r*l-i*o,b=r*c-a*o,_=n*l-i*s,w=n*c-a*s,k=i*c-a*l,M=u*g-f*d,A=u*v-h*d,T=u*m-p*d,S=f*v-h*g,E=f*m-p*g,C=h*m-p*v,L=y*C-x*E+b*S+_*T-w*A+k*M;if(!L)return null;return L=1/L,t[0]=(s*C-l*E+c*S)*L,t[1]=(i*E-n*C-a*S)*L,t[2]=(g*k-v*w+m*_)*L,t[3]=(h*w-f*k-p*_)*L,t[4]=(l*T-o*C-c*A)*L,t[5]=(r*C-i*T+a*A)*L,t[6]=(v*b-d*k-m*x)*L,t[7]=(u*k-h*b+p*x)*L,t[8]=(o*E-s*T+c*M)*L,t[9]=(n*T-r*E-a*M)*L,t[10]=(d*w-g*b+m*y)*L,t[11]=(f*b-u*w-p*y)*L,t[12]=(s*A-o*S-l*M)*L,t[13]=(r*S-n*A+i*M)*L,t[14]=(g*x-d*_-v*y)*L,t[15]=(u*_-f*x+h*y)*L,t}},{}],255:[function(t,e,r){var n=t(\\\"./identity\\\");e.exports=function(t,e,r,i){var a,o,s,l,c,u,f,h,p,d,g=e[0],v=e[1],m=e[2],y=i[0],x=i[1],b=i[2],_=r[0],w=r[1],k=r[2];if(Math.abs(g-_)<1e-6&&Math.abs(v-w)<1e-6&&Math.abs(m-k)<1e-6)return n(t);f=g-_,h=v-w,p=m-k,d=1/Math.sqrt(f*f+h*h+p*p),a=x*(p*=d)-b*(h*=d),o=b*(f*=d)-y*p,s=y*h-x*f,(d=Math.sqrt(a*a+o*o+s*s))?(a*=d=1/d,o*=d,s*=d):(a=0,o=0,s=0);l=h*s-p*o,c=p*a-f*s,u=f*o-h*a,(d=Math.sqrt(l*l+c*c+u*u))?(l*=d=1/d,c*=d,u*=d):(l=0,c=0,u=0);return t[0]=a,t[1]=l,t[2]=f,t[3]=0,t[4]=o,t[5]=c,t[6]=h,t[7]=0,t[8]=s,t[9]=u,t[10]=p,t[11]=0,t[12]=-(a*g+o*v+s*m),t[13]=-(l*g+c*v+u*m),t[14]=-(f*g+h*v+p*m),t[15]=1,t}},{\\\"./identity\\\":253}],256:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],g=e[12],v=e[13],m=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*g,t[1]=x*i+b*l+_*h+w*v,t[2]=x*a+b*c+_*p+w*m,t[3]=x*o+b*u+_*d+w*y,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*g,t[5]=x*i+b*l+_*h+w*v,t[6]=x*a+b*c+_*p+w*m,t[7]=x*o+b*u+_*d+w*y,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*g,t[9]=x*i+b*l+_*h+w*v,t[10]=x*a+b*c+_*p+w*m,t[11]=x*o+b*u+_*d+w*y,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*g,t[13]=x*i+b*l+_*h+w*v,t[14]=x*a+b*c+_*p+w*m,t[15]=x*o+b*u+_*d+w*y,t}},{}],257:[function(t,e,r){e.exports=function(t,e,r,n,i){var a=1/Math.tan(e/2),o=1/(n-i);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(i+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*i*n*o,t[15]=0,t}},{}],258:[function(t,e,r){e.exports=function(t,e,r,n){var i,a,o,s,l,c,u,f,h,p,d,g,v,m,y,x,b,_,w,k,M,A,T,S,E=n[0],C=n[1],L=n[2],z=Math.sqrt(E*E+C*C+L*L);if(Math.abs(z)<1e-6)return null;E*=z=1/z,C*=z,L*=z,i=Math.sin(r),a=Math.cos(r),o=1-a,s=e[0],l=e[1],c=e[2],u=e[3],f=e[4],h=e[5],p=e[6],d=e[7],g=e[8],v=e[9],m=e[10],y=e[11],x=E*E*o+a,b=C*E*o+L*i,_=L*E*o-C*i,w=E*C*o-L*i,k=C*C*o+a,M=L*C*o+E*i,A=E*L*o+C*i,T=C*L*o-E*i,S=L*L*o+a,t[0]=s*x+f*b+g*_,t[1]=l*x+h*b+v*_,t[2]=c*x+p*b+m*_,t[3]=u*x+d*b+y*_,t[4]=s*w+f*k+g*M,t[5]=l*w+h*k+v*M,t[6]=c*w+p*k+m*M,t[7]=u*w+d*k+y*M,t[8]=s*A+f*T+g*S,t[9]=l*A+h*T+v*S,t[10]=c*A+p*T+m*S,t[11]=u*A+d*T+y*S,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t}},{}],259:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],c=e[8],u=e[9],f=e[10],h=e[11];e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[4]=a*i+c*n,t[5]=o*i+u*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=c*i-a*n,t[9]=u*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t}},{}],260:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],c=e[8],u=e[9],f=e[10],h=e[11];e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[0]=a*i-c*n,t[1]=o*i-u*n,t[2]=s*i-f*n,t[3]=l*i-h*n,t[8]=a*n+c*i,t[9]=o*n+u*i,t[10]=s*n+f*i,t[11]=l*n+h*i,t}},{}],261:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],c=e[4],u=e[5],f=e[6],h=e[7];e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[0]=a*i+c*n,t[1]=o*i+u*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=c*i-a*n,t[5]=u*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t}},{}],262:[function(t,e,r){e.exports=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},{}],263:[function(t,e,r){e.exports=function(t,e,r){var n,i,a,o,s,l,c,u,f,h,p,d,g=r[0],v=r[1],m=r[2];e===t?(t[12]=e[0]*g+e[4]*v+e[8]*m+e[12],t[13]=e[1]*g+e[5]*v+e[9]*m+e[13],t[14]=e[2]*g+e[6]*v+e[10]*m+e[14],t[15]=e[3]*g+e[7]*v+e[11]*m+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=c,t[7]=u,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*g+s*v+f*m+e[12],t[13]=i*g+l*v+h*m+e[13],t[14]=a*g+c*v+p*m+e[14],t[15]=o*g+u*v+d*m+e[15]);return t}},{}],264:[function(t,e,r){e.exports=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[11]=e[14],t[12]=i,t[13]=o,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}},{}],265:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){switch(e.length){case 0:break;case 1:t[0]=1/e[0];break;case 4:n(t,e);break;case 9:i(t,e);break;case 16:a(t,e);break;default:throw new Error(\\\"currently supports matrices up to 4x4\\\")}return t};var n=t(\\\"gl-mat2/invert\\\"),i=t(\\\"gl-mat3/invert\\\"),a=t(\\\"gl-mat4/invert\\\")},{\\\"gl-mat2/invert\\\":246,\\\"gl-mat3/invert\\\":247,\\\"gl-mat4/invert\\\":254}],266:[function(t,e,r){arguments[4][232][0].apply(r,arguments)},{barycentric:61,dup:232,\\\"polytope-closest-point/lib/closest_point_2d.js\\\":464}],267:[function(t,e,r){var n=t(\\\"glslify\\\"),i=n([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position, normal;\\\\nattribute vec4 color;\\\\nattribute vec2 uv;\\\\n\\\\nuniform mat4 model\\\\n           , view\\\\n           , projection;\\\\nuniform vec3 eyePosition\\\\n           , lightPosition;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  vec4 m_position  = model * vec4(position, 1.0);\\\\n  vec4 t_position  = view * m_position;\\\\n  gl_Position      = projection * t_position;\\\\n  f_color          = color;\\\\n  f_normal         = normal;\\\\n  f_data           = position;\\\\n  f_eyeDirection   = eyePosition   - position;\\\\n  f_lightDirection = lightPosition - position;\\\\n  f_uv             = uv;\\\\n}\\\\n\\\"]),a=n([\\\"#extension GL_OES_standard_derivatives : enable\\\\n\\\\nprecision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat beckmannDistribution(float x, float roughness) {\\\\n  float NdotH = max(x, 0.0001);\\\\n  float cos2Alpha = NdotH * NdotH;\\\\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\\\n  float roughness2 = roughness * roughness;\\\\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\\\n  return exp(tan2Alpha / roughness2) / denom;\\\\n}\\\\n\\\\nfloat cookTorranceSpecular(\\\\n  vec3 lightDirection,\\\\n  vec3 viewDirection,\\\\n  vec3 surfaceNormal,\\\\n  float roughness,\\\\n  float fresnel) {\\\\n\\\\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\\\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\\\n\\\\n  //Half angle vector\\\\n  vec3 H = normalize(lightDirection + viewDirection);\\\\n\\\\n  //Geometric term\\\\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\\\\n  float VdotH = max(dot(viewDirection, H), 0.000001);\\\\n  float LdotH = max(dot(lightDirection, H), 0.000001);\\\\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\\\\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\\\\n  float G = min(1.0, min(G1, G2));\\\\n  \\\\n  //Distribution term\\\\n  float D = beckmannDistribution(NdotH, roughness);\\\\n\\\\n  //Fresnel term\\\\n  float F = pow(1.0 - VdotN, fresnel);\\\\n\\\\n  //Multiply terms and done\\\\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\\\\n}\\\\n\\\\nvec3 normals(vec3 pos) {\\\\n  vec3 fdx = dFdx(pos);\\\\n  vec3 fdy = dFdy(pos);\\\\n  return normalize(cross(fdx, fdy));\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform float roughness\\\\n            , fresnel\\\\n            , kambient\\\\n            , kdiffuse\\\\n            , kspecular\\\\n            , opacity;\\\\nuniform sampler2D texture;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\\\n\\\\n  vec3 N = normalize(f_normal);\\\\n  vec3 L = normalize(f_lightDirection);\\\\n  vec3 V = normalize(f_eyeDirection);\\\\n\\\\n  vec3 normal = normals(f_data);\\\\n\\\\n  if (dot(N, normal) < 0.0) {\\\\n    N = -N;\\\\n  }\\\\n\\\\n  float specular = cookTorranceSpecular(L, V, N, roughness, fresnel);\\\\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\\\n\\\\n  vec4 surfaceColor = f_color * texture2D(texture, f_uv);\\\\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\\\\n\\\\n  gl_FragColor = litColor * opacity;\\\\n}\\\\n\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 uv;\\\\n\\\\nuniform mat4 model, view, projection;\\\\n\\\\nvarying vec4 f_color;\\\\nvarying vec3 f_data;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  gl_Position = projection * view * model * vec4(position, 1.0);\\\\n  f_color = color;\\\\n  f_data  = position;\\\\n  f_uv    = uv;\\\\n}\\\"]),s=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform sampler2D texture;\\\\nuniform float opacity;\\\\n\\\\nvarying vec4 f_color;\\\\nvarying vec3 f_data;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\\\n\\\\n  gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\\\n}\\\"]),l=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 uv;\\\\nattribute float pointSize;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 clipBounds[2];\\\\n\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    gl_Position = projection * view * model * vec4(position, 1.0);\\\\n  }\\\\n  gl_PointSize = pointSize;\\\\n  f_color = color;\\\\n  f_uv = uv;\\\\n}\\\"]),c=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform sampler2D texture;\\\\nuniform float opacity;\\\\n\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  vec2 pointR = gl_PointCoord.xy - vec2(0.5,0.5);\\\\n  if(dot(pointR, pointR) > 0.25) {\\\\n    discard;\\\\n  }\\\\n  gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\\\n}\\\"]),u=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  gl_Position = projection * view * model * vec4(position, 1.0);\\\\n  f_id        = id;\\\\n  f_position  = position;\\\\n}\\\"]),f=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3  clipBounds[2];\\\\nuniform float pickId;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickId, f_id.xyz);\\\\n}\\\"]),h=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3  position;\\\\nattribute float pointSize;\\\\nattribute vec4  id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 clipBounds[2];\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    gl_Position  = projection * view * model * vec4(position, 1.0);\\\\n    gl_PointSize = pointSize;\\\\n  }\\\\n  f_id         = id;\\\\n  f_position   = position;\\\\n}\\\"]),p=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position;\\\\n\\\\nuniform mat4 model, view, projection;\\\\n\\\\nvoid main() {\\\\n  gl_Position = projection * view * model * vec4(position, 1.0);\\\\n}\\\"]),d=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform vec3 contourColor;\\\\n\\\\nvoid main() {\\\\n  gl_FragColor = vec4(contourColor,1);\\\\n}\\\\n\\\"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"}]},r.wireShader={vertex:o,fragment:s,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"}]},r.pointShader={vertex:l,fragment:c,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"},{name:\\\"pointSize\\\",type:\\\"float\\\"}]},r.pickShader={vertex:u,fragment:f,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"}]},r.pointPickShader={vertex:h,fragment:f,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"pointSize\\\",type:\\\"float\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"}]},r.contourShader={vertex:p,fragment:d,attributes:[{name:\\\"position\\\",type:\\\"vec3\\\"}]}},{glslify:392}],268:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"gl-texture2d\\\"),s=t(\\\"normals\\\"),l=t(\\\"gl-mat4/multiply\\\"),c=t(\\\"gl-mat4/invert\\\"),u=t(\\\"ndarray\\\"),f=t(\\\"colormap\\\"),h=t(\\\"simplicial-complex-contour\\\"),p=t(\\\"typedarray-pool\\\"),d=t(\\\"./lib/shaders\\\"),g=t(\\\"./lib/closest-point\\\"),v=d.meshShader,m=d.wireShader,y=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function k(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,v,m,y,x,b,_,k,M,A,T,S){this.gl=t,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=u,this.triangleNormals=h,this.triangleUVs=f,this.triangleIds=c,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=v,this.edgeUVs=m,this.edgeIds=g,this.edgeVAO=y,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=k,this.pointSizes=M,this.pointIds=b,this.pointVAO=A,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=T,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!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._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var M=k.prototype;function A(t){var e=n(t,y.vertex,y.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function T(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function S(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function E(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}M.isOpaque=function(){return this.opacity>=1},M.isTransparent=function(){return this.opacity<1},M.pickSlots=1,M.setPickBase=function(t){this.pickId=t},M.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l<a;++l)for(var c=r[l],u=0;u<2;++u){var f=c[0];2===c.length&&(f=c[u]);for(var d=n[f][0],g=n[f][1],v=i[f],m=1-v,y=this.positions[d],x=this.positions[g],b=0;b<3;++b)o[s++]=v*y[b]+m*x[b]}this.contourCount=s/3|0,this.contourPositions.update(o.subarray(0,s)),p.free(o)}else this.contourCount=0},M.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,\\\"contourEnable\\\"in t&&(this.contourEnable=t.contourEnable),\\\"contourColor\\\"in t&&(this.contourColor=t.contourColor),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"lightPosition\\\"in t&&(this.lightPosition=t.lightPosition),\\\"opacity\\\"in t&&(this.opacity=t.opacity),\\\"ambient\\\"in t&&(this.ambientLight=t.ambient),\\\"diffuse\\\"in t&&(this.diffuseLight=t.diffuse),\\\"specular\\\"in t&&(this.specularLight=t.specular),\\\"roughness\\\"in t&&(this.roughness=t.roughness),\\\"fresnel\\\"in t&&(this.fresnel=t.fresnel),t.texture?(this.texture.dispose(),this.texture=o(e,t.texture)):t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=f({colormap:t,nshades:256,format:\\\"rgba\\\"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions;if(n&&r){var i=[],a=[],l=[],c=[],h=[],p=[],d=[],g=[],v=[],m=[],y=[],x=[],b=[],_=[];this.cells=r,this.positions=n;var w=t.vertexNormals,k=t.cellNormals,M=void 0===t.vertexNormalsEpsilon?1e-6:t.vertexNormalsEpsilon,A=void 0===t.faceNormalsEpsilon?1e-6:t.faceNormalsEpsilon;t.useFacetNormals&&!k&&(k=s.faceNormals(r,n,A)),k||w||(w=s.vertexNormals(r,n,M));var T=t.vertexColors,S=t.cellColors,E=t.meshColor||[1,1,1,1],C=t.vertexUVs,L=t.vertexIntensity,z=t.cellUVs,O=t.cellIntensity,I=1/0,P=-1/0;if(!C&&!z)if(L)if(t.vertexIntensityBounds)I=+t.vertexIntensityBounds[0],P=+t.vertexIntensityBounds[1];else for(var D=0;D<L.length;++D){var R=L[D];I=Math.min(I,R),P=Math.max(P,R)}else if(O)for(D=0;D<O.length;++D){R=O[D];I=Math.min(I,R),P=Math.max(P,R)}else for(D=0;D<n.length;++D){R=n[D][2];I=Math.min(I,R),P=Math.max(P,R)}this.intensity=L||(O?function(t,e,r){for(var n=new Array(e),i=0;i<e;++i)n[i]=0;var a=t.length;for(i=0;i<a;++i)for(var o=t[i],s=0;s<o.length;++s)n[o[s]]=r[i];return n}(r,n.length,O):function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n));var B=t.pointSizes,F=t.pointSize||1;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(D=0;D<n.length;++D)for(var N=n[D],j=0;j<3;++j)!isNaN(N[j])&&isFinite(N[j])&&(this.bounds[0][j]=Math.min(this.bounds[0][j],N[j]),this.bounds[1][j]=Math.max(this.bounds[1][j],N[j]));var V=0,U=0,q=0;t:for(D=0;D<r.length;++D){var H=r[D];switch(H.length){case 1:for(N=n[W=H[0]],j=0;j<3;++j)if(isNaN(N[j])||!isFinite(N[j]))continue t;m.push(N[0],N[1],N[2]),3===(Y=T?T[W]:S?S[D]:E).length?y.push(Y[0],Y[1],Y[2],1):y.push(Y[0],Y[1],Y[2],Y[3]),X=C?C[W]:L?[(L[W]-I)/(P-I),0]:z?z[D]:O?[(O[D]-I)/(P-I),0]:[(N[2]-I)/(P-I),0],x.push(X[0],X[1]),B?b.push(B[W]):b.push(F),_.push(D),q+=1;break;case 2:for(j=0;j<2;++j){N=n[W=H[j]];for(var G=0;G<3;++G)if(isNaN(N[G])||!isFinite(N[G]))continue t}for(j=0;j<2;++j){N=n[W=H[j]];p.push(N[0],N[1],N[2]),3===(Y=T?T[W]:S?S[D]:E).length?d.push(Y[0],Y[1],Y[2],1):d.push(Y[0],Y[1],Y[2],Y[3]),X=C?C[W]:L?[(L[W]-I)/(P-I),0]:z?z[D]:O?[(O[D]-I)/(P-I),0]:[(N[2]-I)/(P-I),0],g.push(X[0],X[1]),v.push(D)}U+=1;break;case 3:for(j=0;j<3;++j)for(N=n[W=H[j]],G=0;G<3;++G)if(isNaN(N[G])||!isFinite(N[G]))continue t;for(j=0;j<3;++j){var W,Y,X,Z;N=n[W=H[j]];i.push(N[0],N[1],N[2]),3===(Y=T?T[W]:S?S[D]:E).length?a.push(Y[0],Y[1],Y[2],1):a.push(Y[0],Y[1],Y[2],Y[3]),X=C?C[W]:L?[(L[W]-I)/(P-I),0]:z?z[D]:O?[(O[D]-I)/(P-I),0]:[(N[2]-I)/(P-I),0],c.push(X[0],X[1]),Z=w?w[W]:k[D],l.push(Z[0],Z[1],Z[2]),h.push(D)}V+=1}}this.pointCount=q,this.edgeCount=U,this.triangleCount=V,this.pointPositions.update(m),this.pointColors.update(y),this.pointUVs.update(x),this.pointSizes.update(b),this.pointIds.update(new Uint32Array(_)),this.edgePositions.update(p),this.edgeColors.update(d),this.edgeUVs.update(g),this.edgeIds.update(new Uint32Array(v)),this.trianglePositions.update(i),this.triangleColors.update(a),this.triangleUVs.update(c),this.triangleNormals.update(l),this.triangleIds.update(new Uint32Array(h))}},M.drawTransparent=M.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);var s={model:r,view:n,projection:i,clipBounds:a,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],opacity:this.opacity,contourColor:this.contourColor,texture:0};this.texture.bind(0);var u=new Array(16);l(u,s.view,s.model),l(u,s.projection,u),c(u,u);for(o=0;o<3;++o)s.eyePosition[o]=u[12+o]/u[15];var f,h=u[15];for(o=0;o<3;++o)h+=this.lightPosition[o]*u[4*o+3];for(o=0;o<3;++o){for(var p=u[12+o],d=0;d<3;++d)p+=u[4*d+o]*this.lightPosition[d];s.lightPosition[o]=p/h}this.triangleCount>0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},M.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},M.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;a<r.length;++a)i[a]=n[r[a]];var o=g(i,[t.coord[0],this._resolution[1]-t.coord[1]],this._model,this._view,this._projection,this._resolution);if(!o)return null;var s=o[2],l=0;for(a=0;a<r.length;++a)l+=s[a]*this.intensity[r[a]];return{position:o[1],index:r[o[0]],cell:r,cellId:e,intensity:l,dataCoordinate:this.positions[r[o[0]]]}},M.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.lineShader.dispose(),this.pointShader.dispose(),this.pickShader.dispose(),this.pointPickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleNormals.dispose(),this.triangleIds.dispose(),this.edgeVAO.dispose(),this.edgePositions.dispose(),this.edgeColors.dispose(),this.edgeUVs.dispose(),this.edgeIds.dispose(),this.pointVAO.dispose(),this.pointPositions.dispose(),this.pointColors.dispose(),this.pointUVs.dispose(),this.pointSizes.dispose(),this.pointIds.dispose(),this.contourVAO.dispose(),this.contourPositions.dispose(),this.contourShader.dispose()},e.exports=function(t,e){if(1===arguments.length&&(t=(e=t).gl),!(t.getExtension(\\\"OES_standard_derivatives\\\")||t.getExtension(\\\"MOZ_OES_standard_derivatives\\\")||t.getExtension(\\\"WEBKIT_OES_standard_derivatives\\\")))throw new Error(\\\"derivatives not supported\\\");var r=function(t){var e=n(t,v.vertex,v.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.normal.location=4,e}(t),s=function(t){var e=n(t,m.vertex,m.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e}(t),l=A(t),c=T(t),f=S(t),h=E(t),p=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));p.generateMipmap(),p.minFilter=t.LINEAR_MIPMAP_LINEAR,p.magFilter=t.LINEAR;var d=i(t),g=i(t),y=i(t),x=i(t),b=i(t),_=a(t,[{buffer:d,type:t.FLOAT,size:3},{buffer:b,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:g,type:t.FLOAT,size:4},{buffer:y,type:t.FLOAT,size:2},{buffer:x,type:t.FLOAT,size:3}]),w=i(t),M=i(t),C=i(t),L=i(t),z=a(t,[{buffer:w,type:t.FLOAT,size:3},{buffer:L,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:M,type:t.FLOAT,size:4},{buffer:C,type:t.FLOAT,size:2}]),O=i(t),I=i(t),P=i(t),D=i(t),R=i(t),B=a(t,[{buffer:O,type:t.FLOAT,size:3},{buffer:R,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:I,type:t.FLOAT,size:4},{buffer:P,type:t.FLOAT,size:2},{buffer:D,type:t.FLOAT,size:1}]),F=i(t),N=new k(t,p,r,s,l,c,f,h,d,b,g,y,x,_,w,L,M,C,z,O,R,I,P,D,B,F,a(t,[{buffer:F,type:t.FLOAT,size:3}]));return N.update(e),N}},{\\\"./lib/closest-point\\\":266,\\\"./lib/shaders\\\":267,colormap:114,\\\"gl-buffer\\\":230,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"gl-shader\\\":288,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,ndarray:433,normals:436,\\\"simplicial-complex-contour\\\":494,\\\"typedarray-pool\\\":522}],269:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e,[0,0,0,1,1,0,1,1]),s=i(e,a.boxVert,a.lineFrag);return new o(t,r,s)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-shader\\\"),a=t(\\\"./shaders\\\");function o(t,e,r){this.plot=t,this.vbo=e,this.shader=r}var s,l,c=o.prototype;c.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},c.drawBox=(s=[0,0],l=[0,0],function(t,e,r,n,i){var a=this.plot,o=this.shader,c=a.gl;s[0]=t,s[1]=e,l[0]=r,l[1]=n,o.uniforms.lo=s,o.uniforms.hi=l,o.uniforms.color=i,c.drawArrays(c.TRIANGLE_STRIP,0,4)}),c.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":272,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288}],270:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e),a=i(e,o.gridVert,o.gridFrag),l=i(e,o.tickVert,o.gridFrag);return new s(t,r,a,l)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-shader\\\"),a=t(\\\"binary-search-bounds\\\"),o=t(\\\"./shaders\\\");function s(t,e,r,n){this.plot=t,this.vbo=e,this.shader=r,this.tickShader=n,this.ticks=[[],[]]}function l(t,e){return t-e}var c,u,f,h,p,d=s.prototype;d.draw=(c=[0,0],u=[0,0],f=[0,0],function(){for(var t=this.plot,e=this.vbo,r=this.shader,n=this.ticks,i=t.gl,a=t._tickBounds,o=t.dataBox,s=t.viewBox,l=t.gridLineWidth,h=t.gridLineColor,p=t.gridLineEnable,d=t.pixelRatio,g=0;g<2;++g){var v=a[g],m=a[g+2]-v,y=.5*(o[g+2]+o[g]),x=o[g+2]-o[g];u[g]=2*m/x,c[g]=2*(v-y)/x}r.bind(),e.bind(),r.attributes.dataCoord.pointer(),r.uniforms.dataShift=c,r.uniforms.dataScale=u;var b=0;for(g=0;g<2;++g){f[0]=f[1]=0,f[g]=1,r.uniforms.dataAxis=f,r.uniforms.lineWidth=l[g]/(s[g+2]-s[g])*d,r.uniforms.color=h[g];var _=6*n[g].length;p[g]&&_&&i.drawArrays(i.TRIANGLES,b,_),b+=_}}),d.drawTickMarks=function(){var t=[0,0],e=[0,0],r=[1,0],n=[0,1],i=[0,0],o=[0,0];return function(){for(var s=this.plot,c=this.vbo,u=this.tickShader,f=this.ticks,h=s.gl,p=s._tickBounds,d=s.dataBox,g=s.viewBox,v=s.pixelRatio,m=s.screenBox,y=m[2]-m[0],x=m[3]-m[1],b=g[2]-g[0],_=g[3]-g[1],w=0;w<2;++w){var k=p[w],M=p[w+2]-k,A=.5*(d[w+2]+d[w]),T=d[w+2]-d[w];e[w]=2*M/T,t[w]=2*(k-A)/T}e[0]*=b/y,t[0]*=b/y,e[1]*=_/x,t[1]*=_/x,u.bind(),c.bind(),u.attributes.dataCoord.pointer();var S=u.uniforms;S.dataShift=t,S.dataScale=e;var E=s.tickMarkLength,C=s.tickMarkWidth,L=s.tickMarkColor,z=6*f[0].length,O=Math.min(a.ge(f[0],(d[0]-p[0])/(p[2]-p[0]),l),f[0].length),I=Math.min(a.gt(f[0],(d[2]-p[0])/(p[2]-p[0]),l),f[0].length),P=0+6*O,D=6*Math.max(0,I-O),R=Math.min(a.ge(f[1],(d[1]-p[1])/(p[3]-p[1]),l),f[1].length),B=Math.min(a.gt(f[1],(d[3]-p[1])/(p[3]-p[1]),l),f[1].length),F=z+6*R,N=6*Math.max(0,B-R);i[0]=2*(g[0]-E[1])/y-1,i[1]=(g[3]+g[1])/x-1,o[0]=E[1]*v/y,o[1]=C[1]*v/x,N&&(S.color=L[1],S.tickScale=o,S.dataAxis=n,S.screenOffset=i,h.drawArrays(h.TRIANGLES,F,N)),i[0]=(g[2]+g[0])/y-1,i[1]=2*(g[1]-E[0])/x-1,o[0]=C[0]*v/y,o[1]=E[0]*v/x,D&&(S.color=L[0],S.tickScale=o,S.dataAxis=r,S.screenOffset=i,h.drawArrays(h.TRIANGLES,P,D)),i[0]=2*(g[2]+E[3])/y-1,i[1]=(g[3]+g[1])/x-1,o[0]=E[3]*v/y,o[1]=C[3]*v/x,N&&(S.color=L[3],S.tickScale=o,S.dataAxis=n,S.screenOffset=i,h.drawArrays(h.TRIANGLES,F,N)),i[0]=(g[2]+g[0])/y-1,i[1]=2*(g[3]+E[2])/x-1,o[0]=C[2]*v/y,o[1]=E[2]*v/x,D&&(S.color=L[2],S.tickScale=o,S.dataAxis=r,S.screenOffset=i,h.drawArrays(h.TRIANGLES,P,D))}}(),d.update=(h=[1,1,-1,-1,1,-1],p=[1,-1,1,1,-1,-1],function(t){for(var e=t.ticks,r=t.bounds,n=new Float32Array(18*(e[0].length+e[1].length)),i=(this.plot.zeroLineEnable,0),a=[[],[]],o=0;o<2;++o)for(var s=a[o],l=e[o],c=r[o],u=r[o+2],f=0;f<l.length;++f){var d=(l[f].x-c)/(u-c);s.push(d);for(var g=0;g<6;++g)n[i++]=d,n[i++]=h[g],n[i++]=p[g]}this.ticks=a,this.vbo.update(n)}),d.dispose=function(){this.vbo.dispose(),this.shader.dispose(),this.tickShader.dispose()}},{\\\"./shaders\\\":272,\\\"binary-search-bounds\\\":274,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288}],271:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e,[-1,-1,-1,1,1,-1,1,1]),s=i(e,a.lineVert,a.lineFrag);return new o(t,r,s)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-shader\\\"),a=t(\\\"./shaders\\\");function o(t,e,r){this.plot=t,this.vbo=e,this.shader=r}var s,l,c=o.prototype;c.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},c.drawLine=(s=[0,0],l=[0,0],function(t,e,r,n,i,a){var o=this.plot,c=this.shader,u=o.gl;s[0]=t,s[1]=e,l[0]=r,l[1]=n,c.uniforms.start=s,c.uniforms.end=l,c.uniforms.width=i*o.pixelRatio,c.uniforms.color=a,u.drawArrays(u.TRIANGLE_STRIP,0,4)}),c.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":272,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288}],272:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=n([\\\"precision lowp float;\\\\n#define GLSLIFY 1\\\\nuniform vec4 color;\\\\nvoid main() {\\\\n  gl_FragColor = vec4(color.xyz * color.w, color.w);\\\\n}\\\\n\\\"]);e.exports={lineVert:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 coord;\\\\n\\\\nuniform vec4 screenBox;\\\\nuniform vec2 start, end;\\\\nuniform float width;\\\\n\\\\nvec2 perp(vec2 v) {\\\\n  return vec2(v.y, -v.x);\\\\n}\\\\n\\\\nvec2 screen(vec2 v) {\\\\n  return 2.0 * (v - screenBox.xy) / (screenBox.zw - screenBox.xy) - 1.0;\\\\n}\\\\n\\\\nvoid main() {\\\\n  vec2 delta = normalize(perp(start - end));\\\\n  vec2 offset = mix(start, end, 0.5 * (coord.y+1.0));\\\\n  gl_Position = vec4(screen(offset + 0.5 * width * delta * coord.x), 0, 1);\\\\n}\\\\n\\\"]),lineFrag:i,textVert:n([\\\"#define GLSLIFY 1\\\\nattribute vec3 textCoordinate;\\\\n\\\\nuniform vec2 dataScale, dataShift, dataAxis, screenOffset, textScale;\\\\nuniform float angle;\\\\n\\\\nvoid main() {\\\\n  float dataOffset  = textCoordinate.z;\\\\n  vec2 glyphOffset  = textCoordinate.xy;\\\\n  mat2 glyphMatrix = mat2(cos(angle), sin(angle), -sin(angle), cos(angle));\\\\n  vec2 screenCoordinate = dataAxis * (dataScale * dataOffset + dataShift) +\\\\n    glyphMatrix * glyphOffset * textScale + screenOffset;\\\\n  gl_Position = vec4(screenCoordinate, 0, 1);\\\\n}\\\\n\\\"]),textFrag:i,gridVert:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 dataCoord;\\\\n\\\\nuniform vec2 dataAxis, dataShift, dataScale;\\\\nuniform float lineWidth;\\\\n\\\\nvoid main() {\\\\n  vec2 pos = dataAxis * (dataScale * dataCoord.x + dataShift);\\\\n  pos += 10.0 * dataCoord.y * vec2(dataAxis.y, -dataAxis.x) + dataCoord.z * lineWidth;\\\\n  gl_Position = vec4(pos, 0, 1);\\\\n}\\\\n\\\"]),gridFrag:i,boxVert:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 coord;\\\\n\\\\nuniform vec4 screenBox;\\\\nuniform vec2 lo, hi;\\\\n\\\\nvec2 screen(vec2 v) {\\\\n  return 2.0 * (v - screenBox.xy) / (screenBox.zw - screenBox.xy) - 1.0;\\\\n}\\\\n\\\\nvoid main() {\\\\n  gl_Position = vec4(screen(mix(lo, hi, coord)), 0, 1);\\\\n}\\\\n\\\"]),tickVert:n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 dataCoord;\\\\n\\\\nuniform vec2 dataAxis, dataShift, dataScale, screenOffset, tickScale;\\\\n\\\\nvoid main() {\\\\n  vec2 pos = dataAxis * (dataScale * dataCoord.x + dataShift);\\\\n  gl_Position = vec4(pos + tickScale*dataCoord.yz + screenOffset, 0, 1);\\\\n}\\\\n\\\"])}},{glslify:392}],273:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e),a=i(e,s.textVert,s.textFrag);return new l(t,r,a)};var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-shader\\\"),a=t(\\\"text-cache\\\"),o=t(\\\"binary-search-bounds\\\"),s=t(\\\"./shaders\\\");function l(t,e,r){this.plot=t,this.vbo=e,this.shader=r,this.tickOffset=[[],[]],this.tickX=[[],[]],this.labelOffset=[0,0],this.labelCount=[0,0]}var c,u,f,h,p,d,g=l.prototype;g.drawTicks=(c=[0,0],u=[0,0],f=[0,0],function(t){var e=this.plot,r=this.shader,n=this.tickX[t],i=this.tickOffset[t],a=e.gl,s=e.viewBox,l=e.dataBox,h=e.screenBox,p=e.pixelRatio,d=e.tickEnable,g=e.tickPad,v=e.tickColor,m=e.tickAngle,y=e.labelEnable,x=e.labelPad,b=e.labelColor,_=e.labelAngle,w=this.labelOffset[t],k=this.labelCount[t],M=o.lt(n,l[t]),A=o.le(n,l[t+2]);c[0]=c[1]=0,c[t]=1,u[t]=(s[2+t]+s[t])/(h[2+t]-h[t])-1;var T=2/h[2+(1^t)]-h[1^t];u[1^t]=T*s[1^t]-1,d[t]&&(u[1^t]-=T*p*g[t],M<A&&i[A]>i[M]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=v[t],r.uniforms.angle=m[t],a.drawArrays(a.TRIANGLES,i[M],i[A]-i[M]))),y[t]&&k&&(u[1^t]-=T*p*x[t],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t],r.uniforms.angle=_[t],a.drawArrays(a.TRIANGLES,w,k)),u[1^t]=T*s[2+(1^t)]-1,d[t+2]&&(u[1^t]+=T*p*g[t+2],M<A&&i[A]>i[M]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=v[t+2],r.uniforms.angle=m[t+2],a.drawArrays(a.TRIANGLES,i[M],i[A]-i[M]))),y[t+2]&&k&&(u[1^t]+=T*p*x[t+2],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],a.drawArrays(a.TRIANGLES,w,k))}),g.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,c=r.pixelRatio;if(this.titleCount){for(var u=0;u<2;++u)e[u]=2*(o[u]*c-a[u])/(a[2+u]-a[u])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),g.bind=(h=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,i=t.screenBox,a=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,c=.5*(n[o+2]+n[o]),u=n[o+2]-n[o],f=a[o],g=a[o+2]-f,v=i[o],m=i[o+2]-v;p[o]=2*l/u*g/m,h[o]=2*(s-c)/u*g/m}d[1]=2*t.pixelRatio/(i[3]-i[1]),d[0]=d[1]*(i[3]-i[1])/(i[2]-i[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=h,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),g.update=function(t){var e,r,n,i,o,s=[],l=t.ticks,c=t.bounds;for(o=0;o<2;++o){var u=[Math.floor(s.length/3)],f=[-1/0],h=l[o];for(e=0;e<h.length;++e){var p=h[e],d=p.x,g=p.text,v=p.font||\\\"sans-serif\\\";i=p.fontSize||12;for(var m=1/(c[o+2]-c[o]),y=c[o],x=g.split(\\\"\\\\n\\\"),b=0;b<x.length;b++)for(n=a(v,x[b]).data,r=0;r<n.length;r+=2)s.push(n[r]*i,-n[r+1]*i-b*i*1.2,(d-y)*m);u.push(Math.floor(s.length/3)),f.push(d)}this.tickOffset[o]=u,this.tickX[o]=f}for(o=0;o<2;++o){for(this.labelOffset[o]=Math.floor(s.length/3),n=a(t.labelFont[o],t.labels[o],{textAlign:\\\"center\\\"}).data,i=t.labelSize[o],e=0;e<n.length;e+=2)s.push(n[e]*i,-n[e+1]*i,0);this.labelCount[o]=Math.floor(s.length/3)-this.labelOffset[o]}for(this.titleOffset=Math.floor(s.length/3),n=a(t.titleFont,t.title).data,i=t.titleSize,e=0;e<n.length;e+=2)s.push(n[e]*i,-n[e+1]*i,0);this.titleCount=Math.floor(s.length/3)-this.titleOffset,this.vbo.update(s)},g.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\\\"./shaders\\\":272,\\\"binary-search-bounds\\\":274,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288,\\\"text-cache\\\":513}],274:[function(t,e,r){arguments[4][99][0].apply(r,arguments)},{dup:99}],275:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=n(e,[e.drawingBufferWidth,e.drawingBufferHeight]),c=new l(e,r);return c.grid=i(c),c.text=a(c),c.line=o(c),c.box=s(c),c.update(t),c};var n=t(\\\"gl-select-static\\\"),i=t(\\\"./lib/grid\\\"),a=t(\\\"./lib/text\\\"),o=t(\\\"./lib/line\\\"),s=t(\\\"./lib/box\\\");function l(t,e){this.gl=t,this.pickBuffer=e,this.screenBox=[0,0,t.drawingBufferWidth,t.drawingBufferHeight],this.viewBox=[0,0,0,0],this.dataBox=[-10,-10,10,10],this.gridLineEnable=[!0,!0],this.gridLineWidth=[1,1],this.gridLineColor=[[0,0,0,1],[0,0,0,1]],this.pixelRatio=1,this.tickMarkLength=[0,0,0,0],this.tickMarkWidth=[0,0,0,0],this.tickMarkColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[15,15,15,15],this.tickAngle=[0,0,0,0],this.tickEnable=[!0,!0,!0,!0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[15,15,15,15],this.labelAngle=[0,Math.PI/2,0,3*Math.PI/2],this.labelEnable=[!0,!0,!0,!0],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.titleCenter=[0,0],this.titleEnable=!0,this.titleAngle=0,this.titleColor=[0,0,0,1],this.borderColor=[0,0,0,0],this.backgroundColor=[0,0,0,0],this.zeroLineEnable=[!0,!0],this.zeroLineWidth=[4,4],this.zeroLineColor=[[0,0,0,1],[0,0,0,1]],this.borderLineEnable=[!0,!0,!0,!0],this.borderLineWidth=[2,2,2,2],this.borderLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.grid=null,this.text=null,this.line=null,this.box=null,this.objects=[],this.overlays=[],this._tickBounds=[1/0,1/0,-1/0,-1/0],this.static=!1,this.dirty=!1,this.pickDirty=!1,this.pickDelay=120,this.pickRadius=10,this._pickTimeout=null,this._drawPick=this.drawPick.bind(this),this._depthCounter=0}var c=l.prototype;function u(t){for(var e=t.slice(),r=0;r<e.length;++r)e[r]=e[r].slice();return e}function f(t,e){return t.x-e.x}c.setDirty=function(){this.dirty=this.pickDirty=!0},c.setOverlayDirty=function(){this.dirty=!0},c.nextDepthValue=function(){return this._depthCounter++/65536},c.draw=function(){var t=this.gl,e=this.screenBox,r=this.viewBox,n=this.dataBox,i=this.pixelRatio,a=this.grid,o=this.line,s=this.text,l=this.objects;if(this._depthCounter=0,this.pickDirty&&(this._pickTimeout&&clearTimeout(this._pickTimeout),this.pickDirty=!1,this._pickTimeout=setTimeout(this._drawPick,this.pickDelay)),this.dirty){if(this.dirty=!1,t.bindFramebuffer(t.FRAMEBUFFER,null),t.enable(t.SCISSOR_TEST),t.disable(t.DEPTH_TEST),t.depthFunc(t.LESS),t.depthMask(!1),t.enable(t.BLEND),t.blendEquation(t.FUNC_ADD,t.FUNC_ADD),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.borderColor){t.scissor(e[0],e[1],e[2]-e[0],e[3]-e[1]);var c=this.borderColor;t.clearColor(c[0]*c[3],c[1]*c[3],c[2]*c[3],c[3]),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}t.scissor(r[0],r[1],r[2]-r[0],r[3]-r[1]),t.viewport(r[0],r[1],r[2]-r[0],r[3]-r[1]);var u=this.backgroundColor;t.clearColor(u[0]*u[3],u[1]*u[3],u[2]*u[3],u[3]),t.clear(t.COLOR_BUFFER_BIT),a.draw();var f=this.zeroLineEnable,h=this.zeroLineColor,p=this.zeroLineWidth;if(f[0]||f[1]){o.bind();for(var d=0;d<2;++d)if(f[d]&&n[d]<=0&&n[d+2]>=0){var g=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(g,e[1],g,e[3],p[d],h[d]):o.drawLine(e[0],g,e[2],g,p[d],h[d])}}for(d=0;d<l.length;++d)l[d].draw();t.viewport(e[0],e[1],e[2]-e[0],e[3]-e[1]),t.scissor(e[0],e[1],e[2]-e[0],e[3]-e[1]),this.grid.drawTickMarks(),o.bind();var v=this.borderLineEnable,m=this.borderLineWidth,y=this.borderLineColor;for(v[1]&&o.drawLine(r[0],r[1]-.5*m[1]*i,r[0],r[3]+.5*m[3]*i,m[1],y[1]),v[0]&&o.drawLine(r[0]-.5*m[0]*i,r[1],r[2]+.5*m[2]*i,r[1],m[0],y[0]),v[3]&&o.drawLine(r[2],r[1]-.5*m[1]*i,r[2],r[3]+.5*m[3]*i,m[3],y[3]),v[2]&&o.drawLine(r[0]-.5*m[0]*i,r[3],r[2]+.5*m[2]*i,r[3],m[2],y[2]),s.bind(),d=0;d<2;++d)s.drawTicks(d);this.titleEnable&&s.drawTitle();var x=this.overlays;for(d=0;d<x.length;++d)x[d].draw();t.disable(t.SCISSOR_TEST),t.disable(t.BLEND),t.depthMask(!0)}},c.drawPick=function(){if(!this.static){var t=this.pickBuffer;this.gl;this._pickTimeout=null,t.begin();for(var e=1,r=this.objects,n=0;n<r.length;++n)e=r[n].drawPick(e);t.end()}},c.pick=function(t,e){if(!this.static){var r=this.pixelRatio,n=this.pickPixelRatio,i=this.viewBox,a=0|Math.round((t-i[0]/r)*n),o=0|Math.round((e-i[1]/r)*n),s=this.pickBuffer.query(a,o,this.pickRadius);if(!s)return null;for(var l=s.id+(s.value[0]<<8)+(s.value[1]<<16)+(s.value[2]<<24),c=this.objects,u=0;u<c.length;++u){var f=c[u].pick(a,o,l);if(f)return f}return null}},c.setScreenBox=function(t){var e=this.screenBox,r=this.pixelRatio;e[0]=0|Math.round(t[0]*r),e[1]=0|Math.round(t[1]*r),e[2]=0|Math.round(t[2]*r),e[3]=0|Math.round(t[3]*r),this.setDirty()},c.setDataBox=function(t){var e=this.dataBox;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3])&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],this.setDirty())},c.setViewBox=function(t){var e=this.pixelRatio,r=this.viewBox;r[0]=0|Math.round(t[0]*e),r[1]=0|Math.round(t[1]*e),r[2]=0|Math.round(t[2]*e),r[3]=0|Math.round(t[3]*e);var n=this.pickPixelRatio;this.pickBuffer.shape=[0|Math.round((t[2]-t[0])*n),0|Math.round((t[3]-t[1])*n)],this.setDirty()},c.update=function(t){t=t||{};var e=this.gl;this.pixelRatio=t.pixelRatio||1;var r=this.pixelRatio;this.pickPixelRatio=Math.max(r,1),this.setScreenBox(t.screenBox||[0,0,e.drawingBufferWidth/r,e.drawingBufferHeight/r]);this.screenBox;this.setViewBox(t.viewBox||[.125*(this.screenBox[2]-this.screenBox[0])/r,.125*(this.screenBox[3]-this.screenBox[1])/r,.875*(this.screenBox[2]-this.screenBox[0])/r,.875*(this.screenBox[3]-this.screenBox[1])/r]);var n=this.viewBox,i=(n[2]-n[0])/(n[3]-n[1]);this.setDataBox(t.dataBox||[-10,-10/i,10,10/i]),this.borderColor=!1!==t.borderColor&&(t.borderColor||[0,0,0,0]).slice(),this.backgroundColor=(t.backgroundColor||[0,0,0,0]).slice(),this.gridLineEnable=(t.gridLineEnable||[!0,!0]).slice(),this.gridLineWidth=(t.gridLineWidth||[1,1]).slice(),this.gridLineColor=u(t.gridLineColor||[[.5,.5,.5,1],[.5,.5,.5,1]]),this.zeroLineEnable=(t.zeroLineEnable||[!0,!0]).slice(),this.zeroLineWidth=(t.zeroLineWidth||[4,4]).slice(),this.zeroLineColor=u(t.zeroLineColor||[[0,0,0,1],[0,0,0,1]]),this.tickMarkLength=(t.tickMarkLength||[0,0,0,0]).slice(),this.tickMarkWidth=(t.tickMarkWidth||[0,0,0,0]).slice(),this.tickMarkColor=u(t.tickMarkColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.titleCenter=(t.titleCenter||[.5*(n[0]+n[2])/r,(n[3]+120)/r]).slice(),this.titleEnable=!(\\\"titleEnable\\\"in t&&!t.titleEnable),this.titleAngle=t.titleAngle||0,this.titleColor=(t.titleColor||[0,0,0,1]).slice(),this.labelPad=(t.labelPad||[15,15,15,15]).slice(),this.labelAngle=(t.labelAngle||[0,Math.PI/2,0,3*Math.PI/2]).slice(),this.labelEnable=(t.labelEnable||[!0,!0,!0,!0]).slice(),this.labelColor=u(t.labelColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.tickPad=(t.tickPad||[15,15,15,15]).slice(),this.tickAngle=(t.tickAngle||[0,0,0,0]).slice(),this.tickEnable=(t.tickEnable||[!0,!0,!0,!0]).slice(),this.tickColor=u(t.tickColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.borderLineEnable=(t.borderLineEnable||[!0,!0,!0,!0]).slice(),this.borderLineWidth=(t.borderLineWidth||[2,2,2,2]).slice(),this.borderLineColor=u(t.borderLineColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]);var a=t.ticks||[[],[]],o=this._tickBounds;o[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(var s=0;s<2;++s){var l=a[s].slice(0);0!==l.length&&(l.sort(f),o[s]=Math.min(o[s],l[0].x),o[s+2]=Math.max(o[s+2],l[l.length-1].x))}this.grid.update({bounds:o,ticks:a}),this.text.update({bounds:o,ticks:a,labels:t.labels||[\\\"x\\\",\\\"y\\\"],labelSize:t.labelSize||[12,12],labelFont:t.labelFont||[\\\"sans-serif\\\",\\\"sans-serif\\\"],title:t.title||\\\"\\\",titleSize:t.titleSize||18,titleFont:t.titleFont||\\\"sans-serif\\\"}),this.static=!!t.static,this.setDirty()},c.dispose=function(){this.box.dispose(),this.grid.dispose(),this.text.dispose(),this.line.dispose();for(var t=this.objects.length-1;t>=0;--t)this.objects[t].dispose();this.objects.length=0;for(t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},c.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},c.removeObject=function(t){for(var e=this.objects,r=0;r<e.length;++r)if(e[r]===t){e.splice(r,1),this.setDirty();break}},c.addOverlay=function(t){this.overlays.indexOf(t)<0&&(this.overlays.push(t),this.setOverlayDirty())},c.removeOverlay=function(t){for(var e=this.overlays,r=0;r<e.length;++r)if(e[r]===t){e.splice(r,1),this.setOverlayDirty();break}}},{\\\"./lib/box\\\":269,\\\"./lib/grid\\\":270,\\\"./lib/line\\\":271,\\\"./lib/text\\\":273,\\\"gl-select-static\\\":287}],276:[function(t,e,r){var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\nattribute vec2 position;\\\\nvarying vec2 uv;\\\\nvoid main() {\\\\n  uv = position;\\\\n  gl_Position = vec4(position, 0, 1);\\\\n}\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform sampler2D accumBuffer;\\\\nvarying vec2 uv;\\\\n\\\\nvoid main() {\\\\n  vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\\\\n  gl_FragColor = min(vec4(1,1,1,1), accum);\\\\n}\\\"]);e.exports=function(t){return i(t,a,o,null,[{name:\\\"position\\\",type:\\\"vec2\\\"}])}},{\\\"gl-shader\\\":288,glslify:392}],277:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=!1,r=((t=t||{}).pixelRatio||parseFloat(window.devicePixelRatio),t.canvas);if(!r)if(r=document.createElement(\\\"canvas\\\"),t.container){var m=t.container;m.appendChild(r)}else document.body.appendChild(r);var y=t.gl;y||(y=function(t,e){var r=null;try{(r=t.getContext(\\\"webgl\\\",e))||(r=t.getContext(\\\"experimental-webgl\\\",e))}catch(t){return null}return r}(r,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:p}));if(!y)throw new Error(\\\"webgl not supported\\\");var x=t.bounds||[[-10,-10,-10],[10,10,10]],b=new d,_=l(y,[y.drawingBufferWidth,y.drawingBufferHeight],{preferFloat:!p}),w=h(y),k=t.camera||{eye:[2,0,0],center:[0,0,0],up:[0,1,0],zoomMin:.1,zoomMax:100,mode:\\\"turntable\\\"},M=t.axes||{},A=i(y,M);A.enable=!M.disable;var T=t.spikes||{},S=o(y,T),E=[],C=[],L=[],z=[],O=!0,I=!0,P=new Array(16),D=new Array(16),R={view:null,projection:P,model:D},I=!0,B=[y.drawingBufferWidth,y.drawingBufferHeight],F={gl:y,contextLost:!1,pixelRatio:t.pixelRatio||parseFloat(window.devicePixelRatio),canvas:r,selection:b,camera:n(r,k),axes:A,axesPixels:null,spikes:S,bounds:x,objects:E,shape:B,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:v(t.autoResize),autoBounds:v(t.autoBounds),autoScale:!!t.autoScale,autoCenter:v(t.autoCenter),clipToBounds:v(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:R,oncontextloss:null,mouseListener:null},N=[y.drawingBufferWidth/F.pixelRatio|0,y.drawingBufferHeight/F.pixelRatio|0];function j(){if(!e&&F.autoResize){var t=r.parentNode,n=1,i=1;t&&t!==document.body?(n=t.clientWidth,i=t.clientHeight):(n=window.innerWidth,i=window.innerHeight);var a=0|Math.ceil(n*F.pixelRatio),o=0|Math.ceil(i*F.pixelRatio);if(a!==r.width||o!==r.height){r.width=a,r.height=o;var s=r.style;s.position=s.position||\\\"absolute\\\",s.left=\\\"0px\\\",s.top=\\\"0px\\\",s.width=n+\\\"px\\\",s.height=i+\\\"px\\\",O=!0}}}F.autoResize&&j();function V(){for(var t=E.length,e=z.length,r=0;r<e;++r)L[r]=0;t:for(var r=0;r<t;++r){var n=E[r],i=n.pickSlots;if(i){for(var a=0;a<e;++a)if(L[a]+i<255){C[r]=a,n.setPickBase(L[a]+1),L[a]+=i;continue t}var o=s(y,B);C[r]=e,z.push(o),L.push(i),n.setPickBase(1),e+=1}else C[r]=-1}for(;e>0&&0===L[e-1];)L.pop(),z.pop().dispose()}window.addEventListener(\\\"resize\\\",j),F.update=function(t){e||(t=t||{},O=!0,I=!0)},F.add=function(t){e||(t.axes=A,E.push(t),C.push(-1),O=!0,I=!0,V())},F.remove=function(t){if(!e){var r=E.indexOf(t);r<0||(E.splice(r,1),C.pop(),O=!0,I=!0,V())}},F.dispose=function(){if(!e&&(e=!0,window.removeEventListener(\\\"resize\\\",j),r.removeEventListener(\\\"webglcontextlost\\\",H),F.mouseListener.enabled=!1,!F.contextLost)){A.dispose(),S.dispose();for(var t=0;t<E.length;++t)E[t].dispose();_.dispose();for(var t=0;t<z.length;++t)z[t].dispose();w.dispose(),y=null,A=null,S=null,E=[]}};var U=!1,q=0;function H(){if(F.contextLost)return!0;y.isContextLost()&&(F.contextLost=!0,F.mouseListener.enabled=!1,F.selection.object=null,F.oncontextloss&&F.oncontextloss())}F.mouseListener=u(r,function(t,r,n){if(!e){var i=z.length,a=E.length,o=b.object;b.distance=1/0,b.mouse[0]=r,b.mouse[1]=n,b.object=null,b.screen=null,b.dataCoordinate=b.dataPosition=null;var s=!1;if(t&&q)U=!0;else{U&&(I=!0),U=!1;for(var l=0;l<i;++l){var c=z[l].query(r,N[1]-n-1,F.pickRadius);if(c){if(c.distance>b.distance)continue;for(var u=0;u<a;++u){var f=E[u];if(C[u]===l){var h=f.pick(c);h&&(b.buttons=t,b.screen=c.coord,b.distance=c.distance,b.object=f,b.index=h.distance,b.dataPosition=h.position,b.dataCoordinate=h.dataCoordinate,b.data=h,s=!0)}}}}}o&&o!==b.object&&(o.highlight&&o.highlight(null),O=!0),b.object&&(b.object.highlight&&b.object.highlight(b.data),O=!0),(s=s||b.object!==o)&&F.onselect&&F.onselect(b),1&t&&!(1&q)&&F.onclick&&F.onclick(b),q=t}}),r.addEventListener(\\\"webglcontextlost\\\",H);var G=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],W=[G[0].slice(),G[1].slice()];function Y(){if(!H()){j();var t=F.camera.tick();R.view=F.camera.matrix,O=O||t,I=I||t,A.pixelRatio=F.pixelRatio,S.pixelRatio=F.pixelRatio;var e=E.length,r=G[0],n=G[1];r[0]=r[1]=r[2]=1/0,n[0]=n[1]=n[2]=-1/0;for(var i=0;i<e;++i){var o=E[i];o.pixelRatio=F.pixelRatio,o.axes=F.axes,O=O||!!o.dirty,I=I||!!o.dirty;var s=o.bounds;if(s)for(var l=s[0],u=s[1],h=0;h<3;++h)r[h]=Math.min(r[h],l[h]),n[h]=Math.max(n[h],u[h])}var p=F.bounds;if(F.autoBounds)for(var h=0;h<3;++h){if(n[h]<r[h])r[h]=-1,n[h]=1;else{r[h]===n[h]&&(r[h]-=1,n[h]+=1);var d=.05*(n[h]-r[h]);r[h]=r[h]-d,n[h]=n[h]+d}p[0][h]=r[h],p[1][h]=n[h]}for(var v=!1,h=0;h<3;++h)v=v||W[0][h]!==p[0][h]||W[1][h]!==p[1][h],W[0][h]=p[0][h],W[1][h]=p[1][h];if(I=I||v,O=O||v){if(v){for(var m=[0,0,0],i=0;i<3;++i)m[i]=g((p[1][i]-p[0][i])/10);A.autoTicks?A.update({bounds:p,tickSpacing:m}):A.update({bounds:p})}var x=y.drawingBufferWidth,k=y.drawingBufferHeight;B[0]=x,B[1]=k,N[0]=0|Math.max(x/F.pixelRatio,1),N[1]=0|Math.max(k/F.pixelRatio,1),f(P,F.fovy,x/k,F.zNear,F.zFar);for(var i=0;i<16;++i)D[i]=0;D[15]=1;for(var M=0,i=0;i<3;++i)M=Math.max(M,p[1][i]-p[0][i]);for(var i=0;i<3;++i)F.autoScale?D[5*i]=F.aspect[i]/(p[1][i]-p[0][i]):D[5*i]=1/M,F.autoCenter&&(D[12+i]=.5*-D[5*i]*(p[0][i]+p[1][i]));for(var i=0;i<e;++i){var o=E[i];o.axesBounds=p,F.clipToBounds&&(o.clipBounds=p)}b.object&&(F.snapToData?S.position=b.dataCoordinate:S.position=b.dataPosition,S.bounds=p),I&&(I=!1,function(){if(H())return;y.colorMask(!0,!0,!0,!0),y.depthMask(!0),y.disable(y.BLEND),y.enable(y.DEPTH_TEST);for(var t=E.length,e=z.length,r=0;r<e;++r){var n=z[r];n.shape=N,n.begin();for(var i=0;i<t;++i)if(C[i]===r){var a=E[i];a.drawPick&&(a.pixelRatio=1,a.drawPick(R))}n.end()}}()),F.axesPixels=a(F.axes,R,x,k),F.onrender&&F.onrender(),y.bindFramebuffer(y.FRAMEBUFFER,null),y.viewport(0,0,x,k);var T=F.clearColor;y.clearColor(T[0],T[1],T[2],T[3]),y.clear(y.COLOR_BUFFER_BIT|y.DEPTH_BUFFER_BIT),y.depthMask(!0),y.colorMask(!0,!0,!0,!0),y.enable(y.DEPTH_TEST),y.depthFunc(y.LEQUAL),y.disable(y.BLEND),y.disable(y.CULL_FACE);var L=!1;A.enable&&(L=L||A.isTransparent(),A.draw(R)),S.axes=A,b.object&&S.draw(R),y.disable(y.CULL_FACE);for(var i=0;i<e;++i){var o=E[i];o.axes=A,o.pixelRatio=F.pixelRatio,o.isOpaque&&o.isOpaque()&&o.draw(R),o.isTransparent&&o.isTransparent()&&(L=!0)}if(L){_.shape=B,_.bind(),y.clear(y.DEPTH_BUFFER_BIT),y.colorMask(!1,!1,!1,!1),y.depthMask(!0),y.depthFunc(y.LESS),A.enable&&A.isTransparent()&&A.drawTransparent(R);for(var i=0;i<e;++i){var o=E[i];o.isOpaque&&o.isOpaque()&&o.draw(R)}y.enable(y.BLEND),y.blendEquation(y.FUNC_ADD),y.blendFunc(y.ONE,y.ONE_MINUS_SRC_ALPHA),y.colorMask(!0,!0,!0,!0),y.depthMask(!1),y.clearColor(0,0,0,0),y.clear(y.COLOR_BUFFER_BIT),A.isTransparent()&&A.drawTransparent(R);for(var i=0;i<e;++i){var o=E[i];o.isTransparent&&o.isTransparent()&&o.drawTransparent(R)}y.bindFramebuffer(y.FRAMEBUFFER,null),y.blendFunc(y.ONE,y.ONE_MINUS_SRC_ALPHA),y.disable(y.DEPTH_TEST),w.bind(),_.color[0].bind(0),w.uniforms.accumBuffer=0,c(y),y.disable(y.BLEND)}O=!1;for(var i=0;i<e;++i)E[i].dirty=!1}}}return function t(){e||F.contextLost||(Y(),requestAnimationFrame(t))}(),F.redraw=function(){e||(O=!0,Y())},F};var n=t(\\\"3d-view-controls\\\"),i=t(\\\"gl-axes3d\\\"),a=t(\\\"gl-axes3d/properties\\\"),o=t(\\\"gl-spikes3d\\\"),s=t(\\\"gl-select-static\\\"),l=t(\\\"gl-fbo\\\"),c=t(\\\"a-big-triangle\\\"),u=t(\\\"mouse-change\\\"),f=t(\\\"gl-mat4/perspective\\\"),h=t(\\\"./lib/shader\\\"),p=t(\\\"is-mobile\\\")({tablet:!0});function d(){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 g(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}if(e>0){r=Math.round(Math.pow(10,e));return Math.ceil(t/r)*r}return Math.ceil(t)}function v(t){return\\\"boolean\\\"!=typeof t||t}},{\\\"./lib/shader\\\":276,\\\"3d-view-controls\\\":44,\\\"a-big-triangle\\\":47,\\\"gl-axes3d\\\":222,\\\"gl-axes3d/properties\\\":229,\\\"gl-fbo\\\":239,\\\"gl-mat4/perspective\\\":257,\\\"gl-select-static\\\":287,\\\"gl-spikes3d\\\":297,\\\"is-mobile\\\":403,\\\"mouse-change\\\":418}],278:[function(t,e,r){var n=t(\\\"glslify\\\");r.pointVertex=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position;\\\\n\\\\nuniform mat3 matrix;\\\\nuniform float pointSize;\\\\nuniform float pointCloud;\\\\n\\\\nhighp float rand(vec2 co) {\\\\n  highp float a = 12.9898;\\\\n  highp float b = 78.233;\\\\n  highp float c = 43758.5453;\\\\n  highp float d = dot(co.xy, vec2(a, b));\\\\n  highp float e = mod(d, 3.14);\\\\n  return fract(sin(e) * c);\\\\n}\\\\n\\\\nvoid main() {\\\\n  vec3 hgPosition = matrix * vec3(position, 1);\\\\n  gl_Position  = vec4(hgPosition.xy, 0, hgPosition.z);\\\\n    // if we don't jitter the point size a bit, overall point cloud\\\\n    // saturation 'jumps' on zooming, which is disturbing and confusing\\\\n  gl_PointSize = pointSize * ((19.5 + rand(position)) / 20.0);\\\\n  if(pointCloud != 0.0) { // pointCloud is truthy\\\\n    // get the same square surface as circle would be\\\\n    gl_PointSize *= 0.886;\\\\n  }\\\\n}\\\"]),r.pointFragment=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform vec4 color, borderColor;\\\\nuniform float centerFraction;\\\\nuniform float pointCloud;\\\\n\\\\nvoid main() {\\\\n  float radius;\\\\n  vec4 baseColor;\\\\n  if(pointCloud != 0.0) { // pointCloud is truthy\\\\n    if(centerFraction == 1.0) {\\\\n      gl_FragColor = color;\\\\n    } else {\\\\n      gl_FragColor = mix(borderColor, color, centerFraction);\\\\n    }\\\\n  } else {\\\\n    radius = length(2.0 * gl_PointCoord.xy - 1.0);\\\\n    if(radius > 1.0) {\\\\n      discard;\\\\n    }\\\\n    baseColor = mix(borderColor, color, step(radius, centerFraction));\\\\n    gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\\\\n  }\\\\n}\\\\n\\\"]),r.pickVertex=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position;\\\\nattribute vec4 pickId;\\\\n\\\\nuniform mat3 matrix;\\\\nuniform float pointSize;\\\\nuniform vec4 pickOffset;\\\\n\\\\nvarying vec4 fragId;\\\\n\\\\nvoid main() {\\\\n  vec3 hgPosition = matrix * vec3(position, 1);\\\\n  gl_Position  = vec4(hgPosition.xy, 0, hgPosition.z);\\\\n  gl_PointSize = pointSize;\\\\n\\\\n  vec4 id = pickId + pickOffset;\\\\n  id.y += floor(id.x / 256.0);\\\\n  id.x -= floor(id.x / 256.0) * 256.0;\\\\n\\\\n  id.z += floor(id.y / 256.0);\\\\n  id.y -= floor(id.y / 256.0) * 256.0;\\\\n\\\\n  id.w += floor(id.z / 256.0);\\\\n  id.z -= floor(id.z / 256.0) * 256.0;\\\\n\\\\n  fragId = id;\\\\n}\\\\n\\\"]),r.pickFragment=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragId;\\\\n\\\\nvoid main() {\\\\n  float radius = length(2.0 * gl_PointCoord.xy - 1.0);\\\\n  if(radius > 1.0) {\\\\n    discard;\\\\n  }\\\\n  gl_FragColor = fragId / 255.0;\\\\n}\\\\n\\\"])},{glslify:392}],279:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"typedarray-pool\\\"),o=t(\\\"./lib/shader\\\");function s(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,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}e.exports=function(t,e){var r=t.gl,a=i(r),l=i(r),c=n(r,o.pointVertex,o.pointFragment),u=n(r,o.pickVertex,o.pickFragment),f=new s(t,a,l,c,u);return f.update(e),t.addObject(f),f};var l,c,u=s.prototype;u.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},u.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r(\\\"sizeMin\\\",.5),this.sizeMax=r(\\\"sizeMax\\\",20),this.color=r(\\\"color\\\",[1,0,0,1]).slice(),this.areaRatio=r(\\\"areaRatio\\\",1),this.borderColor=r(\\\"borderColor\\\",[0,0,0,1]).slice(),this.blend=r(\\\"blend\\\",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=i?s:a.mallocFloat32(s.length),c=o?t.idToIndex:a.mallocInt32(n);if(i||l.set(s),!o)for(l.set(s),e=0;e<n;e++)c[e]=e;this.points=s,this.offsetBuffer.update(l),this.pickBuffer.update(c),i||a.free(l),o||a.free(c),this.pointCount=n,this.pickOffset=0},u.unifiedDraw=(l=[1,0,0,0,1,0,0,0,1],c=[0,0,0,0],function(t){var e=void 0!==t,r=e?this.pickShader:this.shader,n=this.plot.gl,i=this.plot.dataBox;if(0===this.pointCount)return t;var a=i[2]-i[0],o=i[3]-i[1],s=function(t,e){var r,n=0,i=t.length>>>1;for(r=0;r<i;r++){var a=t[2*r],o=t[2*r+1];a>=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,i),u=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/a,l[4]=2/o,l[6]=-2*i[0]/a-1,l[7]=-2*i[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=u<5,r.uniforms.pointSize=u,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(c[0]=255&t,c[1]=t>>8&255,c[2]=t>>16&255,c[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=c,this.pickOffset=t);var f=n.getParameter(n.BLEND),h=n.getParameter(n.DITHER);return f&&!this.blend&&n.disable(n.BLEND),h&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),f&&!this.blend&&n.enable(n.BLEND),h&&n.enable(n.DITHER),t+this.pointCount}),u.draw=u.unifiedDraw,u.drawPick=u.unifiedDraw,u.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r<n||r>=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}}},{\\\"./lib/shader\\\":278,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288,\\\"typedarray-pool\\\":522}],280:[function(t,e,r){e.exports=function(t,e,r,n){var i,a,o,s,l,c=e[0],u=e[1],f=e[2],h=e[3],p=r[0],d=r[1],g=r[2],v=r[3];(a=c*p+u*d+f*g+h*v)<0&&(a=-a,p=-p,d=-d,g=-g,v=-v);1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n);return t[0]=s*c+l*p,t[1]=s*u+l*d,t[2]=s*f+l*g,t[3]=s*h+l*v,t}},{}],281:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t||0===t?t.toString():\\\"\\\"}},{}],282:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"vectorize-text\\\");e.exports=function(t,e){var r=i[e];r||(r=i[e]={});if(t in r)return r[t];for(var a=n(t,{textAlign:\\\"center\\\",textBaseline:\\\"middle\\\",lineHeight:1,font:e}),o=n(t,{triangles:!0,textAlign:\\\"center\\\",textBaseline:\\\"middle\\\",lineHeight:1,font:e}),s=[[1/0,1/0],[-1/0,-1/0]],l=0;l<a.positions.length;++l)for(var c=a.positions[l],u=0;u<2;++u)s[0][u]=Math.min(s[0][u],c[u]),s[1][u]=Math.max(s[1][u],c[u]);return r[t]=[o,a,s]};var i={}},{\\\"vectorize-text\\\":527}],283:[function(t,e,r){var n=t(\\\"gl-shader\\\"),i=t(\\\"glslify\\\"),a=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 glyph;\\\\nattribute vec4 id;\\\\n\\\\nuniform vec4 highlightId;\\\\nuniform float highlightScale;\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 clipBounds[2];\\\\n\\\\nvarying vec4 interpColor;\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    float scale = 1.0;\\\\n    if(distance(highlightId, id) < 0.0001) {\\\\n      scale = highlightScale;\\\\n    }\\\\n\\\\n    vec4 worldPosition = model * vec4(position, 1);\\\\n    vec4 viewPosition = view * worldPosition;\\\\n    viewPosition = viewPosition / viewPosition.w;\\\\n    vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\\\\n\\\\n    gl_Position = clipPosition;\\\\n    interpColor = color;\\\\n    pickId = id;\\\\n    dataCoordinate = position;\\\\n  }\\\\n}\\\"]),o=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 glyph;\\\\nattribute vec4 id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec2 screenSize;\\\\nuniform vec3 clipBounds[2];\\\\nuniform float highlightScale, pixelRatio;\\\\nuniform vec4 highlightId;\\\\n\\\\nvarying vec4 interpColor;\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    float scale = pixelRatio;\\\\n    if(distance(highlightId.bgr, id.bgr) < 0.001) {\\\\n      scale *= highlightScale;\\\\n    }\\\\n\\\\n    vec4 worldPosition = model * vec4(position, 1.0);\\\\n    vec4 viewPosition = view * worldPosition;\\\\n    vec4 clipPosition = projection * viewPosition;\\\\n    clipPosition /= clipPosition.w;\\\\n\\\\n    gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\\\\n    interpColor = color;\\\\n    pickId = id;\\\\n    dataCoordinate = position;\\\\n  }\\\\n}\\\"]),s=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nattribute vec3 position;\\\\nattribute vec4 color;\\\\nattribute vec2 glyph;\\\\nattribute vec4 id;\\\\n\\\\nuniform float highlightScale;\\\\nuniform vec4 highlightId;\\\\nuniform vec3 axes[2];\\\\nuniform mat4 model, view, projection;\\\\nuniform vec2 screenSize;\\\\nuniform vec3 clipBounds[2];\\\\nuniform float scale, pixelRatio;\\\\n\\\\nvarying vec4 interpColor;\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\\\n\\\\n    gl_Position = vec4(0,0,0,0);\\\\n  } else {\\\\n    float lscale = pixelRatio * scale;\\\\n    if(distance(highlightId, id) < 0.0001) {\\\\n      lscale *= highlightScale;\\\\n    }\\\\n\\\\n    vec4 clipCenter   = projection * view * model * vec4(position, 1);\\\\n    vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\\\\n    vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\\\\n\\\\n    gl_Position = clipPosition;\\\\n    interpColor = color;\\\\n    pickId = id;\\\\n    dataCoordinate = dataPosition;\\\\n  }\\\\n}\\\\n\\\"]),l=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 fragClipBounds[2];\\\\nuniform float opacity;\\\\n\\\\nvarying vec4 interpColor;\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\\\n\\\\n  gl_FragColor = interpColor * opacity;\\\\n}\\\\n\\\"]),c=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 fragClipBounds[2];\\\\nuniform float pickGroup;\\\\n\\\\nvarying vec4 pickId;\\\\nvarying vec3 dataCoordinate;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickGroup, pickId.bgr);\\\\n}\\\"]),u=[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"glyph\\\",type:\\\"vec2\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"}],f={vertex:a,fragment:l,attributes:u},h={vertex:o,fragment:l,attributes:u},p={vertex:s,fragment:l,attributes:u},d={vertex:a,fragment:c,attributes:u},g={vertex:o,fragment:c,attributes:u},v={vertex:s,fragment:c,attributes:u};function m(t,e){var r=n(t,e),i=r.attributes;return i.position.location=0,i.color.location=1,i.glyph.location=2,i.id.location=3,r}r.createPerspective=function(t){return m(t,f)},r.createOrtho=function(t){return m(t,h)},r.createProject=function(t){return m(t,p)},r.createPickPerspective=function(t){return m(t,d)},r.createPickOrtho=function(t){return m(t,g)},r.createPickProject=function(t){return m(t,v)}},{\\\"gl-shader\\\":288,glslify:392}],284:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"is-string-blank\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"typedarray-pool\\\"),s=t(\\\"gl-mat4/multiply\\\"),l=t(\\\"./lib/shaders\\\"),c=t(\\\"./lib/glyphs\\\"),u=t(\\\"./lib/get-simple-string\\\"),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,t[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,t[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,t[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,t}function p(t,e,r,n){return h(n,n),h(n,n),h(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function g(t,e,r,n,i,a,o,s,l,c,u,f){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=i,this.colorBuffer=a,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.pickId=0,this.pickPerspectiveShader=c,this.pickOrthoShader=u,this.pickProjectShader=f,this.points=[],this._selectResult=new d(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}e.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),c=l.createPickOrtho(e),u=l.createPickProject(e),f=i(e),h=i(e),p=i(e),d=i(e),v=a(e,[{buffer:f,size:3,type:e.FLOAT},{buffer:h,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),m=new g(e,r,n,o,f,h,p,d,v,s,c,u);return m.update(t),m};var v=g.prototype;v.pickSlots=1,v.setPickBase=function(t){this.pickId=t},v.isTransparent=function(){if(this.opacity<1)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectOpacity[t]<1)return!0;return!1},v.isOpaque=function(){if(this.opacity>=1)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectOpacity[t]>=1)return!0;return!1};var m=[0,0],y=[0,0,0],x=[0,0,0],b=[0,0,0,1],_=[0,0,0,1],w=f.slice(),k=[0,0,0],M=[[0,0,0],[0,0,0]];function A(t){return t[0]=t[1]=t[2]=0,t}function T(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function S(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}function E(t,e,r,n,i){var a,o=e.axesProject,l=e.gl,c=t.uniforms,u=r.model||f,h=r.view||f,d=r.projection||f,g=e.axesBounds,v=function(t){for(var e=M,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);a=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],m[0]=2/l.drawingBufferWidth,m[1]=2/l.drawingBufferHeight,t.bind(),c.view=h,c.projection=d,c.screenSize=m,c.highlightId=e.highlightId,c.highlightScale=e.highlightScale,c.clipBounds=v,c.pickGroup=e.pickId/255,c.pixelRatio=e.pixelRatio;for(var E=0;E<3;++E)if(o[E]&&e.projectOpacity[E]<1===n){c.scale=e.projectScale[E],c.opacity=e.projectOpacity[E];for(var C=w,L=0;L<16;++L)C[L]=0;for(L=0;L<4;++L)C[5*L]=1;C[5*E]=0,a[E]<0?C[12+E]=g[0][E]:C[12+E]=g[1][E],s(C,u,C),c.model=C;var z=(E+1)%3,O=(E+2)%3,I=A(y),P=A(x);I[z]=1,P[O]=1;var D=p(0,0,0,T(b,I)),R=p(0,0,0,T(_,P));if(Math.abs(D[1])>Math.abs(R[1])){var B=D;D=R,R=B,B=I,I=P,P=B;var F=z;z=O,O=F}D[0]<0&&(I[z]=-1),R[1]>0&&(P[O]=-1);var N=0,j=0;for(L=0;L<4;++L)N+=Math.pow(u[4*z+L],2),j+=Math.pow(u[4*O+L],2);I[z]/=Math.sqrt(N),P[O]/=Math.sqrt(j),c.axes[0]=I,c.axes[1]=P,c.fragClipBounds[0]=S(k,v[0],E,-1e8),c.fragClipBounds[1]=S(k,v[1],E,1e8),e.vao.draw(l.TRIANGLES,e.vertexCount),e.lineWidth>0&&(l.lineWidth(e.lineWidth),e.vao.draw(l.LINES,e.lineVertexCount,e.vertexCount))}}var C=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function L(t,e,r,n,i,a){var o=r.gl;if(r.vao.bind(),i===r.opacity<1||a){t.bind();var s=t.uniforms;s.model=n.model||f,s.view=n.view||f,s.projection=n.projection||f,m[0]=2/o.drawingBufferWidth,m[1]=2/o.drawingBufferHeight,s.screenSize=m,s.highlightId=r.highlightId,s.highlightScale=r.highlightScale,s.fragClipBounds=C,s.clipBounds=r.axes.bounds,s.opacity=r.opacity,s.pickGroup=r.pickId/255,s.pixelRatio=r.pixelRatio,r.vao.draw(o.TRIANGLES,r.vertexCount),r.lineWidth>0&&(o.lineWidth(r.lineWidth),r.vao.draw(o.LINES,r.lineVertexCount,r.vertexCount))}E(e,r,n,i),r.vao.unbind()}function z(t,e,r){var i;i=Array.isArray(t)?e<t.length?t[e]:void 0:t,i=u(i);var a=!0;n(i)&&(i=\\\"\\\\u25bc\\\",a=!1);var o=c(i,r);return{mesh:o[0],lines:o[1],bounds:o[2],visible:a}}v.draw=function(t){L(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,!1,!1)},v.drawTransparent=function(t){L(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,!0,!1)},v.drawPick=function(t){L(this.useOrtho?this.pickOrthoShader:this.pickPerspectiveShader,this.pickProjectShader,this,t,!1,!0)},v.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[2]+(t.value[1]<<8)+(t.value[0]<<16);if(e>=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},v.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},v.update=function(t){if(\\\"perspective\\\"in(t=t||{})&&(this.useOrtho=!t.perspective),\\\"orthographic\\\"in t&&(this.useOrtho=!!t.orthographic),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"project\\\"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if(\\\"projectScale\\\"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(\\\"projectOpacity\\\"in t)if(Array.isArray(t.projectOpacity))this.projectOpacity=t.projectOpacity.slice();else{r=+t.projectOpacity;this.projectOpacity=[r,r,r]}\\\"opacity\\\"in t&&(this.opacity=t.opacity),this.dirty=!0;var n=t.position,i=t.font||\\\"normal\\\",a=t.alignment||[0,0],s=[1/0,1/0,1/0],l=[-1/0,-1/0,-1/0],c=t.glyph,u=t.color,f=t.size,h=t.angle,p=t.lineColor,d=-1,g=0,v=0,m=0;if(n.length){m=n.length;t:for(var y=0;y<m;++y){for(var x=n[y],b=0;b<3;++b)if(isNaN(x[b])||!isFinite(x[b]))continue t;var _=(R=z(c,y,i)).mesh,w=R.lines,k=R.bounds;g+=3*_.cells.length,v+=2*w.edges.length}}var M=g+v,A=o.mallocFloat(3*M),T=o.mallocFloat(4*M),S=o.mallocFloat(2*M),E=o.mallocUint32(M);if(M>0){var C=0,L=g,O=[0,0,0,1],I=[0,0,0,1],P=Array.isArray(u)&&Array.isArray(u[0]),D=Array.isArray(p)&&Array.isArray(p[0]);t:for(y=0;y<m;++y){d+=1;for(x=n[y],b=0;b<3;++b){if(isNaN(x[b])||!isFinite(x[b]))continue t;l[b]=Math.max(l[b],x[b]),s[b]=Math.min(s[b],x[b])}_=(R=z(c,y,i)).mesh,w=R.lines,k=R.bounds;var R,B=R.visible;if(B)if(Array.isArray(u)){if(3===(F=P?y<u.length?u[y]:[0,0,0,0]:u).length){for(b=0;b<3;++b)O[b]=F[b];O[3]=1}else if(4===F.length)for(b=0;b<4;++b)O[b]=F[b]}else O[0]=O[1]=O[2]=0,O[3]=1;else O=[1,1,1,0];if(B)if(Array.isArray(p)){var F;if(3===(F=D?y<p.length?p[y]:[0,0,0,0]:p).length){for(b=0;b<3;++b)I[b]=F[b];I[b]=1}else if(4===F.length)for(b=0;b<4;++b)I[b]=F[b]}else I[0]=I[1]=I[2]=0,I[3]=1;else I=[1,1,1,0];var N=.5;B?Array.isArray(f)?N=y<f.length?+f[y]:12:f?N=+f:this.useOrtho&&(N=12):N=0;var j=0;Array.isArray(h)?j=y<h.length?+h[y]:0:h&&(j=+h);var V=Math.cos(j),U=Math.sin(j);for(x=n[y],b=0;b<3;++b)l[b]=Math.max(l[b],x[b]),s[b]=Math.min(s[b],x[b]);var q=[a[0],a[1]];for(b=0;b<2;++b)a[b]>0?q[b]*=1-k[0][b]:a[b]<0&&(q[b]*=1+k[1][b]);var H=_.cells||[],G=_.positions||[];for(b=0;b<H.length;++b)for(var W=H[b],Y=0;Y<3;++Y){for(var X=0;X<3;++X)A[3*C+X]=x[X];for(X=0;X<4;++X)T[4*C+X]=O[X];E[C]=d;var Z=G[W[Y]];S[2*C]=N*(V*Z[0]-U*Z[1]+q[0]),S[2*C+1]=N*(U*Z[0]+V*Z[1]+q[1]),C+=1}for(H=w.edges,G=w.positions,b=0;b<H.length;++b)for(W=H[b],Y=0;Y<2;++Y){for(X=0;X<3;++X)A[3*L+X]=x[X];for(X=0;X<4;++X)T[4*L+X]=I[X];E[L]=d;Z=G[W[Y]];S[2*L]=N*(V*Z[0]-U*Z[1]+q[0]),S[2*L+1]=N*(U*Z[0]+V*Z[1]+q[1]),L+=1}}}this.bounds=[s,l],this.points=n,this.pointCount=n.length,this.vertexCount=g,this.lineVertexCount=v,this.pointBuffer.update(A),this.colorBuffer.update(T),this.glyphBuffer.update(S),this.idBuffer.update(E),o.free(A),o.free(T),o.free(S),o.free(E)},v.dispose=function(){this.shader.dispose(),this.orthoShader.dispose(),this.pickPerspectiveShader.dispose(),this.pickOrthoShader.dispose(),this.vao.dispose(),this.pointBuffer.dispose(),this.colorBuffer.dispose(),this.glyphBuffer.dispose(),this.idBuffer.dispose()}},{\\\"./lib/get-simple-string\\\":281,\\\"./lib/glyphs\\\":282,\\\"./lib/shaders\\\":283,\\\"gl-buffer\\\":230,\\\"gl-mat4/multiply\\\":256,\\\"gl-vao\\\":310,\\\"is-string-blank\\\":406,\\\"typedarray-pool\\\":522}],285:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\");r.boxVertex=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 vertex;\\\\n\\\\nuniform vec2 cornerA, cornerB;\\\\n\\\\nvoid main() {\\\\n  gl_Position = vec4(mix(cornerA, cornerB, vertex), 0, 1);\\\\n}\\\\n\\\"]),r.boxFragment=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform vec4 color;\\\\n\\\\nvoid main() {\\\\n  gl_FragColor = color;\\\\n}\\\\n\\\"])},{glslify:392}],286:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"./lib/shaders\\\");function o(t,e,r){this.plot=t,this.boxBuffer=e,this.boxShader=r,this.enabled=!0,this.selectBox=[1/0,1/0,-1/0,-1/0],this.borderColor=[0,0,0,1],this.innerFill=!1,this.innerColor=[0,0,0,.25],this.outerFill=!0,this.outerColor=[0,0,0,.5],this.borderWidth=10}e.exports=function(t,e){var r=t.gl,s=i(r,[0,0,0,1,1,0,1,1]),l=n(r,a.boxVertex,a.boxFragment),c=new o(t,s,l);return c.update(e),t.addOverlay(c),c};var s=o.prototype;s.draw=function(){if(this.enabled){var t=this.plot,e=this.selectBox,r=this.borderWidth,n=(this.innerFill,this.innerColor),i=(this.outerFill,this.outerColor),a=this.borderColor,o=t.box,s=t.screenBox,l=t.dataBox,c=t.viewBox,u=t.pixelRatio,f=(e[0]-l[0])*(c[2]-c[0])/(l[2]-l[0])+c[0],h=(e[1]-l[1])*(c[3]-c[1])/(l[3]-l[1])+c[1],p=(e[2]-l[0])*(c[2]-c[0])/(l[2]-l[0])+c[0],d=(e[3]-l[1])*(c[3]-c[1])/(l[3]-l[1])+c[1];if(f=Math.max(f,c[0]),h=Math.max(h,c[1]),p=Math.min(p,c[2]),d=Math.min(d,c[3]),!(p<f||d<h)){o.bind();var g=s[2]-s[0],v=s[3]-s[1];if(this.outerFill&&(o.drawBox(0,0,g,h,i),o.drawBox(0,h,f,d,i),o.drawBox(0,d,g,v,i),o.drawBox(p,h,g,d,i)),this.innerFill&&o.drawBox(f,h,p,d,n),r>0){var m=r*u;o.drawBox(f-m,h-m,p+m,h+m,a),o.drawBox(f-m,d-m,p+m,d+m,a),o.drawBox(f-m,h-m,f+m,d+m,a),o.drawBox(p-m,h-m,p+m,d+m,a)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},{\\\"./lib/shaders\\\":285,\\\"gl-buffer\\\":230,\\\"gl-shader\\\":288}],287:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=n(t,e),a=i.mallocUint8(e[0]*e[1]*4);return new c(t,r,a)};var n=t(\\\"gl-fbo\\\"),i=t(\\\"typedarray-pool\\\"),a=t(\\\"ndarray\\\"),o=t(\\\"bit-twiddle\\\").nextPow2,s=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"array\\\",{offset:[0,0,1],array:0},{offset:[0,0,2],array:0},{offset:[0,0,3],array:0},\\\"scalar\\\",\\\"scalar\\\",\\\"index\\\"],pre:{body:\\\"{this_closestD2=1e8,this_closestX=-1,this_closestY=-1}\\\",args:[],thisVars:[\\\"this_closestD2\\\",\\\"this_closestX\\\",\\\"this_closestY\\\"],localVars:[]},body:{body:\\\"{if(_inline_16_arg0_<255||_inline_16_arg1_<255||_inline_16_arg2_<255||_inline_16_arg3_<255){var _inline_16_l=_inline_16_arg4_-_inline_16_arg6_[0],_inline_16_a=_inline_16_arg5_-_inline_16_arg6_[1],_inline_16_f=_inline_16_l*_inline_16_l+_inline_16_a*_inline_16_a;_inline_16_f<this_closestD2&&(this_closestD2=_inline_16_f,this_closestX=_inline_16_arg6_[0],this_closestY=_inline_16_arg6_[1])}}\\\",args:[{name:\\\"_inline_16_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg1_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg4_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg5_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_16_arg6_\\\",lvalue:!1,rvalue:!0,count:4}],thisVars:[\\\"this_closestD2\\\",\\\"this_closestX\\\",\\\"this_closestY\\\"],localVars:[\\\"_inline_16_a\\\",\\\"_inline_16_f\\\",\\\"_inline_16_l\\\"]},post:{body:\\\"{return[this_closestX,this_closestY,this_closestD2]}\\\",args:[],thisVars:[\\\"this_closestD2\\\",\\\"this_closestX\\\",\\\"this_closestY\\\"],localVars:[]},debug:!1,funcName:\\\"cwise\\\",blockSize:64});function l(t,e,r,n,i){this.coord=[t,e],this.id=r,this.value=n,this.distance=i}function c(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var u=c.prototype;Object.defineProperty(u,\\\"shape\\\",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){i.free(this.buffer);for(var n=this.buffer=i.mallocUint8(o(r*e*4)),a=0;a<r*e*4;++a)n[a]=255}return t}}}),u.begin=function(){var t=this.gl;this.shape;t&&(this.fbo.bind(),t.clearColor(1,1,1,1),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT))},u.end=function(){var t=this.gl;t&&(t.bindFramebuffer(t.FRAMEBUFFER,null),this._readTimeout||clearTimeout(this._readTimeout),this._readTimeout=setTimeout(this._readCallback,1))},u.query=function(t,e,r){if(!this.gl)return null;var n=this.fbo.shape.slice();t|=0,e|=0,\\\"number\\\"!=typeof r&&(r=1);var i=0|Math.min(Math.max(t-r,0),n[0]),o=0|Math.min(Math.max(t+r,0),n[0]),c=0|Math.min(Math.max(e-r,0),n[1]),u=0|Math.min(Math.max(e+r,0),n[1]);if(o<=i||u<=c)return null;var f=[o-i,u-c],h=a(this.buffer,[f[0],f[1],4],[4,4*n[0],1],4*(i+n[0]*c)),p=s(h.hi(f[0],f[1],1),r,r),d=p[0],g=p[1];return d<0||Math.pow(this.radius,2)<p[2]?null:new l(d+i|0,g+c|0,h.get(d,g,0),[h.get(d,g,1),h.get(d,g,2),h.get(d,g,3)],Math.sqrt(p[2]))},u.dispose=function(){this.gl&&(this.fbo.dispose(),i.free(this.buffer),this.gl=null,this._readTimeout&&clearTimeout(this._readTimeout))}},{\\\"bit-twiddle\\\":80,\\\"cwise/lib/wrapper\\\":137,\\\"gl-fbo\\\":239,ndarray:433,\\\"typedarray-pool\\\":522}],288:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/create-uniforms\\\"),i=t(\\\"./lib/create-attributes\\\"),a=t(\\\"./lib/reflect\\\"),o=t(\\\"./lib/shader-cache\\\"),s=t(\\\"./lib/runtime-reflect\\\"),l=t(\\\"./lib/GLError\\\");function c(t){this.gl=t,this.gl.lastAttribCount=0,this._vref=this._fref=this._relink=this.vertShader=this.fragShader=this.program=this.attributes=this.uniforms=this.types=null}var u=c.prototype;function f(t,e){return t.name<e.name?-1:1}u.bind=function(){var t;this.program||this._relink();var e=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_ATTRIBUTES),r=this.gl.lastAttribCount;if(e>r)for(t=r;t<e;t++)this.gl.enableVertexAttribArray(t);else if(r>e)for(t=e;t<r;t++)this.gl.disableVertexAttribArray(t);this.gl.lastAttribCount=e,this.gl.useProgram(this.program)},u.dispose=function(){for(var t=this.gl.lastAttribCount,e=0;e<t;e++)this.gl.disableVertexAttribArray(e);this.gl.lastAttribCount=0,this._fref&&this._fref.dispose(),this._vref&&this._vref.dispose(),this.attributes=this.types=this.vertShader=this.fragShader=this.program=this._relink=this._fref=this._vref=null},u.update=function(t,e,r,c){if(!e||1===arguments.length){var u=t;t=u.vertex,e=u.fragment,r=u.uniforms,c=u.attributes}var h=this,p=h.gl,d=h._vref;h._vref=o.shader(p,p.VERTEX_SHADER,t),d&&d.dispose(),h.vertShader=h._vref.shader;var g=this._fref;if(h._fref=o.shader(p,p.FRAGMENT_SHADER,e),g&&g.dispose(),h.fragShader=h._fref.shader,!r||!c){var v=p.createProgram();if(p.attachShader(v,h.fragShader),p.attachShader(v,h.vertShader),p.linkProgram(v),!p.getProgramParameter(v,p.LINK_STATUS)){var m=p.getProgramInfoLog(v);throw new l(m,\\\"Error linking program:\\\"+m)}r=r||s.uniforms(p,v),c=c||s.attributes(p,v),p.deleteProgram(v)}(c=c.slice()).sort(f);var y,x=[],b=[],_=[];for(y=0;y<c.length;++y){var w=c[y];if(w.type.indexOf(\\\"mat\\\")>=0){for(var k=0|w.type.charAt(w.type.length-1),M=new Array(k),A=0;A<k;++A)M[A]=_.length,b.push(w.name+\\\"[\\\"+A+\\\"]\\\"),\\\"number\\\"==typeof w.location?_.push(w.location+A):Array.isArray(w.location)&&w.location.length===k&&\\\"number\\\"==typeof w.location[A]?_.push(0|w.location[A]):_.push(-1);x.push({name:w.name,type:w.type,locations:M})}else x.push({name:w.name,type:w.type,locations:[_.length]}),b.push(w.name),\\\"number\\\"==typeof w.location?_.push(0|w.location):_.push(-1)}var T=0;for(y=0;y<_.length;++y)if(_[y]<0){for(;_.indexOf(T)>=0;)T+=1;_[y]=T}var S=new Array(r.length);function E(){h.program=o.program(p,h._vref,h._fref,b,_);for(var t=0;t<r.length;++t)S[t]=p.getUniformLocation(h.program,r[t].name)}E(),h._relink=E,h.types={uniforms:a(r),attributes:a(c)},h.attributes=i(p,h,x,_),Object.defineProperty(h,\\\"uniforms\\\",n(p,h,r,S))},e.exports=function(t,e,r,n,i){var a=new c(t);return a.update(e,r,n,i),a}},{\\\"./lib/GLError\\\":289,\\\"./lib/create-attributes\\\":290,\\\"./lib/create-uniforms\\\":291,\\\"./lib/reflect\\\":292,\\\"./lib/runtime-reflect\\\":293,\\\"./lib/shader-cache\\\":294}],289:[function(t,e,r){function n(t,e,r){this.shortMessage=e||\\\"\\\",this.longMessage=r||\\\"\\\",this.rawError=t||\\\"\\\",this.message=\\\"gl-shader: \\\"+(e||t||\\\"\\\")+(r?\\\"\\\\n\\\"+r:\\\"\\\"),this.stack=(new Error).stack}n.prototype=new Error,n.prototype.name=\\\"GLError\\\",n.prototype.constructor=n,e.exports=n},{}],290:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,i){for(var a={},l=0,c=r.length;l<c;++l){var u=r[l],f=u.name,h=u.type,p=u.locations;switch(h){case\\\"bool\\\":case\\\"int\\\":case\\\"float\\\":o(t,e,p[0],i,1,a,f);break;default:if(h.indexOf(\\\"vec\\\")>=0){var d=h.charCodeAt(h.length-1)-48;if(d<2||d>4)throw new n(\\\"\\\",\\\"Invalid data type for attribute \\\"+f+\\\": \\\"+h);o(t,e,p[0],i,d,a,f)}else{if(!(h.indexOf(\\\"mat\\\")>=0))throw new n(\\\"\\\",\\\"Unknown data type for attribute \\\"+f+\\\": \\\"+h);var d=h.charCodeAt(h.length-1)-48;if(d<2||d>4)throw new n(\\\"\\\",\\\"Invalid data type for attribute \\\"+f+\\\": \\\"+h);s(t,e,p,i,d,a,f)}}}return a};var n=t(\\\"./GLError\\\");function i(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var a=i.prototype;function o(t,e,r,n,a,o,s){for(var l=[\\\"gl\\\",\\\"v\\\"],c=[],u=0;u<a;++u)l.push(\\\"x\\\"+u),c.push(\\\"x\\\"+u);l.push(\\\"if(x0.length===void 0){return gl.vertexAttrib\\\"+a+\\\"f(v,\\\"+c.join()+\\\")}else{return gl.vertexAttrib\\\"+a+\\\"fv(v,x0)}\\\");var f=Function.apply(null,l),h=new i(t,e,r,n,a,f);Object.defineProperty(o,s,{set:function(e){return t.disableVertexAttribArray(n[r]),f(t,n[r],e),e},get:function(){return h},enumerable:!0})}function s(t,e,r,n,i,a,s){for(var l=new Array(i),c=new Array(i),u=0;u<i;++u)o(t,e,r[u],n,i,l,u),c[u]=l[u];Object.defineProperty(l,\\\"location\\\",{set:function(t){if(Array.isArray(t))for(var e=0;e<i;++e)c[e].location=t[e];else for(e=0;e<i;++e)c[e].location=t+e;return t},get:function(){for(var t=new Array(i),e=0;e<i;++e)t[e]=n[r[e]];return t},enumerable:!0}),l.pointer=function(e,a,o,s){e=e||t.FLOAT,a=!!a,o=o||i*i,s=s||0;for(var l=0;l<i;++l){var c=n[r[l]];t.vertexAttribPointer(c,i,e,a,o,s+l*i),t.enableVertexAttribArray(c)}};var f=new Array(i),h=t[\\\"vertexAttrib\\\"+i+\\\"fv\\\"];Object.defineProperty(a,s,{set:function(e){for(var a=0;a<i;++a){var o=n[r[a]];if(t.disableVertexAttribArray(o),Array.isArray(e[0]))h.call(t,o,e[a]);else{for(var s=0;s<i;++s)f[s]=e[i*a+s];h.call(t,o,f)}}return e},get:function(){return l},enumerable:!0})}a.pointer=function(t,e,r,n){var i=this._gl,a=this._locations[this._index];i.vertexAttribPointer(a,this._dimension,t||i.FLOAT,!!e,r||0,n||0),i.enableVertexAttribArray(a)},a.set=function(t,e,r,n){return this._constFunc(this._locations[this._index],t,e,r,n)},Object.defineProperty(a,\\\"location\\\",{get:function(){return this._locations[this._index]},set:function(t){return t!==this._locations[this._index]&&(this._locations[this._index]=0|t,this._wrapper.program=null),0|t}})},{\\\"./GLError\\\":289}],291:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./reflect\\\"),i=t(\\\"./GLError\\\");function a(t){return new Function(\\\"y\\\",\\\"return function(){return y}\\\")(t)}function o(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=e;return r}e.exports=function(t,e,r,s){function l(t,e,r){switch(r){case\\\"bool\\\":case\\\"int\\\":case\\\"sampler2D\\\":case\\\"samplerCube\\\":return\\\"gl.uniform1i(locations[\\\"+e+\\\"],obj\\\"+t+\\\")\\\";case\\\"float\\\":return\\\"gl.uniform1f(locations[\\\"+e+\\\"],obj\\\"+t+\\\")\\\";default:var n=r.indexOf(\\\"vec\\\");if(!(0<=n&&n<=1&&r.length===4+n)){if(0===r.indexOf(\\\"mat\\\")&&4===r.length){var a=r.charCodeAt(r.length-1)-48;if(a<2||a>4)throw new i(\\\"\\\",\\\"Invalid uniform dimension type for matrix \\\"+name+\\\": \\\"+r);return\\\"gl.uniformMatrix\\\"+a+\\\"fv(locations[\\\"+e+\\\"],false,obj\\\"+t+\\\")\\\"}throw new i(\\\"\\\",\\\"Unknown uniform data type for \\\"+name+\\\": \\\"+r)}var a=r.charCodeAt(r.length-1)-48;if(a<2||a>4)throw new i(\\\"\\\",\\\"Invalid data type\\\");switch(r.charAt(0)){case\\\"b\\\":case\\\"i\\\":return\\\"gl.uniform\\\"+a+\\\"iv(locations[\\\"+e+\\\"],obj\\\"+t+\\\")\\\";case\\\"v\\\":return\\\"gl.uniform\\\"+a+\\\"fv(locations[\\\"+e+\\\"],obj\\\"+t+\\\")\\\";default:throw new i(\\\"\\\",\\\"Unrecognized data type for vector \\\"+name+\\\": \\\"+r)}}}function c(e){for(var n=[\\\"return function updateProperty(obj){\\\"],i=function t(e,r){if(\\\"object\\\"!=typeof r)return[[e,r]];var n=[];for(var i in r){var a=r[i],o=e;parseInt(i)+\\\"\\\"===i?o+=\\\"[\\\"+i+\\\"]\\\":o+=\\\".\\\"+i,\\\"object\\\"==typeof a?n.push.apply(n,t(o,a)):n.push([o,a])}return n}(\\\"\\\",e),a=0;a<i.length;++a){var o=i[a],c=o[0],u=o[1];s[u]&&n.push(l(c,u,r[u].type))}n.push(\\\"return obj}\\\");var f=new Function(\\\"gl\\\",\\\"locations\\\",n.join(\\\"\\\\n\\\"));return f(t,s)}function u(n,l,u){if(\\\"object\\\"==typeof u){var h=f(u);Object.defineProperty(n,l,{get:a(h),set:c(u),enumerable:!0,configurable:!1})}else s[u]?Object.defineProperty(n,l,{get:(p=u,new Function(\\\"gl\\\",\\\"wrapper\\\",\\\"locations\\\",\\\"return function(){return gl.getUniform(wrapper.program,locations[\\\"+p+\\\"])}\\\")(t,e,s)),set:c(u),enumerable:!0,configurable:!1}):n[l]=function(t){switch(t){case\\\"bool\\\":return!1;case\\\"int\\\":case\\\"sampler2D\\\":case\\\"samplerCube\\\":case\\\"float\\\":return 0;default:var e=t.indexOf(\\\"vec\\\");if(0<=e&&e<=1&&t.length===4+e){var r=t.charCodeAt(t.length-1)-48;if(r<2||r>4)throw new i(\\\"\\\",\\\"Invalid data type\\\");return\\\"b\\\"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf(\\\"mat\\\")&&4===t.length){var r=t.charCodeAt(t.length-1)-48;if(r<2||r>4)throw new i(\\\"\\\",\\\"Invalid uniform dimension type for matrix \\\"+name+\\\": \\\"+t);return o(r*r,0)}throw new i(\\\"\\\",\\\"Unknown uniform data type for \\\"+name+\\\": \\\"+t)}}(r[u].type);var p}function f(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r<t.length;++r)u(e,r,t[r])}else for(var n in e={},t)u(e,n,t[n]);return e}var h=n(r,!0);return{get:a(f(h)),set:c(h),enumerable:!0,configurable:!0}}},{\\\"./GLError\\\":289,\\\"./reflect\\\":292}],292:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r={},n=0;n<t.length;++n)for(var i=t[n].name,a=i.split(\\\".\\\"),o=r,s=0;s<a.length;++s){var l=a[s].split(\\\"[\\\");if(l.length>1){l[0]in o||(o[l[0]]=[]),o=o[l[0]];for(var c=1;c<l.length;++c){var u=parseInt(l[c]);c<l.length-1||s<a.length-1?(u in o||(c<l.length-1?o[u]=[]:o[u]={}),o=o[u]):o[u]=e?n:t[n].type}}else s<a.length-1?(l[0]in o||(o[l[0]]={}),o=o[l[0]]):o[l[0]]=e?n:t[n].type}return r}},{}],293:[function(t,e,r){\\\"use strict\\\";r.uniforms=function(t,e){for(var r=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),n=[],i=0;i<r;++i){var o=t.getActiveUniform(e,i);if(o){var s=a(t,o.type);if(o.size>1)for(var l=0;l<o.size;++l)n.push({name:o.name.replace(\\\"[0]\\\",\\\"[\\\"+l+\\\"]\\\"),type:s});else n.push({name:o.name,type:s})}}return n},r.attributes=function(t,e){for(var r=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES),n=[],i=0;i<r;++i){var o=t.getActiveAttrib(e,i);o&&n.push({name:o.name,type:a(t,o.type)})}return n};var n={FLOAT:\\\"float\\\",FLOAT_VEC2:\\\"vec2\\\",FLOAT_VEC3:\\\"vec3\\\",FLOAT_VEC4:\\\"vec4\\\",INT:\\\"int\\\",INT_VEC2:\\\"ivec2\\\",INT_VEC3:\\\"ivec3\\\",INT_VEC4:\\\"ivec4\\\",BOOL:\\\"bool\\\",BOOL_VEC2:\\\"bvec2\\\",BOOL_VEC3:\\\"bvec3\\\",BOOL_VEC4:\\\"bvec4\\\",FLOAT_MAT2:\\\"mat2\\\",FLOAT_MAT3:\\\"mat3\\\",FLOAT_MAT4:\\\"mat4\\\",SAMPLER_2D:\\\"sampler2D\\\",SAMPLER_CUBE:\\\"samplerCube\\\"},i=null;function a(t,e){if(!i){var r=Object.keys(n);i={};for(var a=0;a<r.length;++a){var o=r[a];i[t[o]]=n[o]}}return i[e]}},{}],294:[function(t,e,r){\\\"use strict\\\";r.shader=function(t,e,r){return u(t).getShaderReference(e,r)},r.program=function(t,e,r,n,i){return u(t).getProgram(e,r,n,i)};var n=t(\\\"./GLError\\\"),i=t(\\\"gl-format-compiler-error\\\"),a=new(\\\"undefined\\\"==typeof WeakMap?t(\\\"weakmap-shim\\\"):WeakMap),o=0;function s(t,e,r,n,i,a,o){this.id=t,this.src=e,this.type=r,this.shader=n,this.count=a,this.programs=[],this.cache=o}function l(t){this.gl=t,this.shaders=[{},{}],this.programs={}}s.prototype.dispose=function(){if(0==--this.count){for(var t=this.cache,e=t.gl,r=this.programs,n=0,i=r.length;n<i;++n){var a=t.programs[r[n]];a&&(delete t.programs[n],e.deleteProgram(a))}e.deleteShader(this.shader),delete t.shaders[this.type===e.FRAGMENT_SHADER|0][this.src]}};var c=l.prototype;function u(t){var e=a.get(t);return e||(e=new l(t),a.set(t,e)),e}c.getShaderReference=function(t,e){var r=this.gl,a=this.shaders[t===r.FRAGMENT_SHADER|0],l=a[e];if(l&&r.isShader(l.shader))l.count+=1;else{var c=function(t,e,r){var a=t.createShader(e);if(t.shaderSource(a,r),t.compileShader(a),!t.getShaderParameter(a,t.COMPILE_STATUS)){var o=t.getShaderInfoLog(a);try{var s=i(o,r,e)}catch(t){throw console.warn(\\\"Failed to format compiler error: \\\"+t),new n(o,\\\"Error compiling shader:\\\\n\\\"+o)}throw new n(o,s.short,s.long)}return a}(r,t,e);l=a[e]=new s(o++,e,t,c,[],1,this)}return l},c.getProgram=function(t,e,r,i){var a=[t.id,e.id,r.join(\\\":\\\"),i.join(\\\":\\\")].join(\\\"@\\\"),o=this.programs[a];return o&&this.gl.isProgram(o)||(this.programs[a]=o=function(t,e,r,i,a){var o=t.createProgram();t.attachShader(o,e),t.attachShader(o,r);for(var s=0;s<i.length;++s)t.bindAttribLocation(o,a[s],i[s]);if(t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS)){var l=t.getProgramInfoLog(o);throw new n(l,\\\"Error linking program: \\\"+l)}return o}(this.gl,t.shader,e.shader,r,i),t.programs.push(a),e.programs.push(a)),o}},{\\\"./GLError\\\":289,\\\"gl-format-compiler-error\\\":240,\\\"weakmap-shim\\\":532}],295:[function(t,e,r){\\\"use strict\\\";function n(t){this.plot=t,this.enable=[!0,!0,!1,!1],this.width=[1,1,1,1],this.color=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.center=[1/0,1/0]}e.exports=function(t,e){var r=new n(t);return r.update(e),t.addOverlay(r),r};var i=n.prototype;i.update=function(t){t=t||{},this.enable=(t.enable||[!0,!0,!1,!1]).slice(),this.width=(t.width||[1,1,1,1]).slice(),this.color=(t.color||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]).map(function(t){return t.slice()}),this.center=(t.center||[1/0,1/0]).slice(),this.plot.setOverlayDirty()},i.draw=function(){var t=this.enable,e=this.width,r=this.color,n=this.center,i=this.plot,a=i.line,o=i.dataBox,s=i.viewBox;if(a.bind(),o[0]<=n[0]&&n[0]<=o[2]&&o[1]<=n[1]&&n[1]<=o[3]){var l=s[0]+(n[0]-o[0])/(o[2]-o[0])*(s[2]-s[0]),c=s[1]+(n[1]-o[1])/(o[3]-o[1])*(s[3]-s[1]);t[0]&&a.drawLine(l,c,s[0],c,e[0],r[0]),t[1]&&a.drawLine(l,c,l,s[1],e[1],r[1]),t[2]&&a.drawLine(l,c,s[2],c,e[2],r[2]),t[3]&&a.drawLine(l,c,l,s[3],e[3],r[3])}},i.dispose=function(){this.plot.removeOverlay(this)}},{}],296:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=t(\\\"gl-shader\\\"),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec3 position, color;\\\\nattribute float weight;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform vec3 coordinates[3];\\\\nuniform vec4 colors[3];\\\\nuniform vec2 screenShape;\\\\nuniform float lineWidth;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  vec3 vertexPosition = mix(coordinates[0],\\\\n    mix(coordinates[2], coordinates[1], 0.5 * (position + 1.0)), abs(position));\\\\n\\\\n  vec4 clipPos = projection * view * model * vec4(vertexPosition, 1.0);\\\\n  vec2 clipOffset = (projection * view * model * vec4(color, 0.0)).xy;\\\\n  vec2 delta = weight * clipOffset * screenShape;\\\\n  vec2 lineOffset = normalize(vec2(delta.y, -delta.x)) / screenShape;\\\\n\\\\n  gl_Position   = vec4(clipPos.xy + clipPos.w * 0.5 * lineWidth * lineOffset, clipPos.z, clipPos.w);\\\\n  fragColor     = color.x * colors[0] + color.y * colors[1] + color.z * colors[2];\\\\n}\\\\n\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n  gl_FragColor = fragColor;\\\\n}\\\"]);e.exports=function(t){return i(t,a,o,null,[{name:\\\"position\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec3\\\"},{name:\\\"weight\\\",type:\\\"float\\\"}])}},{\\\"gl-shader\\\":288,glslify:392}],297:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-buffer\\\"),i=t(\\\"gl-vao\\\"),a=t(\\\"./shaders/index\\\");e.exports=function(t,e){var r=[];function o(t,e,n,i,a,o){var s=[t,e,n,0,0,0,1];s[i+3]=1,s[i]=a,r.push.apply(r,s),s[6]=-1,r.push.apply(r,s),s[i]=o,r.push.apply(r,s),r.push.apply(r,s),s[6]=1,r.push.apply(r,s),s[i]=a,r.push.apply(r,s)}o(0,0,0,0,0,1),o(0,0,0,1,0,1),o(0,0,0,2,0,1),o(1,0,0,1,-1,1),o(1,0,0,2,-1,1),o(0,1,0,0,-1,1),o(0,1,0,2,-1,1),o(0,0,1,0,-1,1),o(0,0,1,1,-1,1);var l=n(t,r),c=i(t,[{type:t.FLOAT,buffer:l,size:3,offset:0,stride:28},{type:t.FLOAT,buffer:l,size:3,offset:12,stride:28},{type:t.FLOAT,buffer:l,size:1,offset:24,stride:28}]),u=a(t);u.attributes.position.location=0,u.attributes.color.location=1,u.attributes.weight.location=2;var f=new s(t,l,c,u);return f.update(e),f};var o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n,this.pixelRatio=1,this.bounds=[[-1e3,-1e3,-1e3],[1e3,1e3,1e3]],this.position=[0,0,0],this.lineWidth=[2,2,2],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.enabled=[!0,!0,!0],this.drawSides=[!0,!0,!0],this.axes=null}var l=s.prototype,c=[0,0,0],u=[0,0,0],f=[0,0];l.isTransparent=function(){return!1},l.drawTransparent=function(t){},l.draw=function(t){var e=this.gl,r=this.vao,n=this.shader;r.bind(),n.bind();var i,a=t.model||o,s=t.view||o,l=t.projection||o;this.axes&&(i=this.axes.lastCubeProps.axis);for(var h=c,p=u,d=0;d<3;++d)i&&i[d]<0?(h[d]=this.bounds[0][d],p[d]=this.bounds[1][d]):(h[d]=this.bounds[1][d],p[d]=this.bounds[0][d]);f[0]=e.drawingBufferWidth,f[1]=e.drawingBufferHeight,n.uniforms.model=a,n.uniforms.view=s,n.uniforms.projection=l,n.uniforms.coordinates=[this.position,h,p],n.uniforms.colors=this.colors,n.uniforms.screenShape=f;for(d=0;d<3;++d)n.uniforms.lineWidth=this.lineWidth[d]*this.pixelRatio,this.enabled[d]&&(r.draw(e.TRIANGLES,6,6*d),this.drawSides[d]&&r.draw(e.TRIANGLES,12,18+12*d));r.unbind()},l.update=function(t){t&&(\\\"bounds\\\"in t&&(this.bounds=t.bounds),\\\"position\\\"in t&&(this.position=t.position),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"colors\\\"in t&&(this.colors=t.colors),\\\"enabled\\\"in t&&(this.enabled=t.enabled),\\\"drawSides\\\"in t&&(this.drawSides=t.drawSides))},l.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{\\\"./shaders/index\\\":296,\\\"gl-buffer\\\":230,\\\"gl-vao\\\":310}],298:[function(t,e,r){arguments[4][232][0].apply(r,arguments)},{barycentric:61,dup:232,\\\"polytope-closest-point/lib/closest_point_2d.js\\\":464}],299:[function(t,e,r){var n=t(\\\"glslify\\\"),i=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat inverse(float m) {\\\\n  return 1.0 / m;\\\\n}\\\\n\\\\nmat2 inverse(mat2 m) {\\\\n  return mat2(m[1][1],-m[0][1],\\\\n             -m[1][0], m[0][0]) / (m[0][0]*m[1][1] - m[0][1]*m[1][0]);\\\\n}\\\\n\\\\nmat3 inverse(mat3 m) {\\\\n  float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2];\\\\n  float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2];\\\\n  float a20 = m[2][0], a21 = m[2][1], a22 = m[2][2];\\\\n\\\\n  float b01 = a22 * a11 - a12 * a21;\\\\n  float b11 = -a22 * a10 + a12 * a20;\\\\n  float b21 = a21 * a10 - a11 * a20;\\\\n\\\\n  float det = a00 * b01 + a01 * b11 + a02 * b21;\\\\n\\\\n  return mat3(b01, (-a22 * a01 + a02 * a21), (a12 * a01 - a02 * a11),\\\\n              b11, (a22 * a00 - a02 * a20), (-a12 * a00 + a02 * a10),\\\\n              b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det;\\\\n}\\\\n\\\\nmat4 inverse(mat4 m) {\\\\n  float\\\\n      a00 = m[0][0], a01 = m[0][1], a02 = m[0][2], a03 = m[0][3],\\\\n      a10 = m[1][0], a11 = m[1][1], a12 = m[1][2], a13 = m[1][3],\\\\n      a20 = m[2][0], a21 = m[2][1], a22 = m[2][2], a23 = m[2][3],\\\\n      a30 = m[3][0], a31 = m[3][1], a32 = m[3][2], a33 = m[3][3],\\\\n\\\\n      b00 = a00 * a11 - a01 * a10,\\\\n      b01 = a00 * a12 - a02 * a10,\\\\n      b02 = a00 * a13 - a03 * a10,\\\\n      b03 = a01 * a12 - a02 * a11,\\\\n      b04 = a01 * a13 - a03 * a11,\\\\n      b05 = a02 * a13 - a03 * a12,\\\\n      b06 = a20 * a31 - a21 * a30,\\\\n      b07 = a20 * a32 - a22 * a30,\\\\n      b08 = a20 * a33 - a23 * a30,\\\\n      b09 = a21 * a32 - a22 * a31,\\\\n      b10 = a21 * a33 - a23 * a31,\\\\n      b11 = a22 * a33 - a23 * a32,\\\\n\\\\n      det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\\\\n\\\\n  return mat4(\\\\n      a11 * b11 - a12 * b10 + a13 * b09,\\\\n      a02 * b10 - a01 * b11 - a03 * b09,\\\\n      a31 * b05 - a32 * b04 + a33 * b03,\\\\n      a22 * b04 - a21 * b05 - a23 * b03,\\\\n      a12 * b08 - a10 * b11 - a13 * b07,\\\\n      a00 * b11 - a02 * b08 + a03 * b07,\\\\n      a32 * b02 - a30 * b05 - a33 * b01,\\\\n      a20 * b05 - a22 * b02 + a23 * b01,\\\\n      a10 * b10 - a11 * b08 + a13 * b06,\\\\n      a01 * b08 - a00 * b10 - a03 * b06,\\\\n      a30 * b04 - a31 * b02 + a33 * b00,\\\\n      a21 * b02 - a20 * b04 - a23 * b00,\\\\n      a11 * b07 - a10 * b09 - a12 * b06,\\\\n      a00 * b09 - a01 * b07 + a02 * b06,\\\\n      a31 * b01 - a30 * b03 - a32 * b00,\\\\n      a20 * b03 - a21 * b01 + a22 * b00) / det;\\\\n}\\\\n\\\\nvec3 getOrthogonalVector(vec3 v) {\\\\n  // Return up-vector for only-z vector.\\\\n  // 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).\\\\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\\\\n  // Assign z = 0, x = -b, y = a:\\\\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\\\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\\\n    return normalize(vec3(-v.y, v.x, 0.0));\\\\n  } else {\\\\n    return normalize(vec3(0.0, v.z, -v.y));\\\\n  }\\\\n}\\\\n\\\\n// Calculate the tube vertex and normal at the given index.\\\\n//\\\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\\\n//\\\\n// Each tube segment is made up of a ring of vertices.\\\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\\\n// The indexes of tube segments run from 0 to 8.\\\\n//\\\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\\\n  float segmentCount = 8.0;\\\\n\\\\n  float angle = 2.0 * 3.14159 * (index / segmentCount);\\\\n\\\\n  vec3 u = getOrthogonalVector(d);\\\\n  vec3 v = normalize(cross(u, d));\\\\n\\\\n  vec3 x = u * cos(angle) * length(d);\\\\n  vec3 y = v * sin(angle) * length(d);\\\\n  vec3 v3 = x + y;\\\\n\\\\n  normal = normalize(v3);\\\\n\\\\n  return v3;\\\\n}\\\\n\\\\nattribute vec4 vector;\\\\nattribute vec4 color, position;\\\\nattribute vec2 uv;\\\\nuniform float tubeScale;\\\\n\\\\nuniform mat4 model\\\\n           , view\\\\n           , projection;\\\\nuniform vec3 eyePosition\\\\n           , lightPosition;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data\\\\n           , f_position;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n  // Scale the vector magnitude to stay constant with\\\\n  // model & view changes.\\\\n  vec3 normal;\\\\n  vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\\\n  vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\\\n  normal = normalize(normal * inverse(mat3(model)));\\\\n\\\\n  gl_Position      = projection * view * tubePosition;\\\\n  f_color          = color;\\\\n  f_normal         = normal;\\\\n  f_data           = tubePosition.xyz;\\\\n  f_position       = position.xyz;\\\\n  f_eyeDirection   = eyePosition   - tubePosition.xyz;\\\\n  f_lightDirection = lightPosition - tubePosition.xyz;\\\\n  f_uv             = uv;\\\\n}\\\\n\\\"]),a=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat beckmannDistribution(float x, float roughness) {\\\\n  float NdotH = max(x, 0.0001);\\\\n  float cos2Alpha = NdotH * NdotH;\\\\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\\\n  float roughness2 = roughness * roughness;\\\\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\\\n  return exp(tan2Alpha / roughness2) / denom;\\\\n}\\\\n\\\\nfloat cookTorranceSpecular(\\\\n  vec3 lightDirection,\\\\n  vec3 viewDirection,\\\\n  vec3 surfaceNormal,\\\\n  float roughness,\\\\n  float fresnel) {\\\\n\\\\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\\\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\\\n\\\\n  //Half angle vector\\\\n  vec3 H = normalize(lightDirection + viewDirection);\\\\n\\\\n  //Geometric term\\\\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\\\\n  float VdotH = max(dot(viewDirection, H), 0.000001);\\\\n  float LdotH = max(dot(lightDirection, H), 0.000001);\\\\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\\\\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\\\\n  float G = min(1.0, min(G1, G2));\\\\n  \\\\n  //Distribution term\\\\n  float D = beckmannDistribution(NdotH, roughness);\\\\n\\\\n  //Fresnel term\\\\n  float F = pow(1.0 - VdotN, fresnel);\\\\n\\\\n  //Multiply terms and done\\\\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 clipBounds[2];\\\\nuniform float roughness\\\\n            , fresnel\\\\n            , kambient\\\\n            , kdiffuse\\\\n            , kspecular\\\\n            , opacity;\\\\nuniform sampler2D texture;\\\\n\\\\nvarying vec3 f_normal\\\\n           , f_lightDirection\\\\n           , f_eyeDirection\\\\n           , f_data\\\\n           , f_position;\\\\nvarying vec4 f_color;\\\\nvarying vec2 f_uv;\\\\n\\\\nvoid main() {\\\\n\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  vec3 N = normalize(f_normal);\\\\n  vec3 L = normalize(f_lightDirection);\\\\n  vec3 V = normalize(f_eyeDirection);\\\\n\\\\n  if(!gl_FrontFacing) {\\\\n    N = -N;\\\\n  }\\\\n\\\\n  float specular = cookTorranceSpecular(L, V, N, roughness, fresnel);\\\\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\\\n\\\\n  vec4 surfaceColor =  texture2D(texture, f_uv);\\\\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\\\\n\\\\n  gl_FragColor = litColor * opacity;\\\\n}\\\"]),o=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvec3 getOrthogonalVector(vec3 v) {\\\\n  // Return up-vector for only-z vector.\\\\n  // 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).\\\\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\\\\n  // Assign z = 0, x = -b, y = a:\\\\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\\\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\\\n    return normalize(vec3(-v.y, v.x, 0.0));\\\\n  } else {\\\\n    return normalize(vec3(0.0, v.z, -v.y));\\\\n  }\\\\n}\\\\n\\\\n// Calculate the tube vertex and normal at the given index.\\\\n//\\\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\\\n//\\\\n// Each tube segment is made up of a ring of vertices.\\\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\\\n// The indexes of tube segments run from 0 to 8.\\\\n//\\\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\\\n  float segmentCount = 8.0;\\\\n\\\\n  float angle = 2.0 * 3.14159 * (index / segmentCount);\\\\n\\\\n  vec3 u = getOrthogonalVector(d);\\\\n  vec3 v = normalize(cross(u, d));\\\\n\\\\n  vec3 x = u * cos(angle) * length(d);\\\\n  vec3 y = v * sin(angle) * length(d);\\\\n  vec3 v3 = x + y;\\\\n\\\\n  normal = normalize(v3);\\\\n\\\\n  return v3;\\\\n}\\\\n\\\\nattribute vec4 vector;\\\\nattribute vec4 position;\\\\nattribute vec4 id;\\\\n\\\\nuniform mat4 model, view, projection;\\\\nuniform float tubeScale;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  vec3 normal;\\\\n  vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\\\n  vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\\\n\\\\n  gl_Position = projection * view * tubePosition;\\\\n  f_id        = id;\\\\n  f_position  = position.xyz;\\\\n}\\\\n\\\"]),s=n([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3  clipBounds[2];\\\\nuniform float pickId;\\\\n\\\\nvarying vec3 f_position;\\\\nvarying vec4 f_id;\\\\n\\\\nvoid main() {\\\\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\\\n\\\\n  gl_FragColor = vec4(pickId, f_id.xyz);\\\\n}\\\"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:\\\"position\\\",type:\\\"vec4\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"},{name:\\\"color\\\",type:\\\"vec4\\\"},{name:\\\"uv\\\",type:\\\"vec2\\\"},{name:\\\"vector\\\",type:\\\"vec4\\\"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:\\\"position\\\",type:\\\"vec4\\\"},{name:\\\"id\\\",type:\\\"vec4\\\"},{name:\\\"vector\\\",type:\\\"vec4\\\"}]}},{glslify:392}],300:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-shader\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"gl-texture2d\\\"),s=t(\\\"normals\\\"),l=t(\\\"gl-mat4/multiply\\\"),c=t(\\\"gl-mat4/invert\\\"),u=t(\\\"ndarray\\\"),f=t(\\\"colormap\\\"),h=t(\\\"simplicial-complex-contour\\\"),p=t(\\\"typedarray-pool\\\"),d=t(\\\"./shaders\\\"),g=(t(\\\"./closest-point\\\"),d.meshShader),v=d.pickShader,m=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function y(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,v,y,x,b,_,w,k,M,A,T,S,E){this.gl=t,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleVectors=c,this.triangleColors=f,this.triangleNormals=p,this.triangleUVs=h,this.triangleIds=u,this.triangleVAO=d,this.triangleCount=0,this.lineWidth=1,this.edgePositions=g,this.edgeColors=y,this.edgeUVs=x,this.edgeIds=v,this.edgeVAO=b,this.edgeCount=0,this.pointPositions=_,this.pointColors=k,this.pointUVs=M,this.pointSizes=A,this.pointIds=w,this.pointVAO=T,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=S,this.contourVAO=E,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!1,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.tubeScale=1,this._model=m,this._view=m,this._projection=m,this._resolution=[1,1]}var x=y.prototype;function b(t){var e=n(t,v.vertex,v.fragment,null,v.attributes);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.vector.location=5,e}x.isOpaque=function(){return this.opacity>=1},x.isTransparent=function(){return this.opacity<1},x.pickSlots=1,x.setPickBase=function(t){this.pickId=t},x.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l<a;++l)for(var c=r[l],u=0;u<2;++u){var f=c[0];2===c.length&&(f=c[u]);for(var d=n[f][0],g=n[f][1],v=i[f],m=1-v,y=this.positions[d],x=this.positions[g],b=0;b<3;++b)o[s++]=v*y[b]+m*x[b]}this.contourCount=s/3|0,this.contourPositions.update(o.subarray(0,s)),p.free(o)}else this.contourCount=0},x.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,\\\"contourEnable\\\"in t&&(this.contourEnable=t.contourEnable),\\\"contourColor\\\"in t&&(this.contourColor=t.contourColor),\\\"lineWidth\\\"in t&&(this.lineWidth=t.lineWidth),\\\"lightPosition\\\"in t&&(this.lightPosition=t.lightPosition),\\\"opacity\\\"in t&&(this.opacity=t.opacity),\\\"ambient\\\"in t&&(this.ambientLight=t.ambient),\\\"diffuse\\\"in t&&(this.diffuseLight=t.diffuse),\\\"specular\\\"in t&&(this.specularLight=t.specular),\\\"roughness\\\"in t&&(this.roughness=t.roughness),\\\"fresnel\\\"in t&&(this.fresnel=t.fresnel),t.texture?(this.texture.dispose(),this.texture=o(e,t.texture)):t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=f({colormap:t,nshades:256,format:\\\"rgba\\\"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale);var a=[],l=[],c=[],h=[],p=[],d=[],g=[],v=[],m=[],y=[],x=[],b=[],_=[],w=[],k=[];this.cells=r,this.positions=n,this.vectors=i;var M=t.vertexNormals,A=t.cellNormals,T=void 0===t.vertexNormalsEpsilon?1e-6:t.vertexNormalsEpsilon,S=void 0===t.faceNormalsEpsilon?1e-6:t.faceNormalsEpsilon;t.useFacetNormals&&!A&&(A=s.faceNormals(r,n,S)),A||M||(M=s.vertexNormals(r,n,T));var E=t.vertexColors,C=t.cellColors,L=t.meshColor||[1,1,1,1],z=t.vertexUVs,O=t.vertexIntensity,I=t.cellUVs,P=t.cellIntensity,D=1/0,R=-1/0;if(!z&&!I)if(O)if(t.vertexIntensityBounds)D=+t.vertexIntensityBounds[0],R=+t.vertexIntensityBounds[1];else for(var B=0;B<O.length;++B){var F=O[B];D=Math.min(D,F),R=Math.max(R,F)}else if(P)for(B=0;B<P.length;++B){F=P[B];D=Math.min(D,F),R=Math.max(R,F)}else for(B=0;B<n.length;++B){F=n[B][2];D=Math.min(D,F),R=Math.max(R,F)}this.intensity=O||(P?function(t,e,r){for(var n=new Array(e),i=0;i<e;++i)n[i]=0;var a=t.length;for(i=0;i<a;++i)for(var o=t[i],s=0;s<o.length;++s)n[o[s]]=r[i];return n}(r,n.length,P):function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n));var N=t.pointSizes,j=t.pointSize||1;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(B=0;B<n.length;++B)for(var V=n[B],U=0;U<3;++U)!isNaN(V[U])&&isFinite(V[U])&&(this.bounds[0][U]=Math.min(this.bounds[0][U],V[U]),this.bounds[1][U]=Math.max(this.bounds[1][U],V[U]));var q=0,H=0,G=0;t:for(B=0;B<r.length;++B){var W=r[B];switch(W.length){case 1:for(V=n[X=W[0]],U=0;U<3;++U)if(isNaN(V[U])||!isFinite(V[U]))continue t;x.push(V[0],V[1],V[2],V[3]),3===(Z=E?E[X]:C?C[B]:L).length?b.push(Z[0],Z[1],Z[2],1):b.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],_.push($[0],$[1]),N?w.push(N[X]):w.push(j),k.push(B),G+=1;break;case 2:for(U=0;U<2;++U){V=n[X=W[U]];for(var Y=0;Y<3;++Y)if(isNaN(V[Y])||!isFinite(V[Y]))continue t}for(U=0;U<2;++U){V=n[X=W[U]];g.push(V[0],V[1],V[2]),3===(Z=E?E[X]:C?C[B]:L).length?v.push(Z[0],Z[1],Z[2],1):v.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],m.push($[0],$[1]),y.push(B)}H+=1;break;case 3:for(U=0;U<3;++U)for(V=n[X=W[U]],Y=0;Y<3;++Y)if(isNaN(V[Y])||!isFinite(V[Y]))continue t;for(U=0;U<3;++U){var X;V=n[X=W[U]];a.push(V[0],V[1],V[2],V[3]);var Z,$,J,K=i[X];l.push(K[0],K[1],K[2],K[3]),3===(Z=E?E[X]:C?C[B]:L).length?c.push(Z[0],Z[1],Z[2],1):c.push(Z[0],Z[1],Z[2],Z[3]),$=z?z[X]:O?[(O[X]-D)/(R-D),0]:I?I[B]:P?[(P[B]-D)/(R-D),0]:[(V[2]-D)/(R-D),0],p.push($[0],$[1]),J=M?M[X]:A[B],h.push(J[0],J[1],J[2]),d.push(B)}q+=1}}this.pointCount=G,this.edgeCount=H,this.triangleCount=q,this.pointPositions.update(x),this.pointColors.update(b),this.pointUVs.update(_),this.pointSizes.update(w),this.pointIds.update(new Uint32Array(k)),this.edgePositions.update(g),this.edgeColors.update(v),this.edgeUVs.update(m),this.edgeIds.update(new Uint32Array(y)),this.trianglePositions.update(a),this.triangleVectors.update(l),this.triangleColors.update(c),this.triangleUVs.update(p),this.triangleNormals.update(h),this.triangleIds.update(new Uint32Array(d))}},x.drawTransparent=x.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||m,n=t.view||m,i=t.projection||m,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);var s={model:r,view:n,projection:i,clipBounds:a,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],opacity:this.opacity,tubeScale:this.tubeScale,contourColor:this.contourColor,texture:0};this.texture.bind(0);var u=new Array(16);l(u,s.view,s.model),l(u,s.projection,u),c(u,u);for(o=0;o<3;++o)s.eyePosition[o]=u[12+o]/u[15];var f,h=u[15];for(o=0;o<3;++o)h+=this.lightPosition[o]*u[4*o+3];for(o=0;o<3;++o){for(var p=u[12+o],d=0;d<3;++d)p+=u[4*d+o]*this.lightPosition[d];s.lightPosition[o]=p/h}this.triangleCount>0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},x.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||m,n=t.view||m,i=t.projection||m,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,tubeScale:this.tubeScale,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},x.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3);return{index:e,position:n,intensity:this.intensity[r[1]],velocity:this.vectors[r[1]].slice(0,3),divergence:this.vectors[r[1]][3],dataCoordinate:n}},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.triangleNormals.dispose(),this.triangleIds.dispose(),this.edgeVAO.dispose(),this.edgePositions.dispose(),this.edgeColors.dispose(),this.edgeUVs.dispose(),this.edgeIds.dispose(),this.pointVAO.dispose(),this.pointPositions.dispose(),this.pointColors.dispose(),this.pointUVs.dispose(),this.pointSizes.dispose(),this.pointIds.dispose(),this.contourVAO.dispose(),this.contourPositions.dispose()},e.exports=function(t,e){1===arguments.length&&(t=(e=t).gl);var r=e.triShader||function(t){var e=n(t,g.vertex,g.fragment,null,g.attributes);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.vector.location=5,e}(t),s=b(t),l=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));l.generateMipmap(),l.minFilter=t.LINEAR_MIPMAP_LINEAR,l.magFilter=t.LINEAR;var c=i(t),f=i(t),h=i(t),p=i(t),d=i(t),v=i(t),m=a(t,[{buffer:c,type:t.FLOAT,size:4},{buffer:v,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:h,type:t.FLOAT,size:4},{buffer:p,type:t.FLOAT,size:2},{buffer:d,type:t.FLOAT,size:3},{buffer:f,type:t.FLOAT,size:4}]),x=i(t),_=i(t),w=i(t),k=i(t),M=a(t,[{buffer:x,type:t.FLOAT,size:3},{buffer:k,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:_,type:t.FLOAT,size:4},{buffer:w,type:t.FLOAT,size:2}]),A=i(t),T=i(t),S=i(t),E=i(t),C=i(t),L=a(t,[{buffer:A,type:t.FLOAT,size:3},{buffer:C,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:T,type:t.FLOAT,size:4},{buffer:S,type:t.FLOAT,size:2},{buffer:E,type:t.FLOAT,size:1}]),z=i(t),O=new y(t,l,r,null,null,s,null,null,c,f,v,h,p,d,m,x,k,_,w,M,A,C,T,S,E,L,z,a(t,[{buffer:z,type:t.FLOAT,size:3}]));return O.update(e),O}},{\\\"./closest-point\\\":298,\\\"./shaders\\\":299,colormap:114,\\\"gl-buffer\\\":230,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"gl-shader\\\":288,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,ndarray:433,normals:436,\\\"simplicial-complex-contour\\\":494,\\\"typedarray-pool\\\":522}],301:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-vec3\\\"),i=t(\\\"gl-vec4\\\"),a=function(t,e,r,a){for(var o=0,s=0;s<t.length;s++)for(var l=t[s].velocities,c=0;c<l.length;c++){var u=n.length(l[c]);u>o&&(o=u)}var f=t.map(function(t){return function(t,e,r,a){var o,s,l,c=t.points,u=t.velocities,f=t.divergences;n.set(n.create(),0,1,0),n.create(),n.create();n.create();for(var h=[],p=[],d=[],g=[],v=[],m=[],y=0,x=0,b=i.create(),_=i.create(),w=0;w<c.length;w++){o=c[w],s=u[w],l=f[w],0===e&&(l=.05*r),x=n.length(s)/a,b=i.create(),n.copy(b,s),b[3]=l;for(var k=0;k<8;k++)v[k]=[o[0],o[1],o[2],k];if(g.length>0)for(k=0;k<8;k++){var M=(k+1)%8;h.push(g[k],v[k],v[M],v[M],g[M],g[k]),d.push(_,b,b,b,_,_),m.push(y,x,x,x,y,y),p.push([h.length-6,h.length-5,h.length-4],[h.length-3,h.length-2,h.length-1])}var A=g;g=v,v=A,A=_,_=b,b=A,A=y,y=x,x=A}return{positions:h,cells:p,vectors:d,vertexIntensity:m}}(t,r,a,o)}),h=[],p=[],d=[],g=[];for(s=0;s<f.length;s++){var v=f[s],m=h.length;h=h.concat(v.positions),d=d.concat(v.vectors),g=g.concat(v.vertexIntensity);for(c=0;c<v.cells.length;c++){var y=v.cells[c],x=[];p.push(x);for(var b=0;b<y.length;b++)x.push(y[b]+m)}}return{positions:h,cells:p,vectors:d,vertexIntensity:g,colormap:e}},o=function(t,e){var r=n.create(),i=1e-4;n.add(r,t,[i,0,0]);var a=this.getVelocity(r);n.subtract(a,a,e),n.scale(a,a,1e4),n.add(r,t,[0,i,0]);var o=this.getVelocity(r);n.subtract(o,o,e),n.scale(o,o,1e4),n.add(r,t,[0,0,i]);var s=this.getVelocity(r);return n.subtract(s,s,e),n.scale(s,s,1e4),n.add(r,a,o),n.add(r,r,s),r},s=function(t){return h(t,this.vectors,this.meshgrid,this.clampBorders)},l=function(t,e){for(var r=0;r<t.length;r++){var n=t[r];if(n===e)return r;if(n>e)return r-1}return r},c=n.create(),u=n.create(),f=function(t,e,r){return t<e?e:t>r?r:t},h=function(t,e,r,i){var a=t[0],o=t[1],s=t[2],h=r[0].length,p=r[1].length,d=r[2].length,g=l(r[0],a),v=l(r[1],o),m=l(r[2],s),y=g+1,x=v+1,b=m+1;if(r[0][g]===a&&(y=g),r[1][v]===o&&(x=v),r[2][m]===s&&(b=m),i&&(g=f(g,0,h-1),y=f(y,0,h-1),v=f(v,0,p-1),x=f(x,0,p-1),m=f(m,0,d-1),b=f(b,0,d-1)),g<0||v<0||m<0||y>=h||x>=p||b>=d)return n.create();var _=(a-r[0][g])/(r[0][y]-r[0][g]),w=(o-r[1][v])/(r[1][x]-r[1][v]),k=(s-r[2][m])/(r[2][b]-r[2][m]);(_<0||_>1||isNaN(_))&&(_=0),(w<0||w>1||isNaN(w))&&(w=0),(k<0||k>1||isNaN(k))&&(k=0);var M=m*h*p,A=b*h*p,T=v*h,S=x*h,E=g,C=y,L=e[T+M+E],z=e[T+M+C],O=e[S+M+E],I=e[S+M+C],P=e[T+A+E],D=e[T+A+C],R=e[S+A+E],B=e[S+A+C],F=n.create();return n.lerp(F,L,z,_),n.lerp(c,O,I,_),n.lerp(F,F,c,w),n.lerp(c,P,D,_),n.lerp(u,R,B,_),n.lerp(c,c,u,w),n.lerp(F,F,c,k),F},p=function(t){var e=1/0;t.sort(function(t,e){return t-e});for(var r=1;r<t.length;r++){var n=Math.abs(t[r]-t[r-1]);n<e&&(e=n)}return e};e.exports=function(t,e){var r=t.startingPositions,i=t.maxLength||1e3,l=t.tubeSize||1,c=t.absoluteTubeSize;t.getDivergence||(t.getDivergence=o),t.getVelocity||(t.getVelocity=s),void 0===t.clampBorders&&(t.clampBorders=!0);var u=[],f=e[0][0],h=e[0][1],d=e[0][2],g=e[1][0],v=e[1][1],m=e[1][2],y=function(t,e){var r=e[0],n=e[1],i=e[2];return r>=f&&r<=g&&n>=h&&n<=v&&i>=d&&i<=m},x=10*n.distance(e[0],e[1])/i,b=x*x,_=1,w=0;n.create();r.length>=2&&(_=function(t){for(var e=[],r=[],n=[],i={},a={},o={},s=0;s<t.length;s++){var l=t[s],c=l[0],u=l[1],f=l[2];i[c]||(e.push(c),i[c]=!0),a[u]||(r.push(u),a[u]=!0),o[f]||(n.push(f),o[f]=!0)}var h=p(e),d=p(r),g=p(n),v=Math.min(h,d,g);return isFinite(v)?v:1}(r));for(var k=0;k<r.length;k++){var M=n.create();n.copy(M,r[k]);var A=[M],T=[],S=t.getVelocity(M),E=M;T.push(S);var C=[],L=t.getDivergence(M,S);(P=n.length(L))>w&&!isNaN(P)&&isFinite(P)&&(w=P),C.push(P),u.push({points:A,velocities:T,divergences:C});for(var z=0;z<100*i&&A.length<i&&y(0,M);){z++;var O=n.clone(S),I=n.squaredLength(O);if(0===I)break;if(I>b&&n.scale(O,O,x/Math.sqrt(I)),n.add(O,O,M),S=t.getVelocity(O),n.squaredDistance(E,O)-b>-1e-4*b){A.push(O),E=O,T.push(S);L=t.getDivergence(O,S);(P=n.length(L))>w&&!isNaN(P)&&isFinite(P)&&(w=P),C.push(P)}M=O}}for(k=0;k<C.length;k++){var P=C[k];!isNaN(P)&&isFinite(P)||(C[k]=w)}var D=a(u,t.colormap,w,_);return c?D.tubeScale=c:(0===w&&(w=1),D.tubeScale=.5*l*_/w),D},e.exports.createTubeMesh=t(\\\"./lib/tubemesh\\\")},{\\\"./lib/tubemesh\\\":300,\\\"gl-vec3\\\":329,\\\"gl-vec4\\\":365}],302:[function(t,e,r){var n=t(\\\"gl-shader\\\"),i=t(\\\"glslify\\\"),a=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 uv;\\\\nattribute vec3 f;\\\\nattribute vec3 normal;\\\\n\\\\nuniform mat4 model, view, projection, inverseModel;\\\\nuniform vec3 lightPosition, eyePosition;\\\\nuniform sampler2D colormap;\\\\n\\\\nvarying float value, kill;\\\\nvarying vec3 worldCoordinate;\\\\nvarying vec2 planeCoordinate;\\\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\\\nvarying vec4 vColor;\\\\n\\\\nvoid main() {\\\\n  worldCoordinate = vec3(uv.zw, f.x);\\\\n  vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\\\n  vec4 clipPosition = projection * view * worldPosition;\\\\n  gl_Position = clipPosition;\\\\n  kill = f.y;\\\\n  value = f.z;\\\\n  planeCoordinate = uv.xy;\\\\n\\\\n  vColor = texture2D(colormap, vec2(value, value));\\\\n\\\\n  //Lighting geometry parameters\\\\n  vec4 cameraCoordinate = view * worldPosition;\\\\n  cameraCoordinate.xyz /= cameraCoordinate.w;\\\\n  lightDirection = lightPosition - cameraCoordinate.xyz;\\\\n  eyeDirection   = eyePosition - cameraCoordinate.xyz;\\\\n  surfaceNormal  = normalize((vec4(normal,0) * inverseModel).xyz);\\\\n}\\\\n\\\"]),o=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nfloat beckmannDistribution(float x, float roughness) {\\\\n  float NdotH = max(x, 0.0001);\\\\n  float cos2Alpha = NdotH * NdotH;\\\\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\\\n  float roughness2 = roughness * roughness;\\\\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\\\n  return exp(tan2Alpha / roughness2) / denom;\\\\n}\\\\n\\\\nfloat beckmannSpecular(\\\\n  vec3 lightDirection,\\\\n  vec3 viewDirection,\\\\n  vec3 surfaceNormal,\\\\n  float roughness) {\\\\n  return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\\\\n}\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec3 lowerBound, upperBound;\\\\nuniform float contourTint;\\\\nuniform vec4 contourColor;\\\\nuniform sampler2D colormap;\\\\nuniform vec3 clipBounds[2];\\\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\\\nuniform float vertexColor;\\\\n\\\\nvarying float value, kill;\\\\nvarying vec3 worldCoordinate;\\\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\\\nvarying vec4 vColor;\\\\n\\\\nvoid main() {\\\\n  if ((kill > 0.0) ||\\\\n      (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\\\n\\\\n  vec3 N = normalize(surfaceNormal);\\\\n  vec3 V = normalize(eyeDirection);\\\\n  vec3 L = normalize(lightDirection);\\\\n\\\\n  if(gl_FrontFacing) {\\\\n    N = -N;\\\\n  }\\\\n\\\\n  float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\\\\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\\\n\\\\n  //decide how to interpolate color \\\\u2014 in vertex or in fragment\\\\n  vec4 surfaceColor = step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) + step(.5, vertexColor) * vColor;\\\\n\\\\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\\\\n\\\\n  gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\\\\n}\\\\n\\\"]),s=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 uv;\\\\nattribute float f;\\\\n\\\\nuniform mat3 permutation;\\\\nuniform mat4 model, view, projection;\\\\nuniform float height, zOffset;\\\\nuniform sampler2D colormap;\\\\n\\\\nvarying float value, kill;\\\\nvarying vec3 worldCoordinate;\\\\nvarying vec2 planeCoordinate;\\\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\\\nvarying vec4 vColor;\\\\n\\\\nvoid main() {\\\\n  vec3 dataCoordinate = permutation * vec3(uv.xy, height);\\\\n  vec4 worldPosition = model * vec4(dataCoordinate, 1.0);\\\\n\\\\n  vec4 clipPosition = projection * view * worldPosition;\\\\n  clipPosition.z = clipPosition.z + zOffset;\\\\n\\\\n  gl_Position = clipPosition;\\\\n  value = f;\\\\n  kill = -1.0;\\\\n  worldCoordinate = dataCoordinate;\\\\n  planeCoordinate = uv.zw;\\\\n\\\\n  vColor = texture2D(colormap, vec2(value, value));\\\\n\\\\n  //Don't do lighting for contours\\\\n  surfaceNormal   = vec3(1,0,0);\\\\n  eyeDirection    = vec3(0,1,0);\\\\n  lightDirection  = vec3(0,0,1);\\\\n}\\\\n\\\"]),l=i([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nbool outOfRange(float a, float b, float p) {\\\\n  return ((p > max(a, b)) || \\\\n          (p < min(a, b)));\\\\n}\\\\n\\\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y));\\\\n}\\\\n\\\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\\\n  return (outOfRange(a.x, b.x, p.x) ||\\\\n          outOfRange(a.y, b.y, p.y) ||\\\\n          outOfRange(a.z, b.z, p.z));\\\\n}\\\\n\\\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\\\n  return outOfRange(a.xyz, b.xyz, p.xyz);\\\\n}\\\\n\\\\nuniform vec2 shape;\\\\nuniform vec3 clipBounds[2];\\\\nuniform float pickId;\\\\n\\\\nvarying float value, kill;\\\\nvarying vec3 worldCoordinate;\\\\nvarying vec2 planeCoordinate;\\\\nvarying vec3 surfaceNormal;\\\\n\\\\nvec2 splitFloat(float v) {\\\\n  float vh = 255.0 * v;\\\\n  float upper = floor(vh);\\\\n  float lower = fract(vh);\\\\n  return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\\\\n}\\\\n\\\\nvoid main() {\\\\n  if ((kill > 0.0) ||\\\\n      (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\\\n\\\\n  vec2 ux = splitFloat(planeCoordinate.x / shape.x);\\\\n  vec2 uy = splitFloat(planeCoordinate.y / shape.y);\\\\n  gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\\\\n}\\\\n\\\"]);r.createShader=function(t){var e=n(t,a,o,null,[{name:\\\"uv\\\",type:\\\"vec4\\\"},{name:\\\"f\\\",type:\\\"vec3\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createPickShader=function(t){var e=n(t,a,l,null,[{name:\\\"uv\\\",type:\\\"vec4\\\"},{name:\\\"f\\\",type:\\\"vec3\\\"},{name:\\\"normal\\\",type:\\\"vec3\\\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createContourShader=function(t){var e=n(t,s,o,null,[{name:\\\"uv\\\",type:\\\"vec4\\\"},{name:\\\"f\\\",type:\\\"float\\\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},r.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:\\\"uv\\\",type:\\\"vec4\\\"},{name:\\\"f\\\",type:\\\"float\\\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},{\\\"gl-shader\\\":288,glslify:392}],303:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.gl,r=y(e),n=b(e),s=x(e),l=_(e),c=i(e),u=a(e,[{buffer:c,size:4,stride:w,offset:0},{buffer:c,size:3,stride:w,offset:16},{buffer:c,size:3,stride:w,offset:28}]),f=i(e),h=a(e,[{buffer:f,size:4,stride:20,offset:0},{buffer:f,size:1,stride:20,offset:16}]),p=i(e),d=a(e,[{buffer:p,size:2,type:e.FLOAT}]),g=o(e,1,S,e.RGBA,e.UNSIGNED_BYTE);g.minFilter=e.LINEAR,g.magFilter=e.LINEAR;var v=new E(e,[0,0],[[0,0,0],[0,0,0]],r,n,c,u,g,s,l,f,h,p,d),m={levels:[[],[],[]]};for(var k in t)m[k]=t[k];return m.colormap=m.colormap||\\\"jet\\\",v.update(m),v};var n=t(\\\"bit-twiddle\\\"),i=t(\\\"gl-buffer\\\"),a=t(\\\"gl-vao\\\"),o=t(\\\"gl-texture2d\\\"),s=t(\\\"typedarray-pool\\\"),l=t(\\\"colormap\\\"),c=t(\\\"ndarray-ops\\\"),u=t(\\\"ndarray-pack\\\"),f=t(\\\"ndarray\\\"),h=t(\\\"surface-nets\\\"),p=t(\\\"gl-mat4/multiply\\\"),d=t(\\\"gl-mat4/invert\\\"),g=t(\\\"binary-search-bounds\\\"),v=t(\\\"ndarray-gradient\\\"),m=t(\\\"./lib/shaders\\\"),y=m.createShader,x=m.createContourShader,b=m.createPickShader,_=m.createPickContourShader,w=40,k=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],M=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],A=[[0,0,0,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 T(t,e,r,n,i){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=i}!function(){for(var t=0;t<3;++t){var e=A[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();var S=256;function E(t,e,r,n,i,a,o,l,c,u,h,p,d,g){this.gl=t,this.shape=e,this.bounds=r,this.intensityBounds=[],this._shader=n,this._pickShader=i,this._coordinateBuffer=a,this._vao=o,this._colorMap=l,this._contourShader=c,this._contourPickShader=u,this._contourBuffer=h,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new T([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=g,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=[f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0]),f(s.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.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 C=E.prototype;C.isTransparent=function(){return this.opacity<1},C.isOpaque=function(){if(this.opacity>=1)return!0;for(var t=0;t<3;++t)if(this._contourCounts[t].length>0||this._dynamicCounts[t]>0)return!0;return!1},C.pickSlots=1,C.setPickBase=function(t){this.pickId=t};var L=[0,0,0],z={showSurface:!1,showContour:!1,projections:[k.slice(),k.slice(),k.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function O(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||L,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=z.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],p(l,t.model,l);var c=z.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)c[i][n]=t.clipBounds[i][n];c[0][r]=-1e8,c[1][r]=1e8}return z.showSurface=o,z.showContour=s,z}var I={model:k,view:k,projection:k,inverseModel:k.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,kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},P=k.slice(),D=[1,0,0,0,1,0,0,0,1];function R(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=I;n.model=t.model||k,n.view=t.view||k,n.projection=t.projection||k,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=D,n.vertexColor=this.vertexColor;var s=P;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var c=s[12+i];for(o=0;o<3;++o)c+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=c/l}var u=O(n,this);if(u.showSurface&&e===this.opacity<1){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=u.projections[i],this._shader.uniforms.clipBounds=u.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(u.showContour&&!e){var f=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,f.bind(),f.uniforms=n;var h=this._contourVAO;for(h.bind(),i=0;i<3;++i)for(f.uniforms.permutation=A[i],r.lineWidth(this.contourWidth[i]),o=0;o<this.contourLevels[i].length;++o)o===this.highlightLevel[i]?(f.uniforms.contourColor=this.highlightColor[i],f.uniforms.contourTint=this.highlightTint[i]):0!==o&&o-1!==this.highlightLevel[i]||(f.uniforms.contourColor=this.contourColor[i],f.uniforms.contourTint=this.contourTint[i]),this._contourCounts[i][o]&&(f.uniforms.height=this.contourLevels[i][o],h.draw(r.LINES,this._contourCounts[i][o],this._contourOffsets[i][o]));for(i=0;i<3;++i)for(f.uniforms.model=u.projections[i],f.uniforms.clipBounds=u.clipBounds[i],o=0;o<3;++o)if(this.contourProject[i][o]){f.uniforms.permutation=A[o],r.lineWidth(this.contourWidth[o]);for(var g=0;g<this.contourLevels[o].length;++g)g===this.highlightLevel[o]?(f.uniforms.contourColor=this.highlightColor[o],f.uniforms.contourTint=this.highlightTint[o]):0!==g&&g-1!==this.highlightLevel[o]||(f.uniforms.contourColor=this.contourColor[o],f.uniforms.contourTint=this.contourTint[o]),f.uniforms.height=this.contourLevels[o][g],h.draw(r.LINES,this._contourCounts[o][g],this._contourOffsets[o][g])}for(h.unbind(),(h=this._dynamicVAO).bind(),i=0;i<3;++i)if(0!==this._dynamicCounts[i])for(f.uniforms.model=n.model,f.uniforms.clipBounds=n.clipBounds,f.uniforms.permutation=A[i],r.lineWidth(this.dynamicWidth[i]),f.uniforms.contourColor=this.dynamicColor[i],f.uniforms.contourTint=this.dynamicTint[i],f.uniforms.height=this.dynamicLevel[i],h.draw(r.LINES,this._dynamicCounts[i],this._dynamicOffsets[i]),o=0;o<3;++o)this.contourProject[o][i]&&(f.uniforms.model=u.projections[o],f.uniforms.clipBounds=u.clipBounds[o],h.draw(r.LINES,this._dynamicCounts[i],this._dynamicOffsets[i]));h.unbind()}}C.draw=function(t){return R.call(this,t,!1)},C.drawTransparent=function(t){return R.call(this,t,!0)};var B={model:k,view:k,projection:k,inverseModel:k,clipBounds:[[0,0,0],[0,0,0]],height:0,shape:[0,0],pickId:0,lowerBound:[0,0,0],upperBound:[0,0,0],zOffset:0,permutation:[1,0,0,0,1,0,0,0,1],lightPosition:[0,0,0],eyePosition:[0,0,0]};function F(t,e){var r=e.shape.slice(),n=t.shape.slice();c.assign(t.lo(1,1).hi(r[0],r[1]),e),c.assign(t.lo(1).hi(r[0],1),e.hi(r[0],1)),c.assign(t.lo(1,n[1]-1).hi(r[0],1),e.lo(0,r[1]-1).hi(r[0],1)),c.assign(t.lo(0,1).hi(1,r[1]),e.hi(1)),c.assign(t.lo(n[0]-1,1).hi(1,r[1]),e.lo(r[0]-1)),t.set(0,0,e.get(0,0)),t.set(0,n[1]-1,e.get(0,r[1]-1)),t.set(n[0]-1,0,e.get(r[0]-1,0)),t.set(n[0]-1,n[1]-1,e.get(r[0]-1,r[1]-1))}function N(t,e){return Array.isArray(t)?[e(t[0]),e(t[1]),e(t[2])]:[e(t),e(t),e(t)]}function j(t){return Array.isArray(t)?3===t.length?[t[0],t[1],t[2],1]:[t[0],t[1],t[2],t[3]]:[0,0,0,1]}function V(t){if(Array.isArray(t)){if(Array.isArray(t))return[j(t[0]),j(t[1]),j(t[2])];var e=j(t);return[e.slice(),e.slice(),e.slice()]}}C.drawPick=function(t){t=t||{};var e=this.gl;e.disable(e.CULL_FACE);var r=B;r.model=t.model||k,r.view=t.view||k,r.projection=t.projection||k,r.shape=this._field[2].shape,r.pickId=this.pickId/255,r.lowerBound=this.bounds[0],r.upperBound=this.bounds[1],r.permutation=D;for(var n=0;n<2;++n)for(var i=r.clipBounds[n],a=0;a<3;++a)i[a]=Math.min(Math.max(this.clipBounds[n][a],-1e8),1e8);var o=O(r,this);if(o.showSurface){for(this._pickShader.bind(),this._pickShader.uniforms=r,this._vao.bind(),this._vao.draw(e.TRIANGLES,this._vertexCount),n=0;n<3;++n)this.surfaceProject[n]&&(this._pickShader.uniforms.model=o.projections[n],this._pickShader.uniforms.clipBounds=o.clipBounds[n],this._vao.draw(e.TRIANGLES,this._vertexCount));this._vao.unbind()}if(o.showContour){var s=this._contourPickShader;s.bind(),s.uniforms=r;var l=this._contourVAO;for(l.bind(),a=0;a<3;++a)for(e.lineWidth(this.contourWidth[a]),s.uniforms.permutation=A[a],n=0;n<this.contourLevels[a].length;++n)this._contourCounts[a][n]&&(s.uniforms.height=this.contourLevels[a][n],l.draw(e.LINES,this._contourCounts[a][n],this._contourOffsets[a][n]));for(n=0;n<3;++n)for(s.uniforms.model=o.projections[n],s.uniforms.clipBounds=o.clipBounds[n],a=0;a<3;++a)if(this.contourProject[n][a]){s.uniforms.permutation=A[a],e.lineWidth(this.contourWidth[a]);for(var c=0;c<this.contourLevels[a].length;++c)this._contourCounts[a][c]&&(s.uniforms.height=this.contourLevels[a][c],l.draw(e.LINES,this._contourCounts[a][c],this._contourOffsets[a][c]))}l.unbind()}},C.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=this._field[2].shape,r=this._pickResult,n=e[0]*(t.value[0]+(t.value[2]>>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var c=r.position;c[0]=c[1]=c[2]=0;for(var u=0;u<2;++u)for(var f=u?a:1-a,h=0;h<2;++h)for(var p=i+u,d=s+h,v=f*(h?l:1-l),m=0;m<3;++m)c[m]+=this._field[m].get(p,d)*v;for(var y=this._pickResult.level,x=0;x<3;++x)if(y[x]=g.le(this.contourLevels[x],c[x]),y[x]<0)this.contourLevels[x].length>0&&(y[x]=0);else if(y[x]<this.contourLevels[x].length-1){var b=this.contourLevels[x][y[x]],_=this.contourLevels[x][y[x]+1];Math.abs(b-c[x])>Math.abs(_-c[x])&&(y[x]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],m=0;m<3;++m)r.dataCoordinate[m]=this._field[m].get(r.index[0],r.index[1]);return r},C.update=function(t){t=t||{},this.dirty=!0,\\\"contourWidth\\\"in t&&(this.contourWidth=N(t.contourWidth,Number)),\\\"showContour\\\"in t&&(this.showContour=N(t.showContour,Boolean)),\\\"showSurface\\\"in t&&(this.showSurface=!!t.showSurface),\\\"contourTint\\\"in t&&(this.contourTint=N(t.contourTint,Boolean)),\\\"contourColor\\\"in t&&(this.contourColor=V(t.contourColor)),\\\"contourProject\\\"in t&&(this.contourProject=N(t.contourProject,function(t){return N(t,Boolean)})),\\\"surfaceProject\\\"in t&&(this.surfaceProject=t.surfaceProject),\\\"dynamicColor\\\"in t&&(this.dynamicColor=V(t.dynamicColor)),\\\"dynamicTint\\\"in t&&(this.dynamicTint=N(t.dynamicTint,Number)),\\\"dynamicWidth\\\"in t&&(this.dynamicWidth=N(t.dynamicWidth,Number)),\\\"opacity\\\"in t&&(this.opacity=t.opacity),\\\"colorBounds\\\"in t&&(this.colorBounds=t.colorBounds),\\\"vertexColor\\\"in t&&(this.vertexColor=t.vertexColor?1:0);var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=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 t||\\\"coords\\\"in t){var i=(e.shape[0]+2)*(e.shape[1]+2);i>this._field[2].data.length&&(s.freeFloat(this._field[2].data),this._field[2].data=s.mallocFloat(n.nextPow2(i))),this._field[2]=f(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),F(this._field[2],e),this.shape=e.shape.slice();for(var a=this.shape,o=0;o<2;++o)this._field[2].size>this._field[o].data.length&&(s.freeFloat(this._field[o].data),this._field[o].data=s.mallocFloat(this._field[2].size)),this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2]);if(t.coords){var p=t.coords;if(!Array.isArray(p)||3!==p.length)throw new Error(\\\"gl-surface: invalid coordinates for x/y\\\");for(o=0;o<2;++o){var d=p[o];for(b=0;b<2;++b)if(d.shape[b]!==a[b])throw new Error(\\\"gl-surface: coords have incorrect shape\\\");F(this._field[o],d)}}else if(t.ticks){var g=t.ticks;if(!Array.isArray(g)||2!==g.length)throw new Error(\\\"gl-surface: invalid ticks\\\");for(o=0;o<2;++o){var m=g[o];if((Array.isArray(m)||m.length)&&(m=f(m)),m.shape[0]!==a[o])throw new Error(\\\"gl-surface: invalid tick length\\\");var y=f(m.data,a);y.stride[o]=m.stride[0],y.stride[1^o]=0,F(this._field[o],y)}}else{for(o=0;o<2;++o){var x=[0,0];x[o]=1,this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2],x,0)}this._field[0].set(0,0,0);for(var b=0;b<a[0];++b)this._field[0].set(b+1,0,b);for(this._field[0].set(a[0]+1,0,a[0]-1),this._field[1].set(0,0,0),b=0;b<a[1];++b)this._field[1].set(0,b+1,b);this._field[1].set(0,a[1]+1,a[1]-1)}var _=this._field,w=f(s.mallocFloat(3*_[2].size*2),[3,a[0]+2,a[1]+2,2]);for(o=0;o<3;++o)v(w.pick(o),_[o],\\\"mirror\\\");var k=f(s.mallocFloat(3*_[2].size),[a[0]+2,a[1]+2,3]);for(o=0;o<a[0]+2;++o)for(b=0;b<a[1]+2;++b){var A=w.get(0,o,b,0),T=w.get(0,o,b,1),E=w.get(1,o,b,0),C=w.get(1,o,b,1),L=w.get(2,o,b,0),z=w.get(2,o,b,1),O=E*z-C*L,I=L*T-z*A,P=A*C-T*E,D=Math.sqrt(O*O+I*I+P*P);D<1e-8?(D=Math.max(Math.abs(O),Math.abs(I),Math.abs(P)))<1e-8?(P=1,I=O=0,D=1):D=1/D:D=1/Math.sqrt(D),k.set(o,b,0,O*D),k.set(o,b,1,I*D),k.set(o,b,2,P*D)}s.free(w.data);var R=[1/0,1/0,1/0],B=[-1/0,-1/0,-1/0],j=1/0,U=-1/0,q=(a[0]-1)*(a[1]-1)*6,H=s.mallocFloat(n.nextPow2(10*q)),G=0,W=0;for(o=0;o<a[0]-1;++o)t:for(b=0;b<a[1]-1;++b){for(var Y=0;Y<2;++Y)for(var X=0;X<2;++X)for(var Z=0;Z<3;++Z){var $=this._field[Z].get(1+o+Y,1+b+X);if(isNaN($)||!isFinite($))continue t}for(Z=0;Z<6;++Z){var J=o+M[Z][0],K=b+M[Z][1],Q=this._field[0].get(J+1,K+1),tt=this._field[1].get(J+1,K+1),et=$=this._field[2].get(J+1,K+1);O=k.get(J+1,K+1,0),I=k.get(J+1,K+1,1),P=k.get(J+1,K+1,2),t.intensity&&(et=t.intensity.get(J,K)),H[G++]=J,H[G++]=K,H[G++]=Q,H[G++]=tt,H[G++]=$,H[G++]=0,H[G++]=et,H[G++]=O,H[G++]=I,H[G++]=P,R[0]=Math.min(R[0],Q),R[1]=Math.min(R[1],tt),R[2]=Math.min(R[2],$),j=Math.min(j,et),B[0]=Math.max(B[0],Q),B[1]=Math.max(B[1],tt),B[2]=Math.max(B[2],$),U=Math.max(U,et),W+=1}}for(t.intensityBounds&&(j=+t.intensityBounds[0],U=+t.intensityBounds[1]),o=6;o<G;o+=10)H[o]=(H[o]-j)/(U-j);this._vertexCount=W,this._coordinateBuffer.update(H.subarray(0,G)),s.freeFloat(H),s.free(k.data),this.bounds=[R,B],this.intensity=t.intensity||this._field[2],this.intensityBounds[0]===j&&this.intensityBounds[1]===U||(r=!0),this.intensityBounds=[j,U]}if(\\\"levels\\\"in t){var rt=t.levels;for(rt=Array.isArray(rt[0])?rt.slice():[[],[],rt],o=0;o<3;++o)rt[o]=rt[o].slice(),rt.sort(function(t,e){return t-e});t:for(o=0;o<3;++o){if(rt[o].length!==this.contourLevels[o].length){r=!0;break}for(b=0;b<rt[o].length;++b)if(rt[o][b]!==this.contourLevels[o][b]){r=!0;break t}}this.contourLevels=rt}if(r){_=this._field,a=this.shape;for(var nt=[],it=0;it<3;++it){rt=this.contourLevels[it];var at=[],ot=[],st=[0,0,0];for(o=0;o<rt.length;++o){var lt=h(this._field[it],rt[o]);at.push(nt.length/5|0),W=0;t:for(b=0;b<lt.cells.length;++b){var ct=lt.cells[b];for(Z=0;Z<2;++Z){var ut=lt.positions[ct[Z]],ft=ut[0],ht=0|Math.floor(ft),pt=ft-ht,dt=ut[1],gt=0|Math.floor(dt),vt=dt-gt,mt=!1;e:for(var yt=0;yt<3;++yt){st[yt]=0;var xt=(it+yt+1)%3;for(Y=0;Y<2;++Y){var bt=Y?pt:1-pt;for(J=0|Math.min(Math.max(ht+Y,0),a[0]),X=0;X<2;++X){var _t=X?vt:1-vt;if(K=0|Math.min(Math.max(gt+X,0),a[1]),$=yt<2?this._field[xt].get(J,K):(this.intensity.get(J,K)-this.intensityBounds[0])/(this.intensityBounds[1]-this.intensityBounds[0]),!isFinite($)||isNaN($)){mt=!0;break e}var wt=bt*_t;st[yt]+=wt*$}}}if(mt){if(Z>0){for(var kt=0;kt<5;++kt)nt.pop();W-=1}continue t}nt.push(st[0],st[1],ut[0],ut[1],st[2]),W+=1}}ot.push(W)}this._contourOffsets[it]=at,this._contourCounts[it]=ot}var Mt=s.mallocFloat(nt.length);for(o=0;o<nt.length;++o)Mt[o]=nt[o];this._contourBuffer.update(Mt),s.freeFloat(Mt)}t.colormap&&this._colorMap.setPixels(function(t){var e=u([l({colormap:t,nshades:S,format:\\\"rgba\\\"}).map(function(t){return[t[0],t[1],t[2],255*t[3]]})]);return c.divseq(e,255),e}(t.colormap))},C.dispose=function(){this._shader.dispose(),this._vao.dispose(),this._coordinateBuffer.dispose(),this._colorMap.dispose(),this._contourBuffer.dispose(),this._contourVAO.dispose(),this._contourShader.dispose(),this._contourPickShader.dispose(),this._dynamicBuffer.dispose(),this._dynamicVAO.dispose();for(var t=0;t<3;++t)s.freeFloat(this._field[t].data)},C.highlight=function(t){if(!t)return this._dynamicCounts=[0,0,0],this.dyanamicLevel=[NaN,NaN,NaN],void(this.highlightLevel=[-1,-1,-1]);for(var e=0;e<3;++e)this.enableHighlight[e]?this.highlightLevel[e]=t.level[e]:this.highlightLevel[e]=-1;var r;if(r=this.snapToData?t.dataCoordinate:t.position,this.enableDynamic[0]&&r[0]!==this.dynamicLevel[0]||this.enableDynamic[1]&&r[1]!==this.dynamicLevel[1]||this.enableDynamic[2]&&r[2]!==this.dynamicLevel[2]){for(var n=0,i=this.shape,a=s.mallocFloat(12*i[0]*i[1]),o=0;o<3;++o)if(this.enableDynamic[o]){this.dynamicLevel[o]=r[o];var l=(o+1)%3,c=(o+2)%3,u=this._field[o],f=this._field[l],p=this._field[c],d=(this.intensity,h(u,r[o])),g=d.cells,v=d.positions;for(this._dynamicOffsets[o]=n,e=0;e<g.length;++e)for(var m=g[e],y=0;y<2;++y){var x=v[m[y]],b=+x[0],_=0|b,w=0|Math.min(_+1,i[0]),k=b-_,M=1-k,A=+x[1],T=0|A,S=0|Math.min(T+1,i[1]),E=A-T,C=1-E,L=M*C,z=M*E,O=k*C,I=k*E,P=L*f.get(_,T)+z*f.get(_,S)+O*f.get(w,T)+I*f.get(w,S),D=L*p.get(_,T)+z*p.get(_,S)+O*p.get(w,T)+I*p.get(w,S);if(isNaN(P)||isNaN(D)){y&&(n-=1);break}a[2*n+0]=P,a[2*n+1]=D,n+=1}this._dynamicCounts[o]=n-this._dynamicOffsets[o]}else this.dynamicLevel[o]=NaN,this._dynamicCounts[o]=0;this._dynamicBuffer.update(a.subarray(0,2*n)),s.freeFloat(a)}}},{\\\"./lib/shaders\\\":302,\\\"binary-search-bounds\\\":79,\\\"bit-twiddle\\\":80,colormap:114,\\\"gl-buffer\\\":230,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/multiply\\\":256,\\\"gl-texture2d\\\":305,\\\"gl-vao\\\":310,ndarray:433,\\\"ndarray-gradient\\\":424,\\\"ndarray-ops\\\":427,\\\"ndarray-pack\\\":428,\\\"surface-nets\\\":508,\\\"typedarray-pool\\\":522}],304:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"css-font\\\"),i=t(\\\"pick-by-alias\\\"),a=t(\\\"regl\\\"),o=t(\\\"gl-util/context\\\"),s=t(\\\"es6-weak-map\\\"),l=t(\\\"color-normalize\\\"),c=t(\\\"font-atlas\\\"),u=t(\\\"typedarray-pool\\\"),f=t(\\\"parse-rect\\\"),h=t(\\\"is-plain-obj\\\"),p=t(\\\"parse-unit\\\"),d=t(\\\"to-px\\\"),g=t(\\\"detect-kerning\\\"),v=t(\\\"object-assign\\\"),m=t(\\\"font-measure\\\"),y=t(\\\"flatten-vertex-data\\\"),x=t(\\\"bit-twiddle\\\").nextPow2,b=new s,_=!1;if(document.body){var w=document.body.appendChild(document.createElement(\\\"div\\\"));w.style.font=\\\"italic small-caps bold condensed 16px/2 cursive\\\",getComputedStyle(w).fontStretch&&(_=!0),document.body.removeChild(w)}var k=function(t){!function(t){return\\\"function\\\"==typeof t&&t._gl&&t.prop&&t.texture&&t.buffer}(t)?this.gl=o(t):(t={regl:t},this.gl=t.regl._gl),this.shader=b.get(this.gl),this.shader?this.regl=this.shader.regl:this.regl=t.regl||a({gl:this.gl}),this.charBuffer=this.regl.buffer({type:\\\"uint8\\\",usage:\\\"stream\\\"}),this.sizeBuffer=this.regl.buffer({type:\\\"float\\\",usage:\\\"stream\\\"}),this.shader||(this.shader=this.createShader(),b.set(this.gl,this.shader)),this.batch=[],this.fontSize=[],this.font=[],this.fontAtlas=[],this.draw=this.shader.draw.bind(this),this.render=function(){this.regl._refresh(),this.draw(this.batch)},this.canvas=this.gl.canvas,this.update(h(t)?t:{})};k.prototype.createShader=function(){var t=this.regl,e=t({blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:\\\"one minus dst alpha\\\",dstAlpha:\\\"one\\\"}},stencil:{enable:!1},depth:{enable:!1},count:t.prop(\\\"count\\\"),offset:t.prop(\\\"offset\\\"),attributes:{charOffset:{offset:4,stride:8,buffer:t.this(\\\"sizeBuffer\\\")},width:{offset:0,stride:8,buffer:t.this(\\\"sizeBuffer\\\")},char:t.this(\\\"charBuffer\\\"),position:t.this(\\\"position\\\")},uniforms:{atlasSize:function(t,e){return[e.atlas.width,e.atlas.height]},atlasDim:function(t,e){return[e.atlas.cols,e.atlas.rows]},atlas:function(t,e){return e.atlas.texture},charStep:function(t,e){return e.atlas.step},em:function(t,e){return e.atlas.em},color:t.prop(\\\"color\\\"),opacity:t.prop(\\\"opacity\\\"),viewport:t.this(\\\"viewportArray\\\"),scale:t.this(\\\"scale\\\"),align:t.prop(\\\"align\\\"),baseline:t.prop(\\\"baseline\\\"),translate:t.this(\\\"translate\\\"),positionOffset:t.prop(\\\"positionOffset\\\")},primitive:\\\"points\\\",viewport:t.this(\\\"viewport\\\"),vert:\\\"\\\\n\\\\t\\\\t\\\\tprecision highp float;\\\\n\\\\t\\\\t\\\\tattribute float width, charOffset, char;\\\\n\\\\t\\\\t\\\\tattribute vec2 position;\\\\n\\\\t\\\\t\\\\tuniform float fontSize, charStep, em, align, baseline;\\\\n\\\\t\\\\t\\\\tuniform vec4 viewport;\\\\n\\\\t\\\\t\\\\tuniform vec4 color;\\\\n\\\\t\\\\t\\\\tuniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;\\\\n\\\\t\\\\t\\\\tvarying vec2 charCoord, charId;\\\\n\\\\t\\\\t\\\\tvarying float charWidth;\\\\n\\\\t\\\\t\\\\tvarying vec4 fontColor;\\\\n\\\\t\\\\t\\\\tvoid main () {\\\\n\\\\t\\\\t\\\\t\\\\t\\\"+(k.normalViewport?\\\"\\\":\\\"vec2 positionOffset = vec2(positionOffset.x,- positionOffset.y);\\\")+\\\"\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvec2 offset = floor(em * (vec2(align + charOffset, baseline)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t+ positionOffset))\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t/ (viewport.zw * scale.xy);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvec2 position = (position + translate) * scale;\\\\n\\\\t\\\\t\\\\t\\\\tposition += offset * scale;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\"+(k.normalViewport?\\\"position.y = 1. - position.y;\\\":\\\"\\\")+\\\"\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tcharCoord = position * viewport.zw + viewport.xy;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tgl_Position = vec4(position * 2. - 1., 0, 1);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tgl_PointSize = charStep;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tcharId.x = mod(char, atlasDim.x);\\\\n\\\\t\\\\t\\\\t\\\\tcharId.y = floor(char / atlasDim.x);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tcharWidth = width * em;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfontColor = color / 255.;\\\\n\\\\t\\\\t\\\\t}\\\",frag:\\\"\\\\n\\\\t\\\\t\\\\tprecision highp float;\\\\n\\\\t\\\\t\\\\tuniform sampler2D atlas;\\\\n\\\\t\\\\t\\\\tuniform float fontSize, charStep, opacity;\\\\n\\\\t\\\\t\\\\tuniform vec2 atlasSize;\\\\n\\\\t\\\\t\\\\tuniform vec4 viewport;\\\\n\\\\t\\\\t\\\\tvarying vec4 fontColor;\\\\n\\\\t\\\\t\\\\tvarying vec2 charCoord, charId;\\\\n\\\\t\\\\t\\\\tvarying float charWidth;\\\\n\\\\n\\\\t\\\\t\\\\tfloat lightness(vec4 color) {\\\\n\\\\t\\\\t\\\\t\\\\treturn color.r * 0.299 + color.g * 0.587 + color.b * 0.114;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\tvoid main () {\\\\n\\\\t\\\\t\\\\t\\\\tvec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;\\\\n\\\\t\\\\t\\\\t\\\\tfloat halfCharStep = floor(charStep * .5 + .5);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// invert y and shift by 1px (FF expecially needs that)\\\\n\\\\t\\\\t\\\\t\\\\tuv.y = charStep - uv.y;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// ignore points outside of character bounding box\\\\n\\\\t\\\\t\\\\t\\\\tfloat halfCharWidth = ceil(charWidth * .5);\\\\n\\\\t\\\\t\\\\t\\\\tif (floor(uv.x) > halfCharStep + halfCharWidth ||\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tuv += charId * charStep;\\\\n\\\\t\\\\t\\\\t\\\\tuv = uv / atlasSize;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvec4 color = fontColor;\\\\n\\\\t\\\\t\\\\t\\\\tvec4 mask = texture2D(atlas, uv);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfloat maskY = lightness(mask);\\\\n\\\\t\\\\t\\\\t\\\\t// float colorY = lightness(color);\\\\n\\\\t\\\\t\\\\t\\\\tcolor.a *= maskY;\\\\n\\\\t\\\\t\\\\t\\\\tcolor.a *= opacity;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// color.a += .1;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// antialiasing, see yiq color space y-channel formula\\\\n\\\\t\\\\t\\\\t\\\\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tgl_FragColor = color;\\\\n\\\\t\\\\t\\\\t}\\\"});return{regl:t,draw:e,atlas:{}}},k.prototype.update=function(t){var e=this;if(\\\"string\\\"==typeof t)t={text:t};else if(!t)return;null!=(t=i(t,{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&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map(function(t){return parseFloat(t)}):this.opacity=parseFloat(t.opacity)),null!=t.viewport&&(this.viewport=f(t.viewport),k.normalViewport&&(this.viewport.y=this.canvas.height-this.viewport.y-this.viewport.height),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null==this.viewport&&(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]),null!=t.kerning&&(this.kerning=t.kerning),null!=t.offset&&(\\\"number\\\"==typeof t.offset&&(t.offset=[t.offset,0]),this.positionOffset=y(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||t.font||(t.font=k.baseFontSize+\\\"px sans-serif\\\");var r,a=!1,o=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach(function(t,r){if(\\\"string\\\"==typeof t)try{t=n.parse(t)}catch(e){t=n.parse(k.baseFontSize+\\\"px \\\"+t)}else t=n.parse(n.stringify(t));var i=n.stringify({size:k.baseFontSize,family:t.family,stretch:_?t.stretch:void 0,variant:t.variant,weight:t.weight,style:t.style}),s=p(t.size),l=Math.round(s[0]*d(s[1]));if(l!==e.fontSize[r]&&(o=!0,e.fontSize[r]=l),!(e.font[r]&&i==e.font[r].baseString||(a=!0,e.font[r]=k.fonts[i],e.font[r]))){var c=t.family.join(\\\", \\\"),u=[t.style];t.style!=t.variant&&u.push(t.variant),t.variant!=t.weight&&u.push(t.weight),_&&t.weight!=t.stretch&&u.push(t.stretch),e.font[r]={baseString:i,family:c,weight:t.weight,stretch:t.stretch,style:t.style,variant:t.variant,width:{},kerning:{},metrics:m(c,{origin:\\\"top\\\",fontSize:k.baseFontSize,fontStyle:u.join(\\\" \\\")})},k.fonts[i]=e.font[r]}}),(a||o)&&this.font.forEach(function(r,i){var a=n.stringify({size:e.fontSize[i],family:r.family,stretch:_?r.stretch:void 0,variant:r.variant,weight:r.weight,style:r.style});if(e.fontAtlas[i]=e.shader.atlas[a],!e.fontAtlas[i]){var o=r.metrics;e.shader.atlas[a]=e.fontAtlas[i]={fontString:a,step:2*Math.ceil(e.fontSize[i]*o.bottom*.5),em:e.fontSize[i],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:e.regl.texture()}}null==t.text&&(t.text=e.text)}),\\\"string\\\"==typeof t.text&&t.position&&t.position.length>2){for(var s=Array(.5*t.position.length),h=0;h<s.length;h++)s[h]=t.text;t.text=s}if(null!=t.text||a){if(this.textOffsets=[0],Array.isArray(t.text)){this.count=t.text[0].length,this.counts=[this.count];for(var b=1;b<t.text.length;b++)e.textOffsets[b]=e.textOffsets[b-1]+t.text[b-1].length,e.count+=t.text[b].length,e.counts.push(t.text[b].length);this.text=t.text.join(\\\"\\\")}else this.text=t.text,this.count=this.text.length,this.counts=[this.count];r=[],this.font.forEach(function(t,n){k.atlasContext.font=t.baseString;for(var i=e.fontAtlas[n],a=0;a<e.text.length;a++){var o=e.text.charAt(a);if(null==i.ids[o]&&(i.ids[o]=i.chars.length,i.chars.push(o),r.push(o)),null==t.width[o]&&(t.width[o]=k.atlasContext.measureText(o).width/k.baseFontSize,e.kerning)){var s=[];for(var l in t.width)s.push(l+o,o+l);v(t.kerning,g(t.family,{pairs:s}))}}})}if(t.position)if(t.position.length>2){for(var w=!t.position[0].length,M=u.mallocFloat(2*this.count),A=0,T=0;A<this.counts.length;A++){var S=e.counts[A];if(w)for(var E=0;E<S;E++)M[T++]=t.position[2*A],M[T++]=t.position[2*A+1];else for(var C=0;C<S;C++)M[T++]=t.position[A][0],M[T++]=t.position[A][1]}this.position.call?this.position({type:\\\"float\\\",data:M}):this.position=this.regl.buffer({type:\\\"float\\\",data:M}),u.freeFloat(M)}else this.position.destroy&&this.position.destroy(),this.position={constant:t.position};if(t.text||a){var L=u.mallocUint8(this.count),z=u.mallocFloat(2*this.count);this.textWidth=[];for(var O=0,I=0;O<this.counts.length;O++){for(var P=e.counts[O],D=e.font[O]||e.font[0],R=e.fontAtlas[O]||e.fontAtlas[0],B=0;B<P;B++){var F=e.text.charAt(I),N=e.text.charAt(I-1);if(L[I]=R.ids[F],z[2*I]=D.width[F],B){var j=z[2*I-2],V=z[2*I],U=z[2*I-1]+.5*j+.5*V;if(e.kerning){var q=D.kerning[N+F];q&&(U+=.001*q)}z[2*I+1]=U}else z[2*I+1]=.5*z[2*I];I++}e.textWidth.push(z.length?.5*z[2*I-2]+z[2*I-1]:0)}t.align||(t.align=this.align),this.charBuffer({data:L,type:\\\"uint8\\\",usage:\\\"stream\\\"}),this.sizeBuffer({data:z,type:\\\"float\\\",usage:\\\"stream\\\"}),u.freeUint8(L),u.freeFloat(z),r.length&&this.font.forEach(function(t,r){var n=e.fontAtlas[r],i=n.step,a=Math.floor(k.maxAtlasSize/i),o=Math.min(a,n.chars.length),s=Math.ceil(n.chars.length/o),l=x(o*i),u=x(s*i);n.width=l,n.height=u,n.rows=s,n.cols=o,n.em&&n.texture({data:c({canvas:k.atlasCanvas,font:n.fontString,chars:n.chars,shape:[l,u],step:[i,i]})})})}if(t.align&&(this.align=t.align,this.alignOffset=this.textWidth.map(function(t,r){var n=Array.isArray(e.align)?e.align.length>1?e.align[r]:e.align[0]:e.align;if(\\\"number\\\"==typeof n)return n;switch(n){case\\\"right\\\":case\\\"end\\\":return-t;case\\\"center\\\":case\\\"centre\\\":case\\\"middle\\\":return.5*-t}return 0})),null==this.baseline&&null==t.baseline&&(t.baseline=0),null!=t.baseline&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map(function(t,r){var n=(e.font[r]||e.font[0]).metrics,i=0;return i+=.5*n.bottom,i+=\\\"number\\\"==typeof t?t-n.baseline:-n[t],k.normalViewport||(i*=-1),i})),null!=t.color)if(t.color||(t.color=\\\"transparent\\\"),\\\"string\\\"!=typeof t.color&&isNaN(t.color)){var H;if(\\\"number\\\"==typeof t.color[0]&&t.color.length>this.counts.length){var G=t.color.length;H=u.mallocUint8(G);for(var W=(t.color.subarray||t.color.slice).bind(t.color),Y=0;Y<G;Y+=4)H.set(l(W(Y,Y+4),\\\"uint8\\\"),Y)}else{var X=t.color.length;H=u.mallocUint8(4*X);for(var Z=0;Z<X;Z++)H.set(l(t.color[Z]||0,\\\"uint8\\\"),4*Z)}this.color=H}else this.color=l(t.color,\\\"uint8\\\");if(t.position||t.text||t.color||t.baseline||t.align||t.font||t.offset||t.opacity)if(this.color.length>4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var $=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($);for(var J=0;J<this.batch.length;J++)e.batch[J]={count:e.counts.length>1?e.counts[J]:e.counts[0],offset:e.textOffsets.length>1?e.textOffsets[J]:e.textOffsets[0],color:e.color?e.color.length<=4?e.color:e.color.subarray(4*J,4*J+4):[0,0,0,255],opacity:Array.isArray(e.opacity)?e.opacity[J]:e.opacity,baseline:null!=e.baselineOffset[J]?e.baselineOffset[J]:e.baselineOffset[0],align:e.align?null!=e.alignOffset[J]?e.alignOffset[J]:e.alignOffset[0]:0,atlas:e.fontAtlas[J]||e.fontAtlas[0],positionOffset:e.positionOffset.length>2?e.positionOffset.subarray(2*J,2*J+2):e.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=[]},k.prototype.destroy=function(){},k.prototype.kerning=!0,k.prototype.position={constant:new Float32Array(2)},k.prototype.translate=null,k.prototype.scale=null,k.prototype.font=null,k.prototype.text=\\\"\\\",k.prototype.positionOffset=[0,0],k.prototype.opacity=1,k.prototype.color=new Uint8Array([0,0,0,255]),k.prototype.alignOffset=[0,0],k.normalViewport=!1,k.maxAtlasSize=1024,k.atlasCanvas=document.createElement(\\\"canvas\\\"),k.atlasContext=k.atlasCanvas.getContext(\\\"2d\\\",{alpha:!1}),k.baseFontSize=64,k.fonts={},e.exports=k},{\\\"bit-twiddle\\\":80,\\\"color-normalize\\\":108,\\\"css-font\\\":127,\\\"detect-kerning\\\":151,\\\"es6-weak-map\\\":209,\\\"flatten-vertex-data\\\":216,\\\"font-atlas\\\":217,\\\"font-measure\\\":218,\\\"gl-util/context\\\":306,\\\"is-plain-obj\\\":405,\\\"object-assign\\\":437,\\\"parse-rect\\\":442,\\\"parse-unit\\\":444,\\\"pick-by-alias\\\":448,regl:478,\\\"to-px\\\":516,\\\"typedarray-pool\\\":522}],305:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"ndarray\\\"),i=t(\\\"ndarray-ops\\\"),a=t(\\\"typedarray-pool\\\");e.exports=function(t){if(arguments.length<=1)throw new Error(\\\"gl-texture2d: Missing arguments for texture2d constructor\\\");o||function(t){o=[t.LINEAR,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_NEAREST],s=[t.NEAREST,t.LINEAR,t.NEAREST_MIPMAP_NEAREST,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_LINEAR],l=[t.REPEAT,t.CLAMP_TO_EDGE,t.MIRRORED_REPEAT]}(t);if(\\\"number\\\"==typeof arguments[1])return v(t,arguments[1],arguments[2],arguments[3]||t.RGBA,arguments[4]||t.UNSIGNED_BYTE);if(Array.isArray(arguments[1]))return v(t,0|arguments[1][0],0|arguments[1][1],arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if(\\\"object\\\"==typeof arguments[1]){var e=arguments[1],r=c(e)?e:e.raw;if(r)return function(t,e,r,n,i,a){var o=g(t);return t.texImage2D(t.TEXTURE_2D,0,i,i,a,e),new h(t,o,r,n,i,a)}(t,r,0|e.width,0|e.height,arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if(e.shape&&e.data&&e.stride)return function(t,e){var r=e.dtype,o=e.shape.slice(),s=t.getParameter(t.MAX_TEXTURE_SIZE);if(o[0]<0||o[0]>s||o[1]<0||o[1]>s)throw new Error(\\\"gl-texture2d: Invalid texture size\\\");var l=d(o,e.stride.slice()),c=0;\\\"float32\\\"===r?c=t.FLOAT:\\\"float64\\\"===r?(c=t.FLOAT,l=!1,r=\\\"float32\\\"):\\\"uint8\\\"===r?c=t.UNSIGNED_BYTE:(c=t.UNSIGNED_BYTE,l=!1,r=\\\"uint8\\\");var f,p,v=0;if(2===o.length)v=t.LUMINANCE,o=[o[0],o[1],1],e=n(e.data,o,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==o.length)throw new Error(\\\"gl-texture2d: Invalid shape for texture\\\");if(1===o[2])v=t.ALPHA;else if(2===o[2])v=t.LUMINANCE_ALPHA;else if(3===o[2])v=t.RGB;else{if(4!==o[2])throw new Error(\\\"gl-texture2d: Invalid shape for pixel coords\\\");v=t.RGBA}}c!==t.FLOAT||t.getExtension(\\\"OES_texture_float\\\")||(c=t.UNSIGNED_BYTE,l=!1);var m=e.size;if(l)f=0===e.offset&&e.data.length===m?e.data:e.data.subarray(e.offset,e.offset+m);else{var y=[o[2],o[2]*o[0],1];p=a.malloc(m,r);var x=n(p,o,y,0);\\\"float32\\\"!==r&&\\\"float64\\\"!==r||c!==t.UNSIGNED_BYTE?i.assign(x,e):u(x,e),f=p.subarray(0,m)}var b=g(t);t.texImage2D(t.TEXTURE_2D,0,v,o[0],o[1],0,v,c,f),l||a.free(p);return new h(t,b,o[0],o[1],v,c)}(t,e)}throw new Error(\\\"gl-texture2d: Invalid arguments for texture2d constructor\\\")};var o=null,s=null,l=null;function c(t){return\\\"undefined\\\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\\\"undefined\\\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\\\"undefined\\\"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||\\\"undefined\\\"!=typeof ImageData&&t instanceof ImageData}var u=function(t,e){i.muls(t,e,255)};function f(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error(\\\"gl-texture2d: Invalid texture size\\\");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function h(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var p=h.prototype;function d(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function g(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function v(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error(\\\"gl-texture2d: Invalid texture shape\\\");if(i===t.FLOAT&&!t.getExtension(\\\"OES_texture_float\\\"))throw new Error(\\\"gl-texture2d: Floating point textures not supported on this platform\\\");var o=g(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new h(t,o,e,r,n,i)}Object.defineProperties(p,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension(\\\"OES_texture_float_linear\\\")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error(\\\"gl-texture2d: Unknown filter mode \\\"+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension(\\\"OES_texture_float_linear\\\")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error(\\\"gl-texture2d: Unknown filter mode \\\"+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension(\\\"EXT_texture_filter_anisotropic\\\");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error(\\\"gl-texture2d: Unknown wrap mode \\\"+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error(\\\"gl-texture2d: Unknown wrap mode \\\"+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error(\\\"gl-texture2d: Must specify wrap mode for rows and columns\\\");for(var e=0;e<2;++e)if(l.indexOf(t[e])<0)throw new Error(\\\"gl-texture2d: Unknown wrap mode \\\"+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error(\\\"gl-texture2d: Invalid texture shape\\\")}else t=[0|t,0|t];return f(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return f(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,f(this,this._shape[0],t),t}}}),p.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},p.dispose=function(){this.gl.deleteTexture(this.handle)},p.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},p.setPixels=function(t,e,r,o){var s=this.gl;this.bind(),Array.isArray(e)?(o=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),o=o||0;var l=c(t)?t:t.raw;if(l){this._mipLevels.indexOf(o)<0?(s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,this.type,l),this._mipLevels.push(o)):s.texSubImage2D(s.TEXTURE_2D,o,e,r,this.format,this.type,l)}else{if(!(t.shape&&t.stride&&t.data))throw new Error(\\\"gl-texture2d: Unsupported data type\\\");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>o||r+t.shape[0]>this._shape[0]>>>o||e<0||r<0)throw new Error(\\\"gl-texture2d: Texture dimensions are out of bounds\\\");!function(t,e,r,o,s,l,c,f){var h=f.dtype,p=f.shape.slice();if(p.length<2||p.length>3)throw new Error(\\\"gl-texture2d: Invalid ndarray, must be 2d or 3d\\\");var g=0,v=0,m=d(p,f.stride.slice());\\\"float32\\\"===h?g=t.FLOAT:\\\"float64\\\"===h?(g=t.FLOAT,m=!1,h=\\\"float32\\\"):\\\"uint8\\\"===h?g=t.UNSIGNED_BYTE:(g=t.UNSIGNED_BYTE,m=!1,h=\\\"uint8\\\");if(2===p.length)v=t.LUMINANCE,p=[p[0],p[1],1],f=n(f.data,p,[f.stride[0],f.stride[1],1],f.offset);else{if(3!==p.length)throw new Error(\\\"gl-texture2d: Invalid shape for texture\\\");if(1===p[2])v=t.ALPHA;else if(2===p[2])v=t.LUMINANCE_ALPHA;else if(3===p[2])v=t.RGB;else{if(4!==p[2])throw new Error(\\\"gl-texture2d: Invalid shape for pixel coords\\\");v=t.RGBA}p[2]}v!==t.LUMINANCE&&v!==t.ALPHA||s!==t.LUMINANCE&&s!==t.ALPHA||(v=s);if(v!==s)throw new Error(\\\"gl-texture2d: Incompatible texture format for setPixels\\\");var y=f.size,x=c.indexOf(o)<0;x&&c.push(o);if(g===l&&m)0===f.offset&&f.data.length===y?x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,f.data):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,f.data):x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,f.data.subarray(f.offset,f.offset+y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,f.data.subarray(f.offset,f.offset+y));else{var b;b=l===t.FLOAT?a.mallocFloat32(y):a.mallocUint8(y);var _=n(b,p,[p[2],p[2]*p[0],1]);g===t.FLOAT&&l===t.UNSIGNED_BYTE?u(_,f):i.assign(_,f),x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,b.subarray(0,y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,b.subarray(0,y)),l===t.FLOAT?a.freeFloat32(b):a.freeUint8(b)}}(s,e,r,o,this.format,this.type,this._mipLevels,t)}}},{ndarray:433,\\\"ndarray-ops\\\":427,\\\"typedarray-pool\\\":522}],306:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"pick-by-alias\\\");function i(t){if(t.container)if(t.container==document.body)document.body.style.width||(t.canvas.width=t.width||t.pixelRatio*window.innerWidth),document.body.style.height||(t.canvas.height=t.height||t.pixelRatio*window.innerHeight);else{var e=t.container.getBoundingClientRect();t.canvas.width=t.width||e.right-e.left,t.canvas.height=t.height||e.bottom-e.top}}function a(t){return\\\"function\\\"==typeof t.getContext&&\\\"width\\\"in t&&\\\"height\\\"in t}e.exports=function(t){var e;if(t?\\\"string\\\"==typeof t&&(t={container:t}):t={},a(t)?t={container:t}:t=\\\"string\\\"==typeof(e=t).nodeName&&\\\"function\\\"==typeof e.appendChild&&\\\"function\\\"==typeof e.getBoundingClientRect?{container:t}:function(t){return\\\"function\\\"==typeof t.drawArrays||\\\"function\\\"==typeof t.drawElements}(t)?{gl:t}:n(t,{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\\\"},!0),t.pixelRatio||(t.pixelRatio=window.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if(\\\"string\\\"==typeof t.container){var r=document.querySelector(t.container);if(!r)throw Error(\\\"Element \\\"+t.container+\\\" is not found\\\");t.container=r}a(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=document.createElement(\\\"canvas\\\"),t.container.appendChild(t.canvas),i(t))}else t.canvas||(t.container=document.body||document.documentElement,t.canvas=document.createElement(\\\"canvas\\\"),t.canvas.style.position=\\\"absolute\\\",t.canvas.style.top=0,t.canvas.style.left=0,t.container.appendChild(t.canvas),i(t));if(!t.gl)try{t.gl=t.canvas.getContext(\\\"webgl\\\",t.attrs)}catch(e){try{t.gl=t.canvas.getContext(\\\"experimental-webgl\\\",t.attrs)}catch(e){t.gl=t.canvas.getContext(\\\"webgl-experimental\\\",t.attrs)}}return t.gl}},{\\\"pick-by-alias\\\":448}],307:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error(\\\"gl-vao: Too many vertex attributes\\\");for(var i=0;i<r.length;++i){var a=r[i];if(a.buffer){var o=a.buffer,s=a.size||4,l=a.type||t.FLOAT,c=!!a.normalized,u=a.stride||0,f=a.offset||0;o.bind(),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,s,l,c,u,f)}else{if(\\\"number\\\"==typeof a)t.vertexAttrib1f(i,a);else if(1===a.length)t.vertexAttrib1f(i,a[0]);else if(2===a.length)t.vertexAttrib2f(i,a[0],a[1]);else if(3===a.length)t.vertexAttrib3f(i,a[0],a[1],a[2]);else{if(4!==a.length)throw new Error(\\\"gl-vao: Invalid vertex attribute\\\");t.vertexAttrib4f(i,a[0],a[1],a[2],a[3])}t.disableVertexAttribArray(i)}}for(;i<n;++i)t.disableVertexAttribArray(i)}else for(t.bindBuffer(t.ARRAY_BUFFER,null),i=0;i<n;++i)t.disableVertexAttribArray(i)}},{}],308:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./do-bind.js\\\");function i(t){this.gl=t,this._elements=null,this._attributes=null,this._elementsType=t.UNSIGNED_SHORT}i.prototype.bind=function(){n(this.gl,this._elements,this._attributes)},i.prototype.update=function(t,e,r){this._elements=e,this._attributes=t,this._elementsType=r||this.gl.UNSIGNED_SHORT},i.prototype.dispose=function(){},i.prototype.unbind=function(){},i.prototype.draw=function(t,e,r){r=r||0;var n=this.gl;this._elements?n.drawElements(t,e,this._elementsType,r):n.drawArrays(t,r,e)},e.exports=function(t){return new i(t)}},{\\\"./do-bind.js\\\":307}],309:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./do-bind.js\\\");function i(t,e,r,n,i,a){this.location=t,this.dimension=e,this.a=r,this.b=n,this.c=i,this.d=a}function a(t,e,r){this.gl=t,this._ext=e,this.handle=r,this._attribs=[],this._useElements=!1,this._elementsType=t.UNSIGNED_SHORT}i.prototype.bind=function(t){switch(this.dimension){case 1:t.vertexAttrib1f(this.location,this.a);break;case 2:t.vertexAttrib2f(this.location,this.a,this.b);break;case 3:t.vertexAttrib3f(this.location,this.a,this.b,this.c);break;case 4:t.vertexAttrib4f(this.location,this.a,this.b,this.c,this.d)}},a.prototype.bind=function(){this._ext.bindVertexArrayOES(this.handle);for(var t=0;t<this._attribs.length;++t)this._attribs[t].bind(this.gl)},a.prototype.unbind=function(){this._ext.bindVertexArrayOES(null)},a.prototype.dispose=function(){this._ext.deleteVertexArrayOES(this.handle)},a.prototype.update=function(t,e,r){if(this.bind(),n(this.gl,e,t),this.unbind(),this._attribs.length=0,t)for(var a=0;a<t.length;++a){var o=t[a];\\\"number\\\"==typeof o?this._attribs.push(new i(a,1,o)):Array.isArray(o)&&this._attribs.push(new i(a,o.length,o[0],o[1],o[2],o[3]))}this._useElements=!!e,this._elementsType=r||this.gl.UNSIGNED_SHORT},a.prototype.draw=function(t,e,r){r=r||0;var n=this.gl;this._useElements?n.drawElements(t,e,this._elementsType,r):n.drawArrays(t,r,e)},e.exports=function(t,e){return new a(t,e,e.createVertexArrayOES())}},{\\\"./do-bind.js\\\":307}],310:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/vao-native.js\\\"),i=t(\\\"./lib/vao-emulated.js\\\");function a(t){this.bindVertexArrayOES=t.bindVertexArray.bind(t),this.createVertexArrayOES=t.createVertexArray.bind(t),this.deleteVertexArrayOES=t.deleteVertexArray.bind(t)}e.exports=function(t,e,r,o){var s,l=t.createVertexArray?new a(t):t.getExtension(\\\"OES_vertex_array_object\\\");return(s=l?n(t,l):i(t)).update(e,r,o),s}},{\\\"./lib/vao-emulated.js\\\":308,\\\"./lib/vao-native.js\\\":309}],311:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}},{}],312:[function(t,e,r){e.exports=function(t,e){var r=n(t[0],t[1],t[2]),o=n(e[0],e[1],e[2]);i(r,r),i(o,o);var s=a(r,o);return s>1?0:Math.acos(s)};var n=t(\\\"./fromValues\\\"),i=t(\\\"./normalize\\\"),a=t(\\\"./dot\\\")},{\\\"./dot\\\":322,\\\"./fromValues\\\":328,\\\"./normalize\\\":339}],313:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}},{}],314:[function(t,e,r){e.exports=function(t){var e=new Float32Array(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},{}],315:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},{}],316:[function(t,e,r){e.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},{}],317:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t}},{}],318:[function(t,e,r){e.exports=t(\\\"./distance\\\")},{\\\"./distance\\\":319}],319:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}},{}],320:[function(t,e,r){e.exports=t(\\\"./divide\\\")},{\\\"./divide\\\":321}],321:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}},{}],322:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},{}],323:[function(t,e,r){e.exports=1e-6},{}],324:[function(t,e,r){e.exports=function(t,e){var r=t[0],i=t[1],a=t[2],o=e[0],s=e[1],l=e[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=n*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-l)<=n*Math.max(1,Math.abs(a),Math.abs(l))};var n=t(\\\"./epsilon\\\")},{\\\"./epsilon\\\":323}],325:[function(t,e,r){e.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},{}],326:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}},{}],327:[function(t,e,r){e.exports=function(t,e,r,i,a,o){var s,l;e||(e=3);r||(r=0);l=i?Math.min(i*e+r,t.length):t.length;for(s=r;s<l;s+=e)n[0]=t[s],n[1]=t[s+1],n[2]=t[s+2],a(n,n,o),t[s]=n[0],t[s+1]=n[1],t[s+2]=n[2];return t};var n=t(\\\"./create\\\")()},{\\\"./create\\\":316}],328:[function(t,e,r){e.exports=function(t,e,r){var n=new Float32Array(3);return n[0]=t,n[1]=e,n[2]=r,n}},{}],329:[function(t,e,r){e.exports={EPSILON:t(\\\"./epsilon\\\"),create:t(\\\"./create\\\"),clone:t(\\\"./clone\\\"),angle:t(\\\"./angle\\\"),fromValues:t(\\\"./fromValues\\\"),copy:t(\\\"./copy\\\"),set:t(\\\"./set\\\"),equals:t(\\\"./equals\\\"),exactEquals:t(\\\"./exactEquals\\\"),add:t(\\\"./add\\\"),subtract:t(\\\"./subtract\\\"),sub:t(\\\"./sub\\\"),multiply:t(\\\"./multiply\\\"),mul:t(\\\"./mul\\\"),divide:t(\\\"./divide\\\"),div:t(\\\"./div\\\"),min:t(\\\"./min\\\"),max:t(\\\"./max\\\"),floor:t(\\\"./floor\\\"),ceil:t(\\\"./ceil\\\"),round:t(\\\"./round\\\"),scale:t(\\\"./scale\\\"),scaleAndAdd:t(\\\"./scaleAndAdd\\\"),distance:t(\\\"./distance\\\"),dist:t(\\\"./dist\\\"),squaredDistance:t(\\\"./squaredDistance\\\"),sqrDist:t(\\\"./sqrDist\\\"),length:t(\\\"./length\\\"),len:t(\\\"./len\\\"),squaredLength:t(\\\"./squaredLength\\\"),sqrLen:t(\\\"./sqrLen\\\"),negate:t(\\\"./negate\\\"),inverse:t(\\\"./inverse\\\"),normalize:t(\\\"./normalize\\\"),dot:t(\\\"./dot\\\"),cross:t(\\\"./cross\\\"),lerp:t(\\\"./lerp\\\"),random:t(\\\"./random\\\"),transformMat4:t(\\\"./transformMat4\\\"),transformMat3:t(\\\"./transformMat3\\\"),transformQuat:t(\\\"./transformQuat\\\"),rotateX:t(\\\"./rotateX\\\"),rotateY:t(\\\"./rotateY\\\"),rotateZ:t(\\\"./rotateZ\\\"),forEach:t(\\\"./forEach\\\")}},{\\\"./add\\\":311,\\\"./angle\\\":312,\\\"./ceil\\\":313,\\\"./clone\\\":314,\\\"./copy\\\":315,\\\"./create\\\":316,\\\"./cross\\\":317,\\\"./dist\\\":318,\\\"./distance\\\":319,\\\"./div\\\":320,\\\"./divide\\\":321,\\\"./dot\\\":322,\\\"./epsilon\\\":323,\\\"./equals\\\":324,\\\"./exactEquals\\\":325,\\\"./floor\\\":326,\\\"./forEach\\\":327,\\\"./fromValues\\\":328,\\\"./inverse\\\":330,\\\"./len\\\":331,\\\"./length\\\":332,\\\"./lerp\\\":333,\\\"./max\\\":334,\\\"./min\\\":335,\\\"./mul\\\":336,\\\"./multiply\\\":337,\\\"./negate\\\":338,\\\"./normalize\\\":339,\\\"./random\\\":340,\\\"./rotateX\\\":341,\\\"./rotateY\\\":342,\\\"./rotateZ\\\":343,\\\"./round\\\":344,\\\"./scale\\\":345,\\\"./scaleAndAdd\\\":346,\\\"./set\\\":347,\\\"./sqrDist\\\":348,\\\"./sqrLen\\\":349,\\\"./squaredDistance\\\":350,\\\"./squaredLength\\\":351,\\\"./sub\\\":352,\\\"./subtract\\\":353,\\\"./transformMat3\\\":354,\\\"./transformMat4\\\":355,\\\"./transformQuat\\\":356}],330:[function(t,e,r){e.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}},{}],331:[function(t,e,r){e.exports=t(\\\"./length\\\")},{\\\"./length\\\":332}],332:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}},{}],333:[function(t,e,r){e.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t}},{}],334:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}},{}],335:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}},{}],336:[function(t,e,r){e.exports=t(\\\"./multiply\\\")},{\\\"./multiply\\\":337}],337:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}},{}],338:[function(t,e,r){e.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}},{}],339:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=r*r+n*n+i*i;a>0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a);return t}},{}],340:[function(t,e,r){e.exports=function(t,e){e=e||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}},{}],341:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[1],a=r[2],o=e[1]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=e[0],t[1]=i+o*c-s*l,t[2]=a+o*l+s*c,t}},{}],342:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[2],o=e[0]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+s*l+o*c,t[1]=e[1],t[2]=a+s*c-o*l,t}},{}],343:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[1],o=e[0]-i,s=e[1]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+o*c-s*l,t[1]=a+o*l+s*c,t[2]=e[2],t}},{}],344:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}},{}],345:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}},{}],346:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}},{}],347:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},{}],348:[function(t,e,r){e.exports=t(\\\"./squaredDistance\\\")},{\\\"./squaredDistance\\\":350}],349:[function(t,e,r){e.exports=t(\\\"./squaredLength\\\")},{\\\"./squaredLength\\\":351}],350:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}},{}],351:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}},{}],352:[function(t,e,r){e.exports=t(\\\"./subtract\\\")},{\\\"./subtract\\\":353}],353:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}},{}],354:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},{}],355:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,t}},{}],356:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t}},{}],357:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}},{}],358:[function(t,e,r){e.exports=function(t){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},{}],359:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}},{}],360:[function(t,e,r){e.exports=function(){var t=new Float32Array(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}},{}],361:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+a*a)}},{}],362:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}},{}],363:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}},{}],364:[function(t,e,r){e.exports=function(t,e,r,n){var i=new Float32Array(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}},{}],365:[function(t,e,r){e.exports={create:t(\\\"./create\\\"),clone:t(\\\"./clone\\\"),fromValues:t(\\\"./fromValues\\\"),copy:t(\\\"./copy\\\"),set:t(\\\"./set\\\"),add:t(\\\"./add\\\"),subtract:t(\\\"./subtract\\\"),multiply:t(\\\"./multiply\\\"),divide:t(\\\"./divide\\\"),min:t(\\\"./min\\\"),max:t(\\\"./max\\\"),scale:t(\\\"./scale\\\"),scaleAndAdd:t(\\\"./scaleAndAdd\\\"),distance:t(\\\"./distance\\\"),squaredDistance:t(\\\"./squaredDistance\\\"),length:t(\\\"./length\\\"),squaredLength:t(\\\"./squaredLength\\\"),negate:t(\\\"./negate\\\"),inverse:t(\\\"./inverse\\\"),normalize:t(\\\"./normalize\\\"),dot:t(\\\"./dot\\\"),lerp:t(\\\"./lerp\\\"),random:t(\\\"./random\\\"),transformMat4:t(\\\"./transformMat4\\\"),transformQuat:t(\\\"./transformQuat\\\")}},{\\\"./add\\\":357,\\\"./clone\\\":358,\\\"./copy\\\":359,\\\"./create\\\":360,\\\"./distance\\\":361,\\\"./divide\\\":362,\\\"./dot\\\":363,\\\"./fromValues\\\":364,\\\"./inverse\\\":366,\\\"./length\\\":367,\\\"./lerp\\\":368,\\\"./max\\\":369,\\\"./min\\\":370,\\\"./multiply\\\":371,\\\"./negate\\\":372,\\\"./normalize\\\":373,\\\"./random\\\":374,\\\"./scale\\\":375,\\\"./scaleAndAdd\\\":376,\\\"./set\\\":377,\\\"./squaredDistance\\\":378,\\\"./squaredLength\\\":379,\\\"./subtract\\\":380,\\\"./transformMat4\\\":381,\\\"./transformQuat\\\":382}],366:[function(t,e,r){e.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}},{}],367:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}},{}],368:[function(t,e,r){e.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2],s=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t[3]=s+n*(r[3]-s),t}},{}],369:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}},{}],370:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}},{}],371:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}},{}],372:[function(t,e,r){e.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}},{}],373:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*r+n*n+i*i+a*a;o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=a*o);return t}},{}],374:[function(t,e,r){var n=t(\\\"./normalize\\\"),i=t(\\\"./scale\\\");e.exports=function(t,e){return e=e||1,t[0]=Math.random(),t[1]=Math.random(),t[2]=Math.random(),t[3]=Math.random(),n(t,t),i(t,t,e),t}},{\\\"./normalize\\\":373,\\\"./scale\\\":375}],375:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}},{}],376:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}},{}],377:[function(t,e,r){e.exports=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}},{}],378:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}},{}],379:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}},{}],380:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}},{}],381:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},{}],382:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t[3]=e[3],t}},{}],383:[function(t,e,r){e.exports=function(t,e,r,a){return n[0]=a,n[1]=r,n[2]=e,n[3]=t,i[0]};var n=new Uint8Array(4),i=new Float32Array(n.buffer)},{}],384:[function(t,e,r){var n=t(\\\"glsl-tokenizer\\\"),i=t(\\\"atob-lite\\\");e.exports=function(t){for(var e=Array.isArray(t)?t:n(t),r=0;r<e.length;r++){var a=e[r];if(\\\"preprocessor\\\"===a.type){var o=a.data.match(/\\\\#define\\\\s+SHADER_NAME(_B64)?\\\\s+(.+)$/);if(o&&o[2]){var s=o[1],l=o[2];return(s?i(l):l).trim()}}}}},{\\\"atob-lite\\\":60,\\\"glsl-tokenizer\\\":391}],385:[function(t,e,r){e.exports=function(t){var e,r,k,M=0,A=0,T=l,S=[],E=[],C=1,L=0,z=0,O=!1,I=!1,P=\\\"\\\",D=a,R=n;\\\"300 es\\\"===(t=t||{}).version&&(D=s,R=o);return function(t){return E=[],null!==t?function(t){var r;M=0,k=(P+=t).length;for(;e=P[M],M<k;){switch(r=M,T){case u:M=V();break;case f:case h:M=j();break;case p:M=U();break;case d:M=G();break;case _:M=H();break;case g:M=W();break;case c:M=Y();break;case x:M=N();break;case l:M=F()}if(r!==M)switch(P[r]){case\\\"\\\\n\\\":L=0,++C;break;default:++L}}return A+=M,P=P.slice(M),E}(t.replace?t.replace(/\\\\r\\\\n/g,\\\"\\\\n\\\"):t):function(t){S.length&&B(S.join(\\\"\\\"));return T=b,B(\\\"(eof)\\\"),E}()};function B(t){t.length&&E.push({type:w[T],data:t,position:z,line:C,column:L})}function F(){return S=S.length?[]:S,\\\"/\\\"===r&&\\\"*\\\"===e?(z=A+M-1,T=u,r=e,M+1):\\\"/\\\"===r&&\\\"/\\\"===e?(z=A+M-1,T=f,r=e,M+1):\\\"#\\\"===e?(T=h,z=A+M,M):/\\\\s/.test(e)?(T=x,z=A+M,M):(O=/\\\\d/.test(e),I=/[^\\\\w_]/.test(e),z=A+M,T=O?d:I?p:c,M)}function N(){return/[^\\\\s]/g.test(e)?(B(S.join(\\\"\\\")),T=l,M):(S.push(e),r=e,M+1)}function j(){return\\\"\\\\r\\\"!==e&&\\\"\\\\n\\\"!==e||\\\"\\\\\\\\\\\"===r?(S.push(e),r=e,M+1):(B(S.join(\\\"\\\")),T=l,M)}function V(){return\\\"/\\\"===e&&\\\"*\\\"===r?(S.push(e),B(S.join(\\\"\\\")),T=l,M+1):(S.push(e),r=e,M+1)}function U(){if(\\\".\\\"===r&&/\\\\d/.test(e))return T=g,M;if(\\\"/\\\"===r&&\\\"*\\\"===e)return T=u,M;if(\\\"/\\\"===r&&\\\"/\\\"===e)return T=f,M;if(\\\".\\\"===e&&S.length){for(;q(S););return T=g,M}if(\\\";\\\"===e||\\\")\\\"===e||\\\"(\\\"===e){if(S.length)for(;q(S););return B(e),T=l,M+1}var t=2===S.length&&\\\"=\\\"!==e;if(/[\\\\w_\\\\d\\\\s]/.test(e)||t){for(;q(S););return T=l,M}return S.push(e),r=e,M+1}function q(t){for(var e,r,n=0;;){if(e=i.indexOf(t.slice(0,t.length+n).join(\\\"\\\")),r=i[e],-1===e){if(n--+t.length>0)continue;r=t.slice(0,1).join(\\\"\\\")}return B(r),z+=r.length,(S=S.slice(r.length)).length}}function H(){return/[^a-fA-F0-9]/.test(e)?(B(S.join(\\\"\\\")),T=l,M):(S.push(e),r=e,M+1)}function G(){return\\\".\\\"===e?(S.push(e),T=g,r=e,M+1):/[eE]/.test(e)?(S.push(e),T=g,r=e,M+1):\\\"x\\\"===e&&1===S.length&&\\\"0\\\"===S[0]?(T=_,S.push(e),r=e,M+1):/[^\\\\d]/.test(e)?(B(S.join(\\\"\\\")),T=l,M):(S.push(e),r=e,M+1)}function W(){return\\\"f\\\"===e&&(S.push(e),r=e,M+=1),/[eE]/.test(e)?(S.push(e),r=e,M+1):\\\"-\\\"===e&&/[eE]/.test(r)?(S.push(e),r=e,M+1):/[^\\\\d]/.test(e)?(B(S.join(\\\"\\\")),T=l,M):(S.push(e),r=e,M+1)}function Y(){if(/[^\\\\d\\\\w_]/.test(e)){var t=S.join(\\\"\\\");return T=R.indexOf(t)>-1?y:D.indexOf(t)>-1?m:v,B(S.join(\\\"\\\")),T=l,M}return S.push(e),r=e,M+1}};var n=t(\\\"./lib/literals\\\"),i=t(\\\"./lib/operators\\\"),a=t(\\\"./lib/builtins\\\"),o=t(\\\"./lib/literals-300es\\\"),s=t(\\\"./lib/builtins-300es\\\"),l=999,c=9999,u=0,f=1,h=2,p=3,d=4,g=5,v=6,m=7,y=8,x=9,b=10,_=11,w=[\\\"block-comment\\\",\\\"line-comment\\\",\\\"preprocessor\\\",\\\"operator\\\",\\\"integer\\\",\\\"float\\\",\\\"ident\\\",\\\"builtin\\\",\\\"keyword\\\",\\\"whitespace\\\",\\\"eof\\\",\\\"integer\\\"]},{\\\"./lib/builtins\\\":387,\\\"./lib/builtins-300es\\\":386,\\\"./lib/literals\\\":389,\\\"./lib/literals-300es\\\":388,\\\"./lib/operators\\\":390}],386:[function(t,e,r){var n=t(\\\"./builtins\\\");n=n.slice().filter(function(t){return!/^(gl\\\\_|texture)/.test(t)}),e.exports=n.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\\\":387}],387:[function(t,e,r){e.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\\\"]},{}],388:[function(t,e,r){var n=t(\\\"./literals\\\");e.exports=n.slice().concat([\\\"layout\\\",\\\"centroid\\\",\\\"smooth\\\",\\\"case\\\",\\\"mat2x2\\\",\\\"mat2x3\\\",\\\"mat2x4\\\",\\\"mat3x2\\\",\\\"mat3x3\\\",\\\"mat3x4\\\",\\\"mat4x2\\\",\\\"mat4x3\\\",\\\"mat4x4\\\",\\\"uint\\\",\\\"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\\\":389}],389:[function(t,e,r){e.exports=[\\\"precision\\\",\\\"highp\\\",\\\"mediump\\\",\\\"lowp\\\",\\\"attribute\\\",\\\"const\\\",\\\"uniform\\\",\\\"varying\\\",\\\"break\\\",\\\"continue\\\",\\\"do\\\",\\\"for\\\",\\\"while\\\",\\\"if\\\",\\\"else\\\",\\\"in\\\",\\\"out\\\",\\\"inout\\\",\\\"float\\\",\\\"int\\\",\\\"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\\\"]},{}],390:[function(t,e,r){e.exports=[\\\"<<=\\\",\\\">>=\\\",\\\"++\\\",\\\"--\\\",\\\"<<\\\",\\\">>\\\",\\\"<=\\\",\\\">=\\\",\\\"==\\\",\\\"!=\\\",\\\"&&\\\",\\\"||\\\",\\\"+=\\\",\\\"-=\\\",\\\"*=\\\",\\\"/=\\\",\\\"%=\\\",\\\"&=\\\",\\\"^^\\\",\\\"^=\\\",\\\"|=\\\",\\\"(\\\",\\\")\\\",\\\"[\\\",\\\"]\\\",\\\".\\\",\\\"!\\\",\\\"~\\\",\\\"*\\\",\\\"/\\\",\\\"%\\\",\\\"+\\\",\\\"-\\\",\\\"<\\\",\\\">\\\",\\\"&\\\",\\\"^\\\",\\\"|\\\",\\\"?\\\",\\\":\\\",\\\"=\\\",\\\",\\\",\\\";\\\",\\\"{\\\",\\\"}\\\"]},{}],391:[function(t,e,r){var n=t(\\\"./index\\\");e.exports=function(t,e){var r=n(e),i=[];return i=(i=i.concat(r(t))).concat(r(null))}},{\\\"./index\\\":385}],392:[function(t,e,r){e.exports=function(t){\\\"string\\\"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n<t.length-1;n++)r.push(t[n],e[n]||\\\"\\\");return r.push(t[n]),r.join(\\\"\\\")}},{}],393:[function(t,e,r){(function(r){\\\"use strict\\\";var n,i=t(\\\"is-browser\\\");n=\\\"function\\\"==typeof r.matchMedia?!r.matchMedia(\\\"(hover: none)\\\").matches:i,e.exports=n}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"is-browser\\\":400}],394:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"is-browser\\\");e.exports=n&&function(){var t=!1;try{var e=Object.defineProperty({},\\\"passive\\\",{get:function(){t=!0}});window.addEventListener(\\\"test\\\",null,e),window.removeEventListener(\\\"test\\\",null,e)}catch(e){t=!1}return t}()},{\\\"is-browser\\\":400}],395:[function(t,e,r){r.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<<s)-1,c=l>>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},r.write=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<<c)-1,f=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*g}},{}],396:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=t.length;if(0===r)throw new Error(\\\"Must have at least d+1 points\\\");var i=t[0].length;if(r<=i)throw new Error(\\\"Must input at least d+1 points\\\");var o=t.slice(0,i+1),s=n.apply(void 0,o);if(0===s)throw new Error(\\\"Input not in general position\\\");for(var l=new Array(i+1),u=0;u<=i;++u)l[u]=u;s<0&&(l[0]=1,l[1]=0);for(var f=new a(l,new Array(i+1),!1),h=f.adjacent,p=new Array(i+2),u=0;u<=i;++u){for(var d=l.slice(),g=0;g<=i;++g)g===u&&(d[g]=-1);var v=d[0];d[0]=d[1],d[1]=v;var m=new a(d,new Array(i+1),!0);h[u]=m,p[u]=m}p[i+1]=f;for(var u=0;u<=i;++u)for(var d=h[u].vertices,y=h[u].adjacent,g=0;g<=i;++g){var x=d[g];if(x<0)y[g]=f;else for(var b=0;b<=i;++b)h[b].vertices.indexOf(x)<0&&(y[g]=h[b])}for(var _=new c(i,o,p),w=!!e,u=i+1;u<r;++u)_.insert(t[u],w);return _.boundary()};var n=t(\\\"robust-orientation\\\"),i=t(\\\"simplicial-complex\\\").compareCells;function a(t,e,r){this.vertices=t,this.adjacent=e,this.boundary=r,this.lastVisited=-1}function o(t,e,r){this.vertices=t,this.cell=e,this.index=r}function s(t,e){return i(t.vertices,e.vertices)}a.prototype.flip=function(){var t=this.vertices[0];this.vertices[0]=this.vertices[1],this.vertices[1]=t;var e=this.adjacent[0];this.adjacent[0]=this.adjacent[1],this.adjacent[1]=e};var l=[];function c(t,e,r){this.dimension=t,this.vertices=e,this.simplices=r,this.interior=r.filter(function(t){return!t.boundary}),this.tuple=new Array(t+1);for(var i=0;i<=t;++i)this.tuple[i]=this.vertices[i];var a=l[t];a||(a=l[t]=function(t){for(var e=[\\\"function orient(){var tuple=this.tuple;return test(\\\"],r=0;r<=t;++r)r>0&&e.push(\\\",\\\"),e.push(\\\"tuple[\\\",r,\\\"]\\\");e.push(\\\")}return orient\\\");var i=new Function(\\\"test\\\",e.join(\\\"\\\")),a=n[t+1];return a||(a=n),i(a)}(t)),this.orient=a}var u=c.prototype;u.handleBoundaryDegeneracy=function(t,e){var r=this.dimension,n=this.vertices.length-1,i=this.tuple,a=this.vertices,o=[t];for(t.lastVisited=-n;o.length>0;){(t=o.pop()).vertices;for(var s=t.adjacent,l=0;l<=r;++l){var c=s[l];if(c.boundary&&!(c.lastVisited<=-n)){for(var u=c.vertices,f=0;f<=r;++f){var h=u[f];i[f]=h<0?e:a[h]}var p=this.orient();if(p>0)return c;c.lastVisited=-n,0===p&&o.push(c)}}}return null},u.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,c=s.adjacent,u=0;u<=n;++u)a[u]=i[l[u]];s.lastVisited=r;for(u=0;u<=n;++u){var f=c[u];if(!(f.lastVisited>=r)){var h=a[u];a[u]=t;var p=this.orient();if(a[u]=h,p<0){s=f;continue t}f.boundary?f.lastVisited=-r:f.lastVisited=r}}return}return s},u.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,l=this.tuple,c=this.interior,u=this.simplices,f=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,c.push(e);for(var h=[];f.length>0;){var p=(e=f.pop()).vertices,d=e.adjacent,g=p.indexOf(r);if(!(g<0))for(var v=0;v<=n;++v)if(v!==g){var m=d[v];if(m.boundary&&!(m.lastVisited>=r)){var y=m.vertices;if(m.lastVisited!==-r){for(var x=0,b=0;b<=n;++b)y[b]<0?(x=b,l[b]=t):l[b]=i[y[b]];if(this.orient()>0){y[x]=r,m.boundary=!1,c.push(m),f.push(m),m.lastVisited=r;continue}m.lastVisited=-r}var _=m.adjacent,w=p.slice(),k=d.slice(),M=new a(w,k,!0);u.push(M);var A=_.indexOf(e);if(!(A<0)){_[A]=M,k[g]=m,w[v]=-1,k[v]=e,d[v]=M,M.flip();for(b=0;b<=n;++b){var T=w[b];if(!(T<0||T===r)){for(var S=new Array(n-1),E=0,C=0;C<=n;++C){var L=w[C];L<0||C===b||(S[E++]=L)}h.push(new o(S,M,b))}}}}}}h.sort(s);for(v=0;v+1<h.length;v+=2){var z=h[v],O=h[v+1],I=z.index,P=O.index;I<0||P<0||(z.cell.adjacent[z.index]=O.cell,O.cell.adjacent[O.index]=z.cell)}},u.insert=function(t,e){var r=this.vertices;r.push(t);var n=this.walk(t,e);if(n){for(var i=this.dimension,a=this.tuple,o=0;o<=i;++o){var s=n.vertices[o];a[o]=s<0?t:r[s]}var l=this.orient(a);l<0||(0!==l||(n=this.handleBoundaryDegeneracy(n,t)))&&this.addPeaks(t,n)}},u.boundary=function(){for(var t=this.dimension,e=[],r=this.simplices,n=r.length,i=0;i<n;++i){var a=r[i];if(a.boundary){for(var o=new Array(t),s=a.vertices,l=0,c=0,u=0;u<=t;++u)s[u]>=0?o[l++]=s[u]:c=1&u;if(c===(1&t)){var f=o[0];o[0]=o[1],o[1]=f}e.push(o)}}return e}},{\\\"robust-orientation\\\":486,\\\"simplicial-complex\\\":496}],397:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\"),i=0,a=1;function o(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}e.exports=function(t){if(!t||0===t.length)return new x(null);return new x(y(t))};var s=o.prototype;function l(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function c(t,e){var r=y(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function u(t,e){var r=t.intervals([]);r.push(e),c(t,r)}function f(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?i:(r.splice(n,1),c(t,r),a)}function h(t,e,r){for(var n=0;n<t.length&&t[n][0]<=e;++n){var i=r(t[n]);if(i)return i}}function p(t,e,r){for(var n=t.length-1;n>=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function d(t,e){for(var r=0;r<t.length;++r){var n=e(t[r]);if(n)return n}}function g(t,e){return t-e}function v(t,e){var r=t[0]-e[0];return r||t[1]-e[1]}function m(t,e){var r=t[1]-e[1];return r||t[0]-e[0]}function y(t){if(0===t.length)return null;for(var e=[],r=0;r<t.length;++r)e.push(t[r][0],t[r][1]);e.sort(g);var n=e[e.length>>1],i=[],a=[],s=[];for(r=0;r<t.length;++r){var l=t[r];l[1]<n?i.push(l):n<l[0]?a.push(l):s.push(l)}var c=s,u=s.slice();return c.sort(v),u.sort(m),new o(n,y(i),y(a),c,u)}function x(t){this.root=t}s.intervals=function(t){return t.push.apply(t,this.leftPoints),this.left&&this.left.intervals(t),this.right&&this.right.intervals(t),t},s.insert=function(t){var e=this.count-this.leftPoints.length;if(this.count+=1,t[1]<this.mid)this.left?4*(this.left.count+1)>3*(e+1)?u(this,t):this.left.insert(t):this.left=y([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?u(this,t):this.right.insert(t):this.right=y([t]);else{var r=n.ge(this.leftPoints,t,v),i=n.ge(this.rightPoints,t,m);this.leftPoints.splice(r,0,t),this.rightPoints.splice(i,0,t)}},s.remove=function(t){var e=this.count-this.leftPoints;if(t[1]<this.mid)return this.left?4*(this.right?this.right.count:0)>3*(e-1)?f(this,t):2===(c=this.left.remove(t))?(this.left=null,this.count-=1,a):(c===a&&(this.count-=1),c):i;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?f(this,t):2===(c=this.right.remove(t))?(this.right=null,this.count-=1,a):(c===a&&(this.count-=1),c):i;if(1===this.count)return this.leftPoints[0]===t?2:i;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,o=this.left;o.right;)r=o,o=o.right;if(r===this)o.right=this.right;else{var s=this.left,c=this.right;r.count-=o.count,r.right=o.left,o.left=s,o.right=c}l(this,o),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?l(this,this.left):l(this,this.right);return a}for(s=n.ge(this.leftPoints,t,v);s<this.leftPoints.length&&this.leftPoints[s][0]===t[0];++s)if(this.leftPoints[s]===t){this.count-=1,this.leftPoints.splice(s,1);for(c=n.ge(this.rightPoints,t,m);c<this.rightPoints.length&&this.rightPoints[c][1]===t[1];++c)if(this.rightPoints[c]===t)return this.rightPoints.splice(c,1),a}return i},s.queryPoint=function(t,e){if(t<this.mid){if(this.left)if(r=this.left.queryPoint(t,e))return r;return h(this.leftPoints,t,e)}if(t>this.mid){var r;if(this.right)if(r=this.right.queryPoint(t,e))return r;return p(this.rightPoints,t,e)}return d(this.leftPoints,e)},s.queryInterval=function(t,e,r){var n;if(t<this.mid&&this.left&&(n=this.left.queryInterval(t,e,r)))return n;if(e>this.mid&&this.right&&(n=this.right.queryInterval(t,e,r)))return n;return e<this.mid?h(this.leftPoints,e,r):t>this.mid?p(this.rightPoints,t,r):d(this.leftPoints,r)};var b=x.prototype;b.insert=function(t){this.root?this.root.insert(t):this.root=new o(t[0],null,null,[t],[t])},b.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),e!==i}return!1},b.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},b.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(b,\\\"count\\\",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(b,\\\"intervals\\\",{get:function(){return this.root?this.root.intervals([]):[]}})},{\\\"binary-search-bounds\\\":79}],398:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){e=e||new Array(t.length);for(var r=0;r<t.length;++r)e[t[r]]=r;return e}},{}],399:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=r;return e}},{}],400:[function(t,e,r){e.exports=!0},{}],401:[function(t,e,r){function n(t){return!!t.constructor&&\\\"function\\\"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}e.exports=function(t){return null!=t&&(n(t)||function(t){return\\\"function\\\"==typeof t.readFloatLE&&\\\"function\\\"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},{}],402:[function(t,e,r){\\\"use strict\\\";e.exports=\\\"undefined\\\"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\\\\//.test(navigator.appVersion))},{}],403:[function(t,e,r){\\\"use strict\\\";e.exports=a,e.exports.isMobile=a;var n=/(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(4|6)0|symbian|treo|up\\\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,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(4|6)0|symbian|treo|up\\\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function a(t){t||(t={});var e=t.ua;return e||\\\"undefined\\\"==typeof navigator||(e=navigator.userAgent),e&&e.headers&&\\\"string\\\"==typeof e.headers[\\\"user-agent\\\"]&&(e=e.headers[\\\"user-agent\\\"]),\\\"string\\\"==typeof e&&(t.tablet?i.test(e):n.test(e))}},{}],404:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=typeof t;return null!==t&&(\\\"object\\\"===e||\\\"function\\\"===e)}},{}],405:[function(t,e,r){\\\"use strict\\\";var n=Object.prototype.toString;e.exports=function(t){var e;return\\\"[object Object]\\\"===n.call(t)&&(null===(e=Object.getPrototypeOf(t))||e===Object.getPrototypeOf({}))}},{}],406:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e,r=t.length,n=0;n<r;n++)if(((e=t.charCodeAt(n))<9||e>13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},{}],407:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return\\\"string\\\"==typeof t&&(t=t.trim(),!!(/^[mzlhvcsqta]\\\\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\\\\dz]$/i.test(t)&&t.length>4))}},{}],408:[function(t,e,r){e.exports=function(t,e,r){return t*(1-r)+e*r}},{}],409:[function(t,e,r){(function(t){!function(t,n){\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?e.exports=n():t.mapboxgl=n()}(this,function(){\\\"use strict\\\";var e,r,n;function i(t,i){if(e)if(r){var a=\\\"var sharedChunk = {}; (\\\"+e+\\\")(sharedChunk); (\\\"+r+\\\")(sharedChunk);\\\",o={};e(o),(n=i(o)).workerUrl=window.URL.createObjectURL(new Blob([a],{type:\\\"text/javascript\\\"}))}else r=i;else e=i}return i(0,function(e){var r=\\\"undefined\\\"!=typeof window?window:\\\"undefined\\\"!=typeof t?t:\\\"undefined\\\"!=typeof self?self:{};function n(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\\\"default\\\")?t.default:t}function i(t,e){return t(e={exports:{}},e.exports),e.exports}var a=o;function o(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}o.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},o.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},o.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},o.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)<e)return i;var s=this.sampleCurveDerivativeX(i);if(Math.abs(s)<1e-6)break;i-=a/s}if((i=t)<(r=0))return r;if(i>(n=1))return n;for(;r<n;){if(a=this.sampleCurveX(i),Math.abs(a-t)<e)return i;t>a?r=i:n=i,i=.5*(n-r)+r}return i},o.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var s=function(t,e,r){this.column=t,this.row=e,this.zoom=r};s.prototype.clone=function(){return new s(this.column,this.row,this.zoom)},s.prototype.zoomTo=function(t){return this.clone()._zoomTo(t)},s.prototype.sub=function(t){return this.clone()._sub(t)},s.prototype._zoomTo=function(t){var e=Math.pow(2,t-this.zoom);return this.column*=e,this.row*=e,this.zoom=t,this},s.prototype._sub=function(t){return t=t.zoomTo(this.zoom),this.column-=t.column,this.row-=t.row,this};var l=c;function c(t,e){this.x=t,this.y=e}function u(t,e,r,n){var i=new a(t,e,r,n);return function(t){return i.solve(t)}}c.prototype={clone:function(){return new c(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},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(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=e*this.x-r*this.y,i=r*this.x+e*this.y;return this.x=n,this.y=i,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.x+r*(this.x-e.x)-n*(this.y-e.y),a=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=i,this.y=a,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},c.convert=function(t){return t instanceof c?t:Array.isArray(t)?new c(t[0],t[1]):t};var f=u(.25,.1,.25,1);function h(t,e,r){return Math.min(r,Math.max(e,t))}function p(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n<i.length;n+=1){var a=i[n];for(var o in a)t[o]=a[o]}return t}var d=1;function g(t,e){t.forEach(function(t){e[t]&&(e[t]=e[t].bind(e))})}function v(t,e){return-1!==t.indexOf(e,t.length-e.length)}function m(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function y(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function x(t){return Array.isArray(t)?t.map(x):\\\"object\\\"==typeof t&&t?m(t,x):t}var b={};function _(t){b[t]||(\\\"undefined\\\"!=typeof console&&console.warn(t),b[t]=!0)}function w(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function k(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r<n;i=r++)a=t[r],e+=((o=t[i]).x-a.x)*(a.y+o.y);return e}var M={Unknown:\\\"Unknown\\\",Style:\\\"Style\\\",Source:\\\"Source\\\",Tile:\\\"Tile\\\",Glyphs:\\\"Glyphs\\\",SpriteImage:\\\"SpriteImage\\\",SpriteJSON:\\\"SpriteJSON\\\",Image:\\\"Image\\\"};\\\"function\\\"==typeof Object.freeze&&Object.freeze(M);var A=function(t){function e(e,r,n){t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.name+\\\": \\\"+this.message+\\\" (\\\"+this.status+\\\"): \\\"+this.url},e}(Error);function T(t){var e=new self.XMLHttpRequest;for(var r in e.open(\\\"GET\\\",t.url,!0),t.headers)e.setRequestHeader(r,t.headers[r]);return e.withCredentials=\\\"include\\\"===t.credentials,e}var S=function(t,e){var r=T(t);return r.responseType=\\\"arraybuffer\\\",r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){var n=r.response;if(0===n.byteLength&&200===r.status)return e(new Error(\\\"http status 200 returned without content.\\\"));r.status>=200&&r.status<300&&r.response?e(null,{data:n,cacheControl:r.getResponseHeader(\\\"Cache-Control\\\"),expires:r.getResponseHeader(\\\"Expires\\\")}):e(new A(r.statusText,r.status,t.url))},r.send(),r};function E(t,e,r){r[t]=r[t]||[],r[t].push(e)}function C(t,e,r){if(r&&r[t]){var n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1)}}var L=function(t,e){void 0===e&&(e={}),p(this,e),this.type=t},z=function(t){function e(e,r){void 0===r&&(r={}),t.call(this,\\\"error\\\",p({error:e},r))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(L),O=function(){};O.prototype.on=function(t,e){return this._listeners=this._listeners||{},E(t,e,this._listeners),this},O.prototype.off=function(t,e){return C(t,e,this._listeners),C(t,e,this._oneTimeListeners),this},O.prototype.once=function(t,e){return this._oneTimeListeners=this._oneTimeListeners||{},E(t,e,this._oneTimeListeners),this},O.prototype.fire=function(t){\\\"string\\\"==typeof t&&(t=new L(t,arguments[1]||{}));var e=t.type;if(this.listens(e)){t.target=this;for(var r=0,n=this._listeners&&this._listeners[e]?this._listeners[e].slice():[];r<n.length;r+=1)n[r].call(this,t);for(var i=0,a=this._oneTimeListeners&&this._oneTimeListeners[e]?this._oneTimeListeners[e].slice():[];i<a.length;i+=1){var o=a[i];C(e,o,this._oneTimeListeners),o.call(this,t)}var s=this._eventedParent;s&&(p(t,\\\"function\\\"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),s.fire(t))}else v(e,\\\"error\\\")?console.error(t&&t.error||t||\\\"Empty error event\\\"):v(e,\\\"warning\\\")&&console.warn(t&&t.warning||t||\\\"Empty warning event\\\");return this},O.prototype.listens=function(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},O.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var I={$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.0511,180,85.0511]},minzoom:{type:\\\"number\\\",default:0},maxzoom:{type:\\\"number\\\",default:22},attribution:{type:\\\"string\\\"},\\\"*\\\":{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.0511,180,85.0511]},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.0511,180,85.0511]},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},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\\\"},lineMetrics:{type:\\\"boolean\\\",default:!1}},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\\\"}},layout_fill:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_circle:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_heatmap:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_line:{\\\"line-cap\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{butt:{},round:{},square:{}},default:\\\"butt\\\"},\\\"line-join\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{bevel:{},round:{},miter:{}},default:\\\"miter\\\"},\\\"line-miter-limit\\\":{type:\\\"number\\\",default:2,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[{\\\"line-join\\\":\\\"miter\\\"}]},\\\"line-round-limit\\\":{type:\\\"number\\\",default:1.05,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[{\\\"line-join\\\":\\\"round\\\"}]},visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_symbol:{\\\"symbol-placement\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{point:{},line:{}},default:\\\"point\\\"},\\\"symbol-spacing\\\":{type:\\\"number\\\",default:250,minimum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,units:\\\"pixels\\\",requires:[{\\\"symbol-placement\\\":\\\"line\\\"}]},\\\"symbol-avoid-edges\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1},\\\"icon-allow-overlap\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"icon-image\\\"]},\\\"icon-ignore-placement\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"icon-image\\\"]},\\\"icon-optional\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"icon-image\\\",\\\"text-field\\\"]},\\\"icon-rotation-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{},auto:{}},default:\\\"auto\\\",requires:[\\\"icon-image\\\"]},\\\"icon-size\\\":{type:\\\"number\\\",default:1,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,units:\\\"factor of the original icon size\\\",requires:[\\\"icon-image\\\"]},\\\"icon-text-fit\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{none:{},width:{},height:{},both:{}},default:\\\"none\\\",requires:[\\\"icon-image\\\",\\\"text-field\\\"]},\\\"icon-text-fit-padding\\\":{type:\\\"array\\\",value:\\\"number\\\",length:4,default:[0,0,0,0],units:\\\"pixels\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[\\\"icon-image\\\",\\\"text-field\\\",{\\\"icon-text-fit\\\":[\\\"both\\\",\\\"width\\\",\\\"height\\\"]}]},\\\"icon-image\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,tokens:!0},\\\"icon-rotate\\\":{type:\\\"number\\\",default:0,period:360,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,units:\\\"degrees\\\",requires:[\\\"icon-image\\\"]},\\\"icon-padding\\\":{type:\\\"number\\\",default:2,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,units:\\\"pixels\\\",requires:[\\\"icon-image\\\"]},\\\"icon-keep-upright\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"icon-image\\\",{\\\"icon-rotation-alignment\\\":\\\"map\\\"},{\\\"symbol-placement\\\":\\\"line\\\"}]},\\\"icon-offset\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"icon-image\\\"]},\\\"icon-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{center:{},left:{},right:{},top:{},bottom:{},\\\"top-left\\\":{},\\\"top-right\\\":{},\\\"bottom-left\\\":{},\\\"bottom-right\\\":{}},default:\\\"center\\\",requires:[\\\"icon-image\\\"]},\\\"icon-pitch-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{},auto:{}},default:\\\"auto\\\",requires:[\\\"icon-image\\\"]},\\\"text-pitch-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{},auto:{}},default:\\\"auto\\\",requires:[\\\"text-field\\\"]},\\\"text-rotation-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{},auto:{}},default:\\\"auto\\\",requires:[\\\"text-field\\\"]},\\\"text-field\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:\\\"\\\",tokens:!0},\\\"text-font\\\":{type:\\\"array\\\",value:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:[\\\"Open Sans Regular\\\",\\\"Arial Unicode MS Regular\\\"],requires:[\\\"text-field\\\"]},\\\"text-size\\\":{type:\\\"number\\\",default:16,minimum:0,units:\\\"pixels\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-max-width\\\":{type:\\\"number\\\",default:10,minimum:0,units:\\\"ems\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-line-height\\\":{type:\\\"number\\\",default:1.2,units:\\\"ems\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-letter-spacing\\\":{type:\\\"number\\\",default:0,units:\\\"ems\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-justify\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{left:{},center:{},right:{}},default:\\\"center\\\",requires:[\\\"text-field\\\"]},\\\"text-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{center:{},left:{},right:{},top:{},bottom:{},\\\"top-left\\\":{},\\\"top-right\\\":{},\\\"bottom-left\\\":{},\\\"bottom-right\\\":{}},default:\\\"center\\\",requires:[\\\"text-field\\\"]},\\\"text-max-angle\\\":{type:\\\"number\\\",default:45,units:\\\"degrees\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[\\\"text-field\\\",{\\\"symbol-placement\\\":\\\"line\\\"}]},\\\"text-rotate\\\":{type:\\\"number\\\",default:0,period:360,units:\\\"degrees\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-padding\\\":{type:\\\"number\\\",default:2,minimum:0,units:\\\"pixels\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,requires:[\\\"text-field\\\"]},\\\"text-keep-upright\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!0,requires:[\\\"text-field\\\",{\\\"text-rotation-alignment\\\":\\\"map\\\"},{\\\"symbol-placement\\\":\\\"line\\\"}]},\\\"text-transform\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,values:{none:{},uppercase:{},lowercase:{}},default:\\\"none\\\",requires:[\\\"text-field\\\"]},\\\"text-offset\\\":{type:\\\"array\\\",value:\\\"number\\\",units:\\\"ems\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,length:2,default:[0,0],requires:[\\\"text-field\\\"]},\\\"text-allow-overlap\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"text-field\\\"]},\\\"text-ignore-placement\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"text-field\\\"]},\\\"text-optional\\\":{type:\\\"boolean\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!1,requires:[\\\"text-field\\\",\\\"icon-image\\\"]},visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_raster:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},layout_hillshade:{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},filter:{type:\\\"array\\\",value:\\\"*\\\"},filter_operator:{type:\\\"enum\\\",values:{\\\"==\\\":{},\\\"!=\\\":{},\\\">\\\":{},\\\">=\\\":{},\\\"<\\\":{},\\\"<=\\\":{},in:{},\\\"!in\\\":{},all:{},any:{},none:{},has:{},\\\"!has\\\":{}}},geometry_type:{type:\\\"enum\\\",values:{Point:{},LineString:{},Polygon:{}}},function_stop:{type:\\\"array\\\",minimum:0,maximum:22,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\\\"},case:{group:\\\"Decision\\\"},match:{group:\\\"Decision\\\"},coalesce:{group:\\\"Decision\\\"},step:{group:\\\"Ramps, scales, curves\\\"},interpolate:{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\\\"},\\\"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\\\"},\\\"geometry-type\\\":{group:\\\"Feature data\\\"},id:{group:\\\"Feature data\\\"},zoom:{group:\\\"Zoom\\\"},\\\"heatmap-density\\\":{group:\\\"Heatmap\\\"},\\\"line-progress\\\":{group:\\\"Heatmap\\\"},\\\"+\\\":{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\\\"},\\\"==\\\":{group:\\\"Decision\\\"},\\\"!=\\\":{group:\\\"Decision\\\"},\\\">\\\":{group:\\\"Decision\\\"},\\\"<\\\":{group:\\\"Decision\\\"},\\\">=\\\":{group:\\\"Decision\\\"},\\\"<=\\\":{group:\\\"Decision\\\"},all:{group:\\\"Decision\\\"},any:{group:\\\"Decision\\\"},\\\"!\\\":{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:{}},transition:!1,\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,function:\\\"piecewise-constant\\\"},position:{type:\\\"array\\\",default:[1.15,210,30],length:3,value:\\\"number\\\",transition:!0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1},color:{type:\\\"color\\\",default:\\\"#ffffff\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,transition:!0},intensity:{type:\\\"number\\\",default:.5,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,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\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,default:!0},\\\"fill-opacity\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:1,minimum:0,maximum:1,transition:!0},\\\"fill-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"fill-pattern\\\"}]},\\\"fill-outline-color\\\":{type:\\\"color\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"fill-pattern\\\"},{\\\"fill-antialias\\\":!0}]},\\\"fill-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"fill-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"fill-translate\\\"]},\\\"fill-pattern\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,transition:!0}},paint_line:{\\\"line-opacity\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:1,minimum:0,maximum:1,transition:!0},\\\"line-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"line-pattern\\\"}]},\\\"line-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"line-translate\\\"]},\\\"line-width\\\":{type:\\\"number\\\",default:1,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-gap-width\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-offset\\\":{type:\\\"number\\\",default:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-blur\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"line-dasharray\\\":{type:\\\"array\\\",value:\\\"number\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,minimum:0,transition:!0,units:\\\"line widths\\\",requires:[{\\\"!\\\":\\\"line-pattern\\\"}]},\\\"line-pattern\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"line-gradient\\\":{type:\\\"color\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!1,\\\"property-function\\\":!1,transition:!1,requires:[{\\\"!\\\":\\\"line-dasharray\\\"},{\\\"!\\\":\\\"line-pattern\\\"},{source:\\\"geojson\\\",has:{lineMetrics:!0}}]}},paint_circle:{\\\"circle-radius\\\":{type:\\\"number\\\",default:5,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"circle-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0},\\\"circle-blur\\\":{type:\\\"number\\\",default:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0},\\\"circle-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0},\\\"circle-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"circle-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"circle-translate\\\"]},\\\"circle-pitch-scale\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\"},\\\"circle-pitch-alignment\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"viewport\\\"},\\\"circle-stroke-width\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"circle-stroke-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0},\\\"circle-stroke-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0}},paint_heatmap:{\\\"heatmap-radius\\\":{type:\\\"number\\\",default:30,minimum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"heatmap-weight\\\":{type:\\\"number\\\",default:1,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!1},\\\"heatmap-intensity\\\":{type:\\\"number\\\",default:1,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,transition:!0},\\\"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\\\"],function:\\\"interpolated\\\",\\\"zoom-function\\\":!1,\\\"property-function\\\":!1,transition:!1},\\\"heatmap-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,transition:!0}},paint_symbol:{\\\"icon-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"icon-image\\\"]},\\\"icon-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"icon-image\\\"]},\\\"icon-halo-color\\\":{type:\\\"color\\\",default:\\\"rgba(0, 0, 0, 0)\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"icon-image\\\"]},\\\"icon-halo-width\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"icon-image\\\"]},\\\"icon-halo-blur\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"icon-image\\\"]},\\\"icon-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"icon-image\\\"]},\\\"icon-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"icon-image\\\",\\\"icon-translate\\\"]},\\\"text-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"text-field\\\"]},\\\"text-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"text-field\\\"]},\\\"text-halo-color\\\":{type:\\\"color\\\",default:\\\"rgba(0, 0, 0, 0)\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[\\\"text-field\\\"]},\\\"text-halo-width\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"text-field\\\"]},\\\"text-halo-blur\\\":{type:\\\"number\\\",default:0,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"text-field\\\"]},\\\"text-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\",requires:[\\\"text-field\\\"]},\\\"text-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"text-field\\\",\\\"text-translate\\\"]}},paint_raster:{\\\"raster-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"raster-hue-rotate\\\":{type:\\\"number\\\",default:0,period:360,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"degrees\\\"},\\\"raster-brightness-min\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,default:0,minimum:0,maximum:1,transition:!0},\\\"raster-brightness-max\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,default:1,minimum:0,maximum:1,transition:!0},\\\"raster-saturation\\\":{type:\\\"number\\\",default:0,minimum:-1,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"raster-contrast\\\":{type:\\\"number\\\",default:0,minimum:-1,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"raster-fade-duration\\\":{type:\\\"number\\\",default:300,minimum:0,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!1,units:\\\"milliseconds\\\"}},paint_hillshade:{\\\"hillshade-illumination-direction\\\":{type:\\\"number\\\",default:335,minimum:0,maximum:359,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!1},\\\"hillshade-illumination-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"viewport\\\"},\\\"hillshade-exaggeration\\\":{type:\\\"number\\\",default:.5,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"hillshade-shadow-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"hillshade-highlight-color\\\":{type:\\\"color\\\",default:\\\"#FFFFFF\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"hillshade-accent-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0}},paint_background:{\\\"background-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"background-pattern\\\"}]},\\\"background-pattern\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"background-opacity\\\":{type:\\\"number\\\",default:1,minimum:0,maximum:1,function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0}},transition:{duration:{type:\\\"number\\\",default:300,minimum:0,units:\\\"milliseconds\\\"},delay:{type:\\\"number\\\",default:0,minimum:0,units:\\\"milliseconds\\\"}},\\\"layout_fill-extrusion\\\":{visibility:{type:\\\"enum\\\",values:{visible:{},none:{}},default:\\\"visible\\\"}},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}},\\\"paint_fill-extrusion\\\":{\\\"fill-extrusion-opacity\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!1,default:1,minimum:0,maximum:1,transition:!0},\\\"fill-extrusion-color\\\":{type:\\\"color\\\",default:\\\"#000000\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,transition:!0,requires:[{\\\"!\\\":\\\"fill-extrusion-pattern\\\"}]},\\\"fill-extrusion-translate\\\":{type:\\\"array\\\",value:\\\"number\\\",length:2,default:[0,0],function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,transition:!0,units:\\\"pixels\\\"},\\\"fill-extrusion-translate-anchor\\\":{type:\\\"enum\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,values:{map:{},viewport:{}},default:\\\"map\\\",requires:[\\\"fill-extrusion-translate\\\"]},\\\"fill-extrusion-pattern\\\":{type:\\\"string\\\",function:\\\"piecewise-constant\\\",\\\"zoom-function\\\":!0,transition:!0},\\\"fill-extrusion-height\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:0,minimum:0,units:\\\"meters\\\",transition:!0},\\\"fill-extrusion-base\\\":{type:\\\"number\\\",function:\\\"interpolated\\\",\\\"zoom-function\\\":!0,\\\"property-function\\\":!0,default:0,minimum:0,units:\\\"meters\\\",transition:!0,requires:[\\\"fill-extrusion-height\\\"]}}},P=function(t,e,r,n){this.message=(t?t+\\\": \\\":\\\"\\\")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__)};function D(t){var e=t.key,r=t.value;return r?[new P(e,r,\\\"constants have been deprecated as of v8\\\")]:[]}function R(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n<i.length;n+=1){var a=i[n];for(var o in a)t[o]=a[o]}return t}function B(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function F(t){return Array.isArray(t)?t.map(F):B(t)}var N=function(t){function e(e,r){t.call(this,r),this.message=r,this.key=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error),j=function(t,e){void 0===e&&(e=[]),this.parent=t,this.bindings={};for(var r=0,n=e;r<n.length;r+=1){var i=n[r],a=i[0],o=i[1];this.bindings[a]=o}};j.prototype.concat=function(t){return new j(this,t)},j.prototype.get=function(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+\\\" not found in scope.\\\")},j.prototype.has=function(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)};var V={kind:\\\"null\\\"},U={kind:\\\"number\\\"},q={kind:\\\"string\\\"},H={kind:\\\"boolean\\\"},G={kind:\\\"color\\\"},W={kind:\\\"object\\\"},Y={kind:\\\"value\\\"},X={kind:\\\"collator\\\"};function Z(t,e){return{kind:\\\"array\\\",itemType:t,N:e}}function $(t){if(\\\"array\\\"===t.kind){var e=$(t.itemType);return\\\"number\\\"==typeof t.N?\\\"array<\\\"+e+\\\", \\\"+t.N+\\\">\\\":\\\"value\\\"===t.itemType.kind?\\\"array\\\":\\\"array<\\\"+e+\\\">\\\"}return t.kind}var J=[V,U,q,H,G,W,Z(Y)];function K(t,e){if(\\\"error\\\"===e.kind)return null;if(\\\"array\\\"===t.kind){if(\\\"array\\\"===e.kind&&!K(t.itemType,e.itemType)&&(\\\"number\\\"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if(\\\"value\\\"===t.kind)for(var r=0,n=J;r<n.length;r+=1)if(!K(n[r],e))return null}return\\\"Expected \\\"+$(t)+\\\" but found \\\"+$(e)+\\\" instead.\\\"}var Q=i(function(t,e){var r={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function n(t){return(t=Math.round(t))<0?0:t>255?255:t}function i(t){return t<0?0:t>1?1:t}function a(t){return\\\"%\\\"===t[t.length-1]?n(parseFloat(t)/100*255):n(parseInt(t))}function o(t){return\\\"%\\\"===t[t.length-1]?i(parseFloat(t)/100):i(parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,i=t.replace(/ /g,\\\"\\\").toLowerCase();if(i in r)return r[i].slice();if(\\\"#\\\"===i[0])return 4===i.length?(e=parseInt(i.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&(e=parseInt(i.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=i.indexOf(\\\"(\\\"),c=i.indexOf(\\\")\\\");if(-1!==l&&c+1===i.length){var u=i.substr(0,l),f=i.substr(l+1,c-(l+1)).split(\\\",\\\"),h=1;switch(u){case\\\"rgba\\\":if(4!==f.length)return null;h=o(f.pop());case\\\"rgb\\\":return 3!==f.length?null:[a(f[0]),a(f[1]),a(f[2]),h];case\\\"hsla\\\":if(4!==f.length)return null;h=o(f.pop());case\\\"hsl\\\":if(3!==f.length)return null;var p=(parseFloat(f[0])%360+360)%360/360,d=o(f[1]),g=o(f[2]),v=g<=.5?g*(d+1):g+d-g*d,m=2*g-v;return[n(255*s(m,v,p+1/3)),n(255*s(m,v,p)),n(255*s(m,v,p-1/3)),h];default:return null}}return null}}catch(t){}}).parseCSSColor,tt=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};tt.parse=function(t){if(t){if(t instanceof tt)return t;if(\\\"string\\\"==typeof t){var e=Q(t);if(e)return new tt(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},tt.prototype.toString=function(){var t=this.toArray(),e=t[0],r=t[1],n=t[2],i=t[3];return\\\"rgba(\\\"+Math.round(e)+\\\",\\\"+Math.round(r)+\\\",\\\"+Math.round(n)+\\\",\\\"+i+\\\")\\\"},tt.prototype.toArray=function(){var t=this.r,e=this.g,r=this.b,n=this.a;return 0===n?[0,0,0,0]:[255*t/n,255*e/n,255*r/n,n]},tt.black=new tt(0,0,0,1),tt.white=new tt(1,1,1,1),tt.transparent=new tt(0,0,0,0);var et=function(t,e,r){this.sensitivity=t?e?\\\"variant\\\":\\\"case\\\":e?\\\"accent\\\":\\\"base\\\",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\\\"search\\\"})};et.prototype.compare=function(t,e){return this.collator.compare(t,e)},et.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var rt=function(t,e,r){this.type=X,this.locale=r,this.caseSensitive=t,this.diacriticSensitive=e};function nt(t,e,r,n){return\\\"number\\\"==typeof t&&t>=0&&t<=255&&\\\"number\\\"==typeof e&&e>=0&&e<=255&&\\\"number\\\"==typeof r&&r>=0&&r<=255?void 0===n||\\\"number\\\"==typeof n&&n>=0&&n<=1?null:\\\"Invalid rgba value [\\\"+[t,e,r,n].join(\\\", \\\")+\\\"]: 'a' must be between 0 and 1.\\\":\\\"Invalid rgba value [\\\"+(\\\"number\\\"==typeof n?[t,e,r,n]:[t,e,r]).join(\\\", \\\")+\\\"]: 'r', 'g', and 'b' must be between 0 and 255.\\\"}function it(t){if(null===t)return V;if(\\\"string\\\"==typeof t)return q;if(\\\"boolean\\\"==typeof t)return H;if(\\\"number\\\"==typeof t)return U;if(t instanceof tt)return G;if(t instanceof et)return X;if(Array.isArray(t)){for(var e,r=t.length,n=0,i=t;n<i.length;n+=1){var a=it(i[n]);if(e){if(e===a)continue;e=Y;break}e=a}return Z(e||Y,r)}return W}rt.parse=function(t,e){if(2!==t.length)return e.error(\\\"Expected one argument.\\\");var r=t[1];if(\\\"object\\\"!=typeof r||Array.isArray(r))return e.error(\\\"Collator options argument must be an object.\\\");var n=e.parse(void 0!==r[\\\"case-sensitive\\\"]&&r[\\\"case-sensitive\\\"],1,H);if(!n)return null;var i=e.parse(void 0!==r[\\\"diacritic-sensitive\\\"]&&r[\\\"diacritic-sensitive\\\"],1,H);if(!i)return null;var a=null;return r.locale&&!(a=e.parse(r.locale,1,q))?null:new rt(n,i,a)},rt.prototype.evaluate=function(t){return new et(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)},rt.prototype.eachChild=function(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)},rt.prototype.possibleOutputs=function(){return[void 0]},rt.prototype.serialize=function(){var t={};return t[\\\"case-sensitive\\\"]=this.caseSensitive.serialize(),t[\\\"diacritic-sensitive\\\"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),[\\\"collator\\\",t]};var at=function(t,e){this.type=t,this.value=e};at.parse=function(t,e){if(2!==t.length)return e.error(\\\"'literal' expression requires exactly one argument, but found \\\"+(t.length-1)+\\\" instead.\\\");if(!function t(e){if(null===e)return!0;if(\\\"string\\\"==typeof e)return!0;if(\\\"boolean\\\"==typeof e)return!0;if(\\\"number\\\"==typeof e)return!0;if(e instanceof tt)return!0;if(e instanceof et)return!0;if(Array.isArray(e)){for(var r=0,n=e;r<n.length;r+=1)if(!t(n[r]))return!1;return!0}if(\\\"object\\\"==typeof e){for(var i in e)if(!t(e[i]))return!1;return!0}return!1}(t[1]))return e.error(\\\"invalid value\\\");var r=t[1],n=it(r),i=e.expectedType;return\\\"array\\\"!==n.kind||0!==n.N||!i||\\\"array\\\"!==i.kind||\\\"number\\\"==typeof i.N&&0!==i.N||(n=i),new at(n,r)},at.prototype.evaluate=function(){return this.value},at.prototype.eachChild=function(){},at.prototype.possibleOutputs=function(){return[this.value]},at.prototype.serialize=function(){return\\\"array\\\"===this.type.kind||\\\"object\\\"===this.type.kind?[\\\"literal\\\",this.value]:this.value instanceof tt?[\\\"rgba\\\"].concat(this.value.toArray()):this.value};var ot=function(t){this.name=\\\"ExpressionEvaluationError\\\",this.message=t};ot.prototype.toJSON=function(){return this.message};var st={string:q,number:U,boolean:H,object:W},lt=function(t,e){this.type=t,this.args=e};lt.parse=function(t,e){if(t.length<2)return e.error(\\\"Expected at least one argument.\\\");for(var r=t[0],n=st[r],i=[],a=1;a<t.length;a++){var o=e.parse(t[a],a,Y);if(!o)return null;i.push(o)}return new lt(n,i)},lt.prototype.evaluate=function(t){for(var e=0;e<this.args.length;e++){var r=this.args[e].evaluate(t);if(!K(this.type,it(r)))return r;if(e===this.args.length-1)throw new ot(\\\"Expected value to be of type \\\"+$(this.type)+\\\", but found \\\"+$(it(r))+\\\" instead.\\\")}return null},lt.prototype.eachChild=function(t){this.args.forEach(t)},lt.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}));var t},lt.prototype.serialize=function(){return[this.type.kind].concat(this.args.map(function(t){return t.serialize()}))};var ct={string:q,number:U,boolean:H},ut=function(t,e){this.type=t,this.input=e};ut.parse=function(t,e){if(t.length<2||t.length>4)return e.error(\\\"Expected 1, 2, or 3 arguments, but found \\\"+(t.length-1)+\\\" instead.\\\");var r,n;if(t.length>2){var i=t[1];if(\\\"string\\\"!=typeof i||!(i in ct))return e.error('The item type argument of \\\"array\\\" must be one of string, number, boolean',1);r=ct[i]}else r=Y;if(t.length>3){if(\\\"number\\\"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2]))return e.error('The length argument to \\\"array\\\" must be a positive integer literal',2);n=t[2]}var a=Z(r,n),o=e.parse(t[t.length-1],t.length-1,Y);return o?new ut(a,o):null},ut.prototype.evaluate=function(t){var e=this.input.evaluate(t);if(K(this.type,it(e)))throw new ot(\\\"Expected value to be of type \\\"+$(this.type)+\\\", but found \\\"+$(it(e))+\\\" instead.\\\");return e},ut.prototype.eachChild=function(t){t(this.input)},ut.prototype.possibleOutputs=function(){return this.input.possibleOutputs()},ut.prototype.serialize=function(){var t=[\\\"array\\\"],e=this.type.itemType;if(\\\"string\\\"===e.kind||\\\"number\\\"===e.kind||\\\"boolean\\\"===e.kind){t.push(e.kind);var r=this.type.N;\\\"number\\\"==typeof r&&t.push(r)}return t.push(this.input.serialize()),t};var ft={\\\"to-number\\\":U,\\\"to-color\\\":G},ht=function(t,e){this.type=t,this.args=e};ht.parse=function(t,e){if(t.length<2)return e.error(\\\"Expected at least one argument.\\\");for(var r=t[0],n=ft[r],i=[],a=1;a<t.length;a++){var o=e.parse(t[a],a,Y);if(!o)return null;i.push(o)}return new ht(n,i)},ht.prototype.evaluate=function(t){if(\\\"color\\\"===this.type.kind){for(var e,r,n=0,i=this.args;n<i.length;n+=1)if(r=null,\\\"string\\\"==typeof(e=i[n].evaluate(t))){var a=t.parseColor(e);if(a)return a}else if(Array.isArray(e)&&!(r=e.length<3||e.length>4?\\\"Invalid rbga value \\\"+JSON.stringify(e)+\\\": expected an array containing either three or four numeric values.\\\":nt(e[0],e[1],e[2],e[3])))return new tt(e[0]/255,e[1]/255,e[2]/255,e[3]);throw new ot(r||\\\"Could not parse color from value '\\\"+(\\\"string\\\"==typeof e?e:JSON.stringify(e))+\\\"'\\\")}for(var o=null,s=0,l=this.args;s<l.length;s+=1)if(null!==(o=l[s].evaluate(t))){var c=Number(o);if(!isNaN(c))return c}throw new ot(\\\"Could not convert \\\"+JSON.stringify(o)+\\\" to number.\\\")},ht.prototype.eachChild=function(t){this.args.forEach(t)},ht.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}));var t},ht.prototype.serialize=function(){var t=[\\\"to-\\\"+this.type.kind];return this.eachChild(function(e){t.push(e.serialize())}),t};var pt=[\\\"Unknown\\\",\\\"Point\\\",\\\"LineString\\\",\\\"Polygon\\\"],dt=function(){this._parseColorCache={}};dt.prototype.id=function(){return this.feature&&\\\"id\\\"in this.feature?this.feature.id:null},dt.prototype.geometryType=function(){return this.feature?\\\"number\\\"==typeof this.feature.type?pt[this.feature.type]:this.feature.type:null},dt.prototype.properties=function(){return this.feature&&this.feature.properties||{}},dt.prototype.parseColor=function(t){var e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=tt.parse(t)),e};var gt=function(t,e,r,n){this.name=t,this.type=e,this._evaluate=r,this.args=n};function vt(t){if(t instanceof gt){if(\\\"get\\\"===t.name&&1===t.args.length)return!1;if(\\\"has\\\"===t.name&&1===t.args.length)return!1;if(\\\"properties\\\"===t.name||\\\"geometry-type\\\"===t.name||\\\"id\\\"===t.name)return!1;if(/^filter-/.test(t.name))return!1}var e=!0;return t.eachChild(function(t){e&&!vt(t)&&(e=!1)}),e}function mt(t,e){if(t instanceof gt&&e.indexOf(t.name)>=0)return!1;var r=!0;return t.eachChild(function(t){r&&!mt(t,e)&&(r=!1)}),r}gt.prototype.evaluate=function(t){return this._evaluate(t,this.args)},gt.prototype.eachChild=function(t){this.args.forEach(t)},gt.prototype.possibleOutputs=function(){return[void 0]},gt.prototype.serialize=function(){return[this.name].concat(this.args.map(function(t){return t.serialize()}))},gt.parse=function(t,e){var r=t[0],n=gt.definitions[r];if(!n)return e.error('Unknown expression \\\"'+r+'\\\". If you wanted a literal array, use [\\\"literal\\\", [...]].',0);for(var i=Array.isArray(n)?n[0]:n.type,a=Array.isArray(n)?[[n[1],n[2]]]:n.overloads,o=a.filter(function(e){var r=e[0];return!Array.isArray(r)||r.length===t.length-1}),s=[],l=1;l<t.length;l++){var c=t[l],u=void 0;if(1===o.length){var f=o[0][0];u=Array.isArray(f)?f[l-1]:f.type}var h=e.parse(c,1+s.length,u);if(!h)return null;s.push(h)}for(var p=null,d=0,g=o;d<g.length;d+=1){var v=g[d],m=v[0],y=v[1];if(p=new xt(e.registry,e.path,null,e.scope),Array.isArray(m)&&m.length!==s.length)p.error(\\\"Expected \\\"+m.length+\\\" arguments, but found \\\"+s.length+\\\" instead.\\\");else{for(var x=0;x<s.length;x++){var b=Array.isArray(m)?m[x]:m.type,_=s[x];p.concat(x+1).checkSubtype(b,_.type)}if(0===p.errors.length)return new gt(r,i,y,s)}}if(1===o.length)e.errors.push.apply(e.errors,p.errors);else{var w=(o.length?o:a).map(function(t){var e;return e=t[0],Array.isArray(e)?\\\"(\\\"+e.map($).join(\\\", \\\")+\\\")\\\":\\\"(\\\"+$(e.type)+\\\"...)\\\"}).join(\\\" | \\\"),k=s.map(function(t){return $(t.type)}).join(\\\", \\\");e.error(\\\"Expected arguments of type \\\"+w+\\\", but found (\\\"+k+\\\") instead.\\\")}return null},gt.register=function(t,e){for(var r in gt.definitions=e,e)t[r]=gt};var yt=function(t,e){this.type=e.type,this.name=t,this.boundExpression=e};yt.parse=function(t,e){if(2!==t.length||\\\"string\\\"!=typeof t[1])return e.error(\\\"'var' expression requires exactly one string literal argument.\\\");var r=t[1];return e.scope.has(r)?new yt(r,e.scope.get(r)):e.error('Unknown variable \\\"'+r+'\\\". Make sure \\\"'+r+'\\\" has been bound in an enclosing \\\"let\\\" expression before using it.',1)},yt.prototype.evaluate=function(t){return this.boundExpression.evaluate(t)},yt.prototype.eachChild=function(){},yt.prototype.possibleOutputs=function(){return[void 0]},yt.prototype.serialize=function(){return[\\\"var\\\",this.name]};var xt=function(t,e,r,n,i){void 0===e&&(e=[]),void 0===n&&(n=new j),void 0===i&&(i=[]),this.registry=t,this.path=e,this.key=e.map(function(t){return\\\"[\\\"+t+\\\"]\\\"}).join(\\\"\\\"),this.scope=n,this.errors=i,this.expectedType=r};function bt(t,e){for(var r,n,i=0,a=t.length-1,o=0;i<=a;){if(r=t[o=Math.floor((i+a)/2)],n=t[o+1],e===r||e>r&&e<n)return o;if(r<e)i=o+1;else{if(!(r>e))throw new ot(\\\"Input is not a number.\\\");a=o-1}}return Math.max(o-1,0)}xt.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},xt.prototype._parse=function(t,e){if(null!==t&&\\\"string\\\"!=typeof t&&\\\"boolean\\\"!=typeof t&&\\\"number\\\"!=typeof t||(t=[\\\"literal\\\",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\\\"literal\\\", []].');var r=t[0];if(\\\"string\\\"!=typeof r)return this.error(\\\"Expression name must be a string, but found \\\"+typeof r+' instead. If you wanted a literal array, use [\\\"literal\\\", [...]].',0),null;var n=this.registry[r];if(n){var i=n.parse(t,this);if(!i)return null;if(this.expectedType){var a=this.expectedType,o=i.type;if(\\\"string\\\"!==a.kind&&\\\"number\\\"!==a.kind&&\\\"boolean\\\"!==a.kind&&\\\"object\\\"!==a.kind||\\\"value\\\"!==o.kind)if(\\\"array\\\"===a.kind&&\\\"value\\\"===o.kind)e.omitTypeAnnotations||(i=new ut(a,i));else if(\\\"color\\\"!==a.kind||\\\"value\\\"!==o.kind&&\\\"string\\\"!==o.kind){if(this.checkSubtype(this.expectedType,i.type))return null}else e.omitTypeAnnotations||(i=new ht(a,[i]));else e.omitTypeAnnotations||(i=new lt(a,[i]))}if(!(i instanceof at)&&function t(e){if(e instanceof yt)return t(e.boundExpression);if(e instanceof gt&&\\\"error\\\"===e.name)return!1;if(e instanceof rt)return!1;var r=e instanceof ht||e instanceof lt||e instanceof ut,n=!0;return e.eachChild(function(e){n=r?n&&t(e):n&&e instanceof at}),!!n&&(vt(e)&&mt(e,[\\\"zoom\\\",\\\"heatmap-density\\\",\\\"line-progress\\\",\\\"is-supported-script\\\"]))}(i)){var s=new dt;try{i=new at(i.type,i.evaluate(s))}catch(t){return this.error(t.message),null}}return i}return this.error('Unknown expression \\\"'+r+'\\\". If you wanted a literal array, use [\\\"literal\\\", [...]].',0)}return void 0===t?this.error(\\\"'undefined' value invalid. Use null instead.\\\"):\\\"object\\\"==typeof t?this.error('Bare objects invalid. Use [\\\"literal\\\", {...}] instead.'):this.error(\\\"Expected an array, but found \\\"+typeof t+\\\" instead.\\\")},xt.prototype.concat=function(t,e,r){var n=\\\"number\\\"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new xt(this.registry,n,e||null,i,this.errors)},xt.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=\\\"\\\"+this.key+e.map(function(t){return\\\"[\\\"+t+\\\"]\\\"}).join(\\\"\\\");this.errors.push(new N(n,t))},xt.prototype.checkSubtype=function(t,e){var r=K(t,e);return r&&this.error(r),r};var _t=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n<i.length;n+=1){var a=i[n],o=a[0],s=a[1];this.labels.push(o),this.outputs.push(s)}};function wt(t,e,r){return t*(1-r)+e*r}_t.parse=function(t,e){var r=t[1],n=t.slice(2);if(t.length-1<4)return e.error(\\\"Expected at least 4 arguments, but found only \\\"+(t.length-1)+\\\".\\\");if((t.length-1)%2!=0)return e.error(\\\"Expected an even number of arguments.\\\");if(!(r=e.parse(r,1,U)))return null;var i=[],a=null;e.expectedType&&\\\"value\\\"!==e.expectedType.kind&&(a=e.expectedType),n.unshift(-1/0);for(var o=0;o<n.length;o+=2){var s=n[o],l=n[o+1],c=o+1,u=o+2;if(\\\"number\\\"!=typeof s)return e.error('Input/output pairs for \\\"step\\\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',c);if(i.length&&i[i.length-1][0]>=s)return e.error('Input/output pairs for \\\"step\\\" expressions must be arranged with input values in strictly ascending order.',c);var f=e.parse(l,u,a);if(!f)return null;a=a||f.type,i.push([s,f])}return new _t(a,r,i)},_t.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[bt(e,n)].evaluate(t)},_t.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e<r.length;e+=1)t(r[e])},_t.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()}));var t},_t.prototype.serialize=function(){for(var t=[\\\"step\\\",this.input.serialize()],e=0;e<this.labels.length;e++)e>0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var kt=Object.freeze({number:wt,color:function(t,e,r){return new tt(wt(t.r,e.r,r),wt(t.g,e.g,r),wt(t.b,e.b,r),wt(t.a,e.a,r))},array:function(t,e,r){return t.map(function(t,n){return wt(t,e[n],r)})}}),Mt=function(t,e,r,n){this.type=t,this.interpolation=e,this.input=r,this.labels=[],this.outputs=[];for(var i=0,a=n;i<a.length;i+=1){var o=a[i],s=o[0],l=o[1];this.labels.push(s),this.outputs.push(l)}};function At(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}Mt.interpolationFactor=function(t,e,r,n){var i=0;if(\\\"exponential\\\"===t.name)i=At(e,t.base,r,n);else if(\\\"linear\\\"===t.name)i=At(e,1,r,n);else if(\\\"cubic-bezier\\\"===t.name){var o=t.controlPoints;i=new a(o[0],o[1],o[2],o[3]).solve(At(e,1,r,n))}return i},Mt.parse=function(t,e){var r=t[1],n=t[2],i=t.slice(3);if(!Array.isArray(r)||0===r.length)return e.error(\\\"Expected an interpolation type expression.\\\",1);if(\\\"linear\\\"===r[0])r={name:\\\"linear\\\"};else if(\\\"exponential\\\"===r[0]){var a=r[1];if(\\\"number\\\"!=typeof a)return e.error(\\\"Exponential interpolation requires a numeric base.\\\",1,1);r={name:\\\"exponential\\\",base:a}}else{if(\\\"cubic-bezier\\\"!==r[0])return e.error(\\\"Unknown interpolation type \\\"+String(r[0]),1,0);var o=r.slice(1);if(4!==o.length||o.some(function(t){return\\\"number\\\"!=typeof t||t<0||t>1}))return e.error(\\\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\\\",1);r={name:\\\"cubic-bezier\\\",controlPoints:o}}if(t.length-1<4)return e.error(\\\"Expected at least 4 arguments, but found only \\\"+(t.length-1)+\\\".\\\");if((t.length-1)%2!=0)return e.error(\\\"Expected an even number of arguments.\\\");if(!(n=e.parse(n,2,U)))return null;var s=[],l=null;e.expectedType&&\\\"value\\\"!==e.expectedType.kind&&(l=e.expectedType);for(var c=0;c<i.length;c+=2){var u=i[c],f=i[c+1],h=c+3,p=c+4;if(\\\"number\\\"!=typeof u)return e.error('Input/output pairs for \\\"interpolate\\\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',h);if(s.length&&s[s.length-1][0]>=u)return e.error('Input/output pairs for \\\"interpolate\\\" expressions must be arranged with input values in strictly ascending order.',h);var d=e.parse(f,p,l);if(!d)return null;l=l||d.type,s.push([u,d])}return\\\"number\\\"===l.kind||\\\"color\\\"===l.kind||\\\"array\\\"===l.kind&&\\\"number\\\"===l.itemType.kind&&\\\"number\\\"==typeof l.N?new Mt(l,r,n,s):e.error(\\\"Type \\\"+$(l)+\\\" is not interpolatable.\\\")},Mt.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=bt(e,n),o=e[a],s=e[a+1],l=Mt.interpolationFactor(this.interpolation,n,o,s),c=r[a].evaluate(t),u=r[a+1].evaluate(t);return kt[this.type.kind.toLowerCase()](c,u,l)},Mt.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e<r.length;e+=1)t(r[e])},Mt.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()}));var t},Mt.prototype.serialize=function(){for(var t=[\\\"interpolate\\\",\\\"linear\\\"===this.interpolation.name?[\\\"linear\\\"]:\\\"exponential\\\"===this.interpolation.name?1===this.interpolation.base?[\\\"linear\\\"]:[\\\"exponential\\\",this.interpolation.base]:[\\\"cubic-bezier\\\"].concat(this.interpolation.controlPoints),this.input.serialize()],e=0;e<this.labels.length;e++)t.push(this.labels[e],this.outputs[e].serialize());return t};var Tt=function(t,e){this.type=t,this.args=e};Tt.parse=function(t,e){if(t.length<2)return e.error(\\\"Expectected at least one argument.\\\");var r=null,n=e.expectedType;n&&\\\"value\\\"!==n.kind&&(r=n);for(var i=[],a=0,o=t.slice(1);a<o.length;a+=1){var s=o[a],l=e.parse(s,1+i.length,r,void 0,{omitTypeAnnotations:!0});if(!l)return null;r=r||l.type,i.push(l)}var c=n&&i.some(function(t){return K(n,t.type)});return new Tt(c?Y:r,i)},Tt.prototype.evaluate=function(t){for(var e=null,r=0,n=this.args;r<n.length&&null===(e=n[r].evaluate(t));r+=1);return e},Tt.prototype.eachChild=function(t){this.args.forEach(t)},Tt.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.args.map(function(t){return t.possibleOutputs()}));var t},Tt.prototype.serialize=function(){var t=[\\\"coalesce\\\"];return this.eachChild(function(e){t.push(e.serialize())}),t};var St=function(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e};St.prototype.evaluate=function(t){return this.result.evaluate(t)},St.prototype.eachChild=function(t){for(var e=0,r=this.bindings;e<r.length;e+=1)t(r[e][1]);t(this.result)},St.parse=function(t,e){if(t.length<4)return e.error(\\\"Expected at least 3 arguments, but found \\\"+(t.length-1)+\\\" instead.\\\");for(var r=[],n=1;n<t.length-1;n+=2){var i=t[n];if(\\\"string\\\"!=typeof i)return e.error(\\\"Expected string, but found \\\"+typeof i+\\\" instead.\\\",n);if(/[^a-zA-Z0-9_]/.test(i))return e.error(\\\"Variable names must contain only alphanumeric characters or '_'.\\\",n);var a=e.parse(t[n+1],n+1);if(!a)return null;r.push([i,a])}var o=e.parse(t[t.length-1],t.length-1,void 0,r);return o?new St(r,o):null},St.prototype.possibleOutputs=function(){return this.result.possibleOutputs()},St.prototype.serialize=function(){for(var t=[\\\"let\\\"],e=0,r=this.bindings;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];t.push(i,a.serialize())}return t.push(this.result.serialize()),t};var Et=function(t,e,r){this.type=t,this.index=e,this.input=r};Et.parse=function(t,e){if(3!==t.length)return e.error(\\\"Expected 2 arguments, but found \\\"+(t.length-1)+\\\" instead.\\\");var r=e.parse(t[1],1,U),n=e.parse(t[2],2,Z(e.expectedType||Y));if(!r||!n)return null;var i=n.type;return new Et(i.itemType,r,n)},Et.prototype.evaluate=function(t){var e=this.index.evaluate(t),r=this.input.evaluate(t);if(e<0)throw new ot(\\\"Array index out of bounds: \\\"+e+\\\" < 0.\\\");if(e>=r.length)throw new ot(\\\"Array index out of bounds: \\\"+e+\\\" > \\\"+(r.length-1)+\\\".\\\");if(e!==Math.floor(e))throw new ot(\\\"Array index must be an integer, but found \\\"+e+\\\" instead.\\\");return r[e]},Et.prototype.eachChild=function(t){t(this.index),t(this.input)},Et.prototype.possibleOutputs=function(){return[void 0]},Et.prototype.serialize=function(){return[\\\"at\\\",this.index.serialize(),this.input.serialize()]};var Ct=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a};Ct.parse=function(t,e){if(t.length<5)return e.error(\\\"Expected at least 4 arguments, but found only \\\"+(t.length-1)+\\\".\\\");if(t.length%2!=1)return e.error(\\\"Expected an even number of arguments.\\\");var r,n;e.expectedType&&\\\"value\\\"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;o<t.length-1;o+=2){var s=t[o],l=t[o+1];Array.isArray(s)||(s=[s]);var c=e.concat(o);if(0===s.length)return c.error(\\\"Expected at least one branch label.\\\");for(var u=0,f=s;u<f.length;u+=1){var h=f[u];if(\\\"number\\\"!=typeof h&&\\\"string\\\"!=typeof h)return c.error(\\\"Branch labels must be numbers or strings.\\\");if(\\\"number\\\"==typeof h&&Math.abs(h)>Number.MAX_SAFE_INTEGER)return c.error(\\\"Branch labels must be integers no larger than \\\"+Number.MAX_SAFE_INTEGER+\\\".\\\");if(\\\"number\\\"==typeof h&&Math.floor(h)!==h)return c.error(\\\"Numeric branch labels must be integer values.\\\");if(r){if(c.checkSubtype(r,it(h)))return null}else r=it(h);if(void 0!==i[String(h)])return c.error(\\\"Branch labels must be unique.\\\");i[String(h)]=a.length}var p=e.parse(l,o,n);if(!p)return null;n=n||p.type,a.push(p)}var d=e.parse(t[1],1,r);if(!d)return null;var g=e.parse(t[t.length-1],t.length-1,n);return g?new Ct(r,n,d,i,a,g):null},Ct.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},Ct.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},Ct.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()})).concat(this.otherwise.possibleOutputs());var t},Ct.prototype.serialize=function(){for(var t=this,e=[\\\"match\\\",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i<a.length;i+=1){var o=a[i],s=n[t.cases[o]];void 0===s?(n[t.cases[o]]=r.length,r.push([t.cases[o],[o]])):r[s][1].push(o)}for(var l=function(e){return\\\"number\\\"===t.input.type.kind?Number(e):e},c=0,u=r;c<u.length;c+=1){var f=u[c],h=f[0],p=f[1];1===p.length?e.push(l(p[0])):e.push(p.map(l)),e.push(t.outputs[h].serialize())}return e.push(this.otherwise.serialize()),e};var Lt=function(t,e,r){this.type=t,this.branches=e,this.otherwise=r};function zt(t){return\\\"string\\\"===t.kind||\\\"number\\\"===t.kind||\\\"boolean\\\"===t.kind||\\\"null\\\"===t.kind}function Ot(t,e){return function(){function r(t,e,r){this.type=H,this.lhs=t,this.rhs=e,this.collator=r}return r.parse=function(t,e){if(3!==t.length&&4!==t.length)return e.error(\\\"Expected two or three arguments.\\\");var n=e.parse(t[1],1,Y);if(!n)return null;var i=e.parse(t[2],2,Y);if(!i)return null;if(!zt(n.type)&&!zt(i.type))return e.error(\\\"Expected at least one argument to be a string, number, boolean, or null, but found (\\\"+$(n.type)+\\\", \\\"+$(i.type)+\\\") instead.\\\");if(n.type.kind!==i.type.kind&&\\\"value\\\"!==n.type.kind&&\\\"value\\\"!==i.type.kind)return e.error(\\\"Cannot compare \\\"+$(n.type)+\\\" and \\\"+$(i.type)+\\\".\\\");var a=null;if(4===t.length){if(\\\"string\\\"!==n.type.kind&&\\\"string\\\"!==i.type.kind)return e.error(\\\"Cannot use collator to compare non-string types.\\\");if(!(a=e.parse(t[3],3,X)))return null}return new r(n,i,a)},r.prototype.evaluate=function(t){var r=this.collator?0===this.collator.evaluate(t).compare(this.lhs.evaluate(t),this.rhs.evaluate(t)):this.lhs.evaluate(t)===this.rhs.evaluate(t);return e?!r:r},r.prototype.eachChild=function(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)},r.prototype.possibleOutputs=function(){return[!0,!1]},r.prototype.serialize=function(){var e=[t];return this.eachChild(function(t){e.push(t.serialize())}),e},r}()}Lt.parse=function(t,e){if(t.length<4)return e.error(\\\"Expected at least 3 arguments, but found only \\\"+(t.length-1)+\\\".\\\");if(t.length%2!=0)return e.error(\\\"Expected an odd number of arguments.\\\");var r;e.expectedType&&\\\"value\\\"!==e.expectedType.kind&&(r=e.expectedType);for(var n=[],i=1;i<t.length-1;i+=2){var a=e.parse(t[i],i,H);if(!a)return null;var o=e.parse(t[i+1],i+1,r);if(!o)return null;n.push([a,o]),r=r||o.type}var s=e.parse(t[t.length-1],t.length-1,r);return s?new Lt(r,n,s):null},Lt.prototype.evaluate=function(t){for(var e=0,r=this.branches;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];if(i.evaluate(t))return a.evaluate(t)}return this.otherwise.evaluate(t)},Lt.prototype.eachChild=function(t){for(var e=0,r=this.branches;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];t(i),t(a)}t(this.otherwise)},Lt.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.branches.map(function(t){return t[0],t[1].possibleOutputs()})).concat(this.otherwise.possibleOutputs());var t},Lt.prototype.serialize=function(){var t=[\\\"case\\\"];return this.eachChild(function(e){t.push(e.serialize())}),t};var It=Ot(\\\"==\\\",!1),Pt=Ot(\\\"!=\\\",!0),Dt=function(t){this.type=U,this.input=t};Dt.parse=function(t,e){if(2!==t.length)return e.error(\\\"Expected 1 argument, but found \\\"+(t.length-1)+\\\" instead.\\\");var r=e.parse(t[1],1);return r?\\\"array\\\"!==r.type.kind&&\\\"string\\\"!==r.type.kind&&\\\"value\\\"!==r.type.kind?e.error(\\\"Expected argument of type string or array, but found \\\"+$(r.type)+\\\" instead.\\\"):new Dt(r):null},Dt.prototype.evaluate=function(t){var e=this.input.evaluate(t);if(\\\"string\\\"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new ot(\\\"Expected value to be of type string or array, but found \\\"+$(it(e))+\\\" instead.\\\")},Dt.prototype.eachChild=function(t){t(this.input)},Dt.prototype.possibleOutputs=function(){return[void 0]},Dt.prototype.serialize=function(){var t=[\\\"length\\\"];return this.eachChild(function(e){t.push(e.serialize())}),t};var Rt={\\\"==\\\":It,\\\"!=\\\":Pt,array:ut,at:Et,boolean:lt,case:Lt,coalesce:Tt,collator:rt,interpolate:Mt,length:Dt,let:St,literal:at,match:Ct,number:lt,object:lt,step:_t,string:lt,\\\"to-color\\\":ht,\\\"to-number\\\":ht,var:yt};function Bt(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=nt(r,n,i,o);if(s)throw new ot(s);return new tt(r/255*o,n/255*o,i/255*o,o)}function Ft(t,e){return t in e}function Nt(t,e){var r=e[t];return void 0===r?null:r}function jt(t,e){var r=e[0],n=e[1];return r.evaluate(t)<n.evaluate(t)}function Vt(t,e){var r=e[0],n=e[1];return r.evaluate(t)>n.evaluate(t)}function Ut(t,e){var r=e[0],n=e[1];return r.evaluate(t)<=n.evaluate(t)}function qt(t,e){var r=e[0],n=e[1];return r.evaluate(t)>=n.evaluate(t)}function Ht(t){return{type:t}}function Gt(t){return{result:\\\"success\\\",value:t}}function Wt(t){return{result:\\\"error\\\",value:t}}gt.register(Rt,{error:[{kind:\\\"error\\\"},[q],function(t,e){var r=e[0];throw new ot(r.evaluate(t))}],typeof:[q,[Y],function(t,e){return $(it(e[0].evaluate(t)))}],\\\"to-string\\\":[q,[Y],function(t,e){var r=e[0],n=typeof(r=r.evaluate(t));return null===r?\\\"\\\":\\\"string\\\"===n||\\\"number\\\"===n||\\\"boolean\\\"===n?String(r):r instanceof tt?r.toString():JSON.stringify(r)}],\\\"to-boolean\\\":[H,[Y],function(t,e){var r=e[0];return Boolean(r.evaluate(t))}],\\\"to-rgba\\\":[Z(U,4),[G],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[G,[U,U,U],Bt],rgba:[G,[U,U,U,U],Bt],has:{type:H,overloads:[[[q],function(t,e){return Ft(e[0].evaluate(t),t.properties())}],[[q,W],function(t,e){var r=e[0],n=e[1];return Ft(r.evaluate(t),n.evaluate(t))}]]},get:{type:Y,overloads:[[[q],function(t,e){return Nt(e[0].evaluate(t),t.properties())}],[[q,W],function(t,e){var r=e[0],n=e[1];return Nt(r.evaluate(t),n.evaluate(t))}]]},properties:[W,[],function(t){return t.properties()}],\\\"geometry-type\\\":[q,[],function(t){return t.geometryType()}],id:[Y,[],function(t){return t.id()}],zoom:[U,[],function(t){return t.globals.zoom}],\\\"heatmap-density\\\":[U,[],function(t){return t.globals.heatmapDensity||0}],\\\"line-progress\\\":[U,[],function(t){return t.globals.lineProgress||0}],\\\"+\\\":[U,Ht(U),function(t,e){for(var r=0,n=0,i=e;n<i.length;n+=1)r+=i[n].evaluate(t);return r}],\\\"*\\\":[U,Ht(U),function(t,e){for(var r=1,n=0,i=e;n<i.length;n+=1)r*=i[n].evaluate(t);return r}],\\\"-\\\":{type:U,overloads:[[[U,U],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)-n.evaluate(t)}],[[U],function(t,e){return-e[0].evaluate(t)}]]},\\\"/\\\":[U,[U,U],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)/n.evaluate(t)}],\\\"%\\\":[U,[U,U],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)%n.evaluate(t)}],ln2:[U,[],function(){return Math.LN2}],pi:[U,[],function(){return Math.PI}],e:[U,[],function(){return Math.E}],\\\"^\\\":[U,[U,U],function(t,e){var r=e[0],n=e[1];return Math.pow(r.evaluate(t),n.evaluate(t))}],sqrt:[U,[U],function(t,e){var r=e[0];return Math.sqrt(r.evaluate(t))}],log10:[U,[U],function(t,e){var r=e[0];return Math.log10(r.evaluate(t))}],ln:[U,[U],function(t,e){var r=e[0];return Math.log(r.evaluate(t))}],log2:[U,[U],function(t,e){var r=e[0];return Math.log2(r.evaluate(t))}],sin:[U,[U],function(t,e){var r=e[0];return Math.sin(r.evaluate(t))}],cos:[U,[U],function(t,e){var r=e[0];return Math.cos(r.evaluate(t))}],tan:[U,[U],function(t,e){var r=e[0];return Math.tan(r.evaluate(t))}],asin:[U,[U],function(t,e){var r=e[0];return Math.asin(r.evaluate(t))}],acos:[U,[U],function(t,e){var r=e[0];return Math.acos(r.evaluate(t))}],atan:[U,[U],function(t,e){var r=e[0];return Math.atan(r.evaluate(t))}],min:[U,Ht(U),function(t,e){return Math.min.apply(Math,e.map(function(e){return e.evaluate(t)}))}],max:[U,Ht(U),function(t,e){return Math.max.apply(Math,e.map(function(e){return e.evaluate(t)}))}],abs:[U,[U],function(t,e){var r=e[0];return Math.abs(r.evaluate(t))}],round:[U,[U],function(t,e){var r=e[0].evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[U,[U],function(t,e){var r=e[0];return Math.floor(r.evaluate(t))}],ceil:[U,[U],function(t,e){var r=e[0];return Math.ceil(r.evaluate(t))}],\\\"filter-==\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1];return t.properties()[r.value]===n.value}],\\\"filter-id-==\\\":[H,[Y],function(t,e){var r=e[0];return t.id()===r.value}],\\\"filter-type-==\\\":[H,[q],function(t,e){var r=e[0];return t.geometryType()===r.value}],\\\"filter-<\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<a}],\\\"filter-id-<\\\":[H,[Y],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<i}],\\\"filter->\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],\\\"filter-id->\\\":[H,[Y],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],\\\"filter-<=\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],\\\"filter-id-<=\\\":[H,[Y],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],\\\"filter->=\\\":[H,[q,Y],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],\\\"filter-id->=\\\":[H,[Y],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],\\\"filter-has\\\":[H,[Y],function(t,e){return e[0].value in t.properties()}],\\\"filter-has-id\\\":[H,[],function(t){return null!==t.id()}],\\\"filter-type-in\\\":[H,[Z(q)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],\\\"filter-id-in\\\":[H,[Z(Y)],function(t,e){return e[0].value.indexOf(t.id())>=0}],\\\"filter-in-small\\\":[H,[q,Z(Y)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],\\\"filter-in-large\\\":[H,[q,Z(Y)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],\\\">\\\":{type:H,overloads:[[[U,U],Vt],[[q,q],Vt],[[q,q,X],function(t,e){var r=e[0],n=e[1];return e[2].evaluate(t).compare(r.evaluate(t),n.evaluate(t))>0}]]},\\\"<\\\":{type:H,overloads:[[[U,U],jt],[[q,q],jt],[[q,q,X],function(t,e){var r=e[0],n=e[1];return e[2].evaluate(t).compare(r.evaluate(t),n.evaluate(t))<0}]]},\\\">=\\\":{type:H,overloads:[[[U,U],qt],[[q,q],qt],[[q,q,X],function(t,e){var r=e[0],n=e[1];return e[2].evaluate(t).compare(r.evaluate(t),n.evaluate(t))>=0}]]},\\\"<=\\\":{type:H,overloads:[[[U,U],Ut],[[q,q],Ut],[[q,q,X],function(t,e){var r=e[0],n=e[1];return e[2].evaluate(t).compare(r.evaluate(t),n.evaluate(t))<=0}]]},all:{type:H,overloads:[[[H,H],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)&&n.evaluate(t)}],[Ht(H),function(t,e){for(var r=0,n=e;r<n.length;r+=1)if(!n[r].evaluate(t))return!1;return!0}]]},any:{type:H,overloads:[[[H,H],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)||n.evaluate(t)}],[Ht(H),function(t,e){for(var r=0,n=e;r<n.length;r+=1)if(n[r].evaluate(t))return!0;return!1}]]},\\\"!\\\":[H,[H],function(t,e){return!e[0].evaluate(t)}],\\\"is-supported-script\\\":[H,[q],function(t,e){var r=e[0],n=t.globals&&t.globals.isSupportedScript;return!n||n(r.evaluate(t))}],upcase:[q,[q],function(t,e){return e[0].evaluate(t).toUpperCase()}],downcase:[q,[q],function(t,e){return e[0].evaluate(t).toLowerCase()}],concat:[q,Ht(q),function(t,e){return e.map(function(e){return e.evaluate(t)}).join(\\\"\\\")}],\\\"resolved-locale\\\":[q,[X],function(t,e){return e[0].evaluate(t).resolvedLocale()}]});var Yt=.95047,Xt=1,Zt=1.08883,$t=4/29,Jt=6/29,Kt=3*Jt*Jt,Qt=Jt*Jt*Jt,te=Math.PI/180,ee=180/Math.PI;function re(t){return t>Qt?Math.pow(t,1/3):t/Kt+$t}function ne(t){return t>Jt?t*t*t:Kt*(t-$t)}function ie(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ae(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function oe(t){var e=ae(t.r),r=ae(t.g),n=ae(t.b),i=re((.4124564*e+.3575761*r+.1804375*n)/Yt),a=re((.2126729*e+.7151522*r+.072175*n)/Xt);return{l:116*a-16,a:500*(i-a),b:200*(a-re((.0193339*e+.119192*r+.9503041*n)/Zt)),alpha:t.a}}function se(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=Xt*ne(e),r=Yt*ne(r),n=Zt*ne(n),new tt(ie(3.2404542*r-1.5371385*e-.4985314*n),ie(-.969266*r+1.8760108*e+.041556*n),ie(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}var le={forward:oe,reverse:se,interpolate:function(t,e,r){return{l:wt(t.l,e.l,r),a:wt(t.a,e.a,r),b:wt(t.b,e.b,r),alpha:wt(t.alpha,e.alpha,r)}}},ce={forward:function(t){var e=oe(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*ee;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*te,r=t.c;return se({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:function(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}(t.h,e.h,r),c:wt(t.c,e.c,r),l:wt(t.l,e.l,r),alpha:wt(t.alpha,e.alpha,r)}}},ue=Object.freeze({lab:le,hcl:ce});function fe(t){return t instanceof Number?\\\"number\\\":t instanceof String?\\\"string\\\":t instanceof Boolean?\\\"boolean\\\":Array.isArray(t)?\\\"array\\\":null===t?\\\"null\\\":typeof t}function he(t){return\\\"object\\\"==typeof t&&null!==t&&!Array.isArray(t)}function pe(t){return t}function de(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function ge(t,e,r,n,i){return de(typeof r===i?n[r]:void 0,t.default,e.default)}function ve(t,e,r){if(\\\"number\\\"!==fe(r))return de(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];var i=xe(t.stops,r);return t.stops[i][1]}function me(t,e,r){var n=void 0!==t.base?t.base:1;if(\\\"number\\\"!==fe(r))return de(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=xe(t.stops,r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],l=t.stops[a+1][1],c=kt[e.type]||pe;if(t.colorSpace&&\\\"rgb\\\"!==t.colorSpace){var u=ue[t.colorSpace];c=function(t,e){return u.reverse(u.interpolate(u.forward(t),u.forward(e),o))}}return\\\"function\\\"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=l.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return c(r,n,o)}}:c(s,l,o)}function ye(t,e,r){return\\\"color\\\"===e.type?r=tt.parse(r):fe(r)===e.type||\\\"enum\\\"===e.type&&e.values[r]||(r=void 0),de(r,t.default,e.default)}function xe(t,e){for(var r,n,i=0,a=t.length-1,o=0;i<=a;){if(r=t[o=Math.floor((i+a)/2)][0],n=t[o+1][0],e===r||e>r&&e<n)return o;r<e?i=o+1:r>e&&(a=o-1)}return Math.max(o-1,0)}var be=function(t,e){var r;this.expression=t,this._warningHistory={},this._defaultValue=\\\"color\\\"===(r=e).type&&he(r.default)?new tt(0,0,0,0):\\\"color\\\"===r.type?tt.parse(r.default)||null:void 0===r.default?null:r.default,\\\"enum\\\"===e.type&&(this._enumValues=e.values)};function _e(t){return Array.isArray(t)&&t.length>0&&\\\"string\\\"==typeof t[0]&&t[0]in Rt}function we(t,e){var r=new xt(Rt,[],function(t){var e={color:G,string:q,number:U,enum:q,boolean:H};return\\\"array\\\"===t.type?Z(e[t.value]||Y,t.length):e[t.type]||null}(e)),n=r.parse(t);return n?Gt(new be(n,e)):Wt(r.errors)}be.prototype.evaluateWithoutErrorHandling=function(t,e){return this._evaluator||(this._evaluator=new dt),this._evaluator.globals=t,this._evaluator.feature=e,this.expression.evaluate(this._evaluator)},be.prototype.evaluate=function(t,e){this._evaluator||(this._evaluator=new dt),this._evaluator.globals=t,this._evaluator.feature=e;try{var r=this.expression.evaluate(this._evaluator);if(null==r)return this._defaultValue;if(this._enumValues&&!(r in this._enumValues))throw new ot(\\\"Expected value to be one of \\\"+Object.keys(this._enumValues).map(function(t){return JSON.stringify(t)}).join(\\\", \\\")+\\\", but found \\\"+JSON.stringify(r)+\\\" instead.\\\");return r}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,\\\"undefined\\\"!=typeof console&&console.warn(t.message)),this._defaultValue}};var ke=function(t,e){this.kind=t,this._styleExpression=e};ke.prototype.evaluateWithoutErrorHandling=function(t,e){return this._styleExpression.evaluateWithoutErrorHandling(t,e)},ke.prototype.evaluate=function(t,e){return this._styleExpression.evaluate(t,e)};var Me=function(t,e,r){this.kind=t,this.zoomStops=r.labels,this._styleExpression=e,r instanceof Mt&&(this._interpolationType=r.interpolation)};function Ae(t,e){if(\\\"error\\\"===(t=we(t,e)).result)return t;var r=t.value.expression,n=vt(r);if(!n&&!e[\\\"property-function\\\"])return Wt([new N(\\\"\\\",\\\"property expressions not supported\\\")]);var i=mt(r,[\\\"zoom\\\"]);if(!i&&!1===e[\\\"zoom-function\\\"])return Wt([new N(\\\"\\\",\\\"zoom expressions not supported\\\")]);var a=function t(e){var r=null;if(e instanceof St)r=t(e.result);else if(e instanceof Tt)for(var n=0,i=e.args;n<i.length;n+=1){var a=i[n];if(r=t(a))break}else(e instanceof _t||e instanceof Mt)&&e.input instanceof gt&&\\\"zoom\\\"===e.input.name&&(r=e);return r instanceof N?r:(e.eachChild(function(e){var n=t(e);n instanceof N?r=n:!r&&n?r=new N(\\\"\\\",'\\\"zoom\\\" expression may only be used as input to a top-level \\\"step\\\" or \\\"interpolate\\\" expression.'):r&&n&&r!==n&&(r=new N(\\\"\\\",'Only one zoom-based \\\"step\\\" or \\\"interpolate\\\" subexpression may be used in an expression.'))}),r)}(r);return a||i?a instanceof N?Wt([a]):a instanceof Mt&&\\\"piecewise-constant\\\"===e.function?Wt([new N(\\\"\\\",'\\\"interpolate\\\" expressions cannot be used with this property')]):Gt(a?new Me(n?\\\"camera\\\":\\\"composite\\\",t.value,a):new ke(n?\\\"constant\\\":\\\"source\\\",t.value)):Wt([new N(\\\"\\\",'\\\"zoom\\\" expression may only be used as input to a top-level \\\"step\\\" or \\\"interpolate\\\" expression.')])}Me.prototype.evaluateWithoutErrorHandling=function(t,e){return this._styleExpression.evaluateWithoutErrorHandling(t,e)},Me.prototype.evaluate=function(t,e){return this._styleExpression.evaluate(t,e)},Me.prototype.interpolationFactor=function(t,e,r){return this._interpolationType?Mt.interpolationFactor(this._interpolationType,t,e,r):0};var Te=function(t,e){this._parameters=t,this._specification=e,R(this,function t(e,r){var n,i,a,o=\\\"color\\\"===r.type,s=e.stops&&\\\"object\\\"==typeof e.stops[0][0],l=s||void 0!==e.property,c=s||!l,u=e.type||(\\\"interpolated\\\"===r.function?\\\"exponential\\\":\\\"interval\\\");if(o&&((e=R({},e)).stops&&(e.stops=e.stops.map(function(t){return[t[0],tt.parse(t[1])]})),e.default?e.default=tt.parse(e.default):e.default=tt.parse(r.default)),e.colorSpace&&\\\"rgb\\\"!==e.colorSpace&&!ue[e.colorSpace])throw new Error(\\\"Unknown color space: \\\"+e.colorSpace);if(\\\"exponential\\\"===u)n=me;else if(\\\"interval\\\"===u)n=ve;else if(\\\"categorical\\\"===u){n=ge,i=Object.create(null);for(var f=0,h=e.stops;f<h.length;f+=1){var p=h[f];i[p[0]]=p[1]}a=typeof e.stops[0][0]}else{if(\\\"identity\\\"!==u)throw new Error('Unknown function type \\\"'+u+'\\\"');n=ye}if(s){for(var d={},g=[],v=0;v<e.stops.length;v++){var m=e.stops[v],y=m[0].zoom;void 0===d[y]&&(d[y]={zoom:y,type:e.type,property:e.property,default:e.default,stops:[]},g.push(y)),d[y].stops.push([m[0].value,m[1]])}for(var x=[],b=0,_=g;b<_.length;b+=1){var w=_[b];x.push([d[w].zoom,t(d[w],r)])}return{kind:\\\"composite\\\",interpolationFactor:Mt.interpolationFactor.bind(void 0,{name:\\\"linear\\\"}),zoomStops:x.map(function(t){return t[0]}),evaluate:function(t,n){var i=t.zoom;return me({stops:x,base:e.base},r,i).evaluate(i,n)}}}return c?{kind:\\\"camera\\\",interpolationFactor:\\\"exponential\\\"===u?Mt.interpolationFactor.bind(void 0,{name:\\\"exponential\\\",base:void 0!==e.base?e.base:1}):function(){return 0},zoomStops:e.stops.map(function(t){return t[0]}),evaluate:function(t){var o=t.zoom;return n(e,r,o,i,a)}}:{kind:\\\"source\\\",evaluate:function(t,o){var s=o&&o.properties?o.properties[e.property]:void 0;return void 0===s?de(e.default,r.default):n(e,r,s,i,a)}}}(this._parameters,this._specification))};function Se(t,e){if(he(t))return new Te(t,e);if(_e(t)){var r=Ae(t,e);if(\\\"error\\\"===r.result)throw new Error(r.value.map(function(t){return t.key+\\\": \\\"+t.message}).join(\\\", \\\"));return r.value}var n=t;return\\\"string\\\"==typeof t&&\\\"color\\\"===e.type&&(n=tt.parse(t)),{kind:\\\"constant\\\",evaluate:function(){return n}}}function Ee(t){var e=t.key,r=t.value,n=t.valueSpec||{},i=t.objectElementValidators||{},a=t.style,o=t.styleSpec,s=[],l=fe(r);if(\\\"object\\\"!==l)return[new P(e,r,\\\"object expected, \\\"+l+\\\" found\\\")];for(var c in r){var u=c.split(\\\".\\\")[0],f=n[u]||n[\\\"*\\\"],h=void 0;if(i[u])h=i[u];else if(n[u])h=Ke;else if(i[\\\"*\\\"])h=i[\\\"*\\\"];else{if(!n[\\\"*\\\"]){s.push(new P(e,r[c],'unknown property \\\"'+c+'\\\"'));continue}h=Ke}s=s.concat(h({key:(e?e+\\\".\\\":e)+c,value:r[c],valueSpec:f,style:a,styleSpec:o,object:r,objectKey:c},r))}for(var p in n)i[p]||n[p].required&&void 0===n[p].default&&void 0===r[p]&&s.push(new P(e,r,'missing required property \\\"'+p+'\\\"'));return s}function Ce(t){var e=t.value,r=t.valueSpec,n=t.style,i=t.styleSpec,a=t.key,o=t.arrayElementValidator||Ke;if(\\\"array\\\"!==fe(e))return[new P(a,e,\\\"array expected, \\\"+fe(e)+\\\" found\\\")];if(r.length&&e.length!==r.length)return[new P(a,e,\\\"array length \\\"+r.length+\\\" expected, length \\\"+e.length+\\\" found\\\")];if(r[\\\"min-length\\\"]&&e.length<r[\\\"min-length\\\"])return[new P(a,e,\\\"array length at least \\\"+r[\\\"min-length\\\"]+\\\" expected, length \\\"+e.length+\\\" found\\\")];var s={type:r.value};i.$version<7&&(s.function=r.function),\\\"object\\\"===fe(r.value)&&(s=r.value);for(var l=[],c=0;c<e.length;c++)l=l.concat(o({array:e,arrayIndex:c,value:e[c],valueSpec:s,style:n,styleSpec:i,key:a+\\\"[\\\"+c+\\\"]\\\"}));return l}function Le(t){var e=t.key,r=t.value,n=t.valueSpec,i=fe(r);return\\\"number\\\"!==i?[new P(e,r,\\\"number expected, \\\"+i+\\\" found\\\")]:\\\"minimum\\\"in n&&r<n.minimum?[new P(e,r,r+\\\" is less than the minimum value \\\"+n.minimum)]:\\\"maximum\\\"in n&&r>n.maximum?[new P(e,r,r+\\\" is greater than the maximum value \\\"+n.maximum)]:[]}function ze(t){var e,r,n,i=t.valueSpec,a=B(t.value.type),o={},s=\\\"categorical\\\"!==a&&void 0===t.value.property,l=!s,c=\\\"array\\\"===fe(t.value.stops)&&\\\"array\\\"===fe(t.value.stops[0])&&\\\"object\\\"===fe(t.value.stops[0][0]),u=Ee({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if(\\\"identity\\\"===a)return[new P(t.key,t.value,'identity function may not have a \\\"stops\\\" property')];var e=[],r=t.value;return e=e.concat(Ce({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),\\\"array\\\"===fe(r)&&0===r.length&&e.push(new P(t.key,r,\\\"array must have at least one stop\\\")),e},default:function(t){return Ke({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return\\\"identity\\\"===a&&s&&u.push(new P(t.key,t.value,'missing required property \\\"property\\\"')),\\\"identity\\\"===a||t.value.stops||u.push(new P(t.key,t.value,'missing required property \\\"stops\\\"')),\\\"exponential\\\"===a&&\\\"piecewise-constant\\\"===t.valueSpec.function&&u.push(new P(t.key,t.value,\\\"exponential functions not supported\\\")),t.styleSpec.$version>=8&&(l&&!t.valueSpec[\\\"property-function\\\"]?u.push(new P(t.key,t.value,\\\"property functions not supported\\\")):s&&!t.valueSpec[\\\"zoom-function\\\"]&&\\\"heatmap-color\\\"!==t.objectKey&&\\\"line-gradient\\\"!==t.objectKey&&u.push(new P(t.key,t.value,\\\"zoom functions not supported\\\"))),\\\"categorical\\\"!==a&&!c||void 0!==t.value.property||u.push(new P(t.key,t.value,'\\\"property\\\" property is required')),u;function f(t){var e=[],a=t.value,s=t.key;if(\\\"array\\\"!==fe(a))return[new P(s,a,\\\"array expected, \\\"+fe(a)+\\\" found\\\")];if(2!==a.length)return[new P(s,a,\\\"array length 2 expected, length \\\"+a.length+\\\" found\\\")];if(c){if(\\\"object\\\"!==fe(a[0]))return[new P(s,a,\\\"object expected, \\\"+fe(a[0])+\\\" found\\\")];if(void 0===a[0].zoom)return[new P(s,a,\\\"object stop key must have zoom\\\")];if(void 0===a[0].value)return[new P(s,a,\\\"object stop key must have value\\\")];if(n&&n>B(a[0].zoom))return[new P(s,a[0].zoom,\\\"stop zoom values must appear in ascending order\\\")];B(a[0].zoom)!==n&&(n=B(a[0].zoom),r=void 0,o={}),e=e.concat(Ee({key:s+\\\"[0]\\\",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Le,value:h}}))}else e=e.concat(h({key:s+\\\"[0]\\\",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return e.concat(Ke({key:s+\\\"[1]\\\",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=fe(t.value),l=B(t.value),c=null!==t.value?t.value:n;if(e){if(s!==e)return[new P(t.key,c,s+\\\" stop domain type must match previous stop domain type \\\"+e)]}else e=s;if(\\\"number\\\"!==s&&\\\"string\\\"!==s&&\\\"boolean\\\"!==s)return[new P(t.key,c,\\\"stop domain value must be a number, string, or boolean\\\")];if(\\\"number\\\"!==s&&\\\"categorical\\\"!==a){var u=\\\"number expected, \\\"+s+\\\" found\\\";return i[\\\"property-function\\\"]&&void 0===a&&(u+='\\\\nIf you intended to use a categorical function, specify `\\\"type\\\": \\\"categorical\\\"`.'),[new P(t.key,c,u)]}return\\\"categorical\\\"!==a||\\\"number\\\"!==s||isFinite(l)&&Math.floor(l)===l?\\\"categorical\\\"!==a&&\\\"number\\\"===s&&void 0!==r&&l<r?[new P(t.key,c,\\\"stop domain values must appear in ascending order\\\")]:(r=l,\\\"categorical\\\"===a&&l in o?[new P(t.key,c,\\\"stop domain values must be unique\\\")]:(o[l]=!0,[])):[new P(t.key,c,\\\"integer expected, found \\\"+l)]}}function Oe(t){var e=(\\\"property\\\"===t.expressionContext?Ae:we)(F(t.value),t.valueSpec);return\\\"error\\\"===e.result?e.value.map(function(e){return new P(\\\"\\\"+t.key+e.key,t.value,e.message)}):\\\"property\\\"===t.expressionContext&&\\\"text-font\\\"===t.propertyKey&&-1!==e.value._styleExpression.expression.possibleOutputs().indexOf(void 0)?[new P(t.key,t.value,'Invalid data expression for \\\"text-font\\\". Output values must be contained as literals within the expression.')]:[]}function Ie(t){var e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(B(r))&&i.push(new P(e,r,\\\"expected one of [\\\"+n.values.join(\\\", \\\")+\\\"], \\\"+JSON.stringify(r)+\\\" found\\\")):-1===Object.keys(n.values).indexOf(B(r))&&i.push(new P(e,r,\\\"expected one of [\\\"+Object.keys(n.values).join(\\\", \\\")+\\\"], \\\"+JSON.stringify(r)+\\\" found\\\")),i}function Pe(t){if(!Array.isArray(t)||0===t.length)return!1;switch(t[0]){case\\\"has\\\":return t.length>=2&&\\\"$id\\\"!==t[1]&&\\\"$type\\\"!==t[1];case\\\"in\\\":case\\\"!in\\\":case\\\"!has\\\":case\\\"none\\\":return!1;case\\\"==\\\":case\\\"!=\\\":case\\\">\\\":case\\\">=\\\":case\\\"<\\\":case\\\"<=\\\":return 3===t.length&&(Array.isArray(t[1])||Array.isArray(t[2]));case\\\"any\\\":case\\\"all\\\":for(var e=0,r=t.slice(1);e<r.length;e+=1){var n=r[e];if(!Pe(n)&&\\\"boolean\\\"!=typeof n)return!1}return!0;default:return!0}}Te.deserialize=function(t){return new Te(t._parameters,t._specification)},Te.serialize=function(t){return{_parameters:t._parameters,_specification:t._specification}};var De={type:\\\"boolean\\\",default:!1,function:!0,\\\"property-function\\\":!0,\\\"zoom-function\\\":!0};function Re(t){if(!t)return function(){return!0};Pe(t)||(t=Fe(t));var e=we(t,De);if(\\\"error\\\"===e.result)throw new Error(e.value.map(function(t){return t.key+\\\": \\\"+t.message}).join(\\\", \\\"));return function(t,r){return e.value.evaluate(t,r)}}function Be(t,e){return t<e?-1:t>e?1:0}function Fe(t){if(!t)return!0;var e,r=t[0];return t.length<=1?\\\"any\\\"!==r:\\\"==\\\"===r?Ne(t[1],t[2],\\\"==\\\"):\\\"!=\\\"===r?Ue(Ne(t[1],t[2],\\\"==\\\")):\\\"<\\\"===r||\\\">\\\"===r||\\\"<=\\\"===r||\\\">=\\\"===r?Ne(t[1],t[2],r):\\\"any\\\"===r?(e=t.slice(1),[\\\"any\\\"].concat(e.map(Fe))):\\\"all\\\"===r?[\\\"all\\\"].concat(t.slice(1).map(Fe)):\\\"none\\\"===r?[\\\"all\\\"].concat(t.slice(1).map(Fe).map(Ue)):\\\"in\\\"===r?je(t[1],t.slice(2)):\\\"!in\\\"===r?Ue(je(t[1],t.slice(2))):\\\"has\\\"===r?Ve(t[1]):\\\"!has\\\"!==r||Ue(Ve(t[1]))}function Ne(t,e,r){switch(t){case\\\"$type\\\":return[\\\"filter-type-\\\"+r,e];case\\\"$id\\\":return[\\\"filter-id-\\\"+r,e];default:return[\\\"filter-\\\"+r,t,e]}}function je(t,e){if(0===e.length)return!1;switch(t){case\\\"$type\\\":return[\\\"filter-type-in\\\",[\\\"literal\\\",e]];case\\\"$id\\\":return[\\\"filter-id-in\\\",[\\\"literal\\\",e]];default:return e.length>200&&!e.some(function(t){return typeof t!=typeof e[0]})?[\\\"filter-in-large\\\",t,[\\\"literal\\\",e.sort(Be)]]:[\\\"filter-in-small\\\",t,[\\\"literal\\\",e]]}}function Ve(t){switch(t){case\\\"$type\\\":return!0;case\\\"$id\\\":return[\\\"filter-has-id\\\"];default:return[\\\"filter-has\\\",t]}}function Ue(t){return[\\\"!\\\",t]}function qe(t){return Pe(F(t.value))?Oe(R({},t,{expressionContext:\\\"filter\\\",valueSpec:{value:\\\"boolean\\\"}})):function t(e){var r=e.value,n=e.key;if(\\\"array\\\"!==fe(r))return[new P(n,r,\\\"array expected, \\\"+fe(r)+\\\" found\\\")];var i,a=e.styleSpec,o=[];if(r.length<1)return[new P(n,r,\\\"filter array must have at least 1 element\\\")];switch(o=o.concat(Ie({key:n+\\\"[0]\\\",value:r[0],valueSpec:a.filter_operator,style:e.style,styleSpec:e.styleSpec})),B(r[0])){case\\\"<\\\":case\\\"<=\\\":case\\\">\\\":case\\\">=\\\":r.length>=2&&\\\"$type\\\"===B(r[1])&&o.push(new P(n,r,'\\\"$type\\\" cannot be use with operator \\\"'+r[0]+'\\\"'));case\\\"==\\\":case\\\"!=\\\":3!==r.length&&o.push(new P(n,r,'filter array for operator \\\"'+r[0]+'\\\" must have 3 elements'));case\\\"in\\\":case\\\"!in\\\":r.length>=2&&\\\"string\\\"!==(i=fe(r[1]))&&o.push(new P(n+\\\"[1]\\\",r[1],\\\"string expected, \\\"+i+\\\" found\\\"));for(var s=2;s<r.length;s++)i=fe(r[s]),\\\"$type\\\"===B(r[1])?o=o.concat(Ie({key:n+\\\"[\\\"+s+\\\"]\\\",value:r[s],valueSpec:a.geometry_type,style:e.style,styleSpec:e.styleSpec})):\\\"string\\\"!==i&&\\\"number\\\"!==i&&\\\"boolean\\\"!==i&&o.push(new P(n+\\\"[\\\"+s+\\\"]\\\",r[s],\\\"string, number, or boolean expected, \\\"+i+\\\" found\\\"));break;case\\\"any\\\":case\\\"all\\\":case\\\"none\\\":for(var l=1;l<r.length;l++)o=o.concat(t({key:n+\\\"[\\\"+l+\\\"]\\\",value:r[l],style:e.style,styleSpec:e.styleSpec}));break;case\\\"has\\\":case\\\"!has\\\":i=fe(r[1]),2!==r.length?o.push(new P(n,r,'filter array for \\\"'+r[0]+'\\\" operator must have 2 elements')):\\\"string\\\"!==i&&o.push(new P(n+\\\"[1]\\\",r[1],\\\"string expected, \\\"+i+\\\" found\\\"))}return o}(t)}function He(t,e){var r=t.key,n=t.style,i=t.styleSpec,a=t.value,o=t.objectKey,s=i[e+\\\"_\\\"+t.layerType];if(!s)return[];var l=o.match(/^(.*)-transition$/);if(\\\"paint\\\"===e&&l&&s[l[1]]&&s[l[1]].transition)return Ke({key:r,value:a,valueSpec:i.transition,style:n,styleSpec:i});var c,u=t.valueSpec||s[o];if(!u)return[new P(r,a,'unknown property \\\"'+o+'\\\"')];if(\\\"string\\\"===fe(a)&&u[\\\"property-function\\\"]&&!u.tokens&&(c=/^{([^}]+)}$/.exec(a)))return[new P(r,a,'\\\"'+o+'\\\" does not support interpolation syntax\\\\nUse an identity property function instead: `{ \\\"type\\\": \\\"identity\\\", \\\"property\\\": '+JSON.stringify(c[1])+\\\" }`.\\\")];var f=[];return\\\"symbol\\\"===t.layerType&&(\\\"text-field\\\"===o&&n&&!n.glyphs&&f.push(new P(r,a,'use of \\\"text-field\\\" requires a style \\\"glyphs\\\" property')),\\\"text-font\\\"===o&&he(F(a))&&\\\"identity\\\"===B(a.type)&&f.push(new P(r,a,'\\\"text-font\\\" does not support identity functions'))),f.concat(Ke({key:t.key,value:a,valueSpec:u,style:n,styleSpec:i,expressionContext:\\\"property\\\",propertyKey:o}))}function Ge(t){return He(t,\\\"paint\\\")}function We(t){return He(t,\\\"layout\\\")}function Ye(t){var e=[],r=t.value,n=t.key,i=t.style,a=t.styleSpec;r.type||r.ref||e.push(new P(n,r,'either \\\"type\\\" or \\\"ref\\\" is required'));var o,s=B(r.type),l=B(r.ref);if(r.id)for(var c=B(r.id),u=0;u<t.arrayIndex;u++){var f=i.layers[u];B(f.id)===c&&e.push(new P(n,r.id,'duplicate layer id \\\"'+r.id+'\\\", previously used at line '+f.id.__line__))}if(\\\"ref\\\"in r)[\\\"type\\\",\\\"source\\\",\\\"source-layer\\\",\\\"filter\\\",\\\"layout\\\"].forEach(function(t){t in r&&e.push(new P(n,r[t],'\\\"'+t+'\\\" is prohibited for ref layers'))}),i.layers.forEach(function(t){B(t.id)===l&&(o=t)}),o?o.ref?e.push(new P(n,r.ref,\\\"ref cannot reference another ref layer\\\")):s=B(o.type):e.push(new P(n,r.ref,'ref layer \\\"'+l+'\\\" not found'));else if(\\\"background\\\"!==s)if(r.source){var h=i.sources&&i.sources[r.source],p=h&&B(h.type);h?\\\"vector\\\"===p&&\\\"raster\\\"===s?e.push(new P(n,r.source,'layer \\\"'+r.id+'\\\" requires a raster source')):\\\"raster\\\"===p&&\\\"raster\\\"!==s?e.push(new P(n,r.source,'layer \\\"'+r.id+'\\\" requires a vector source')):\\\"vector\\\"!==p||r[\\\"source-layer\\\"]?\\\"raster-dem\\\"===p&&\\\"hillshade\\\"!==s?e.push(new P(n,r.source,\\\"raster-dem source can only be used with layer type 'hillshade'.\\\")):\\\"line\\\"!==s||!r.paint||!r.paint[\\\"line-gradient\\\"]||\\\"geojson\\\"===p&&h.lineMetrics||e.push(new P(n,r,'layer \\\"'+r.id+'\\\" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')):e.push(new P(n,r,'layer \\\"'+r.id+'\\\" must specify a \\\"source-layer\\\"')):e.push(new P(n,r.source,'source \\\"'+r.source+'\\\" not found'))}else e.push(new P(n,r,'missing required property \\\"source\\\"'));return e=e.concat(Ee({key:n,value:r,valueSpec:a.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\\\"*\\\":function(){return[]},type:function(){return Ke({key:n+\\\".type\\\",value:r.type,valueSpec:a.layer.type,style:t.style,styleSpec:t.styleSpec,object:r,objectKey:\\\"type\\\"})},filter:qe,layout:function(t){return Ee({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\\\"*\\\":function(t){return We(R({layerType:s},t))}}})},paint:function(t){return Ee({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\\\"*\\\":function(t){return Ge(R({layerType:s},t))}}})}}}))}function Xe(t){var e=t.value,r=t.key,n=t.styleSpec,i=t.style;if(!e.type)return[new P(r,e,'\\\"type\\\" is required')];var a=B(e.type),o=[];switch(a){case\\\"vector\\\":case\\\"raster\\\":case\\\"raster-dem\\\":if(o=o.concat(Ee({key:r,value:e,valueSpec:n[\\\"source_\\\"+a.replace(\\\"-\\\",\\\"_\\\")],style:t.style,styleSpec:n})),\\\"url\\\"in e)for(var s in e)[\\\"type\\\",\\\"url\\\",\\\"tileSize\\\"].indexOf(s)<0&&o.push(new P(r+\\\".\\\"+s,e[s],'a source with a \\\"url\\\" property may not include a \\\"'+s+'\\\" property'));return o;case\\\"geojson\\\":return Ee({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n});case\\\"video\\\":return Ee({key:r,value:e,valueSpec:n.source_video,style:i,styleSpec:n});case\\\"image\\\":return Ee({key:r,value:e,valueSpec:n.source_image,style:i,styleSpec:n});case\\\"canvas\\\":return o.push(new P(r,null,\\\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\\\",\\\"source.canvas\\\")),o;default:return Ie({key:r+\\\".type\\\",value:e.type,valueSpec:{values:[\\\"vector\\\",\\\"raster\\\",\\\"raster-dem\\\",\\\"geojson\\\",\\\"video\\\",\\\"image\\\"]},style:i,styleSpec:n})}}function Ze(t){var e=t.value,r=t.styleSpec,n=r.light,i=t.style,a=[],o=fe(e);if(void 0===e)return a;if(\\\"object\\\"!==o)return a.concat([new P(\\\"light\\\",e,\\\"object expected, \\\"+o+\\\" found\\\")]);for(var s in e){var l=s.match(/^(.*)-transition$/);a=l&&n[l[1]]&&n[l[1]].transition?a.concat(Ke({key:s,value:e[s],valueSpec:r.transition,style:i,styleSpec:r})):n[s]?a.concat(Ke({key:s,value:e[s],valueSpec:n[s],style:i,styleSpec:r})):a.concat([new P(s,e[s],'unknown property \\\"'+s+'\\\"')])}return a}function $e(t){var e=t.value,r=t.key,n=fe(e);return\\\"string\\\"!==n?[new P(r,e,\\\"string expected, \\\"+n+\\\" found\\\")]:[]}var Je={\\\"*\\\":function(){return[]},array:Ce,boolean:function(t){var e=t.value,r=t.key,n=fe(e);return\\\"boolean\\\"!==n?[new P(r,e,\\\"boolean expected, \\\"+n+\\\" found\\\")]:[]},number:Le,color:function(t){var e=t.key,r=t.value,n=fe(r);return\\\"string\\\"!==n?[new P(e,r,\\\"color expected, \\\"+n+\\\" found\\\")]:null===Q(r)?[new P(e,r,'color expected, \\\"'+r+'\\\" found')]:[]},constants:D,enum:Ie,filter:qe,function:ze,layer:Ye,object:Ee,source:Xe,light:Ze,string:$e};function Ke(t){var e=t.value,r=t.valueSpec,n=t.styleSpec;return r.function&&he(B(e))?ze(t):r.function&&_e(F(e))?Oe(t):r.type&&Je[r.type]?Je[r.type](t):Ee(R({},t,{valueSpec:r.type?n[r.type]:r}))}function Qe(t){var e=t.value,r=t.key,n=$e(t);return n.length?n:(-1===e.indexOf(\\\"{fontstack}\\\")&&n.push(new P(r,e,'\\\"glyphs\\\" url must include a \\\"{fontstack}\\\" token')),-1===e.indexOf(\\\"{range}\\\")&&n.push(new P(r,e,'\\\"glyphs\\\" url must include a \\\"{range}\\\" token')),n)}function tr(t,e){e=e||I;var r=[];return r=r.concat(Ke({key:\\\"\\\",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:Qe,\\\"*\\\":function(){return[]}}})),t.constants&&(r=r.concat(D({key:\\\"constants\\\",value:t.constants,style:t,styleSpec:e}))),er(r)}function er(t){return[].concat(t).sort(function(t,e){return t.line-e.line})}function rr(t){return function(){return er(t.apply(this,arguments))}}tr.source=rr(Xe),tr.light=rr(Ze),tr.layer=rr(Ye),tr.filter=rr(qe),tr.paintProperty=rr(Ge),tr.layoutProperty=rr(We);var nr=tr,ir=tr.light,ar=tr.paintProperty,or=tr.layoutProperty;function sr(t,e){var r=!1;if(e&&e.length)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];t.fire(new z(new Error(a.message))),r=!0}return r}var lr=ur,cr=3;function ur(t,e,r){var n=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;var i=new Int32Array(this.arrayBuffer);t=i[0],e=i[1],r=i[2],this.d=e+2*r;for(var a=0;a<this.d*this.d;a++){var o=i[cr+a],s=i[cr+a+1];n.push(o===s?null:i.subarray(o,s))}var l=i[cr+n.length],c=i[cr+n.length+1];this.keys=i.subarray(l,c),this.bboxes=i.subarray(c),this.insert=this._insertReadonly}else{this.d=e+2*r;for(var u=0;u<this.d*this.d;u++)n.push([]);this.keys=[],this.bboxes=[]}this.n=e,this.extent=t,this.padding=r,this.scale=e/t,this.uid=0;var f=r/e*t;this.min=-f,this.max=t+f}ur.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertCell,this.uid++),this.keys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},ur.prototype._insertReadonly=function(){throw\\\"Cannot insert into a GridIndex created from an ArrayBuffer.\\\"},ur.prototype._insertCell=function(t,e,r,n,i,a){this.cells[i].push(a)},ur.prototype.query=function(t,e,r,n){var i=this.min,a=this.max;if(t<=i&&e<=i&&a<=r&&a<=n)return Array.prototype.slice.call(this.keys);var o=[];return this._forEachCell(t,e,r,n,this._queryCell,o,{}),o},ur.prototype._queryCell=function(t,e,r,n,i,a,o){var s=this.cells[i];if(null!==s)for(var l=this.keys,c=this.bboxes,u=0;u<s.length;u++){var f=s[u];if(void 0===o[f]){var h=4*f;t<=c[h+2]&&e<=c[h+3]&&r>=c[h+0]&&n>=c[h+1]?(o[f]=!0,a.push(l[f])):o[f]=!1}}},ur.prototype._forEachCell=function(t,e,r,n,i,a,o){for(var s=this._convertToCellCoord(t),l=this._convertToCellCoord(e),c=this._convertToCellCoord(r),u=this._convertToCellCoord(n),f=s;f<=c;f++)for(var h=l;h<=u;h++){var p=this.d*h+f;if(i.call(this,t,e,r,n,p,a,o))return}},ur.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},ur.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=cr+this.cells.length+1+1,r=0,n=0;n<this.cells.length;n++)r+=this.cells[n].length;var i=new Int32Array(e+r+this.keys.length+this.bboxes.length);i[0]=this.extent,i[1]=this.n,i[2]=this.padding;for(var a=e,o=0;o<t.length;o++){var s=t[o];i[cr+o]=a,i.set(s,a),a+=s.length}return i[cr+t.length]=a,i.set(this.keys,a),a+=this.keys.length,i[cr+t.length+1]=a,i.set(this.bboxes,a),a+=this.bboxes.length,i.buffer};var fr=self.ImageData,hr={};function pr(t,e,r){void 0===r&&(r={}),Object.defineProperty(e,\\\"_classRegistryKey\\\",{value:t,writeable:!1}),hr[t]={klass:e,omit:r.omit||[],shallow:r.shallow||[]}}for(var dr in pr(\\\"Object\\\",Object),lr.serialize=function(t,e){var r=t.toArrayBuffer();return e&&e.push(r),r},lr.deserialize=function(t){return new lr(t)},pr(\\\"Grid\\\",lr),pr(\\\"Color\\\",tt),pr(\\\"Error\\\",Error),pr(\\\"StylePropertyFunction\\\",Te),pr(\\\"StyleExpression\\\",be,{omit:[\\\"_evaluator\\\"]}),pr(\\\"ZoomDependentExpression\\\",Me),pr(\\\"ZoomConstantExpression\\\",ke),pr(\\\"CompoundExpression\\\",gt,{omit:[\\\"_evaluate\\\"]}),Rt)Rt[dr]._classRegistryKey||pr(\\\"Expression_\\\"+dr,Rt[dr]);function gr(t,e){if(null==t||\\\"boolean\\\"==typeof t||\\\"number\\\"==typeof t||\\\"string\\\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp)return t;if(t instanceof ArrayBuffer)return e&&e.push(t),t;if(ArrayBuffer.isView(t)){var r=t;return e&&e.push(r.buffer),r}if(t instanceof fr)return e&&e.push(t.data.buffer),t;if(Array.isArray(t)){for(var n=[],i=0,a=t;i<a.length;i+=1){var o=a[i];n.push(gr(o,e))}return n}if(\\\"object\\\"==typeof t){var s=t.constructor,l=s._classRegistryKey;if(!l)throw new Error(\\\"can't serialize object of unregistered class\\\");var c={};if(s.serialize)c._serialized=s.serialize(t,e);else{for(var u in t)if(t.hasOwnProperty(u)&&!(hr[l].omit.indexOf(u)>=0)){var f=t[u];c[u]=hr[l].shallow.indexOf(u)>=0?f:gr(f,e)}t instanceof Error&&(c.message=t.message)}return{name:l,properties:c}}throw new Error(\\\"can't serialize object of type \\\"+typeof t)}function vr(t){if(null==t||\\\"boolean\\\"==typeof t||\\\"number\\\"==typeof t||\\\"string\\\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||t instanceof fr)return t;if(Array.isArray(t))return t.map(function(t){return vr(t)});if(\\\"object\\\"==typeof t){var e=t,r=e.name,n=e.properties;if(!r)throw new Error(\\\"can't deserialize object of anonymous class\\\");var i=hr[r].klass;if(!i)throw new Error(\\\"can't deserialize unregistered class \\\"+r);if(i.deserialize)return i.deserialize(n._serialized);for(var a=Object.create(i.prototype),o=0,s=Object.keys(n);o<s.length;o+=1){var l=s[o];a[l]=hr[r].shallow.indexOf(l)>=0?n[l]:vr(n[l])}return a}throw new Error(\\\"can't deserialize object of type \\\"+typeof t)}var mr=function(){this.first=!0};mr.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom<r&&(this.lastIntegerZoom=r,this.lastIntegerZoomTime=e),t!==this.lastZoom&&(this.lastZoom=t,this.lastFloorZoom=r,!0))};var yr={\\\"Latin-1 Supplement\\\":function(t){return t>=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},\\\"Arabic Supplement\\\":function(t){return t>=1872&&t<=1919},\\\"Arabic Extended-A\\\":function(t){return t>=2208&&t<=2303},\\\"Hangul Jamo\\\":function(t){return t>=4352&&t<=4607},\\\"Unified Canadian Aboriginal Syllabics\\\":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},\\\"Unified Canadian Aboriginal Syllabics Extended\\\":function(t){return t>=6320&&t<=6399},\\\"General Punctuation\\\":function(t){return t>=8192&&t<=8303},\\\"Letterlike Symbols\\\":function(t){return t>=8448&&t<=8527},\\\"Number Forms\\\":function(t){return t>=8528&&t<=8591},\\\"Miscellaneous Technical\\\":function(t){return t>=8960&&t<=9215},\\\"Control Pictures\\\":function(t){return t>=9216&&t<=9279},\\\"Optical Character Recognition\\\":function(t){return t>=9280&&t<=9311},\\\"Enclosed Alphanumerics\\\":function(t){return t>=9312&&t<=9471},\\\"Geometric Shapes\\\":function(t){return t>=9632&&t<=9727},\\\"Miscellaneous Symbols\\\":function(t){return t>=9728&&t<=9983},\\\"Miscellaneous Symbols and Arrows\\\":function(t){return t>=11008&&t<=11263},\\\"CJK Radicals Supplement\\\":function(t){return t>=11904&&t<=12031},\\\"Kangxi Radicals\\\":function(t){return t>=12032&&t<=12255},\\\"Ideographic Description Characters\\\":function(t){return t>=12272&&t<=12287},\\\"CJK Symbols and Punctuation\\\":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},\\\"Hangul Compatibility Jamo\\\":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},\\\"Bopomofo Extended\\\":function(t){return t>=12704&&t<=12735},\\\"CJK Strokes\\\":function(t){return t>=12736&&t<=12783},\\\"Katakana Phonetic Extensions\\\":function(t){return t>=12784&&t<=12799},\\\"Enclosed CJK Letters and Months\\\":function(t){return t>=12800&&t<=13055},\\\"CJK Compatibility\\\":function(t){return t>=13056&&t<=13311},\\\"CJK Unified Ideographs Extension A\\\":function(t){return t>=13312&&t<=19903},\\\"Yijing Hexagram Symbols\\\":function(t){return t>=19904&&t<=19967},\\\"CJK Unified Ideographs\\\":function(t){return t>=19968&&t<=40959},\\\"Yi Syllables\\\":function(t){return t>=40960&&t<=42127},\\\"Yi Radicals\\\":function(t){return t>=42128&&t<=42191},\\\"Hangul Jamo Extended-A\\\":function(t){return t>=43360&&t<=43391},\\\"Hangul Syllables\\\":function(t){return t>=44032&&t<=55215},\\\"Hangul Jamo Extended-B\\\":function(t){return t>=55216&&t<=55295},\\\"Private Use Area\\\":function(t){return t>=57344&&t<=63743},\\\"CJK Compatibility Ideographs\\\":function(t){return t>=63744&&t<=64255},\\\"Arabic Presentation Forms-A\\\":function(t){return t>=64336&&t<=65023},\\\"Vertical Forms\\\":function(t){return t>=65040&&t<=65055},\\\"CJK Compatibility Forms\\\":function(t){return t>=65072&&t<=65103},\\\"Small Form Variants\\\":function(t){return t>=65104&&t<=65135},\\\"Arabic Presentation Forms-B\\\":function(t){return t>=65136&&t<=65279},\\\"Halfwidth and Fullwidth Forms\\\":function(t){return t>=65280&&t<=65519}};function xr(t){for(var e=0,r=t;e<r.length;e+=1)if(_r(r[e].charCodeAt(0)))return!0;return!1}function br(t){return!(yr.Arabic(t)||yr[\\\"Arabic Supplement\\\"](t)||yr[\\\"Arabic Extended-A\\\"](t)||yr[\\\"Arabic Presentation Forms-A\\\"](t)||yr[\\\"Arabic Presentation Forms-B\\\"](t))}function _r(t){return!!(746===t||747===t||!(t<4352)&&(yr[\\\"Bopomofo Extended\\\"](t)||yr.Bopomofo(t)||yr[\\\"CJK Compatibility Forms\\\"](t)&&!(t>=65097&&t<=65103)||yr[\\\"CJK Compatibility Ideographs\\\"](t)||yr[\\\"CJK Compatibility\\\"](t)||yr[\\\"CJK Radicals Supplement\\\"](t)||yr[\\\"CJK Strokes\\\"](t)||!(!yr[\\\"CJK Symbols and Punctuation\\\"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||yr[\\\"CJK Unified Ideographs Extension A\\\"](t)||yr[\\\"CJK Unified Ideographs\\\"](t)||yr[\\\"Enclosed CJK Letters and Months\\\"](t)||yr[\\\"Hangul Compatibility Jamo\\\"](t)||yr[\\\"Hangul Jamo Extended-A\\\"](t)||yr[\\\"Hangul Jamo Extended-B\\\"](t)||yr[\\\"Hangul Jamo\\\"](t)||yr[\\\"Hangul Syllables\\\"](t)||yr.Hiragana(t)||yr[\\\"Ideographic Description Characters\\\"](t)||yr.Kanbun(t)||yr[\\\"Kangxi Radicals\\\"](t)||yr[\\\"Katakana Phonetic Extensions\\\"](t)||yr.Katakana(t)&&12540!==t||!(!yr[\\\"Halfwidth and Fullwidth Forms\\\"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!yr[\\\"Small Form Variants\\\"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||yr[\\\"Unified Canadian Aboriginal Syllabics\\\"](t)||yr[\\\"Unified Canadian Aboriginal Syllabics Extended\\\"](t)||yr[\\\"Vertical Forms\\\"](t)||yr[\\\"Yijing Hexagram Symbols\\\"](t)||yr[\\\"Yi Syllables\\\"](t)||yr[\\\"Yi Radicals\\\"](t)))}function wr(t){return!(_r(t)||function(t){return!!(yr[\\\"Latin-1 Supplement\\\"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||yr[\\\"General Punctuation\\\"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||yr[\\\"Letterlike Symbols\\\"](t)||yr[\\\"Number Forms\\\"](t)||yr[\\\"Miscellaneous Technical\\\"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||yr[\\\"Control Pictures\\\"](t)&&9251!==t||yr[\\\"Optical Character Recognition\\\"](t)||yr[\\\"Enclosed Alphanumerics\\\"](t)||yr[\\\"Geometric Shapes\\\"](t)||yr[\\\"Miscellaneous Symbols\\\"](t)&&!(t>=9754&&t<=9759)||yr[\\\"Miscellaneous Symbols and Arrows\\\"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||yr[\\\"CJK Symbols and Punctuation\\\"](t)||yr.Katakana(t)||yr[\\\"Private Use Area\\\"](t)||yr[\\\"CJK Compatibility Forms\\\"](t)||yr[\\\"Small Form Variants\\\"](t)||yr[\\\"Halfwidth and Fullwidth Forms\\\"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function kr(t,e){return!(!e&&(t>=1424&&t<=2303||yr[\\\"Arabic Presentation Forms-A\\\"](t)||yr[\\\"Arabic Presentation Forms-B\\\"](t))||t>=2304&&t<=3583||t>=3840&&t<=4255||yr.Khmer(t))}var Mr,Ar=!1,Tr=null,Sr=!1,Er=new O,Cr={applyArabicShaping:null,processBidirectionalText:null,isLoaded:function(){return Sr||null!=Cr.applyArabicShaping}},Lr=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new mr,this.transition={})};Lr.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;r<n.length;r+=1)if(!kr(n[r].charCodeAt(0),e))return!1;return!0}(t,Cr.isLoaded())},Lr.prototype.crossFadingFactor=function(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)};var zr=function(t,e){this.property=t,this.value=e,this.expression=Se(void 0===e?t.specification.default:e,t.specification)};zr.prototype.isDataDriven=function(){return\\\"source\\\"===this.expression.kind||\\\"composite\\\"===this.expression.kind},zr.prototype.possiblyEvaluate=function(t){return this.property.possiblyEvaluate(this,t)};var Or=function(t){this.property=t,this.value=new zr(t,void 0)};Or.prototype.transitioned=function(t,e){return new Pr(this.property,this.value,e,p({},t.transition,this.transition),t.now)},Or.prototype.untransitioned=function(){return new Pr(this.property,this.value,null,{},0)};var Ir=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};Ir.prototype.getValue=function(t){return x(this._values[t].value.value)},Ir.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Or(this._values[t].property)),this._values[t].value=new zr(this._values[t].property,null===e?void 0:x(e))},Ir.prototype.getTransition=function(t){return x(this._values[t].transition)},Ir.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Or(this._values[t].property)),this._values[t].transition=x(e)||void 0},Ir.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e],i=this.getValue(n);void 0!==i&&(t[n]=i);var a=this.getTransition(n);void 0!==a&&(t[n+\\\"-transition\\\"]=a)}return t},Ir.prototype.transitioned=function(t,e){for(var r=new Dr(this._properties),n=0,i=Object.keys(this._values);n<i.length;n+=1){var a=i[n];r._values[a]=this._values[a].transitioned(t,e._values[a])}return r},Ir.prototype.untransitioned=function(){for(var t=new Dr(this._properties),e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e];t._values[n]=this._values[n].untransitioned()}return t};var Pr=function(t,e,r,n,i){this.property=t,this.value=e,this.begin=i+n.delay||0,this.end=this.begin+n.duration||0,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r)};Pr.prototype.possiblyEvaluate=function(t){var e=t.now||0,r=this.value.possiblyEvaluate(t),n=this.prior;if(n){if(e>this.end)return this.prior=null,r;if(this.value.isDataDriven())return this.prior=null,r;if(e<this.begin)return n.possiblyEvaluate(t);var i=(e-this.begin)/(this.end-this.begin);return this.property.interpolate(n.possiblyEvaluate(t),r,function(t){if(i<=0)return 0;if(i>=1)return 1;var e=i*i,r=e*i;return 4*(i<.5?r:3*(i-e)+r-.75)}())}return r};var Dr=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};Dr.prototype.possiblyEvaluate=function(t){for(var e=new Fr(this._properties),r=0,n=Object.keys(this._values);r<n.length;r+=1){var i=n[r];e._values[i]=this._values[i].possiblyEvaluate(t)}return e},Dr.prototype.hasTransition=function(){for(var t=0,e=Object.keys(this._values);t<e.length;t+=1){var r=e[t];if(this._values[r].prior)return!0}return!1};var Rr=function(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues)};Rr.prototype.getValue=function(t){return x(this._values[t].value)},Rr.prototype.setValue=function(t,e){this._values[t]=new zr(this._values[t].property,null===e?void 0:x(e))},Rr.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e],i=this.getValue(n);void 0!==i&&(t[n]=i)}return t},Rr.prototype.possiblyEvaluate=function(t){for(var e=new Fr(this._properties),r=0,n=Object.keys(this._values);r<n.length;r+=1){var i=n[r];e._values[i]=this._values[i].possiblyEvaluate(t)}return e};var Br=function(t,e,r){this.property=t,this.value=e,this.globals=r};Br.prototype.isConstant=function(){return\\\"constant\\\"===this.value.kind},Br.prototype.constantOr=function(t){return\\\"constant\\\"===this.value.kind?this.value.value:t},Br.prototype.evaluate=function(t){return this.property.evaluate(this.value,this.globals,t)};var Fr=function(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues)};Fr.prototype.get=function(t){return this._values[t]};var Nr=function(t){this.specification=t};Nr.prototype.possiblyEvaluate=function(t,e){return t.expression.evaluate(e)},Nr.prototype.interpolate=function(t,e,r){var n=kt[this.specification.type];return n?n(t,e,r):t};var jr=function(t){this.specification=t};jr.prototype.possiblyEvaluate=function(t,e){return\\\"constant\\\"===t.expression.kind||\\\"camera\\\"===t.expression.kind?new Br(this,{kind:\\\"constant\\\",value:t.expression.evaluate(e)},e):new Br(this,t.expression,e)},jr.prototype.interpolate=function(t,e,r){if(\\\"constant\\\"!==t.value.kind||\\\"constant\\\"!==e.value.kind)return t;if(void 0===t.value.value||void 0===e.value.value)return new Br(this,{kind:\\\"constant\\\",value:void 0},t.globals);var n=kt[this.specification.type];return n?new Br(this,{kind:\\\"constant\\\",value:n(t.value.value,e.value.value,r)},t.globals):t},jr.prototype.evaluate=function(t,e,r){return\\\"constant\\\"===t.kind?t.value:t.evaluate(e,r)};var Vr=function(t){this.specification=t};Vr.prototype.possiblyEvaluate=function(t,e){if(void 0!==t.value){if(\\\"constant\\\"===t.expression.kind){var r=t.expression.evaluate(e);return this._calculate(r,r,r,e)}return this._calculate(t.expression.evaluate(new Lr(Math.floor(e.zoom-1),e)),t.expression.evaluate(new Lr(Math.floor(e.zoom),e)),t.expression.evaluate(new Lr(Math.floor(e.zoom+1),e)),e)}},Vr.prototype._calculate=function(t,e,r,n){var i=n.zoom,a=i-Math.floor(i),o=n.crossFadingFactor();return i>n.zoomHistory.lastIntegerZoom?{from:t,to:e,fromScale:2,toScale:1,t:a+(1-a)*o}:{from:r,to:e,fromScale:.5,toScale:1,t:1-(1-o)*a}},Vr.prototype.interpolate=function(t){return t};var Ur=function(t){this.specification=t};Ur.prototype.possiblyEvaluate=function(t,e){return!!t.expression.evaluate(e)},Ur.prototype.interpolate=function(){return!1};var qr=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},t){var r=t[e],n=this.defaultPropertyValues[e]=new zr(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new Or(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({})}};pr(\\\"DataDrivenProperty\\\",jr),pr(\\\"DataConstantProperty\\\",Nr),pr(\\\"CrossFadedProperty\\\",Vr),pr(\\\"ColorRampProperty\\\",Ur);var Hr=function(t){function e(e,r){for(var n in t.call(this),this.id=e.id,this.metadata=e.metadata,this.type=e.type,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,this.visibility=\\\"visible\\\",\\\"background\\\"!==e.type&&(this.source=e.source,this.sourceLayer=e[\\\"source-layer\\\"],this.filter=e.filter),this._featureFilter=function(){return!0},r.layout&&(this._unevaluatedLayout=new Rr(r.layout)),this._transitionablePaint=new Ir(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getLayoutProperty=function(t){return\\\"visibility\\\"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){if(null!=e){var n=\\\"layers.\\\"+this.id+\\\".layout.\\\"+t;if(this._validate(or,n,t,e,r))return}\\\"visibility\\\"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=\\\"none\\\"===e?e:\\\"visible\\\"},e.prototype.getPaintProperty=function(t){return v(t,\\\"-transition\\\")?this._transitionablePaint.getTransition(t.slice(0,-\\\"-transition\\\".length)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(null!=e){var n=\\\"layers.\\\"+this.id+\\\".paint.\\\"+t;if(this._validate(ar,n,t,e,r))return}v(t,\\\"-transition\\\")?this._transitionablePaint.setTransition(t.slice(0,-\\\"-transition\\\".length),e||void 0):this._transitionablePaint.setValue(t,e)},e.prototype.isHidden=function(t){return!!(this.minzoom&&t<this.minzoom)||!!(this.maxzoom&&t>=this.maxzoom)||\\\"none\\\"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t)),this.paint=this._transitioningPaint.possiblyEvaluate(t)},e.prototype.serialize=function(){var t={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\\\"none\\\"===this.visibility&&(t.layout=t.layout||{},t.layout.visibility=\\\"none\\\"),y(t,function(t,e){return!(void 0===t||\\\"layout\\\"===e&&!Object.keys(t).length||\\\"paint\\\"===e&&!Object.keys(t).length)})},e.prototype._validate=function(t,e,r,n,i){return(!i||!1!==i.validate)&&sr(this,t.call(nr,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:I,style:{glyphs:!0,sprite:!0}}))},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e}(O),Gr={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Wr=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Yr=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Xr(t,e){void 0===e&&(e=1);var r=0,n=0;return{members:t.map(function(t){var i,a=(i=t.type,Gr[i].BYTES_PER_ELEMENT),o=r=Zr(r,Math.max(e,a)),s=t.components||1;return n=Math.max(n,a),r+=a*s,{name:t.name,type:t.type,components:s,offset:o}}),size:Zr(r,Math.max(n,e)),alignment:e}}function Zr(t,e){return Math.ceil(t/e)*e}Yr.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},Yr.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},Yr.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Yr.prototype.clear=function(){this.length=0},Yr.prototype.resize=function(t){this.reserve(t),this.length=t},Yr.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},Yr.prototype._refreshViews=function(){throw new Error(\\\"_refreshViews() must be implemented by each concrete StructArray layout\\\")};var $r=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;this.resize(r+1);var n=2*r;return this.int16[n+0]=t,this.int16[n+1]=e,r},e}(Yr);$r.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout2i4\\\",$r);var Jr=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;this.resize(i+1);var a=4*i;return this.int16[a+0]=t,this.int16[a+1]=e,this.int16[a+2]=r,this.int16[a+3]=n,i},e}(Yr);Jr.prototype.bytesPerElement=8,pr(\\\"StructArrayLayout4i8\\\",Jr);var Kr=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;this.resize(o+1);var s=6*o;return this.int16[s+0]=t,this.int16[s+1]=e,this.int16[s+2]=r,this.int16[s+3]=n,this.int16[s+4]=i,this.int16[s+5]=a,o},e}(Yr);Kr.prototype.bytesPerElement=12,pr(\\\"StructArrayLayout2i4i12\\\",Kr);var Qr=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s){var l=this.length;this.resize(l+1);var c=6*l,u=12*l;return this.int16[c+0]=t,this.int16[c+1]=e,this.int16[c+2]=r,this.int16[c+3]=n,this.uint8[u+8]=i,this.uint8[u+9]=a,this.uint8[u+10]=o,this.uint8[u+11]=s,l},e}(Yr);Qr.prototype.bytesPerElement=12,pr(\\\"StructArrayLayout4i4ub12\\\",Qr);var tn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s){var l=this.length;this.resize(l+1);var c=8*l;return this.int16[c+0]=t,this.int16[c+1]=e,this.int16[c+2]=r,this.int16[c+3]=n,this.uint16[c+4]=i,this.uint16[c+5]=a,this.uint16[c+6]=o,this.uint16[c+7]=s,l},e}(Yr);tn.prototype.bytesPerElement=16,pr(\\\"StructArrayLayout4i4ui16\\\",tn);var en=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;this.resize(n+1);var i=3*n;return this.float32[i+0]=t,this.float32[i+1]=e,this.float32[i+2]=r,n},e}(Yr);en.prototype.bytesPerElement=12,pr(\\\"StructArrayLayout3f12\\\",en);var rn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;this.resize(e+1);var r=1*e;return this.uint32[r+0]=t,e},e}(Yr);rn.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout1ul4\\\",rn);var nn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.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)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u){var f=this.length;this.resize(f+1);var h=12*f,p=6*f;return this.int16[h+0]=t,this.int16[h+1]=e,this.int16[h+2]=r,this.int16[h+3]=n,this.int16[h+4]=i,this.int16[h+5]=a,this.uint32[p+3]=o,this.uint16[h+8]=s,this.uint16[h+9]=l,this.int16[h+10]=c,this.int16[h+11]=u,f},e}(Yr);nn.prototype.bytesPerElement=24,pr(\\\"StructArrayLayout6i1ul2ui2i24\\\",nn);var an=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;this.resize(o+1);var s=6*o;return this.int16[s+0]=t,this.int16[s+1]=e,this.int16[s+2]=r,this.int16[s+3]=n,this.int16[s+4]=i,this.int16[s+5]=a,o},e}(Yr);an.prototype.bytesPerElement=12,pr(\\\"StructArrayLayout2i2i2i12\\\",an);var on=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;this.resize(r+1);var n=4*r;return this.uint8[n+0]=t,this.uint8[n+1]=e,r},e}(Yr);on.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout2ub4\\\",on);var sn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.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)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p){var d=this.length;this.resize(d+1);var g=20*d,v=10*d,m=40*d;return this.int16[g+0]=t,this.int16[g+1]=e,this.uint16[g+2]=r,this.uint16[g+3]=n,this.uint32[v+2]=i,this.uint32[v+3]=a,this.uint32[v+4]=o,this.uint16[g+10]=s,this.uint16[g+11]=l,this.uint16[g+12]=c,this.float32[v+7]=u,this.float32[v+8]=f,this.uint8[m+36]=h,this.uint8[m+37]=p,d},e}(Yr);sn.prototype.bytesPerElement=40,pr(\\\"StructArrayLayout2i2ui3ul3ui2f2ub40\\\",sn);var ln=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;this.resize(e+1);var r=1*e;return this.float32[r+0]=t,e},e}(Yr);ln.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout1f4\\\",ln);var cn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;this.resize(n+1);var i=3*n;return this.int16[i+0]=t,this.int16[i+1]=e,this.int16[i+2]=r,n},e}(Yr);cn.prototype.bytesPerElement=6,pr(\\\"StructArrayLayout3i6\\\",cn);var un=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;this.resize(n+1);var i=2*n,a=4*n;return this.uint32[i+0]=t,this.uint16[a+2]=e,this.uint16[a+3]=r,n},e}(Yr);un.prototype.bytesPerElement=8,pr(\\\"StructArrayLayout1ul2ui8\\\",un);var fn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;this.resize(n+1);var i=3*n;return this.uint16[i+0]=t,this.uint16[i+1]=e,this.uint16[i+2]=r,n},e}(Yr);fn.prototype.bytesPerElement=6,pr(\\\"StructArrayLayout3ui6\\\",fn);var hn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;this.resize(r+1);var n=2*r;return this.uint16[n+0]=t,this.uint16[n+1]=e,r},e}(Yr);hn.prototype.bytesPerElement=4,pr(\\\"StructArrayLayout2ui4\\\",hn);var pn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;this.resize(r+1);var n=2*r;return this.float32[n+0]=t,this.float32[n+1]=e,r},e}(Yr);pn.prototype.bytesPerElement=8,pr(\\\"StructArrayLayout2f8\\\",pn);var dn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;this.resize(i+1);var a=4*i;return this.float32[a+0]=t,this.float32[a+1]=e,this.float32[a+2]=r,this.float32[a+3]=n,i},e}(Yr);dn.prototype.bytesPerElement=16,pr(\\\"StructArrayLayout4f16\\\",dn);var gn=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={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},radius:{configurable:!0},signedDistanceFromAnchor:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointX.set=function(t){this._structArray.int16[this._pos2+0]=t},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.anchorPointY.set=function(t){this._structArray.int16[this._pos2+1]=t},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.x1.set=function(t){this._structArray.int16[this._pos2+2]=t},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.y1.set=function(t){this._structArray.int16[this._pos2+3]=t},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.x2.set=function(t){this._structArray.int16[this._pos2+4]=t},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.y2.set=function(t){this._structArray.int16[this._pos2+5]=t},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.featureIndex.set=function(t){this._structArray.uint32[this._pos4+3]=t},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.sourceLayerIndex.set=function(t){this._structArray.uint16[this._pos2+8]=t},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.bucketIndex.set=function(t){this._structArray.uint16[this._pos2+9]=t},r.radius.get=function(){return this._structArray.int16[this._pos2+10]},r.radius.set=function(t){this._structArray.int16[this._pos2+10]=t},r.signedDistanceFromAnchor.get=function(){return this._structArray.int16[this._pos2+11]},r.signedDistanceFromAnchor.set=function(t){this._structArray.int16[this._pos2+11]=t},r.anchorPoint.get=function(){return new l(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(Wr);gn.prototype.size=24;var vn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new gn(this,t)},e}(nn);pr(\\\"CollisionBoxArray\\\",vn);var mn=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={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},hidden:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorX.set=function(t){this._structArray.int16[this._pos2+0]=t},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.anchorY.set=function(t){this._structArray.int16[this._pos2+1]=t},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.glyphStartIndex.set=function(t){this._structArray.uint16[this._pos2+2]=t},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.numGlyphs.set=function(t){this._structArray.uint16[this._pos2+3]=t},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.vertexStartIndex.set=function(t){this._structArray.uint32[this._pos4+2]=t},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineStartIndex.set=function(t){this._structArray.uint32[this._pos4+3]=t},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.lineLength.set=function(t){this._structArray.uint32[this._pos4+4]=t},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.segment.set=function(t){this._structArray.uint16[this._pos2+10]=t},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.lowerSize.set=function(t){this._structArray.uint16[this._pos2+11]=t},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.upperSize.set=function(t){this._structArray.uint16[this._pos2+12]=t},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetX.set=function(t){this._structArray.float32[this._pos4+7]=t},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.lineOffsetY.set=function(t){this._structArray.float32[this._pos4+8]=t},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.writingMode.set=function(t){this._structArray.uint8[this._pos1+36]=t},r.hidden.get=function(){return this._structArray.uint8[this._pos1+37]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+37]=t},Object.defineProperties(e.prototype,r),e}(Wr);mn.prototype.size=40;var yn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new mn(this,t)},e}(sn);pr(\\\"PlacedSymbolArray\\\",yn);var xn=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={offsetX:{configurable:!0}};return r.offsetX.get=function(){return this._structArray.float32[this._pos4+0]},r.offsetX.set=function(t){this._structArray.float32[this._pos4+0]=t},Object.defineProperties(e.prototype,r),e}(Wr);xn.prototype.size=4;var bn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e.prototype.get=function(t){return new xn(this,t)},e}(ln);pr(\\\"GlyphOffsetArray\\\",bn);var _n=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={x:{configurable:!0},y:{configurable:!0},tileUnitDistanceFromAnchor:{configurable:!0}};return r.x.get=function(){return this._structArray.int16[this._pos2+0]},r.x.set=function(t){this._structArray.int16[this._pos2+0]=t},r.y.get=function(){return this._structArray.int16[this._pos2+1]},r.y.set=function(t){this._structArray.int16[this._pos2+1]=t},r.tileUnitDistanceFromAnchor.get=function(){return this._structArray.int16[this._pos2+2]},r.tileUnitDistanceFromAnchor.set=function(t){this._structArray.int16[this._pos2+2]=t},Object.defineProperties(e.prototype,r),e}(Wr);_n.prototype.size=6;var wn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e.prototype.get=function(t){return new _n(this,t)},e}(cn);pr(\\\"SymbolLineVertexArray\\\",wn);var kn=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.featureIndex.set=function(t){this._structArray.uint32[this._pos4+0]=t},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.sourceLayerIndex.set=function(t){this._structArray.uint16[this._pos2+2]=t},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},r.bucketIndex.set=function(t){this._structArray.uint16[this._pos2+3]=t},Object.defineProperties(e.prototype,r),e}(Wr);kn.prototype.size=8;var Mn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new kn(this,t)},e}(un);pr(\\\"FeatureIndexArray\\\",Mn);var An=Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"}],4).members,Tn=function(t){void 0===t&&(t=[]),this.segments=t};Tn.prototype.prepareSegment=function(t,e,r){var n=this.segments[this.segments.length-1];return t>Tn.MAX_VERTEX_ARRAY_LENGTH&&_(\\\"Max vertices per segment is \\\"+Tn.MAX_VERTEX_ARRAY_LENGTH+\\\": bucket requested \\\"+t),(!n||n.vertexLength+t>Tn.MAX_VERTEX_ARRAY_LENGTH)&&(n={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},this.segments.push(n)),n},Tn.prototype.get=function(){return this.segments},Tn.prototype.destroy=function(){for(var t=0,e=this.segments;t<e.length;t+=1){var r=e[t];for(var n in r.vaos)r.vaos[n].destroy()}},Tn.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,pr(\\\"SegmentVector\\\",Tn);var Sn=function(t,e){return 256*(t=h(Math.floor(t),0,255))+h(Math.floor(e),0,255)};function En(t){return[Sn(255*t.r,255*t.g),Sn(255*t.b,255*t.a)]}var Cn=function(t,e,r){this.value=t,this.name=e,this.type=r,this.statistics={max:-1/0}};Cn.prototype.defines=function(){return[\\\"#define HAS_UNIFORM_u_\\\"+this.name]},Cn.prototype.populatePaintArray=function(){},Cn.prototype.upload=function(){},Cn.prototype.destroy=function(){},Cn.prototype.setUniforms=function(t,e,r,n){var i=n.constantOr(this.value),a=t.gl;\\\"color\\\"===this.type?a.uniform4f(e.uniforms[\\\"u_\\\"+this.name],i.r,i.g,i.b,i.a):a.uniform1f(e.uniforms[\\\"u_\\\"+this.name],i)};var Ln=function(t,e,r){this.expression=t,this.name=e,this.type=r,this.statistics={max:-1/0};var n=\\\"color\\\"===r?pn:ln;this.paintVertexAttributes=[{name:\\\"a_\\\"+e,type:\\\"Float32\\\",components:\\\"color\\\"===r?2:1,offset:0}],this.paintVertexArray=new n};Ln.prototype.defines=function(){return[]},Ln.prototype.populatePaintArray=function(t,e){var r=this.paintVertexArray,n=r.length;r.reserve(t);var i=this.expression.evaluate(new Lr(0),e);if(\\\"color\\\"===this.type)for(var a=En(i),o=n;o<t;o++)r.emplaceBack(a[0],a[1]);else{for(var s=n;s<t;s++)r.emplaceBack(i);this.statistics.max=Math.max(this.statistics.max,i)}},Ln.prototype.upload=function(t){this.paintVertexArray&&(this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes))},Ln.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},Ln.prototype.setUniforms=function(t,e){t.gl.uniform1f(e.uniforms[\\\"a_\\\"+this.name+\\\"_t\\\"],0)};var zn=function(t,e,r,n,i){this.expression=t,this.name=e,this.type=r,this.useIntegerZoom=n,this.zoom=i,this.statistics={max:-1/0};var a=\\\"color\\\"===r?dn:pn;this.paintVertexAttributes=[{name:\\\"a_\\\"+e,type:\\\"Float32\\\",components:\\\"color\\\"===r?4:2,offset:0}],this.paintVertexArray=new a};zn.prototype.defines=function(){return[]},zn.prototype.populatePaintArray=function(t,e){var r=this.paintVertexArray,n=r.length;r.reserve(t);var i=this.expression.evaluate(new Lr(this.zoom),e),a=this.expression.evaluate(new Lr(this.zoom+1),e);if(\\\"color\\\"===this.type)for(var o=En(i),s=En(a),l=n;l<t;l++)r.emplaceBack(o[0],o[1],s[0],s[1]);else{for(var c=n;c<t;c++)r.emplaceBack(i,a);this.statistics.max=Math.max(this.statistics.max,i,a)}},zn.prototype.upload=function(t){this.paintVertexArray&&(this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes))},zn.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},zn.prototype.interpolationFactor=function(t){return this.useIntegerZoom?this.expression.interpolationFactor(Math.floor(t),this.zoom,this.zoom+1):this.expression.interpolationFactor(t,this.zoom,this.zoom+1)},zn.prototype.setUniforms=function(t,e,r){t.gl.uniform1f(e.uniforms[\\\"a_\\\"+this.name+\\\"_t\\\"],this.interpolationFactor(r.zoom))};var On=function(){this.binders={},this.cacheKey=\\\"\\\",this._buffers=[]};On.createDynamic=function(t,e,r){var n=new On,i=[];for(var a in t.paint._values)if(r(a)){var o=t.paint.get(a);if(o instanceof Br&&o.property.specification[\\\"property-function\\\"]){var s=Pn(a,t.type),l=o.property.specification.type,c=o.property.useIntegerZoom;\\\"constant\\\"===o.value.kind?(n.binders[a]=new Cn(o.value,s,l),i.push(\\\"/u_\\\"+s)):\\\"source\\\"===o.value.kind?(n.binders[a]=new Ln(o.value,s,l),i.push(\\\"/a_\\\"+s)):(n.binders[a]=new zn(o.value,s,l,c,e),i.push(\\\"/z_\\\"+s))}}return n.cacheKey=i.sort().join(\\\"\\\"),n},On.prototype.populatePaintArrays=function(t,e){for(var r in this.binders)this.binders[r].populatePaintArray(t,e)},On.prototype.defines=function(){var t=[];for(var e in this.binders)t.push.apply(t,this.binders[e].defines());return t},On.prototype.setUniforms=function(t,e,r,n){for(var i in this.binders)this.binders[i].setUniforms(t,e,n,r.get(i))},On.prototype.getPaintVertexBuffers=function(){return this._buffers},On.prototype.upload=function(t){for(var e in this.binders)this.binders[e].upload(t);var r=[];for(var n in this.binders){var i=this.binders[n];(i instanceof Ln||i instanceof zn)&&i.paintVertexBuffer&&r.push(i.paintVertexBuffer)}this._buffers=r},On.prototype.destroy=function(){for(var t in this.binders)this.binders[t].destroy()};var In=function(t,e,r,n){void 0===n&&(n=function(){return!0}),this.programConfigurations={};for(var i=0,a=e;i<a.length;i+=1){var o=a[i];this.programConfigurations[o.id]=On.createDynamic(o,r,n),this.programConfigurations[o.id].layoutAttributes=t}};function Pn(t,e){return{\\\"text-opacity\\\":\\\"opacity\\\",\\\"icon-opacity\\\":\\\"opacity\\\",\\\"text-color\\\":\\\"fill_color\\\",\\\"icon-color\\\":\\\"fill_color\\\",\\\"text-halo-color\\\":\\\"halo_color\\\",\\\"icon-halo-color\\\":\\\"halo_color\\\",\\\"text-halo-blur\\\":\\\"halo_blur\\\",\\\"icon-halo-blur\\\":\\\"halo_blur\\\",\\\"text-halo-width\\\":\\\"halo_width\\\",\\\"icon-halo-width\\\":\\\"halo_width\\\",\\\"line-gap-width\\\":\\\"gapwidth\\\"}[t]||t.replace(e+\\\"-\\\",\\\"\\\").replace(/-/g,\\\"_\\\")}In.prototype.populatePaintArrays=function(t,e){for(var r in this.programConfigurations)this.programConfigurations[r].populatePaintArrays(t,e)},In.prototype.get=function(t){return this.programConfigurations[t]},In.prototype.upload=function(t){for(var e in this.programConfigurations)this.programConfigurations[e].upload(t)},In.prototype.destroy=function(){for(var t in this.programConfigurations)this.programConfigurations[t].destroy()},pr(\\\"ConstantBinder\\\",Cn),pr(\\\"SourceExpressionBinder\\\",Ln),pr(\\\"CompositeExpressionBinder\\\",zn),pr(\\\"ProgramConfiguration\\\",On,{omit:[\\\"_buffers\\\"]}),pr(\\\"ProgramConfigurationSet\\\",In);var Dn=8192,Rn=(16,{min:-1*Math.pow(2,15),max:Math.pow(2,15)-1});function Bn(t){for(var e=Dn/t.extent,r=t.loadGeometry(),n=0;n<r.length;n++)for(var i=r[n],a=0;a<i.length;a++){var o=i[a];o.x=Math.round(o.x*e),o.y=Math.round(o.y*e),(o.x<Rn.min||o.x>Rn.max||o.y<Rn.min||o.y>Rn.max)&&_(\\\"Geometry exceeds allowed extent, reduce your vector tile buffer size\\\")}return r}function Fn(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2)}var Nn=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new $r,this.indexArray=new fn,this.segments=new Tn,this.programConfigurations=new In(An,t.layers,t.zoom)};function jn(t,e,r){for(var n=0;n<t.length;n++){var i=t[n];if(Zn(i,e))return!0;if(Wn(e,i,r))return!0}return!1}function Vn(t,e){if(1===t.length&&1===t[0].length)return Xn(e,t[0][0]);for(var r=0;r<e.length;r++)for(var n=e[r],i=0;i<n.length;i++)if(Xn(t,n[i]))return!0;for(var a=0;a<t.length;a++){for(var o=t[a],s=0;s<o.length;s++)if(Xn(e,o[s]))return!0;for(var l=0;l<e.length;l++)if(Hn(o,e[l]))return!0}return!1}function Un(t,e,r){for(var n=0;n<e.length;n++)for(var i=e[n],a=0;a<t.length;a++){var o=t[a];if(o.length>=3)for(var s=0;s<i.length;s++)if(Zn(o,i[s]))return!0;if(qn(o,i,r))return!0}return!1}function qn(t,e,r){if(t.length>1){if(Hn(t,e))return!0;for(var n=0;n<e.length;n++)if(Wn(e[n],t,r))return!0}for(var i=0;i<t.length;i++)if(Wn(t[i],e,r))return!0;return!1}function Hn(t,e){if(0===t.length||0===e.length)return!1;for(var r=0;r<t.length-1;r++)for(var n=t[r],i=t[r+1],a=0;a<e.length-1;a++)if(Gn(n,i,e[a],e[a+1]))return!0;return!1}function Gn(t,e,r,n){return w(t,r,n)!==w(e,r,n)&&w(t,e,r)!==w(t,e,n)}function Wn(t,e,r){var n=r*r;if(1===e.length)return t.distSqr(e[0])<n;for(var i=1;i<e.length;i++)if(Yn(t,e[i-1],e[i])<n)return!0;return!1}function Yn(t,e,r){var n=e.distSqr(r);if(0===n)return t.distSqr(e);var i=((t.x-e.x)*(r.x-e.x)+(t.y-e.y)*(r.y-e.y))/n;return i<0?t.distSqr(e):i>1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function Xn(t,e){for(var r,n,i,a=!1,o=0;o<t.length;o++)for(var s=0,l=(r=t[o]).length-1;s<r.length;l=s++)n=r[s],i=r[l],n.y>e.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Zn(t,e){for(var r=!1,n=0,i=t.length-1;n<t.length;i=n++){var a=t[n],o=t[i];a.y>e.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}function $n(t,e,r){var n=e.paint.get(t).value;return\\\"constant\\\"===n.kind?n.value:r.programConfigurations.get(e.id).binders[t].statistics.max}function Jn(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Kn(t,e,r,n,i){if(!e[0]&&!e[1])return t;var a=l.convert(e);\\\"viewport\\\"===r&&a._rotate(-n);for(var o=[],s=0;s<t.length;s++){for(var c=t[s],u=[],f=0;f<c.length;f++)u.push(c[f].sub(a._mult(i)));o.push(u)}return o}Nn.prototype.populate=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.feature,o=i.index,s=i.sourceLayerIndex;if(this.layers[0]._featureFilter(new Lr(this.zoom),a)){var l=Bn(a);this.addFeature(a,l),e.featureIndex.insert(a,l,o,s,this.index)}}},Nn.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Nn.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,An),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.programConfigurations.upload(t)},Nn.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},Nn.prototype.addFeature=function(t,e){for(var r=0,n=e;r<n.length;r+=1)for(var i=0,a=n[r];i<a.length;i+=1){var o=a[i],s=o.x,l=o.y;if(!(s<0||s>=Dn||l<0||l>=Dn)){var c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),u=c.vertexLength;Fn(this.layoutVertexArray,s,l,-1,-1),Fn(this.layoutVertexArray,s,l,1,-1),Fn(this.layoutVertexArray,s,l,1,1),Fn(this.layoutVertexArray,s,l,-1,1),this.indexArray.emplaceBack(u,u+1,u+2),this.indexArray.emplaceBack(u,u+3,u+2),c.vertexLength+=4,c.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t)},pr(\\\"CircleBucket\\\",Nn,{omit:[\\\"layers\\\"]});var Qn={paint:new qr({\\\"circle-radius\\\":new jr(I.paint_circle[\\\"circle-radius\\\"]),\\\"circle-color\\\":new jr(I.paint_circle[\\\"circle-color\\\"]),\\\"circle-blur\\\":new jr(I.paint_circle[\\\"circle-blur\\\"]),\\\"circle-opacity\\\":new jr(I.paint_circle[\\\"circle-opacity\\\"]),\\\"circle-translate\\\":new Nr(I.paint_circle[\\\"circle-translate\\\"]),\\\"circle-translate-anchor\\\":new Nr(I.paint_circle[\\\"circle-translate-anchor\\\"]),\\\"circle-pitch-scale\\\":new Nr(I.paint_circle[\\\"circle-pitch-scale\\\"]),\\\"circle-pitch-alignment\\\":new Nr(I.paint_circle[\\\"circle-pitch-alignment\\\"]),\\\"circle-stroke-width\\\":new jr(I.paint_circle[\\\"circle-stroke-width\\\"]),\\\"circle-stroke-color\\\":new jr(I.paint_circle[\\\"circle-stroke-color\\\"]),\\\"circle-stroke-opacity\\\":new jr(I.paint_circle[\\\"circle-stroke-opacity\\\"])})},ti=i(function(t,e){var r;t.exports=((r=new Float32Array(3))[0]=0,r[1]=0,r[2]=0,function(){var t=new Float32Array(4);t[0]=0,t[1]=0,t[2]=0,t[3]=0}(),{vec3:{transformMat3:function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},vec4:{transformMat4:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},mat2:{create:function(){var t=new Float32Array(4);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},rotate:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=Math.sin(r),l=Math.cos(r);return t[0]=n*l+a*s,t[1]=i*l+o*s,t[2]=n*-s+a*l,t[3]=i*-s+o*l,t},scale:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=r[0],l=r[1];return t[0]=n*s,t[1]=i*s,t[2]=a*l,t[3]=o*l,t}},mat3:{create:function(){var t=new Float32Array(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},fromRotation:function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=-r,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}},mat4:{create:function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},translate:function(t,e,r){var n,i,a,o,s,l,c,u,f,h,p,d,g=r[0],v=r[1],m=r[2];return e===t?(t[12]=e[0]*g+e[4]*v+e[8]*m+e[12],t[13]=e[1]*g+e[5]*v+e[9]*m+e[13],t[14]=e[2]*g+e[6]*v+e[10]*m+e[14],t[15]=e[3]*g+e[7]*v+e[11]*m+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=c,t[7]=u,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*g+s*v+f*m+e[12],t[13]=i*g+l*v+h*m+e[13],t[14]=a*g+c*v+p*m+e[14],t[15]=o*g+u*v+d*m+e[15]),t},scale:function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},multiply:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],g=e[12],v=e[13],m=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*g,t[1]=x*i+b*l+_*h+w*v,t[2]=x*a+b*c+_*p+w*m,t[3]=x*o+b*u+_*d+w*y,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*g,t[5]=x*i+b*l+_*h+w*v,t[6]=x*a+b*c+_*p+w*m,t[7]=x*o+b*u+_*d+w*y,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*g,t[9]=x*i+b*l+_*h+w*v,t[10]=x*a+b*c+_*p+w*m,t[11]=x*o+b*u+_*d+w*y,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*g,t[13]=x*i+b*l+_*h+w*v,t[14]=x*a+b*c+_*p+w*m,t[15]=x*o+b*u+_*d+w*y,t},perspective:function(t,e,r,n,i){var a=1/Math.tan(e/2),o=1/(n-i);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(i+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*i*n*o,t[15]=0,t},rotateX:function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],c=e[8],u=e[9],f=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+c*n,t[5]=o*i+u*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=c*i-a*n,t[9]=u*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t},rotateZ:function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],c=e[4],u=e[5],f=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+c*n,t[1]=o*i+u*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=c*i-a*n,t[5]=u*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t},invert:function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],f=e[9],h=e[10],p=e[11],d=e[12],g=e[13],v=e[14],m=e[15],y=r*s-n*o,x=r*l-i*o,b=r*c-a*o,_=n*l-i*s,w=n*c-a*s,k=i*c-a*l,M=u*g-f*d,A=u*v-h*d,T=u*m-p*d,S=f*v-h*g,E=f*m-p*g,C=h*m-p*v,L=y*C-x*E+b*S+_*T-w*A+k*M;return L?(L=1/L,t[0]=(s*C-l*E+c*S)*L,t[1]=(i*E-n*C-a*S)*L,t[2]=(g*k-v*w+m*_)*L,t[3]=(h*w-f*k-p*_)*L,t[4]=(l*T-o*C-c*A)*L,t[5]=(r*C-i*T+a*A)*L,t[6]=(v*b-d*k-m*x)*L,t[7]=(u*k-h*b+p*x)*L,t[8]=(o*E-s*T+c*M)*L,t[9]=(n*T-r*E-a*M)*L,t[10]=(d*w-g*b+m*y)*L,t[11]=(f*b-u*w-p*y)*L,t[12]=(s*A-o*S-l*M)*L,t[13]=(r*S-n*A+i*M)*L,t[14]=(g*x-d*_-v*y)*L,t[15]=(u*_-f*x+h*y)*L,t):null},ortho:function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),c=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*c,t[15]=1,t}}})}),ei=(ti.vec3,ti.vec4),ri=(ti.mat2,ti.mat3,ti.mat4),ni=function(t){function e(e){t.call(this,e,Qn)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new Nn(t)},e.prototype.queryRadius=function(t){var e=t;return $n(\\\"circle-radius\\\",this,e)+$n(\\\"circle-stroke-width\\\",this,e)+Jn(this.paint.get(\\\"circle-translate\\\"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o){for(var s=Kn(t,this.paint.get(\\\"circle-translate\\\"),this.paint.get(\\\"circle-translate-anchor\\\"),i.angle,a),l=this.paint.get(\\\"circle-radius\\\").evaluate(e)+this.paint.get(\\\"circle-stroke-width\\\").evaluate(e),c=\\\"map\\\"===this.paint.get(\\\"circle-pitch-alignment\\\"),u=c?s:function(t,e,r){return s.map(function(t){return t.map(function(t){return ii(t,e,r)})})}(0,o,i),f=c?l*a:l,h=0,p=r;h<p.length;h+=1)for(var d=0,g=p[h];d<g.length;d+=1){var v=g[d],m=c?v:ii(v,o,i),y=f,x=ei.transformMat4([],[v.x,v.y,0,1],o);if(\\\"viewport\\\"===this.paint.get(\\\"circle-pitch-scale\\\")&&\\\"map\\\"===this.paint.get(\\\"circle-pitch-alignment\\\")?y*=x[3]/i.cameraToCenterDistance:\\\"map\\\"===this.paint.get(\\\"circle-pitch-scale\\\")&&\\\"viewport\\\"===this.paint.get(\\\"circle-pitch-alignment\\\")&&(y*=i.cameraToCenterDistance/x[3]),jn(u,m,y))return!0}return!1},e}(Hr);function ii(t,e,r){var n=ei.transformMat4([],[t.x,t.y,0,1],e);return new l((n[0]/n[3]+1)*r.width*.5,(n[1]/n[3]+1)*r.height*.5)}var ai=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Nn);function oi(t,e,r,n){var i=e.width,a=e.height;if(n){if(n.length!==i*a*r)throw new RangeError(\\\"mismatched image size\\\")}else n=new Uint8Array(i*a*r);return t.width=i,t.height=a,t.data=n,t}function si(t,e,r){var n=e.width,i=e.height;if(n!==t.width||i!==t.height){var a=oi({},{width:n,height:i},r);li(t,a,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,i)},r),t.width=n,t.height=i,t.data=a.data}}function li(t,e,r,n,i,a){if(0===i.width||0===i.height)return e;if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError(\\\"out of range source coordinates for image copy\\\");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError(\\\"out of range destination coordinates for image copy\\\");for(var o=t.data,s=e.data,l=0;l<i.height;l++)for(var c=((r.y+l)*t.width+r.x)*a,u=((n.y+l)*e.width+n.x)*a,f=0;f<i.width*a;f++)s[u+f]=o[c+f];return e}pr(\\\"HeatmapBucket\\\",ai,{omit:[\\\"layers\\\"]});var ci=function(t,e){oi(this,t,1,e)};ci.prototype.resize=function(t){si(this,t,1)},ci.prototype.clone=function(){return new ci({width:this.width,height:this.height},new Uint8Array(this.data))},ci.copy=function(t,e,r,n,i){li(t,e,r,n,i,1)};var ui=function(t,e){oi(this,t,4,e)};ui.prototype.resize=function(t){si(this,t,4)},ui.prototype.clone=function(){return new ui({width:this.width,height:this.height},new Uint8Array(this.data))},ui.copy=function(t,e,r,n,i){li(t,e,r,n,i,4)},pr(\\\"AlphaImage\\\",ci),pr(\\\"RGBAImage\\\",ui);var fi={paint:new qr({\\\"heatmap-radius\\\":new jr(I.paint_heatmap[\\\"heatmap-radius\\\"]),\\\"heatmap-weight\\\":new jr(I.paint_heatmap[\\\"heatmap-weight\\\"]),\\\"heatmap-intensity\\\":new Nr(I.paint_heatmap[\\\"heatmap-intensity\\\"]),\\\"heatmap-color\\\":new Ur(I.paint_heatmap[\\\"heatmap-color\\\"]),\\\"heatmap-opacity\\\":new Nr(I.paint_heatmap[\\\"heatmap-opacity\\\"])})};function hi(t,e){for(var r=new Uint8Array(1024),n={},i=0,a=0;i<256;i++,a+=4){n[e]=i/255;var o=t.evaluate(n);r[a+0]=Math.floor(255*o.r/o.a),r[a+1]=Math.floor(255*o.g/o.a),r[a+2]=Math.floor(255*o.b/o.a),r[a+3]=Math.floor(255*o.a)}return new ui({width:256,height:1},r)}var pi=function(t){function e(e){t.call(this,e,fi),this._updateColorRamp()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new ai(t)},e.prototype.setPaintProperty=function(e,r,n){t.prototype.setPaintProperty.call(this,e,r,n),\\\"heatmap-color\\\"===e&&this._updateColorRamp()},e.prototype._updateColorRamp=function(){var t=this._transitionablePaint._values[\\\"heatmap-color\\\"].value.expression;this.colorRamp=hi(t,\\\"heatmapDensity\\\"),this.colorRampTexture=null},e.prototype.resize=function(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)},e.prototype.queryRadius=function(){return 0},e.prototype.queryIntersectsFeature=function(){return!1},e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get(\\\"heatmap-opacity\\\")&&\\\"none\\\"!==this.visibility},e}(Hr),di={paint:new qr({\\\"hillshade-illumination-direction\\\":new Nr(I.paint_hillshade[\\\"hillshade-illumination-direction\\\"]),\\\"hillshade-illumination-anchor\\\":new Nr(I.paint_hillshade[\\\"hillshade-illumination-anchor\\\"]),\\\"hillshade-exaggeration\\\":new Nr(I.paint_hillshade[\\\"hillshade-exaggeration\\\"]),\\\"hillshade-shadow-color\\\":new Nr(I.paint_hillshade[\\\"hillshade-shadow-color\\\"]),\\\"hillshade-highlight-color\\\":new Nr(I.paint_hillshade[\\\"hillshade-highlight-color\\\"]),\\\"hillshade-accent-color\\\":new Nr(I.paint_hillshade[\\\"hillshade-accent-color\\\"])})},gi=function(t){function e(e){t.call(this,e,di)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get(\\\"hillshade-exaggeration\\\")&&\\\"none\\\"!==this.visibility},e}(Hr),vi=Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"}],4).members,mi=xi,yi=xi;function xi(t,e,r){r=r||2;var n,i,a,o,s,l,c,u=e&&e.length,f=u?e[0]*r:t.length,h=bi(t,0,f,r,!0),p=[];if(!h)return p;if(u&&(h=function(t,e,r,n){var i,a,o,s=[];for(i=0,a=e.length;i<a;i++)(o=bi(t,e[i]*n,i<a-1?e[i+1]*n:t.length,n,!1))===o.next&&(o.steiner=!0),s.push(Li(o));for(s.sort(Si),i=0;i<s.length;i++)Ei(s[i],r),r=_i(r,r.next);return r}(t,e,h,r)),t.length>80*r){n=a=t[0],i=o=t[1];for(var d=r;d<f;d+=r)(s=t[d])<n&&(n=s),(l=t[d+1])<i&&(i=l),s>a&&(a=s),l>o&&(o=l);c=0!==(c=Math.max(a-n,o-i))?1/c:0}return wi(h,p,r,n,i,c),p}function bi(t,e,r,n,i){var a,o;if(i===Vi(t,e,r,n)>0)for(a=e;a<r;a+=n)o=Fi(a,t[a],t[a+1],o);else for(a=r-n;a>=e;a-=n)o=Fi(a,t[a],t[a+1],o);return o&&Pi(o,o.next)&&(Ni(o),o=o.next),o}function _i(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!Pi(n,n.next)&&0!==Ii(n.prev,n,n.next))n=n.next;else{if(Ni(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function wi(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=Ci(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e<c&&(s++,n=n.nextZ);e++);for(l=c;s>0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,c=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?Mi(t,n,i,a):ki(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),Ni(t),t=l.next,c=l.next;else if((t=l)===c){o?1===o?wi(t=Ai(t,e,r),e,r,n,i,a,2):2===o&&Ti(t,e,r,n,i,a):wi(_i(t),e,r,n,i,a,1);break}}}function ki(t){var e=t.prev,r=t,n=t.next;if(Ii(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(zi(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&Ii(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function Mi(t,e,r,n){var i=t.prev,a=t,o=t.next;if(Ii(i,a,o)>=0)return!1;for(var s=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,l=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=Ci(s,l,e,r,n),h=Ci(c,u,e,r,n),p=t.prevZ,d=t.nextZ;p&&p.z>=f&&d&&d.z<=h;){if(p!==t.prev&&p!==t.next&&zi(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&Ii(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,d!==t.prev&&d!==t.next&&zi(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&Ii(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&zi(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&Ii(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;d&&d.z<=h;){if(d!==t.prev&&d!==t.next&&zi(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&Ii(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function Ai(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!Pi(i,a)&&Di(i,n,n.next,a)&&Ri(i,a)&&Ri(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Ni(n),Ni(n.next),n=t=a),n=n.next}while(n!==t);return n}function Ti(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Oi(o,s)){var l=Bi(o,s);return o=_i(o,o.next),l=_i(l,l.next),wi(o,e,r,n,i,a),void wi(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function Si(t,e){return t.x-e.x}function Ei(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===o)return r.prev;var l,c=r,u=r.x,f=r.y,h=1/0;for(n=r.next;n!==c;)i>=n.x&&n.x>=u&&i!==n.x&&zi(a<f?i:o,a,u,f,a<f?o:i,a,n.x,n.y)&&((l=Math.abs(a-n.y)/(i-n.x))<h||l===h&&n.x>r.x)&&Ri(n,t)&&(r=n,h=l),n=n.next;return r}(t,e)){var r=Bi(e,t);_i(r,r.next)}}function Ci(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Li(t){var e=t,r=t;do{e.x<r.x&&(r=e),e=e.next}while(e!==t);return r}function zi(t,e,r,n,i,a,o,s){return(i-o)*(e-s)-(t-o)*(a-s)>=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function Oi(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&Di(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&Ri(t,e)&&Ri(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)}function Ii(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Pi(t,e){return t.x===e.x&&t.y===e.y}function Di(t,e,r,n){return!!(Pi(t,e)&&Pi(r,n)||Pi(t,n)&&Pi(r,e))||Ii(t,e,r)>0!=Ii(t,e,n)>0&&Ii(r,n,t)>0!=Ii(r,n,e)>0}function Ri(t,e){return Ii(t.prev,t,t.next)<0?Ii(t,e,t.next)>=0&&Ii(t,t.prev,e)>=0:Ii(t,e,t.prev)<0||Ii(t,t.next,e)<0}function Bi(t,e){var r=new ji(t.i,t.x,t.y),n=new ji(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function Fi(t,e,r,n){var i=new ji(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Ni(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function ji(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Vi(t,e,r,n){for(var i=0,a=e,o=r-n;a<r;a+=n)i+=(t[o]-t[a])*(t[a+1]+t[o+1]),o=a;return i}xi.deviation=function(t,e,r,n){var i=e&&e.length,a=i?e[0]*r:t.length,o=Math.abs(Vi(t,0,a,r));if(i)for(var s=0,l=e.length;s<l;s++){var c=e[s]*r,u=s<l-1?e[s+1]*r:t.length;o-=Math.abs(Vi(t,c,u,r))}var f=0;for(s=0;s<n.length;s+=3){var h=n[s]*r,p=n[s+1]*r,d=n[s+2]*r;f+=Math.abs((t[h]-t[d])*(t[p+1]-t[h+1])-(t[h]-t[p])*(t[d+1]-t[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},xi.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var a=0;a<t[i].length;a++)for(var o=0;o<e;o++)r.vertices.push(t[i][a][o]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r},mi.default=yi;var Ui=Hi,qi=Hi;function Hi(t,e,r,n,i){!function t(e,r,n,i,a){for(;i>n;){if(i-n>600){var o=i-n+1,s=r-n+1,l=Math.log(o),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(o-c)/o)*(s-o/2<0?-1:1);t(e,r,Math.max(n,Math.floor(r-s*c/o+u)),Math.min(i,Math.floor(r+(o-s)*c/o+u)),a)}var f=e[r],h=n,p=i;for(Gi(e,n,r),a(e[i],f)>0&&Gi(e,n,i);h<p;){for(Gi(e,h,p),h++,p--;a(e[h],f)<0;)h++;for(;a(e[p],f)>0;)p--}0===a(e[n],f)?Gi(e,n,p):Gi(e,++p,i),p<=r&&(n=p+1),r<=p&&(i=p-1)}}(t,e,r||0,n||t.length-1,i||Wi)}function Gi(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Wi(t,e){return t<e?-1:t>e?1:0}function Yi(t,e){var r=t.length;if(r<=1)return[t];for(var n,i,a=[],o=0;o<r;o++){var s=k(t[o]);0!==s&&(t[o].area=Math.abs(s),void 0===i&&(i=s<0),i===s<0?(n&&a.push(n),n=[t[o]]):n.push(t[o]))}if(n&&a.push(n),e>1)for(var l=0;l<a.length;l++)a[l].length<=e||(Ui(a[l],e,1,a[l].length-1,Xi),a[l]=a[l].slice(0,e));return a}function Xi(t,e){return e.area-t.area}Ui.default=qi;var Zi=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new $r,this.indexArray=new fn,this.indexArray2=new hn,this.programConfigurations=new In(vi,t.layers,t.zoom),this.segments=new Tn,this.segments2=new Tn};Zi.prototype.populate=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.feature,o=i.index,s=i.sourceLayerIndex;if(this.layers[0]._featureFilter(new Lr(this.zoom),a)){var l=Bn(a);this.addFeature(a,l),e.featureIndex.insert(a,l,o,s,this.index)}}},Zi.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Zi.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,vi),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2),this.programConfigurations.upload(t)},Zi.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())},Zi.prototype.addFeature=function(t,e){for(var r=0,n=Yi(e,500);r<n.length;r+=1){for(var i=n[r],a=0,o=0,s=i;o<s.length;o+=1)a+=s[o].length;for(var l=this.segments.prepareSegment(a,this.layoutVertexArray,this.indexArray),c=l.vertexLength,u=[],f=[],h=0,p=i;h<p.length;h+=1){var d=p[h];if(0!==d.length){d!==i[0]&&f.push(u.length/2);var g=this.segments2.prepareSegment(d.length,this.layoutVertexArray,this.indexArray2),v=g.vertexLength;this.layoutVertexArray.emplaceBack(d[0].x,d[0].y),this.indexArray2.emplaceBack(v+d.length-1,v),u.push(d[0].x),u.push(d[0].y);for(var m=1;m<d.length;m++)this.layoutVertexArray.emplaceBack(d[m].x,d[m].y),this.indexArray2.emplaceBack(v+m-1,v+m),u.push(d[m].x),u.push(d[m].y);g.vertexLength+=d.length,g.primitiveLength+=d.length}}for(var y=mi(u,f),x=0;x<y.length;x+=3)this.indexArray.emplaceBack(c+y[x],c+y[x+1],c+y[x+2]);l.vertexLength+=a,l.primitiveLength+=y.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t)},pr(\\\"FillBucket\\\",Zi,{omit:[\\\"layers\\\"]});var $i={paint:new qr({\\\"fill-antialias\\\":new Nr(I.paint_fill[\\\"fill-antialias\\\"]),\\\"fill-opacity\\\":new jr(I.paint_fill[\\\"fill-opacity\\\"]),\\\"fill-color\\\":new jr(I.paint_fill[\\\"fill-color\\\"]),\\\"fill-outline-color\\\":new jr(I.paint_fill[\\\"fill-outline-color\\\"]),\\\"fill-translate\\\":new Nr(I.paint_fill[\\\"fill-translate\\\"]),\\\"fill-translate-anchor\\\":new Nr(I.paint_fill[\\\"fill-translate-anchor\\\"]),\\\"fill-pattern\\\":new Vr(I.paint_fill[\\\"fill-pattern\\\"])})},Ji=function(t){function e(e){t.call(this,e,$i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(t){this.paint=this._transitioningPaint.possiblyEvaluate(t);var e=this.paint._values[\\\"fill-outline-color\\\"];\\\"constant\\\"===e.value.kind&&void 0===e.value.value&&(this.paint._values[\\\"fill-outline-color\\\"]=this.paint._values[\\\"fill-color\\\"])},e.prototype.createBucket=function(t){return new Zi(t)},e.prototype.queryRadius=function(){return Jn(this.paint.get(\\\"fill-translate\\\"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a){return Vn(Kn(t,this.paint.get(\\\"fill-translate\\\"),this.paint.get(\\\"fill-translate-anchor\\\"),i.angle,a),r)},e}(Hr),Ki=Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_normal_ed\\\",components:4,type:\\\"Int16\\\"}],4).members,Qi=Math.pow(2,13);function ta(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*Qi)+o,i*Qi*2,a*Qi*2,Math.round(s))}var ea=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new Kr,this.indexArray=new fn,this.programConfigurations=new In(Ki,t.layers,t.zoom),this.segments=new Tn};function ra(t,e){return t.x===e.x&&(t.x<0||t.x>Dn)||t.y===e.y&&(t.y<0||t.y>Dn)}function na(t){return t.every(function(t){return t.x<0})||t.every(function(t){return t.x>Dn})||t.every(function(t){return t.y<0})||t.every(function(t){return t.y>Dn})}ea.prototype.populate=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.feature,o=i.index,s=i.sourceLayerIndex;if(this.layers[0]._featureFilter(new Lr(this.zoom),a)){var l=Bn(a);this.addFeature(a,l),e.featureIndex.insert(a,l,o,s,this.index)}}},ea.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ea.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Ki),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.programConfigurations.upload(t)},ea.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},ea.prototype.addFeature=function(t,e){for(var r=0,n=Yi(e,500);r<n.length;r+=1){for(var i=n[r],a=0,o=0,s=i;o<s.length;o+=1)a+=s[o].length;for(var l=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),c=0,u=i;c<u.length;c+=1){var f=u[c];if(0!==f.length&&!na(f))for(var h=0,p=0;p<f.length;p++){var d=f[p];if(p>=1){var g=f[p-1];if(!ra(d,g)){l.vertexLength+4>Tn.MAX_VERTEX_ARRAY_LENGTH&&(l=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var v=d.sub(g)._perp()._unit(),m=g.dist(d);h+m>32768&&(h=0),ta(this.layoutVertexArray,d.x,d.y,v.x,v.y,0,0,h),ta(this.layoutVertexArray,d.x,d.y,v.x,v.y,0,1,h),h+=m,ta(this.layoutVertexArray,g.x,g.y,v.x,v.y,0,0,h),ta(this.layoutVertexArray,g.x,g.y,v.x,v.y,0,1,h);var y=l.vertexLength;this.indexArray.emplaceBack(y,y+1,y+2),this.indexArray.emplaceBack(y+1,y+2,y+3),l.vertexLength+=4,l.primitiveLength+=2}}}}l.vertexLength+a>Tn.MAX_VERTEX_ARRAY_LENGTH&&(l=this.segments.prepareSegment(a,this.layoutVertexArray,this.indexArray));for(var x=[],b=[],_=l.vertexLength,w=0,k=i;w<k.length;w+=1){var M=k[w];if(0!==M.length){M!==i[0]&&b.push(x.length/2);for(var A=0;A<M.length;A++){var T=M[A];ta(this.layoutVertexArray,T.x,T.y,0,0,1,1,0),x.push(T.x),x.push(T.y)}}}for(var S=mi(x,b),E=0;E<S.length;E+=3)this.indexArray.emplaceBack(_+S[E],_+S[E+1],_+S[E+2]);l.primitiveLength+=S.length/3,l.vertexLength+=a}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t)},pr(\\\"FillExtrusionBucket\\\",ea,{omit:[\\\"layers\\\"]});var ia={paint:new qr({\\\"fill-extrusion-opacity\\\":new Nr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-opacity\\\"]),\\\"fill-extrusion-color\\\":new jr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-color\\\"]),\\\"fill-extrusion-translate\\\":new Nr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-translate\\\"]),\\\"fill-extrusion-translate-anchor\\\":new Nr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-translate-anchor\\\"]),\\\"fill-extrusion-pattern\\\":new Vr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-pattern\\\"]),\\\"fill-extrusion-height\\\":new jr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-height\\\"]),\\\"fill-extrusion-base\\\":new jr(I[\\\"paint_fill-extrusion\\\"][\\\"fill-extrusion-base\\\"])})},aa=function(t){function e(e){t.call(this,e,ia)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new ea(t)},e.prototype.queryRadius=function(){return Jn(this.paint.get(\\\"fill-extrusion-translate\\\"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a){return Vn(Kn(t,this.paint.get(\\\"fill-extrusion-translate\\\"),this.paint.get(\\\"fill-extrusion-translate-anchor\\\"),i.angle,a),r)},e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get(\\\"fill-extrusion-opacity\\\")&&\\\"none\\\"!==this.visibility},e.prototype.resize=function(){this.viewportFrame&&(this.viewportFrame.destroy(),this.viewportFrame=null)},e}(Hr),oa=Xr([{name:\\\"a_pos_normal\\\",components:4,type:\\\"Int16\\\"},{name:\\\"a_data\\\",components:4,type:\\\"Uint8\\\"}],4).members,sa=la;function la(t,e,r,n,i){this.properties={},this.extent=r,this.type=0,this._pbf=t,this._geometry=-1,this._keys=n,this._values=i,t.readFields(ca,this,e)}function ca(t,e,r){1==t?e.id=r.readVarint():2==t?function(t,e){for(var r=t.readVarint()+t.pos;t.pos<r;){var n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i}}(r,e):3==t?e.type=r.readVarint():4==t&&(e._geometry=r.pos)}function ua(t){for(var e,r,n=0,i=0,a=t.length,o=a-1;i<a;o=i++)e=t[i],n+=((r=t[o]).x-e.x)*(e.y+r.y);return n}la.types=[\\\"Unknown\\\",\\\"Point\\\",\\\"LineString\\\",\\\"Polygon\\\"],la.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,r=t.readVarint()+t.pos,n=1,i=0,a=0,o=0,s=[];t.pos<r;){if(i<=0){var c=t.readVarint();n=7&c,i=c>>3}if(i--,1===n||2===n)a+=t.readSVarint(),o+=t.readSVarint(),1===n&&(e&&s.push(e),e=[]),e.push(new l(a,o));else{if(7!==n)throw new Error(\\\"unknown command \\\"+n);e&&e.push(e[0].clone())}}return e&&s.push(e),s},la.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,c=-1/0;t.pos<e;){if(n<=0){var u=t.readVarint();r=7&u,n=u>>3}if(n--,1===r||2===r)(i+=t.readSVarint())<o&&(o=i),i>s&&(s=i),(a+=t.readSVarint())<l&&(l=a),a>c&&(c=a);else if(7!==r)throw new Error(\\\"unknown command \\\"+r)}return[o,l,s,c]},la.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,l=this.loadGeometry(),c=la.types[this.type];function u(t){for(var e=0;e<t.length;e++){var r=t[e],n=180-360*(r.y+s)/a;t[e]=[360*(r.x+o)/a-180,360/Math.PI*Math.atan(Math.exp(n*Math.PI/180))-90]}}switch(this.type){case 1:var f=[];for(n=0;n<l.length;n++)f[n]=l[n][0];u(l=f);break;case 2:for(n=0;n<l.length;n++)u(l[n]);break;case 3:for(l=function(t){var e=t.length;if(e<=1)return[t];for(var r,n,i=[],a=0;a<e;a++){var o=ua(t[a]);0!==o&&(void 0===n&&(n=o<0),n===o<0?(r&&i.push(r),r=[t[a]]):r.push(t[a]))}return r&&i.push(r),i}(l),n=0;n<l.length;n++)for(i=0;i<l[n].length;i++)u(l[n][i])}1===l.length?l=l[0]:c=\\\"Multi\\\"+c;var h={type:\\\"Feature\\\",geometry:{type:c,coordinates:l},properties:this.properties};return\\\"id\\\"in this&&(h.id=this.id),h};var fa=ha;function ha(t,e){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(pa,this,e),this.length=this._features.length}function pa(t,e,r){15===t?e.version=r.readVarint():1===t?e.name=r.readString():5===t?e.extent=r.readVarint():2===t?e._features.push(r.pos):3===t?e._keys.push(r.readString()):4===t&&e._values.push(function(t){for(var e=null,r=t.readVarint()+t.pos;t.pos<r;){var n=t.readVarint()>>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}function da(t,e,r){if(3===t){var n=new fa(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}ha.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error(\\\"feature index out of bounds\\\");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new sa(this._pbf,e,this.extent,this._keys,this._values)};var ga={VectorTile:function(t,e){this.layers=t.readFields(da,{},e)},VectorTileFeature:sa,VectorTileLayer:fa},va=ga.VectorTileFeature.types,ma=63,ya=Math.cos(Math.PI/180*37.5),xa=.5,ba=Math.pow(2,14)/xa;function _a(t,e,r,n,i,a,o){t.emplaceBack(e.x,e.y,n?1:0,i?1:-1,Math.round(ma*r.x)+128,Math.round(ma*r.y)+128,1+(0===a?0:a<0?-1:1)|(o*xa&63)<<2,o*xa>>6)}var wa=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new Qr,this.indexArray=new fn,this.programConfigurations=new In(oa,t.layers,t.zoom),this.segments=new Tn};function ka(t,e){return(t/e.tileTotal*(e.end-e.start)+e.start)*(ba-1)}wa.prototype.populate=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.feature,o=i.index,s=i.sourceLayerIndex;if(this.layers[0]._featureFilter(new Lr(this.zoom),a)){var l=Bn(a);this.addFeature(a,l),e.featureIndex.insert(a,l,o,s,this.index)}}},wa.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},wa.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,oa),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.programConfigurations.upload(t)},wa.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},wa.prototype.addFeature=function(t,e){for(var r=this.layers[0].layout,n=r.get(\\\"line-join\\\").evaluate(t),i=r.get(\\\"line-cap\\\"),a=r.get(\\\"line-miter-limit\\\"),o=r.get(\\\"line-round-limit\\\"),s=0,l=e;s<l.length;s+=1){var c=l[s];this.addLine(c,t,n,i,a,o)}},wa.prototype.addLine=function(t,e,r,n,i,a){var o=null;e.properties&&e.properties.hasOwnProperty(\\\"mapbox_clip_start\\\")&&e.properties.hasOwnProperty(\\\"mapbox_clip_end\\\")&&(o={start:e.properties.mapbox_clip_start,end:e.properties.mapbox_clip_end,tileTotal:void 0});for(var s=\\\"Polygon\\\"===va[e.type],l=t.length;l>=2&&t[l-1].equals(t[l-2]);)l--;for(var c=0;c<l-1&&t[c].equals(t[c+1]);)c++;if(!(l<(s?3:2))){o&&(o.tileTotal=function(t,e,r){for(var n,i,a=0,o=c;o<r-1;o++)n=t[o],i=t[o+1],a+=n.dist(i);return a}(t,0,l)),\\\"bevel\\\"===r&&(i=1.05);var u=Dn/(512*this.overscaling)*15,f=t[c],h=this.segments.prepareSegment(10*l,this.layoutVertexArray,this.indexArray);this.distance=0;var p,d,g,v=n,m=s?\\\"butt\\\":n,y=!0,x=void 0,b=void 0,_=void 0,w=void 0;this.e1=this.e2=this.e3=-1,s&&(p=t[l-2],w=f.sub(p)._unit()._perp());for(var k=c;k<l;k++)if(!(b=s&&k===l-1?t[c+1]:t[k+1])||!t[k].equals(b)){w&&(_=w),p&&(x=p),p=t[k],w=b?b.sub(p)._unit()._perp():_;var M=(_=_||w).add(w);0===M.x&&0===M.y||M._unit();var A=M.x*w.x+M.y*w.y,T=0!==A?1/A:1/0,S=A<ya&&x&&b;if(S&&k>c){var E=p.dist(x);if(E>2*u){var C=p.sub(p.sub(x)._mult(u/E)._round());this.distance+=C.dist(x),this.addCurrentVertex(C,this.distance,_.mult(1),0,0,!1,h,o),x=C}}var L=x&&b,z=L?r:b?v:m;if(L&&\\\"round\\\"===z&&(T<a?z=\\\"miter\\\":T<=2&&(z=\\\"fakeround\\\")),\\\"miter\\\"===z&&T>i&&(z=\\\"bevel\\\"),\\\"bevel\\\"===z&&(T>2&&(z=\\\"flipbevel\\\"),T<i&&(z=\\\"miter\\\")),x&&(this.distance+=p.dist(x)),\\\"miter\\\"===z)M._mult(T),this.addCurrentVertex(p,this.distance,M,0,0,!1,h,o);else if(\\\"flipbevel\\\"===z){if(T>100)M=w.clone().mult(-1);else{var O=_.x*w.y-_.y*w.x>0?-1:1,I=T*_.add(w).mag()/_.sub(w).mag();M._perp()._mult(I*O)}this.addCurrentVertex(p,this.distance,M,0,0,!1,h,o),this.addCurrentVertex(p,this.distance,M.mult(-1),0,0,!1,h,o)}else if(\\\"bevel\\\"===z||\\\"fakeround\\\"===z){var P=_.x*w.y-_.y*w.x>0,D=-Math.sqrt(T*T-1);if(P?(g=0,d=D):(d=0,g=D),y||this.addCurrentVertex(p,this.distance,_,d,g,!1,h,o),\\\"fakeround\\\"===z){for(var R=Math.floor(8*(.5-(A-.5))),B=void 0,F=0;F<R;F++)B=w.mult((F+1)/(R+1))._add(_)._unit(),this.addPieSliceVertex(p,this.distance,B,P,h,o);this.addPieSliceVertex(p,this.distance,M,P,h,o);for(var N=R-1;N>=0;N--)B=_.mult((N+1)/(R+1))._add(w)._unit(),this.addPieSliceVertex(p,this.distance,B,P,h,o)}b&&this.addCurrentVertex(p,this.distance,w,-d,-g,!1,h,o)}else\\\"butt\\\"===z?(y||this.addCurrentVertex(p,this.distance,_,0,0,!1,h,o),b&&this.addCurrentVertex(p,this.distance,w,0,0,!1,h,o)):\\\"square\\\"===z?(y||(this.addCurrentVertex(p,this.distance,_,1,1,!1,h,o),this.e1=this.e2=-1),b&&this.addCurrentVertex(p,this.distance,w,-1,-1,!1,h,o)):\\\"round\\\"===z&&(y||(this.addCurrentVertex(p,this.distance,_,0,0,!1,h,o),this.addCurrentVertex(p,this.distance,_,1,1,!0,h,o),this.e1=this.e2=-1),b&&(this.addCurrentVertex(p,this.distance,w,-1,-1,!0,h,o),this.addCurrentVertex(p,this.distance,w,0,0,!1,h,o)));if(S&&k<l-1){var j=p.dist(b);if(j>2*u){var V=p.add(b.sub(p)._mult(u/j)._round());this.distance+=V.dist(p),this.addCurrentVertex(V,this.distance,w.mult(1),0,0,!1,h,o),p=V}}y=!1}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e)}},wa.prototype.addCurrentVertex=function(t,e,r,n,i,a,o,s){var l,c=this.layoutVertexArray,u=this.indexArray;s&&(e=ka(e,s)),l=r.clone(),n&&l._sub(r.perp()._mult(n)),_a(c,t,l,a,!1,n,e),this.e3=o.vertexLength++,this.e1>=0&&this.e2>=0&&(u.emplaceBack(this.e1,this.e2,this.e3),o.primitiveLength++),this.e1=this.e2,this.e2=this.e3,l=r.mult(-1),i&&l._sub(r.perp()._mult(i)),_a(c,t,l,a,!0,-i,e),this.e3=o.vertexLength++,this.e1>=0&&this.e2>=0&&(u.emplaceBack(this.e1,this.e2,this.e3),o.primitiveLength++),this.e1=this.e2,this.e2=this.e3,e>ba/2&&!s&&(this.distance=0,this.addCurrentVertex(t,this.distance,r,n,i,a,o))},wa.prototype.addPieSliceVertex=function(t,e,r,n,i,a){r=r.mult(n?-1:1);var o=this.layoutVertexArray,s=this.indexArray;a&&(e=ka(e,a)),_a(o,t,r,!1,n,0,e),this.e3=i.vertexLength++,this.e1>=0&&this.e2>=0&&(s.emplaceBack(this.e1,this.e2,this.e3),i.primitiveLength++),n?this.e2=this.e3:this.e1=this.e3},pr(\\\"LineBucket\\\",wa,{omit:[\\\"layers\\\"]});var Ma=new qr({\\\"line-cap\\\":new Nr(I.layout_line[\\\"line-cap\\\"]),\\\"line-join\\\":new jr(I.layout_line[\\\"line-join\\\"]),\\\"line-miter-limit\\\":new Nr(I.layout_line[\\\"line-miter-limit\\\"]),\\\"line-round-limit\\\":new Nr(I.layout_line[\\\"line-round-limit\\\"])}),Aa={paint:new qr({\\\"line-opacity\\\":new jr(I.paint_line[\\\"line-opacity\\\"]),\\\"line-color\\\":new jr(I.paint_line[\\\"line-color\\\"]),\\\"line-translate\\\":new Nr(I.paint_line[\\\"line-translate\\\"]),\\\"line-translate-anchor\\\":new Nr(I.paint_line[\\\"line-translate-anchor\\\"]),\\\"line-width\\\":new jr(I.paint_line[\\\"line-width\\\"]),\\\"line-gap-width\\\":new jr(I.paint_line[\\\"line-gap-width\\\"]),\\\"line-offset\\\":new jr(I.paint_line[\\\"line-offset\\\"]),\\\"line-blur\\\":new jr(I.paint_line[\\\"line-blur\\\"]),\\\"line-dasharray\\\":new Vr(I.paint_line[\\\"line-dasharray\\\"]),\\\"line-pattern\\\":new Vr(I.paint_line[\\\"line-pattern\\\"]),\\\"line-gradient\\\":new Ur(I.paint_line[\\\"line-gradient\\\"])}),layout:Ma},Ta=new(function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new Lr(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n){return r=p({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n)},e}(jr))(Aa.paint.properties[\\\"line-width\\\"].specification);Ta.useIntegerZoom=!0;var Sa=function(t){function e(e){t.call(this,e,Aa)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setPaintProperty=function(e,r,n){t.prototype.setPaintProperty.call(this,e,r,n),\\\"line-gradient\\\"===e&&this._updateGradient()},e.prototype._updateGradient=function(){var t=this._transitionablePaint._values[\\\"line-gradient\\\"].value.expression;this.gradient=hi(t,\\\"lineProgress\\\"),this.gradientTexture=null},e.prototype.recalculate=function(e){t.prototype.recalculate.call(this,e),this.paint._values[\\\"line-floorwidth\\\"]=Ta.possiblyEvaluate(this._transitioningPaint._values[\\\"line-width\\\"].value,e)},e.prototype.createBucket=function(t){return new wa(t)},e.prototype.queryRadius=function(t){var e=t,r=Ea($n(\\\"line-width\\\",this,e),$n(\\\"line-gap-width\\\",this,e)),n=$n(\\\"line-offset\\\",this,e);return r/2+Math.abs(n)+Jn(this.paint.get(\\\"line-translate\\\"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a){var o=Kn(t,this.paint.get(\\\"line-translate\\\"),this.paint.get(\\\"line-translate-anchor\\\"),i.angle,a),s=a/2*Ea(this.paint.get(\\\"line-width\\\").evaluate(e),this.paint.get(\\\"line-gap-width\\\").evaluate(e)),c=this.paint.get(\\\"line-offset\\\").evaluate(e);return c&&(r=function(t,e){for(var r=[],n=new l(0,0),i=0;i<t.length;i++){for(var a=t[i],o=[],s=0;s<a.length;s++){var c=a[s-1],u=a[s],f=a[s+1],h=0===s?n:u.sub(c)._unit()._perp(),p=s===a.length-1?n:f.sub(u)._unit()._perp(),d=h._add(p)._unit(),g=d.x*p.x+d.y*p.y;d._mult(1/g),o.push(d._mult(e)._add(u))}r.push(o)}return r}(r,c*a)),Un(o,r,s)},e}(Hr);function Ea(t,e){return e>0?e+2*t:t}var Ca=Xr([{name:\\\"a_pos_offset\\\",components:4,type:\\\"Int16\\\"},{name:\\\"a_data\\\",components:4,type:\\\"Uint16\\\"}]),La=Xr([{name:\\\"a_projected_pos\\\",components:3,type:\\\"Float32\\\"}],4),za=(Xr([{name:\\\"a_fade_opacity\\\",components:1,type:\\\"Uint32\\\"}],4),Xr([{name:\\\"a_placed\\\",components:2,type:\\\"Uint8\\\"}],4)),Oa=(Xr([{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\\\"},{type:\\\"Int16\\\",name:\\\"radius\\\"},{type:\\\"Int16\\\",name:\\\"signedDistanceFromAnchor\\\"}]),Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_anchor_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_extrude\\\",components:2,type:\\\"Int16\\\"}],4)),Ia=Xr([{name:\\\"a_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_anchor_pos\\\",components:2,type:\\\"Int16\\\"},{name:\\\"a_extrude\\\",components:2,type:\\\"Int16\\\"}],4);function Pa(t,e,r){var n=e.layout.get(\\\"text-transform\\\").evaluate(r);return\\\"uppercase\\\"===n?t=t.toLocaleUpperCase():\\\"lowercase\\\"===n&&(t=t.toLocaleLowerCase()),Cr.applyArabicShaping&&(t=Cr.applyArabicShaping(t)),t}Xr([{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:\\\"hidden\\\"}]),Xr([{type:\\\"Float32\\\",name:\\\"offsetX\\\"}]),Xr([{type:\\\"Int16\\\",name:\\\"x\\\"},{type:\\\"Int16\\\",name:\\\"y\\\"},{type:\\\"Int16\\\",name:\\\"tileUnitDistanceFromAnchor\\\"}]);var Da={\\\"!\\\":\\\"\\\\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\\\"},Ra=function(t){function e(e,r,n,i){t.call(this,e,r),this.angle=n,void 0!==i&&(this.segment=i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.x,this.y,this.angle,this.segment)},e}(l);function Ba(t,e){var r=e.expression;if(\\\"constant\\\"===r.kind)return{functionType:\\\"constant\\\",layoutSize:r.evaluate(new Lr(t+1))};if(\\\"source\\\"===r.kind)return{functionType:\\\"source\\\"};for(var n=r.zoomStops,i=0;i<n.length&&n[i]<=t;)i++;for(var a=i=Math.max(0,i-1);a<n.length&&n[a]<t+1;)a++;a=Math.min(n.length-1,a);var o={min:n[i],max:n[a]};return\\\"composite\\\"===r.kind?{functionType:\\\"composite\\\",zoomRange:o,propertyValue:e.value}:{functionType:\\\"camera\\\",layoutSize:r.evaluate(new Lr(t+1)),zoomRange:o,sizeRange:{min:r.evaluate(new Lr(o.min)),max:r.evaluate(new Lr(o.max))},propertyValue:e.value}}pr(\\\"Anchor\\\",Ra);var Fa=ga.VectorTileFeature.types,Na=[{name:\\\"a_fade_opacity\\\",components:1,type:\\\"Uint8\\\",offset:0}];function ja(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,Math.round(32*n),Math.round(32*i),a,o,s?s[0]:0,s?s[1]:0)}function Va(t,e,r){t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r)}var Ua=function(t){this.layoutVertexArray=new tn,this.indexArray=new fn,this.programConfigurations=t,this.segments=new Tn,this.dynamicLayoutVertexArray=new en,this.opacityVertexArray=new rn,this.placedSymbolArray=new yn};Ua.prototype.upload=function(t,e){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Ca.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.programConfigurations.upload(t),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,La.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,Na,!0),this.opacityVertexBuffer.itemSize=1},Ua.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())},pr(\\\"SymbolBuffers\\\",Ua);var qa=function(t,e,r){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new r,this.segments=new Tn,this.collisionVertexArray=new on};qa.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,za.members,!0)},qa.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())},pr(\\\"CollisionBuffers\\\",qa);var Ha=function(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex;var e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Ba(this.zoom,e[\\\"text-size\\\"]),this.iconSizeData=Ba(this.zoom,e[\\\"icon-size\\\"]);var r=this.layers[0].layout;this.sortFeaturesByY=r.get(\\\"text-allow-overlap\\\")||r.get(\\\"icon-allow-overlap\\\")||r.get(\\\"text-ignore-placement\\\")||r.get(\\\"icon-ignore-placement\\\")};Ha.prototype.createArrays=function(){this.text=new Ua(new In(Ca.members,this.layers,this.zoom,function(t){return/^text/.test(t)})),this.icon=new Ua(new In(Ca.members,this.layers,this.zoom,function(t){return/^icon/.test(t)})),this.collisionBox=new qa(an,Oa.members,hn),this.collisionCircle=new qa(an,Ia.members,fn),this.glyphOffsetArray=new bn,this.lineVertexArray=new wn},Ha.prototype.populate=function(t,e){var r=this.layers[0],n=r.layout,i=n.get(\\\"text-font\\\"),a=n.get(\\\"text-field\\\"),o=n.get(\\\"icon-image\\\"),s=(\\\"constant\\\"!==a.value.kind||a.value.value.length>0)&&(\\\"constant\\\"!==i.value.kind||i.value.value.length>0),l=\\\"constant\\\"!==o.value.kind||o.value.value&&o.value.value.length>0;if(this.features=[],s||l){for(var c=e.iconDependencies,u=e.glyphDependencies,f=new Lr(this.zoom),h=0,p=t;h<p.length;h+=1){var d=p[h],g=d.feature,v=d.index,m=d.sourceLayerIndex;if(r._featureFilter(f,g)){var y=void 0;s&&(y=Pa(y=r.getValueAndResolveTokens(\\\"text-field\\\",g),r,g));var x=void 0;if(l&&(x=r.getValueAndResolveTokens(\\\"icon-image\\\",g)),y||x){var b={text:y,icon:x,index:v,sourceLayerIndex:m,geometry:Bn(g),properties:g.properties,type:Fa[g.type]};if(void 0!==g.id&&(b.id=g.id),this.features.push(b),x&&(c[x]=!0),y)for(var _=i.evaluate(g).join(\\\",\\\"),w=u[_]=u[_]||{},k=\\\"map\\\"===n.get(\\\"text-rotation-alignment\\\")&&\\\"line\\\"===n.get(\\\"symbol-placement\\\"),M=xr(y),A=0;A<y.length;A++)if(w[y.charCodeAt(A)]=!0,k&&M){var T=Da[y.charAt(A)];T&&(w[T.charCodeAt(0)]=!0)}}}}\\\"line\\\"===n.get(\\\"symbol-placement\\\")&&(this.features=function(t){var e={},r={},n=[],i=0;function a(e){n.push(t[e]),i++}function o(t,e,i){var a=r[t];return delete r[t],r[e]=a,n[a].geometry[0].pop(),n[a].geometry[0]=n[a].geometry[0].concat(i[0]),a}function s(t,r,i){var a=e[r];return delete e[r],e[t]=a,n[a].geometry[0].shift(),n[a].geometry[0]=i[0].concat(n[a].geometry[0]),a}function l(t,e,r){var n=r?e[0][e[0].length-1]:e[0][0];return t+\\\":\\\"+n.x+\\\":\\\"+n.y}for(var c=0;c<t.length;c++){var u=t[c],f=u.geometry,h=u.text;if(h){var p=l(h,f),d=l(h,f,!0);if(p in r&&d in e&&r[p]!==e[d]){var g=s(p,d,f),v=o(p,d,n[g].geometry);delete e[p],delete r[d],r[l(h,n[v].geometry,!0)]=v,n[g].geometry=null}else p in r?o(p,d,f):d in e?s(p,d,f):(a(c),e[p]=i-1,r[d]=i-1)}else a(c)}return n.filter(function(t){return t.geometry})}(this.features))}},Ha.prototype.isEmpty=function(){return 0===this.symbolInstances.length},Ha.prototype.upload=function(t){this.text.upload(t,this.sortFeaturesByY),this.icon.upload(t,this.sortFeaturesByY),this.collisionBox.upload(t),this.collisionCircle.upload(t)},Ha.prototype.destroy=function(){this.text.destroy(),this.icon.destroy(),this.collisionBox.destroy(),this.collisionCircle.destroy()},Ha.prototype.addToLineVertexArray=function(t,e){var r=this.lineVertexArray.length;if(void 0!==t.segment){for(var n=t.dist(e[t.segment+1]),i=t.dist(e[t.segment]),a={},o=t.segment+1;o<e.length;o++)a[o]={x:e[o].x,y:e[o].y,tileUnitDistanceFromAnchor:n},o<e.length-1&&(n+=e[o+1].dist(e[o]));for(var s=t.segment||0;s>=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l<e.length;l++){var c=a[l];this.lineVertexArray.emplaceBack(c.x,c.y,c.tileUnitDistanceFromAnchor)}}return{lineStartIndex:r,lineLength:this.lineVertexArray.length-r}},Ha.prototype.addSymbols=function(t,e,r,n,i,a,o,s,l,c){for(var u=t.indexArray,f=t.layoutVertexArray,h=t.dynamicLayoutVertexArray,p=t.segments.prepareSegment(4*e.length,t.layoutVertexArray,t.indexArray),d=this.glyphOffsetArray.length,g=p.vertexLength,v=0,m=e;v<m.length;v+=1){var y=m[v],x=y.tl,b=y.tr,_=y.bl,w=y.br,k=y.tex,M=p.vertexLength,A=y.glyphOffset[1];ja(f,s.x,s.y,x.x,A+x.y,k.x,k.y,r),ja(f,s.x,s.y,b.x,A+b.y,k.x+k.w,k.y,r),ja(f,s.x,s.y,_.x,A+_.y,k.x,k.y+k.h,r),ja(f,s.x,s.y,w.x,A+w.y,k.x+k.w,k.y+k.h,r),Va(h,s,0),u.emplaceBack(M,M+1,M+2),u.emplaceBack(M+1,M+2,M+3),p.vertexLength+=4,p.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(y.glyphOffset[0])}t.placedSymbolArray.emplaceBack(s.x,s.y,d,this.glyphOffsetArray.length-d,g,l,c,s.segment,r?r[0]:0,r?r[1]:0,n[0],n[1],o,!1),t.programConfigurations.populatePaintArrays(t.layoutVertexArray.length,a)},Ha.prototype._addCollisionDebugVertex=function(t,e,r,n,i){return e.emplaceBack(0,0),t.emplaceBack(r.x,r.y,n.x,n.y,Math.round(i.x),Math.round(i.y))},Ha.prototype.addCollisionDebugVertices=function(t,e,r,n,i,a,o,s){var c=i.segments.prepareSegment(4,i.layoutVertexArray,i.indexArray),u=c.vertexLength,f=i.layoutVertexArray,h=i.collisionVertexArray;if(this._addCollisionDebugVertex(f,h,a,o.anchor,new l(t,e)),this._addCollisionDebugVertex(f,h,a,o.anchor,new l(r,e)),this._addCollisionDebugVertex(f,h,a,o.anchor,new l(r,n)),this._addCollisionDebugVertex(f,h,a,o.anchor,new l(t,n)),c.vertexLength+=4,s){var p=i.indexArray;p.emplaceBack(u,u+1,u+2),p.emplaceBack(u,u+2,u+3),c.primitiveLength+=2}else{var d=i.indexArray;d.emplaceBack(u,u+1),d.emplaceBack(u+1,u+2),d.emplaceBack(u+2,u+3),d.emplaceBack(u+3,u),c.primitiveLength+=4}},Ha.prototype.generateCollisionDebugBuffers=function(){for(var t=0,e=this.symbolInstances;t<e.length;t+=1){var r=e[t];r.textCollisionFeature={boxStartIndex:r.textBoxStartIndex,boxEndIndex:r.textBoxEndIndex},r.iconCollisionFeature={boxStartIndex:r.iconBoxStartIndex,boxEndIndex:r.iconBoxEndIndex};for(var n=0;n<2;n++){var i=r[0===n?\\\"textCollisionFeature\\\":\\\"iconCollisionFeature\\\"];if(i)for(var a=i.boxStartIndex;a<i.boxEndIndex;a++){var o=this.collisionBoxArray.get(a),s=o.x1,l=o.y1,c=o.x2,u=o.y2,f=o.radius>0;this.addCollisionDebugVertices(s,l,c,u,f?this.collisionCircle:this.collisionBox,o.anchorPoint,r,f)}}}},Ha.prototype.deserializeCollisionBoxes=function(t,e,r,n,i){for(var a={},o=e;o<r;o++){var s=t.get(o);if(0===s.radius){a.textBox={x1:s.x1,y1:s.y1,x2:s.x2,y2:s.y2,anchorPointX:s.anchorPointX,anchorPointY:s.anchorPointY},a.textFeatureIndex=s.featureIndex;break}a.textCircles||(a.textCircles=[],a.textFeatureIndex=s.featureIndex),a.textCircles.push(s.anchorPointX,s.anchorPointY,s.radius,s.signedDistanceFromAnchor,1)}for(var l=n;l<i;l++){var c=t.get(l);if(0===c.radius){a.iconBox={x1:c.x1,y1:c.y1,x2:c.x2,y2:c.y2,anchorPointX:c.anchorPointX,anchorPointY:c.anchorPointY},a.iconFeatureIndex=c.featureIndex;break}}return a},Ha.prototype.hasTextData=function(){return this.text.segments.get().length>0},Ha.prototype.hasIconData=function(){return this.icon.segments.get().length>0},Ha.prototype.hasCollisionBoxData=function(){return this.collisionBox.segments.get().length>0},Ha.prototype.hasCollisionCircleData=function(){return this.collisionCircle.segments.get().length>0},Ha.prototype.sortFeatures=function(t){var e=this;if(this.sortFeaturesByY&&this.sortedAngle!==t&&(this.sortedAngle=t,!(this.text.segments.get().length>1||this.icon.segments.get().length>1))){for(var r=[],n=0;n<this.symbolInstances.length;n++)r.push(n);var i=Math.sin(t),a=Math.cos(t);r.sort(function(t,r){var n=e.symbolInstances[t],o=e.symbolInstances[r];return(i*n.anchor.x+a*n.anchor.y|0)-(i*o.anchor.x+a*o.anchor.y|0)||o.featureIndex-n.featureIndex}),this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var o=0,s=r;o<s.length;o+=1){var l=s[o],c=e.symbolInstances[l];e.featureSortOrder.push(c.featureIndex);for(var u=0,f=c.placedTextSymbolIndices;u<f.length;u+=1)for(var h=f[u],p=e.text.placedSymbolArray.get(h),d=p.vertexStartIndex+4*p.numGlyphs,g=p.vertexStartIndex;g<d;g+=4)e.text.indexArray.emplaceBack(g,g+1,g+2),e.text.indexArray.emplaceBack(g+1,g+2,g+3);var v=e.icon.placedSymbolArray.get(l);if(v.numGlyphs){var m=v.vertexStartIndex;e.icon.indexArray.emplaceBack(m,m+1,m+2),e.icon.indexArray.emplaceBack(m+1,m+2,m+3)}}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},pr(\\\"SymbolBucket\\\",Ha,{omit:[\\\"layers\\\",\\\"collisionBoxArray\\\",\\\"features\\\",\\\"compareText\\\"],shallow:[\\\"symbolInstances\\\"]}),Ha.MAX_GLYPHS=65535,Ha.addDynamicAttributes=Va;var Ga=new qr({\\\"symbol-placement\\\":new Nr(I.layout_symbol[\\\"symbol-placement\\\"]),\\\"symbol-spacing\\\":new Nr(I.layout_symbol[\\\"symbol-spacing\\\"]),\\\"symbol-avoid-edges\\\":new Nr(I.layout_symbol[\\\"symbol-avoid-edges\\\"]),\\\"icon-allow-overlap\\\":new Nr(I.layout_symbol[\\\"icon-allow-overlap\\\"]),\\\"icon-ignore-placement\\\":new Nr(I.layout_symbol[\\\"icon-ignore-placement\\\"]),\\\"icon-optional\\\":new Nr(I.layout_symbol[\\\"icon-optional\\\"]),\\\"icon-rotation-alignment\\\":new Nr(I.layout_symbol[\\\"icon-rotation-alignment\\\"]),\\\"icon-size\\\":new jr(I.layout_symbol[\\\"icon-size\\\"]),\\\"icon-text-fit\\\":new Nr(I.layout_symbol[\\\"icon-text-fit\\\"]),\\\"icon-text-fit-padding\\\":new Nr(I.layout_symbol[\\\"icon-text-fit-padding\\\"]),\\\"icon-image\\\":new jr(I.layout_symbol[\\\"icon-image\\\"]),\\\"icon-rotate\\\":new jr(I.layout_symbol[\\\"icon-rotate\\\"]),\\\"icon-padding\\\":new Nr(I.layout_symbol[\\\"icon-padding\\\"]),\\\"icon-keep-upright\\\":new Nr(I.layout_symbol[\\\"icon-keep-upright\\\"]),\\\"icon-offset\\\":new jr(I.layout_symbol[\\\"icon-offset\\\"]),\\\"icon-anchor\\\":new jr(I.layout_symbol[\\\"icon-anchor\\\"]),\\\"icon-pitch-alignment\\\":new Nr(I.layout_symbol[\\\"icon-pitch-alignment\\\"]),\\\"text-pitch-alignment\\\":new Nr(I.layout_symbol[\\\"text-pitch-alignment\\\"]),\\\"text-rotation-alignment\\\":new Nr(I.layout_symbol[\\\"text-rotation-alignment\\\"]),\\\"text-field\\\":new jr(I.layout_symbol[\\\"text-field\\\"]),\\\"text-font\\\":new jr(I.layout_symbol[\\\"text-font\\\"]),\\\"text-size\\\":new jr(I.layout_symbol[\\\"text-size\\\"]),\\\"text-max-width\\\":new jr(I.layout_symbol[\\\"text-max-width\\\"]),\\\"text-line-height\\\":new Nr(I.layout_symbol[\\\"text-line-height\\\"]),\\\"text-letter-spacing\\\":new jr(I.layout_symbol[\\\"text-letter-spacing\\\"]),\\\"text-justify\\\":new jr(I.layout_symbol[\\\"text-justify\\\"]),\\\"text-anchor\\\":new jr(I.layout_symbol[\\\"text-anchor\\\"]),\\\"text-max-angle\\\":new Nr(I.layout_symbol[\\\"text-max-angle\\\"]),\\\"text-rotate\\\":new jr(I.layout_symbol[\\\"text-rotate\\\"]),\\\"text-padding\\\":new Nr(I.layout_symbol[\\\"text-padding\\\"]),\\\"text-keep-upright\\\":new Nr(I.layout_symbol[\\\"text-keep-upright\\\"]),\\\"text-transform\\\":new jr(I.layout_symbol[\\\"text-transform\\\"]),\\\"text-offset\\\":new jr(I.layout_symbol[\\\"text-offset\\\"]),\\\"text-allow-overlap\\\":new Nr(I.layout_symbol[\\\"text-allow-overlap\\\"]),\\\"text-ignore-placement\\\":new Nr(I.layout_symbol[\\\"text-ignore-placement\\\"]),\\\"text-optional\\\":new Nr(I.layout_symbol[\\\"text-optional\\\"])}),Wa={paint:new qr({\\\"icon-opacity\\\":new jr(I.paint_symbol[\\\"icon-opacity\\\"]),\\\"icon-color\\\":new jr(I.paint_symbol[\\\"icon-color\\\"]),\\\"icon-halo-color\\\":new jr(I.paint_symbol[\\\"icon-halo-color\\\"]),\\\"icon-halo-width\\\":new jr(I.paint_symbol[\\\"icon-halo-width\\\"]),\\\"icon-halo-blur\\\":new jr(I.paint_symbol[\\\"icon-halo-blur\\\"]),\\\"icon-translate\\\":new Nr(I.paint_symbol[\\\"icon-translate\\\"]),\\\"icon-translate-anchor\\\":new Nr(I.paint_symbol[\\\"icon-translate-anchor\\\"]),\\\"text-opacity\\\":new jr(I.paint_symbol[\\\"text-opacity\\\"]),\\\"text-color\\\":new jr(I.paint_symbol[\\\"text-color\\\"]),\\\"text-halo-color\\\":new jr(I.paint_symbol[\\\"text-halo-color\\\"]),\\\"text-halo-width\\\":new jr(I.paint_symbol[\\\"text-halo-width\\\"]),\\\"text-halo-blur\\\":new jr(I.paint_symbol[\\\"text-halo-blur\\\"]),\\\"text-translate\\\":new Nr(I.paint_symbol[\\\"text-translate\\\"]),\\\"text-translate-anchor\\\":new Nr(I.paint_symbol[\\\"text-translate-anchor\\\"])}),layout:Ga},Ya=function(t){function e(e){t.call(this,e,Wa)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(e){t.prototype.recalculate.call(this,e),\\\"auto\\\"===this.layout.get(\\\"icon-rotation-alignment\\\")&&(\\\"line\\\"===this.layout.get(\\\"symbol-placement\\\")?this.layout._values[\\\"icon-rotation-alignment\\\"]=\\\"map\\\":this.layout._values[\\\"icon-rotation-alignment\\\"]=\\\"viewport\\\"),\\\"auto\\\"===this.layout.get(\\\"text-rotation-alignment\\\")&&(\\\"line\\\"===this.layout.get(\\\"symbol-placement\\\")?this.layout._values[\\\"text-rotation-alignment\\\"]=\\\"map\\\":this.layout._values[\\\"text-rotation-alignment\\\"]=\\\"viewport\\\"),\\\"auto\\\"===this.layout.get(\\\"text-pitch-alignment\\\")&&(this.layout._values[\\\"text-pitch-alignment\\\"]=this.layout.get(\\\"text-rotation-alignment\\\")),\\\"auto\\\"===this.layout.get(\\\"icon-pitch-alignment\\\")&&(this.layout._values[\\\"icon-pitch-alignment\\\"]=this.layout.get(\\\"icon-rotation-alignment\\\"))},e.prototype.getValueAndResolveTokens=function(t,e){var r,n=this.layout.get(t).evaluate(e),i=this._unevaluatedLayout._values[t];return i.isDataDriven()||_e(i.value)?n:(r=e.properties,n.replace(/{([^{}]+)}/g,function(t,e){return e in r?String(r[e]):\\\"\\\"}))},e.prototype.createBucket=function(t){return new Ha(t)},e.prototype.queryRadius=function(){return 0},e.prototype.queryIntersectsFeature=function(){return!1},e}(Hr),Xa={paint:new qr({\\\"background-color\\\":new Nr(I.paint_background[\\\"background-color\\\"]),\\\"background-pattern\\\":new Vr(I.paint_background[\\\"background-pattern\\\"]),\\\"background-opacity\\\":new Nr(I.paint_background[\\\"background-opacity\\\"])})},Za=function(t){function e(e){t.call(this,e,Xa)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Hr),$a={paint:new qr({\\\"raster-opacity\\\":new Nr(I.paint_raster[\\\"raster-opacity\\\"]),\\\"raster-hue-rotate\\\":new Nr(I.paint_raster[\\\"raster-hue-rotate\\\"]),\\\"raster-brightness-min\\\":new Nr(I.paint_raster[\\\"raster-brightness-min\\\"]),\\\"raster-brightness-max\\\":new Nr(I.paint_raster[\\\"raster-brightness-max\\\"]),\\\"raster-saturation\\\":new Nr(I.paint_raster[\\\"raster-saturation\\\"]),\\\"raster-contrast\\\":new Nr(I.paint_raster[\\\"raster-contrast\\\"]),\\\"raster-fade-duration\\\":new Nr(I.paint_raster[\\\"raster-fade-duration\\\"])})},Ja={circle:ni,heatmap:pi,hillshade:gi,fill:Ji,\\\"fill-extrusion\\\":aa,line:Sa,symbol:Ya,background:Za,raster:function(t){function e(e){t.call(this,e,$a)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Hr)},Ka=i(function(t,e){t.exports=function(){function t(t,e,r){r=r||{},this.w=t||64,this.h=e||64,this.autoResize=!!r.autoResize,this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0}function e(t,e,r){this.x=0,this.y=t,this.w=this.free=e,this.h=r}return t.prototype.pack=function(t,e){t=[].concat(t),e=e||{};for(var r,n,i,a,o=[],s=0;s<t.length;s++)if(r=t[s].w||t[s].width,n=t[s].h||t[s].height,i=t[s].id,r&&n){if(!(a=this.packOne(r,n,i)))continue;e.inPlace&&(t[s].x=a.x,t[s].y=a.y,t[s].id=a.id),o.push(a)}return this.shrink(),o},t.prototype.packOne=function(t,r,n){var i,a,o,s,l,c,u,f,h={freebin:-1,shelf:-1,waste:1/0},p=0;if(\\\"string\\\"==typeof n||\\\"number\\\"==typeof n){if(i=this.getBin(n))return this.ref(i),i;\\\"number\\\"==typeof n&&(this.maxId=Math.max(n,this.maxId))}else n=++this.maxId;for(s=0;s<this.freebins.length;s++){if(r===(i=this.freebins[s]).maxh&&t===i.maxw)return this.allocFreebin(s,t,r,n);r>i.maxh||t>i.maxw||r<=i.maxh&&t<=i.maxw&&(o=i.maxw*i.maxh-t*r)<h.waste&&(h.waste=o,h.freebin=s)}for(s=0;s<this.shelves.length;s++)if(p+=(a=this.shelves[s]).h,!(t>a.free)){if(r===a.h)return this.allocShelf(s,t,r,n);r>a.h||r<a.h&&(o=(a.h-r)*t)<h.waste&&(h.freebin=-1,h.waste=o,h.shelf=s)}return-1!==h.freebin?this.allocFreebin(h.freebin,t,r,n):-1!==h.shelf?this.allocShelf(h.shelf,t,r,n):r<=this.h-p&&t<=this.w?(a=new e(p,this.w,r),this.allocShelf(this.shelves.push(a)-1,t,r,n)):this.autoResize?(l=c=this.h,((u=f=this.w)<=l||t>u)&&(f=2*Math.max(t,u)),(l<u||r>l)&&(c=2*Math.max(r,l)),this.resize(f,c),this.packOne(t,r,n)):null},t.prototype.allocFreebin=function(t,e,r,n){var i=this.freebins.splice(t,1)[0];return i.id=n,i.w=e,i.h=r,i.refcount=0,this.bins[n]=i,this.ref(i),i},t.prototype.allocShelf=function(t,e,r,n){var i=this.shelves[t].alloc(e,r,n);return this.bins[n]=i,this.ref(i),i},t.prototype.shrink=function(){if(this.shelves.length>0){for(var t=0,e=0,r=0;r<this.shelves.length;r++){var n=this.shelves[r];e+=n.h,t=Math.max(n.w-n.free,t)}this.resize(t,e)}},t.prototype.getBin=function(t){return this.bins[t]},t.prototype.ref=function(t){if(1==++t.refcount){var e=t.h;this.stats[e]=1+(0|this.stats[e])}return t.refcount},t.prototype.unref=function(t){return 0===t.refcount?0:(0==--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},t.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var r=0;r<this.shelves.length;r++)this.shelves[r].resize(t);return!0},e.prototype.alloc=function(t,e,r){if(t>this.free||e>this.h)return null;var n=this.x;return this.x+=t,this.free-=t,new function(t,e,r,n,i,a,o){this.id=t,this.x=e,this.y=r,this.w=n,this.h=i,this.maxw=a||n,this.maxh=o||i,this.refcount=0}(r,n,this.y,t,e,t,this.h)},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t}()}),Qa=function(t,e){var r=e.pixelRatio;this.paddedRect=t,this.pixelRatio=r},to={tl:{configurable:!0},br:{configurable:!0},displaySize:{configurable:!0}};to.tl.get=function(){return[this.paddedRect.x+1,this.paddedRect.y+1]},to.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},to.displaySize.get=function(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(Qa.prototype,to);var eo=function(t){var e=new ui({width:0,height:0}),r={},n=new Ka(0,0,{autoResize:!0});for(var i in t){var a=t[i],o=n.packOne(a.data.width+2,a.data.height+2);e.resize({width:n.w,height:n.h}),ui.copy(a.data,e,{x:0,y:0},{x:o.x+1,y:o.y+1},a.data),r[i]=new Qa(o,a)}n.shrink(),e.resize({width:n.w,height:n.h}),this.image=e,this.positions=r};pr(\\\"ImagePosition\\\",Qa),pr(\\\"ImageAtlas\\\",eo);var ro=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<<s)-1,c=l>>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},no=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<<c)-1,f=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*g},io=ao;function ao(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}function oo(t){return t.type===ao.Bytes?t.readVarint()+t.pos:t.pos+1}function so(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function lo(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function co(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function uo(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function fo(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function ho(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function po(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function go(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function vo(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function mo(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function yo(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function xo(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function bo(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function _o(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}ao.Varint=0,ao.Fixed64=1,ao.Bytes=2,ao.Fixed32=5,ao.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),i=n>>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=xo(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=_o(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=xo(this.buf,this.pos)+4294967296*xo(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=xo(this.buf,this.pos)+4294967296*_o(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=ro(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ro(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return so(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return so(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return so(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return so(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return so(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return so(t,n,e);throw new Error(\\\"Expected varint not more than 10 bytes\\\")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,r){for(var n=\\\"\\\",i=e;i<r;){var a,o,s,l=t[i],c=null,u=l>239?4:l>223?3:l>191?2:1;if(i+u>r)break;1===u?l<128&&(c=l):2===u?128==(192&(a=t[i+1]))&&(c=(31&l)<<6|63&a)<=127&&(c=null):3===u?(a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&((c=(15&l)<<12|(63&a)<<6|63&o)<=2047||c>=55296&&c<=57343)&&(c=null)):4===u&&(a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&((c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||c>=1114112)&&(c=null)),null===c?(c=65533,u=1):c>65535&&(c-=65536,n+=String.fromCharCode(c>>>10&1023|55296),c=56320|1023&c),n+=String.fromCharCode(c),i+=u}return n}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var r=oo(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){var e=oo(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===ao.Varint)for(;this.buf[this.pos++]>127;);else if(e===ao.Bytes)this.pos=this.readVarint()+this.pos;else if(e===ao.Fixed32)this.pos+=4;else{if(e!==ao.Fixed64)throw new Error(\\\"Unimplemented type: \\\"+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),bo(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),bo(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),bo(this.buf,-1&t,this.pos),bo(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),bo(this.buf,-1&t,this.pos),bo(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error(\\\"Given varint doesn't fit into 10 bytes\\\");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a<e.length;a++){if((n=e.charCodeAt(a))>55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&lo(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),no(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),no(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&lo(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,ao.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,co,e)},writePackedSVarint:function(t,e){this.writeMessage(t,uo,e)},writePackedBoolean:function(t,e){this.writeMessage(t,po,e)},writePackedFloat:function(t,e){this.writeMessage(t,fo,e)},writePackedDouble:function(t,e){this.writeMessage(t,ho,e)},writePackedFixed32:function(t,e){this.writeMessage(t,go,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,vo,e)},writePackedFixed64:function(t,e){this.writeMessage(t,mo,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,yo,e)},writeBytesField:function(t,e){this.writeTag(t,ao.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,ao.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,ao.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,ao.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,ao.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,ao.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,ao.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,ao.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,ao.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,ao.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var wo=3;function ko(t,e,r){1===t&&r.readMessage(Mo,e)}function Mo(t,e,r){if(3===t){var n=r.readMessage(Ao,{}),i=n.id,a=n.bitmap,o=n.width,s=n.height,l=n.left,c=n.top,u=n.advance;e.push({id:i,bitmap:new ci({width:o+2*wo,height:s+2*wo},a),metrics:{width:o,height:s,left:l,top:c,advance:u}})}}function Ao(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}var To=wo,So=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.callbackID=0,g([\\\"receive\\\"],this),this.target.addEventListener(\\\"message\\\",this.receive,!1)};So.prototype.send=function(t,e,r,n){var i=r?this.mapId+\\\":\\\"+this.callbackID++:null;r&&(this.callbacks[i]=r);var a=[];this.target.postMessage({targetMapId:n,sourceMapId:this.mapId,type:t,id:String(i),data:gr(e,a)},a)},So.prototype.receive=function(t){var e,r=this,n=t.data,i=n.id;if(!n.targetMapId||this.mapId===n.targetMapId){var a=function(t,e){var n=[];r.target.postMessage({sourceMapId:r.mapId,type:\\\"<response>\\\",id:String(i),error:t?gr(t):null,data:gr(e,n)},n)};if(\\\"<response>\\\"===n.type)e=this.callbacks[n.id],delete this.callbacks[n.id],e&&n.error?e(vr(n.error)):e&&e(null,vr(n.data));else if(void 0!==n.id&&this.parent[n.type])this.parent[n.type](n.sourceMapId,vr(n.data),a);else if(void 0!==n.id&&this.parent.getWorkerSource){var o=n.type.split(\\\".\\\");this.parent.getWorkerSource(n.sourceMapId,o[0],o[1])[o[2]](vr(n.data),a)}else this.parent[n.type](vr(n.data))}},So.prototype.remove=function(){this.target.removeEventListener(\\\"message\\\",this.receive,!1)};var Eo=n(i(function(t,e){!function(t){function e(t,e,n){var i=r(256*t,256*(e=Math.pow(2,n)-e-1),n),a=r(256*(t+1),256*(e+1),n);return i[0]+\\\",\\\"+i[1]+\\\",\\\"+a[0]+\\\",\\\"+a[1]}function r(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return[t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}t.getURL=function(t,r,n,i,a,o){return o=o||{},t+\\\"?\\\"+[\\\"bbox=\\\"+e(n,i,a),\\\"format=\\\"+(o.format||\\\"image/png\\\"),\\\"service=\\\"+(o.service||\\\"WMS\\\"),\\\"version=\\\"+(o.version||\\\"1.1.1\\\"),\\\"request=\\\"+(o.request||\\\"GetMap\\\"),\\\"srs=\\\"+(o.srs||\\\"EPSG:3857\\\"),\\\"width=\\\"+(o.width||256),\\\"height=\\\"+(o.height||256),\\\"layers=\\\"+r].join(\\\"&\\\")},t.getTileBBox=e,t.getMercCoords=r,Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(e)})),Co=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=Oo(0,t,e,r)};Co.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Co.prototype.url=function(t,e){var r=Eo.getTileBBox(this.x,this.y,this.z),n=function(t,e,r){for(var n,i=\\\"\\\",a=t;a>0;a--)i+=(e&(n=1<<a-1)?1:0)+(r&n?2:0);return i}(this.z,this.x,this.y);return t[(this.x+this.y)%t.length].replace(\\\"{prefix}\\\",(this.x%16).toString(16)+(this.y%16).toString(16)).replace(\\\"{z}\\\",String(this.z)).replace(\\\"{x}\\\",String(this.x)).replace(\\\"{y}\\\",String(\\\"tms\\\"===e?Math.pow(2,this.z)-this.y-1:this.y)).replace(\\\"{quadkey}\\\",n).replace(\\\"{bbox-epsg-3857}\\\",r)};var Lo=function(t,e){this.wrap=t,this.canonical=e,this.key=Oo(t,e.z,e.x,e.y)},zo=function(t,e,r,n,i){this.overscaledZ=t,this.wrap=e,this.canonical=new Co(r,+n,+i),this.key=Oo(e,t,n,i)};function Oo(t,e,r,n){(t*=2)<0&&(t=-1*t-1);var i=1<<e;return 32*(i*i*t+i*n+r)+e}zo.prototype.equals=function(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)},zo.prototype.scaledTo=function(t){var e=this.canonical.z-t;return t>this.canonical.z?new zo(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new zo(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},zo.prototype.isChildOf=function(t){var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ<this.overscaledZ&&t.canonical.x===this.canonical.x>>e&&t.canonical.y===this.canonical.y>>e},zo.prototype.children=function(t){if(this.overscaledZ>=t)return[new zo(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new zo(e,this.wrap,e,r,n),new zo(e,this.wrap,e,r+1,n),new zo(e,this.wrap,e,r,n+1),new zo(e,this.wrap,e,r+1,n+1)]},zo.prototype.isLessThan=function(t){return this.wrap<t.wrap||!(this.wrap>t.wrap)&&(this.overscaledZ<t.overscaledZ||!(this.overscaledZ>t.overscaledZ)&&(this.canonical.x<t.canonical.x||!(this.canonical.x>t.canonical.x)&&this.canonical.y<t.canonical.y))},zo.prototype.wrapped=function(){return new zo(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)},zo.prototype.unwrapTo=function(t){return new zo(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)},zo.prototype.overscaleFactor=function(){return Math.pow(2,this.overscaledZ-this.canonical.z)},zo.prototype.toUnwrapped=function(){return new Lo(this.wrap,this.canonical)},zo.prototype.toString=function(){return this.overscaledZ+\\\"/\\\"+this.canonical.x+\\\"/\\\"+this.canonical.y},zo.prototype.toCoordinate=function(){return new s(this.canonical.x+Math.pow(2,this.wrap),this.canonical.y,this.canonical.z)},pr(\\\"CanonicalTileID\\\",Co),pr(\\\"OverscaledTileID\\\",zo,{omit:[\\\"posMatrix\\\"]});var Io=function(t,e,r){if(t<=0)throw new RangeError(\\\"Level must have positive dimension\\\");this.dim=t,this.border=e,this.stride=this.dim+2*this.border,this.data=r||new Int32Array((this.dim+2*this.border)*(this.dim+2*this.border))};Io.prototype.set=function(t,e,r){this.data[this._idx(t,e)]=r+65536},Io.prototype.get=function(t,e){return this.data[this._idx(t,e)]-65536},Io.prototype._idx=function(t,e){if(t<-this.border||t>=this.dim+this.border||e<-this.border||e>=this.dim+this.border)throw new RangeError(\\\"out of range source coordinates for DEM data\\\");return(e+this.border)*this.stride+(t+this.border)},pr(\\\"Level\\\",Io);var Po=function(t,e,r){this.uid=t,this.scale=e||1,this.level=r||new Io(256,512),this.loaded=!!r};Po.prototype.loadFromImage=function(t,e){if(t.height!==t.width)throw new RangeError(\\\"DEM tiles must be square\\\");if(e&&\\\"mapbox\\\"!==e&&\\\"terrarium\\\"!==e)return _('\\\"'+e+'\\\" is not a valid encoding type. Valid types include \\\"mapbox\\\" and \\\"terrarium\\\".');var r=this.level=new Io(t.width,t.width/2),n=t.data;this._unpackData(r,n,e||\\\"mapbox\\\");for(var i=0;i<r.dim;i++)r.set(-1,i,r.get(0,i)),r.set(r.dim,i,r.get(r.dim-1,i)),r.set(i,-1,r.get(i,0)),r.set(i,r.dim,r.get(i,r.dim-1));r.set(-1,-1,r.get(0,0)),r.set(r.dim,-1,r.get(r.dim-1,0)),r.set(-1,r.dim,r.get(0,r.dim-1)),r.set(r.dim,r.dim,r.get(r.dim-1,r.dim-1)),this.loaded=!0},Po.prototype._unpackMapbox=function(t,e,r){return(256*t*256+256*e+r)/10-1e4},Po.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Po.prototype._unpackData=function(t,e,r){for(var n={mapbox:this._unpackMapbox,terrarium:this._unpackTerrarium}[r],i=0;i<t.dim;i++)for(var a=0;a<t.dim;a++){var o=4*(i*t.dim+a);t.set(a,i,this.scale*n(e[o],e[o+1],e[o+2]))}},Po.prototype.getPixels=function(){return new ui({width:this.level.dim+2*this.level.border,height:this.level.dim+2*this.level.border},new Uint8Array(this.level.data.buffer))},Po.prototype.backfillBorder=function(t,e,r){var n=this.level,i=t.level;if(n.dim!==i.dim)throw new Error(\\\"level mismatch (dem dimension)\\\");var a=e*n.dim,o=e*n.dim+n.dim,s=r*n.dim,l=r*n.dim+n.dim;switch(e){case-1:a=o-1;break;case 1:o=a+1}switch(r){case-1:s=l-1;break;case 1:l=s+1}for(var c=h(a,-n.border,n.dim+n.border),u=h(o,-n.border,n.dim+n.border),f=h(s,-n.border,n.dim+n.border),p=h(l,-n.border,n.dim+n.border),d=-e*n.dim,g=-r*n.dim,v=f;v<p;v++)for(var m=c;m<u;m++)n.set(m,v,i.get(m+d,v+g))},pr(\\\"DEMData\\\",Po);var Do=function(t){this._stringToNumber={},this._numberToString=[];for(var e=0;e<t.length;e++){var r=t[e];this._stringToNumber[r]=e,this._numberToString[e]=r}};Do.prototype.encode=function(t){return this._stringToNumber[t]},Do.prototype.decode=function(t){return this._numberToString[t]};var Ro=function(t,e,r,n){this.type=\\\"Feature\\\",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,null!=t.id&&(this.id=t.id)},Bo={geometry:{configurable:!0}};Bo.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},Bo.geometry.set=function(t){this._geometry=t},Ro.prototype.toJSON=function(){var t={geometry:this.geometry};for(var e in this)\\\"_geometry\\\"!==e&&\\\"_vectorTileFeature\\\"!==e&&(t[e]=this[e]);return t},Object.defineProperties(Ro.prototype,Bo);var Fo=function(t,e,r){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=e||new lr(Dn,16,0),this.featureIndexArray=r||new Mn};function No(t,e){return e-t}Fo.prototype.insert=function(t,e,r,n,i){var a=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(r,n,i);for(var o=0;o<e.length;o++){for(var s=e[o],l=[1/0,1/0,-1/0,-1/0],c=0;c<s.length;c++){var u=s[c];l[0]=Math.min(l[0],u.x),l[1]=Math.min(l[1],u.y),l[2]=Math.max(l[2],u.x),l[3]=Math.max(l[3],u.y)}l[0]<Dn&&l[1]<Dn&&l[2]>=0&&l[3]>=0&&this.grid.insert(a,l[0],l[1],l[2],l[3])}},Fo.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new ga.VectorTile(new io(this.rawTileData)).layers,this.sourceLayerCoder=new Do(this.vtLayers?Object.keys(this.vtLayers).sort():[\\\"_geojsonTileLayer\\\"])),this.vtLayers},Fo.prototype.query=function(t,e){var r=this;this.loadVTLayers();for(var n=t.params||{},i=Dn/t.tileSize/t.scale,a=Re(n.filter),o=t.queryGeometry,s=t.queryPadding*i,l=1/0,c=1/0,u=-1/0,f=-1/0,h=0;h<o.length;h++)for(var p=o[h],d=0;d<p.length;d++){var g=p[d];l=Math.min(l,g.x),c=Math.min(c,g.y),u=Math.max(u,g.x),f=Math.max(f,g.y)}var v=this.grid.query(l-s,c-s,u+s,f+s);v.sort(No);for(var m,y={},x=function(s){var l=v[s];if(l!==m){m=l;var c=r.featureIndexArray.get(l),u=null;r.loadMatchingFeature(y,c.bucketIndex,c.sourceLayerIndex,c.featureIndex,a,n.layers,e,function(e,n){return u||(u=Bn(e)),n.queryIntersectsFeature(o,e,u,r.z,t.transform,i,t.posMatrix)})}},b=0;b<v.length;b++)x(b);return y},Fo.prototype.loadMatchingFeature=function(t,e,r,n,i,a,o,s){var l=this.bucketLayerIDs[e];if(!a||function(t,e){for(var r=0;r<t.length;r++)if(e.indexOf(t[r])>=0)return!0;return!1}(a,l)){var c=this.sourceLayerCoder.decode(r),u=this.vtLayers[c].feature(n);if(i(new Lr(this.tileID.overscaledZ),u))for(var f=0;f<l.length;f++){var h=l[f];if(!(a&&a.indexOf(h)<0)){var p=o[h];if(p&&(!s||s(u,p))){var d=new Ro(u,this.z,this.x,this.y);d.layer=p.serialize();var g=t[h];void 0===g&&(g=t[h]=[]),g.push({featureIndex:n,feature:d})}}}}},Fo.prototype.lookupSymbolFeatures=function(t,e,r,n,i,a){var o={};this.loadVTLayers();for(var s=Re(n),l=0,c=t;l<c.length;l+=1){var u=c[l];this.loadMatchingFeature(o,e,r,u,s,i,a)}return o},Fo.prototype.hasLayer=function(t){for(var e=0,r=this.bucketLayerIDs;e<r.length;e+=1)for(var n=0,i=r[e];n<i.length;n+=1)if(t===i[n])return!0;return!1},pr(\\\"FeatureIndex\\\",Fo,{omit:[\\\"rawTileData\\\",\\\"sourceLayerCoder\\\"]});var jo={horizontal:1,vertical:2,horizontalOnly:3},Vo={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Uo={};function qo(t,e,r,n){var i=Math.pow(t-e,2);return n?t<e?i/2:2*i:i+Math.abs(r)*r}function Ho(t,e){var r=0;return 10===t&&(r-=1e4),40!==t&&65288!==t||(r+=50),41!==e&&65289!==e||(r+=50),r}function Go(t,e,r,n,i,a){for(var o=null,s=qo(e,r,i,a),l=0,c=n;l<c.length;l+=1){var u=c[l],f=qo(e-u.x,r,i,a)+u.badness;f<=s&&(o=u,s=f)}return{index:t,x:e,priorBreak:o,badness:s}}function Wo(t,e,r,n){if(!r)return[];if(!t)return[];for(var i,a=[],o=function(t,e,r,n){for(var i=0,a=0;a<t.length;a++){var o=n[t.charCodeAt(a)];o&&(i+=o.metrics.advance+e)}return i/Math.max(1,Math.ceil(i/r))}(t,e,r,n),s=0,l=0;l<t.length;l++){var c=t.charCodeAt(l),u=n[c];u&&!Vo[c]&&(s+=u.metrics.advance+e),l<t.length-1&&(Uo[c]||!((i=c)<11904)&&(yr[\\\"Bopomofo Extended\\\"](i)||yr.Bopomofo(i)||yr[\\\"CJK Compatibility Forms\\\"](i)||yr[\\\"CJK Compatibility Ideographs\\\"](i)||yr[\\\"CJK Compatibility\\\"](i)||yr[\\\"CJK Radicals Supplement\\\"](i)||yr[\\\"CJK Strokes\\\"](i)||yr[\\\"CJK Symbols and Punctuation\\\"](i)||yr[\\\"CJK Unified Ideographs Extension A\\\"](i)||yr[\\\"CJK Unified Ideographs\\\"](i)||yr[\\\"Enclosed CJK Letters and Months\\\"](i)||yr[\\\"Halfwidth and Fullwidth Forms\\\"](i)||yr.Hiragana(i)||yr[\\\"Ideographic Description Characters\\\"](i)||yr[\\\"Kangxi Radicals\\\"](i)||yr[\\\"Katakana Phonetic Extensions\\\"](i)||yr.Katakana(i)||yr[\\\"Vertical Forms\\\"](i)||yr[\\\"Yi Radicals\\\"](i)||yr[\\\"Yi Syllables\\\"](i)))&&a.push(Go(l+1,s,o,a,Ho(c,t.charCodeAt(l+1)),!1))}return function t(e){return e?t(e.priorBreak).concat(e.index):[]}(Go(t.length,s,o,a,0,!0))}function Yo(t){var e=.5,r=.5;switch(t){case\\\"right\\\":case\\\"top-right\\\":case\\\"bottom-right\\\":e=1;break;case\\\"left\\\":case\\\"top-left\\\":case\\\"bottom-left\\\":e=0}switch(t){case\\\"bottom\\\":case\\\"bottom-right\\\":case\\\"bottom-left\\\":r=1;break;case\\\"top\\\":case\\\"top-right\\\":case\\\"top-left\\\":r=0}return{horizontalAlign:e,verticalAlign:r}}function Xo(t,e,r,n,i){if(i){var a=e[t[n].glyph];if(a)for(var o=a.metrics.advance,s=(t[n].x+o)*i,l=r;l<=n;l++)t[l].x-=s}}Uo[10]=!0,Uo[32]=!0,Uo[38]=!0,Uo[40]=!0,Uo[41]=!0,Uo[43]=!0,Uo[45]=!0,Uo[47]=!0,Uo[173]=!0,Uo[183]=!0,Uo[8203]=!0,Uo[8208]=!0,Uo[8211]=!0,Uo[8231]=!0,e.commonjsGlobal=r,e.unwrapExports=n,e.createCommonjsModule=i,e.default=self,e.default$1=l,e.getJSON=function(t,e){var r=T(t);return r.setRequestHeader(\\\"Accept\\\",\\\"application/json\\\"),r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var n;try{n=JSON.parse(r.response)}catch(t){return e(t)}e(null,n)}else 401===r.status&&t.url.match(/mapbox.com/)?e(new A(r.statusText+\\\": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens\\\",r.status,t.url)):e(new A(r.statusText,r.status,t.url))},r.send(),r},e.getImage=function(t,e){return S(t,function(t,r){if(t)e(t);else if(r){var n=new self.Image,i=self.URL||self.webkitURL;n.onload=function(){e(null,n),i.revokeObjectURL(n.src)};var a=new self.Blob([new Uint8Array(r.data)],{type:\\\"image/png\\\"});n.cacheControl=r.cacheControl,n.expires=r.expires,n.src=r.data.byteLength?i.createObjectURL(a):\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\\\"}})},e.ResourceType=M,e.RGBAImage=ui,e.default$2=Ka,e.ImagePosition=Qa,e.getArrayBuffer=S,e.default$3=function(t){return new io(t).readFields(ko,[])},e.default$4=yr,e.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var n=t.length,i=new Array(t.length),a=null;t.forEach(function(t,o){e(t,function(t,e){t&&(a=t),i[o]=e,0==--n&&r(a,i)})})},e.AlphaImage=ci,e.default$5=I,e.endsWith=v,e.extend=p,e.sphericalToCartesian=function(t){var e=t[0],r=t[1],n=t[2];return r+=90,r*=Math.PI/180,n*=Math.PI/180,{x:e*Math.cos(r)*Math.sin(n),y:e*Math.sin(r)*Math.sin(n),z:e*Math.cos(n)}},e.Evented=O,e.validateStyle=nr,e.validateLight=ir,e.emitValidationErrors=sr,e.default$6=tt,e.number=wt,e.Properties=qr,e.Transitionable=Ir,e.Transitioning=Dr,e.PossiblyEvaluated=Fr,e.DataConstantProperty=Nr,e.warnOnce=_,e.uniqueId=function(){return d++},e.default$7=So,e.pick=function(t,e){for(var r={},n=0;n<e.length;n++){var i=e[n];i in t&&(r[i]=t[i])}return r},e.wrap=function(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i},e.clamp=h,e.Event=L,e.ErrorEvent=z,e.OverscaledTileID=zo,e.default$8=Dn,e.createLayout=Xr,e.getCoordinatesCenter=function(t){for(var e=1/0,r=1/0,n=-1/0,i=-1/0,a=0;a<t.length;a++)e=Math.min(e,t[a].column),r=Math.min(r,t[a].row),n=Math.max(n,t[a].column),i=Math.max(i,t[a].row);var o=n-e,l=i-r,c=Math.max(o,l),u=Math.max(0,Math.floor(-Math.log(c)/Math.LN2));return new s((e+n)/2,(r+i)/2,0).zoomTo(u)},e.CanonicalTileID=Co,e.RasterBoundsArray=Jr,e.getVideo=function(t,e){var r,n,i=self.document.createElement(\\\"video\\\");i.onloadstart=function(){e(null,i)};for(var a=0;a<t.length;a++){var o=self.document.createElement(\\\"source\\\");r=t[a],n=void 0,(n=self.document.createElement(\\\"a\\\")).href=r,(n.protocol!==self.document.location.protocol||n.host!==self.document.location.host)&&(i.crossOrigin=\\\"Anonymous\\\"),o.src=t[a],i.appendChild(o)}return i},e.default$9=P,e.bindAll=g,e.default$10=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n<e.length;n++)if(!t(e[n],r[n]))return!1;return!0}if(\\\"object\\\"==typeof e&&null!==e&&null!==r){if(\\\"object\\\"!=typeof r)return!1;if(Object.keys(e).length!==Object.keys(r).length)return!1;for(var i in e)if(!t(e[i],r[i]))return!1;return!0}return e===r},e.parseCacheControl=function(t){var e={};if(t.replace(/(?:^|(?:\\\\s*\\\\,\\\\s*))([^\\\\x00-\\\\x20\\\\(\\\\)<>@\\\\,;\\\\:\\\\\\\\\\\"\\\\/\\\\[\\\\]\\\\?\\\\=\\\\{\\\\}\\\\x7F]+)(?:\\\\=(?:([^\\\\x00-\\\\x20\\\\(\\\\)<>@\\\\,;\\\\:\\\\\\\\\\\"\\\\/\\\\[\\\\]\\\\?\\\\=\\\\{\\\\}\\\\x7F]+)|(?:\\\\\\\"((?:[^\\\"\\\\\\\\]|\\\\\\\\.)*)\\\\\\\")))?/g,function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),\\\"\\\"}),e[\\\"max-age\\\"]){var r=parseInt(e[\\\"max-age\\\"],10);isNaN(r)?delete e[\\\"max-age\\\"]:e[\\\"max-age\\\"]=r}return e},e.default$11=Fo,e.default$12=Ro,e.default$13=Re,e.default$14=Ha,e.CollisionBoxArray=vn,e.default$15=Tn,e.TriangleIndexArray=fn,e.default$16=Lr,e.default$17=s,e.keysDifference=function(t,e){var r=[];for(var n in t)n in e||r.push(n);return r},e.default$18=[\\\"type\\\",\\\"source\\\",\\\"source-layer\\\",\\\"minzoom\\\",\\\"maxzoom\\\",\\\"filter\\\",\\\"layout\\\"],e.mat4=ri,e.vec4=ei,e.getSizeData=Ba,e.evaluateSizeForFeature=function(t,e,r){var n=e;return\\\"source\\\"===t.functionType?r.lowerSize/10:\\\"composite\\\"===t.functionType?wt(r.lowerSize/10,r.upperSize/10,n.uSizeT):n.uSize},e.evaluateSizeForZoom=function(t,e,r){if(\\\"constant\\\"===t.functionType)return{uSizeT:0,uSize:t.layoutSize};if(\\\"source\\\"===t.functionType)return{uSizeT:0,uSize:0};if(\\\"camera\\\"===t.functionType){var n=t.propertyValue,i=t.zoomRange,a=t.sizeRange,o=h(Se(n,r.specification).interpolationFactor(e,i.min,i.max),0,1);return{uSizeT:0,uSize:a.min+o*(a.max-a.min)}}var s=t.propertyValue,l=t.zoomRange;return{uSizeT:h(Se(s,r.specification).interpolationFactor(e,l.min,l.max),0,1),uSize:0}},e.addDynamicAttributes=Va,e.default$19=Wa,e.WritingMode=jo,e.multiPolygonIntersectsBufferedPoint=jn,e.multiPolygonIntersectsMultiPolygon=Vn,e.multiPolygonIntersectsBufferedMultiLine=Un,e.polygonIntersectsPolygon=function(t,e){for(var r=0;r<t.length;r++)if(Zn(e,t[r]))return!0;for(var n=0;n<e.length;n++)if(Zn(t,e[n]))return!0;return!!Hn(t,e)},e.distToSegmentSquared=Yn,e.default$20=ti,e.default$21=Hr,e.default$22=function(t){return new Ja[t.type](t)},e.clone=x,e.filterObject=y,e.mapObject=m,e.registerForPluginAvailability=function(t){return Tr?t({pluginURL:Tr,completionCallback:Mr}):Er.once(\\\"pluginAvailable\\\",t),t},e.evented=Er,e.default$23=mr,e.default$24=On,e.PosArray=$r,e.UnwrappedTileID=Lo,e.ease=f,e.bezier=u,e.setRTLTextPlugin=function(t,e){if(Ar)throw new Error(\\\"setRTLTextPlugin cannot be called multiple times.\\\");Ar=!0,Tr=t,Mr=function(t){t?(Ar=!1,Tr=null,e&&e(t)):Sr=!0},Er.fire(new L(\\\"pluginAvailable\\\",{pluginURL:Tr,completionCallback:Mr}))},e.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},e.default$25=Ra,e.register=pr,e.GLYPH_PBF_BORDER=To,e.shapeText=function(t,e,r,n,i,a,o,s,l,c){var u=t.trim();c===jo.vertical&&(u=function(t){for(var e=\\\"\\\",r=0;r<t.length;r++){var n=t.charCodeAt(r+1)||null,i=t.charCodeAt(r-1)||null;n&&wr(n)&&!Da[t[r+1]]||i&&wr(i)&&!Da[t[r-1]]||!Da[t[r]]?e+=t[r]:e+=Da[t[r]]}return e}(u));var f=[],h={positionedGlyphs:f,text:u,top:s[1],bottom:s[1],left:s[0],right:s[0],writingMode:c},p=Cr.processBidirectionalText;return function(t,e,r,n,i,a,o,s,l){for(var c=0,u=-17,f=0,h=t.positionedGlyphs,p=\\\"right\\\"===a?1:\\\"left\\\"===a?0:.5,d=0,g=r;d<g.length;d+=1){var v=g[d];if((v=v.trim()).length){for(var m=h.length,y=0;y<v.length;y++){var x=v.charCodeAt(y),b=e[x];b&&(_r(x)&&o!==jo.horizontal?(h.push({glyph:x,x:c,y:0,vertical:!0}),c+=l+s):(h.push({glyph:x,x:c,y:u,vertical:!1}),c+=b.metrics.advance+s))}if(h.length!==m){var _=c-s;f=Math.max(_,f),Xo(h,e,m,h.length-1,p)}c=0,u+=n}else u+=n}var w=Yo(i),k=w.horizontalAlign,M=w.verticalAlign;!function(t,e,r,n,i,a,o){for(var s=(e-r)*i,l=(-n*o+.5)*a,c=0;c<t.length;c++)t[c].x+=s,t[c].y+=l}(h,p,k,M,f,n,r.length);var A=r.length*n;t.top+=-M*A,t.bottom=t.top+A,t.left+=-k*f,t.right=t.left+f}(h,e,p?p(u,Wo(u,o,r,e)):function(t,e){for(var r=[],n=0,i=0,a=e;i<a.length;i+=1){var o=a[i];r.push(t.substring(n,o)),n=o}return n<t.length&&r.push(t.substring(n,t.length)),r}(u,Wo(u,o,r,e)),n,i,a,c,o,l),!!f.length&&h},e.shapeIcon=function(t,e,r){var n=Yo(r),i=n.horizontalAlign,a=n.verticalAlign,o=e[0],s=e[1],l=o-t.displaySize[0]*i,c=l+t.displaySize[0],u=s-t.displaySize[1]*a;return{image:t,top:u,bottom:u+t.displaySize[1],left:l,right:c}},e.allowsVerticalWritingMode=xr,e.allowsLetterSpacing=function(t){for(var e=0,r=t;e<r.length;e+=1)if(!br(r[e].charCodeAt(0)))return!1;return!0},e.default$26=Yi,e.default$27=Do,e.default$28=eo,e.default$29=ga,e.default$30=io,e.default$31=Po,e.__moduleExports=ga,e.default$32=l,e.__moduleExports$1=io,e.plugin=Cr}),i(0,function(t){function e(t){var r=typeof t;if(\\\"number\\\"===r||\\\"boolean\\\"===r||\\\"string\\\"===r||null==t)return JSON.stringify(t);if(Array.isArray(t)){for(var n=\\\"[\\\",i=0,a=t;i<a.length;i+=1)n+=e(a[i])+\\\",\\\";return n+\\\"]\\\"}for(var o=Object.keys(t).sort(),s=\\\"{\\\",l=0;l<o.length;l++)s+=JSON.stringify(o[l])+\\\":\\\"+e(t[o[l]])+\\\",\\\";return s+\\\"}\\\"}function r(r){for(var n=\\\"\\\",i=0,a=t.default$18;i<a.length;i+=1)n+=\\\"/\\\"+e(r[a[i]]);return n}var n=function(t){t&&this.replace(t)};function i(t,e,r,n,i){if(void 0===e.segment)return!0;for(var a=e,o=e.segment+1,s=0;s>-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],c=0;s<r/2;){var u=t[o-1],f=t[o],h=t[o+1];if(!h)return!1;var p=u.angleTo(f)-f.angleTo(h);for(p=Math.abs((p+3*Math.PI)%(2*Math.PI)-Math.PI),l.push({distance:s,angleDelta:p}),c+=p;s-l[0].distance>n;)c-=l.shift().angleDelta;if(c>i)return!1;o++,s+=f.dist(h)}return!0}function a(e,r,n,a,o,s,l,c,u){var f=a?.6*s*l:0,h=Math.max(a?a.right-a.left:0,o?o.right-o.left:0),p=0===e[0].x||e[0].x===u||0===e[0].y||e[0].y===u;return r-h*l<r/4&&(r=h*l+r/4),function e(r,n,a,o,s,l,c,u,f){for(var h=l/2,p=0,d=0;d<r.length-1;d++)p+=r[d].dist(r[d+1]);for(var g=0,v=n-a,m=[],y=0;y<r.length-1;y++){for(var x=r[y],b=r[y+1],_=x.dist(b),w=b.angleTo(x);v+a<g+_;){var k=((v+=a)-g)/_,M=t.number(x.x,b.x,k),A=t.number(x.y,b.y,k);if(M>=0&&M<f&&A>=0&&A<f&&v-h>=0&&v+h<=p){var T=new t.default$25(M,A,w,y);T._round(),o&&!i(r,T,l,o,s)||m.push(T)}}g+=_}return u||m.length||c||(m=e(r,g/2,a,o,s,l,c,!0,f)),m}(e,p?r/2*c%r:(h/2+2*s)*l*c%r,r,f,n,h*l,p,!1,u)}n.prototype.replace=function(t){this._layerConfigs={},this._layers={},this.update(t,[])},n.prototype.update=function(e,n){for(var i=this,a=0,o=e;a<o.length;a+=1){var s=o[a];i._layerConfigs[s.id]=s;var l=i._layers[s.id]=t.default$22(s);l._featureFilter=t.default$13(l.filter)}for(var c=0,u=n;c<u.length;c+=1){var f=u[c];delete i._layerConfigs[f],delete i._layers[f]}this.familiesBySource={};for(var h=0,p=function(t){for(var e={},n=0;n<t.length;n++){var i=r(t[n]),a=e[i];a||(a=e[i]=[]),a.push(t[n])}var o=[];for(var s in e)o.push(e[s]);return o}(t.values(this._layerConfigs));h<p.length;h+=1){var d=p[h].map(function(t){return i._layers[t.id]}),g=d[0];if(\\\"none\\\"!==g.visibility){var v=g.source||\\\"\\\",m=i.familiesBySource[v];m||(m=i.familiesBySource[v]={});var y=g.sourceLayer||\\\"_geojsonTileLayer\\\",x=m[y];x||(x=m[y]=[]),x.push(d)}}};var o=function(){this.opacity=0,this.targetOpacity=0,this.time=0};o.prototype.clone=function(){var t=new o;return t.opacity=this.opacity,t.targetOpacity=this.targetOpacity,t.time=this.time,t},t.register(\\\"OpacityState\\\",o);var s=function(t,e,r,n,i,a,o,s,l,c,u){var f=o.top*s-l,h=o.bottom*s+l,p=o.left*s-l,d=o.right*s+l;if(this.boxStartIndex=t.length,c){var g=h-f,v=d-p;g>0&&(g=Math.max(10*s,g),this._addLineCollisionCircles(t,e,r,r.segment,v,g,n,i,a,u))}else t.emplaceBack(r.x,r.y,p,f,d,h,n,i,a,0,0);this.boxEndIndex=t.length};s.prototype._addLineCollisionCircles=function(t,e,r,n,i,a,o,s,l,c){var u=a/2,f=Math.floor(i/u),h=1+.4*Math.log(c)/Math.LN2,p=Math.floor(f*h/2),d=-a/2,g=r,v=n+1,m=d,y=-i/2,x=y-i/4;do{if(--v<0){if(m>y)return;v=0;break}m-=e[v].dist(g),g=e[v]}while(m>x);for(var b=e[v].dist(e[v+1]),_=-p;_<f+p;_++){var w=_*u,k=y+w;if(w<0&&(k+=w),w>i&&(k+=w-i),!(k<m)){for(;m+b<k;){if(m+=b,++v+1>=e.length)return;b=e[v].dist(e[v+1])}var M=k-m,A=e[v],T=e[v+1].sub(A)._unit()._mult(M)._add(A)._round(),S=Math.abs(k-d)<u?0:.8*(k-d);t.emplaceBack(T.x,T.y,-a/2,-a/2,a/2,a/2,o,s,l,a/2,S)}}};var l=u,c=u;function u(t,e){if(!(this instanceof u))return new u(t,e);if(this.data=t||[],this.length=this.data.length,this.compare=e||f,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)}function f(t,e){return t<e?-1:t>e?1:0}function h(e,r,n){void 0===r&&(r=1),void 0===n&&(n=!1);for(var i=1/0,a=1/0,o=-1/0,s=-1/0,c=e[0],u=0;u<c.length;u++){var f=c[u];(!u||f.x<i)&&(i=f.x),(!u||f.y<a)&&(a=f.y),(!u||f.x>o)&&(o=f.x),(!u||f.y>s)&&(s=f.y)}var h=o-i,g=s-a,v=Math.min(h,g),m=v/2,y=new l(null,p);if(0===v)return new t.default$1(i,a);for(var x=i;x<o;x+=v)for(var b=a;b<s;b+=v)y.push(new d(x+m,b+m,m,e));for(var _=function(t){for(var e=0,r=0,n=0,i=t[0],a=0,o=i.length,s=o-1;a<o;s=a++){var l=i[a],c=i[s],u=l.x*c.y-c.x*l.y;r+=(l.x+c.x)*u,n+=(l.y+c.y)*u,e+=3*u}return new d(r/e,n/e,0,t)}(e),w=y.length;y.length;){var k=y.pop();(k.d>_.d||!_.d)&&(_=k,n&&console.log(\\\"found best %d after %d probes\\\",Math.round(1e4*k.d)/1e4,w)),k.max-_.d<=r||(m=k.h/2,y.push(new d(k.p.x-m,k.p.y-m,m,e)),y.push(new d(k.p.x+m,k.p.y-m,m,e)),y.push(new d(k.p.x-m,k.p.y+m,m,e)),y.push(new d(k.p.x+m,k.p.y+m,m,e)),w+=4)}return n&&(console.log(\\\"num probes: \\\"+w),console.log(\\\"best distance: \\\"+_.d)),_.p}function p(t,e){return e.max-t.max}function d(e,r,n,i){this.p=new t.default$1(e,r),this.h=n,this.d=function(e,r){for(var n=!1,i=1/0,a=0;a<r.length;a++)for(var o=r[a],s=0,l=o.length,c=l-1;s<l;c=s++){var u=o[s],f=o[c];u.y>e.y!=f.y>e.y&&e.x<(f.x-u.x)*(e.y-u.y)/(f.y-u.y)+u.x&&(n=!n),i=Math.min(i,t.distToSegmentSquared(e,u,f))}return(n?1:-1)*Math.sqrt(i)}(this.p,i),this.max=this.d+this.h*Math.SQRT2}function g(e,r,n,i,a,o){e.createArrays(),e.symbolInstances=[];var s=512*e.overscaling;e.tilePixelRatio=t.default$8/s,e.compareText={},e.iconsNeedLinear=!1;var l=e.layers[0].layout,c=e.layers[0]._unevaluatedLayout._values,u={};if(\\\"composite\\\"===e.textSizeData.functionType){var f=e.textSizeData.zoomRange,h=f.min,p=f.max;u.compositeTextSizes=[c[\\\"text-size\\\"].possiblyEvaluate(new t.default$16(h)),c[\\\"text-size\\\"].possiblyEvaluate(new t.default$16(p))]}if(\\\"composite\\\"===e.iconSizeData.functionType){var d=e.iconSizeData.zoomRange,g=d.min,m=d.max;u.compositeIconSizes=[c[\\\"icon-size\\\"].possiblyEvaluate(new t.default$16(g)),c[\\\"icon-size\\\"].possiblyEvaluate(new t.default$16(m))]}u.layoutTextSize=c[\\\"text-size\\\"].possiblyEvaluate(new t.default$16(e.zoom+1)),u.layoutIconSize=c[\\\"icon-size\\\"].possiblyEvaluate(new t.default$16(e.zoom+1)),u.textMaxSize=c[\\\"text-size\\\"].possiblyEvaluate(new t.default$16(18));for(var y=24*l.get(\\\"text-line-height\\\"),x=\\\"map\\\"===l.get(\\\"text-rotation-alignment\\\")&&\\\"line\\\"===l.get(\\\"symbol-placement\\\"),b=l.get(\\\"text-keep-upright\\\"),_=0,w=e.features;_<w.length;_+=1){var k=w[_],M=l.get(\\\"text-font\\\").evaluate(k).join(\\\",\\\"),A=r[M]||{},T=n[M]||{},S={},E=k.text;if(E){var C=l.get(\\\"text-offset\\\").evaluate(k).map(function(t){return 24*t}),L=24*l.get(\\\"text-letter-spacing\\\").evaluate(k),z=t.allowsLetterSpacing(E)?L:0,O=l.get(\\\"text-anchor\\\").evaluate(k),I=l.get(\\\"text-justify\\\").evaluate(k),P=\\\"line\\\"!==l.get(\\\"symbol-placement\\\")?24*l.get(\\\"text-max-width\\\").evaluate(k):0;S.horizontal=t.shapeText(E,A,P,y,O,I,z,C,24,t.WritingMode.horizontal),t.allowsVerticalWritingMode(E)&&x&&b&&(S.vertical=t.shapeText(E,A,P,y,O,I,z,C,24,t.WritingMode.vertical))}var D=void 0;if(k.icon){var R=i[k.icon];R&&(D=t.shapeIcon(a[k.icon],l.get(\\\"icon-offset\\\").evaluate(k),l.get(\\\"icon-anchor\\\").evaluate(k)),void 0===e.sdfIcons?e.sdfIcons=R.sdf:e.sdfIcons!==R.sdf&&t.warnOnce(\\\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\\\"),R.pixelRatio!==e.pixelRatio?e.iconsNeedLinear=!0:0!==l.get(\\\"icon-rotate\\\").constantOr(1)&&(e.iconsNeedLinear=!0))}(S.horizontal||D)&&v(e,k,S,D,T,u)}o&&e.generateCollisionDebugBuffers()}function v(e,r,n,i,l,c){var u=c.layoutTextSize.evaluate(r),f=c.layoutIconSize.evaluate(r),p=c.textMaxSize.evaluate(r);void 0===p&&(p=u);var d=e.layers[0].layout,g=d.get(\\\"text-offset\\\").evaluate(r),v=d.get(\\\"icon-offset\\\").evaluate(r),x=u/24,b=e.tilePixelRatio*x,_=e.tilePixelRatio*p/24,w=e.tilePixelRatio*f,k=e.tilePixelRatio*d.get(\\\"symbol-spacing\\\"),M=d.get(\\\"text-padding\\\")*e.tilePixelRatio,A=d.get(\\\"icon-padding\\\")*e.tilePixelRatio,T=d.get(\\\"text-max-angle\\\")/180*Math.PI,S=\\\"map\\\"===d.get(\\\"text-rotation-alignment\\\")&&\\\"line\\\"===d.get(\\\"symbol-placement\\\"),E=\\\"map\\\"===d.get(\\\"icon-rotation-alignment\\\")&&\\\"line\\\"===d.get(\\\"symbol-placement\\\"),C=k/2,L=function(a,u){u.x<0||u.x>=t.default$8||u.y<0||u.y>=t.default$8||e.symbolInstances.push(function(e,r,n,i,a,l,c,u,f,h,p,d,g,v,y,x,b,_,w,k,M){var A,T,S=e.addToLineVertexArray(r,n),E=0,C=0,L=0,z=i.horizontal?i.horizontal.text:\\\"\\\",O=[];i.horizontal&&(A=new s(c,n,r,u,f,h,i.horizontal,p,d,g,e.overscaling),C+=m(e,r,i.horizontal,l,g,w,v,S,i.vertical?t.WritingMode.horizontal:t.WritingMode.horizontalOnly,O,k,M),i.vertical&&(L+=m(e,r,i.vertical,l,g,w,v,S,t.WritingMode.vertical,O,k,M)));var I=A?A.boxStartIndex:e.collisionBoxArray.length,P=A?A.boxEndIndex:e.collisionBoxArray.length;if(a){var D=function(e,r,n,i,a,o){var s,l,c,u,f=r.image,h=n.layout,p=r.top-1/f.pixelRatio,d=r.left-1/f.pixelRatio,g=r.bottom+1/f.pixelRatio,v=r.right+1/f.pixelRatio;if(\\\"none\\\"!==h.get(\\\"icon-text-fit\\\")&&a){var m=v-d,y=g-p,x=h.get(\\\"text-size\\\").evaluate(o)/24,b=a.left*x,_=a.right*x,w=a.top*x,k=_-b,M=a.bottom*x-w,A=h.get(\\\"icon-text-fit-padding\\\")[0],T=h.get(\\\"icon-text-fit-padding\\\")[1],S=h.get(\\\"icon-text-fit-padding\\\")[2],E=h.get(\\\"icon-text-fit-padding\\\")[3],C=\\\"width\\\"===h.get(\\\"icon-text-fit\\\")?.5*(M-y):0,L=\\\"height\\\"===h.get(\\\"icon-text-fit\\\")?.5*(k-m):0,z=\\\"width\\\"===h.get(\\\"icon-text-fit\\\")||\\\"both\\\"===h.get(\\\"icon-text-fit\\\")?k:m,O=\\\"height\\\"===h.get(\\\"icon-text-fit\\\")||\\\"both\\\"===h.get(\\\"icon-text-fit\\\")?M:y;s=new t.default$1(b+L-E,w+C-A),l=new t.default$1(b+L+T+z,w+C-A),c=new t.default$1(b+L+T+z,w+C+S+O),u=new t.default$1(b+L-E,w+C+S+O)}else s=new t.default$1(d,p),l=new t.default$1(v,p),c=new t.default$1(v,g),u=new t.default$1(d,g);var I=n.layout.get(\\\"icon-rotate\\\").evaluate(o)*Math.PI/180;if(I){var P=Math.sin(I),D=Math.cos(I),R=[D,-P,P,D];s._matMult(R),l._matMult(R),u._matMult(R),c._matMult(R)}return[{tl:s,tr:l,bl:u,br:c,tex:f.paddedRect,writingMode:void 0,glyphOffset:[0,0]}]}(0,a,l,0,i.horizontal,w);T=new s(c,n,r,u,f,h,a,y,x,!1,e.overscaling),E=4*D.length;var R=e.iconSizeData,B=null;\\\"source\\\"===R.functionType?B=[10*l.layout.get(\\\"icon-size\\\").evaluate(w)]:\\\"composite\\\"===R.functionType&&(B=[10*M.compositeIconSizes[0].evaluate(w),10*M.compositeIconSizes[1].evaluate(w)]),e.addSymbols(e.icon,D,B,_,b,w,!1,r,S.lineStartIndex,S.lineLength)}var F=T?T.boxStartIndex:e.collisionBoxArray.length,N=T?T.boxEndIndex:e.collisionBoxArray.length;return e.glyphOffsetArray.length>=t.default$14.MAX_GLYPHS&&t.warnOnce(\\\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\\\"),{key:z,textBoxStartIndex:I,textBoxEndIndex:P,iconBoxStartIndex:F,iconBoxEndIndex:N,textOffset:v,iconOffset:_,anchor:r,line:n,featureIndex:u,feature:w,numGlyphVertices:C,numVerticalGlyphVertices:L,numIconVertices:E,textOpacityState:new o,iconOpacityState:new o,isDuplicate:!1,placedTextSymbolIndices:O,crossTileID:0}}(e,u,a,n,i,e.layers[0],e.collisionBoxArray,r.index,r.sourceLayerIndex,e.index,b,M,S,g,w,A,E,v,r,l,c))};if(\\\"line\\\"===d.get(\\\"symbol-placement\\\"))for(var z=0,O=function(e,r,n,i,a){for(var o=[],s=0;s<e.length;s++)for(var l=e[s],c=void 0,u=0;u<l.length-1;u++){var f=l[u],h=l[u+1];f.x<0&&h.x<0||(f.x<0?f=new t.default$1(0,f.y+(h.y-f.y)*((0-f.x)/(h.x-f.x)))._round():h.x<0&&(h=new t.default$1(0,f.y+(h.y-f.y)*((0-f.x)/(h.x-f.x)))._round()),f.y<0&&h.y<0||(f.y<0?f=new t.default$1(f.x+(h.x-f.x)*((0-f.y)/(h.y-f.y)),0)._round():h.y<0&&(h=new t.default$1(f.x+(h.x-f.x)*((0-f.y)/(h.y-f.y)),0)._round()),f.x>=i&&h.x>=i||(f.x>=i?f=new t.default$1(i,f.y+(h.y-f.y)*((i-f.x)/(h.x-f.x)))._round():h.x>=i&&(h=new t.default$1(i,f.y+(h.y-f.y)*((i-f.x)/(h.x-f.x)))._round()),f.y>=a&&h.y>=a||(f.y>=a?f=new t.default$1(f.x+(h.x-f.x)*((a-f.y)/(h.y-f.y)),a)._round():h.y>=a&&(h=new t.default$1(f.x+(h.x-f.x)*((a-f.y)/(h.y-f.y)),a)._round()),c&&f.equals(c[c.length-1])||(c=[f],o.push(c)),c.push(h)))))}return o}(r.geometry,0,0,t.default$8,t.default$8);z<O.length;z+=1)for(var I=O[z],P=0,D=a(I,k,T,n.vertical||n.horizontal,i,24,_,e.overscaling,t.default$8);P<D.length;P+=1){var R=D[P],B=n.horizontal;B&&y(e,B.text,C,R)||L(I,R)}else if(\\\"Polygon\\\"===r.type)for(var F=0,N=t.default$26(r.geometry,0);F<N.length;F+=1){var j=N[F],V=h(j,16);L(j[0],new t.default$25(V.x,V.y,0))}else if(\\\"LineString\\\"===r.type)for(var U=0,q=r.geometry;U<q.length;U+=1){var H=q[U];L(H,new t.default$25(H[0].x,H[0].y,0))}else if(\\\"Point\\\"===r.type)for(var G=0,W=r.geometry;G<W.length;G+=1)for(var Y=0,X=W[G];Y<X.length;Y+=1){var Z=X[Y];L([Z],new t.default$25(Z.x,Z.y,0))}}function m(e,r,n,i,a,o,s,l,c,u,f,h){var p=function(e,r,n,i,a,o){for(var s=n.layout.get(\\\"text-rotate\\\").evaluate(a)*Math.PI/180,l=n.layout.get(\\\"text-offset\\\").evaluate(a).map(function(t){return 24*t}),c=r.positionedGlyphs,u=[],f=0;f<c.length;f++){var h=c[f],p=o[h.glyph];if(p){var d=p.rect;if(d){var g=t.GLYPH_PBF_BORDER+1,v=p.metrics.advance/2,m=i?[h.x+v,h.y]:[0,0],y=i?[0,0]:[h.x+v+l[0],h.y+l[1]],x=p.metrics.left-g-v+y[0],b=-p.metrics.top-g+y[1],_=x+d.w,w=b+d.h,k=new t.default$1(x,b),M=new t.default$1(_,b),A=new t.default$1(x,w),T=new t.default$1(_,w);if(i&&h.vertical){var S=new t.default$1(-v,v),E=-Math.PI/2,C=new t.default$1(5,0);k._rotateAround(E,S)._add(C),M._rotateAround(E,S)._add(C),A._rotateAround(E,S)._add(C),T._rotateAround(E,S)._add(C)}if(s){var L=Math.sin(s),z=Math.cos(s),O=[z,-L,L,z];k._matMult(O),M._matMult(O),A._matMult(O),T._matMult(O)}u.push({tl:k,tr:M,bl:A,br:T,tex:d,writingMode:r.writingMode,glyphOffset:m})}}}return u}(0,n,i,a,o,f),d=e.textSizeData,g=null;return\\\"source\\\"===d.functionType?g=[10*i.layout.get(\\\"text-size\\\").evaluate(o)]:\\\"composite\\\"===d.functionType&&(g=[10*h.compositeTextSizes[0].evaluate(o),10*h.compositeTextSizes[1].evaluate(o)]),e.addSymbols(e.text,p,g,s,a,o,c,r,l.lineStartIndex,l.lineLength),u.push(e.text.placedSymbolArray.length-1),4*p.length}function y(t,e,r,n){var i=t.compareText;if(e in i){for(var a=i[e],o=a.length-1;o>=0;o--)if(n.dist(a[o])<r)return!0}else i[e]=[];return i[e].push(n),!1}u.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t}},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},_down:function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t<n;){var a=1+(t<<1),o=a+1,s=e[a];if(o<this.length&&r(e[o],s)<0&&(a=o,s=e[o]),r(s,i)>=0)break;e[t]=s,t=a}e[t]=i}},l.default=c;var x=function(e){var r=new t.AlphaImage({width:0,height:0}),n={},i=new t.default$2(0,0,{autoResize:!0});for(var a in e){var o=e[a],s=n[a]={};for(var l in o){var c=o[+l];if(c&&0!==c.bitmap.width&&0!==c.bitmap.height){var u=i.packOne(c.bitmap.width+2,c.bitmap.height+2);r.resize({width:i.w,height:i.h}),t.AlphaImage.copy(c.bitmap,r,{x:0,y:0},{x:u.x+1,y:u.y+1},c.bitmap),s[l]={rect:u,metrics:c.metrics}}}}i.shrink(),r.resize({width:i.w,height:i.h}),this.image=r,this.positions=n};t.register(\\\"GlyphAtlas\\\",x);var b=function(e){this.tileID=new t.OverscaledTileID(e.tileID.overscaledZ,e.tileID.wrap,e.tileID.canonical.z,e.tileID.canonical.x,e.tileID.canonical.y),this.uid=e.uid,this.zoom=e.zoom,this.pixelRatio=e.pixelRatio,this.tileSize=e.tileSize,this.source=e.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=e.showCollisionBoxes,this.collectResourceTiming=!!e.collectResourceTiming};function _(e,r){for(var n=new t.default$16(r),i=0,a=e;i<a.length;i+=1)a[i].recalculate(n)}b.prototype.parse=function(e,r,n,i){var a=this;this.status=\\\"parsing\\\",this.data=e,this.collisionBoxArray=new t.CollisionBoxArray;var o=new t.default$27(Object.keys(e.layers).sort()),s=new t.default$11(this.tileID);s.bucketLayerIDs=[];var l,c,u,f={},h={featureIndex:s,iconDependencies:{},glyphDependencies:{}},p=r.familiesBySource[this.source];for(var d in p){var v=e.layers[d];if(v){1===v.version&&t.warnOnce('Vector tile source \\\"'+a.source+'\\\" layer \\\"'+d+'\\\" does not use vector tile spec v2 and therefore may have some rendering errors.');for(var m=o.encode(d),y=[],b=0;b<v.length;b++){var w=v.feature(b);y.push({feature:w,index:b,sourceLayerIndex:m})}for(var k=0,M=p[d];k<M.length;k+=1){var A=M[k],T=A[0];T.minzoom&&a.zoom<Math.floor(T.minzoom)||T.maxzoom&&a.zoom>=T.maxzoom||\\\"none\\\"!==T.visibility&&(_(A,a.zoom),(f[T.id]=T.createBucket({index:s.bucketLayerIDs.length,layers:A,zoom:a.zoom,pixelRatio:a.pixelRatio,overscaling:a.overscaling,collisionBoxArray:a.collisionBoxArray,sourceLayerIndex:m})).populate(y,h),s.bucketLayerIDs.push(A.map(function(t){return t.id})))}}}var S=t.mapObject(h.glyphDependencies,function(t){return Object.keys(t).map(Number)});Object.keys(S).length?n.send(\\\"getGlyphs\\\",{uid:this.uid,stacks:S},function(t,e){l||(l=t,c=e,C.call(a))}):c={};var E=Object.keys(h.iconDependencies);function C(){if(l)return i(l);if(c&&u){var e=new x(c),r=new t.default$28(u);for(var n in f){var a=f[n];a instanceof t.default$14&&(_(a.layers,this.zoom),g(a,c,e.positions,u,r.positions,this.showCollisionBoxes))}this.status=\\\"done\\\",i(null,{buckets:t.values(f).filter(function(t){return!t.isEmpty()}),featureIndex:s,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,iconAtlasImage:r.image})}}E.length?n.send(\\\"getImages\\\",{icons:E},function(t,e){l||(l=t,u=e,C.call(a))}):u={},C.call(this)};var w=function(t){return!(!performance||!performance.getEntriesByName)&&performance.getEntriesByName(t)};function k(e,r){var n=t.getArrayBuffer(e.request,function(e,n){e?r(e):n&&r(null,{vectorTile:new t.default$29.VectorTile(new t.default$30(n.data)),rawData:n.data,cacheControl:n.cacheControl,expires:n.expires})});return function(){n.abort(),r()}}var M=function(t,e,r){this.actor=t,this.layerIndex=e,this.loadVectorData=r||k,this.loading={},this.loaded={}};M.prototype.loadTile=function(e,r){var n=this,i=e.uid;this.loading||(this.loading={});var a=this.loading[i]=new b(e);a.abort=this.loadVectorData(e,function(o,s){if(delete n.loading[i],o||!s)return r(o);var l=s.rawData,c={};s.expires&&(c.expires=s.expires),s.cacheControl&&(c.cacheControl=s.cacheControl);var u={};if(e.request&&e.request.collectResourceTiming){var f=w(e.request.url);f&&(u.resourceTiming=JSON.parse(JSON.stringify(f)))}a.vectorTile=s.vectorTile,a.parse(s.vectorTile,n.layerIndex,n.actor,function(e,n){if(e||!n)return r(e);r(null,t.extend({rawTileData:l.slice(0)},n,c,u))}),n.loaded=n.loaded||{},n.loaded[i]=a})},M.prototype.reloadTile=function(t,e){var r=this.loaded,n=t.uid,i=this;if(r&&r[n]){var a=r[n];a.showCollisionBoxes=t.showCollisionBoxes;var o=function(t,r){var n=a.reloadCallback;n&&(delete a.reloadCallback,a.parse(a.vectorTile,i.layerIndex,i.actor,n)),e(t,r)};\\\"parsing\\\"===a.status?a.reloadCallback=o:\\\"done\\\"===a.status&&a.parse(a.vectorTile,this.layerIndex,this.actor,o)}},M.prototype.abortTile=function(t,e){var r=this.loading,n=t.uid;r&&r[n]&&r[n].abort&&(r[n].abort(),delete r[n]),e()},M.prototype.removeTile=function(t,e){var r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e()};var A=function(){this.loading={},this.loaded={}};A.prototype.loadTile=function(e,r){var n=e.uid,i=e.encoding,a=new t.default$31(n);this.loading[n]=a,a.loadFromImage(e.rawImageData,i),delete this.loading[n],this.loaded=this.loaded||{},this.loaded[n]=a,r(null,a)},A.prototype.removeTile=function(t){var e=this.loaded,r=t.uid;e&&e[r]&&delete e[r]};var T={RADIUS:6378137,FLATTENING:1/298.257223563,POLAR_RADIUS:6356752.3142};function S(t){var e=0;if(t&&t.length>0){e+=Math.abs(E(t[0]));for(var r=1;r<t.length;r++)e-=Math.abs(E(t[r]))}return e}function E(t){var e,r,n,i,a,o,s=0,l=t.length;if(l>2){for(o=0;o<l;o++)o===l-2?(n=l-2,i=l-1,a=0):o===l-1?(n=l-1,i=0,a=1):(n=o,i=o+1,a=o+2),e=t[n],r=t[i],s+=(C(t[a][0])-C(e[0]))*Math.sin(C(r[1]));s=s*T.RADIUS*T.RADIUS/2}return s}function C(t){return t*Math.PI/180}var L={geometry:function t(e){var r,n=0;switch(e.type){case\\\"Polygon\\\":return S(e.coordinates);case\\\"MultiPolygon\\\":for(r=0;r<e.coordinates.length;r++)n+=S(e.coordinates[r]);return n;case\\\"Point\\\":case\\\"MultiPoint\\\":case\\\"LineString\\\":case\\\"MultiLineString\\\":return 0;case\\\"GeometryCollection\\\":for(r=0;r<e.geometries.length;r++)n+=t(e.geometries[r]);return n}},ring:E};function z(t,e){return function(r){return t(r,e)}}function O(t,e){e=!!e,t[0]=I(t[0],e);for(var r=1;r<t.length;r++)t[r]=I(t[r],!e);return t}function I(t,e){return function(t){return L.ring(t)>=0}(t)===e?t:t.reverse()}var P=t.default$29.VectorTileFeature.prototype.toGeoJSON,D=function(e){this._feature=e,this.extent=t.default$8,this.type=e.type,this.properties=e.tags,\\\"id\\\"in e&&!isNaN(e.id)&&(this.id=parseInt(e.id,10))};D.prototype.loadGeometry=function(){if(1===this._feature.type){for(var e=[],r=0,n=this._feature.geometry;r<n.length;r+=1){var i=n[r];e.push([new t.default$1(i[0],i[1])])}return e}for(var a=[],o=0,s=this._feature.geometry;o<s.length;o+=1){for(var l=[],c=0,u=s[o];c<u.length;c+=1){var f=u[c];l.push(new t.default$1(f[0],f[1]))}a.push(l)}return a},D.prototype.toGeoJSON=function(t,e,r){return P.call(this,t,e,r)};var R=function(e){this.layers={_geojsonTileLayer:this},this.name=\\\"_geojsonTileLayer\\\",this.extent=t.default$8,this.length=e.length,this._features=e};R.prototype.feature=function(t){return new D(this._features[t])};var B=t.__moduleExports.VectorTileFeature,F=N;function N(t,e){this.options=e||{},this.features=t,this.length=t.length}function j(t,e){this.id=\\\"number\\\"==typeof t.id?t.id:void 0,this.type=t.type,this.rawGeometry=1===t.type?[t.geometry]:t.geometry,this.properties=t.tags,this.extent=e||4096}N.prototype.feature=function(t){return new j(this.features[t],this.options.extent)},j.prototype.loadGeometry=function(){var e=this.rawGeometry;this.geometry=[];for(var r=0;r<e.length;r++){for(var n=e[r],i=[],a=0;a<n.length;a++)i.push(new t.default$32(n[a][0],n[a][1]));this.geometry.push(i)}return this.geometry},j.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var t=this.geometry,e=1/0,r=-1/0,n=1/0,i=-1/0,a=0;a<t.length;a++)for(var o=t[a],s=0;s<o.length;s++){var l=o[s];e=Math.min(e,l.x),r=Math.max(r,l.x),n=Math.min(n,l.y),i=Math.max(i,l.y)}return[e,n,r,i]},j.prototype.toGeoJSON=B.prototype.toGeoJSON;var V=H,U=H,q=F;function H(e){var r=new t.__moduleExports$1;return function(t,e){for(var r in t.layers)e.writeMessage(3,G,t.layers[r])}(e,r),r.finish()}function G(t,e){var r;e.writeVarintField(15,t.version||1),e.writeStringField(1,t.name||\\\"\\\"),e.writeVarintField(5,t.extent||4096);var n={keys:[],values:[],keycache:{},valuecache:{}};for(r=0;r<t.length;r++)n.feature=t.feature(r),e.writeMessage(2,W,n);var i=n.keys;for(r=0;r<i.length;r++)e.writeStringField(3,i[r]);var a=n.values;for(r=0;r<a.length;r++)e.writeMessage(4,J,a[r])}function W(t,e){var r=t.feature;void 0!==r.id&&e.writeVarintField(1,r.id),e.writeMessage(2,Y,t),e.writeVarintField(3,r.type),e.writeMessage(4,$,r)}function Y(t,e){var r=t.feature,n=t.keys,i=t.values,a=t.keycache,o=t.valuecache;for(var s in r.properties){var l=a[s];void 0===l&&(n.push(s),l=n.length-1,a[s]=l),e.writeVarint(l);var c=r.properties[s],u=typeof c;\\\"string\\\"!==u&&\\\"boolean\\\"!==u&&\\\"number\\\"!==u&&(c=JSON.stringify(c));var f=u+\\\":\\\"+c,h=o[f];void 0===h&&(i.push(c),h=i.length-1,o[f]=h),e.writeVarint(h)}}function X(t,e){return(e<<3)+(7&t)}function Z(t){return t<<1^t>>31}function $(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,s=0;s<o;s++){var l=r[s],c=1;1===n&&(c=l.length),e.writeVarint(X(1,c));for(var u=3===n?l.length-1:l.length,f=0;f<u;f++){1===f&&1!==n&&e.writeVarint(X(2,u-1));var h=l[f].x-i,p=l[f].y-a;e.writeVarint(Z(h)),e.writeVarint(Z(p)),i+=h,a+=p}3===n&&e.writeVarint(X(7,0))}}function J(t,e){var r=typeof t;\\\"string\\\"===r?e.writeStringField(1,t):\\\"boolean\\\"===r?e.writeBooleanField(7,t):\\\"number\\\"===r&&(t%1!=0?e.writeDoubleField(3,t):t<0?e.writeSVarintField(6,t):e.writeVarintField(5,t))}V.fromVectorTileJs=U,V.fromGeojsonVt=function(t,e){e=e||{};var r={};for(var n in t)r[n]=new F(t[n].features,e),r[n].name=n,r[n].version=e.version,r[n].extent=e.extent;return H({layers:r})},V.GeoJSONWrapper=q;var K=function t(e,r,n,i,a,o){if(!(a-i<=n)){var s=Math.floor((i+a)/2);!function t(e,r,n,i,a,o){for(;a>i;){if(a-i>600){var s=a-i+1,l=n-i+1,c=Math.log(s),u=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*u*(s-u)/s)*(l-s/2<0?-1:1);t(e,r,n,Math.max(i,Math.floor(n-l*u/s+f)),Math.min(a,Math.floor(n+(s-l)*u/s+f)),o)}var h=r[2*n+o],p=i,d=a;for(Q(e,r,i,n),r[2*a+o]>h&&Q(e,r,i,a);p<d;){for(Q(e,r,p,d),p++,d--;r[2*p+o]<h;)p++;for(;r[2*d+o]>h;)d--}r[2*i+o]===h?Q(e,r,i,d):Q(e,r,++d,a),d<=n&&(i=d+1),n<=d&&(a=d-1)}}(e,r,s,i,a,o%2),t(e,r,n,i,s-1,o+1),t(e,r,n,s+1,a,o+1)}};function Q(t,e,r,n){tt(t,r,n),tt(e,2*r,2*n),tt(e,2*r+1,2*n+1)}function tt(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function et(t,e,r,n){var i=t-r,a=e-n;return i*i+a*a}var rt=function(t,e,r,n,i){return new nt(t,e,r,n,i)};function nt(t,e,r,n,i){e=e||it,r=r||at,i=i||Array,this.nodeSize=n||64,this.points=t,this.ids=new i(t.length),this.coords=new i(2*t.length);for(var a=0;a<t.length;a++)this.ids[a]=a,this.coords[2*a]=e(t[a]),this.coords[2*a+1]=r(t[a]);K(this.ids,this.coords,this.nodeSize,0,this.ids.length-1,0)}function it(t){return t[0]}function at(t){return t[1]}nt.prototype={range:function(t,e,r,n){return function(t,e,r,n,i,a,o){for(var s,l,c=[0,t.length-1,0],u=[];c.length;){var f=c.pop(),h=c.pop(),p=c.pop();if(h-p<=o)for(var d=p;d<=h;d++)s=e[2*d],l=e[2*d+1],s>=r&&s<=i&&l>=n&&l<=a&&u.push(t[d]);else{var g=Math.floor((p+h)/2);s=e[2*g],l=e[2*g+1],s>=r&&s<=i&&l>=n&&l<=a&&u.push(t[g]);var v=(f+1)%2;(0===f?r<=s:n<=l)&&(c.push(p),c.push(g-1),c.push(v)),(0===f?i>=s:a>=l)&&(c.push(g+1),c.push(h),c.push(v))}}return u}(this.ids,this.coords,t,e,r,n,this.nodeSize)},within:function(t,e,r){return function(t,e,r,n,i,a){for(var o=[0,t.length-1,0],s=[],l=i*i;o.length;){var c=o.pop(),u=o.pop(),f=o.pop();if(u-f<=a)for(var h=f;h<=u;h++)et(e[2*h],e[2*h+1],r,n)<=l&&s.push(t[h]);else{var p=Math.floor((f+u)/2),d=e[2*p],g=e[2*p+1];et(d,g,r,n)<=l&&s.push(t[p]);var v=(c+1)%2;(0===c?r-i<=d:n-i<=g)&&(o.push(f),o.push(p-1),o.push(v)),(0===c?r+i>=d:n+i>=g)&&(o.push(p+1),o.push(u),o.push(v))}}return s}(this.ids,this.coords,t,e,r,this.nodeSize)}};function ot(t){this.options=pt(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function st(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:n,properties:i,parentId:-1,numPoints:r}}function lt(t,e){var r=t.geometry.coordinates;return{x:ft(r[0]),y:ht(r[1]),zoom:1/0,id:e,parentId:-1}}function ct(t){return{type:\\\"Feature\\\",properties:ut(t),geometry:{type:\\\"Point\\\",coordinates:[(n=t.x,360*(n-.5)),(e=t.y,r=(180-360*e)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var e,r,n}function ut(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+\\\"k\\\":e>=1e3?Math.round(e/100)/10+\\\"k\\\":e;return pt(pt({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function ft(t){return t/360+.5}function ht(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function pt(t,e){for(var r in e)t[r]=e[r];return t}function dt(t){return t.x}function gt(t){return t.y}function vt(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}function mt(t,e,r,n){var i={id:t||null,type:e,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,r=t.type;if(\\\"Point\\\"===r||\\\"MultiPoint\\\"===r||\\\"LineString\\\"===r)yt(t,e);else if(\\\"Polygon\\\"===r||\\\"MultiLineString\\\"===r)for(var n=0;n<e.length;n++)yt(t,e[n]);else if(\\\"MultiPolygon\\\"===r)for(n=0;n<e.length;n++)for(var i=0;i<e[n].length;i++)yt(t,e[n][i])}(i),i}function yt(t,e){for(var r=0;r<e.length;r+=3)t.minX=Math.min(t.minX,e[r]),t.minY=Math.min(t.minY,e[r+1]),t.maxX=Math.max(t.maxX,e[r]),t.maxY=Math.max(t.maxY,e[r+1])}function xt(t,e,r){if(e.geometry){var n=e.geometry.coordinates,i=e.geometry.type,a=Math.pow(r.tolerance/((1<<r.maxZoom)*r.extent),2),o=[];if(\\\"Point\\\"===i)bt(n,o);else if(\\\"MultiPoint\\\"===i)for(var s=0;s<n.length;s++)bt(n[s],o);else if(\\\"LineString\\\"===i)_t(n,o,a,!1);else if(\\\"MultiLineString\\\"===i)if(r.lineMetrics)for(s=0;s<n.length;s++)return o=[],_t(n[s],o,a,!1),void t.push(mt(e.id,\\\"LineString\\\",o,e.properties));else wt(n,o,a,!1);else if(\\\"Polygon\\\"===i)wt(n,o,a,!0);else{if(\\\"MultiPolygon\\\"!==i){if(\\\"GeometryCollection\\\"===i){for(s=0;s<e.geometry.geometries.length;s++)xt(t,{id:e.id,geometry:e.geometry.geometries[s],properties:e.properties},r);return}throw new Error(\\\"Input data is not a valid GeoJSON object.\\\")}for(s=0;s<n.length;s++){var l=[];wt(n[s],l,a,!0),o.push(l)}}t.push(mt(e.id,i,o,e.properties))}}function bt(t,e){e.push(kt(t[0])),e.push(Mt(t[1])),e.push(0)}function _t(t,e,r,n){for(var i,a,o=0,s=0;s<t.length;s++){var l=kt(t[s][0]),c=Mt(t[s][1]);e.push(l),e.push(c),e.push(0),s>0&&(o+=n?(i*c-l*a)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(c-a,2))),i=l,a=c}var u=e.length-3;e[2]=1,function t(e,r,n,i){for(var a,o=i,s=e[r],l=e[r+1],c=e[n],u=e[n+1],f=r+3;f<n;f+=3){var h=vt(e[f],e[f+1],s,l,c,u);h>o&&(a=f,o=h)}o>i&&(a-r>3&&t(e,r,a,i),e[a+2]=o,n-a>3&&t(e,a,n,i))}(e,0,u,r),e[u+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function wt(t,e,r,n){for(var i=0;i<t.length;i++){var a=[];_t(t[i],a,r,n),e.push(a)}}function kt(t){return t/360+.5}function Mt(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function At(t,e,r,n,i,a,o,s){if(n/=e,a>=(r/=e)&&o<=n)return t;if(a>n||o<r)return null;for(var l=[],c=0;c<t.length;c++){var u=t[c],f=u.geometry,h=u.type,p=0===i?u.minX:u.minY,d=0===i?u.maxX:u.maxY;if(p>=r&&d<=n)l.push(u);else if(!(p>n||d<r)){var g=[];if(\\\"Point\\\"===h||\\\"MultiPoint\\\"===h)Tt(f,g,r,n,i);else if(\\\"LineString\\\"===h)St(f,g,r,n,i,!1,s.lineMetrics);else if(\\\"MultiLineString\\\"===h)Ct(f,g,r,n,i,!1);else if(\\\"Polygon\\\"===h)Ct(f,g,r,n,i,!0);else if(\\\"MultiPolygon\\\"===h)for(var v=0;v<f.length;v++){var m=[];Ct(f[v],m,r,n,i,!0),m.length&&g.push(m)}if(g.length){if(s.lineMetrics&&\\\"LineString\\\"===h){for(v=0;v<g.length;v++)l.push(mt(u.id,h,g[v],u.tags));continue}\\\"LineString\\\"!==h&&\\\"MultiLineString\\\"!==h||(1===g.length?(h=\\\"LineString\\\",g=g[0]):h=\\\"MultiLineString\\\"),\\\"Point\\\"!==h&&\\\"MultiPoint\\\"!==h||(h=3===g.length?\\\"Point\\\":\\\"MultiPoint\\\"),l.push(mt(u.id,h,g,u.tags))}}}return l.length?l:null}function Tt(t,e,r,n,i){for(var a=0;a<t.length;a+=3){var o=t[a+i];o>=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function St(t,e,r,n,i,a,o){for(var s,l,c=Et(t),u=0===i?zt:Ot,f=t.start,h=0;h<t.length-3;h+=3){var p=t[h],d=t[h+1],g=t[h+2],v=t[h+3],m=t[h+4],y=0===i?p:d,x=0===i?v:m,b=!1;o&&(s=Math.sqrt(Math.pow(p-v,2)+Math.pow(d-m,2))),y<r?x>=r&&(l=u(c,p,d,v,m,r),o&&(c.start=f+s*l)):y>n?x<=n&&(l=u(c,p,d,v,m,n),o&&(c.start=f+s*l)):Lt(c,p,d,g),x<r&&y>=r&&(l=u(c,p,d,v,m,r),b=!0),x>n&&y<=n&&(l=u(c,p,d,v,m,n),b=!0),!a&&b&&(o&&(c.end=f+s*l),e.push(c),c=Et(t)),o&&(f+=s)}var _=t.length-3;p=t[_],d=t[_+1],g=t[_+2],(y=0===i?p:d)>=r&&y<=n&&Lt(c,p,d,g),_=c.length-3,a&&_>=3&&(c[_]!==c[0]||c[_+1]!==c[1])&&Lt(c,c[0],c[1],c[2]),c.length&&e.push(c)}function Et(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function Ct(t,e,r,n,i,a){for(var o=0;o<t.length;o++)St(t[o],e,r,n,i,a,!1)}function Lt(t,e,r,n){t.push(e),t.push(r),t.push(n)}function zt(t,e,r,n,i,a){var o=(a-e)/(n-e);return t.push(a),t.push(r+(i-r)*o),t.push(1),o}function Ot(t,e,r,n,i,a){var o=(a-r)/(i-r);return t.push(e+(n-e)*o),t.push(a),t.push(1),o}function It(t,e){for(var r=[],n=0;n<t.length;n++){var i,a=t[n],o=a.type;if(\\\"Point\\\"===o||\\\"MultiPoint\\\"===o||\\\"LineString\\\"===o)i=Pt(a.geometry,e);else if(\\\"MultiLineString\\\"===o||\\\"Polygon\\\"===o){i=[];for(var s=0;s<a.geometry.length;s++)i.push(Pt(a.geometry[s],e))}else if(\\\"MultiPolygon\\\"===o)for(i=[],s=0;s<a.geometry.length;s++){for(var l=[],c=0;c<a.geometry[s].length;c++)l.push(Pt(a.geometry[s][c],e));i.push(l)}r.push(mt(a.id,o,i,a.tags))}return r}function Pt(t,e){var r=[];r.size=t.size,void 0!==t.start&&(r.start=t.start,r.end=t.end);for(var n=0;n<t.length;n+=3)r.push(t[n]+e,t[n+1],t[n+2]);return r}function Dt(t,e){if(t.transformed)return t;var r,n,i,a=1<<t.z,o=t.x,s=t.y;for(r=0;r<t.features.length;r++){var l=t.features[r],c=l.geometry,u=l.type;if(l.geometry=[],1===u)for(n=0;n<c.length;n+=2)l.geometry.push(Rt(c[n],c[n+1],e,a,o,s));else for(n=0;n<c.length;n++){var f=[];for(i=0;i<c[n].length;i+=2)f.push(Rt(c[n][i],c[n][i+1],e,a,o,s));l.geometry.push(f)}}return t.transformed=!0,t}function Rt(t,e,r,n,i,a){return[Math.round(r*(t*n-i)),Math.round(r*(e*n-a))]}function Bt(t,e,r,n,i){for(var a=e===i.maxZoom?0:i.tolerance/((1<<e)*i.extent),o={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:n,z:e,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},s=0;s<t.length;s++){o.numFeatures++,Ft(o,t[s],a,i);var l=t[s].minX,c=t[s].minY,u=t[s].maxX,f=t[s].maxY;l<o.minX&&(o.minX=l),c<o.minY&&(o.minY=c),u>o.maxX&&(o.maxX=u),f>o.maxY&&(o.maxY=f)}return o}function Ft(t,e,r,n){var i=e.geometry,a=e.type,o=[];if(\\\"Point\\\"===a||\\\"MultiPoint\\\"===a)for(var s=0;s<i.length;s+=3)o.push(i[s]),o.push(i[s+1]),t.numPoints++,t.numSimplified++;else if(\\\"LineString\\\"===a)Nt(o,i,t,r,!1,!1);else if(\\\"MultiLineString\\\"===a||\\\"Polygon\\\"===a)for(s=0;s<i.length;s++)Nt(o,i[s],t,r,\\\"Polygon\\\"===a,0===s);else if(\\\"MultiPolygon\\\"===a)for(var l=0;l<i.length;l++){var c=i[l];for(s=0;s<c.length;s++)Nt(o,c[s],t,r,!0,0===s)}if(o.length){var u=e.tags||null;if(\\\"LineString\\\"===a&&n.lineMetrics){for(var f in u={},e.tags)u[f]=e.tags[f];u.mapbox_clip_start=i.start/i.size,u.mapbox_clip_end=i.end/i.size}var h={geometry:o,type:\\\"Polygon\\\"===a||\\\"MultiPolygon\\\"===a?3:\\\"LineString\\\"===a||\\\"MultiLineString\\\"===a?2:1,tags:u};null!==e.id&&(h.id=e.id),t.features.push(h)}}function Nt(t,e,r,n,i,a){var o=n*n;if(n>0&&e.size<(i?o:n))r.numPoints+=e.length/3;else{for(var s=[],l=0;l<e.length;l+=3)(0===n||e[l+2]>o)&&(r.numSimplified++,s.push(e[l]),s.push(e[l+1])),r.numPoints++;i&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n<i;a=n,n+=2)r+=(t[n]-t[a])*(t[n+1]+t[a+1]);if(r>0===e)for(n=0,i=t.length;n<i/2;n+=2){var o=t[n],s=t[n+1];t[n]=t[i-2-n],t[n+1]=t[i-1-n],t[i-2-n]=o,t[i-1-n]=s}}(s,a),t.push(s)}}function jt(t,e){var r=(e=this.options=function(t,e){for(var r in e)t[r]=e[r];return t}(Object.create(this.options),e)).debug;if(r&&console.time(\\\"preprocess data\\\"),e.maxZoom<0||e.maxZoom>24)throw new Error(\\\"maxZoom should be in the 0-24 range\\\");var n=function(t,e){var r=[];if(\\\"FeatureCollection\\\"===t.type)for(var n=0;n<t.features.length;n++)xt(r,t.features[n],e);else\\\"Feature\\\"===t.type?xt(r,t,e):xt(r,{geometry:t},e);return r}(t,e);this.tiles={},this.tileCoords=[],r&&(console.timeEnd(\\\"preprocess data\\\"),console.log(\\\"index: maxZoom: %d, maxPoints: %d\\\",e.indexMaxZoom,e.indexMaxPoints),console.time(\\\"generate tiles\\\"),this.stats={},this.total=0),(n=function(t,e){var r=e.buffer/e.extent,n=t,i=At(t,1,-1-r,r,0,-1,2,e),a=At(t,1,1-r,2+r,0,-1,2,e);return(i||a)&&(n=At(t,1,-r,1+r,0,-1,2,e)||[],i&&(n=It(i,1).concat(n)),a&&(n=n.concat(It(a,-1)))),n}(n,e)).length&&this.splitTile(n,0,0,0),r&&(n.length&&console.log(\\\"features: %d, points: %d\\\",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd(\\\"generate tiles\\\"),console.log(\\\"tiles generated:\\\",this.total,JSON.stringify(this.stats)))}function Vt(t,e,r){return 32*((1<<t)*r+e)+t}function Ut(t,e){var r=t.tileID.canonical;if(!this._geoJSONIndex)return e(null,null);var n=this._geoJSONIndex.getTile(r.z,r.x,r.y);if(!n)return e(null,null);var i=new R(n.features),a=V(i);0===a.byteOffset&&a.byteLength===a.buffer.byteLength||(a=new Uint8Array(a)),e(null,{vectorTile:i,rawData:a.buffer})}ot.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,reduce:null,initial:function(){return{}},map:function(t){return t}},load:function(t){var e=this.options.log;e&&console.time(\\\"total time\\\");var r=\\\"prepare \\\"+t.length+\\\" points\\\";e&&console.time(r),this.points=t;var n=t.map(lt);e&&console.timeEnd(r);for(var i=this.options.maxZoom;i>=this.options.minZoom;i--){var a=+Date.now();this.trees[i+1]=rt(n,dt,gt,this.options.nodeSize,Float32Array),n=this._cluster(n,i),e&&console.log(\\\"z%d: %d clusters in %dms\\\",i,n.length,+Date.now()-a)}return this.trees[this.options.minZoom]=rt(n,dt,gt,this.options.nodeSize,Float32Array),e&&console.timeEnd(\\\"total time\\\"),this},getClusters:function(t,e){for(var r=this.trees[this._limitZoom(e)],n=r.range(ft(t[0]),ht(t[3]),ft(t[2]),ht(t[1])),i=[],a=0;a<n.length;a++){var o=r.points[n[a]];i.push(o.numPoints?ct(o):this.points[o.id])}return i},getChildren:function(t,e){for(var r=this.trees[e+1].points[t],n=this.options.radius/(this.options.extent*Math.pow(2,e)),i=this.trees[e+1].within(r.x,r.y,n),a=[],o=0;o<i.length;o++){var s=this.trees[e+1].points[i[o]];s.parentId===t&&a.push(s.numPoints?ct(s):this.points[s.id])}return a},getLeaves:function(t,e,r,n){r=r||10,n=n||0;var i=[];return this._appendLeaves(i,t,e,r,n,0),i},getTile:function(t,e,r){var n=this.trees[this._limitZoom(t)],i=Math.pow(2,t),a=this.options.extent,o=this.options.radius/a,s=(r-o)/i,l=(r+1+o)/i,c={features:[]};return this._addTileFeatures(n.range((e-o)/i,s,(e+1+o)/i,l),n.points,e,r,i,c),0===e&&this._addTileFeatures(n.range(1-o/i,s,1,l),n.points,i,r,i,c),e===i-1&&this._addTileFeatures(n.range(0,s,o/i,l),n.points,-1,r,i,c),c.features.length?c:null},getClusterExpansionZoom:function(t,e){for(;e<this.options.maxZoom;){var r=this.getChildren(t,e);if(e++,1!==r.length)break;t=r[0].properties.cluster_id}return e},_appendLeaves:function(t,e,r,n,i,a){for(var o=this.getChildren(e,r),s=0;s<o.length;s++){var l=o[s].properties;if(l.cluster?a+l.point_count<=i?a+=l.point_count:a=this._appendLeaves(t,l.cluster_id,r+1,n,i,a):a<i?a++:t.push(o[s]),t.length===n)break}return a},_addTileFeatures:function(t,e,r,n,i,a){for(var o=0;o<t.length;o++){var s=e[t[o]];a.features.push({type:1,geometry:[[Math.round(this.options.extent*(s.x*i-r)),Math.round(this.options.extent*(s.y*i-n))]],tags:s.numPoints?ut(s):this.points[s.id].properties})}},_limitZoom:function(t){return Math.max(this.options.minZoom,Math.min(t,this.options.maxZoom+1))},_cluster:function(t,e){for(var r=[],n=this.options.radius/(this.options.extent*Math.pow(2,e)),i=0;i<t.length;i++){var a=t[i];if(!(a.zoom<=e)){a.zoom=e;var o=this.trees[e+1],s=o.within(a.x,a.y,n),l=a.numPoints||1,c=a.x*l,u=a.y*l,f=null;this.options.reduce&&(f=this.options.initial(),this._accumulate(f,a));for(var h=0;h<s.length;h++){var p=o.points[s[h]];if(e<p.zoom){var d=p.numPoints||1;p.zoom=e,c+=p.x*d,u+=p.y*d,l+=d,p.parentId=i,this.options.reduce&&this._accumulate(f,p)}}1===l?r.push(a):(a.parentId=i,r.push(st(c/l,u/l,l,i,f)))}}return r},_accumulate:function(t,e){var r=e.numPoints?e.properties:this.options.map(this.points[e.id].properties);this.options.reduce(t,r)}},jt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,debug:0},jt.prototype.splitTile=function(t,e,r,n,i,a,o){for(var s=[t,e,r,n],l=this.options,c=l.debug;s.length;){n=s.pop(),r=s.pop(),e=s.pop(),t=s.pop();var u=1<<e,f=Vt(e,r,n),h=this.tiles[f];if(!h&&(c>1&&console.time(\\\"creation\\\"),h=this.tiles[f]=Bt(t,e,r,n,l),this.tileCoords.push({z:e,x:r,y:n}),c)){c>1&&(console.log(\\\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\\\",e,r,n,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd(\\\"creation\\\"));var p=\\\"z\\\"+e;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(h.source=t,i){if(e===l.maxZoom||e===i)continue;var d=1<<i-e;if(r!==Math.floor(a/d)||n!==Math.floor(o/d))continue}else if(e===l.indexMaxZoom||h.numPoints<=l.indexMaxPoints)continue;if(h.source=null,0!==t.length){c>1&&console.time(\\\"clipping\\\");var g,v,m,y,x,b,_=.5*l.buffer/l.extent,w=.5-_,k=.5+_,M=1+_;g=v=m=y=null,x=At(t,u,r-_,r+k,0,h.minX,h.maxX,l),b=At(t,u,r+w,r+M,0,h.minX,h.maxX,l),t=null,x&&(g=At(x,u,n-_,n+k,1,h.minY,h.maxY,l),v=At(x,u,n+w,n+M,1,h.minY,h.maxY,l),x=null),b&&(m=At(b,u,n-_,n+k,1,h.minY,h.maxY,l),y=At(b,u,n+w,n+M,1,h.minY,h.maxY,l),b=null),c>1&&console.timeEnd(\\\"clipping\\\"),s.push(g||[],e+1,2*r,2*n),s.push(v||[],e+1,2*r,2*n+1),s.push(m||[],e+1,2*r+1,2*n),s.push(y||[],e+1,2*r+1,2*n+1)}}},jt.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug;if(t<0||t>24)return null;var o=1<<t,s=Vt(t,e=(e%o+o)%o,r);if(this.tiles[s])return Dt(this.tiles[s],i);a>1&&console.log(\\\"drilling down to z%d-%d-%d\\\",t,e,r);for(var l,c=t,u=e,f=r;!l&&c>0;)c--,u=Math.floor(u/2),f=Math.floor(f/2),l=this.tiles[Vt(c,u,f)];return l&&l.source?(a>1&&console.log(\\\"found parent tile z%d-%d-%d\\\",c,u,f),a>1&&console.time(\\\"drilling down\\\"),this.splitTile(l.source,c,u,f,t,e,r),a>1&&console.timeEnd(\\\"drilling down\\\"),this.tiles[s]?Dt(this.tiles[s],i):null):null};var qt=function(e){function r(t,r,n){e.call(this,t,r,Ut),n&&(this.loadGeoJSON=n)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&\\\"Idle\\\"!==this._state?this._state=\\\"NeedsLoadData\\\":(this._state=\\\"Coalescing\\\",this._loadData())},r.prototype._loadData=function(){var t=this;if(this._pendingCallback&&this._pendingLoadDataParams){var e=this._pendingCallback,r=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams,this.loadGeoJSON(r,function(n,i){if(n||!i)return e(n);if(\\\"object\\\"!=typeof i)return e(new Error(\\\"Input data is not a valid GeoJSON object.\\\"));!function t(e,r){switch(e&&e.type||null){case\\\"FeatureCollection\\\":return e.features=e.features.map(z(t,r)),e;case\\\"Feature\\\":return e.geometry=t(e.geometry,r),e;case\\\"Polygon\\\":case\\\"MultiPolygon\\\":return function(t,e){return\\\"Polygon\\\"===t.type?t.coordinates=O(t.coordinates,e):\\\"MultiPolygon\\\"===t.type&&(t.coordinates=t.coordinates.map(z(O,e))),t}(e,r);default:return e}}(i,!0);try{t._geoJSONIndex=r.cluster?function(t){return new ot(t)}(r.superclusterOptions).load(i.features):new jt(i,r.geojsonVtOptions)}catch(n){return e(n)}t.loaded={};var a={};if(r.request&&r.request.collectResourceTiming){var o=w(r.request.url);o&&(a.resourceTiming={},a.resourceTiming[r.source]=JSON.parse(JSON.stringify(o)))}e(null,a)})}},r.prototype.coalesce=function(){\\\"Coalescing\\\"===this._state?this._state=\\\"Idle\\\":\\\"NeedsLoadData\\\"===this._state&&(this._state=\\\"Coalescing\\\",this._loadData())},r.prototype.reloadTile=function(t,r){var n=this.loaded,i=t.uid;return n&&n[i]?e.prototype.reloadTile.call(this,t,r):this.loadTile(t,r)},r.prototype.loadGeoJSON=function(e,r){if(e.request)t.getJSON(e.request,r);else{if(\\\"string\\\"!=typeof e.data)return r(new Error(\\\"Input data is not a valid GeoJSON object.\\\"));try{return r(null,JSON.parse(e.data))}catch(t){return r(new Error(\\\"Input data is not a valid GeoJSON object.\\\"))}}},r.prototype.removeSource=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),e()},r}(M),Ht=function(e){var r=this;this.self=e,this.actor=new t.default$7(e,this),this.layerIndexes={},this.workerSourceTypes={vector:M,geojson:qt},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=function(t,e){if(r.workerSourceTypes[t])throw new Error('Worker source with name \\\"'+t+'\\\" already registered.');r.workerSourceTypes[t]=e},this.self.registerRTLTextPlugin=function(e){if(t.plugin.isLoaded())throw new Error(\\\"RTL text plugin already registered.\\\");t.plugin.applyArabicShaping=e.applyArabicShaping,t.plugin.processBidirectionalText=e.processBidirectionalText}};return Ht.prototype.setLayers=function(t,e,r){this.getLayerIndex(t).replace(e),r()},Ht.prototype.updateLayers=function(t,e,r){this.getLayerIndex(t).update(e.layers,e.removedIds),r()},Ht.prototype.loadTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).loadTile(e,r)},Ht.prototype.loadDEMTile=function(t,e,r){this.getDEMWorkerSource(t,e.source).loadTile(e,r)},Ht.prototype.reloadTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).reloadTile(e,r)},Ht.prototype.abortTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).abortTile(e,r)},Ht.prototype.removeTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).removeTile(e,r)},Ht.prototype.removeDEMTile=function(t,e){this.getDEMWorkerSource(t,e.source).removeTile(e)},Ht.prototype.removeSource=function(t,e,r){if(this.workerSources[t]&&this.workerSources[t][e.type]&&this.workerSources[t][e.type][e.source]){var n=this.workerSources[t][e.type][e.source];delete this.workerSources[t][e.type][e.source],void 0!==n.removeSource?n.removeSource(e,r):r()}},Ht.prototype.loadWorkerSource=function(t,e,r){try{this.self.importScripts(e.url),r()}catch(t){r(t.toString())}},Ht.prototype.loadRTLTextPlugin=function(e,r,n){try{t.plugin.isLoaded()||(this.self.importScripts(r),n(t.plugin.isLoaded()?null:new Error(\\\"RTL Text Plugin failed to import scripts from \\\"+r)))}catch(t){n(t.toString())}},Ht.prototype.getLayerIndex=function(t){var e=this.layerIndexes[t];return e||(e=this.layerIndexes[t]=new n),e},Ht.prototype.getWorkerSource=function(t,e,r){var n=this;if(this.workerSources[t]||(this.workerSources[t]={}),this.workerSources[t][e]||(this.workerSources[t][e]={}),!this.workerSources[t][e][r]){var i={send:function(e,r,i){n.actor.send(e,r,i,t)}};this.workerSources[t][e][r]=new this.workerSourceTypes[e](i,this.getLayerIndex(t))}return this.workerSources[t][e][r]},Ht.prototype.getDEMWorkerSource=function(t,e){return this.demWorkerSources[t]||(this.demWorkerSources[t]={}),this.demWorkerSources[t][e]||(this.demWorkerSources[t][e]=new A),this.demWorkerSources[t][e]},\\\"undefined\\\"!=typeof WorkerGlobalScope&&\\\"undefined\\\"!=typeof self&&self instanceof WorkerGlobalScope&&new Ht(self),Ht}),i(0,function(t){var e=t.createCommonjsModule(function(t){function e(t){return!!(\\\"undefined\\\"!=typeof window&&\\\"undefined\\\"!=typeof document&&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 t,e,r=new Blob([\\\"\\\"],{type:\\\"text/javascript\\\"}),n=URL.createObjectURL(r);try{e=new Worker(n),t=!0}catch(e){t=!1}return e&&e.terminate(),URL.revokeObjectURL(n),t}()&&\\\"Uint8ClampedArray\\\"in window&&function(t){return void 0===r[t]&&(r[t]=function(t){var r=document.createElement(\\\"canvas\\\"),n=Object.create(e.webGLContextAttributes);return n.failIfMajorPerformanceCaveat=t,r.probablySupportsContext?r.probablySupportsContext(\\\"webgl\\\",n)||r.probablySupportsContext(\\\"experimental-webgl\\\",n):r.supportsContext?r.supportsContext(\\\"webgl\\\",n)||r.supportsContext(\\\"experimental-webgl\\\",n):r.getContext(\\\"webgl\\\",n)||r.getContext(\\\"experimental-webgl\\\",n)}(t)),r[t]}(t&&t.failIfMajorPerformanceCaveat))}t.exports?t.exports=e:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=e);var r={};e.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}}),r=t.default.performance&&t.default.performance.now?t.default.performance.now.bind(t.default.performance):Date.now.bind(Date),n=t.default.requestAnimationFrame||t.default.mozRequestAnimationFrame||t.default.webkitRequestAnimationFrame||t.default.msRequestAnimationFrame,i=t.default.cancelAnimationFrame||t.default.mozCancelAnimationFrame||t.default.webkitCancelAnimationFrame||t.default.msCancelAnimationFrame,a={now:r,frame:function(t){return n(t)},cancelFrame:function(t){return i(t)},getImageData:function(e){var r=t.default.document.createElement(\\\"canvas\\\"),n=r.getContext(\\\"2d\\\");if(!n)throw new Error(\\\"failed to create canvas 2d context\\\");return r.width=e.width,r.height=e.height,n.drawImage(e,0,0,e.width,e.height),n.getImageData(0,0,e.width,e.height)},hardwareConcurrency:t.default.navigator.hardwareConcurrency||4,get devicePixelRatio(){return t.default.devicePixelRatio},supportsWebp:!1};if(t.default.document){var o=t.default.document.createElement(\\\"img\\\");o.onload=function(){a.supportsWebp=!0},o.src=\\\"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\\\"}var s={create:function(e,r,n){var i=t.default.document.createElement(e);return r&&(i.className=r),n&&n.appendChild(i),i},createNS:function(e,r){return t.default.document.createElementNS(e,r)}},l=t.default.document?t.default.document.documentElement.style:null;function c(t){if(!l)return null;for(var e=0;e<t.length;e++)if(t[e]in l)return t[e];return t[0]}var u,f=c([\\\"userSelect\\\",\\\"MozUserSelect\\\",\\\"WebkitUserSelect\\\",\\\"msUserSelect\\\"]);s.disableDrag=function(){l&&f&&(u=l[f],l[f]=\\\"none\\\")},s.enableDrag=function(){l&&f&&(l[f]=u)};var h=c([\\\"transform\\\",\\\"WebkitTransform\\\"]);s.setTransform=function(t,e){t.style[h]=e};var p=!1;try{var d=Object.defineProperty({},\\\"passive\\\",{get:function(){p=!0}});t.default.addEventListener(\\\"test\\\",d,d),t.default.removeEventListener(\\\"test\\\",d,d)}catch(t){p=!1}s.addEventListener=function(t,e,r,n){void 0===n&&(n={}),\\\"passive\\\"in n&&p?t.addEventListener(e,r,n):t.addEventListener(e,r,n.capture)},s.removeEventListener=function(t,e,r,n){void 0===n&&(n={}),\\\"passive\\\"in n&&p?t.removeEventListener(e,r,n):t.removeEventListener(e,r,n.capture)};var g=function(e){e.preventDefault(),e.stopPropagation(),t.default.removeEventListener(\\\"click\\\",g,!0)};s.suppressClick=function(){t.default.addEventListener(\\\"click\\\",g,!0),t.default.setTimeout(function(){t.default.removeEventListener(\\\"click\\\",g,!0)},0)},s.mousePos=function(e,r){var n=e.getBoundingClientRect();return r=r.touches?r.touches[0]:r,new t.default$1(r.clientX-n.left-e.clientLeft,r.clientY-n.top-e.clientTop)},s.touchPos=function(e,r){for(var n=e.getBoundingClientRect(),i=[],a=\\\"touchend\\\"===r.type?r.changedTouches:r.touches,o=0;o<a.length;o++)i.push(new t.default$1(a[o].clientX-n.left-e.clientLeft,a[o].clientY-n.top-e.clientTop));return i},s.mouseButton=function(e){return void 0!==t.default.InstallTrigger&&2===e.button&&e.ctrlKey&&t.default.navigator.platform.toUpperCase().indexOf(\\\"MAC\\\")>=0?0:e.button},s.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var v={API_URL:\\\"https://api.mapbox.com\\\",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null},m=\\\"See https://www.mapbox.com/api-documentation/#access-tokens\\\";function y(t,e){var r=A(v.API_URL);if(t.protocol=r.protocol,t.authority=r.authority,\\\"/\\\"!==r.path&&(t.path=\\\"\\\"+r.path+t.path),!v.REQUIRE_ACCESS_TOKEN)return T(t);if(!(e=e||v.ACCESS_TOKEN))throw new Error(\\\"An API access token is required to use Mapbox GL. \\\"+m);if(\\\"s\\\"===e[0])throw new Error(\\\"Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). \\\"+m);return t.params.push(\\\"access_token=\\\"+e),T(t)}function x(t){return 0===t.indexOf(\\\"mapbox:\\\")}var b=function(t,e){if(!x(t))return t;var r=A(t);return r.path=\\\"/v4/\\\"+r.authority+\\\".json\\\",r.params.push(\\\"secure\\\"),y(r,e)},_=function(t,e,r,n){var i=A(t);return x(t)?(i.path=\\\"/styles/v1\\\"+i.path+\\\"/sprite\\\"+e+r,y(i,n)):(i.path+=\\\"\\\"+e+r,T(i))},w=/(\\\\.(png|jpg)\\\\d*)(?=$)/,k=function(t,e,r){if(!e||!x(e))return t;var n=A(t),i=a.devicePixelRatio>=2||512===r?\\\"@2x\\\":\\\"\\\",o=a.supportsWebp?\\\".webp\\\":\\\"$1\\\";return n.path=n.path.replace(w,\\\"\\\"+i+o),function(t){for(var e=0;e<t.length;e++)0===t[e].indexOf(\\\"access_token=tk.\\\")&&(t[e]=\\\"access_token=\\\"+(v.ACCESS_TOKEN||\\\"\\\"))}(n.params),T(n)},M=/^(\\\\w+):\\\\/\\\\/([^\\\\/?]*)(\\\\/[^?]+)?\\\\??(.+)?/;function A(t){var e=t.match(M);if(!e)throw new Error(\\\"Unable to parse URL object\\\");return{protocol:e[1],authority:e[2],path:e[3]||\\\"/\\\",params:e[4]?e[4].split(\\\"&\\\"):[]}}function T(t){var e=t.params.length?\\\"?\\\"+t.params.join(\\\"&\\\"):\\\"\\\";return t.protocol+\\\"://\\\"+t.authority+t.path+e}var S=t.default.HTMLImageElement,E=t.default.HTMLCanvasElement,C=t.default.HTMLVideoElement,L=t.default.ImageData,z=function(t,e,r,n){this.context=t,this.format=r,this.texture=t.gl.createTexture(),this.update(e,n)};z.prototype.update=function(t,e){var r=t.width,n=t.height,i=!this.size||this.size[0]!==r||this.size[1]!==n,a=this.context,o=a.gl;this.useMipmap=Boolean(e&&e.useMipmap),o.bindTexture(o.TEXTURE_2D,this.texture),i?(this.size=[r,n],a.pixelStoreUnpack.set(1),this.format!==o.RGBA||e&&!1===e.premultiply||a.pixelStoreUnpackPremultiplyAlpha.set(!0),t instanceof S||t instanceof E||t instanceof C||t instanceof L?o.texImage2D(o.TEXTURE_2D,0,this.format,this.format,o.UNSIGNED_BYTE,t):o.texImage2D(o.TEXTURE_2D,0,this.format,r,n,0,this.format,o.UNSIGNED_BYTE,t.data)):t instanceof S||t instanceof E||t instanceof C||t instanceof L?o.texSubImage2D(o.TEXTURE_2D,0,0,0,o.RGBA,o.UNSIGNED_BYTE,t):o.texSubImage2D(o.TEXTURE_2D,0,0,0,r,n,o.RGBA,o.UNSIGNED_BYTE,t.data),this.useMipmap&&this.isSizePowerOfTwo()&&o.generateMipmap(o.TEXTURE_2D)},z.prototype.bind=function(t,e,r){var n=this.context.gl;n.bindTexture(n.TEXTURE_2D,this.texture),r!==n.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(r=n.LINEAR),t!==this.filter&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,t),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,r||t),this.filter=t),e!==this.wrap&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,e),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,e),this.wrap=e)},z.prototype.isSizePowerOfTwo=function(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0},z.prototype.destroy=function(){this.context.gl.deleteTexture(this.texture),this.texture=null};var O=function(){this.images={},this.loaded=!1,this.requestors=[],this.shelfPack=new t.default$2(64,64,{autoResize:!0}),this.patterns={},this.atlasImage=new t.RGBAImage({width:64,height:64}),this.dirty=!0};O.prototype.isLoaded=function(){return this.loaded},O.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,r=this.requestors;e<r.length;e+=1){var n=r[e],i=n.ids,a=n.callback;this._notify(i,a)}this.requestors=[]}},O.prototype.getImage=function(t){return this.images[t]},O.prototype.addImage=function(t,e){this.images[t]=e},O.prototype.removeImage=function(t){delete this.images[t];var e=this.patterns[t];e&&(this.shelfPack.unref(e.bin),delete this.patterns[t])},O.prototype.getImages=function(t,e){var r=!0;if(!this.isLoaded())for(var n=0,i=t;n<i.length;n+=1){var a=i[n];this.images[a]||(r=!1)}this.isLoaded()||r?this._notify(t,e):this.requestors.push({ids:t,callback:e})},O.prototype._notify=function(t,e){for(var r={},n=0,i=t;n<i.length;n+=1){var a=i[n],o=this.images[a];o&&(r[a]={data:o.data.clone(),pixelRatio:o.pixelRatio,sdf:o.sdf})}e(null,r)},O.prototype.getPixelSize=function(){return{width:this.shelfPack.w,height:this.shelfPack.h}},O.prototype.getPattern=function(e){var r=this.patterns[e];if(r)return r.position;var n=this.getImage(e);if(!n)return null;var i=n.data.width+2,a=n.data.height+2,o=this.shelfPack.packOne(i,a);if(!o)return null;this.atlasImage.resize(this.getPixelSize());var s=n.data,l=this.atlasImage,c=o.x+1,u=o.y+1,f=s.width,h=s.height;t.RGBAImage.copy(s,l,{x:0,y:0},{x:c,y:u},{width:f,height:h}),t.RGBAImage.copy(s,l,{x:0,y:h-1},{x:c,y:u-1},{width:f,height:1}),t.RGBAImage.copy(s,l,{x:0,y:0},{x:c,y:u+h},{width:f,height:1}),t.RGBAImage.copy(s,l,{x:f-1,y:0},{x:c-1,y:u},{width:1,height:h}),t.RGBAImage.copy(s,l,{x:0,y:0},{x:c+f,y:u},{width:1,height:h}),this.dirty=!0;var p=new t.ImagePosition(o,n);return this.patterns[e]={bin:o,position:p},p},O.prototype.bind=function(t){var e=t.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new z(t,this.atlasImage,e.RGBA),this.atlasTexture.bind(e.LINEAR,e.CLAMP_TO_EDGE)};var I=D,P=1e20;function D(t,e,r,n,i,a){this.fontSize=t||24,this.buffer=void 0===e?3:e,this.cutoff=n||.25,this.fontFamily=i||\\\"sans-serif\\\",this.fontWeight=a||\\\"normal\\\",this.radius=r||8;var o=this.size=this.fontSize+2*this.buffer;this.canvas=document.createElement(\\\"canvas\\\"),this.canvas.width=this.canvas.height=o,this.ctx=this.canvas.getContext(\\\"2d\\\"),this.ctx.font=this.fontWeight+\\\" \\\"+this.fontSize+\\\"px \\\"+this.fontFamily,this.ctx.textBaseline=\\\"middle\\\",this.ctx.fillStyle=\\\"black\\\",this.gridOuter=new Float64Array(o*o),this.gridInner=new Float64Array(o*o),this.f=new Float64Array(o),this.d=new Float64Array(o),this.z=new Float64Array(o+1),this.v=new Int16Array(o),this.middle=Math.round(o/2*(navigator.userAgent.indexOf(\\\"Gecko/\\\")>=0?1.2:1))}function R(t,e,r,n,i,a,o){for(var s=0;s<e;s++){for(var l=0;l<r;l++)n[l]=t[l*e+s];for(B(n,i,a,o,r),l=0;l<r;l++)t[l*e+s]=i[l]}for(l=0;l<r;l++){for(s=0;s<e;s++)n[s]=t[l*e+s];for(B(n,i,a,o,e),s=0;s<e;s++)t[l*e+s]=Math.sqrt(i[s])}}function B(t,e,r,n,i){r[0]=0,n[0]=-P,n[1]=+P;for(var a=1,o=0;a<i;a++){for(var s=(t[a]+a*a-(t[r[o]]+r[o]*r[o]))/(2*a-2*r[o]);s<=n[o];)o--,s=(t[a]+a*a-(t[r[o]]+r[o]*r[o]))/(2*a-2*r[o]);r[++o]=a,n[o]=s,n[o+1]=+P}for(a=0,o=0;a<i;a++){for(;n[o+1]<a;)o++;e[a]=(a-r[o])*(a-r[o])+t[r[o]]}}D.prototype.draw=function(t){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.fillText(t,this.buffer,this.middle);for(var e=this.ctx.getImageData(0,0,this.size,this.size),r=new Uint8ClampedArray(this.size*this.size),n=0;n<this.size*this.size;n++){var i=e.data[4*n+3]/255;this.gridOuter[n]=1===i?0:0===i?P:Math.pow(Math.max(0,.5-i),2),this.gridInner[n]=1===i?P:0===i?0:Math.pow(Math.max(0,i-.5),2)}for(R(this.gridOuter,this.size,this.size,this.f,this.d,this.v,this.z),R(this.gridInner,this.size,this.size,this.f,this.d,this.v,this.z),n=0;n<this.size*this.size;n++){var a=this.gridOuter[n]-this.gridInner[n];r[n]=Math.max(0,Math.min(255,Math.round(255-255*(a/this.radius+this.cutoff))))}return r};var F=function(t,e){this.requestTransform=t,this.localIdeographFontFamily=e,this.entries={}};F.prototype.setURL=function(t){this.url=t},F.prototype.getGlyphs=function(e,r){var n=this,i=[];for(var a in e)for(var o=0,s=e[a];o<s.length;o+=1){var l=s[o];i.push({stack:a,id:l})}t.asyncAll(i,function(t,e){var r=t.stack,i=t.id,a=n.entries[r];a||(a=n.entries[r]={glyphs:{},requests:{}});var o=a.glyphs[i];if(void 0===o)if(o=n._tinySDF(a,r,i))e(null,{stack:r,id:i,glyph:o});else{var s=Math.floor(i/256);if(256*s>65535)e(new Error(\\\"glyphs > 65535 not supported\\\"));else{var l=a.requests[s];l||(l=a.requests[s]=[],F.loadGlyphRange(r,s,n.url,n.requestTransform,function(t,e){if(e)for(var r in e)a.glyphs[+r]=e[+r];for(var n=0,i=l;n<i.length;n+=1)(0,i[n])(t,e);delete a.requests[s]})),l.push(function(t,n){t?e(t):n&&e(null,{stack:r,id:i,glyph:n[i]||null})})}}else e(null,{stack:r,id:i,glyph:o})},function(t,e){if(t)r(t);else if(e){for(var n={},i=0,a=e;i<a.length;i+=1){var o=a[i],s=o.stack,l=o.id,c=o.glyph;(n[s]||(n[s]={}))[l]=c&&{id:c.id,bitmap:c.bitmap.clone(),metrics:c.metrics}}r(null,n)}})},F.prototype._tinySDF=function(e,r,n){var i=this.localIdeographFontFamily;if(i&&(t.default$4[\\\"CJK Unified Ideographs\\\"](n)||t.default$4[\\\"Hangul Syllables\\\"](n))){var a=e.tinySDF;if(!a){var o=\\\"400\\\";/bold/i.test(r)?o=\\\"900\\\":/medium/i.test(r)?o=\\\"500\\\":/light/i.test(r)&&(o=\\\"200\\\"),a=e.tinySDF=new F.TinySDF(24,3,8,.25,i,o)}return{id:n,bitmap:new t.AlphaImage({width:30,height:30},a.draw(String.fromCharCode(n))),metrics:{width:24,height:24,left:0,top:-8,advance:24}}}},F.loadGlyphRange=function(e,r,n,i,a){var o=256*r,s=o+255,l=i(function(t,e){if(!x(t))return t;var r=A(t);return r.path=\\\"/fonts/v1\\\"+r.path,y(r,e)}(n).replace(\\\"{fontstack}\\\",e).replace(\\\"{range}\\\",o+\\\"-\\\"+s),t.ResourceType.Glyphs);t.getArrayBuffer(l,function(e,r){if(e)a(e);else if(r){for(var n={},i=0,o=t.default$3(r.data);i<o.length;i+=1){var s=o[i];n[s.id]=s}a(null,n)}})},F.TinySDF=I;var N=function(){this.specification=t.default$5.light.position};N.prototype.possiblyEvaluate=function(e,r){return t.sphericalToCartesian(e.expression.evaluate(r))},N.prototype.interpolate=function(e,r,n){return{x:t.number(e.x,r.x,n),y:t.number(e.y,r.y,n),z:t.number(e.z,r.z,n)}};var j=new t.Properties({anchor:new t.DataConstantProperty(t.default$5.light.anchor),position:new N,color:new t.DataConstantProperty(t.default$5.light.color),intensity:new t.DataConstantProperty(t.default$5.light.intensity)}),V=function(e){function r(r){e.call(this),this._transitionable=new t.Transitionable(j),this.setLight(r),this._transitioning=this._transitionable.untransitioned()}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.getLight=function(){return this._transitionable.serialize()},r.prototype.setLight=function(e){if(!this._validate(t.validateLight,e))for(var r in e){var n=e[r];t.endsWith(r,\\\"-transition\\\")?this._transitionable.setTransition(r.slice(0,-\\\"-transition\\\".length),n):this._transitionable.setValue(r,n)}},r.prototype.updateTransitions=function(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)},r.prototype.hasTransition=function(){return this._transitioning.hasTransition()},r.prototype.recalculate=function(t){this.properties=this._transitioning.possiblyEvaluate(t)},r.prototype._validate=function(e,r){return t.emitValidationErrors(this,e.call(t.validateStyle,t.extend({value:r,style:{glyphs:!0,sprite:!0},styleSpec:t.default$5})))},r}(t.Evented),U=function(t,e){this.width=t,this.height=e,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};U.prototype.getDash=function(t,e){var r=t.join(\\\",\\\")+String(e);return this.positions[r]||(this.positions[r]=this.addDash(t,e)),this.positions[r]},U.prototype.addDash=function(e,r){var n=r?7:0,i=2*n+1;if(this.nextRow+i>this.height)return t.warnOnce(\\\"LineAtlas out of space\\\"),null;for(var a=0,o=0;o<e.length;o++)a+=e[o];for(var s=this.width/a,l=s/2,c=e.length%2==1,u=-n;u<=n;u++)for(var f=this.nextRow+n+u,h=this.width*f,p=c?-e[e.length-1]:0,d=e[0],g=1,v=0;v<this.width;v++){for(;d<v/s;)p=d,d+=e[g],c&&g===e.length-1&&(d+=e[0]),g++;var m=Math.abs(v-p*s),y=Math.abs(v-d*s),x=Math.min(m,y),b=g%2==1,_=void 0;if(r){var w=n?u/n*(l+1):0;if(b){var k=l-Math.abs(w);_=Math.sqrt(x*x+k*k)}else _=l-Math.sqrt(x*x+w*w)}else _=(b?1:-1)*x;this.data[3+4*(h+v)]=Math.max(0,Math.min(255,_+128))}var M={y:(this.nextRow+n+.5)/this.height,height:2*n/this.height,width:a};return this.nextRow+=i,this.dirty=!0,M},U.prototype.bind=function(t){var e=t.gl;this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,e.texSubImage2D(e.TEXTURE_2D,0,0,0,this.width,this.height,e.RGBA,e.UNSIGNED_BYTE,this.data))):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.width,this.height,0,e.RGBA,e.UNSIGNED_BYTE,this.data))};var q=function e(r,n){this.workerPool=r,this.actors=[],this.currentActor=0,this.id=t.uniqueId();for(var i=this.workerPool.acquire(this.id),a=0;a<i.length;a++){var o=i[a],s=new e.Actor(o,n,this.id);s.name=\\\"Worker \\\"+a,this.actors.push(s)}};function H(e,r,n){var i=function(e,r){if(e)return n(e);if(r){var i=t.pick(r,[\\\"tiles\\\",\\\"minzoom\\\",\\\"maxzoom\\\",\\\"attribution\\\",\\\"mapbox_logo\\\",\\\"bounds\\\"]);r.vector_layers&&(i.vectorLayers=r.vector_layers,i.vectorLayerIds=i.vectorLayers.map(function(t){return t.id})),n(null,i)}};e.url?t.getJSON(r(b(e.url),t.ResourceType.Source),i):a.frame(function(){return i(null,e)})}q.prototype.broadcast=function(e,r,n){n=n||function(){},t.asyncAll(this.actors,function(t,n){t.send(e,r,n)},n)},q.prototype.send=function(t,e,r,n){return(\\\"number\\\"!=typeof n||isNaN(n))&&(n=this.currentActor=(this.currentActor+1)%this.actors.length),this.actors[n].send(t,e,r),n},q.prototype.remove=function(){this.actors.forEach(function(t){t.remove()}),this.actors=[],this.workerPool.release(this.id)},q.Actor=t.default$7;var G=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\\\"Invalid LngLat object: (\\\"+t+\\\", \\\"+e+\\\")\\\");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error(\\\"Invalid LngLat latitude value: must be between -90 and 90\\\")};G.prototype.wrap=function(){return new G(t.wrap(this.lng,-180,180),this.lat)},G.prototype.toArray=function(){return[this.lng,this.lat]},G.prototype.toString=function(){return\\\"LngLat(\\\"+this.lng+\\\", \\\"+this.lat+\\\")\\\"},G.prototype.toBounds=function(t){var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new W(new G(this.lng-r,this.lat-e),new G(this.lng+r,this.lat+e))},G.convert=function(t){if(t instanceof G)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new G(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&\\\"object\\\"==typeof t&&null!==t)return new G(Number(t.lng),Number(t.lat));throw new Error(\\\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]\\\")};var W=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};W.prototype.setNorthEast=function(t){return this._ne=t instanceof G?new G(t.lng,t.lat):G.convert(t),this},W.prototype.setSouthWest=function(t){return this._sw=t instanceof G?new G(t.lng,t.lat):G.convert(t),this},W.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof G)e=t,r=t;else{if(!(t instanceof W))return Array.isArray(t)?t.every(Array.isArray)?this.extend(W.convert(t)):this.extend(G.convert(t)):this;if(e=t._sw,r=t._ne,!e||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new G(e.lng,e.lat),this._ne=new G(r.lng,r.lat)),this},W.prototype.getCenter=function(){return new G((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},W.prototype.getSouthWest=function(){return this._sw},W.prototype.getNorthEast=function(){return this._ne},W.prototype.getNorthWest=function(){return new G(this.getWest(),this.getNorth())},W.prototype.getSouthEast=function(){return new G(this.getEast(),this.getSouth())},W.prototype.getWest=function(){return this._sw.lng},W.prototype.getSouth=function(){return this._sw.lat},W.prototype.getEast=function(){return this._ne.lng},W.prototype.getNorth=function(){return this._ne.lat},W.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},W.prototype.toString=function(){return\\\"LngLatBounds(\\\"+this._sw.toString()+\\\", \\\"+this._ne.toString()+\\\")\\\"},W.prototype.isEmpty=function(){return!(this._sw&&this._ne)},W.convert=function(t){return!t||t instanceof W?t:new W(t)};var Y=function(t,e,r){this.bounds=W.convert(this.validateBounds(t)),this.minzoom=e||0,this.maxzoom=r||24};Y.prototype.validateBounds=function(t){return Array.isArray(t)&&4===t.length?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]},Y.prototype.contains=function(t){var e=Math.floor(this.lngX(this.bounds.getWest(),t.z)),r=Math.floor(this.latY(this.bounds.getNorth(),t.z)),n=Math.ceil(this.lngX(this.bounds.getEast(),t.z)),i=Math.ceil(this.latY(this.bounds.getSouth(),t.z));return t.x>=e&&t.x<n&&t.y>=r&&t.y<i},Y.prototype.lngX=function(t,e){return(t+180)*(Math.pow(2,e)/360)},Y.prototype.latY=function(e,r){var n=t.clamp(Math.sin(Math.PI/180*e),-.9999,.9999),i=Math.pow(2,r)/(2*Math.PI);return Math.pow(2,r-1)+.5*Math.log((1+n)/(1-n))*-i};var X=function(e){function r(r,n,i,a){if(e.call(this),this.id=r,this.dispatcher=i,this.type=\\\"vector\\\",this.minzoom=0,this.maxzoom=22,this.scheme=\\\"xyz\\\",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,t.extend(this,t.pick(n,[\\\"url\\\",\\\"scheme\\\",\\\"tileSize\\\"])),this._options=t.extend({type:\\\"vector\\\"},n),this._collectResourceTiming=n.collectResourceTiming,512!==this.tileSize)throw new Error(\\\"vector tile sources must have a tileSize of 512\\\");this.setEventedParent(a)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),H(this._options,this.map._transformRequest,function(r,n){r?e.fire(new t.ErrorEvent(r)):n&&(t.extend(e,n),n.bounds&&(e.tileBounds=new Y(n.bounds,e.minzoom,e.maxzoom)),e.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"metadata\\\"})),e.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"content\\\"})))})},r.prototype.hasTile=function(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.serialize=function(){return t.extend({},this._options)},r.prototype.loadTile=function(e,r){var n=k(e.tileID.canonical.url(this.tiles,this.scheme),this.url),i={request:this.map._transformRequest(n,t.ResourceType.Tile),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:a.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes};function o(t,n){return e.aborted?r(null):t?r(t):(n&&n.resourceTiming&&(e.resourceTiming=n.resourceTiming),this.map._refreshExpiredTiles&&e.setExpiryData(n),e.loadVectorData(n,this.map.painter),r(null),void(e.reloadCallback&&(this.loadTile(e,e.reloadCallback),e.reloadCallback=null)))}i.request.collectResourceTiming=this._collectResourceTiming,void 0===e.workerID||\\\"expired\\\"===e.state?e.workerID=this.dispatcher.send(\\\"loadTile\\\",i,o.bind(this)):\\\"loading\\\"===e.state?e.reloadCallback=r:this.dispatcher.send(\\\"reloadTile\\\",i,o.bind(this),e.workerID)},r.prototype.abortTile=function(t){this.dispatcher.send(\\\"abortTile\\\",{uid:t.uid,type:this.type,source:this.id},void 0,t.workerID)},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send(\\\"removeTile\\\",{uid:t.uid,type:this.type,source:this.id},void 0,t.workerID)},r.prototype.hasTransition=function(){return!1},r}(t.Evented),Z=function(e){function r(r,n,i,a){e.call(this),this.id=r,this.dispatcher=i,this.setEventedParent(a),this.type=\\\"raster\\\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\\\"xyz\\\",this.tileSize=512,this._loaded=!1,this._options=t.extend({},n),t.extend(this,t.pick(n,[\\\"url\\\",\\\"scheme\\\",\\\"tileSize\\\"]))}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),H(this._options,this.map._transformRequest,function(r,n){r?e.fire(new t.ErrorEvent(r)):n&&(t.extend(e,n),n.bounds&&(e.tileBounds=new Y(n.bounds,e.minzoom,e.maxzoom)),e.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"metadata\\\"})),e.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"content\\\"})))})},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.serialize=function(){return t.extend({},this._options)},r.prototype.hasTile=function(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)},r.prototype.loadTile=function(e,r){var n=this,i=k(e.tileID.canonical.url(this.tiles,this.scheme),this.url,this.tileSize);e.request=t.getImage(this.map._transformRequest(i,t.ResourceType.Tile),function(t,i){if(delete e.request,e.aborted)e.state=\\\"unloaded\\\",r(null);else if(t)e.state=\\\"errored\\\",r(t);else if(i){n.map._refreshExpiredTiles&&e.setExpiryData(i),delete i.cacheControl,delete i.expires;var a=n.map.painter.context,o=a.gl;e.texture=n.map.painter.getTileTexture(i.width),e.texture?e.texture.update(i,{useMipmap:!0}):(e.texture=new z(a,i,o.RGBA,{useMipmap:!0}),e.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE,o.LINEAR_MIPMAP_NEAREST),a.extTextureFilterAnisotropic&&o.texParameterf(o.TEXTURE_2D,a.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,a.extTextureFilterAnisotropicMax)),e.state=\\\"loaded\\\",r(null)}})},r.prototype.abortTile=function(t,e){t.request&&(t.request.abort(),delete t.request),e()},r.prototype.unloadTile=function(t,e){t.texture&&this.map.painter.saveTileTexture(t.texture),e()},r.prototype.hasTransition=function(){return!1},r}(t.Evented),$=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),this.type=\\\"raster-dem\\\",this.maxzoom=22,this._options=t.extend({},n),this.encoding=n.encoding||\\\"mapbox\\\"}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.serialize=function(){return{type:\\\"raster-dem\\\",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}},r.prototype.loadTile=function(e,r){var n=k(e.tileID.canonical.url(this.tiles,this.scheme),this.url,this.tileSize);e.request=t.getImage(this.map._transformRequest(n,t.ResourceType.Tile),function(t,n){if(delete e.request,e.aborted)e.state=\\\"unloaded\\\",r(null);else if(t)e.state=\\\"errored\\\",r(t);else if(n){this.map._refreshExpiredTiles&&e.setExpiryData(n),delete n.cacheControl,delete n.expires;var i=a.getImageData(n),o={uid:e.uid,coord:e.tileID,source:this.id,rawImageData:i,encoding:this.encoding};e.workerID&&\\\"expired\\\"!==e.state||(e.workerID=this.dispatcher.send(\\\"loadDEMTile\\\",o,function(t,n){t&&(e.state=\\\"errored\\\",r(t)),n&&(e.dem=n,e.needsHillshadePrepare=!0,e.state=\\\"loaded\\\",r(null))}.bind(this)))}}.bind(this)),e.neighboringTiles=this._getNeighboringTiles(e.tileID)},r.prototype._getNeighboringTiles=function(e){var r=e.canonical,n=Math.pow(2,r.z),i=(r.x-1+n)%n,a=0===r.x?e.wrap-1:e.wrap,o=(r.x+1+n)%n,s=r.x+1===n?e.wrap+1:e.wrap,l={};return l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y).key]={backfilled:!1},r.y>0&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y-1).key]={backfilled:!1}),r.y+1<n&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y+1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y+1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y+1).key]={backfilled:!1}),l},r.prototype.unloadTile=function(t){t.demTexture&&this.map.painter.saveTileTexture(t.demTexture),t.fbo&&(t.fbo.destroy(),delete t.fbo),t.dem&&delete t.dem,delete t.neighboringTiles,t.state=\\\"unloaded\\\",this.dispatcher.send(\\\"removeDEMTile\\\",{uid:t.uid,source:this.id},void 0,t.workerID)},r}(Z),J=function(e){function r(r,n,i,a){e.call(this),this.id=r,this.type=\\\"geojson\\\",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this.dispatcher=i,this.setEventedParent(a),this._data=n.data,this._options=t.extend({},n),this._collectResourceTiming=n.collectResourceTiming,this._resourceTiming=[],void 0!==n.maxzoom&&(this.maxzoom=n.maxzoom),n.type&&(this.type=n.type);var o=t.default$8/this.tileSize;this.workerOptions=t.extend({source:this.id,cluster:n.cluster||!1,geojsonVtOptions:{buffer:(void 0!==n.buffer?n.buffer:128)*o,tolerance:(void 0!==n.tolerance?n.tolerance:.375)*o,extent:t.default$8,maxZoom:this.maxzoom,lineMetrics:n.lineMetrics||!1},superclusterOptions:{maxZoom:void 0!==n.clusterMaxZoom?Math.min(n.clusterMaxZoom,this.maxzoom-1):this.maxzoom-1,extent:t.default$8,radius:(n.clusterRadius||50)*o,log:!1}},n.workerOptions)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),this._updateWorkerData(function(r){if(r)e.fire(new t.ErrorEvent(r));else{var n={dataType:\\\"source\\\",sourceDataType:\\\"metadata\\\"};e._collectResourceTiming&&e._resourceTiming&&e._resourceTiming.length>0&&(n.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event(\\\"data\\\",n))}})},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setData=function(e){var r=this;return this._data=e,this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),this._updateWorkerData(function(e){if(e)return r.fire(new t.ErrorEvent(e));var n={dataType:\\\"source\\\",sourceDataType:\\\"content\\\"};r._collectResourceTiming&&r._resourceTiming&&r._resourceTiming.length>0&&(n.resourceTiming=r._resourceTiming,r._resourceTiming=[]),r.fire(new t.Event(\\\"data\\\",n))}),this},r.prototype._updateWorkerData=function(e){var r,n,i=this,a=t.extend({},this.workerOptions),o=this._data;\\\"string\\\"==typeof o?(a.request=this.map._transformRequest((r=o,(n=t.default.document.createElement(\\\"a\\\")).href=r,n.href),t.ResourceType.Source),a.request.collectResourceTiming=this._collectResourceTiming):a.data=JSON.stringify(o),this.workerID=this.dispatcher.send(this.type+\\\".\\\"+a.source+\\\".loadData\\\",a,function(t,r){i._removed||r&&r.abandoned||(i._loaded=!0,r&&r.resourceTiming&&r.resourceTiming[i.id]&&(i._resourceTiming=r.resourceTiming[i.id].slice(0)),i.dispatcher.send(i.type+\\\".\\\"+a.source+\\\".coalesce\\\",null,null,i.workerID),e(t))},this.workerID)},r.prototype.loadTile=function(t,e){var r=this,n=void 0===t.workerID?\\\"loadTile\\\":\\\"reloadTile\\\",i={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:a.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send(n,i,function(i,a){return t.unloadVectorData(),t.aborted?e(null):i?e(i):(t.loadVectorData(a,r.map.painter,\\\"reloadTile\\\"===n),e(null))},this.workerID)},r.prototype.abortTile=function(t){t.aborted=!0},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send(\\\"removeTile\\\",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},r.prototype.onRemove=function(){this._removed=!0,this.dispatcher.send(\\\"removeSource\\\",{type:this.type,source:this.id},null,this.workerID)},r.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},r.prototype.hasTransition=function(){return!1},r}(t.Evented),K=t.createLayout([{name:\\\"a_pos\\\",type:\\\"Int16\\\",components:2},{name:\\\"a_texture_pos\\\",type:\\\"Int16\\\",components:2}]),Q=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};Q.prototype.bind=function(t,e,r,n,i,a,o,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==n.length,c=0;!l&&c<n.length;c++)this.boundPaintVertexBuffers[c]!==n[c]&&(l=!0);var u=!this.vao||this.boundProgram!==e||this.boundLayoutVertexBuffer!==r||l||this.boundIndexBuffer!==i||this.boundVertexOffset!==a||this.boundDynamicVertexBuffer!==o||this.boundDynamicVertexBuffer2!==s;!t.extVertexArrayObject||u?this.freshBind(e,r,n,i,a,o,s):(t.bindVertexArrayOES.set(this.vao),o&&o.bind(),i&&i.dynamicDraw&&i.bind(),s&&s.bind())},Q.prototype.freshBind=function(t,e,r,n,i,a,o){var s,l=t.numAttributes,c=this.context,u=c.gl;if(c.extVertexArrayObject)this.vao&&this.destroy(),this.vao=c.extVertexArrayObject.createVertexArrayOES(),c.bindVertexArrayOES.set(this.vao),s=0,this.boundProgram=t,this.boundLayoutVertexBuffer=e,this.boundPaintVertexBuffers=r,this.boundIndexBuffer=n,this.boundVertexOffset=i,this.boundDynamicVertexBuffer=a,this.boundDynamicVertexBuffer2=o;else{s=c.currentNumAttributes||0;for(var f=l;f<s;f++)u.disableVertexAttribArray(f)}e.enableAttributes(u,t);for(var h=0,p=r;h<p.length;h+=1)p[h].enableAttributes(u,t);a&&a.enableAttributes(u,t),o&&o.enableAttributes(u,t),e.bind(),e.setVertexAttribPointers(u,t,i);for(var d=0,g=r;d<g.length;d+=1){var v=g[d];v.bind(),v.setVertexAttribPointers(u,t,i)}a&&(a.bind(),a.setVertexAttribPointers(u,t,i)),n&&n.bind(),o&&(o.bind(),o.setVertexAttribPointers(u,t,i)),c.currentNumAttributes=l},Q.prototype.destroy=function(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null)};var tt=function(e){function r(t,r,n,i){e.call(this),this.id=t,this.dispatcher=n,this.coordinates=r.coordinates,this.type=\\\"image\\\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this.setEventedParent(i),this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"source\\\"})),this.url=this.options.url,t.getImage(this.map._transformRequest(this.url,t.ResourceType.Image),function(r,n){r?e.fire(new t.ErrorEvent(r)):n&&(e.image=a.getImageData(n),e._finishLoading())})},r.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"metadata\\\"})))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setCoordinates=function(e){this.coordinates=e;var r=this.map,n=e.map(function(t){return r.transform.locationCoordinate(G.convert(t)).zoomTo(0)}),i=this.centerCoord=t.getCoordinatesCenter(n);i.column=Math.floor(i.column),i.row=Math.floor(i.row),this.tileID=new t.CanonicalTileID(i.zoom,i.column,i.row),this.minzoom=this.maxzoom=i.zoom;var a=n.map(function(e){var r=e.zoomTo(i.zoom);return new t.default$1(Math.round((r.column-i.column)*t.default$8),Math.round((r.row-i.row)*t.default$8))});return this._boundsArray=new t.RasterBoundsArray,this._boundsArray.emplaceBack(a[0].x,a[0].y,0,0),this._boundsArray.emplaceBack(a[1].x,a[1].y,t.default$8,0),this._boundsArray.emplaceBack(a[3].x,a[3].y,0,t.default$8),this._boundsArray.emplaceBack(a[2].x,a[2].y,t.default$8,t.default$8),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",sourceDataType:\\\"content\\\"})),this},r.prototype.prepare=function(){if(0!==Object.keys(this.tiles).length&&this.image){var t=this.map.painter.context,e=t.gl;for(var r in this.boundsBuffer||(this.boundsBuffer=t.createVertexBuffer(this._boundsArray,K.members)),this.boundsVAO||(this.boundsVAO=new Q),this.texture||(this.texture=new z(t,this.image,e.RGBA),this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE)),this.tiles){var n=this.tiles[r];\\\"loaded\\\"!==n.state&&(n.state=\\\"loaded\\\",n.texture=this.texture)}}},r.prototype.loadTile=function(t,e){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={},e(null)):(t.state=\\\"errored\\\",e(null))},r.prototype.serialize=function(){return{type:\\\"image\\\",url:this.options.url,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return!1},r}(t.Evented),et=function(e){function r(t,r,n,i){e.call(this,t,r,n,i),this.roundZoom=!0,this.type=\\\"video\\\",this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this,r=this.options;this.urls=[];for(var n=0,i=r.urls;n<i.length;n+=1){var a=i[n];e.urls.push(e.map._transformRequest(a,t.ResourceType.Source).url)}t.getVideo(this.urls,function(r,n){r?e.fire(new t.ErrorEvent(r)):n&&(e.video=n,e.video.loop=!0,e.video.addEventListener(\\\"playing\\\",function(){e.map._rerender()}),e.map&&e.video.play(),e._finishLoading())})},r.prototype.getVideo=function(){return this.video},r.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},r.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var t=this.map.painter.context,e=t.gl;for(var r in this.boundsBuffer||(this.boundsBuffer=t.createVertexBuffer(this._boundsArray,K.members)),this.boundsVAO||(this.boundsVAO=new Q),this.texture?this.video.paused||(this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE),e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,this.video)):(this.texture=new z(t,this.video,e.RGBA),this.texture.bind(e.LINEAR,e.CLAMP_TO_EDGE)),this.tiles){var n=this.tiles[r];\\\"loaded\\\"!==n.state&&(n.state=\\\"loaded\\\",n.texture=this.texture)}}},r.prototype.serialize=function(){return{type:\\\"video\\\",urls:this.urls,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this.video&&!this.video.paused},r}(tt),rt=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some(function(t){return!Array.isArray(t)||2!==t.length||t.some(function(t){return\\\"number\\\"!=typeof t})})||this.fire(new t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,null,'\\\"coordinates\\\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,null,'missing required property \\\"coordinates\\\"'))),n.animate&&\\\"boolean\\\"!=typeof n.animate&&this.fire(new t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,null,'optional \\\"animate\\\" property must be a boolean value'))),n.canvas?\\\"string\\\"==typeof n.canvas||n.canvas instanceof t.default.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,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 t.ErrorEvent(new t.default$9(\\\"sources.\\\"+r,null,'missing required property \\\"canvas\\\"'))),this.options=n,this.animate=void 0===n.animate||n.animate}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){this.canvas||(this.canvas=this.options.canvas instanceof t.default.HTMLCanvasElement?this.options.canvas:t.default.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error(\\\"Canvas dimensions cannot be less than or equal to zero.\\\"))):(this.play=function(){this._playing=!0,this.map._rerender()},this.pause=function(){this._playing=!1},this._finishLoading())},r.prototype.getCanvas=function(){return this.canvas},r.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},r.prototype.onRemove=function(){this.pause()},r.prototype.prepare=function(){var t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,K.members)),this.boundsVAO||(this.boundsVAO=new Q),this.texture?t?this.texture.update(this.canvas):this._playing&&(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.canvas)):(this.texture=new z(e,this.canvas,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];\\\"loaded\\\"!==i.state&&(i.state=\\\"loaded\\\",i.texture=this.texture)}}},r.prototype.serialize=function(){return{type:\\\"canvas\\\",coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this._playing},r.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];t<e.length;t+=1){var r=e[t];if(isNaN(r)||r<=0)return!0}return!1},r}(tt),nt={vector:X,raster:Z,\\\"raster-dem\\\":$,geojson:J,video:et,image:tt,canvas:rt},it=function(e,r,n,i){var a=new nt[r.type](e,r,n,i);if(a.id!==e)throw new Error(\\\"Expected Source id to be \\\"+e+\\\" instead of \\\"+a.id);return t.bindAll([\\\"load\\\",\\\"abort\\\",\\\"unload\\\",\\\"serialize\\\",\\\"prepare\\\"],a),a};function at(t,e,r,n,i){var a=i.maxPitchScaleFactor(),o=t.tilesIn(r,a);o.sort(ot);for(var s=[],l=0,c=o;l<c.length;l+=1){var u=c[l];s.push({wrappedTileID:u.tileID.wrapped().key,queryResults:u.tile.queryRenderedFeatures(e,u.queryGeometry,u.scale,n,i,a,t.transform.calculatePosMatrix(u.tileID.toUnwrapped()))})}return function(t){for(var e={},r={},n=0,i=t;n<i.length;n+=1){var a=i[n],o=a.queryResults,s=a.wrappedTileID,l=r[s]=r[s]||{};for(var c in o)for(var u=o[c],f=l[c]=l[c]||{},h=e[c]=e[c]||[],p=0,d=u;p<d.length;p+=1){var g=d[p];f[g.featureIndex]||(f[g.featureIndex]=!0,h.push(g.feature))}}return e}(s)}function ot(t,e){var r=t.tileID,n=e.tileID;return r.overscaledZ-n.overscaledZ||r.canonical.y-n.canonical.y||r.wrap-n.wrap||r.canonical.x-n.canonical.x}var st=function(e,r){this.tileID=e,this.uid=t.uniqueId(),this.uses=0,this.tileSize=r,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.expiredRequestCount=0,this.state=\\\"loading\\\"};st.prototype.registerFadeDuration=function(t){var e=t+this.timeAdded;e<a.now()||this.fadeEndTime&&e<this.fadeEndTime||(this.fadeEndTime=e)},st.prototype.wasRequested=function(){return\\\"errored\\\"===this.state||\\\"loaded\\\"===this.state||\\\"reloading\\\"===this.state},st.prototype.loadVectorData=function(e,r,n){if(this.hasData()&&this.unloadVectorData(),this.state=\\\"loaded\\\",e){if(e.featureIndex&&(this.latestFeatureIndex=e.featureIndex,e.rawTileData?(this.latestRawTileData=e.rawTileData,this.latestFeatureIndex.rawTileData=e.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=e.collisionBoxArray,this.buckets=function(t,e){var r={};if(!e)return r;for(var n=0,i=t;n<i.length;n+=1){var a=i[n],o=a.layerIds.map(function(t){return e.getLayer(t)}).filter(Boolean);if(0!==o.length){a.layers=o;for(var s=0,l=o;s<l.length;s+=1)r[l[s].id]=a}}return r}(e.buckets,r.style),n)for(var i in this.buckets){var a=this.buckets[i];a instanceof t.default$14&&(a.justReloaded=!0)}for(var o in this.queryPadding=0,this.buckets){var s=this.buckets[o];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(s.layerIds[0]).queryRadius(s))}e.iconAtlasImage&&(this.iconAtlasImage=e.iconAtlasImage),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage)}else this.collisionBoxArray=new t.CollisionBoxArray},st.prototype.unloadVectorData=function(){for(var t in this.buckets)this.buckets[t].destroy();this.buckets={},this.iconAtlasTexture&&this.iconAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state=\\\"unloaded\\\"},st.prototype.unloadDEMData=function(){this.dem=null,this.neighboringTiles=null,this.state=\\\"unloaded\\\"},st.prototype.getBucket=function(t){return this.buckets[t.id]},st.prototype.upload=function(t){for(var e in this.buckets){var r=this.buckets[e];r.uploaded||(r.upload(t),r.uploaded=!0)}var n=t.gl;this.iconAtlasImage&&(this.iconAtlasTexture=new z(t,this.iconAtlasImage,n.RGBA),this.iconAtlasImage=null),this.glyphAtlasImage&&(this.glyphAtlasTexture=new z(t,this.glyphAtlasImage,n.ALPHA),this.glyphAtlasImage=null)},st.prototype.queryRenderedFeatures=function(t,e,r,n,i,a,o){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:e,scale:r,tileSize:this.tileSize,posMatrix:o,transform:i,params:n,queryPadding:this.queryPadding*a},t):{}},st.prototype.querySourceFeatures=function(e,r){if(this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData){var n=this.latestFeatureIndex.loadVTLayers(),i=r?r.sourceLayer:\\\"\\\",a=n._geojsonTileLayer||n[i];if(a)for(var o=t.default$13(r&&r.filter),s={z:this.tileID.overscaledZ,x:this.tileID.canonical.x,y:this.tileID.canonical.y},l=0;l<a.length;l++){var c=a.feature(l);if(o(new t.default$16(this.tileID.overscaledZ),c)){var u=new t.default$12(c,s.z,s.x,s.y);u.tile=s,e.push(u)}}}},st.prototype.clearMask=function(){this.segments&&(this.segments.destroy(),delete this.segments),this.maskedBoundsBuffer&&(this.maskedBoundsBuffer.destroy(),delete this.maskedBoundsBuffer),this.maskedIndexBuffer&&(this.maskedIndexBuffer.destroy(),delete this.maskedIndexBuffer)},st.prototype.setMask=function(e,r){if(!t.default$10(this.mask,e)&&(this.mask=e,this.clearMask(),!t.default$10(e,{0:!0}))){var n=new t.RasterBoundsArray,i=new t.TriangleIndexArray;this.segments=new t.default$15,this.segments.prepareSegment(0,n,i);for(var a=Object.keys(e),o=0;o<a.length;o++){var s=e[a[o]],l=t.default$8>>s.z,c=new t.default$1(s.x*l,s.y*l),u=new t.default$1(c.x+l,c.y+l),f=this.segments.prepareSegment(4,n,i);n.emplaceBack(c.x,c.y,c.x,c.y),n.emplaceBack(u.x,c.y,u.x,c.y),n.emplaceBack(c.x,u.y,c.x,u.y),n.emplaceBack(u.x,u.y,u.x,u.y);var h=f.vertexLength;i.emplaceBack(h,h+1,h+2),i.emplaceBack(h+1,h+2,h+3),f.vertexLength+=4,f.primitiveLength+=2}this.maskedBoundsBuffer=r.createVertexBuffer(n,K.members),this.maskedIndexBuffer=r.createIndexBuffer(i)}},st.prototype.hasData=function(){return\\\"loaded\\\"===this.state||\\\"reloading\\\"===this.state||\\\"expired\\\"===this.state},st.prototype.setExpiryData=function(e){var r=this.expirationTime;if(e.cacheControl){var n=t.parseCacheControl(e.cacheControl);n[\\\"max-age\\\"]&&(this.expirationTime=Date.now()+1e3*n[\\\"max-age\\\"])}else e.expires&&(this.expirationTime=new Date(e.expires).getTime());if(this.expirationTime){var i=Date.now(),a=!1;if(this.expirationTime>i)a=!1;else if(r)if(this.expirationTime<r)a=!0;else{var o=this.expirationTime-r;o?this.expirationTime=i+Math.max(o,3e4):a=!0}else a=!0;a?(this.expiredRequestCount++,this.state=\\\"expired\\\"):this.expiredRequestCount=0}},st.prototype.getExpiryTimeout=function(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-(new Date).getTime(),Math.pow(2,31)-1)};var lt=function(t,e){this.max=t,this.onRemove=e,this.reset()};lt.prototype.reset=function(){for(var t in this.data)for(var e=0,r=this.data[t];e<r.length;e+=1){var n=r[e];n.timeout&&clearTimeout(n.timeout),this.onRemove(n.value)}return this.data={},this.order=[],this},lt.prototype.add=function(t,e,r){var n=this,i=t.wrapped().key;void 0===this.data[i]&&(this.data[i]=[]);var a={value:e,timeout:void 0};if(void 0!==r&&(a.timeout=setTimeout(function(){n.remove(t,a)},r)),this.data[i].push(a),this.order.push(i),this.order.length>this.max){var o=this._getAndRemoveByKey(this.order[0]);o&&this.onRemove(o)}return this},lt.prototype.has=function(t){return t.wrapped().key in this.data},lt.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},lt.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},lt.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},lt.prototype.remove=function(t,e){if(!this.has(t))return this;var r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this},lt.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this};var ct=function(t,e,r){this.context=t;var n=t.gl;this.buffer=n.createBuffer(),this.dynamicDraw=Boolean(r),this.unbindVAO(),t.bindElementBuffer.set(this.buffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?n.DYNAMIC_DRAW:n.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer};ct.prototype.unbindVAO=function(){this.context.extVertexArrayObject&&this.context.bindVertexArrayOES.set(null)},ct.prototype.bind=function(){this.context.bindElementBuffer.set(this.buffer)},ct.prototype.updateData=function(t){var e=this.context.gl;this.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer)},ct.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)};var ut={Int8:\\\"BYTE\\\",Uint8:\\\"UNSIGNED_BYTE\\\",Int16:\\\"SHORT\\\",Uint16:\\\"UNSIGNED_SHORT\\\",Int32:\\\"INT\\\",Uint32:\\\"UNSIGNED_INT\\\",Float32:\\\"FLOAT\\\"},ft=function(t,e,r,n){this.length=e.length,this.attributes=r,this.itemSize=e.bytesPerElement,this.dynamicDraw=n,this.context=t;var i=t.gl;this.buffer=i.createBuffer(),t.bindVertexBuffer.set(this.buffer),i.bufferData(i.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?i.DYNAMIC_DRAW:i.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer};ft.prototype.bind=function(){this.context.bindVertexBuffer.set(this.buffer)},ft.prototype.updateData=function(t){var e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer)},ft.prototype.enableAttributes=function(t,e){for(var r=0;r<this.attributes.length;r++){var n=this.attributes[r],i=e.attributes[n.name];void 0!==i&&t.enableVertexAttribArray(i)}},ft.prototype.setVertexAttribPointers=function(t,e,r){for(var n=0;n<this.attributes.length;n++){var i=this.attributes[n],a=e.attributes[i.name];void 0!==a&&t.vertexAttribPointer(a,i.components,t[ut[i.type]],!1,this.itemSize,i.offset+this.itemSize*(r||0))}},ft.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)};var ht=function(e){this.context=e,this.current=t.default$6.transparent};ht.prototype.get=function(){return this.current},ht.prototype.set=function(t){var e=this.current;t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a||(this.context.gl.clearColor(t.r,t.g,t.b,t.a),this.current=t)};var pt=function(t){this.context=t,this.current=1};pt.prototype.get=function(){return this.current},pt.prototype.set=function(t){this.current!==t&&(this.context.gl.clearDepth(t),this.current=t)};var dt=function(t){this.context=t,this.current=0};dt.prototype.get=function(){return this.current},dt.prototype.set=function(t){this.current!==t&&(this.context.gl.clearStencil(t),this.current=t)};var gt=function(t){this.context=t,this.current=[!0,!0,!0,!0]};gt.prototype.get=function(){return this.current},gt.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]||(this.context.gl.colorMask(t[0],t[1],t[2],t[3]),this.current=t)};var vt=function(t){this.context=t,this.current=!0};vt.prototype.get=function(){return this.current},vt.prototype.set=function(t){this.current!==t&&(this.context.gl.depthMask(t),this.current=t)};var mt=function(t){this.context=t,this.current=255};mt.prototype.get=function(){return this.current},mt.prototype.set=function(t){this.current!==t&&(this.context.gl.stencilMask(t),this.current=t)};var yt=function(t){this.context=t,this.current={func:t.gl.ALWAYS,ref:0,mask:255}};yt.prototype.get=function(){return this.current},yt.prototype.set=function(t){var e=this.current;t.func===e.func&&t.ref===e.ref&&t.mask===e.mask||(this.context.gl.stencilFunc(t.func,t.ref,t.mask),this.current=t)};var xt=function(t){this.context=t;var e=this.context.gl;this.current=[e.KEEP,e.KEEP,e.KEEP]};xt.prototype.get=function(){return this.current},xt.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]||(this.context.gl.stencilOp(t[0],t[1],t[2]),this.current=t)};var bt=function(t){this.context=t,this.current=!1};bt.prototype.get=function(){return this.current},bt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this.current=t}};var _t=function(t){this.context=t,this.current=[0,1]};_t.prototype.get=function(){return this.current},_t.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]||(this.context.gl.depthRange(t[0],t[1]),this.current=t)};var wt=function(t){this.context=t,this.current=!1};wt.prototype.get=function(){return this.current},wt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this.current=t}};var kt=function(t){this.context=t,this.current=t.gl.LESS};kt.prototype.get=function(){return this.current},kt.prototype.set=function(t){this.current!==t&&(this.context.gl.depthFunc(t),this.current=t)};var Mt=function(t){this.context=t,this.current=!1};Mt.prototype.get=function(){return this.current},Mt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.BLEND):e.disable(e.BLEND),this.current=t}};var At=function(t){this.context=t;var e=this.context.gl;this.current=[e.ONE,e.ZERO]};At.prototype.get=function(){return this.current},At.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]||(this.context.gl.blendFunc(t[0],t[1]),this.current=t)};var Tt=function(e){this.context=e,this.current=t.default$6.transparent};Tt.prototype.get=function(){return this.current},Tt.prototype.set=function(t){var e=this.current;t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a||(this.context.gl.blendColor(t.r,t.g,t.b,t.a),this.current=t)};var St=function(t){this.context=t,this.current=null};St.prototype.get=function(){return this.current},St.prototype.set=function(t){this.current!==t&&(this.context.gl.useProgram(t),this.current=t)};var Et=function(t){this.context=t,this.current=1};Et.prototype.get=function(){return this.current},Et.prototype.set=function(e){var r=this.context.lineWidthRange,n=t.clamp(e,r[0],r[1]);this.current!==n&&(this.context.gl.lineWidth(n),this.current=e)};var Ct=function(t){this.context=t,this.current=t.gl.TEXTURE0};Ct.prototype.get=function(){return this.current},Ct.prototype.set=function(t){this.current!==t&&(this.context.gl.activeTexture(t),this.current=t)};var Lt=function(t){this.context=t;var e=this.context.gl;this.current=[0,0,e.drawingBufferWidth,e.drawingBufferHeight]};Lt.prototype.get=function(){return this.current},Lt.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]||(this.context.gl.viewport(t[0],t[1],t[2],t[3]),this.current=t)};var zt=function(t){this.context=t,this.current=null};zt.prototype.get=function(){return this.current},zt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindFramebuffer(e.FRAMEBUFFER,t),this.current=t}};var Ot=function(t){this.context=t,this.current=null};Ot.prototype.get=function(){return this.current},Ot.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindRenderbuffer(e.RENDERBUFFER,t),this.current=t}};var It=function(t){this.context=t,this.current=null};It.prototype.get=function(){return this.current},It.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindTexture(e.TEXTURE_2D,t),this.current=t}};var Pt=function(t){this.context=t,this.current=null};Pt.prototype.get=function(){return this.current},Pt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindBuffer(e.ARRAY_BUFFER,t),this.current=t}};var Dt=function(t){this.context=t,this.current=null};Dt.prototype.get=function(){return this.current},Dt.prototype.set=function(t){var e=this.context.gl;e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),this.current=t};var Rt=function(t){this.context=t,this.current=null};Rt.prototype.get=function(){return this.current},Rt.prototype.set=function(t){this.current!==t&&this.context.extVertexArrayObject&&(this.context.extVertexArrayObject.bindVertexArrayOES(t),this.current=t)};var Bt=function(t){this.context=t,this.current=4};Bt.prototype.get=function(){return this.current},Bt.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.pixelStorei(e.UNPACK_ALIGNMENT,t),this.current=t}};var Ft=function(t){this.context=t,this.current=!1};Ft.prototype.get=function(){return this.current},Ft.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t),this.current=t}};var Nt=function(t,e){this.context=t,this.current=null,this.parent=e};Nt.prototype.get=function(){return this.current};var jt=function(t){function e(e,r){t.call(this,e,r),this.dirty=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){if(this.dirty||this.current!==t){var e=this.context.gl;this.context.bindFramebuffer.set(this.parent),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0),this.current=t,this.dirty=!1}},e.prototype.setDirty=function(){this.dirty=!0},e}(Nt),Vt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;this.context.bindFramebuffer.set(this.parent),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t),this.current=t}},e}(Nt),Ut=function(t,e,r){this.context=t,this.width=e,this.height=r;var n=t.gl,i=this.framebuffer=n.createFramebuffer();this.colorAttachment=new jt(t,i),this.depthAttachment=new Vt(t,i)};Ut.prototype.destroy=function(){var t=this.context.gl,e=this.colorAttachment.get();e&&t.deleteTexture(e);var r=this.depthAttachment.get();r&&t.deleteRenderbuffer(r),t.deleteFramebuffer(this.framebuffer)};var qt=function(t,e,r){this.func=t,this.mask=e,this.range=r};qt.ReadOnly=!1,qt.ReadWrite=!0,qt.disabled=new qt(519,qt.ReadOnly,[0,1]);var Ht=function(t,e,r,n,i,a){this.test=t,this.ref=e,this.mask=r,this.fail=n,this.depthFail=i,this.pass=a};Ht.disabled=new Ht({func:519,mask:0},0,0,7680,7680,7680);var Gt=function(t,e,r){this.blendFunction=t,this.blendColor=e,this.mask=r};Gt.disabled=new Gt(Gt.Replace=[1,0],t.default$6.transparent,[!1,!1,!1,!1]),Gt.unblended=new Gt(Gt.Replace,t.default$6.transparent,[!0,!0,!0,!0]),Gt.alphaBlended=new Gt([1,771],t.default$6.transparent,[!0,!0,!0,!0]);var Wt=function(t){this.gl=t,this.extVertexArrayObject=this.gl.getExtension(\\\"OES_vertex_array_object\\\"),this.lineWidthRange=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE),this.clearColor=new ht(this),this.clearDepth=new pt(this),this.clearStencil=new dt(this),this.colorMask=new gt(this),this.depthMask=new vt(this),this.stencilMask=new mt(this),this.stencilFunc=new yt(this),this.stencilOp=new xt(this),this.stencilTest=new bt(this),this.depthRange=new _t(this),this.depthTest=new wt(this),this.depthFunc=new kt(this),this.blend=new Mt(this),this.blendFunc=new At(this),this.blendColor=new Tt(this),this.program=new St(this),this.lineWidth=new Et(this),this.activeTexture=new Ct(this),this.viewport=new Lt(this),this.bindFramebuffer=new zt(this),this.bindRenderbuffer=new Ot(this),this.bindTexture=new It(this),this.bindVertexBuffer=new Pt(this),this.bindElementBuffer=new Dt(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new Rt(this),this.pixelStoreUnpack=new Bt(this),this.pixelStoreUnpackPremultiplyAlpha=new Ft(this),this.extTextureFilterAnisotropic=t.getExtension(\\\"EXT_texture_filter_anisotropic\\\")||t.getExtension(\\\"MOZ_EXT_texture_filter_anisotropic\\\")||t.getExtension(\\\"WEBKIT_EXT_texture_filter_anisotropic\\\"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=t.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureHalfFloat=t.getExtension(\\\"OES_texture_half_float\\\"),this.extTextureHalfFloat&&t.getExtension(\\\"OES_texture_half_float_linear\\\")};Wt.prototype.createIndexBuffer=function(t,e){return new ct(this,t,e)},Wt.prototype.createVertexBuffer=function(t,e,r){return new ft(this,t,e,r)},Wt.prototype.createRenderbuffer=function(t,e,r){var n=this.gl,i=n.createRenderbuffer();return this.bindRenderbuffer.set(i),n.renderbufferStorage(n.RENDERBUFFER,t,e,r),this.bindRenderbuffer.set(null),i},Wt.prototype.createFramebuffer=function(t,e){return new Ut(this,t,e)},Wt.prototype.clear=function(t){var e=t.color,r=t.depth,n=this.gl,i=0;e&&(i|=n.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),void 0!==r&&(i|=n.DEPTH_BUFFER_BIT,this.clearDepth.set(r),this.depthMask.set(!0)),n.clear(i)},Wt.prototype.setDepthMode=function(t){t.func!==this.gl.ALWAYS||t.mask?(this.depthTest.set(!0),this.depthFunc.set(t.func),this.depthMask.set(t.mask),this.depthRange.set(t.range)):this.depthTest.set(!1)},Wt.prototype.setStencilMode=function(t){t.test.func!==this.gl.ALWAYS||t.mask?(this.stencilTest.set(!0),this.stencilMask.set(t.mask),this.stencilOp.set([t.fail,t.depthFail,t.pass]),this.stencilFunc.set({func:t.test.func,ref:t.ref,mask:t.test.mask})):this.stencilTest.set(!1)},Wt.prototype.setColorMode=function(e){t.default$10(e.blendFunction,Gt.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask)};var Yt=function(e){function r(t,r,n){var i=this;e.call(this),this.id=t,this.dispatcher=n,this.on(\\\"data\\\",function(t){\\\"source\\\"===t.dataType&&\\\"metadata\\\"===t.sourceDataType&&(i._sourceLoaded=!0),i._sourceLoaded&&!i._paused&&\\\"source\\\"===t.dataType&&\\\"content\\\"===t.sourceDataType&&(i.reload(),i.transform&&i.update(i.transform))}),this.on(\\\"error\\\",function(){i._sourceErrored=!0}),this._source=it(t,r,n,this),this._tiles={},this._cache=new lt(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._isIdRenderable=this._isIdRenderable.bind(this),this._coveredTiles={}}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.onAdd=function(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._source&&this._source.onAdd&&this._source.onAdd(t)},r.prototype.onRemove=function(t){this._source&&this._source.onRemove&&this._source.onRemove(t)},r.prototype.loaded=function(){if(this._sourceErrored)return!0;if(!this._sourceLoaded)return!1;for(var t in this._tiles){var e=this._tiles[t];if(\\\"loaded\\\"!==e.state&&\\\"errored\\\"!==e.state)return!1}return!0},r.prototype.getSource=function(){return this._source},r.prototype.pause=function(){this._paused=!0},r.prototype.resume=function(){if(this._paused){var t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform)}},r.prototype._loadTile=function(t,e){return this._source.loadTile(t,e)},r.prototype._unloadTile=function(t){if(this._source.unloadTile)return this._source.unloadTile(t,function(){})},r.prototype._abortTile=function(t){if(this._source.abortTile)return this._source.abortTile(t,function(){})},r.prototype.serialize=function(){return this._source.serialize()},r.prototype.prepare=function(t){for(var e in this._source.prepare&&this._source.prepare(),this._tiles)this._tiles[e].upload(t)},r.prototype.getIds=function(){var e=this;return Object.keys(this._tiles).map(Number).sort(function(r,n){var i=e._tiles[r].tileID,a=e._tiles[n].tileID,o=new t.default$1(i.canonical.x,i.canonical.y).rotate(e.transform.angle),s=new t.default$1(a.canonical.x,a.canonical.y).rotate(e.transform.angle);return i.overscaledZ-a.overscaledZ||s.y-o.y||s.x-o.x})},r.prototype.getRenderableIds=function(){return this.getIds().filter(this._isIdRenderable)},r.prototype.hasRenderableParent=function(t){var e=this.findLoadedParent(t,0,{});return!!e&&this._isIdRenderable(e.tileID.key)},r.prototype._isIdRenderable=function(t){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]},r.prototype.reload=function(){if(this._paused)this._shouldReloadOnResume=!0;else for(var t in this._cache.reset(),this._tiles)this._reloadTile(t,\\\"reloading\\\")},r.prototype._reloadTile=function(t,e){var r=this._tiles[t];r&&(\\\"loading\\\"!==r.state&&(r.state=e),this._loadTile(r,this._tileLoaded.bind(this,r,t,e)))},r.prototype._tileLoaded=function(e,r,n,i){if(i)return e.state=\\\"errored\\\",void(404!==i.status?this._source.fire(new t.ErrorEvent(i,{tile:e})):this.update(this.transform));e.timeAdded=a.now(),\\\"expired\\\"===n&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(r,e),\\\"raster-dem\\\"===this.getSource().type&&e.dem&&this._backfillDEM(e),this._source.fire(new t.Event(\\\"data\\\",{dataType:\\\"source\\\",tile:e,coord:e.tileID})),this.map&&(this.map.painter.tileExtentVAO.vao=null)},r.prototype._backfillDEM=function(t){for(var e=this.getRenderableIds(),r=0;r<e.length;r++){var n=e[r];if(t.neighboringTiles&&t.neighboringTiles[n]){var i=this.getTileByID(n);a(t,i),a(i,t)}}function a(t,e){t.needsHillshadePrepare=!0;var r=e.tileID.canonical.x-t.tileID.canonical.x,n=e.tileID.canonical.y-t.tileID.canonical.y,i=Math.pow(2,t.tileID.canonical.z),a=e.tileID.key;0===r&&0===n||Math.abs(n)>1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}},r.prototype.getTile=function(t){return this.getTileByID(t.key)},r.prototype.getTileByID=function(t){return this._tiles[t]},r.prototype.getZoom=function(t){return t.zoom+t.scaleZoom(t.tileSize/this._source.tileSize)},r.prototype._findLoadedChildren=function(t,e,r){var n=!1;for(var i in this._tiles){var a=this._tiles[i];if(!(r[i]||!a.hasData()||a.tileID.overscaledZ<=t.overscaledZ||a.tileID.overscaledZ>e)){var o=Math.pow(2,a.tileID.canonical.z-t.canonical.z);if(Math.floor(a.tileID.canonical.x/o)===t.canonical.x&&Math.floor(a.tileID.canonical.y/o)===t.canonical.y)for(r[i]=a.tileID,n=!0;a&&a.tileID.overscaledZ-1>t.overscaledZ;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);if(!s)break;(a=this._tiles[s.key])&&a.hasData()&&(delete r[i],r[s.key]=s)}}}return n},r.prototype.findLoadedParent=function(t,e,r){for(var n=t.overscaledZ-1;n>=e;n--){var i=t.scaledTo(n);if(!i)return;var a=String(i.key),o=this._tiles[a];if(o&&o.hasData())return r[a]=i,o;if(this._cache.has(i))return r[a]=i,this._cache.get(i)}},r.prototype.updateCacheSize=function(t){var e=(Math.ceil(t.width/this._source.tileSize)+1)*(Math.ceil(t.height/this._source.tileSize)+1),r=Math.floor(5*e),n=\\\"number\\\"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,r):r;this._cache.setMaxSize(n)},r.prototype.handleWrapJump=function(t){var e=(t-(void 0===this._prevLng?t:this._prevLng))/360,r=Math.round(e);if(this._prevLng=t,r){var n={};for(var i in this._tiles){var a=this._tiles[i];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+r),n[a.tileID.key]=a}for(var o in this._tiles=n,this._timers)clearTimeout(this._timers[o]),delete this._timers[o];for(var s in this._tiles){var l=this._tiles[s];this._setTileReloadTimer(s,l)}}},r.prototype.update=function(e){var n=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)}):(i=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter(function(t){return n._source.hasTile(t)}))):i=[];var o,s=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(e)),l=Math.max(s-r.maxOverzooming,this._source.minzoom),c=Math.max(s+r.maxUnderzooming,this._source.minzoom),u=this._updateRetainedTiles(i,s),f={};if(Zt(this._source.type))for(var h=Object.keys(u),p=0;p<h.length;p++){var d=h[p],g=u[d],v=n._tiles[d];if(v&&(void 0===v.fadeEndTime||v.fadeEndTime>=a.now())){n._findLoadedChildren(g,c,u)&&(u[d]=g);var m=n.findLoadedParent(g,l,f);m&&n._addTile(m.tileID)}}for(o in f)u[o]||(n._coveredTiles[o]=!0);for(o in f)u[o]=f[o];for(var y=t.keysDifference(this._tiles,u),x=0;x<y.length;x++)n._removeTile(y[x])}},r.prototype._updateRetainedTiles=function(t,e){for(var n={},i={},a=Math.max(e-r.maxOverzooming,this._source.minzoom),o=Math.max(e+r.maxUnderzooming,this._source.minzoom),s=0;s<t.length;s++){var l=t[s],c=this._addTile(l),u=!1;if(c.hasData())n[l.key]=l;else{u=c.wasRequested(),n[l.key]=l;var f=!0;if(e+1>this._source.maxzoom){var h=l.children(this._source.maxzoom)[0],p=this.getTile(h);p&&p.hasData()?n[h.key]=h:f=!1}else{this._findLoadedChildren(l,o,n);for(var d=l.children(this._source.maxzoom),g=0;g<d.length;g++)if(!n[d[g].key]){f=!1;break}}if(!f)for(var v=l.overscaledZ-1;v>=a;--v){var m=l.scaledTo(v);if(i[m.key])break;if(i[m.key]=!0,!(c=this.getTile(m))&&u&&(c=this._addTile(m)),c&&(n[m.key]=m,u=c.wasRequested(),c.hasData()))break}}}return n},r.prototype._addTile=function(e){var r=this._tiles[e.key];if(r)return r;(r=this._cache.getAndRemove(e))&&(this._setTileReloadTimer(e.key,r),r.tileID=e);var n=Boolean(r);return n||(r=new st(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(r,this._tileLoaded.bind(this,r,e.key,r.state))),r?(r.uses++,this._tiles[e.key]=r,n||this._source.fire(new t.Event(\\\"dataloading\\\",{tile:r,coord:r.tileID,dataType:\\\"source\\\"})),r):null},r.prototype._setTileReloadTimer=function(t,e){var r=this;t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);var n=e.getExpiryTimeout();n&&(this._timers[t]=setTimeout(function(){r._reloadTile(t,\\\"expired\\\"),delete r._timers[t]},n))},r.prototype._removeTile=function(t){var e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},r.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},r.prototype.tilesIn=function(e,r){for(var n=[],i=this.getIds(),a=1/0,o=1/0,s=-1/0,l=-1/0,c=e[0].zoom,u=0;u<e.length;u++){var f=e[u];a=Math.min(a,f.column),o=Math.min(o,f.row),s=Math.max(s,f.column),l=Math.max(l,f.row)}for(var h=0;h<i.length;h++){var p=this._tiles[i[h]],d=p.tileID,g=Math.pow(2,this.transform.zoom-p.tileID.overscaledZ),v=r*p.queryPadding*t.default$8/p.tileSize/g,m=[Xt(d,new t.default$17(a,o,c)),Xt(d,new t.default$17(s,l,c))];if(m[0].x-v<t.default$8&&m[0].y-v<t.default$8&&m[1].x+v>=0&&m[1].y+v>=0){for(var y=[],x=0;x<e.length;x++)y.push(Xt(d,e[x]));n.push({tile:p,tileID:d,queryGeometry:[y],scale:g})}}return n},r.prototype.getVisibleCoordinates=function(){for(var t=this,e=this.getRenderableIds().map(function(e){return t._tiles[e].tileID}),r=0,n=e;r<n.length;r+=1){var i=n[r];i.posMatrix=t.transform.calculatePosMatrix(i.toUnwrapped())}return e},r.prototype.hasTransition=function(){if(this._source.hasTransition())return!0;if(Zt(this._source.type))for(var t in this._tiles){var e=this._tiles[t];if(void 0!==e.fadeEndTime&&e.fadeEndTime>=a.now())return!0}return!1},r}(t.Evented);function Xt(e,r){var n=r.zoomTo(e.canonical.z);return new t.default$1((n.column-(e.canonical.x+e.wrap*Math.pow(2,e.canonical.z)))*t.default$8,(n.row-e.canonical.y)*t.default$8)}function Zt(t){return\\\"raster\\\"===t||\\\"image\\\"===t||\\\"video\\\"===t}function $t(){return new t.default.Worker(En.workerUrl)}Yt.maxOverzooming=10,Yt.maxUnderzooming=3;var Jt,Kt=function(){this.active={}};function Qt(e,r){var n={};for(var i in e)\\\"ref\\\"!==i&&(n[i]=e[i]);return t.default$18.forEach(function(t){t in r&&(n[t]=r[t])}),n}function te(t){t=t.slice();for(var e=Object.create(null),r=0;r<t.length;r++)e[t[r].id]=t[r];for(var n=0;n<t.length;n++)\\\"ref\\\"in t[n]&&(t[n]=Qt(t[n],e[t[n].ref]));return t}Kt.prototype.acquire=function(t){if(!this.workers){var e=En.workerCount;for(this.workers=[];this.workers.length<e;)this.workers.push(new $t)}return this.active[t]=!0,this.workers.slice()},Kt.prototype.release=function(t){delete this.active[t],0===Object.keys(this.active).length&&(this.workers.forEach(function(t){t.terminate()}),this.workers=null)};var ee={setStyle:\\\"setStyle\\\",addLayer:\\\"addLayer\\\",removeLayer:\\\"removeLayer\\\",setPaintProperty:\\\"setPaintProperty\\\",setLayoutProperty:\\\"setLayoutProperty\\\",setFilter:\\\"setFilter\\\",addSource:\\\"addSource\\\",removeSource:\\\"removeSource\\\",setGeoJSONSourceData:\\\"setGeoJSONSourceData\\\",setLayerZoomRange:\\\"setLayerZoomRange\\\",setLayerProperty:\\\"setLayerProperty\\\",setCenter:\\\"setCenter\\\",setZoom:\\\"setZoom\\\",setBearing:\\\"setBearing\\\",setPitch:\\\"setPitch\\\",setSprite:\\\"setSprite\\\",setGlyphs:\\\"setGlyphs\\\",setTransition:\\\"setTransition\\\",setLight:\\\"setLight\\\"};function re(t,e,r){r.push({command:ee.addSource,args:[t,e[t]]})}function ne(t,e,r){e.push({command:ee.removeSource,args:[t]}),r[t]=!0}function ie(t,e,r,n){ne(t,r,n),re(t,e,r)}function ae(e,r,n){var i;for(i in e[n])if(e[n].hasOwnProperty(i)&&\\\"data\\\"!==i&&!t.default$10(e[n][i],r[n][i]))return!1;for(i in r[n])if(r[n].hasOwnProperty(i)&&\\\"data\\\"!==i&&!t.default$10(e[n][i],r[n][i]))return!1;return!0}function oe(e,r,n,i,a,o){var s;for(s in r=r||{},e=e||{})e.hasOwnProperty(s)&&(t.default$10(e[s],r[s])||n.push({command:o,args:[i,s,r[s],a]}));for(s in r)r.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(t.default$10(e[s],r[s])||n.push({command:o,args:[i,s,r[s],a]}))}function se(t){return t.id}function le(t,e){return t[e.id]=e,t}var ce=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;a<this.xCellCount*this.yCellCount;a++)n.push([]),i.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=t,this.height=e,this.xScale=this.xCellCount/t,this.yScale=this.yCellCount/e,this.boxUid=0,this.circleUid=0};ce.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},ce.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},ce.prototype.insertCircle=function(t,e,r,n){this._forEachCell(e-n,r-n,e+n,r+n,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(r),this.circles.push(n)},ce.prototype._insertBoxCell=function(t,e,r,n,i,a){this.boxCells[i].push(a)},ce.prototype._insertCircleCell=function(t,e,r,n,i,a){this.circleCells[i].push(a)},ce.prototype._query=function(t,e,r,n,i){if(r<0||t>this.width||n<0||e>this.height)return!i&&[];var a=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n){if(i)return!0;for(var o=0;o<this.boxKeys.length;o++)a.push({key:this.boxKeys[o],x1:this.bboxes[4*o],y1:this.bboxes[4*o+1],x2:this.bboxes[4*o+2],y2:this.bboxes[4*o+3]});for(var s=0;s<this.circleKeys.length;s++){var l=this.circles[3*s],c=this.circles[3*s+1],u=this.circles[3*s+2];a.push({key:this.circleKeys[s],x1:l-u,y1:c-u,x2:l+u,y2:c+u})}}else{var f={hitTest:i,seenUids:{box:{},circle:{}}};this._forEachCell(t,e,r,n,this._queryCell,a,f)}return i?a.length>0:a},ce.prototype._queryCircle=function(t,e,r,n){var i=t-r,a=t+r,o=e-r,s=e+r;if(a<0||i>this.width||s<0||o>this.height)return!n&&[];var l=[],c={hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}};return this._forEachCell(i,o,a,s,this._queryCellCircle,l,c),n?l.length>0:l},ce.prototype.query=function(t,e,r,n){return this._query(t,e,r,n,!1)},ce.prototype.hitTest=function(t,e,r,n){return this._query(t,e,r,n,!0)},ce.prototype.hitTestCircle=function(t,e,r){return this._queryCircle(t,e,r,!0)},ce.prototype._queryCell=function(t,e,r,n,i,a,o){var s=o.seenUids,l=this.boxCells[i];if(null!==l)for(var c=this.bboxes,u=0,f=l;u<f.length;u+=1){var h=f[u];if(!s.box[h]){s.box[h]=!0;var p=4*h;if(t<=c[p+2]&&e<=c[p+3]&&r>=c[p+0]&&n>=c[p+1]){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[h],x1:c[p],y1:c[p+1],x2:c[p+2],y2:c[p+3]})}}}var d=this.circleCells[i];if(null!==d)for(var g=this.circles,v=0,m=d;v<m.length;v+=1){var y=m[v];if(!s.circle[y]){s.circle[y]=!0;var x=3*y;if(this._circleAndRectCollide(g[x],g[x+1],g[x+2],t,e,r,n)){if(o.hitTest)return a.push(!0),!0;var b=g[x],_=g[x+1],w=g[x+2];a.push({key:this.circleKeys[y],x1:b-w,y1:_-w,x2:b+w,y2:_+w})}}}},ce.prototype._queryCellCircle=function(t,e,r,n,i,a,o){var s=o.circle,l=o.seenUids,c=this.boxCells[i];if(null!==c)for(var u=this.bboxes,f=0,h=c;f<h.length;f+=1){var p=h[f];if(!l.box[p]){l.box[p]=!0;var d=4*p;if(this._circleAndRectCollide(s.x,s.y,s.radius,u[d+0],u[d+1],u[d+2],u[d+3]))return a.push(!0),!0}}var g=this.circleCells[i];if(null!==g)for(var v=this.circles,m=0,y=g;m<y.length;m+=1){var x=y[m];if(!l.circle[x]){l.circle[x]=!0;var b=3*x;if(this._circlesCollide(v[b],v[b+1],v[b+2],s.x,s.y,s.radius))return a.push(!0),!0}}},ce.prototype._forEachCell=function(t,e,r,n,i,a,o){for(var s=this._convertToXCellCoord(t),l=this._convertToYCellCoord(e),c=this._convertToXCellCoord(r),u=this._convertToYCellCoord(n),f=s;f<=c;f++)for(var h=l;h<=u;h++){var p=this.xCellCount*h+f;if(i.call(this,t,e,r,n,p,a,o))return}},ce.prototype._convertToXCellCoord=function(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))},ce.prototype._convertToYCellCoord=function(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))},ce.prototype._circlesCollide=function(t,e,r,n,i,a){var o=n-t,s=i-e,l=r+a;return l*l>o*o+s*s},ce.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var c=(o-i)/2,u=Math.abs(e-(i+c));if(u>c+r)return!1;if(l<=s||u<=c)return!0;var f=l-s,h=u-c;return f*f+h*h<=r*r};var ue=t.default$19.layout;function fe(e,r,n,i,a){var o=t.mat4.identity(new Float32Array(16));return r?(t.mat4.identity(o),t.mat4.scale(o,o,[1/a,1/a,1]),n||t.mat4.rotateZ(o,o,i.angle)):(t.mat4.scale(o,o,[i.width/2,-i.height/2,1]),t.mat4.translate(o,o,[1,-1,0]),t.mat4.multiply(o,o,e)),o}function he(e,r,n,i,a){var o=t.mat4.identity(new Float32Array(16));return r?(t.mat4.multiply(o,o,e),t.mat4.scale(o,o,[a,a,1]),n||t.mat4.rotateZ(o,o,-i.angle)):(t.mat4.scale(o,o,[1,-1,1]),t.mat4.translate(o,o,[-1,-1,0]),t.mat4.scale(o,o,[2/i.width,2/i.height,1])),o}function pe(e,r){var n=[e.x,e.y,0,1];ke(n,n,r);var i=n[3];return{point:new t.default$1(n[0]/i,n[1]/i),signedDistanceFromCamera:i}}function de(t,e){var r=t[0]/t[3],n=t[1]/t[3];return r>=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function ge(e,r,n,i,a,o,s,l){var c=i?e.textSizeData:e.iconSizeData,u=t.evaluateSizeForZoom(c,n.transform.zoom,ue.properties[i?\\\"text-size\\\":\\\"icon-size\\\"]),f=[256/n.width*2+1,256/n.height*2+1],h=i?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();for(var p=e.lineVertexArray,d=i?e.text.placedSymbolArray:e.icon.placedSymbolArray,g=n.transform.width/n.transform.height,v=!1,m=0;m<d.length;m++){var y=d.get(m);if(y.hidden||y.writingMode===t.WritingMode.vertical&&!v)we(y.numGlyphs,h);else{v=!1;var x=[y.anchorX,y.anchorY,0,1];if(t.vec4.transformMat4(x,x,r),de(x,f)){var b=.5+x[3]/n.transform.cameraToCenterDistance*.5,_=t.evaluateSizeForFeature(c,u,y),w=s?_*b:_/b,k=new t.default$1(y.anchorX,y.anchorY),M=pe(k,a).point,A={},T=ye(y,w,!1,l,r,a,o,e.glyphOffsetArray,p,h,M,k,A,g);v=T.useVertical,(T.notEnoughRoom||v||T.needsFlipping&&ye(y,w,!0,l,r,a,o,e.glyphOffsetArray,p,h,M,k,A,g).notEnoughRoom)&&we(y.numGlyphs,h)}else we(y.numGlyphs,h)}}i?e.text.dynamicLayoutVertexBuffer.updateData(h):e.icon.dynamicLayoutVertexBuffer.updateData(h)}function ve(t,e,r,n,i,a,o,s,l,c,u,f){var h=s.glyphStartIndex+s.numGlyphs,p=s.lineStartIndex,d=s.lineStartIndex+s.lineLength,g=e.getoffsetX(s.glyphStartIndex),v=e.getoffsetX(h-1),m=be(t*g,r,n,i,a,o,s.segment,p,d,l,c,u,f);if(!m)return null;var y=be(t*v,r,n,i,a,o,s.segment,p,d,l,c,u,f);return y?{first:m,last:y}:null}function me(e,r,n,i){return e===t.WritingMode.horizontal&&Math.abs(n.y-r.y)>Math.abs(n.x-r.x)*i?{useVertical:!0}:(e===t.WritingMode.vertical?r.y<n.y:r.x>n.x)?{needsFlipping:!0}:null}function ye(e,r,n,i,a,o,s,l,c,u,f,h,p,d){var g,v=r/24,m=e.lineOffsetX*r,y=e.lineOffsetY*r;if(e.numGlyphs>1){var x=e.glyphStartIndex+e.numGlyphs,b=e.lineStartIndex,_=e.lineStartIndex+e.lineLength,w=ve(v,l,m,y,n,f,h,e,c,o,p,!1);if(!w)return{notEnoughRoom:!0};var k=pe(w.first.point,s).point,M=pe(w.last.point,s).point;if(i&&!n){var A=me(e.writingMode,k,M,d);if(A)return A}g=[w.first];for(var T=e.glyphStartIndex+1;T<x-1;T++)g.push(be(v*l.getoffsetX(T),m,y,n,f,h,e.segment,b,_,c,o,p,!1));g.push(w.last)}else{if(i&&!n){var S=pe(h,a).point,E=e.lineStartIndex+e.segment+1,C=new t.default$1(c.getx(E),c.gety(E)),L=pe(C,a),z=L.signedDistanceFromCamera>0?L.point:xe(h,C,S,1,a),O=me(e.writingMode,S,z,d);if(O)return O}var I=be(v*l.getoffsetX(e.glyphStartIndex),m,y,n,f,h,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,o,p,!1);if(!I)return{notEnoughRoom:!0};g=[I]}for(var P=0,D=g;P<D.length;P+=1){var R=D[P];t.addDynamicAttributes(u,R.point,R.angle)}return{}}function xe(t,e,r,n,i){var a=pe(t.add(t.sub(e)._unit()),i).point,o=r.sub(a);return r.add(o._mult(n/o.mag()))}function be(e,r,n,i,a,o,s,l,c,u,f,h,p){var d=i?e-r:e+r,g=d>0?1:-1,v=0;i&&(g*=-1,v=Math.PI),g<0&&(v+=Math.PI);for(var m=g>0?l+s:l+s+1,y=m,x=a,b=a,_=0,w=0,k=Math.abs(d);_+w<=k;){if((m+=g)<l||m>=c)return null;if(b=x,void 0===(x=h[m])){var M=new t.default$1(u.getx(m),u.gety(m)),A=pe(M,f);if(A.signedDistanceFromCamera>0)x=h[m]=A.point;else{var T=m-g;x=xe(0===_?o:new t.default$1(u.getx(T),u.gety(T)),M,b,k-_+1,f)}}_+=w,w=b.dist(x)}var S=(k-_)/w,E=x.sub(b),C=E.mult(S)._add(b);return C._add(E._unit()._perp()._mult(n*g)),{point:C,angle:v+Math.atan2(x.y-b.y,x.x-b.x),tileDistance:p?{prevTileDistance:m-g===y?0:u.gettileUnitDistanceFromAnchor(m-g),lastSegmentViewportDistance:k-_}:null}}var _e=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function we(t,e){for(var r=0;r<t;r++){var n=e.length;e.resize(n+4),e.float32.set(_e,3*n)}}function ke(t,e,r){var n=e[0],i=e[1];return t[0]=r[0]*n+r[4]*i+r[12],t[1]=r[1]*n+r[5]*i+r[13],t[3]=r[3]*n+r[7]*i+r[15],t}t.default$20.mat4;var Me=function(t,e,r){void 0===e&&(e=new ce(t.width+200,t.height+200,25)),void 0===r&&(r=new ce(t.width+200,t.height+200,25)),this.transform=t,this.grid=e,this.ignoredGrid=r,this.pitchfactor=Math.cos(t._pitch)*t.cameraToCenterDistance,this.screenRightBoundary=t.width+100,this.screenBottomBoundary=t.height+100};function Ae(t,e,r){t[e+4]=r?1:0}function Te(e,r,n){return r*(t.default$8/(e.tileSize*Math.pow(2,n-e.tileID.overscaledZ)))}Me.prototype.placeCollisionBox=function(t,e,r,n){var i=this.projectAndGetPerspectiveRatio(n,t.anchorPointX,t.anchorPointY),a=r*i.perspectiveRatio,o=t.x1*a+i.point.x,s=t.y1*a+i.point.y,l=t.x2*a+i.point.x,c=t.y2*a+i.point.y;return!e&&this.grid.hitTest(o,s,l,c)?{box:[],offscreen:!1}:{box:[o,s,l,c],offscreen:this.isOffscreen(o,s,l,c)}},Me.prototype.approximateTileDistance=function(t,e,r,n,i){var a=i?1:n/this.pitchfactor,o=t.lastSegmentViewportDistance*r;return t.prevTileDistance+o+(a-1)*o*Math.abs(Math.sin(e))},Me.prototype.placeCollisionCircles=function(e,r,n,i,a,o,s,l,c,u,f,h,p){var d=[],g=this.projectAnchor(u,o.anchorX,o.anchorY),v=c/24,m=o.lineOffsetX*c,y=o.lineOffsetY*c,x=new t.default$1(o.anchorX,o.anchorY),b=ve(v,l,m,y,!1,pe(x,f).point,x,o,s,f,{},!0),_=!1,w=!0,k=g.perspectiveRatio*i,M=1/(i*n),A=0,T=0;b&&(A=this.approximateTileDistance(b.first.tileDistance,b.first.angle,M,g.cameraDistance,p),T=this.approximateTileDistance(b.last.tileDistance,b.last.angle,M,g.cameraDistance,p));for(var S=0;S<e.length;S+=5){var E=e[S],C=e[S+1],L=e[S+2],z=e[S+3];if(!b||z<-A||z>T)Ae(e,S,!1);else{var O=this.projectPoint(u,E,C),I=L*k;if(d.length>0){var P=O.x-d[d.length-4],D=O.y-d[d.length-3];if(I*I*2>P*P+D*D&&S+8<e.length){var R=e[S+8];if(R>-A&&R<T){Ae(e,S,!1);continue}}}var B=S/5;if(d.push(O.x,O.y,I,B),Ae(e,S,!0),w=w&&this.isOffscreen(O.x-I,O.y-I,O.x+I,O.y+I),!r&&this.grid.hitTestCircle(O.x,O.y,I)){if(!h)return{circles:[],offscreen:!1};_=!0}}}return{circles:_?[]:d,offscreen:w}},Me.prototype.queryRenderedSymbols=function(e){if(0===e.length||0===this.grid.keysLength()&&0===this.ignoredGrid.keysLength())return{};for(var r=[],n=1/0,i=1/0,a=-1/0,o=-1/0,s=0,l=e;s<l.length;s+=1){var c=l[s],u=new t.default$1(c.x+100,c.y+100);n=Math.min(n,u.x),i=Math.min(i,u.y),a=Math.max(a,u.x),o=Math.max(o,u.y),r.push(u)}for(var f={},h={},p=0,d=this.grid.query(n,i,a,o).concat(this.ignoredGrid.query(n,i,a,o));p<d.length;p+=1){var g=d[p],v=g.key;if(void 0===f[v.bucketInstanceId]&&(f[v.bucketInstanceId]={}),!f[v.bucketInstanceId][v.featureIndex]){var m=[new t.default$1(g.x1,g.y1),new t.default$1(g.x2,g.y1),new t.default$1(g.x2,g.y2),new t.default$1(g.x1,g.y2)];t.polygonIntersectsPolygon(r,m)&&(f[v.bucketInstanceId][v.featureIndex]=!0,void 0===h[v.bucketInstanceId]&&(h[v.bucketInstanceId]=[]),h[v.bucketInstanceId].push(v.featureIndex))}}return h},Me.prototype.insertCollisionBox=function(t,e,r,n){var i={bucketInstanceId:r,featureIndex:n};(e?this.ignoredGrid:this.grid).insert(i,t[0],t[1],t[2],t[3])},Me.prototype.insertCollisionCircles=function(t,e,r,n){for(var i=e?this.ignoredGrid:this.grid,a={bucketInstanceId:r,featureIndex:n},o=0;o<t.length;o+=4)i.insertCircle(a,t[o],t[o+1],t[o+2])},Me.prototype.projectAnchor=function(t,e,r){var n=[e,r,0,1];return ke(n,n,t),{perspectiveRatio:.5+this.transform.cameraToCenterDistance/n[3]*.5,cameraDistance:n[3]}},Me.prototype.projectPoint=function(e,r,n){var i=[r,n,0,1];return ke(i,i,e),new t.default$1((i[0]/i[3]+1)/2*this.transform.width+100,(-i[1]/i[3]+1)/2*this.transform.height+100)},Me.prototype.projectAndGetPerspectiveRatio=function(e,r,n){var i=[r,n,0,1];return ke(i,i,e),{point:new t.default$1((i[0]/i[3]+1)/2*this.transform.width+100,(-i[1]/i[3]+1)/2*this.transform.height+100),perspectiveRatio:.5+this.transform.cameraToCenterDistance/i[3]*.5}},Me.prototype.isOffscreen=function(t,e,r,n){return r<100||t>=this.screenRightBoundary||n<100||e>this.screenBottomBoundary};var Se=t.default$19.layout,Ee=function(t,e,r,n){this.opacity=t?Math.max(0,Math.min(1,t.opacity+(t.placed?e:-e))):n&&r?1:0,this.placed=r};Ee.prototype.isHidden=function(){return 0===this.opacity&&!this.placed};var Ce=function(t,e,r,n,i){this.text=new Ee(t?t.text:null,e,r,i),this.icon=new Ee(t?t.icon:null,e,n,i)};Ce.prototype.isHidden=function(){return this.text.isHidden()&&this.icon.isHidden()};var Le=function(t,e,r){this.text=t,this.icon=e,this.skipFade=r},ze=function(t,e){this.transform=t.clone(),this.collisionIndex=new Me(this.transform),this.placements={},this.opacities={},this.stale=!1,this.fadeDuration=e,this.retainedQueryData={}};function Oe(t,e,r){t.emplaceBack(e?1:0,r?1:0),t.emplaceBack(e?1:0,r?1:0),t.emplaceBack(e?1:0,r?1:0),t.emplaceBack(e?1:0,r?1:0)}ze.prototype.placeLayerTile=function(e,r,n,i){var a=r.getBucket(e),o=r.latestFeatureIndex;if(a&&o&&e.id===a.layerIds[0]){var s=r.collisionBoxArray,l=a.layers[0].layout,c=Math.pow(2,this.transform.zoom-r.tileID.overscaledZ),u=r.tileSize/t.default$8,f=this.transform.calculatePosMatrix(r.tileID.toUnwrapped()),h=fe(f,\\\"map\\\"===l.get(\\\"text-pitch-alignment\\\"),\\\"map\\\"===l.get(\\\"text-rotation-alignment\\\"),this.transform,Te(r,1,this.transform.zoom)),p=fe(f,\\\"map\\\"===l.get(\\\"icon-pitch-alignment\\\"),\\\"map\\\"===l.get(\\\"icon-rotation-alignment\\\"),this.transform,Te(r,1,this.transform.zoom));this.retainedQueryData[a.bucketInstanceId]=new function(t,e,r,n,i){this.bucketInstanceId=t,this.featureIndex=e,this.sourceLayerIndex=r,this.bucketIndex=n,this.tileID=i}(a.bucketInstanceId,o,a.sourceLayerIndex,a.index,r.tileID),this.placeLayerBucket(a,f,h,p,c,u,n,i,s)}},ze.prototype.placeLayerBucket=function(e,r,n,i,a,o,s,l,c){for(var u=e.layers[0].layout,f=t.evaluateSizeForZoom(e.textSizeData,this.transform.zoom,Se.properties[\\\"text-size\\\"]),h=!e.hasTextData()||u.get(\\\"text-optional\\\"),p=!e.hasIconData()||u.get(\\\"icon-optional\\\"),d=0,g=e.symbolInstances;d<g.length;d+=1){var v=g[d];if(!l[v.crossTileID]){var m=void 0!==v.feature.text,y=void 0!==v.feature.icon,x=!0,b=null,_=null,w=null,k=0,M=0;v.collisionArrays||(v.collisionArrays=e.deserializeCollisionBoxes(c,v.textBoxStartIndex,v.textBoxEndIndex,v.iconBoxStartIndex,v.iconBoxEndIndex)),v.collisionArrays.textFeatureIndex&&(k=v.collisionArrays.textFeatureIndex),v.collisionArrays.textBox&&(m=(b=this.collisionIndex.placeCollisionBox(v.collisionArrays.textBox,u.get(\\\"text-allow-overlap\\\"),o,r)).box.length>0,x=x&&b.offscreen);var A=v.collisionArrays.textCircles;if(A){var T=e.text.placedSymbolArray.get(v.placedTextSymbolIndices[0]),S=t.evaluateSizeForFeature(e.textSizeData,f,T);_=this.collisionIndex.placeCollisionCircles(A,u.get(\\\"text-allow-overlap\\\"),a,o,v.key,T,e.lineVertexArray,e.glyphOffsetArray,S,r,n,s,\\\"map\\\"===u.get(\\\"text-pitch-alignment\\\")),m=u.get(\\\"text-allow-overlap\\\")||_.circles.length>0,x=x&&_.offscreen}v.collisionArrays.iconFeatureIndex&&(M=v.collisionArrays.iconFeatureIndex),v.collisionArrays.iconBox&&(y=(w=this.collisionIndex.placeCollisionBox(v.collisionArrays.iconBox,u.get(\\\"icon-allow-overlap\\\"),o,r)).box.length>0,x=x&&w.offscreen),h||p?p?h||(y=y&&m):m=y&&m:y=m=y&&m,m&&b&&this.collisionIndex.insertCollisionBox(b.box,u.get(\\\"text-ignore-placement\\\"),e.bucketInstanceId,k),y&&w&&this.collisionIndex.insertCollisionBox(w.box,u.get(\\\"icon-ignore-placement\\\"),e.bucketInstanceId,M),m&&_&&this.collisionIndex.insertCollisionCircles(_.circles,u.get(\\\"text-ignore-placement\\\"),e.bucketInstanceId,k),this.placements[v.crossTileID]=new Le(m,y,x||e.justReloaded),l[v.crossTileID]=!0}}e.justReloaded=!1},ze.prototype.commit=function(t,e){this.commitTime=e;var r=!1,n=t&&0!==this.fadeDuration?(this.commitTime-t.commitTime)/this.fadeDuration:1,i=t?t.opacities:{};for(var a in this.placements){var o=this.placements[a],s=i[a];s?(this.opacities[a]=new Ce(s,n,o.text,o.icon),r=r||o.text!==s.text.placed||o.icon!==s.icon.placed):(this.opacities[a]=new Ce(null,n,o.text,o.icon,o.skipFade),r=r||o.text||o.icon)}for(var l in i){var c=i[l];if(!this.opacities[l]){var u=new Ce(c,n,!1,!1);u.isHidden()||(this.opacities[l]=u,r=r||c.text.placed||c.icon.placed)}}r?this.lastPlacementChangeTime=e:\\\"number\\\"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e)},ze.prototype.updateLayerOpacities=function(t,e){for(var r={},n=0,i=e;n<i.length;n+=1){var a=i[n],o=a.getBucket(t);o&&a.latestFeatureIndex&&t.id===o.layerIds[0]&&this.updateBucketOpacities(o,r,a.collisionBoxArray)}},ze.prototype.updateBucketOpacities=function(t,e,r){t.hasTextData()&&t.text.opacityVertexArray.clear(),t.hasIconData()&&t.icon.opacityVertexArray.clear(),t.hasCollisionBoxData()&&t.collisionBox.collisionVertexArray.clear(),t.hasCollisionCircleData()&&t.collisionCircle.collisionVertexArray.clear();for(var n=t.layers[0].layout,i=new Ce(null,0,!1,!1,!0),a=new Ce(null,0,n.get(\\\"text-allow-overlap\\\"),n.get(\\\"icon-allow-overlap\\\"),!0),o=0;o<t.symbolInstances.length;o++){var s=t.symbolInstances[o],l=e[s.crossTileID],c=this.opacities[s.crossTileID];l?c=i:c||(c=a,this.opacities[s.crossTileID]=c),e[s.crossTileID]=!0;var u=s.numGlyphVertices>0||s.numVerticalGlyphVertices>0,f=s.numIconVertices>0;if(u){for(var h=je(c.text),p=(s.numGlyphVertices+s.numVerticalGlyphVertices)/4,d=0;d<p;d++)t.text.opacityVertexArray.emplaceBack(h);for(var g=0,v=s.placedTextSymbolIndices;g<v.length;g+=1){var m=v[g];t.text.placedSymbolArray.get(m).hidden=c.text.isHidden()}}if(f){for(var y=je(c.icon),x=0;x<s.numIconVertices/4;x++)t.icon.opacityVertexArray.emplaceBack(y);t.icon.placedSymbolArray.get(o).hidden=c.icon.isHidden()}s.collisionArrays||(s.collisionArrays=t.deserializeCollisionBoxes(r,s.textBoxStartIndex,s.textBoxEndIndex,s.iconBoxStartIndex,s.iconBoxEndIndex));var b=s.collisionArrays;if(b){b.textBox&&t.hasCollisionBoxData()&&Oe(t.collisionBox.collisionVertexArray,c.text.placed,!1),b.iconBox&&t.hasCollisionBoxData()&&Oe(t.collisionBox.collisionVertexArray,c.icon.placed,!1);var _=b.textCircles;if(_&&t.hasCollisionCircleData())for(var w=0;w<_.length;w+=5){var k=l||0===_[w+4];Oe(t.collisionCircle.collisionVertexArray,c.text.placed,k)}}}t.sortFeatures(this.transform.angle),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasCollisionBoxData()&&t.collisionBox.collisionVertexBuffer&&t.collisionBox.collisionVertexBuffer.updateData(t.collisionBox.collisionVertexArray),t.hasCollisionCircleData()&&t.collisionCircle.collisionVertexBuffer&&t.collisionCircle.collisionVertexBuffer.updateData(t.collisionCircle.collisionVertexArray)},ze.prototype.symbolFadeChange=function(t){return 0===this.fadeDuration?1:(t-this.commitTime)/this.fadeDuration},ze.prototype.hasTransitions=function(t){return this.stale||t-this.lastPlacementChangeTime<this.fadeDuration},ze.prototype.stillRecent=function(t){return\\\"undefined\\\"!==this.commitTime&&this.commitTime+this.fadeDuration>t},ze.prototype.setStale=function(){this.stale=!0};var Ie=Math.pow(2,25),Pe=Math.pow(2,24),De=Math.pow(2,17),Re=Math.pow(2,16),Be=Math.pow(2,9),Fe=Math.pow(2,8),Ne=Math.pow(2,1);function je(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,r=Math.floor(127*t.opacity);return r*Ie+e*Pe+r*De+e*Re+r*Be+e*Fe+r*Ne+e}var Ve=function(){this._currentTileIndex=0,this._seenCrossTileIDs={}};Ve.prototype.continuePlacement=function(t,e,r,n,i){for(;this._currentTileIndex<t.length;){var a=t[this._currentTileIndex];if(e.placeLayerTile(n,a,r,this._seenCrossTileIDs),this._currentTileIndex++,i())return!0}};var Ue=function(t,e,r,n,i){this.placement=new ze(t,i),this._currentPlacementIndex=e.length-1,this._forceFullPlacement=r,this._showCollisionBoxes=n,this._done=!1};Ue.prototype.isDone=function(){return this._done},Ue.prototype.continuePlacement=function(t,e,r){for(var n=this,i=a.now(),o=function(){var t=a.now()-i;return!n._forceFullPlacement&&t>2};this._currentPlacementIndex>=0;){var s=e[t[n._currentPlacementIndex]],l=n.placement.collisionIndex.transform.zoom;if(\\\"symbol\\\"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(n._inProgressLayer||(n._inProgressLayer=new Ve),n._inProgressLayer.continuePlacement(r[s.source],n.placement,n._showCollisionBoxes,s,o))return;delete n._inProgressLayer}n._currentPlacementIndex--}this._done=!0},Ue.prototype.commit=function(t,e){return this.placement.commit(t,e),this.placement};var qe=512/t.default$8/2,He=function(t,e,r){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var n=0,i=e;n<i.length;n+=1){var a=i[n],o=a.key;this.indexedSymbolInstances[o]||(this.indexedSymbolInstances[o]=[]),this.indexedSymbolInstances[o].push({crossTileID:a.crossTileID,coord:this.getScaledCoordinates(a,t)})}};He.prototype.getScaledCoordinates=function(e,r){var n=r.canonical.z-this.tileID.canonical.z,i=qe/Math.pow(2,n),a=e.anchor;return{x:Math.floor((r.canonical.x*t.default$8+a.x)*i),y:Math.floor((r.canonical.y*t.default$8+a.y)*i)}},He.prototype.findMatches=function(t,e,r){for(var n=this.tileID.canonical.z<e.canonical.z?1:Math.pow(2,this.tileID.canonical.z-e.canonical.z),i=0,a=t;i<a.length;i+=1){var o=a[i];if(!o.crossTileID){var s=this.indexedSymbolInstances[o.key];if(s)for(var l=this.getScaledCoordinates(o,e),c=0,u=s;c<u.length;c+=1){var f=u[c];if(Math.abs(f.coord.x-l.x)<=n&&Math.abs(f.coord.y-l.y)<=n&&!r[f.crossTileID]){r[f.crossTileID]=!0,o.crossTileID=f.crossTileID;break}}}}};var Ge=function(){this.maxCrossTileID=0};Ge.prototype.generate=function(){return++this.maxCrossTileID};var We=function(){this.indexes={},this.usedCrossTileIDs={},this.lng=0};We.prototype.handleWrapJump=function(t){var e=Math.round((t-this.lng)/360);if(0!==e)for(var r in this.indexes){var n=this.indexes[r],i={};for(var a in n){var o=n[a];o.tileID=o.tileID.unwrapTo(o.tileID.wrap+e),i[o.tileID.key]=o}this.indexes[r]=i}this.lng=t},We.prototype.addBucket=function(t,e,r){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===e.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key])}for(var n=0,i=e.symbolInstances;n<i.length;n+=1)i[n].crossTileID=0;this.usedCrossTileIDs[t.overscaledZ]||(this.usedCrossTileIDs[t.overscaledZ]={});var a=this.usedCrossTileIDs[t.overscaledZ];for(var o in this.indexes){var s=this.indexes[o];if(Number(o)>t.overscaledZ)for(var l in s){var c=s[l];c.tileID.isChildOf(t)&&c.findMatches(e.symbolInstances,t,a)}else{var u=s[t.scaledTo(Number(o)).key];u&&u.findMatches(e.symbolInstances,t,a)}}for(var f=0,h=e.symbolInstances;f<h.length;f+=1){var p=h[f];p.crossTileID||(p.crossTileID=r.generate(),a[p.crossTileID]=!0)}return void 0===this.indexes[t.overscaledZ]&&(this.indexes[t.overscaledZ]={}),this.indexes[t.overscaledZ][t.key]=new He(t,e.symbolInstances,e.bucketInstanceId),!0},We.prototype.removeBucketCrossTileIDs=function(t,e){for(var r in e.indexedSymbolInstances)for(var n=0,i=e.indexedSymbolInstances[r];n<i.length;n+=1){var a=i[n];delete this.usedCrossTileIDs[t][a.crossTileID]}},We.prototype.removeStaleBuckets=function(t){var e=!1;for(var r in this.indexes){var n=this.indexes[r];for(var i in n)t[n[i].bucketInstanceId]||(this.removeBucketCrossTileIDs(r,n[i]),delete n[i],e=!0)}return e};var Ye=function(){this.layerIndexes={},this.crossTileIDs=new Ge,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}};Ye.prototype.addLayer=function(t,e,r){var n=this.layerIndexes[t.id];void 0===n&&(n=this.layerIndexes[t.id]=new We);var i=!1,a={};n.handleWrapJump(r);for(var o=0,s=e;o<s.length;o+=1){var l=s[o],c=l.getBucket(t);c&&t.id===c.layerIds[0]&&(c.bucketInstanceId||(c.bucketInstanceId=++this.maxBucketInstanceId),n.addBucket(l.tileID,c,this.crossTileIDs)&&(i=!0),a[c.bucketInstanceId]=!0)}return n.removeStaleBuckets(a)&&(i=!0),i},Ye.prototype.pruneUnusedLayers=function(t){var e={};for(var r in t.forEach(function(t){e[t]=!0}),this.layerIndexes)e[r]||delete this.layerIndexes[r]};var Xe=function(e,r){return t.emitValidationErrors(e,r&&r.filter(function(t){return\\\"source.canvas\\\"!==t.identifier}))},Ze=t.pick(ee,[\\\"addLayer\\\",\\\"removeLayer\\\",\\\"setPaintProperty\\\",\\\"setLayoutProperty\\\",\\\"setFilter\\\",\\\"addSource\\\",\\\"removeSource\\\",\\\"setLayerZoomRange\\\",\\\"setLight\\\",\\\"setTransition\\\",\\\"setGeoJSONSourceData\\\"]),$e=t.pick(ee,[\\\"setCenter\\\",\\\"setZoom\\\",\\\"setBearing\\\",\\\"setPitch\\\"]),Je=function(e){function r(n,i){var a=this;void 0===i&&(i={}),e.call(this),this.map=n,this.dispatcher=new q((Jt||(Jt=new Kt),Jt),this),this.imageManager=new O,this.glyphManager=new F(n._transformRequest,i.localIdeographFontFamily),this.lineAtlas=new U(256,512),this.crossTileSymbolIndex=new Ye,this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new t.default$23,this._loaded=!1,this._resetUpdates();var o=this;this._rtlTextPluginCallback=r.registerForPluginAvailability(function(t){for(var e in o.dispatcher.broadcast(\\\"loadRTLTextPlugin\\\",t.pluginURL,t.completionCallback),o.sourceCaches)o.sourceCaches[e].reload()}),this.on(\\\"data\\\",function(t){if(\\\"source\\\"===t.dataType&&\\\"metadata\\\"===t.sourceDataType){var e=a.sourceCaches[t.sourceId];if(e){var r=e.getSource();if(r&&r.vectorLayerIds)for(var n in a._layers){var i=a._layers[n];i.source===r.id&&a._validateLayer(i)}}}})}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadURL=function(e,r){var n=this;void 0===r&&(r={}),this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"style\\\"}));var i=\\\"boolean\\\"==typeof r.validate?r.validate:!x(e);e=function(t,e){if(!x(t))return t;var r=A(t);return r.path=\\\"/styles/v1\\\"+r.path,y(r,e)}(e,r.accessToken);var a=this.map._transformRequest(e,t.ResourceType.Style);t.getJSON(a,function(e,r){e?n.fire(new t.ErrorEvent(e)):r&&n._load(r,i)})},r.prototype.loadJSON=function(e,r){var n=this;void 0===r&&(r={}),this.fire(new t.Event(\\\"dataloading\\\",{dataType:\\\"style\\\"})),a.frame(function(){n._load(e,!1!==r.validate)})},r.prototype._load=function(e,r){var n=this;if(!r||!Xe(this,t.validateStyle(e))){for(var i in this._loaded=!0,this.stylesheet=e,e.sources)n.addSource(i,e.sources[i],{validate:!1});e.sprite?function(e,r,n){var i,o,s,l=a.devicePixelRatio>1?\\\"@2x\\\":\\\"\\\";function c(){if(s)n(s);else if(i&&o){var e=a.getImageData(o),r={};for(var l in i){var c=i[l],u=c.width,f=c.height,h=c.x,p=c.y,d=c.sdf,g=c.pixelRatio,v=new t.RGBAImage({width:u,height:f});t.RGBAImage.copy(e,v,{x:h,y:p},{x:0,y:0},{width:u,height:f}),r[l]={data:v,pixelRatio:g,sdf:d}}n(null,r)}}t.getJSON(r(_(e,l,\\\".json\\\"),t.ResourceType.SpriteJSON),function(t,e){s||(s=t,i=e,c())}),t.getImage(r(_(e,l,\\\".png\\\"),t.ResourceType.SpriteImage),function(t,e){s||(s=t,o=e,c())})}(e.sprite,this.map._transformRequest,function(e,r){if(e)n.fire(new t.ErrorEvent(e));else if(r)for(var i in r)n.imageManager.addImage(i,r[i]);n.imageManager.setLoaded(!0),n.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"}))}):this.imageManager.setLoaded(!0),this.glyphManager.setURL(e.glyphs);var o=te(this.stylesheet.layers);this._order=o.map(function(t){return t.id}),this._layers={};for(var s=0,l=o;s<l.length;s+=1){var c=l[s];(c=t.default$22(c)).setEventedParent(n,{layer:{id:c.id}}),n._layers[c.id]=c}this.dispatcher.broadcast(\\\"setLayers\\\",this._serializeLayers(this._order)),this.light=new V(this.stylesheet.light),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"})),this.fire(new t.Event(\\\"style.load\\\"))}},r.prototype._validateLayer=function(e){var r=this.sourceCaches[e.source];if(r){var n=e.sourceLayer;if(n){var i=r.getSource();(\\\"geojson\\\"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(n))&&this.fire(new t.ErrorEvent(new Error('Source layer \\\"'+n+'\\\" does not exist on source \\\"'+i.id+'\\\" as specified by style layer \\\"'+e.id+'\\\"')))}}},r.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},r.prototype._serializeLayers=function(t){var e=this;return t.map(function(t){return e._layers[t].serialize()})},r.prototype.hasTransitions=function(){if(this.light&&this.light.hasTransition())return!0;for(var t in this.sourceCaches)if(this.sourceCaches[t].hasTransition())return!0;for(var e in this._layers)if(this._layers[e].hasTransition())return!0;return!1},r.prototype._checkLoaded=function(){if(!this._loaded)throw new Error(\\\"Style is not done loading\\\")},r.prototype.update=function(e){if(this._loaded){if(this._changed){var r=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);for(var i in(r.length||n.length)&&this._updateWorkerLayers(r,n),this._updatedSources){var a=this._updatedSources[i];\\\"reload\\\"===a?this._reloadSource(i):\\\"clear\\\"===a&&this._clearSource(i)}for(var o in this._updatedPaintProps)this._layers[o].updateTransitions(e);this.light.updateTransitions(e),this._resetUpdates(),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"}))}for(var s in this.sourceCaches)this.sourceCaches[s].used=!1;for(var l=0,c=this._order;l<c.length;l+=1){var u=c[l],f=this._layers[u];f.recalculate(e),!f.isHidden(e.zoom)&&f.source&&(this.sourceCaches[f.source].used=!0)}this.light.recalculate(e),this.z=e.zoom}},r.prototype._updateWorkerLayers=function(t,e){this.dispatcher.broadcast(\\\"updateLayers\\\",{layers:this._serializeLayers(t),removedIds:e})},r.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={}},r.prototype.setState=function(e){var r=this;if(this._checkLoaded(),Xe(this,t.validateStyle(e)))return!1;(e=t.clone(e)).layers=te(e.layers);var n=function(e,r){if(!e)return[{command:ee.setStyle,args:[r]}];var n=[];try{if(!t.default$10(e.version,r.version))return[{command:ee.setStyle,args:[r]}];t.default$10(e.center,r.center)||n.push({command:ee.setCenter,args:[r.center]}),t.default$10(e.zoom,r.zoom)||n.push({command:ee.setZoom,args:[r.zoom]}),t.default$10(e.bearing,r.bearing)||n.push({command:ee.setBearing,args:[r.bearing]}),t.default$10(e.pitch,r.pitch)||n.push({command:ee.setPitch,args:[r.pitch]}),t.default$10(e.sprite,r.sprite)||n.push({command:ee.setSprite,args:[r.sprite]}),t.default$10(e.glyphs,r.glyphs)||n.push({command:ee.setGlyphs,args:[r.glyphs]}),t.default$10(e.transition,r.transition)||n.push({command:ee.setTransition,args:[r.transition]}),t.default$10(e.light,r.light)||n.push({command:ee.setLight,args:[r.light]});var i={},a=[];!function(e,r,n,i){var a;for(a in r=r||{},e=e||{})e.hasOwnProperty(a)&&(r.hasOwnProperty(a)||ne(a,n,i));for(a in r)r.hasOwnProperty(a)&&(e.hasOwnProperty(a)?t.default$10(e[a],r[a])||(\\\"geojson\\\"===e[a].type&&\\\"geojson\\\"===r[a].type&&ae(e,r,a)?n.push({command:ee.setGeoJSONSourceData,args:[a,r[a].data]}):ie(a,r,n,i)):re(a,r,n))}(e.sources,r.sources,a,i);var o=[];e.layers&&e.layers.forEach(function(t){i[t.source]?n.push({command:ee.removeLayer,args:[t.id]}):o.push(t)}),n=n.concat(a),function(e,r,n){r=r||[];var i,a,o,s,l,c,u,f=(e=e||[]).map(se),h=r.map(se),p=e.reduce(le,{}),d=r.reduce(le,{}),g=f.slice(),v=Object.create(null);for(i=0,a=0;i<f.length;i++)o=f[i],d.hasOwnProperty(o)?a++:(n.push({command:ee.removeLayer,args:[o]}),g.splice(g.indexOf(o,a),1));for(i=0,a=0;i<h.length;i++)o=h[h.length-1-i],g[g.length-1-i]!==o&&(p.hasOwnProperty(o)?(n.push({command:ee.removeLayer,args:[o]}),g.splice(g.lastIndexOf(o,g.length-a),1)):a++,c=g[g.length-i],n.push({command:ee.addLayer,args:[d[o],c]}),g.splice(g.length-i,0,o),v[o]=!0);for(i=0;i<h.length;i++)if(s=p[o=h[i]],l=d[o],!v[o]&&!t.default$10(s,l))if(t.default$10(s.source,l.source)&&t.default$10(s[\\\"source-layer\\\"],l[\\\"source-layer\\\"])&&t.default$10(s.type,l.type)){for(u in oe(s.layout,l.layout,n,o,null,ee.setLayoutProperty),oe(s.paint,l.paint,n,o,null,ee.setPaintProperty),t.default$10(s.filter,l.filter)||n.push({command:ee.setFilter,args:[o,l.filter]}),t.default$10(s.minzoom,l.minzoom)&&t.default$10(s.maxzoom,l.maxzoom)||n.push({command:ee.setLayerZoomRange,args:[o,l.minzoom,l.maxzoom]}),s)s.hasOwnProperty(u)&&\\\"layout\\\"!==u&&\\\"paint\\\"!==u&&\\\"filter\\\"!==u&&\\\"metadata\\\"!==u&&\\\"minzoom\\\"!==u&&\\\"maxzoom\\\"!==u&&(0===u.indexOf(\\\"paint.\\\")?oe(s[u],l[u],n,o,u.slice(6),ee.setPaintProperty):t.default$10(s[u],l[u])||n.push({command:ee.setLayerProperty,args:[o,u,l[u]]}));for(u in l)l.hasOwnProperty(u)&&!s.hasOwnProperty(u)&&\\\"layout\\\"!==u&&\\\"paint\\\"!==u&&\\\"filter\\\"!==u&&\\\"metadata\\\"!==u&&\\\"minzoom\\\"!==u&&\\\"maxzoom\\\"!==u&&(0===u.indexOf(\\\"paint.\\\")?oe(s[u],l[u],n,o,u.slice(6),ee.setPaintProperty):t.default$10(s[u],l[u])||n.push({command:ee.setLayerProperty,args:[o,u,l[u]]}))}else n.push({command:ee.removeLayer,args:[o]}),c=g[g.lastIndexOf(o)+1],n.push({command:ee.addLayer,args:[l,c]})}(o,r.layers,n)}catch(t){console.warn(\\\"Unable to compute style diff:\\\",t),n=[{command:ee.setStyle,args:[r]}]}return n}(this.serialize(),e).filter(function(t){return!(t.command in $e)});if(0===n.length)return!1;var i=n.filter(function(t){return!(t.command in Ze)});if(i.length>0)throw new Error(\\\"Unimplemented: \\\"+i.map(function(t){return t.command}).join(\\\", \\\")+\\\".\\\");return n.forEach(function(t){\\\"setTransition\\\"!==t.command&&r[t.command].apply(r,t.args)}),this.stylesheet=e,!0},r.prototype.addImage=function(e,r){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error(\\\"An image with this name already exists.\\\")));this.imageManager.addImage(e,r),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"}))},r.prototype.getImage=function(t){return this.imageManager.getImage(t)},r.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error(\\\"No image with this name exists.\\\")));this.imageManager.removeImage(e),this.fire(new t.Event(\\\"data\\\",{dataType:\\\"style\\\"}))},r.prototype.addSource=function(e,r,n){var i=this;if(this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error(\\\"There is already a source with this ID\\\");if(!r.type)throw new Error(\\\"The type property must be defined, but the only the following properties were given: \\\"+Object.keys(r).join(\\\", \\\")+\\\".\\\");if(!([\\\"vector\\\",\\\"raster\\\",\\\"geojson\\\",\\\"video\\\",\\\"image\\\"].indexOf(r.type)>=0&&this._validate(t.validateStyle.source,\\\"sources.\\\"+e,r,null,n))){this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Yt(e,r,this.dispatcher);a.style=this,a.setEventedParent(this,function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}}),a.onAdd(this.map),this._changed=!0}},r.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error(\\\"There is no source with this ID\\\");for(var r in this._layers)if(this._layers[r].source===e)return this.fire(new t.ErrorEvent(new Error('Source \\\"'+e+'\\\" cannot be removed while layer \\\"'+r+'\\\" is using it.')));var n=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],n.fire(new t.Event(\\\"data\\\",{sourceDataType:\\\"metadata\\\",dataType:\\\"source\\\",sourceId:e})),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},r.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},r.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},r.prototype.addLayer=function(e,r,n){this._checkLoaded();var i=e.id;if(this.getLayer(i))this.fire(new t.ErrorEvent(new Error('Layer with id \\\"'+i+'\\\" already exists on this map')));else if(\\\"object\\\"==typeof e.source&&(this.addSource(i,e.source),e=t.clone(e),e=t.extend(e,{source:i})),!this._validate(t.validateStyle.layer,\\\"layers.\\\"+i,e,{arrayIndex:-1},n)){var a=t.default$22(e);this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}});var o=r?this._order.indexOf(r):this._order.length;if(r&&-1===o)this.fire(new t.ErrorEvent(new Error('Layer with id \\\"'+r+'\\\" does not exist on this map.')));else{if(this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a,this._removedLayers[i]&&a.source){var s=this._removedLayers[i];delete this._removedLayers[i],s.type!==a.type?this._updatedSources[a.source]=\\\"clear\\\":(this._updatedSources[a.source]=\\\"reload\\\",this.sourceCaches[a.source].pause())}this._updateLayer(a)}}},r.prototype.moveLayer=function(e,r){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==r){var n=this._order.indexOf(e);this._order.splice(n,1);var i=r?this._order.indexOf(r):this._order.length;r&&-1===i?this.fire(new t.ErrorEvent(new Error('Layer with id \\\"'+r+'\\\" does not exist on this map.'))):(this._order.splice(i,0,e),this._layerOrderChanged=!0)}}else this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be moved.\\\")))},r.prototype.removeLayer=function(e){this._checkLoaded();var r=this._layers[e];if(r){r.setEventedParent(null);var n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e]}else this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be removed.\\\")))},r.prototype.getLayer=function(t){return this._layers[t]},r.prototype.setLayerZoomRange=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?i.minzoom===r&&i.maxzoom===n||(null!=r&&(i.minzoom=r),null!=n&&(i.maxzoom=n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot have zoom extent.\\\")))},r.prototype.setFilter=function(e,r){this._checkLoaded();var n=this.getLayer(e);if(n){if(!t.default$10(n.filter,r))return null==r?(n.filter=void 0,void this._updateLayer(n)):void(this._validate(t.validateStyle.filter,\\\"layers.\\\"+n.id+\\\".filter\\\",r)||(n.filter=t.clone(r),this._updateLayer(n)))}else this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be filtered.\\\")))},r.prototype.getFilter=function(e){return t.clone(this.getLayer(e).filter)},r.prototype.setLayoutProperty=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?t.default$10(i.getLayoutProperty(r),n)||(i.setLayoutProperty(r,n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be styled.\\\")))},r.prototype.getLayoutProperty=function(t,e){return this.getLayer(t).getLayoutProperty(e)},r.prototype.setPaintProperty=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);if(i){if(!t.default$10(i.getPaintProperty(r),n)){var a=i._transitionablePaint._values[r].value.isDataDriven();i.setPaintProperty(r,n),(i._transitionablePaint._values[r].value.isDataDriven()||a)&&this._updateLayer(i),this._changed=!0,this._updatedPaintProps[e]=!0}}else this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+e+\\\"' does not exist in the map's style and cannot be styled.\\\")))},r.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},r.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},r.prototype.serialize=function(){var e=this;return t.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:t.mapObject(this.sourceCaches,function(t){return t.serialize()}),layers:this._order.map(function(t){return e._layers[t].serialize()})},function(t){return void 0!==t})},r.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&(this._updatedSources[t.source]=\\\"reload\\\",this.sourceCaches[t.source].pause()),this._changed=!0},r.prototype._flattenRenderedFeatures=function(t){for(var e=[],r=this._order.length-1;r>=0;r--)for(var n=this._order[r],i=0,a=t;i<a.length;i+=1){var o=a[i][n];if(o)for(var s=0,l=o;s<l.length;s+=1){var c=l[s];e.push(c)}}return e},r.prototype.queryRenderedFeatures=function(e,r,n){r&&r.filter&&this._validate(t.validateStyle.filter,\\\"queryRenderedFeatures.filter\\\",r.filter);var i={};if(r&&r.layers){if(!Array.isArray(r.layers))return this.fire(new t.ErrorEvent(new Error(\\\"parameters.layers must be an Array.\\\"))),[];for(var a=0,o=r.layers;a<o.length;a+=1){var s=o[a],l=this._layers[s];if(!l)return this.fire(new t.ErrorEvent(new Error(\\\"The layer '\\\"+s+\\\"' does not exist in the map's style and cannot be queried for features.\\\"))),[];i[l.source]=!0}}var c=[];for(var u in this.sourceCaches)r.layers&&!i[u]||c.push(at(this.sourceCaches[u],this._layers,e.worldCoordinate,r,n));return this.placement&&c.push(function(t,e,r,n,i){for(var a={},o=n.queryRenderedSymbols(e),s=[],l=0,c=Object.keys(o).map(Number);l<c.length;l+=1){var u=c[l];s.push(i[u])}s.sort(ot);for(var f=function(){var e=p[h],n=e.featureIndex.lookupSymbolFeatures(o[e.bucketInstanceId],e.bucketIndex,e.sourceLayerIndex,r.filter,r.layers,t);for(var i in n){var s=a[i]=a[i]||[],l=n[i];l.sort(function(t,r){var n=e.featureSortOrder;if(n){var i=n.indexOf(t.featureIndex);return n.indexOf(r.featureIndex)-i}return r.featureIndex-t.featureIndex});for(var c=0,u=l;c<u.length;c+=1){var f=u[c];s.push(f.feature)}}},h=0,p=s;h<p.length;h+=1)f();return a}(this._layers,e.viewport,r,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenRenderedFeatures(c)},r.prototype.querySourceFeatures=function(e,r){r&&r.filter&&this._validate(t.validateStyle.filter,\\\"querySourceFeatures.filter\\\",r.filter);var n=this.sourceCaches[e];return n?function(t,e){for(var r=t.getRenderableIds().map(function(e){return t.getTileByID(e)}),n=[],i={},a=0;a<r.length;a++){var o=r[a],s=o.tileID.canonical.key;i[s]||(i[s]=!0,o.querySourceFeatures(n,e))}return n}(n,r):[]},r.prototype.addSourceType=function(t,e,n){return r.getSourceType(t)?n(new Error('A source type called \\\"'+t+'\\\" already exists.')):(r.setSourceType(t,e),e.workerSourceURL?void this.dispatcher.broadcast(\\\"loadWorkerSource\\\",{name:t,url:e.workerSourceURL},n):n(null,null))},r.prototype.getLight=function(){return this.light.getLight()},r.prototype.setLight=function(e){this._checkLoaded();var r=this.light.getLight(),n=!1;for(var i in e)if(!t.default$10(e[i],r[i])){n=!0;break}if(n){var o={now:a.now(),transition:t.extend({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e),this.light.updateTransitions(o)}},r.prototype._validate=function(e,r,n,i,a){return(!a||!1!==a.validate)&&Xe(this,e.call(t.validateStyle,t.extend({key:r,style:this.serialize(),value:n,styleSpec:t.default$5},i)))},r.prototype._remove=function(){for(var e in t.evented.off(\\\"pluginAvailable\\\",this._rtlTextPluginCallback),this.sourceCaches)this.sourceCaches[e].clearTiles();this.dispatcher.remove()},r.prototype._clearSource=function(t){this.sourceCaches[t].clearTiles()},r.prototype._reloadSource=function(t){this.sourceCaches[t].resume(),this.sourceCaches[t].reload()},r.prototype._updateSources=function(t){for(var e in this.sourceCaches)this.sourceCaches[e].update(t)},r.prototype._generateCollisionBoxes=function(){for(var t in this.sourceCaches)this._reloadSource(t)},r.prototype._updatePlacement=function(t,e,r){for(var n=!1,i=!1,o={},s=0,l=this._order;s<l.length;s+=1){var c=l[s],u=this._layers[c];if(\\\"symbol\\\"===u.type){if(!o[u.source]){var f=this.sourceCaches[u.source];o[u.source]=f.getRenderableIds().map(function(t){return f.getTileByID(t)}).sort(function(t,e){return e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)})}var h=this.crossTileSymbolIndex.addLayer(u,o[u.source],t.center.lng);n=n||h}}this.crossTileSymbolIndex.pruneUnusedLayers(this._order);var p=this._layerOrderChanged;if((p||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(a.now()))&&(this.pauseablePlacement=new Ue(t,this._order,p,e,r),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,o),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(this.placement,a.now()),i=!0),n&&this.pauseablePlacement.placement.setStale()),i||n)for(var d=0,g=this._order;d<g.length;d+=1){var v=g[d],m=this._layers[v];\\\"symbol\\\"===m.type&&this.placement.updateLayerOpacities(m,o[m.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(a.now())},r.prototype.getImages=function(t,e,r){this.imageManager.getImages(e.icons,r)},r.prototype.getGlyphs=function(t,e,r){this.glyphManager.getGlyphs(e.stacks,r)},r}(t.Evented);Je.getSourceType=function(t){return nt[t]},Je.setSourceType=function(t,e){nt[t]=e},Je.registerForPluginAvailability=t.registerForPluginAvailability;var Ke=t.createLayout([{name:\\\"a_pos\\\",type:\\\"Int16\\\",components:2}]),Qe={prelude:{fragmentSource:\\\"#ifdef GL_ES\\\\nprecision mediump float;\\\\n#else\\\\n\\\\n#if !defined(lowp)\\\\n#define lowp\\\\n#endif\\\\n\\\\n#if !defined(mediump)\\\\n#define mediump\\\\n#endif\\\\n\\\\n#if !defined(highp)\\\\n#define highp\\\\n#endif\\\\n\\\\n#endif\\\\n\\\",vertexSource:\\\"#ifdef GL_ES\\\\nprecision highp float;\\\\n#else\\\\n\\\\n#if !defined(lowp)\\\\n#define lowp\\\\n#endif\\\\n\\\\n#if !defined(mediump)\\\\n#define mediump\\\\n#endif\\\\n\\\\n#if !defined(highp)\\\\n#define highp\\\\n#endif\\\\n\\\\n#endif\\\\n\\\\n// Unpack a pair of values that have been packed into a single float.\\\\n// The packed values are assumed to be 8-bit unsigned integers, and are\\\\n// packed like so:\\\\n// packedValue = floor(input[0]) * 256 + input[1],\\\\nvec2 unpack_float(const float packedValue) {\\\\n    int packedIntValue = int(packedValue);\\\\n    int v0 = packedIntValue / 256;\\\\n    return vec2(v0, packedIntValue - v0 * 256);\\\\n}\\\\n\\\\nvec2 unpack_opacity(const float packedOpacity) {\\\\n    int intOpacity = int(packedOpacity) / 2;\\\\n    return vec2(float(intOpacity) / 127.0, mod(packedOpacity, 2.0));\\\\n}\\\\n\\\\n// To minimize the number of attributes needed, we encode a 4-component\\\\n// color into a pair of floats (i.e. a vec2) as follows:\\\\n// [ floor(color.r * 255) * 256 + color.g * 255,\\\\n//   floor(color.b * 255) * 256 + color.g * 255 ]\\\\nvec4 decode_color(const vec2 encodedColor) {\\\\n    return vec4(\\\\n        unpack_float(encodedColor[0]) / 255.0,\\\\n        unpack_float(encodedColor[1]) / 255.0\\\\n    );\\\\n}\\\\n\\\\n// Unpack a pair of paint values and interpolate between them.\\\\nfloat unpack_mix_vec2(const vec2 packedValue, const float t) {\\\\n    return mix(packedValue[0], packedValue[1], t);\\\\n}\\\\n\\\\n// Unpack a pair of paint values and interpolate between them.\\\\nvec4 unpack_mix_vec4(const vec4 packedColors, const float t) {\\\\n    vec4 minColor = decode_color(vec2(packedColors[0], packedColors[1]));\\\\n    vec4 maxColor = decode_color(vec2(packedColors[2], packedColors[3]));\\\\n    return mix(minColor, maxColor, t);\\\\n}\\\\n\\\\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\\\\n// vec2 offset = mod(pixel_coord, size)\\\\n//\\\\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\\\\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\\\\n//\\\\n// The pixel_coord is passed in as two 16 bit values:\\\\n// pixel_coord_upper = floor(pixel_coord / 2^16)\\\\n// pixel_coord_lower = mod(pixel_coord, 2^16)\\\\n//\\\\n// The offset is calculated in a series of steps that should preserve this precision:\\\\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\\\\n    const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\\\\n\\\\n    vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\\\\n    return (tile_units_to_pixels * pos + offset) / pattern_size;\\\\n}\\\\n\\\"},background:{fragmentSource:\\\"uniform vec4 u_color;\\\\nuniform float u_opacity;\\\\n\\\\nvoid main() {\\\\n    gl_FragColor = u_color * u_opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n}\\\\n\\\"},backgroundPattern:{fragmentSource:\\\"uniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_mix;\\\\nuniform float u_opacity;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\n\\\\nvoid main() {\\\\n    vec2 imagecoord = mod(v_pos_a, 1.0);\\\\n    vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\\\\n    vec4 color1 = texture2D(u_image, pos);\\\\n\\\\n    vec2 imagecoord_b = mod(v_pos_b, 1.0);\\\\n    vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\\\\n    vec4 color2 = texture2D(u_image, pos2);\\\\n\\\\n    gl_FragColor = mix(color1, color2, u_mix) * u_opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pixel_coord_upper;\\\\nuniform vec2 u_pixel_coord_lower;\\\\nuniform float u_scale_a;\\\\nuniform float u_scale_b;\\\\nuniform float u_tile_units_to_pixels;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n\\\\n    v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\\\\n    v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\\\\n}\\\\n\\\"},circle:{fragmentSource:\\\"#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define mediump float radius\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define highp vec4 stroke_color\\\\n#pragma mapbox: define mediump float stroke_width\\\\n#pragma mapbox: define lowp float stroke_opacity\\\\n\\\\nvarying vec3 v_data;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize mediump float radius\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize highp vec4 stroke_color\\\\n    #pragma mapbox: initialize mediump float stroke_width\\\\n    #pragma mapbox: initialize lowp float stroke_opacity\\\\n\\\\n    vec2 extrude = v_data.xy;\\\\n    float extrude_length = length(extrude);\\\\n\\\\n    lowp float antialiasblur = v_data.z;\\\\n    float antialiased_blur = -max(blur, antialiasblur);\\\\n\\\\n    float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\\\\n\\\\n    float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\\\\n        antialiased_blur,\\\\n        0.0,\\\\n        extrude_length - radius / (radius + stroke_width)\\\\n    );\\\\n\\\\n    gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform bool u_scale_with_map;\\\\nuniform bool u_pitch_with_map;\\\\nuniform vec2 u_extrude_scale;\\\\nuniform highp float u_camera_to_center_distance;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define mediump float radius\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define highp vec4 stroke_color\\\\n#pragma mapbox: define mediump float stroke_width\\\\n#pragma mapbox: define lowp float stroke_opacity\\\\n\\\\nvarying vec3 v_data;\\\\n\\\\nvoid main(void) {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize mediump float radius\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize highp vec4 stroke_color\\\\n    #pragma mapbox: initialize mediump float stroke_width\\\\n    #pragma mapbox: initialize lowp float stroke_opacity\\\\n\\\\n    // unencode the extrusion vector that we snuck into the a_pos vector\\\\n    vec2 extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\\\\n\\\\n    // multiply a_pos by 0.5, since we had it * 2 in order to sneak\\\\n    // in extrusion data\\\\n    vec2 circle_center = floor(a_pos * 0.5);\\\\n    if (u_pitch_with_map) {\\\\n        vec2 corner_position = circle_center;\\\\n        if (u_scale_with_map) {\\\\n            corner_position += extrude * (radius + stroke_width) * u_extrude_scale;\\\\n        } else {\\\\n            // Pitching the circle with the map effectively scales it with the map\\\\n            // To counteract the effect for pitch-scale: viewport, we rescale the\\\\n            // whole circle based on the pitch scaling effect at its central point\\\\n            vec4 projected_center = u_matrix * vec4(circle_center, 0, 1);\\\\n            corner_position += extrude * (radius + stroke_width) * u_extrude_scale * (projected_center.w / u_camera_to_center_distance);\\\\n        }\\\\n\\\\n        gl_Position = u_matrix * vec4(corner_position, 0, 1);\\\\n    } else {\\\\n        gl_Position = u_matrix * vec4(circle_center, 0, 1);\\\\n\\\\n        if (u_scale_with_map) {\\\\n            gl_Position.xy += extrude * (radius + stroke_width) * u_extrude_scale * u_camera_to_center_distance;\\\\n        } else {\\\\n            gl_Position.xy += extrude * (radius + stroke_width) * u_extrude_scale * gl_Position.w;\\\\n        }\\\\n    }\\\\n\\\\n    // This is a minimum blur distance that serves as a faux-antialiasing for\\\\n    // the circle. since blur is a ratio of the circle's size and the intent is\\\\n    // to keep the blur at roughly 1px, the two are inversely related.\\\\n    lowp float antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\\\\n\\\\n    v_data = vec3(extrude.x, extrude.y, antialiasblur);\\\\n}\\\\n\\\"},clippingMask:{fragmentSource:\\\"void main() {\\\\n    gl_FragColor = vec4(1.0);\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n}\\\\n\\\"},heatmap:{fragmentSource:\\\"#pragma mapbox: define highp float weight\\\\n\\\\nuniform highp float u_intensity;\\\\nvarying vec2 v_extrude;\\\\n\\\\n// Gaussian kernel coefficient: 1 / sqrt(2 * PI)\\\\n#define GAUSS_COEF 0.3989422804014327\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp float weight\\\\n\\\\n    // Kernel density estimation with a Gaussian kernel of size 5x5\\\\n    float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude);\\\\n    float val = weight * u_intensity * GAUSS_COEF * exp(d);\\\\n\\\\n    gl_FragColor = vec4(val, 1.0, 1.0, 1.0);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"#pragma mapbox: define highp float weight\\\\n#pragma mapbox: define mediump float radius\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform float u_extrude_scale;\\\\nuniform float u_opacity;\\\\nuniform float u_intensity;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\nvarying vec2 v_extrude;\\\\n\\\\n// Effective \\\\\\\"0\\\\\\\" in the kernel density texture to adjust the kernel size to;\\\\n// this empirically chosen number minimizes artifacts on overlapping kernels\\\\n// for typical heatmap cases (assuming clustered source)\\\\nconst highp float ZERO = 1.0 / 255.0 / 16.0;\\\\n\\\\n// Gaussian kernel coefficient: 1 / sqrt(2 * PI)\\\\n#define GAUSS_COEF 0.3989422804014327\\\\n\\\\nvoid main(void) {\\\\n    #pragma mapbox: initialize highp float weight\\\\n    #pragma mapbox: initialize mediump float radius\\\\n\\\\n    // unencode the extrusion vector that we snuck into the a_pos vector\\\\n    vec2 unscaled_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\\\\n\\\\n    // This 'extrude' comes in ranging from [-1, -1], to [1, 1].  We'll use\\\\n    // it to produce the vertices of a square mesh framing the point feature\\\\n    // we're adding to the kernel density texture.  We'll also pass it as\\\\n    // a varying, so that the fragment shader can determine the distance of\\\\n    // each fragment from the point feature.\\\\n    // Before we do so, we need to scale it up sufficiently so that the\\\\n    // kernel falls effectively to zero at the edge of the mesh.\\\\n    // That is, we want to know S such that\\\\n    // weight * u_intensity * GAUSS_COEF * exp(-0.5 * 3.0^2 * S^2) == ZERO\\\\n    // Which solves to:\\\\n    // S = sqrt(-2.0 * log(ZERO / (weight * u_intensity * GAUSS_COEF))) / 3.0\\\\n    float S = sqrt(-2.0 * log(ZERO / weight / u_intensity / GAUSS_COEF)) / 3.0;\\\\n\\\\n    // Pass the varying in units of radius\\\\n    v_extrude = S * unscaled_extrude;\\\\n\\\\n    // Scale by radius and the zoom-based scale factor to produce actual\\\\n    // mesh position\\\\n    vec2 extrude = v_extrude * radius * u_extrude_scale;\\\\n\\\\n    // multiply a_pos by 0.5, since we had it * 2 in order to sneak\\\\n    // in extrusion data\\\\n    vec4 pos = vec4(floor(a_pos * 0.5) + extrude, 0, 1);\\\\n\\\\n    gl_Position = u_matrix * pos;\\\\n}\\\\n\\\"},heatmapTexture:{fragmentSource:\\\"uniform sampler2D u_image;\\\\nuniform sampler2D u_color_ramp;\\\\nuniform float u_opacity;\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    float t = texture2D(u_image, v_pos).r;\\\\n    vec4 color = texture2D(u_color_ramp, vec2(t, 0.5));\\\\n    gl_FragColor = color * u_opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(0.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_world;\\\\nattribute vec2 a_pos;\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos * u_world, 0, 1);\\\\n\\\\n    v_pos.x = a_pos.x;\\\\n    v_pos.y = 1.0 - a_pos.y;\\\\n}\\\\n\\\"},collisionBox:{fragmentSource:\\\"\\\\nvarying float v_placed;\\\\nvarying float v_notUsed;\\\\n\\\\nvoid main() {\\\\n\\\\n    float alpha = 0.5;\\\\n\\\\n    // Red = collision, hide label\\\\n    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\\\\n\\\\n    // Blue = no collision, label is showing\\\\n    if (v_placed > 0.5) {\\\\n        gl_FragColor = vec4(0.0, 0.0, 1.0, 0.5) * alpha;\\\\n    }\\\\n\\\\n    if (v_notUsed > 0.5) {\\\\n        // This box not used, fade it out\\\\n        gl_FragColor *= .1;\\\\n    }\\\\n}\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\nattribute vec2 a_anchor_pos;\\\\nattribute vec2 a_extrude;\\\\nattribute vec2 a_placed;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform vec2 u_extrude_scale;\\\\nuniform float u_camera_to_center_distance;\\\\n\\\\nvarying float v_placed;\\\\nvarying float v_notUsed;\\\\n\\\\nvoid main() {\\\\n    vec4 projectedPoint = u_matrix * vec4(a_anchor_pos, 0, 1);\\\\n    highp float camera_to_anchor_distance = projectedPoint.w;\\\\n    highp float collision_perspective_ratio = clamp(\\\\n        0.5 + 0.5 * (u_camera_to_center_distance / camera_to_anchor_distance),\\\\n        0.0, // Prevents oversized near-field boxes in pitched/overzoomed tiles\\\\n        4.0);\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0.0, 1.0);\\\\n    gl_Position.xy += a_extrude * u_extrude_scale * gl_Position.w * collision_perspective_ratio;\\\\n\\\\n    v_placed = a_placed.x;\\\\n    v_notUsed = a_placed.y;\\\\n}\\\\n\\\"},collisionCircle:{fragmentSource:\\\"uniform float u_overscale_factor;\\\\n\\\\nvarying float v_placed;\\\\nvarying float v_notUsed;\\\\nvarying float v_radius;\\\\nvarying vec2 v_extrude;\\\\nvarying vec2 v_extrude_scale;\\\\n\\\\nvoid main() {\\\\n    float alpha = 0.5;\\\\n\\\\n    // Red = collision, hide label\\\\n    vec4 color = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\\\\n\\\\n    // Blue = no collision, label is showing\\\\n    if (v_placed > 0.5) {\\\\n        color = vec4(0.0, 0.0, 1.0, 0.5) * alpha;\\\\n    }\\\\n\\\\n    if (v_notUsed > 0.5) {\\\\n        // This box not used, fade it out\\\\n        color *= .2;\\\\n    }\\\\n\\\\n    float extrude_scale_length = length(v_extrude_scale);\\\\n    float extrude_length = length(v_extrude) * extrude_scale_length;\\\\n    float stroke_width = 15.0 * extrude_scale_length / u_overscale_factor;\\\\n    float radius = v_radius * extrude_scale_length;\\\\n\\\\n    float distance_to_edge = abs(extrude_length - radius);\\\\n    float opacity_t = smoothstep(-stroke_width, 0.0, -distance_to_edge);\\\\n\\\\n    gl_FragColor = opacity_t * color;\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\nattribute vec2 a_anchor_pos;\\\\nattribute vec2 a_extrude;\\\\nattribute vec2 a_placed;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform vec2 u_extrude_scale;\\\\nuniform float u_camera_to_center_distance;\\\\n\\\\nvarying float v_placed;\\\\nvarying float v_notUsed;\\\\nvarying float v_radius;\\\\n\\\\nvarying vec2 v_extrude;\\\\nvarying vec2 v_extrude_scale;\\\\n\\\\nvoid main() {\\\\n    vec4 projectedPoint = u_matrix * vec4(a_anchor_pos, 0, 1);\\\\n    highp float camera_to_anchor_distance = projectedPoint.w;\\\\n    highp float collision_perspective_ratio = clamp(\\\\n        0.5 + 0.5 * (u_camera_to_center_distance / camera_to_anchor_distance),\\\\n        0.0, // Prevents oversized near-field circles in pitched/overzoomed tiles\\\\n        4.0);\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0.0, 1.0);\\\\n\\\\n    highp float padding_factor = 1.2; // Pad the vertices slightly to make room for anti-alias blur\\\\n    gl_Position.xy += a_extrude * u_extrude_scale * padding_factor * gl_Position.w * collision_perspective_ratio;\\\\n\\\\n    v_placed = a_placed.x;\\\\n    v_notUsed = a_placed.y;\\\\n    v_radius = abs(a_extrude.y); // We don't pitch the circles, so both units of the extrusion vector are equal in magnitude to the radius\\\\n\\\\n    v_extrude = a_extrude * padding_factor;\\\\n    v_extrude_scale = u_extrude_scale * u_camera_to_center_distance * collision_perspective_ratio;\\\\n}\\\\n\\\"},debug:{fragmentSource:\\\"uniform highp vec4 u_color;\\\\n\\\\nvoid main() {\\\\n    gl_FragColor = u_color;\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n}\\\\n\\\"},fill:{fragmentSource:\\\"#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_FragColor = color * opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n}\\\\n\\\"},fillOutline:{fragmentSource:\\\"#pragma mapbox: define highp vec4 outline_color\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 outline_color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    float dist = length(v_pos - gl_FragCoord.xy);\\\\n    float alpha = 1.0 - smoothstep(0.0, 1.0, dist);\\\\n    gl_FragColor = outline_color * (alpha * opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"attribute vec2 a_pos;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform vec2 u_world;\\\\n\\\\nvarying vec2 v_pos;\\\\n\\\\n#pragma mapbox: define highp vec4 outline_color\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 outline_color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n    v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\\\\n}\\\\n\\\"},fillOutlinePattern:{fragmentSource:\\\"uniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_mix;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\nvarying vec2 v_pos;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    vec2 imagecoord = mod(v_pos_a, 1.0);\\\\n    vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\\\\n    vec4 color1 = texture2D(u_image, pos);\\\\n\\\\n    vec2 imagecoord_b = mod(v_pos_b, 1.0);\\\\n    vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\\\\n    vec4 color2 = texture2D(u_image, pos2);\\\\n\\\\n    // find distance to outline for alpha interpolation\\\\n\\\\n    float dist = length(v_pos - gl_FragCoord.xy);\\\\n    float alpha = 1.0 - smoothstep(0.0, 1.0, dist);\\\\n\\\\n\\\\n    gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_world;\\\\nuniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pixel_coord_upper;\\\\nuniform vec2 u_pixel_coord_lower;\\\\nuniform float u_scale_a;\\\\nuniform float u_scale_b;\\\\nuniform float u_tile_units_to_pixels;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\nvarying vec2 v_pos;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n\\\\n    v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\\\\n    v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\\\\n\\\\n    v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\\\\n}\\\\n\\\"},fillPattern:{fragmentSource:\\\"uniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_mix;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    vec2 imagecoord = mod(v_pos_a, 1.0);\\\\n    vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\\\\n    vec4 color1 = texture2D(u_image, pos);\\\\n\\\\n    vec2 imagecoord_b = mod(v_pos_b, 1.0);\\\\n    vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\\\\n    vec4 color2 = texture2D(u_image, pos2);\\\\n\\\\n    gl_FragColor = mix(color1, color2, u_mix) * opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pixel_coord_upper;\\\\nuniform vec2 u_pixel_coord_lower;\\\\nuniform float u_scale_a;\\\\nuniform float u_scale_b;\\\\nuniform float u_tile_units_to_pixels;\\\\n\\\\nattribute vec2 a_pos;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n\\\\n    v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\\\\n    v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\\\\n}\\\\n\\\"},fillExtrusion:{fragmentSource:\\\"varying vec4 v_color;\\\\n#pragma mapbox: define lowp float base\\\\n#pragma mapbox: define lowp float height\\\\n#pragma mapbox: define highp vec4 color\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float base\\\\n    #pragma mapbox: initialize lowp float height\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n\\\\n    gl_FragColor = v_color;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec3 u_lightcolor;\\\\nuniform lowp vec3 u_lightpos;\\\\nuniform lowp float u_lightintensity;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec4 a_normal_ed;\\\\n\\\\nvarying vec4 v_color;\\\\n\\\\n#pragma mapbox: define lowp float base\\\\n#pragma mapbox: define lowp float height\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float base\\\\n    #pragma mapbox: initialize lowp float height\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n\\\\n    vec3 normal = a_normal_ed.xyz;\\\\n\\\\n    base = max(0.0, base);\\\\n    height = max(0.0, height);\\\\n\\\\n    float t = mod(normal.x, 2.0);\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\\\\n\\\\n    // Relative luminance (how dark/bright is the surface color?)\\\\n    float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\\\\n\\\\n    v_color = vec4(0.0, 0.0, 0.0, 1.0);\\\\n\\\\n    // Add slight ambient lighting so no extrusions are totally black\\\\n    vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\\\\n    color += ambientlight;\\\\n\\\\n    // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\\\\n    float directional = clamp(dot(normal / 16384.0, u_lightpos), 0.0, 1.0);\\\\n\\\\n    // Adjust directional so that\\\\n    // the range of values for highlight/shading is narrower\\\\n    // with lower light intensity\\\\n    // and with lighter/brighter surface colors\\\\n    directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\\\\n\\\\n    // Add gradient along z axis of side surfaces\\\\n    if (normal.y != 0.0) {\\\\n        directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\\\\n    }\\\\n\\\\n    // Assign final color based on surface + ambient light color, diffuse light directional, and light color\\\\n    // with lower bounds adjusted to hue of light\\\\n    // so that shading is tinted with the complementary (opposite) color to the light color\\\\n    v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\\\\n    v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\\\\n    v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\\\\n}\\\\n\\\"},fillExtrusionPattern:{fragmentSource:\\\"uniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_mix;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\nvarying vec4 v_lighting;\\\\n\\\\n#pragma mapbox: define lowp float base\\\\n#pragma mapbox: define lowp float height\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float base\\\\n    #pragma mapbox: initialize lowp float height\\\\n\\\\n    vec2 imagecoord = mod(v_pos_a, 1.0);\\\\n    vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\\\\n    vec4 color1 = texture2D(u_image, pos);\\\\n\\\\n    vec2 imagecoord_b = mod(v_pos_b, 1.0);\\\\n    vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\\\\n    vec4 color2 = texture2D(u_image, pos2);\\\\n\\\\n    vec4 mixedColor = mix(color1, color2, u_mix);\\\\n\\\\n    gl_FragColor = mixedColor * v_lighting;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pixel_coord_upper;\\\\nuniform vec2 u_pixel_coord_lower;\\\\nuniform float u_scale_a;\\\\nuniform float u_scale_b;\\\\nuniform float u_tile_units_to_pixels;\\\\nuniform float u_height_factor;\\\\n\\\\nuniform vec3 u_lightcolor;\\\\nuniform lowp vec3 u_lightpos;\\\\nuniform lowp float u_lightintensity;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec4 a_normal_ed;\\\\n\\\\nvarying vec2 v_pos_a;\\\\nvarying vec2 v_pos_b;\\\\nvarying vec4 v_lighting;\\\\nvarying float v_directional;\\\\n\\\\n#pragma mapbox: define lowp float base\\\\n#pragma mapbox: define lowp float height\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float base\\\\n    #pragma mapbox: initialize lowp float height\\\\n\\\\n    vec3 normal = a_normal_ed.xyz;\\\\n    float edgedistance = a_normal_ed.w;\\\\n\\\\n    base = max(0.0, base);\\\\n    height = max(0.0, height);\\\\n\\\\n    float t = mod(normal.x, 2.0);\\\\n    float z = t > 0.0 ? height : base;\\\\n\\\\n    gl_Position = u_matrix * vec4(a_pos, z, 1);\\\\n\\\\n    vec2 pos = normal.x == 1.0 && normal.y == 0.0 && normal.z == 16384.0\\\\n        ? a_pos // extrusion top\\\\n        : vec2(edgedistance, z * u_height_factor); // extrusion side\\\\n\\\\n    v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, pos);\\\\n    v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, pos);\\\\n\\\\n    v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\\\\n    float directional = clamp(dot(normal / 16383.0, u_lightpos), 0.0, 1.0);\\\\n    directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\\\\n\\\\n    if (normal.y != 0.0) {\\\\n        directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\\\\n    }\\\\n\\\\n    v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\\\\n}\\\\n\\\"},extrusionTexture:{fragmentSource:\\\"uniform sampler2D u_image;\\\\nuniform float u_opacity;\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_FragColor = texture2D(u_image, v_pos) * u_opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(0.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_world;\\\\nattribute vec2 a_pos;\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos * u_world, 0, 1);\\\\n\\\\n    v_pos.x = a_pos.x;\\\\n    v_pos.y = 1.0 - a_pos.y;\\\\n}\\\\n\\\"},hillshadePrepare:{fragmentSource:\\\"#ifdef GL_ES\\\\nprecision highp float;\\\\n#endif\\\\n\\\\nuniform sampler2D u_image;\\\\nvarying vec2 v_pos;\\\\nuniform vec2 u_dimension;\\\\nuniform float u_zoom;\\\\nuniform float u_maxzoom;\\\\n\\\\nfloat getElevation(vec2 coord, float bias) {\\\\n    // Convert encoded elevation value to meters\\\\n    vec4 data = texture2D(u_image, coord) * 255.0;\\\\n    return (data.r + data.g * 256.0 + data.b * 256.0 * 256.0) / 4.0;\\\\n}\\\\n\\\\nvoid main() {\\\\n    vec2 epsilon = 1.0 / u_dimension;\\\\n\\\\n    // queried pixels:\\\\n    // +-----------+\\\\n    // |   |   |   |\\\\n    // | a | b | c |\\\\n    // |   |   |   |\\\\n    // +-----------+\\\\n    // |   |   |   |\\\\n    // | d | e | f |\\\\n    // |   |   |   |\\\\n    // +-----------+\\\\n    // |   |   |   |\\\\n    // | g | h | i |\\\\n    // |   |   |   |\\\\n    // +-----------+\\\\n\\\\n    float a = getElevation(v_pos + vec2(-epsilon.x, -epsilon.y), 0.0);\\\\n    float b = getElevation(v_pos + vec2(0, -epsilon.y), 0.0);\\\\n    float c = getElevation(v_pos + vec2(epsilon.x, -epsilon.y), 0.0);\\\\n    float d = getElevation(v_pos + vec2(-epsilon.x, 0), 0.0);\\\\n    float e = getElevation(v_pos, 0.0);\\\\n    float f = getElevation(v_pos + vec2(epsilon.x, 0), 0.0);\\\\n    float g = getElevation(v_pos + vec2(-epsilon.x, epsilon.y), 0.0);\\\\n    float h = getElevation(v_pos + vec2(0, epsilon.y), 0.0);\\\\n    float i = getElevation(v_pos + vec2(epsilon.x, epsilon.y), 0.0);\\\\n\\\\n    // here we divide the x and y slopes by 8 * pixel size\\\\n    // where pixel size (aka meters/pixel) is:\\\\n    // circumference of the world / (pixels per tile * number of tiles)\\\\n    // which is equivalent to: 8 * 40075016.6855785 / (512 * pow(2, u_zoom))\\\\n    // which can be reduced to: pow(2, 19.25619978527 - u_zoom)\\\\n    // we want to vertically exaggerate the hillshading though, because otherwise\\\\n    // it is barely noticeable at low zooms. to do this, we multiply this by some\\\\n    // scale factor pow(2, (u_zoom - u_maxzoom) * a) where a is an arbitrary value\\\\n    // Here we use a=0.3 which works out to the expression below. see \\\\n    // nickidlugash's awesome breakdown for more info\\\\n    // https://github.com/mapbox/mapbox-gl-js/pull/5286#discussion_r148419556\\\\n    float exaggeration = u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;\\\\n\\\\n    vec2 deriv = vec2(\\\\n        (c + f + f + i) - (a + d + d + g),\\\\n        (g + h + h + i) - (a + b + b + c)\\\\n    ) /  pow(2.0, (u_zoom - u_maxzoom) * exaggeration + 19.2562 - u_zoom);\\\\n\\\\n    gl_FragColor = clamp(vec4(\\\\n        deriv.x / 2.0 + 0.5,\\\\n        deriv.y / 2.0 + 0.5,\\\\n        1.0,\\\\n        1.0), 0.0, 1.0);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec2 a_texture_pos;\\\\n\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n    v_pos = (a_texture_pos / 8192.0) / 2.0 + 0.25;\\\\n}\\\\n\\\"},hillshade:{fragmentSource:\\\"uniform sampler2D u_image;\\\\nvarying vec2 v_pos;\\\\n\\\\nuniform vec2 u_latrange;\\\\nuniform vec2 u_light;\\\\nuniform vec4 u_shadow;\\\\nuniform vec4 u_highlight;\\\\nuniform vec4 u_accent;\\\\n\\\\n#define PI 3.141592653589793\\\\n\\\\nvoid main() {\\\\n    vec4 pixel = texture2D(u_image, v_pos);\\\\n\\\\n    vec2 deriv = ((pixel.rg * 2.0) - 1.0);\\\\n\\\\n    // We divide the slope by a scale factor based on the cosin of the pixel's approximate latitude\\\\n    // to account for mercator projection distortion. see #4807 for details\\\\n    float scaleFactor = cos(radians((u_latrange[0] - u_latrange[1]) * (1.0 - v_pos.y) + u_latrange[1]));\\\\n    // We also multiply the slope by an arbitrary z-factor of 1.25\\\\n    float slope = atan(1.25 * length(deriv) / scaleFactor);\\\\n    float aspect = deriv.x != 0.0 ? atan(deriv.y, -deriv.x) : PI / 2.0 * (deriv.y > 0.0 ? 1.0 : -1.0);\\\\n\\\\n    float intensity = u_light.x;\\\\n    // We add PI to make this property match the global light object, which adds PI/2 to the light's azimuthal\\\\n    // position property to account for 0deg corresponding to north/the top of the viewport in the style spec\\\\n    // and the original shader was written to accept (-illuminationDirection - 90) as the azimuthal.\\\\n    float azimuth = u_light.y + PI;\\\\n\\\\n    // We scale the slope exponentially based on intensity, using a calculation similar to\\\\n    // the exponential interpolation function in the style spec:\\\\n    // https://github.com/mapbox/mapbox-gl-js/blob/master/src/style-spec/expression/definitions/interpolate.js#L217-L228\\\\n    // so that higher intensity values create more opaque hillshading.\\\\n    float base = 1.875 - intensity * 1.75;\\\\n    float maxValue = 0.5 * PI;\\\\n    float scaledSlope = intensity != 0.5 ? ((pow(base, slope) - 1.0) / (pow(base, maxValue) - 1.0)) * maxValue : slope;\\\\n\\\\n    // The accent color is calculated with the cosine of the slope while the shade color is calculated with the sine\\\\n    // so that the accent color's rate of change eases in while the shade color's eases out.\\\\n    float accent = cos(scaledSlope);\\\\n    // We multiply both the accent and shade color by a clamped intensity value\\\\n    // so that intensities >= 0.5 do not additionally affect the color values\\\\n    // while intensity values < 0.5 make the overall color more transparent.\\\\n    vec4 accent_color = (1.0 - accent) * u_accent * clamp(intensity * 2.0, 0.0, 1.0);\\\\n    float shade = abs(mod((aspect + azimuth) / PI + 0.5, 2.0) - 1.0);\\\\n    vec4 shade_color = mix(u_shadow, u_highlight, shade) * sin(scaledSlope) * clamp(intensity * 2.0, 0.0, 1.0);\\\\n    gl_FragColor = accent_color * (1.0 - shade_color.a) + shade_color;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec2 a_texture_pos;\\\\n\\\\nvarying vec2 v_pos;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n    v_pos = a_texture_pos / 8192.0;\\\\n}\\\\n\\\"},line:{fragmentSource:\\\"#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvarying vec2 v_width2;\\\\nvarying vec2 v_normal;\\\\nvarying float v_gamma_scale;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    // Calculate the distance of the pixel from the line in pixels.\\\\n    float dist = length(v_normal) * v_width2.s;\\\\n\\\\n    // Calculate the antialiasing fade factor. This is either when fading in\\\\n    // the line in case of an offset line (v_width2.t) or when fading out\\\\n    // (v_width2.s)\\\\n    float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\\\\n    float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\\\\n\\\\n    gl_FragColor = color * (alpha * opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"\\\\n\\\\n// the distance over which the line edge fades out.\\\\n// Retina devices need a smaller distance to avoid aliasing.\\\\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\\\\n\\\\n// floor(127 / 2) == 63.0\\\\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\\\\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\\\\n// there are also \\\\\\\"special\\\\\\\" normals that have a bigger length (of up to 126 in\\\\n// this case).\\\\n// #define scale 63.0\\\\n#define scale 0.015873016\\\\n\\\\nattribute vec4 a_pos_normal;\\\\nattribute vec4 a_data;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mediump float u_ratio;\\\\nuniform vec2 u_gl_units_to_pixels;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying float v_gamma_scale;\\\\nvarying highp float v_linesofar;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define mediump float gapwidth\\\\n#pragma mapbox: define lowp float offset\\\\n#pragma mapbox: define mediump float width\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize mediump float gapwidth\\\\n    #pragma mapbox: initialize lowp float offset\\\\n    #pragma mapbox: initialize mediump float width\\\\n\\\\n    vec2 a_extrude = a_data.xy - 128.0;\\\\n    float a_direction = mod(a_data.z, 4.0) - 1.0;\\\\n\\\\n    v_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * 2.0;\\\\n\\\\n    vec2 pos = a_pos_normal.xy;\\\\n\\\\n    // x is 1 if it's a round cap, 0 otherwise\\\\n    // y is 1 if the normal points up, and -1 if it points down\\\\n    mediump vec2 normal = a_pos_normal.zw;\\\\n    v_normal = normal;\\\\n\\\\n    // these transformations used to be applied in the JS and native code bases.\\\\n    // moved them into the shader for clarity and simplicity.\\\\n    gapwidth = gapwidth / 2.0;\\\\n    float halfwidth = width / 2.0;\\\\n    offset = -1.0 * offset;\\\\n\\\\n    float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\\\\n    float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\\\\n\\\\n    // Scale the extrusion vector down to a normal and then up by the line width\\\\n    // of this vertex.\\\\n    mediump vec2 dist = outset * a_extrude * scale;\\\\n\\\\n    // Calculate the offset when drawing a line that is to the side of the actual line.\\\\n    // We do this by creating a vector that points towards the extrude, but rotate\\\\n    // it when we're drawing round end points (a_direction = -1 or 1) since their\\\\n    // extrude vector points in another direction.\\\\n    mediump float u = 0.5 * a_direction;\\\\n    mediump float t = 1.0 - abs(u);\\\\n    mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\\\\n\\\\n    vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\\\\n    gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\\\\n\\\\n    // calculate how much the perspective view squishes or stretches the extrude\\\\n    float extrude_length_without_perspective = length(dist);\\\\n    float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\\\\n    v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\\\\n\\\\n    v_width2 = vec2(outset, inset);\\\\n}\\\\n\\\"},lineGradient:{fragmentSource:\\\"\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_width2;\\\\nvarying vec2 v_normal;\\\\nvarying float v_gamma_scale;\\\\nvarying highp float v_lineprogress;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    // Calculate the distance of the pixel from the line in pixels.\\\\n    float dist = length(v_normal) * v_width2.s;\\\\n\\\\n    // Calculate the antialiasing fade factor. This is either when fading in\\\\n    // the line in case of an offset line (v_width2.t) or when fading out\\\\n    // (v_width2.s)\\\\n    float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\\\\n    float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\\\\n\\\\n    // For gradient lines, v_lineprogress is the ratio along the entire line,\\\\n    // scaled to [0, 2^15), and the gradient ramp is stored in a texture.\\\\n    vec4 color = texture2D(u_image, vec2(v_lineprogress, 0.5));\\\\n\\\\n    gl_FragColor = color * (alpha * opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"\\\\n// the attribute conveying progress along a line is scaled to [0, 2^15)\\\\n#define MAX_LINE_DISTANCE 32767.0\\\\n\\\\n// the distance over which the line edge fades out.\\\\n// Retina devices need a smaller distance to avoid aliasing.\\\\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\\\\n\\\\n// floor(127 / 2) == 63.0\\\\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\\\\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\\\\n// there are also \\\\\\\"special\\\\\\\" normals that have a bigger length (of up to 126 in\\\\n// this case).\\\\n// #define scale 63.0\\\\n#define scale 0.015873016\\\\n\\\\nattribute vec4 a_pos_normal;\\\\nattribute vec4 a_data;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mediump float u_ratio;\\\\nuniform vec2 u_gl_units_to_pixels;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying float v_gamma_scale;\\\\nvarying highp float v_lineprogress;\\\\n\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define mediump float gapwidth\\\\n#pragma mapbox: define lowp float offset\\\\n#pragma mapbox: define mediump float width\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize mediump float gapwidth\\\\n    #pragma mapbox: initialize lowp float offset\\\\n    #pragma mapbox: initialize mediump float width\\\\n\\\\n    vec2 a_extrude = a_data.xy - 128.0;\\\\n    float a_direction = mod(a_data.z, 4.0) - 1.0;\\\\n\\\\n    v_lineprogress = (floor(a_data.z / 4.0) + a_data.w * 64.0) * 2.0 / MAX_LINE_DISTANCE;\\\\n\\\\n    vec2 pos = a_pos_normal.xy;\\\\n\\\\n    // x is 1 if it's a round cap, 0 otherwise\\\\n    // y is 1 if the normal points up, and -1 if it points down\\\\n    mediump vec2 normal = a_pos_normal.zw;\\\\n    v_normal = normal;\\\\n\\\\n    // these transformations used to be applied in the JS and native code bases.\\\\n    // moved them into the shader for clarity and simplicity.\\\\n    gapwidth = gapwidth / 2.0;\\\\n    float halfwidth = width / 2.0;\\\\n    offset = -1.0 * offset;\\\\n\\\\n    float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\\\\n    float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\\\\n\\\\n    // Scale the extrusion vector down to a normal and then up by the line width\\\\n    // of this vertex.\\\\n    mediump vec2 dist = outset * a_extrude * scale;\\\\n\\\\n    // Calculate the offset when drawing a line that is to the side of the actual line.\\\\n    // We do this by creating a vector that points towards the extrude, but rotate\\\\n    // it when we're drawing round end points (a_direction = -1 or 1) since their\\\\n    // extrude vector points in another direction.\\\\n    mediump float u = 0.5 * a_direction;\\\\n    mediump float t = 1.0 - abs(u);\\\\n    mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\\\\n\\\\n    vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\\\\n    gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\\\\n\\\\n    // calculate how much the perspective view squishes or stretches the extrude\\\\n    float extrude_length_without_perspective = length(dist);\\\\n    float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\\\\n    v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\\\\n\\\\n    v_width2 = vec2(outset, inset);\\\\n}\\\\n\\\"},linePattern:{fragmentSource:\\\"uniform vec2 u_pattern_size_a;\\\\nuniform vec2 u_pattern_size_b;\\\\nuniform vec2 u_pattern_tl_a;\\\\nuniform vec2 u_pattern_br_a;\\\\nuniform vec2 u_pattern_tl_b;\\\\nuniform vec2 u_pattern_br_b;\\\\nuniform vec2 u_texsize;\\\\nuniform float u_fade;\\\\n\\\\nuniform sampler2D u_image;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying float v_linesofar;\\\\nvarying float v_gamma_scale;\\\\n\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    // Calculate the distance of the pixel from the line in pixels.\\\\n    float dist = length(v_normal) * v_width2.s;\\\\n\\\\n    // Calculate the antialiasing fade factor. This is either when fading in\\\\n    // the line in case of an offset line (v_width2.t) or when fading out\\\\n    // (v_width2.s)\\\\n    float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\\\\n    float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\\\\n\\\\n    float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\\\\n    float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\\\\n\\\\n    // v_normal.y is 0 at the midpoint of the line, -1 at the lower edge, 1 at the upper edge\\\\n    // we clamp the line width outset to be between 0 and half the pattern height plus padding (2.0)\\\\n    // to ensure we don't sample outside the designated symbol on the sprite sheet.\\\\n    // 0.5 is added to shift the component to be bounded between 0 and 1 for interpolation of\\\\n    // the texture coordinate\\\\n    float y_a = 0.5 + (v_normal.y * clamp(v_width2.s, 0.0, (u_pattern_size_a.y + 2.0) / 2.0) / u_pattern_size_a.y);\\\\n    float y_b = 0.5 + (v_normal.y * clamp(v_width2.s, 0.0, (u_pattern_size_b.y + 2.0) / 2.0) / u_pattern_size_b.y);\\\\n    vec2 pos_a = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, vec2(x_a, y_a));\\\\n    vec2 pos_b = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, vec2(x_b, y_b));\\\\n\\\\n    vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\\\\n\\\\n    gl_FragColor = color * alpha * opacity;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"// floor(127 / 2) == 63.0\\\\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\\\\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\\\\n// there are also \\\\\\\"special\\\\\\\" normals that have a bigger length (of up to 126 in\\\\n// this case).\\\\n// #define scale 63.0\\\\n#define scale 0.015873016\\\\n\\\\n// We scale the distance before adding it to the buffers so that we can store\\\\n// long distances for long segments. Use this value to unscale the distance.\\\\n#define LINE_DISTANCE_SCALE 2.0\\\\n\\\\n// the distance over which the line edge fades out.\\\\n// Retina devices need a smaller distance to avoid aliasing.\\\\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\\\\n\\\\nattribute vec4 a_pos_normal;\\\\nattribute vec4 a_data;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mediump float u_ratio;\\\\nuniform vec2 u_gl_units_to_pixels;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying float v_linesofar;\\\\nvarying float v_gamma_scale;\\\\n\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define lowp float offset\\\\n#pragma mapbox: define mediump float gapwidth\\\\n#pragma mapbox: define mediump float width\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize lowp float offset\\\\n    #pragma mapbox: initialize mediump float gapwidth\\\\n    #pragma mapbox: initialize mediump float width\\\\n\\\\n    vec2 a_extrude = a_data.xy - 128.0;\\\\n    float a_direction = mod(a_data.z, 4.0) - 1.0;\\\\n    float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\\\\n\\\\n    vec2 pos = a_pos_normal.xy;\\\\n\\\\n    // x is 1 if it's a round cap, 0 otherwise\\\\n    // y is 1 if the normal points up, and -1 if it points down\\\\n    mediump vec2 normal = a_pos_normal.zw;\\\\n    v_normal = normal;\\\\n\\\\n    // these transformations used to be applied in the JS and native code bases.\\\\n    // moved them into the shader for clarity and simplicity.\\\\n    gapwidth = gapwidth / 2.0;\\\\n    float halfwidth = width / 2.0;\\\\n    offset = -1.0 * offset;\\\\n\\\\n    float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\\\\n    float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\\\\n\\\\n    // Scale the extrusion vector down to a normal and then up by the line width\\\\n    // of this vertex.\\\\n    mediump vec2 dist = outset * a_extrude * scale;\\\\n\\\\n    // Calculate the offset when drawing a line that is to the side of the actual line.\\\\n    // We do this by creating a vector that points towards the extrude, but rotate\\\\n    // it when we're drawing round end points (a_direction = -1 or 1) since their\\\\n    // extrude vector points in another direction.\\\\n    mediump float u = 0.5 * a_direction;\\\\n    mediump float t = 1.0 - abs(u);\\\\n    mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\\\\n\\\\n    vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\\\\n    gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\\\\n\\\\n    // calculate how much the perspective view squishes or stretches the extrude\\\\n    float extrude_length_without_perspective = length(dist);\\\\n    float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\\\\n    v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\\\\n\\\\n    v_linesofar = a_linesofar;\\\\n    v_width2 = vec2(outset, inset);\\\\n}\\\\n\\\"},lineSDF:{fragmentSource:\\\"\\\\nuniform sampler2D u_image;\\\\nuniform float u_sdfgamma;\\\\nuniform float u_mix;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying vec2 v_tex_a;\\\\nvarying vec2 v_tex_b;\\\\nvarying float v_gamma_scale;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define mediump float width\\\\n#pragma mapbox: define lowp float floorwidth\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize mediump float width\\\\n    #pragma mapbox: initialize lowp float floorwidth\\\\n\\\\n    // Calculate the distance of the pixel from the line in pixels.\\\\n    float dist = length(v_normal) * v_width2.s;\\\\n\\\\n    // Calculate the antialiasing fade factor. This is either when fading in\\\\n    // the line in case of an offset line (v_width2.t) or when fading out\\\\n    // (v_width2.s)\\\\n    float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\\\\n    float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\\\\n\\\\n    float sdfdist_a = texture2D(u_image, v_tex_a).a;\\\\n    float sdfdist_b = texture2D(u_image, v_tex_b).a;\\\\n    float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\\\\n    alpha *= smoothstep(0.5 - u_sdfgamma / floorwidth, 0.5 + u_sdfgamma / floorwidth, sdfdist);\\\\n\\\\n    gl_FragColor = color * (alpha * opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"// floor(127 / 2) == 63.0\\\\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\\\\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\\\\n// there are also \\\\\\\"special\\\\\\\" normals that have a bigger length (of up to 126 in\\\\n// this case).\\\\n// #define scale 63.0\\\\n#define scale 0.015873016\\\\n\\\\n// We scale the distance before adding it to the buffers so that we can store\\\\n// long distances for long segments. Use this value to unscale the distance.\\\\n#define LINE_DISTANCE_SCALE 2.0\\\\n\\\\n// the distance over which the line edge fades out.\\\\n// Retina devices need a smaller distance to avoid aliasing.\\\\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\\\\n\\\\nattribute vec4 a_pos_normal;\\\\nattribute vec4 a_data;\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mediump float u_ratio;\\\\nuniform vec2 u_patternscale_a;\\\\nuniform float u_tex_y_a;\\\\nuniform vec2 u_patternscale_b;\\\\nuniform float u_tex_y_b;\\\\nuniform vec2 u_gl_units_to_pixels;\\\\n\\\\nvarying vec2 v_normal;\\\\nvarying vec2 v_width2;\\\\nvarying vec2 v_tex_a;\\\\nvarying vec2 v_tex_b;\\\\nvarying float v_gamma_scale;\\\\n\\\\n#pragma mapbox: define highp vec4 color\\\\n#pragma mapbox: define lowp float blur\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define mediump float gapwidth\\\\n#pragma mapbox: define lowp float offset\\\\n#pragma mapbox: define mediump float width\\\\n#pragma mapbox: define lowp float floorwidth\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 color\\\\n    #pragma mapbox: initialize lowp float blur\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize mediump float gapwidth\\\\n    #pragma mapbox: initialize lowp float offset\\\\n    #pragma mapbox: initialize mediump float width\\\\n    #pragma mapbox: initialize lowp float floorwidth\\\\n\\\\n    vec2 a_extrude = a_data.xy - 128.0;\\\\n    float a_direction = mod(a_data.z, 4.0) - 1.0;\\\\n    float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\\\\n\\\\n    vec2 pos = a_pos_normal.xy;\\\\n\\\\n    // x is 1 if it's a round cap, 0 otherwise\\\\n    // y is 1 if the normal points up, and -1 if it points down\\\\n    mediump vec2 normal = a_pos_normal.zw;\\\\n    v_normal = normal;\\\\n\\\\n    // these transformations used to be applied in the JS and native code bases.\\\\n    // moved them into the shader for clarity and simplicity.\\\\n    gapwidth = gapwidth / 2.0;\\\\n    float halfwidth = width / 2.0;\\\\n    offset = -1.0 * offset;\\\\n\\\\n    float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\\\\n    float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\\\\n\\\\n    // Scale the extrusion vector down to a normal and then up by the line width\\\\n    // of this vertex.\\\\n    mediump vec2 dist =outset * a_extrude * scale;\\\\n\\\\n    // Calculate the offset when drawing a line that is to the side of the actual line.\\\\n    // We do this by creating a vector that points towards the extrude, but rotate\\\\n    // it when we're drawing round end points (a_direction = -1 or 1) since their\\\\n    // extrude vector points in another direction.\\\\n    mediump float u = 0.5 * a_direction;\\\\n    mediump float t = 1.0 - abs(u);\\\\n    mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\\\\n\\\\n    vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\\\\n    gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\\\\n\\\\n    // calculate how much the perspective view squishes or stretches the extrude\\\\n    float extrude_length_without_perspective = length(dist);\\\\n    float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\\\\n    v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\\\\n\\\\n    v_tex_a = vec2(a_linesofar * u_patternscale_a.x / floorwidth, normal.y * u_patternscale_a.y + u_tex_y_a);\\\\n    v_tex_b = vec2(a_linesofar * u_patternscale_b.x / floorwidth, normal.y * u_patternscale_b.y + u_tex_y_b);\\\\n\\\\n    v_width2 = vec2(outset, inset);\\\\n}\\\\n\\\"},raster:{fragmentSource:\\\"uniform float u_fade_t;\\\\nuniform float u_opacity;\\\\nuniform sampler2D u_image0;\\\\nuniform sampler2D u_image1;\\\\nvarying vec2 v_pos0;\\\\nvarying vec2 v_pos1;\\\\n\\\\nuniform float u_brightness_low;\\\\nuniform float u_brightness_high;\\\\n\\\\nuniform float u_saturation_factor;\\\\nuniform float u_contrast_factor;\\\\nuniform vec3 u_spin_weights;\\\\n\\\\nvoid main() {\\\\n\\\\n    // read and cross-fade colors from the main and parent tiles\\\\n    vec4 color0 = texture2D(u_image0, v_pos0);\\\\n    vec4 color1 = texture2D(u_image1, v_pos1);\\\\n    if (color0.a > 0.0) {\\\\n        color0.rgb = color0.rgb / color0.a;\\\\n    }\\\\n    if (color1.a > 0.0) {\\\\n        color1.rgb = color1.rgb / color1.a;\\\\n    }\\\\n    vec4 color = mix(color0, color1, u_fade_t);\\\\n    color.a *= u_opacity;\\\\n    vec3 rgb = color.rgb;\\\\n\\\\n    // spin\\\\n    rgb = vec3(\\\\n        dot(rgb, u_spin_weights.xyz),\\\\n        dot(rgb, u_spin_weights.zxy),\\\\n        dot(rgb, u_spin_weights.yzx));\\\\n\\\\n    // saturation\\\\n    float average = (color.r + color.g + color.b) / 3.0;\\\\n    rgb += (average - rgb) * u_saturation_factor;\\\\n\\\\n    // contrast\\\\n    rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\\\\n\\\\n    // brightness\\\\n    vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\\\\n    vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\\\\n\\\\n    gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"uniform mat4 u_matrix;\\\\nuniform vec2 u_tl_parent;\\\\nuniform float u_scale_parent;\\\\nuniform float u_buffer_scale;\\\\n\\\\nattribute vec2 a_pos;\\\\nattribute vec2 a_texture_pos;\\\\n\\\\nvarying vec2 v_pos0;\\\\nvarying vec2 v_pos1;\\\\n\\\\nvoid main() {\\\\n    gl_Position = u_matrix * vec4(a_pos, 0, 1);\\\\n    // We are using Int16 for texture position coordinates to give us enough precision for\\\\n    // fractional coordinates. We use 8192 to scale the texture coordinates in the buffer\\\\n    // as an arbitrarily high number to preserve adequate precision when rendering.\\\\n    // This is also the same value as the EXTENT we are using for our tile buffer pos coordinates,\\\\n    // so math for modifying either is consistent.\\\\n    v_pos0 = (((a_texture_pos / 8192.0) - 0.5) / u_buffer_scale ) + 0.5;\\\\n    v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\\\\n}\\\\n\\\"},symbolIcon:{fragmentSource:\\\"uniform sampler2D u_texture;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nvarying vec2 v_tex;\\\\nvarying float v_fade_opacity;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    lowp float alpha = opacity * v_fade_opacity;\\\\n    gl_FragColor = texture2D(u_texture, v_tex) * alpha;\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"const float PI = 3.141592653589793;\\\\n\\\\nattribute vec4 a_pos_offset;\\\\nattribute vec4 a_data;\\\\nattribute vec3 a_projected_pos;\\\\nattribute float a_fade_opacity;\\\\n\\\\nuniform bool u_is_size_zoom_constant;\\\\nuniform bool u_is_size_feature_constant;\\\\nuniform highp float u_size_t; // used to interpolate between zoom stops when size is a composite function\\\\nuniform highp float u_size; // used when size is both zoom and feature constant\\\\nuniform highp float u_camera_to_center_distance;\\\\nuniform highp float u_pitch;\\\\nuniform bool u_rotate_symbol;\\\\nuniform highp float u_aspect_ratio;\\\\nuniform float u_fade_change;\\\\n\\\\n#pragma mapbox: define lowp float opacity\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mat4 u_label_plane_matrix;\\\\nuniform mat4 u_gl_coord_matrix;\\\\n\\\\nuniform bool u_is_text;\\\\nuniform bool u_pitch_with_map;\\\\n\\\\nuniform vec2 u_texsize;\\\\n\\\\nvarying vec2 v_tex;\\\\nvarying float v_fade_opacity;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n\\\\n    vec2 a_pos = a_pos_offset.xy;\\\\n    vec2 a_offset = a_pos_offset.zw;\\\\n\\\\n    vec2 a_tex = a_data.xy;\\\\n    vec2 a_size = a_data.zw;\\\\n\\\\n    highp float segment_angle = -a_projected_pos[2];\\\\n\\\\n    float size;\\\\n    if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\\\\n        size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\\\\n    } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\\\\n        size = a_size[0] / 10.0;\\\\n    } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\\\\n        size = u_size;\\\\n    } else {\\\\n        size = u_size;\\\\n    }\\\\n\\\\n    vec4 projectedPoint = u_matrix * vec4(a_pos, 0, 1);\\\\n    highp float camera_to_anchor_distance = projectedPoint.w;\\\\n    // See comments in symbol_sdf.vertex\\\\n    highp float distance_ratio = u_pitch_with_map ?\\\\n        camera_to_anchor_distance / u_camera_to_center_distance :\\\\n        u_camera_to_center_distance / camera_to_anchor_distance;\\\\n    highp float perspective_ratio = clamp(\\\\n            0.5 + 0.5 * distance_ratio,\\\\n            0.0, // Prevents oversized near-field symbols in pitched/overzoomed tiles\\\\n            4.0);\\\\n\\\\n    size *= perspective_ratio;\\\\n\\\\n    float fontScale = u_is_text ? size / 24.0 : size;\\\\n\\\\n    highp float symbol_rotation = 0.0;\\\\n    if (u_rotate_symbol) {\\\\n        // See comments in symbol_sdf.vertex\\\\n        vec4 offsetProjectedPoint = u_matrix * vec4(a_pos + vec2(1, 0), 0, 1);\\\\n\\\\n        vec2 a = projectedPoint.xy / projectedPoint.w;\\\\n        vec2 b = offsetProjectedPoint.xy / offsetProjectedPoint.w;\\\\n\\\\n        symbol_rotation = atan((b.y - a.y) / u_aspect_ratio, b.x - a.x);\\\\n    }\\\\n\\\\n    highp float angle_sin = sin(segment_angle + symbol_rotation);\\\\n    highp float angle_cos = cos(segment_angle + symbol_rotation);\\\\n    mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\\\\n\\\\n    vec4 projected_pos = u_label_plane_matrix * vec4(a_projected_pos.xy, 0.0, 1.0);\\\\n    gl_Position = u_gl_coord_matrix * vec4(projected_pos.xy / projected_pos.w + rotation_matrix * (a_offset / 32.0 * fontScale), 0.0, 1.0);\\\\n\\\\n    v_tex = a_tex / u_texsize;\\\\n    vec2 fade_opacity = unpack_opacity(a_fade_opacity);\\\\n    float fade_change = fade_opacity[1] > 0.5 ? u_fade_change : -u_fade_change;\\\\n    v_fade_opacity = max(0.0, min(1.0, fade_opacity[0] + fade_change));\\\\n}\\\\n\\\"},symbolSDF:{fragmentSource:\\\"#define SDF_PX 8.0\\\\n#define EDGE_GAMMA 0.105/DEVICE_PIXEL_RATIO\\\\n\\\\nuniform bool u_is_halo;\\\\n#pragma mapbox: define highp vec4 fill_color\\\\n#pragma mapbox: define highp vec4 halo_color\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define lowp float halo_width\\\\n#pragma mapbox: define lowp float halo_blur\\\\n\\\\nuniform sampler2D u_texture;\\\\nuniform highp float u_gamma_scale;\\\\nuniform bool u_is_text;\\\\n\\\\nvarying vec2 v_data0;\\\\nvarying vec3 v_data1;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 fill_color\\\\n    #pragma mapbox: initialize highp vec4 halo_color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize lowp float halo_width\\\\n    #pragma mapbox: initialize lowp float halo_blur\\\\n\\\\n    vec2 tex = v_data0.xy;\\\\n    float gamma_scale = v_data1.x;\\\\n    float size = v_data1.y;\\\\n    float fade_opacity = v_data1[2];\\\\n\\\\n    float fontScale = u_is_text ? size / 24.0 : size;\\\\n\\\\n    lowp vec4 color = fill_color;\\\\n    highp float gamma = EDGE_GAMMA / (fontScale * u_gamma_scale);\\\\n    lowp float buff = (256.0 - 64.0) / 256.0;\\\\n    if (u_is_halo) {\\\\n        color = halo_color;\\\\n        gamma = (halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (fontScale * u_gamma_scale);\\\\n        buff = (6.0 - halo_width / fontScale) / SDF_PX;\\\\n    }\\\\n\\\\n    lowp float dist = texture2D(u_texture, tex).a;\\\\n    highp float gamma_scaled = gamma * gamma_scale;\\\\n    highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist);\\\\n\\\\n    gl_FragColor = color * (alpha * opacity * fade_opacity);\\\\n\\\\n#ifdef OVERDRAW_INSPECTOR\\\\n    gl_FragColor = vec4(1.0);\\\\n#endif\\\\n}\\\\n\\\",vertexSource:\\\"const float PI = 3.141592653589793;\\\\n\\\\nattribute vec4 a_pos_offset;\\\\nattribute vec4 a_data;\\\\nattribute vec3 a_projected_pos;\\\\nattribute float a_fade_opacity;\\\\n\\\\n// contents of a_size vary based on the type of property value\\\\n// used for {text,icon}-size.\\\\n// For constants, a_size is disabled.\\\\n// For source functions, we bind only one value per vertex: the value of {text,icon}-size evaluated for the current feature.\\\\n// For composite functions:\\\\n// [ text-size(lowerZoomStop, feature),\\\\n//   text-size(upperZoomStop, feature) ]\\\\nuniform bool u_is_size_zoom_constant;\\\\nuniform bool u_is_size_feature_constant;\\\\nuniform highp float u_size_t; // used to interpolate between zoom stops when size is a composite function\\\\nuniform highp float u_size; // used when size is both zoom and feature constant\\\\n\\\\n#pragma mapbox: define highp vec4 fill_color\\\\n#pragma mapbox: define highp vec4 halo_color\\\\n#pragma mapbox: define lowp float opacity\\\\n#pragma mapbox: define lowp float halo_width\\\\n#pragma mapbox: define lowp float halo_blur\\\\n\\\\nuniform mat4 u_matrix;\\\\nuniform mat4 u_label_plane_matrix;\\\\nuniform mat4 u_gl_coord_matrix;\\\\n\\\\nuniform bool u_is_text;\\\\nuniform bool u_pitch_with_map;\\\\nuniform highp float u_pitch;\\\\nuniform bool u_rotate_symbol;\\\\nuniform highp float u_aspect_ratio;\\\\nuniform highp float u_camera_to_center_distance;\\\\nuniform float u_fade_change;\\\\n\\\\nuniform vec2 u_texsize;\\\\n\\\\nvarying vec2 v_data0;\\\\nvarying vec3 v_data1;\\\\n\\\\nvoid main() {\\\\n    #pragma mapbox: initialize highp vec4 fill_color\\\\n    #pragma mapbox: initialize highp vec4 halo_color\\\\n    #pragma mapbox: initialize lowp float opacity\\\\n    #pragma mapbox: initialize lowp float halo_width\\\\n    #pragma mapbox: initialize lowp float halo_blur\\\\n\\\\n    vec2 a_pos = a_pos_offset.xy;\\\\n    vec2 a_offset = a_pos_offset.zw;\\\\n\\\\n    vec2 a_tex = a_data.xy;\\\\n    vec2 a_size = a_data.zw;\\\\n\\\\n    highp float segment_angle = -a_projected_pos[2];\\\\n    float size;\\\\n\\\\n    if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\\\\n        size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\\\\n    } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\\\\n        size = a_size[0] / 10.0;\\\\n    } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\\\\n        size = u_size;\\\\n    } else {\\\\n        size = u_size;\\\\n    }\\\\n\\\\n    vec4 projectedPoint = u_matrix * vec4(a_pos, 0, 1);\\\\n    highp float camera_to_anchor_distance = projectedPoint.w;\\\\n    // If the label is pitched with the map, layout is done in pitched space,\\\\n    // which makes labels in the distance smaller relative to viewport space.\\\\n    // We counteract part of that effect by multiplying by the perspective ratio.\\\\n    // If the label isn't pitched with the map, we do layout in viewport space,\\\\n    // which makes labels in the distance larger relative to the features around\\\\n    // them. We counteract part of that effect by dividing by the perspective ratio.\\\\n    highp float distance_ratio = u_pitch_with_map ?\\\\n        camera_to_anchor_distance / u_camera_to_center_distance :\\\\n        u_camera_to_center_distance / camera_to_anchor_distance;\\\\n    highp float perspective_ratio = clamp(\\\\n        0.5 + 0.5 * distance_ratio,\\\\n        0.0, // Prevents oversized near-field symbols in pitched/overzoomed tiles\\\\n        4.0);\\\\n\\\\n    size *= perspective_ratio;\\\\n\\\\n    float fontScale = u_is_text ? size / 24.0 : size;\\\\n\\\\n    highp float symbol_rotation = 0.0;\\\\n    if (u_rotate_symbol) {\\\\n        // Point labels with 'rotation-alignment: map' are horizontal with respect to tile units\\\\n        // To figure out that angle in projected space, we draw a short horizontal line in tile\\\\n        // space, project it, and measure its angle in projected space.\\\\n        vec4 offsetProjectedPoint = u_matrix * vec4(a_pos + vec2(1, 0), 0, 1);\\\\n\\\\n        vec2 a = projectedPoint.xy / projectedPoint.w;\\\\n        vec2 b = offsetProjectedPoint.xy / offsetProjectedPoint.w;\\\\n\\\\n        symbol_rotation = atan((b.y - a.y) / u_aspect_ratio, b.x - a.x);\\\\n    }\\\\n\\\\n    highp float angle_sin = sin(segment_angle + symbol_rotation);\\\\n    highp float angle_cos = cos(segment_angle + symbol_rotation);\\\\n    mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\\\\n\\\\n    vec4 projected_pos = u_label_plane_matrix * vec4(a_projected_pos.xy, 0.0, 1.0);\\\\n    gl_Position = u_gl_coord_matrix * vec4(projected_pos.xy / projected_pos.w + rotation_matrix * (a_offset / 32.0 * fontScale), 0.0, 1.0);\\\\n    float gamma_scale = gl_Position.w;\\\\n\\\\n    vec2 tex = a_tex / u_texsize;\\\\n    vec2 fade_opacity = unpack_opacity(a_fade_opacity);\\\\n    float fade_change = fade_opacity[1] > 0.5 ? u_fade_change : -u_fade_change;\\\\n    float interpolated_fade_opacity = max(0.0, min(1.0, fade_opacity[0] + fade_change));\\\\n\\\\n    v_data0 = vec2(tex.x, tex.y);\\\\n    v_data1 = vec3(gamma_scale, size, interpolated_fade_opacity);\\\\n}\\\\n\\\"}},tr=/#pragma mapbox: ([\\\\w]+) ([\\\\w]+) ([\\\\w]+) ([\\\\w]+)/g,er=function(t){var e=Qe[t],r={};e.fragmentSource=e.fragmentSource.replace(tr,function(t,e,n,i,a){return r[a]=!0,\\\"define\\\"===e?\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\nvarying \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\";\\\\n#else\\\\nuniform \\\"+n+\\\" \\\"+i+\\\" u_\\\"+a+\\\";\\\\n#endif\\\\n\\\":\\\"\\\\n#ifdef HAS_UNIFORM_u_\\\"+a+\\\"\\\\n    \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\" = u_\\\"+a+\\\";\\\\n#endif\\\\n\\\"}),e.vertexSource=e.vertexSource.replace(tr,function(t,e,n,i,a){var o=\\\"float\\\"===i?\\\"vec2\\\":\\\"vec4\\\";return r[a]?\\\"define\\\"===e?\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\nuniform lowp float a_\\\"+a+\\\"_t;\\\\nattribute \\\"+n+\\\" \\\"+o+\\\" a_\\\"+a+\\\";\\\\nvarying \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\";\\\\n#else\\\\nuniform \\\"+n+\\\" \\\"+i+\\\" u_\\\"+a+\\\";\\\\n#endif\\\\n\\\":\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\n    \\\"+a+\\\" = unpack_mix_\\\"+o+\\\"(a_\\\"+a+\\\", a_\\\"+a+\\\"_t);\\\\n#else\\\\n    \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\" = u_\\\"+a+\\\";\\\\n#endif\\\\n\\\":\\\"define\\\"===e?\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\nuniform lowp float a_\\\"+a+\\\"_t;\\\\nattribute \\\"+n+\\\" \\\"+o+\\\" a_\\\"+a+\\\";\\\\n#else\\\\nuniform \\\"+n+\\\" \\\"+i+\\\" u_\\\"+a+\\\";\\\\n#endif\\\\n\\\":\\\"\\\\n#ifndef HAS_UNIFORM_u_\\\"+a+\\\"\\\\n    \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\" = unpack_mix_\\\"+o+\\\"(a_\\\"+a+\\\", a_\\\"+a+\\\"_t);\\\\n#else\\\\n    \\\"+n+\\\" \\\"+i+\\\" \\\"+a+\\\" = u_\\\"+a+\\\";\\\\n#endif\\\\n\\\"})};for(var rr in Qe)er(rr);var nr=Qe,ir=function(t,e,r,n){var i=t.gl;this.program=i.createProgram();var o=r.defines().concat(\\\"#define DEVICE_PIXEL_RATIO \\\"+a.devicePixelRatio.toFixed(1));n&&o.push(\\\"#define OVERDRAW_INSPECTOR;\\\");var s=o.concat(nr.prelude.fragmentSource,e.fragmentSource).join(\\\"\\\\n\\\"),l=o.concat(nr.prelude.vertexSource,e.vertexSource).join(\\\"\\\\n\\\"),c=i.createShader(i.FRAGMENT_SHADER);i.shaderSource(c,s),i.compileShader(c),i.attachShader(this.program,c);var u=i.createShader(i.VERTEX_SHADER);i.shaderSource(u,l),i.compileShader(u),i.attachShader(this.program,u);for(var f=r.layoutAttributes||[],h=0;h<f.length;h++)i.bindAttribLocation(this.program,h,f[h].name);i.linkProgram(this.program),this.numAttributes=i.getProgramParameter(this.program,i.ACTIVE_ATTRIBUTES),this.attributes={},this.uniforms={};for(var p=0;p<this.numAttributes;p++){var d=i.getActiveAttrib(this.program,p);d&&(this.attributes[d.name]=i.getAttribLocation(this.program,d.name))}for(var g=i.getProgramParameter(this.program,i.ACTIVE_UNIFORMS),v=0;v<g;v++){var m=i.getActiveUniform(this.program,v);m&&(this.uniforms[m.name]=i.getUniformLocation(this.program,m.name))}};function ar(e,r,n,i,a){for(var o=0;o<n.length;o++){var s=n[o];if(i.isLessThan(s.tileID))break;if(r.key===s.tileID.key)return;if(s.tileID.isChildOf(r)){for(var l=r.children(1/0),c=0;c<l.length;c++)ar(e,l[c],n.slice(o),i,a);return}}var u=r.overscaledZ-e.overscaledZ,f=new t.CanonicalTileID(u,r.canonical.x-(e.canonical.x<<u),r.canonical.y-(e.canonical.y<<u));a[f.key]=a[f.key]||f}function or(t,e,r,n,i){var a=t.context,o=a.gl,s=i?t.useProgram(\\\"collisionCircle\\\"):t.useProgram(\\\"collisionBox\\\");a.setDepthMode(qt.disabled),a.setStencilMode(Ht.disabled),a.setColorMode(t.colorModeForRenderPass());for(var l=0;l<n.length;l++){var c=n[l],u=e.getTile(c),f=u.getBucket(r);if(f){var h=i?f.collisionCircle:f.collisionBox;if(h){o.uniformMatrix4fv(s.uniforms.u_matrix,!1,c.posMatrix),i||a.lineWidth.set(1),o.uniform1f(s.uniforms.u_camera_to_center_distance,t.transform.cameraToCenterDistance);var p=Te(u,1,t.transform.zoom),d=Math.pow(2,t.transform.zoom-u.tileID.overscaledZ);o.uniform1f(s.uniforms.u_pixels_to_tile_units,p),o.uniform2f(s.uniforms.u_extrude_scale,t.transform.pixelsToGLUnits[0]/(p*d),t.transform.pixelsToGLUnits[1]/(p*d)),o.uniform1f(s.uniforms.u_overscale_factor,u.tileID.overscaleFactor()),s.draw(a,i?o.TRIANGLES:o.LINES,r.id,h.layoutVertexBuffer,h.indexBuffer,h.segments,null,h.collisionVertexBuffer,null)}}}}ir.prototype.draw=function(t,e,r,n,i,a,o,s,l){for(var c,u=t.gl,f=(c={},c[u.LINES]=2,c[u.TRIANGLES]=3,c)[e],h=0,p=a.get();h<p.length;h+=1){var d=p[h],g=d.vaos||(d.vaos={});(g[r]||(g[r]=new Q)).bind(t,this,n,o?o.getPaintVertexBuffers():[],i,d.vertexOffset,s,l),u.drawElements(e,d.primitiveLength*f,u.UNSIGNED_SHORT,d.primitiveOffset*f*2)}};var sr=t.mat4.identity(new Float32Array(16)),lr=t.default$19.layout;function cr(t,e,r,n,i,a,o,s,l,c){var u,f=t.context,h=f.gl,p=t.transform,d=\\\"map\\\"===s,g=\\\"map\\\"===l,v=d&&\\\"line\\\"===r.layout.get(\\\"symbol-placement\\\"),m=d&&!g&&!v,y=g;f.setDepthMode(y?t.depthModeForSublayer(0,qt.ReadOnly):qt.disabled);for(var x=0,b=n;x<b.length;x+=1){var _=b[x],w=e.getTile(_),k=w.getBucket(r);if(k){var M=i?k.text:k.icon;if(M&&M.segments.get().length){var A=M.programConfigurations.get(r.id),T=i||k.sdfIcons,S=i?k.textSizeData:k.iconSizeData;if(u||(u=t.useProgram(T?\\\"symbolSDF\\\":\\\"symbolIcon\\\",A),A.setUniforms(t.context,u,r.paint,{zoom:t.transform.zoom}),ur(u,t,r,i,m,g,S)),f.activeTexture.set(h.TEXTURE0),h.uniform1i(u.uniforms.u_texture,0),i)w.glyphAtlasTexture.bind(h.LINEAR,h.CLAMP_TO_EDGE),h.uniform2fv(u.uniforms.u_texsize,w.glyphAtlasTexture.size);else{var E=1!==r.layout.get(\\\"icon-size\\\").constantOr(0)||k.iconsNeedLinear,C=g||0!==p.pitch;w.iconAtlasTexture.bind(T||t.options.rotating||t.options.zooming||E||C?h.LINEAR:h.NEAREST,h.CLAMP_TO_EDGE),h.uniform2fv(u.uniforms.u_texsize,w.iconAtlasTexture.size)}h.uniformMatrix4fv(u.uniforms.u_matrix,!1,t.translatePosMatrix(_.posMatrix,w,a,o));var L=Te(w,1,t.transform.zoom),z=fe(_.posMatrix,g,d,t.transform,L),O=he(_.posMatrix,g,d,t.transform,L);h.uniformMatrix4fv(u.uniforms.u_gl_coord_matrix,!1,t.translatePosMatrix(O,w,a,o,!0)),v?(h.uniformMatrix4fv(u.uniforms.u_label_plane_matrix,!1,sr),ge(k,_.posMatrix,t,i,z,O,g,c)):h.uniformMatrix4fv(u.uniforms.u_label_plane_matrix,!1,z),h.uniform1f(u.uniforms.u_fade_change,t.options.fadeDuration?t.symbolFadeChange:1),fr(u,A,t,r,w,M,i,T,g)}}}}function ur(e,r,n,i,a,o,s){var l=r.context.gl,c=r.transform;l.uniform1i(e.uniforms.u_pitch_with_map,o?1:0),l.uniform1f(e.uniforms.u_is_text,i?1:0),l.uniform1f(e.uniforms.u_pitch,c.pitch/360*2*Math.PI);var u=\\\"constant\\\"===s.functionType||\\\"source\\\"===s.functionType,f=\\\"constant\\\"===s.functionType||\\\"camera\\\"===s.functionType;l.uniform1i(e.uniforms.u_is_size_zoom_constant,u?1:0),l.uniform1i(e.uniforms.u_is_size_feature_constant,f?1:0),l.uniform1f(e.uniforms.u_camera_to_center_distance,c.cameraToCenterDistance);var h=t.evaluateSizeForZoom(s,c.zoom,lr.properties[i?\\\"text-size\\\":\\\"icon-size\\\"]);void 0!==h.uSizeT&&l.uniform1f(e.uniforms.u_size_t,h.uSizeT),void 0!==h.uSize&&l.uniform1f(e.uniforms.u_size,h.uSize),l.uniform1f(e.uniforms.u_aspect_ratio,c.width/c.height),l.uniform1i(e.uniforms.u_rotate_symbol,a?1:0)}function fr(t,e,r,n,i,a,o,s,l){var c=r.context,u=c.gl,f=r.transform;if(s){var h=0!==n.paint.get(o?\\\"text-halo-width\\\":\\\"icon-halo-width\\\").constantOr(1),p=l?Math.cos(f._pitch)*f.cameraToCenterDistance:1;u.uniform1f(t.uniforms.u_gamma_scale,p),h&&(u.uniform1f(t.uniforms.u_is_halo,1),hr(a,n,c,t)),u.uniform1f(t.uniforms.u_is_halo,0)}hr(a,n,c,t)}function hr(t,e,r,n){n.draw(r,r.gl.TRIANGLES,e.id,t.layoutVertexBuffer,t.indexBuffer,t.segments,t.programConfigurations.get(e.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer)}function pr(t,e,r,n,i,o,s,l,c){var u,f,h,p,d=e.context,g=d.gl,v=i.paint.get(\\\"line-dasharray\\\"),m=i.paint.get(\\\"line-pattern\\\");if(l||c){var y=1/Te(r,1,e.transform.tileZoom);if(v){u=e.lineAtlas.getDash(v.from,\\\"round\\\"===i.layout.get(\\\"line-cap\\\")),f=e.lineAtlas.getDash(v.to,\\\"round\\\"===i.layout.get(\\\"line-cap\\\"));var x=u.width*v.fromScale,b=f.width*v.toScale;g.uniform2f(t.uniforms.u_patternscale_a,y/x,-u.height/2),g.uniform2f(t.uniforms.u_patternscale_b,y/b,-f.height/2),g.uniform1f(t.uniforms.u_sdfgamma,e.lineAtlas.width/(256*Math.min(x,b)*a.devicePixelRatio)/2)}else if(m){if(h=e.imageManager.getPattern(m.from),p=e.imageManager.getPattern(m.to),!h||!p)return;g.uniform2f(t.uniforms.u_pattern_size_a,h.displaySize[0]*m.fromScale/y,h.displaySize[1]),g.uniform2f(t.uniforms.u_pattern_size_b,p.displaySize[0]*m.toScale/y,p.displaySize[1]);var _=e.imageManager.getPixelSize(),w=_.width,k=_.height;g.uniform2fv(t.uniforms.u_texsize,[w,k])}g.uniform2f(t.uniforms.u_gl_units_to_pixels,1/e.transform.pixelsToGLUnits[0],1/e.transform.pixelsToGLUnits[1])}l&&(v?(g.uniform1i(t.uniforms.u_image,0),d.activeTexture.set(g.TEXTURE0),e.lineAtlas.bind(d),g.uniform1f(t.uniforms.u_tex_y_a,u.y),g.uniform1f(t.uniforms.u_tex_y_b,f.y),g.uniform1f(t.uniforms.u_mix,v.t)):m&&(g.uniform1i(t.uniforms.u_image,0),d.activeTexture.set(g.TEXTURE0),e.imageManager.bind(d),g.uniform2fv(t.uniforms.u_pattern_tl_a,h.tl),g.uniform2fv(t.uniforms.u_pattern_br_a,h.br),g.uniform2fv(t.uniforms.u_pattern_tl_b,p.tl),g.uniform2fv(t.uniforms.u_pattern_br_b,p.br),g.uniform1f(t.uniforms.u_fade,m.t))),d.setStencilMode(e.stencilModeForClipping(o));var M=e.translatePosMatrix(o.posMatrix,r,i.paint.get(\\\"line-translate\\\"),i.paint.get(\\\"line-translate-anchor\\\"));if(g.uniformMatrix4fv(t.uniforms.u_matrix,!1,M),g.uniform1f(t.uniforms.u_ratio,1/Te(r,1,e.transform.zoom)),i.paint.get(\\\"line-gradient\\\")){d.activeTexture.set(g.TEXTURE0);var A=i.gradientTexture;if(!i.gradient)return;A||(A=i.gradientTexture=new z(d,i.gradient,g.RGBA)),A.bind(g.LINEAR,g.CLAMP_TO_EDGE),g.uniform1i(t.uniforms.u_image,0)}t.draw(d,g.TRIANGLES,i.id,n.layoutVertexBuffer,n.indexBuffer,n.segments,s)}var dr=function(t,e){if(!t)return!1;var r=e.imageManager.getPattern(t.from),n=e.imageManager.getPattern(t.to);return!r||!n},gr=function(t,e,r){var n=e.context,i=n.gl,a=e.imageManager.getPattern(t.from),o=e.imageManager.getPattern(t.to);i.uniform1i(r.uniforms.u_image,0),i.uniform2fv(r.uniforms.u_pattern_tl_a,a.tl),i.uniform2fv(r.uniforms.u_pattern_br_a,a.br),i.uniform2fv(r.uniforms.u_pattern_tl_b,o.tl),i.uniform2fv(r.uniforms.u_pattern_br_b,o.br);var s=e.imageManager.getPixelSize(),l=s.width,c=s.height;i.uniform2fv(r.uniforms.u_texsize,[l,c]),i.uniform1f(r.uniforms.u_mix,t.t),i.uniform2fv(r.uniforms.u_pattern_size_a,a.displaySize),i.uniform2fv(r.uniforms.u_pattern_size_b,o.displaySize),i.uniform1f(r.uniforms.u_scale_a,t.fromScale),i.uniform1f(r.uniforms.u_scale_b,t.toScale),n.activeTexture.set(i.TEXTURE0),e.imageManager.bind(e.context)},vr=function(t,e,r){var n=e.context.gl;n.uniform1f(r.uniforms.u_tile_units_to_pixels,1/Te(t,1,e.transform.tileZoom));var i=Math.pow(2,t.tileID.overscaledZ),a=t.tileSize*Math.pow(2,e.transform.tileZoom)/i,o=a*(t.tileID.canonical.x+t.tileID.wrap*i),s=a*t.tileID.canonical.y;n.uniform2f(r.uniforms.u_pixel_coord_upper,o>>16,s>>16),n.uniform2f(r.uniforms.u_pixel_coord_lower,65535&o,65535&s)};function mr(t,e,r,n,i){if(!dr(r.paint.get(\\\"fill-pattern\\\"),t))for(var a=!0,o=0,s=n;o<s.length;o+=1){var l=s[o],c=e.getTile(l),u=c.getBucket(r);u&&(t.context.setStencilMode(t.stencilModeForClipping(l)),i(t,e,r,c,l,u,a),a=!1)}}function yr(t,e,r,n,i,a,o){var s=t.context.gl,l=a.programConfigurations.get(r.id);br(\\\"fill\\\",r.paint.get(\\\"fill-pattern\\\"),t,l,r,n,i,o).draw(t.context,s.TRIANGLES,r.id,a.layoutVertexBuffer,a.indexBuffer,a.segments,l)}function xr(t,e,r,n,i,a,o){var s=t.context.gl,l=a.programConfigurations.get(r.id),c=br(\\\"fillOutline\\\",r.getPaintProperty(\\\"fill-outline-color\\\")?null:r.paint.get(\\\"fill-pattern\\\"),t,l,r,n,i,o);s.uniform2f(c.uniforms.u_world,s.drawingBufferWidth,s.drawingBufferHeight),c.draw(t.context,s.LINES,r.id,a.layoutVertexBuffer,a.indexBuffer2,a.segments2,l)}function br(t,e,r,n,i,a,o,s){var l,c=r.context.program.get();return e?(l=r.useProgram(t+\\\"Pattern\\\",n),(s||l.program!==c)&&(n.setUniforms(r.context,l,i.paint,{zoom:r.transform.zoom}),gr(e,r,l)),vr(a,r,l)):(l=r.useProgram(t,n),(s||l.program!==c)&&n.setUniforms(r.context,l,i.paint,{zoom:r.transform.zoom})),r.context.gl.uniformMatrix4fv(l.uniforms.u_matrix,!1,r.translatePosMatrix(o.posMatrix,a,i.paint.get(\\\"fill-translate\\\"),i.paint.get(\\\"fill-translate-anchor\\\"))),l}var _r=t.default$20.mat3,wr=t.default$20.mat4,kr=t.default$20.vec3;function Mr(t,e,r,n,i,a,o){var s=t.context,l=s.gl,c=r.paint.get(\\\"fill-extrusion-pattern\\\"),u=t.context.program.get(),f=a.programConfigurations.get(r.id),h=t.useProgram(c?\\\"fillExtrusionPattern\\\":\\\"fillExtrusion\\\",f);if((o||h.program!==u)&&f.setUniforms(s,h,r.paint,{zoom:t.transform.zoom}),c){if(dr(c,t))return;gr(c,t,h),vr(n,t,h),l.uniform1f(h.uniforms.u_height_factor,-Math.pow(2,i.overscaledZ)/n.tileSize/8)}t.context.gl.uniformMatrix4fv(h.uniforms.u_matrix,!1,t.translatePosMatrix(i.posMatrix,n,r.paint.get(\\\"fill-extrusion-translate\\\"),r.paint.get(\\\"fill-extrusion-translate-anchor\\\"))),function(t,e){var r=e.context.gl,n=e.style.light,i=n.properties.get(\\\"position\\\"),a=[i.x,i.y,i.z],o=_r.create();\\\"viewport\\\"===n.properties.get(\\\"anchor\\\")&&_r.fromRotation(o,-e.transform.angle),kr.transformMat3(a,a,o);var s=n.properties.get(\\\"color\\\");r.uniform3fv(t.uniforms.u_lightpos,a),r.uniform1f(t.uniforms.u_lightintensity,n.properties.get(\\\"intensity\\\")),r.uniform3f(t.uniforms.u_lightcolor,s.r,s.g,s.b)}(h,t),h.draw(s,l.TRIANGLES,r.id,a.layoutVertexBuffer,a.indexBuffer,a.segments,f)}function Ar(e,r,n){var i=e.context,a=i.gl,o=r.fbo;if(o){var s=e.useProgram(\\\"hillshade\\\"),l=e.transform.calculatePosMatrix(r.tileID.toUnwrapped(),!0);!function(t,e,r){var n=r.paint.get(\\\"hillshade-illumination-direction\\\")*(Math.PI/180);\\\"viewport\\\"===r.paint.get(\\\"hillshade-illumination-anchor\\\")&&(n-=e.transform.angle),e.context.gl.uniform2f(t.uniforms.u_light,r.paint.get(\\\"hillshade-exaggeration\\\"),n)}(s,e,n);var c=function(e,r){var n=r.toCoordinate(),i=new t.default$17(n.column,n.row+1,n.zoom);return[e.transform.coordinateLocation(n).lat,e.transform.coordinateLocation(i).lat]}(e,r.tileID);i.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,o.colorAttachment.get()),a.uniformMatrix4fv(s.uniforms.u_matrix,!1,l),a.uniform2fv(s.uniforms.u_latrange,c),a.uniform1i(s.uniforms.u_image,0);var u=n.paint.get(\\\"hillshade-shadow-color\\\");a.uniform4f(s.uniforms.u_shadow,u.r,u.g,u.b,u.a);var f=n.paint.get(\\\"hillshade-highlight-color\\\");a.uniform4f(s.uniforms.u_highlight,f.r,f.g,f.b,f.a);var h=n.paint.get(\\\"hillshade-accent-color\\\");if(a.uniform4f(s.uniforms.u_accent,h.r,h.g,h.b,h.a),r.maskedBoundsBuffer&&r.maskedIndexBuffer&&r.segments)s.draw(i,a.TRIANGLES,n.id,r.maskedBoundsBuffer,r.maskedIndexBuffer,r.segments);else{var p=e.rasterBoundsBuffer;e.rasterBoundsVAO.bind(i,s,p,[]),a.drawArrays(a.TRIANGLE_STRIP,0,p.length)}}}function Tr(e,r,n){var i=e.context,a=i.gl;if(r.dem&&r.dem.level){var o=r.dem.level.dim,s=r.dem.getPixels();if(i.activeTexture.set(a.TEXTURE1),i.pixelStoreUnpackPremultiplyAlpha.set(!1),r.demTexture=r.demTexture||e.getTileTexture(r.tileSize),r.demTexture){var l=r.demTexture;l.update(s,{premultiply:!1}),l.bind(a.NEAREST,a.CLAMP_TO_EDGE)}else r.demTexture=new z(i,s,a.RGBA,{premultiply:!1}),r.demTexture.bind(a.NEAREST,a.CLAMP_TO_EDGE);i.activeTexture.set(a.TEXTURE0);var c=r.fbo;if(!c){var u=new z(i,{width:o,height:o,data:null},a.RGBA);u.bind(a.LINEAR,a.CLAMP_TO_EDGE),(c=r.fbo=i.createFramebuffer(o,o)).colorAttachment.set(u.texture)}i.bindFramebuffer.set(c.framebuffer),i.viewport.set([0,0,o,o]);var f=t.mat4.create();t.mat4.ortho(f,0,t.default$8,-t.default$8,0,0,1),t.mat4.translate(f,f,[0,-t.default$8,0]);var h=e.useProgram(\\\"hillshadePrepare\\\");a.uniformMatrix4fv(h.uniforms.u_matrix,!1,f),a.uniform1f(h.uniforms.u_zoom,r.tileID.overscaledZ),a.uniform2fv(h.uniforms.u_dimension,[2*o,2*o]),a.uniform1i(h.uniforms.u_image,1),a.uniform1f(h.uniforms.u_maxzoom,n);var p=e.rasterBoundsBuffer;e.rasterBoundsVAO.bind(i,h,p,[]),a.drawArrays(a.TRIANGLE_STRIP,0,p.length),r.needsHillshadePrepare=!1}}function Sr(e,r,n,i,o){var s=i.paint.get(\\\"raster-fade-duration\\\");if(s>0){var l=a.now(),c=(l-e.timeAdded)/s,u=r?(l-r.timeAdded)/s:-1,f=n.getSource(),h=o.coveringZoomLevel({tileSize:f.tileSize,roundZoom:f.roundZoom}),p=!r||Math.abs(r.tileID.overscaledZ-h)>Math.abs(e.tileID.overscaledZ-h),d=p&&e.refreshedUponExpiration?1:t.clamp(p?c:1-u,0,1);return e.refreshedUponExpiration&&c>=1&&(e.refreshedUponExpiration=!1),r?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return{opacity:1,mix:0}}function Er(e,r,n){var i=e.context,o=i.gl;i.lineWidth.set(1*a.devicePixelRatio);var s=n.posMatrix,l=e.useProgram(\\\"debug\\\");i.setDepthMode(qt.disabled),i.setStencilMode(Ht.disabled),i.setColorMode(e.colorModeForRenderPass()),o.uniformMatrix4fv(l.uniforms.u_matrix,!1,s),o.uniform4f(l.uniforms.u_color,1,0,0,1),e.debugVAO.bind(i,l,e.debugBuffer,[]),o.drawArrays(o.LINE_STRIP,0,e.debugBuffer.length);for(var c=function(t,e,r,n){n=n||1;var i,a,o,s,l,c,u,f,h=[];for(i=0,a=t.length;i<a;i++)if(l=Cr[t[i]]){for(f=null,o=0,s=l[1].length;o<s;o+=2)-1===l[1][o]&&-1===l[1][o+1]?f=null:(c=e+l[1][o]*n,u=200-l[1][o+1]*n,f&&h.push(f.x,f.y,c,u),f={x:c,y:u});e+=l[0]*n}return h}(n.toString(),50,0,5),u=new t.PosArray,f=0;f<c.length;f+=2)u.emplaceBack(c[f],c[f+1]);var h=i.createVertexBuffer(u,Ke.members);(new Q).bind(i,l,h,[]),o.uniform4f(l.uniforms.u_color,1,1,1,1);for(var p=r.getTile(n).tileSize,d=t.default$8/(Math.pow(2,e.transform.zoom-n.overscaledZ)*p),g=[[-1,-1],[-1,1],[1,-1],[1,1]],v=0;v<g.length;v++){var m=g[v];o.uniformMatrix4fv(l.uniforms.u_matrix,!1,t.mat4.translate([],s,[d*m[0],d*m[1],0])),o.drawArrays(o.LINES,0,h.length)}o.uniform4f(l.uniforms.u_color,0,0,0,1),o.uniformMatrix4fv(l.uniforms.u_matrix,!1,s),o.drawArrays(o.LINES,0,h.length)}var Cr={\\\" \\\":[16,[]],\\\"!\\\":[10,[5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2]],'\\\"':[16,[4,21,4,14,-1,-1,12,21,12,14]],\\\"#\\\":[21,[11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6]],$:[20,[8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],\\\"%\\\":[24,[21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7]],\\\"&\\\":[26,[23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2]],\\\"'\\\":[10,[5,19,4,20,5,21,6,20,6,18,5,16,4,15]],\\\"(\\\":[14,[11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7]],\\\")\\\":[14,[3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7]],\\\"*\\\":[16,[8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12]],\\\"+\\\":[26,[13,18,13,0,-1,-1,4,9,22,9]],\\\",\\\":[10,[6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],\\\"-\\\":[26,[4,9,22,9]],\\\".\\\":[10,[5,2,4,1,5,0,6,1,5,2]],\\\"/\\\":[22,[20,25,2,-7]],0:[20,[9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21]],1:[20,[6,17,8,18,11,21,11,0]],2:[20,[4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0]],3:[20,[5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],4:[20,[13,21,3,7,18,7,-1,-1,13,21,13,0]],5:[20,[15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],6:[20,[16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7]],7:[20,[17,21,7,0,-1,-1,3,21,17,21]],8:[20,[8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21]],9:[20,[16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3]],\\\":\\\":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2]],\\\";\\\":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],\\\"<\\\":[24,[20,18,4,9,20,0]],\\\"=\\\":[26,[4,12,22,12,-1,-1,4,6,22,6]],\\\">\\\":[24,[4,18,20,9,4,0]],\\\"?\\\":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],\\\"@\\\":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],\\\"[\\\":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],\\\"\\\\\\\\\\\":[14,[0,21,14,-3]],\\\"]\\\":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],\\\"^\\\":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],\\\"`\\\":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],\\\"{\\\":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],\\\"|\\\":[8,[4,25,4,-7]],\\\"}\\\":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],\\\"~\\\":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]},Lr={symbol:function(t,e,r,n){if(\\\"translucent\\\"===t.renderPass){var i=t.context;i.setStencilMode(Ht.disabled),i.setColorMode(t.colorModeForRenderPass()),0!==r.paint.get(\\\"icon-opacity\\\").constantOr(1)&&cr(t,e,r,n,!1,r.paint.get(\\\"icon-translate\\\"),r.paint.get(\\\"icon-translate-anchor\\\"),r.layout.get(\\\"icon-rotation-alignment\\\"),r.layout.get(\\\"icon-pitch-alignment\\\"),r.layout.get(\\\"icon-keep-upright\\\")),0!==r.paint.get(\\\"text-opacity\\\").constantOr(1)&&cr(t,e,r,n,!0,r.paint.get(\\\"text-translate\\\"),r.paint.get(\\\"text-translate-anchor\\\"),r.layout.get(\\\"text-rotation-alignment\\\"),r.layout.get(\\\"text-pitch-alignment\\\"),r.layout.get(\\\"text-keep-upright\\\")),e.map.showCollisionBoxes&&function(t,e,r,n){or(t,e,r,n,!1),or(t,e,r,n,!0)}(t,e,r,n)}},circle:function(t,e,r,n){if(\\\"translucent\\\"===t.renderPass){var i=r.paint.get(\\\"circle-opacity\\\"),a=r.paint.get(\\\"circle-stroke-width\\\"),o=r.paint.get(\\\"circle-stroke-opacity\\\");if(0!==i.constantOr(1)||0!==a.constantOr(1)&&0!==o.constantOr(1)){var s=t.context,l=s.gl;s.setDepthMode(t.depthModeForSublayer(0,qt.ReadOnly)),s.setStencilMode(Ht.disabled),s.setColorMode(t.colorModeForRenderPass());for(var c=!0,u=0;u<n.length;u++){var f=n[u],h=e.getTile(f),p=h.getBucket(r);if(p){var d=t.context.program.get(),g=p.programConfigurations.get(r.id),v=t.useProgram(\\\"circle\\\",g);if((c||v.program!==d)&&(g.setUniforms(s,v,r.paint,{zoom:t.transform.zoom}),c=!1),l.uniform1f(v.uniforms.u_camera_to_center_distance,t.transform.cameraToCenterDistance),l.uniform1i(v.uniforms.u_scale_with_map,\\\"map\\\"===r.paint.get(\\\"circle-pitch-scale\\\")?1:0),\\\"map\\\"===r.paint.get(\\\"circle-pitch-alignment\\\")){l.uniform1i(v.uniforms.u_pitch_with_map,1);var m=Te(h,1,t.transform.zoom);l.uniform2f(v.uniforms.u_extrude_scale,m,m)}else l.uniform1i(v.uniforms.u_pitch_with_map,0),l.uniform2fv(v.uniforms.u_extrude_scale,t.transform.pixelsToGLUnits);l.uniformMatrix4fv(v.uniforms.u_matrix,!1,t.translatePosMatrix(f.posMatrix,h,r.paint.get(\\\"circle-translate\\\"),r.paint.get(\\\"circle-translate-anchor\\\"))),v.draw(s,l.TRIANGLES,r.id,p.layoutVertexBuffer,p.indexBuffer,p.segments,g)}}}}},heatmap:function(e,r,n,i){if(0!==n.paint.get(\\\"heatmap-opacity\\\"))if(\\\"offscreen\\\"===e.renderPass){var a=e.context,o=a.gl;a.setDepthMode(e.depthModeForSublayer(0,qt.ReadOnly)),a.setStencilMode(Ht.disabled),function(t,e,r){var n=t.gl;t.activeTexture.set(n.TEXTURE1),t.viewport.set([0,0,e.width/4,e.height/4]);var i=r.heatmapFbo;if(i)n.bindTexture(n.TEXTURE_2D,i.colorAttachment.get()),t.bindFramebuffer.set(i.framebuffer);else{var a=n.createTexture();n.bindTexture(n.TEXTURE_2D,a),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),i=r.heatmapFbo=t.createFramebuffer(e.width/4,e.height/4),function t(e,r,n,i){var a=e.gl;a.texImage2D(a.TEXTURE_2D,0,a.RGBA,r.width/4,r.height/4,0,a.RGBA,e.extTextureHalfFloat?e.extTextureHalfFloat.HALF_FLOAT_OES:a.UNSIGNED_BYTE,null),i.colorAttachment.set(n),e.extTextureHalfFloat&&a.checkFramebufferStatus(a.FRAMEBUFFER)!==a.FRAMEBUFFER_COMPLETE&&(e.extTextureHalfFloat=null,i.colorAttachment.setDirty(),t(e,r,n,i))}(t,e,a,i)}}(a,e,n),a.clear({color:t.default$6.transparent}),a.setColorMode(new Gt([o.ONE,o.ONE],t.default$6.transparent,[!0,!0,!0,!0]));for(var s=!0,l=0;l<i.length;l++){var c=i[l];if(!r.hasRenderableParent(c)){var u=r.getTile(c),f=u.getBucket(n);if(f){var h=e.context.program.get(),p=f.programConfigurations.get(n.id),d=e.useProgram(\\\"heatmap\\\",p),g=e.transform.zoom;(s||d.program!==h)&&(p.setUniforms(e.context,d,n.paint,{zoom:g}),s=!1),o.uniform1f(d.uniforms.u_extrude_scale,Te(u,1,g)),o.uniform1f(d.uniforms.u_intensity,n.paint.get(\\\"heatmap-intensity\\\")),o.uniformMatrix4fv(d.uniforms.u_matrix,!1,c.posMatrix),d.draw(a,o.TRIANGLES,n.id,f.layoutVertexBuffer,f.indexBuffer,f.segments,p)}}}a.viewport.set([0,0,e.width,e.height])}else\\\"translucent\\\"===e.renderPass&&(e.context.setColorMode(e.colorModeForRenderPass()),function(e,r){var n=e.context,i=n.gl,a=r.heatmapFbo;if(a){n.activeTexture.set(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,a.colorAttachment.get()),n.activeTexture.set(i.TEXTURE1);var o=r.colorRampTexture;o||(o=r.colorRampTexture=new z(n,r.colorRamp,i.RGBA)),o.bind(i.LINEAR,i.CLAMP_TO_EDGE),n.setDepthMode(qt.disabled);var s=e.useProgram(\\\"heatmapTexture\\\"),l=r.paint.get(\\\"heatmap-opacity\\\");i.uniform1f(s.uniforms.u_opacity,l),i.uniform1i(s.uniforms.u_image,0),i.uniform1i(s.uniforms.u_color_ramp,1);var c=t.mat4.create();t.mat4.ortho(c,0,e.width,e.height,0,0,1),i.uniformMatrix4fv(s.uniforms.u_matrix,!1,c),i.uniform2f(s.uniforms.u_world,i.drawingBufferWidth,i.drawingBufferHeight),e.viewportVAO.bind(e.context,s,e.viewportBuffer,[]),i.drawArrays(i.TRIANGLE_STRIP,0,4)}}(e,n))},line:function(t,e,r,n){if(\\\"translucent\\\"===t.renderPass&&0!==r.paint.get(\\\"line-opacity\\\").constantOr(1)){var i=t.context;i.setDepthMode(t.depthModeForSublayer(0,qt.ReadOnly)),i.setColorMode(t.colorModeForRenderPass());for(var a,o=r.paint.get(\\\"line-dasharray\\\")?\\\"lineSDF\\\":r.paint.get(\\\"line-pattern\\\")?\\\"linePattern\\\":r.paint.get(\\\"line-gradient\\\")?\\\"lineGradient\\\":\\\"line\\\",s=!0,l=0,c=n;l<c.length;l+=1){var u=c[l],f=e.getTile(u),h=f.getBucket(r);if(h){var p=h.programConfigurations.get(r.id),d=t.context.program.get(),g=t.useProgram(o,p),v=s||g.program!==d,m=a!==f.tileID.overscaledZ;v&&p.setUniforms(t.context,g,r.paint,{zoom:t.transform.zoom}),pr(g,t,f,h,r,u,p,v,m),a=f.tileID.overscaledZ,s=!1}}}},fill:function(e,r,n,i){var a=n.paint.get(\\\"fill-color\\\"),o=n.paint.get(\\\"fill-opacity\\\");if(0!==o.constantOr(1)){var s=e.context;s.setColorMode(e.colorModeForRenderPass());var l=n.paint.get(\\\"fill-pattern\\\")||1!==a.constantOr(t.default$6.transparent).a||1!==o.constantOr(0)?\\\"translucent\\\":\\\"opaque\\\";e.renderPass===l&&(s.setDepthMode(e.depthModeForSublayer(1,\\\"opaque\\\"===e.renderPass?qt.ReadWrite:qt.ReadOnly)),mr(e,r,n,i,yr)),\\\"translucent\\\"===e.renderPass&&n.paint.get(\\\"fill-antialias\\\")&&(s.lineWidth.set(2),s.setDepthMode(e.depthModeForSublayer(n.getPaintProperty(\\\"fill-outline-color\\\")?2:0,qt.ReadOnly)),mr(e,r,n,i,xr))}},\\\"fill-extrusion\\\":function(e,r,n,i){if(0!==n.paint.get(\\\"fill-extrusion-opacity\\\"))if(\\\"offscreen\\\"===e.renderPass){!function(e,r){var n=e.context,i=n.gl,a=r.viewportFrame;if(e.depthRboNeedsClear&&e.setupOffscreenDepthRenderbuffer(),!a){var o=new z(n,{width:e.width,height:e.height,data:null},i.RGBA);o.bind(i.LINEAR,i.CLAMP_TO_EDGE),(a=r.viewportFrame=n.createFramebuffer(e.width,e.height)).colorAttachment.set(o.texture)}n.bindFramebuffer.set(a.framebuffer),a.depthAttachment.set(e.depthRbo),e.depthRboNeedsClear&&(n.clear({depth:1}),e.depthRboNeedsClear=!1),n.clear({color:t.default$6.transparent}),n.setStencilMode(Ht.disabled),n.setDepthMode(new qt(i.LEQUAL,qt.ReadWrite,[0,1])),n.setColorMode(e.colorModeForRenderPass())}(e,n);for(var a=!0,o=0,s=i;o<s.length;o+=1){var l=s[o],c=r.getTile(l),u=c.getBucket(n);u&&(Mr(e,0,n,c,l,u,a),a=!1)}}else\\\"translucent\\\"===e.renderPass&&function(t,e){var r=e.viewportFrame;if(r){var n=t.context,i=n.gl,a=t.useProgram(\\\"extrusionTexture\\\");n.setStencilMode(Ht.disabled),n.setDepthMode(qt.disabled),n.setColorMode(t.colorModeForRenderPass()),n.activeTexture.set(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,r.colorAttachment.get()),i.uniform1f(a.uniforms.u_opacity,e.paint.get(\\\"fill-extrusion-opacity\\\")),i.uniform1i(a.uniforms.u_image,0);var o=wr.create();wr.ortho(o,0,t.width,t.height,0,0,1),i.uniformMatrix4fv(a.uniforms.u_matrix,!1,o),i.uniform2f(a.uniforms.u_world,i.drawingBufferWidth,i.drawingBufferHeight),t.viewportVAO.bind(n,a,t.viewportBuffer,[]),i.drawArrays(i.TRIANGLE_STRIP,0,4)}}(e,n)},hillshade:function(t,e,r,n){if(\\\"offscreen\\\"===t.renderPass||\\\"translucent\\\"===t.renderPass){var i=t.context,a=e.getSource().maxzoom;i.setDepthMode(t.depthModeForSublayer(0,qt.ReadOnly)),i.setStencilMode(Ht.disabled),i.setColorMode(t.colorModeForRenderPass());for(var o=0,s=n;o<s.length;o+=1){var l=s[o],c=e.getTile(l);c.needsHillshadePrepare&&\\\"offscreen\\\"===t.renderPass?Tr(t,c,a):\\\"translucent\\\"===t.renderPass&&Ar(t,c,r)}i.viewport.set([0,0,t.width,t.height])}},raster:function(t,e,r,n){if(\\\"translucent\\\"===t.renderPass&&0!==r.paint.get(\\\"raster-opacity\\\")){var i,a,o=t.context,s=o.gl,l=e.getSource(),c=t.useProgram(\\\"raster\\\");o.setStencilMode(Ht.disabled),o.setColorMode(t.colorModeForRenderPass()),s.uniform1f(c.uniforms.u_brightness_low,r.paint.get(\\\"raster-brightness-min\\\")),s.uniform1f(c.uniforms.u_brightness_high,r.paint.get(\\\"raster-brightness-max\\\")),s.uniform1f(c.uniforms.u_saturation_factor,(i=r.paint.get(\\\"raster-saturation\\\"))>0?1-1/(1.001-i):-i),s.uniform1f(c.uniforms.u_contrast_factor,(a=r.paint.get(\\\"raster-contrast\\\"))>0?1/(1-a):1+a),s.uniform3fv(c.uniforms.u_spin_weights,function(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}(r.paint.get(\\\"raster-hue-rotate\\\"))),s.uniform1f(c.uniforms.u_buffer_scale,1),s.uniform1i(c.uniforms.u_image0,0),s.uniform1i(c.uniforms.u_image1,1);for(var u=n.length&&n[0].overscaledZ,f=0,h=n;f<h.length;f+=1){var p=h[f];o.setDepthMode(t.depthModeForSublayer(p.overscaledZ-u,1===r.paint.get(\\\"raster-opacity\\\")?qt.ReadWrite:qt.ReadOnly,s.LESS));var d=e.getTile(p),g=t.transform.calculatePosMatrix(p.toUnwrapped(),!0);d.registerFadeDuration(r.paint.get(\\\"raster-fade-duration\\\")),s.uniformMatrix4fv(c.uniforms.u_matrix,!1,g);var v=e.findLoadedParent(p,0,{}),m=Sr(d,v,e,r,t.transform),y=void 0,x=void 0;if(o.activeTexture.set(s.TEXTURE0),d.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),o.activeTexture.set(s.TEXTURE1),v?(v.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),y=Math.pow(2,v.tileID.overscaledZ-d.tileID.overscaledZ),x=[d.tileID.canonical.x*y%1,d.tileID.canonical.y*y%1]):d.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),s.uniform2fv(c.uniforms.u_tl_parent,x||[0,0]),s.uniform1f(c.uniforms.u_scale_parent,y||1),s.uniform1f(c.uniforms.u_fade_t,m.mix),s.uniform1f(c.uniforms.u_opacity,m.opacity*r.paint.get(\\\"raster-opacity\\\")),l instanceof tt){var b=l.boundsBuffer;l.boundsVAO.bind(o,c,b,[]),s.drawArrays(s.TRIANGLE_STRIP,0,b.length)}else if(d.maskedBoundsBuffer&&d.maskedIndexBuffer&&d.segments)c.draw(o,s.TRIANGLES,r.id,d.maskedBoundsBuffer,d.maskedIndexBuffer,d.segments);else{var _=t.rasterBoundsBuffer;t.rasterBoundsVAO.bind(o,c,_,[]),s.drawArrays(s.TRIANGLE_STRIP,0,_.length)}}}},background:function(t,e,r){var n=r.paint.get(\\\"background-color\\\"),i=r.paint.get(\\\"background-opacity\\\");if(0!==i){var a=t.context,o=a.gl,s=t.transform,l=s.tileSize,c=r.paint.get(\\\"background-pattern\\\"),u=c||1!==n.a||1!==i?\\\"translucent\\\":\\\"opaque\\\";if(t.renderPass===u){var f;if(a.setStencilMode(Ht.disabled),a.setDepthMode(t.depthModeForSublayer(0,\\\"opaque\\\"===u?qt.ReadWrite:qt.ReadOnly)),a.setColorMode(t.colorModeForRenderPass()),c){if(dr(c,t))return;f=t.useProgram(\\\"backgroundPattern\\\"),gr(c,t,f),t.tileExtentPatternVAO.bind(a,f,t.tileExtentBuffer,[])}else f=t.useProgram(\\\"background\\\"),o.uniform4fv(f.uniforms.u_color,[n.r,n.g,n.b,n.a]),t.tileExtentVAO.bind(a,f,t.tileExtentBuffer,[]);o.uniform1f(f.uniforms.u_opacity,i);for(var h=0,p=s.coveringTiles({tileSize:l});h<p.length;h+=1){var d=p[h];c&&vr({tileID:d,tileSize:l},t,f),o.uniformMatrix4fv(f.uniforms.u_matrix,!1,t.transform.calculatePosMatrix(d.toUnwrapped())),o.drawArrays(o.TRIANGLE_STRIP,0,t.tileExtentBuffer.length)}}}},debug:function(t,e,r){for(var n=0;n<r.length;n++)Er(t,e,r[n])}},zr=function(e,r){this.context=new Wt(e),this.transform=r,this._tileTextures={},this.setup(),this.numSublayers=Yt.maxUnderzooming+Yt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.depthRboNeedsClear=!0,this.emptyProgramConfiguration=new t.default$24,this.crossTileSymbolIndex=new Ye};function Or(t,e){if(t.row>e.row){var r=t;t=e,e=r}return{x0:t.column,y0:t.row,x1:e.column,y1:e.row,dx:e.column-t.column,dy:e.row-t.row}}function Ir(t,e,r,n,i){var a=Math.max(r,Math.floor(e.y0)),o=Math.min(n,Math.ceil(e.y1));if(t.x0===e.x0&&t.y0===e.y0?t.x0+e.dy/t.dy*t.dx<e.x1:t.x1-e.dy/t.dy*t.dx<e.x0){var s=t;t=e,e=s}for(var l=t.dx/t.dy,c=e.dx/e.dy,u=t.dx>0,f=e.dx<0,h=a;h<o;h++){var p=l*Math.max(0,Math.min(t.dy,h+u-t.y0))+t.x0,d=c*Math.max(0,Math.min(e.dy,h+f-e.y0))+e.x0;i(Math.floor(d),Math.ceil(p),h)}}function Pr(t,e,r,n,i,a){var o,s=Or(t,e),l=Or(e,r),c=Or(r,t);s.dy>l.dy&&(o=s,s=l,l=o),s.dy>c.dy&&(o=s,s=c,c=o),l.dy>c.dy&&(o=l,l=c,c=o),s.dy&&Ir(c,s,n,i,a),l.dy&&Ir(c,l,n,i,a)}zr.prototype.resize=function(t,e){var r=this.context.gl;if(this.width=t*a.devicePixelRatio,this.height=e*a.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var n=0,i=this.style._order;n<i.length;n+=1){var o=i[n];this.style._layers[o].resize()}this.depthRbo&&(r.deleteRenderbuffer(this.depthRbo),this.depthRbo=null)},zr.prototype.setup=function(){var e=this.context,r=new t.PosArray;r.emplaceBack(0,0),r.emplaceBack(t.default$8,0),r.emplaceBack(0,t.default$8),r.emplaceBack(t.default$8,t.default$8),this.tileExtentBuffer=e.createVertexBuffer(r,Ke.members),this.tileExtentVAO=new Q,this.tileExtentPatternVAO=new Q;var n=new t.PosArray;n.emplaceBack(0,0),n.emplaceBack(t.default$8,0),n.emplaceBack(t.default$8,t.default$8),n.emplaceBack(0,t.default$8),n.emplaceBack(0,0),this.debugBuffer=e.createVertexBuffer(n,Ke.members),this.debugVAO=new Q;var i=new t.RasterBoundsArray;i.emplaceBack(0,0,0,0),i.emplaceBack(t.default$8,0,t.default$8,0),i.emplaceBack(0,t.default$8,0,t.default$8),i.emplaceBack(t.default$8,t.default$8,t.default$8,t.default$8),this.rasterBoundsBuffer=e.createVertexBuffer(i,K.members),this.rasterBoundsVAO=new Q;var a=new t.PosArray;a.emplaceBack(0,0),a.emplaceBack(1,0),a.emplaceBack(0,1),a.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(a,Ke.members),this.viewportVAO=new Q},zr.prototype.clearStencil=function(){var e=this.context,r=e.gl;e.setColorMode(Gt.disabled),e.setDepthMode(qt.disabled),e.setStencilMode(new Ht({func:r.ALWAYS,mask:0},0,255,r.ZERO,r.ZERO,r.ZERO));var n=t.mat4.create();t.mat4.ortho(n,0,this.width,this.height,0,0,1),t.mat4.scale(n,n,[r.drawingBufferWidth,r.drawingBufferHeight,0]);var i=this.useProgram(\\\"clippingMask\\\");r.uniformMatrix4fv(i.uniforms.u_matrix,!1,n),this.viewportVAO.bind(e,i,this.viewportBuffer,[]),r.drawArrays(r.TRIANGLE_STRIP,0,4)},zr.prototype._renderTileClippingMasks=function(t){var e=this.context,r=e.gl;e.setColorMode(Gt.disabled),e.setDepthMode(qt.disabled);var n=1;this._tileClippingMaskIDs={};for(var i=0,a=t;i<a.length;i+=1){var o=a[i],s=this._tileClippingMaskIDs[o.key]=n++;e.setStencilMode(new Ht({func:r.ALWAYS,mask:0},s,255,r.KEEP,r.KEEP,r.REPLACE));var l=this.useProgram(\\\"clippingMask\\\");r.uniformMatrix4fv(l.uniforms.u_matrix,!1,o.posMatrix),this.tileExtentVAO.bind(this.context,l,this.tileExtentBuffer,[]),r.drawArrays(r.TRIANGLE_STRIP,0,this.tileExtentBuffer.length)}},zr.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new Ht({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},zr.prototype.colorModeForRenderPass=function(){var e=this.context.gl;return this._showOverdrawInspector?new Gt([e.CONSTANT_COLOR,e.ONE],new t.default$6(1/8,1/8,1/8,0),[!0,!0,!0,!0]):\\\"opaque\\\"===this.renderPass?Gt.unblended:Gt.alphaBlended},zr.prototype.depthModeForSublayer=function(t,e,r){var n=1-((1+this.currentLayer)*this.numSublayers+t)*this.depthEpsilon,i=n-1+this.depthRange;return new qt(r||this.context.gl.LEQUAL,e,[i,n])},zr.prototype.render=function(e,r){var n=this;for(var i in this.style=e,this.options=r,this.lineAtlas=e.lineAtlas,this.imageManager=e.imageManager,this.glyphManager=e.glyphManager,this.symbolFadeChange=e.placement.symbolFadeChange(a.now()),e.sourceCaches){var o=n.style.sourceCaches[i];o.used&&o.prepare(n.context)}var s=this.style._order,l=t.filterObject(this.style.sourceCaches,function(t){return\\\"raster\\\"===t.getSource().type||\\\"raster-dem\\\"===t.getSource().type}),c=function(e){var r=l[e];!function(e,r){for(var n=e.sort(function(t,e){return t.tileID.isLessThan(e.tileID)?-1:e.tileID.isLessThan(t.tileID)?1:0}),i=0;i<n.length;i++){var a={},o=n[i],s=n.slice(i+1);ar(o.tileID.wrapped(),o.tileID,s,new t.OverscaledTileID(0,o.tileID.wrap+1,0,0,0),a),o.setMask(a,r)}}(r.getVisibleCoordinates().map(function(t){return r.getTile(t)}),n.context)};for(var u in l)c(u);this.renderPass=\\\"offscreen\\\";var f,h=[];this.depthRboNeedsClear=!0;for(var p=0;p<s.length;p++){var d=n.style._layers[s[p]];d.hasOffscreenPass()&&!d.isHidden(n.transform.zoom)&&(d.source!==(f&&f.id)&&(h=[],(f=n.style.sourceCaches[d.source])&&(h=f.getVisibleCoordinates()).reverse()),h.length&&n.renderLayer(n,f,d,h))}this.context.bindFramebuffer.set(null),this.context.clear({color:r.showOverdrawInspector?t.default$6.black:t.default$6.transparent,depth:1}),this._showOverdrawInspector=r.showOverdrawInspector,this.depthRange=(e._order.length+2)*this.numSublayers*this.depthEpsilon,this.renderPass=\\\"opaque\\\";var g,v=[];for(this.currentLayer=s.length-1,this.currentLayer;this.currentLayer>=0;this.currentLayer--){var m=n.style._layers[s[n.currentLayer]];m.source!==(g&&g.id)&&(v=[],(g=n.style.sourceCaches[m.source])&&(n.clearStencil(),v=g.getVisibleCoordinates(),g.getSource().isTileClipped&&n._renderTileClippingMasks(v))),n.renderLayer(n,g,m,v)}this.renderPass=\\\"translucent\\\";var y,x=[];for(this.currentLayer=0,this.currentLayer;this.currentLayer<s.length;this.currentLayer++){var b=n.style._layers[s[n.currentLayer]];b.source!==(y&&y.id)&&(x=[],(y=n.style.sourceCaches[b.source])&&(n.clearStencil(),x=y.getVisibleCoordinates(),y.getSource().isTileClipped&&n._renderTileClippingMasks(x)),x.reverse()),n.renderLayer(n,y,b,x)}if(this.options.showTileBoundaries){var _=this.style.sourceCaches[Object.keys(this.style.sourceCaches)[0]];_&&Lr.debug(this,_,_.getVisibleCoordinates())}},zr.prototype.setupOffscreenDepthRenderbuffer=function(){var t=this.context;this.depthRbo||(this.depthRbo=t.createRenderbuffer(t.gl.DEPTH_COMPONENT16,this.width,this.height))},zr.prototype.renderLayer=function(t,e,r,n){r.isHidden(this.transform.zoom)||(\\\"background\\\"===r.type||n.length)&&(this.id=r.id,Lr[r.type](t,e,r,n))},zr.prototype.translatePosMatrix=function(e,r,n,i,a){if(!n[0]&&!n[1])return e;var o=a?\\\"map\\\"===i?this.transform.angle:0:\\\"viewport\\\"===i?-this.transform.angle:0;if(o){var s=Math.sin(o),l=Math.cos(o);n=[n[0]*l-n[1]*s,n[0]*s+n[1]*l]}var c=[a?n[0]:Te(r,n[0],this.transform.zoom),a?n[1]:Te(r,n[1],this.transform.zoom),0],u=new Float32Array(16);return t.mat4.translate(u,e,c),u},zr.prototype.saveTileTexture=function(t){var e=this._tileTextures[t.size[0]];e?e.push(t):this._tileTextures[t.size[0]]=[t]},zr.prototype.getTileTexture=function(t){var e=this._tileTextures[t];return e&&e.length>0?e.pop():null},zr.prototype._createProgramCached=function(t,e){this.cache=this.cache||{};var r=\\\"\\\"+t+(e.cacheKey||\\\"\\\")+(this._showOverdrawInspector?\\\"/overdraw\\\":\\\"\\\");return this.cache[r]||(this.cache[r]=new ir(this.context,nr[t],e,this._showOverdrawInspector)),this.cache[r]},zr.prototype.useProgram=function(t,e){var r=this._createProgramCached(t,e||this.emptyProgramConfiguration);return this.context.program.set(r.program),r};var Dr=t.default$20.vec4,Rr=t.default$20.mat4,Br=t.default$20.mat2,Fr=function(t,e,r){this.tileSize=512,this._renderWorldCopies=void 0===r||r,this._minZoom=t||0,this._maxZoom=e||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new G(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._posMatrixCache={},this._alignedPosMatrixCache={}},Nr={minZoom:{configurable:!0},maxZoom:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerPoint:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},unmodified:{configurable:!0},x:{configurable:!0},y:{configurable:!0},point:{configurable:!0}};Fr.prototype.clone=function(){var t=new Fr(this._minZoom,this._maxZoom,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._calcMatrices(),t},Nr.minZoom.get=function(){return this._minZoom},Nr.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},Nr.maxZoom.get=function(){return this._maxZoom},Nr.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},Nr.renderWorldCopies.get=function(){return this._renderWorldCopies},Nr.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},Nr.worldSize.get=function(){return this.tileSize*this.scale},Nr.centerPoint.get=function(){return this.size._div(2)},Nr.size.get=function(){return new t.default$1(this.width,this.height)},Nr.bearing.get=function(){return-this.angle/Math.PI*180},Nr.bearing.set=function(e){var r=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==r&&(this._unmodified=!1,this.angle=r,this._calcMatrices(),this.rotationMatrix=Br.create(),Br.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Nr.pitch.get=function(){return this._pitch/Math.PI*180},Nr.pitch.set=function(e){var r=t.clamp(e,0,60)/180*Math.PI;this._pitch!==r&&(this._unmodified=!1,this._pitch=r,this._calcMatrices())},Nr.fov.get=function(){return this._fov/Math.PI*180},Nr.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},Nr.zoom.get=function(){return this._zoom},Nr.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},Nr.center.get=function(){return this._center},Nr.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Fr.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},Fr.prototype.getVisibleUnwrappedCoordinates=function(e){var r=this.pointCoordinate(new t.default$1(0,0),0),n=this.pointCoordinate(new t.default$1(this.width,0),0),i=Math.floor(r.column),a=Math.floor(n.column),o=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var s=i;s<=a;s++)0!==s&&o.push(new t.UnwrappedTileID(s,e));return o},Fr.prototype.coveringTiles=function(e){var r=this.coveringZoomLevel(e),n=r;if(void 0!==e.minzoom&&r<e.minzoom)return[];void 0!==e.maxzoom&&r>e.maxzoom&&(r=e.maxzoom);var i=this.pointCoordinate(this.centerPoint,r),a=new t.default$1(i.column-.5,i.row-.5);return function(e,r,n,i){void 0===i&&(i=!0);var a=1<<e,o={};function s(r,s,l){var c,u,f,h;if(l>=0&&l<=a)for(c=r;c<s;c++)u=Math.floor(c/a),f=(c%a+a)%a,0!==u&&!0!==i||(h=new t.OverscaledTileID(n,u,e,f,l),o[h.key]=h)}return Pr(r[0],r[1],r[2],0,a,s),Pr(r[2],r[3],r[0],0,a,s),Object.keys(o).map(function(t){return o[t]})}(r,[this.pointCoordinate(new t.default$1(0,0),r),this.pointCoordinate(new t.default$1(this.width,0),r),this.pointCoordinate(new t.default$1(this.width,this.height),r),this.pointCoordinate(new t.default$1(0,this.height),r)],e.reparseOverscaled?n:r,this._renderWorldCopies).sort(function(t,e){return a.dist(t.canonical)-a.dist(e.canonical)})},Fr.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},Nr.unmodified.get=function(){return this._unmodified},Fr.prototype.zoomScale=function(t){return Math.pow(2,t)},Fr.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Fr.prototype.project=function(e){return new t.default$1(this.lngX(e.lng),this.latY(e.lat))},Fr.prototype.unproject=function(t){return new G(this.xLng(t.x),this.yLat(t.y))},Nr.x.get=function(){return this.lngX(this.center.lng)},Nr.y.get=function(){return this.latY(this.center.lat)},Nr.point.get=function(){return new t.default$1(this.x,this.y)},Fr.prototype.lngX=function(t){return(180+t)*this.worldSize/360},Fr.prototype.latY=function(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))*this.worldSize/360},Fr.prototype.xLng=function(t){return 360*t/this.worldSize-180},Fr.prototype.yLat=function(t){var e=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90},Fr.prototype.setLocationAtPoint=function(t,e){var r=this.pointCoordinate(e)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(r)),this._renderWorldCopies&&(this.center=this.center.wrap())},Fr.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Fr.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Fr.prototype.locationCoordinate=function(e){return new t.default$17(this.lngX(e.lng)/this.tileSize,this.latY(e.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},Fr.prototype.coordinateLocation=function(t){var e=t.zoomTo(this.zoom);return new G(this.xLng(e.column*this.tileSize),this.yLat(e.row*this.tileSize))},Fr.prototype.pointCoordinate=function(e,r){void 0===r&&(r=this.tileZoom);var n=[e.x,e.y,0,1],i=[e.x,e.y,1,1];Dr.transformMat4(n,n,this.pixelMatrixInverse),Dr.transformMat4(i,i,this.pixelMatrixInverse);var a=n[3],o=i[3],s=n[0]/a,l=i[0]/o,c=n[1]/a,u=i[1]/o,f=n[2]/a,h=i[2]/o,p=f===h?0:(0-f)/(h-f);return new t.default$17(t.number(s,l,p)/this.tileSize,t.number(c,u,p)/this.tileSize,this.zoom)._zoomTo(r)},Fr.prototype.coordinatePoint=function(e){var r=e.zoomTo(this.zoom),n=[r.column*this.tileSize,r.row*this.tileSize,0,1];return Dr.transformMat4(n,n,this.pixelMatrix),new t.default$1(n[0]/n[3],n[1]/n[3])},Fr.prototype.calculatePosMatrix=function(e,r){void 0===r&&(r=!1);var n=e.key,i=r?this._alignedPosMatrixCache:this._posMatrixCache;if(i[n])return i[n];var a=e.canonical,o=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=Rr.identity(new Float64Array(16));return Rr.translate(l,l,[s*o,a.y*o,0]),Rr.scale(l,l,[o/t.default$8,o/t.default$8,1]),Rr.multiply(l,r?this.alignedProjMatrix:this.projMatrix,l),i[n]=new Float32Array(l),i[n]},Fr.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,r,n,i,a=-90,o=90,s=-180,l=180,c=this.size,u=this._unmodified;if(this.latRange){var f=this.latRange;a=this.latY(f[1]),e=(o=this.latY(f[0]))-a<c.y?c.y/(o-a):0}if(this.lngRange){var h=this.lngRange;s=this.lngX(h[0]),r=(l=this.lngX(h[1]))-s<c.x?c.x/(l-s):0}var p=Math.max(r||0,e||0);if(p)return this.center=this.unproject(new t.default$1(r?(l+s)/2:this.x,e?(o+a)/2:this.y)),this.zoom+=this.scaleZoom(p),this._unmodified=u,void(this._constraining=!1);if(this.latRange){var d=this.y,g=c.y/2;d-g<a&&(i=a+g),d+g>o&&(i=o-g)}if(this.lngRange){var v=this.x,m=c.x/2;v-m<s&&(n=s+m),v+m>l&&(n=l-m)}void 0===n&&void 0===i||(this.center=this.unproject(new t.default$1(void 0!==n?n:this.x,void 0!==i?i:this.y))),this._unmodified=u,this._constraining=!1}},Fr.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,e=Math.PI/2+this._pitch,r=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-e-t),n=this.x,i=this.y,a=1.01*(Math.cos(Math.PI/2-this._pitch)*r+this.cameraToCenterDistance),o=new Float64Array(16);Rr.perspective(o,this._fov,this.width/this.height,1,a),Rr.scale(o,o,[1,-1,1]),Rr.translate(o,o,[0,0,-this.cameraToCenterDistance]),Rr.rotateX(o,o,this._pitch),Rr.rotateZ(o,o,this.angle),Rr.translate(o,o,[-n,-i,0]);var s=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));Rr.scale(o,o,[1,1,s,1]),this.projMatrix=o;var l=this.width%2/2,c=this.height%2/2,u=Math.cos(this.angle),f=Math.sin(this.angle),h=n-Math.round(n)+u*l+f*c,p=i-Math.round(i)+u*c+f*l,d=new Float64Array(o);if(Rr.translate(d,d,[h>.5?h-1:h,p>.5?p-1:p,0]),this.alignedProjMatrix=d,o=Rr.create(),Rr.scale(o,o,[this.width/2,-this.height/2,1]),Rr.translate(o,o,[1,-1,0]),this.pixelMatrix=Rr.multiply(new Float64Array(16),o,this.projMatrix),!(o=Rr.invert(new Float64Array(16),this.pixelMatrix)))throw new Error(\\\"failed to invert matrix\\\");this.pixelMatrixInverse=o,this._posMatrixCache={},this._alignedPosMatrixCache={}}},Fr.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.default$1(0,0)).zoomTo(this.zoom),r=[e.column*this.tileSize,e.row*this.tileSize,0,1];return Dr.transformMat4(r,r,this.pixelMatrix)[3]/this.cameraToCenterDistance},Object.defineProperties(Fr.prototype,Nr);var jr=function(){var e,r,n,i;t.bindAll([\\\"_onHashChange\\\",\\\"_updateHash\\\"],this),this._updateHash=(e=this._updateHashUnthrottled.bind(this),300,r=!1,n=0,i=function(){n=0,r&&(e(),n=setTimeout(i,300),r=!1)},function(){return r=!0,n||i(),n})};jr.prototype.addTo=function(e){return this._map=e,t.default.addEventListener(\\\"hashchange\\\",this._onHashChange,!1),this._map.on(\\\"moveend\\\",this._updateHash),this},jr.prototype.remove=function(){return t.default.removeEventListener(\\\"hashchange\\\",this._onHashChange,!1),this._map.off(\\\"moveend\\\",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},jr.prototype.getHashString=function(t){var e=this._map.getCenter(),r=Math.round(100*this._map.getZoom())/100,n=Math.ceil((r*Math.LN2+Math.log(512/360/.5))/Math.LN10),i=Math.pow(10,n),a=Math.round(e.lng*i)/i,o=Math.round(e.lat*i)/i,s=this._map.getBearing(),l=this._map.getPitch(),c=\\\"\\\";return c+=t?\\\"#/\\\"+a+\\\"/\\\"+o+\\\"/\\\"+r:\\\"#\\\"+r+\\\"/\\\"+o+\\\"/\\\"+a,(s||l)&&(c+=\\\"/\\\"+Math.round(10*s)/10),l&&(c+=\\\"/\\\"+Math.round(l)),c},jr.prototype._onHashChange=function(){var e=t.default.location.hash.replace(\\\"#\\\",\\\"\\\").split(\\\"/\\\");return e.length>=3&&(this._map.jumpTo({center:[+e[2],+e[1]],zoom:+e[0],bearing:+(e[3]||0),pitch:+(e[4]||0)}),!0)},jr.prototype._updateHashUnthrottled=function(){var e=this.getHashString();t.default.history.replaceState(t.default.history.state,\\\"\\\",e)};var Vr=function(e){function r(r,n,i,a){void 0===a&&(a={});var o=s.mousePos(n.getCanvasContainer(),i),l=n.unproject(o);e.call(this,r,t.extend({point:o,lngLat:l,originalEvent:i},a)),this._defaultPrevented=!1,this.target=n}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var n={defaultPrevented:{configurable:!0}};return r.prototype.preventDefault=function(){this._defaultPrevented=!0},n.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(r.prototype,n),r}(t.Event),Ur=function(e){function r(r,n,i){var a=s.touchPos(n.getCanvasContainer(),i),o=a.map(function(t){return n.unproject(t)}),l=a.reduce(function(t,e,r,n){return t.add(e.div(n.length))},new t.default$1(0,0)),c=n.unproject(l);e.call(this,r,{points:a,point:l,lngLats:o,lngLat:c,originalEvent:i}),this._defaultPrevented=!1}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var n={defaultPrevented:{configurable:!0}};return r.prototype.preventDefault=function(){this._defaultPrevented=!0},n.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(r.prototype,n),r}(t.Event),qr=function(t){function e(e,r,n){t.call(this,e,{originalEvent:n}),this._defaultPrevented=!1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={defaultPrevented:{configurable:!0}};return e.prototype.preventDefault=function(){this._defaultPrevented=!0},r.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(e.prototype,r),e}(t.Event),Hr=function(e){this._map=e,this._el=e.getCanvasContainer(),this._delta=0,t.bindAll([\\\"_onWheel\\\",\\\"_onTimeout\\\",\\\"_onScrollFrame\\\",\\\"_onScrollFinished\\\"],this)};Hr.prototype.isEnabled=function(){return!!this._enabled},Hr.prototype.isActive=function(){return!!this._active},Hr.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&\\\"center\\\"===t.around)},Hr.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Hr.prototype.onWheel=function(e){if(this.isEnabled()){var r=e.deltaMode===t.default.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,n=a.now(),i=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,0!==r&&r%4.000244140625==0?this._type=\\\"wheel\\\":0!==r&&Math.abs(r)<4?this._type=\\\"trackpad\\\":i>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(i*r)<200?\\\"trackpad\\\":\\\"wheel\\\",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this.isActive()||this._start(e)),e.preventDefault()}},Hr.prototype._onTimeout=function(t){this._type=\\\"wheel\\\",this._delta-=this._lastValue,this.isActive()||this._start(t)},Hr.prototype._start=function(e){if(this._delta){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),this._active=!0,this._map.fire(new t.Event(\\\"movestart\\\",{originalEvent:e})),this._map.fire(new t.Event(\\\"zoomstart\\\",{originalEvent:e})),this._finishTimeout&&clearTimeout(this._finishTimeout);var r=s.mousePos(this._el,e);this._around=G.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(r)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onScrollFrame))}},Hr.prototype._onScrollFrame=function(){var e=this;if(this._frameId=null,this.isActive()){var r=this._map.transform;if(0!==this._delta){var n=\\\"wheel\\\"===this._type&&Math.abs(this._delta)>4.000244140625?1/450:.01,i=2/(1+Math.exp(-Math.abs(this._delta*n)));this._delta<0&&0!==i&&(i=1/i);var o=\\\"number\\\"==typeof this._targetZoom?r.zoomScale(this._targetZoom):r.scale;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(o*i))),\\\"wheel\\\"===this._type&&(this._startZoom=r.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var s=!1;if(\\\"wheel\\\"===this._type){var l=Math.min((a.now()-this._lastWheelEventTime)/200,1),c=this._easing(l);r.zoom=t.number(this._startZoom,this._targetZoom,c),l<1?this._frameId||(this._frameId=this._map._requestRenderFrame(this._onScrollFrame)):s=!0}else r.zoom=this._targetZoom,s=!0;r.setLocationAtPoint(this._around,this._aroundPoint),this._map.fire(new t.Event(\\\"move\\\",{originalEvent:this._lastWheelEvent})),this._map.fire(new t.Event(\\\"zoom\\\",{originalEvent:this._lastWheelEvent})),s&&(this._active=!1,this._finishTimeout=setTimeout(function(){e._map.fire(new t.Event(\\\"zoomend\\\",{originalEvent:e._lastWheelEvent})),e._map.fire(new t.Event(\\\"moveend\\\",{originalEvent:e._lastWheelEvent})),delete e._targetZoom},200))}},Hr.prototype._smoothOutEasing=function(e){var r=t.ease;if(this._prevEase){var n=this._prevEase,i=(a.now()-n.start)/n.duration,o=n.easing(i+.01)-n.easing(i),s=.27/Math.sqrt(o*o+1e-4)*.01,l=Math.sqrt(.0729-s*s);r=t.bezier(s,l,.25,1)}return this._prevEase={start:a.now(),duration:e,easing:r},r};var Gr=function(e){this._map=e,this._el=e.getCanvasContainer(),this._container=e.getContainer(),t.bindAll([\\\"_onMouseMove\\\",\\\"_onMouseUp\\\",\\\"_onKeyDown\\\"],this)};Gr.prototype.isEnabled=function(){return!!this._enabled},Gr.prototype.isActive=function(){return!!this._active},Gr.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},Gr.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Gr.prototype.onMouseDown=function(e){this.isEnabled()&&e.shiftKey&&0===e.button&&(t.default.document.addEventListener(\\\"mousemove\\\",this._onMouseMove,!1),t.default.document.addEventListener(\\\"keydown\\\",this._onKeyDown,!1),t.default.document.addEventListener(\\\"mouseup\\\",this._onMouseUp,!1),s.disableDrag(),this._startPos=s.mousePos(this._el,e),this._active=!0)},Gr.prototype._onMouseMove=function(t){var e=this._startPos,r=s.mousePos(this._el,t);this._box||(this._box=s.create(\\\"div\\\",\\\"mapboxgl-boxzoom\\\",this._container),this._container.classList.add(\\\"mapboxgl-crosshair\\\"),this._fireEvent(\\\"boxzoomstart\\\",t));var n=Math.min(e.x,r.x),i=Math.max(e.x,r.x),a=Math.min(e.y,r.y),o=Math.max(e.y,r.y);s.setTransform(this._box,\\\"translate(\\\"+n+\\\"px,\\\"+a+\\\"px)\\\"),this._box.style.width=i-n+\\\"px\\\",this._box.style.height=o-a+\\\"px\\\"},Gr.prototype._onMouseUp=function(e){if(0===e.button){var r=this._startPos,n=s.mousePos(this._el,e),i=(new W).extend(this._map.unproject(r)).extend(this._map.unproject(n));this._finish(),s.suppressClick(),r.x===n.x&&r.y===n.y?this._fireEvent(\\\"boxzoomcancel\\\",e):this._map.fitBounds(i,{linear:!0}).fire(new t.Event(\\\"boxzoomend\\\",{originalEvent:e,boxZoomBounds:i}))}},Gr.prototype._onKeyDown=function(t){27===t.keyCode&&(this._finish(),this._fireEvent(\\\"boxzoomcancel\\\",t))},Gr.prototype._finish=function(){this._active=!1,t.default.document.removeEventListener(\\\"mousemove\\\",this._onMouseMove,!1),t.default.document.removeEventListener(\\\"keydown\\\",this._onKeyDown,!1),t.default.document.removeEventListener(\\\"mouseup\\\",this._onMouseUp,!1),this._container.classList.remove(\\\"mapboxgl-crosshair\\\"),this._box&&(s.remove(this._box),this._box=null),s.enableDrag()},Gr.prototype._fireEvent=function(e,r){return this._map.fire(new t.Event(e,{originalEvent:r}))};var Wr=t.bezier(0,0,.25,1),Yr=function(e,r){this._map=e,this._el=r.element||e.getCanvasContainer(),this._state=\\\"disabled\\\",this._button=r.button||\\\"right\\\",this._bearingSnap=r.bearingSnap||0,this._pitchWithRotate=!1!==r.pitchWithRotate,t.bindAll([\\\"_onMouseMove\\\",\\\"_onMouseUp\\\",\\\"_onBlur\\\",\\\"_onDragFrame\\\"],this)};Yr.prototype.isEnabled=function(){return\\\"disabled\\\"!==this._state},Yr.prototype.isActive=function(){return\\\"active\\\"===this._state},Yr.prototype.enable=function(){this.isEnabled()||(this._state=\\\"enabled\\\")},Yr.prototype.disable=function(){if(this.isEnabled())switch(this._state){case\\\"active\\\":this._state=\\\"disabled\\\",this._unbind(),this._deactivate(),this._fireEvent(\\\"rotateend\\\"),this._pitchWithRotate&&this._fireEvent(\\\"pitchend\\\"),this._fireEvent(\\\"moveend\\\");break;case\\\"pending\\\":this._state=\\\"disabled\\\",this._unbind();break;default:this._state=\\\"disabled\\\"}},Yr.prototype.onMouseDown=function(e){if(\\\"enabled\\\"===this._state){if(\\\"right\\\"===this._button){if(this._eventButton=s.mouseButton(e),this._eventButton!==(e.ctrlKey?0:2))return}else{if(e.ctrlKey||0!==s.mouseButton(e))return;this._eventButton=0}s.disableDrag(),t.default.document.addEventListener(\\\"mousemove\\\",this._onMouseMove,{capture:!0}),t.default.document.addEventListener(\\\"mouseup\\\",this._onMouseUp),t.default.addEventListener(\\\"blur\\\",this._onBlur),this._state=\\\"pending\\\",this._inertia=[[a.now(),this._map.getBearing()]],this._previousPos=s.mousePos(this._el,e),this._center=this._map.transform.centerPoint,e.preventDefault()}},Yr.prototype._onMouseMove=function(t){this._lastMoveEvent=t,this._pos=s.mousePos(this._el,t),\\\"pending\\\"===this._state&&(this._state=\\\"active\\\",this._fireEvent(\\\"rotatestart\\\",t),this._fireEvent(\\\"movestart\\\",t),this._pitchWithRotate&&this._fireEvent(\\\"pitchstart\\\",t)),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onDragFrame))},Yr.prototype._onDragFrame=function(){this._frameId=null;var t=this._lastMoveEvent;if(t){var e=this._map.transform,r=this._previousPos,n=this._pos,i=.8*(r.x-n.x),o=-.5*(r.y-n.y),s=e.bearing-i,l=e.pitch-o,c=this._inertia,u=c[c.length-1];this._drainInertiaBuffer(),c.push([a.now(),this._map._normalizeBearing(s,u[1])]),e.bearing=s,this._pitchWithRotate&&(this._fireEvent(\\\"pitch\\\",t),e.pitch=l),this._fireEvent(\\\"rotate\\\",t),this._fireEvent(\\\"move\\\",t),delete this._lastMoveEvent,this._previousPos=this._pos}},Yr.prototype._onMouseUp=function(t){if(s.mouseButton(t)===this._eventButton)switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",s.suppressClick(),this._unbind(),this._deactivate(),this._inertialRotate(t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Yr.prototype._onBlur=function(t){switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",this._unbind(),this._deactivate(),this._fireEvent(\\\"rotateend\\\",t),this._pitchWithRotate&&this._fireEvent(\\\"pitchend\\\",t),this._fireEvent(\\\"moveend\\\",t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Yr.prototype._unbind=function(){t.default.document.removeEventListener(\\\"mousemove\\\",this._onMouseMove,{capture:!0}),t.default.document.removeEventListener(\\\"mouseup\\\",this._onMouseUp),t.default.removeEventListener(\\\"blur\\\",this._onBlur),s.enableDrag()},Yr.prototype._deactivate=function(){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._lastMoveEvent,delete this._previousPos},Yr.prototype._inertialRotate=function(t){var e=this;this._fireEvent(\\\"rotateend\\\",t),this._drainInertiaBuffer();var r=this._map,n=r.getBearing(),i=this._inertia,a=function(){Math.abs(n)<e._bearingSnap?r.resetNorth({noMoveStart:!0},{originalEvent:t}):e._fireEvent(\\\"moveend\\\",t),e._pitchWithRotate&&e._fireEvent(\\\"pitchend\\\",t)};if(i.length<2)a();else{var o=i[0],s=i[i.length-1],l=i[i.length-2],c=r._normalizeBearing(n,l[1]),u=s[1]-o[1],f=u<0?-1:1,h=(s[0]-o[0])/1e3;if(0!==u&&0!==h){var p=Math.abs(u*(.25/h));p>180&&(p=180);var d=p/180;c+=f*p*(d/2),Math.abs(r._normalizeBearing(c,0))<this._bearingSnap&&(c=r._normalizeBearing(0,c)),r.rotateTo(c,{duration:1e3*d,easing:Wr,noMoveStart:!0},{originalEvent:t})}else a()}},Yr.prototype._fireEvent=function(e,r){return this._map.fire(new t.Event(e,r?{originalEvent:r}:{}))},Yr.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=a.now();t.length>0&&e-t[0][0]>160;)t.shift()};var Xr=t.bezier(0,0,.3,1),Zr=function(e){this._map=e,this._el=e.getCanvasContainer(),this._state=\\\"disabled\\\",t.bindAll([\\\"_onMove\\\",\\\"_onMouseUp\\\",\\\"_onTouchEnd\\\",\\\"_onBlur\\\",\\\"_onDragFrame\\\"],this)};Zr.prototype.isEnabled=function(){return\\\"disabled\\\"!==this._state},Zr.prototype.isActive=function(){return\\\"active\\\"===this._state},Zr.prototype.enable=function(){this.isEnabled()||(this._el.classList.add(\\\"mapboxgl-touch-drag-pan\\\"),this._state=\\\"enabled\\\")},Zr.prototype.disable=function(){if(this.isEnabled())switch(this._el.classList.remove(\\\"mapboxgl-touch-drag-pan\\\"),this._state){case\\\"active\\\":this._state=\\\"disabled\\\",this._unbind(),this._deactivate(),this._fireEvent(\\\"dragend\\\"),this._fireEvent(\\\"moveend\\\");break;case\\\"pending\\\":this._state=\\\"disabled\\\",this._unbind();break;default:this._state=\\\"disabled\\\"}},Zr.prototype.onMouseDown=function(e){\\\"enabled\\\"===this._state&&(e.ctrlKey||0!==s.mouseButton(e)||(s.addEventListener(t.default.document,\\\"mousemove\\\",this._onMove,{capture:!0}),s.addEventListener(t.default.document,\\\"mouseup\\\",this._onMouseUp),this._start(e)))},Zr.prototype.onTouchStart=function(e){\\\"enabled\\\"===this._state&&(e.touches.length>1||(s.addEventListener(t.default.document,\\\"touchmove\\\",this._onMove,{capture:!0,passive:!1}),s.addEventListener(t.default.document,\\\"touchend\\\",this._onTouchEnd),this._start(e)))},Zr.prototype._start=function(e){t.default.addEventListener(\\\"blur\\\",this._onBlur),this._state=\\\"pending\\\",this._previousPos=s.mousePos(this._el,e),this._inertia=[[a.now(),this._previousPos]]},Zr.prototype._onMove=function(t){this._lastMoveEvent=t,t.preventDefault(),this._pos=s.mousePos(this._el,t),this._drainInertiaBuffer(),this._inertia.push([a.now(),this._pos]),\\\"pending\\\"===this._state&&(this._state=\\\"active\\\",this._fireEvent(\\\"dragstart\\\",t),this._fireEvent(\\\"movestart\\\",t)),this._frameId||(this._frameId=this._map._requestRenderFrame(this._onDragFrame))},Zr.prototype._onDragFrame=function(){this._frameId=null;var t=this._lastMoveEvent;if(t){var e=this._map.transform;e.setLocationAtPoint(e.pointLocation(this._previousPos),this._pos),this._fireEvent(\\\"drag\\\",t),this._fireEvent(\\\"move\\\",t),this._previousPos=this._pos,delete this._lastMoveEvent}},Zr.prototype._onMouseUp=function(t){if(0===s.mouseButton(t))switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",s.suppressClick(),this._unbind(),this._deactivate(),this._inertialPan(t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Zr.prototype._onTouchEnd=function(t){switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",this._unbind(),this._deactivate(),this._inertialPan(t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Zr.prototype._onBlur=function(t){switch(this._state){case\\\"active\\\":this._state=\\\"enabled\\\",this._unbind(),this._deactivate(),this._fireEvent(\\\"dragend\\\",t),this._fireEvent(\\\"moveend\\\",t);break;case\\\"pending\\\":this._state=\\\"enabled\\\",this._unbind()}},Zr.prototype._unbind=function(){s.removeEventListener(t.default.document,\\\"touchmove\\\",this._onMove,{capture:!0,passive:!1}),s.removeEventListener(t.default.document,\\\"touchend\\\",this._onTouchEnd),s.removeEventListener(t.default.document,\\\"mousemove\\\",this._onMove,{capture:!0}),s.removeEventListener(t.default.document,\\\"mouseup\\\",this._onMouseUp),s.removeEventListener(t.default,\\\"blur\\\",this._onBlur)},Zr.prototype._deactivate=function(){this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._lastMoveEvent,delete this._previousPos,delete this._pos},Zr.prototype._inertialPan=function(t){this._fireEvent(\\\"dragend\\\",t),this._drainInertiaBuffer();var e=this._inertia;if(e.length<2)this._fireEvent(\\\"moveend\\\",t);else{var r=e[e.length-1],n=e[0],i=r[1].sub(n[1]),a=(r[0]-n[0])/1e3;if(0===a||r[1].equals(n[1]))this._fireEvent(\\\"moveend\\\",t);else{var o=i.mult(.3/a),s=o.mag();s>1400&&(s=1400,o._unit()._mult(s));var l=s/750,c=o.mult(-l/2);this._map.panBy(c,{duration:1e3*l,easing:Xr,noMoveStart:!0},{originalEvent:t})}}},Zr.prototype._fireEvent=function(e,r){return this._map.fire(new t.Event(e,r?{originalEvent:r}:{}))},Zr.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=a.now();t.length>0&&e-t[0][0]>160;)t.shift()};var $r=function(e){this._map=e,this._el=e.getCanvasContainer(),t.bindAll([\\\"_onKeyDown\\\"],this)};function Jr(t){return t*(2-t)}$r.prototype.isEnabled=function(){return!!this._enabled},$r.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener(\\\"keydown\\\",this._onKeyDown,!1),this._enabled=!0)},$r.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener(\\\"keydown\\\",this._onKeyDown),this._enabled=!1)},$r.prototype._onKeyDown=function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e=0,r=0,n=0,i=0,a=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?r=-1:(t.preventDefault(),i=-1);break;case 39:t.shiftKey?r=1:(t.preventDefault(),i=1);break;case 38:t.shiftKey?n=1:(t.preventDefault(),a=-1);break;case 40:t.shiftKey?n=-1:(a=1,t.preventDefault());break;default:return}var o=this._map,s=o.getZoom(),l={duration:300,delayEndEvents:500,easing:Jr,zoom:e?Math.round(s)+e*(t.shiftKey?2:1):s,bearing:o.getBearing()+15*r,pitch:o.getPitch()+10*n,offset:[100*-i,100*-a],center:o.getCenter()};o.easeTo(l,{originalEvent:t})}};var Kr=function(e){this._map=e,t.bindAll([\\\"_onDblClick\\\",\\\"_onZoomEnd\\\"],this)};Kr.prototype.isEnabled=function(){return!!this._enabled},Kr.prototype.isActive=function(){return!!this._active},Kr.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},Kr.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Kr.prototype.onTouchStart=function(t){var e=this;this.isEnabled()&&(t.points.length>1||(this._tapped?(clearTimeout(this._tapped),this._tapped=null,this._zoom(t)):this._tapped=setTimeout(function(){e._tapped=null},300)))},Kr.prototype.onDblClick=function(t){this.isEnabled()&&(t.originalEvent.preventDefault(),this._zoom(t))},Kr.prototype._zoom=function(t){this._active=!0,this._map.on(\\\"zoomend\\\",this._onZoomEnd),this._map.zoomTo(this._map.getZoom()+(t.originalEvent.shiftKey?-1:1),{around:t.lngLat},t)},Kr.prototype._onZoomEnd=function(){this._active=!1,this._map.off(\\\"zoomend\\\",this._onZoomEnd)};var Qr=t.bezier(0,0,.15,1),tn=function(e){this._map=e,this._el=e.getCanvasContainer(),t.bindAll([\\\"_onMove\\\",\\\"_onEnd\\\",\\\"_onTouchFrame\\\"],this)};tn.prototype.isEnabled=function(){return!!this._enabled},tn.prototype.enable=function(t){this.isEnabled()||(this._el.classList.add(\\\"mapboxgl-touch-zoom-rotate\\\"),this._enabled=!0,this._aroundCenter=!!t&&\\\"center\\\"===t.around)},tn.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove(\\\"mapboxgl-touch-zoom-rotate\\\"),this._enabled=!1)},tn.prototype.disableRotation=function(){this._rotationDisabled=!0},tn.prototype.enableRotation=function(){this._rotationDisabled=!1},tn.prototype.onStart=function(e){if(this.isEnabled()&&2===e.touches.length){var r=s.mousePos(this._el,e.touches[0]),n=s.mousePos(this._el,e.touches[1]);this._startVec=r.sub(n),this._gestureIntent=void 0,this._inertia=[],s.addEventListener(t.default.document,\\\"touchmove\\\",this._onMove,{passive:!1}),s.addEventListener(t.default.document,\\\"touchend\\\",this._onEnd)}},tn.prototype._getTouchEventData=function(t){var e=s.mousePos(this._el,t.touches[0]),r=s.mousePos(this._el,t.touches[1]),n=e.sub(r);return{vec:n,center:e.add(r).div(2),scale:n.mag()/this._startVec.mag(),bearing:this._rotationDisabled?0:180*n.angleWith(this._startVec)/Math.PI}},tn.prototype._onMove=function(e){if(2===e.touches.length){var r=this._getTouchEventData(e),n=r.vec,i=r.scale,a=r.bearing;if(!this._gestureIntent){var o=Math.abs(1-i)>.15;Math.abs(a)>10?this._gestureIntent=\\\"rotate\\\":o&&(this._gestureIntent=\\\"zoom\\\"),this._gestureIntent&&(this._map.fire(new t.Event(this._gestureIntent+\\\"start\\\",{originalEvent:e})),this._map.fire(new t.Event(\\\"movestart\\\",{originalEvent:e})),this._startVec=n)}this._lastTouchEvent=e,this._frameId||(this._frameId=this._map._requestRenderFrame(this._onTouchFrame)),e.preventDefault()}},tn.prototype._onTouchFrame=function(){this._frameId=null;var e=this._gestureIntent;if(e){var r=this._map.transform;this._startScale||(this._startScale=r.scale,this._startBearing=r.bearing);var n=this._getTouchEventData(this._lastTouchEvent),i=n.center,o=n.bearing,s=n.scale,l=r.pointLocation(i),c=r.locationPoint(l);\\\"rotate\\\"===e&&(r.bearing=this._startBearing+o),r.zoom=r.scaleZoom(this._startScale*s),r.setLocationAtPoint(l,c),this._map.fire(new t.Event(e,{originalEvent:this._lastTouchEvent})),this._map.fire(new t.Event(\\\"move\\\",{originalEvent:this._lastTouchEvent})),this._drainInertiaBuffer(),this._inertia.push([a.now(),s,i])}},tn.prototype._onEnd=function(e){s.removeEventListener(t.default.document,\\\"touchmove\\\",this._onMove,{passive:!1}),s.removeEventListener(t.default.document,\\\"touchend\\\",this._onEnd);var r=this._gestureIntent,n=this._startScale;if(this._frameId&&(this._map._cancelRenderFrame(this._frameId),this._frameId=null),delete this._gestureIntent,delete this._startScale,delete this._startBearing,delete this._lastTouchEvent,r){this._map.fire(new t.Event(r+\\\"end\\\",{originalEvent:e})),this._drainInertiaBuffer();var i=this._inertia,a=this._map;if(i.length<2)a.snapToNorth({},{originalEvent:e});else{var o=i[i.length-1],l=i[0],c=a.transform.scaleZoom(n*o[1]),u=a.transform.scaleZoom(n*l[1]),f=c-u,h=(o[0]-l[0])/1e3,p=o[2];if(0!==h&&c!==u){var d=.15*f/h;Math.abs(d)>2.5&&(d=d>0?2.5:-2.5);var g=1e3*Math.abs(d/(12*.15)),v=c+d*g/2e3;v<0&&(v=0),a.easeTo({zoom:v,duration:g,easing:Qr,around:this._aroundCenter?a.getCenter():a.unproject(p),noMoveStart:!0},{originalEvent:e})}else a.snapToNorth({},{originalEvent:e})}}},tn.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=a.now();t.length>2&&e-t[0][0]>160;)t.shift()};var en={scrollZoom:Hr,boxZoom:Gr,dragRotate:Yr,dragPan:Zr,keyboard:$r,doubleClickZoom:Kr,touchZoomRotate:tn},rn=function(e){function r(r,n){e.call(this),this._moving=!1,this._zooming=!1,this.transform=r,this._bearingSnap=n.bearingSnap,t.bindAll([\\\"_renderFrameCallback\\\"],this)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.getCenter=function(){return this.transform.center},r.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e)},r.prototype.panBy=function(e,r,n){return e=t.default$1.convert(e).mult(-1),this.panTo(this.transform.center,t.extend({offset:e},r),n)},r.prototype.panTo=function(e,r,n){return this.easeTo(t.extend({center:e},r),n)},r.prototype.getZoom=function(){return this.transform.zoom},r.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},r.prototype.zoomTo=function(e,r,n){return this.easeTo(t.extend({zoom:e},r),n)},r.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},r.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},r.prototype.getBearing=function(){return this.transform.bearing},r.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},r.prototype.rotateTo=function(e,r,n){return this.easeTo(t.extend({bearing:e},r),n)},r.prototype.resetNorth=function(e,r){return this.rotateTo(0,t.extend({duration:1e3},e),r),this},r.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(t,e):this},r.prototype.getPitch=function(){return this.transform.pitch},r.prototype.setPitch=function(t,e){return this.jumpTo({pitch:t},e),this},r.prototype.fitBounds=function(e,r,n){if(\\\"number\\\"==typeof(r=t.extend({padding:{top:0,bottom:0,right:0,left:0},offset:[0,0],maxZoom:this.transform.maxZoom},r)).padding){var i=r.padding;r.padding={top:i,bottom:i,right:i,left:i}}if(!t.default$10(Object.keys(r.padding).sort(function(t,e){return t<e?-1:t>e?1:0}),[\\\"bottom\\\",\\\"left\\\",\\\"right\\\",\\\"top\\\"]))return t.warnOnce(\\\"options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'\\\"),this;e=W.convert(e);var a=[(r.padding.left-r.padding.right)/2,(r.padding.top-r.padding.bottom)/2],o=Math.min(r.padding.right,r.padding.left),s=Math.min(r.padding.top,r.padding.bottom);r.offset=[r.offset[0]+a[0],r.offset[1]+a[1]];var l=t.default$1.convert(r.offset),c=this.transform,u=c.project(e.getNorthWest()),f=c.project(e.getSouthEast()),h=f.sub(u),p=(c.width-2*o-2*Math.abs(l.x))/h.x,d=(c.height-2*s-2*Math.abs(l.y))/h.y;return d<0||p<0?(t.warnOnce(\\\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\\\"),this):(r.center=c.unproject(u.add(f).div(2)),r.zoom=Math.min(c.scaleZoom(c.scale*Math.min(p,d)),r.maxZoom),r.bearing=0,r.linear?this.easeTo(r,n):this.flyTo(r,n))},r.prototype.jumpTo=function(e,r){this.stop();var n=this.transform,i=!1,a=!1,o=!1;return\\\"zoom\\\"in e&&n.zoom!==+e.zoom&&(i=!0,n.zoom=+e.zoom),void 0!==e.center&&(n.center=G.convert(e.center)),\\\"bearing\\\"in e&&n.bearing!==+e.bearing&&(a=!0,n.bearing=+e.bearing),\\\"pitch\\\"in e&&n.pitch!==+e.pitch&&(o=!0,n.pitch=+e.pitch),this.fire(new t.Event(\\\"movestart\\\",r)).fire(new t.Event(\\\"move\\\",r)),i&&this.fire(new t.Event(\\\"zoomstart\\\",r)).fire(new t.Event(\\\"zoom\\\",r)).fire(new t.Event(\\\"zoomend\\\",r)),a&&this.fire(new t.Event(\\\"rotatestart\\\",r)).fire(new t.Event(\\\"rotate\\\",r)).fire(new t.Event(\\\"rotateend\\\",r)),o&&this.fire(new t.Event(\\\"pitchstart\\\",r)).fire(new t.Event(\\\"pitch\\\",r)).fire(new t.Event(\\\"pitchend\\\",r)),this.fire(new t.Event(\\\"moveend\\\",r))},r.prototype.easeTo=function(e,r){var n=this;this.stop(),!1===(e=t.extend({offset:[0,0],duration:500,easing:t.ease},e)).animate&&(e.duration=0);var i=this.transform,a=this.getZoom(),o=this.getBearing(),s=this.getPitch(),l=\\\"zoom\\\"in e?+e.zoom:a,c=\\\"bearing\\\"in e?this._normalizeBearing(e.bearing,o):o,u=\\\"pitch\\\"in e?+e.pitch:s,f=i.centerPoint.add(t.default$1.convert(e.offset)),h=i.pointLocation(f),p=G.convert(e.center||h);this._normalizeCenter(p);var d,g,v=i.project(h),m=i.project(p).sub(v),y=i.zoomScale(l-a);return e.around&&(d=G.convert(e.around),g=i.locationPoint(d)),this._zooming=l!==a,this._rotating=o!==c,this._pitching=u!==s,this._prepareEase(r,e.noMoveStart),clearTimeout(this._easeEndTimeoutID),this._ease(function(e){if(n._zooming&&(i.zoom=t.number(a,l,e)),n._rotating&&(i.bearing=t.number(o,c,e)),n._pitching&&(i.pitch=t.number(s,u,e)),d)i.setLocationAtPoint(d,g);else{var h=i.zoomScale(i.zoom-a),p=l>a?Math.min(2,y):Math.max(.5,y),x=Math.pow(p,1-e),b=i.unproject(v.add(m.mult(e*x)).mult(h));i.setLocationAtPoint(i.renderWorldCopies?b.wrap():b,f)}n._fireMoveEvents(r)},function(){e.delayEndEvents?n._easeEndTimeoutID=setTimeout(function(){return n._afterEase(r)},e.delayEndEvents):n._afterEase(r)},e),this},r.prototype._prepareEase=function(e,r){this._moving=!0,r||this.fire(new t.Event(\\\"movestart\\\",e)),this._zooming&&this.fire(new t.Event(\\\"zoomstart\\\",e)),this._rotating&&this.fire(new t.Event(\\\"rotatestart\\\",e)),this._pitching&&this.fire(new t.Event(\\\"pitchstart\\\",e))},r.prototype._fireMoveEvents=function(e){this.fire(new t.Event(\\\"move\\\",e)),this._zooming&&this.fire(new t.Event(\\\"zoom\\\",e)),this._rotating&&this.fire(new t.Event(\\\"rotate\\\",e)),this._pitching&&this.fire(new t.Event(\\\"pitch\\\",e))},r.prototype._afterEase=function(e){var r=this._zooming,n=this._rotating,i=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,r&&this.fire(new t.Event(\\\"zoomend\\\",e)),n&&this.fire(new t.Event(\\\"rotateend\\\",e)),i&&this.fire(new t.Event(\\\"pitchend\\\",e)),this.fire(new t.Event(\\\"moveend\\\",e))},r.prototype.flyTo=function(e,r){var n=this;this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var i=this.transform,a=this.getZoom(),o=this.getBearing(),s=this.getPitch(),l=\\\"zoom\\\"in e?t.clamp(+e.zoom,i.minZoom,i.maxZoom):a,c=\\\"bearing\\\"in e?this._normalizeBearing(e.bearing,o):o,u=\\\"pitch\\\"in e?+e.pitch:s,f=i.zoomScale(l-a),h=i.centerPoint.add(t.default$1.convert(e.offset)),p=i.pointLocation(h),d=G.convert(e.center||p);this._normalizeCenter(d);var g=i.project(p),v=i.project(d).sub(g),m=e.curve,y=Math.max(i.width,i.height),x=y/f,b=v.mag();if(\\\"minZoom\\\"in e){var _=t.clamp(Math.min(e.minZoom,a,l),i.minZoom,i.maxZoom),w=y/i.zoomScale(_-a);m=Math.sqrt(w/b*2)}var k=m*m;function M(t){var e=(x*x-y*y+(t?-1:1)*k*k*b*b)/(2*(t?x:y)*k*b);return Math.log(Math.sqrt(e*e+1)-e)}function A(t){return(Math.exp(t)-Math.exp(-t))/2}function T(t){return(Math.exp(t)+Math.exp(-t))/2}var S=M(0),E=function(t){return T(S)/T(S+m*t)},C=function(t){return y*((T(S)*(A(e=S+m*t)/T(e))-A(S))/k)/b;var e},L=(M(1)-S)/m;if(Math.abs(b)<1e-6||!isFinite(L)){if(Math.abs(y-x)<1e-6)return this.easeTo(e,r);var z=x<y?-1:1;L=Math.abs(Math.log(x/y))/m,C=function(){return 0},E=function(t){return Math.exp(z*m*t)}}if(\\\"duration\\\"in e)e.duration=+e.duration;else{var O=\\\"screenSpeed\\\"in e?+e.screenSpeed/m:+e.speed;e.duration=1e3*L/O}return e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=o!==c,this._pitching=u!==s,this._prepareEase(r,!1),this._ease(function(e){var l=e*L,f=1/E(l);i.zoom=a+i.scaleZoom(f),n._rotating&&(i.bearing=t.number(o,c,e)),n._pitching&&(i.pitch=t.number(s,u,e));var p=i.unproject(g.add(v.mult(C(l))).mult(f));i.setLocationAtPoint(i.renderWorldCopies?p.wrap():p,h),n._fireMoveEvents(r)},function(){return n._afterEase(r)},e),this},r.prototype.isEasing=function(){return!!this._easeFrameId},r.prototype.stop=function(){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var t=this._onEaseEnd;delete this._onEaseEnd,t.call(this)}return this},r.prototype._ease=function(t,e,r){!1===r.animate||0===r.duration?(t(1),e()):(this._easeStart=a.now(),this._easeOptions=r,this._onEaseFrame=t,this._onEaseEnd=e,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},r.prototype._renderFrameCallback=function(){var t=Math.min((a.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(t)),t<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},r.prototype._normalizeBearing=function(e,r){e=t.wrap(e,-180,180);var n=Math.abs(e-r);return Math.abs(e-360-r)<n&&(e-=360),Math.abs(e+360-r)<n&&(e+=360),e},r.prototype._normalizeCenter=function(t){var e=this.transform;if(e.renderWorldCopies&&!e.lngRange){var r=t.lng-e.center.lng;t.lng+=r>180?-360:r<-180?360:0}},r}(t.Evented),nn=function(e){void 0===e&&(e={}),this.options=e,t.bindAll([\\\"_updateEditLink\\\",\\\"_updateData\\\",\\\"_updateCompact\\\"],this)};nn.prototype.getDefaultPosition=function(){return\\\"bottom-right\\\"},nn.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl mapboxgl-ctrl-attrib\\\"),e&&this._container.classList.add(\\\"mapboxgl-compact\\\"),this._updateAttributions(),this._updateEditLink(),this._map.on(\\\"sourcedata\\\",this._updateData),this._map.on(\\\"moveend\\\",this._updateEditLink),void 0===e&&(this._map.on(\\\"resize\\\",this._updateCompact),this._updateCompact()),this._container},nn.prototype.onRemove=function(){s.remove(this._container),this._map.off(\\\"sourcedata\\\",this._updateData),this._map.off(\\\"moveend\\\",this._updateEditLink),this._map.off(\\\"resize\\\",this._updateCompact),this._map=void 0},nn.prototype._updateEditLink=function(){var t=this._editLink;t||(t=this._editLink=this._container.querySelector(\\\".mapbox-improve-map\\\"));var e=[{key:\\\"owner\\\",value:this.styleOwner},{key:\\\"id\\\",value:this.styleId},{key:\\\"access_token\\\",value:v.ACCESS_TOKEN}];if(t){var r=e.reduce(function(t,r,n){return r.value&&(t+=r.key+\\\"=\\\"+r.value+(n<e.length-1?\\\"&\\\":\\\"\\\")),t},\\\"?\\\");t.href=\\\"https://www.mapbox.com/feedback/\\\"+r+(this._map._hash?this._map._hash.getHashString(!0):\\\"\\\")}},nn.prototype._updateData=function(t){t&&\\\"metadata\\\"===t.sourceDataType&&(this._updateAttributions(),this._updateEditLink())},nn.prototype._updateAttributions=function(){if(this._map.style){var t=[];if(this._map.style.stylesheet){var e=this._map.style.stylesheet;this.styleOwner=e.owner,this.styleId=e.id}var r=this._map.style.sourceCaches;for(var n in r){var i=r[n].getSource();i.attribution&&t.indexOf(i.attribution)<0&&t.push(i.attribution)}t.sort(function(t,e){return t.length-e.length}),(t=t.filter(function(e,r){for(var n=r+1;n<t.length;n++)if(t[n].indexOf(e)>=0)return!1;return!0})).length?(this._container.innerHTML=t.join(\\\" | \\\"),this._container.classList.remove(\\\"mapboxgl-attrib-empty\\\")):this._container.classList.add(\\\"mapboxgl-attrib-empty\\\"),this._editLink=null}},nn.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add(\\\"mapboxgl-compact\\\"):this._container.classList.remove(\\\"mapboxgl-compact\\\")};var an=function(){t.bindAll([\\\"_updateLogo\\\"],this)};an.prototype.onAdd=function(t){this._map=t,this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl\\\");var e=s.create(\\\"a\\\",\\\"mapboxgl-ctrl-logo\\\");return e.target=\\\"_blank\\\",e.href=\\\"https://www.mapbox.com/\\\",e.setAttribute(\\\"aria-label\\\",\\\"Mapbox logo\\\"),this._container.appendChild(e),this._container.style.display=\\\"none\\\",this._map.on(\\\"sourcedata\\\",this._updateLogo),this._updateLogo(),this._container},an.prototype.onRemove=function(){s.remove(this._container),this._map.off(\\\"sourcedata\\\",this._updateLogo)},an.prototype.getDefaultPosition=function(){return\\\"bottom-left\\\"},an.prototype._updateLogo=function(t){t&&\\\"metadata\\\"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?\\\"block\\\":\\\"none\\\")},an.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}};var on=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};on.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},on.prototype.remove=function(t){for(var e=this._currentlyRunning,r=0,n=e?this._queue.concat(e):this._queue;r<n.length;r+=1){var i=n[r];if(i.id===t)return void(i.cancelled=!0)}},on.prototype.run=function(){var t=this._currentlyRunning=this._queue;this._queue=[];for(var e=0,r=t;e<r.length;e+=1){var n=r[e];if(!n.cancelled&&(n.callback(),this._cleared))break}this._cleared=!1,this._currentlyRunning=!1},on.prototype.clear=function(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]};var sn=t.default.HTMLImageElement,ln=t.default.HTMLElement,cn={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:0,maxZoom:22,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,transformRequest:null,fadeDuration:300},un=function(r){function n(e){if(null!=(e=t.extend({},cn,e)).minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error(\\\"maxZoom must be greater than minZoom\\\");var n=new Fr(e.minZoom,e.maxZoom,e.renderWorldCopies);r.call(this,n,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new on;var i=e.transformRequest;if(this._transformRequest=i?function(t,e){return i(t,e)||{url:t}}:function(t){return{url:t}},\\\"string\\\"==typeof e.container){var a=t.default.document.getElementById(e.container);if(!a)throw new Error(\\\"Container '\\\"+e.container+\\\"' not found.\\\");this._container=a}else{if(!(e.container instanceof ln))throw new Error(\\\"Invalid type: 'container' must be a String or HTMLElement.\\\");this._container=e.container}e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll([\\\"_onWindowOnline\\\",\\\"_onWindowResize\\\",\\\"_contextLost\\\",\\\"_contextRestored\\\",\\\"_update\\\",\\\"_render\\\",\\\"_onData\\\",\\\"_onDataLoading\\\"],this),this._setupContainer(),this._setupPainter(),this.on(\\\"move\\\",this._update.bind(this,!1)),this.on(\\\"zoom\\\",this._update.bind(this,!0)),void 0!==t.default&&(t.default.addEventListener(\\\"online\\\",this._onWindowOnline,!1),t.default.addEventListener(\\\"resize\\\",this._onWindowResize,!1)),function(t,e){var r=t.getCanvasContainer(),n=null,i=!1;for(var a in en)t[a]=new en[a](t,e),e.interactive&&e[a]&&t[a].enable(e[a]);s.addEventListener(r,\\\"mouseout\\\",function(e){t.fire(new Vr(\\\"mouseout\\\",t,e))}),s.addEventListener(r,\\\"mousedown\\\",function(r){i=!0;var n=new Vr(\\\"mousedown\\\",t,r);t.fire(n),n.defaultPrevented||(e.interactive&&!t.doubleClickZoom.isActive()&&t.stop(),t.boxZoom.onMouseDown(r),t.boxZoom.isActive()||t.dragPan.isActive()||t.dragRotate.onMouseDown(r),t.boxZoom.isActive()||t.dragRotate.isActive()||t.dragPan.onMouseDown(r))}),s.addEventListener(r,\\\"mouseup\\\",function(e){var r=t.dragRotate.isActive();n&&!r&&t.fire(new Vr(\\\"contextmenu\\\",t,n)),n=null,i=!1,t.fire(new Vr(\\\"mouseup\\\",t,e))}),s.addEventListener(r,\\\"mousemove\\\",function(e){if(!t.dragPan.isActive()&&!t.dragRotate.isActive()){for(var n=e.toElement||e.target;n&&n!==r;)n=n.parentNode;n===r&&t.fire(new Vr(\\\"mousemove\\\",t,e))}}),s.addEventListener(r,\\\"mouseover\\\",function(e){for(var n=e.toElement||e.target;n&&n!==r;)n=n.parentNode;n===r&&t.fire(new Vr(\\\"mouseover\\\",t,e))}),s.addEventListener(r,\\\"touchstart\\\",function(r){var n=new Ur(\\\"touchstart\\\",t,r);t.fire(n),n.defaultPrevented||(e.interactive&&t.stop(),t.boxZoom.isActive()||t.dragRotate.isActive()||t.dragPan.onTouchStart(r),t.touchZoomRotate.onStart(r),t.doubleClickZoom.onTouchStart(n))},{passive:!1}),s.addEventListener(r,\\\"touchmove\\\",function(e){t.fire(new Ur(\\\"touchmove\\\",t,e))},{passive:!1}),s.addEventListener(r,\\\"touchend\\\",function(e){t.fire(new Ur(\\\"touchend\\\",t,e))}),s.addEventListener(r,\\\"touchcancel\\\",function(e){t.fire(new Ur(\\\"touchcancel\\\",t,e))}),s.addEventListener(r,\\\"click\\\",function(e){t.fire(new Vr(\\\"click\\\",t,e))}),s.addEventListener(r,\\\"dblclick\\\",function(e){var r=new Vr(\\\"dblclick\\\",t,e);t.fire(r),r.defaultPrevented||t.doubleClickZoom.onDblClick(r)}),s.addEventListener(r,\\\"contextmenu\\\",function(e){var r=t.dragRotate.isActive();i||r?i&&(n=e):t.fire(new Vr(\\\"contextmenu\\\",t,e)),e.preventDefault()}),s.addEventListener(r,\\\"wheel\\\",function(e){var r=new qr(\\\"wheel\\\",t,e);t.fire(r),r.defaultPrevented||t.scrollZoom.onWheel(e)},{passive:!1})}(this,e),this._hash=e.hash&&(new jr).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this.resize(),e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new nn),this.addControl(new an,e.logoPosition),this.on(\\\"style.load\\\",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on(\\\"data\\\",this._onData),this.on(\\\"dataloading\\\",this._onDataLoading)}r&&(n.__proto__=r),n.prototype=Object.create(r&&r.prototype),n.prototype.constructor=n;var i={showTileBoundaries:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0}};return n.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e=\\\"top-right\\\");var r=t.onAdd(this),n=this._controlPositions[e];return-1!==e.indexOf(\\\"bottom\\\")?n.insertBefore(r,n.firstChild):n.appendChild(r),this},n.prototype.removeControl=function(t){return t.onRemove(this),this},n.prototype.resize=function(e){var r=this._containerDimensions(),n=r[0],i=r[1];return this._resizeCanvas(n,i),this.transform.resize(n,i),this.painter.resize(n,i),this.fire(new t.Event(\\\"movestart\\\",e)).fire(new t.Event(\\\"move\\\",e)).fire(new t.Event(\\\"resize\\\",e)).fire(new t.Event(\\\"moveend\\\",e))},n.prototype.getBounds=function(){var e=new W(this.transform.pointLocation(new t.default$1(0,this.transform.height)),this.transform.pointLocation(new t.default$1(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(e.extend(this.transform.pointLocation(new t.default$1(this.transform.size.x,0))),e.extend(this.transform.pointLocation(new t.default$1(0,this.transform.size.y)))),e},n.prototype.getMaxBounds=function(){return this.transform.latRange&&2===this.transform.latRange.length&&this.transform.lngRange&&2===this.transform.lngRange.length?new W([this.transform.lngRange[0],this.transform.latRange[0]],[this.transform.lngRange[1],this.transform.latRange[1]]):null},n.prototype.setMaxBounds=function(t){if(t){var e=W.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null==t&&(this.transform.lngRange=null,this.transform.latRange=null,this._update());return this},n.prototype.setMinZoom=function(t){if((t=null==t?0:t)>=0&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()<t&&this.setZoom(t),this;throw new Error(\\\"minZoom must be between 0 and the current maxZoom, inclusive\\\")},n.prototype.getMinZoom=function(){return this.transform.minZoom},n.prototype.setMaxZoom=function(t){if((t=null==t?22:t)>=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error(\\\"maxZoom must be greater than the current minZoom\\\")},n.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},n.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update(),this},n.prototype.getMaxZoom=function(){return this.transform.maxZoom},n.prototype.project=function(t){return this.transform.locationPoint(G.convert(t))},n.prototype.unproject=function(e){return this.transform.pointLocation(t.default$1.convert(e))},n.prototype.isMoving=function(){return this._moving||this.dragPan.isActive()||this.dragRotate.isActive()||this.scrollZoom.isActive()},n.prototype.isZooming=function(){return this._zooming||this.scrollZoom.isActive()},n.prototype.isRotating=function(){return this._rotating||this.dragRotate.isActive()},n.prototype.on=function(t,e,n){var i,a=this;if(void 0===n)return r.prototype.on.call(this,t,e);var o=function(){if(\\\"mouseenter\\\"===t||\\\"mouseover\\\"===t){var r=!1;return{layer:e,listener:n,delegates:{mousemove:function(i){var o=a.getLayer(e)?a.queryRenderedFeatures(i.point,{layers:[e]}):[];o.length?r||(r=!0,n.call(a,new Vr(t,a,i.originalEvent,{features:o}))):r=!1},mouseout:function(){r=!1}}}}if(\\\"mouseleave\\\"===t||\\\"mouseout\\\"===t){var o=!1;return{layer:e,listener:n,delegates:{mousemove:function(r){(a.getLayer(e)?a.queryRenderedFeatures(r.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,n.call(a,new Vr(t,a,r.originalEvent)))},mouseout:function(e){o&&(o=!1,n.call(a,new Vr(t,a,e.originalEvent)))}}}}return{layer:e,listener:n,delegates:(i={},i[t]=function(t){var r=a.getLayer(e)?a.queryRenderedFeatures(t.point,{layers:[e]}):[];r.length&&(t.features=r,n.call(a,t),delete t.features)},i)}}();for(var s in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(o),o.delegates)a.on(s,o.delegates[s]);return this},n.prototype.off=function(t,e,n){if(void 0===n)return r.prototype.off.call(this,t,e);if(this._delegatedListeners&&this._delegatedListeners[t])for(var i=this._delegatedListeners[t],a=0;a<i.length;a++){var o=i[a];if(o.layer===e&&o.listener===n){for(var s in o.delegates)this.off(s,o.delegates[s]);return i.splice(a,1),this}}return this},n.prototype.queryRenderedFeatures=function(e,r){var n;return 2===arguments.length?(e=arguments[0],r=arguments[1]):1===arguments.length&&((n=arguments[0])instanceof t.default$1||Array.isArray(n))?(e=arguments[0],r={}):1===arguments.length?(e=void 0,r=arguments[0]):(e=void 0,r={}),this.style?this.style.queryRenderedFeatures(this._makeQueryGeometry(e),r,this.transform):[]},n.prototype._makeQueryGeometry=function(e){var r,n=this;if(void 0===e&&(e=[t.default$1.convert([0,0]),t.default$1.convert([this.transform.width,this.transform.height])]),e instanceof t.default$1||\\\"number\\\"==typeof e[0])r=[t.default$1.convert(e)];else{var i=[t.default$1.convert(e[0]),t.default$1.convert(e[1])];r=[i[0],new t.default$1(i[1].x,i[0].y),i[1],new t.default$1(i[0].x,i[1].y),i[0]]}return{viewport:r,worldCoordinate:r.map(function(t){return n.transform.pointCoordinate(t)})}},n.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},n.prototype.setStyle=function(e,r){if((!r||!1!==r.diff&&!r.localIdeographFontFamily)&&this.style&&e&&\\\"object\\\"==typeof e)try{return this.style.setState(e)&&this._update(!0),this}catch(e){t.warnOnce(\\\"Unable to perform style diff: \\\"+(e.message||e.error||e)+\\\".  Rebuilding the style from scratch.\\\")}return this.style&&(this.style.setEventedParent(null),this.style._remove()),e?(this.style=new Je(this,r||{}),this.style.setEventedParent(this,{style:this.style}),\\\"string\\\"==typeof e?this.style.loadURL(e):this.style.loadJSON(e),this):(delete this.style,this)},n.prototype.getStyle=function(){if(this.style)return this.style.serialize()},n.prototype.isStyleLoaded=function(){return this.style?this.style.loaded():t.warnOnce(\\\"There is no style added to the map.\\\")},n.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},n.prototype.isSourceLoaded=function(e){var r=this.style&&this.style.sourceCaches[e];if(void 0!==r)return r.loaded();this.fire(new t.ErrorEvent(new Error(\\\"There is no source with ID '\\\"+e+\\\"'\\\")))},n.prototype.areTilesLoaded=function(){var t=this.style&&this.style.sourceCaches;for(var e in t){var r=t[e]._tiles;for(var n in r){var i=r[n];if(\\\"loaded\\\"!==i.state&&\\\"errored\\\"!==i.state)return!1}}return!0},n.prototype.addSourceType=function(t,e,r){return this.style.addSourceType(t,e,r)},n.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},n.prototype.getSource=function(t){return this.style.getSource(t)},n.prototype.addImage=function(e,r,n){void 0===n&&(n={});var i=n.pixelRatio;void 0===i&&(i=1);var o=n.sdf;if(void 0===o&&(o=!1),r instanceof sn){var s=a.getImageData(r),l=s.width,c=s.height,u=s.data;this.style.addImage(e,{data:new t.RGBAImage({width:l,height:c},u),pixelRatio:i,sdf:o})}else{if(void 0===r.width||void 0===r.height)return this.fire(new t.ErrorEvent(new Error(\\\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\\\")));var f=r.width,h=r.height,p=r.data;this.style.addImage(e,{data:new t.RGBAImage({width:f,height:h},p.slice(0)),pixelRatio:i,sdf:o})}},n.prototype.hasImage=function(e){return e?!!this.style.getImage(e):(this.fire(new t.ErrorEvent(new Error(\\\"Missing required image id\\\"))),!1)},n.prototype.removeImage=function(t){this.style.removeImage(t)},n.prototype.loadImage=function(e,r){t.getImage(this._transformRequest(e,t.ResourceType.Image),r)},n.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},n.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},n.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},n.prototype.getLayer=function(t){return this.style.getLayer(t)},n.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},n.prototype.setLayerZoomRange=function(t,e,r){return this.style.setLayerZoomRange(t,e,r),this._update(!0),this},n.prototype.getFilter=function(t){return this.style.getFilter(t)},n.prototype.setPaintProperty=function(t,e,r){return this.style.setPaintProperty(t,e,r),this._update(!0),this},n.prototype.getPaintProperty=function(t,e){return this.style.getPaintProperty(t,e)},n.prototype.setLayoutProperty=function(t,e,r){return this.style.setLayoutProperty(t,e,r),this._update(!0),this},n.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},n.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},n.prototype.getLight=function(){return this.style.getLight()},n.prototype.getContainer=function(){return this._container},n.prototype.getCanvasContainer=function(){return this._canvasContainer},n.prototype.getCanvas=function(){return this._canvas},n.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},n.prototype._setupContainer=function(){var t=this._container;t.classList.add(\\\"mapboxgl-map\\\"),(this._missingCSSContainer=s.create(\\\"div\\\",\\\"mapboxgl-missing-css\\\",t)).innerHTML=\\\"Missing Mapbox GL JS CSS\\\";var e=this._canvasContainer=s.create(\\\"div\\\",\\\"mapboxgl-canvas-container\\\",t);this._interactive&&e.classList.add(\\\"mapboxgl-interactive\\\"),this._canvas=s.create(\\\"canvas\\\",\\\"mapboxgl-canvas\\\",e),this._canvas.style.position=\\\"absolute\\\",this._canvas.addEventListener(\\\"webglcontextlost\\\",this._contextLost,!1),this._canvas.addEventListener(\\\"webglcontextrestored\\\",this._contextRestored,!1),this._canvas.setAttribute(\\\"tabindex\\\",\\\"0\\\"),this._canvas.setAttribute(\\\"aria-label\\\",\\\"Map\\\");var r=this._containerDimensions();this._resizeCanvas(r[0],r[1]);var n=this._controlContainer=s.create(\\\"div\\\",\\\"mapboxgl-control-container\\\",t),i=this._controlPositions={};[\\\"top-left\\\",\\\"top-right\\\",\\\"bottom-left\\\",\\\"bottom-right\\\"].forEach(function(t){i[t]=s.create(\\\"div\\\",\\\"mapboxgl-ctrl-\\\"+t,n)})},n.prototype._resizeCanvas=function(e,r){var n=t.default.devicePixelRatio||1;this._canvas.width=n*e,this._canvas.height=n*r,this._canvas.style.width=e+\\\"px\\\",this._canvas.style.height=r+\\\"px\\\"},n.prototype._setupPainter=function(){var r=t.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},e.webGLContextAttributes),n=this._canvas.getContext(\\\"webgl\\\",r)||this._canvas.getContext(\\\"experimental-webgl\\\",r);n?this.painter=new zr(n,this.transform):this.fire(new t.ErrorEvent(new Error(\\\"Failed to initialize WebGL\\\")))},n.prototype._contextLost=function(e){e.preventDefault(),this._frameId&&(a.cancelFrame(this._frameId),this._frameId=null),this.fire(new t.Event(\\\"webglcontextlost\\\",{originalEvent:e}))},n.prototype._contextRestored=function(e){this._setupPainter(),this.resize(),this._update(),this.fire(new t.Event(\\\"webglcontextrestored\\\",{originalEvent:e}))},n.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},n.prototype._update=function(t){this.style&&(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender())},n.prototype._requestRenderFrame=function(t){return this._update(),this._renderTaskQueue.add(t)},n.prototype._cancelRenderFrame=function(t){this._renderTaskQueue.remove(t)},n.prototype._render=function(){this._renderTaskQueue.run();var e=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;var r=this.transform.zoom,n=a.now();this.style.zoomHistory.update(r,n);var i=new t.default$16(r,{now:n,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),o=i.crossFadingFactor();1===o&&o===this._crossFadingFactor||(e=!0,this._crossFadingFactor=o),this.style.update(i)}return this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),fadeDuration:this._fadeDuration}),this.fire(new t.Event(\\\"render\\\")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new t.Event(\\\"load\\\"))),this.style&&(this.style.hasTransitions()||e)&&(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty||this._placementDirty)&&this._rerender(),this},n.prototype.remove=function(){this._hash&&this._hash.remove(),a.cancelFrame(this._frameId),this._renderTaskQueue.clear(),this._frameId=null,this.setStyle(null),void 0!==t.default&&(t.default.removeEventListener(\\\"resize\\\",this._onWindowResize,!1),t.default.removeEventListener(\\\"online\\\",this._onWindowOnline,!1));var e=this.painter.context.gl.getExtension(\\\"WEBGL_lose_context\\\");e&&e.loseContext(),fn(this._canvasContainer),fn(this._controlContainer),fn(this._missingCSSContainer),this._container.classList.remove(\\\"mapboxgl-map\\\"),this.fire(new t.Event(\\\"remove\\\"))},n.prototype._rerender=function(){var t=this;this.style&&!this._frameId&&(this._frameId=a.frame(function(){t._frameId=null,t._render()}))},n.prototype._onWindowOnline=function(){this._update()},n.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},i.showTileBoundaries.get=function(){return!!this._showTileBoundaries},i.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},i.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},i.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,t?this.style._generateCollisionBoxes():this._update())},i.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},i.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},i.repaint.get=function(){return!!this._repaint},i.repaint.set=function(t){this._repaint=t,this._update()},i.vertices.get=function(){return!!this._vertices},i.vertices.set=function(t){this._vertices=t,this._update()},n.prototype._onData=function(e){this._update(\\\"style\\\"===e.dataType),this.fire(new t.Event(e.dataType+\\\"data\\\",e))},n.prototype._onDataLoading=function(e){this.fire(new t.Event(e.dataType+\\\"dataloading\\\",e))},Object.defineProperties(n.prototype,i),n}(rn);function fn(t){t.parentNode&&t.parentNode.removeChild(t)}var hn={showCompass:!0,showZoom:!0},pn=function(e){var r=this;this.options=t.extend({},hn,e),this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl mapboxgl-ctrl-group\\\"),this._container.addEventListener(\\\"contextmenu\\\",function(t){return t.preventDefault()}),this.options.showZoom&&(this._zoomInButton=this._createButton(\\\"mapboxgl-ctrl-icon mapboxgl-ctrl-zoom-in\\\",\\\"Zoom In\\\",function(){return r._map.zoomIn()}),this._zoomOutButton=this._createButton(\\\"mapboxgl-ctrl-icon mapboxgl-ctrl-zoom-out\\\",\\\"Zoom Out\\\",function(){return r._map.zoomOut()})),this.options.showCompass&&(t.bindAll([\\\"_rotateCompassArrow\\\"],this),this._compass=this._createButton(\\\"mapboxgl-ctrl-icon mapboxgl-ctrl-compass\\\",\\\"Reset North\\\",function(){return r._map.resetNorth()}),this._compassArrow=s.create(\\\"span\\\",\\\"mapboxgl-ctrl-compass-arrow\\\",this._compass))};function dn(t,e,r){if(t=new G(t.lng,t.lat),e){var n=new G(t.lng-360,t.lat),i=new G(t.lng+360,t.lat),a=r.locationPoint(t).distSqr(e);r.locationPoint(n).distSqr(e)<a?t=n:r.locationPoint(i).distSqr(e)<a&&(t=i)}for(;Math.abs(t.lng-r.center.lng)>180;){var o=r.locationPoint(t);if(o.x>=0&&o.y>=0&&o.x<=r.width&&o.y<=r.height)break;t.lng>r.center.lng?t.lng-=360:t.lng+=360}return t}pn.prototype._rotateCompassArrow=function(){var t=\\\"rotate(\\\"+this._map.transform.angle*(180/Math.PI)+\\\"deg)\\\";this._compassArrow.style.transform=t},pn.prototype.onAdd=function(t){return this._map=t,this.options.showCompass&&(this._map.on(\\\"rotate\\\",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Yr(t,{button:\\\"left\\\",element:this._compass}),this._handler.enable()),this._container},pn.prototype.onRemove=function(){s.remove(this._container),this.options.showCompass&&(this._map.off(\\\"rotate\\\",this._rotateCompassArrow),this._handler.disable(),delete this._handler),delete this._map},pn.prototype._createButton=function(t,e,r){var n=s.create(\\\"button\\\",t,this._container);return n.type=\\\"button\\\",n.setAttribute(\\\"aria-label\\\",e),n.addEventListener(\\\"click\\\",r),n};var gn={center:\\\"translate(-50%,-50%)\\\",top:\\\"translate(-50%,0)\\\",\\\"top-left\\\":\\\"translate(0,0)\\\",\\\"top-right\\\":\\\"translate(-100%,0)\\\",bottom:\\\"translate(-50%,-100%)\\\",\\\"bottom-left\\\":\\\"translate(0,-100%)\\\",\\\"bottom-right\\\":\\\"translate(-100%,-100%)\\\",left:\\\"translate(0,-50%)\\\",right:\\\"translate(-100%,-50%)\\\"};function vn(t,e,r){var n=t.classList;for(var i in gn)n.remove(\\\"mapboxgl-\\\"+r+\\\"-anchor-\\\"+i);n.add(\\\"mapboxgl-\\\"+r+\\\"-anchor-\\\"+e)}var mn=function(e){if((arguments[0]instanceof t.default.HTMLElement||2===arguments.length)&&(e=t.extend({element:e},arguments[1])),t.bindAll([\\\"_update\\\",\\\"_onMapClick\\\"],this),this._anchor=e&&e.anchor||\\\"center\\\",this._color=e&&e.color||\\\"#3FB1CE\\\",e&&e.element)this._element=e.element,this._offset=t.default$1.convert(e&&e.offset||[0,0]);else{this._defaultMarker=!0,this._element=s.create(\\\"div\\\");var r=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"svg\\\");r.setAttributeNS(null,\\\"height\\\",\\\"41px\\\"),r.setAttributeNS(null,\\\"width\\\",\\\"27px\\\"),r.setAttributeNS(null,\\\"viewBox\\\",\\\"0 0 27 41\\\");var n=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");n.setAttributeNS(null,\\\"stroke\\\",\\\"none\\\"),n.setAttributeNS(null,\\\"stroke-width\\\",\\\"1\\\"),n.setAttributeNS(null,\\\"fill\\\",\\\"none\\\"),n.setAttributeNS(null,\\\"fill-rule\\\",\\\"evenodd\\\");var i=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");i.setAttributeNS(null,\\\"fill-rule\\\",\\\"nonzero\\\");var a=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");a.setAttributeNS(null,\\\"transform\\\",\\\"translate(3.0, 29.0)\\\"),a.setAttributeNS(null,\\\"fill\\\",\\\"#000000\\\");for(var o=0,l=[{rx:\\\"10.5\\\",ry:\\\"5.25002273\\\"},{rx:\\\"10.5\\\",ry:\\\"5.25002273\\\"},{rx:\\\"9.5\\\",ry:\\\"4.77275007\\\"},{rx:\\\"8.5\\\",ry:\\\"4.29549936\\\"},{rx:\\\"7.5\\\",ry:\\\"3.81822308\\\"},{rx:\\\"6.5\\\",ry:\\\"3.34094679\\\"},{rx:\\\"5.5\\\",ry:\\\"2.86367051\\\"},{rx:\\\"4.5\\\",ry:\\\"2.38636864\\\"}];o<l.length;o+=1){var c=l[o],u=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"ellipse\\\");u.setAttributeNS(null,\\\"opacity\\\",\\\"0.04\\\"),u.setAttributeNS(null,\\\"cx\\\",\\\"10.5\\\"),u.setAttributeNS(null,\\\"cy\\\",\\\"5.80029008\\\"),u.setAttributeNS(null,\\\"rx\\\",c.rx),u.setAttributeNS(null,\\\"ry\\\",c.ry),a.appendChild(u)}var f=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");f.setAttributeNS(null,\\\"fill\\\",this._color);var h=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"path\\\");h.setAttributeNS(null,\\\"d\\\",\\\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\\\"),f.appendChild(h);var p=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");p.setAttributeNS(null,\\\"opacity\\\",\\\"0.25\\\"),p.setAttributeNS(null,\\\"fill\\\",\\\"#000000\\\");var d=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"path\\\");d.setAttributeNS(null,\\\"d\\\",\\\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\\\"),p.appendChild(d);var g=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");g.setAttributeNS(null,\\\"transform\\\",\\\"translate(6.0, 7.0)\\\"),g.setAttributeNS(null,\\\"fill\\\",\\\"#FFFFFF\\\");var v=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"g\\\");v.setAttributeNS(null,\\\"transform\\\",\\\"translate(8.0, 8.0)\\\");var m=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"circle\\\");m.setAttributeNS(null,\\\"fill\\\",\\\"#000000\\\"),m.setAttributeNS(null,\\\"opacity\\\",\\\"0.25\\\"),m.setAttributeNS(null,\\\"cx\\\",\\\"5.5\\\"),m.setAttributeNS(null,\\\"cy\\\",\\\"5.5\\\"),m.setAttributeNS(null,\\\"r\\\",\\\"5.4999962\\\");var y=s.createNS(\\\"http://www.w3.org/2000/svg\\\",\\\"circle\\\");y.setAttributeNS(null,\\\"fill\\\",\\\"#FFFFFF\\\"),y.setAttributeNS(null,\\\"cx\\\",\\\"5.5\\\"),y.setAttributeNS(null,\\\"cy\\\",\\\"5.5\\\"),y.setAttributeNS(null,\\\"r\\\",\\\"5.4999962\\\"),v.appendChild(m),v.appendChild(y),i.appendChild(a),i.appendChild(f),i.appendChild(p),i.appendChild(g),i.appendChild(v),r.appendChild(i),this._element.appendChild(r),this._offset=t.default$1.convert(e&&e.offset||[0,-14])}this._element.classList.add(\\\"mapboxgl-marker\\\"),this._popup=null};mn.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on(\\\"move\\\",this._update),t.on(\\\"moveend\\\",this._update),this._update(),this._map.on(\\\"click\\\",this._onMapClick),this},mn.prototype.remove=function(){return this._map&&(this._map.off(\\\"click\\\",this._onMapClick),this._map.off(\\\"move\\\",this._update),this._map.off(\\\"moveend\\\",this._update),delete this._map),s.remove(this._element),this._popup&&this._popup.remove(),this},mn.prototype.getLngLat=function(){return this._lngLat},mn.prototype.setLngLat=function(t){return this._lngLat=G.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},mn.prototype.getElement=function(){return this._element},mn.prototype.setPopup=function(t){if(this._popup&&(this._popup.remove(),this._popup=null),t){if(!(\\\"offset\\\"in t.options)){var e=Math.sqrt(Math.pow(13.5,2)/2);t.options.offset=this._defaultMarker?{top:[0,0],\\\"top-left\\\":[0,0],\\\"top-right\\\":[0,0],bottom:[0,-38.1],\\\"bottom-left\\\":[e,-1*(24.6+e)],\\\"bottom-right\\\":[-e,-1*(24.6+e)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=t,this._lngLat&&this._popup.setLngLat(this._lngLat)}return this},mn.prototype._onMapClick=function(t){var e=t.originalEvent.target,r=this._element;this._popup&&(e===r||r.contains(e))&&this.togglePopup()},mn.prototype.getPopup=function(){return this._popup},mn.prototype.togglePopup=function(){var t=this._popup;return t?(t.isOpen()?t.remove():t.addTo(this._map),this):this},mn.prototype._update=function(t){this._map&&(this._map.transform.renderWorldCopies&&(this._lngLat=dn(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset),t&&\\\"moveend\\\"!==t.type||(this._pos=this._pos.round()),s.setTransform(this._element,gn[this._anchor]+\\\" translate(\\\"+this._pos.x+\\\"px, \\\"+this._pos.y+\\\"px)\\\"),vn(this._element,this._anchor,\\\"marker\\\"))},mn.prototype.getOffset=function(){return this._offset},mn.prototype.setOffset=function(e){return this._offset=t.default$1.convert(e),this._update(),this};var yn,xn={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showUserLocation:!0},bn=function(e){function r(r){e.call(this),this.options=t.extend({},xn,r),t.bindAll([\\\"_onSuccess\\\",\\\"_onError\\\",\\\"_finish\\\",\\\"_setupUI\\\",\\\"_updateCamera\\\",\\\"_updateMarker\\\"],this)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.onAdd=function(e){var r;return this._map=e,this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl mapboxgl-ctrl-group\\\"),r=this._setupUI,void 0!==yn?r(yn):void 0!==t.default.navigator.permissions?t.default.navigator.permissions.query({name:\\\"geolocation\\\"}).then(function(t){yn=\\\"denied\\\"!==t.state,r(yn)}):(yn=!!t.default.navigator.geolocation,r(yn)),this._container},r.prototype.onRemove=function(){void 0!==this._geolocationWatchID&&(t.default.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker.remove(),s.remove(this._container),this._map=void 0},r.prototype._onSuccess=function(e){if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,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&&\\\"OFF\\\"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&\\\"ACTIVE_LOCK\\\"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove(\\\"mapboxgl-user-location-dot-stale\\\"),this.fire(new t.Event(\\\"geolocate\\\",e)),this._finish()},r.prototype._updateCamera=function(t){var e=new G(t.coords.longitude,t.coords.latitude),r=t.coords.accuracy;this._map.fitBounds(e.toBounds(r),this.options.fitBoundsOptions,{geolocateSource:!0})},r.prototype._updateMarker=function(t){t?this._userLocationDotMarker.setLngLat([t.coords.longitude,t.coords.latitude]).addTo(this._map):this._userLocationDotMarker.remove()},r.prototype._onError=function(e){if(this.options.trackUserLocation)if(1===e.code)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\\\"),void 0!==this._geolocationWatchID&&this._clearWatch();else 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\\\")}\\\"OFF\\\"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add(\\\"mapboxgl-user-location-dot-stale\\\"),this.fire(new t.Event(\\\"error\\\",e)),this._finish()},r.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},r.prototype._setupUI=function(e){var r=this;!1!==e&&(this._container.addEventListener(\\\"contextmenu\\\",function(t){return t.preventDefault()}),this._geolocateButton=s.create(\\\"button\\\",\\\"mapboxgl-ctrl-icon mapboxgl-ctrl-geolocate\\\",this._container),this._geolocateButton.type=\\\"button\\\",this._geolocateButton.setAttribute(\\\"aria-label\\\",\\\"Geolocate\\\"),this.options.trackUserLocation&&(this._geolocateButton.setAttribute(\\\"aria-pressed\\\",\\\"false\\\"),this._watchState=\\\"OFF\\\"),this.options.showUserLocation&&(this._dotElement=s.create(\\\"div\\\",\\\"mapboxgl-user-location-dot\\\"),this._userLocationDotMarker=new mn(this._dotElement),this.options.trackUserLocation&&(this._watchState=\\\"OFF\\\")),this._geolocateButton.addEventListener(\\\"click\\\",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on(\\\"movestart\\\",function(e){e.geolocateSource||\\\"ACTIVE_LOCK\\\"!==r._watchState||(r._watchState=\\\"BACKGROUND\\\",r._geolocateButton.classList.add(\\\"mapboxgl-ctrl-geolocate-background\\\"),r._geolocateButton.classList.remove(\\\"mapboxgl-ctrl-geolocate-active\\\"),r.fire(new t.Event(\\\"trackuserlocationend\\\")))}))},r.prototype.trigger=function(){if(!this._setup)return t.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 t.Event(\\\"trackuserlocationstart\\\"));break;case\\\"WAITING_ACTIVE\\\":case\\\"ACTIVE_LOCK\\\":case\\\"ACTIVE_ERROR\\\":case\\\"BACKGROUND_ERROR\\\":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 t.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 t.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\\\")}\\\"OFF\\\"===this._watchState&&void 0!==this._geolocationWatchID?this._clearWatch():void 0===this._geolocationWatchID&&(this._geolocateButton.classList.add(\\\"mapboxgl-ctrl-geolocate-waiting\\\"),this._geolocateButton.setAttribute(\\\"aria-pressed\\\",\\\"true\\\"),this._geolocationWatchID=t.default.navigator.geolocation.watchPosition(this._onSuccess,this._onError,this.options.positionOptions))}else t.default.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},r.prototype._clearWatch=function(){t.default.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)},r}(t.Evented),_n={maxWidth:100,unit:\\\"metric\\\"},wn=function(e){this.options=t.extend({},_n,e),t.bindAll([\\\"_onMove\\\",\\\"setUnit\\\"],this)};function kn(t,e,r){var n,i,a,o,s,l,c=r&&r.maxWidth||100,u=t._container.clientHeight/2,f=(n=t.unproject([0,u]),i=t.unproject([c,u]),a=Math.PI/180,o=n.lat*a,s=i.lat*a,l=Math.sin(o)*Math.sin(s)+Math.cos(o)*Math.cos(s)*Math.cos((i.lng-n.lng)*a),6371e3*Math.acos(Math.min(l,1)));if(r&&\\\"imperial\\\"===r.unit){var h=3.2808*f;h>5280?Mn(e,c,h/5280,\\\"mi\\\"):Mn(e,c,h,\\\"ft\\\")}else r&&\\\"nautical\\\"===r.unit?Mn(e,c,f/1852,\\\"nm\\\"):Mn(e,c,f,\\\"m\\\")}function Mn(t,e,r,n){var i,a,o,s=(i=r,(a=Math.pow(10,(\\\"\\\"+Math.floor(i)).length-1))*(o=(o=i/a)>=10?10:o>=5?5:o>=3?3:o>=2?2:1)),l=s/r;\\\"m\\\"===n&&s>=1e3&&(s/=1e3,n=\\\"km\\\"),t.style.width=e*l+\\\"px\\\",t.innerHTML=s+n}wn.prototype.getDefaultPosition=function(){return\\\"bottom-left\\\"},wn.prototype._onMove=function(){kn(this._map,this._container,this.options)},wn.prototype.onAdd=function(t){return this._map=t,this._container=s.create(\\\"div\\\",\\\"mapboxgl-ctrl mapboxgl-ctrl-scale\\\",t.getContainer()),this._map.on(\\\"move\\\",this._onMove),this._onMove(),this._container},wn.prototype.onRemove=function(){s.remove(this._container),this._map.off(\\\"move\\\",this._onMove),this._map=void 0},wn.prototype.setUnit=function(t){this.options.unit=t,kn(this._map,this._container,this.options)};var An=function(){this._fullscreen=!1,t.bindAll([\\\"_onClickFullscreen\\\",\\\"_changeIcon\\\"],this),\\\"onfullscreenchange\\\"in t.default.document?this._fullscreenchange=\\\"fullscreenchange\\\":\\\"onmozfullscreenchange\\\"in t.default.document?this._fullscreenchange=\\\"mozfullscreenchange\\\":\\\"onwebkitfullscreenchange\\\"in t.default.document?this._fullscreenchange=\\\"webkitfullscreenchange\\\":\\\"onmsfullscreenchange\\\"in t.default.document&&(this._fullscreenchange=\\\"MSFullscreenChange\\\"),this._className=\\\"mapboxgl-ctrl\\\"};An.prototype.onAdd=function(e){return this._map=e,this._mapContainer=this._map.getContainer(),this._container=s.create(\\\"div\\\",this._className+\\\" mapboxgl-ctrl-group\\\"),this._checkFullscreenSupport()?this._setupUI():(this._container.style.display=\\\"none\\\",t.warnOnce(\\\"This device does not support fullscreen mode.\\\")),this._container},An.prototype.onRemove=function(){s.remove(this._container),this._map=null,t.default.document.removeEventListener(this._fullscreenchange,this._changeIcon)},An.prototype._checkFullscreenSupport=function(){return!!(t.default.document.fullscreenEnabled||t.default.document.mozFullScreenEnabled||t.default.document.msFullscreenEnabled||t.default.document.webkitFullscreenEnabled)},An.prototype._setupUI=function(){var e=this._fullscreenButton=s.create(\\\"button\\\",this._className+\\\"-icon \\\"+this._className+\\\"-fullscreen\\\",this._container);e.setAttribute(\\\"aria-label\\\",\\\"Toggle fullscreen\\\"),e.type=\\\"button\\\",this._fullscreenButton.addEventListener(\\\"click\\\",this._onClickFullscreen),t.default.document.addEventListener(this._fullscreenchange,this._changeIcon)},An.prototype._isFullscreen=function(){return this._fullscreen},An.prototype._changeIcon=function(){(t.default.document.fullscreenElement||t.default.document.mozFullScreenElement||t.default.document.webkitFullscreenElement||t.default.document.msFullscreenElement)===this._mapContainer!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(this._className+\\\"-shrink\\\"),this._fullscreenButton.classList.toggle(this._className+\\\"-fullscreen\\\"))},An.prototype._onClickFullscreen=function(){this._isFullscreen()?t.default.document.exitFullscreen?t.default.document.exitFullscreen():t.default.document.mozCancelFullScreen?t.default.document.mozCancelFullScreen():t.default.document.msExitFullscreen?t.default.document.msExitFullscreen():t.default.document.webkitCancelFullScreen&&t.default.document.webkitCancelFullScreen():this._mapContainer.requestFullscreen?this._mapContainer.requestFullscreen():this._mapContainer.mozRequestFullScreen?this._mapContainer.mozRequestFullScreen():this._mapContainer.msRequestFullscreen?this._mapContainer.msRequestFullscreen():this._mapContainer.webkitRequestFullscreen&&this._mapContainer.webkitRequestFullscreen()};var Tn={closeButton:!0,closeOnClick:!0},Sn=function(e){function r(r){e.call(this),this.options=t.extend(Object.create(Tn),r),t.bindAll([\\\"_update\\\",\\\"_onClickClose\\\"],this)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addTo=function(e){return this._map=e,this._map.on(\\\"move\\\",this._update),this.options.closeOnClick&&this._map.on(\\\"click\\\",this._onClickClose),this._update(),this.fire(new t.Event(\\\"open\\\")),this},r.prototype.isOpen=function(){return!!this._map},r.prototype.remove=function(){return this._content&&s.remove(this._content),this._container&&(s.remove(this._container),delete this._container),this._map&&(this._map.off(\\\"move\\\",this._update),this._map.off(\\\"click\\\",this._onClickClose),delete this._map),this.fire(new t.Event(\\\"close\\\")),this},r.prototype.getLngLat=function(){return this._lngLat},r.prototype.setLngLat=function(t){return this._lngLat=G.convert(t),this._pos=null,this._update(),this},r.prototype.setText=function(e){return this.setDOMContent(t.default.document.createTextNode(e))},r.prototype.setHTML=function(e){var r,n=t.default.document.createDocumentFragment(),i=t.default.document.createElement(\\\"body\\\");for(i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return this.setDOMContent(n)},r.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},r.prototype._createContent=function(){this._content&&s.remove(this._content),this._content=s.create(\\\"div\\\",\\\"mapboxgl-popup-content\\\",this._container),this.options.closeButton&&(this._closeButton=s.create(\\\"button\\\",\\\"mapboxgl-popup-close-button\\\",this._content),this._closeButton.type=\\\"button\\\",this._closeButton.setAttribute(\\\"aria-label\\\",\\\"Close popup\\\"),this._closeButton.innerHTML=\\\"&#215;\\\",this._closeButton.addEventListener(\\\"click\\\",this._onClickClose))},r.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=s.create(\\\"div\\\",\\\"mapboxgl-popup\\\",this._map.getContainer()),this._tip=s.create(\\\"div\\\",\\\"mapboxgl-popup-tip\\\",this._container),this._container.appendChild(this._content)),this._map.transform.renderWorldCopies&&(this._lngLat=dn(this._lngLat,this._pos,this._map.transform));var e=this._pos=this._map.project(this._lngLat),r=this.options.anchor,n=function e(r){if(r){if(\\\"number\\\"==typeof r){var n=Math.round(Math.sqrt(.5*Math.pow(r,2)));return{center:new t.default$1(0,0),top:new t.default$1(0,r),\\\"top-left\\\":new t.default$1(n,n),\\\"top-right\\\":new t.default$1(-n,n),bottom:new t.default$1(0,-r),\\\"bottom-left\\\":new t.default$1(n,-n),\\\"bottom-right\\\":new t.default$1(-n,-n),left:new t.default$1(r,0),right:new t.default$1(-r,0)}}if(r instanceof t.default$1||Array.isArray(r)){var i=t.default$1.convert(r);return{center:i,top:i,\\\"top-left\\\":i,\\\"top-right\\\":i,bottom:i,\\\"bottom-left\\\":i,\\\"bottom-right\\\":i,left:i,right:i}}return{center:t.default$1.convert(r.center||[0,0]),top:t.default$1.convert(r.top||[0,0]),\\\"top-left\\\":t.default$1.convert(r[\\\"top-left\\\"]||[0,0]),\\\"top-right\\\":t.default$1.convert(r[\\\"top-right\\\"]||[0,0]),bottom:t.default$1.convert(r.bottom||[0,0]),\\\"bottom-left\\\":t.default$1.convert(r[\\\"bottom-left\\\"]||[0,0]),\\\"bottom-right\\\":t.default$1.convert(r[\\\"bottom-right\\\"]||[0,0]),left:t.default$1.convert(r.left||[0,0]),right:t.default$1.convert(r.right||[0,0])}}return e(new t.default$1(0,0))}(this.options.offset);if(!r){var i,a=this._container.offsetWidth,o=this._container.offsetHeight;i=e.y+n.bottom.y<o?[\\\"top\\\"]:e.y>this._map.transform.height-o?[\\\"bottom\\\"]:[],e.x<a/2?i.push(\\\"left\\\"):e.x>this._map.transform.width-a/2&&i.push(\\\"right\\\"),r=0===i.length?\\\"bottom\\\":i.join(\\\"-\\\")}var l=e.add(n[r]).round();s.setTransform(this._container,gn[r]+\\\" translate(\\\"+l.x+\\\"px,\\\"+l.y+\\\"px)\\\"),vn(this._container,r,\\\"popup\\\")}},r.prototype._onClickClose=function(){this.remove()},r}(t.Evented),En={version:\\\"0.45.0\\\",supported:e,workerCount:Math.max(Math.floor(a.hardwareConcurrency/2),1),setRTLTextPlugin:t.setRTLTextPlugin,Map:un,NavigationControl:pn,GeolocateControl:bn,AttributionControl:nn,ScaleControl:wn,FullscreenControl:An,Popup:Sn,Marker:mn,Style:Je,LngLat:G,LngLatBounds:W,Point:t.default$1,Evented:t.Evented,config:v,get accessToken(){return v.ACCESS_TOKEN},set accessToken(t){v.ACCESS_TOKEN=t},workerUrl:\\\"\\\"};return En}),n})}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{}],410:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=1<<t+1,r=new Array(e),n=0;n<e;++n)r[n]=a(t,n);return r};var n=t(\\\"convex-hull\\\");function i(t,e,r){for(var n=new Array(t),i=0;i<t;++i)n[i]=0,i===e&&(n[i]+=.5),i===r&&(n[i]+=.5);return n}function a(t,e){if(0===e||e===(1<<t+1)-1)return[];for(var r=[],a=[],o=0;o<=t;++o)if(e&1<<o){r.push(i(t,o-1,o-1)),a.push(null);for(var s=0;s<=t;++s)~e&1<<s&&(r.push(i(t,o-1,s-1)),a.push([o,s]))}var l=n(r),c=[];t:for(o=0;o<l.length;++o){var u=l[o],f=[];for(s=0;s<u.length;++s){if(!a[u[s]])continue t;f.push(a[u[s]].slice())}c.push(f)}return c}},{\\\"convex-hull\\\":118}],411:[function(t,e,r){var n=t(\\\"./normalize\\\"),i=t(\\\"gl-mat4/create\\\"),a=t(\\\"gl-mat4/clone\\\"),o=t(\\\"gl-mat4/determinant\\\"),s=t(\\\"gl-mat4/invert\\\"),l=t(\\\"gl-mat4/transpose\\\"),c={length:t(\\\"gl-vec3/length\\\"),normalize:t(\\\"gl-vec3/normalize\\\"),dot:t(\\\"gl-vec3/dot\\\"),cross:t(\\\"gl-vec3/cross\\\")},u=i(),f=i(),h=[0,0,0,0],p=[[0,0,0],[0,0,0],[0,0,0]],d=[0,0,0];function g(t,e,r,n,i){t[0]=e[0]*n+r[0]*i,t[1]=e[1]*n+r[1]*i,t[2]=e[2]*n+r[2]*i}e.exports=function(t,e,r,i,v,m){if(e||(e=[0,0,0]),r||(r=[0,0,0]),i||(i=[0,0,0]),v||(v=[0,0,0,1]),m||(m=[0,0,0,1]),!n(u,t))return!1;if(a(f,u),f[3]=0,f[7]=0,f[11]=0,f[15]=1,Math.abs(o(f)<1e-8))return!1;var y,x,b,_,w,k,M,A=u[3],T=u[7],S=u[11],E=u[12],C=u[13],L=u[14],z=u[15];if(0!==A||0!==T||0!==S){if(h[0]=A,h[1]=T,h[2]=S,h[3]=z,!s(f,f))return!1;l(f,f),y=v,b=f,_=(x=h)[0],w=x[1],k=x[2],M=x[3],y[0]=b[0]*_+b[4]*w+b[8]*k+b[12]*M,y[1]=b[1]*_+b[5]*w+b[9]*k+b[13]*M,y[2]=b[2]*_+b[6]*w+b[10]*k+b[14]*M,y[3]=b[3]*_+b[7]*w+b[11]*k+b[15]*M}else v[0]=v[1]=v[2]=0,v[3]=1;if(e[0]=E,e[1]=C,e[2]=L,function(t,e){t[0][0]=e[0],t[0][1]=e[1],t[0][2]=e[2],t[1][0]=e[4],t[1][1]=e[5],t[1][2]=e[6],t[2][0]=e[8],t[2][1]=e[9],t[2][2]=e[10]}(p,u),r[0]=c.length(p[0]),c.normalize(p[0],p[0]),i[0]=c.dot(p[0],p[1]),g(p[1],p[1],p[0],1,-i[0]),r[1]=c.length(p[1]),c.normalize(p[1],p[1]),i[0]/=r[1],i[1]=c.dot(p[0],p[2]),g(p[2],p[2],p[0],1,-i[1]),i[2]=c.dot(p[1],p[2]),g(p[2],p[2],p[1],1,-i[2]),r[2]=c.length(p[2]),c.normalize(p[2],p[2]),i[1]/=r[2],i[2]/=r[2],c.cross(d,p[1],p[2]),c.dot(p[0],d)<0)for(var O=0;O<3;O++)r[O]*=-1,p[O][0]*=-1,p[O][1]*=-1,p[O][2]*=-1;return m[0]=.5*Math.sqrt(Math.max(1+p[0][0]-p[1][1]-p[2][2],0)),m[1]=.5*Math.sqrt(Math.max(1-p[0][0]+p[1][1]-p[2][2],0)),m[2]=.5*Math.sqrt(Math.max(1-p[0][0]-p[1][1]+p[2][2],0)),m[3]=.5*Math.sqrt(Math.max(1+p[0][0]+p[1][1]+p[2][2],0)),p[2][1]>p[1][2]&&(m[0]=-m[0]),p[0][2]>p[2][0]&&(m[1]=-m[1]),p[1][0]>p[0][1]&&(m[2]=-m[2]),!0}},{\\\"./normalize\\\":412,\\\"gl-mat4/clone\\\":248,\\\"gl-mat4/create\\\":249,\\\"gl-mat4/determinant\\\":250,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/transpose\\\":264,\\\"gl-vec3/cross\\\":317,\\\"gl-vec3/dot\\\":322,\\\"gl-vec3/length\\\":332,\\\"gl-vec3/normalize\\\":339}],412:[function(t,e,r){e.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},{}],413:[function(t,e,r){var n=t(\\\"gl-vec3/lerp\\\"),i=t(\\\"mat4-recompose\\\"),a=t(\\\"mat4-decompose\\\"),o=t(\\\"gl-mat4/determinant\\\"),s=t(\\\"quat-slerp\\\"),l=f(),c=f(),u=f();function f(){return{translate:h(),scale:h(1),skew:h(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function h(t){return[t||0,t||0,t||0]}e.exports=function(t,e,r,f){if(0===o(e)||0===o(r))return!1;var h=a(e,l.translate,l.scale,l.skew,l.perspective,l.quaternion),p=a(r,c.translate,c.scale,c.skew,c.perspective,c.quaternion);return!(!h||!p||(n(u.translate,l.translate,c.translate,f),n(u.skew,l.skew,c.skew,f),n(u.scale,l.scale,c.scale,f),n(u.perspective,l.perspective,c.perspective,f),s(u.quaternion,l.quaternion,c.quaternion,f),i(t,u.translate,u.scale,u.skew,u.perspective,u.quaternion),0))}},{\\\"gl-mat4/determinant\\\":250,\\\"gl-vec3/lerp\\\":333,\\\"mat4-decompose\\\":411,\\\"mat4-recompose\\\":414,\\\"quat-slerp\\\":466}],414:[function(t,e,r){var n={identity:t(\\\"gl-mat4/identity\\\"),translate:t(\\\"gl-mat4/translate\\\"),multiply:t(\\\"gl-mat4/multiply\\\"),create:t(\\\"gl-mat4/create\\\"),scale:t(\\\"gl-mat4/scale\\\"),fromRotationTranslation:t(\\\"gl-mat4/fromRotationTranslation\\\")},i=(n.create(),n.create());e.exports=function(t,e,r,a,o,s){return n.identity(t),n.fromRotationTranslation(t,s,e),t[3]=o[0],t[7]=o[1],t[11]=o[2],t[15]=o[3],n.identity(i),0!==a[2]&&(i[9]=a[2],n.multiply(t,t,i)),0!==a[1]&&(i[9]=0,i[8]=a[1],n.multiply(t,t,i)),0!==a[0]&&(i[8]=0,i[4]=a[0],n.multiply(t,t,i)),n.scale(t,t,r),t}},{\\\"gl-mat4/create\\\":249,\\\"gl-mat4/fromRotationTranslation\\\":252,\\\"gl-mat4/identity\\\":253,\\\"gl-mat4/multiply\\\":256,\\\"gl-mat4/scale\\\":262,\\\"gl-mat4/translate\\\":263}],415:[function(t,e,r){\\\"use strict\\\";e.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},{}],416:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"mat4-interpolate\\\"),a=t(\\\"gl-mat4/invert\\\"),o=t(\\\"gl-mat4/rotateX\\\"),s=t(\\\"gl-mat4/rotateY\\\"),l=t(\\\"gl-mat4/rotateZ\\\"),c=t(\\\"gl-mat4/lookAt\\\"),u=t(\\\"gl-mat4/translate\\\"),f=(t(\\\"gl-mat4/scale\\\"),t(\\\"gl-vec3/normalize\\\")),h=[0,0,0];function p(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.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]}e.exports=function(t){return new p((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var d=p.prototype;d.recalcMatrix=function(t){var e=this._time,r=n.le(e,t),o=this.computedMatrix;if(!(r<0)){var s=this._components;if(r===e.length-1)for(var l=16*r,c=0;c<16;++c)o[c]=s[l++];else{var u=e[r+1]-e[r],h=(l=16*r,this.prevMatrix),p=!0;for(c=0;c<16;++c)h[c]=s[l++];var d=this.nextMatrix;for(c=0;c<16;++c)d[c]=s[l++],p=p&&h[c]===d[c];if(u<1e-6||p)for(c=0;c<16;++c)o[c]=h[c];else i(o,h,d,(t-e[r])/u)}var g=this.computedUp;g[0]=o[1],g[1]=o[5],g[2]=o[9],f(g,g);var v=this.computedInverse;a(v,o);var m=this.computedEye,y=v[15];m[0]=v[12]/y,m[1]=v[13]/y,m[2]=v[14]/y;var x=this.computedCenter,b=Math.exp(this.computedRadius[0]);for(c=0;c<3;++c)x[c]=m[c]-o[2+4*c]*b}},d.idle=function(t){if(!(t<this.lastT())){for(var e=this._components,r=e.length-16,n=0;n<16;++n)e.push(e[r++]);this._time.push(t)}},d.flush=function(t){var e=n.gt(this._time,t)-2;e<0||(this._time.splice(0,e),this._components.splice(0,16*e))},d.lastT=function(){return this._time[this._time.length-1]},d.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||h,n=n||this.computedUp,this.setMatrix(t,c(this.computedMatrix,e,r,n));for(var i=0,a=0;a<3;++a)i+=Math.pow(r[a]-e[a],2);i=Math.log(Math.sqrt(i)),this.computedRadius[0]=i},d.rotate=function(t,e,r,n){this.recalcMatrix(t);var i=this.computedInverse;e&&s(i,i,e),r&&o(i,i,r),n&&l(i,i,n),this.setMatrix(t,a(this.computedMatrix,i))};var g=[0,0,0];d.pan=function(t,e,r,n){g[0]=-(e||0),g[1]=-(r||0),g[2]=-(n||0),this.recalcMatrix(t);var i=this.computedInverse;u(i,i,g),this.setMatrix(t,a(i,i))},d.translate=function(t,e,r,n){g[0]=e||0,g[1]=r||0,g[2]=n||0,this.recalcMatrix(t);var i=this.computedMatrix;u(i,i,g),this.setMatrix(t,i)},d.setMatrix=function(t,e){if(!(t<this.lastT())){this._time.push(t);for(var r=0;r<16;++r)this._components.push(e[r])}},d.setDistance=function(t,e){this.computedRadius[0]=e},d.setDistanceLimits=function(t,e){var r=this._limits;r[0]=t,r[1]=e},d.getDistanceLimits=function(t){var e=this._limits;return t?(t[0]=e[0],t[1]=e[1],t):e}},{\\\"binary-search-bounds\\\":79,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/lookAt\\\":255,\\\"gl-mat4/rotateX\\\":259,\\\"gl-mat4/rotateY\\\":260,\\\"gl-mat4/rotateZ\\\":261,\\\"gl-mat4/scale\\\":262,\\\"gl-mat4/translate\\\":263,\\\"gl-vec3/normalize\\\":339,\\\"mat4-interpolate\\\":413}],417:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.length;if(e<3){for(var r=new Array(e),i=0;i<e;++i)r[i]=i;return 2===e&&t[0][0]===t[1][0]&&t[0][1]===t[1][1]?[0]:r}for(var a=new Array(e),i=0;i<e;++i)a[i]=i;a.sort(function(e,r){var n=t[e][0]-t[r][0];return n||t[e][1]-t[r][1]});for(var o=[a[0],a[1]],s=[a[0],a[1]],i=2;i<e;++i){for(var l=a[i],c=t[l],u=o.length;u>1&&n(t[o[u-2]],t[o[u-1]],c)<=0;)u-=1,o.pop();for(o.push(l),u=s.length;u>1&&n(t[s[u-2]],t[s[u-1]],c)>=0;)u-=1,s.pop();s.push(l)}for(var r=new Array(s.length+o.length-2),f=0,i=0,h=o.length;i<h;++i)r[f++]=o[i];for(var p=s.length-2;p>0;--p)r[f++]=s[p];return r};var n=t(\\\"robust-orientation\\\")[3]},{\\\"robust-orientation\\\":486}],418:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return\\\"altKey\\\"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),\\\"shiftKey\\\"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),\\\"ctrlKey\\\"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),\\\"metaKey\\\"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function c(t,s){var c=n.x(s),u=n.y(s);\\\"buttons\\\"in s&&(t=0|s.buttons),(t!==r||c!==i||u!==a||l(s))&&(r=0|t,i=c||0,a=u||0,e&&e(r,i,a,o))}function u(t){c(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?c(0,t):c(r,t)}function d(t){c(r|n.buttons(t),t)}function g(t){c(r&~n.buttons(t),t)}function v(){s||(s=!0,t.addEventListener(\\\"mousemove\\\",p),t.addEventListener(\\\"mousedown\\\",d),t.addEventListener(\\\"mouseup\\\",g),t.addEventListener(\\\"mouseleave\\\",u),t.addEventListener(\\\"mouseenter\\\",u),t.addEventListener(\\\"mouseout\\\",u),t.addEventListener(\\\"mouseover\\\",u),t.addEventListener(\\\"blur\\\",f),t.addEventListener(\\\"keyup\\\",h),t.addEventListener(\\\"keydown\\\",h),t.addEventListener(\\\"keypress\\\",h),t!==window&&(window.addEventListener(\\\"blur\\\",f),window.addEventListener(\\\"keyup\\\",h),window.addEventListener(\\\"keydown\\\",h),window.addEventListener(\\\"keypress\\\",h)))}v();var m={element:t};return Object.defineProperties(m,{enabled:{get:function(){return s},set:function(e){e?v():s&&(s=!1,t.removeEventListener(\\\"mousemove\\\",p),t.removeEventListener(\\\"mousedown\\\",d),t.removeEventListener(\\\"mouseup\\\",g),t.removeEventListener(\\\"mouseleave\\\",u),t.removeEventListener(\\\"mouseenter\\\",u),t.removeEventListener(\\\"mouseout\\\",u),t.removeEventListener(\\\"mouseover\\\",u),t.removeEventListener(\\\"blur\\\",f),t.removeEventListener(\\\"keyup\\\",h),t.removeEventListener(\\\"keydown\\\",h),t.removeEventListener(\\\"keypress\\\",h),t!==window&&(window.removeEventListener(\\\"blur\\\",f),window.removeEventListener(\\\"keyup\\\",h),window.removeEventListener(\\\"keydown\\\",h),window.removeEventListener(\\\"keypress\\\",h)))},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),m};var n=t(\\\"mouse-event\\\")},{\\\"mouse-event\\\":420}],419:[function(t,e,r){var n={left:0,top:0};e.exports=function(t,e,r){e=e||t.currentTarget||t.srcElement,Array.isArray(r)||(r=[0,0]);var i=t.clientX||0,a=t.clientY||0,o=(s=e,s===window||s===document||s===document.body?n:s.getBoundingClientRect());var s;return r[0]=i-o.left,r[1]=a-o.top,r}},{}],420:[function(t,e,r){\\\"use strict\\\";function n(t){return t.target||t.srcElement||window}r.buttons=function(t){if(\\\"object\\\"==typeof t){if(\\\"buttons\\\"in t)return t.buttons;if(\\\"which\\\"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<<e-1}else if(\\\"button\\\"in t){var e;if(1===(e=t.button))return 4;if(2===e)return 2;if(e>=0)return 1<<e}}return 0},r.element=n,r.x=function(t){if(\\\"object\\\"==typeof t){if(\\\"offsetX\\\"in t)return t.offsetX;var e=n(t).getBoundingClientRect();return t.clientX-e.left}return 0},r.y=function(t){if(\\\"object\\\"==typeof t){if(\\\"offsetY\\\"in t)return t.offsetY;var e=n(t).getBoundingClientRect();return t.clientY-e.top}return 0}},{}],421:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"to-px\\\");e.exports=function(t,e,r){\\\"function\\\"==typeof t&&(r=!!e,e=t,t=window);var i=n(\\\"ex\\\",t),a=function(t){r&&t.preventDefault();var n=t.deltaX||0,a=t.deltaY||0,o=t.deltaZ||0,s=t.deltaMode,l=1;switch(s){case 1:l=i;break;case 2:l=window.innerHeight}if(a*=l,o*=l,(n*=l)||a||o)return e(n,a,o,t)};return t.addEventListener(\\\"wheel\\\",a),a}},{\\\"to-px\\\":516}],422:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"typedarray-pool\\\");function i(t){return\\\"a\\\"+t}function a(t){return\\\"d\\\"+t}function o(t,e){return\\\"c\\\"+t+\\\"_\\\"+e}function s(t){return\\\"s\\\"+t}function l(t,e){return\\\"t\\\"+t+\\\"_\\\"+e}function c(t){return\\\"o\\\"+t}function u(t){return\\\"x\\\"+t}function f(t){return\\\"p\\\"+t}function h(t,e){return\\\"d\\\"+t+\\\"_\\\"+e}function p(t){return\\\"i\\\"+t}function d(t,e){return\\\"u\\\"+t+\\\"_\\\"+e}function g(t){return\\\"b\\\"+t}function v(t){return\\\"y\\\"+t}function m(t){return\\\"e\\\"+t}function y(t){return\\\"v\\\"+t}e.exports=function(t){function e(t){throw new Error(\\\"ndarray-extract-contour: \\\"+t)}\\\"object\\\"!=typeof t&&e(\\\"Must specify arguments\\\");var r=t.order;Array.isArray(r)||e(\\\"Must specify order\\\");var T=t.arrayArguments||1;T<1&&e(\\\"Must have at least one array argument\\\");var S=t.scalarArguments||0;S<0&&e(\\\"Scalar arg count must be > 0\\\");\\\"function\\\"!=typeof t.vertex&&e(\\\"Must specify vertex creation function\\\");\\\"function\\\"!=typeof t.cell&&e(\\\"Must specify cell creation function\\\");\\\"function\\\"!=typeof t.phase&&e(\\\"Must specify phase function\\\");for(var E=t.getters||[],C=new Array(T),L=0;L<T;++L)E.indexOf(L)>=0?C[L]=!0:C[L]=!1;return function(t,e,r,T,S,E){var C=E.length,L=S.length;if(L<2)throw new Error(\\\"ndarray-extract-contour: Dimension must be at least 2\\\");for(var z=\\\"extractContour\\\"+S.join(\\\"_\\\"),O=[],I=[],P=[],D=0;D<C;++D)P.push(i(D));for(var D=0;D<T;++D)P.push(u(D));for(var D=0;D<L;++D)I.push(s(D)+\\\"=\\\"+i(0)+\\\".shape[\\\"+D+\\\"]|0\\\");for(var D=0;D<C;++D){I.push(a(D)+\\\"=\\\"+i(D)+\\\".data\\\",c(D)+\\\"=\\\"+i(D)+\\\".offset|0\\\");for(var R=0;R<L;++R)I.push(l(D,R)+\\\"=\\\"+i(D)+\\\".stride[\\\"+R+\\\"]|0\\\")}for(var D=0;D<C;++D){I.push(f(D)+\\\"=\\\"+c(D)),I.push(o(D,0));for(var R=1;R<1<<L;++R){for(var B=[],F=0;F<L;++F)R&1<<F&&B.push(\\\"-\\\"+l(D,F));I.push(h(D,R)+\\\"=(\\\"+B.join(\\\"\\\")+\\\")|0\\\"),I.push(o(D,R)+\\\"=0\\\")}}for(var D=0;D<C;++D)for(var R=0;R<L;++R){var N=[l(D,S[R])];R>0&&N.push(l(D,S[R-1])+\\\"*\\\"+s(S[R-1])),I.push(d(D,S[R])+\\\"=(\\\"+N.join(\\\"-\\\")+\\\")|0\\\")}for(var D=0;D<L;++D)I.push(p(D)+\\\"=0\\\");I.push(_+\\\"=0\\\");for(var j=[\\\"2\\\"],D=L-2;D>=0;--D)j.push(s(S[D]));I.push(w+\\\"=(\\\"+j.join(\\\"*\\\")+\\\")|0\\\",b+\\\"=mallocUint32(\\\"+w+\\\")\\\",x+\\\"=mallocUint32(\\\"+w+\\\")\\\",k+\\\"=0\\\"),I.push(g(0)+\\\"=0\\\");for(var R=1;R<1<<L;++R){for(var V=[],U=[],F=0;F<L;++F)R&1<<F&&(0===U.length?V.push(\\\"1\\\"):V.unshift(U.join(\\\"*\\\"))),U.push(s(S[F]));var q=\\\"\\\";V[0].indexOf(s(S[L-2]))<0&&(q=\\\"-\\\");var H=A(L,R,S);I.push(m(H)+\\\"=(-\\\"+V.join(\\\"-\\\")+\\\")|0\\\",v(H)+\\\"=(\\\"+q+V.join(\\\"-\\\")+\\\")|0\\\",g(H)+\\\"=0\\\")}function G(t,e){O.push(\\\"for(\\\",p(S[t]),\\\"=\\\",e,\\\";\\\",p(S[t]),\\\"<\\\",s(S[t]),\\\";\\\",\\\"++\\\",p(S[t]),\\\"){\\\")}function W(t){for(var e=0;e<C;++e)O.push(f(e),\\\"+=\\\",d(e,S[t]),\\\";\\\");O.push(\\\"}\\\")}function Y(){for(var t=1;t<1<<L;++t)O.push(M,\\\"=\\\",m(t),\\\";\\\",m(t),\\\"=\\\",v(t),\\\";\\\",v(t),\\\"=\\\",M,\\\";\\\")}I.push(y(0)+\\\"=0\\\",M+\\\"=0\\\"),function t(e,r){if(e<0)return void function(t){for(var e=0;e<C;++e)E[e]?O.push(o(e,0),\\\"=\\\",a(e),\\\".get(\\\",f(e),\\\");\\\"):O.push(o(e,0),\\\"=\\\",a(e),\\\"[\\\",f(e),\\\"];\\\");for(var r=[],e=0;e<C;++e)r.push(o(e,0));for(var e=0;e<T;++e)r.push(u(e));O.push(g(0),\\\"=\\\",b,\\\"[\\\",k,\\\"]=phase(\\\",r.join(),\\\");\\\");for(var n=1;n<1<<L;++n)O.push(g(n),\\\"=\\\",b,\\\"[\\\",k,\\\"+\\\",m(n),\\\"];\\\");for(var i=[],n=1;n<1<<L;++n)i.push(\\\"(\\\"+g(0)+\\\"!==\\\"+g(n)+\\\")\\\");O.push(\\\"if(\\\",i.join(\\\"||\\\"),\\\"){\\\");for(var s=[],e=0;e<L;++e)s.push(p(e));for(var e=0;e<C;++e){s.push(o(e,0));for(var n=1;n<1<<L;++n)E[e]?O.push(o(e,n),\\\"=\\\",a(e),\\\".get(\\\",f(e),\\\"+\\\",h(e,n),\\\");\\\"):O.push(o(e,n),\\\"=\\\",a(e),\\\"[\\\",f(e),\\\"+\\\",h(e,n),\\\"];\\\"),s.push(o(e,n))}for(var e=0;e<1<<L;++e)s.push(g(e));for(var e=0;e<T;++e)s.push(u(e));O.push(\\\"vertex(\\\",s.join(),\\\");\\\",y(0),\\\"=\\\",x,\\\"[\\\",k,\\\"]=\\\",_,\\\"++;\\\");for(var l=(1<<L)-1,c=g(l),n=0;n<L;++n)if(0==(t&~(1<<n))){for(var d=l^1<<n,v=g(d),w=[],M=d;M>0;M=M-1&d)w.push(x+\\\"[\\\"+k+\\\"+\\\"+m(M)+\\\"]\\\");w.push(y(0));for(var M=0;M<C;++M)1&n?w.push(o(M,l),o(M,d)):w.push(o(M,d),o(M,l));1&n?w.push(c,v):w.push(v,c);for(var M=0;M<T;++M)w.push(u(M));O.push(\\\"if(\\\",c,\\\"!==\\\",v,\\\"){\\\",\\\"face(\\\",w.join(),\\\")}\\\")}O.push(\\\"}\\\",k,\\\"+=1;\\\")}(r);!function(t){for(var e=t-1;e>=0;--e)G(e,0);for(var r=[],e=0;e<C;++e)E[e]?r.push(a(e)+\\\".get(\\\"+f(e)+\\\")\\\"):r.push(a(e)+\\\"[\\\"+f(e)+\\\"]\\\");for(var e=0;e<T;++e)r.push(u(e));O.push(b,\\\"[\\\",k,\\\"++]=phase(\\\",r.join(),\\\");\\\");for(var e=0;e<t;++e)W(e);for(var n=0;n<C;++n)O.push(f(n),\\\"+=\\\",d(n,S[t]),\\\";\\\")}(e);O.push(\\\"if(\\\",s(S[e]),\\\">0){\\\",p(S[e]),\\\"=1;\\\");t(e-1,r|1<<S[e]);for(var n=0;n<C;++n)O.push(f(n),\\\"+=\\\",d(n,S[e]),\\\";\\\");e===L-1&&(O.push(k,\\\"=0;\\\"),Y());G(e,2);t(e-1,r);e===L-1&&(O.push(\\\"if(\\\",p(S[L-1]),\\\"&1){\\\",k,\\\"=0;}\\\"),Y());W(e);O.push(\\\"}\\\")}(L-1,0),O.push(\\\"freeUint32(\\\",x,\\\");freeUint32(\\\",b,\\\");\\\");var X=[\\\"'use strict';\\\",\\\"function \\\",z,\\\"(\\\",P.join(),\\\"){\\\",\\\"var \\\",I.join(),\\\";\\\",O.join(\\\"\\\"),\\\"}\\\",\\\"return \\\",z].join(\\\"\\\");return new Function(\\\"vertex\\\",\\\"face\\\",\\\"phase\\\",\\\"mallocUint32\\\",\\\"freeUint32\\\",X)(t,e,r,n.mallocUint32,n.freeUint32)}(t.vertex,t.cell,t.phase,S,r,C)};var x=\\\"V\\\",b=\\\"P\\\",_=\\\"N\\\",w=\\\"Q\\\",k=\\\"X\\\",M=\\\"T\\\";function A(t,e,r){for(var n=0,i=0;i<t;++i)e&1<<i&&(n|=1<<r[i]);return n}},{\\\"typedarray-pool\\\":522}],423:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\"],pre:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},body:{body:\\\"{_inline_1_arg1_=_inline_1_arg2_.apply(void 0,_inline_1_arg0_)}\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_1_arg2_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"cwise\\\",blockSize:64});e.exports=function(t,e){return n(t,e),t}},{\\\"cwise/lib/wrapper\\\":137}],424:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){if(Array.isArray(r)){if(r.length!==e.dimension)throw new Error(\\\"ndarray-gradient: invalid boundary conditions\\\")}else r=n(e.dimension,\\\"string\\\"==typeof r?r:\\\"clamp\\\");if(t.dimension!==e.dimension+1)throw new Error(\\\"ndarray-gradient: output dimension must be +1 input dimension\\\");if(t.shape[e.dimension]!==e.dimension)throw new Error(\\\"ndarray-gradient: output shape must match input shape\\\");for(var i=0;i<e.dimension;++i)if(t.shape[i]!==e.shape[i])throw new Error(\\\"ndarray-gradient: shape mismatch\\\");if(0===e.size)return t;if(e.dimension<=0)return t.set(0),t;return function(t){var e=t.join();if(m=o[e])return m;var r=t.length,n=[\\\"function gradient(dst,src){var s=src.shape.slice();\\\"];function i(e){for(var i=r-e.length,a=[],o=[],s=[],l=0;l<r;++l)e.indexOf(l+1)>=0?s.push(\\\"0\\\"):e.indexOf(-(l+1))>=0?s.push(\\\"s[\\\"+l+\\\"]-1\\\"):(s.push(\\\"-1\\\"),a.push(\\\"1\\\"),o.push(\\\"s[\\\"+l+\\\"]-2\\\"));var c=\\\".lo(\\\"+a.join()+\\\").hi(\\\"+o.join()+\\\")\\\";if(0===a.length&&(c=\\\"\\\"),i>0){n.push(\\\"if(1\\\");for(var l=0;l<r;++l)e.indexOf(l+1)>=0||e.indexOf(-(l+1))>=0||n.push(\\\"&&s[\\\",l,\\\"]>2\\\");n.push(\\\"){grad\\\",i,\\\"(src.pick(\\\",s.join(),\\\")\\\",c);for(var l=0;l<r;++l)e.indexOf(l+1)>=0||e.indexOf(-(l+1))>=0||n.push(\\\",dst.pick(\\\",s.join(),\\\",\\\",l,\\\")\\\",c);n.push(\\\");\\\")}for(var l=0;l<e.length;++l){var u=Math.abs(e[l])-1,f=\\\"dst.pick(\\\"+s.join()+\\\",\\\"+u+\\\")\\\"+c;switch(t[u]){case\\\"clamp\\\":var h=s.slice(),p=s.slice();e[l]<0?h[u]=\\\"s[\\\"+u+\\\"]-2\\\":p[u]=\\\"1\\\",0===i?n.push(\\\"if(s[\\\",u,\\\"]>1){dst.set(\\\",s.join(),\\\",\\\",u,\\\",0.5*(src.get(\\\",h.join(),\\\")-src.get(\\\",p.join(),\\\")))}else{dst.set(\\\",s.join(),\\\",\\\",u,\\\",0)};\\\"):n.push(\\\"if(s[\\\",u,\\\"]>1){diff(\\\",f,\\\",src.pick(\\\",h.join(),\\\")\\\",c,\\\",src.pick(\\\",p.join(),\\\")\\\",c,\\\");}else{zero(\\\",f,\\\");};\\\");break;case\\\"mirror\\\":0===i?n.push(\\\"dst.set(\\\",s.join(),\\\",\\\",u,\\\",0);\\\"):n.push(\\\"zero(\\\",f,\\\");\\\");break;case\\\"wrap\\\":var d=s.slice(),g=s.slice();e[l]<0?(d[u]=\\\"s[\\\"+u+\\\"]-2\\\",g[u]=\\\"0\\\"):(d[u]=\\\"s[\\\"+u+\\\"]-1\\\",g[u]=\\\"1\\\"),0===i?n.push(\\\"if(s[\\\",u,\\\"]>2){dst.set(\\\",s.join(),\\\",\\\",u,\\\",0.5*(src.get(\\\",d.join(),\\\")-src.get(\\\",g.join(),\\\")))}else{dst.set(\\\",s.join(),\\\",\\\",u,\\\",0)};\\\"):n.push(\\\"if(s[\\\",u,\\\"]>2){diff(\\\",f,\\\",src.pick(\\\",d.join(),\\\")\\\",c,\\\",src.pick(\\\",g.join(),\\\")\\\",c,\\\");}else{zero(\\\",f,\\\");};\\\");break;default:throw new Error(\\\"ndarray-gradient: Invalid boundary condition\\\")}}i>0&&n.push(\\\"};\\\")}for(var s=0;s<1<<r;++s){for(var f=[],h=0;h<r;++h)s&1<<h&&f.push(h+1);for(var p=0;p<1<<f.length;++p){for(var d=f.slice(),h=0;h<f.length;++h)p&1<<h&&(d[h]=-d[h]);i(d)}}n.push(\\\"return dst;};return gradient\\\");for(var g=[\\\"diff\\\",\\\"zero\\\"],v=[l,c],s=1;s<=r;++s)g.push(\\\"grad\\\"+s),v.push(u(s));g.push(n.join(\\\"\\\"));var m=Function.apply(void 0,g).apply(void 0,v);return a[e]=m,m}(r)(t,e)};var n=t(\\\"dup\\\"),i=t(\\\"cwise-compiler\\\"),a={},o={},s={body:\\\"\\\",args:[],thisVars:[],localVars:[]},l=i({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],pre:s,post:s,body:{args:[{name:\\\"out\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"left\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"right\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"out=0.5*(left-right)\\\",thisVars:[],localVars:[]},funcName:\\\"cdiff\\\"}),c=i({args:[\\\"array\\\"],pre:s,post:s,body:{args:[{name:\\\"out\\\",lvalue:!0,rvalue:!1,count:1}],body:\\\"out=0\\\",thisVars:[],localVars:[]},funcName:\\\"zero\\\"});function u(t){if(t in a)return a[t];for(var e=[],r=0;r<t;++r)e.push(\\\"out\\\",r,\\\"s=0.5*(inp\\\",r,\\\"l-inp\\\",r,\\\"r);\\\");var o=[\\\"array\\\"],l=[\\\"junk\\\"];for(r=0;r<t;++r){o.push(\\\"array\\\"),l.push(\\\"out\\\"+r+\\\"s\\\");var c=n(t);c[r]=-1,o.push({array:0,offset:c.slice()}),c[r]=1,o.push({array:0,offset:c.slice()}),l.push(\\\"inp\\\"+r+\\\"l\\\",\\\"inp\\\"+r+\\\"r\\\")}return a[t]=i({args:o,pre:s,post:s,body:{body:e.join(\\\"\\\"),args:l.map(function(t){return{name:t,lvalue:0===t.indexOf(\\\"out\\\"),rvalue:0===t.indexOf(\\\"inp\\\"),count:\\\"junk\\\"!==t|0}}),thisVars:[],localVars:[]},funcName:\\\"fdTemplate\\\"+t})}},{\\\"cwise-compiler\\\":134,dup:155}],425:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"ndarray-warp\\\"),i=t(\\\"gl-matrix-invert\\\");e.exports=function(t,e,r){var a=e.dimension,o=i([],r);return n(t,e,function(t,e){for(var r=0;r<a;++r){t[r]=o[(a+1)*a+r];for(var n=0;n<a;++n)t[r]+=o[(a+1)*n+r]*e[n]}var i=o[(a+1)*(a+1)-1];for(n=0;n<a;++n)i+=o[(a+1)*n+a]*e[n];var s=1/i;for(r=0;r<a;++r)t[r]*=s;return t}),t}},{\\\"gl-matrix-invert\\\":265,\\\"ndarray-warp\\\":432}],426:[function(t,e,r){\\\"use strict\\\";function n(t,e){var r=Math.floor(e),n=e-r,i=0<=r&&r<t.shape[0],a=0<=r+1&&r+1<t.shape[0];return(1-n)*(i?+t.get(r):0)+n*(a?+t.get(r+1):0)}function i(t,e,r){var n=Math.floor(e),i=e-n,a=0<=n&&n<t.shape[0],o=0<=n+1&&n+1<t.shape[0],s=Math.floor(r),l=r-s,c=0<=s&&s<t.shape[1],u=0<=s+1&&s+1<t.shape[1],f=a&&c?t.get(n,s):0,h=a&&u?t.get(n,s+1):0;return(1-l)*((1-i)*f+i*(o&&c?t.get(n+1,s):0))+l*((1-i)*h+i*(o&&u?t.get(n+1,s+1):0))}function a(t,e,r,n){var i=Math.floor(e),a=e-i,o=0<=i&&i<t.shape[0],s=0<=i+1&&i+1<t.shape[0],l=Math.floor(r),c=r-l,u=0<=l&&l<t.shape[1],f=0<=l+1&&l+1<t.shape[1],h=Math.floor(n),p=n-h,d=0<=h&&h<t.shape[2],g=0<=h+1&&h+1<t.shape[2],v=o&&u&&d?t.get(i,l,h):0,m=o&&f&&d?t.get(i,l+1,h):0,y=s&&u&&d?t.get(i+1,l,h):0,x=s&&f&&d?t.get(i+1,l+1,h):0,b=o&&u&&g?t.get(i,l,h+1):0,_=o&&f&&g?t.get(i,l+1,h+1):0;return(1-p)*((1-c)*((1-a)*v+a*y)+c*((1-a)*m+a*x))+p*((1-c)*((1-a)*b+a*(s&&u&&g?t.get(i+1,l,h+1):0))+c*((1-a)*_+a*(s&&f&&g?t.get(i+1,l+1,h+1):0)))}e.exports=function(t,e,r,o){switch(t.shape.length){case 0:return 0;case 1:return n(t,e);case 2:return i(t,e,r);case 3:return a(t,e,r,o);default:return function(t){var e,r,n=0|t.shape.length,i=new Array(n),a=new Array(n),o=new Array(n),s=new Array(n);for(e=0;e<n;++e)r=+arguments[e+1],i[e]=Math.floor(r),a[e]=r-i[e],o[e]=0<=i[e]&&i[e]<t.shape[e],s[e]=0<=i[e]+1&&i[e]+1<t.shape[e];var l,c,u,f=0;t:for(e=0;e<1<<n;++e){for(c=1,u=t.offset,l=0;l<n;++l)if(e&1<<l){if(!s[l])continue t;c*=a[l],u+=t.stride[l]*(i[l]+1)}else{if(!o[l])continue t;c*=1-a[l],u+=t.stride[l]*i[l]}f+=c*t.data[u]}return f}.apply(void 0,arguments)}},e.exports.d1=n,e.exports.d2=i,e.exports.d3=a},{}],427:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"cwise-compiler\\\"),i={body:\\\"\\\",args:[],thisVars:[],localVars:[]};function a(t){if(!t)return i;for(var e=0;e<t.args.length;++e){var r=t.args[e];t.args[e]=0===e?{name:r,lvalue:!0,rvalue:!!t.rvalue,count:t.count||1}:{name:r,lvalue:!1,rvalue:!0,count:1}}return t.thisVars||(t.thisVars=[]),t.localVars||(t.localVars=[]),t}function o(t){for(var e=[],r=0;r<t.args.length;++r)e.push(\\\"a\\\"+r);return new Function(\\\"P\\\",[\\\"return function \\\",t.funcName,\\\"_ndarrayops(\\\",e.join(\\\",\\\"),\\\") {P(\\\",e.join(\\\",\\\"),\\\");return a0}\\\"].join(\\\"\\\"))(function(t){return n({args:t.args,pre:a(t.pre),body:a(t.body),post:a(t.proc),funcName:t.funcName})}(t))}var s={add:\\\"+\\\",sub:\\\"-\\\",mul:\\\"*\\\",div:\\\"/\\\",mod:\\\"%\\\",band:\\\"&\\\",bor:\\\"|\\\",bxor:\\\"^\\\",lshift:\\\"<<\\\",rshift:\\\">>\\\",rrshift:\\\">>>\\\"};!function(){for(var t in s){var e=s[t];r[t]=o({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=b\\\"+e+\\\"c\\\"},funcName:t}),r[t+\\\"eq\\\"]=o({args:[\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a\\\"+e+\\\"=b\\\"},rvalue:!0,funcName:t+\\\"eq\\\"}),r[t+\\\"s\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"b\\\",\\\"s\\\"],body:\\\"a=b\\\"+e+\\\"s\\\"},funcName:t+\\\"s\\\"}),r[t+\\\"seq\\\"]=o({args:[\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"s\\\"],body:\\\"a\\\"+e+\\\"=s\\\"},rvalue:!0,funcName:t+\\\"seq\\\"})}}();var l={not:\\\"!\\\",bnot:\\\"~\\\",neg:\\\"-\\\",recip:\\\"1.0/\\\"};!function(){for(var t in l){var e=l[t];r[t]=o({args:[\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=\\\"+e+\\\"b\\\"},funcName:t}),r[t+\\\"eq\\\"]=o({args:[\\\"array\\\"],body:{args:[\\\"a\\\"],body:\\\"a=\\\"+e+\\\"a\\\"},rvalue:!0,count:2,funcName:t+\\\"eq\\\"})}}();var c={and:\\\"&&\\\",or:\\\"||\\\",eq:\\\"===\\\",neq:\\\"!==\\\",lt:\\\"<\\\",gt:\\\">\\\",leq:\\\"<=\\\",geq:\\\">=\\\"};!function(){for(var t in c){var e=c[t];r[t]=o({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=b\\\"+e+\\\"c\\\"},funcName:t}),r[t+\\\"s\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"b\\\",\\\"s\\\"],body:\\\"a=b\\\"+e+\\\"s\\\"},funcName:t+\\\"s\\\"}),r[t+\\\"eq\\\"]=o({args:[\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=a\\\"+e+\\\"b\\\"},rvalue:!0,count:2,funcName:t+\\\"eq\\\"}),r[t+\\\"seq\\\"]=o({args:[\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"s\\\"],body:\\\"a=a\\\"+e+\\\"s\\\"},rvalue:!0,count:2,funcName:t+\\\"seq\\\"})}}();var u=[\\\"abs\\\",\\\"acos\\\",\\\"asin\\\",\\\"atan\\\",\\\"ceil\\\",\\\"cos\\\",\\\"exp\\\",\\\"floor\\\",\\\"log\\\",\\\"round\\\",\\\"sin\\\",\\\"sqrt\\\",\\\"tan\\\"];!function(){for(var t=0;t<u.length;++t){var e=u[t];r[e]=o({args:[\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(b)\\\",thisVars:[\\\"this_f\\\"]},funcName:e}),r[e+\\\"eq\\\"]=o({args:[\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\"],body:\\\"a=this_f(a)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"eq\\\"})}}();var f=[\\\"max\\\",\\\"min\\\",\\\"atan2\\\",\\\"pow\\\"];!function(){for(var t=0;t<f.length;++t){var e=f[t];r[e]=o({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=this_f(b,c)\\\",thisVars:[\\\"this_f\\\"]},funcName:e}),r[e+\\\"s\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"scalar\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=this_f(b,c)\\\",thisVars:[\\\"this_f\\\"]},funcName:e+\\\"s\\\"}),r[e+\\\"eq\\\"]=o({args:[\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(a,b)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"eq\\\"}),r[e+\\\"seq\\\"]=o({args:[\\\"array\\\",\\\"scalar\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(a,b)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"seq\\\"})}}();var h=[\\\"atan2\\\",\\\"pow\\\"];!function(){for(var t=0;t<h.length;++t){var e=h[t];r[e+\\\"op\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=this_f(c,b)\\\",thisVars:[\\\"this_f\\\"]},funcName:e+\\\"op\\\"}),r[e+\\\"ops\\\"]=o({args:[\\\"array\\\",\\\"array\\\",\\\"scalar\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],body:\\\"a=this_f(c,b)\\\",thisVars:[\\\"this_f\\\"]},funcName:e+\\\"ops\\\"}),r[e+\\\"opeq\\\"]=o({args:[\\\"array\\\",\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(b,a)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"opeq\\\"}),r[e+\\\"opseq\\\"]=o({args:[\\\"array\\\",\\\"scalar\\\"],pre:{args:[],body:\\\"this_f=Math.\\\"+e,thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=this_f(b,a)\\\",thisVars:[\\\"this_f\\\"]},rvalue:!0,count:2,funcName:e+\\\"opseq\\\"})}}(),r.any=n({args:[\\\"array\\\"],pre:i,body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"if(a){return true}\\\",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:\\\"return false\\\"},funcName:\\\"any\\\"}),r.all=n({args:[\\\"array\\\"],pre:i,body:{args:[{name:\\\"x\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"if(!x){return false}\\\",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:\\\"return true\\\"},funcName:\\\"all\\\"}),r.sum=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"this_s+=a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"sum\\\"}),r.prod=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=1\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"this_s*=a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"prod\\\"}),r.norm2squared=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:2}],body:\\\"this_s+=a*a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"norm2squared\\\"}),r.norm2=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:2}],body:\\\"this_s+=a*a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return Math.sqrt(this_s)\\\"},funcName:\\\"norm2\\\"}),r.norminf=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:4}],body:\\\"if(-a>this_s){this_s=-a}else if(a>this_s){this_s=a}\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"norminf\\\"}),r.norm1=n({args:[\\\"array\\\"],pre:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"this_s=0\\\"},body:{args:[{name:\\\"a\\\",lvalue:!1,rvalue:!0,count:3}],body:\\\"this_s+=a<0?-a:a\\\",localVars:[],thisVars:[\\\"this_s\\\"]},post:{args:[],localVars:[],thisVars:[\\\"this_s\\\"],body:\\\"return this_s\\\"},funcName:\\\"norm1\\\"}),r.sup=n({args:[\\\"array\\\"],pre:{body:\\\"this_h=-Infinity\\\",args:[],thisVars:[\\\"this_h\\\"],localVars:[]},body:{body:\\\"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:2}],thisVars:[\\\"this_h\\\"],localVars:[]},post:{body:\\\"return this_h\\\",args:[],thisVars:[\\\"this_h\\\"],localVars:[]}}),r.inf=n({args:[\\\"array\\\"],pre:{body:\\\"this_h=Infinity\\\",args:[],thisVars:[\\\"this_h\\\"],localVars:[]},body:{body:\\\"if(_inline_1_arg0_<this_h)this_h=_inline_1_arg0_\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:2}],thisVars:[\\\"this_h\\\"],localVars:[]},post:{body:\\\"return this_h\\\",args:[],thisVars:[\\\"this_h\\\"],localVars:[]}}),r.argmin=n({args:[\\\"index\\\",\\\"array\\\",\\\"shape\\\"],pre:{body:\\\"{this_v=Infinity;this_i=_inline_0_arg2_.slice(0)}\\\",args:[{name:\\\"_inline_0_arg0_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_0_arg1_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_0_arg2_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_i\\\",\\\"this_v\\\"],localVars:[]},body:{body:\\\"{if(_inline_1_arg1_<this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:2},{name:\\\"_inline_1_arg1_\\\",lvalue:!1,rvalue:!0,count:2}],thisVars:[\\\"this_i\\\",\\\"this_v\\\"],localVars:[\\\"_inline_1_k\\\"]},post:{body:\\\"{return this_i}\\\",args:[],thisVars:[\\\"this_i\\\"],localVars:[]}}),r.argmax=n({args:[\\\"index\\\",\\\"array\\\",\\\"shape\\\"],pre:{body:\\\"{this_v=-Infinity;this_i=_inline_0_arg2_.slice(0)}\\\",args:[{name:\\\"_inline_0_arg0_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_0_arg1_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_0_arg2_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_i\\\",\\\"this_v\\\"],localVars:[]},body:{body:\\\"{if(_inline_1_arg1_>this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:2},{name:\\\"_inline_1_arg1_\\\",lvalue:!1,rvalue:!0,count:2}],thisVars:[\\\"this_i\\\",\\\"this_v\\\"],localVars:[\\\"_inline_1_k\\\"]},post:{body:\\\"{return this_i}\\\",args:[],thisVars:[\\\"this_i\\\"],localVars:[]}}),r.random=o({args:[\\\"array\\\"],pre:{args:[],body:\\\"this_f=Math.random\\\",thisVars:[\\\"this_f\\\"]},body:{args:[\\\"a\\\"],body:\\\"a=this_f()\\\",thisVars:[\\\"this_f\\\"]},funcName:\\\"random\\\"}),r.assign=o({args:[\\\"array\\\",\\\"array\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=b\\\"},funcName:\\\"assign\\\"}),r.assigns=o({args:[\\\"array\\\",\\\"scalar\\\"],body:{args:[\\\"a\\\",\\\"b\\\"],body:\\\"a=b\\\"},funcName:\\\"assigns\\\"}),r.equals=n({args:[\\\"array\\\",\\\"array\\\"],pre:i,body:{args:[{name:\\\"x\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"y\\\",lvalue:!1,rvalue:!0,count:1}],body:\\\"if(x!==y){return false}\\\",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:\\\"return true\\\"},funcName:\\\"equals\\\"})},{\\\"cwise-compiler\\\":134}],428:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"ndarray\\\"),i=t(\\\"./doConvert.js\\\");e.exports=function(t,e){for(var r=[],a=t,o=1;Array.isArray(a);)r.push(a.length),o*=a.length,a=a[0];return 0===r.length?n():(e||(e=n(new Float64Array(o),r)),i(e,t),e)}},{\\\"./doConvert.js\\\":429,ndarray:433}],429:[function(t,e,r){e.exports=t(\\\"cwise-compiler\\\")({args:[\\\"array\\\",\\\"scalar\\\",\\\"index\\\"],pre:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},body:{body:\\\"{\\\\nvar _inline_1_v=_inline_1_arg1_,_inline_1_i\\\\nfor(_inline_1_i=0;_inline_1_i<_inline_1_arg2_.length-1;++_inline_1_i) {\\\\n_inline_1_v=_inline_1_v[_inline_1_arg2_[_inline_1_i]]\\\\n}\\\\n_inline_1_arg0_=_inline_1_v[_inline_1_arg2_[_inline_1_arg2_.length-1]]\\\\n}\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_1_arg1_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg2_\\\",lvalue:!1,rvalue:!0,count:4}],thisVars:[],localVars:[\\\"_inline_1_i\\\",\\\"_inline_1_v\\\"]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},funcName:\\\"convert\\\",blockSize:64})},{\\\"cwise-compiler\\\":134}],430:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"typedarray-pool\\\"),i=32;function a(t){switch(t){case\\\"uint8\\\":return[n.mallocUint8,n.freeUint8];case\\\"uint16\\\":return[n.mallocUint16,n.freeUint16];case\\\"uint32\\\":return[n.mallocUint32,n.freeUint32];case\\\"int8\\\":return[n.mallocInt8,n.freeInt8];case\\\"int16\\\":return[n.mallocInt16,n.freeInt16];case\\\"int32\\\":return[n.mallocInt32,n.freeInt32];case\\\"float32\\\":return[n.mallocFloat,n.freeFloat];case\\\"float64\\\":return[n.mallocDouble,n.freeDouble];default:return null}}function o(t){for(var e=[],r=0;r<t;++r)e.push(\\\"s\\\"+r);for(r=0;r<t;++r)e.push(\\\"n\\\"+r);for(r=1;r<t;++r)e.push(\\\"d\\\"+r);for(r=1;r<t;++r)e.push(\\\"e\\\"+r);for(r=1;r<t;++r)e.push(\\\"f\\\"+r);return e}e.exports=function(t,e){var r=[\\\"'use strict'\\\"],n=[\\\"ndarraySortWrapper\\\",t.join(\\\"d\\\"),e].join(\\\"\\\");r.push([\\\"function \\\",n,\\\"(\\\",[\\\"array\\\"].join(\\\",\\\"),\\\"){\\\"].join(\\\"\\\"));for(var s=[\\\"data=array.data,offset=array.offset|0,shape=array.shape,stride=array.stride\\\"],l=0;l<t.length;++l)s.push([\\\"s\\\",l,\\\"=stride[\\\",l,\\\"]|0,n\\\",l,\\\"=shape[\\\",l,\\\"]|0\\\"].join(\\\"\\\"));var c=new Array(t.length),u=[];for(l=0;l<t.length;++l)0!==(p=t[l])&&(0===u.length?c[p]=\\\"1\\\":c[p]=u.join(\\\"*\\\"),u.push(\\\"n\\\"+p));var f=-1,h=-1;for(l=0;l<t.length;++l){var p,d=t[l];0!==d&&(f>0?s.push([\\\"d\\\",d,\\\"=s\\\",d,\\\"-d\\\",f,\\\"*n\\\",f].join(\\\"\\\")):s.push([\\\"d\\\",d,\\\"=s\\\",d].join(\\\"\\\")),f=d),0!=(p=t.length-1-l)&&(h>0?s.push([\\\"e\\\",p,\\\"=s\\\",p,\\\"-e\\\",h,\\\"*n\\\",h,\\\",f\\\",p,\\\"=\\\",c[p],\\\"-f\\\",h,\\\"*n\\\",h].join(\\\"\\\")):s.push([\\\"e\\\",p,\\\"=s\\\",p,\\\",f\\\",p,\\\"=\\\",c[p]].join(\\\"\\\")),h=p)}r.push(\\\"var \\\"+s.join(\\\",\\\"));var g=[\\\"0\\\",\\\"n0-1\\\",\\\"data\\\",\\\"offset\\\"].concat(o(t.length));r.push([\\\"if(n0<=\\\",i,\\\"){\\\",\\\"insertionSort(\\\",g.join(\\\",\\\"),\\\")}else{\\\",\\\"quickSort(\\\",g.join(\\\",\\\"),\\\")}\\\"].join(\\\"\\\")),r.push(\\\"}return \\\"+n);var v=new Function(\\\"insertionSort\\\",\\\"quickSort\\\",r.join(\\\"\\\\n\\\")),m=function(t,e){var r=[\\\"'use strict'\\\"],n=[\\\"ndarrayInsertionSort\\\",t.join(\\\"d\\\"),e].join(\\\"\\\"),i=[\\\"left\\\",\\\"right\\\",\\\"data\\\",\\\"offset\\\"].concat(o(t.length)),s=a(e),l=[\\\"i,j,cptr,ptr=left*s0+offset\\\"];if(t.length>1){for(var c=[],u=1;u<t.length;++u)l.push(\\\"i\\\"+u),c.push(\\\"n\\\"+u);s?l.push(\\\"scratch=malloc(\\\"+c.join(\\\"*\\\")+\\\")\\\"):l.push(\\\"scratch=new Array(\\\"+c.join(\\\"*\\\")+\\\")\\\"),l.push(\\\"dptr\\\",\\\"sptr\\\",\\\"a\\\",\\\"b\\\")}else l.push(\\\"scratch\\\");function f(t){return\\\"generic\\\"===e?[\\\"data.get(\\\",t,\\\")\\\"].join(\\\"\\\"):[\\\"data[\\\",t,\\\"]\\\"].join(\\\"\\\")}function h(t,r){return\\\"generic\\\"===e?[\\\"data.set(\\\",t,\\\",\\\",r,\\\")\\\"].join(\\\"\\\"):[\\\"data[\\\",t,\\\"]=\\\",r].join(\\\"\\\")}if(r.push([\\\"function \\\",n,\\\"(\\\",i.join(\\\",\\\"),\\\"){var \\\",l.join(\\\",\\\")].join(\\\"\\\"),\\\"for(i=left+1;i<=right;++i){\\\",\\\"j=i;ptr+=s0\\\",\\\"cptr=ptr\\\"),t.length>1){for(r.push(\\\"dptr=0;sptr=ptr\\\"),u=t.length-1;u>=0;--u)0!==(p=t[u])&&r.push([\\\"for(i\\\",p,\\\"=0;i\\\",p,\\\"<n\\\",p,\\\";++i\\\",p,\\\"){\\\"].join(\\\"\\\"));for(r.push(\\\"scratch[dptr++]=\\\",f(\\\"sptr\\\")),u=0;u<t.length;++u)0!==(p=t[u])&&r.push(\\\"sptr+=d\\\"+p,\\\"}\\\");for(r.push(\\\"__g:while(j--\\\\x3eleft){\\\",\\\"dptr=0\\\",\\\"sptr=cptr-s0\\\"),u=1;u<t.length;++u)1===u&&r.push(\\\"__l:\\\"),r.push([\\\"for(i\\\",u,\\\"=0;i\\\",u,\\\"<n\\\",u,\\\";++i\\\",u,\\\"){\\\"].join(\\\"\\\"));for(r.push([\\\"a=\\\",f(\\\"sptr\\\"),\\\"\\\\nb=scratch[dptr]\\\\nif(a<b){break __g}\\\\nif(a>b){break __l}\\\"].join(\\\"\\\")),u=t.length-1;u>=1;--u)r.push(\\\"sptr+=e\\\"+u,\\\"dptr+=f\\\"+u,\\\"}\\\");for(r.push(\\\"dptr=cptr;sptr=cptr-s0\\\"),u=t.length-1;u>=0;--u)0!==(p=t[u])&&r.push([\\\"for(i\\\",p,\\\"=0;i\\\",p,\\\"<n\\\",p,\\\";++i\\\",p,\\\"){\\\"].join(\\\"\\\"));for(r.push(h(\\\"dptr\\\",f(\\\"sptr\\\"))),u=0;u<t.length;++u)0!==(p=t[u])&&r.push([\\\"dptr+=d\\\",p,\\\";sptr+=d\\\",p].join(\\\"\\\"),\\\"}\\\");for(r.push(\\\"cptr-=s0\\\\n}\\\"),r.push(\\\"dptr=cptr;sptr=0\\\"),u=t.length-1;u>=0;--u)0!==(p=t[u])&&r.push([\\\"for(i\\\",p,\\\"=0;i\\\",p,\\\"<n\\\",p,\\\";++i\\\",p,\\\"){\\\"].join(\\\"\\\"));for(r.push(h(\\\"dptr\\\",\\\"scratch[sptr++]\\\")),u=0;u<t.length;++u){var p;0!==(p=t[u])&&r.push(\\\"dptr+=d\\\"+p,\\\"}\\\")}}else r.push(\\\"scratch=\\\"+f(\\\"ptr\\\"),\\\"while((j--\\\\x3eleft)&&(\\\"+f(\\\"cptr-s0\\\")+\\\">scratch)){\\\",h(\\\"cptr\\\",f(\\\"cptr-s0\\\")),\\\"cptr-=s0\\\",\\\"}\\\",h(\\\"cptr\\\",\\\"scratch\\\"));return r.push(\\\"}\\\"),t.length>1&&s&&r.push(\\\"free(scratch)\\\"),r.push(\\\"} return \\\"+n),s?new Function(\\\"malloc\\\",\\\"free\\\",r.join(\\\"\\\\n\\\"))(s[0],s[1]):new Function(r.join(\\\"\\\\n\\\"))()}(t,e),y=function(t,e,r){var n=[\\\"'use strict'\\\"],s=[\\\"ndarrayQuickSort\\\",t.join(\\\"d\\\"),e].join(\\\"\\\"),l=[\\\"left\\\",\\\"right\\\",\\\"data\\\",\\\"offset\\\"].concat(o(t.length)),c=a(e),u=0;n.push([\\\"function \\\",s,\\\"(\\\",l.join(\\\",\\\"),\\\"){\\\"].join(\\\"\\\"));var f=[\\\"sixth=((right-left+1)/6)|0\\\",\\\"index1=left+sixth\\\",\\\"index5=right-sixth\\\",\\\"index3=(left+right)>>1\\\",\\\"index2=index3-sixth\\\",\\\"index4=index3+sixth\\\",\\\"el1=index1\\\",\\\"el2=index2\\\",\\\"el3=index3\\\",\\\"el4=index4\\\",\\\"el5=index5\\\",\\\"less=left+1\\\",\\\"great=right-1\\\",\\\"pivots_are_equal=true\\\",\\\"tmp\\\",\\\"tmp0\\\",\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"k\\\",\\\"ptr0\\\",\\\"ptr1\\\",\\\"ptr2\\\",\\\"comp_pivot1=0\\\",\\\"comp_pivot2=0\\\",\\\"comp=0\\\"];if(t.length>1){for(var h=[],p=1;p<t.length;++p)h.push(\\\"n\\\"+p),f.push(\\\"i\\\"+p);for(p=0;p<8;++p)f.push(\\\"b_ptr\\\"+p);f.push(\\\"ptr3\\\",\\\"ptr4\\\",\\\"ptr5\\\",\\\"ptr6\\\",\\\"ptr7\\\",\\\"pivot_ptr\\\",\\\"ptr_shift\\\",\\\"elementSize=\\\"+h.join(\\\"*\\\")),c?f.push(\\\"pivot1=malloc(elementSize)\\\",\\\"pivot2=malloc(elementSize)\\\"):f.push(\\\"pivot1=new Array(elementSize),pivot2=new Array(elementSize)\\\")}else f.push(\\\"pivot1\\\",\\\"pivot2\\\");function d(t){return[\\\"(offset+\\\",t,\\\"*s0)\\\"].join(\\\"\\\")}function g(t){return\\\"generic\\\"===e?[\\\"data.get(\\\",t,\\\")\\\"].join(\\\"\\\"):[\\\"data[\\\",t,\\\"]\\\"].join(\\\"\\\")}function v(t,r){return\\\"generic\\\"===e?[\\\"data.set(\\\",t,\\\",\\\",r,\\\")\\\"].join(\\\"\\\"):[\\\"data[\\\",t,\\\"]=\\\",r].join(\\\"\\\")}function m(e,r,i){if(1===e.length)n.push(\\\"ptr0=\\\"+d(e[0]));else for(var a=0;a<e.length;++a)n.push([\\\"b_ptr\\\",a,\\\"=s0*\\\",e[a]].join(\\\"\\\"));for(r&&n.push(\\\"pivot_ptr=0\\\"),n.push(\\\"ptr_shift=offset\\\"),a=t.length-1;a>=0;--a)0!==(o=t[a])&&n.push([\\\"for(i\\\",o,\\\"=0;i\\\",o,\\\"<n\\\",o,\\\";++i\\\",o,\\\"){\\\"].join(\\\"\\\"));if(e.length>1)for(a=0;a<e.length;++a)n.push([\\\"ptr\\\",a,\\\"=b_ptr\\\",a,\\\"+ptr_shift\\\"].join(\\\"\\\"));for(n.push(i),r&&n.push(\\\"++pivot_ptr\\\"),a=0;a<t.length;++a){var o;0!==(o=t[a])&&(e.length>1?n.push(\\\"ptr_shift+=d\\\"+o):n.push(\\\"ptr0+=d\\\"+o),n.push(\\\"}\\\"))}}function y(e,r,i,a){if(1===r.length)n.push(\\\"ptr0=\\\"+d(r[0]));else{for(var o=0;o<r.length;++o)n.push([\\\"b_ptr\\\",o,\\\"=s0*\\\",r[o]].join(\\\"\\\"));n.push(\\\"ptr_shift=offset\\\")}for(i&&n.push(\\\"pivot_ptr=0\\\"),e&&n.push(e+\\\":\\\"),o=1;o<t.length;++o)n.push([\\\"for(i\\\",o,\\\"=0;i\\\",o,\\\"<n\\\",o,\\\";++i\\\",o,\\\"){\\\"].join(\\\"\\\"));if(r.length>1)for(o=0;o<r.length;++o)n.push([\\\"ptr\\\",o,\\\"=b_ptr\\\",o,\\\"+ptr_shift\\\"].join(\\\"\\\"));for(n.push(a),o=t.length-1;o>=1;--o)i&&n.push(\\\"pivot_ptr+=f\\\"+o),r.length>1?n.push(\\\"ptr_shift+=e\\\"+o):n.push(\\\"ptr0+=e\\\"+o),n.push(\\\"}\\\")}function x(){t.length>1&&c&&n.push(\\\"free(pivot1)\\\",\\\"free(pivot2)\\\")}function b(e,r){var i=\\\"el\\\"+e,a=\\\"el\\\"+r;if(t.length>1){var o=\\\"__l\\\"+ ++u;y(o,[i,a],!1,[\\\"comp=\\\",g(\\\"ptr0\\\"),\\\"-\\\",g(\\\"ptr1\\\"),\\\"\\\\n\\\",\\\"if(comp>0){tmp0=\\\",i,\\\";\\\",i,\\\"=\\\",a,\\\";\\\",a,\\\"=tmp0;break \\\",o,\\\"}\\\\n\\\",\\\"if(comp<0){break \\\",o,\\\"}\\\"].join(\\\"\\\"))}else n.push([\\\"if(\\\",g(d(i)),\\\">\\\",g(d(a)),\\\"){tmp0=\\\",i,\\\";\\\",i,\\\"=\\\",a,\\\";\\\",a,\\\"=tmp0}\\\"].join(\\\"\\\"))}function _(e,r){t.length>1?m([e,r],!1,v(\\\"ptr0\\\",g(\\\"ptr1\\\"))):n.push(v(d(e),g(d(r))))}function w(e,r,i){if(t.length>1){var a=\\\"__l\\\"+ ++u;y(a,[r],!0,[e,\\\"=\\\",g(\\\"ptr0\\\"),\\\"-pivot\\\",i,\\\"[pivot_ptr]\\\\n\\\",\\\"if(\\\",e,\\\"!==0){break \\\",a,\\\"}\\\"].join(\\\"\\\"))}else n.push([e,\\\"=\\\",g(d(r)),\\\"-pivot\\\",i].join(\\\"\\\"))}function k(e,r){t.length>1?m([e,r],!1,[\\\"tmp=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",\\\"tmp\\\")].join(\\\"\\\")):n.push([\\\"ptr0=\\\",d(e),\\\"\\\\n\\\",\\\"ptr1=\\\",d(r),\\\"\\\\n\\\",\\\"tmp=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",\\\"tmp\\\")].join(\\\"\\\"))}function M(e,r,i){t.length>1?(m([e,r,i],!1,[\\\"tmp=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",g(\\\"ptr2\\\")),\\\"\\\\n\\\",v(\\\"ptr2\\\",\\\"tmp\\\")].join(\\\"\\\")),n.push(\\\"++\\\"+r,\\\"--\\\"+i)):n.push([\\\"ptr0=\\\",d(e),\\\"\\\\n\\\",\\\"ptr1=\\\",d(r),\\\"\\\\n\\\",\\\"ptr2=\\\",d(i),\\\"\\\\n\\\",\\\"++\\\",r,\\\"\\\\n\\\",\\\"--\\\",i,\\\"\\\\n\\\",\\\"tmp=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",g(\\\"ptr2\\\")),\\\"\\\\n\\\",v(\\\"ptr2\\\",\\\"tmp\\\")].join(\\\"\\\"))}function A(t,e){k(t,e),n.push(\\\"--\\\"+e)}function T(e,r,i){t.length>1?m([e,r],!0,[v(\\\"ptr0\\\",g(\\\"ptr1\\\")),\\\"\\\\n\\\",v(\\\"ptr1\\\",[\\\"pivot\\\",i,\\\"[pivot_ptr]\\\"].join(\\\"\\\"))].join(\\\"\\\")):n.push(v(d(e),g(d(r))),v(d(r),\\\"pivot\\\"+i))}function S(e,r){n.push([\\\"if((\\\",r,\\\"-\\\",e,\\\")<=\\\",i,\\\"){\\\\n\\\",\\\"insertionSort(\\\",e,\\\",\\\",r,\\\",data,offset,\\\",o(t.length).join(\\\",\\\"),\\\")\\\\n\\\",\\\"}else{\\\\n\\\",s,\\\"(\\\",e,\\\",\\\",r,\\\",data,offset,\\\",o(t.length).join(\\\",\\\"),\\\")\\\\n\\\",\\\"}\\\"].join(\\\"\\\"))}function E(e,r,i){t.length>1?(n.push([\\\"__l\\\",++u,\\\":while(true){\\\"].join(\\\"\\\")),m([e],!0,[\\\"if(\\\",g(\\\"ptr0\\\"),\\\"!==pivot\\\",r,\\\"[pivot_ptr]){break __l\\\",u,\\\"}\\\"].join(\\\"\\\")),n.push(i,\\\"}\\\")):n.push([\\\"while(\\\",g(d(e)),\\\"===pivot\\\",r,\\\"){\\\",i,\\\"}\\\"].join(\\\"\\\"))}return n.push(\\\"var \\\"+f.join(\\\",\\\")),b(1,2),b(4,5),b(1,3),b(2,3),b(1,4),b(3,4),b(2,5),b(2,3),b(4,5),t.length>1?m([\\\"el1\\\",\\\"el2\\\",\\\"el3\\\",\\\"el4\\\",\\\"el5\\\",\\\"index1\\\",\\\"index3\\\",\\\"index5\\\"],!0,[\\\"pivot1[pivot_ptr]=\\\",g(\\\"ptr1\\\"),\\\"\\\\n\\\",\\\"pivot2[pivot_ptr]=\\\",g(\\\"ptr3\\\"),\\\"\\\\n\\\",\\\"pivots_are_equal=pivots_are_equal&&(pivot1[pivot_ptr]===pivot2[pivot_ptr])\\\\n\\\",\\\"x=\\\",g(\\\"ptr0\\\"),\\\"\\\\n\\\",\\\"y=\\\",g(\\\"ptr2\\\"),\\\"\\\\n\\\",\\\"z=\\\",g(\\\"ptr4\\\"),\\\"\\\\n\\\",v(\\\"ptr5\\\",\\\"x\\\"),\\\"\\\\n\\\",v(\\\"ptr6\\\",\\\"y\\\"),\\\"\\\\n\\\",v(\\\"ptr7\\\",\\\"z\\\")].join(\\\"\\\")):n.push([\\\"pivot1=\\\",g(d(\\\"el2\\\")),\\\"\\\\n\\\",\\\"pivot2=\\\",g(d(\\\"el4\\\")),\\\"\\\\n\\\",\\\"pivots_are_equal=pivot1===pivot2\\\\n\\\",\\\"x=\\\",g(d(\\\"el1\\\")),\\\"\\\\n\\\",\\\"y=\\\",g(d(\\\"el3\\\")),\\\"\\\\n\\\",\\\"z=\\\",g(d(\\\"el5\\\")),\\\"\\\\n\\\",v(d(\\\"index1\\\"),\\\"x\\\"),\\\"\\\\n\\\",v(d(\\\"index3\\\"),\\\"y\\\"),\\\"\\\\n\\\",v(d(\\\"index5\\\"),\\\"z\\\")].join(\\\"\\\")),_(\\\"index2\\\",\\\"left\\\"),_(\\\"index4\\\",\\\"right\\\"),n.push(\\\"if(pivots_are_equal){\\\"),n.push(\\\"for(k=less;k<=great;++k){\\\"),w(\\\"comp\\\",\\\"k\\\",1),n.push(\\\"if(comp===0){continue}\\\"),n.push(\\\"if(comp<0){\\\"),n.push(\\\"if(k!==less){\\\"),k(\\\"k\\\",\\\"less\\\"),n.push(\\\"}\\\"),n.push(\\\"++less\\\"),n.push(\\\"}else{\\\"),n.push(\\\"while(true){\\\"),w(\\\"comp\\\",\\\"great\\\",1),n.push(\\\"if(comp>0){\\\"),n.push(\\\"great--\\\"),n.push(\\\"}else if(comp<0){\\\"),M(\\\"k\\\",\\\"less\\\",\\\"great\\\"),n.push(\\\"break\\\"),n.push(\\\"}else{\\\"),A(\\\"k\\\",\\\"great\\\"),n.push(\\\"break\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}else{\\\"),n.push(\\\"for(k=less;k<=great;++k){\\\"),w(\\\"comp_pivot1\\\",\\\"k\\\",1),n.push(\\\"if(comp_pivot1<0){\\\"),n.push(\\\"if(k!==less){\\\"),k(\\\"k\\\",\\\"less\\\"),n.push(\\\"}\\\"),n.push(\\\"++less\\\"),n.push(\\\"}else{\\\"),w(\\\"comp_pivot2\\\",\\\"k\\\",2),n.push(\\\"if(comp_pivot2>0){\\\"),n.push(\\\"while(true){\\\"),w(\\\"comp\\\",\\\"great\\\",2),n.push(\\\"if(comp>0){\\\"),n.push(\\\"if(--great<k){break}\\\"),n.push(\\\"continue\\\"),n.push(\\\"}else{\\\"),w(\\\"comp\\\",\\\"great\\\",1),n.push(\\\"if(comp<0){\\\"),M(\\\"k\\\",\\\"less\\\",\\\"great\\\"),n.push(\\\"}else{\\\"),A(\\\"k\\\",\\\"great\\\"),n.push(\\\"}\\\"),n.push(\\\"break\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),T(\\\"left\\\",\\\"(less-1)\\\",1),T(\\\"right\\\",\\\"(great+1)\\\",2),S(\\\"left\\\",\\\"(less-2)\\\"),S(\\\"(great+2)\\\",\\\"right\\\"),n.push(\\\"if(pivots_are_equal){\\\"),x(),n.push(\\\"return\\\"),n.push(\\\"}\\\"),n.push(\\\"if(less<index1&&great>index5){\\\"),E(\\\"less\\\",1,\\\"++less\\\"),E(\\\"great\\\",2,\\\"--great\\\"),n.push(\\\"for(k=less;k<=great;++k){\\\"),w(\\\"comp_pivot1\\\",\\\"k\\\",1),n.push(\\\"if(comp_pivot1===0){\\\"),n.push(\\\"if(k!==less){\\\"),k(\\\"k\\\",\\\"less\\\"),n.push(\\\"}\\\"),n.push(\\\"++less\\\"),n.push(\\\"}else{\\\"),w(\\\"comp_pivot2\\\",\\\"k\\\",2),n.push(\\\"if(comp_pivot2===0){\\\"),n.push(\\\"while(true){\\\"),w(\\\"comp\\\",\\\"great\\\",2),n.push(\\\"if(comp===0){\\\"),n.push(\\\"if(--great<k){break}\\\"),n.push(\\\"continue\\\"),n.push(\\\"}else{\\\"),w(\\\"comp\\\",\\\"great\\\",1),n.push(\\\"if(comp<0){\\\"),M(\\\"k\\\",\\\"less\\\",\\\"great\\\"),n.push(\\\"}else{\\\"),A(\\\"k\\\",\\\"great\\\"),n.push(\\\"}\\\"),n.push(\\\"break\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),n.push(\\\"}\\\"),x(),S(\\\"less\\\",\\\"great\\\"),n.push(\\\"}return \\\"+s),t.length>1&&c?new Function(\\\"insertionSort\\\",\\\"malloc\\\",\\\"free\\\",n.join(\\\"\\\\n\\\"))(r,c[0],c[1]):new Function(\\\"insertionSort\\\",n.join(\\\"\\\\n\\\"))(r)}(t,e,m);return v(m,y)}},{\\\"typedarray-pool\\\":522}],431:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/compile_sort.js\\\"),i={};e.exports=function(t){var e=t.order,r=t.dtype,a=[e,r].join(\\\":\\\"),o=i[a];return o||(i[a]=o=n(e,r)),o(t),t}},{\\\"./lib/compile_sort.js\\\":430}],432:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"ndarray-linear-interpolate\\\"),i=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\",\\\"scalar\\\",\\\"scalar\\\"],pre:{body:\\\"{this_warped=new Array(_inline_3_arg4_)}\\\",args:[{name:\\\"_inline_3_arg0_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_3_arg1_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_3_arg2_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_3_arg3_\\\",lvalue:!1,rvalue:!1,count:0},{name:\\\"_inline_3_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_warped\\\"],localVars:[]},body:{body:\\\"{_inline_4_arg2_(this_warped,_inline_4_arg0_),_inline_4_arg1_=_inline_4_arg3_.apply(void 0,this_warped)}\\\",args:[{name:\\\"_inline_4_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_4_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_4_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_4_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_4_arg4_\\\",lvalue:!1,rvalue:!1,count:0}],thisVars:[\\\"this_warped\\\"],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"warpND\\\",blockSize:64}),a=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\",\\\"scalar\\\",\\\"scalar\\\"],pre:{body:\\\"{this_warped=[0]}\\\",args:[],thisVars:[\\\"this_warped\\\"],localVars:[]},body:{body:\\\"{_inline_7_arg2_(this_warped,_inline_7_arg0_),_inline_7_arg1_=_inline_7_arg3_(_inline_7_arg4_,this_warped[0])}\\\",args:[{name:\\\"_inline_7_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_7_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_7_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_7_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_7_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_warped\\\"],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"warp1D\\\",blockSize:64}),o=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\",\\\"scalar\\\",\\\"scalar\\\"],pre:{body:\\\"{this_warped=[0,0]}\\\",args:[],thisVars:[\\\"this_warped\\\"],localVars:[]},body:{body:\\\"{_inline_10_arg2_(this_warped,_inline_10_arg0_),_inline_10_arg1_=_inline_10_arg3_(_inline_10_arg4_,this_warped[0],this_warped[1])}\\\",args:[{name:\\\"_inline_10_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_10_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_10_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_10_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_10_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_warped\\\"],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"warp2D\\\",blockSize:64}),s=t(\\\"cwise/lib/wrapper\\\")({args:[\\\"index\\\",\\\"array\\\",\\\"scalar\\\",\\\"scalar\\\",\\\"scalar\\\"],pre:{body:\\\"{this_warped=[0,0,0]}\\\",args:[],thisVars:[\\\"this_warped\\\"],localVars:[]},body:{body:\\\"{_inline_13_arg2_(this_warped,_inline_13_arg0_),_inline_13_arg1_=_inline_13_arg3_(_inline_13_arg4_,this_warped[0],this_warped[1],this_warped[2])}\\\",args:[{name:\\\"_inline_13_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_13_arg1_\\\",lvalue:!0,rvalue:!1,count:1},{name:\\\"_inline_13_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_13_arg3_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_13_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[\\\"this_warped\\\"],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},debug:!1,funcName:\\\"warp3D\\\",blockSize:64});e.exports=function(t,e,r){switch(e.shape.length){case 1:a(t,r,n.d1,e);break;case 2:o(t,r,n.d2,e);break;case 3:s(t,r,n.d3,e);break;default:i(t,r,n.bind(void 0,e),e.shape.length)}return t}},{\\\"cwise/lib/wrapper\\\":137,\\\"ndarray-linear-interpolate\\\":426}],433:[function(t,e,r){var n=t(\\\"iota-array\\\"),i=t(\\\"is-buffer\\\"),a=\\\"undefined\\\"!=typeof Float64Array;function o(t,e){return t[0]-e[0]}function s(){var t,e=this.stride,r=new Array(e.length);for(t=0;t<r.length;++t)r[t]=[Math.abs(e[t]),t];r.sort(o);var n=new Array(r.length);for(t=0;t<n.length;++t)n[t]=r[t][1];return n}function l(t,e){var r=[\\\"View\\\",e,\\\"d\\\",t].join(\\\"\\\");e<0&&(r=\\\"View_Nil\\\"+t);var i=\\\"generic\\\"===t;if(-1===e){var a=\\\"function \\\"+r+\\\"(a){this.data=a;};var proto=\\\"+r+\\\".prototype;proto.dtype='\\\"+t+\\\"';proto.index=function(){return -1};proto.size=0;proto.dimension=-1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function(){return new \\\"+r+\\\"(this.data);};proto.get=proto.set=function(){};proto.pick=function(){return null};return function construct_\\\"+r+\\\"(a){return new \\\"+r+\\\"(a);}\\\";return new Function(a)()}if(0===e){a=\\\"function \\\"+r+\\\"(a,d) {this.data = a;this.offset = d};var proto=\\\"+r+\\\".prototype;proto.dtype='\\\"+t+\\\"';proto.index=function(){return this.offset};proto.dimension=0;proto.size=1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function \\\"+r+\\\"_copy() {return new \\\"+r+\\\"(this.data,this.offset)};proto.pick=function \\\"+r+\\\"_pick(){return TrivialArray(this.data);};proto.valueOf=proto.get=function \\\"+r+\\\"_get(){return \\\"+(i?\\\"this.data.get(this.offset)\\\":\\\"this.data[this.offset]\\\")+\\\"};proto.set=function \\\"+r+\\\"_set(v){return \\\"+(i?\\\"this.data.set(this.offset,v)\\\":\\\"this.data[this.offset]=v\\\")+\\\"};return function construct_\\\"+r+\\\"(a,b,c,d){return new \\\"+r+\\\"(a,d)}\\\";return new Function(\\\"TrivialArray\\\",a)(c[t][0])}a=[\\\"'use strict'\\\"];var o=n(e),l=o.map(function(t){return\\\"i\\\"+t}),u=\\\"this.offset+\\\"+o.map(function(t){return\\\"this.stride[\\\"+t+\\\"]*i\\\"+t}).join(\\\"+\\\"),f=o.map(function(t){return\\\"b\\\"+t}).join(\\\",\\\"),h=o.map(function(t){return\\\"c\\\"+t}).join(\\\",\\\");a.push(\\\"function \\\"+r+\\\"(a,\\\"+f+\\\",\\\"+h+\\\",d){this.data=a\\\",\\\"this.shape=[\\\"+f+\\\"]\\\",\\\"this.stride=[\\\"+h+\\\"]\\\",\\\"this.offset=d|0}\\\",\\\"var proto=\\\"+r+\\\".prototype\\\",\\\"proto.dtype='\\\"+t+\\\"'\\\",\\\"proto.dimension=\\\"+e),a.push(\\\"Object.defineProperty(proto,'size',{get:function \\\"+r+\\\"_size(){return \\\"+o.map(function(t){return\\\"this.shape[\\\"+t+\\\"]\\\"}).join(\\\"*\\\"),\\\"}})\\\"),1===e?a.push(\\\"proto.order=[0]\\\"):(a.push(\\\"Object.defineProperty(proto,'order',{get:\\\"),e<4?(a.push(\\\"function \\\"+r+\\\"_order(){\\\"),2===e?a.push(\\\"return (Math.abs(this.stride[0])>Math.abs(this.stride[1]))?[1,0]:[0,1]}})\\\"):3===e&&a.push(\\\"var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})\\\")):a.push(\\\"ORDER})\\\")),a.push(\\\"proto.set=function \\\"+r+\\\"_set(\\\"+l.join(\\\",\\\")+\\\",v){\\\"),i?a.push(\\\"return this.data.set(\\\"+u+\\\",v)}\\\"):a.push(\\\"return this.data[\\\"+u+\\\"]=v}\\\"),a.push(\\\"proto.get=function \\\"+r+\\\"_get(\\\"+l.join(\\\",\\\")+\\\"){\\\"),i?a.push(\\\"return this.data.get(\\\"+u+\\\")}\\\"):a.push(\\\"return this.data[\\\"+u+\\\"]}\\\"),a.push(\\\"proto.index=function \\\"+r+\\\"_index(\\\",l.join(),\\\"){return \\\"+u+\\\"}\\\"),a.push(\\\"proto.hi=function \\\"+r+\\\"_hi(\\\"+l.join(\\\",\\\")+\\\"){return new \\\"+r+\\\"(this.data,\\\"+o.map(function(t){return[\\\"(typeof i\\\",t,\\\"!=='number'||i\\\",t,\\\"<0)?this.shape[\\\",t,\\\"]:i\\\",t,\\\"|0\\\"].join(\\\"\\\")}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"this.stride[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",this.offset)}\\\");var p=o.map(function(t){return\\\"a\\\"+t+\\\"=this.shape[\\\"+t+\\\"]\\\"}),d=o.map(function(t){return\\\"c\\\"+t+\\\"=this.stride[\\\"+t+\\\"]\\\"});a.push(\\\"proto.lo=function \\\"+r+\\\"_lo(\\\"+l.join(\\\",\\\")+\\\"){var b=this.offset,d=0,\\\"+p.join(\\\",\\\")+\\\",\\\"+d.join(\\\",\\\"));for(var g=0;g<e;++g)a.push(\\\"if(typeof i\\\"+g+\\\"==='number'&&i\\\"+g+\\\">=0){d=i\\\"+g+\\\"|0;b+=c\\\"+g+\\\"*d;a\\\"+g+\\\"-=d}\\\");a.push(\\\"return new \\\"+r+\\\"(this.data,\\\"+o.map(function(t){return\\\"a\\\"+t}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"c\\\"+t}).join(\\\",\\\")+\\\",b)}\\\"),a.push(\\\"proto.step=function \\\"+r+\\\"_step(\\\"+l.join(\\\",\\\")+\\\"){var \\\"+o.map(function(t){return\\\"a\\\"+t+\\\"=this.shape[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"b\\\"+t+\\\"=this.stride[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",c=this.offset,d=0,ceil=Math.ceil\\\");for(g=0;g<e;++g)a.push(\\\"if(typeof i\\\"+g+\\\"==='number'){d=i\\\"+g+\\\"|0;if(d<0){c+=b\\\"+g+\\\"*(a\\\"+g+\\\"-1);a\\\"+g+\\\"=ceil(-a\\\"+g+\\\"/d)}else{a\\\"+g+\\\"=ceil(a\\\"+g+\\\"/d)}b\\\"+g+\\\"*=d}\\\");a.push(\\\"return new \\\"+r+\\\"(this.data,\\\"+o.map(function(t){return\\\"a\\\"+t}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"b\\\"+t}).join(\\\",\\\")+\\\",c)}\\\");var v=new Array(e),m=new Array(e);for(g=0;g<e;++g)v[g]=\\\"a[i\\\"+g+\\\"]\\\",m[g]=\\\"b[i\\\"+g+\\\"]\\\";a.push(\\\"proto.transpose=function \\\"+r+\\\"_transpose(\\\"+l+\\\"){\\\"+l.map(function(t,e){return t+\\\"=(\\\"+t+\\\"===undefined?\\\"+e+\\\":\\\"+t+\\\"|0)\\\"}).join(\\\";\\\"),\\\"var a=this.shape,b=this.stride;return new \\\"+r+\\\"(this.data,\\\"+v.join(\\\",\\\")+\\\",\\\"+m.join(\\\",\\\")+\\\",this.offset)}\\\"),a.push(\\\"proto.pick=function \\\"+r+\\\"_pick(\\\"+l+\\\"){var a=[],b=[],c=this.offset\\\");for(g=0;g<e;++g)a.push(\\\"if(typeof i\\\"+g+\\\"==='number'&&i\\\"+g+\\\">=0){c=(c+this.stride[\\\"+g+\\\"]*i\\\"+g+\\\")|0}else{a.push(this.shape[\\\"+g+\\\"]);b.push(this.stride[\\\"+g+\\\"])}\\\");return a.push(\\\"var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}\\\"),a.push(\\\"return function construct_\\\"+r+\\\"(data,shape,stride,offset){return new \\\"+r+\\\"(data,\\\"+o.map(function(t){return\\\"shape[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",\\\"+o.map(function(t){return\\\"stride[\\\"+t+\\\"]\\\"}).join(\\\",\\\")+\\\",offset)}\\\"),new Function(\\\"CTOR_LIST\\\",\\\"ORDER\\\",a.join(\\\"\\\\n\\\"))(c[t],s)}var c={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],buffer:[],generic:[]};e.exports=function(t,e,r,n){if(void 0===t)return(0,c.array[0])([]);\\\"number\\\"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var s=o-1,u=1;s>=0;--s)r[s]=u,u*=e[s]}if(void 0===n)for(n=0,s=0;s<o;++s)r[s]<0&&(n-=(e[s]-1)*r[s]);for(var f=function(t){if(i(t))return\\\"buffer\\\";if(a)switch(Object.prototype.toString.call(t)){case\\\"[object Float64Array]\\\":return\\\"float64\\\";case\\\"[object Float32Array]\\\":return\\\"float32\\\";case\\\"[object Int8Array]\\\":return\\\"int8\\\";case\\\"[object Int16Array]\\\":return\\\"int16\\\";case\\\"[object Int32Array]\\\":return\\\"int32\\\";case\\\"[object Uint8Array]\\\":return\\\"uint8\\\";case\\\"[object Uint16Array]\\\":return\\\"uint16\\\";case\\\"[object Uint32Array]\\\":return\\\"uint32\\\";case\\\"[object Uint8ClampedArray]\\\":return\\\"uint8_clamped\\\"}return Array.isArray(t)?\\\"array\\\":\\\"generic\\\"}(t),h=c[f];h.length<=o+1;)h.push(l(f,h.length-1));return(0,h[o+1])(t,e,r,n)}},{\\\"iota-array\\\":399,\\\"is-buffer\\\":401}],434:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"double-bits\\\"),i=Math.pow(2,-1074),a=-1>>>0;e.exports=function(t,e){if(isNaN(t)||isNaN(e))return NaN;if(t===e)return t;if(0===t)return e<0?-i:i;var r=n.hi(t),o=n.lo(t);e>t==t>0?o===a?(r+=1,o=0):o+=1:0===o?(o=a,r-=1):o-=1;return n.pack(o,r)}},{\\\"double-bits\\\":152}],435:[function(t,e,r){var n=Math.PI,i=c(120);function a(t,e,r,n){return[\\\"C\\\",t,e,r,n,r,n]}function o(t,e,r,n,i,a){return[\\\"C\\\",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function s(t,e,r,a,o,c,u,f,h,p){if(p)k=p[0],M=p[1],_=p[2],w=p[3];else{var d=l(t,e,-o);t=d.x,e=d.y;var g=(t-(f=(d=l(f,h,-o)).x))/2,v=(e-(h=d.y))/2,m=g*g/(r*r)+v*v/(a*a);m>1&&(r*=m=Math.sqrt(m),a*=m);var y=r*r,x=a*a,b=(c==u?-1:1)*Math.sqrt(Math.abs((y*x-y*v*v-x*g*g)/(y*v*v+x*g*g)));b==1/0&&(b=1);var _=b*r*v/a+(t+f)/2,w=b*-a*g/r+(e+h)/2,k=Math.asin(((e-w)/a).toFixed(9)),M=Math.asin(((h-w)/a).toFixed(9));(k=t<_?n-k:k)<0&&(k=2*n+k),(M=f<_?n-M:M)<0&&(M=2*n+M),u&&k>M&&(k-=2*n),!u&&M>k&&(M-=2*n)}if(Math.abs(M-k)>i){var A=M,T=f,S=h;M=k+i*(u&&M>k?1:-1);var E=s(f=_+r*Math.cos(M),h=w+a*Math.sin(M),r,a,o,0,u,T,S,[M,A,_,w])}var C=Math.tan((M-k)/4),L=4/3*r*C,z=4/3*a*C,O=[2*t-(t+L*Math.sin(k)),2*e-(e-z*Math.cos(k)),f+L*Math.sin(M),h-z*Math.cos(M),f,h];if(p)return O;E&&(O=O.concat(E));for(var I=0;I<O.length;){var P=l(O[I],O[I+1],o);O[I++]=P.x,O[I++]=P.y}return O}function l(t,e,r){return{x:t*Math.cos(r)-e*Math.sin(r),y:t*Math.sin(r)+e*Math.cos(r)}}function c(t){return t*(n/180)}e.exports=function(t){for(var e,r=[],n=0,i=0,l=0,u=0,f=null,h=null,p=0,d=0,g=0,v=t.length;g<v;g++){var m=t[g],y=m[0];switch(y){case\\\"M\\\":l=m[1],u=m[2];break;case\\\"A\\\":(m=s(p,d,m[1],m[2],c(m[3]),m[4],m[5],m[6],m[7])).unshift(\\\"C\\\"),m.length>7&&(r.push(m.splice(0,7)),m.unshift(\\\"C\\\"));break;case\\\"S\\\":var x=p,b=d;\\\"C\\\"!=e&&\\\"S\\\"!=e||(x+=x-n,b+=b-i),m=[\\\"C\\\",x,b,m[1],m[2],m[3],m[4]];break;case\\\"T\\\":\\\"Q\\\"==e||\\\"T\\\"==e?(f=2*p-f,h=2*d-h):(f=p,h=d),m=o(p,d,f,h,m[1],m[2]);break;case\\\"Q\\\":f=m[1],h=m[2],m=o(p,d,m[1],m[2],m[3],m[4]);break;case\\\"L\\\":m=a(p,d,m[1],m[2]);break;case\\\"H\\\":m=a(p,d,m[1],d);break;case\\\"V\\\":m=a(p,d,p,m[1]);break;case\\\"Z\\\":m=a(p,d,l,u)}e=y,p=m[m.length-2],d=m[m.length-1],m.length>4?(n=m[m.length-4],i=m[m.length-3]):(n=p,i=d),r.push(m)}return r}},{}],436:[function(t,e,r){r.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;o<n;++o)i[o]=[0,0,0];for(o=0;o<t.length;++o)for(var s=t[o],l=0,c=s[s.length-1],u=s[0],f=0;f<s.length;++f){l=c,c=u,u=s[(f+1)%s.length];for(var h=e[l],p=e[c],d=e[u],g=new Array(3),v=0,m=new Array(3),y=0,x=0;x<3;++x)g[x]=h[x]-p[x],v+=g[x]*g[x],m[x]=d[x]-p[x],y+=m[x]*m[x];if(v*y>a){var b=i[c],_=1/Math.sqrt(v*y);for(x=0;x<3;++x){var w=(x+1)%3,k=(x+2)%3;b[x]+=_*(m[w]*g[k]-m[k]*g[w])}}}for(o=0;o<n;++o){b=i[o];var M=0;for(x=0;x<3;++x)M+=b[x]*b[x];if(M>a)for(_=1/Math.sqrt(M),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},r.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;o<n;++o){for(var s=t[o],l=new Array(3),c=0;c<3;++c)l[c]=e[s[c]];var u=new Array(3),f=new Array(3);for(c=0;c<3;++c)u[c]=l[1][c]-l[0][c],f[c]=l[2][c]-l[0][c];var h=new Array(3),p=0;for(c=0;c<3;++c){var d=(c+1)%3,g=(c+2)%3;h[c]=u[d]*f[g]-u[g]*f[d],p+=h[c]*h[c]}p=p>a?1/Math.sqrt(p):0;for(c=0;c<3;++c)h[c]*=p;i[o]=h}return i}},{}],437:[function(t,e,r){\\\"use strict\\\";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var t=new String(\\\"abc\\\");if(t[5]=\\\"de\\\",\\\"5\\\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e[\\\"_\\\"+String.fromCharCode(r)]=r;if(\\\"0123456789\\\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\\\"\\\"))return!1;var n={};return\\\"abcdefghijklmnopqrst\\\".split(\\\"\\\").forEach(function(t){n[t]=t}),\\\"abcdefghijklmnopqrst\\\"===Object.keys(Object.assign({},n)).join(\\\"\\\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,o,s=function(t){if(null==t)throw new TypeError(\\\"Object.assign cannot be called with null or undefined\\\");return Object(t)}(t),l=1;l<arguments.length;l++){for(var c in r=Object(arguments[l]))i.call(r,c)&&(s[c]=r[c]);if(n){o=n(r);for(var u=0;u<o.length;u++)a.call(r,o[u])&&(s[o[u]]=r[o[u]])}}return s}},{}],438:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i,a,o,s,l,c){var u=e+a+c;if(f>0){var f=Math.sqrt(u+1);t[0]=.5*(o-l)/f,t[1]=.5*(s-n)/f,t[2]=.5*(r-a)/f,t[3]=.5*f}else{var h=Math.max(e,a,c),f=Math.sqrt(2*h-u+1);e>=h?(t[0]=.5*f,t[1]=.5*(i+r)/f,t[2]=.5*(s+n)/f,t[3]=.5*(o-l)/f):a>=h?(t[0]=.5*(r+i)/f,t[1]=.5*f,t[2]=.5*(l+o)/f,t[3]=.5*(s-n)/f):(t[0]=.5*(n+s)/f,t[1]=.5*(o+l)/f,t[2]=.5*f,t[3]=.5*(r-i)/f)}return t}},{}],439:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),u(r=[].slice.call(r,0,4),r);var i=new f(r,e,Math.log(n));i.setDistanceLimits(t.zoomMin,t.zoomMax),(\\\"eye\\\"in t||\\\"up\\\"in t)&&i.lookAt(0,t.eye,t.center,t.up);return i};var n=t(\\\"filtered-vector\\\"),i=t(\\\"gl-mat4/lookAt\\\"),a=t(\\\"gl-mat4/fromQuat\\\"),o=t(\\\"gl-mat4/invert\\\"),s=t(\\\"./lib/quatFromFrame\\\");function l(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function c(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function u(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=c(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function f(t,e,r){this.radius=n([r]),this.center=n(e),this.rotation=n(t),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 h=f.prototype;h.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},h.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;u(e,e);var r=this.computedMatrix;a(r,e);var n=this.computedCenter,i=this.computedEye,o=this.computedUp,s=Math.exp(this.computedRadius[0]);i[0]=n[0]+s*r[2],i[1]=n[1]+s*r[6],i[2]=n[2]+s*r[10],o[0]=r[1],o[1]=r[5],o[2]=r[9];for(var l=0;l<3;++l){for(var c=0,f=0;f<3;++f)c+=r[l+4*f]*i[f];r[12+l]=-c}},h.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},h.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},h.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},h.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],c=l(a,o,s);a/=c,o/=c,s/=c;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=l(u-=a*p,f-=o*p,h-=s*p);u/=d,f/=d,h/=d;var g=i[2],v=i[6],m=i[10],y=g*a+v*o+m*s,x=g*u+v*f+m*h,b=l(g-=y*a+x*u,v-=y*o+x*f,m-=y*s+x*h);g/=b,v/=b,m/=b;var _=u*e+a*r,w=f*e+o*r,k=h*e+s*r;this.center.move(t,_,w,k);var M=Math.exp(this.computedRadius[0]);M=Math.max(1e-4,M+n),this.radius.set(t,Math.log(M))},h.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],u=i[1],f=i[5],h=i[9],p=i[2],d=i[6],g=i[10],v=e*a+r*u,m=e*o+r*f,y=e*s+r*h,x=-(d*y-g*m),b=-(g*v-p*y),_=-(p*m-d*v),w=Math.sqrt(Math.max(0,1-Math.pow(x,2)-Math.pow(b,2)-Math.pow(_,2))),k=c(x,b,_,w);k>1e-6?(x/=k,b/=k,_/=k,w/=k):(x=b=_=0,w=1);var M=this.computedRotation,A=M[0],T=M[1],S=M[2],E=M[3],C=A*w+E*x+T*_-S*b,L=T*w+E*b+S*x-A*_,z=S*w+E*_+A*b-T*x,O=E*w-A*x-T*b-S*_;if(n){x=p,b=d,_=g;var I=Math.sin(n)/l(x,b,_);x*=I,b*=I,_*=I,O=O*(w=Math.cos(e))-(C=C*w+O*x+L*_-z*b)*x-(L=L*w+O*b+z*x-C*_)*b-(z=z*w+O*_+C*b-L*x)*_}var P=c(C,L,z,O);P>1e-6?(C/=P,L/=P,z/=P,O/=P):(C=L=z=0,O=1),this.rotation.set(t,C,L,z,O)},h.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var a=this.computedMatrix;i(a,e,r,n);var o=this.computedRotation;s(o,a[0],a[1],a[2],a[4],a[5],a[6],a[8],a[9],a[10]),u(o,o),this.rotation.set(t,o[0],o[1],o[2],o[3]);for(var l=0,c=0;c<3;++c)l+=Math.pow(r[c]-e[c],2);this.radius.set(t,.5*Math.log(Math.max(l,1e-6))),this.center.set(t,r[0],r[1],r[2])},h.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},h.setMatrix=function(t,e){var r=this.computedRotation;s(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),u(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;o(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,l=n[13]/i,c=n[14]/i;this.recalcMatrix(t);var f=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*f,l-n[6]*f,c-n[10]*f),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},h.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},h.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},h.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},h.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]}},h.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)}},{\\\"./lib/quatFromFrame\\\":438,\\\"filtered-vector\\\":215,\\\"gl-mat4/fromQuat\\\":251,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/lookAt\\\":255}],440:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"repeat-string\\\");e.exports=function(t,e,r){return n(r=\\\"undefined\\\"!=typeof r?r+\\\"\\\":\\\" \\\",e)+t}},{\\\"repeat-string\\\":479}],441:[function(t,e,r){\\\"use strict\\\";function n(t,e){if(\\\"string\\\"!=typeof t)return[t];var r=[t];\\\"string\\\"==typeof e||Array.isArray(e)?e={brackets:e}:e||(e={});var n=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:[\\\"{}\\\",\\\"[]\\\",\\\"()\\\"],i=e.escape||\\\"___\\\",a=!!e.flat;n.forEach(function(t){var e=new RegExp([\\\"\\\\\\\\\\\",t[0],\\\"[^\\\\\\\\\\\",t[0],\\\"\\\\\\\\\\\",t[1],\\\"]*\\\\\\\\\\\",t[1]].join(\\\"\\\")),n=[];function a(e,a,o){var s=r.push(e.slice(t[0].length,-t[1].length))-1;return n.push(s),i+s}r.forEach(function(t,n){for(var i,o=0;t!=i;)if(i=t,t=t.replace(e,a),o++>1e4)throw Error(\\\"References have circular dependency. Please, check them.\\\");r[n]=t}),n=n.reverse(),r=r.map(function(e){return n.forEach(function(r){e=e.replace(new RegExp(\\\"(\\\\\\\\\\\"+i+r+\\\"(?![0-9]))\\\",\\\"g\\\"),t[0]+\\\"$1\\\"+t[1])}),e})});var o=new RegExp(\\\"\\\\\\\\\\\"+i+\\\"([0-9]+)\\\");return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error(\\\"Circular references in parenthesis\\\");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function i(t,e){if(e&&e.flat){var r,n=e&&e.escape||\\\"___\\\",i=t[0];if(!i)return\\\"\\\";for(var a=new RegExp(\\\"\\\\\\\\\\\"+n+\\\"([0-9]+)\\\"),o=0;i!=r;){if(o++>1e4)throw Error(\\\"Circular references in \\\"+t);r=i,i=i.replace(a,s)}return i}return t.reduce(function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,\\\"\\\")),e+r},\\\"\\\");function s(e,r){if(null==t[r])throw Error(\\\"Reference \\\"+r+\\\"is undefined\\\");return t[r]}}function a(t,e){return Array.isArray(t)?i(t,e):n(t,e)}a.parse=n,a.stringify=i,e.exports=a},{}],442:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"pick-by-alias\\\");e.exports=function(t){var e;arguments.length>1&&(t=arguments);\\\"string\\\"==typeof t?t=t.split(/\\\\s/).map(parseFloat):\\\"number\\\"==typeof t&&(t=[t]);t.length&&\\\"number\\\"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(t=n(t,{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\\\"}),e={x:t.left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height);return e}},{\\\"pick-by-alias\\\":448}],443:[function(t,e,r){e.exports=function(t){var e=[];return t.replace(i,function(t,r,i){var o=r.toLowerCase();for(i=function(t){var e=t.match(a);return e?e.map(Number):[]}(i),\\\"m\\\"==o&&i.length>2&&(e.push([r].concat(i.splice(0,2))),o=\\\"l\\\",r=\\\"m\\\"==r?\\\"l\\\":\\\"L\\\");;){if(i.length==n[o])return i.unshift(r),e.push(i);if(i.length<n[o])throw new Error(\\\"malformed path data\\\");e.push([r].concat(i.splice(0,n[o])))}}),e};var n={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},i=/([astvzqmhlc])([^astvzqmhlc]*)/gi;var a=/-?[0-9]*\\\\.?[0-9]+(?:e[-+]?\\\\d+)?/gi},{}],444:[function(t,e,r){e.exports=function(t,e){e||(e=[0,\\\"\\\"]),t=String(t);var r=parseFloat(t,10);return e[0]=r,e[1]=t.match(/[\\\\d.\\\\-\\\\+]*\\\\s*(.*)/)[1]||\\\"\\\",e}},{}],445:[function(t,e,r){(function(t){(function(){var r,n,i,a,o,s;\\\"undefined\\\"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:\\\"undefined\\\"!=typeof t&&null!==t&&t.hrtime?(e.exports=function(){return(r()-o)/1e6},n=t.hrtime,a=(r=function(){var t;return 1e9*(t=n())[0]+t[1]})(),s=1e9*t.uptime(),o=a-s):Date.now?(e.exports=function(){return Date.now()-i},i=Date.now()):(e.exports=function(){return(new Date).getTime()-i},i=(new Date).getTime())}).call(this)}).call(this,t(\\\"_process\\\"))},{_process:465}],446:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.length;if(e<n){for(var r=1,a=0;a<e;++a)for(var o=0;o<a;++o)if(t[a]<t[o])r=-r;else if(t[a]===t[o])return 0;return r}for(var s=i.mallocUint8(e),a=0;a<e;++a)s[a]=0;for(var r=1,a=0;a<e;++a)if(!s[a]){var l=1;s[a]=1;for(var o=t[a];o!==a;o=t[o]){if(s[o])return i.freeUint8(s),0;l+=1,s[o]=1}1&l||(r=-r)}return i.freeUint8(s),r};var n=32,i=t(\\\"typedarray-pool\\\")},{\\\"typedarray-pool\\\":522}],447:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"typedarray-pool\\\"),i=t(\\\"invert-permutation\\\");r.rank=function(t){var e=t.length;switch(e){case 0:case 1:return 0;case 2:return t[1]}var r,a,o,s=n.mallocUint32(e),l=n.mallocUint32(e),c=0;for(i(t,l),o=0;o<e;++o)s[o]=t[o];for(o=e-1;o>0;--o)a=l[o],r=s[o],s[o]=s[a],s[a]=r,l[o]=l[r],l[r]=a,c=(c+r)*o;return n.freeUint32(l),n.freeUint32(s),c},r.unrank=function(t,e,r){switch(t){case 0:return r||[];case 1:return r?(r[0]=0,r):[0];case 2:return r?(e?(r[0]=0,r[1]=1):(r[0]=1,r[1]=0),r):e?[0,1]:[1,0]}var n,i,a,o=1;for((r=r||new Array(t))[0]=0,a=1;a<t;++a)r[a]=a,o=o*a|0;for(a=t-1;a>0;--a)e=e-(n=e/o|0)*o|0,o=o/a|0,i=0|r[a],r[a]=0|r[n],r[n]=0|i;return r}},{\\\"invert-permutation\\\":398,\\\"typedarray-pool\\\":522}],448:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n,a,o={};if(\\\"string\\\"==typeof e&&(e=i(e)),Array.isArray(e)){var s={};for(a=0;a<e.length;a++)s[e[a]]=!0;e=s}for(n in e)e[n]=i(e[n]);var l={};for(n in e){var c=e[n];if(Array.isArray(c))for(a=0;a<c.length;a++){var u=c[a];if(r&&(l[u]=!0),u in t){if(o[n]=t[u],r)for(var f=a;f<c.length;f++)l[c[f]]=!0;break}}else n in t&&(e[n]&&(o[n]=t[n]),r&&(l[n]=!0))}if(r)for(n in t)l[n]||(o[n]=t[n]);return o};var n={};function i(t){return n[t]?n[t]:(\\\"string\\\"==typeof t&&(t=n[t]=t.split(/\\\\s*,\\\\s*|\\\\s+/)),t)}},{}],449:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r=0|e.length,i=t.length,a=[new Array(r),new Array(r)],o=0;o<r;++o)a[0][o]=[],a[1][o]=[];for(var o=0;o<i;++o){var s=t[o];a[0][s[0]].push(s),a[1][s[1]].push(s)}for(var l=[],o=0;o<r;++o)a[0][o].length+a[1][o].length===0&&l.push([o]);function c(t,e){var r=a[e][t[e]];r.splice(r.indexOf(t),1)}function u(t,r,i){for(var o,s,l,u=0;u<2;++u)if(a[u][r].length>0){o=a[u][r][0],l=u;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p<h.length;++p){var d=h[p],g=d[1^f],v=n(e[t],e[r],e[s],e[g]);v>0&&(o=d,s=g,l=f)}return i?s:(o&&c(o,l),s)}function f(t,r){var i=a[r][t][0],o=[t];c(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=u(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=u(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=u(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(var o=0;o<r;++o)for(var p=0;p<2;++p){for(var d=[];a[p][o].length>0;){a[0][o].length;var g=f(o,p);h(d,g)?d.push.apply(d,g):(d.length>0&&l.push(d),d=g)}d.length>0&&l.push(d)}return l};var n=t(\\\"compare-angle\\\")},{\\\"compare-angle\\\":115}],450:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s<e.length;++s){var l=r[s].length;a[s]=l,i[s]=!0,l<=1&&o.push(s)}for(;o.length>0;){var c=o.pop();i[c]=!1;for(var u=r[c],s=0;s<u.length;++s){var f=u[s];0==--a[f]&&o.push(f)}}for(var h=new Array(e.length),p=[],s=0;s<e.length;++s)if(i[s]){var c=p.length;h[s]=c,p.push(e[s])}else h[s]=-1;for(var d=[],s=0;s<t.length;++s){var g=t[s];i[g[0]]&&i[g[1]]&&d.push([h[g[0]],h[g[1]]])}return[d,p]};var n=t(\\\"edges-to-adjacency-list\\\")},{\\\"edges-to-adjacency-list\\\":157}],451:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=c(t,e);t=r[0];for(var f=(e=r[1]).length,h=(t.length,n(t,e.length)),p=0;p<f;++p)if(h[p].length%2==1)throw new Error(\\\"planar-graph-to-polyline: graph must be manifold\\\");var d=i(t,e);for(var g=(d=d.filter(function(t){for(var r=t.length,n=[0],i=0;i<r;++i){var a=e[t[i]],l=e[t[(i+1)%r]],c=o(-a[0],a[1]),u=o(-a[0],l[1]),f=o(l[0],a[1]),h=o(l[0],l[1]);n=s(n,s(s(c,u),s(f,h)))}return n[n.length-1]>0})).length,v=new Array(g),m=new Array(g),p=0;p<g;++p){v[p]=p;var y=new Array(g),x=d[p].map(function(t){return e[t]}),b=a([x]),_=0;t:for(var w=0;w<g;++w)if(y[w]=0,p!==w){for(var k=d[w],M=k.length,A=0;A<M;++A){var T=b(e[k[A]]);if(0!==T){T<0&&(y[w]=1,_+=1);continue t}}y[w]=1,_+=1}m[p]=[_,p,y]}m.sort(function(t,e){return e[0]-t[0]});for(var p=0;p<g;++p)for(var y=m[p],S=y[1],E=y[2],w=0;w<g;++w)E[w]&&(v[w]=S);for(var C=function(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=[];return e}(g),p=0;p<g;++p)C[p].push(v[p]),C[v[p]].push(p);for(var L={},z=u(f,!1),p=0;p<g;++p)for(var k=d[p],M=k.length,w=0;w<M;++w){var O=k[w],I=k[(w+1)%M],P=Math.min(O,I)+\\\":\\\"+Math.max(O,I);if(P in L){var D=L[P];C[D].push(p),C[p].push(D),z[O]=z[I]=!0}else L[P]=p}function R(t){for(var e=t.length,r=0;r<e;++r)if(!z[t[r]])return!1;return!0}for(var B=[],F=u(g,-1),p=0;p<g;++p)v[p]!==p||R(d[p])?F[p]=-1:(B.push(p),F[p]=0);var r=[];for(;B.length>0;){var N=B.pop(),j=C[N];l(j,function(t,e){return t-e});var V,U=j.length,q=F[N];if(0===q){var k=d[N];V=[k]}for(var p=0;p<U;++p){var H=j[p];if(!(F[H]>=0)&&(F[H]=1^q,B.push(H),0===q)){var k=d[H];R(k)||(k.reverse(),V.push(k))}}0===q&&r.push(V)}return r};var n=t(\\\"edges-to-adjacency-list\\\"),i=t(\\\"planar-dual\\\"),a=t(\\\"point-in-big-polygon\\\"),o=t(\\\"two-product\\\"),s=t(\\\"robust-sum\\\"),l=t(\\\"uniq\\\"),c=t(\\\"./lib/trim-leaves\\\");function u(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=e;return r}},{\\\"./lib/trim-leaves\\\":450,\\\"edges-to-adjacency-list\\\":157,\\\"planar-dual\\\":449,\\\"point-in-big-polygon\\\":455,\\\"robust-sum\\\":491,\\\"two-product\\\":520,uniq:524}],452:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"./quad\\\")},{\\\"./quad\\\":454}],453:[function(t,e,r){arguments[4][99][0].apply(r,arguments)},{dup:99}],454:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"clamp\\\"),a=t(\\\"parse-rect\\\"),o=t(\\\"array-bounds\\\"),s=t(\\\"pick-by-alias\\\"),l=t(\\\"defined\\\"),c=t(\\\"flatten-vertex-data\\\"),u=t(\\\"is-obj\\\"),f=t(\\\"dtype\\\"),h=t(\\\"math-log2\\\");function p(t,e){for(var r=e[0],n=e[1],a=1/(e[2]-r),o=1/(e[3]-n),s=new Array(t.length),l=0,c=t.length/2;l<c;l++)s[2*l]=i((t[2*l]-r)*a,0,1),s[2*l+1]=i((t[2*l+1]-n)*o,0,1);return s}e.exports=function(t,e){e||(e={}),t=c(t,\\\"float64\\\"),e=s(e,{bounds:\\\"range bounds dataBox databox\\\",maxDepth:\\\"depth maxDepth maxdepth level maxLevel maxlevel levels\\\",dtype:\\\"type dtype format out dst output destination\\\"});var r=l(e.maxDepth,255),i=l(e.bounds,o(t,2));i[0]===i[2]&&i[2]++,i[1]===i[3]&&i[3]++;var d,g=p(t,i),v=t.length>>>1;e.dtype||(e.dtype=\\\"array\\\"),\\\"string\\\"==typeof e.dtype?d=new(f(e.dtype))(v):e.dtype&&(d=e.dtype,Array.isArray(d)&&(d.length=v));for(var m=0;m<v;++m)d[m]=m;var y=[],x=[],b=[],_=[];!function t(e,n,i,a,o,s){if(!a.length)return null;var l=y[o]||(y[o]=[]);var c=b[o]||(b[o]=[]);var u=x[o]||(x[o]=[]);var f=l.length;o++;if(o>r){for(var h=0;h<a.length;h++)l.push(a[h]),c.push(s),u.push(null,null,null,null);return f}l.push(a[0]);c.push(s);if(a.length<=1)return u.push(null,null,null,null),f;var p=.5*i;var d=e+p,v=n+p;var m=[],_=[],w=[],k=[];for(var M=1,A=a.length;M<A;M++){var T=a[M],S=g[2*T],E=g[2*T+1];S<d?E<v?m.push(T):_.push(T):E<v?w.push(T):k.push(T)}s<<=2;u.push(t(e,n,p,m,o,s),t(e,v,p,_,o,s+1),t(d,n,p,w,o,s+2),t(d,v,p,k,o,s+3));return f}(0,0,1,d,0,1);for(var w=0,k=0;k<y.length;k++){var M=y[k];if(d.set)d.set(M,w);else for(var A=0,T=M.length;A<T;A++)d[A+w]=M[A];var S=w+y[k].length;_[k]=[w,S],w=S}return d.range=function(){var e,r=[],o=arguments.length;for(;o--;)r[o]=arguments[o];if(u(r[r.length-1])){var c=r.pop();r.length||null==c.x&&null==c.l&&null==c.left||(r=[c],e={}),e=s(c,{level:\\\"level maxLevel\\\",d:\\\"d diam diameter r radius px pxSize pixel pixelSize maxD size minSize\\\",lod:\\\"lod details ranges offsets\\\"})}else e={};r.length||(r=i);var f=a.apply(void 0,r),d=[Math.min(f.x,f.x+f.width),Math.min(f.y,f.y+f.height),Math.max(f.x,f.x+f.width),Math.max(f.y,f.y+f.height)],g=d[0],v=d[1],m=d[2],w=d[3],k=p([g,v,m,w],i),M=k[0],A=k[1],T=k[2],S=k[3],C=l(e.level,y.length);if(null!=e.d){var L;\\\"number\\\"==typeof e.d?L=[e.d,e.d]:e.d.length&&(L=e.d),C=Math.min(Math.max(Math.ceil(-h(Math.abs(L[0])/(i[2]-i[0]))),Math.ceil(-h(Math.abs(L[1])/(i[3]-i[1])))),C)}if(C=Math.min(C,y.length),e.lod)return function(t,e,r,i,a){for(var o=[],s=0;s<a;s++){var l=b[s],c=_[s][0],u=E(t,e,s),f=E(r,i,s),h=n.ge(l,u),p=n.gt(l,f,h,l.length-1);o[s]=[h+c,p+c]}return o}(M,A,T,S,C);var z=[];return function e(r,n,i,a,o,s){if(null!==o&&null!==s){var l=r+i,c=n+i;if(!(M>l||A>c||T<r||S<n||a>=C||o===s)){var u=y[a];void 0===s&&(s=u.length);for(var f=o;f<s;f++){var h=u[f],p=t[2*h],d=t[2*h+1];p>=g&&p<=m&&d>=v&&d<=w&&z.push(h)}var b=x[a],_=b[4*o+0],k=b[4*o+1],E=b[4*o+2],L=b[4*o+3],O=function(t,e){for(var r=null,n=0;null===r;)if(r=t[4*e+n],++n>t.length)return null;return r}(b,o+1),I=.5*i,P=a+1;e(r,n,I,P,_,k||E||L||O),e(r,n+I,I,P,k,E||L||O),e(r+I,n,I,P,E,L||O),e(r+I,n+I,I,P,L,O)}}}(0,0,1,0,0,1),z},d;function E(t,e,r){for(var n=1,i=.5,a=.5,o=.5,s=0;s<r;s++)n<<=2,n+=t<i?e<a?0:1:e<a?2:3,o*=.5,i+=t<i?-o:o,a+=e<a?-o:o;return n}}},{\\\"array-bounds\\\":53,\\\"binary-search-bounds\\\":453,clamp:103,defined:149,dtype:154,\\\"flatten-vertex-data\\\":216,\\\"is-obj\\\":404,\\\"math-log2\\\":415,\\\"parse-rect\\\":442,\\\"pick-by-alias\\\":448}],455:[function(t,e,r){e.exports=function(t){for(var e=t.length,r=[],a=[],s=0;s<e;++s)for(var u=t[s],f=u.length,h=f-1,p=0;p<f;h=p++){var d=u[h],g=u[p];d[0]===g[0]?a.push([d,g]):r.push([d,g])}if(0===r.length)return 0===a.length?c:(v=l(a),function(t){return v(t[0],t[1])?0:1});var v;var m=i(r),y=function(t,e){return function(r){var i=o.le(e,r[0]);if(i<0)return 1;var a=t[i];if(!a){if(!(i>0&&e[i]===r[0]))return 1;a=t[i-1]}for(var s=1;a;){var l=a.key,c=n(r,l[0],l[1]);if(l[0][0]<l[1][0])if(c<0)a=a.left;else{if(!(c>0))return 0;s=-1,a=a.right}else if(c>0)a=a.left;else{if(!(c<0))return 0;s=1,a=a.right}}return s}}(m.slabs,m.coordinates);return 0===a.length?y:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(l(a),y)};var n=t(\\\"robust-orientation\\\")[3],i=t(\\\"slab-decomposition\\\"),a=t(\\\"interval-tree-1d\\\"),o=t(\\\"binary-search-bounds\\\");function s(){return!0}function l(t){for(var e={},r=0;r<t.length;++r){var n=t[r],i=n[0][0],o=n[0][1],l=n[1][1],c=[Math.min(o,l),Math.max(o,l)];i in e?e[i].push(c):e[i]=[c]}var u={},f=Object.keys(e);for(r=0;r<f.length;++r){var h=e[f[r]];u[f[r]]=a(h)}return function(t){return function(e,r){var n=t[e];return!!n&&!!n.queryPoint(r,s)}}(u)}function c(t){return 1}},{\\\"binary-search-bounds\\\":79,\\\"interval-tree-1d\\\":397,\\\"robust-orientation\\\":486,\\\"slab-decomposition\\\":502}],456:[function(t,e,r){var n,i=t(\\\"./lib/build-log\\\"),a=t(\\\"./lib/epsilon\\\"),o=t(\\\"./lib/intersecter\\\"),s=t(\\\"./lib/segment-chainer\\\"),l=t(\\\"./lib/segment-selector\\\"),c=t(\\\"./lib/geojson\\\"),u=!1,f=a();function h(t,e,r){var i=n.segments(t),a=n.segments(e),o=r(n.combine(i,a));return n.polygon(o)}n={buildLog:function(t){return!0===t?u=i():!1===t&&(u=!1),!1!==u&&u.list},epsilon:function(t){return f.epsilon(t)},segments:function(t){var e=o(!0,f,u);return t.regions.forEach(e.addRegion),{segments:e.calculate(t.inverted),inverted:t.inverted}},combine:function(t,e){return{combined:o(!1,f,u).calculate(t.segments,t.inverted,e.segments,e.inverted),inverted1:t.inverted,inverted2:e.inverted}},selectUnion:function(t){return{segments:l.union(t.combined,u),inverted:t.inverted1||t.inverted2}},selectIntersect:function(t){return{segments:l.intersect(t.combined,u),inverted:t.inverted1&&t.inverted2}},selectDifference:function(t){return{segments:l.difference(t.combined,u),inverted:t.inverted1&&!t.inverted2}},selectDifferenceRev:function(t){return{segments:l.differenceRev(t.combined,u),inverted:!t.inverted1&&t.inverted2}},selectXor:function(t){return{segments:l.xor(t.combined,u),inverted:t.inverted1!==t.inverted2}},polygon:function(t){return{regions:s(t.segments,f,u),inverted:t.inverted}},polygonFromGeoJSON:function(t){return c.toPolygon(n,t)},polygonToGeoJSON:function(t){return c.fromPolygon(n,f,t)},union:function(t,e){return h(t,e,n.selectUnion)},intersect:function(t,e){return h(t,e,n.selectIntersect)},difference:function(t,e){return h(t,e,n.selectDifference)},differenceRev:function(t,e){return h(t,e,n.selectDifferenceRev)},xor:function(t,e){return h(t,e,n.selectXor)}},\\\"object\\\"==typeof window&&(window.PolyBool=n),e.exports=n},{\\\"./lib/build-log\\\":457,\\\"./lib/epsilon\\\":458,\\\"./lib/geojson\\\":459,\\\"./lib/intersecter\\\":460,\\\"./lib/segment-chainer\\\":462,\\\"./lib/segment-selector\\\":463}],457:[function(t,e,r){e.exports=function(){var t,e=0,r=!1;function n(e,r){return t.list.push({type:e,data:r?JSON.parse(JSON.stringify(r)):void 0}),t}return t={list:[],segmentId:function(){return e++},checkIntersection:function(t,e){return n(\\\"check\\\",{seg1:t,seg2:e})},segmentChop:function(t,e){return n(\\\"div_seg\\\",{seg:t,pt:e}),n(\\\"chop\\\",{seg:t,pt:e})},statusRemove:function(t){return n(\\\"pop_seg\\\",{seg:t})},segmentUpdate:function(t){return n(\\\"seg_update\\\",{seg:t})},segmentNew:function(t,e){return n(\\\"new_seg\\\",{seg:t,primary:e})},segmentRemove:function(t){return n(\\\"rem_seg\\\",{seg:t})},tempStatus:function(t,e,r){return n(\\\"temp_status\\\",{seg:t,above:e,below:r})},rewind:function(t){return n(\\\"rewind\\\",{seg:t})},status:function(t,e,r){return n(\\\"status\\\",{seg:t,above:e,below:r})},vert:function(e){return e===r?t:(r=e,n(\\\"vert\\\",{x:e}))},log:function(t){return\\\"string\\\"!=typeof t&&(t=JSON.stringify(t,!1,\\\"  \\\")),n(\\\"log\\\",{txt:t})},reset:function(){return n(\\\"reset\\\")},selected:function(t){return n(\\\"selected\\\",{segs:t})},chainStart:function(t){return n(\\\"chain_start\\\",{seg:t})},chainRemoveHead:function(t,e){return n(\\\"chain_rem_head\\\",{index:t,pt:e})},chainRemoveTail:function(t,e){return n(\\\"chain_rem_tail\\\",{index:t,pt:e})},chainNew:function(t,e){return n(\\\"chain_new\\\",{pt1:t,pt2:e})},chainMatch:function(t){return n(\\\"chain_match\\\",{index:t})},chainClose:function(t){return n(\\\"chain_close\\\",{index:t})},chainAddHead:function(t,e){return n(\\\"chain_add_head\\\",{index:t,pt:e})},chainAddTail:function(t,e){return n(\\\"chain_add_tail\\\",{index:t,pt:e})},chainConnect:function(t,e){return n(\\\"chain_con\\\",{index1:t,index2:e})},chainReverse:function(t){return n(\\\"chain_rev\\\",{index:t})},chainJoin:function(t,e){return n(\\\"chain_join\\\",{index1:t,index2:e})},done:function(){return n(\\\"done\\\")}}}},{}],458:[function(t,e,r){e.exports=function(t){\\\"number\\\"!=typeof t&&(t=1e-10);var e={epsilon:function(e){return\\\"number\\\"==typeof e&&(t=e),t},pointAboveOrOnLine:function(e,r,n){var i=r[0],a=r[1],o=n[0],s=n[1],l=e[0];return(o-i)*(e[1]-a)-(s-a)*(l-i)>=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l<t||l-(a*a+s*s)>-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])<t},pointsSameY:function(e,r){return Math.abs(e[1]-r[1])<t},pointsSame:function(t,r){return e.pointsSameX(t,r)&&e.pointsSameY(t,r)},pointsCompare:function(t,r){return e.pointsSameX(t,r)?e.pointsSameY(t,r)?0:t[1]<r[1]?-1:1:t[0]<r[0]?-1:1},pointsCollinear:function(e,r,n){var i=e[0]-r[0],a=e[1]-r[1],o=r[0]-n[0],s=r[1]-n[1];return Math.abs(i*s-o*a)<t},linesIntersect:function(e,r,n,i){var a=r[0]-e[0],o=r[1]-e[1],s=i[0]-n[0],l=i[1]-n[1],c=a*l-o*s;if(Math.abs(c)<t)return!1;var u=e[0]-n[0],f=e[1]-n[1],h=(s*f-l*u)/c,p=(a*f-o*u)/c,d={alongA:0,alongB:0,pt:[e[0]+h*a,e[1]+h*o]};return d.alongA=h<=-t?-2:h<t?-1:h-1<=-t?0:h-1<t?1:2,d.alongB=p<=-t?-2:p<t?-1:p-1<=-t?0:p-1<t?1:2,d},pointInsideRegion:function(e,r){for(var n=e[0],i=e[1],a=r[r.length-1][0],o=r[r.length-1][1],s=!1,l=0;l<r.length;l++){var c=r[l][0],u=r[l][1];u-i>t!=o-i>t&&(a-c)*(i-u)/(o-u)+c-n>t&&(s=!s),a=c,o=u}return s}};return e}},{}],459:[function(t,e,r){var n={toPolygon:function(t,e){function r(e){if(e.length<=0)return t.segments({inverted:!1,regions:[]});function r(e){var r=e.slice(0,e.length-1);return t.segments({inverted:!1,regions:[r]})}for(var n=r(e[0]),i=1;i<e.length;i++)n=t.selectDifference(t.combine(n,r(e[i])));return n}if(\\\"Polygon\\\"===e.type)return t.polygon(r(e.coordinates));if(\\\"MultiPolygon\\\"===e.type){for(var n=t.segments({inverted:!1,regions:[]}),i=0;i<e.coordinates.length;i++)n=t.selectUnion(t.combine(n,r(e.coordinates[i])));return t.polygon(n)}throw new Error(\\\"PolyBool: Cannot convert GeoJSON object to PolyBool polygon\\\")},fromPolygon:function(t,e,r){function n(t,r){return e.pointInsideRegion([.5*(t[0][0]+t[1][0]),.5*(t[0][1]+t[1][1])],r)}function i(t){return{region:t,children:[]}}r=t.polygon(t.segments(r));var a=i(null);function o(t,e){for(var r=0;r<t.children.length;r++){if(n(e,(s=t.children[r]).region))return void o(s,e)}var a=i(e);for(r=0;r<t.children.length;r++){var s;n((s=t.children[r]).region,e)&&(a.children.push(s),t.children.splice(r,1),r--)}t.children.push(a)}for(var s=0;s<r.regions.length;s++){var l=r.regions[s];l.length<3||o(a,l)}function c(t,e){for(var r=0,n=t[t.length-1][0],i=t[t.length-1][1],a=[],o=0;o<t.length;o++){var s=t[o][0],l=t[o][1];a.push([s,l]),r+=l*n-s*i,n=s,i=l}return r<0!==e&&a.reverse(),a.push([a[0][0],a[0][1]]),a}var u=[];function f(t){var e=[c(t.region,!1)];u.push(e);for(var r=0;r<t.children.length;r++)e.push(h(t.children[r]))}function h(t){for(var e=0;e<t.children.length;e++)f(t.children[e]);return c(t.region,!0)}for(s=0;s<a.children.length;s++)f(a.children[s]);return u.length<=0?{type:\\\"Polygon\\\",coordinates:[]}:1==u.length?{type:\\\"Polygon\\\",coordinates:u[0]}:{type:\\\"MultiPolygon\\\",coordinates:u}}};e.exports=n},{}],460:[function(t,e,r){var n=t(\\\"./linked-list\\\");e.exports=function(t,e,r){function i(t,e,n){return{id:r?r.segmentId():-1,start:t,end:e,myFill:{above:n.myFill.above,below:n.myFill.below},otherFill:null}}var a=n.create();function o(t,r){a.insertBefore(t,function(n){return function(t,r,n,i,a,o){var s=e.pointsCompare(r,a);return 0!==s?s:e.pointsSame(n,o)?0:t!==i?t?1:-1:e.pointAboveOrOnLine(n,i?a:o,i?o:a)?1:-1}(t.isStart,t.pt,r,n.isStart,n.pt,n.other.pt)<0})}function s(t,e){var r=function(t,e){var r=n.node({isStart:!0,pt:t.start,seg:t,primary:e,other:null,status:null});return o(r,t.end),r}(t,e);return function(t,e,r){var i=n.node({isStart:!1,pt:e.end,seg:e,primary:r,other:t,status:null});t.other=i,o(i,t.pt)}(r,t,e),r}function l(t,e){var n=i(e,t.seg.end,t.seg);return function(t,e){r&&r.segmentChop(t.seg,e),t.other.remove(),t.seg.end=e,t.other.pt=e,o(t.other,t.pt)}(t,e),s(n,t.primary)}function c(i,o){var s=n.create();function c(t){return s.findTransition(function(r){var n,i,a,o,s,l;return n=t,i=r.ev,a=n.seg.start,o=n.seg.end,s=i.seg.start,l=i.seg.end,(e.pointsCollinear(a,s,l)?e.pointsCollinear(o,s,l)?1:e.pointAboveOrOnLine(o,s,l)?1:-1:e.pointAboveOrOnLine(a,s,l)?1:-1)>0})}function u(t,n){var i=t.seg,a=n.seg,o=i.start,s=i.end,c=a.start,u=a.end;r&&r.checkIntersection(i,a);var f=e.linesIntersect(o,s,c,u);if(!1===f){if(!e.pointsCollinear(o,s,c))return!1;if(e.pointsSame(o,u)||e.pointsSame(s,c))return!1;var h=e.pointsSame(o,c),p=e.pointsSame(s,u);if(h&&p)return n;var d=!h&&e.pointBetween(o,c,u),g=!p&&e.pointBetween(s,c,u);if(h)return g?l(n,s):l(t,u),n;d&&(p||(g?l(n,s):l(t,u)),l(n,o))}else 0===f.alongA&&(-1===f.alongB?l(t,c):0===f.alongB?l(t,f.pt):1===f.alongB&&l(t,u)),0===f.alongB&&(-1===f.alongA?l(n,o):0===f.alongA?l(n,f.pt):1===f.alongA&&l(n,s));return!1}for(var f=[];!a.isEmpty();){var h=a.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var p=c(h),d=p.before?p.before.ev:null,g=p.after?p.after.ev:null;function v(){if(d){var t=u(h,d);if(t)return t}return!!g&&u(h,g)}r&&r.tempStatus(h.seg,!!d&&d.seg,!!g&&g.seg);var m,y,x=v();if(x)t?(y=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(x.seg.myFill.above=!x.seg.myFill.above):x.seg.otherFill=h.seg.myFill,r&&r.segmentUpdate(x.seg),h.other.remove(),h.remove();if(a.getHead()!==h){r&&r.rewind(h.seg);continue}t?(y=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=g?g.seg.myFill.above:i,h.seg.myFill.above=y?!h.seg.myFill.below:h.seg.myFill.below):null===h.seg.otherFill&&(m=g?h.primary===g.primary?g.seg.otherFill.above:g.seg.myFill.above:h.primary?o:i,h.seg.otherFill={above:m,below:m}),r&&r.status(h.seg,!!d&&d.seg,!!g&&g.seg),h.other.status=p.insert(n.node({ev:h}))}else{var b=h.status;if(null===b)throw new Error(\\\"PolyBool: Zero-length segment detected; your epsilon is probably too small or too large\\\");if(s.exists(b.prev)&&s.exists(b.next)&&u(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!h.primary){var _=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=_}f.push(h.seg)}a.getHead().remove()}return r&&r.done(),f}return t?{addRegion:function(t){for(var n,i,a,o=t[t.length-1],l=0;l<t.length;l++){n=o,o=t[l];var c=e.pointsCompare(n,o);0!==c&&s((i=c<0?n:o,a=c<0?o:n,{id:r?r.segmentId():-1,start:i,end:a,myFill:{above:null,below:null},otherFill:null}),!0)}},calculate:function(t){return c(t,!1)}}:{calculate:function(t,e,r,n){return t.forEach(function(t){s(i(t.start,t.end,t),!0)}),r.forEach(function(t){s(i(t.start,t.end,t),!1)}),c(e,n)}}}},{\\\"./linked-list\\\":461}],461:[function(t,e,r){e.exports={create:function(){var t={root:{root:!0,next:null},exists:function(e){return null!==e&&e!==t.root},isEmpty:function(){return null===t.root.next},getHead:function(){return t.root.next},insertBefore:function(e,r){for(var n=t.root,i=t.root.next;null!==i;){if(r(i))return e.prev=i.prev,e.next=i,i.prev.next=e,void(i.prev=e);n=i,i=i.next}n.next=e,e.prev=n,e.next=null},findTransition:function(e){for(var r=t.root,n=t.root.next;null!==n&&!e(n);)r=n,n=n.next;return{before:r===t.root?null:r,after:n,insert:function(t){return t.prev=r,t.next=n,r.next=t,null!==n&&(n.prev=t),t}}}};return t},node:function(t){return t.prev=null,t.next=null,t.remove=function(){t.prev.next=t.next,t.next&&(t.next.prev=t.prev),t.prev=null,t.next=null},t}}},{}],462:[function(t,e,r){e.exports=function(t,e,r){var n=[],i=[];return t.forEach(function(t){var a=t.start,o=t.end;if(e.pointsSame(a,o))console.warn(\\\"PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large\\\");else{r&&r.chainStart(t);for(var s={index:0,matches_head:!1,matches_pt1:!1},l={index:0,matches_head:!1,matches_pt1:!1},c=s,u=0;u<n.length;u++){var f=(v=n[u])[0],h=(v[1],v[v.length-1]);if(v[v.length-2],e.pointsSame(f,a)){if(M(u,!0,!0))break}else if(e.pointsSame(f,o)){if(M(u,!0,!1))break}else if(e.pointsSame(h,a)){if(M(u,!1,!0))break}else if(e.pointsSame(h,o)&&M(u,!1,!1))break}if(c===s)return n.push([a,o]),void(r&&r.chainNew(a,o));if(c===l){r&&r.chainMatch(s.index);var p=s.index,d=s.matches_pt1?o:a,g=s.matches_head,v=n[p],m=g?v[0]:v[v.length-1],y=g?v[1]:v[v.length-2],x=g?v[v.length-1]:v[0],b=g?v[v.length-2]:v[1];return e.pointsCollinear(y,m,d)&&(g?(r&&r.chainRemoveHead(s.index,d),v.shift()):(r&&r.chainRemoveTail(s.index,d),v.pop()),m=y),e.pointsSame(x,d)?(n.splice(p,1),e.pointsCollinear(b,x,m)&&(g?(r&&r.chainRemoveTail(s.index,m),v.pop()):(r&&r.chainRemoveHead(s.index,m),v.shift())),r&&r.chainClose(s.index),void i.push(v)):void(g?(r&&r.chainAddHead(s.index,d),v.unshift(d)):(r&&r.chainAddTail(s.index,d),v.push(d)))}var _=s.index,w=l.index;r&&r.chainConnect(_,w);var k=n[_].length<n[w].length;s.matches_head?l.matches_head?k?(A(_),T(_,w)):(A(w),T(w,_)):T(w,_):l.matches_head?T(_,w):k?(A(_),T(w,_)):(A(w),T(_,w))}function M(t,e,r){return c.index=t,c.matches_head=e,c.matches_pt1=r,c===s?(c=l,!1):(c=null,!0)}function A(t){r&&r.chainReverse(t),n[t].reverse()}function T(t,i){var a=n[t],o=n[i],s=a[a.length-1],l=a[a.length-2],c=o[0],u=o[1];e.pointsCollinear(l,s,c)&&(r&&r.chainRemoveTail(t,s),a.pop(),s=l),e.pointsCollinear(s,c,u)&&(r&&r.chainRemoveHead(i,c),o.shift()),r&&r.chainJoin(t,i),n[t]=a.concat(o),n.splice(i,1)}}),i}},{}],463:[function(t,e,r){function n(t,e,r){var n=[];return t.forEach(function(t){var i=(t.myFill.above?8:0)+(t.myFill.below?4:0)+(t.otherFill&&t.otherFill.above?2:0)+(t.otherFill&&t.otherFill.below?1:0);0!==e[i]&&n.push({id:r?r.segmentId():-1,start:t.start,end:t.end,myFill:{above:1===e[i],below:2===e[i]},otherFill:null})}),r&&r.selected(n),n}var i={union:function(t,e){return n(t,[0,2,1,0,2,2,0,0,1,0,1,0,0,0,0,0],e)},intersect:function(t,e){return n(t,[0,0,0,0,0,2,0,2,0,0,1,1,0,2,1,0],e)},difference:function(t,e){return n(t,[0,0,0,0,2,0,2,0,1,1,0,0,0,1,2,0],e)},differenceRev:function(t,e){return n(t,[0,2,1,0,0,0,1,1,0,2,0,2,0,0,0,0],e)},xor:function(t,e){return n(t,[0,2,1,0,2,0,0,1,1,0,0,2,0,1,2,0],e)}};e.exports=i},{}],464:[function(t,e,r){\\\"use strict\\\";var n=new Float64Array(4),i=new Float64Array(4),a=new Float64Array(4);e.exports=function(t,e,r,o,s){n.length<o.length&&(n=new Float64Array(o.length),i=new Float64Array(o.length),a=new Float64Array(o.length));for(var l=0;l<o.length;++l)n[l]=t[l]-o[l],i[l]=e[l]-t[l],a[l]=r[l]-t[l];var c=0,u=0,f=0,h=0,p=0,d=0;for(l=0;l<o.length;++l){var g=i[l],v=a[l],m=n[l];c+=g*g,u+=g*v,f+=v*v,h+=m*g,p+=m*v,d+=m*m}var y,x,b,_,w,k=Math.abs(c*f-u*u),M=u*p-f*h,A=u*h-c*p;if(M+A<=k)if(M<0)A<0&&h<0?(A=0,-h>=c?(M=1,y=c+2*h+d):y=h*(M=-h/c)+d):(M=0,p>=0?(A=0,y=d):-p>=f?(A=1,y=f+2*p+d):y=p*(A=-p/f)+d);else if(A<0)A=0,h>=0?(M=0,y=d):-h>=c?(M=1,y=c+2*h+d):y=h*(M=-h/c)+d;else{var T=1/k;y=(M*=T)*(c*M+u*(A*=T)+2*h)+A*(u*M+f*A+2*p)+d}else M<0?(b=f+p)>(x=u+h)?(_=b-x)>=(w=c-2*u+f)?(M=1,A=0,y=c+2*h+d):y=(M=_/w)*(c*M+u*(A=1-M)+2*h)+A*(u*M+f*A+2*p)+d:(M=0,b<=0?(A=1,y=f+2*p+d):p>=0?(A=0,y=d):y=p*(A=-p/f)+d):A<0?(b=c+h)>(x=u+p)?(_=b-x)>=(w=c-2*u+f)?(A=1,M=0,y=f+2*p+d):y=(M=1-(A=_/w))*(c*M+u*A+2*h)+A*(u*M+f*A+2*p)+d:(A=0,b<=0?(M=1,y=c+2*h+d):h>=0?(M=0,y=d):y=h*(M=-h/c)+d):(_=f+p-u-h)<=0?(M=0,A=1,y=f+2*p+d):_>=(w=c-2*u+f)?(M=1,A=0,y=c+2*h+d):y=(M=_/w)*(c*M+u*(A=1-M)+2*h)+A*(u*M+f*A+2*p)+d;var S=1-M-A;for(l=0;l<o.length;++l)s[l]=S*t[l]+M*e[l]+A*r[l];return y<0?0:y}},{}],465:[function(t,e,r){var n,i,a=e.exports={};function o(){throw new Error(\\\"setTimeout has not been defined\\\")}function s(){throw new Error(\\\"clearTimeout has not been defined\\\")}function l(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n=\\\"function\\\"==typeof setTimeout?setTimeout:o}catch(t){n=o}try{i=\\\"function\\\"==typeof clearTimeout?clearTimeout:s}catch(t){i=s}}();var c,u=[],f=!1,h=-1;function p(){f&&c&&(f=!1,c.length?u=c.concat(u):h=-1,u.length&&d())}function d(){if(!f){var t=l(p);f=!0;for(var e=u.length;e;){for(c=u,u=[];++h<e;)c&&c[h].run();h=-1,e=u.length}c=null,f=!1,function(t){if(i===clearTimeout)return clearTimeout(t);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(t);try{i(t)}catch(e){try{return i.call(null,t)}catch(e){return i.call(this,t)}}}(t)}}function g(t,e){this.fun=t,this.array=e}function v(){}a.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];u.push(new g(t,e)),1!==u.length||f||l(d)},g.prototype.run=function(){this.fun.apply(null,this.array)},a.title=\\\"browser\\\",a.browser=!0,a.env={},a.argv=[],a.version=\\\"\\\",a.versions={},a.on=v,a.addListener=v,a.once=v,a.off=v,a.removeListener=v,a.removeAllListeners=v,a.emit=v,a.prependListener=v,a.prependOnceListener=v,a.listeners=function(t){return[]},a.binding=function(t){throw new Error(\\\"process.binding is not supported\\\")},a.cwd=function(){return\\\"/\\\"},a.chdir=function(t){throw new Error(\\\"process.chdir is not supported\\\")},a.umask=function(){return 0}},{}],466:[function(t,e,r){e.exports=t(\\\"gl-quat/slerp\\\")},{\\\"gl-quat/slerp\\\":280}],467:[function(t,e,r){(function(r){for(var n=t(\\\"performance-now\\\"),i=\\\"undefined\\\"==typeof window?r:window,a=[\\\"moz\\\",\\\"webkit\\\"],o=\\\"AnimationFrame\\\",s=i[\\\"request\\\"+o],l=i[\\\"cancel\\\"+o]||i[\\\"cancelRequest\\\"+o],c=0;!s&&c<a.length;c++)s=i[a[c]+\\\"Request\\\"+o],l=i[a[c]+\\\"Cancel\\\"+o]||i[a[c]+\\\"CancelRequest\\\"+o];if(!s||!l){var u=0,f=0,h=[];s=function(t){if(0===h.length){var e=n(),r=Math.max(0,1e3/60-(e-u));u=r+e,setTimeout(function(){var t=h.slice(0);h.length=0;for(var e=0;e<t.length;e++)if(!t[e].cancelled)try{t[e].callback(u)}catch(t){setTimeout(function(){throw t},0)}},Math.round(r))}return h.push({handle:++f,callback:t,cancelled:!1}),f},l=function(t){for(var e=0;e<h.length;e++)h[e].handle===t&&(h[e].cancelled=!0)}}e.exports=function(t){return s.call(i,t)},e.exports.cancel=function(){l.apply(i,arguments)},e.exports.polyfill=function(t){t||(t=i),t.requestAnimationFrame=s,t.cancelAnimationFrame=l}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"performance-now\\\":445}],468:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"big-rat/add\\\");e.exports=function(t,e){for(var r=t.length,i=new Array(r),a=0;a<r;++a)i[a]=n(t[a],e[a]);return i}},{\\\"big-rat/add\\\":63}],469:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=new Array(t.length),r=0;r<t.length;++r)e[r]=n(t[r]);return e};var n=t(\\\"big-rat\\\")},{\\\"big-rat\\\":66}],470:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"big-rat\\\"),i=t(\\\"big-rat/mul\\\");e.exports=function(t,e){for(var r=n(e),a=t.length,o=new Array(a),s=0;s<a;++s)o[s]=i(t[s],r);return o}},{\\\"big-rat\\\":66,\\\"big-rat/mul\\\":75}],471:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"big-rat/sub\\\");e.exports=function(t,e){for(var r=t.length,i=new Array(r),a=0;a<r;++a)i[a]=n(t[a],e[a]);return i}},{\\\"big-rat/sub\\\":77}],472:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"compare-cell\\\"),i=t(\\\"compare-oriented-cell\\\"),a=t(\\\"cell-orientation\\\");e.exports=function(t){t.sort(i);for(var e=t.length,r=0,o=0;o<e;++o){var s=t[o],l=a(s);if(0!==l){if(r>0){var c=t[r-1];if(0===n(s,c)&&a(c)!==l){r-=1;continue}}t[r++]=s}}return t.length=r,t}},{\\\"cell-orientation\\\":100,\\\"compare-cell\\\":116,\\\"compare-oriented-cell\\\":117}],473:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"array-bounds\\\"),i=t(\\\"color-normalize\\\"),a=t(\\\"update-diff\\\"),o=t(\\\"pick-by-alias\\\"),s=t(\\\"object-assign\\\"),l=t(\\\"flatten-vertex-data\\\"),c=t(\\\"to-float32\\\"),u=c.float32,f=c.fract32;e.exports=function(t,e){\\\"function\\\"==typeof t?(e||(e={}),e.regl=t):e=t;e.length&&(e.positions=e);if(!(t=e.regl).hasExtension(\\\"ANGLE_instanced_arrays\\\"))throw Error(\\\"regl-error2d: `ANGLE_instanced_arrays` extension should be enabled\\\");var r,c,p,d,g,v,m=t._gl,y={color:\\\"black\\\",capSize:5,lineWidth:1,opacity:1,viewport:null,range:null,offset:0,count:0,bounds:null,positions:[],errors:[]},x=[];return d=t.buffer({usage:\\\"dynamic\\\",type:\\\"uint8\\\",data:new Uint8Array(0)}),c=t.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array(0)}),p=t.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array(0)}),g=t.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array(0)}),v=t.buffer({usage:\\\"static\\\",type:\\\"float\\\",data:h}),k(e),r=t({vert:\\\"\\\\n\\\\t\\\\tprecision highp float;\\\\n\\\\n\\\\t\\\\tattribute vec2 position, positionFract;\\\\n\\\\t\\\\tattribute vec4 error;\\\\n\\\\t\\\\tattribute vec4 color;\\\\n\\\\n\\\\t\\\\tattribute vec2 direction, lineOffset, capOffset;\\\\n\\\\n\\\\t\\\\tuniform vec4 viewport;\\\\n\\\\t\\\\tuniform float lineWidth, capSize;\\\\n\\\\t\\\\tuniform vec2 scale, scaleFract, translate, translateFract;\\\\n\\\\n\\\\t\\\\tvarying vec4 fragColor;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\tfragColor = color / 255.;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 position = position + dxy;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 pos = (position + translate) * scale\\\\n\\\\t\\\\t\\\\t\\\\t+ (positionFract + translateFract) * scale\\\\n\\\\t\\\\t\\\\t\\\\t+ (position + translate) * scaleFract\\\\n\\\\t\\\\t\\\\t\\\\t+ (positionFract + translateFract) * scaleFract;\\\\n\\\\n\\\\t\\\\t\\\\tpos += pixelOffset / viewport.zw;\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position = vec4(pos * 2. - 1., 0, 1);\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t\\\",frag:\\\"\\\\n\\\\t\\\\tprecision mediump float;\\\\n\\\\n\\\\t\\\\tvarying vec4 fragColor;\\\\n\\\\n\\\\t\\\\tuniform float opacity;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\tgl_FragColor = fragColor;\\\\n\\\\t\\\\t\\\\tgl_FragColor.a *= opacity;\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t\\\",uniforms:{range:t.prop(\\\"range\\\"),lineWidth:t.prop(\\\"lineWidth\\\"),capSize:t.prop(\\\"capSize\\\"),opacity:t.prop(\\\"opacity\\\"),scale:t.prop(\\\"scale\\\"),translate:t.prop(\\\"translate\\\"),scaleFract:t.prop(\\\"scaleFract\\\"),translateFract:t.prop(\\\"translateFract\\\"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{color:{buffer:d,offset:function(t,e){return 4*e.offset},divisor:1},position:{buffer:c,offset:function(t,e){return 8*e.offset},divisor:1},positionFract:{buffer:p,offset:function(t,e){return 8*e.offset},divisor:1},error:{buffer:g,offset:function(t,e){return 16*e.offset},divisor:1},direction:{buffer:v,stride:24,offset:0},lineOffset:{buffer:v,stride:24,offset:8},capOffset:{buffer:v,stride:24,offset:16}},primitive:\\\"triangles\\\",blend:{enable:!0,color:[0,0,0,0],equation:{rgb:\\\"add\\\",alpha:\\\"add\\\"},func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:\\\"one minus dst alpha\\\",dstAlpha:\\\"one\\\"}},depth:{enable:!1},scissor:{enable:!0,box:t.prop(\\\"viewport\\\")},viewport:t.prop(\\\"viewport\\\"),stencil:!1,instances:t.prop(\\\"count\\\"),count:h.length}),s(b,{update:k,draw:_,destroy:M,regl:t,gl:m,canvas:m.canvas,groups:x}),b;function b(t){t?k(t):null===t&&M(),_()}function _(e){if(\\\"number\\\"==typeof e)return w(e);e&&!Array.isArray(e)&&(e=[e]),t._refresh(),x.forEach(function(t,r){t&&(e&&(e[r]?t.draw=!0:t.draw=!1),t.draw?w(r):t.draw=!0)})}function w(t){\\\"number\\\"==typeof t&&(t=x[t]),null!=t&&t&&t.count&&t.color&&t.opacity&&t.positions&&t.positions.length>1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function k(t){if(t){null!=t.length?\\\"number\\\"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(b.groups=x=t.map(function(t,c){var u=x[c];return t?(\\\"function\\\"==typeof t?t={after:t}:\\\"number\\\"==typeof t[0]&&(t={positions:t}),t=o(t,{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\\\"}),u||(x[c]=u={id:c,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=s({},y,t)),a(u,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=l(t),r+=t.length,t},positions:function(t,r){return t=l(t,\\\"float64\\\"),r.count=Math.floor(t.length/2),r.bounds=n(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t=\\\"transparent\\\"),!Array.isArray(t)||\\\"number\\\"==typeof t[0]){var n=t;t=Array(r);for(var a=0;a<r;a++)t[a]=n}if(t.length<r)throw Error(\\\"Not enough colors\\\");for(var o=new Uint8Array(4*r),s=0;s<r;s++){var l=i(t[s],\\\"uint8\\\");o.set(l,4*s)}return o},range:function(t,e,r){var n=e.bounds;return t||(t=n),e.scale=[1/(t[2]-t[0]),1/(t[3]-t[1])],e.translate=[-t[0],-t[1]],e.scaleFract=f(e.scale),e.translateFract=f(e.translate),t},viewport:function(t){var e;return Array.isArray(t)?e={x:t[0],y:t[1],width:t[2]-t[0],height:t[3]-t[1]}:t?(e={x:t.x||t.left||0,y:t.y||t.top||0},t.right?e.width=t.right-e.x:e.width=t.w||t.width||0,t.bottom?e.height=t.bottom-e.y:e.height=t.h||t.height||0):e={x:0,y:0,width:m.drawingBufferWidth,height:m.drawingBufferHeight},e}}]),u):u}),e||r){var h=x.reduce(function(t,e,r){return t+(e?e.count:0)},0),v=new Float64Array(2*h),_=new Uint8Array(4*h),w=new Float32Array(4*h);x.forEach(function(t,e){if(t){var r=t.positions,n=t.count,i=t.offset,a=t.color,o=t.errors;n&&(_.set(a,4*i),w.set(o,4*i),v.set(r,2*i))}}),c(u(v)),p(f(v)),d(_),g(w)}}}function M(){c.destroy(),p.destroy(),d.destroy(),g.destroy(),v.destroy()}};var h=[[1,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,0,1,0,0],[1,0,0,1,0,0],[1,0,-1,0,0,1],[1,0,-1,0,0,-1],[1,0,1,0,0,-1],[1,0,1,0,0,-1],[1,0,1,0,0,1],[1,0,-1,0,0,1],[-1,0,-1,0,0,1],[-1,0,-1,0,0,-1],[-1,0,1,0,0,-1],[-1,0,1,0,0,-1],[-1,0,1,0,0,1],[-1,0,-1,0,0,1],[0,1,1,0,0,0],[0,1,-1,0,0,0],[0,-1,-1,0,0,0],[0,-1,-1,0,0,0],[0,1,1,0,0,0],[0,-1,1,0,0,0],[0,1,0,-1,1,0],[0,1,0,-1,-1,0],[0,1,0,1,-1,0],[0,1,0,1,1,0],[0,1,0,-1,1,0],[0,1,0,1,-1,0],[0,-1,0,-1,1,0],[0,-1,0,-1,-1,0],[0,-1,0,1,-1,0],[0,-1,0,1,1,0],[0,-1,0,-1,1,0],[0,-1,0,1,-1,0]]},{\\\"array-bounds\\\":53,\\\"color-normalize\\\":108,\\\"flatten-vertex-data\\\":216,\\\"object-assign\\\":437,\\\"pick-by-alias\\\":448,\\\"to-float32\\\":515,\\\"update-diff\\\":526}],474:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-normalize\\\"),i=t(\\\"array-bounds\\\"),a=t(\\\"object-assign\\\"),o=t(\\\"glslify\\\"),s=t(\\\"pick-by-alias\\\"),l=t(\\\"flatten-vertex-data\\\"),c=t(\\\"earcut\\\"),u=t(\\\"array-normalize\\\"),f=t(\\\"to-float32\\\"),h=f.float32,p=f.fract32,d=t(\\\"es6-weak-map\\\"),g=t(\\\"parse-rect\\\");function v(t,e){if(!(this instanceof v))return new v(t,e);if(\\\"function\\\"==typeof t?(e||(e={}),e.regl=t):e=t,e.length&&(e.positions=e),!(t=e.regl).hasExtension(\\\"ANGLE_instanced_arrays\\\"))throw Error(\\\"regl-error2d: `ANGLE_instanced_arrays` extension should be enabled\\\");this.gl=t._gl,this.regl=t,this.passes=[],this.shaders=v.shaders.has(t)?v.shaders.get(t):v.shaders.set(t,v.createShaders(t)).get(t),this.update(e)}e.exports=v,v.dashMult=2,v.maxPatternLength=256,v.precisionThreshold=3e6,v.maxPoints=1e4,v.maxLines=2048,v.shaders=new d,v.createShaders=function(t){var e,r=t.buffer({usage:\\\"static\\\",type:\\\"float\\\",data:[0,1,0,0,1,1,1,0]}),n={primitive:\\\"triangle strip\\\",instances:t.prop(\\\"count\\\"),count:4,offset:0,uniforms:{miterMode:function(t,e){return\\\"round\\\"===e.join?2:1},miterLimit:t.prop(\\\"miterLimit\\\"),scale:t.prop(\\\"scale\\\"),scaleFract:t.prop(\\\"scaleFract\\\"),translateFract:t.prop(\\\"translateFract\\\"),translate:t.prop(\\\"translate\\\"),thickness:t.prop(\\\"thickness\\\"),dashPattern:t.prop(\\\"dashTexture\\\"),opacity:t.prop(\\\"opacity\\\"),pixelRatio:t.context(\\\"pixelRatio\\\"),id:t.prop(\\\"id\\\"),dashSize:t.prop(\\\"dashLength\\\"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]},depth:t.prop(\\\"depth\\\")},blend:{enable:!0,color:[0,0,0,0],equation:{rgb:\\\"add\\\",alpha:\\\"add\\\"},func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:\\\"one minus dst alpha\\\",dstAlpha:\\\"one\\\"}},depth:{enable:function(t,e){return!e.overlay}},stencil:{enable:!1},scissor:{enable:!0,box:t.prop(\\\"viewport\\\")},viewport:t.prop(\\\"viewport\\\")},i=t(a({vert:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 aCoord, bCoord, aCoordFract, bCoordFract;\\\\nattribute vec4 color;\\\\nattribute float lineEnd, lineTop;\\\\n\\\\nuniform vec2 scale, scaleFract, translate, translateFract;\\\\nuniform float thickness, pixelRatio, id, depth;\\\\nuniform vec4 viewport;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec2 tangent;\\\\n\\\\nvec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) {\\\\n\\\\t// the order is important\\\\n\\\\treturn position * scale + translate\\\\n       + positionFract * scale + translateFract\\\\n       + position * scaleFract\\\\n       + positionFract * scaleFract;\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\tfloat lineStart = 1. - lineEnd;\\\\n\\\\tfloat lineOffset = lineTop * 2. - 1.;\\\\n\\\\n\\\\tvec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract);\\\\n\\\\ttangent = normalize(diff * scale * viewport.zw);\\\\n\\\\tvec2 normal = vec2(-tangent.y, tangent.x);\\\\n\\\\n\\\\tvec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart\\\\n\\\\t\\\\t+ project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd\\\\n\\\\n\\\\t\\\\t+ thickness * normal * .5 * lineOffset / viewport.zw;\\\\n\\\\n\\\\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\\\\n\\\\n\\\\tfragColor = color / 255.;\\\\n}\\\\n\\\"]),frag:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform sampler2D dashPattern;\\\\n\\\\nuniform float dashSize, pixelRatio, thickness, opacity, id;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec2 tangent;\\\\n\\\\nvoid main() {\\\\n\\\\tfloat alpha = 1.;\\\\n\\\\n\\\\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\\\\n\\\\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\\\\n\\\\n\\\\tgl_FragColor = fragColor;\\\\n\\\\tgl_FragColor.a *= alpha * opacity * dash;\\\\n}\\\\n\\\"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:16,divisor:1},aCoordFract:{buffer:t.prop(\\\"positionFractBuffer\\\"),stride:8,offset:8,divisor:1},bCoordFract:{buffer:t.prop(\\\"positionFractBuffer\\\"),stride:8,offset:16,divisor:1},color:{buffer:t.prop(\\\"colorBuffer\\\"),stride:4,offset:0,divisor:1}}},n));try{e=t(a({cull:{enable:!0,face:\\\"back\\\"},vert:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 aCoord, bCoord, nextCoord, prevCoord;\\\\nattribute vec4 aColor, bColor;\\\\nattribute float lineEnd, lineTop;\\\\n\\\\nuniform vec2 scale, translate;\\\\nuniform float thickness, pixelRatio, id, depth;\\\\nuniform vec4 viewport;\\\\nuniform float miterLimit, miterMode;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec4 startCutoff, endCutoff;\\\\nvarying vec2 tangent;\\\\nvarying vec2 startCoord, endCoord;\\\\nvarying float enableStartMiter, enableEndMiter;\\\\n\\\\nconst float REVERSE_THRESHOLD = -.875;\\\\nconst float MIN_DIFF = 1e-6;\\\\n\\\\n// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead\\\\n// TODO: precalculate dot products, normalize things beforehead etc.\\\\n// TODO: refactor to rectangular algorithm\\\\n\\\\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\\\\n\\\\tvec2 diff = b - a;\\\\n\\\\tvec2 perp = normalize(vec2(-diff.y, diff.x));\\\\n\\\\treturn dot(p - a, perp);\\\\n}\\\\n\\\\nbool isNaN( float val ){\\\\n  return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\tvec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;\\\\n\\\\n  vec2 adjustedScale;\\\\n  adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;\\\\n  adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;\\\\n\\\\n  vec2 scaleRatio = adjustedScale * viewport.zw;\\\\n\\\\tvec2 normalWidth = thickness / scaleRatio;\\\\n\\\\n\\\\tfloat lineStart = 1. - lineEnd;\\\\n\\\\tfloat lineBot = 1. - lineTop;\\\\n\\\\n\\\\tfragColor = (lineStart * aColor + lineEnd * bColor) / 255.;\\\\n\\\\n\\\\tif (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;\\\\n\\\\n\\\\tif (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);\\\\n\\\\tif (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);\\\\n\\\\n\\\\tvec2 prevDiff = aCoord - prevCoord;\\\\n\\\\tvec2 currDiff = bCoord - aCoord;\\\\n\\\\tvec2 nextDiff = nextCoord - bCoord;\\\\n\\\\n\\\\tvec2 prevTangent = normalize(prevDiff * scaleRatio);\\\\n\\\\tvec2 currTangent = normalize(currDiff * scaleRatio);\\\\n\\\\tvec2 nextTangent = normalize(nextDiff * scaleRatio);\\\\n\\\\n\\\\tvec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);\\\\n\\\\tvec2 currNormal = vec2(-currTangent.y, currTangent.x);\\\\n\\\\tvec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);\\\\n\\\\n\\\\tvec2 startJoinDirection = normalize(prevTangent - currTangent);\\\\n\\\\tvec2 endJoinDirection = normalize(currTangent - nextTangent);\\\\n\\\\n\\\\t// collapsed/unidirectional segment cases\\\\n\\\\t// FIXME: there should be more elegant solution\\\\n\\\\tvec2 prevTanDiff = abs(prevTangent - currTangent);\\\\n\\\\tvec2 nextTanDiff = abs(nextTangent - currTangent);\\\\n\\\\tif (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {\\\\n\\\\t\\\\tstartJoinDirection = currNormal;\\\\n\\\\t}\\\\n\\\\tif (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {\\\\n\\\\t\\\\tendJoinDirection = currNormal;\\\\n\\\\t}\\\\n\\\\tif (aCoord == bCoord) {\\\\n\\\\t\\\\tendJoinDirection = startJoinDirection;\\\\n\\\\t\\\\tcurrNormal = prevNormal;\\\\n\\\\t\\\\tcurrTangent = prevTangent;\\\\n\\\\t}\\\\n\\\\n\\\\ttangent = currTangent;\\\\n\\\\n\\\\t//calculate join shifts relative to normals\\\\n\\\\tfloat startJoinShift = dot(currNormal, startJoinDirection);\\\\n\\\\tfloat endJoinShift = dot(currNormal, endJoinDirection);\\\\n\\\\n\\\\tfloat startMiterRatio = abs(1. / startJoinShift);\\\\n\\\\tfloat endMiterRatio = abs(1. / endJoinShift);\\\\n\\\\n\\\\tvec2 startJoin = startJoinDirection * startMiterRatio;\\\\n\\\\tvec2 endJoin = endJoinDirection * endMiterRatio;\\\\n\\\\n\\\\tvec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;\\\\n\\\\tstartTopJoin = sign(startJoinShift) * startJoin * .5;\\\\n\\\\tstartBotJoin = -startTopJoin;\\\\n\\\\n\\\\tendTopJoin = sign(endJoinShift) * endJoin * .5;\\\\n\\\\tendBotJoin = -endTopJoin;\\\\n\\\\n\\\\tvec2 aTopCoord = aCoord + normalWidth * startTopJoin;\\\\n\\\\tvec2 bTopCoord = bCoord + normalWidth * endTopJoin;\\\\n\\\\tvec2 aBotCoord = aCoord + normalWidth * startBotJoin;\\\\n\\\\tvec2 bBotCoord = bCoord + normalWidth * endBotJoin;\\\\n\\\\n\\\\t//miter anti-clipping\\\\n\\\\tfloat baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));\\\\n\\\\tfloat abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));\\\\n\\\\n\\\\t//prevent close to reverse direction switch\\\\n\\\\tbool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) <  length(normalWidth * currNormal);\\\\n\\\\tbool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) <  length(normalWidth * currNormal);\\\\n\\\\n\\\\tif (prevReverse) {\\\\n\\\\t\\\\t//make join rectangular\\\\n\\\\t\\\\tvec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;\\\\n\\\\t\\\\tfloat normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);\\\\n\\\\t\\\\taBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\\\\n\\\\t\\\\taTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\\\\n\\\\t}\\\\n\\\\telse if (!nextReverse && baClipping > 0. && baClipping < length(normalWidth * endBotJoin)) {\\\\n\\\\t\\\\t//handle miter clipping\\\\n\\\\t\\\\tbTopCoord -= normalWidth * endTopJoin;\\\\n\\\\t\\\\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\\\\n\\\\t}\\\\n\\\\n\\\\tif (nextReverse) {\\\\n\\\\t\\\\t//make join rectangular\\\\n\\\\t\\\\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\\\\n\\\\t\\\\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\\\\n\\\\t\\\\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\\\\n\\\\t\\\\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\\\\n\\\\t}\\\\n\\\\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\\\\n\\\\t\\\\t//handle miter clipping\\\\n\\\\t\\\\taBotCoord -= normalWidth * startBotJoin;\\\\n\\\\t\\\\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\\\\n\\\\t}\\\\n\\\\n\\\\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\\\\n\\\\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\\\\n\\\\n\\\\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\\\\n\\\\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\\\\n\\\\n\\\\t//position is normalized 0..1 coord on the screen\\\\n\\\\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\\\\n\\\\n\\\\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\\\\n\\\\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\\\\n\\\\n\\\\tgl_Position = vec4(position  * 2.0 - 1.0, depth, 1);\\\\n\\\\n\\\\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\\\\n\\\\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\\\\n\\\\n\\\\t//bevel miter cutoffs\\\\n\\\\tif (miterMode == 1.) {\\\\n\\\\t\\\\tif (enableStartMiter == 1.) {\\\\n\\\\t\\\\t\\\\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\\\\n\\\\t\\\\t\\\\tstartCutoff = vec4(aCoord, aCoord);\\\\n\\\\t\\\\t\\\\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\\\\n\\\\t\\\\t\\\\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\\\\n\\\\t\\\\t\\\\tstartCutoff += viewport.xyxy;\\\\n\\\\t\\\\t\\\\tstartCutoff += startMiterWidth.xyxy;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tif (enableEndMiter == 1.) {\\\\n\\\\t\\\\t\\\\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\\\\n\\\\t\\\\t\\\\tendCutoff = vec4(bCoord, bCoord);\\\\n\\\\t\\\\t\\\\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x)  / scaleRatio;\\\\n\\\\t\\\\t\\\\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\\\\n\\\\t\\\\t\\\\tendCutoff += viewport.xyxy;\\\\n\\\\t\\\\t\\\\tendCutoff += endMiterWidth.xyxy;\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\n\\\\t//round miter cutoffs\\\\n\\\\telse if (miterMode == 2.) {\\\\n\\\\t\\\\tif (enableStartMiter == 1.) {\\\\n\\\\t\\\\t\\\\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\\\\n\\\\t\\\\t\\\\tstartCutoff = vec4(aCoord, aCoord);\\\\n\\\\t\\\\t\\\\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\\\\n\\\\t\\\\t\\\\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\\\\n\\\\t\\\\t\\\\tstartCutoff += viewport.xyxy;\\\\n\\\\t\\\\t\\\\tstartCutoff += startMiterWidth.xyxy;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tif (enableEndMiter == 1.) {\\\\n\\\\t\\\\t\\\\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\\\\n\\\\t\\\\t\\\\tendCutoff = vec4(bCoord, bCoord);\\\\n\\\\t\\\\t\\\\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x)  / scaleRatio;\\\\n\\\\t\\\\t\\\\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\\\\n\\\\t\\\\t\\\\tendCutoff += viewport.xyxy;\\\\n\\\\t\\\\t\\\\tendCutoff += endMiterWidth.xyxy;\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n}\\\\n\\\"]),frag:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nuniform sampler2D dashPattern;\\\\nuniform float dashSize, pixelRatio, thickness, opacity, id, miterMode;\\\\n\\\\nvarying vec4 fragColor;\\\\nvarying vec2 tangent;\\\\nvarying vec4 startCutoff, endCutoff;\\\\nvarying vec2 startCoord, endCoord;\\\\nvarying float enableStartMiter, enableEndMiter;\\\\n\\\\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\\\\n\\\\tvec2 diff = b - a;\\\\n\\\\tvec2 perp = normalize(vec2(-diff.y, diff.x));\\\\n\\\\treturn dot(p - a, perp);\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\tfloat alpha = 1., distToStart, distToEnd;\\\\n\\\\tfloat cutoff = thickness * .5;\\\\n\\\\n\\\\t//bevel miter\\\\n\\\\tif (miterMode == 1.) {\\\\n\\\\t\\\\tif (enableStartMiter == 1.) {\\\\n\\\\t\\\\t\\\\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\\\\n\\\\t\\\\t\\\\tif (distToStart < -1.) {\\\\n\\\\t\\\\t\\\\t\\\\tdiscard;\\\\n\\\\t\\\\t\\\\t\\\\treturn;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\talpha *= min(max(distToStart + 1., 0.), 1.);\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tif (enableEndMiter == 1.) {\\\\n\\\\t\\\\t\\\\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\\\\n\\\\t\\\\t\\\\tif (distToEnd < -1.) {\\\\n\\\\t\\\\t\\\\t\\\\tdiscard;\\\\n\\\\t\\\\t\\\\t\\\\treturn;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\talpha *= min(max(distToEnd + 1., 0.), 1.);\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\n\\\\t// round miter\\\\n\\\\telse if (miterMode == 2.) {\\\\n\\\\t\\\\tif (enableStartMiter == 1.) {\\\\n\\\\t\\\\t\\\\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\\\\n\\\\t\\\\t\\\\tif (distToStart < 0.) {\\\\n\\\\t\\\\t\\\\t\\\\tfloat radius = length(gl_FragCoord.xy - startCoord);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tif(radius > cutoff + .5) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tdiscard;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tif (enableEndMiter == 1.) {\\\\n\\\\t\\\\t\\\\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\\\\n\\\\t\\\\t\\\\tif (distToEnd < 0.) {\\\\n\\\\t\\\\t\\\\t\\\\tfloat radius = length(gl_FragCoord.xy - endCoord);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tif(radius > cutoff + .5) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tdiscard;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\n\\\\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\\\\n\\\\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\\\\n\\\\n\\\\tgl_FragColor = fragColor;\\\\n\\\\tgl_FragColor.a *= alpha * opacity * dash;\\\\n}\\\\n\\\"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aColor:{buffer:t.prop(\\\"colorBuffer\\\"),stride:4,offset:0,divisor:1},bColor:{buffer:t.prop(\\\"colorBuffer\\\"),stride:4,offset:4,divisor:1},prevCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:0,divisor:1},aCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:16,divisor:1},nextCoord:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:24,divisor:1}}},n))}catch(t){e=i}return{fill:t({primitive:\\\"triangle\\\",elements:function(t,e){return e.triangles},offset:0,vert:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec2 position, positionFract;\\\\n\\\\nuniform vec4 color;\\\\nuniform vec2 scale, scaleFract, translate, translateFract;\\\\nuniform float pixelRatio, id;\\\\nuniform vec4 viewport;\\\\nuniform float opacity;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nconst float MAX_LINES = 256.;\\\\n\\\\nvoid main() {\\\\n\\\\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\\\\n\\\\n\\\\tvec2 position = position * scale + translate\\\\n       + positionFract * scale + translateFract\\\\n       + position * scaleFract\\\\n       + positionFract * scaleFract;\\\\n\\\\n\\\\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\\\\n\\\\n\\\\tfragColor = color / 255.;\\\\n\\\\tfragColor.a *= opacity;\\\\n}\\\\n\\\"]),frag:o([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n\\\\tgl_FragColor = fragColor;\\\\n}\\\\n\\\"]),uniforms:{scale:t.prop(\\\"scale\\\"),color:t.prop(\\\"fill\\\"),scaleFract:t.prop(\\\"scaleFract\\\"),translateFract:t.prop(\\\"translateFract\\\"),translate:t.prop(\\\"translate\\\"),opacity:t.prop(\\\"opacity\\\"),pixelRatio:t.context(\\\"pixelRatio\\\"),id:t.prop(\\\"id\\\"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:t.prop(\\\"positionBuffer\\\"),stride:8,offset:8},positionFract:{buffer:t.prop(\\\"positionFractBuffer\\\"),stride:8,offset:8}},blend:n.blend,depth:{enable:!1},scissor:n.scissor,stencil:n.stencil,viewport:n.viewport}),rect:i,miter:e}},v.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},v.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];e.length&&(t=this).update.apply(t,e),this.draw()},v.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];return(e.length?e:this.passes).forEach(function(e,r){var n;if(e&&Array.isArray(e))return(n=t).draw.apply(n,e);\\\"number\\\"==typeof e&&(e=t.passes[e]),e&&e.count>1&&e.opacity&&(t.regl._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&t.shaders.fill(e),e.thickness&&(e.scale[0]*e.viewport.width>v.precisionThreshold||e.scale[1]*e.viewport.height>v.precisionThreshold?t.shaders.rect(e):\\\"rect\\\"===e.join||!e.join&&(e.thickness<=2||e.count>=v.maxPoints)?t.shaders.rect(e):t.shaders.miter(e)))}),this},v.prototype.update=function(t){var e=this;if(t){null!=t.length?\\\"number\\\"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var r=this.regl,o=this.gl;if(t.forEach(function(t,f){var d=e.passes[f];if(void 0!==t)if(null!==t){if(\\\"number\\\"==typeof t[0]&&(t={positions:t}),t=s(t,{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\\\"}),d||(e.passes[f]=d={id:f,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:r.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:\\\"linear\\\",min:\\\"linear\\\"}),colorBuffer:r.buffer({usage:\\\"dynamic\\\",type:\\\"uint8\\\",data:new Uint8Array}),positionBuffer:r.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array}),positionFractBuffer:r.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array})},t=a({},v.defaults,t)),null!=t.thickness&&(d.thickness=parseFloat(t.thickness)),null!=t.opacity&&(d.opacity=parseFloat(t.opacity)),null!=t.miterLimit&&(d.miterLimit=parseFloat(t.miterLimit)),null!=t.overlay&&(d.overlay=!!t.overlay,f<v.maxLines&&(d.depth=2*(v.maxLines-1-f%v.maxLines)/v.maxLines-1)),null!=t.join&&(d.join=t.join),null!=t.hole&&(d.hole=t.hole),null!=t.fill&&(d.fill=t.fill?n(t.fill,\\\"uint8\\\"):null),null!=t.viewport&&(d.viewport=g(t.viewport)),d.viewport||(d.viewport=g([o.drawingBufferWidth,o.drawingBufferHeight])),null!=t.close&&(d.close=t.close),null===t.positions&&(t.positions=[]),t.positions){var m,y;if(t.positions.x&&t.positions.y){var x=t.positions.x,b=t.positions.y;y=d.count=Math.max(x.length,b.length),m=new Float64Array(2*y);for(var _=0;_<y;_++)m[2*_]=x[_],m[2*_+1]=b[_]}else m=l(t.positions,\\\"float64\\\"),y=d.count=Math.floor(m.length/2);var w=d.bounds=i(m,2);if(d.fill){for(var k=[],M={},A=0,T=0,S=0,E=d.count;T<E;T++){var C=m[2*T],L=m[2*T+1];isNaN(C)||isNaN(L)||null==C||null==L?(C=m[2*A],L=m[2*A+1],M[T]=A):A=T,k[S++]=C,k[S++]=L}for(var z=c(k,d.hole||[]),O=0,I=z.length;O<I;O++)null!=M[z[O]]&&(z[O]=M[z[O]]);d.triangles=z}var P=new Float64Array(m);u(P,2,w);var D=new Float64Array(2*y+6);d.close?m[0]===m[2*y-2]&&m[1]===m[2*y-1]?(D[0]=P[2*y-4],D[1]=P[2*y-3]):(D[0]=P[2*y-2],D[1]=P[2*y-1]):(D[0]=P[0],D[1]=P[1]),D.set(P,2),d.close?m[0]===m[2*y-2]&&m[1]===m[2*y-1]?(D[2*y+2]=P[2],D[2*y+3]=P[3],d.count-=1):(D[2*y+2]=P[0],D[2*y+3]=P[1],D[2*y+4]=P[2],D[2*y+5]=P[3]):(D[2*y+2]=P[2*y-2],D[2*y+3]=P[2*y-1],D[2*y+4]=P[2*y-2],D[2*y+5]=P[2*y-1]),d.positionBuffer(h(D)),d.positionFractBuffer(p(D))}if(t.range?d.range=t.range:d.range||(d.range=d.bounds),(t.range||t.positions)&&d.count){var R=d.bounds,B=R[2]-R[0],F=R[3]-R[1],N=d.range[2]-d.range[0],j=d.range[3]-d.range[1];d.scale=[B/N,F/j],d.translate=[-d.range[0]/N+R[0]/N||0,-d.range[1]/j+R[1]/j||0],d.scaleFract=p(d.scale),d.translateFract=p(d.translate)}if(t.dashes){var V,U=0;if(!t.dashes||t.dashes.length<2)U=1,V=new Uint8Array([255,255,255,255,255,255,255,255]);else{U=0;for(var q=0;q<t.dashes.length;++q)U+=t.dashes[q];V=new Uint8Array(U*v.dashMult);for(var H=0,G=255,W=0;W<2;W++)for(var Y=0;Y<t.dashes.length;++Y){for(var X=0,Z=t.dashes[Y]*v.dashMult*.5;X<Z;++X)V[H++]=G;G^=255}}d.dashLength=U,d.dashTexture({channels:1,data:V,width:V.length,height:1,mag:\\\"linear\\\",min:\\\"linear\\\"},0,0)}if(t.color){var $=d.count,J=t.color;J||(J=\\\"transparent\\\");var K=new Uint8Array(4*$+4);if(Array.isArray(J)&&\\\"number\\\"!=typeof J[0]){for(var Q=0;Q<$;Q++){var tt=n(J[Q],\\\"uint8\\\");K.set(tt,4*Q)}K.set(n(J[0],\\\"uint8\\\"),4*$)}else for(var et=n(J,\\\"uint8\\\"),rt=0;rt<$+1;rt++)K.set(et,4*rt);d.colorBuffer({usage:\\\"dynamic\\\",type:\\\"uint8\\\",data:K})}}else e.passes[f]=null}),t.length<this.passes.length){for(var f=t.length;f<this.passes.length;f++){var d=e.passes[f];d&&(d.colorBuffer.destroy(),d.positionBuffer.destroy(),d.dashTexture.destroy())}this.passes.length=t.length}for(var m=[],y=0;y<this.passes.length;y++)null!==e.passes[y]&&m.push(e.passes[y]);return this.passes=m,this}},v.prototype.destroy=function(){return this.passes.forEach(function(t){t.colorBuffer.destroy(),t.positionBuffer.destroy(),t.dashTexture.destroy()}),this.passes.length=0,this}},{\\\"array-bounds\\\":53,\\\"array-normalize\\\":54,\\\"color-normalize\\\":108,earcut:156,\\\"es6-weak-map\\\":209,\\\"flatten-vertex-data\\\":216,glslify:392,\\\"object-assign\\\":437,\\\"parse-rect\\\":442,\\\"pick-by-alias\\\":448,\\\"to-float32\\\":515}],475:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scatter\\\"),i=t(\\\"object-assign\\\");e.exports=function(t,e){var r=new n(t,e),a=r.render.bind(r);return i(a,{render:a,update:r.update.bind(r),draw:r.draw.bind(r),destroy:r.destroy.bind(r),regl:r.regl,gl:r.gl,canvas:r.gl.canvas,groups:r.groups,markers:r.markerCache,palette:r.palette}),a}},{\\\"./scatter\\\":476,\\\"object-assign\\\":437}],476:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-normalize\\\"),i=t(\\\"array-bounds\\\"),a=t(\\\"color-id\\\"),o=t(\\\"point-cluster\\\"),s=t(\\\"object-assign\\\"),l=t(\\\"glslify\\\"),c=t(\\\"pick-by-alias\\\"),u=t(\\\"update-diff\\\"),f=t(\\\"flatten-vertex-data\\\"),h=t(\\\"is-iexplorer\\\"),p=t(\\\"to-float32\\\"),d=t(\\\"parse-rect\\\");function g(t,e){var r=this;if(!(this instanceof g))return new g(t,e);\\\"function\\\"==typeof t?(e||(e={}),e.regl=t):(e=t,t=null),e&&e.length&&(e.positions=e);var n,i=(t=e.regl)._gl,a=[];this.tooManyColors=h,n=t.texture({data:new Uint8Array(1020),width:255,height:1,type:\\\"uint8\\\",format:\\\"rgba\\\",wrapS:\\\"clamp\\\",wrapT:\\\"clamp\\\",mag:\\\"nearest\\\",min:\\\"nearest\\\"}),s(this,{regl:t,gl:i,groups:[],markerCache:[null],markerTextures:[null],palette:a,paletteIds:{},paletteTexture:n,maxColors:255,maxSize:100,canvas:i.canvas}),this.update(e);var o={uniforms:{pixelRatio:t.context(\\\"pixelRatio\\\"),palette:n,paletteSize:function(t,e){return[r.tooManyColors?0:255,n.height]},scale:t.prop(\\\"scale\\\"),scaleFract:t.prop(\\\"scaleFract\\\"),translate:t.prop(\\\"translate\\\"),translateFract:t.prop(\\\"translateFract\\\"),opacity:t.prop(\\\"opacity\\\"),marker:t.prop(\\\"markerTexture\\\")},attributes:{x:function(t,e){return e.xAttr||{buffer:e.positionBuffer,stride:8,offset:0}},y:function(t,e){return e.yAttr||{buffer:e.positionBuffer,stride:8,offset:4}},xFract:function(t,e){return e.xAttr?{constant:[0,0]}:{buffer:e.positionFractBuffer,stride:8,offset:0}},yFract:function(t,e){return e.yAttr?{constant:[0,0]}:{buffer:e.positionFractBuffer,stride:8,offset:4}},size:function(t,e){return e.size.length?{buffer:e.sizeBuffer,stride:2,offset:0}:{constant:[Math.round(255*e.size/r.maxSize)]}},borderSize:function(t,e){return e.borderSize.length?{buffer:e.sizeBuffer,stride:2,offset:1}:{constant:[Math.round(255*e.borderSize/r.maxSize)]}},colorId:function(t,e){return e.color.length?{buffer:e.colorBuffer,stride:r.tooManyColors?8:4,offset:0}:{constant:r.tooManyColors?a.slice(4*e.color,4*e.color+4):[e.color]}},borderColorId:function(t,e){return e.borderColor.length?{buffer:e.colorBuffer,stride:r.tooManyColors?8:4,offset:r.tooManyColors?4:2}:{constant:r.tooManyColors?a.slice(4*e.borderColor,4*e.borderColor+4):[e.borderColor]}},isActive:function(t,e){return!0===e.activation?{constant:[1]}:e.activation?e.activation:{constant:[0]}}},blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:\\\"one minus dst alpha\\\",dstAlpha:\\\"one\\\"}},scissor:{enable:!0,box:t.prop(\\\"viewport\\\")},viewport:t.prop(\\\"viewport\\\"),stencil:{enable:!1},depth:{enable:!1},elements:t.prop(\\\"elements\\\"),count:t.prop(\\\"count\\\"),offset:t.prop(\\\"offset\\\"),primitive:\\\"points\\\"},c=s({},o);c.frag=l([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor, fragBorderColor;\\\\nvarying float fragWidth, fragBorderColorLevel, fragColorLevel;\\\\n\\\\nuniform sampler2D marker;\\\\nuniform float pixelRatio, opacity;\\\\n\\\\nfloat smoothStep(float x, float y) {\\\\n  return 1.0 / (1.0 + exp(50.0*(x - y)));\\\\n}\\\\n\\\\nvoid main() {\\\\n  float dist = texture2D(marker, gl_PointCoord).r, delta = fragWidth;\\\\n\\\\n  // max-distance alpha\\\\n  if (dist < 0.003) discard;\\\\n\\\\n  // null-border case\\\\n  if (fragBorderColorLevel == fragColorLevel || fragBorderColor.a == 0.) {\\\\n    float colorAmt = smoothstep(.5 - delta, .5 + delta, dist);\\\\n    gl_FragColor = vec4(fragColor.rgb, colorAmt * fragColor.a * opacity);\\\\n  }\\\\n  else {\\\\n    float borderColorAmt = smoothstep(fragBorderColorLevel - delta, fragBorderColorLevel + delta, dist);\\\\n    float colorAmt = smoothstep(fragColorLevel - delta, fragColorLevel + delta, dist);\\\\n\\\\n    vec4 color = fragBorderColor;\\\\n    color.a *= borderColorAmt;\\\\n    color = mix(color, fragColor, colorAmt);\\\\n    color.a *= opacity;\\\\n\\\\n    gl_FragColor = color;\\\\n  }\\\\n\\\\n}\\\\n\\\"]),c.vert=l([\\\"precision mediump float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute float x, y, xFract, yFract;\\\\nattribute float size, borderSize;\\\\nattribute vec4 colorId, borderColorId;\\\\nattribute float isActive;\\\\n\\\\nuniform vec2 scale, scaleFract, translate, translateFract, paletteSize;\\\\nuniform float pixelRatio;\\\\nuniform sampler2D palette;\\\\n\\\\nconst float maxSize = 100.;\\\\nconst float borderLevel = .5;\\\\n\\\\nvarying vec4 fragColor, fragBorderColor;\\\\nvarying float fragPointSize, fragBorderRadius,\\\\n    fragWidth, fragBorderColorLevel, fragColorLevel;\\\\n\\\\nvec2 paletteCoord(float id) {\\\\n  return vec2(\\\\n    (mod(id, paletteSize.x) + .5) / paletteSize.x,\\\\n    (floor(id / paletteSize.x) + .5) / paletteSize.y\\\\n  );\\\\n}\\\\nvec2 paletteCoord(vec2 id) {\\\\n  return vec2(\\\\n    (id.x + .5) / paletteSize.x,\\\\n    (id.y + .5) / paletteSize.y\\\\n  );\\\\n}\\\\nvec4 getColor(vec4 id) {\\\\n  // zero-palette means we deal with direct buffer\\\\n  if (paletteSize.x == 0.) return id / 255.;\\\\n  return texture2D(palette, paletteCoord(id.xy));\\\\n}\\\\n\\\\nvoid main() {\\\\n  if (isActive == 0.) return;\\\\n\\\\n  vec2 position = vec2(x, y);\\\\n  vec2 positionFract = vec2(xFract, yFract);\\\\n\\\\n  vec4 color = getColor(colorId);\\\\n  vec4 borderColor = getColor(borderColorId);\\\\n\\\\n  float size = size * maxSize / 255.;\\\\n  float borderSize = borderSize * maxSize / 255.;\\\\n\\\\n  gl_PointSize = 2. * size * pixelRatio;\\\\n  fragPointSize = size * pixelRatio;\\\\n\\\\n  vec2 pos = (position + translate) * scale\\\\n      + (positionFract + translateFract) * scale\\\\n      + (position + translate) * scaleFract\\\\n      + (positionFract + translateFract) * scaleFract;\\\\n\\\\n  gl_Position = vec4(pos * 2. - 1., 0, 1);\\\\n\\\\n  fragColor = color;\\\\n  fragBorderColor = borderColor;\\\\n  fragWidth = 1. / gl_PointSize;\\\\n\\\\n  fragBorderColorLevel = clamp(borderLevel - borderLevel * borderSize / size, 0., 1.);\\\\n  fragColorLevel = clamp(borderLevel + (1. - borderLevel) * borderSize / size, 0., 1.);\\\\n}\\\\n\\\"]),this.drawMarker=t(c);var u=s({},o);u.frag=l([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor, fragBorderColor;\\\\n\\\\nuniform float opacity;\\\\nvarying float fragBorderRadius, fragWidth;\\\\n\\\\nfloat smoothStep(float edge0, float edge1, float x) {\\\\n\\\\tfloat t;\\\\n\\\\tt = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\\\\n\\\\treturn t * t * (3.0 - 2.0 * t);\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\tfloat radius, alpha = 1.0, delta = fragWidth;\\\\n\\\\n\\\\tradius = length(2.0 * gl_PointCoord.xy - 1.0);\\\\n\\\\n\\\\tif (radius > 1.0 + delta) {\\\\n\\\\t\\\\tdiscard;\\\\n\\\\t}\\\\n\\\\n\\\\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\\\\n\\\\n\\\\tfloat borderRadius = fragBorderRadius;\\\\n\\\\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\\\\n\\\\tvec4 color = mix(fragColor, fragBorderColor, ratio);\\\\n\\\\tcolor.a *= alpha * opacity;\\\\n\\\\tgl_FragColor = color;\\\\n}\\\\n\\\"]),u.vert=l([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute float x, y, xFract, yFract;\\\\nattribute float size, borderSize;\\\\nattribute vec4 colorId, borderColorId;\\\\nattribute float isActive;\\\\n\\\\nuniform vec2 scale, scaleFract, translate, translateFract;\\\\nuniform float pixelRatio;\\\\nuniform sampler2D palette;\\\\nuniform vec2 paletteSize;\\\\n\\\\nconst float maxSize = 100.;\\\\n\\\\nvarying vec4 fragColor, fragBorderColor;\\\\nvarying float fragBorderRadius, fragWidth;\\\\n\\\\nvec2 paletteCoord(float id) {\\\\n  return vec2(\\\\n    (mod(id, paletteSize.x) + .5) / paletteSize.x,\\\\n    (floor(id / paletteSize.x) + .5) / paletteSize.y\\\\n  );\\\\n}\\\\nvec2 paletteCoord(vec2 id) {\\\\n  return vec2(\\\\n    (id.x + .5) / paletteSize.x,\\\\n    (id.y + .5) / paletteSize.y\\\\n  );\\\\n}\\\\n\\\\nvec4 getColor(vec4 id) {\\\\n  // zero-palette means we deal with direct buffer\\\\n  if (paletteSize.x == 0.) return id / 255.;\\\\n  return texture2D(palette, paletteCoord(id.xy));\\\\n}\\\\n\\\\nvoid main() {\\\\n  // ignore inactive points\\\\n  if (isActive == 0.) return;\\\\n\\\\n  vec2 position = vec2(x, y);\\\\n  vec2 positionFract = vec2(xFract, yFract);\\\\n\\\\n  vec4 color = getColor(colorId);\\\\n  vec4 borderColor = getColor(borderColorId);\\\\n\\\\n  float size = size * maxSize / 255.;\\\\n  float borderSize = borderSize * maxSize / 255.;\\\\n\\\\n  gl_PointSize = (size + borderSize) * pixelRatio;\\\\n\\\\n  vec2 pos = (position + translate) * scale\\\\n      + (positionFract + translateFract) * scale\\\\n      + (position + translate) * scaleFract\\\\n      + (positionFract + translateFract) * scaleFract;\\\\n\\\\n  gl_Position = vec4(pos * 2. - 1., 0, 1);\\\\n\\\\n  fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\\\\n  fragColor = color;\\\\n  fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\\\\n  fragWidth = 1. / gl_PointSize;\\\\n}\\\\n\\\"]),h&&(u.frag=u.frag.replace(\\\"smoothstep\\\",\\\"smoothStep\\\"),c.frag=c.frag.replace(\\\"smoothstep\\\",\\\"smoothStep\\\")),this.drawCircle=t(u)}e.exports=g,g.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},g.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];return e.length&&(t=this).update.apply(t,e),this.draw(),this},g.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];var n=this.groups;if(1===e.length&&Array.isArray(e[0])&&(null===e[0][0]||Array.isArray(e[0][0]))&&(e=e[0]),this.regl._refresh(),e.length)for(var i=0;i<e.length;i++)t.drawItem(i,e[i]);else n.forEach(function(e,r){t.drawItem(r)});return this},g.prototype.drawItem=function(t,e){var r=this.groups,n=r[t];if(\\\"number\\\"==typeof e&&(t=e,n=r[e],e=null),n&&n.count&&n.opacity){n.activation[0]&&this.drawCircle(this.getMarkerDrawOptions(0,n,e));for(var i=[],a=1;a<n.activation.length;a++)n.activation[a]&&(!0===n.activation[a]||n.activation[a].data.length)&&i.push.apply(i,this.getMarkerDrawOptions(a,n,e));i.length&&this.drawMarker(i)}},g.prototype.getMarkerDrawOptions=function(t,e,r){var n=e.range,i=e.tree,a=e.viewport,o=e.activation,l=e.selectionBuffer,c=e.count;this.regl;if(!i)return r?[s({},e,{markerTexture:this.markerTextures[t],activation:o[t],count:r.length,elements:r,offset:0})]:[s({},e,{markerTexture:this.markerTextures[t],activation:o[t],offset:0})];var u=[],f=i.range(n,{lod:!0,px:[(n[2]-n[0])/a.width,(n[3]-n[1])/a.height]});if(r){for(var h=o[t].data,p=new Uint8Array(c),d=0;d<r.length;d++){var g=r[d];p[g]=h?h[g]:1}l.subdata(p)}for(var v=f.length;v--;){var m=f[v],y=m[0],x=m[1];u.push(s({},e,{markerTexture:this.markerTextures[t],activation:r?l:o[t],offset:y,count:x-y}))}return u},g.prototype.update=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){1===e.length&&Array.isArray(e[0])&&(e=e[0]);var n=this.groups,a=this.gl,l=this.regl,h=this.maxSize,v=this.maxColors,m=this.palette;this.groups=n=e.map(function(e,r){var y=n[r];if(void 0===e)return y;null===e?e={positions:null}:\\\"function\\\"==typeof e?e={ondraw:e}:\\\"number\\\"==typeof e[0]&&(e={positions:e}),null===(e=c(e,{positions:\\\"positions data points\\\",snap:\\\"snap cluster lod tree\\\",size:\\\"sizes size radius\\\",borderSize:\\\"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline\\\",color:\\\"colors color fill fill-color fillColor\\\",borderColor:\\\"borderColors borderColor stroke stroke-color strokeColor\\\",marker:\\\"markers marker shape\\\",range:\\\"range dataBox databox\\\",viewport:\\\"viewport viewPort viewBox viewbox\\\",opacity:\\\"opacity alpha transparency\\\",bounds:\\\"bound bounds boundaries limits\\\"})).positions&&(e.positions=[]),y||(n[r]=y={id:r,scale:null,translate:null,scaleFract:null,translateFract:null,activation:[],selectionBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"stream\\\",type:\\\"uint8\\\"}),sizeBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"dynamic\\\",type:\\\"uint8\\\"}),colorBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"dynamic\\\",type:\\\"uint8\\\"}),positionBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"dynamic\\\",type:\\\"float\\\"}),positionFractBuffer:l.buffer({data:new Uint8Array(0),usage:\\\"dynamic\\\",type:\\\"float\\\"})},e=s({},g.defaults,e)),!e.positions||\\\"marker\\\"in e||(e.marker=y.marker,delete y.marker),!e.marker||\\\"positions\\\"in e||(e.positions=y.positions,delete y.positions);var x=0,b=0;if(u(y,e,[{snap:!0,size:function(t,e){return null==t&&(t=g.defaults.size),x+=t&&t.length?1:0,t},borderSize:function(t,e){return null==t&&(t=g.defaults.borderSize),x+=t&&t.length?1:0,t},opacity:parseFloat,color:function(e,r){return null==e&&(e=g.defaults.color),e=t.updateColor(e),b++,e},borderColor:function(e,r){return null==e&&(e=g.defaults.borderColor),e=t.updateColor(e),b++,e},bounds:function(t,e,r){return\\\"range\\\"in r||(r.range=null),t},positions:function(t,e,r){var n=e.snap,a=e.positionBuffer,s=e.positionFractBuffer,c=e.selectionBuffer;if(t.x||t.y)return t.x.length?e.xAttr={buffer:l.buffer(t.x),offset:0,stride:4,count:t.x.length}:e.xAttr={buffer:t.x.buffer,offset:4*t.x.offset||0,stride:4*(t.x.stride||1),count:t.x.count},t.y.length?e.yAttr={buffer:l.buffer(t.y),offset:0,stride:4,count:t.y.length}:e.yAttr={buffer:t.y.buffer,offset:4*t.y.offset||0,stride:4*(t.y.stride||1),count:t.y.count},e.count=Math.max(e.xAttr.count,e.yAttr.count),t;t=f(t,\\\"float64\\\");var u=e.count=Math.floor(t.length/2),h=e.bounds=u?i(t,2):null;if(r.range||e.range||(delete e.range,r.range=h),r.marker||e.marker||(delete e.marker,r.marker=null),n&&(!0===n||u>n)?e.tree=o(t,{bounds:h}):n&&n.length&&(e.tree=n),e.tree){var d={primitive:\\\"points\\\",usage:\\\"static\\\",data:e.tree,type:\\\"uint32\\\"};e.elements?e.elements(d):e.elements=l.elements(d)}return a({data:p.float(t),usage:\\\"dynamic\\\"}),s({data:p.fract(t),usage:\\\"dynamic\\\"}),c({data:new Uint8Array(u),type:\\\"uint8\\\",usage:\\\"stream\\\"}),t}},{marker:function(e,r,n){var i=r.activation;if(i.forEach(function(t){return t&&t.destroy&&t.destroy()}),i.length=0,e&&\\\"number\\\"!=typeof e[0]){for(var a=[],o=0,s=Math.min(e.length,r.count);o<s;o++){var c=t.addMarker(e[o]);a[c]||(a[c]=new Uint8Array(r.count)),a[c][o]=1}for(var u=0;u<a.length;u++)if(a[u]){var f={data:a[u],type:\\\"uint8\\\",usage:\\\"static\\\"};i[u]?i[u](f):i[u]=l.buffer(f),i[u].data=a[u]}}else{i[t.addMarker(e)]=!0}return e},range:function(t,e,r){var n=e.bounds;if(n)return t||(t=n),e.scale=[1/(t[2]-t[0]),1/(t[3]-t[1])],e.translate=[-t[0],-t[1]],e.scaleFract=p.fract(e.scale),e.translateFract=p.fract(e.translate),t},viewport:function(t){return d(t||[a.drawingBufferWidth,a.drawingBufferHeight])}}]),x){var _=y.count,w=y.size,k=y.borderSize,M=y.sizeBuffer,A=new Uint8Array(2*_);if(w.length||k.length)for(var T=0;T<_;T++)A[2*T]=Math.round(255*(null==w[T]?w:w[T])/h),A[2*T+1]=Math.round(255*(null==k[T]?k:k[T])/h);M({data:A,usage:\\\"dynamic\\\"})}if(b){var S,E=y.count,C=y.color,L=y.borderColor,z=y.colorBuffer;if(t.tooManyColors){if(C.length||L.length){S=new Uint8Array(8*E);for(var O=0;O<E;O++){var I=C[O];S[8*O]=m[4*I],S[8*O+1]=m[4*I+1],S[8*O+2]=m[4*I+2],S[8*O+3]=m[4*I+3];var P=L[O];S[8*O+4]=m[4*P],S[8*O+5]=m[4*P+1],S[8*O+6]=m[4*P+2],S[8*O+7]=m[4*P+3]}}}else if(C.length||L.length){S=new Uint8Array(4*E+2);for(var D=0;D<E;D++)null!=C[D]&&(S[4*D]=C[D]%v,S[4*D+1]=Math.floor(C[D]/v)),null!=L[D]&&(S[4*D+2]=L[D]%v,S[4*D+3]=Math.floor(L[D]/v))}z({data:S||new Uint8Array(0),type:\\\"uint8\\\",usage:\\\"dynamic\\\"})}return y})}},g.prototype.addMarker=function(t){var e,r=this.markerTextures,n=this.regl,i=this.markerCache,a=null==t?0:i.indexOf(t);if(a>=0)return a;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)e=t;else{e=new Uint8Array(t.length);for(var o=0,s=t.length;o<s;o++)e[o]=255*t[o]}var l=Math.floor(Math.sqrt(e.length));return a=r.length,i.push(t),r.push(n.texture({channels:1,data:e,radius:l,mag:\\\"linear\\\",min:\\\"linear\\\"})),a},g.prototype.updateColor=function(t){var e=this.paletteIds,r=this.palette,i=this.maxColors;Array.isArray(t)||(t=[t]);var o=[];if(\\\"number\\\"==typeof t[0]){var s=[];if(Array.isArray(t))for(var l=0;l<t.length;l+=4)s.push(t.slice(l,l+4));else for(var c=0;c<t.length;c+=4)s.push(t.subarray(c,c+4));t=s}for(var u=0;u<t.length;u++){var f=t[u];f=n(f,\\\"uint8\\\");var h=a(f,!1);if(null==e[h]){var p=r.length;e[h]=Math.floor(p/4),r[p]=f[0],r[p+1]=f[1],r[p+2]=f[2],r[p+3]=f[3]}o[u]=e[h]}return!this.tooManyColors&&r.length>i*i*4&&(this.tooManyColors=!0),this.updatePalette(r),1===o.length?o[0]:o},g.prototype.updatePalette=function(t){if(!this.tooManyColors){var e=this.maxColors,r=this.paletteTexture,n=Math.ceil(.25*t.length/e);if(n>1)for(var i=.25*(t=t.slice()).length%e;i<n*e;i++)t.push(0,0,0,0);r.height<n&&r.resize(e,n),r.subimage({width:Math.min(.25*t.length,e),height:n,data:t},0,0)}},g.prototype.destroy=function(){return this.groups.forEach(function(t){t.sizeBuffer.destroy(),t.positionBuffer.destroy(),t.positionFractBuffer.destroy(),t.colorBuffer.destroy(),t.activation.forEach(function(t){return t&&t.destroy&&t.destroy()}),t.selectionBuffer.destroy(),t.elements&&t.elements.destroy()}),this.groups.length=0,this.paletteTexture.destroy(),this.markerTextures.forEach(function(t){return t&&t.destroy&&t.destroy()}),this}},{\\\"array-bounds\\\":53,\\\"color-id\\\":106,\\\"color-normalize\\\":108,\\\"flatten-vertex-data\\\":216,glslify:392,\\\"is-iexplorer\\\":402,\\\"object-assign\\\":437,\\\"parse-rect\\\":442,\\\"pick-by-alias\\\":448,\\\"point-cluster\\\":452,\\\"to-float32\\\":515,\\\"update-diff\\\":526}],477:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"regl-scatter2d/scatter\\\"),i=t(\\\"pick-by-alias\\\"),a=t(\\\"array-bounds\\\"),o=t(\\\"raf\\\"),s=t(\\\"array-range\\\"),l=t(\\\"parse-rect\\\"),c=t(\\\"flatten-vertex-data\\\");function u(t,e){if(!(this instanceof u))return new u(t,e);this.traces=[],this.passes={},this.regl=t,this.scatter=n(t),this.canvas=this.scatter.canvas}function f(t,e,r){return(null!=t.id?t.id:t)<<16|(255&e)<<8|255&r}function h(t,e,r){var n,i,a,o,s=t[e],l=t[r];return s.length>2?(s[0],s[2],n=s[1],i=s[3]):s.length?(n=s[0],i=s[1]):(s.x,n=s.y,s.x+s.width,i=s.y+s.height),l.length>2?(a=l[0],o=l[2],l[1],l[3]):l.length?(a=l[0],o=l[1]):(a=l.x,l.y,o=l.x+l.width,l.y+l.height),[a,n,o,i]}function p(t){if(\\\"number\\\"==typeof t)return[t,t,t,t];if(2===t.length)return[t[0],t[1],t[0],t[1]];var e=l(t);return[e.x,e.y,e.x+e.width,e.y+e.height]}e.exports=u,u.prototype.render=function(){for(var t,e=this,r=[],n=arguments.length;n--;)r[n]=arguments[n];return r.length&&(t=this).update.apply(t,r),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?null==this.planned&&(this.planned=o(function(){e.draw(),e.dirty=!0,e.planned=null})):(this.draw(),this.dirty=!0,o(function(){e.dirty=!1})),this)},u.prototype.update=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=0;n<e.length;n++)this.updateItem(n,e[n]);this.traces=this.traces.filter(Boolean);for(var i=[],a=0,o=0;o<this.traces.length;o++){for(var s=this.traces[o],l=this.traces[o].passes,c=0;c<l.length;c++)i.push(this.passes[l[c]]);s.passOffset=a,a+=s.passes.length}return(t=this.scatter).update.apply(t,i),this}},u.prototype.updateItem=function(t,e){var r=this.regl;if(null===e)return this.traces[t]=null,this;if(!e)return this;var n,o=i(e,{data:\\\"data items columns rows values dimensions samples x\\\",snap:\\\"snap cluster\\\",size:\\\"sizes size radius\\\",color:\\\"colors color fill fill-color fillColor\\\",opacity:\\\"opacity alpha transparency opaque\\\",borderSize:\\\"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline\\\",borderColor:\\\"borderColors borderColor bordercolor stroke stroke-color strokeColor\\\",marker:\\\"markers marker shape\\\",range:\\\"range ranges databox dataBox\\\",viewport:\\\"viewport viewBox viewbox\\\",domain:\\\"domain domains area areas\\\",padding:\\\"pad padding paddings pads margin margins\\\",transpose:\\\"transpose transposed\\\",diagonal:\\\"diagonal diag showDiagonal\\\",upper:\\\"upper up top upperhalf upperHalf showupperhalf showUpper showUpperHalf\\\",lower:\\\"lower low bottom lowerhalf lowerHalf showlowerhalf showLowerHalf showLower\\\"}),s=this.traces[t]||(this.traces[t]={id:t,buffer:r.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array}),color:\\\"black\\\",marker:null,size:12,borderColor:\\\"transparent\\\",borderSize:1,viewport:l([r._gl.drawingBufferWidth,r._gl.drawingBufferHeight]),padding:[0,0,0,0],opacity:1,diagonal:!0,upper:!0,lower:!0});if(null!=o.color&&(s.color=o.color),null!=o.size&&(s.size=o.size),null!=o.marker&&(s.marker=o.marker),null!=o.borderColor&&(s.borderColor=o.borderColor),null!=o.borderSize&&(s.borderSize=o.borderSize),null!=o.opacity&&(s.opacity=o.opacity),o.viewport&&(s.viewport=l(o.viewport)),null!=o.diagonal&&(s.diagonal=o.diagonal),null!=o.upper&&(s.upper=o.upper),null!=o.lower&&(s.lower=o.lower),o.data){s.buffer(c(o.data)),s.columns=o.data.length,s.count=o.data[0].length,s.bounds=[];for(var u=0;u<s.columns;u++)s.bounds[u]=a(o.data[u],1)}o.range&&(s.range=o.range,n=s.range&&\\\"number\\\"!=typeof s.range[0]),o.domain&&(s.domain=o.domain);var d=!1;null!=o.padding&&(Array.isArray(o.padding)&&o.padding.length===s.columns&&\\\"number\\\"==typeof o.padding[o.padding.length-1]?(s.padding=o.padding.map(p),d=!0):s.padding=p(o.padding));var g=s.columns,v=s.count,m=s.viewport.width,y=s.viewport.height,x=s.viewport.x,b=s.viewport.y,_=m/g,w=y/g;s.passes=[];for(var k=0;k<g;k++)for(var M=0;M<g;M++)if((s.diagonal||M!==k)&&(s.upper||!(k>M))&&(s.lower||!(k<M))){var A=f(s.id,k,M),T=this.passes[A]||(this.passes[A]={});if(o.data&&(o.transpose?T.positions={x:{buffer:s.buffer,offset:M,count:v,stride:g},y:{buffer:s.buffer,offset:k,count:v,stride:g}}:T.positions={x:{buffer:s.buffer,offset:M*v,count:v},y:{buffer:s.buffer,offset:k*v,count:v}},T.bounds=h(s.bounds,k,M)),o.domain||o.viewport||o.data){var S=d?h(s.padding,k,M):s.padding;if(s.domain){var E=h(s.domain,k,M),C=E[0],L=E[1],z=E[2],O=E[3];T.viewport=[x+C*m+S[0],b+L*y+S[1],x+z*m-S[2],b+O*y-S[3]]}else T.viewport=[x+M*_+_*S[0],b+k*w+w*S[1],x+(M+1)*_-_*S[2],b+(k+1)*w-w*S[3]]}o.color&&(T.color=s.color),o.size&&(T.size=s.size),o.marker&&(T.marker=s.marker),o.borderSize&&(T.borderSize=s.borderSize),o.borderColor&&(T.borderColor=s.borderColor),o.opacity&&(T.opacity=s.opacity),o.range&&(T.range=n?h(s.range,k,M):s.range||T.bounds),s.passes.push(A)}return this},u.prototype.draw=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=[],i=0;i<e.length;i++)if(\\\"number\\\"==typeof e[i]){var a=this.traces[e[i]],o=a.passes,l=a.passOffset;n.push.apply(n,s(l,l+o.length))}else if(e[i].length){var c=e[i],u=this.traces[i],f=u.passes,h=u.passOffset;f=f.map(function(t,e){n[h+e]=c})}(t=this.scatter).draw.apply(t,n)}else this.scatter.draw();return this},u.prototype.destroy=function(){return this.traces.forEach(function(t){t.buffer&&t.buffer.destroy&&t.buffer.destroy()}),this.traces=null,this.passes=null,this.scatter.destroy(),this}},{\\\"array-bounds\\\":53,\\\"array-range\\\":55,\\\"flatten-vertex-data\\\":216,\\\"parse-rect\\\":442,\\\"pick-by-alias\\\":448,raf:467,\\\"regl-scatter2d/scatter\\\":476}],478:[function(t,e,r){var n,i;n=this,i=function(){function t(t,e){this.id=V++,this.type=t,this.data=e}function e(t){return\\\"[\\\"+function t(e){if(0===e.length)return[];var r=e.charAt(0),n=e.charAt(e.length-1);if(1<e.length&&r===n&&('\\\"'===r||\\\"'\\\"===r))return['\\\"'+e.substr(1,e.length-2).replace(/\\\\\\\\/g,\\\"\\\\\\\\\\\\\\\\\\\").replace(/\\\"/g,'\\\\\\\\\\\"')+'\\\"'];if(r=/\\\\[(false|true|null|\\\\d+|'[^']*'|\\\"[^\\\"]*\\\")\\\\]/.exec(e))return t(e.substr(0,r.index)).concat(t(r[1])).concat(t(e.substr(r.index+r[0].length)));if(1===(r=e.split(\\\".\\\")).length)return['\\\"'+e.replace(/\\\\\\\\/g,\\\"\\\\\\\\\\\\\\\\\\\").replace(/\\\"/g,'\\\\\\\\\\\"')+'\\\"'];for(e=[],n=0;n<r.length;++n)e=e.concat(t(r[n]));return e}(t).join(\\\"][\\\")+\\\"]\\\"}function r(t){return\\\"string\\\"==typeof t?t.split():t}function n(t){return\\\"string\\\"==typeof t?document.querySelector(t):t}function i(t){var e,i,a,o,s=t||{};t={};var l=[],c=[],u=\\\"undefined\\\"==typeof window?1:window.devicePixelRatio,f=!1,h=function(t){},p=function(){};if(\\\"string\\\"==typeof s?e=document.querySelector(s):\\\"object\\\"==typeof s&&(\\\"string\\\"==typeof s.nodeName&&\\\"function\\\"==typeof s.appendChild&&\\\"function\\\"==typeof s.getBoundingClientRect?e=s:\\\"function\\\"==typeof s.drawArrays||\\\"function\\\"==typeof s.drawElements?a=(o=s).canvas:(\\\"gl\\\"in s?o=s.gl:\\\"canvas\\\"in s?a=n(s.canvas):\\\"container\\\"in s&&(i=n(s.container)),\\\"attributes\\\"in s&&(t=s.attributes),\\\"extensions\\\"in s&&(l=r(s.extensions)),\\\"optionalExtensions\\\"in s&&(c=r(s.optionalExtensions)),\\\"onDone\\\"in s&&(h=s.onDone),\\\"profile\\\"in s&&(f=!!s.profile),\\\"pixelRatio\\\"in s&&(u=+s.pixelRatio))),e&&(\\\"canvas\\\"===e.nodeName.toLowerCase()?a=e:i=e),!o){if(!a){if(!(e=function(t,e,r){function n(){var e=window.innerWidth,n=window.innerHeight;t!==document.body&&(e=(n=t.getBoundingClientRect()).right-n.left,n=n.bottom-n.top),i.width=r*e,i.height=r*n,j(i.style,{width:e+\\\"px\\\",height:n+\\\"px\\\"})}var i=document.createElement(\\\"canvas\\\");return j(i.style,{border:0,margin:0,padding:0,top:0,left:0}),t.appendChild(i),t===document.body&&(i.style.position=\\\"absolute\\\",j(t.style,{margin:0,padding:0})),window.addEventListener(\\\"resize\\\",n,!1),n(),{canvas:i,onDestroy:function(){window.removeEventListener(\\\"resize\\\",n),t.removeChild(i)}}}(i||document.body,0,u)))return null;a=e.canvas,p=e.onDestroy}o=function(t,e){function r(r){try{return t.getContext(r,e)}catch(t){return null}}return r(\\\"webgl\\\")||r(\\\"experimental-webgl\\\")||r(\\\"webgl-experimental\\\")}(a,t)}return o?{gl:o,canvas:a,container:i,extensions:l,optionalExtensions:c,pixelRatio:u,profile:f,onDone:h,onDestroy:p}:(p(),h(\\\"webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org\\\"),null)}function a(t,e){for(var r=Array(t),n=0;n<t;++n)r[n]=e(n);return r}function o(t){var e,r;return e=(65535<t)<<4,e|=r=(255<(t>>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function s(){function t(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=r[o(t)>>2]).length?e.pop():new ArrayBuffer(t)}function e(t){r[o(t.byteLength)>>2].push(t)}var r=a(8,function(){return[]});return{alloc:t,free:e,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(t){e(t.buffer)}}}function l(t){return!!t&&\\\"object\\\"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&\\\"number\\\"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||Y(t.data))}function c(t,e,r,n,i,a){for(var o=0;o<e;++o)for(var s=t[o],l=0;l<r;++l)for(var c=s[l],u=0;u<n;++u)i[a++]=c[u]}function u(t){return 0|$[Object.prototype.toString.call(t)]}function f(t,e){for(var r=0;r<e.length;++r)t[r]=e[r]}function h(t,e,r,n,i,a,o){for(var s=0,l=0;l<r;++l)for(var c=0;c<n;++c)t[s++]=e[i*l+a*c+o]}function p(t,e,r,n){function i(e){this.id=c++,this.buffer=t.createBuffer(),this.type=e,this.usage=35044,this.byteLength=0,this.dimension=1,this.dtype=5121,this.persistentData=null,r.profile&&(this.stats={size:0})}function a(e,r,n){e.byteLength=r.byteLength,t.bufferData(e.type,r,n)}function o(t,e,r,n,i,o){if(t.usage=r,Array.isArray(e)){if(t.dtype=n||5126,0<e.length)if(Array.isArray(e[0])){i=tt(e);for(var s=n=1;s<i.length;++s)n*=i[s];t.dimension=n,a(t,e=Q(e,i,t.dtype),r),o?t.persistentData=e:G.freeType(e)}else\\\"number\\\"==typeof e[0]?(t.dimension=i,f(i=G.allocType(t.dtype,e.length),e),a(t,i,r),o?t.persistentData=i:G.freeType(i)):Y(e[0])&&(t.dimension=e[0].length,t.dtype=n||u(e[0])||5126,a(t,e=Q(e,[e.length,e[0].length],t.dtype),r),o?t.persistentData=e:G.freeType(e))}else if(Y(e))t.dtype=n||u(e),t.dimension=i,a(t,e,r),o&&(t.persistentData=new Uint8Array(new Uint8Array(e.buffer)));else if(l(e)){i=e.shape;var c=e.stride,p=(s=e.offset,0),d=0,g=0,v=0;1===i.length?(p=i[0],d=1,g=c[0],v=0):2===i.length&&(p=i[0],d=i[1],g=c[0],v=c[1]),t.dtype=n||u(e.data)||5126,t.dimension=d,h(i=G.allocType(t.dtype,p*d),e.data,p,d,g,v,s),a(t,i,r),o?t.persistentData=i:G.freeType(i)}}function s(r){e.bufferCount--;for(var i=0;i<n.state.length;++i){var a=n.state[i];a.buffer===r&&(t.disableVertexAttribArray(i),a.buffer=null)}t.deleteBuffer(r.buffer),r.buffer=null,delete p[r.id]}var c=0,p={};i.prototype.bind=function(){t.bindBuffer(this.type,this.buffer)},i.prototype.destroy=function(){s(this)};var d=[];return r.profile&&(e.getTotalBufferSize=function(){var t=0;return Object.keys(p).forEach(function(e){t+=p[e].stats.size}),t}),{create:function(n,a,c,d){function g(e){var n=35044,i=null,a=0,s=0,c=1;return Array.isArray(e)||Y(e)||l(e)?i=e:\\\"number\\\"==typeof e?a=0|e:e&&(\\\"data\\\"in e&&(i=e.data),\\\"usage\\\"in e&&(n=K[e.usage]),\\\"type\\\"in e&&(s=J[e.type]),\\\"dimension\\\"in e&&(c=0|e.dimension),\\\"length\\\"in e&&(a=0|e.length)),v.bind(),i?o(v,i,n,s,c,d):(a&&t.bufferData(v.type,a,n),v.dtype=s||5121,v.usage=n,v.dimension=c,v.byteLength=a),r.profile&&(v.stats.size=v.byteLength*et[v.dtype]),g}e.bufferCount++;var v=new i(a);return p[v.id]=v,c||g(n),g._reglType=\\\"buffer\\\",g._buffer=v,g.subdata=function(e,r){var n,i=0|(r||0);if(v.bind(),Y(e))t.bufferSubData(v.type,i,e);else if(Array.isArray(e)){if(0<e.length)if(\\\"number\\\"==typeof e[0]){var a=G.allocType(v.dtype,e.length);f(a,e),t.bufferSubData(v.type,i,a),G.freeType(a)}else(Array.isArray(e[0])||Y(e[0]))&&(n=tt(e),a=Q(e,n,v.dtype),t.bufferSubData(v.type,i,a),G.freeType(a))}else if(l(e)){n=e.shape;var o=e.stride,s=a=0,c=0,p=0;1===n.length?(a=n[0],s=1,c=o[0],p=0):2===n.length&&(a=n[0],s=n[1],c=o[0],p=o[1]),n=Array.isArray(e.data)?v.dtype:u(e.data),h(n=G.allocType(n,a*s),e.data,a,s,c,p,e.offset),t.bufferSubData(v.type,i,n),G.freeType(n)}return g},r.profile&&(g.stats=v.stats),g.destroy=function(){s(v)},g},createStream:function(t,e){var r=d.pop();return r||(r=new i(t)),r.bind(),o(r,e,35040,0,1,!1),r},destroyStream:function(t){d.push(t)},clear:function(){X(p).forEach(s),d.forEach(s)},getBuffer:function(t){return t&&t._buffer instanceof i?t._buffer:null},restore:function(){X(p).forEach(function(e){e.buffer=t.createBuffer(),t.bindBuffer(e.type,e.buffer),t.bufferData(e.type,e.persistentData||e.byteLength,e.usage)})},_initBuffer:o}}function d(t,e,r,n){function i(t){this.id=c++,s[this.id]=this,this.buffer=t,this.primType=4,this.type=this.vertCount=0}function a(n,i,a,o,s,c,u){if(n.buffer.bind(),i){var f=u;u||Y(i)&&(!l(i)||Y(i.data))||(f=e.oes_element_index_uint?5125:5123),r._initBuffer(n.buffer,i,a,f,3)}else t.bufferData(34963,c,a),n.buffer.dtype=f||5121,n.buffer.usage=a,n.buffer.dimension=3,n.buffer.byteLength=c;if(f=u,!u){switch(n.buffer.dtype){case 5121:case 5120:f=5121;break;case 5123:case 5122:f=5123;break;case 5125:case 5124:f=5125}n.buffer.dtype=f}n.type=f,0>(i=s)&&(i=n.buffer.byteLength,5123===f?i>>=1:5125===f&&(i>>=2)),n.vertCount=i,i=o,0>o&&(i=4,1===(o=n.buffer.dimension)&&(i=0),2===o&&(i=1),3===o&&(i=4)),n.primType=i}function o(t){n.elementsCount--,delete s[t.id],t.buffer.destroy(),t.buffer=null}var s={},c=0,u={uint8:5121,uint16:5123};e.oes_element_index_uint&&(u.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var f=[];return{create:function(t,e){function s(t){if(t)if(\\\"number\\\"==typeof t)c(t),f.primType=4,f.vertCount=0|t,f.type=5121;else{var e=null,r=35044,n=-1,i=-1,o=0,h=0;Array.isArray(t)||Y(t)||l(t)?e=t:(\\\"data\\\"in t&&(e=t.data),\\\"usage\\\"in t&&(r=K[t.usage]),\\\"primitive\\\"in t&&(n=rt[t.primitive]),\\\"count\\\"in t&&(i=0|t.count),\\\"type\\\"in t&&(h=u[t.type]),\\\"length\\\"in t?o=0|t.length:(o=i,5123===h||5122===h?o*=2:5125!==h&&5124!==h||(o*=4))),a(f,e,r,n,i,o,h)}else c(),f.primType=4,f.vertCount=0,f.type=5121;return s}var c=r.create(null,34963,!0),f=new i(c._buffer);return n.elementsCount++,s(t),s._reglType=\\\"elements\\\",s._elements=f,s.subdata=function(t,e){return c.subdata(t,e),s},s.destroy=function(){o(f)},s},createStream:function(t){var e=f.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),a(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){f.push(t)},getElements:function(t){return\\\"function\\\"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){X(s).forEach(o)}}}function g(t){for(var e=G.allocType(5123,t.length),r=0;r<t.length;++r)if(isNaN(t[r]))e[r]=65535;else if(1/0===t[r])e[r]=31744;else if(-1/0===t[r])e[r]=64512;else{nt[0]=t[r];var n=(a=it[0])>>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15<i?n+31744:n+(i+15<<10)+a}return e}function v(t){return Array.isArray(t)||Y(t)}function m(t){return\\\"[object \\\"+t+\\\"]\\\"}function y(t){return Array.isArray(t)&&(0===t.length||\\\"number\\\"==typeof t[0])}function x(t){return!(!Array.isArray(t)||0===t.length||!v(t[0]))}function b(t){return Object.prototype.toString.call(t)}function _(t){if(!t)return!1;var e=b(t);return 0<=pt.indexOf(e)||(y(t)||x(t)||l(t))}function w(t,e){36193===t.type?(t.data=g(e),G.freeType(e)):t.data=e}function k(t,e,r,n,i,a){if(t=\\\"undefined\\\"!=typeof gt[t]?gt[t]:st[t]*dt[e],a&&(t*=6),i){for(n=0;1<=r;)n+=t*r*r,r/=2;return n}return t*r*n}function M(t,e,r,n,i,a,o){function s(){this.format=this.internalformat=6408,this.type=5121,this.flipY=this.premultiplyAlpha=this.compressed=!1,this.unpackAlignment=1,this.colorSpace=37444,this.channels=this.height=this.width=0}function c(t,e){t.internalformat=e.internalformat,t.format=e.format,t.type=e.type,t.compressed=e.compressed,t.premultiplyAlpha=e.premultiplyAlpha,t.flipY=e.flipY,t.unpackAlignment=e.unpackAlignment,t.colorSpace=e.colorSpace,t.width=e.width,t.height=e.height,t.channels=e.channels}function u(t,e){if(\\\"object\\\"==typeof e&&e){\\\"premultiplyAlpha\\\"in e&&(t.premultiplyAlpha=e.premultiplyAlpha),\\\"flipY\\\"in e&&(t.flipY=e.flipY),\\\"alignment\\\"in e&&(t.unpackAlignment=e.alignment),\\\"colorSpace\\\"in e&&(t.colorSpace=q[e.colorSpace]),\\\"type\\\"in e&&(t.type=H[e.type]);var r=t.width,n=t.height,i=t.channels,a=!1;\\\"shape\\\"in e?(r=e.shape[0],n=e.shape[1],3===e.shape.length&&(i=e.shape[2],a=!0)):(\\\"radius\\\"in e&&(r=n=e.radius),\\\"width\\\"in e&&(r=e.width),\\\"height\\\"in e&&(n=e.height),\\\"channels\\\"in e&&(i=e.channels,a=!0)),t.width=0|r,t.height=0|n,t.channels=0|i,r=!1,\\\"format\\\"in e&&(r=e.format,n=t.internalformat=W[r],t.format=pt[n],r in H&&!(\\\"type\\\"in e)&&(t.type=H[r]),r in J&&(t.compressed=!0),r=!0),!a&&r?t.channels=st[t.format]:a&&!r&&t.channels!==ot[t.format]&&(t.format=t.internalformat=ot[t.channels])}}function f(e){t.pixelStorei(37440,e.flipY),t.pixelStorei(37441,e.premultiplyAlpha),t.pixelStorei(37443,e.colorSpace),t.pixelStorei(3317,e.unpackAlignment)}function h(){s.call(this),this.yOffset=this.xOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function p(t,e){var r=null;if(_(e)?r=e:e&&(u(t,e),\\\"x\\\"in e&&(t.xOffset=0|e.x),\\\"y\\\"in e&&(t.yOffset=0|e.y),_(e.data)&&(r=e.data)),e.copy){var n=i.viewportWidth,a=i.viewportHeight;t.width=t.width||n-t.xOffset,t.height=t.height||a-t.yOffset,t.needsCopy=!0}else if(r){if(Y(r))t.channels=t.channels||4,t.data=r,\\\"type\\\"in e||5121!==t.type||(t.type=0|$[Object.prototype.toString.call(r)]);else if(y(r)){switch(t.channels=t.channels||4,a=(n=r).length,t.type){case 5121:case 5123:case 5125:case 5126:(a=G.allocType(t.type,a)).set(n),t.data=a;break;case 36193:t.data=g(n)}t.alignment=1,t.needsFree=!0}else if(l(r)){n=r.data,Array.isArray(n)||5121!==t.type||(t.type=0|$[Object.prototype.toString.call(n)]);a=r.shape;var o,s,c,f,h=r.stride;3===a.length?(c=a[2],f=h[2]):f=c=1,o=a[0],s=a[1],a=h[0],h=h[1],t.alignment=1,t.width=o,t.height=s,t.channels=c,t.format=t.internalformat=ot[c],t.needsFree=!0,o=f,r=r.offset,c=t.width,f=t.height,s=t.channels;for(var p=G.allocType(36193===t.type?5126:t.type,c*f*s),d=0,m=0;m<f;++m)for(var k=0;k<c;++k)for(var M=0;M<s;++M)p[d++]=n[a*k+h*m+o*M+r];w(t,p)}else if(b(r)===lt||b(r)===ct)b(r)===lt?t.element=r:t.element=r.canvas,t.width=t.element.width,t.height=t.element.height,t.channels=4;else if(b(r)===ut)t.element=r,t.width=r.width,t.height=r.height,t.channels=4;else if(b(r)===ft)t.element=r,t.width=r.naturalWidth,t.height=r.naturalHeight,t.channels=4;else if(b(r)===ht)t.element=r,t.width=r.videoWidth,t.height=r.videoHeight,t.channels=4;else if(x(r)){for(n=t.width||r[0].length,a=t.height||r.length,h=t.channels,h=v(r[0][0])?h||r[0][0].length:h||1,o=Z.shape(r),c=1,f=0;f<o.length;++f)c*=o[f];c=G.allocType(36193===t.type?5126:t.type,c),Z.flatten(r,o,\\\"\\\",c),w(t,c),t.alignment=1,t.width=n,t.height=a,t.channels=h,t.format=t.internalformat=ot[h],t.needsFree=!0}}else t.width=t.width||1,t.height=t.height||1,t.channels=t.channels||4}function d(e,r,i,a,o){var s=e.element,l=e.data,c=e.internalformat,u=e.format,h=e.type,p=e.width,d=e.height;f(e),s?t.texSubImage2D(r,o,i,a,u,h,s):e.compressed?t.compressedTexSubImage2D(r,o,i,a,c,p,d,l):e.needsCopy?(n(),t.copyTexSubImage2D(r,o,i,a,e.xOffset,e.yOffset,p,d)):t.texSubImage2D(r,o,i,a,p,d,u,h,l)}function m(){return dt.pop()||new h}function M(t){t.needsFree&&G.freeType(t.data),h.call(t),dt.push(t)}function A(){s.call(this),this.genMipmaps=!1,this.mipmapHint=4352,this.mipmask=0,this.images=Array(16)}function T(t,e,r){var n=t.images[0]=m();t.mipmask=1,n.width=t.width=e,n.height=t.height=r,n.channels=t.channels=4}function S(t,e){var r=null;if(_(e))c(r=t.images[0]=m(),t),p(r,e),t.mipmask=1;else if(u(t,e),Array.isArray(e.mipmap))for(var n=e.mipmap,i=0;i<n.length;++i)c(r=t.images[i]=m(),t),r.width>>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<<i;else c(r=t.images[0]=m(),t),p(r,e),t.mipmask=1;c(t,t.images[0])}function E(e,r){for(var i=e.images,a=0;a<i.length&&i[a];++a){var o=i[a],s=r,l=a,c=o.element,u=o.data,h=o.internalformat,p=o.format,d=o.type,g=o.width,v=o.height,m=o.channels;f(o),c?t.texImage2D(s,l,p,p,d,c):o.compressed?t.compressedTexImage2D(s,l,h,g,v,0,u):o.needsCopy?(n(),t.copyTexImage2D(s,l,p,o.xOffset,o.yOffset,g,v,0)):((o=!u)&&(u=G.zero.allocType(d,g*v*m)),t.texImage2D(s,l,p,g,v,0,p,d,u),o&&u&&G.zero.freeType(u))}}function C(){var t=gt.pop()||new A;s.call(t);for(var e=t.mipmask=0;16>e;++e)t.images[e]=null;return t}function L(t){for(var e=t.images,r=0;r<e.length;++r)e[r]&&M(e[r]),e[r]=null;gt.push(t)}function z(){this.magFilter=this.minFilter=9728,this.wrapT=this.wrapS=33071,this.anisotropic=1,this.genMipmaps=!1,this.mipmapHint=4352}function O(t,e){\\\"min\\\"in e&&(t.minFilter=U[e.min],0<=at.indexOf(t.minFilter)&&!(\\\"faces\\\"in e)&&(t.genMipmaps=!0)),\\\"mag\\\"in e&&(t.magFilter=V[e.mag]);var r=t.wrapS,n=t.wrapT;if(\\\"wrap\\\"in e){var i=e.wrap;\\\"string\\\"==typeof i?r=n=N[i]:Array.isArray(i)&&(r=N[i[0]],n=N[i[1]])}else\\\"wrapS\\\"in e&&(r=N[e.wrapS]),\\\"wrapT\\\"in e&&(n=N[e.wrapT]);if(t.wrapS=r,t.wrapT=n,\\\"anisotropic\\\"in e&&(t.anisotropic=e.anisotropic),\\\"mipmap\\\"in e){switch(r=!1,typeof e.mipmap){case\\\"string\\\":t.mipmapHint=F[e.mipmap],r=t.genMipmaps=!0;break;case\\\"boolean\\\":r=t.genMipmaps=e.mipmap;break;case\\\"object\\\":t.genMipmaps=!1,r=!0}!r||\\\"min\\\"in e||(t.minFilter=9984)}}function I(r,n){t.texParameteri(n,10241,r.minFilter),t.texParameteri(n,10240,r.magFilter),t.texParameteri(n,10242,r.wrapS),t.texParameteri(n,10243,r.wrapT),e.ext_texture_filter_anisotropic&&t.texParameteri(n,34046,r.anisotropic),r.genMipmaps&&(t.hint(33170,r.mipmapHint),t.generateMipmap(n))}function P(e){s.call(this),this.mipmask=0,this.internalformat=6408,this.id=vt++,this.refCount=1,this.target=e,this.texture=t.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new z,o.profile&&(this.stats={size:0})}function D(e){t.activeTexture(33984),t.bindTexture(e.target,e.texture)}function R(){var e=xt[0];e?t.bindTexture(e.target,e.texture):t.bindTexture(3553,null)}function B(e){var r=e.texture,n=e.unit,i=e.target;0<=n&&(t.activeTexture(33984+n),t.bindTexture(i,null),xt[n]=null),t.deleteTexture(r),e.texture=null,e.params=null,e.pixels=null,e.refCount=0,delete mt[e.id],a.textureCount--}var F={\\\"don't care\\\":4352,\\\"dont care\\\":4352,nice:4354,fast:4353},N={repeat:10497,clamp:33071,mirror:33648},V={nearest:9728,linear:9729},U=j({mipmap:9987,\\\"nearest mipmap nearest\\\":9984,\\\"linear mipmap nearest\\\":9985,\\\"nearest mipmap linear\\\":9986,\\\"linear mipmap linear\\\":9987},V),q={none:0,browser:37444},H={uint8:5121,rgba4:32819,rgb565:33635,\\\"rgb5 a1\\\":32820},W={alpha:6406,luminance:6409,\\\"luminance alpha\\\":6410,rgb:6407,rgba:6408,rgba4:32854,\\\"rgb5 a1\\\":32855,rgb565:36194},J={};e.ext_srgb&&(W.srgb=35904,W.srgba=35906),e.oes_texture_float&&(H.float32=H.float=5126),e.oes_texture_half_float&&(H.float16=H[\\\"half float\\\"]=36193),e.webgl_depth_texture&&(j(W,{depth:6402,\\\"depth stencil\\\":34041}),j(H,{uint16:5123,uint32:5125,\\\"depth stencil\\\":34042})),e.webgl_compressed_texture_s3tc&&j(J,{\\\"rgb s3tc dxt1\\\":33776,\\\"rgba s3tc dxt1\\\":33777,\\\"rgba s3tc dxt3\\\":33778,\\\"rgba s3tc dxt5\\\":33779}),e.webgl_compressed_texture_atc&&j(J,{\\\"rgb atc\\\":35986,\\\"rgba atc explicit alpha\\\":35987,\\\"rgba atc interpolated alpha\\\":34798}),e.webgl_compressed_texture_pvrtc&&j(J,{\\\"rgb pvrtc 4bppv1\\\":35840,\\\"rgb pvrtc 2bppv1\\\":35841,\\\"rgba pvrtc 4bppv1\\\":35842,\\\"rgba pvrtc 2bppv1\\\":35843}),e.webgl_compressed_texture_etc1&&(J[\\\"rgb etc1\\\"]=36196);var K=Array.prototype.slice.call(t.getParameter(34467));Object.keys(J).forEach(function(t){var e=J[t];0<=K.indexOf(e)&&(W[t]=e)});var Q=Object.keys(W);r.textureFormats=Q;var tt=[];Object.keys(W).forEach(function(t){tt[W[t]]=t});var et=[];Object.keys(H).forEach(function(t){et[H[t]]=t});var rt=[];Object.keys(V).forEach(function(t){rt[V[t]]=t});var nt=[];Object.keys(U).forEach(function(t){nt[U[t]]=t});var it=[];Object.keys(N).forEach(function(t){it[N[t]]=t});var pt=Q.reduce(function(t,e){var r=W[e];return 6409===r||6406===r||6409===r||6410===r||6402===r||34041===r?t[r]=r:32855===r||0<=e.indexOf(\\\"rgba\\\")?t[r]=6408:t[r]=6407,t},{}),dt=[],gt=[],vt=0,mt={},yt=r.maxTextureUnits,xt=Array(yt).map(function(){return null});return j(P.prototype,{bind:function(){this.bindCount+=1;var e=this.unit;if(0>e){for(var r=0;r<yt;++r){var n=xt[r];if(n){if(0<n.bindCount)continue;n.unit=-1}xt[r]=this,e=r;break}o.profile&&a.maxTextureUnits<e+1&&(a.maxTextureUnits=e+1),this.unit=e,t.activeTexture(33984+e),t.bindTexture(this.target,this.texture)}return e},unbind:function(){--this.bindCount},decRef:function(){0>=--this.refCount&&B(this)}}),o.profile&&(a.getTotalTextureSize=function(){var t=0;return Object.keys(mt).forEach(function(e){t+=mt[e].stats.size}),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;z.call(r);var a=C();return\\\"number\\\"==typeof t?T(a,0|t,\\\"number\\\"==typeof e?0|e:0|t):t?(O(r,t),S(a,t)):T(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,c(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,D(i),E(a,3553),I(r,3553),R(),L(a),o.profile&&(i.stats.size=k(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=tt[i.internalformat],n.type=et[i.type],n.mag=rt[r.magFilter],n.min=nt[r.minFilter],n.wrapS=it[r.wrapS],n.wrapT=it[r.wrapT],n}var i=new P(3553);return mt[i.id]=i,a.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=m();return c(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,D(i),d(o,3553,e,r,a),R(),M(o),n},n.resize=function(e,r){var a=0|e,s=0|r||a;if(a===i.width&&s===i.height)return n;n.width=i.width=a,n.height=i.height=s,D(i);for(var l,c=i.channels,u=i.type,f=0;i.mipmask>>f;++f){var h=a>>f,p=s>>f;if(!h||!p)break;l=G.zero.allocType(u,h*p*c),t.texImage2D(3553,f,i.format,h,p,0,i.format,i.type,l),l&&G.zero.freeType(l)}return R(),o.profile&&(i.stats.size=k(i.internalformat,i.type,a,s,!1,!1)),n},n._reglType=\\\"texture2d\\\",n._texture=i,o.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,s,l){function f(t,e,r,n,i,a){var s,l=h.texInfo;for(z.call(l),s=0;6>s;++s)g[s]=C();if(\\\"number\\\"!=typeof t&&t){if(\\\"object\\\"==typeof t)if(e)S(g[0],t),S(g[1],e),S(g[2],r),S(g[3],n),S(g[4],i),S(g[5],a);else if(O(l,t),u(h,t),\\\"faces\\\"in t)for(t=t.faces,s=0;6>s;++s)c(g[s],h),S(g[s],t[s]);else for(s=0;6>s;++s)S(g[s],t)}else for(t=0|t||1,s=0;6>s;++s)T(g[s],t,t);for(c(h,g[0]),h.mipmask=l.genMipmaps?(g[0].width<<1)-1:g[0].mipmask,h.internalformat=g[0].internalformat,f.width=g[0].width,f.height=g[0].height,D(h),s=0;6>s;++s)E(g[s],34069+s);for(I(l,34067),R(),o.profile&&(h.stats.size=k(h.internalformat,h.type,f.width,f.height,l.genMipmaps,!0)),f.format=tt[h.internalformat],f.type=et[h.type],f.mag=rt[l.magFilter],f.min=nt[l.minFilter],f.wrapS=it[l.wrapS],f.wrapT=it[l.wrapT],s=0;6>s;++s)L(g[s]);return f}var h=new P(34067);mt[h.id]=h,a.cubeCount++;var g=Array(6);return f(e,r,n,i,s,l),f.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=m();return c(a,h),a.width=0,a.height=0,p(a,e),a.width=a.width||(h.width>>i)-r,a.height=a.height||(h.height>>i)-n,D(h),d(a,34069+t,r,n,i),R(),M(a),f},f.resize=function(e){if((e|=0)!==h.width){f.width=h.width=e,f.height=h.height=e,D(h);for(var r=0;6>r;++r)for(var n=0;h.mipmask>>n;++n)t.texImage2D(34069+r,n,h.format,e>>n,e>>n,0,h.format,h.type,null);return R(),o.profile&&(h.stats.size=k(h.internalformat,h.type,f.width,f.height,!1,!0)),f}},f._reglType=\\\"textureCube\\\",f._texture=h,o.profile&&(f.stats=h.stats),f.destroy=function(){h.decRef()},f},clear:function(){for(var e=0;e<yt;++e)t.activeTexture(33984+e),t.bindTexture(3553,null),xt[e]=null;X(mt).forEach(B),a.cubeCount=0,a.textureCount=0},getTexture:function(t){return null},restore:function(){X(mt).forEach(function(e){e.texture=t.createTexture(),t.bindTexture(e.target,e.texture);for(var r=0;32>r;++r)if(0!=(e.mipmask&1<<r))if(3553===e.target)t.texImage2D(3553,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);I(e.texInfo,e.target)})}}}function A(t,e,r,n,i,a){function o(t,e,r){this.target=t,this.texture=e,this.renderbuffer=r;var n=t=0;e?(t=e.width,n=e.height):r&&(t=r.width,n=r.height),this.width=t,this.height=n}function s(t){t&&(t.texture&&t.texture._texture.decRef(),t.renderbuffer&&t.renderbuffer._renderbuffer.decRef())}function l(t,e,r){t&&(t.texture?t.texture._texture.refCount+=1:t.renderbuffer._renderbuffer.refCount+=1)}function c(e,r){r&&(r.texture?t.framebufferTexture2D(36160,e,r.target,r.texture._texture.texture,0):t.framebufferRenderbuffer(36160,e,36161,r.renderbuffer._renderbuffer.renderbuffer))}function u(t){var e=3553,r=null,n=null,i=t;return\\\"object\\\"==typeof t&&(i=t.data,\\\"target\\\"in t&&(e=0|t.target)),\\\"texture2d\\\"===(t=i._reglType)?r=i:\\\"textureCube\\\"===t?r=i:\\\"renderbuffer\\\"===t&&(n=i,e=36161),new o(e,r,n)}function f(t,e,r,a,s){return r?((t=n.create2D({width:t,height:e,format:a,type:s}))._texture.refCount=0,new o(3553,t,null)):((t=i.create({width:t,height:e,format:a}))._renderbuffer.refCount=0,new o(36161,null,t))}function h(t){return t&&(t.texture||t.renderbuffer)}function p(t,e,r){t&&(t.texture?t.texture.resize(e,r):t.renderbuffer&&t.renderbuffer.resize(e,r))}function d(){this.id=k++,M[this.id]=this,this.framebuffer=t.createFramebuffer(),this.height=this.width=0,this.colorAttachments=[],this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function g(t){t.colorAttachments.forEach(s),s(t.depthAttachment),s(t.stencilAttachment),s(t.depthStencilAttachment)}function v(e){t.deleteFramebuffer(e.framebuffer),e.framebuffer=null,a.framebufferCount--,delete M[e.id]}function m(e){var n;t.bindFramebuffer(36160,e.framebuffer);var i=e.colorAttachments;for(n=0;n<i.length;++n)c(36064+n,i[n]);for(n=i.length;n<r.maxColorAttachments;++n)t.framebufferTexture2D(36160,36064+n,3553,null,0);t.framebufferTexture2D(36160,33306,3553,null,0),t.framebufferTexture2D(36160,36096,3553,null,0),t.framebufferTexture2D(36160,36128,3553,null,0),c(36096,e.depthAttachment),c(36128,e.stencilAttachment),c(33306,e.depthStencilAttachment),t.checkFramebufferStatus(36160),t.bindFramebuffer(36160,x.next?x.next.framebuffer:null),x.cur=x.next,t.getError()}function y(t,e){function r(t,e){var i,a=0,o=0,s=!0,c=!0;i=null;var p=!0,d=\\\"rgba\\\",v=\\\"uint8\\\",y=1,x=null,w=null,k=null,M=!1;\\\"number\\\"==typeof t?(a=0|t,o=0|e||a):t?(\\\"shape\\\"in t?(a=(o=t.shape)[0],o=o[1]):(\\\"radius\\\"in t&&(a=o=t.radius),\\\"width\\\"in t&&(a=t.width),\\\"height\\\"in t&&(o=t.height)),(\\\"color\\\"in t||\\\"colors\\\"in t)&&(i=t.color||t.colors,Array.isArray(i)),i||(\\\"colorCount\\\"in t&&(y=0|t.colorCount),\\\"colorTexture\\\"in t&&(p=!!t.colorTexture,d=\\\"rgba4\\\"),\\\"colorType\\\"in t&&(v=t.colorType,!p)&&(\\\"half float\\\"===v||\\\"float16\\\"===v?d=\\\"rgba16f\\\":\\\"float\\\"!==v&&\\\"float32\\\"!==v||(d=\\\"rgba32f\\\")),\\\"colorFormat\\\"in t&&(d=t.colorFormat,0<=b.indexOf(d)?p=!0:0<=_.indexOf(d)&&(p=!1))),(\\\"depthTexture\\\"in t||\\\"depthStencilTexture\\\"in t)&&(M=!(!t.depthTexture&&!t.depthStencilTexture)),\\\"depth\\\"in t&&(\\\"boolean\\\"==typeof t.depth?s=t.depth:(x=t.depth,c=!1)),\\\"stencil\\\"in t&&(\\\"boolean\\\"==typeof t.stencil?c=t.stencil:(w=t.stencil,s=!1)),\\\"depthStencil\\\"in t&&(\\\"boolean\\\"==typeof t.depthStencil?s=c=t.depthStencil:(k=t.depthStencil,c=s=!1))):a=o=1;var A=null,T=null,S=null,E=null;if(Array.isArray(i))A=i.map(u);else if(i)A=[u(i)];else for(A=Array(y),i=0;i<y;++i)A[i]=f(a,o,p,d,v);for(a=a||A[0].width,o=o||A[0].height,x?T=u(x):s&&!c&&(T=f(a,o,M,\\\"depth\\\",\\\"uint32\\\")),w?S=u(w):c&&!s&&(S=f(a,o,!1,\\\"stencil\\\",\\\"uint8\\\")),k?E=u(k):!x&&!w&&c&&s&&(E=f(a,o,M,\\\"depth stencil\\\",\\\"depth stencil\\\")),s=null,i=0;i<A.length;++i)l(A[i]),A[i]&&A[i].texture&&(c=yt[A[i].texture._texture.format]*xt[A[i].texture._texture.type],null===s&&(s=c));return l(T),l(S),l(E),g(n),n.width=a,n.height=o,n.colorAttachments=A,n.depthAttachment=T,n.stencilAttachment=S,n.depthStencilAttachment=E,r.color=A.map(h),r.depth=h(T),r.stencil=h(S),r.depthStencil=h(E),r.width=n.width,r.height=n.height,m(n),r}var n=new d;return a.framebufferCount++,r(t,e),j(r,{resize:function(t,e){var i=0|t,a=0|e||i;if(i===n.width&&a===n.height)return r;for(var o=n.colorAttachments,s=0;s<o.length;++s)p(o[s],i,a);return p(n.depthAttachment,i,a),p(n.stencilAttachment,i,a),p(n.depthStencilAttachment,i,a),n.width=r.width=i,n.height=r.height=a,m(n),r},_reglType:\\\"framebuffer\\\",_framebuffer:n,destroy:function(){v(n),g(n)},use:function(t){x.setFBO({framebuffer:r},t)}})}var x={cur:null,next:null,dirty:!1,setFBO:null},b=[\\\"rgba\\\"],_=[\\\"rgba4\\\",\\\"rgb565\\\",\\\"rgb5 a1\\\"];e.ext_srgb&&_.push(\\\"srgba\\\"),e.ext_color_buffer_half_float&&_.push(\\\"rgba16f\\\",\\\"rgb16f\\\"),e.webgl_color_buffer_float&&_.push(\\\"rgba32f\\\");var w=[\\\"uint8\\\"];e.oes_texture_half_float&&w.push(\\\"half float\\\",\\\"float16\\\"),e.oes_texture_float&&w.push(\\\"float\\\",\\\"float32\\\");var k=0,M={};return j(x,{getFramebuffer:function(t){return\\\"function\\\"==typeof t&&\\\"framebuffer\\\"===t._reglType&&(t=t._framebuffer)instanceof d?t:null},create:y,createCube:function(t){function e(t){var i,a={color:null},o=0,s=null;i=\\\"rgba\\\";var l=\\\"uint8\\\",c=1;if(\\\"number\\\"==typeof t?o=0|t:t?(\\\"shape\\\"in t?o=t.shape[0]:(\\\"radius\\\"in t&&(o=0|t.radius),\\\"width\\\"in t?o=0|t.width:\\\"height\\\"in t&&(o=0|t.height)),(\\\"color\\\"in t||\\\"colors\\\"in t)&&(s=t.color||t.colors,Array.isArray(s)),s||(\\\"colorCount\\\"in t&&(c=0|t.colorCount),\\\"colorType\\\"in t&&(l=t.colorType),\\\"colorFormat\\\"in t&&(i=t.colorFormat)),\\\"depth\\\"in t&&(a.depth=t.depth),\\\"stencil\\\"in t&&(a.stencil=t.stencil),\\\"depthStencil\\\"in t&&(a.depthStencil=t.depthStencil)):o=1,s)if(Array.isArray(s))for(t=[],i=0;i<s.length;++i)t[i]=s[i];else t=[s];else for(t=Array(c),s={radius:o,format:i,type:l},i=0;i<c;++i)t[i]=n.createCube(s);for(a.color=Array(t.length),i=0;i<t.length;++i)c=t[i],o=o||c.width,a.color[i]={target:34069,data:t[i]};for(i=0;6>i;++i){for(c=0;c<t.length;++c)a.color[c].target=34069+i;0<i&&(a.depth=r[0].depth,a.stencil=r[0].stencil,a.depthStencil=r[0].depthStencil),r[i]?r[i](a):r[i]=y(a)}return j(e,{width:o,height:o,color:t})}var r=Array(6);return e(t),j(e,{faces:r,resize:function(t){var n=0|t;if(n===e.width)return e;var i=e.color;for(t=0;t<i.length;++t)i[t].resize(n);for(t=0;6>t;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:\\\"framebufferCube\\\",destroy:function(){r.forEach(function(t){t.destroy()})}})},clear:function(){X(M).forEach(v)},restore:function(){X(M).forEach(function(e){e.framebuffer=t.createFramebuffer(),m(e)})}})}function T(){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 S(t,e,r,n){function i(t,e,r,n){this.name=t,this.id=e,this.location=r,this.info=n}function a(t,e){for(var r=0;r<t.length;++r)if(t[r].id===e.id)return void(t[r].location=e.location);t.push(e)}function o(r,n,i){if(!(o=(i=35632===r?c:u)[n])){var a=e.str(n),o=t.createShader(r);t.shaderSource(o,a),t.compileShader(o),i[n]=o}return o}function s(t,e){this.id=p++,this.fragId=t,this.vertId=e,this.program=null,this.uniforms=[],this.attributes=[],n.profile&&(this.stats={uniformsCount:0,attributesCount:0})}function l(r,s){var l,c;l=o(35632,r.fragId),c=o(35633,r.vertId);var u=r.program=t.createProgram();t.attachShader(u,l),t.attachShader(u,c),t.linkProgram(u);var f=t.getProgramParameter(u,35718);n.profile&&(r.stats.uniformsCount=f);var h=r.uniforms;for(l=0;l<f;++l)if(c=t.getActiveUniform(u,l))if(1<c.size)for(var p=0;p<c.size;++p){var d=c.name.replace(\\\"[0]\\\",\\\"[\\\"+p+\\\"]\\\");a(h,new i(d,e.id(d),t.getUniformLocation(u,d),c))}else a(h,new i(c.name,e.id(c.name),t.getUniformLocation(u,c.name),c));for(f=t.getProgramParameter(u,35721),n.profile&&(r.stats.attributesCount=f),h=r.attributes,l=0;l<f;++l)(c=t.getActiveAttrib(u,l))&&a(h,new i(c.name,e.id(c.name),t.getAttribLocation(u,c.name),c))}var c={},u={},f={},h=[],p=0;return n.profile&&(r.getMaxUniformsCount=function(){var t=0;return h.forEach(function(e){e.stats.uniformsCount>t&&(t=e.stats.uniformsCount)}),t},r.getMaxAttributesCount=function(){var t=0;return h.forEach(function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)}),t}),{clear:function(){var e=t.deleteShader.bind(t);X(c).forEach(e),c={},X(u).forEach(e),u={},h.forEach(function(e){t.deleteProgram(e.program)}),h.length=0,f={},r.shaderCount=0},program:function(t,e,n){var i=f[e];i||(i=f[e]={});var a=i[t];return a||(a=new s(e,t),r.shaderCount++,l(a),i[t]=a,h.push(a)),a},restore:function(){c={},u={};for(var t=0;t<h.length;++t)l(h[t])},shader:o,frag:-1,vert:-1}}function E(t,e,r,n,i,a,o){function s(i){var a;a=null===e.next?5121:e.next.colorAttachments[0].texture._texture.type;var o=0,s=0,l=n.framebufferWidth,c=n.framebufferHeight,u=null;return Y(i)?u=i:i&&(o=0|i.x,s=0|i.y,l=0|(i.width||n.framebufferWidth-o),c=0|(i.height||n.framebufferHeight-s),u=i.data||null),r(),i=l*c*4,u||(5121===a?u=new Uint8Array(i):5126===a&&(u=u||new Float32Array(i))),t.pixelStorei(3333,4),t.readPixels(o,s,l,c,6408,a,u),u}return function(t){return t&&\\\"framebuffer\\\"in t?function(t){var r;return e.setFBO({framebuffer:t.framebuffer},function(){r=s(t)}),r}(t):s(t)}}function C(t){return Array.prototype.slice.call(t)}function L(t){return C(t).join(\\\"\\\")}function z(){function t(){var t=[],e=[];return j(function(){t.push.apply(t,C(arguments))},{def:function(){var n=\\\"v\\\"+r++;return e.push(n),0<arguments.length&&(t.push(n,\\\"=\\\"),t.push.apply(t,C(arguments)),t.push(\\\";\\\")),n},toString:function(){return L([0<e.length?\\\"var \\\"+e+\\\";\\\":\\\"\\\",L(t)])}})}function e(){function e(t,e){n(t,e,\\\"=\\\",r.def(t,e),\\\";\\\")}var r=t(),n=t(),i=r.toString,a=n.toString;return j(function(){r.apply(r,C(arguments))},{def:r.def,entry:r,exit:n,save:e,set:function(t,n,i){e(t,n),r(t,n,\\\"=\\\",i,\\\";\\\")},toString:function(){return i()+a()}})}var r=0,n=[],i=[],a=t(),o={};return{global:a,link:function(t){for(var e=0;e<i.length;++e)if(i[e]===t)return n[e];return e=\\\"g\\\"+r++,n.push(e),i.push(t),e},block:t,proc:function(t,r){function n(){var t=\\\"a\\\"+i.length;return i.push(t),t}var i=[];r=r||0;for(var a=0;a<r;++a)n();var s=(a=e()).toString;return o[t]=j(a,{arg:n,toString:function(){return L([\\\"function(\\\",i.join(),\\\"){\\\",s(),\\\"}\\\"])}})},scope:e,cond:function(){var t=L(arguments),r=e(),n=e(),i=r.toString,a=n.toString;return j(r,{then:function(){return r.apply(r,C(arguments)),this},else:function(){return n.apply(n,C(arguments)),this},toString:function(){var e=a();return e&&(e=\\\"else{\\\"+e+\\\"}\\\"),L([\\\"if(\\\",t,\\\"){\\\",i(),\\\"}\\\",e])}})},compile:function(){var t=['\\\"use strict\\\";',a,\\\"return {\\\"];Object.keys(o).forEach(function(e){t.push('\\\"',e,'\\\":',o[e].toString(),\\\",\\\")}),t.push(\\\"}\\\");var e=L(t).replace(/;/g,\\\";\\\\n\\\").replace(/}/g,\\\"}\\\\n\\\").replace(/{/g,\\\"{\\\\n\\\");return Function.apply(null,n.concat(e)).apply(null,i)}}}function O(t){return Array.isArray(t)||Y(t)||l(t)}function I(t){return t.sort(function(t,e){return\\\"viewport\\\"===t?-1:\\\"viewport\\\"===e?1:t<e?-1:1})}function P(t,e,r,n){this.thisDep=t,this.contextDep=e,this.propDep=r,this.append=n}function D(t){return t&&!(t.thisDep||t.contextDep||t.propDep)}function R(t){return new P(!1,!1,!1,t)}function B(t,e){var r=t.type;return 0===r?new P(!0,1<=(r=t.data.length),2<=r,e):4===r?new P((r=t.data).thisDep,r.contextDep,r.propDep,e):new P(3===r,2===r,1===r,e)}function F(t,e,r,n,i,o,s,l,c,u,f,h,p,d,g){function m(t){return t.replace(\\\".\\\",\\\"_\\\")}function y(t,e,r){var n=m(t);nt.push(t),et[n]=tt[n]=!!r,it[n]=e}function x(t,e,r){var n=m(t);nt.push(t),Array.isArray(r)?(tt[n]=r.slice(),et[n]=r.slice()):tt[n]=et[n]=r,at[n]=e}function b(){var t=z(),r=t.link,n=t.global;t.id=lt++,t.batchId=\\\"0\\\";var i=r(ot),a=t.shared={props:\\\"a0\\\"};Object.keys(ot).forEach(function(t){a[t]=n.def(i,\\\".\\\",t)});var o=t.next={},s=t.current={};Object.keys(at).forEach(function(t){Array.isArray(tt[t])&&(o[t]=n.def(a.next,\\\".\\\",t),s[t]=n.def(a.current,\\\".\\\",t))});var l=t.constants={};Object.keys(st).forEach(function(t){l[t]=n.def(JSON.stringify(st[t]))}),t.invoke=function(e,n){switch(n.type){case 0:var i=[\\\"this\\\",a.context,a.props,t.batchId];return e.def(r(n.data),\\\".call(\\\",i.slice(0,Math.max(n.data.length+1,4)),\\\")\\\");case 1:return e.def(a.props,n.data);case 2:return e.def(a.context,n.data);case 3:return e.def(\\\"this\\\",n.data);case 4:return n.data.append(t,e),n.data.ref}},t.attribCache={};var c={};return t.scopeAttrib=function(t){if((t=e.id(t))in c)return c[t];var n=u.scope[t];return n||(n=u.scope[t]=new Z),c[t]=r(n)},t}function _(t,e){var r=t.static,n=t.dynamic;if(\\\"framebuffer\\\"in r){var i=r.framebuffer;return i?(i=l.getFramebuffer(i),R(function(t,e){var r=t.link(i),n=t.shared;return e.set(n.framebuffer,\\\".next\\\",r),n=n.context,e.set(n,\\\".framebufferWidth\\\",r+\\\".width\\\"),e.set(n,\\\".framebufferHeight\\\",r+\\\".height\\\"),r})):R(function(t,e){var r=t.shared;return e.set(r.framebuffer,\\\".next\\\",\\\"null\\\"),r=r.context,e.set(r,\\\".framebufferWidth\\\",r+\\\".drawingBufferWidth\\\"),e.set(r,\\\".framebufferHeight\\\",r+\\\".drawingBufferHeight\\\"),\\\"null\\\"})}if(\\\"framebuffer\\\"in n){var a=n.framebuffer;return B(a,function(t,e){var r=t.invoke(e,a),n=t.shared,i=n.framebuffer;r=e.def(i,\\\".getFramebuffer(\\\",r,\\\")\\\");return e.set(i,\\\".next\\\",r),n=n.context,e.set(n,\\\".framebufferWidth\\\",r+\\\"?\\\"+r+\\\".width:\\\"+n+\\\".drawingBufferWidth\\\"),e.set(n,\\\".framebufferHeight\\\",r+\\\"?\\\"+r+\\\".height:\\\"+n+\\\".drawingBufferHeight\\\"),r})}return null}function w(t){function r(t){if(t in n){var r=e.id(n[t]);return(t=R(function(){return r})).id=r,t}if(t in i){var a=i[t];return B(a,function(t,e){var r=t.invoke(e,a);return e.def(t.shared.strings,\\\".id(\\\",r,\\\")\\\")})}return null}var n=t.static,i=t.dynamic,a=r(\\\"frag\\\"),o=r(\\\"vert\\\"),s=null;return D(a)&&D(o)?(s=f.program(o.id,a.id),t=R(function(t,e){return t.link(s)})):t=new P(a&&a.thisDep||o&&o.thisDep,a&&a.contextDep||o&&o.contextDep,a&&a.propDep||o&&o.propDep,function(t,e){var r,n,i=t.shared.shader;return r=a?a.append(t,e):e.def(i,\\\".\\\",\\\"frag\\\"),n=o?o.append(t,e):e.def(i,\\\".\\\",\\\"vert\\\"),e.def(i+\\\".program(\\\"+n+\\\",\\\"+r+\\\")\\\")}),{frag:a,vert:o,progVar:t,program:s}}function k(t,e){function r(t,e){if(t in n){var r=0|n[t];return R(function(t,n){return e&&(t.OFFSET=r),r})}if(t in i){var o=i[t];return B(o,function(t,r){var n=t.invoke(r,o);return e&&(t.OFFSET=n),n})}return e&&a?R(function(t,e){return t.OFFSET=\\\"0\\\",0}):null}var n=t.static,i=t.dynamic,a=function(){if(\\\"elements\\\"in n){var t=n.elements;O(t)?t=o.getElements(o.create(t,!0)):t&&(t=o.getElements(t));var e=R(function(e,r){if(t){var n=e.link(t);return e.ELEMENTS=n}return e.ELEMENTS=null});return e.value=t,e}if(\\\"elements\\\"in i){var r=i.elements;return B(r,function(t,e){var n=(i=t.shared).isBufferArgs,i=i.elements,a=t.invoke(e,r),o=e.def(\\\"null\\\");n=e.def(n,\\\"(\\\",a,\\\")\\\"),a=t.cond(n).then(o,\\\"=\\\",i,\\\".createStream(\\\",a,\\\");\\\").else(o,\\\"=\\\",i,\\\".getElements(\\\",a,\\\");\\\");return e.entry(a),e.exit(t.cond(n).then(i,\\\".destroyStream(\\\",o,\\\");\\\")),t.ELEMENTS=o})}return null}(),s=r(\\\"offset\\\",!0);return{elements:a,primitive:function(){if(\\\"primitive\\\"in n){var t=n.primitive;return R(function(e,r){return rt[t]})}if(\\\"primitive\\\"in i){var e=i.primitive;return B(e,function(t,r){var n=t.constants.primTypes,i=t.invoke(r,e);return r.def(n,\\\"[\\\",i,\\\"]\\\")})}return a?D(a)?a.value?R(function(t,e){return e.def(t.ELEMENTS,\\\".primType\\\")}):R(function(){return 4}):new P(a.thisDep,a.contextDep,a.propDep,function(t,e){var r=t.ELEMENTS;return e.def(r,\\\"?\\\",r,\\\".primType:\\\",4)}):null}(),count:function(){if(\\\"count\\\"in n){var t=0|n.count;return R(function(){return t})}if(\\\"count\\\"in i){var e=i.count;return B(e,function(t,r){return t.invoke(r,e)})}return a?D(a)?a?s?new P(s.thisDep,s.contextDep,s.propDep,function(t,e){return e.def(t.ELEMENTS,\\\".vertCount-\\\",t.OFFSET)}):R(function(t,e){return e.def(t.ELEMENTS,\\\".vertCount\\\")}):R(function(){return-1}):new P(a.thisDep||s.thisDep,a.contextDep||s.contextDep,a.propDep||s.propDep,function(t,e){var r=t.ELEMENTS;return t.OFFSET?e.def(r,\\\"?\\\",r,\\\".vertCount-\\\",t.OFFSET,\\\":-1\\\"):e.def(r,\\\"?\\\",r,\\\".vertCount:-1\\\")}):null}(),instances:r(\\\"instances\\\",!1),offset:s}}function M(t,r){var n=t.static,a=t.dynamic,o={};return Object.keys(n).forEach(function(t){var r=n[t],a=e.id(t),s=new Z;if(O(r))s.state=1,s.buffer=i.getBuffer(i.create(r,34962,!1,!0)),s.type=0;else if(c=i.getBuffer(r))s.state=1,s.buffer=c,s.type=0;else if(\\\"constant\\\"in r){var l=r.constant;s.buffer=\\\"null\\\",s.state=2,\\\"number\\\"==typeof l?s.x=l:bt.forEach(function(t,e){e<l.length&&(s[t]=l[e])})}else{var c=O(r.buffer)?i.getBuffer(i.create(r.buffer,34962,!1,!0)):i.getBuffer(r.buffer),u=0|r.offset,f=0|r.stride,h=0|r.size,p=!!r.normalized,d=0;\\\"type\\\"in r&&(d=J[r.type]),r=0|r.divisor,s.buffer=c,s.state=1,s.size=h,s.normalized=p,s.type=d||c.dtype,s.offset=u,s.stride=f,s.divisor=r}o[t]=R(function(t,e){var r=t.attribCache;if(a in r)return r[a];var n={isStream:!1};return Object.keys(s).forEach(function(t){n[t]=s[t]}),s.buffer&&(n.buffer=t.link(s.buffer),n.type=n.type||n.buffer+\\\".dtype\\\"),r[a]=n})}),Object.keys(a).forEach(function(t){var e=a[t];o[t]=B(e,function(t,r){function n(t){r(l[t],\\\"=\\\",i,\\\".\\\",t,\\\"|0;\\\")}var i=t.invoke(r,e),a=t.shared,o=a.isBufferArgs,s=a.buffer,l={isStream:r.def(!1)},c=new Z;c.state=1,Object.keys(c).forEach(function(t){l[t]=r.def(\\\"\\\"+c[t])});var u=l.buffer,f=l.type;return r(\\\"if(\\\",o,\\\"(\\\",i,\\\")){\\\",l.isStream,\\\"=true;\\\",u,\\\"=\\\",s,\\\".createStream(\\\",34962,\\\",\\\",i,\\\");\\\",f,\\\"=\\\",u,\\\".dtype;\\\",\\\"}else{\\\",u,\\\"=\\\",s,\\\".getBuffer(\\\",i,\\\");\\\",\\\"if(\\\",u,\\\"){\\\",f,\\\"=\\\",u,\\\".dtype;\\\",'}else if(\\\"constant\\\" in ',i,\\\"){\\\",l.state,\\\"=\\\",2,\\\";\\\",\\\"if(typeof \\\"+i+'.constant === \\\"number\\\"){',l[bt[0]],\\\"=\\\",i,\\\".constant;\\\",bt.slice(1).map(function(t){return l[t]}).join(\\\"=\\\"),\\\"=0;\\\",\\\"}else{\\\",bt.map(function(t,e){return l[t]+\\\"=\\\"+i+\\\".constant.length>\\\"+e+\\\"?\\\"+i+\\\".constant[\\\"+e+\\\"]:0;\\\"}).join(\\\"\\\"),\\\"}}else{\\\",\\\"if(\\\",o,\\\"(\\\",i,\\\".buffer)){\\\",u,\\\"=\\\",s,\\\".createStream(\\\",34962,\\\",\\\",i,\\\".buffer);\\\",\\\"}else{\\\",u,\\\"=\\\",s,\\\".getBuffer(\\\",i,\\\".buffer);\\\",\\\"}\\\",f,'=\\\"type\\\" in ',i,\\\"?\\\",a.glTypes,\\\"[\\\",i,\\\".type]:\\\",u,\\\".dtype;\\\",l.normalized,\\\"=!!\\\",i,\\\".normalized;\\\"),n(\\\"size\\\"),n(\\\"offset\\\"),n(\\\"stride\\\"),n(\\\"divisor\\\"),r(\\\"}}\\\"),r.exit(\\\"if(\\\",l.isStream,\\\"){\\\",s,\\\".destroyStream(\\\",u,\\\");\\\",\\\"}\\\"),l})}),o}function A(t,e,r,n,i){var o=_(t),s=function(t,e,r){function n(t){if(t in i){var r=i[t];t=!0;var n,o,s=0|r.x,l=0|r.y;return\\\"width\\\"in r?n=0|r.width:t=!1,\\\"height\\\"in r?o=0|r.height:t=!1,new P(!t&&e&&e.thisDep,!t&&e&&e.contextDep,!t&&e&&e.propDep,function(t,e){var i=t.shared.context,a=n;\\\"width\\\"in r||(a=e.def(i,\\\".\\\",\\\"framebufferWidth\\\",\\\"-\\\",s));var c=o;return\\\"height\\\"in r||(c=e.def(i,\\\".\\\",\\\"framebufferHeight\\\",\\\"-\\\",l)),[s,l,a,c]})}if(t in a){var c=a[t];return t=B(c,function(t,e){var r=t.invoke(e,c),n=t.shared.context,i=e.def(r,\\\".x|0\\\"),a=e.def(r,\\\".y|0\\\");return[i,a,e.def('\\\"width\\\" in ',r,\\\"?\\\",r,\\\".width|0:\\\",\\\"(\\\",n,\\\".\\\",\\\"framebufferWidth\\\",\\\"-\\\",i,\\\")\\\"),r=e.def('\\\"height\\\" in ',r,\\\"?\\\",r,\\\".height|0:\\\",\\\"(\\\",n,\\\".\\\",\\\"framebufferHeight\\\",\\\"-\\\",a,\\\")\\\")]}),e&&(t.thisDep=t.thisDep||e.thisDep,t.contextDep=t.contextDep||e.contextDep,t.propDep=t.propDep||e.propDep),t}return e?new P(e.thisDep,e.contextDep,e.propDep,function(t,e){var r=t.shared.context;return[0,0,e.def(r,\\\".\\\",\\\"framebufferWidth\\\"),e.def(r,\\\".\\\",\\\"framebufferHeight\\\")]}):null}var i=t.static,a=t.dynamic;if(t=n(\\\"viewport\\\")){var o=t;t=new P(t.thisDep,t.contextDep,t.propDep,function(t,e){var r=o.append(t,e),n=t.shared.context;return e.set(n,\\\".viewportWidth\\\",r[2]),e.set(n,\\\".viewportHeight\\\",r[3]),r})}return{viewport:t,scissor_box:n(\\\"scissor.box\\\")}}(t,o),l=k(t),c=function(t,e){var r=t.static,n=t.dynamic,i={};return nt.forEach(function(t){function e(e,a){if(t in r){var s=e(r[t]);i[o]=R(function(){return s})}else if(t in n){var l=n[t];i[o]=B(l,function(t,e){return a(t,e,t.invoke(e,l))})}}var o=m(t);switch(t){case\\\"cull.enable\\\":case\\\"blend.enable\\\":case\\\"dither\\\":case\\\"stencil.enable\\\":case\\\"depth.enable\\\":case\\\"scissor.enable\\\":case\\\"polygonOffset.enable\\\":case\\\"sample.alpha\\\":case\\\"sample.enable\\\":case\\\"depth.mask\\\":return e(function(t){return t},function(t,e,r){return r});case\\\"depth.func\\\":return e(function(t){return kt[t]},function(t,e,r){return e.def(t.constants.compareFuncs,\\\"[\\\",r,\\\"]\\\")});case\\\"depth.range\\\":return e(function(t){return t},function(t,e,r){return[e.def(\\\"+\\\",r,\\\"[0]\\\"),e=e.def(\\\"+\\\",r,\\\"[1]\\\")]});case\\\"blend.func\\\":return e(function(t){return[wt[\\\"srcRGB\\\"in t?t.srcRGB:t.src],wt[\\\"dstRGB\\\"in t?t.dstRGB:t.dst],wt[\\\"srcAlpha\\\"in t?t.srcAlpha:t.src],wt[\\\"dstAlpha\\\"in t?t.dstAlpha:t.dst]]},function(t,e,r){function n(t,n){return e.def('\\\"',t,n,'\\\" in ',r,\\\"?\\\",r,\\\".\\\",t,n,\\\":\\\",r,\\\".\\\",t)}t=t.constants.blendFuncs;var i=n(\\\"src\\\",\\\"RGB\\\"),a=n(\\\"dst\\\",\\\"RGB\\\"),o=(i=e.def(t,\\\"[\\\",i,\\\"]\\\"),e.def(t,\\\"[\\\",n(\\\"src\\\",\\\"Alpha\\\"),\\\"]\\\"));return[i,a=e.def(t,\\\"[\\\",a,\\\"]\\\"),o,t=e.def(t,\\\"[\\\",n(\\\"dst\\\",\\\"Alpha\\\"),\\\"]\\\")]});case\\\"blend.equation\\\":return e(function(t){return\\\"string\\\"==typeof t?[$[t],$[t]]:\\\"object\\\"==typeof t?[$[t.rgb],$[t.alpha]]:void 0},function(t,e,r){var n=t.constants.blendEquations,i=e.def(),a=e.def();return(t=t.cond(\\\"typeof \\\",r,'===\\\"string\\\"')).then(i,\\\"=\\\",a,\\\"=\\\",n,\\\"[\\\",r,\\\"];\\\"),t.else(i,\\\"=\\\",n,\\\"[\\\",r,\\\".rgb];\\\",a,\\\"=\\\",n,\\\"[\\\",r,\\\".alpha];\\\"),e(t),[i,a]});case\\\"blend.color\\\":return e(function(t){return a(4,function(e){return+t[e]})},function(t,e,r){return a(4,function(t){return e.def(\\\"+\\\",r,\\\"[\\\",t,\\\"]\\\")})});case\\\"stencil.mask\\\":return e(function(t){return 0|t},function(t,e,r){return e.def(r,\\\"|0\\\")});case\\\"stencil.func\\\":return e(function(t){return[kt[t.cmp||\\\"keep\\\"],t.ref||0,\\\"mask\\\"in t?t.mask:-1]},function(t,e,r){return[t=e.def('\\\"cmp\\\" in ',r,\\\"?\\\",t.constants.compareFuncs,\\\"[\\\",r,\\\".cmp]\\\",\\\":\\\",7680),e.def(r,\\\".ref|0\\\"),e=e.def('\\\"mask\\\" in ',r,\\\"?\\\",r,\\\".mask|0:-1\\\")]});case\\\"stencil.opFront\\\":case\\\"stencil.opBack\\\":return e(function(e){return[\\\"stencil.opBack\\\"===t?1029:1028,Mt[e.fail||\\\"keep\\\"],Mt[e.zfail||\\\"keep\\\"],Mt[e.zpass||\\\"keep\\\"]]},function(e,r,n){function i(t){return r.def('\\\"',t,'\\\" in ',n,\\\"?\\\",a,\\\"[\\\",n,\\\".\\\",t,\\\"]:\\\",7680)}var a=e.constants.stencilOps;return[\\\"stencil.opBack\\\"===t?1029:1028,i(\\\"fail\\\"),i(\\\"zfail\\\"),i(\\\"zpass\\\")]});case\\\"polygonOffset.offset\\\":return e(function(t){return[0|t.factor,0|t.units]},function(t,e,r){return[e.def(r,\\\".factor|0\\\"),e=e.def(r,\\\".units|0\\\")]});case\\\"cull.face\\\":return e(function(t){var e=0;return\\\"front\\\"===t?e=1028:\\\"back\\\"===t&&(e=1029),e},function(t,e,r){return e.def(r,'===\\\"front\\\"?',1028,\\\":\\\",1029)});case\\\"lineWidth\\\":return e(function(t){return t},function(t,e,r){return r});case\\\"frontFace\\\":return e(function(t){return At[t]},function(t,e,r){return e.def(r+'===\\\"cw\\\"?2304:2305')});case\\\"colorMask\\\":return e(function(t){return t.map(function(t){return!!t})},function(t,e,r){return a(4,function(t){return\\\"!!\\\"+r+\\\"[\\\"+t+\\\"]\\\"})});case\\\"sample.coverage\\\":return e(function(t){return[\\\"value\\\"in t?t.value:1,!!t.invert]},function(t,e,r){return[e.def('\\\"value\\\" in ',r,\\\"?+\\\",r,\\\".value:1\\\"),e=e.def(\\\"!!\\\",r,\\\".invert\\\")]})}}),i}(t),u=w(t),f=s.viewport;return f&&(c.viewport=f),(s=s[f=m(\\\"scissor.box\\\")])&&(c[f]=s),(o={framebuffer:o,draw:l,shader:u,state:c,dirty:s=0<Object.keys(c).length}).profile=function(t){var e,r=t.static;if(t=t.dynamic,\\\"profile\\\"in r){var n=!!r.profile;(e=R(function(t,e){return n})).enable=n}else if(\\\"profile\\\"in t){var i=t.profile;e=B(i,function(t,e){return t.invoke(e,i)})}return e}(t),o.uniforms=function(t,e){var r=t.static,n=t.dynamic,i={};return Object.keys(r).forEach(function(t){var e,n=r[t];if(\\\"number\\\"==typeof n||\\\"boolean\\\"==typeof n)e=R(function(){return n});else if(\\\"function\\\"==typeof n){var o=n._reglType;\\\"texture2d\\\"===o||\\\"textureCube\\\"===o?e=R(function(t){return t.link(n)}):\\\"framebuffer\\\"!==o&&\\\"framebufferCube\\\"!==o||(e=R(function(t){return t.link(n.color[0])}))}else v(n)&&(e=R(function(t){return t.global.def(\\\"[\\\",a(n.length,function(t){return n[t]}),\\\"]\\\")}));e.value=n,i[t]=e}),Object.keys(n).forEach(function(t){var e=n[t];i[t]=B(e,function(t,r){return t.invoke(r,e)})}),i}(r),o.attributes=M(e),o.context=function(t){var e=t.static,r=t.dynamic,n={};return Object.keys(e).forEach(function(t){var r=e[t];n[t]=R(function(t,e){return\\\"number\\\"==typeof r||\\\"boolean\\\"==typeof r?\\\"\\\"+r:t.link(r)})}),Object.keys(r).forEach(function(t){var e=r[t];n[t]=B(e,function(t,r){return t.invoke(r,e)})}),n}(n),o}function T(t,e,r){var n=t.shared.context,i=t.scope();Object.keys(r).forEach(function(a){e.save(n,\\\".\\\"+a),i(n,\\\".\\\",a,\\\"=\\\",r[a].append(t,e),\\\";\\\")}),e(i)}function S(t,e,r,n){var i,a=(s=t.shared).gl,o=s.framebuffer;Q&&(i=e.def(s.extensions,\\\".webgl_draw_buffers\\\"));var s=(l=t.constants).drawBuffer,l=l.backBuffer;t=r?r.append(t,e):e.def(o,\\\".next\\\"),n||e(\\\"if(\\\",t,\\\"!==\\\",o,\\\".cur){\\\"),e(\\\"if(\\\",t,\\\"){\\\",a,\\\".bindFramebuffer(\\\",36160,\\\",\\\",t,\\\".framebuffer);\\\"),Q&&e(i,\\\".drawBuffersWEBGL(\\\",s,\\\"[\\\",t,\\\".colorAttachments.length]);\\\"),e(\\\"}else{\\\",a,\\\".bindFramebuffer(\\\",36160,\\\",null);\\\"),Q&&e(i,\\\".drawBuffersWEBGL(\\\",l,\\\");\\\"),e(\\\"}\\\",o,\\\".cur=\\\",t,\\\";\\\"),n||e(\\\"}\\\")}function E(t,e,r){var n=t.shared,i=n.gl,o=t.current,s=t.next,l=n.current,c=n.next,u=t.cond(l,\\\".dirty\\\");nt.forEach(function(e){var n,f;if(!((e=m(e))in r.state))if(e in s){n=s[e],f=o[e];var h=a(tt[e].length,function(t){return u.def(n,\\\"[\\\",t,\\\"]\\\")});u(t.cond(h.map(function(t,e){return t+\\\"!==\\\"+f+\\\"[\\\"+e+\\\"]\\\"}).join(\\\"||\\\")).then(i,\\\".\\\",at[e],\\\"(\\\",h,\\\");\\\",h.map(function(t,e){return f+\\\"[\\\"+e+\\\"]=\\\"+t}).join(\\\";\\\"),\\\";\\\"))}else n=u.def(c,\\\".\\\",e),h=t.cond(n,\\\"!==\\\",l,\\\".\\\",e),u(h),e in it?h(t.cond(n).then(i,\\\".enable(\\\",it[e],\\\");\\\").else(i,\\\".disable(\\\",it[e],\\\");\\\"),l,\\\".\\\",e,\\\"=\\\",n,\\\";\\\"):h(i,\\\".\\\",at[e],\\\"(\\\",n,\\\");\\\",l,\\\".\\\",e,\\\"=\\\",n,\\\";\\\")}),0===Object.keys(r.state).length&&u(l,\\\".dirty=false;\\\"),e(u)}function C(t,e,r,n){var i=t.shared,a=t.current,o=i.current,s=i.gl;I(Object.keys(r)).forEach(function(i){var l=r[i];if(!n||n(l)){var c=l.append(t,e);if(it[i]){var u=it[i];D(l)?e(s,c?\\\".enable(\\\":\\\".disable(\\\",u,\\\");\\\"):e(t.cond(c).then(s,\\\".enable(\\\",u,\\\");\\\").else(s,\\\".disable(\\\",u,\\\");\\\")),e(o,\\\".\\\",i,\\\"=\\\",c,\\\";\\\")}else if(v(c)){var f=a[i];e(s,\\\".\\\",at[i],\\\"(\\\",c,\\\");\\\",c.map(function(t,e){return f+\\\"[\\\"+e+\\\"]=\\\"+t}).join(\\\";\\\"),\\\";\\\")}else e(s,\\\".\\\",at[i],\\\"(\\\",c,\\\");\\\",o,\\\".\\\",i,\\\"=\\\",c,\\\";\\\")}})}function L(t,e){K&&(t.instancing=e.def(t.shared.extensions,\\\".angle_instanced_arrays\\\"))}function F(t,e,r,n,i){function a(){return\\\"undefined\\\"==typeof performance?\\\"Date.now()\\\":\\\"performance.now()\\\"}function o(t){t(c=e.def(),\\\"=\\\",a(),\\\";\\\"),\\\"string\\\"==typeof i?t(h,\\\".count+=\\\",i,\\\";\\\"):t(h,\\\".count++;\\\"),d&&(n?t(u=e.def(),\\\"=\\\",g,\\\".getNumPendingQueries();\\\"):t(g,\\\".beginQuery(\\\",h,\\\");\\\"))}function s(t){t(h,\\\".cpuTime+=\\\",a(),\\\"-\\\",c,\\\";\\\"),d&&(n?t(g,\\\".pushScopeStats(\\\",u,\\\",\\\",g,\\\".getNumPendingQueries(),\\\",h,\\\");\\\"):t(g,\\\".endQuery();\\\"))}function l(t){var r=e.def(p,\\\".profile\\\");e(p,\\\".profile=\\\",t,\\\";\\\"),e.exit(p,\\\".profile=\\\",r,\\\";\\\")}var c,u,f=t.shared,h=t.stats,p=f.current,g=f.timer;if(r=r.profile){if(D(r))return void(r.enable?(o(e),s(e.exit),l(\\\"true\\\")):l(\\\"false\\\"));l(r=r.append(t,e))}else r=e.def(p,\\\".profile\\\");o(f=t.block()),e(\\\"if(\\\",r,\\\"){\\\",f,\\\"}\\\"),s(t=t.block()),e.exit(\\\"if(\\\",r,\\\"){\\\",t,\\\"}\\\")}function N(t,e,r,n,i){function a(r,n,i){function a(){e(\\\"if(!\\\",u,\\\".buffer){\\\",l,\\\".enableVertexAttribArray(\\\",c,\\\");}\\\");var r,a=i.type;r=i.size?e.def(i.size,\\\"||\\\",n):n,e(\\\"if(\\\",u,\\\".type!==\\\",a,\\\"||\\\",u,\\\".size!==\\\",r,\\\"||\\\",p.map(function(t){return u+\\\".\\\"+t+\\\"!==\\\"+i[t]}).join(\\\"||\\\"),\\\"){\\\",l,\\\".bindBuffer(\\\",34962,\\\",\\\",f,\\\".buffer);\\\",l,\\\".vertexAttribPointer(\\\",[c,r,a,i.normalized,i.stride,i.offset],\\\");\\\",u,\\\".type=\\\",a,\\\";\\\",u,\\\".size=\\\",r,\\\";\\\",p.map(function(t){return u+\\\".\\\"+t+\\\"=\\\"+i[t]+\\\";\\\"}).join(\\\"\\\"),\\\"}\\\"),K&&(a=i.divisor,e(\\\"if(\\\",u,\\\".divisor!==\\\",a,\\\"){\\\",t.instancing,\\\".vertexAttribDivisorANGLE(\\\",[c,a],\\\");\\\",u,\\\".divisor=\\\",a,\\\";}\\\"))}function s(){e(\\\"if(\\\",u,\\\".buffer){\\\",l,\\\".disableVertexAttribArray(\\\",c,\\\");\\\",\\\"}if(\\\",bt.map(function(t,e){return u+\\\".\\\"+t+\\\"!==\\\"+h[e]}).join(\\\"||\\\"),\\\"){\\\",l,\\\".vertexAttrib4f(\\\",c,\\\",\\\",h,\\\");\\\",bt.map(function(t,e){return u+\\\".\\\"+t+\\\"=\\\"+h[e]+\\\";\\\"}).join(\\\"\\\"),\\\"}\\\")}var l=o.gl,c=e.def(r,\\\".location\\\"),u=e.def(o.attributes,\\\"[\\\",c,\\\"]\\\");r=i.state;var f=i.buffer,h=[i.x,i.y,i.z,i.w],p=[\\\"buffer\\\",\\\"normalized\\\",\\\"offset\\\",\\\"stride\\\"];1===r?a():2===r?s():(e(\\\"if(\\\",r,\\\"===\\\",1,\\\"){\\\"),a(),e(\\\"}else{\\\"),s(),e(\\\"}\\\"))}var o=t.shared;n.forEach(function(n){var o,s=n.name,l=r.attributes[s];if(l){if(!i(l))return;o=l.append(t,e)}else{if(!i(Tt))return;var c=t.scopeAttrib(s);o={},Object.keys(new Z).forEach(function(t){o[t]=e.def(c,\\\".\\\",t)})}a(t.link(n),function(t){switch(t){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}}(n.info.type),o)})}function j(t,r,n,i,o){for(var s,l=t.shared,c=l.gl,u=0;u<i.length;++u){var f,h=(g=i[u]).name,p=g.info.type,d=n.uniforms[h],g=t.link(g)+\\\".location\\\";if(d){if(!o(d))continue;if(D(d)){if(h=d.value,35678===p||35680===p)r(c,\\\".uniform1i(\\\",g,\\\",\\\",(p=t.link(h._texture||h.color[0]._texture))+\\\".bind());\\\"),r.exit(p,\\\".unbind();\\\");else if(35674===p||35675===p||35676===p)d=2,35675===p?d=3:35676===p&&(d=4),r(c,\\\".uniformMatrix\\\",d,\\\"fv(\\\",g,\\\",false,\\\",h=t.global.def(\\\"new Float32Array([\\\"+Array.prototype.slice.call(h)+\\\"])\\\"),\\\");\\\");else{switch(p){case 5126:s=\\\"1f\\\";break;case 35664:s=\\\"2f\\\";break;case 35665:s=\\\"3f\\\";break;case 35666:s=\\\"4f\\\";break;case 35670:case 5124:s=\\\"1i\\\";break;case 35671:case 35667:s=\\\"2i\\\";break;case 35672:case 35668:s=\\\"3i\\\";break;case 35673:s=\\\"4i\\\";break;case 35669:s=\\\"4i\\\"}r(c,\\\".uniform\\\",s,\\\"(\\\",g,\\\",\\\",v(h)?Array.prototype.slice.call(h):h,\\\");\\\")}continue}f=d.append(t,r)}else{if(!o(Tt))continue;f=r.def(l.uniforms,\\\"[\\\",e.id(h),\\\"]\\\")}switch(35678===p?r(\\\"if(\\\",f,\\\"&&\\\",f,'._reglType===\\\"framebuffer\\\"){',f,\\\"=\\\",f,\\\".color[0];\\\",\\\"}\\\"):35680===p&&r(\\\"if(\\\",f,\\\"&&\\\",f,'._reglType===\\\"framebufferCube\\\"){',f,\\\"=\\\",f,\\\".color[0];\\\",\\\"}\\\"),h=1,p){case 35678:case 35680:p=r.def(f,\\\"._texture\\\"),r(c,\\\".uniform1i(\\\",g,\\\",\\\",p,\\\".bind());\\\"),r.exit(p,\\\".unbind();\\\");continue;case 5124:case 35670:s=\\\"1i\\\";break;case 35667:case 35671:s=\\\"2i\\\",h=2;break;case 35668:case 35672:s=\\\"3i\\\",h=3;break;case 35669:case 35673:s=\\\"4i\\\",h=4;break;case 5126:s=\\\"1f\\\";break;case 35664:s=\\\"2f\\\",h=2;break;case 35665:s=\\\"3f\\\",h=3;break;case 35666:s=\\\"4f\\\",h=4;break;case 35674:s=\\\"Matrix2fv\\\";break;case 35675:s=\\\"Matrix3fv\\\";break;case 35676:s=\\\"Matrix4fv\\\"}if(r(c,\\\".uniform\\\",s,\\\"(\\\",g,\\\",\\\"),\\\"M\\\"===s.charAt(0)){g=Math.pow(p-35674+2,2);var m=t.global.def(\\\"new Float32Array(\\\",g,\\\")\\\");r(\\\"false,(Array.isArray(\\\",f,\\\")||\\\",f,\\\" instanceof Float32Array)?\\\",f,\\\":(\\\",a(g,function(t){return m+\\\"[\\\"+t+\\\"]=\\\"+f+\\\"[\\\"+t+\\\"]\\\"}),\\\",\\\",m,\\\")\\\")}else r(1<h?a(h,function(t){return f+\\\"[\\\"+t+\\\"]\\\"}):f);r(\\\");\\\")}}function V(t,e,r,n){function i(i){var a=h[i];return a?a.contextDep&&n.contextDynamic||a.propDep?a.append(t,r):a.append(t,e):e.def(f,\\\".\\\",i)}function a(){function t(){r(l,\\\".drawElementsInstancedANGLE(\\\",[d,v,m,g+\\\"<<((\\\"+m+\\\"-5121)>>1)\\\",s],\\\");\\\")}function e(){r(l,\\\".drawArraysInstancedANGLE(\\\",[d,g,v,s],\\\");\\\")}p?y?t():(r(\\\"if(\\\",p,\\\"){\\\"),t(),r(\\\"}else{\\\"),e(),r(\\\"}\\\")):e()}function o(){function t(){r(u+\\\".drawElements(\\\"+[d,v,m,g+\\\"<<((\\\"+m+\\\"-5121)>>1)\\\"]+\\\");\\\")}function e(){r(u+\\\".drawArrays(\\\"+[d,g,v]+\\\");\\\")}p?y?t():(r(\\\"if(\\\",p,\\\"){\\\"),t(),r(\\\"}else{\\\"),e(),r(\\\"}\\\")):e()}var s,l,c=t.shared,u=c.gl,f=c.draw,h=n.draw,p=function(){var i=h.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,\\\".\\\",\\\"elements\\\"),i&&a(\\\"if(\\\"+i+\\\")\\\"+u+\\\".bindBuffer(34963,\\\"+i+\\\".buffer.buffer);\\\"),i}(),d=i(\\\"primitive\\\"),g=i(\\\"offset\\\"),v=function(){var i=h.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,\\\".\\\",\\\"count\\\"),i}();if(\\\"number\\\"==typeof v){if(0===v)return}else r(\\\"if(\\\",v,\\\"){\\\"),r.exit(\\\"}\\\");K&&(s=i(\\\"instances\\\"),l=t.instancing);var m=p+\\\".type\\\",y=h.elements&&D(h.elements);K&&(\\\"number\\\"!=typeof s||0<=s)?\\\"string\\\"==typeof s?(r(\\\"if(\\\",s,\\\">0){\\\"),a(),r(\\\"}else if(\\\",s,\\\"<0){\\\"),o(),r(\\\"}\\\")):a():o()}function q(t,e,r,n,i){return i=(e=b()).proc(\\\"body\\\",i),K&&(e.instancing=i.def(e.shared.extensions,\\\".angle_instanced_arrays\\\")),t(e,i,r,n),e.compile().body}function H(t,e,r,n){L(t,e),N(t,e,r,n.attributes,function(){return!0}),j(t,e,r,n.uniforms,function(){return!0}),V(t,e,e,r)}function G(t,e,r,n){function i(){return!0}t.batchId=\\\"a1\\\",L(t,e),N(t,e,r,n.attributes,i),j(t,e,r,n.uniforms,i),V(t,e,e,r)}function W(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}L(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var c=t.scope(),u=t.scope();e(c.entry,\\\"for(\\\",s,\\\"=0;\\\",s,\\\"<\\\",\\\"a1\\\",\\\";++\\\",s,\\\"){\\\",l,\\\"=\\\",\\\"a0\\\",\\\"[\\\",s,\\\"];\\\",u,\\\"}\\\",c.exit),r.needsContext&&T(t,u,r.context),r.needsFramebuffer&&S(t,u,r.framebuffer),C(t,u,r.state,i),r.profile&&i(r.profile)&&F(t,u,r,!1,!0),n?(N(t,c,r,n.attributes,a),N(t,u,r,n.attributes,i),j(t,c,r,n.uniforms,a),j(t,u,r,n.uniforms,i),V(t,c,u,r)):(e=t.global.def(\\\"{}\\\"),n=r.shader.progVar.append(t,u),l=u.def(n,\\\".id\\\"),c=u.def(e,\\\"[\\\",l,\\\"]\\\"),u(t.shared.gl,\\\".useProgram(\\\",n,\\\".program);\\\",\\\"if(!\\\",c,\\\"){\\\",c,\\\"=\\\",e,\\\"[\\\",l,\\\"]=\\\",t.link(function(e){return q(G,t,r,e,2)}),\\\"(\\\",n,\\\");}\\\",c,\\\".call(this,a0[\\\",s,\\\"],\\\",s,\\\");\\\"))}function Y(t,r){function n(e){var n=r.shader[e];n&&i.set(a.shader,\\\".\\\"+e,n.append(t,i))}var i=t.proc(\\\"scope\\\",3);t.batchId=\\\"a2\\\";var a=t.shared,o=a.current;T(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),I(Object.keys(r.state)).forEach(function(e){var n=r.state[e].append(t,i);v(n)?n.forEach(function(r,n){i.set(t.next[e],\\\"[\\\"+n+\\\"]\\\",r)}):i.set(a.next,\\\".\\\"+e,n)}),F(t,i,r,!0,!0),[\\\"elements\\\",\\\"offset\\\",\\\"count\\\",\\\"instances\\\",\\\"primitive\\\"].forEach(function(e){var n=r.draw[e];n&&i.set(a.draw,\\\".\\\"+e,\\\"\\\"+n.append(t,i))}),Object.keys(r.uniforms).forEach(function(n){i.set(a.uniforms,\\\"[\\\"+e.id(n)+\\\"]\\\",r.uniforms[n].append(t,i))}),Object.keys(r.attributes).forEach(function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new Z).forEach(function(t){i.set(a,\\\".\\\"+t,n[t])})}),n(\\\"vert\\\"),n(\\\"frag\\\"),0<Object.keys(r.state).length&&(i(o,\\\".dirty=true;\\\"),i.exit(o,\\\".dirty=true;\\\")),i(\\\"a1(\\\",t.shared.context,\\\",a0,\\\",t.batchId,\\\");\\\")}function X(t,e,r){var n=e.static[r];if(n&&function(t){if(\\\"object\\\"==typeof t&&!v(t)){for(var e=Object.keys(t),r=0;r<e.length;++r)if(U.isDynamic(t[e[r]]))return!0;return!1}}(n)){var i=t.global,a=Object.keys(n),o=!1,s=!1,l=!1,c=t.global.def(\\\"{}\\\");a.forEach(function(e){var r=n[e];if(U.isDynamic(r))\\\"function\\\"==typeof r&&(r=n[e]=U.unbox(r)),e=B(r,null),o=o||e.thisDep,l=l||e.propDep,s=s||e.contextDep;else{switch(i(c,\\\".\\\",e,\\\"=\\\"),typeof r){case\\\"number\\\":i(r);break;case\\\"string\\\":i('\\\"',r,'\\\"');break;case\\\"object\\\":Array.isArray(r)&&i(\\\"[\\\",r.join(),\\\"]\\\");break;default:i(t.link(r))}i(\\\";\\\")}}),e.dynamic[r]=new U.DynamicVariable(4,{thisDep:o,contextDep:s,propDep:l,ref:c,append:function(t,e){a.forEach(function(r){var i=n[r];U.isDynamic(i)&&(i=t.invoke(e,i),e(c,\\\".\\\",r,\\\"=\\\",i,\\\";\\\"))})}}),delete e.static[r]}}var Z=u.Record,$={add:32774,subtract:32778,\\\"reverse subtract\\\":32779};r.ext_blend_minmax&&($.min=32775,$.max=32776);var K=r.angle_instanced_arrays,Q=r.webgl_draw_buffers,tt={dirty:!0,profile:g.profile},et={},nt=[],it={},at={};y(\\\"dither\\\",3024),y(\\\"blend.enable\\\",3042),x(\\\"blend.color\\\",\\\"blendColor\\\",[0,0,0,0]),x(\\\"blend.equation\\\",\\\"blendEquationSeparate\\\",[32774,32774]),x(\\\"blend.func\\\",\\\"blendFuncSeparate\\\",[1,0,1,0]),y(\\\"depth.enable\\\",2929,!0),x(\\\"depth.func\\\",\\\"depthFunc\\\",513),x(\\\"depth.range\\\",\\\"depthRange\\\",[0,1]),x(\\\"depth.mask\\\",\\\"depthMask\\\",!0),x(\\\"colorMask\\\",\\\"colorMask\\\",[!0,!0,!0,!0]),y(\\\"cull.enable\\\",2884),x(\\\"cull.face\\\",\\\"cullFace\\\",1029),x(\\\"frontFace\\\",\\\"frontFace\\\",2305),x(\\\"lineWidth\\\",\\\"lineWidth\\\",1),y(\\\"polygonOffset.enable\\\",32823),x(\\\"polygonOffset.offset\\\",\\\"polygonOffset\\\",[0,0]),y(\\\"sample.alpha\\\",32926),y(\\\"sample.enable\\\",32928),x(\\\"sample.coverage\\\",\\\"sampleCoverage\\\",[1,!1]),y(\\\"stencil.enable\\\",2960),x(\\\"stencil.mask\\\",\\\"stencilMask\\\",-1),x(\\\"stencil.func\\\",\\\"stencilFunc\\\",[519,0,-1]),x(\\\"stencil.opFront\\\",\\\"stencilOpSeparate\\\",[1028,7680,7680,7680]),x(\\\"stencil.opBack\\\",\\\"stencilOpSeparate\\\",[1029,7680,7680,7680]),y(\\\"scissor.enable\\\",3089),x(\\\"scissor.box\\\",\\\"scissor\\\",[0,0,t.drawingBufferWidth,t.drawingBufferHeight]),x(\\\"viewport\\\",\\\"viewport\\\",[0,0,t.drawingBufferWidth,t.drawingBufferHeight]);var ot={gl:t,context:p,strings:e,next:et,current:tt,draw:h,elements:o,buffer:i,shader:f,attributes:u.state,uniforms:c,framebuffer:l,extensions:r,timer:d,isBufferArgs:O},st={primTypes:rt,compareFuncs:kt,blendFuncs:wt,blendEquations:$,stencilOps:Mt,glTypes:J,orientationType:At};Q&&(st.backBuffer=[1029],st.drawBuffer=a(n.maxDrawbuffers,function(t){return 0===t?[0]:a(t,function(t){return 36064+t})}));var lt=0;return{next:et,current:tt,procs:function(){var t=b(),e=t.proc(\\\"poll\\\"),r=t.proc(\\\"refresh\\\"),i=t.block();e(i),r(i);var o,s=t.shared,l=s.gl,c=s.next,u=s.current;i(u,\\\".dirty=false;\\\"),S(t,e),S(t,r,null,!0),K&&(o=t.link(K));for(var f=0;f<n.maxAttributes;++f){var h=r.def(s.attributes,\\\"[\\\",f,\\\"]\\\"),p=t.cond(h,\\\".buffer\\\");p.then(l,\\\".enableVertexAttribArray(\\\",f,\\\");\\\",l,\\\".bindBuffer(\\\",34962,\\\",\\\",h,\\\".buffer.buffer);\\\",l,\\\".vertexAttribPointer(\\\",f,\\\",\\\",h,\\\".size,\\\",h,\\\".type,\\\",h,\\\".normalized,\\\",h,\\\".stride,\\\",h,\\\".offset);\\\").else(l,\\\".disableVertexAttribArray(\\\",f,\\\");\\\",l,\\\".vertexAttrib4f(\\\",f,\\\",\\\",h,\\\".x,\\\",h,\\\".y,\\\",h,\\\".z,\\\",h,\\\".w);\\\",h,\\\".buffer=null;\\\"),r(p),K&&r(o,\\\".vertexAttribDivisorANGLE(\\\",f,\\\",\\\",h,\\\".divisor);\\\")}return Object.keys(it).forEach(function(n){var a=it[n],o=i.def(c,\\\".\\\",n),s=t.block();s(\\\"if(\\\",o,\\\"){\\\",l,\\\".enable(\\\",a,\\\")}else{\\\",l,\\\".disable(\\\",a,\\\")}\\\",u,\\\".\\\",n,\\\"=\\\",o,\\\";\\\"),r(s),e(\\\"if(\\\",o,\\\"!==\\\",u,\\\".\\\",n,\\\"){\\\",s,\\\"}\\\")}),Object.keys(at).forEach(function(n){var o,s,f=at[n],h=tt[n],p=t.block();p(l,\\\".\\\",f,\\\"(\\\"),v(h)?(f=h.length,o=t.global.def(c,\\\".\\\",n),s=t.global.def(u,\\\".\\\",n),p(a(f,function(t){return o+\\\"[\\\"+t+\\\"]\\\"}),\\\");\\\",a(f,function(t){return s+\\\"[\\\"+t+\\\"]=\\\"+o+\\\"[\\\"+t+\\\"];\\\"}).join(\\\"\\\")),e(\\\"if(\\\",a(f,function(t){return o+\\\"[\\\"+t+\\\"]!==\\\"+s+\\\"[\\\"+t+\\\"]\\\"}).join(\\\"||\\\"),\\\"){\\\",p,\\\"}\\\")):(o=i.def(c,\\\".\\\",n),s=i.def(u,\\\".\\\",n),p(o,\\\");\\\",u,\\\".\\\",n,\\\"=\\\",o,\\\";\\\"),e(\\\"if(\\\",o,\\\"!==\\\",s,\\\"){\\\",p,\\\"}\\\")),r(p)}),t.compile()}(),compile:function(t,e,r,n,i){var a=b();return a.stats=a.link(i),Object.keys(e.static).forEach(function(t){X(a,e,t)}),_t.forEach(function(e){X(a,t,e)}),r=A(t,e,r,n),function(t,e){var r=t.proc(\\\"draw\\\",1);L(t,r),T(t,r,e.context),S(t,r,e.framebuffer),E(t,r,e),C(t,r,e.state),F(t,r,e,!1,!0);var n=e.shader.progVar.append(t,r);if(r(t.shared.gl,\\\".useProgram(\\\",n,\\\".program);\\\"),e.shader.program)H(t,r,e,e.shader.program);else{var i=t.global.def(\\\"{}\\\"),a=r.def(n,\\\".id\\\"),o=r.def(i,\\\"[\\\",a,\\\"]\\\");r(t.cond(o).then(o,\\\".call(this,a0);\\\").else(o,\\\"=\\\",i,\\\"[\\\",a,\\\"]=\\\",t.link(function(r){return q(H,t,e,r,1)}),\\\"(\\\",n,\\\");\\\",o,\\\".call(this,a0);\\\"))}0<Object.keys(e.state).length&&r(t.shared.current,\\\".dirty=true;\\\")}(a,r),Y(a,r),function(t,e){function r(t){return t.contextDep&&i||t.propDep}var n=t.proc(\\\"batch\\\",2);t.batchId=\\\"0\\\",L(t,n);var i=!1,a=!0;Object.keys(e.context).forEach(function(t){i=i||e.context[t].propDep}),i||(T(t,n,e.context),a=!1);var o=!1;if((s=e.framebuffer)?(s.propDep?i=o=!0:s.contextDep&&i&&(o=!0),o||S(t,n,s)):S(t,n,null),e.state.viewport&&e.state.viewport.propDep&&(i=!0),E(t,n,e),C(t,n,e.state,function(t){return!r(t)}),e.profile&&r(e.profile)||F(t,n,e,!1,\\\"a1\\\"),e.contextDep=i,e.needsContext=a,e.needsFramebuffer=o,(a=e.shader.progVar).contextDep&&i||a.propDep)W(t,n,e,null);else if(a=a.append(t,n),n(t.shared.gl,\\\".useProgram(\\\",a,\\\".program);\\\"),e.shader.program)W(t,n,e,e.shader.program);else{var s=t.global.def(\\\"{}\\\"),l=(o=n.def(a,\\\".id\\\"),n.def(s,\\\"[\\\",o,\\\"]\\\"));n(t.cond(l).then(l,\\\".call(this,a0,a1);\\\").else(l,\\\"=\\\",s,\\\"[\\\",o,\\\"]=\\\",t.link(function(r){return q(W,t,e,r,2)}),\\\"(\\\",a,\\\");\\\",l,\\\".call(this,a0,a1);\\\"))}0<Object.keys(e.state).length&&n(t.shared.current,\\\".dirty=true;\\\")}(a,r),a.compile()}}}function N(t,e){for(var r=0;r<t.length;++r)if(t[r]===e)return r;return-1}var j=function(t,e){for(var r=Object.keys(e),n=0;n<r.length;++n)t[r[n]]=e[r[n]];return t},V=0,U={DynamicVariable:t,define:function(r,n){return new t(r,e(n+\\\"\\\"))},isDynamic:function(e){return\\\"function\\\"==typeof e&&!e._reglType||e instanceof t},unbox:function(e,r){return\\\"function\\\"==typeof e?new t(0,e):e},accessor:e},q={next:\\\"function\\\"==typeof requestAnimationFrame?function(t){return requestAnimationFrame(t)}:function(t){return setTimeout(t,16)},cancel:\\\"function\\\"==typeof cancelAnimationFrame?function(t){return cancelAnimationFrame(t)}:clearTimeout},H=\\\"undefined\\\"!=typeof performance&&performance.now?function(){return performance.now()}:function(){return+new Date},G=s();G.zero=s();var W=function(t,e){var r=1;e.ext_texture_filter_anisotropic&&(r=t.getParameter(34047));var n=1,i=1;e.webgl_draw_buffers&&(n=t.getParameter(34852),i=t.getParameter(36063));var a=!!e.oes_texture_float;if(a){a=t.createTexture(),t.bindTexture(3553,a),t.texImage2D(3553,0,6408,1,1,0,6408,5126,null);var o=t.createFramebuffer();if(t.bindFramebuffer(36160,o),t.framebufferTexture2D(36160,36064,3553,a,0),t.bindTexture(3553,null),36053!==t.checkFramebufferStatus(36160))a=!1;else{t.viewport(0,0,1,1),t.clearColor(1,0,0,1),t.clear(16384);var s=G.allocType(5126,4);t.readPixels(0,0,1,1,6408,5126,s),t.getError()?a=!1:(t.deleteFramebuffer(o),t.deleteTexture(a),a=1===s[0]),G.freeType(s)}}return s=!0,s=t.createTexture(),o=G.allocType(5121,36),t.activeTexture(33984),t.bindTexture(34067,s),t.texImage2D(34069,0,6408,3,3,0,6408,5121,o),G.freeType(o),t.bindTexture(34067,null),t.deleteTexture(s),s=!t.getError(),{colorBits:[t.getParameter(3410),t.getParameter(3411),t.getParameter(3412),t.getParameter(3413)],depthBits:t.getParameter(3414),stencilBits:t.getParameter(3415),subpixelBits:t.getParameter(3408),extensions:Object.keys(e).filter(function(t){return!!e[t]}),maxAnisotropic:r,maxDrawbuffers:n,maxColorAttachments:i,pointSizeDims:t.getParameter(33901),lineWidthDims:t.getParameter(33902),maxViewportDims:t.getParameter(3386),maxCombinedTextureUnits:t.getParameter(35661),maxCubeMapSize:t.getParameter(34076),maxRenderbufferSize:t.getParameter(34024),maxTextureUnits:t.getParameter(34930),maxTextureSize:t.getParameter(3379),maxAttributes:t.getParameter(34921),maxVertexUniforms:t.getParameter(36347),maxVertexTextureUnits:t.getParameter(35660),maxVaryingVectors:t.getParameter(36348),maxFragmentUniforms:t.getParameter(36349),glsl:t.getParameter(35724),renderer:t.getParameter(7937),vendor:t.getParameter(7936),version:t.getParameter(7938),readFloat:a,npotTextureCube:s}},Y=function(t){return t instanceof Uint8Array||t instanceof Uint16Array||t instanceof Uint32Array||t instanceof Int8Array||t instanceof Int16Array||t instanceof Int32Array||t instanceof Float32Array||t instanceof Float64Array||t instanceof Uint8ClampedArray},X=function(t){return Object.keys(t).map(function(e){return t[e]})},Z={shape:function(t){for(var e=[];t.length;t=t[0])e.push(t.length);return e},flatten:function(t,e,r,n){var i=1;if(e.length)for(var a=0;a<e.length;++a)i*=e[a];else i=0;switch(r=n||G.allocType(r,i),e.length){case 0:break;case 1:for(n=e[0],e=0;e<n;++e)r[e]=t[e];break;case 2:for(n=e[0],e=e[1],a=i=0;a<n;++a)for(var o=t[a],s=0;s<e;++s)r[i++]=o[s];break;case 3:c(t,e[0],e[1],e[2],r,0);break;default:!function t(e,r,n,i,a){for(var o=1,s=n+1;s<r.length;++s)o*=r[s];var l=r[n];if(4==r.length-n){var u=r[n+1],f=r[n+2];for(r=r[n+3],s=0;s<l;++s)c(e[s],u,f,r,i,a),a+=o}else for(s=0;s<l;++s)t(e[s],r,n+1,i,a),a+=o}(t,e,0,r,0)}return r}},$={\\\"[object Int8Array]\\\":5120,\\\"[object Int16Array]\\\":5122,\\\"[object Int32Array]\\\":5124,\\\"[object Uint8Array]\\\":5121,\\\"[object Uint8ClampedArray]\\\":5121,\\\"[object Uint16Array]\\\":5123,\\\"[object Uint32Array]\\\":5125,\\\"[object Float32Array]\\\":5126,\\\"[object Float64Array]\\\":5121,\\\"[object ArrayBuffer]\\\":5121},J={int8:5120,int16:5122,int32:5124,uint8:5121,uint16:5123,uint32:5125,float:5126,float32:5126},K={dynamic:35048,stream:35040,static:35044},Q=Z.flatten,tt=Z.shape,et=[];et[5120]=1,et[5122]=2,et[5124]=4,et[5121]=1,et[5123]=2,et[5125]=4,et[5126]=4;var rt={points:0,point:0,lines:1,line:1,triangles:4,triangle:4,\\\"line loop\\\":2,\\\"line strip\\\":3,\\\"triangle strip\\\":5,\\\"triangle fan\\\":6},nt=new Float32Array(1),it=new Uint32Array(nt.buffer),at=[9984,9986,9985,9987],ot=[0,6409,6410,6407,6408],st={};st[6409]=st[6406]=st[6402]=1,st[34041]=st[6410]=2,st[6407]=st[35904]=3,st[6408]=st[35906]=4;var lt=m(\\\"HTMLCanvasElement\\\"),ct=m(\\\"CanvasRenderingContext2D\\\"),ut=m(\\\"ImageBitmap\\\"),ft=m(\\\"HTMLImageElement\\\"),ht=m(\\\"HTMLVideoElement\\\"),pt=Object.keys($).concat([lt,ct,ut,ft,ht]),dt=[];dt[5121]=1,dt[5126]=4,dt[36193]=2,dt[5123]=2,dt[5125]=4;var gt=[];gt[32854]=2,gt[32855]=2,gt[36194]=2,gt[34041]=4,gt[33776]=.5,gt[33777]=.5,gt[33778]=1,gt[33779]=1,gt[35986]=.5,gt[35987]=1,gt[34798]=1,gt[35840]=.5,gt[35841]=.25,gt[35842]=.5,gt[35843]=.25,gt[36196]=.5;var vt=[];vt[32854]=2,vt[32855]=2,vt[36194]=2,vt[33189]=2,vt[36168]=1,vt[34041]=4,vt[35907]=4,vt[34836]=16,vt[34842]=8,vt[34843]=6;var mt=function(t,e,r,n,i){function a(t){this.id=c++,this.refCount=1,this.renderbuffer=t,this.format=32854,this.height=this.width=0,i.profile&&(this.stats={size:0})}function o(e){var r=e.renderbuffer;t.bindRenderbuffer(36161,null),t.deleteRenderbuffer(r),e.renderbuffer=null,e.refCount=0,delete u[e.id],n.renderbufferCount--}var s={rgba4:32854,rgb565:36194,\\\"rgb5 a1\\\":32855,depth:33189,stencil:36168,\\\"depth stencil\\\":34041};e.ext_srgb&&(s.srgba=35907),e.ext_color_buffer_half_float&&(s.rgba16f=34842,s.rgb16f=34843),e.webgl_color_buffer_float&&(s.rgba32f=34836);var l=[];Object.keys(s).forEach(function(t){l[s[t]]=t});var c=0,u={};return a.prototype.decRef=function(){0>=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(u).forEach(function(e){t+=u[e].stats.size}),t}),{create:function(e,r){function o(e,r){var n=0,a=0,u=32854;if(\\\"object\\\"==typeof e&&e?(\\\"shape\\\"in e?(n=0|(a=e.shape)[0],a=0|a[1]):(\\\"radius\\\"in e&&(n=a=0|e.radius),\\\"width\\\"in e&&(n=0|e.width),\\\"height\\\"in e&&(a=0|e.height)),\\\"format\\\"in e&&(u=s[e.format])):\\\"number\\\"==typeof e?(n=0|e,a=\\\"number\\\"==typeof r?0|r:n):e||(n=a=1),n!==c.width||a!==c.height||u!==c.format)return o.width=c.width=n,o.height=c.height=a,c.format=u,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,u,n,a),i.profile&&(c.stats.size=vt[c.format]*c.width*c.height),o.format=l[c.format],o}var c=new a(t.createRenderbuffer());return u[c.id]=c,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===c.width&&a===c.height?o:(o.width=c.width=n,o.height=c.height=a,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,c.format,n,a),i.profile&&(c.stats.size=vt[c.format]*c.width*c.height),o)},o._reglType=\\\"renderbuffer\\\",o._renderbuffer=c,i.profile&&(o.stats=c.stats),o.destroy=function(){c.decRef()},o},clear:function(){X(u).forEach(o)},restore:function(){X(u).forEach(function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)}),t.bindRenderbuffer(36161,null)}}},yt=[];yt[6408]=4,yt[6407]=3;var xt=[];xt[5121]=1,xt[5126]=4,xt[36193]=2;var bt=[\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"w\\\"],_t=\\\"blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset\\\".split(\\\" \\\"),wt={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},kt={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},Mt={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,\\\"increment wrap\\\":34055,\\\"decrement wrap\\\":34056,invert:5386},At={cw:2304,ccw:2305},Tt=new P(!1,!1,!1,function(){});return function(t){function e(){if(0===Z.length)w&&w.update(),Q=null;else{Q=q.next(e),f();for(var t=Z.length-1;0<=t;--t){var r=Z[t];r&&r(z,null,0)}v.flush(),w&&w.update()}}function r(){!Q&&0<Z.length&&(Q=q.next(e))}function n(){Q&&(q.cancel(e),Q=null)}function a(t){t.preventDefault(),n(),$.forEach(function(t){t()})}function o(t){v.getError(),y.restore(),D.restore(),I.restore(),R.restore(),B.restore(),V.restore(),w&&w.restore(),G.procs.refresh(),r(),J.forEach(function(t){t()})}function s(t){function e(t){var e={},r={};return Object.keys(t).forEach(function(n){var i=t[n];U.isDynamic(i)?r[n]=U.unbox(i,n):e[n]=i}),{dynamic:r,static:e}}var r=e(t.context||{}),n=e(t.uniforms||{}),i=e(t.attributes||{}),a=e(function(t){function e(t){if(t in r){var e=r[t];delete r[t],Object.keys(e).forEach(function(n){r[t+\\\".\\\"+n]=e[n]})}}var r=j({},t);return delete r.uniforms,delete r.attributes,delete r.context,\\\"stencil\\\"in r&&r.stencil.op&&(r.stencil.opBack=r.stencil.opFront=r.stencil.op,delete r.stencil.op),e(\\\"blend\\\"),e(\\\"depth\\\"),e(\\\"cull\\\"),e(\\\"stencil\\\"),e(\\\"polygonOffset\\\"),e(\\\"scissor\\\"),e(\\\"sample\\\"),r}(t));t={gpuTime:0,cpuTime:0,count:0};var o=(r=G.compile(a,i,n,r,t)).draw,s=r.batch,l=r.scope,c=[];return j(function(t,e){var r;if(\\\"function\\\"==typeof t)return l.call(this,null,t,0);if(\\\"function\\\"==typeof e)if(\\\"number\\\"==typeof t)for(r=0;r<t;++r)l.call(this,null,e,r);else{if(!Array.isArray(t))return l.call(this,t,e,0);for(r=0;r<t.length;++r)l.call(this,t[r],e,r)}else if(\\\"number\\\"==typeof t){if(0<t)return s.call(this,function(t){for(;c.length<t;)c.push(null);return c}(0|t),0|t)}else{if(!Array.isArray(t))return o.call(this,t);if(t.length)return s.call(this,t,t.length)}},{stats:t})}function l(t,e){var r=0;G.procs.poll();var n=e.color;n&&(v.clearColor(+n[0]||0,+n[1]||0,+n[2]||0,+n[3]||0),r|=16384),\\\"depth\\\"in e&&(v.clearDepth(+e.depth),r|=256),\\\"stencil\\\"in e&&(v.clearStencil(0|e.stencil),r|=1024),v.clear(r)}function c(t){return Z.push(t),r(),{cancel:function(){var e=N(Z,t);Z[e]=function t(){var e=N(Z,t);Z[e]=Z[Z.length-1],--Z.length,0>=Z.length&&n()}}}}function u(){var t=Y.viewport,e=Y.scissor_box;t[0]=t[1]=e[0]=e[1]=0,z.viewportWidth=z.framebufferWidth=z.drawingBufferWidth=t[2]=e[2]=v.drawingBufferWidth,z.viewportHeight=z.framebufferHeight=z.drawingBufferHeight=t[3]=e[3]=v.drawingBufferHeight}function f(){z.tick+=1,z.time=g(),u(),G.procs.poll()}function h(){u(),G.procs.refresh(),w&&w.update()}function g(){return(H()-k)/1e3}if(!(t=i(t)))return null;var v=t.gl,m=v.getContextAttributes();v.isContextLost();var y=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;i<e.extensions.length;++i){var a=e.extensions[i];if(!r(a))return e.onDestroy(),e.onDone('\\\"'+a+'\\\" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),null}return e.optionalExtensions.forEach(r),{extensions:n,restore:function(){Object.keys(n).forEach(function(t){if(!r(t))throw Error(\\\"(regl): error restoring extension \\\"+t)})}}}(v,t);if(!y)return null;var x=function(){var t={\\\"\\\":0},e=[\\\"\\\"];return{id:function(r){var n=t[r];return n||(n=t[r]=e.length,e.push(r),n)},str:function(t){return e[t]}}}(),b={bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},_=y.extensions,w=function(t,e){function r(){this.endQueryIndex=this.startQueryIndex=-1,this.sum=0,this.stats=null}function n(t,e,n){var i=s.pop()||new r;i.startQueryIndex=t,i.endQueryIndex=e,i.sum=0,i.stats=n,l.push(i)}var i=e.ext_disjoint_timer_query;if(!i)return null;var a=[],o=[],s=[],l=[],c=[],u=[];return{beginQuery:function(t){var e=a.pop()||i.createQueryEXT();i.beginQueryEXT(35007,e),o.push(e),n(o.length-1,o.length,t)},endQuery:function(){i.endQueryEXT(35007)},pushScopeStats:n,update:function(){var t,e;if(0!==(t=o.length)){u.length=Math.max(u.length,t+1),c.length=Math.max(c.length,t+1),c[0]=0;var r=u[0]=0;for(e=t=0;e<o.length;++e){var n=o[e];i.getQueryObjectEXT(n,34919)?(r+=i.getQueryObjectEXT(n,34918),a.push(n)):o[t++]=n,c[e+1]=r,u[e+1]=t}for(o.length=t,e=t=0;e<l.length;++e){var f=(r=l[e]).startQueryIndex;n=r.endQueryIndex,r.sum+=c[n]-c[f],f=u[f],(n=u[n])===f?(r.stats.gpuTime+=r.sum/1e6,s.push(r)):(r.startQueryIndex=f,r.endQueryIndex=n,l[t++]=r)}l.length=t}},getNumPendingQueries:function(){return o.length},clear:function(){a.push.apply(a,o);for(var t=0;t<a.length;t++)i.deleteQueryEXT(a[t]);o.length=0,a.length=0},restore:function(){o.length=0,a.length=0}}}(0,_),k=H(),C=v.drawingBufferWidth,L=v.drawingBufferHeight,z={tick:0,time:0,viewportWidth:C,viewportHeight:L,framebufferWidth:C,framebufferHeight:L,drawingBufferWidth:C,drawingBufferHeight:L,pixelRatio:t.pixelRatio},O=W(v,_),I=(C=function(t,e,r,n){for(t=r.maxAttributes,e=Array(t),r=0;r<t;++r)e[r]=new T;return{Record:T,scope:{},state:e}}(v,_,O),p(v,b,t,C)),P=d(v,_,I,b),D=S(v,x,b,t),R=M(v,_,O,function(){G.procs.poll()},z,b,t),B=mt(v,_,0,b,t),V=A(v,_,O,R,B,b),G=F(v,x,_,O,I,P,0,V,{},C,D,{elements:null,primitive:4,count:-1,offset:0,instances:-1},z,w,t),Y=(x=E(v,V,G.procs.poll,z),G.next),X=v.canvas,Z=[],$=[],J=[],K=[t.onDestroy],Q=null;X&&(X.addEventListener(\\\"webglcontextlost\\\",a,!1),X.addEventListener(\\\"webglcontextrestored\\\",o,!1));var tt=V.setFBO=s({framebuffer:U.define.call(null,1,\\\"framebuffer\\\")});return h(),m=j(s,{clear:function(t){if(\\\"framebuffer\\\"in t)if(t.framebuffer&&\\\"framebufferCube\\\"===t.framebuffer_reglType)for(var e=0;6>e;++e)tt(j({framebuffer:t.framebuffer.faces[e]},t),l);else tt(t,l);else l(0,t)},prop:U.define.bind(null,1),context:U.define.bind(null,2),this:U.define.bind(null,3),draw:s({}),buffer:function(t){return I.create(t,34962,!1,!1)},elements:function(t){return P.create(t,!1)},texture:R.create2D,cube:R.createCube,renderbuffer:B.create,framebuffer:V.create,framebufferCube:V.createCube,attributes:m,frame:c,on:function(t,e){var r;switch(t){case\\\"frame\\\":return c(e);case\\\"lost\\\":r=$;break;case\\\"restore\\\":r=J;break;case\\\"destroy\\\":r=K}return r.push(e),{cancel:function(){for(var t=0;t<r.length;++t)if(r[t]===e){r[t]=r[r.length-1],r.pop();break}}}},limits:O,hasExtension:function(t){return 0<=O.extensions.indexOf(t.toLowerCase())},read:x,destroy:function(){Z.length=0,n(),X&&(X.removeEventListener(\\\"webglcontextlost\\\",a),X.removeEventListener(\\\"webglcontextrestored\\\",o)),D.clear(),V.clear(),B.clear(),R.clear(),P.clear(),I.clear(),w&&w.clear(),K.forEach(function(t){t()})},_gl:v,_refresh:h,poll:function(){f(),w&&w.update()},now:g,stats:b}),t.onDone(null,m),m}},\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?e.exports=i():n.createREGL=i()},{}],479:[function(t,e,r){\\\"use strict\\\";var n,i=\\\"\\\";e.exports=function(t,e){if(\\\"string\\\"!=typeof t)throw new TypeError(\\\"expected a string\\\");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||\\\"undefined\\\"==typeof n)n=t,i=\\\"\\\";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],480:[function(t,e,r){(function(t){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{}],481:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i],s=(r=a+o)-a,l=o-s;l&&(t[--n]=r,r=l)}for(var c=0,i=n;i<e;++i){var a=t[i],o=r,s=(r=a+o)-a,l=o-s;l&&(t[c++]=l)}return t[c++]=r,t.length=c,t}},{}],482:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"robust-sum\\\"),a=t(\\\"robust-scale\\\"),o=t(\\\"robust-compress\\\"),s=6;function l(t,e){for(var r=new Array(t.length-1),n=1;n<t.length;++n)for(var i=r[n-1]=new Array(t.length-1),a=0,o=0;a<t.length;++a)a!==e&&(i[o++]=t[n][a]);return r}function c(t){if(2===t.length)return[\\\"sum(prod(\\\",t[0][0],\\\",\\\",t[1][1],\\\"),prod(-\\\",t[0][1],\\\",\\\",t[1][0],\\\"))\\\"].join(\\\"\\\");for(var e=[],r=0;r<t.length;++r)e.push([\\\"scale(\\\",c(l(t,r)),\\\",\\\",(n=r,1&n?\\\"-\\\":\\\"\\\"),t[0][r],\\\")\\\"].join(\\\"\\\"));return function t(e){if(1===e.length)return e[0];if(2===e.length)return[\\\"sum(\\\",e[0],\\\",\\\",e[1],\\\")\\\"].join(\\\"\\\");var r=e.length>>1;return[\\\"sum(\\\",t(e.slice(0,r)),\\\",\\\",t(e.slice(r)),\\\")\\\"].join(\\\"\\\")}(e);var n}function u(t){return new Function(\\\"sum\\\",\\\"scale\\\",\\\"prod\\\",\\\"compress\\\",[\\\"function robustDeterminant\\\",t,\\\"(m){return compress(\\\",c(function(t){for(var e=new Array(t),r=0;r<t;++r){e[r]=new Array(t);for(var n=0;n<t;++n)e[r][n]=[\\\"m[\\\",r,\\\"][\\\",n,\\\"]\\\"].join(\\\"\\\")}return e}(t)),\\\")};return robustDeterminant\\\",t].join(\\\"\\\"))(i,a,n,o)}var f=[function(){return[0]},function(t){return[t[0][0]]}];!function(){for(;f.length<s;)f.push(u(f.length));for(var t=[],r=[\\\"function robustDeterminant(m){switch(m.length){\\\"],n=0;n<s;++n)t.push(\\\"det\\\"+n),r.push(\\\"case \\\",n,\\\":return det\\\",n,\\\"(m);\\\");r.push(\\\"}var det=CACHE[m.length];if(!det)det=CACHE[m.length]=gen(m.length);return det(m);}return robustDeterminant\\\"),t.push(\\\"CACHE\\\",\\\"gen\\\",r.join(\\\"\\\"));var i=Function.apply(void 0,t);for(e.exports=i.apply(void 0,f.concat([f,u])),n=0;n<f.length;++n)e.exports[n]=f[n]}()},{\\\"robust-compress\\\":481,\\\"robust-scale\\\":488,\\\"robust-sum\\\":491,\\\"two-product\\\":520}],483:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"robust-sum\\\");e.exports=function(t,e){for(var r=n(t[0],e[0]),a=1;a<t.length;++a)r=i(r,n(t[a],e[a]));return r}},{\\\"robust-sum\\\":491,\\\"two-product\\\":520}],484:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"robust-sum\\\"),a=t(\\\"robust-subtract\\\"),o=t(\\\"robust-scale\\\"),s=6;function l(t,e){for(var r=new Array(t.length-1),n=1;n<t.length;++n)for(var i=r[n-1]=new Array(t.length-1),a=0,o=0;a<t.length;++a)a!==e&&(i[o++]=t[n][a]);return r}function c(t){if(1===t.length)return t[0];if(2===t.length)return[\\\"sum(\\\",t[0],\\\",\\\",t[1],\\\")\\\"].join(\\\"\\\");var e=t.length>>1;return[\\\"sum(\\\",c(t.slice(0,e)),\\\",\\\",c(t.slice(e)),\\\")\\\"].join(\\\"\\\")}function u(t,e){if(\\\"m\\\"===t.charAt(0)){if(\\\"w\\\"===e.charAt(0)){var r=t.split(\\\"[\\\");return[\\\"w\\\",e.substr(1),\\\"m\\\",r[0].substr(1)].join(\\\"\\\")}return[\\\"prod(\\\",t,\\\",\\\",e,\\\")\\\"].join(\\\"\\\")}return u(e,t)}function f(t){if(2===t.length)return[[\\\"diff(\\\",u(t[0][0],t[1][1]),\\\",\\\",u(t[1][0],t[0][1]),\\\")\\\"].join(\\\"\\\")];for(var e=[],r=0;r<t.length;++r)e.push([\\\"scale(\\\",c(f(l(t,r))),\\\",\\\",(n=r,!0&n?\\\"-\\\":\\\"\\\"),t[0][r],\\\")\\\"].join(\\\"\\\"));return e;var n}function h(t,e){for(var r=[],n=0;n<e-2;++n)r.push([\\\"prod(m\\\",t,\\\"[\\\",n,\\\"],m\\\",t,\\\"[\\\",n,\\\"])\\\"].join(\\\"\\\"));return c(r)}function p(t){for(var e=[],r=[],s=function(t){for(var e=new Array(t),r=0;r<t;++r){e[r]=new Array(t);for(var n=0;n<t;++n)e[r][n]=[\\\"m\\\",n,\\\"[\\\",t-r-2,\\\"]\\\"].join(\\\"\\\")}return e}(t),u=0;u<t;++u)s[0][u]=\\\"1\\\",s[t-1][u]=\\\"w\\\"+u;for(u=0;u<t;++u)0==(1&u)?e.push.apply(e,f(l(s,u))):r.push.apply(r,f(l(s,u)));var p=c(e),d=c(r),g=\\\"exactInSphere\\\"+t,v=[];for(u=0;u<t;++u)v.push(\\\"m\\\"+u);var m=[\\\"function \\\",g,\\\"(\\\",v.join(),\\\"){\\\"];for(u=0;u<t;++u){m.push(\\\"var w\\\",u,\\\"=\\\",h(u,t),\\\";\\\");for(var y=0;y<t;++y)y!==u&&m.push(\\\"var w\\\",u,\\\"m\\\",y,\\\"=scale(w\\\",u,\\\",m\\\",y,\\\"[0]);\\\")}return m.push(\\\"var p=\\\",p,\\\",n=\\\",d,\\\",d=diff(p,n);return d[d.length-1];}return \\\",g),new Function(\\\"sum\\\",\\\"diff\\\",\\\"prod\\\",\\\"scale\\\",m.join(\\\"\\\"))(i,a,n,o)}var d=[function(){return 0},function(){return 0},function(){return 0}];!function(){for(;d.length<=s;)d.push(p(d.length));for(var t=[],r=[\\\"slow\\\"],n=0;n<=s;++n)t.push(\\\"a\\\"+n),r.push(\\\"o\\\"+n);var i=[\\\"function testInSphere(\\\",t.join(),\\\"){switch(arguments.length){case 0:case 1:return 0;\\\"];for(n=2;n<=s;++n)i.push(\\\"case \\\",n,\\\":return o\\\",n,\\\"(\\\",t.slice(0,n).join(),\\\");\\\");i.push(\\\"}var s=new Array(arguments.length);for(var i=0;i<arguments.length;++i){s[i]=arguments[i]};return slow(s);}return testInSphere\\\"),r.push(i.join(\\\"\\\"));var a=Function.apply(void 0,r);for(e.exports=a.apply(void 0,[function(t){var e=d[t.length];return e||(e=d[t.length]=p(t.length)),e.apply(void 0,t)}].concat(d)),n=0;n<=s;++n)e.exports[n]=d[n]}()},{\\\"robust-scale\\\":488,\\\"robust-subtract\\\":490,\\\"robust-sum\\\":491,\\\"two-product\\\":520}],485:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"robust-determinant\\\"),i=6;function a(t){for(var e=\\\"robustLinearSolve\\\"+t+\\\"d\\\",r=[\\\"function \\\",e,\\\"(A,b){return [\\\"],i=0;i<t;++i){r.push(\\\"det([\\\");for(var a=0;a<t;++a){a>0&&r.push(\\\",\\\"),r.push(\\\"[\\\");for(var o=0;o<t;++o)o>0&&r.push(\\\",\\\"),o===i?r.push(\\\"+b[\\\",a,\\\"]\\\"):r.push(\\\"+A[\\\",a,\\\"][\\\",o,\\\"]\\\");r.push(\\\"]\\\")}r.push(\\\"]),\\\")}r.push(\\\"det(A)]}return \\\",e);var s=new Function(\\\"det\\\",r.join(\\\"\\\"));return s(t<6?n[t]:n)}var o=[function(){return[0]},function(t,e){return[[e[0]],[t[0][0]]]}];!function(){for(;o.length<i;)o.push(a(o.length));for(var t=[],r=[\\\"function dispatchLinearSolve(A,b){switch(A.length){\\\"],n=0;n<i;++n)t.push(\\\"s\\\"+n),r.push(\\\"case \\\",n,\\\":return s\\\",n,\\\"(A,b);\\\");r.push(\\\"}var s=CACHE[A.length];if(!s)s=CACHE[A.length]=g(A.length);return s(A,b)}return dispatchLinearSolve\\\"),t.push(\\\"CACHE\\\",\\\"g\\\",r.join(\\\"\\\"));var s=Function.apply(void 0,t);for(e.exports=s.apply(void 0,o.concat([o,a])),n=0;n<i;++n)e.exports[n]=o[n]}()},{\\\"robust-determinant\\\":482}],486:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"robust-sum\\\"),a=t(\\\"robust-scale\\\"),o=t(\\\"robust-subtract\\\"),s=5;function l(t,e){for(var r=new Array(t.length-1),n=1;n<t.length;++n)for(var i=r[n-1]=new Array(t.length-1),a=0,o=0;a<t.length;++a)a!==e&&(i[o++]=t[n][a]);return r}function c(t){if(1===t.length)return t[0];if(2===t.length)return[\\\"sum(\\\",t[0],\\\",\\\",t[1],\\\")\\\"].join(\\\"\\\");var e=t.length>>1;return[\\\"sum(\\\",c(t.slice(0,e)),\\\",\\\",c(t.slice(e)),\\\")\\\"].join(\\\"\\\")}function u(t){if(2===t.length)return[[\\\"sum(prod(\\\",t[0][0],\\\",\\\",t[1][1],\\\"),prod(-\\\",t[0][1],\\\",\\\",t[1][0],\\\"))\\\"].join(\\\"\\\")];for(var e=[],r=0;r<t.length;++r)e.push([\\\"scale(\\\",c(u(l(t,r))),\\\",\\\",(n=r,1&n?\\\"-\\\":\\\"\\\"),t[0][r],\\\")\\\"].join(\\\"\\\"));return e;var n}function f(t){for(var e=[],r=[],s=function(t){for(var e=new Array(t),r=0;r<t;++r){e[r]=new Array(t);for(var n=0;n<t;++n)e[r][n]=[\\\"m\\\",n,\\\"[\\\",t-r-1,\\\"]\\\"].join(\\\"\\\")}return e}(t),f=[],h=0;h<t;++h)0==(1&h)?e.push.apply(e,u(l(s,h))):r.push.apply(r,u(l(s,h))),f.push(\\\"m\\\"+h);var p=c(e),d=c(r),g=\\\"orientation\\\"+t+\\\"Exact\\\",v=[\\\"function \\\",g,\\\"(\\\",f.join(),\\\"){var p=\\\",p,\\\",n=\\\",d,\\\",d=sub(p,n);return d[d.length-1];};return \\\",g].join(\\\"\\\");return new Function(\\\"sum\\\",\\\"prod\\\",\\\"scale\\\",\\\"sub\\\",v)(i,n,a,o)}var h=f(3),p=f(4),d=[function(){return 0},function(){return 0},function(t,e){return e[0]-t[0]},function(t,e,r){var n,i=(t[1]-r[1])*(e[0]-r[0]),a=(t[0]-r[0])*(e[1]-r[1]),o=i-a;if(i>0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=3.3306690738754716e-16*n;return o>=s||o<=-s?o:h(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],h=r[2]-n[2],d=a*c,g=o*l,v=o*s,m=i*c,y=i*l,x=a*s,b=u*(d-g)+f*(v-m)+h*(y-x),_=7.771561172376103e-16*((Math.abs(d)+Math.abs(g))*Math.abs(u)+(Math.abs(v)+Math.abs(m))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(h));return b>_||-b>_?b:p(t,e,r,n)}];!function(){for(;d.length<=s;)d.push(f(d.length));for(var t=[],r=[\\\"slow\\\"],n=0;n<=s;++n)t.push(\\\"a\\\"+n),r.push(\\\"o\\\"+n);var i=[\\\"function getOrientation(\\\",t.join(),\\\"){switch(arguments.length){case 0:case 1:return 0;\\\"];for(n=2;n<=s;++n)i.push(\\\"case \\\",n,\\\":return o\\\",n,\\\"(\\\",t.slice(0,n).join(),\\\");\\\");i.push(\\\"}var s=new Array(arguments.length);for(var i=0;i<arguments.length;++i){s[i]=arguments[i]};return slow(s);}return getOrientation\\\"),r.push(i.join(\\\"\\\"));var a=Function.apply(void 0,r);for(e.exports=a.apply(void 0,[function(t){var e=d[t.length];return e||(e=d[t.length]=f(t.length)),e.apply(void 0,t)}].concat(d)),n=0;n<=s;++n)e.exports[n]=d[n]}()},{\\\"robust-scale\\\":488,\\\"robust-subtract\\\":490,\\\"robust-sum\\\":491,\\\"two-product\\\":520}],487:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"robust-sum\\\"),i=t(\\\"robust-scale\\\");e.exports=function(t,e){if(1===t.length)return i(e,t[0]);if(1===e.length)return i(t,e[0]);if(0===t.length||0===e.length)return[0];var r=[0];if(t.length<e.length)for(var a=0;a<t.length;++a)r=n(r,i(e,t[a]));else for(var a=0;a<e.length;++a)r=n(r,i(t,e[a]));return r}},{\\\"robust-scale\\\":488,\\\"robust-sum\\\":491}],488:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"two-product\\\"),i=t(\\\"two-sum\\\");e.exports=function(t,e){var r=t.length;if(1===r){var a=n(t[0],e);return a[0]?a:[a[1]]}var o=new Array(2*r),s=[.1,.1],l=[.1,.1],c=0;n(t[0],e,s),s[0]&&(o[c++]=s[0]);for(var u=1;u<r;++u){n(t[u],e,l);var f=s[1];i(f,l[0],s),s[0]&&(o[c++]=s[0]);var h=l[1],p=s[1],d=h+p,g=d-h,v=p-g;s[1]=d,v&&(o[c++]=v)}s[1]&&(o[c++]=s[1]);0===c&&(o[c++]=0);return o.length=c,o}},{\\\"two-product\\\":520,\\\"two-sum\\\":521}],489:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,i){var a=n(t,r,i),o=n(e,r,i);if(a>0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u),h=Math.max(c,u);if(h<s||l<f)return!1}return!0}(t,e,r,i);return!0};var n=t(\\\"robust-orientation\\\")[3]},{\\\"robust-orientation\\\":486}],490:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=0|t.length,n=0|e.length;if(1===r&&1===n)return function(t,e){var r=t+e,n=r-t,i=t-(r-n)+(e-n);if(i)return[i,r];return[r]}(t[0],-e[0]);var i,a,o=new Array(r+n),s=0,l=0,c=0,u=Math.abs,f=t[l],h=u(f),p=-e[c],d=u(p);h<d?(a=f,(l+=1)<r&&(f=t[l],h=u(f))):(a=p,(c+=1)<n&&(p=-e[c],d=u(p)));l<r&&h<d||c>=n?(i=f,(l+=1)<r&&(f=t[l],h=u(f))):(i=p,(c+=1)<n&&(p=-e[c],d=u(p)));var g,v,m=i+a,y=m-i,x=a-y,b=x,_=m;for(;l<r&&c<n;)h<d?(i=f,(l+=1)<r&&(f=t[l],h=u(f))):(i=p,(c+=1)<n&&(p=-e[c],d=u(p))),(x=(a=b)-(y=(m=i+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g;for(;l<r;)(x=(a=b)-(y=(m=(i=f)+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g,(l+=1)<r&&(f=t[l]);for(;c<n;)(x=(a=b)-(y=(m=(i=p)+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g,(c+=1)<n&&(p=-e[c]);b&&(o[s++]=b);_&&(o[s++]=_);s||(o[s++]=0);return o.length=s,o}},{}],491:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=0|t.length,n=0|e.length;if(1===r&&1===n)return function(t,e){var r=t+e,n=r-t,i=t-(r-n)+(e-n);if(i)return[i,r];return[r]}(t[0],e[0]);var i,a,o=new Array(r+n),s=0,l=0,c=0,u=Math.abs,f=t[l],h=u(f),p=e[c],d=u(p);h<d?(a=f,(l+=1)<r&&(f=t[l],h=u(f))):(a=p,(c+=1)<n&&(p=e[c],d=u(p)));l<r&&h<d||c>=n?(i=f,(l+=1)<r&&(f=t[l],h=u(f))):(i=p,(c+=1)<n&&(p=e[c],d=u(p)));var g,v,m=i+a,y=m-i,x=a-y,b=x,_=m;for(;l<r&&c<n;)h<d?(i=f,(l+=1)<r&&(f=t[l],h=u(f))):(i=p,(c+=1)<n&&(p=e[c],d=u(p))),(x=(a=b)-(y=(m=i+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g;for(;l<r;)(x=(a=b)-(y=(m=(i=f)+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g,(l+=1)<r&&(f=t[l]);for(;c<n;)(x=(a=b)-(y=(m=(i=p)+a)-i))&&(o[s++]=x),b=_-((g=_+m)-(v=g-_))+(m-v),_=g,(c+=1)<n&&(p=e[c]);b&&(o[s++]=b);_&&(o[s++]=_);s||(o[s++]=0);return o.length=s,o}},{}],492:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t<0?-1:t>0?1:0}},{}],493:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return i(n(t))};var n=t(\\\"boundary-cells\\\"),i=t(\\\"reduce-simplicial-complex\\\")},{\\\"boundary-cells\\\":83,\\\"reduce-simplicial-complex\\\":472}],494:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,s){r=r||0,\\\"undefined\\\"==typeof s&&(s=function(t){for(var e=t.length,r=0,n=0;n<e;++n)r=0|Math.max(r,t[n].length);return r-1}(t));if(0===t.length||s<1)return{cells:[],vertexIds:[],vertexWeights:[]};var l=function(t,e){for(var r=t.length,n=i.mallocUint8(r),a=0;a<r;++a)n[a]=t[a]<e|0;return n}(e,+r),c=function(t,e){for(var r=t.length,o=e*(e+1)/2*r|0,s=i.mallocUint32(2*o),l=0,c=0;c<r;++c)for(var u=t[c],e=u.length,f=0;f<e;++f)for(var h=0;h<f;++h){var p=u[h],d=u[f];s[l++]=0|Math.min(p,d),s[l++]=0|Math.max(p,d)}a(n(s,[l/2|0,2]));for(var g=2,c=2;c<l;c+=2)s[c-2]===s[c]&&s[c-1]===s[c+1]||(s[g++]=s[c],s[g++]=s[c+1]);return n(s,[g/2|0,2])}(t,s),u=function(t,e,r,a){for(var o=t.data,s=t.shape[0],l=i.mallocDouble(s),c=0,u=0;u<s;++u){var f=o[2*u],h=o[2*u+1];if(r[f]!==r[h]){var p=e[f],d=e[h];o[2*c]=f,o[2*c+1]=h,l[c++]=(d-a)/(d-p)}}return t.shape[0]=c,n(l,[c])}(c,e,l,+r),f=function(t,e){var r=i.mallocInt32(2*e),n=t.shape[0],a=t.data;r[0]=0;for(var o=0,s=0;s<n;++s){var l=a[2*s];if(l!==o){for(r[2*o+1]=s;++o<l;)r[2*o]=s,r[2*o+1]=s;r[2*o]=s}}r[2*o+1]=n;for(;++o<e;)r[2*o]=r[2*o+1]=n;return r}(c,0|e.length),h=o(s)(t,c.data,f,l),p=function(t){for(var e=0|t.shape[0],r=t.data,n=new Array(e),i=0;i<e;++i)n[i]=[r[2*i],r[2*i+1]];return n}(c),d=[].slice.call(u.data,0,u.shape[0]);return i.free(l),i.free(c.data),i.free(u.data),i.free(f),{cells:h,vertexIds:p,vertexWeights:d}};var n=t(\\\"ndarray\\\"),i=t(\\\"typedarray-pool\\\"),a=t(\\\"ndarray-sort\\\"),o=t(\\\"./lib/codegen\\\")},{\\\"./lib/codegen\\\":495,ndarray:433,\\\"ndarray-sort\\\":431,\\\"typedarray-pool\\\":522}],495:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=a[t];e||(e=a[t]=function(t){var e=0,r=new Array(t+1);r[0]=[[]];for(var a=1;a<=t;++a)for(var o=r[a]=i(a),s=0;s<o.length;++s)e=Math.max(e,o[a].length);var l=[\\\"function B(C,E,i,j){\\\",\\\"var a=Math.min(i,j)|0,b=Math.max(i,j)|0,l=C[2*a],h=C[2*a+1];\\\",\\\"while(l<h){\\\",\\\"var m=(l+h)>>1,v=E[2*m+1];\\\",\\\"if(v===b){return m}\\\",\\\"if(b<v){h=m}else{l=m+1}\\\",\\\"}\\\",\\\"return l;\\\",\\\"};\\\",\\\"function getContour\\\",t,\\\"d(F,E,C,S){\\\",\\\"var n=F.length,R=[];\\\",\\\"for(var i=0;i<n;++i){var c=F[i],l=c.length;\\\"];function c(t){if(!(t.length<=0)){l.push(\\\"R.push(\\\");for(var e=0;e<t.length;++e){var r=t[e];e>0&&l.push(\\\",\\\"),l.push(\\\"[\\\");for(var n=0;n<r.length;++n){var i=r[n];n>0&&l.push(\\\",\\\"),l.push(\\\"B(C,E,c[\\\",i[0],\\\"],c[\\\",i[1],\\\"])\\\")}l.push(\\\"]\\\")}l.push(\\\");\\\")}}for(var a=t+1;a>1;--a){a<t+1&&l.push(\\\"else \\\"),l.push(\\\"if(l===\\\",a,\\\"){\\\");for(var u=[],s=0;s<a;++s)u.push(\\\"(S[c[\\\"+s+\\\"]]<<\\\"+s+\\\")\\\");l.push(\\\"var M=\\\",u.join(\\\"+\\\"),\\\";if(M===0||M===\\\",(1<<a)-1,\\\"){continue}switch(M){\\\");for(var o=r[a-1],s=0;s<o.length;++s)l.push(\\\"case \\\",s,\\\":\\\"),c(o[s]),l.push(\\\"break;\\\");l.push(\\\"}}\\\")}return l.push(\\\"}return R;};return getContour\\\",t,\\\"d\\\"),new Function(\\\"pool\\\",l.join(\\\"\\\"))(n)}(t));return e};var n=t(\\\"typedarray-pool\\\"),i=t(\\\"marching-simplex-table\\\"),a={}},{\\\"marching-simplex-table\\\":410,\\\"typedarray-pool\\\":522}],496:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"bit-twiddle\\\"),i=t(\\\"union-find\\\");function a(t,e){var r=t.length,n=t.length-e.length,i=Math.min;if(n)return n;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return(s=t[0]+t[1]-e[0]-e[1])||i(t[0],t[1])-i(e[0],e[1]);case 3:var a=t[0]+t[1],o=e[0]+e[1];if(s=a+t[2]-(o+e[2]))return s;var s,l=i(t[0],t[1]),c=i(e[0],e[1]);return(s=i(l,t[2])-i(c,e[2]))||i(l+t[2],a)-i(c+e[2],o);default:var u=t.slice(0);u.sort();var f=e.slice(0);f.sort();for(var h=0;h<r;++h)if(n=u[h]-f[h])return n;return 0}}function o(t,e){return a(t[0],e[0])}function s(t,e){if(e){for(var r=t.length,n=new Array(r),i=0;i<r;++i)n[i]=[t[i],e[i]];n.sort(o);for(i=0;i<r;++i)t[i]=n[i][0],e[i]=n[i][1];return t}return t.sort(a),t}function l(t){if(0===t.length)return[];for(var e=1,r=t.length,n=1;n<r;++n){var i=t[n];if(a(i,t[n-1])){if(n===e){e++;continue}t[e++]=i}}return t.length=e,t}function c(t,e){for(var r=0,n=t.length-1,i=-1;r<=n;){var o=r+n>>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i<o;++i)r[i]=[];for(var s=[],l=(i=0,e.length);i<l;++i)for(var u=e[i],f=u.length,h=1,p=1<<f;h<p;++h){s.length=n.popCount(h);for(var d=0,g=0;g<f;++g)h&1<<g&&(s[d++]=u[g]);var v=c(t,s);if(!(v<0))for(;r[v++].push(i),!(v>=t.length||0!==a(t[v],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<<e+1)-1,a=0;a<t.length;++a)for(var o=t[a],l=i;l<1<<o.length;l=n.nextCombination(l)){for(var c=new Array(e+1),u=0,f=0;f<o.length;++f)l&1<<f&&(c[u++]=o[f]);r.push(c)}return s(r)}r.dimension=function(t){for(var e=0,r=Math.max,n=0,i=t.length;n<i;++n)e=r(e,t[n].length);return e-1},r.countVertices=function(t){for(var e=-1,r=Math.max,n=0,i=t.length;n<i;++n)for(var a=t[n],o=0,s=a.length;o<s;++o)e=r(e,a[o]);return e+1},r.cloneCells=function(t){for(var e=new Array(t.length),r=0,n=t.length;r<n;++r)e[r]=t[r].slice(0);return e},r.compareCells=a,r.normalize=s,r.unique=l,r.findCell=c,r.incidence=u,r.dual=function(t,e){if(!e)return u(l(f(t,0)),t);for(var r=new Array(e),n=0;n<e;++n)r[n]=[];n=0;for(var i=t.length;n<i;++n)for(var a=t[n],o=0,s=a.length;o<s;++o)r[a[o]].push(n);return r},r.explode=function(t){for(var e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0|i.length,o=1,l=1<<a;o<l;++o){for(var c=[],u=0;u<a;++u)o>>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;++a){for(var l=new Array(i.length-1),c=0,u=0;c<o;++c)c!==a&&(l[u++]=i[c]);e.push(l)}return s(e)},r.connectedComponents=function(t,e){return e?function(t,e){for(var r=new i(e),n=0;n<t.length;++n)for(var a=t[n],o=0;o<a.length;++o)for(var s=o+1;s<a.length;++s)r.link(a[o],a[s]);var l=[],c=r.ranks;for(n=0;n<c.length;++n)c[n]=-1;for(n=0;n<t.length;++n){var u=r.find(t[n][0]);c[u]<0?(c[u]=l.length,l.push([t[n].slice(0)])):l[c[u]].push(t[n].slice(0))}return l}(t,e):function(t){for(var e=l(s(f(t,0))),r=new i(e.length),n=0;n<t.length;++n)for(var a=t[n],o=0;o<a.length;++o)for(var u=c(e,[a[o]]),h=o+1;h<a.length;++h)r.link(u,c(e,[a[h]]));var p=[],d=r.ranks;for(n=0;n<d.length;++n)d[n]=-1;for(n=0;n<t.length;++n){var g=r.find(c(e,[t[n][0]]));d[g]<0?(d[g]=p.length,p.push([t[n].slice(0)])):p[d[g]].push(t[n].slice(0))}return p}(t)}},{\\\"bit-twiddle\\\":80,\\\"union-find\\\":523}],497:[function(t,e,r){arguments[4][80][0].apply(r,arguments)},{dup:80}],498:[function(t,e,r){arguments[4][496][0].apply(r,arguments)},{\\\"bit-twiddle\\\":497,dup:496,\\\"union-find\\\":499}],499:[function(t,e,r){\\\"use strict\\\";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e<t;++e)this.roots[e]=e,this.ranks[e]=0}e.exports=n,n.prototype.length=function(){return this.roots.length},n.prototype.makeSet=function(){var t=this.roots.length;return this.roots.push(t),this.ranks.push(0),t},n.prototype.find=function(t){for(var e=this.roots;e[t]!==t;){var r=e[t];e[t]=e[r],t=r}return t},n.prototype.link=function(t,e){var r=this.find(t),n=this.find(e);if(r!==n){var i=this.ranks,a=this.roots,o=i[r],s=i[n];o<s?a[r]=n:s<o?a[n]=r:(a[n]=r,++i[r])}}},{}],500:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){for(var a=e.length,o=t.length,s=new Array(a),l=new Array(a),c=new Array(a),u=new Array(a),f=0;f<a;++f)s[f]=l[f]=-1,c[f]=1/0,u[f]=!1;for(var f=0;f<o;++f){var h=t[f];if(2!==h.length)throw new Error(\\\"Input must be a graph\\\");var p=h[1],d=h[0];-1!==l[d]?l[d]=-2:l[d]=p,-1!==s[p]?s[p]=-2:s[p]=d}function g(t){if(u[t])return 1/0;var r,i,a,o,c,f=s[t],h=l[t];return f<0||h<0?1/0:(r=e[t],i=e[f],a=e[h],o=Math.abs(n(r,i,a)),c=Math.sqrt(Math.pow(i[0]-a[0],2)+Math.pow(i[1]-a[1],2)),o/c)}function v(t,e){var r=M[t],n=M[e];M[t]=n,M[e]=r,A[r]=e,A[n]=t}function m(t){return c[M[t]]}function y(t){return 1&t?t-1>>1:(t>>1)-1}function x(t){for(var e=m(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n<S){var o=m(n);o<r&&(a=n,r=o)}if(i<S){var s=m(i);s<r&&(a=i)}if(a===t)return t;v(t,a),t=a}}function b(t){for(var e=m(t);t>0;){var r=y(t);if(r>=0){var n=m(r);if(e<n){v(t,r),t=r;continue}}return t}}function _(){if(S>0){var t=M[0];return v(0,S-1),S-=1,x(0),t}return-1}function w(t,e){var r=M[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((S+=1)-1))}function k(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],g(e)),A[r]>=0&&w(A[r],g(r))}}for(var M=[],A=new Array(a),f=0;f<a;++f){var T=c[f]=g(f);T<1/0?(A[f]=M.length,M.push(f)):A[f]=-1}for(var S=M.length,f=S>>1;f>=0;--f)x(f);for(;;){var E=_();if(E<0||c[E]>r)break;k(E)}for(var C=[],f=0;f<a;++f)u[f]||(A[f]=C.length,C.push(e[f].slice()));C.length;function L(t,e){if(t[e]<0)return e;var r=e,n=e;do{var i=t[n];if(!u[n]||i<0||i===n)break;if(i=t[n=i],!u[n]||i<0||i===n)break;n=i,r=t[r]}while(r!==n);for(var a=e;a!==n;a=t[a])t[a]=n;return n}var z=[];return t.forEach(function(t){var e=L(s,t[0]),r=L(l,t[1]);if(e>=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&z.push([n,i])}}),i.unique(i.normalize(z)),{positions:C,edges:z}};var n=t(\\\"robust-orientation\\\"),i=t(\\\"simplicial-complex\\\")},{\\\"robust-orientation\\\":486,\\\"simplicial-complex\\\":498}],501:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,a,o,s;if(e[0][0]<e[1][0])r=e[0],a=e[1];else{if(!(e[0][0]>e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]<t[1][0])o=t[0],s=t[1];else{if(!(t[0][0]>t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t(\\\"robust-orientation\\\");function i(t,e){var r,i,a,o;if(e[0][0]<e[1][0])r=e[0],i=e[1];else{if(!(e[0][0]>e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return l<c?l-c:s>u?s-u:l-u}r=e[1],i=e[0]}t[0][1]<t[1][1]?(a=t[0],o=t[1]):(a=t[1],o=t[0]);var f=n(i,r,a);return f||((f=n(i,r,o))||o-i)}},{\\\"robust-orientation\\\":486}],502:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=t.length,r=2*e,n=new Array(r),a=0;a<e;++a){var l=t[a],c=l[0][0]<l[1][0];n[2*a]=new f(l[0][0],l,c,a),n[2*a+1]=new f(l[1][0],l,!c,a)}n.sort(function(t,e){var r=t.x-e.x;return r||((r=t.create-e.create)||Math.min(t.segment[0][1],t.segment[1][1])-Math.min(e.segment[0][1],e.segment[1][1]))});for(var h=i(o),p=[],d=[],g=[],a=0;a<r;){for(var v=n[a].x,m=[];a<r;){var y=n[a];if(y.x!==v)break;a+=1,y.segment[0][0]===y.x&&y.segment[1][0]===y.x?y.create&&(y.segment[0][1]<y.segment[1][1]?(m.push(new u(y.segment[0][1],y.index,!0,!0)),m.push(new u(y.segment[1][1],y.index,!1,!1))):(m.push(new u(y.segment[1][1],y.index,!0,!1)),m.push(new u(y.segment[0][1],y.index,!1,!0)))):h=y.create?h.insert(y.segment,y.index):h.remove(y.segment)}p.push(h.root),d.push(v),g.push(m)}return new s(p,d,g)};var n=t(\\\"binary-search-bounds\\\"),i=t(\\\"functional-red-black-tree\\\"),a=t(\\\"robust-orientation\\\"),o=t(\\\"./lib/order-segments\\\");function s(t,e,r){this.slabs=t,this.coordinates=e,this.horizontal=r}function l(t,e){return t.y-e}function c(t,e){for(var r=null;t;){var n,i,o=t.key;o[0][0]<o[1][0]?(n=o[0],i=o[1]):(n=o[1],i=o[0]);var s=a(n,i,e);if(s<0)t=t.left;else if(s>0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h<f.length){var p=f[h];if(t[1]===p.y){if(p.closed)return p.index;for(;h<f.length-1&&f[h+1].y===t[1];)if((p=f[h+=1]).closed)return p.index;if(p.y===t[1]&&!p.start){if((h+=1)>=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{\\\"./lib/order-segments\\\":501,\\\"binary-search-bounds\\\":79,\\\"functional-red-black-tree\\\":219,\\\"robust-orientation\\\":486}],503:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"robust-dot-product\\\"),i=t(\\\"robust-sum\\\");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l<o;++l)s[l]=i*t[l]+a*r[l];return s}e.exports=function(t,e){for(var r=[],n=[],i=a(t[t.length-1],e),s=t[t.length-1],l=t[0],c=0;c<t.length;++c,s=l){var u=a(l=t[c],e);if(i<0&&u>0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l<t.length;++l,i=s){var c=a(s=t[l],e);(n<0&&c>0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l<t.length;++l,i=s){var c=a(s=t[l],e);(n<0&&c>0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{\\\"robust-dot-product\\\":483,\\\"robust-sum\\\":491}],504:[function(t,e,r){!function(){\\\"use strict\\\";var t={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 e(r){return function(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,g=\\\"\\\";for(a=0;a<d;a++)if(\\\"string\\\"==typeof r[a])g+=r[a];else if(Array.isArray(r[a])){if((s=r[a])[2])for(i=n[p],o=0;o<s[2].length;o++){if(!i.hasOwnProperty(s[2][o]))throw new Error(e('[sprintf] property \\\"%s\\\" does not exist',s[2][o]));i=i[s[2][o]]}else i=s[1]?n[s[1]]:n[p++];if(t.not_type.test(s[8])&&t.not_primitive.test(s[8])&&i instanceof Function&&(i=i()),t.numeric_arg.test(s[8])&&\\\"number\\\"!=typeof i&&isNaN(i))throw new TypeError(e(\\\"[sprintf] expecting number but found %T\\\",i));switch(t.number.test(s[8])&&(f=i>=0),s[8]){case\\\"b\\\":i=parseInt(i,10).toString(2);break;case\\\"c\\\":i=String.fromCharCode(parseInt(i,10));break;case\\\"d\\\":case\\\"i\\\":i=parseInt(i,10);break;case\\\"j\\\":i=JSON.stringify(i,null,s[6]?parseInt(s[6]):0);break;case\\\"e\\\":i=s[7]?parseFloat(i).toExponential(s[7]):parseFloat(i).toExponential();break;case\\\"f\\\":i=s[7]?parseFloat(i).toFixed(s[7]):parseFloat(i);break;case\\\"g\\\":i=s[7]?String(Number(i.toPrecision(s[7]))):parseFloat(i);break;case\\\"o\\\":i=(parseInt(i,10)>>>0).toString(8);break;case\\\"s\\\":i=String(i),i=s[7]?i.substring(0,s[7]):i;break;case\\\"t\\\":i=String(!!i),i=s[7]?i.substring(0,s[7]):i;break;case\\\"T\\\":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s[7]?i.substring(0,s[7]):i;break;case\\\"u\\\":i=parseInt(i,10)>>>0;break;case\\\"v\\\":i=i.valueOf(),i=s[7]?i.substring(0,s[7]):i;break;case\\\"x\\\":i=(parseInt(i,10)>>>0).toString(16);break;case\\\"X\\\":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s[8])?g+=i:(!t.number.test(s[8])||f&&!s[3]?h=\\\"\\\":(h=f?\\\"+\\\":\\\"-\\\",i=i.toString().replace(t.sign,\\\"\\\")),c=s[4]?\\\"0\\\"===s[4]?\\\"0\\\":s[4].charAt(1):\\\" \\\",u=s[6]-(h+i).length,l=s[6]&&u>0?c.repeat(u):\\\"\\\",g+=s[5]?h+i+l:\\\"0\\\"===c?h+l+i:l+h+i)}return g}(function(e){if(i[e])return i[e];var r,n=e,a=[],o=0;for(;n;){if(null!==(r=t.text.exec(n)))a.push(r[0]);else if(null!==(r=t.modulo.exec(n)))a.push(\\\"%\\\");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError(\\\"[sprintf] unexpected placeholder\\\");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError(\\\"[sprintf] failed to parse named argument key\\\");for(s.push(c[1]);\\\"\\\"!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError(\\\"[sprintf] failed to parse named argument key\\\");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error(\\\"[sprintf] mixing positional and named placeholders is not (yet) supported\\\");a.push(r)}n=n.substring(r[0].length)}return i[e]=a}(r),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}var i=Object.create(null);\\\"undefined\\\"!=typeof r&&(r.sprintf=e,r.vsprintf=n),\\\"undefined\\\"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],505:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"parenthesis\\\");e.exports=function(t,e,r){if(null==t)throw Error(\\\"First argument should be a string\\\");if(null==e)throw Error(\\\"Separator should be a string or a RegExp\\\");r?(\\\"string\\\"==typeof r||Array.isArray(r))&&(r={ignore:r}):r={},null==r.escape&&(r.escape=!0),null==r.ignore?r.ignore=[\\\"[]\\\",\\\"()\\\",\\\"{}\\\",\\\"<>\\\",'\\\"\\\"',\\\"''\\\",\\\"``\\\",\\\"\\\\u201c\\\\u201d\\\",\\\"\\\\xab\\\\xbb\\\"]:(\\\"string\\\"==typeof r.ignore&&(r.ignore=[r.ignore]),r.ignore=r.ignore.map(function(t){return 1===t.length&&(t+=t),t}));var i=n.parse(t,{flat:!0,brackets:r.ignore}),a=i[0].split(e);if(r.escape){for(var o=[],s=0;s<a.length;s++){var l=a[s],c=a[s+1];\\\"\\\\\\\\\\\"===l[l.length-1]&&\\\"\\\\\\\\\\\"!==l[l.length-2]?(o.push(l+e+c),s++):o.push(l)}a=o}for(s=0;s<a.length;s++)i[0]=a[s],a[s]=n.stringify(i,{flat:!0});return a}},{parenthesis:441}],506:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=t.length,r=new Array(e),n=new Array(e),i=new Array(e),a=new Array(e),o=new Array(e),s=new Array(e),l=0;l<e;++l)r[l]=-1,n[l]=0,i[l]=!1,a[l]=0,o[l]=-1,s[l]=[];var c,u=0,f=[],h=[];function p(e){var l=[e],c=[e];for(r[e]=n[e]=u,i[e]=!0,u+=1;c.length>0;){e=c[c.length-1];var p=t[e];if(a[e]<p.length){for(var d=a[e];d<p.length;++d){var g=p[d];if(r[g]<0){r[g]=n[g]=u,i[g]=!0,u+=1,l.push(g),c.push(g);break}i[g]&&(n[e]=0|Math.min(n[e],n[g])),o[g]>=0&&s[e].push(o[g])}a[e]=d}else{if(n[e]===r[e]){for(var v=[],m=[],y=0,d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,v.push(x),m.push(s[x]),y+=s[x].length,o[x]=f.length,x===e){l.length=d;break}}f.push(v);for(var b=new Array(y),d=0;d<m.length;d++)for(var _=0;_<m[d].length;_++)b[--y]=m[d][_];h.push(b)}c.pop()}}}for(var l=0;l<e;++l)r[l]<0&&p(l);for(var l=0;l<h.length;l++){var d=h[l];if(0!==d.length){d.sort(function(t,e){return t-e}),c=[d[0]];for(var g=1;g<d.length;g++)d[g]!==d[g-1]&&c.push(d[g]);h[l]=c}}return{components:f,adjacencyList:h}}},{}],507:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t.split(\\\"\\\").map(function(t){return t in n?n[t]:\\\"\\\"}).join(\\\"\\\")};var n={\\\" \\\":\\\" \\\",0:\\\"\\\\u2070\\\",1:\\\"\\\\xb9\\\",2:\\\"\\\\xb2\\\",3:\\\"\\\\xb3\\\",4:\\\"\\\\u2074\\\",5:\\\"\\\\u2075\\\",6:\\\"\\\\u2076\\\",7:\\\"\\\\u2077\\\",8:\\\"\\\\u2078\\\",9:\\\"\\\\u2079\\\",\\\"+\\\":\\\"\\\\u207a\\\",\\\"-\\\":\\\"\\\\u207b\\\",a:\\\"\\\\u1d43\\\",b:\\\"\\\\u1d47\\\",c:\\\"\\\\u1d9c\\\",d:\\\"\\\\u1d48\\\",e:\\\"\\\\u1d49\\\",f:\\\"\\\\u1da0\\\",g:\\\"\\\\u1d4d\\\",h:\\\"\\\\u02b0\\\",i:\\\"\\\\u2071\\\",j:\\\"\\\\u02b2\\\",k:\\\"\\\\u1d4f\\\",l:\\\"\\\\u02e1\\\",m:\\\"\\\\u1d50\\\",n:\\\"\\\\u207f\\\",o:\\\"\\\\u1d52\\\",p:\\\"\\\\u1d56\\\",r:\\\"\\\\u02b3\\\",s:\\\"\\\\u02e2\\\",t:\\\"\\\\u1d57\\\",u:\\\"\\\\u1d58\\\",v:\\\"\\\\u1d5b\\\",w:\\\"\\\\u02b7\\\",x:\\\"\\\\u02e3\\\",y:\\\"\\\\u02b8\\\",z:\\\"\\\\u1dbb\\\"}},{}],508:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=a(t,e),n=r.length,i=new Array(n),o=new Array(n),s=0;s<n;++s)i[s]=[r[s]],o[s]=[s];return{positions:i,cells:o}}(t,e);var r=t.order.join()+\\\"-\\\"+t.dtype,s=o[r],e=+e||0;s||(s=o[r]=function(t,e){var r=t.length,a=[\\\"'use strict';\\\"],o=\\\"surfaceNets\\\"+t.join(\\\"_\\\")+\\\"d\\\"+e;a.push(\\\"var contour=genContour({\\\",\\\"order:[\\\",t.join(),\\\"],\\\",\\\"scalarArguments: 3,\\\",\\\"phase:function phaseFunc(p,a,b,c) { return (p > c)|0 },\\\"),\\\"generic\\\"===e&&a.push(\\\"getters:[0],\\\");for(var s=[],l=[],c=0;c<r;++c)s.push(\\\"d\\\"+c),l.push(\\\"d\\\"+c);for(var c=0;c<1<<r;++c)s.push(\\\"v\\\"+c),l.push(\\\"v\\\"+c);for(var c=0;c<1<<r;++c)s.push(\\\"p\\\"+c),l.push(\\\"p\\\"+c);s.push(\\\"a\\\",\\\"b\\\",\\\"c\\\"),l.push(\\\"a\\\",\\\"c\\\"),a.push(\\\"vertex:function vertexFunc(\\\",s.join(),\\\"){\\\");for(var u=[],c=0;c<1<<r;++c)u.push(\\\"(p\\\"+c+\\\"<<\\\"+c+\\\")\\\");a.push(\\\"var m=(\\\",u.join(\\\"+\\\"),\\\")|0;if(m===0||m===\\\",(1<<(1<<r))-1,\\\"){return}\\\");var f=[],h=[];1<<(1<<r)<=128?(a.push(\\\"switch(m){\\\"),h=a):a.push(\\\"switch(m>>>7){\\\");for(var c=0;c<1<<(1<<r);++c){if(1<<(1<<r)>128&&c%128==0){f.length>0&&h.push(\\\"}}\\\");var p=\\\"vExtra\\\"+f.length;a.push(\\\"case \\\",c>>>7,\\\":\\\",p,\\\"(m&0x7f,\\\",l.join(),\\\");break;\\\"),h=[\\\"function \\\",p,\\\"(m,\\\",l.join(),\\\"){switch(m){\\\"],f.push(h)}h.push(\\\"case \\\",127&c,\\\":\\\");for(var d=new Array(r),g=new Array(r),v=new Array(r),m=new Array(r),y=0,x=0;x<r;++x)d[x]=[],g[x]=[],v[x]=0,m[x]=0;for(var x=0;x<1<<r;++x)for(var b=0;b<r;++b){var _=x^1<<b;if(!(_>x)&&!(c&1<<_)!=!(c&1<<x)){var w=1;c&1<<_?g[b].push(\\\"v\\\"+_+\\\"-v\\\"+x):(g[b].push(\\\"v\\\"+x+\\\"-v\\\"+_),w=-w),w<0?(d[b].push(\\\"-v\\\"+x+\\\"-v\\\"+_),v[b]+=2):(d[b].push(\\\"v\\\"+x+\\\"+v\\\"+_),v[b]-=2),y+=1;for(var k=0;k<r;++k)k!==b&&(_&1<<k?m[k]+=1:m[k]-=1)}}for(var M=[],b=0;b<r;++b)if(0===d[b].length)M.push(\\\"d\\\"+b+\\\"-0.5\\\");else{var A=\\\"\\\";v[b]<0?A=v[b]+\\\"*c\\\":v[b]>0&&(A=\\\"+\\\"+v[b]+\\\"*c\\\");var T=d[b].length/y*.5,S=.5+m[b]/y*.5;M.push(\\\"d\\\"+b+\\\"-\\\"+S+\\\"-\\\"+T+\\\"*(\\\"+d[b].join(\\\"+\\\")+A+\\\")/(\\\"+g[b].join(\\\"+\\\")+\\\")\\\")}h.push(\\\"a.push([\\\",M.join(),\\\"]);\\\",\\\"break;\\\")}a.push(\\\"}},\\\"),f.length>0&&h.push(\\\"}}\\\");for(var E=[],c=0;c<1<<r-1;++c)E.push(\\\"v\\\"+c);E.push(\\\"c0\\\",\\\"c1\\\",\\\"p0\\\",\\\"p1\\\",\\\"a\\\",\\\"b\\\",\\\"c\\\"),a.push(\\\"cell:function cellFunc(\\\",E.join(),\\\"){\\\");var C=i(r-1);a.push(\\\"if(p0){b.push(\\\",C.map(function(t){return\\\"[\\\"+t.map(function(t){return\\\"v\\\"+t})+\\\"]\\\"}).join(),\\\")}else{b.push(\\\",C.map(function(t){var e=t.slice();return e.reverse(),\\\"[\\\"+e.map(function(t){return\\\"v\\\"+t})+\\\"]\\\"}).join(),\\\")}}});function \\\",o,\\\"(array,level){var verts=[],cells=[];contour(array,verts,cells,level);return {positions:verts,cells:cells};} return \\\",o,\\\";\\\");for(var c=0;c<f.length;++c)a.push(f[c].join(\\\"\\\"));return new Function(\\\"genContour\\\",a.join(\\\"\\\"))(n)}(t.order,t.dtype));return s(t,e)};var n=t(\\\"ndarray-extract-contour\\\"),i=t(\\\"triangulate-hypercube\\\"),a=t(\\\"zero-crossings\\\");var o={}},{\\\"ndarray-extract-contour\\\":422,\\\"triangulate-hypercube\\\":518,\\\"zero-crossings\\\":551}],509:[function(t,e,r){\\\"use strict\\\";Object.defineProperty(r,\\\"__esModule\\\",{value:!0});var n=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw a}}return r}(t,e);throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\")}}(),i=2*Math.PI,a=function(t,e,r,n,i,a,o){var s=t.x,l=t.y;return{x:n*(s*=e)-i*(l*=r)+a,y:i*s+n*l+o}},o=function(t,e){var r=.551915024494,n=Math.cos(t),i=Math.sin(t),a=Math.cos(t+e),o=Math.sin(t+e);return[{x:n-i*r,y:i+n*r},{x:a+o*r,y:o-a*r},{x:a,y:o}]},s=function(t,e,r,n){var i=t*n-e*r<0?-1:1,a=(t*r+e*n)/(Math.sqrt(t*t+e*e)*Math.sqrt(t*t+e*e));return a>1&&(a=1),a<-1&&(a=-1),i*Math.acos(a)};r.default=function(t){var e=t.px,r=t.py,l=t.cx,c=t.cy,u=t.rx,f=t.ry,h=t.xAxisRotation,p=void 0===h?0:h,d=t.largeArcFlag,g=void 0===d?0:d,v=t.sweepFlag,m=void 0===v?0:v,y=[];if(0===u||0===f)return[];var x=Math.sin(p*i/360),b=Math.cos(p*i/360),_=b*(e-l)/2+x*(r-c)/2,w=-x*(e-l)/2+b*(r-c)/2;if(0===_&&0===w)return[];u=Math.abs(u),f=Math.abs(f);var k=Math.pow(_,2)/Math.pow(u,2)+Math.pow(w,2)/Math.pow(f,2);k>1&&(u*=Math.sqrt(k),f*=Math.sqrt(k));var M=function(t,e,r,n,a,o,l,c,u,f,h,p){var d=Math.pow(a,2),g=Math.pow(o,2),v=Math.pow(h,2),m=Math.pow(p,2),y=d*g-d*m-g*v;y<0&&(y=0),y/=d*m+g*v;var x=(y=Math.sqrt(y)*(l===c?-1:1))*a/o*p,b=y*-o/a*h,_=f*x-u*b+(t+r)/2,w=u*x+f*b+(e+n)/2,k=(h-x)/a,M=(p-b)/o,A=(-h-x)/a,T=(-p-b)/o,S=s(1,0,k,M),E=s(k,M,A,T);return 0===c&&E>0&&(E-=i),1===c&&E<0&&(E+=i),[_,w,S,E]}(e,r,l,c,u,f,g,m,x,b,_,w),A=n(M,4),T=A[0],S=A[1],E=A[2],C=A[3],L=Math.abs(C)/(i/4);Math.abs(1-L)<1e-7&&(L=1);var z=Math.max(Math.ceil(L),1);C/=z;for(var O=0;O<z;O++)y.push(o(E,C)),E+=C;return y.map(function(t){var e=a(t[0],u,f,b,x,T,S),r=e.x,n=e.y,i=a(t[1],u,f,b,x,T,S),o=i.x,s=i.y,l=a(t[2],u,f,b,x,T,S);return{x1:r,y1:n,x2:o,y2:s,x:l.x,y:l.y}})},e.exports=r.default},{}],510:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"parse-svg-path\\\"),i=t(\\\"abs-svg-path\\\"),a=t(\\\"normalize-svg-path\\\"),o=t(\\\"is-svg-path\\\"),s=t(\\\"assert\\\");e.exports=function(t){Array.isArray(t)&&1===t.length&&\\\"string\\\"==typeof t[0]&&(t=t[0]);\\\"string\\\"==typeof t&&(s(o(t),\\\"String is not an SVG path.\\\"),t=n(t));if(s(Array.isArray(t),\\\"Argument should be a string or an array of path segments.\\\"),t=i(t),!(t=a(t)).length)return[0,0,0,0];for(var e=[1/0,1/0,-1/0,-1/0],r=0,l=t.length;r<l;r++)for(var c=t[r].slice(1),u=0;u<c.length;u+=2)c[u+0]<e[0]&&(e[0]=c[u+0]),c[u+1]<e[1]&&(e[1]=c[u+1]),c[u+0]>e[2]&&(e[2]=c[u+0]),c[u+1]>e[3]&&(e[3]=c[u+1]);return e}},{\\\"abs-svg-path\\\":48,assert:56,\\\"is-svg-path\\\":407,\\\"normalize-svg-path\\\":511,\\\"parse-svg-path\\\":443}],511:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e,r=[],o=0,s=0,l=0,c=0,u=null,f=null,h=0,p=0,d=0,g=t.length;d<g;d++){var v=t[d],m=v[0];switch(m){case\\\"M\\\":l=v[1],c=v[2];break;case\\\"A\\\":var y=n({px:h,py:p,cx:v[6],cy:v[7],rx:v[1],ry:v[2],xAxisRotation:v[3],largeArcFlag:v[4],sweepFlag:v[5]});if(!y.length)continue;for(var x,b=0;b<y.length;b++)x=y[b],v=[\\\"C\\\",x.x1,x.y1,x.x2,x.y2,x.x,x.y],b<y.length-1&&r.push(v);break;case\\\"S\\\":var _=h,w=p;\\\"C\\\"!=e&&\\\"S\\\"!=e||(_+=_-o,w+=w-s),v=[\\\"C\\\",_,w,v[1],v[2],v[3],v[4]];break;case\\\"T\\\":\\\"Q\\\"==e||\\\"T\\\"==e?(u=2*h-u,f=2*p-f):(u=h,f=p),v=a(h,p,u,f,v[1],v[2]);break;case\\\"Q\\\":u=v[1],f=v[2],v=a(h,p,v[1],v[2],v[3],v[4]);break;case\\\"L\\\":v=i(h,p,v[1],v[2]);break;case\\\"H\\\":v=i(h,p,v[1],p);break;case\\\"V\\\":v=i(h,p,h,v[1]);break;case\\\"Z\\\":v=i(h,p,l,c)}e=m,h=v[v.length-2],p=v[v.length-1],v.length>4?(o=v[v.length-4],s=v[v.length-3]):(o=h,s=p),r.push(v)}return r};var n=t(\\\"svg-arc-to-cubic-bezier\\\");function i(t,e,r,n){return[\\\"C\\\",t,e,r,n,r,n]}function a(t,e,r,n,i,a){return[\\\"C\\\",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}},{\\\"svg-arc-to-cubic-bezier\\\":509}],512:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"svg-path-bounds\\\"),i=t(\\\"parse-svg-path\\\"),a=t(\\\"draw-svg-path\\\"),o=t(\\\"is-svg-path\\\"),s=t(\\\"bitmap-sdf\\\"),l=document.createElement(\\\"canvas\\\"),c=l.getContext(\\\"2d\\\");e.exports=function(t,e){if(!o(t))throw Error(\\\"Argument should be valid svg path string\\\");e||(e={});var r,u;e.shape?(r=e.shape[0],u=e.shape[1]):(r=l.width=e.w||e.width||200,u=l.height=e.h||e.height||200);var f=Math.min(r,u),h=e.stroke||0,p=e.viewbox||e.viewBox||n(t),d=[r/(p[2]-p[0]),u/(p[3]-p[1])],g=Math.min(d[0]||0,d[1]||0)/2;c.fillStyle=\\\"black\\\",c.fillRect(0,0,r,u),c.fillStyle=\\\"white\\\",h&&(\\\"number\\\"!=typeof h&&(h=1),c.strokeStyle=h>0?\\\"white\\\":\\\"black\\\",c.lineWidth=Math.abs(h));if(c.translate(.5*r,.5*u),c.scale(g,g),function(){var t=document.createElement(\\\"canvas\\\").getContext(\\\"2d\\\");t.canvas.width=t.canvas.height=1;var e=new Path2D(\\\"M0,0h1v1h-1v-1Z\\\");t.fillStyle=\\\"black\\\",t.fill(e);var r=t.getImageData(0,0,1,1);return r&&r.data&&255===r.data[3]}()){var v=new Path2D(t);c.fill(v),h&&c.stroke(v)}else{var m=i(t);a(c,m),c.fill(),h&&c.stroke()}return c.setTransform(1,0,0,1,0,0),s(c,{cutoff:null!=e.cutoff?e.cutoff:.5,radius:null!=e.radius?e.radius:.5*f})}},{\\\"bitmap-sdf\\\":81,\\\"draw-svg-path\\\":153,\\\"is-svg-path\\\":407,\\\"parse-svg-path\\\":443,\\\"svg-path-bounds\\\":510}],513:[function(t,e,r){(function(r){\\\"use strict\\\";e.exports=function t(e,r,i){var i=i||{};var o=a[e];o||(o=a[e]={\\\" \\\":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\\\\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o<e.length;++o)for(var s=e[o],l=0;l<3;++l){var c=r[s[l]];n[i++]=c[0],n[i++]=c[1]+1.4,a=Math.max(c[0],a)}return{data:n,shape:a}}(n(r,{triangles:!0,font:e,textAlign:i.textAlign||\\\"left\\\",textBaseline:\\\"alphabetic\\\"}));else{for(var l=r.split(/(\\\\d|\\\\s)/),c=new Array(l.length),u=0,f=0,h=0;h<l.length;++h)c[h]=t(e,l[h]),u+=c[h].data.length,f+=c[h].shape,h>0&&(f+=.02);for(var p=new Float32Array(u),d=0,g=-.5*f,h=0;h<c.length;++h){for(var v=c[h].data,m=0;m<v.length;m+=2)p[d++]=v[m]+g,p[d++]=v[m+1];g+=c[h].shape+.02}s=o[r]={data:p,shape:f}}return s};var n=t(\\\"vectorize-text\\\"),i=window||r.global||{},a=i.__TEXT_CACHE||{};i.__TEXT_CACHE={}}).call(this,t(\\\"_process\\\"))},{_process:465,\\\"vectorize-text\\\":527}],514:[function(t,e,r){!function(t){var r=/^\\\\s+/,n=/\\\\s+$/,i=0,a=t.round,o=t.min,s=t.max,l=t.random;function c(e,l){if(l=l||{},(e=e||\\\"\\\")instanceof c)return e;if(!(this instanceof c))return new c(e,l);var u=function(e){var i={r:0,g:0,b:0},a=1,l=null,c=null,u=null,f=!1,h=!1;\\\"string\\\"==typeof e&&(e=function(t){t=t.replace(r,\\\"\\\").replace(n,\\\"\\\").toLowerCase();var e,i=!1;if(S[t])t=S[t],i=!0;else if(\\\"transparent\\\"==t)return{r:0,g:0,b:0,a:0,format:\\\"name\\\"};if(e=j.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=j.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=j.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=j.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=j.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=j.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=j.hex8.exec(t))return{r:O(e[1]),g:O(e[2]),b:O(e[3]),a:R(e[4]),format:i?\\\"name\\\":\\\"hex8\\\"};if(e=j.hex6.exec(t))return{r:O(e[1]),g:O(e[2]),b:O(e[3]),format:i?\\\"name\\\":\\\"hex\\\"};if(e=j.hex4.exec(t))return{r:O(e[1]+\\\"\\\"+e[1]),g:O(e[2]+\\\"\\\"+e[2]),b:O(e[3]+\\\"\\\"+e[3]),a:R(e[4]+\\\"\\\"+e[4]),format:i?\\\"name\\\":\\\"hex8\\\"};if(e=j.hex3.exec(t))return{r:O(e[1]+\\\"\\\"+e[1]),g:O(e[2]+\\\"\\\"+e[2]),b:O(e[3]+\\\"\\\"+e[3]),format:i?\\\"name\\\":\\\"hex\\\"};return!1}(e));\\\"object\\\"==typeof e&&(V(e.r)&&V(e.g)&&V(e.b)?(p=e.r,d=e.g,g=e.b,i={r:255*L(p,255),g:255*L(d,255),b:255*L(g,255)},f=!0,h=\\\"%\\\"===String(e.r).substr(-1)?\\\"prgb\\\":\\\"rgb\\\"):V(e.h)&&V(e.s)&&V(e.v)?(l=P(e.s),c=P(e.v),i=function(e,r,n){e=6*L(e,360),r=L(r,100),n=L(n,100);var i=t.floor(e),a=e-i,o=n*(1-r),s=n*(1-a*r),l=n*(1-(1-a)*r),c=i%6;return{r:255*[n,s,o,o,l,n][c],g:255*[l,n,n,s,o,o][c],b:255*[o,o,l,n,n,s][c]}}(e.h,l,c),f=!0,h=\\\"hsv\\\"):V(e.h)&&V(e.s)&&V(e.l)&&(l=P(e.s),u=P(e.l),i=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=L(t,360),e=L(e,100),r=L(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(e.h,l,u),f=!0,h=\\\"hsl\\\"),e.hasOwnProperty(\\\"a\\\")&&(a=e.a));var p,d,g;return a=C(a),{ok:f,format:e.format||h,r:o(255,s(i.r,0)),g:o(255,s(i.g,0)),b:o(255,s(i.b,0)),a:a}}(e);this._originalInput=e,this._r=u.r,this._g=u.g,this._b=u.b,this._a=u.a,this._roundA=a(100*this._a)/100,this._format=l.format||u.format,this._gradientType=l.gradientType,this._r<1&&(this._r=a(this._r)),this._g<1&&(this._g=a(this._g)),this._b<1&&(this._b=a(this._b)),this._ok=u.ok,this._tc_id=i++}function u(t,e,r){t=L(t,255),e=L(e,255),r=L(r,255);var n,i,a=s(t,e,r),l=o(t,e,r),c=(a+l)/2;if(a==l)n=i=0;else{var u=a-l;switch(i=c>.5?u/(2-a-l):u/(a+l),a){case t:n=(e-r)/u+(e<r?6:0);break;case e:n=(r-t)/u+2;break;case r:n=(t-e)/u+4}n/=6}return{h:n,s:i,l:c}}function f(t,e,r){t=L(t,255),e=L(e,255),r=L(r,255);var n,i,a=s(t,e,r),l=o(t,e,r),c=a,u=a-l;if(i=0===a?0:u/a,a==l)n=0;else{switch(a){case t:n=(e-r)/u+(e<r?6:0);break;case e:n=(r-t)/u+2;break;case r:n=(t-e)/u+4}n/=6}return{h:n,s:i,v:c}}function h(t,e,r,n){var i=[I(a(t).toString(16)),I(a(e).toString(16)),I(a(r).toString(16))];return n&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join(\\\"\\\")}function p(t,e,r,n){return[I(D(n)),I(a(t).toString(16)),I(a(e).toString(16)),I(a(r).toString(16))].join(\\\"\\\")}function d(t,e){e=0===e?0:e||10;var r=c(t).toHsl();return r.s-=e/100,r.s=z(r.s),c(r)}function g(t,e){e=0===e?0:e||10;var r=c(t).toHsl();return r.s+=e/100,r.s=z(r.s),c(r)}function v(t){return c(t).desaturate(100)}function m(t,e){e=0===e?0:e||10;var r=c(t).toHsl();return r.l+=e/100,r.l=z(r.l),c(r)}function y(t,e){e=0===e?0:e||10;var r=c(t).toRgb();return r.r=s(0,o(255,r.r-a(-e/100*255))),r.g=s(0,o(255,r.g-a(-e/100*255))),r.b=s(0,o(255,r.b-a(-e/100*255))),c(r)}function x(t,e){e=0===e?0:e||10;var r=c(t).toHsl();return r.l-=e/100,r.l=z(r.l),c(r)}function b(t,e){var r=c(t).toHsl(),n=(r.h+e)%360;return r.h=n<0?360+n:n,c(r)}function _(t){var e=c(t).toHsl();return e.h=(e.h+180)%360,c(e)}function w(t){var e=c(t).toHsl(),r=e.h;return[c(t),c({h:(r+120)%360,s:e.s,l:e.l}),c({h:(r+240)%360,s:e.s,l:e.l})]}function k(t){var e=c(t).toHsl(),r=e.h;return[c(t),c({h:(r+90)%360,s:e.s,l:e.l}),c({h:(r+180)%360,s:e.s,l:e.l}),c({h:(r+270)%360,s:e.s,l:e.l})]}function M(t){var e=c(t).toHsl(),r=e.h;return[c(t),c({h:(r+72)%360,s:e.s,l:e.l}),c({h:(r+216)%360,s:e.s,l:e.l})]}function A(t,e,r){e=e||6,r=r||30;var n=c(t).toHsl(),i=360/r,a=[c(t)];for(n.h=(n.h-(i*e>>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(c(n));return a}function T(t,e){e=e||6;for(var r=c(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(c({h:n,s:i,v:a})),a=(a+s)%1;return o}c.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 t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var e,r,n,i=this.toRgb();return e=i.r/255,r=i.g/255,n=i.b/255,.2126*(e<=.03928?e/12.92:t.pow((e+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:t.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:t.pow((n+.055)/1.055,2.4))},setAlpha:function(t){return this._a=C(t),this._roundA=a(100*this._a)/100,this},toHsv:function(){var t=f(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=f(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.v);return 1==this._a?\\\"hsv(\\\"+e+\\\", \\\"+r+\\\"%, \\\"+n+\\\"%)\\\":\\\"hsva(\\\"+e+\\\", \\\"+r+\\\"%, \\\"+n+\\\"%, \\\"+this._roundA+\\\")\\\"},toHsl:function(){var t=u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=u(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.l);return 1==this._a?\\\"hsl(\\\"+e+\\\", \\\"+r+\\\"%, \\\"+n+\\\"%)\\\":\\\"hsla(\\\"+e+\\\", \\\"+r+\\\"%, \\\"+n+\\\"%, \\\"+this._roundA+\\\")\\\"},toHex:function(t){return h(this._r,this._g,this._b,t)},toHexString:function(t){return\\\"#\\\"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var o=[I(a(t).toString(16)),I(a(e).toString(16)),I(a(r).toString(16)),I(D(n))];if(i&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join(\\\"\\\")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return\\\"#\\\"+this.toHex8(t)},toRgb:function(){return{r:a(this._r),g:a(this._g),b:a(this._b),a:this._a}},toRgbString:function(){return 1==this._a?\\\"rgb(\\\"+a(this._r)+\\\", \\\"+a(this._g)+\\\", \\\"+a(this._b)+\\\")\\\":\\\"rgba(\\\"+a(this._r)+\\\", \\\"+a(this._g)+\\\", \\\"+a(this._b)+\\\", \\\"+this._roundA+\\\")\\\"},toPercentageRgb:function(){return{r:a(100*L(this._r,255))+\\\"%\\\",g:a(100*L(this._g,255))+\\\"%\\\",b:a(100*L(this._b,255))+\\\"%\\\",a:this._a}},toPercentageRgbString:function(){return 1==this._a?\\\"rgb(\\\"+a(100*L(this._r,255))+\\\"%, \\\"+a(100*L(this._g,255))+\\\"%, \\\"+a(100*L(this._b,255))+\\\"%)\\\":\\\"rgba(\\\"+a(100*L(this._r,255))+\\\"%, \\\"+a(100*L(this._g,255))+\\\"%, \\\"+a(100*L(this._b,255))+\\\"%, \\\"+this._roundA+\\\")\\\"},toName:function(){return 0===this._a?\\\"transparent\\\":!(this._a<1)&&(E[h(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e=\\\"#\\\"+p(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?\\\"GradientType = 1, \\\":\\\"\\\";if(t){var i=c(t);r=\\\"#\\\"+p(i._r,i._g,i._b,i._a)}return\\\"progid:DXImageTransform.Microsoft.gradient(\\\"+n+\\\"startColorstr=\\\"+e+\\\",endColorstr=\\\"+r+\\\")\\\"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||\\\"hex\\\"!==t&&\\\"hex6\\\"!==t&&\\\"hex3\\\"!==t&&\\\"hex4\\\"!==t&&\\\"hex8\\\"!==t&&\\\"name\\\"!==t?(\\\"rgb\\\"===t&&(r=this.toRgbString()),\\\"prgb\\\"===t&&(r=this.toPercentageRgbString()),\\\"hex\\\"!==t&&\\\"hex6\\\"!==t||(r=this.toHexString()),\\\"hex3\\\"===t&&(r=this.toHexString(!0)),\\\"hex4\\\"===t&&(r=this.toHex8String(!0)),\\\"hex8\\\"===t&&(r=this.toHex8String()),\\\"name\\\"===t&&(r=this.toName()),\\\"hsl\\\"===t&&(r=this.toHslString()),\\\"hsv\\\"===t&&(r=this.toHsvString()),r||this.toHexString()):\\\"name\\\"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return c(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(m,arguments)},brighten:function(){return this._applyModification(y,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(d,arguments)},saturate:function(){return this._applyModification(g,arguments)},greyscale:function(){return this._applyModification(v,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(A,arguments)},complement:function(){return this._applyCombination(_,arguments)},monochromatic:function(){return this._applyCombination(T,arguments)},splitcomplement:function(){return this._applyCombination(M,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(k,arguments)}},c.fromRatio=function(t,e){if(\\\"object\\\"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=\\\"a\\\"===n?t[n]:P(t[n]));t=r}return c(t,e)},c.equals=function(t,e){return!(!t||!e)&&c(t).toRgbString()==c(e).toRgbString()},c.random=function(){return c.fromRatio({r:l(),g:l(),b:l()})},c.mix=function(t,e,r){r=0===r?0:r||50;var n=c(t).toRgb(),i=c(e).toRgb(),a=r/100;return c({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},c.readability=function(e,r){var n=c(e),i=c(r);return(t.max(n.getLuminance(),i.getLuminance())+.05)/(t.min(n.getLuminance(),i.getLuminance())+.05)},c.isReadable=function(t,e,r){var n,i,a=c.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:\\\"AA\\\",size:\\\"small\\\"}).level||\\\"AA\\\").toUpperCase(),r=(t.size||\\\"small\\\").toLowerCase(),\\\"AA\\\"!==e&&\\\"AAA\\\"!==e&&(e=\\\"AA\\\");\\\"small\\\"!==r&&\\\"large\\\"!==r&&(r=\\\"small\\\");return{level:e,size:r}}(r)).level+n.size){case\\\"AAsmall\\\":case\\\"AAAlarge\\\":i=a>=4.5;break;case\\\"AAlarge\\\":i=a>=3;break;case\\\"AAAsmall\\\":i=a>=7}return i},c.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var u=0;u<e.length;u++)(n=c.readability(t,e[u]))>l&&(l=n,s=c(e[u]));return c.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,c.mostReadable(t,[\\\"#fff\\\",\\\"#000\\\"],r))};var S=c.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\\\"},E=c.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(S);function C(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function L(e,r){(function(t){return\\\"string\\\"==typeof t&&-1!=t.indexOf(\\\".\\\")&&1===parseFloat(t)})(e)&&(e=\\\"100%\\\");var n=function(t){return\\\"string\\\"==typeof t&&-1!=t.indexOf(\\\"%\\\")}(e);return e=o(r,s(0,parseFloat(e))),n&&(e=parseInt(e*r,10)/100),t.abs(e-r)<1e-6?1:e%r/parseFloat(r)}function z(t){return o(1,s(0,t))}function O(t){return parseInt(t,16)}function I(t){return 1==t.length?\\\"0\\\"+t:\\\"\\\"+t}function P(t){return t<=1&&(t=100*t+\\\"%\\\"),t}function D(e){return t.round(255*parseFloat(e)).toString(16)}function R(t){return O(t)/255}var B,F,N,j=(F=\\\"[\\\\\\\\s|\\\\\\\\(]+(\\\"+(B=\\\"(?:[-\\\\\\\\+]?\\\\\\\\d*\\\\\\\\.\\\\\\\\d+%?)|(?:[-\\\\\\\\+]?\\\\\\\\d+%?)\\\")+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")\\\\\\\\s*\\\\\\\\)?\\\",N=\\\"[\\\\\\\\s|\\\\\\\\(]+(\\\"+B+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")[,|\\\\\\\\s]+(\\\"+B+\\\")\\\\\\\\s*\\\\\\\\)?\\\",{CSS_UNIT:new RegExp(B),rgb:new RegExp(\\\"rgb\\\"+F),rgba:new RegExp(\\\"rgba\\\"+N),hsl:new RegExp(\\\"hsl\\\"+F),hsla:new RegExp(\\\"hsla\\\"+N),hsv:new RegExp(\\\"hsv\\\"+F),hsva:new RegExp(\\\"hsva\\\"+N),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 V(t){return!!j.CSS_UNIT.exec(t)}\\\"undefined\\\"!=typeof e&&e.exports?e.exports=c:window.tinycolor=c}(Math)},{}],515:[function(t,e,r){\\\"use strict\\\";function n(t){if(t instanceof Float32Array)return t;if(\\\"number\\\"==typeof t)return new Float32Array([t])[0];var e=new Float32Array(t);return e.set(t),e}e.exports=n,e.exports.float32=e.exports.float=n,e.exports.fract32=e.exports.fract=function(t){if(\\\"number\\\"==typeof t)return n(t-n(t));for(var e=n(t),r=0,i=e.length;r<i;r++)e[r]=t[r]-e[r];return e}},{}],516:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"parse-unit\\\");e.exports=o;var i=96;function a(t,e){var r=n(getComputedStyle(t).getPropertyValue(e));return r[0]*o(r[1],t)}function o(t,e){switch(e=e||document.body,t=(t||\\\"px\\\").trim().toLowerCase(),e!==window&&e!==document||(e=document.body),t){case\\\"%\\\":return e.clientHeight/100;case\\\"ch\\\":case\\\"ex\\\":return function(t,e){var r=document.createElement(\\\"div\\\");r.style[\\\"font-size\\\"]=\\\"128\\\"+t,e.appendChild(r);var n=a(r,\\\"font-size\\\")/128;return e.removeChild(r),n}(t,e);case\\\"em\\\":return a(e,\\\"font-size\\\");case\\\"rem\\\":return a(document.body,\\\"font-size\\\");case\\\"vw\\\":return window.innerWidth/100;case\\\"vh\\\":return window.innerHeight/100;case\\\"vmin\\\":return Math.min(window.innerWidth,window.innerHeight)/100;case\\\"vmax\\\":return Math.max(window.innerWidth,window.innerHeight)/100;case\\\"in\\\":return i;case\\\"cm\\\":return i/2.54;case\\\"mm\\\":return i/25.4;case\\\"pt\\\":return i/72;case\\\"pc\\\":return i/6}return 1}},{\\\"parse-unit\\\":444}],517:[function(t,e,r){var n;n=this,function(t){\\\"use strict\\\";var e=function(t){return t},r=function(t){if(null==(r=t.transform))return e;var r,n,i,a=r.scale[0],o=r.scale[1],s=r.translate[0],l=r.translate[1];return function(t,e){return e||(n=i=0),t[0]=(n+=t[0])*a+s,t[1]=(i+=t[1])*o+l,t}},n=function(t){var e=t.bbox;function n(t){l[0]=t[0],l[1]=t[1],s(l),l[0]<c&&(c=l[0]),l[0]>f&&(f=l[0]),l[1]<u&&(u=l[1]),l[1]>h&&(h=l[1])}function i(t){switch(t.type){case\\\"GeometryCollection\\\":t.geometries.forEach(i);break;case\\\"Point\\\":n(t.coordinates);break;case\\\"MultiPoint\\\":t.coordinates.forEach(n)}}if(!e){var a,o,s=r(t),l=new Array(2),c=1/0,u=c,f=-c,h=-c;for(o in t.arcs.forEach(function(t){for(var e=-1,r=t.length;++e<r;)a=t[e],l[0]=a[0],l[1]=a[1],s(l,e),l[0]<c&&(c=l[0]),l[0]>f&&(f=l[0]),l[1]<u&&(u=l[1]),l[1]>h&&(h=l[1])}),t.objects)i(t.objects[o]);e=t.bbox=[c,u,f,h]}return e},i=function(t,e){for(var r,n=t.length,i=n-e;i<--n;)r=t[i],t[i++]=t[n],t[n]=r};function a(t,e){var r=e.id,n=e.bbox,i=null==e.properties?{}:e.properties,a=o(t,e);return null==r&&null==n?{type:\\\"Feature\\\",properties:i,geometry:a}:null==n?{type:\\\"Feature\\\",id:r,properties:i,geometry:a}:{type:\\\"Feature\\\",id:r,bbox:n,properties:i,geometry:a}}function o(t,e){var n=r(t),a=t.arcs;function o(t,e){e.length&&e.pop();for(var r=a[t<0?~t:t],o=0,s=r.length;o<s;++o)e.push(n(r[o].slice(),o));t<0&&i(e,s)}function s(t){return n(t.slice())}function l(t){for(var e=[],r=0,n=t.length;r<n;++r)o(t[r],e);return e.length<2&&e.push(e[0].slice()),e}function c(t){for(var e=l(t);e.length<4;)e.push(e[0].slice());return e}function u(t){return t.map(c)}return function t(e){var r,n=e.type;switch(n){case\\\"GeometryCollection\\\":return{type:n,geometries:e.geometries.map(t)};case\\\"Point\\\":r=s(e.coordinates);break;case\\\"MultiPoint\\\":r=e.coordinates.map(s);break;case\\\"LineString\\\":r=l(e.arcs);break;case\\\"MultiLineString\\\":r=e.arcs.map(l);break;case\\\"Polygon\\\":r=u(e.arcs);break;case\\\"MultiPolygon\\\":r=e.arcs.map(u);break;default:return null}return{type:n,coordinates:r}}(e)}var s=function(t,e){var r={},n={},i={},a=[],o=-1;function s(t,e){for(var n in t){var i=t[n];delete e[i.start],delete i.start,delete i.end,i.forEach(function(t){r[t<0?~t:t]=1}),a.push(i)}}return e.forEach(function(r,n){var i,a=t.arcs[r<0?~r:r];a.length<3&&!a[1][0]&&!a[1][1]&&(i=e[++o],e[o]=r,e[n]=i)}),e.forEach(function(e){var r,a,o=function(e){var r,n=t.arcs[e<0?~e:e],i=n[0];t.transform?(r=[0,0],n.forEach(function(t){r[0]+=t[0],r[1]+=t[1]})):r=n[n.length-1];return e<0?[r,i]:[i,r]}(e),s=o[0],l=o[1];if(r=i[s])if(delete i[r.end],r.push(e),r.end=l,a=n[l]){delete n[a.start];var c=a===r?r:r.concat(a);n[c.start=r.start]=i[c.end=a.end]=c}else n[r.start]=i[r.end]=r;else if(r=n[l])if(delete n[r.start],r.unshift(e),r.start=s,a=i[s]){delete i[a.end];var u=a===r?r:a.concat(r);n[u.start=a.start]=i[u.end=r.end]=u}else n[r.start]=i[r.end]=r;else n[(r=[e]).start=s]=i[r.end=l]=r}),s(i,n),s(n,i),e.forEach(function(t){r[t<0?~t:t]||a.push([t])}),a};function l(t,e,r){var n,i,a;if(arguments.length>1)n=function(t,e,r){var n,i=[],a=[];function o(t){var e=t<0?~t:t;(a[e]||(a[e]=[])).push({i:t,g:n})}function s(t){t.forEach(o)}function l(t){t.forEach(s)}return function t(e){switch(n=e,e.type){case\\\"GeometryCollection\\\":e.geometries.forEach(t);break;case\\\"LineString\\\":s(e.arcs);break;case\\\"MultiLineString\\\":case\\\"Polygon\\\":l(e.arcs);break;case\\\"MultiPolygon\\\":e.arcs.forEach(l)}}(e),a.forEach(null==r?function(t){i.push(t[0].i)}:function(t){r(t[0].g,t[t.length-1].g)&&i.push(t[0].i)}),i}(0,e,r);else for(i=0,n=new Array(a=t.arcs.length);i<a;++i)n[i]=i;return{type:\\\"MultiLineString\\\",arcs:s(t,n)}}function c(t,e){var r={},n=[],i=[];function a(t){t.forEach(function(e){e.forEach(function(e){(r[e=e<0?~e:e]||(r[e]=[])).push(t)})}),n.push(t)}function l(e){return function(t){for(var e,r=-1,n=t.length,i=t[n-1],a=0;++r<n;)e=i,i=t[r],a+=e[0]*i[1]-e[1]*i[0];return Math.abs(a)}(o(t,{type:\\\"Polygon\\\",arcs:[e]}).coordinates[0])}return e.forEach(function t(e){switch(e.type){case\\\"GeometryCollection\\\":e.geometries.forEach(t);break;case\\\"Polygon\\\":a(e.arcs);break;case\\\"MultiPolygon\\\":e.arcs.forEach(a)}}),n.forEach(function(t){if(!t._){var e=[],n=[t];for(t._=1,i.push(e);t=n.pop();)e.push(t),t.forEach(function(t){t.forEach(function(t){r[t<0?~t:t].forEach(function(t){t._||(t._=1,n.push(t))})})})}}),n.forEach(function(t){delete t._}),{type:\\\"MultiPolygon\\\",arcs:i.map(function(e){var n,i=[];if(e.forEach(function(t){t.forEach(function(t){t.forEach(function(t){r[t<0?~t:t].length<2&&i.push(t)})})}),(n=(i=s(t,i)).length)>1)for(var a,o,c=1,u=l(i[0]);c<n;++c)(a=l(i[c]))>u&&(o=i[0],i[0]=i[c],i[c]=o,u=a);return i})}}var u=function(t,e){for(var r=0,n=t.length;r<n;){var i=r+n>>>1;t[i]<e?r=i+1:n=i}return r};t.bbox=n,t.feature=function(t,e){return\\\"GeometryCollection\\\"===e.type?{type:\\\"FeatureCollection\\\",features:e.geometries.map(function(e){return a(t,e)})}:a(t,e)},t.mesh=function(t){return o(t,l.apply(this,arguments))},t.meshArcs=l,t.merge=function(t){return o(t,c.apply(this,arguments))},t.mergeArcs=c,t.neighbors=function(t){var e={},r=t.map(function(){return[]});function n(t,r){t.forEach(function(t){t<0&&(t=~t);var n=e[t];n?n.push(r):e[t]=[r]})}function i(t,e){t.forEach(function(t){n(t,e)})}var a={LineString:n,MultiLineString:i,Polygon:i,MultiPolygon:function(t,e){t.forEach(function(t){i(t,e)})}};for(var o in t.forEach(function t(e,r){\\\"GeometryCollection\\\"===e.type?e.geometries.forEach(function(e){t(e,r)}):e.type in a&&a[e.type](e.arcs,r)}),e)for(var s=e[o],l=s.length,c=0;c<l;++c)for(var f=c+1;f<l;++f){var h,p=s[c],d=s[f];(h=r[p])[o=u(h,d)]!==d&&h.splice(o,0,d),(h=r[d])[o=u(h,p)]!==p&&h.splice(o,0,p)}return r},t.quantize=function(t,e){if(!((e=Math.floor(e))>=2))throw new Error(\\\"n must be \\\\u22652\\\");if(t.transform)throw new Error(\\\"already quantized\\\");var r,i=n(t),a=i[0],o=(i[2]-a)/(e-1)||1,s=i[1],l=(i[3]-s)/(e-1)||1;function c(t){t[0]=Math.round((t[0]-a)/o),t[1]=Math.round((t[1]-s)/l)}function u(t){switch(t.type){case\\\"GeometryCollection\\\":t.geometries.forEach(u);break;case\\\"Point\\\":c(t.coordinates);break;case\\\"MultiPoint\\\":t.coordinates.forEach(c)}}for(r in t.arcs.forEach(function(t){for(var e,r,n,i=1,c=1,u=t.length,f=t[0],h=f[0]=Math.round((f[0]-a)/o),p=f[1]=Math.round((f[1]-s)/l);i<u;++i)f=t[i],r=Math.round((f[0]-a)/o),n=Math.round((f[1]-s)/l),r===h&&n===p||((e=t[c++])[0]=r-h,h=r,e[1]=n-p,p=n);c<2&&((e=t[c++])[0]=0,e[1]=0),t.length=c}),t.objects)u(t.objects[r]);return t.transform={scale:[o,l],translate:[a,s]},t},t.transform=r,t.untransform=function(t){if(null==(r=t.transform))return e;var r,n,i,a=r.scale[0],o=r.scale[1],s=r.translate[0],l=r.translate[1];return function(t,e){e||(n=i=0);var r=Math.round((t[0]-s)/a),c=Math.round((t[1]-l)/o);return t[0]=r-n,n=r,t[1]=c-i,i=c,t}},Object.defineProperty(t,\\\"__esModule\\\",{value:!0})}(\\\"object\\\"==typeof r&&\\\"undefined\\\"!=typeof e?r:n.topojson=n.topojson||{})},{}],518:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){if(t<0)return[];if(0===t)return[[0]];for(var e=0|Math.round(a(t+1)),r=[],o=0;o<e;++o){for(var s=n.unrank(t,o),l=[0],c=0,u=0;u<s.length;++u)c+=1<<s[u],l.push(c);i(s)<1&&(l[0]=c,l[t]=0),r.push(l)}return r};var n=t(\\\"permutation-rank\\\"),i=t(\\\"permutation-parity\\\"),a=t(\\\"gamma\\\")},{gamma:220,\\\"permutation-parity\\\":446,\\\"permutation-rank\\\":447}],519:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.up||[0,1,0],n=t.right||f(r),i=t.radius||1,a=t.theta||0,u=t.phi||0;if(e=[].slice.call(e,0,3),r=[].slice.call(r,0,3),s(r,r),n=[].slice.call(n,0,3),s(n,n),\\\"eye\\\"in t){var p=t.eye,d=[p[0]-e[0],p[1]-e[1],p[2]-e[2]];o(n,d,r),c(n[0],n[1],n[2])<1e-6?n=f(r):s(n,n),i=c(d[0],d[1],d[2]);var g=l(r,d)/i,v=l(n,d)/i;u=Math.acos(g),a=Math.acos(v)}return i=Math.log(i),new h(t.zoomMin,t.zoomMax,e,r,n,i,a,u)};var n=t(\\\"filtered-vector\\\"),i=t(\\\"gl-mat4/invert\\\"),a=t(\\\"gl-mat4/rotate\\\"),o=t(\\\"gl-vec3/cross\\\"),s=t(\\\"gl-vec3/normalize\\\"),l=t(\\\"gl-vec3/dot\\\");function c(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function u(t){return Math.min(1,Math.max(-1,t))}function f(t){var e=Math.abs(t[0]),r=Math.abs(t[1]),n=Math.abs(t[2]),i=[0,0,0];e>Math.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),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 c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],g=this.computedAngle[1],v=Math.cos(d),m=Math.sin(d),y=Math.cos(g),x=Math.sin(g),b=this.computedCenter,_=v*y,w=m*y,k=x,M=-v*x,A=-m*x,T=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var C=_*r[a]+w*h[a]+k*e[a];E[4*a+1]=M*r[a]+A*h[a]+T*e[a],E[4*a+2]=C,E[4*a+3]=0}var L=E[1],z=E[5],O=E[9],I=E[2],P=E[6],D=E[10],R=z*D-O*P,B=O*I-L*D,F=L*P-z*I,N=c(R,B,F);R/=N,B/=N,F/=N,E[0]=R,E[4]=B,E[8]=F;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),g=(u/=d)*e+a*r,v=(f/=d)*e+o*r,m=(h/=d)*e+s*r;this.center.move(t,g,v,m);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;\\\"number\\\"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),g=Math.max(h,p,d);h===g?(s=s<0?-1:1,l=f=0):d===g?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var v=c(s,l,f);s/=v,l/=v,f/=v}var m,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,k=c(x-=s*w,b-=l*w,_-=f*w),M=l*(_/=k)-f*(b/=k),A=f*(x/=k)-s*_,T=s*b-l*x,S=c(M,A,T);if(M/=S,A/=S,T/=S,this.center.jump(t,H,G,W),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],C=e[5],L=e[9],z=E*x+C*b+L*_,O=E*M+C*A+L*T;m=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(O,z)}else{var I=e[2],P=e[6],D=e[10],R=I*s+P*l+D*f,B=I*x+P*b+D*_,F=I*M+P*A+D*T;m=Math.asin(u(R)),y=Math.atan2(F,B)}this.angle.jump(t,y,m),this.recalcMatrix(t);var N=e[2],j=e[6],V=e[10],U=this.computedMatrix;i(U,e);var q=U[15],H=U[12]/q,G=U[13]/q,W=U[14]/q,Y=Math.exp(this.computedRadius[0]);this.center.jump(t,H-N*Y,G-j*Y,W-V*Y)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,g=d[0],v=d[1],m=d[2],y=i*g+a*v+o*m,x=c(g-=y*i,v-=y*a,m-=y*o);if(!(x<.01&&(x=c(g=a*h-o*f,v=o*l-i*h,m=i*f-a*l))<1e-6)){g/=x,v/=x,m/=x,this.up.set(t,i,a,o),this.right.set(t,g,v,m),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*m-o*v,_=o*g-i*m,w=i*v-a*g,k=c(b,_,w),M=i*l+a*f+o*h,A=g*l+v*f+m*h,T=(b/=k)*l+(_/=k)*f+(w/=k)*h,S=Math.asin(u(M)),E=Math.atan2(T,A),C=this.angle._state,L=C[C.length-1],z=C[C.length-2];L%=2*Math.PI;var O=Math.abs(L+2*Math.PI-E),I=Math.abs(L-E),P=Math.abs(L-2*Math.PI-E);O<I&&(L+=2*Math.PI),P<I&&(L-=2*Math.PI),this.angle.jump(this.angle.lastT(),L,z),this.angle.set(t,E,S)}}}}},{\\\"filtered-vector\\\":215,\\\"gl-mat4/invert\\\":254,\\\"gl-mat4/rotate\\\":258,\\\"gl-vec3/cross\\\":317,\\\"gl-vec3/dot\\\":322,\\\"gl-vec3/normalize\\\":339}],520:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var i=t*e,a=n*t,o=a-(a-t),s=t-o,l=n*e,c=l-(l-e),u=e-c,f=s*u-(i-o*c-s*c-o*u);if(r)return r[0]=f,r[1]=i,r;return[f,i]};var n=+(Math.pow(2,27)+1)},{}],521:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n=t+e,i=n-t,a=e-i,o=t-(n-i);if(r)return r[0]=o+a,r[1]=n,r;return[o+a,n]}},{}],522:[function(t,e,r){(function(e,n){\\\"use strict\\\";var i=t(\\\"bit-twiddle\\\"),a=t(\\\"dup\\\");e.__TYPEDARRAY_POOL||(e.__TYPEDARRAY_POOL={UINT8:a([32,0]),UINT16:a([32,0]),UINT32:a([32,0]),INT8:a([32,0]),INT16:a([32,0]),INT32:a([32,0]),FLOAT:a([32,0]),DOUBLE:a([32,0]),DATA:a([32,0]),UINT8C:a([32,0]),BUFFER:a([32,0])});var o=\\\"undefined\\\"!=typeof Uint8ClampedArray,s=e.__TYPEDARRAY_POOL;s.UINT8C||(s.UINT8C=a([32,0])),s.BUFFER||(s.BUFFER=a([32,0]));var l=s.DATA,c=s.BUFFER;function u(t){if(t){var e=t.length||t.byteLength,r=i.log2(e);l[r].push(t)}}function f(t){t=i.nextPow2(t);var e=i.log2(t),r=l[e];return r.length>0?r.pop():new ArrayBuffer(t)}function h(t){return new Uint8Array(f(t),0,t)}function p(t){return new Uint16Array(f(2*t),0,t)}function d(t){return new Uint32Array(f(4*t),0,t)}function g(t){return new Int8Array(f(t),0,t)}function v(t){return new Int16Array(f(2*t),0,t)}function m(t){return new Int32Array(f(4*t),0,t)}function y(t){return new Float32Array(f(4*t),0,t)}function x(t){return new Float64Array(f(8*t),0,t)}function b(t){return o?new Uint8ClampedArray(f(t),0,t):h(t)}function _(t){return new DataView(f(t),0,t)}function w(t){t=i.nextPow2(t);var e=i.log2(t),r=c[e];return r.length>0?r.pop():new n(t)}r.free=function(t){if(n.isBuffer(t))c[i.log2(t.length)].push(t);else{if(\\\"[object ArrayBuffer]\\\"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|i.log2(e);l[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeInt8=r.freeInt16=r.freeInt32=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){u(t.buffer)},r.freeArrayBuffer=u,r.freeBuffer=function(t){c[i.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||\\\"arraybuffer\\\"===e)return f(t);switch(e){case\\\"uint8\\\":return h(t);case\\\"uint16\\\":return p(t);case\\\"uint32\\\":return d(t);case\\\"int8\\\":return g(t);case\\\"int16\\\":return v(t);case\\\"int32\\\":return m(t);case\\\"float\\\":case\\\"float32\\\":return y(t);case\\\"double\\\":case\\\"float64\\\":return x(t);case\\\"uint8_clamped\\\":return b(t);case\\\"buffer\\\":return w(t);case\\\"data\\\":case\\\"dataview\\\":return _(t);default:return null}return null},r.mallocArrayBuffer=f,r.mallocUint8=h,r.mallocUint16=p,r.mallocUint32=d,r.mallocInt8=g,r.mallocInt16=v,r.mallocInt32=m,r.mallocFloat32=r.mallocFloat=y,r.mallocFloat64=r.mallocDouble=x,r.mallocUint8Clamped=b,r.mallocDataView=_,r.mallocBuffer=w,r.clearCache=function(){for(var t=0;t<32;++t)s.UINT8[t].length=0,s.UINT16[t].length=0,s.UINT32[t].length=0,s.INT8[t].length=0,s.INT16[t].length=0,s.INT32[t].length=0,s.FLOAT[t].length=0,s.DOUBLE[t].length=0,s.UINT8C[t].length=0,l[t].length=0,c[t].length=0}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{},t(\\\"buffer\\\").Buffer)},{\\\"bit-twiddle\\\":80,buffer:93,dup:155}],523:[function(t,e,r){\\\"use strict\\\";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e<t;++e)this.roots[e]=e,this.ranks[e]=0}e.exports=n;var i=n.prototype;Object.defineProperty(i,\\\"length\\\",{get:function(){return this.roots.length}}),i.makeSet=function(){var t=this.roots.length;return this.roots.push(t),this.ranks.push(0),t},i.find=function(t){for(var e=t,r=this.roots;r[t]!==t;)t=r[t];for(;r[e]!==t;){var n=r[e];r[e]=t,e=n}return t},i.link=function(t,e){var r=this.find(t),n=this.find(e);if(r!==n){var i=this.ranks,a=this.roots,o=i[r],s=i[n];o<s?a[r]=n:s<o?a[n]=r:(a[n]=r,++i[r])}}},{}],524:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){return 0===t.length?t:e?(r||t.sort(e),function(t,e){for(var r=1,n=t.length,i=t[0],a=t[0],o=1;o<n;++o)if(a=i,e(i=t[o],a)){if(o===r){r++;continue}t[r++]=i}return t.length=r,t}(t,e)):(r||t.sort(),function(t){for(var e=1,r=t.length,n=t[0],i=t[0],a=1;a<r;++a,i=n)if(i=n,(n=t[a])!==i){if(a===e){e++;continue}t[e++]=n}return t.length=e,t}(t))}},{}],525:[function(t,e,r){var n=/[\\\\'\\\\\\\"]/;e.exports=function(t){return t?(n.test(t.charAt(0))&&(t=t.substr(1)),n.test(t.charAt(t.length-1))&&(t=t.substr(0,t.length-1)),t):\\\"\\\"}},{}],526:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){Array.isArray(r)||(r=[].slice.call(arguments,2));for(var n=0,i=r.length;n<i;n++){var a=r[n];for(var o in a)if((void 0===e[o]||Array.isArray(e[o])||t[o]!==e[o])&&o in e){var s;if(!0===a[o])s=e[o];else{if(!1===a[o])continue;if(\\\"function\\\"==typeof a[o]&&void 0===(s=a[o](e[o],t,e)))continue}t[o]=s}}return t}},{}],527:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){\\\"object\\\"==typeof e&&null!==e||(e={});return n(t,e.canvas||i,e.context||a,e)};var n=t(\\\"./lib/vtext\\\"),i=null,a=null;\\\"undefined\\\"!=typeof document&&((i=document.createElement(\\\"canvas\\\")).width=8192,i.height=1024,a=i.getContext(\\\"2d\\\"))},{\\\"./lib/vtext\\\":528}],528:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var a=n.size||64,o=n.font||\\\"normal\\\";return r.font=a+\\\"px \\\"+o,r.textAlign=\\\"start\\\",r.textBaseline=\\\"alphabetic\\\",r.direction=\\\"ltr\\\",f(function(t,e,r,n){var a=0|Math.ceil(e.measureText(r).width+2*n);if(a>8192)throw new Error(\\\"vectorize-text: String too long (sorry, this will get fixed later)\\\");var o=3*n;t.height<o&&(t.height=o),e.fillStyle=\\\"#000\\\",e.fillRect(0,0,t.width,t.height),e.fillStyle=\\\"#fff\\\",e.fillText(r,n,2*n);var s=e.getImageData(0,0,a,o);return i(s.data,[o,a,4]).pick(-1,-1,0).transpose(1,0)}(e,r,t,a),n,a)},e.exports.processPixels=f;var n=t(\\\"surface-nets\\\"),i=t(\\\"ndarray\\\"),a=t(\\\"simplify-planar-graph\\\"),o=t(\\\"clean-pslg\\\"),s=t(\\\"cdt2d\\\"),l=t(\\\"planar-graph-to-polyline\\\");function c(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function u(t,e,r,n){var i=c(t,n),a=function(t,e,r){for(var n=e.textAlign||\\\"start\\\",i=e.textBaseline||\\\"alphabetic\\\",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l<s;++l)for(var c=t[l],u=0;u<2;++u)a[u]=0|Math.min(a[u],c[u]),o[u]=0|Math.max(o[u],c[u]);var f=0;switch(n){case\\\"center\\\":f=-.5*(a[0]+o[0]);break;case\\\"right\\\":case\\\"end\\\":f=-o[0];break;case\\\"left\\\":case\\\"start\\\":f=-a[0];break;default:throw new Error(\\\"vectorize-text: Unrecognized textAlign: '\\\"+n+\\\"'\\\")}var h=0;switch(i){case\\\"hanging\\\":case\\\"top\\\":h=-a[1];break;case\\\"middle\\\":h=-.5*(a[1]+o[1]);break;case\\\"alphabetic\\\":case\\\"ideographic\\\":h=-3*r;break;case\\\"bottom\\\":h=-o[1];break;default:throw new Error(\\\"vectorize-text: Unrecoginized textBaseline: '\\\"+i+\\\"'\\\")}var p=1/r;return\\\"lineHeight\\\"in e?p*=+e.lineHeight:\\\"width\\\"in e?p=e.width/(o[0]-a[0]):\\\"height\\\"in e&&(p=e.height/(o[1]-a[1])),t.map(function(t){return[p*(t[0]+f),p*(t[1]+h)]})}(i.positions,e,r),u=i.edges,f=\\\"ccw\\\"===e.orientation;if(o(a,u),e.polygons||e.polygon||e.polyline){for(var h=l(u,a),p=new Array(h.length),d=0;d<h.length;++d){for(var g=h[d],v=new Array(g.length),m=0;m<g.length;++m){for(var y=g[m],x=new Array(y.length),b=0;b<y.length;++b)x[b]=a[y[b]].slice();f&&x.reverse(),v[m]=x}p[d]=v}return p}return e.triangles||e.triangulate||e.triangle?{cells:s(a,u,{delaunay:!1,exterior:!1,interior:!0}),positions:a}:{edges:u,positions:a}}function f(t,e,r){try{return u(t,e,r,!0)}catch(t){}try{return u(t,e,r,!1)}catch(t){}return e.polygons||e.polyline||e.polygon?[]:e.triangles||e.triangulate||e.triangle?{cells:[],positions:[]}:{edges:[],positions:[]}}},{cdt2d:94,\\\"clean-pslg\\\":104,ndarray:433,\\\"planar-graph-to-polyline\\\":451,\\\"simplify-planar-graph\\\":500,\\\"surface-nets\\\":508}],529:[function(t,e,r){!function(){\\\"use strict\\\";if(\\\"undefined\\\"==typeof ses||!ses.ok||ses.ok()){\\\"undefined\\\"!=typeof ses&&(ses.weakMapPermitHostObjects=v);var t=!1;if(\\\"function\\\"==typeof WeakMap){var r=WeakMap;if(\\\"undefined\\\"!=typeof navigator&&/Firefox/.test(navigator.userAgent));else{var n=new r,i=Object.freeze({});if(n.set(i,1),1===n.get(i))return void(e.exports=WeakMap);t=!0}}Object.prototype.hasOwnProperty;var a=Object.getOwnPropertyNames,o=Object.defineProperty,s=Object.isExtensible,l=\\\"weakmap:\\\",c=l+\\\"ident:\\\"+Math.random()+\\\"___\\\";if(\\\"undefined\\\"!=typeof crypto&&\\\"function\\\"==typeof crypto.getRandomValues&&\\\"function\\\"==typeof ArrayBuffer&&\\\"function\\\"==typeof Uint8Array){var u=new ArrayBuffer(25),f=new Uint8Array(u);crypto.getRandomValues(f),c=l+\\\"rand:\\\"+Array.prototype.map.call(f,function(t){return(t%36).toString(36)}).join(\\\"\\\")+\\\"___\\\"}if(o(Object,\\\"getOwnPropertyNames\\\",{value:function(t){return a(t).filter(m)}}),\\\"getPropertyNames\\\"in Object){var h=Object.getPropertyNames;o(Object,\\\"getPropertyNames\\\",{value:function(t){return h(t).filter(m)}})}!function(){var t=Object.freeze;o(Object,\\\"freeze\\\",{value:function(e){return y(e),t(e)}});var e=Object.seal;o(Object,\\\"seal\\\",{value:function(t){return y(t),e(t)}});var r=Object.preventExtensions;o(Object,\\\"preventExtensions\\\",{value:function(t){return y(t),r(t)}})}();var p=!1,d=0,g=function(){this instanceof g||b();var t=[],e=[],r=d++;return Object.create(g.prototype,{get___:{value:x(function(n,i){var a,o=y(n);return o?r in o?o[r]:i:(a=t.indexOf(n))>=0?e[a]:i})},has___:{value:x(function(e){var n=y(e);return n?r in n:t.indexOf(e)>=0})},set___:{value:x(function(n,i){var a,o=y(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this})},delete___:{value:x(function(n){var i,a,o=y(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0||(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,0))})}})};g.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),\\\"function\\\"==typeof r?function(){function n(){this instanceof g||b();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new g),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new g),i.set___(t,e)}else n.set(t,e);return this},Object.create(g.prototype,{get___:{value:x(function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)})},has___:{value:x(function(t){return n.has(t)||!!i&&i.has___(t)})},set___:{value:x(e)},delete___:{value:x(function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e})},permitHostObjects___:{value:x(function(t){if(t!==v)throw new Error(\\\"bogus call to permitHostObjects___\\\");a=!0})}})}t&&\\\"undefined\\\"!=typeof Proxy&&(Proxy=void 0),n.prototype=g.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,\\\"constructor\\\",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():(\\\"undefined\\\"!=typeof Proxy&&(Proxy=void 0),e.exports=g)}function v(t){t.permitHostObjects___&&t.permitHostObjects___(v)}function m(t){return!(t.substr(0,l.length)==l&&\\\"___\\\"===t.substr(t.length-3))}function y(t){if(t!==Object(t))throw new TypeError(\\\"Not an object: \\\"+t);var e=t[c];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,c,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function x(t){return t.prototype=null,Object.freeze(t)}function b(){p||\\\"undefined\\\"==typeof console||(p=!0,console.warn(\\\"WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future.\\\"))}}()},{}],530:[function(t,e,r){var n=t(\\\"./hidden-store.js\\\");e.exports=function(){var t={};return function(e){if((\\\"object\\\"!=typeof e||null===e)&&\\\"function\\\"!=typeof e)throw new Error(\\\"Weakmap-shim: Key must be object\\\");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{\\\"./hidden-store.js\\\":531}],531:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,\\\"valueOf\\\",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],532:[function(t,e,r){var n=t(\\\"./create-store.js\\\");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty(\\\"value\\\")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return\\\"value\\\"in t(e)},delete:function(e){return delete t(e).value}}}},{\\\"./create-store.js\\\":530}],533:[function(t,e,r){var n=t(\\\"get-canvas-context\\\");e.exports=function(t){return n(\\\"webgl\\\",t)}},{\\\"get-canvas-context\\\":221}],534:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\"),a=n.instance();function o(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}o.prototype=new n.baseCalendar,i(o.prototype,{name:\\\"Chinese\\\",jdEpoch:1721425.5,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Chinese\\\",epochs:[\\\"BEC\\\",\\\"EC\\\"],monthNumbers:function(t,e){if(\\\"string\\\"==typeof t){var r=t.match(l);return r?r[0]:\\\"\\\"}var n=this._validateYear(t),i=t.month(),a=\\\"\\\"+this.toChineseMonth(n,i);return e&&a.length<2&&(a=\\\"0\\\"+a),this.isIntercalaryMonth(n,i)&&(a+=\\\"i\\\"),a},monthNames:function(t){if(\\\"string\\\"==typeof t){var e=t.match(c);return e?e[0]:\\\"\\\"}var r=this._validateYear(t),n=t.month(),i=[\\\"\\\\u4e00\\\\u6708\\\",\\\"\\\\u4e8c\\\\u6708\\\",\\\"\\\\u4e09\\\\u6708\\\",\\\"\\\\u56db\\\\u6708\\\",\\\"\\\\u4e94\\\\u6708\\\",\\\"\\\\u516d\\\\u6708\\\",\\\"\\\\u4e03\\\\u6708\\\",\\\"\\\\u516b\\\\u6708\\\",\\\"\\\\u4e5d\\\\u6708\\\",\\\"\\\\u5341\\\\u6708\\\",\\\"\\\\u5341\\\\u4e00\\\\u6708\\\",\\\"\\\\u5341\\\\u4e8c\\\\u6708\\\"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i=\\\"\\\\u95f0\\\"+i),i},monthNamesShort:function(t){if(\\\"string\\\"==typeof t){var e=t.match(u);return e?e[0]:\\\"\\\"}var r=this._validateYear(t),n=t.month(),i=[\\\"\\\\u4e00\\\",\\\"\\\\u4e8c\\\",\\\"\\\\u4e09\\\",\\\"\\\\u56db\\\",\\\"\\\\u4e94\\\",\\\"\\\\u516d\\\",\\\"\\\\u4e03\\\",\\\"\\\\u516b\\\",\\\"\\\\u4e5d\\\",\\\"\\\\u5341\\\",\\\"\\\\u5341\\\\u4e00\\\",\\\"\\\\u5341\\\\u4e8c\\\"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i=\\\"\\\\u95f0\\\"+i),i},parseMonth:function(t,e){t=this._validateYear(t);var r,n=parseInt(e);if(isNaN(n))\\\"\\\\u95f0\\\"===e[0]&&(r=!0,e=e.substring(1)),\\\"\\\\u6708\\\"===e[e.length-1]&&(e=e.substring(0,e.length-1)),n=1+[\\\"\\\\u4e00\\\",\\\"\\\\u4e8c\\\",\\\"\\\\u4e09\\\",\\\"\\\\u56db\\\",\\\"\\\\u4e94\\\",\\\"\\\\u516d\\\",\\\"\\\\u4e03\\\",\\\"\\\\u516b\\\",\\\"\\\\u4e5d\\\",\\\"\\\\u5341\\\",\\\"\\\\u5341\\\\u4e00\\\",\\\"\\\\u5341\\\\u4e8c\\\"].indexOf(e);else{var i=e[e.length-1];r=\\\"i\\\"===i||\\\"I\\\"===i}return this.toMonthIndex(t,n,r)},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}},_validateYear:function(t,e){if(t.year&&(t=t.year()),\\\"number\\\"!=typeof t||t<1888||t>2111)throw e.replace(/\\\\{0\\\\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var i=this.intercalaryMonth(t);if(r&&e!==i||e<1||e>12)throw n.local.invalidMonth.replace(/\\\\{0\\\\}/,this.local.name);return i?!r&&e<=i?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw n.local.invalidMonth.replace(/\\\\{0\\\\}/,this.local.name);return r?e<r?e+1:e:e+1},intercalaryMonth:function(t){return t=this._validateYear(t),f[t-f[0]]>>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var i,o=this._validateYear(t,n.local.invalidyear),s=h[o-h[0]],l=s>>9&4095,c=s>>5&15,u=31&s;(i=a.newDate(l,c,u)).add(4-(i.dayOfWeek()||7),\\\"d\\\");var f=this.toJD(t,e,r)-i.toJD();return 1+Math.floor(f/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=f[t-f[0]];if(e>(r>>13?12:11))throw n.local.invalidMonth.replace(/\\\\{0\\\\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,s,r,n.local.invalidDate);t=this._validateYear(i.year()),e=i.month(),r=i.day();var o=this.isIntercalaryMonth(t,e),s=this.toChineseMonth(t,e),l=function(t,e,r,n,i){var a,o,s;if(\\\"object\\\"==typeof t)o=t,a=e||{};else{var l=\\\"number\\\"==typeof t&&t>=1888&&t<=2111;if(!l)throw new Error(\\\"Lunar year outside range 1888-2111\\\");var c=\\\"number\\\"==typeof e&&e>=1&&e<=12;if(!c)throw new Error(\\\"Lunar month outside range 1 - 12\\\");var u,p=\\\"number\\\"==typeof r&&r>=1&&r<=30;if(!p)throw new Error(\\\"Lunar day outside range 1 - 30\\\");\\\"object\\\"==typeof n?(u=!1,a=n):(u=!!n,a=i||{}),o={year:t,month:e,day:r,isIntercalary:u}}s=o.day-1;var d,g=f[o.year-f[0]],v=g>>13;d=v?o.month>v?o.month:o.isIntercalary?o.month:o.month-1:o.month-1;for(var m=0;m<d;m++){var y=g&1<<12-m?30:29;s+=y}var x=h[o.year-h[0]],b=new Date(x>>9&4095,(x>>5&15)-1,(31&x)+s);return a.year=b.getFullYear(),a.month=1+b.getMonth(),a.day=b.getDate(),a}(t,s,r,o);return a.toJD(l.year,l.month,l.day)},fromJD:function(t){var e=a.fromJD(t),r=function(t,e,r,n){var i,a;if(\\\"object\\\"==typeof t)i=t,a=e||{};else{var o=\\\"number\\\"==typeof t&&t>=1888&&t<=2111;if(!o)throw new Error(\\\"Solar year outside range 1888-2111\\\");var s=\\\"number\\\"==typeof e&&e>=1&&e<=12;if(!s)throw new Error(\\\"Solar month outside range 1 - 12\\\");var l=\\\"number\\\"==typeof r&&r>=1&&r<=31;if(!l)throw new Error(\\\"Solar day outside range 1 - 31\\\");i={year:t,month:e,day:r},a=n||{}}var c=h[i.year-h[0]],u=i.year<<9|i.month<<5|i.day;a.year=u>=c?i.year:i.year-1,c=h[a.year-h[0]];var p,d=new Date(c>>9&4095,(c>>5&15)-1,31&c),g=new Date(i.year,i.month-1,i.day);p=Math.round((g-d)/864e5);var v,m=f[a.year-f[0]];for(v=0;v<13;v++){var y=m&1<<12-v?30:29;if(p<y)break;p-=y}var x=m>>13;!x||v<x?(a.isIntercalary=!1,a.month=1+v):v===x?(a.isIntercalary=!0,a.month=v):(a.isIntercalary=!1,a.month=v);return a.day=1+p,a}(e.year(),e.month(),e.day()),n=this.toMonthIndex(r.year,r.month,r.isIntercalary);return this.newDate(r.year,n,r.day)},fromString:function(t){var e=t.match(s),r=this._validateYear(+e[1]),n=+e[2],i=!!e[3],a=this.toMonthIndex(r,n,i),o=+e[4];return this.newDate(r,a,o)},add:function(t,e,r){var n=t.year(),i=t.month(),a=this.isIntercalaryMonth(n,i),s=this.toChineseMonth(n,i),l=Object.getPrototypeOf(o.prototype).add.call(this,t,e,r);if(\\\"y\\\"===r){var c=l.year(),u=l.month(),f=this.isIntercalaryMonth(c,s),h=a&&f?this.toMonthIndex(c,s,!0):this.toMonthIndex(c,s,!1);h!==u&&l.month(h)}return l}});var s=/^\\\\s*(-?\\\\d\\\\d\\\\d\\\\d|\\\\d\\\\d)[-\\\\/](\\\\d?\\\\d)([iI]?)[-\\\\/](\\\\d?\\\\d)/m,l=/^\\\\d?\\\\d[iI]?/m,c=/^\\\\u95f0?\\\\u5341?[\\\\u4e00\\\\u4e8c\\\\u4e09\\\\u56db\\\\u4e94\\\\u516d\\\\u4e03\\\\u516b\\\\u4e5d]?\\\\u6708/m,u=/^\\\\u95f0?\\\\u5341?[\\\\u4e00\\\\u4e8c\\\\u4e09\\\\u56db\\\\u4e94\\\\u516d\\\\u4e03\\\\u516b\\\\u4e5d]?/m;n.calendars.chinese=o;var f=[1887,5780,5802,19157,2742,50359,1198,2646,46378,7466,3412,30122,5482,67949,2396,5294,43597,6732,6954,36181,2772,4954,18781,2396,54427,5274,6730,47781,5800,6868,21210,4790,59703,2350,5270,46667,3402,3496,38325,1388,4782,18735,2350,52374,6804,7498,44457,2906,1388,29294,4700,63789,6442,6804,56138,5802,2772,38235,1210,4698,22827,5418,63125,3476,5802,43701,2484,5302,27223,2646,70954,7466,3412,54698,5482,2412,38062,5294,2636,32038,6954,60245,2772,4826,43357,2394,5274,39501,6730,72357,5800,5844,53978,4790,2358,38039,5270,87627,3402,3496,54708,5484,4782,43311,2350,3222,27978,7498,68965,2904,5484,45677,4700,6444,39573,6804,6986,19285,2772,62811,1210,4698,47403,5418,5780,38570,5546,76469,2420,5302,51799,2646,5414,36501,3412,5546,18869,2412,54446,5276,6732,48422,6822,2900,28010,4826,92509,2394,5274,55883,6730,6820,47956,5812,2778,18779,2358,62615,5270,5450,46757,3492,5556,27318,4718,67887,2350,3222,52554,7498,3428,38252,5468,4700,31022,6444,64149,6804,6986,43861,2772,5338,35421,2650,70955,5418,5780,54954,5546,2740,38074,5302,2646,29991,3366,61011,3412,5546,43445,2412,5294,35406,6732,72998,6820,6996,52586,2778,2396,38045,5274,6698,23333,6820,64338,5812,2746,43355,2358,5270,39499,5450,79525,3492,5548],h=[1887,966732,967231,967733,968265,968766,969297,969798,970298,970829,971330,971830,972362,972863,973395,973896,974397,974928,975428,975929,976461,976962,977462,977994,978494,979026,979526,980026,980558,981059,981559,982091,982593,983124,983624,984124,984656,985157,985656,986189,986690,987191,987722,988222,988753,989254,989754,990286,990788,991288,991819,992319,992851,993352,993851,994383,994885,995385,995917,996418,996918,997450,997949,998481,998982,999483,1000014,1000515,1001016,1001548,1002047,1002578,1003080,1003580,1004111,1004613,1005113,1005645,1006146,1006645,1007177,1007678,1008209,1008710,1009211,1009743,1010243,1010743,1011275,1011775,1012306,1012807,1013308,1013840,1014341,1014841,1015373,1015874,1016404,1016905,1017405,1017937,1018438,1018939,1019471,1019972,1020471,1021002,1021503,1022035,1022535,1023036,1023568,1024069,1024568,1025100,1025601,1026102,1026633,1027133,1027666,1028167,1028666,1029198,1029699,1030199,1030730,1031231,1031763,1032264,1032764,1033296,1033797,1034297,1034828,1035329,1035830,1036362,1036861,1037393,1037894,1038394,1038925,1039427,1039927,1040459,1040959,1041491,1041992,1042492,1043023,1043524,1044024,1044556,1045057,1045558,1046090,1046590,1047121,1047622,1048122,1048654,1049154,1049655,1050187,1050689,1051219,1051720,1052220,1052751,1053252,1053752,1054284,1054786,1055285,1055817,1056317,1056849,1057349,1057850,1058382,1058883,1059383,1059915,1060415,1060947,1061447,1061947,1062479,1062981,1063480,1064012,1064514,1065014,1065545,1066045,1066577,1067078,1067578,1068110,1068611,1069112,1069642,1070142,1070674,1071175,1071675,1072207,1072709,1073209,1073740,1074241,1074741,1075273,1075773,1076305,1076807,1077308,1077839,1078340,1078840,1079372,1079871,1080403,1080904]},{\\\"../main\\\":548,\\\"object-assign\\\":437}],535:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Coptic\\\",jdEpoch:1825029.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Coptic\\\",epochs:[\\\"BAM\\\",\\\"AM\\\"],monthNames:[\\\"Thout\\\",\\\"Paopi\\\",\\\"Hathor\\\",\\\"Koiak\\\",\\\"Tobi\\\",\\\"Meshir\\\",\\\"Paremhat\\\",\\\"Paremoude\\\",\\\"Pashons\\\",\\\"Paoni\\\",\\\"Epip\\\",\\\"Mesori\\\",\\\"Pi Kogi Enavot\\\"],monthNamesShort:[\\\"Tho\\\",\\\"Pao\\\",\\\"Hath\\\",\\\"Koi\\\",\\\"Tob\\\",\\\"Mesh\\\",\\\"Pat\\\",\\\"Pad\\\",\\\"Pash\\\",\\\"Pao\\\",\\\"Epi\\\",\\\"Meso\\\",\\\"PiK\\\"],dayNames:[\\\"Tkyriaka\\\",\\\"Pesnau\\\",\\\"Pshoment\\\",\\\"Peftoou\\\",\\\"Ptiou\\\",\\\"Psoou\\\",\\\"Psabbaton\\\"],dayNamesShort:[\\\"Tky\\\",\\\"Pes\\\",\\\"Psh\\\",\\\"Pef\\\",\\\"Pti\\\",\\\"Pso\\\",\\\"Psa\\\"],dayNamesMin:[\\\"Tk\\\",\\\"Pes\\\",\\\"Psh\\\",\\\"Pef\\\",\\\"Pt\\\",\\\"Pso\\\",\\\"Psa\\\"],digits:null,dateFormat:\\\"dd/mm/yyyy\\\",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[\\\"\\\"].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.coptic=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],536:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Discworld\\\",jdEpoch:1721425.5,daysPerMonth:[16,32,32,32,32,32,32,32,32,32,32,32,32],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Discworld\\\",epochs:[\\\"BUC\\\",\\\"UC\\\"],monthNames:[\\\"Ick\\\",\\\"Offle\\\",\\\"February\\\",\\\"March\\\",\\\"April\\\",\\\"May\\\",\\\"June\\\",\\\"Grune\\\",\\\"August\\\",\\\"Spune\\\",\\\"Sektober\\\",\\\"Ember\\\",\\\"December\\\"],monthNamesShort:[\\\"Ick\\\",\\\"Off\\\",\\\"Feb\\\",\\\"Mar\\\",\\\"Apr\\\",\\\"May\\\",\\\"Jun\\\",\\\"Gru\\\",\\\"Aug\\\",\\\"Spu\\\",\\\"Sek\\\",\\\"Emb\\\",\\\"Dec\\\"],dayNames:[\\\"Sunday\\\",\\\"Octeday\\\",\\\"Monday\\\",\\\"Tuesday\\\",\\\"Wednesday\\\",\\\"Thursday\\\",\\\"Friday\\\",\\\"Saturday\\\"],dayNamesShort:[\\\"Sun\\\",\\\"Oct\\\",\\\"Mon\\\",\\\"Tue\\\",\\\"Wed\\\",\\\"Thu\\\",\\\"Fri\\\",\\\"Sat\\\"],dayNamesMin:[\\\"Su\\\",\\\"Oc\\\",\\\"Mo\\\",\\\"Tu\\\",\\\"We\\\",\\\"Th\\\",\\\"Fr\\\",\\\"Sa\\\"],digits:null,dateFormat:\\\"yyyy/mm/dd\\\",firstDay:2,isRTL:!1}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),13},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),400},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/8)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]},daysInWeek:function(){return 8},dayOfWeek:function(t,e,r){return(this._validate(t,e,r,n.local.invalidDate).day()+1)%8},weekDay:function(t,e,r){var n=this.dayOfWeek(t,e,r);return n>=2&&n<=6},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{century:o[Math.floor((i.year()-1)/100)+1]||\\\"\\\"}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year()+(i.year()<0?1:0),e=i.month(),(r=i.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var o={20:\\\"Fruitbat\\\",21:\\\"Anchovy\\\"};n.calendars.discworld=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],537:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Ethiopian\\\",jdEpoch:1724220.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[\\\"\\\"].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.ethiopian=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],538:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return o(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),12===e&&this.leapYear(t)?30:8===e&&5===o(this.daysInYear(t),10)?30:9===e&&3===o(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{yearType:(this.leapYear(i)?\\\"embolismic\\\":\\\"common\\\")+\\\" \\\"+[\\\"deficient\\\",\\\"regular\\\",\\\"complete\\\"][this.daysInYear(i)%10-3]}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t<=0?t+1:t,o=this.jdEpoch+this._delay1(a)+this._delay2(a)+r+1;if(e<7){for(var s=7;s<=this.monthsInYear(t);s++)o+=this.daysInMonth(t,s);for(s=1;s<e;s++)o+=this.daysInMonth(t,s)}else for(s=7;s<e;s++)o+=this.daysInMonth(t,s);return o},_delay1:function(t){var e=Math.floor((235*t-234)/19),r=12084+13753*e,n=29*e+Math.floor(r/25920);return o(3*(n+1),7)<3&&n++,n},_delay2:function(t){var e=this._delay1(t-1),r=this._delay1(t);return this._delay1(t+1)-r==356?2:r-e==382?1:0},fromJD:function(t){t=Math.floor(t)+.5;for(var e=Math.floor(98496*(t-this.jdEpoch)/35975351)-1;t>=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=t<this.toJD(e,1,1)?7:1;t>this.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.hebrew=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],539:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Islamic\\\",jdEpoch:1948439.5,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(t){return(11*this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),t=t<=0?t+1:t,(r=i.day())+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.islamic=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],540:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Julian\\\",jdEpoch:1721423.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),r=i.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),n.calendars.julian=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],541:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}function o(t,e){return t-e*Math.floor(t/e)}function s(t,e){return o(t-1,e)+1}a.prototype=new n.baseCalendar,i(a.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(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+\\\".\\\"+Math.floor(t/20)+\\\".\\\"+t%20},forYear:function(t){if((t=t.split(\\\".\\\")).length<3)throw\\\"Invalid Mayan year\\\";for(var e=0,r=0;r<t.length;r++){var n=parseInt(t[r],10);if(Math.abs(n)>19||r>0&&n<0)throw\\\"Invalid Mayan year\\\";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),!0},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate).toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(t){var e=o((t-=this.jdEpoch)+8+340,365);return[Math.floor(e/20)+1,o(e,20)]},_toTzolkin:function(t){return[s((t-=this.jdEpoch)+20,20),s(t+4,13)]},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return i.day()+20*i.month()+360*i.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),n.calendars.mayan=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],542:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar;var o=n.instance(\\\"gregorian\\\");i(a.prototype,{name:\\\"Nanakshahi\\\",jdEpoch:2257673.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[\\\"\\\"].invalidYear);return o.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidMonth);(t=i.year())<0&&t++;for(var a=i.day(),s=1;s<i.month();s++)a+=this.daysPerMonth[s-1];return a+o.toJD(t+1468,3,13)},fromJD:function(t){t=Math.floor(t+.5);for(var e=Math.floor((t-(this.jdEpoch-1))/366);t>=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),n.calendars.nanakshahi=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],543:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Nepali\\\",jdEpoch:1700709.5,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(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),\\\"undefined\\\"==typeof this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),\\\"undefined\\\"==typeof this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=n.instance(),o=0,s=e,l=t;this._createMissingCalendarData(t);var c=t-(s>9||9===s&&r>=this.NEPALI_CALENDAR_DATA[l][0]?56:57);for(9!==e&&(o=r,s--);9!==s;)s<=0&&(s=12,l--),o+=this.NEPALI_CALENDAR_DATA[l][s],s--;return 9===e?(o+=r-this.NEPALI_CALENDAR_DATA[l][0])<0&&(o+=a.daysInYear(c)):o+=this.NEPALI_CALENDAR_DATA[l][9]-this.NEPALI_CALENDAR_DATA[l][0],a.newDate(c,1,1).add(o,\\\"d\\\").toJD()},fromJD:function(t){var e=n.instance().fromJD(t),r=e.year(),i=e.dayOfYear(),a=r+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)++o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var c=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,c)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r<t+2;r++)\\\"undefined\\\"==typeof this.NEPALI_CALENDAR_DATA[r]&&(this.NEPALI_CALENDAR_DATA[r]=e)},NEPALI_CALENDAR_DATA:{1970:[18,31,31,32,31,31,31,30,29,30,29,30,30],1971:[18,31,31,32,31,32,30,30,29,30,29,30,30],1972:[17,31,32,31,32,31,30,30,30,29,29,30,30],1973:[19,30,32,31,32,31,30,30,30,29,30,29,31],1974:[19,31,31,32,30,31,31,30,29,30,29,30,30],1975:[18,31,31,32,32,30,31,30,29,30,29,30,30],1976:[17,31,32,31,32,31,30,30,30,29,29,30,31],1977:[18,31,32,31,32,31,31,29,30,29,30,29,31],1978:[18,31,31,32,31,31,31,30,29,30,29,30,30],1979:[18,31,31,32,32,31,30,30,29,30,29,30,30],1980:[17,31,32,31,32,31,30,30,30,29,29,30,31],1981:[18,31,31,31,32,31,31,29,30,30,29,30,30],1982:[18,31,31,32,31,31,31,30,29,30,29,30,30],1983:[18,31,31,32,32,31,30,30,29,30,29,30,30],1984:[17,31,32,31,32,31,30,30,30,29,29,30,31],1985:[18,31,31,31,32,31,31,29,30,30,29,30,30],1986:[18,31,31,32,31,31,31,30,29,30,29,30,30],1987:[18,31,32,31,32,31,30,30,29,30,29,30,30],1988:[17,31,32,31,32,31,30,30,30,29,29,30,31],1989:[18,31,31,31,32,31,31,30,29,30,29,30,30],1990:[18,31,31,32,31,31,31,30,29,30,29,30,30],1991:[18,31,32,31,32,31,30,30,29,30,29,30,30],1992:[17,31,32,31,32,31,30,30,30,29,30,29,31],1993:[18,31,31,31,32,31,31,30,29,30,29,30,30],1994:[18,31,31,32,31,31,31,30,29,30,29,30,30],1995:[17,31,32,31,32,31,30,30,30,29,29,30,30],1996:[17,31,32,31,32,31,30,30,30,29,30,29,31],1997:[18,31,31,32,31,31,31,30,29,30,29,30,30],1998:[18,31,31,32,31,31,31,30,29,30,29,30,30],1999:[17,31,32,31,32,31,30,30,30,29,29,30,31],2000:[17,30,32,31,32,31,30,30,30,29,30,29,31],2001:[18,31,31,32,31,31,31,30,29,30,29,30,30],2002:[18,31,31,32,32,31,30,30,29,30,29,30,30],2003:[17,31,32,31,32,31,30,30,30,29,29,30,31],2004:[17,30,32,31,32,31,30,30,30,29,30,29,31],2005:[18,31,31,32,31,31,31,30,29,30,29,30,30],2006:[18,31,31,32,32,31,30,30,29,30,29,30,30],2007:[17,31,32,31,32,31,30,30,30,29,29,30,31],2008:[17,31,31,31,32,31,31,29,30,30,29,29,31],2009:[18,31,31,32,31,31,31,30,29,30,29,30,30],2010:[18,31,31,32,32,31,30,30,29,30,29,30,30],2011:[17,31,32,31,32,31,30,30,30,29,29,30,31],2012:[17,31,31,31,32,31,31,29,30,30,29,30,30],2013:[18,31,31,32,31,31,31,30,29,30,29,30,30],2014:[18,31,31,32,32,31,30,30,29,30,29,30,30],2015:[17,31,32,31,32,31,30,30,30,29,29,30,31],2016:[17,31,31,31,32,31,31,29,30,30,29,30,30],2017:[18,31,31,32,31,31,31,30,29,30,29,30,30],2018:[18,31,32,31,32,31,30,30,29,30,29,30,30],2019:[17,31,32,31,32,31,30,30,30,29,30,29,31],2020:[17,31,31,31,32,31,31,30,29,30,29,30,30],2021:[18,31,31,32,31,31,31,30,29,30,29,30,30],2022:[17,31,32,31,32,31,30,30,30,29,29,30,30],2023:[17,31,32,31,32,31,30,30,30,29,30,29,31],2024:[17,31,31,31,32,31,31,30,29,30,29,30,30],2025:[18,31,31,32,31,31,31,30,29,30,29,30,30],2026:[17,31,32,31,32,31,30,30,30,29,29,30,31],2027:[17,30,32,31,32,31,30,30,30,29,30,29,31],2028:[17,31,31,32,31,31,31,30,29,30,29,30,30],2029:[18,31,31,32,31,32,30,30,29,30,29,30,30],2030:[17,31,32,31,32,31,30,30,30,30,30,30,31],2031:[17,31,32,31,32,31,31,31,31,31,31,31,31],2032:[17,32,32,32,32,32,32,32,32,32,32,32,32],2033:[18,31,31,32,32,31,30,30,29,30,29,30,30],2034:[17,31,32,31,32,31,30,30,30,29,29,30,31],2035:[17,30,32,31,32,31,31,29,30,30,29,29,31],2036:[17,31,31,32,31,31,31,30,29,30,29,30,30],2037:[18,31,31,32,32,31,30,30,29,30,29,30,30],2038:[17,31,32,31,32,31,30,30,30,29,29,30,31],2039:[17,31,31,31,32,31,31,29,30,30,29,30,30],2040:[17,31,31,32,31,31,31,30,29,30,29,30,30],2041:[18,31,31,32,32,31,30,30,29,30,29,30,30],2042:[17,31,32,31,32,31,30,30,30,29,29,30,31],2043:[17,31,31,31,32,31,31,29,30,30,29,30,30],2044:[17,31,31,32,31,31,31,30,29,30,29,30,30],2045:[18,31,32,31,32,31,30,30,29,30,29,30,30],2046:[17,31,32,31,32,31,30,30,30,29,29,30,31],2047:[17,31,31,31,32,31,31,30,29,30,29,30,30],2048:[17,31,31,32,31,31,31,30,29,30,29,30,30],2049:[17,31,32,31,32,31,30,30,30,29,29,30,30],2050:[17,31,32,31,32,31,30,30,30,29,30,29,31],2051:[17,31,31,31,32,31,31,30,29,30,29,30,30],2052:[17,31,31,32,31,31,31,30,29,30,29,30,30],2053:[17,31,32,31,32,31,30,30,30,29,29,30,30],2054:[17,31,32,31,32,31,30,30,30,29,30,29,31],2055:[17,31,31,32,31,31,31,30,29,30,30,29,30],2056:[17,31,31,32,31,32,30,30,29,30,29,30,30],2057:[17,31,32,31,32,31,30,30,30,29,29,30,31],2058:[17,30,32,31,32,31,30,30,30,29,30,29,31],2059:[17,31,31,32,31,31,31,30,29,30,29,30,30],2060:[17,31,31,32,32,31,30,30,29,30,29,30,30],2061:[17,31,32,31,32,31,30,30,30,29,29,30,31],2062:[17,30,32,31,32,31,31,29,30,29,30,29,31],2063:[17,31,31,32,31,31,31,30,29,30,29,30,30],2064:[17,31,31,32,32,31,30,30,29,30,29,30,30],2065:[17,31,32,31,32,31,30,30,30,29,29,30,31],2066:[17,31,31,31,32,31,31,29,30,30,29,29,31],2067:[17,31,31,32,31,31,31,30,29,30,29,30,30],2068:[17,31,31,32,32,31,30,30,29,30,29,30,30],2069:[17,31,32,31,32,31,30,30,30,29,29,30,31],2070:[17,31,31,31,32,31,31,29,30,30,29,30,30],2071:[17,31,31,32,31,31,31,30,29,30,29,30,30],2072:[17,31,32,31,32,31,30,30,29,30,29,30,30],2073:[17,31,32,31,32,31,30,30,30,29,29,30,31],2074:[17,31,31,31,32,31,31,30,29,30,29,30,30],2075:[17,31,31,32,31,31,31,30,29,30,29,30,30],2076:[16,31,32,31,32,31,30,30,30,29,29,30,30],2077:[17,31,32,31,32,31,30,30,30,29,30,29,31],2078:[17,31,31,31,32,31,31,30,29,30,29,30,30],2079:[17,31,31,32,31,31,31,30,29,30,29,30,30],2080:[16,31,32,31,32,31,30,30,30,29,29,30,30],2081:[17,31,31,32,32,31,30,30,30,29,30,30,30],2082:[17,31,32,31,32,31,30,30,30,29,30,30,30],2083:[17,31,31,32,31,31,30,30,30,29,30,30,30],2084:[17,31,31,32,31,31,30,30,30,29,30,30,30],2085:[17,31,32,31,32,31,31,30,30,29,30,30,30],2086:[17,31,32,31,32,31,30,30,30,29,30,30,30],2087:[16,31,31,32,31,31,31,30,30,29,30,30,30],2088:[16,30,31,32,32,30,31,30,30,29,30,30,30],2089:[17,31,32,31,32,31,30,30,30,29,30,30,30],2090:[17,31,32,31,32,31,30,30,30,29,30,30,30],2091:[16,31,31,32,31,31,31,30,30,29,30,30,30],2092:[16,31,31,32,32,31,30,30,30,29,30,30,30],2093:[17,31,32,31,32,31,30,30,30,29,30,30,30],2094:[17,31,31,32,31,31,30,30,30,29,30,30,30],2095:[17,31,31,32,31,31,31,30,29,30,30,30,30],2096:[17,30,31,32,32,31,30,30,29,30,29,30,30],2097:[17,31,32,31,32,31,30,30,30,29,30,30,30],2098:[17,31,31,32,31,31,31,29,30,29,30,30,31],2099:[17,31,31,32,31,31,31,30,29,29,30,30,30],2100:[17,31,32,31,32,30,31,30,29,30,29,30,30]}}),n.calendars.nepali=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],544:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:\\\"Persian\\\",jdEpoch:1948320.5,daysPerMonth:[31,31,31,31,31,31,30,30,30,30,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Persian\\\",epochs:[\\\"BP\\\",\\\"AP\\\"],monthNames:[\\\"Farvardin\\\",\\\"Ordibehesht\\\",\\\"Khordad\\\",\\\"Tir\\\",\\\"Mordad\\\",\\\"Shahrivar\\\",\\\"Mehr\\\",\\\"Aban\\\",\\\"Azar\\\",\\\"Day\\\",\\\"Bahman\\\",\\\"Esfand\\\"],monthNamesShort:[\\\"Far\\\",\\\"Ord\\\",\\\"Kho\\\",\\\"Tir\\\",\\\"Mor\\\",\\\"Sha\\\",\\\"Meh\\\",\\\"Aba\\\",\\\"Aza\\\",\\\"Day\\\",\\\"Bah\\\",\\\"Esf\\\"],dayNames:[\\\"Yekshambe\\\",\\\"Doshambe\\\",\\\"Seshambe\\\",\\\"Ch\\\\xe6harshambe\\\",\\\"Panjshambe\\\",\\\"Jom'e\\\",\\\"Shambe\\\"],dayNamesShort:[\\\"Yek\\\",\\\"Do\\\",\\\"Se\\\",\\\"Ch\\\\xe6\\\",\\\"Panj\\\",\\\"Jom\\\",\\\"Sha\\\"],dayNamesMin:[\\\"Ye\\\",\\\"Do\\\",\\\"Se\\\",\\\"Ch\\\",\\\"Pa\\\",\\\"Jo\\\",\\\"Sh\\\"],digits:null,dateFormat:\\\"yyyy/mm/dd\\\",firstDay:6,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 682*((e.year()-(e.year()>0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t-(t>=0?474:473),s=474+o(a,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*s-110)/2816)+365*(s-1)+1029983*Math.floor(a/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=o(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),s=o(n,366);i=Math.floor((2134*a+2816*s+2815)/1028522)+a+1}var l=i+2820*r+474;l=l<=0?l-1:l;var c=t-this.toJD(l,1,1)+1,u=c<=186?Math.ceil(c/31):Math.ceil((c-6)/30),f=t-this.toJD(l,u,1)+1;return this.newDate(l,u,f)}}),n.calendars.persian=a,n.calendars.jalali=a},{\\\"../main\\\":548,\\\"object-assign\\\":437}],545:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\"),a=n.instance();function o(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}o.prototype=new n.baseCalendar,i(o.prototype,{name:\\\"Taiwan\\\",jdEpoch:2419402.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},{\\\"../main\\\":548,\\\"object-assign\\\":437}],546:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\"),a=n.instance();function o(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}o.prototype=new n.baseCalendar,i(o.prototype,{name:\\\"Thai\\\",jdEpoch:1523098.5,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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),n.calendars.thai=o},{\\\"../main\\\":548,\\\"object-assign\\\":437}],547:[function(t,e,r){var n=t(\\\"../main\\\"),i=t(\\\"object-assign\\\");function a(t){this.local=this.regionalOptions[t||\\\"\\\"]||this.regionalOptions[\\\"\\\"]}a.prototype=new n.baseCalendar,i(a.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(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,i=0,a=0;a<o.length;a++){if(o[a]>r)return o[i]-o[i-1];i++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate),a=12*(i.year()-1)+i.month()-15292;return i.day()+o[a-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;n<o.length&&!(o[n]>e);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),s=a+1,l=i-12*a,c=e-o[r-1]+1;return this.newDate(s,l,c)},isValid:function(t,e,r){var i=n.baseCalendar.prototype.isValid.apply(this,arguments);return i&&(i=(t=null!=t.year?t.year:t)>=1276&&t<=1500),i},_validate:function(t,e,r,i){var a=n.baseCalendar.prototype._validate.apply(this,arguments);if(a.year<1276||a.year>1500)throw i.replace(/\\\\{0\\\\}/,this.local.name);return a}}),n.calendars.ummalqura=a;var o=[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\\\":548,\\\"object-assign\\\":437}],548:[function(t,e,r){var n=t(\\\"object-assign\\\");function i(){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 a(t,e,r,n){if(this._calendar=t,this._year=e,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate).replace(/\\\\{0\\\\}/,this._calendar.local.name)}function o(t,e){return\\\"000000\\\".substring(0,e-(t=\\\"\\\"+t).length)+t}function s(){this.shortYearCutoff=\\\"+10\\\"}function l(t){this.local=this.regionalOptions[t]||this.regionalOptions[\\\"\\\"]}n(i.prototype,{instance:function(t,e){t=(t||\\\"gregorian\\\").toLowerCase(),e=e||\\\"\\\";var r=this._localCals[t+\\\"-\\\"+e];if(!r&&this.calendars[t]&&(r=new this.calendars[t](e),this._localCals[t+\\\"-\\\"+e]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[\\\"\\\"].invalidCalendar).replace(/\\\\{0\\\\}/,t);return r},newDate:function(t,e,r,n,i){return(n=(null!=t&&t.year?t.calendar():\\\"string\\\"==typeof n?this.instance(n,i):n)||this.instance()).newDate(t,e,r)},substituteDigits:function(t){return function(e){return(e+\\\"\\\").replace(/[0-9]/g,function(e){return t[e]})}},substituteChineseDigits:function(t,e){return function(r){for(var n=\\\"\\\",i=0;r>0;){var a=r%10;n=(0===a?\\\"\\\":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),n(a.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,\\\"y\\\")},month:function(t){return 0===arguments.length?this._month:this.set(t,\\\"m\\\")},day:function(t){return 0===arguments.length?this._day:this.set(t,\\\"d\\\")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate).replace(/\\\\{0\\\\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,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(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(c.local.differentCalendars||c.regionalOptions[\\\"\\\"].differentCalendars).replace(/\\\\{0\\\\}/,this._calendar.local.name).replace(/\\\\{1\\\\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?\\\"-\\\":\\\"\\\")+o(Math.abs(this.year()),4)+\\\"-\\\"+o(this.month(),2)+\\\"-\\\"+o(this.day(),2)}}),n(s.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate),r=t.day(),e=t.month(),t=t.year()),new a(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear);return(e.year()<0?\\\"-\\\":\\\"\\\")+o(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,c.local.invalidMonth||c.regionalOptions[\\\"\\\"].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,c.local.invalidMonth||c.regionalOptions[\\\"\\\"].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,\\\"d\\\"===r||\\\"w\\\"===r){var n=t.toJD()+e*(\\\"w\\\"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+(\\\"y\\\"===r?e:0),o=t.monthOfYear()+(\\\"m\\\"===r?e:0);i=t.day();\\\"y\\\"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):\\\"m\\\"===r&&(!function(t){for(;o<t.minMonth;)a--,o+=t.monthsInYear(a);for(var e=t.monthsInYear(a);o>e-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||\\\"y\\\"!==n&&\\\"m\\\"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,\\\"y\\\"],m:[1,this.monthsInYear(-1),\\\"m\\\"],w:[this.daysInWeek(),this.daysInYear(-1),\\\"d\\\"],d:[1,this.daysInYear(-1),\\\"d\\\"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);var n=\\\"y\\\"===r?e:t.year(),i=\\\"m\\\"===r?e:t.month(),a=\\\"d\\\"===r?e:t.day();return\\\"y\\\"!==r&&\\\"m\\\"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth<this.monthsInYear(i)&&r>=this.minDay&&r-this.minDay<this.daysInMonth(i)}return this._validateLevel--,n},toJSDate:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);return c.instance().fromJD(this.toJD(n)).toJSDate()},fromJSDate:function(t){return this.fromJD(c.instance().fromJSDate(t).toJD())},_validate:function(t,e,r,n){if(t.year){if(0===this._validateLevel&&this.name!==t.calendar().name)throw(c.local.differentCalendars||c.regionalOptions[\\\"\\\"].differentCalendars).replace(/\\\\{0\\\\}/,this.local.name).replace(/\\\\{1\\\\}/,t.calendar().local.name);return t}try{if(this._validateLevel++,1===this._validateLevel&&!this.isValid(t,e,r))throw n.replace(/\\\\{0\\\\}/,this.local.name);var i=this.newDate(t,e,r);return this._validateLevel--,i}catch(t){throw this._validateLevel--,t}}}),l.prototype=new s,n(l.prototype,{name:\\\"Gregorian\\\",jdEpoch:1721425.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{\\\"\\\":{name:\\\"Gregorian\\\",epochs:[\\\"BCE\\\",\\\"CE\\\"],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(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[\\\"\\\"].invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==0&&(t%100!=0||t%400==0)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),\\\"d\\\"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,c.local.invalidMonth||c.regionalOptions[\\\"\\\"].invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate);t=n.year(),e=n.month(),r=n.day(),t<0&&t++,e<3&&(e+=12,t--);var i=Math.floor(t/100),a=2-i+Math.floor(i/4);return Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r+a-1524.5},fromJD:function(t){var e=Math.floor(t+.5),r=Math.floor((e-1867216.25)/36524.25),n=(r=e+1+r-Math.floor(r/4))+1524,i=Math.floor((n-122.1)/365.25),a=Math.floor(365.25*i),o=Math.floor((n-a)/30.6001),s=n-a-Math.floor(30.6001*o),l=o-(o>13.5?13:1),c=i-(l>2.5?4716:4715);return c<=0&&c--,this.newDate(c,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[\\\"\\\"].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var c=e.exports=new i;c.cdate=a,c.baseCalendar=s,c.calendars.gregorian=l},{\\\"object-assign\\\":437}],549:[function(t,e,r){var n=t(\\\"object-assign\\\"),i=t(\\\"./main\\\");n(i.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\\\"}),i.local=i.regionalOptions[\\\"\\\"],n(i.cdate.prototype,{formatDate:function(t,e){return\\\"string\\\"!=typeof t&&(e=t,t=\\\"\\\"),this._calendar.formatDate(t||\\\"\\\",this,e)}}),n(i.baseCalendar.prototype,{UNIX_EPOCH:i.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:i.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(t,e,r){if(\\\"string\\\"!=typeof t&&(r=e,e=t,t=\\\"\\\"),!e)return\\\"\\\";if(e.calendar()!==this)throw i.local.invalidFormat||i.regionalOptions[\\\"\\\"].invalidFormat;t=t||this.local.dateFormat;for(var n,a,o,s,l=(r=r||{}).dayNamesShort||this.local.dayNamesShort,c=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,f=r.monthNamesShort||this.local.monthNamesShort,h=r.monthNames||this.local.monthNames,p=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;w+n<t.length&&t.charAt(w+n)===e;)n++;return w+=n-1,Math.floor(n/(r||1))>1}),d=function(t,e,r,n){var i=\\\"\\\"+e;if(p(t,n))for(;i.length<r;)i=\\\"0\\\"+i;return i},g=this,v=function(t){return\\\"function\\\"==typeof u?u.call(g,t,p(\\\"m\\\")):x(d(\\\"m\\\",t.month(),2))},m=function(t,e){return e?\\\"function\\\"==typeof h?h.call(g,t):h[t.month()-g.minMonth]:\\\"function\\\"==typeof f?f.call(g,t):f[t.month()-g.minMonth]},y=this.local.digits,x=function(t){return r.localNumbers&&y?y(t):t},b=\\\"\\\",_=!1,w=0;w<t.length;w++)if(_)\\\"'\\\"!==t.charAt(w)||p(\\\"'\\\")?b+=t.charAt(w):_=!1;else switch(t.charAt(w)){case\\\"d\\\":b+=x(d(\\\"d\\\",e.day(),2));break;case\\\"D\\\":b+=(n=\\\"D\\\",a=e.dayOfWeek(),o=l,s=c,p(n)?s[a]:o[a]);break;case\\\"o\\\":b+=d(\\\"o\\\",e.dayOfYear(),3);break;case\\\"w\\\":b+=d(\\\"w\\\",e.weekOfYear(),2);break;case\\\"m\\\":b+=v(e);break;case\\\"M\\\":b+=m(e,p(\\\"M\\\"));break;case\\\"y\\\":b+=p(\\\"y\\\",2)?e.year():(e.year()%100<10?\\\"0\\\":\\\"\\\")+e.year()%100;break;case\\\"Y\\\":p(\\\"Y\\\",2),b+=e.formatYear();break;case\\\"J\\\":b+=e.toJD();break;case\\\"@\\\":b+=(e.toJD()-this.UNIX_EPOCH)*this.SECS_PER_DAY;break;case\\\"!\\\":b+=(e.toJD()-this.TICKS_EPOCH)*this.TICKS_PER_DAY;break;case\\\"'\\\":p(\\\"'\\\")?b+=\\\"'\\\":_=!0;break;default:b+=t.charAt(w)}return b},parseDate:function(t,e,r){if(null==e)throw i.local.invalidArguments||i.regionalOptions[\\\"\\\"].invalidArguments;if(\\\"\\\"===(e=\\\"object\\\"==typeof e?e.toString():e+\\\"\\\"))return null;t=t||this.local.dateFormat;var n=(r=r||{}).shortYearCutoff||this.shortYearCutoff;n=\\\"string\\\"!=typeof n?n:this.today().year()%100+parseInt(n,10);for(var a=r.dayNamesShort||this.local.dayNamesShort,o=r.dayNames||this.local.dayNames,s=r.parseMonth||this.local.parseMonth,l=r.monthNumbers||this.local.monthNumbers,c=r.monthNamesShort||this.local.monthNamesShort,u=r.monthNames||this.local.monthNames,f=-1,h=-1,p=-1,d=-1,g=-1,v=!1,m=!1,y=function(e,r){for(var n=1;T+n<t.length&&t.charAt(T+n)===e;)n++;return T+=n-1,Math.floor(n/(r||1))>1},x=function(t,r){var n=y(t,r),a=[2,3,n?4:2,n?4:2,10,11,20][\\\"oyYJ@!\\\".indexOf(t)+1],o=new RegExp(\\\"^-?\\\\\\\\d{1,\\\"+a+\\\"}\\\"),s=e.substring(A).match(o);if(!s)throw(i.local.missingNumberAt||i.regionalOptions[\\\"\\\"].missingNumberAt).replace(/\\\\{0\\\\}/,A);return A+=s[0].length,parseInt(s[0],10)},b=this,_=function(){if(\\\"function\\\"==typeof l){y(\\\"m\\\");var t=l.call(b,e.substring(A));return A+=t.length,t}return x(\\\"m\\\")},w=function(t,r,n,a){for(var o=y(t,a)?n:r,s=0;s<o.length;s++)if(e.substr(A,o[s].length).toLowerCase()===o[s].toLowerCase())return A+=o[s].length,s+b.minMonth;throw(i.local.unknownNameAt||i.regionalOptions[\\\"\\\"].unknownNameAt).replace(/\\\\{0\\\\}/,A)},k=function(){if(\\\"function\\\"==typeof u){var t=y(\\\"M\\\")?u.call(b,e.substring(A)):c.call(b,e.substring(A));return A+=t.length,t}return w(\\\"M\\\",c,u)},M=function(){if(e.charAt(A)!==t.charAt(T))throw(i.local.unexpectedLiteralAt||i.regionalOptions[\\\"\\\"].unexpectedLiteralAt).replace(/\\\\{0\\\\}/,A);A++},A=0,T=0;T<t.length;T++)if(m)\\\"'\\\"!==t.charAt(T)||y(\\\"'\\\")?M():m=!1;else switch(t.charAt(T)){case\\\"d\\\":d=x(\\\"d\\\");break;case\\\"D\\\":w(\\\"D\\\",a,o);break;case\\\"o\\\":g=x(\\\"o\\\");break;case\\\"w\\\":x(\\\"w\\\");break;case\\\"m\\\":p=_();break;case\\\"M\\\":p=k();break;case\\\"y\\\":var S=T;v=!y(\\\"y\\\",2),T=S,h=x(\\\"y\\\",2);break;case\\\"Y\\\":h=x(\\\"Y\\\",2);break;case\\\"J\\\":f=x(\\\"J\\\")+.5,\\\".\\\"===e.charAt(A)&&(A++,x(\\\"J\\\"));break;case\\\"@\\\":f=x(\\\"@\\\")/this.SECS_PER_DAY+this.UNIX_EPOCH;break;case\\\"!\\\":f=x(\\\"!\\\")/this.TICKS_PER_DAY+this.TICKS_EPOCH;break;case\\\"*\\\":A=e.length;break;case\\\"'\\\":y(\\\"'\\\")?M():m=!0;break;default:M()}if(A<e.length)throw i.local.unexpectedText||i.regionalOptions[\\\"\\\"].unexpectedText;if(-1===h?h=this.today().year():h<100&&v&&(h+=-1===n?1900:this.today().year()-this.today().year()%100-(h<=n?0:100)),\\\"string\\\"==typeof p&&(p=s.call(this,h,p)),g>-1){p=1,d=g;for(var E=this.daysInMonth(h,p);d>E;E=this.daysInMonth(h,p))p++,d-=E}return f>-1?this.fromJD(f):this.newDate(h,p,d)},determineDate:function(t,e,r,n,i){r&&\\\"object\\\"!=typeof r&&(i=n,n=r,r=null),\\\"string\\\"!=typeof n&&(i=n,n=\\\"\\\");var a=this;return e=e?e.newDate():null,t=null==t?e:\\\"string\\\"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\\\\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||\\\"d\\\"),s=o.exec(t);return e}(t):\\\"number\\\"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,\\\"d\\\"):a.newDate(t)}})},{\\\"./main\\\":548,\\\"object-assign\\\":437}],550:[function(t,e,r){e.exports=t(\\\"cwise-compiler\\\")({args:[\\\"array\\\",{offset:[1],array:0},\\\"scalar\\\",\\\"scalar\\\",\\\"index\\\"],pre:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},post:{body:\\\"{}\\\",args:[],thisVars:[],localVars:[]},body:{body:\\\"{\\\\n        var _inline_1_da = _inline_1_arg0_ - _inline_1_arg3_\\\\n        var _inline_1_db = _inline_1_arg1_ - _inline_1_arg3_\\\\n        if((_inline_1_da >= 0) !== (_inline_1_db >= 0)) {\\\\n          _inline_1_arg2_.push(_inline_1_arg4_[0] + 0.5 + 0.5 * (_inline_1_da + _inline_1_db) / (_inline_1_da - _inline_1_db))\\\\n        }\\\\n      }\\\",args:[{name:\\\"_inline_1_arg0_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg1_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg2_\\\",lvalue:!1,rvalue:!0,count:1},{name:\\\"_inline_1_arg3_\\\",lvalue:!1,rvalue:!0,count:2},{name:\\\"_inline_1_arg4_\\\",lvalue:!1,rvalue:!0,count:1}],thisVars:[],localVars:[\\\"_inline_1_da\\\",\\\"_inline_1_db\\\"]},funcName:\\\"zeroCrossings\\\"})},{\\\"cwise-compiler\\\":134}],551:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t(\\\"./lib/zc-core\\\")},{\\\"./lib/zc-core\\\":550}],552:[function(t,e,r){\\\"use strict\\\";e.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}]},{}],553:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./arrow_paths\\\"),i=t(\\\"../../plots/font_attributes\\\"),a=t(\\\"../../plots/cartesian/constants\\\"),o=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports=o(\\\"annotation\\\",{visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc+arraydraw\\\"},text:{valType:\\\"string\\\",editType:\\\"calc+arraydraw\\\"},textangle:{valType:\\\"angle\\\",dflt:0,editType:\\\"calc+arraydraw\\\"},font:i({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:n.length,dflt:1,editType:\\\"arraydraw\\\"},startarrowhead:{valType:\\\"integer\\\",min:0,max:n.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\\\",a.idRegex.x.toString()],editType:\\\"calc\\\"},ayref:{valType:\\\"enumerated\\\",dflt:\\\"pixel\\\",values:[\\\"pixel\\\",a.idRegex.y.toString()],editType:\\\"calc\\\"},xref:{valType:\\\"enumerated\\\",values:[\\\"paper\\\",a.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\\\",a.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:i({editType:\\\"arraydraw\\\"}),editType:\\\"arraydraw\\\"},captureevents:{valType:\\\"boolean\\\",editType:\\\"arraydraw\\\"},editType:\\\"calc\\\",_deprecated:{ref:{valType:\\\"string\\\",editType:\\\"calc\\\"}}})},{\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/constants\\\":750,\\\"../../plots/font_attributes\\\":771,\\\"./arrow_paths\\\":552}],554:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"./draw\\\").draw;function o(t){var e=t._fullLayout;n.filterVisible(e.annotations).forEach(function(e){var r=i.getFromId(t,e.xref),n=i.getFromId(t,e.yref);e._extremes={},r&&s(e,r),n&&s(e,n)})}function s(t,e){var r,n=e._id,a=n.charAt(0),o=t[a],s=t[\\\"a\\\"+a],l=t[a+\\\"ref\\\"],c=t[\\\"a\\\"+a+\\\"ref\\\"],u=t[\\\"_\\\"+a+\\\"padplus\\\"],f=t[\\\"_\\\"+a+\\\"padminus\\\"],h={x:1,y:-1}[a]*t[a+\\\"shift\\\"],p=3*t.arrowsize*t.arrowwidth||0,d=p+h,g=p-h,v=3*t.startarrowsize*t.arrowwidth||0,m=v+h,y=v-h;if(c===l){var x=i.findExtremes(e,[e.r2c(o)],{ppadplus:d,ppadminus:g}),b=i.findExtremes(e,[e.r2c(s)],{ppadplus:Math.max(u,m),ppadminus:Math.max(f,y)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else m=s?m+s:m,y=s?y-s:y,r=i.findExtremes(e,[e.r2c(o)],{ppadplus:Math.max(u,d,m),ppadminus:Math.max(f,g,y)});t._extremes[n]=r}e.exports=function(t){var e=t._fullLayout;if(n.filterVisible(e.annotations).length&&t._fullData.length)return n.syncOrAsync([a,o],t)}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"./draw\\\":559}],555:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plot_api/plot_template\\\").arrayEditor;function o(t,e){var r,n,i,a,o,l,c,u=t._fullLayout.annotations,f=[],h=[],p=[],d=(e||[]).length;for(r=0;r<u.length;r++)if(a=(i=u[r]).clicktoshow){for(n=0;n<d;n++)if(l=(o=e[n]).xaxis,c=o.yaxis,l._id===i.xref&&c._id===i.yref&&l.d2r(o.x)===s(i._xclick,l)&&c.d2r(o.y)===s(i._yclick,c)){(i.visible?\\\"onout\\\"===a?h:p:f).push(r);break}n===d&&i.visible&&\\\"onout\\\"===a&&h.push(r)}return{on:f,off:h,explicitOff:p}}function s(t,e){return\\\"log\\\"===e.type?e.l2r(t):e.d2r(t)}e.exports={hasClickToShow:function(t,e){var r=o(t,e);return r.on.length>0||r.explicitOff.length>0},onClick:function(t,e){var r,s,l=o(t,e),c=l.on,u=l.off.concat(l.explicitOff),f={},h=t._fullLayout.annotations;if(!c.length&&!u.length)return;for(r=0;r<c.length;r++)(s=a(t.layout,\\\"annotations\\\",h[c[r]])).modifyItem(\\\"visible\\\",!0),n.extendFlat(f,s.getUpdateObj());for(r=0;r<u.length;r++)(s=a(t.layout,\\\"annotations\\\",h[u[r]])).modifyItem(\\\"visible\\\",!1),n.extendFlat(f,s.getUpdateObj());return i.call(\\\"update\\\",t,{},f)}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../registry\\\":827}],556:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../color\\\");e.exports=function(t,e,r,a){a(\\\"opacity\\\");var o=a(\\\"bgcolor\\\"),s=a(\\\"bordercolor\\\"),l=i.opacity(s);a(\\\"borderpad\\\");var c=a(\\\"borderwidth\\\"),u=a(\\\"showarrow\\\");if(a(\\\"text\\\",u?\\\" \\\":r._dfltTitle.annotation),a(\\\"textangle\\\"),n.coerceFont(a,\\\"font\\\",r.font),a(\\\"width\\\"),a(\\\"align\\\"),a(\\\"height\\\")&&a(\\\"valign\\\"),u){var f,h,p=a(\\\"arrowside\\\");-1!==p.indexOf(\\\"end\\\")&&(f=a(\\\"arrowhead\\\"),h=a(\\\"arrowsize\\\")),-1!==p.indexOf(\\\"start\\\")&&(a(\\\"startarrowhead\\\",f),a(\\\"startarrowsize\\\",h)),a(\\\"arrowcolor\\\",l?e.bordercolor:i.defaultLine),a(\\\"arrowwidth\\\",2*(l&&c||1)),a(\\\"standoff\\\"),a(\\\"startstandoff\\\")}var d=a(\\\"hovertext\\\"),g=r.hoverlabel||{};if(d){var v=a(\\\"hoverlabel.bgcolor\\\",g.bgcolor||(i.opacity(o)?i.rgb(o):i.defaultLine)),m=a(\\\"hoverlabel.bordercolor\\\",g.bordercolor||i.contrast(v));n.coerceFont(a,\\\"hoverlabel.font\\\",{family:g.font.family,size:g.font.size,color:g.font.color||m})}a(\\\"captureevents\\\",!!d)}},{\\\"../../lib\\\":696,\\\"../color\\\":570}],557:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib/to_log_range\\\");e.exports=function(t,e,r,a){e=e||{};var o=\\\"log\\\"===r&&\\\"linear\\\"===e.type,s=\\\"linear\\\"===r&&\\\"log\\\"===e.type;if(o||s)for(var l,c,u=t._fullLayout.annotations,f=e._id.charAt(0),h=0;h<u.length;h++)l=u[h],c=\\\"annotations[\\\"+h+\\\"].\\\",l[f+\\\"ref\\\"]===e._id&&p(f),l[\\\"a\\\"+f+\\\"ref\\\"]===e._id&&p(\\\"a\\\"+f);function p(t){var r=l[t],s=null;s=o?i(r,e.range):Math.pow(10,r),n(s)||(s=null),a(c+t,s)}}},{\\\"../../lib/to_log_range\\\":722,\\\"fast-isnumeric\\\":214}],558:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../plots/array_container_defaults\\\"),o=t(\\\"./common_defaults\\\"),s=t(\\\"./attributes\\\");function l(t,e,r){function a(r,i){return n.coerce(t,e,s,r,i)}var l=a(\\\"visible\\\"),c=a(\\\"clicktoshow\\\");if(l||c){o(t,e,r,a);for(var u=e.showarrow,f=[\\\"x\\\",\\\"y\\\"],h=[-10,-30],p={_fullLayout:r},d=0;d<2;d++){var g=f[d],v=i.coerceRef(t,e,p,g,\\\"\\\",\\\"paper\\\");if(\\\"paper\\\"!==v)i.getFromId(p,v)._annIndices.push(e._index);if(i.coercePosition(e,p,a,v,g,.5),u){var m=\\\"a\\\"+g,y=i.coerceRef(t,e,p,m,\\\"pixel\\\");\\\"pixel\\\"!==y&&y!==v&&(y=e[m]=\\\"pixel\\\");var x=\\\"pixel\\\"===y?h[d]:.4;i.coercePosition(e,p,a,y,m,x)}a(g+\\\"anchor\\\"),a(g+\\\"shift\\\")}if(n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\"]),u&&n.noneOrAll(t,e,[\\\"ax\\\",\\\"ay\\\"]),c){var b=a(\\\"xclick\\\"),_=a(\\\"yclick\\\");e._xclick=void 0===b?e.x:i.cleanPosition(b,p,e.xref),e._yclick=void 0===_?e.y:i.cleanPosition(_,p,e.yref)}}}e.exports=function(t,e){a(t,e,{name:\\\"annotations\\\",handleItemDefaults:l})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/cartesian/axes\\\":744,\\\"./attributes\\\":553,\\\"./common_defaults\\\":556}],559:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../plots/cartesian/axes\\\"),l=t(\\\"../color\\\"),c=t(\\\"../drawing\\\"),u=t(\\\"../fx\\\"),f=t(\\\"../../lib/svg_text_utils\\\"),h=t(\\\"../../lib/setcursor\\\"),p=t(\\\"../dragelement\\\"),d=t(\\\"../../plot_api/plot_template\\\").arrayEditor,g=t(\\\"./draw_arrow_head\\\");function v(t,e){var r=t._fullLayout.annotations[e]||{};m(t,r,e,!1,s.getFromId(t,r.xref),s.getFromId(t,r.yref))}function m(t,e,r,a,s,v){var m,y,x=t._fullLayout,b=t._fullLayout._size,_=t._context.edits;a?(m=\\\"annotation-\\\"+a,y=a+\\\".annotations\\\"):(m=\\\"annotation\\\",y=\\\"annotations\\\");var w=d(t.layout,y,e),k=w.modifyBase,M=w.modifyItem,A=w.getUpdateObj;x._infolayer.selectAll(\\\".\\\"+m+'[data-index=\\\"'+r+'\\\"]').remove();var T=\\\"clip\\\"+x._uid+\\\"_ann\\\"+r;if(e._input&&!1!==e.visible){var S={x:{},y:{}},E=+e.textangle||0,C=x._infolayer.append(\\\"g\\\").classed(m,!0).attr(\\\"data-index\\\",String(r)).style(\\\"opacity\\\",e.opacity),L=C.append(\\\"g\\\").classed(\\\"annotation-text-g\\\",!0),z=_[e.showarrow?\\\"annotationTail\\\":\\\"annotationPosition\\\"],O=e.captureevents||_.annotationText||z,I=L.append(\\\"g\\\").style(\\\"pointer-events\\\",O?\\\"all\\\":null).call(h,\\\"pointer\\\").on(\\\"click\\\",function(){t._dragging=!1;var i={index:r,annotation:e._input,fullAnnotation:e,event:n.event};a&&(i.subplotId=a),t.emit(\\\"plotly_clickannotation\\\",i)});e.hovertext&&I.on(\\\"mouseover\\\",function(){var r=e.hoverlabel,n=r.font,i=this.getBoundingClientRect(),a=t.getBoundingClientRect();u.loneHover({x0:i.left-a.left,x1:i.right-a.left,y:(i.top+i.bottom)/2-a.top,text:e.hovertext,color:r.bgcolor,borderColor:r.bordercolor,fontFamily:n.family,fontSize:n.size,fontColor:n.color},{container:x._hoverlayer.node(),outerContainer:x._paper.node(),gd:t})}).on(\\\"mouseout\\\",function(){u.loneUnhover(x._hoverlayer.node())});var P=e.borderwidth,D=e.borderpad,R=P+D,B=I.append(\\\"rect\\\").attr(\\\"class\\\",\\\"bg\\\").style(\\\"stroke-width\\\",P+\\\"px\\\").call(l.stroke,e.bordercolor).call(l.fill,e.bgcolor),F=e.width||e.height,N=x._topclips.selectAll(\\\"#\\\"+T).data(F?[0]:[]);N.enter().append(\\\"clipPath\\\").classed(\\\"annclip\\\",!0).attr(\\\"id\\\",T).append(\\\"rect\\\"),N.exit().remove();var j=e.font,V=I.append(\\\"text\\\").classed(\\\"annotation-text\\\",!0).text(e.text);_.annotationText?V.call(f.makeEditable,{delegate:I,gd:t}).call(U).on(\\\"edit\\\",function(r){e.text=r,this.call(U),M(\\\"text\\\",r),s&&s.autorange&&k(s._name+\\\".autorange\\\",!0),v&&v.autorange&&k(v._name+\\\".autorange\\\",!0),i.call(\\\"relayout\\\",t,A())}):V.call(U)}else n.selectAll(\\\"#\\\"+T).remove();function U(r){return r.call(c.font,j).attr({\\\"text-anchor\\\":{left:\\\"start\\\",right:\\\"end\\\"}[e.align]||\\\"middle\\\"}),f.convertToTspans(r,t,q),r}function q(){var r=V.selectAll(\\\"a\\\");1===r.size()&&r.text()===V.text()&&I.insert(\\\"a\\\",\\\":first-child\\\").attr({\\\"xlink:xlink:href\\\":r.attr(\\\"xlink:href\\\"),\\\"xlink:xlink:show\\\":r.attr(\\\"xlink:show\\\")}).style({cursor:\\\"pointer\\\"}).node().appendChild(B.node());var n=I.select(\\\".annotation-text-math-group\\\"),u=!n.empty(),d=c.bBox((u?n:V).node()),m=d.width,y=d.height,w=e.width||m,O=e.height||y,D=Math.round(w+2*R),j=Math.round(O+2*R);function U(t,e){return\\\"auto\\\"===e&&(e=t<1/3?\\\"left\\\":t>2/3?\\\"right\\\":\\\"center\\\"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}for(var q=!1,H=[\\\"x\\\",\\\"y\\\"],G=0;G<H.length;G++){var W,Y,X,Z,$,J=H[G],K=e[J+\\\"ref\\\"]||J,Q=e[\\\"a\\\"+J+\\\"ref\\\"],tt={x:s,y:v}[J],et=(E+(\\\"x\\\"===J?0:-90))*Math.PI/180,rt=D*Math.cos(et),nt=j*Math.sin(et),it=Math.abs(rt)+Math.abs(nt),at=e[J+\\\"anchor\\\"],ot=e[J+\\\"shift\\\"]*(\\\"x\\\"===J?1:-1),st=S[J];if(tt){var lt=tt.r2fraction(e[J]);(lt<0||lt>1)&&(Q===K?((lt=tt.r2fraction(e[\\\"a\\\"+J]))<0||lt>1)&&(q=!0):q=!0),W=tt._offset+tt.r2p(e[J]),Z=.5}else\\\"x\\\"===J?(X=e[J],W=b.l+b.w*X):(X=1-e[J],W=b.t+b.h*X),Z=e.showarrow?.5:X;if(e.showarrow){st.head=W;var ct=e[\\\"a\\\"+J];$=rt*U(.5,e.xanchor)-nt*U(.5,e.yanchor),Q===K?(st.tail=tt._offset+tt.r2p(ct),Y=$):(st.tail=W+ct,Y=$+ct),st.text=st.tail+$;var ut=x[\\\"x\\\"===J?\\\"width\\\":\\\"height\\\"];if(\\\"paper\\\"===K&&(st.head=o.constrain(st.head,1,ut-1)),\\\"pixel\\\"===Q){var ft=-Math.max(st.tail-3,st.text),ht=Math.min(st.tail+3,st.text)-ut;ft>0?(st.tail+=ft,st.text+=ft):ht>0&&(st.tail-=ht,st.text-=ht)}st.tail+=ot,st.head+=ot}else Y=$=it*U(Z,at),st.text=W+$;st.text+=ot,$+=ot,Y+=ot,e[\\\"_\\\"+J+\\\"padplus\\\"]=it/2+Y,e[\\\"_\\\"+J+\\\"padminus\\\"]=it/2-Y,e[\\\"_\\\"+J+\\\"size\\\"]=it,e[\\\"_\\\"+J+\\\"shift\\\"]=$}if(t._dragging||!q){var pt=0,dt=0;if(\\\"left\\\"!==e.align&&(pt=(w-m)*(\\\"center\\\"===e.align?.5:1)),\\\"top\\\"!==e.valign&&(dt=(O-y)*(\\\"middle\\\"===e.valign?.5:1)),u)n.select(\\\"svg\\\").attr({x:R+pt-1,y:R+dt}).call(c.setClipUrl,F?T:null);else{var gt=R+dt-d.top,vt=R+pt-d.left;V.call(f.positionText,vt,gt).call(c.setClipUrl,F?T:null)}N.select(\\\"rect\\\").call(c.setRect,R,R,w,O),B.call(c.setRect,P/2,P/2,D-P,j-P),I.call(c.setTranslate,Math.round(S.x.text-D/2),Math.round(S.y.text-j/2)),L.attr({transform:\\\"rotate(\\\"+E+\\\",\\\"+S.x.text+\\\",\\\"+S.y.text+\\\")\\\"});var mt,yt=function(r,n){C.selectAll(\\\".annotation-arrow-g\\\").remove();var u=S.x.head,f=S.y.head,h=S.x.tail+r,d=S.y.tail+n,m=S.x.text+r,y=S.y.text+n,x=o.rotationXYMatrix(E,m,y),w=o.apply2DTransform(x),T=o.apply2DTransform2(x),z=+B.attr(\\\"width\\\"),O=+B.attr(\\\"height\\\"),P=m-.5*z,D=P+z,R=y-.5*O,F=R+O,N=[[P,R,P,F],[P,F,D,F],[D,F,D,R],[D,R,P,R]].map(T);if(!N.reduce(function(t,e){return t^!!o.segmentsIntersect(u,f,u+1e6,f+1e6,e[0],e[1],e[2],e[3])},!1)){N.forEach(function(t){var e=o.segmentsIntersect(h,d,u,f,t[0],t[1],t[2],t[3]);e&&(h=e.x,d=e.y)});var j=e.arrowwidth,V=e.arrowcolor,U=e.arrowside,q=C.append(\\\"g\\\").style({opacity:l.opacity(V)}).classed(\\\"annotation-arrow-g\\\",!0),H=q.append(\\\"path\\\").attr(\\\"d\\\",\\\"M\\\"+h+\\\",\\\"+d+\\\"L\\\"+u+\\\",\\\"+f).style(\\\"stroke-width\\\",j+\\\"px\\\").call(l.stroke,l.rgb(V));if(g(H,U,e),_.annotationPosition&&H.node().parentNode&&!a){var G=u,W=f;if(e.standoff){var Y=Math.sqrt(Math.pow(u-h,2)+Math.pow(f-d,2));G+=e.standoff*(h-u)/Y,W+=e.standoff*(d-f)/Y}var X,Z,$=q.append(\\\"path\\\").classed(\\\"annotation-arrow\\\",!0).classed(\\\"anndrag\\\",!0).classed(\\\"cursor-move\\\",!0).attr({d:\\\"M3,3H-3V-3H3ZM0,0L\\\"+(h-G)+\\\",\\\"+(d-W),transform:\\\"translate(\\\"+G+\\\",\\\"+W+\\\")\\\"}).style(\\\"stroke-width\\\",j+6+\\\"px\\\").call(l.stroke,\\\"rgba(0,0,0,0)\\\").call(l.fill,\\\"rgba(0,0,0,0)\\\");p.init({element:$.node(),gd:t,prepFn:function(){var t=c.getTranslate(I);X=t.x,Z=t.y,s&&s.autorange&&k(s._name+\\\".autorange\\\",!0),v&&v.autorange&&k(v._name+\\\".autorange\\\",!0)},moveFn:function(t,r){var n=w(X,Z),i=n[0]+t,a=n[1]+r;I.call(c.setTranslate,i,a),M(\\\"x\\\",s?s.p2r(s.r2p(e.x)+t):e.x+t/b.w),M(\\\"y\\\",v?v.p2r(v.r2p(e.y)+r):e.y-r/b.h),e.axref===e.xref&&M(\\\"ax\\\",s.p2r(s.r2p(e.ax)+t)),e.ayref===e.yref&&M(\\\"ay\\\",v.p2r(v.r2p(e.ay)+r)),q.attr(\\\"transform\\\",\\\"translate(\\\"+t+\\\",\\\"+r+\\\")\\\"),L.attr({transform:\\\"rotate(\\\"+E+\\\",\\\"+i+\\\",\\\"+a+\\\")\\\"})},doneFn:function(){i.call(\\\"relayout\\\",t,A());var e=document.querySelector(\\\".js-notes-box-panel\\\");e&&e.redraw(e.selectedObj)}})}}};if(e.showarrow&&yt(0,0),z)p.init({element:I.node(),gd:t,prepFn:function(){mt=L.attr(\\\"transform\\\")},moveFn:function(t,r){var n=\\\"pointer\\\";if(e.showarrow)e.axref===e.xref?M(\\\"ax\\\",s.p2r(s.r2p(e.ax)+t)):M(\\\"ax\\\",e.ax+t),e.ayref===e.yref?M(\\\"ay\\\",v.p2r(v.r2p(e.ay)+r)):M(\\\"ay\\\",e.ay+r),yt(t,r);else{if(a)return;var i,o;if(s)i=s.p2r(s.r2p(e.x)+t);else{var l=e._xsize/b.w,c=e.x+(e._xshift-e.xshift)/b.w-l/2;i=p.align(c+t/b.w,l,0,1,e.xanchor)}if(v)o=v.p2r(v.r2p(e.y)+r);else{var u=e._ysize/b.h,f=e.y-(e._yshift+e.yshift)/b.h-u/2;o=p.align(f-r/b.h,u,0,1,e.yanchor)}M(\\\"x\\\",i),M(\\\"y\\\",o),s&&v||(n=p.getCursor(s?.5:i,v?.5:o,e.xanchor,e.yanchor))}L.attr({transform:\\\"translate(\\\"+t+\\\",\\\"+r+\\\")\\\"+mt}),h(I,n)},doneFn:function(){h(I),i.call(\\\"relayout\\\",t,A());var e=document.querySelector(\\\".js-notes-box-panel\\\");e&&e.redraw(e.selectedObj)}})}else I.remove()}}e.exports={draw:function(t){var e=t._fullLayout;e._infolayer.selectAll(\\\".annotation\\\").remove();for(var r=0;r<e.annotations.length;r++)e.annotations[r].visible&&v(t,r);return a.previousPromises(t)},drawOne:v,drawRaw:m}},{\\\"../../lib\\\":696,\\\"../../lib/setcursor\\\":716,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"../fx\\\":612,\\\"./draw_arrow_head\\\":560,d3:148}],560:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../color\\\"),a=t(\\\"./arrow_paths\\\");e.exports=function(t,e,r){var o,s,l,c,u=t.node(),f=a[r.arrowhead||0],h=a[r.startarrowhead||0],p=(r.arrowwidth||1)*(r.arrowsize||1),d=(r.arrowwidth||1)*(r.startarrowsize||1),g=e.indexOf(\\\"start\\\")>=0,v=e.indexOf(\\\"end\\\")>=0,m=f.backoff*p+r.standoff,y=h.backoff*d+r.startstandoff;if(\\\"line\\\"===u.nodeName){o={x:+t.attr(\\\"x1\\\"),y:+t.attr(\\\"y1\\\")},s={x:+t.attr(\\\"x2\\\"),y:+t.attr(\\\"y2\\\")};var x=o.x-s.x,b=o.y-s.y;if(c=(l=Math.atan2(b,x))+Math.PI,m&&y&&m+y>Math.sqrt(x*x+b*b))return void z();if(m){if(m*m>x*x+b*b)return void z();var _=m*Math.cos(l),w=m*Math.sin(l);s.x+=_,s.y+=w,t.attr({x2:s.x,y2:s.y})}if(y){if(y*y>x*x+b*b)return void z();var k=y*Math.cos(l),M=y*Math.sin(l);o.x-=k,o.y-=M,t.attr({x1:o.x,y1:o.y})}}else if(\\\"path\\\"===u.nodeName){var A=u.getTotalLength(),T=\\\"\\\";if(A<m+y)return void z();var S=u.getPointAtLength(0),E=u.getPointAtLength(.1);l=Math.atan2(S.y-E.y,S.x-E.x),o=u.getPointAtLength(Math.min(y,A)),T=\\\"0px,\\\"+y+\\\"px,\\\";var C=u.getPointAtLength(A),L=u.getPointAtLength(A-.1);c=Math.atan2(C.y-L.y,C.x-L.x),s=u.getPointAtLength(Math.max(0,A-m)),T+=A-(T?y+m:m)+\\\"px,\\\"+A+\\\"px\\\",t.style(\\\"stroke-dasharray\\\",T)}function z(){t.style(\\\"stroke-dasharray\\\",\\\"0px,100px\\\")}function O(e,a,o,s){e.path&&(e.noRotate&&(o=0),n.select(u.parentNode).append(\\\"path\\\").attr({class:t.attr(\\\"class\\\"),d:e.path,transform:\\\"translate(\\\"+a.x+\\\",\\\"+a.y+\\\")\\\"+(o?\\\"rotate(\\\"+180*o/Math.PI+\\\")\\\":\\\"\\\")+\\\"scale(\\\"+s+\\\")\\\"}).style({fill:i.rgb(r.arrowcolor),\\\"stroke-width\\\":0}))}g&&O(h,o,l,d),v&&O(f,s,c,p)}},{\\\"../color\\\":570,\\\"./arrow_paths\\\":552,d3:148}],561:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./draw\\\"),i=t(\\\"./click\\\");e.exports={moduleType:\\\"component\\\",name:\\\"annotations\\\",layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),includeBasePlot:t(\\\"../../plots/cartesian/include_components\\\")(\\\"annotations\\\"),calcAutorange:t(\\\"./calc_autorange\\\"),draw:n.draw,drawOne:n.drawOne,drawRaw:n.drawRaw,hasClickToShow:i.hasClickToShow,onClick:i.onClick,convertCoords:t(\\\"./convert_coords\\\")}},{\\\"../../plots/cartesian/include_components\\\":755,\\\"./attributes\\\":553,\\\"./calc_autorange\\\":554,\\\"./click\\\":555,\\\"./convert_coords\\\":557,\\\"./defaults\\\":558,\\\"./draw\\\":559}],562:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../annotations/attributes\\\"),i=t(\\\"../../plot_api/edit_types\\\").overrideAll,a=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports=i(a(\\\"annotation\\\",{visible:n.visible,x:{valType:\\\"any\\\"},y:{valType:\\\"any\\\"},z:{valType:\\\"any\\\"},ax:{valType:\\\"number\\\"},ay:{valType:\\\"number\\\"},xanchor:n.xanchor,xshift:n.xshift,yanchor:n.yanchor,yshift:n.yshift,text:n.text,textangle:n.textangle,font:n.font,width:n.width,height:n.height,opacity:n.opacity,align:n.align,valign:n.valign,bgcolor:n.bgcolor,bordercolor:n.bordercolor,borderpad:n.borderpad,borderwidth:n.borderwidth,showarrow:n.showarrow,arrowcolor:n.arrowcolor,arrowhead:n.arrowhead,startarrowhead:n.startarrowhead,arrowside:n.arrowside,arrowsize:n.arrowsize,startarrowsize:n.startarrowsize,arrowwidth:n.arrowwidth,standoff:n.standoff,startstandoff:n.startstandoff,hovertext:n.hovertext,hoverlabel:n.hoverlabel,captureevents:n.captureevents}),\\\"calc\\\",\\\"from-root\\\")},{\\\"../../plot_api/edit_types\\\":727,\\\"../../plot_api/plot_template\\\":734,\\\"../annotations/attributes\\\":553}],563:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\");function a(t,e){var r=e.fullSceneLayout.domain,a=e.fullLayout._size,o={pdata:null,type:\\\"linear\\\",autorange:!1,range:[-1/0,1/0]};t._xa={},n.extendFlat(t._xa,o),i.setConvert(t._xa),t._xa._offset=a.l+r.x[0]*a.w,t._xa.l2p=function(){return.5*(1+t._pdata[0]/t._pdata[3])*a.w*(r.x[1]-r.x[0])},t._ya={},n.extendFlat(t._ya,o),i.setConvert(t._ya),t._ya._offset=a.t+(1-r.y[1])*a.h,t._ya.l2p=function(){return.5*(1-t._pdata[1]/t._pdata[3])*a.h*(r.y[1]-r.y[0])}}e.exports=function(t){for(var e=t.fullSceneLayout.annotations,r=0;r<e.length;r++)a(e[r],t);t.fullLayout._infolayer.selectAll(\\\".annotation-\\\"+t.id).remove()}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],564:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../plots/array_container_defaults\\\"),o=t(\\\"../annotations/common_defaults\\\"),s=t(\\\"./attributes\\\");function l(t,e,r,a){function l(r,i){return n.coerce(t,e,s,r,i)}function c(t){var n=t+\\\"axis\\\",a={_fullLayout:{}};return a._fullLayout[n]=r[n],i.coercePosition(e,a,l,t,t,.5)}l(\\\"visible\\\")&&(o(t,e,a.fullLayout,l),c(\\\"x\\\"),c(\\\"y\\\"),c(\\\"z\\\"),n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\",\\\"z\\\"]),e.xref=\\\"x\\\",e.yref=\\\"y\\\",e.zref=\\\"z\\\",l(\\\"xanchor\\\"),l(\\\"yanchor\\\"),l(\\\"xshift\\\"),l(\\\"yshift\\\"),e.showarrow&&(e.axref=\\\"pixel\\\",e.ayref=\\\"pixel\\\",l(\\\"ax\\\",-10),l(\\\"ay\\\",-30),n.noneOrAll(t,e,[\\\"ax\\\",\\\"ay\\\"])))}e.exports=function(t,e,r){a(t,e,{name:\\\"annotations\\\",handleItemDefaults:l,fullLayout:r.fullLayout})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/cartesian/axes\\\":744,\\\"../annotations/common_defaults\\\":556,\\\"./attributes\\\":562}],565:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../annotations/draw\\\").drawRaw,i=t(\\\"../../plots/gl3d/project\\\"),a=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];e.exports=function(t){for(var e=t.fullSceneLayout,r=t.dataScale,o=e.annotations,s=0;s<o.length;s++){for(var l=o[s],c=!1,u=0;u<3;u++){var f=a[u],h=l[f],p=e[f+\\\"axis\\\"].r2fraction(h);if(p<0||p>1){c=!0;break}}c?t.fullLayout._infolayer.select(\\\".annotation-\\\"+t.id+'[data-index=\\\"'+s+'\\\"]').remove():(l._pdata=i(t.glplot.cameraParams,[e.xaxis.r2l(l.x)*r[0],e.yaxis.r2l(l.y)*r[1],e.zaxis.r2l(l.z)*r[2]]),n(t.graphDiv,l,s,t.id,l._xa,l._ya))}}},{\\\"../../plots/gl3d/project\\\":796,\\\"../annotations/draw\\\":559}],566:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\");e.exports={moduleType:\\\"component\\\",name:\\\"annotations3d\\\",schema:{subplots:{scene:{annotations:t(\\\"./attributes\\\")}}},layoutAttributes:t(\\\"./attributes\\\"),handleDefaults:t(\\\"./defaults\\\"),includeBasePlot:function(t,e){var r=n.subplotsRegistry.gl3d;if(!r)return;for(var a=r.attrRegex,o=Object.keys(t),s=0;s<o.length;s++){var l=o[s];a.test(l)&&(t[l].annotations||[]).length&&(i.pushUnique(e._basePlotModules,r),i.pushUnique(e._subplots.gl3d,l))}},convert:t(\\\"./convert\\\"),draw:t(\\\"./draw\\\")}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":562,\\\"./convert\\\":563,\\\"./defaults\\\":564,\\\"./draw\\\":565}],567:[function(t,e,r){\\\"use strict\\\";e.exports=t(\\\"world-calendars/dist/main\\\"),t(\\\"world-calendars/dist/plus\\\"),t(\\\"world-calendars/dist/calendars/chinese\\\"),t(\\\"world-calendars/dist/calendars/coptic\\\"),t(\\\"world-calendars/dist/calendars/discworld\\\"),t(\\\"world-calendars/dist/calendars/ethiopian\\\"),t(\\\"world-calendars/dist/calendars/hebrew\\\"),t(\\\"world-calendars/dist/calendars/islamic\\\"),t(\\\"world-calendars/dist/calendars/julian\\\"),t(\\\"world-calendars/dist/calendars/mayan\\\"),t(\\\"world-calendars/dist/calendars/nanakshahi\\\"),t(\\\"world-calendars/dist/calendars/nepali\\\"),t(\\\"world-calendars/dist/calendars/persian\\\"),t(\\\"world-calendars/dist/calendars/taiwan\\\"),t(\\\"world-calendars/dist/calendars/thai\\\"),t(\\\"world-calendars/dist/calendars/ummalqura\\\")},{\\\"world-calendars/dist/calendars/chinese\\\":534,\\\"world-calendars/dist/calendars/coptic\\\":535,\\\"world-calendars/dist/calendars/discworld\\\":536,\\\"world-calendars/dist/calendars/ethiopian\\\":537,\\\"world-calendars/dist/calendars/hebrew\\\":538,\\\"world-calendars/dist/calendars/islamic\\\":539,\\\"world-calendars/dist/calendars/julian\\\":540,\\\"world-calendars/dist/calendars/mayan\\\":541,\\\"world-calendars/dist/calendars/nanakshahi\\\":542,\\\"world-calendars/dist/calendars/nepali\\\":543,\\\"world-calendars/dist/calendars/persian\\\":544,\\\"world-calendars/dist/calendars/taiwan\\\":545,\\\"world-calendars/dist/calendars/thai\\\":546,\\\"world-calendars/dist/calendars/ummalqura\\\":547,\\\"world-calendars/dist/main\\\":548,\\\"world-calendars/dist/plus\\\":549}],568:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./calendars\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\"),o=a.EPOCHJD,s=a.ONEDAY,l={valType:\\\"enumerated\\\",values:Object.keys(n.calendars),editType:\\\"calc\\\",dflt:\\\"gregorian\\\"},c=function(t,e,r,n){var a={};return a[r]=l,i.coerce(t,e,a,r,n)},u=\\\"##\\\",f={d:{0:\\\"dd\\\",\\\"-\\\":\\\"d\\\"},e:{0:\\\"d\\\",\\\"-\\\":\\\"d\\\"},a:{0:\\\"D\\\",\\\"-\\\":\\\"D\\\"},A:{0:\\\"DD\\\",\\\"-\\\":\\\"DD\\\"},j:{0:\\\"oo\\\",\\\"-\\\":\\\"o\\\"},W:{0:\\\"ww\\\",\\\"-\\\":\\\"w\\\"},m:{0:\\\"mm\\\",\\\"-\\\":\\\"m\\\"},b:{0:\\\"M\\\",\\\"-\\\":\\\"M\\\"},B:{0:\\\"MM\\\",\\\"-\\\":\\\"MM\\\"},y:{0:\\\"yy\\\",\\\"-\\\":\\\"yy\\\"},Y:{0:\\\"yyyy\\\",\\\"-\\\":\\\"yyyy\\\"},U:u,w:u,c:{0:\\\"D M d %X yyyy\\\",\\\"-\\\":\\\"D M d %X yyyy\\\"},x:{0:\\\"mm/dd/yyyy\\\",\\\"-\\\":\\\"mm/dd/yyyy\\\"}};var h={};function p(t){var e=h[t];return e||(e=h[t]=n.instance(t))}function d(t){return i.extendFlat({},l,{description:t})}function g(t){return\\\"Sets the calendar system to use with `\\\"+t+\\\"` date data.\\\"}var v={xcalendar:d(g(\\\"x\\\"))},m=i.extendFlat({},v,{ycalendar:d(g(\\\"y\\\"))}),y=i.extendFlat({},m,{zcalendar:d(g(\\\"z\\\"))}),x=d([\\\"Sets the calendar system to use for `range` and `tick0`\\\",\\\"if this is a date axis. This does not set the calendar for\\\",\\\"interpreting data on this axis, that's specified in the trace\\\",\\\"or via the global `layout.calendar`\\\"].join(\\\" \\\"));e.exports={moduleType:\\\"component\\\",name:\\\"calendars\\\",schema:{traces:{scatter:m,bar:m,box:m,heatmap:m,contour:m,histogram:m,histogram2d:m,histogram2dcontour:m,scatter3d:y,surface:y,mesh3d:y,scattergl:m,ohlc:v,candlestick:v},layout:{calendar:d([\\\"Sets the default calendar system to use for interpreting and\\\",\\\"displaying dates throughout the plot.\\\"].join(\\\" \\\"))},subplots:{xaxis:{calendar:x},yaxis:{calendar:x},scene:{xaxis:{calendar:x},yaxis:{calendar:x},zaxis:{calendar:x}},polar:{radialaxis:{calendar:x}}},transforms:{filter:{valuecalendar:d([\\\"Sets the calendar system to use for `value`, if it is a date.\\\"].join(\\\" \\\")),targetcalendar:d([\\\"Sets the calendar system to use for `target`, if it is an\\\",\\\"array of dates. If `target` is a string (eg *x*) we use the\\\",\\\"corresponding trace attribute (eg `xcalendar`) if it exists,\\\",\\\"even if `targetcalendar` is provided.\\\"].join(\\\" \\\"))}}},layoutAttributes:l,handleDefaults:c,handleTraceDefaults:function(t,e,r,n){for(var i=0;i<r.length;i++)c(t,e,r[i]+\\\"calendar\\\",n.calendar)},CANONICAL_SUNDAY:{chinese:\\\"2000-01-02\\\",coptic:\\\"2000-01-03\\\",discworld:\\\"2000-01-03\\\",ethiopian:\\\"2000-01-05\\\",hebrew:\\\"5000-01-01\\\",islamic:\\\"1000-01-02\\\",julian:\\\"2000-01-03\\\",mayan:\\\"5000-01-01\\\",nanakshahi:\\\"1000-01-05\\\",nepali:\\\"2000-01-05\\\",persian:\\\"1000-01-01\\\",jalali:\\\"1000-01-01\\\",taiwan:\\\"1000-01-04\\\",thai:\\\"2000-01-04\\\",ummalqura:\\\"1400-01-06\\\"},CANONICAL_TICK:{chinese:\\\"2000-01-01\\\",coptic:\\\"2000-01-01\\\",discworld:\\\"2000-01-01\\\",ethiopian:\\\"2000-01-01\\\",hebrew:\\\"5000-01-01\\\",islamic:\\\"1000-01-01\\\",julian:\\\"2000-01-01\\\",mayan:\\\"5000-01-01\\\",nanakshahi:\\\"1000-01-01\\\",nepali:\\\"2000-01-01\\\",persian:\\\"1000-01-01\\\",jalali:\\\"1000-01-01\\\",taiwan:\\\"1000-01-01\\\",thai:\\\"2000-01-01\\\",ummalqura:\\\"1400-01-01\\\"},DFLTRANGE:{chinese:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"],coptic:[\\\"1700-01-01\\\",\\\"1701-01-01\\\"],discworld:[\\\"1800-01-01\\\",\\\"1801-01-01\\\"],ethiopian:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"],hebrew:[\\\"5700-01-01\\\",\\\"5701-01-01\\\"],islamic:[\\\"1400-01-01\\\",\\\"1401-01-01\\\"],julian:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"],mayan:[\\\"5200-01-01\\\",\\\"5201-01-01\\\"],nanakshahi:[\\\"0500-01-01\\\",\\\"0501-01-01\\\"],nepali:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"],persian:[\\\"1400-01-01\\\",\\\"1401-01-01\\\"],jalali:[\\\"1400-01-01\\\",\\\"1401-01-01\\\"],taiwan:[\\\"0100-01-01\\\",\\\"0101-01-01\\\"],thai:[\\\"2500-01-01\\\",\\\"2501-01-01\\\"],ummalqura:[\\\"1400-01-01\\\",\\\"1401-01-01\\\"]},getCal:p,worldCalFmt:function(t,e,r){for(var n,i,a,l,c,h=Math.floor((e+.05)/s)+o,d=p(r).fromJD(h),g=0;-1!==(g=t.indexOf(\\\"%\\\",g));)\\\"0\\\"===(n=t.charAt(g+1))||\\\"-\\\"===n||\\\"_\\\"===n?(a=3,i=t.charAt(g+2),\\\"_\\\"===n&&(n=\\\"-\\\")):(i=n,n=\\\"0\\\",a=2),(l=f[i])?(c=l===u?u:d.formatDate(l[n]),t=t.substr(0,g)+c+t.substr(g+a),g+=c.length):g+=a;return t}}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"./calendars\\\":567}],569:[function(t,e,r){\\\"use strict\\\";r.defaults=[\\\"#1f77b4\\\",\\\"#ff7f0e\\\",\\\"#2ca02c\\\",\\\"#d62728\\\",\\\"#9467bd\\\",\\\"#8c564b\\\",\\\"#e377c2\\\",\\\"#7f7f7f\\\",\\\"#bcbd22\\\",\\\"#17becf\\\"],r.defaultLine=\\\"#444\\\",r.lightLine=\\\"#eee\\\",r.background=\\\"#fff\\\",r.borderLine=\\\"#BEC8D9\\\",r.lightFraction=1e3/11},{}],570:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"tinycolor2\\\"),i=t(\\\"fast-isnumeric\\\"),a=e.exports={},o=t(\\\"./attributes\\\");a.defaults=o.defaults;var s=a.defaultLine=o.defaultLine;a.lightLine=o.lightLine;var l=a.background=o.background;function c(t){if(i(t)||\\\"string\\\"!=typeof t)return t;var e=t.trim();if(\\\"rgb\\\"!==e.substr(0,3))return t;var r=e.match(/^rgba?\\\\s*\\\\(([^()]*)\\\\)$/);if(!r)return t;var n=r[1].trim().split(/\\\\s*[\\\\s,]\\\\s*/),a=\\\"a\\\"===e.charAt(3)&&4===n.length;if(!a&&3!==n.length)return t;for(var o=0;o<n.length;o++){if(!n[o].length)return t;if(n[o]=Number(n[o]),!(n[o]>=0))return t;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return t}var s=Math.round(255*n[0])+\\\", \\\"+Math.round(255*n[1])+\\\", \\\"+Math.round(255*n[2]);return a?\\\"rgba(\\\"+s+\\\", \\\"+n[3]+\\\")\\\":\\\"rgb(\\\"+s+\\\")\\\"}a.tinyRGB=function(t){var e=t.toRgb();return\\\"rgb(\\\"+Math.round(e.r)+\\\", \\\"+Math.round(e.g)+\\\", \\\"+Math.round(e.b)+\\\")\\\"},a.rgb=function(t){return a.tinyRGB(n(t))},a.opacity=function(t){return t?n(t).getAlpha():0},a.addOpacity=function(t,e){var r=n(t).toRgb();return\\\"rgba(\\\"+Math.round(r.r)+\\\", \\\"+Math.round(r.g)+\\\", \\\"+Math.round(r.b)+\\\", \\\"+e+\\\")\\\"},a.combine=function(t,e){var r=n(t).toRgb();if(1===r.a)return n(t).toRgbString();var i=n(e||l).toRgb(),a=1===i.a?i:{r:255*(1-i.a)+i.r*i.a,g:255*(1-i.a)+i.g*i.a,b:255*(1-i.a)+i.b*i.a},o={r:a.r*(1-r.a)+r.r*r.a,g:a.g*(1-r.a)+r.g*r.a,b:a.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},a.contrast=function(t,e,r){var i=n(t);return 1!==i.getAlpha()&&(i=n(a.combine(t,l))),(i.isDark()?e?i.lighten(e):l:r?i.darken(r):s).toString()},a.stroke=function(t,e){var r=n(e);t.style({stroke:a.tinyRGB(r),\\\"stroke-opacity\\\":r.getAlpha()})},a.fill=function(t,e){var r=n(e);t.style({fill:a.tinyRGB(r),\\\"fill-opacity\\\":r.getAlpha()})},a.clean=function(t){if(t&&\\\"object\\\"==typeof t){var e,r,n,i,o=Object.keys(t);for(e=0;e<o.length;e++)if(i=t[n=o[e]],\\\"color\\\"===n.substr(n.length-5))if(Array.isArray(i))for(r=0;r<i.length;r++)i[r]=c(i[r]);else t[n]=c(i);else if(\\\"colorscale\\\"===n.substr(n.length-10)&&Array.isArray(i))for(r=0;r<i.length;r++)Array.isArray(i[r])&&(i[r][1]=c(i[r][1]));else if(Array.isArray(i)){var s=i[0];if(!Array.isArray(s)&&s&&\\\"object\\\"==typeof s)for(r=0;r<i.length;r++)a.clean(i[r])}else i&&\\\"object\\\"==typeof i&&a.clean(i)}}},{\\\"./attributes\\\":569,\\\"fast-isnumeric\\\":214,tinycolor2:514}],571:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/layout_attributes\\\"),i=t(\\\"../../plots/font_attributes\\\"),a=t(\\\"../../lib/extend\\\").extendFlat,o=t(\\\"../../plot_api/edit_types\\\").overrideAll;e.exports=o({thicknessmode:{valType:\\\"enumerated\\\",values:[\\\"fraction\\\",\\\"pixels\\\"],dflt:\\\"pixels\\\"},thickness:{valType:\\\"number\\\",min:0,dflt:30},lenmode:{valType:\\\"enumerated\\\",values:[\\\"fraction\\\",\\\"pixels\\\"],dflt:\\\"fraction\\\"},len:{valType:\\\"number\\\",min:0,dflt:1},x:{valType:\\\"number\\\",dflt:1.02,min:-2,max:3},xanchor:{valType:\\\"enumerated\\\",values:[\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\"},xpad:{valType:\\\"number\\\",min:0,dflt:10},y:{valType:\\\"number\\\",dflt:.5,min:-2,max:3},yanchor:{valType:\\\"enumerated\\\",values:[\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"middle\\\"},ypad:{valType:\\\"number\\\",min:0,dflt:10},outlinecolor:n.linecolor,outlinewidth:n.linewidth,bordercolor:n.linecolor,borderwidth:{valType:\\\"number\\\",min:0,dflt:0},bgcolor:{valType:\\\"color\\\",dflt:\\\"rgba(0,0,0,0)\\\"},tickmode:n.tickmode,nticks:n.nticks,tick0:n.tick0,dtick:n.dtick,tickvals:n.tickvals,ticktext:n.ticktext,ticks:a({},n.ticks,{dflt:\\\"\\\"}),ticklen:n.ticklen,tickwidth:n.tickwidth,tickcolor:n.tickcolor,showticklabels:n.showticklabels,tickfont:i({}),tickangle:n.tickangle,tickformat:n.tickformat,tickformatstops:n.tickformatstops,tickprefix:n.tickprefix,showtickprefix:n.showtickprefix,ticksuffix:n.ticksuffix,showticksuffix:n.showticksuffix,separatethousands:n.separatethousands,exponentformat:n.exponentformat,showexponent:n.showexponent,title:{valType:\\\"string\\\"},titlefont:i({}),titleside:{valType:\\\"enumerated\\\",values:[\\\"right\\\",\\\"top\\\",\\\"bottom\\\"],dflt:\\\"top\\\"}},\\\"colorbars\\\",\\\"from-root\\\")},{\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/cartesian/layout_attributes\\\":757,\\\"../../plots/font_attributes\\\":771}],572:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./draw\\\");e.exports=function(t,e,r){if(\\\"function\\\"==typeof r)return r(t,e);var i=e[0].trace,a=\\\"cb\\\"+i.uid,o=r.container,s=o?i[o]:i;(t._fullLayout._infolayer.selectAll(\\\".\\\"+a).remove(),s&&s.showscale)&&(e[0].t.cb=n(t,a)).fillgradient(s.colorscale).zrange([s[r.min],s[r.max]]).options(s.colorbar)()}},{\\\"./draw\\\":575}],573:[function(t,e,r){\\\"use strict\\\";e.exports={cn:{colorbar:\\\"colorbar\\\",cbbg:\\\"cbbg\\\",cbfill:\\\"cbfill\\\",cbfills:\\\"cbfills\\\",cbline:\\\"cbline\\\",cblines:\\\"cblines\\\",cbaxis:\\\"cbaxis\\\",cbtitleunshift:\\\"cbtitleunshift\\\",cbtitle:\\\"cbtitle\\\",cboutline:\\\"cboutline\\\",crisp:\\\"crisp\\\",jsPlaceholder:\\\"js-placeholder\\\"}}},{}],574:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plot_api/plot_template\\\"),a=t(\\\"../../plots/cartesian/tick_value_defaults\\\"),o=t(\\\"../../plots/cartesian/tick_mark_defaults\\\"),s=t(\\\"../../plots/cartesian/tick_label_defaults\\\"),l=t(\\\"./attributes\\\");e.exports=function(t,e,r){var c=i.newContainer(e,\\\"colorbar\\\"),u=t.colorbar||{};function f(t,e){return n.coerce(u,c,l,t,e)}var h=f(\\\"thicknessmode\\\");f(\\\"thickness\\\",\\\"fraction\\\"===h?30/(r.width-r.margin.l-r.margin.r):30);var p=f(\\\"lenmode\\\");f(\\\"len\\\",\\\"fraction\\\"===p?1:r.height-r.margin.t-r.margin.b),f(\\\"x\\\"),f(\\\"xanchor\\\"),f(\\\"xpad\\\"),f(\\\"y\\\"),f(\\\"yanchor\\\"),f(\\\"ypad\\\"),n.noneOrAll(u,c,[\\\"x\\\",\\\"y\\\"]),f(\\\"outlinecolor\\\"),f(\\\"outlinewidth\\\"),f(\\\"bordercolor\\\"),f(\\\"borderwidth\\\"),f(\\\"bgcolor\\\"),a(u,c,f,\\\"linear\\\");var d={outerTicks:!1,font:r.font};s(u,c,f,\\\"linear\\\",d),o(u,c,f,\\\"linear\\\",d),f(\\\"title\\\",r._dfltTitle.colorbar),n.coerceFont(f,\\\"titlefont\\\",r.font),f(\\\"titleside\\\")}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/tick_label_defaults\\\":764,\\\"../../plots/cartesian/tick_mark_defaults\\\":765,\\\"../../plots/cartesian/tick_value_defaults\\\":766,\\\"./attributes\\\":571}],575:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../plots/cartesian/axes\\\"),l=t(\\\"../dragelement\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../lib/extend\\\").extendFlat,f=t(\\\"../../lib/setcursor\\\"),h=t(\\\"../drawing\\\"),p=t(\\\"../color\\\"),d=t(\\\"../titles\\\"),g=t(\\\"../../lib/svg_text_utils\\\"),v=t(\\\"../../constants/alignment\\\"),m=v.LINE_SPACING,y=v.FROM_TL,x=v.FROM_BR,b=t(\\\"../../plots/cartesian/axis_defaults\\\"),_=t(\\\"../../plots/cartesian/position_defaults\\\"),w=t(\\\"../../plots/cartesian/layout_attributes\\\"),k=t(\\\"./attributes\\\"),M=t(\\\"./constants\\\").cn;e.exports=function(t,e){var r={};for(var v in k)r[v]=null;function A(){var v=t._fullLayout,k=v._size;if(\\\"function\\\"==typeof r.fillcolor||\\\"function\\\"==typeof r.line.color||r.fillgradient){var S,E,C=r.zrange||n.extent((\\\"function\\\"==typeof r.fillcolor?r.fillcolor:r.line.color).domain()),L=[],z=[],O=\\\"function\\\"==typeof r.line.color?r.line.color:function(){return r.line.color},I=\\\"function\\\"==typeof r.fillcolor?r.fillcolor:function(){return r.fillcolor},P=r.levels.end+r.levels.size/100,D=r.levels.size,R=1.001*C[0]-.001*C[1],B=1.001*C[1]-.001*C[0];for(E=0;E<1e5&&(S=r.levels.start+E*D,!(D>0?S>=P:S<=P));E++)S>R&&S<B&&L.push(S);if(r.fillgradient)z=[0];else if(\\\"function\\\"==typeof r.fillcolor)if(r.filllevels)for(P=r.filllevels.end+r.filllevels.size/100,D=r.filllevels.size,E=0;E<1e5&&(S=r.filllevels.start+E*D,!(D>0?S>=P:S<=P));E++)S>C[0]&&S<C[1]&&z.push(S);else(z=L.map(function(t){return t-r.levels.size/2})).push(z[z.length-1]+r.levels.size);else r.fillcolor&&\\\"string\\\"==typeof r.fillcolor&&(z=[0]);r.levels.size<0&&(L.reverse(),z.reverse());var F,N=k.h,j=k.w,V=Math.round(r.thickness*(\\\"fraction\\\"===r.thicknessmode?j:1)),U=V/k.w,q=Math.round(r.len*(\\\"fraction\\\"===r.lenmode?N:1)),H=q/k.h,G=r.xpad/k.w,W=(r.borderwidth+r.outlinewidth)/2,Y=r.ypad/k.h,X=Math.round(r.x*k.w+r.xpad),Z=r.x-U*({middle:.5,right:1}[r.xanchor]||0),$=r.y+H*(({top:-.5,bottom:.5}[r.yanchor]||0)-.5),J=Math.round(k.h*(1-$)),K=J-q,Q={type:\\\"linear\\\",range:C,tickmode:r.tickmode,nticks:r.nticks,tick0:r.tick0,dtick:r.dtick,tickvals:r.tickvals,ticktext:r.ticktext,ticks:r.ticks,ticklen:r.ticklen,tickwidth:r.tickwidth,tickcolor:r.tickcolor,showticklabels:r.showticklabels,tickfont:r.tickfont,tickangle:r.tickangle,tickformat:r.tickformat,exponentformat:r.exponentformat,separatethousands:r.separatethousands,showexponent:r.showexponent,showtickprefix:r.showtickprefix,tickprefix:r.tickprefix,showticksuffix:r.showticksuffix,ticksuffix:r.ticksuffix,title:r.title,titlefont:r.titlefont,showline:!0,anchor:\\\"free\\\",position:1},tt={type:\\\"linear\\\",_id:\\\"y\\\"+e},et={letter:\\\"y\\\",font:v.font,noHover:!0,calendar:v.calendar};if(b(Q,tt,vt,et,v),_(Q,tt,vt,et),tt.position=r.x+G+U,A.axis=tt,-1!==[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)&&(tt.titleside=r.titleside,tt.titlex=r.x+G,tt.titley=$+(\\\"top\\\"===r.titleside?H-Y:Y)),r.line.color&&\\\"auto\\\"===r.tickmode){tt.tickmode=\\\"linear\\\",tt.tick0=r.levels.start;var rt=r.levels.size,nt=c.constrain((J-K)/50,4,15)+1,it=(C[1]-C[0])/((r.nticks||nt)*rt);if(it>1){var at=Math.pow(10,Math.floor(Math.log(it)/Math.LN10));rt*=at*c.roundUp(it/at,[2,5,10]),(Math.abs(r.levels.start)/r.levels.size+1e-6)%1<2e-6&&(tt.tick0=0)}tt.dtick=rt}tt.domain=[$+Y,$+H-Y],tt.setScale();var ot=c.ensureSingle(v._infolayer,\\\"g\\\",e,function(t){t.classed(M.colorbar,!0).each(function(){var t=n.select(this);t.append(\\\"rect\\\").classed(M.cbbg,!0),t.append(\\\"g\\\").classed(M.cbfills,!0),t.append(\\\"g\\\").classed(M.cblines,!0),t.append(\\\"g\\\").classed(M.cbaxis,!0).classed(M.crisp,!0),t.append(\\\"g\\\").classed(M.cbtitleunshift,!0).append(\\\"g\\\").classed(M.cbtitle,!0),t.append(\\\"rect\\\").classed(M.cboutline,!0),t.select(\\\".cbtitle\\\").datum(0)})});ot.attr(\\\"transform\\\",\\\"translate(\\\"+Math.round(k.l)+\\\",\\\"+Math.round(k.t)+\\\")\\\");var st=ot.select(\\\".cbtitleunshift\\\").attr(\\\"transform\\\",\\\"translate(-\\\"+Math.round(k.l)+\\\",-\\\"+Math.round(k.t)+\\\")\\\");tt._axislayer=ot.select(\\\".cbaxis\\\");var lt=0;if(-1!==[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)){var ct,ut=k.l+(r.x+G)*k.w,ft=tt.titlefont.size;ct=\\\"top\\\"===r.titleside?(1-($+H-Y))*k.h+k.t+3+.75*ft:(1-($+Y))*k.h+k.t-3-.25*ft,mt(tt._id+\\\"title\\\",{attributes:{x:ut,y:ct,\\\"text-anchor\\\":\\\"start\\\"}})}var ht,pt,dt,gt=c.syncOrAsync([a.previousPromises,function(){if(-1!==[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)){var a=ot.select(\\\".cbtitle\\\"),o=a.select(\\\"text\\\"),l=[-r.outlinewidth/2,r.outlinewidth/2],u=a.select(\\\".h\\\"+tt._id+\\\"title-math-group\\\").node(),f=15.6;if(o.node()&&(f=parseInt(o.node().style.fontSize,10)*m),u?(lt=h.bBox(u).height)>f&&(l[1]-=(lt-f)/2):o.node()&&!o.classed(M.jsPlaceholder)&&(lt=h.bBox(o.node()).height),lt){if(lt+=5,\\\"top\\\"===r.titleside)tt.domain[1]-=lt/k.h,l[1]*=-1;else{tt.domain[0]+=lt/k.h;var p=g.lineCount(o);l[1]+=(1-p)*f}a.attr(\\\"transform\\\",\\\"translate(\\\"+l+\\\")\\\"),tt.setScale()}}ot.selectAll(\\\".cbfills,.cblines\\\").attr(\\\"transform\\\",\\\"translate(0,\\\"+Math.round(k.h*(1-tt.domain[1]))+\\\")\\\"),tt._axislayer.attr(\\\"transform\\\",\\\"translate(0,\\\"+Math.round(-k.t)+\\\")\\\");var d=ot.select(\\\".cbfills\\\").selectAll(\\\"rect.cbfill\\\").data(z);d.enter().append(\\\"rect\\\").classed(M.cbfill,!0).style(\\\"stroke\\\",\\\"none\\\"),d.exit().remove();var y=C.map(tt.c2p).map(Math.round).sort(function(t,e){return t-e});d.each(function(a,o){var s=[0===o?C[0]:(z[o]+z[o-1])/2,o===z.length-1?C[1]:(z[o]+z[o+1])/2].map(tt.c2p).map(Math.round);s[1]=c.constrain(s[1]+(s[1]>s[0])?1:-1,y[0],y[1]);var l=n.select(this).attr({x:X,width:Math.max(V,2),y:n.min(s),height:Math.max(n.max(s)-n.min(s),2)});if(r.fillgradient)h.gradient(l,t,e,\\\"vertical\\\",r.fillgradient,\\\"fill\\\");else{var u=I(a).replace(\\\"e-\\\",\\\"\\\");l.attr(\\\"fill\\\",i(u).toHexString())}});var x=ot.select(\\\".cblines\\\").selectAll(\\\"path.cbline\\\").data(r.line.color&&r.line.width?L:[]);return x.enter().append(\\\"path\\\").classed(M.cbline,!0),x.exit().remove(),x.each(function(t){n.select(this).attr(\\\"d\\\",\\\"M\\\"+X+\\\",\\\"+(Math.round(tt.c2p(t))+r.line.width/2%1)+\\\"h\\\"+V).call(h.lineGroupStyle,r.line.width,O(t),r.line.dash)}),tt._axislayer.selectAll(\\\"g.\\\"+tt._id+\\\"tick,path\\\").remove(),tt._pos=X+V+(r.outlinewidth||0)/2-(\\\"outside\\\"===r.ticks?1:0),tt.side=\\\"right\\\",c.syncOrAsync([function(){return s.doTicksSingle(t,tt,!0)},function(){if(-1===[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)){var e=tt.titlefont.size,i=tt._offset+tt._length/2,a=k.l+(tt.position||0)*k.w+(\\\"right\\\"===tt.side?10+e*(tt.showticklabels?1:.5):-10-e*(tt.showticklabels?.5:0));mt(\\\"h\\\"+tt._id+\\\"title\\\",{avoid:{selection:n.select(t).selectAll(\\\"g.\\\"+tt._id+\\\"tick\\\"),side:r.titleside,offsetLeft:k.l,offsetTop:0,maxShift:v.width},attributes:{x:a,y:i,\\\"text-anchor\\\":\\\"middle\\\"},transform:{rotate:\\\"-90\\\",offset:0}})}}])},a.previousPromises,function(){var n=V+r.outlinewidth/2+h.bBox(tt._axislayer.node()).width;if((F=st.select(\\\"text\\\")).node()&&!F.classed(M.jsPlaceholder)){var i,o=st.select(\\\".h\\\"+tt._id+\\\"title-math-group\\\").node();i=o&&-1!==[\\\"top\\\",\\\"bottom\\\"].indexOf(r.titleside)?h.bBox(o).width:h.bBox(st.node()).right-X-k.l,n=Math.max(n,i)}var s=2*r.xpad+n+r.borderwidth+r.outlinewidth/2,l=J-K;ot.select(\\\".cbbg\\\").attr({x:X-r.xpad-(r.borderwidth+r.outlinewidth)/2,y:K-W,width:Math.max(s,2),height:Math.max(l+2*W,2)}).call(p.fill,r.bgcolor).call(p.stroke,r.bordercolor).style({\\\"stroke-width\\\":r.borderwidth}),ot.selectAll(\\\".cboutline\\\").attr({x:X,y:K+r.ypad+(\\\"top\\\"===r.titleside?lt:0),width:Math.max(V,2),height:Math.max(l-2*r.ypad-lt,2)}).call(p.stroke,r.outlinecolor).style({fill:\\\"None\\\",\\\"stroke-width\\\":r.outlinewidth});var c=({center:.5,right:1}[r.xanchor]||0)*s;ot.attr(\\\"transform\\\",\\\"translate(\\\"+(k.l-c)+\\\",\\\"+k.t+\\\")\\\");var u={},f=y[r.yanchor],d=x[r.yanchor];\\\"pixels\\\"===r.lenmode?(u.y=r.y,u.t=l*f,u.b=l*d):(u.t=u.b=0,u.yt=r.y+r.len*f,u.yb=r.y-r.len*d);var g=y[r.xanchor],v=x[r.xanchor];if(\\\"pixels\\\"===r.thicknessmode)u.x=r.x,u.l=s*g,u.r=s*v;else{var m=s-V;u.l=m*g,u.r=m*v,u.xl=r.x-r.thickness*g,u.xr=r.x+r.thickness*v}a.autoMargin(t,e,u)}],t);if(gt&&gt.then&&(t._promises||[]).push(gt),t._context.edits.colorbarPosition)l.init({element:ot.node(),gd:t,prepFn:function(){ht=ot.attr(\\\"transform\\\"),f(ot)},moveFn:function(t,e){ot.attr(\\\"transform\\\",ht+\\\" translate(\\\"+t+\\\",\\\"+e+\\\")\\\"),pt=l.align(Z+t/k.w,U,0,1,r.xanchor),dt=l.align($-e/k.h,H,0,1,r.yanchor);var n=l.getCursor(pt,dt,r.xanchor,r.yanchor);f(ot,n)},doneFn:function(){f(ot),void 0!==pt&&void 0!==dt&&o.call(\\\"restyle\\\",t,{\\\"colorbar.x\\\":pt,\\\"colorbar.y\\\":dt},T().index)}});return gt}function vt(t,e){return c.coerce(Q,tt,w,t,e)}function mt(e,r){var n=T(),i=\\\"colorbar.title\\\",a=n._module.colorbar.container;a&&(i=a+\\\".\\\"+i);var o={propContainer:tt,propName:i,traceIndex:n.index,placeholder:v._dfltTitle.colorbar,containerGroup:ot.select(\\\".cbtitle\\\")},s=\\\"h\\\"===e.charAt(0)?e.substr(1):\\\"h\\\"+e;ot.selectAll(\\\".\\\"+s+\\\",.\\\"+s+\\\"-math-group\\\").remove(),d.draw(t,e,u(o,r||{}))}v._infolayer.selectAll(\\\"g.\\\"+e).remove()}function T(){var r,n,i=e.substr(2);for(r=0;r<t._fullData.length;r++)if((n=t._fullData[r]).uid===i)return n}return r.fillcolor=null,r.line={color:null,width:null,dash:null},r.levels={start:null,end:null,size:null},r.filllevels=null,r.fillgradient=null,r.zrange=null,Object.keys(r).forEach(function(t){A[t]=function(e){return arguments.length?(r[t]=c.isPlainObject(r[t])?c.extendFlat(r[t],e):e,A):r[t]}}),A.options=function(t){for(var e in t)\\\"function\\\"==typeof A[e]&&A[e](t[e]);return A},A._opts=r,A}},{\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/extend\\\":685,\\\"../../lib/setcursor\\\":716,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/cartesian/axis_defaults\\\":746,\\\"../../plots/cartesian/layout_attributes\\\":757,\\\"../../plots/cartesian/position_defaults\\\":760,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"../titles\\\":661,\\\"./attributes\\\":571,\\\"./constants\\\":573,d3:148,tinycolor2:514}],576:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t){return n.isPlainObject(t.colorbar)}},{\\\"../../lib\\\":696}],577:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scales.js\\\");Object.keys(n);function i(t){return\\\"`\\\"+t+\\\"`\\\"}e.exports=function(t,e){t=t||\\\"\\\";var r,a=(e=e||{}).cLetter||\\\"c\\\",o=(\\\"onlyIfNumerical\\\"in e?e.onlyIfNumerical:Boolean(t),\\\"noScale\\\"in e?e.noScale:\\\"marker.line\\\"===t),s=\\\"showScaleDflt\\\"in e?e.showScaleDflt:\\\"z\\\"===a,l=\\\"string\\\"==typeof e.colorscaleDflt?n[e.colorscaleDflt]:null,c=e.editTypeOverride||\\\"\\\",u=t?t+\\\".\\\":\\\"\\\";\\\"colorAttr\\\"in e?(r=e.colorAttr,e.colorAttr):i(u+(r={z:\\\"z\\\",c:\\\"color\\\"}[a]));var f=a+\\\"auto\\\",h=a+\\\"min\\\",p=a+\\\"max\\\",d=(i(u+h),i(u+p),{});d[h]=d[p]=void 0;var g={};g[f]=!1;var v={};return\\\"color\\\"===r&&(v.color={valType:\\\"color\\\",arrayOk:!0,editType:c||\\\"style\\\"}),v[f]={valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\",impliedEdits:d},v[h]={valType:\\\"number\\\",dflt:null,editType:c||\\\"plot\\\",impliedEdits:g},v[p]={valType:\\\"number\\\",dflt:null,editType:c||\\\"plot\\\",impliedEdits:g},v.colorscale={valType:\\\"colorscale\\\",editType:\\\"calc\\\",dflt:l,impliedEdits:{autocolorscale:!1}},v.autocolorscale={valType:\\\"boolean\\\",dflt:!1!==e.autoColorDflt,editType:\\\"calc\\\",impliedEdits:{colorscale:void 0}},v.reversescale={valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},o||(v.showscale={valType:\\\"boolean\\\",dflt:s,editType:\\\"calc\\\"}),v}},{\\\"./scales.js\\\":589}],578:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./scales\\\"),a=t(\\\"./flip_scale\\\");e.exports=function(t,e,r,o){var s=t,l=t._input,c=t._fullInput,u=t.updateStyle;function f(e,n,i){void 0===i&&(i=n),u?u(t._input,r?r+\\\".\\\"+e:e,n):l[e]=n,s[e]=i,c&&t!==t._fullInput&&(u?u(t._fullInput,r?r+\\\".\\\"+e:e,i):c[e]=i)}r&&(s=n.nestedProperty(s,r).get(),l=n.nestedProperty(l,r).get(),c=n.nestedProperty(c,r).get()||{});var h=o+\\\"auto\\\",p=o+\\\"min\\\",d=o+\\\"max\\\",g=s[h],v=s[p],m=s[d],y=s.colorscale;!1===g&&void 0!==v||(v=n.aggNums(Math.min,null,e)),!1===g&&void 0!==m||(m=n.aggNums(Math.max,null,e)),v===m&&(v-=.5,m+=.5),f(p,v),f(d,m),f(h,!1!==g||void 0===v&&void 0===m),s.autocolorscale&&(f(\\\"colorscale\\\",y=v*m<0?i.RdBu:v>=0?i.Reds:i.Blues,s.reversescale?a(y):y),l.autocolorscale||f(\\\"autocolorscale\\\",!1))}},{\\\"../../lib\\\":696,\\\"./flip_scale\\\":582,\\\"./scales\\\":589}],579:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scales\\\");e.exports=n.RdBu},{\\\"./scales\\\":589}],580:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../colorbar/has_colorbar\\\"),o=t(\\\"../colorbar/defaults\\\"),s=t(\\\"./is_valid_scale\\\"),l=t(\\\"./flip_scale\\\");e.exports=function(t,e,r,c,u){var f,h=u.prefix,p=u.cLetter,d=h.slice(0,h.length-1),g=h?i.nestedProperty(t,d).get()||{}:t,v=h?i.nestedProperty(e,d).get()||{}:e,m=g[p+\\\"min\\\"],y=g[p+\\\"max\\\"],x=g.colorscale;c(h+p+\\\"auto\\\",!(n(m)&&n(y)&&m<y)),c(h+p+\\\"min\\\"),c(h+p+\\\"max\\\"),void 0!==x&&(f=!s(x)),c(h+\\\"autocolorscale\\\",f);var b,_=c(h+\\\"colorscale\\\");(c(h+\\\"reversescale\\\")&&(v.colorscale=l(_)),\\\"marker.line.\\\"!==h)&&(u.noScale||(h&&(b=a(g)),c(h+\\\"showscale\\\",b)&&o(g,v,r)))}},{\\\"../../lib\\\":696,\\\"../colorbar/defaults\\\":574,\\\"../colorbar/has_colorbar\\\":576,\\\"./flip_scale\\\":582,\\\"./is_valid_scale\\\":586,\\\"fast-isnumeric\\\":214}],581:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){for(var n=t.length,i=new Array(n),a=new Array(n),o=0;o<n;o++){var s=t[o];i[o]=e+s[0]*(r-e),a[o]=s[1]}return{domain:i,range:a}}},{}],582:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e,r=t.length,n=new Array(r),i=r-1,a=0;i>=0;i--,a++)e=t[i],n[a]=[1-e[0],e[1]];return n}},{}],583:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scales\\\"),i=t(\\\"./default_scale\\\"),a=t(\\\"./is_valid_scale_array\\\");e.exports=function(t,e){if(e||(e=i),!t)return e;function r(){try{t=n[t]||JSON.parse(t)}catch(r){t=e}}return\\\"string\\\"==typeof t&&(r(),\\\"string\\\"==typeof t&&r()),a(t)?t:e}},{\\\"./default_scale\\\":579,\\\"./is_valid_scale_array\\\":587,\\\"./scales\\\":589}],584:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"./is_valid_scale\\\");e.exports=function(t,e){var r=e?i.nestedProperty(t,e).get()||{}:t,o=r.color,s=!1;if(i.isArrayOrTypedArray(o))for(var l=0;l<o.length;l++)if(n(o[l])){s=!0;break}return i.isPlainObject(r)&&(s||!0===r.showscale||n(r.cmin)&&n(r.cmax)||a(r.colorscale)||i.isPlainObject(r.colorbar))}},{\\\"../../lib\\\":696,\\\"./is_valid_scale\\\":586,\\\"fast-isnumeric\\\":214}],585:[function(t,e,r){\\\"use strict\\\";r.scales=t(\\\"./scales\\\"),r.defaultScale=t(\\\"./default_scale\\\"),r.attributes=t(\\\"./attributes\\\"),r.handleDefaults=t(\\\"./defaults\\\"),r.calc=t(\\\"./calc\\\"),r.hasColorscale=t(\\\"./has_colorscale\\\"),r.isValidScale=t(\\\"./is_valid_scale\\\"),r.getScale=t(\\\"./get_scale\\\"),r.flipScale=t(\\\"./flip_scale\\\"),r.extractScale=t(\\\"./extract_scale\\\"),r.makeColorScaleFunc=t(\\\"./make_color_scale_func\\\")},{\\\"./attributes\\\":577,\\\"./calc\\\":578,\\\"./default_scale\\\":579,\\\"./defaults\\\":580,\\\"./extract_scale\\\":581,\\\"./flip_scale\\\":582,\\\"./get_scale\\\":583,\\\"./has_colorscale\\\":584,\\\"./is_valid_scale\\\":586,\\\"./make_color_scale_func\\\":588,\\\"./scales\\\":589}],586:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./scales\\\"),i=t(\\\"./is_valid_scale_array\\\");e.exports=function(t){return void 0!==n[t]||i(t)}},{\\\"./is_valid_scale_array\\\":587,\\\"./scales\\\":589}],587:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"tinycolor2\\\");e.exports=function(t){var e=0;if(!Array.isArray(t)||t.length<2)return!1;if(!t[0]||!t[t.length-1])return!1;if(0!=+t[0][0]||1!=+t[t.length-1][0])return!1;for(var r=0;r<t.length;r++){var i=t[r];if(2!==i.length||+i[0]<e||!n(i[1]).isValid())return!1;e=+i[0]}return!0}},{tinycolor2:514}],588:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"fast-isnumeric\\\"),o=t(\\\"../color\\\");function s(t){var e={r:t[0],g:t[1],b:t[2],a:t[3]};return i(e).toRgbString()}e.exports=function(t,e){e=e||{};for(var r=t.domain,l=t.range,c=l.length,u=new Array(c),f=0;f<c;f++){var h=i(l[f]).toRgb();u[f]=[h.r,h.g,h.b,h.a]}var p,d=n.scale.linear().domain(r).range(u).clamp(!0),g=e.noNumericCheck,v=e.returnArray;return(p=g&&v?d:g?function(t){return s(d(t))}:v?function(t){return a(t)?d(t):i(t).isValid()?t:o.defaultLine}:function(t){return a(t)?s(d(t)):i(t).isValid()?t:o.defaultLine}).domain=d.domain,p.range=function(){return l},p}},{\\\"../color\\\":570,d3:148,\\\"fast-isnumeric\\\":214,tinycolor2:514}],589:[function(t,e,r){\\\"use strict\\\";e.exports={Greys:[[0,\\\"rgb(0,0,0)\\\"],[1,\\\"rgb(255,255,255)\\\"]],YlGnBu:[[0,\\\"rgb(8,29,88)\\\"],[.125,\\\"rgb(37,52,148)\\\"],[.25,\\\"rgb(34,94,168)\\\"],[.375,\\\"rgb(29,145,192)\\\"],[.5,\\\"rgb(65,182,196)\\\"],[.625,\\\"rgb(127,205,187)\\\"],[.75,\\\"rgb(199,233,180)\\\"],[.875,\\\"rgb(237,248,217)\\\"],[1,\\\"rgb(255,255,217)\\\"]],Greens:[[0,\\\"rgb(0,68,27)\\\"],[.125,\\\"rgb(0,109,44)\\\"],[.25,\\\"rgb(35,139,69)\\\"],[.375,\\\"rgb(65,171,93)\\\"],[.5,\\\"rgb(116,196,118)\\\"],[.625,\\\"rgb(161,217,155)\\\"],[.75,\\\"rgb(199,233,192)\\\"],[.875,\\\"rgb(229,245,224)\\\"],[1,\\\"rgb(247,252,245)\\\"]],YlOrRd:[[0,\\\"rgb(128,0,38)\\\"],[.125,\\\"rgb(189,0,38)\\\"],[.25,\\\"rgb(227,26,28)\\\"],[.375,\\\"rgb(252,78,42)\\\"],[.5,\\\"rgb(253,141,60)\\\"],[.625,\\\"rgb(254,178,76)\\\"],[.75,\\\"rgb(254,217,118)\\\"],[.875,\\\"rgb(255,237,160)\\\"],[1,\\\"rgb(255,255,204)\\\"]],Bluered:[[0,\\\"rgb(0,0,255)\\\"],[1,\\\"rgb(255,0,0)\\\"]],RdBu:[[0,\\\"rgb(5,10,172)\\\"],[.35,\\\"rgb(106,137,247)\\\"],[.5,\\\"rgb(190,190,190)\\\"],[.6,\\\"rgb(220,170,132)\\\"],[.7,\\\"rgb(230,145,90)\\\"],[1,\\\"rgb(178,10,28)\\\"]],Reds:[[0,\\\"rgb(220,220,220)\\\"],[.2,\\\"rgb(245,195,157)\\\"],[.4,\\\"rgb(245,160,105)\\\"],[1,\\\"rgb(178,10,28)\\\"]],Blues:[[0,\\\"rgb(5,10,172)\\\"],[.35,\\\"rgb(40,60,190)\\\"],[.5,\\\"rgb(70,100,245)\\\"],[.6,\\\"rgb(90,120,245)\\\"],[.7,\\\"rgb(106,137,247)\\\"],[1,\\\"rgb(220,220,220)\\\"]],Picnic:[[0,\\\"rgb(0,0,255)\\\"],[.1,\\\"rgb(51,153,255)\\\"],[.2,\\\"rgb(102,204,255)\\\"],[.3,\\\"rgb(153,204,255)\\\"],[.4,\\\"rgb(204,204,255)\\\"],[.5,\\\"rgb(255,255,255)\\\"],[.6,\\\"rgb(255,204,255)\\\"],[.7,\\\"rgb(255,153,255)\\\"],[.8,\\\"rgb(255,102,204)\\\"],[.9,\\\"rgb(255,102,102)\\\"],[1,\\\"rgb(255,0,0)\\\"]],Rainbow:[[0,\\\"rgb(150,0,90)\\\"],[.125,\\\"rgb(0,0,200)\\\"],[.25,\\\"rgb(0,25,255)\\\"],[.375,\\\"rgb(0,152,255)\\\"],[.5,\\\"rgb(44,255,150)\\\"],[.625,\\\"rgb(151,255,0)\\\"],[.75,\\\"rgb(255,234,0)\\\"],[.875,\\\"rgb(255,111,0)\\\"],[1,\\\"rgb(255,0,0)\\\"]],Portland:[[0,\\\"rgb(12,51,131)\\\"],[.25,\\\"rgb(10,136,186)\\\"],[.5,\\\"rgb(242,211,56)\\\"],[.75,\\\"rgb(242,143,56)\\\"],[1,\\\"rgb(217,30,30)\\\"]],Jet:[[0,\\\"rgb(0,0,131)\\\"],[.125,\\\"rgb(0,60,170)\\\"],[.375,\\\"rgb(5,255,255)\\\"],[.625,\\\"rgb(255,255,0)\\\"],[.875,\\\"rgb(250,0,0)\\\"],[1,\\\"rgb(128,0,0)\\\"]],Hot:[[0,\\\"rgb(0,0,0)\\\"],[.3,\\\"rgb(230,0,0)\\\"],[.6,\\\"rgb(255,210,0)\\\"],[1,\\\"rgb(255,255,255)\\\"]],Blackbody:[[0,\\\"rgb(0,0,0)\\\"],[.2,\\\"rgb(230,0,0)\\\"],[.4,\\\"rgb(230,210,0)\\\"],[.7,\\\"rgb(255,255,255)\\\"],[1,\\\"rgb(160,200,255)\\\"]],Earth:[[0,\\\"rgb(0,0,130)\\\"],[.1,\\\"rgb(0,180,180)\\\"],[.2,\\\"rgb(40,210,40)\\\"],[.4,\\\"rgb(230,230,50)\\\"],[.6,\\\"rgb(120,70,20)\\\"],[1,\\\"rgb(255,255,255)\\\"]],Electric:[[0,\\\"rgb(0,0,0)\\\"],[.15,\\\"rgb(30,0,100)\\\"],[.4,\\\"rgb(120,0,100)\\\"],[.6,\\\"rgb(160,90,0)\\\"],[.8,\\\"rgb(230,200,0)\\\"],[1,\\\"rgb(255,250,220)\\\"]],Viridis:[[0,\\\"#440154\\\"],[.06274509803921569,\\\"#48186a\\\"],[.12549019607843137,\\\"#472d7b\\\"],[.18823529411764706,\\\"#424086\\\"],[.25098039215686274,\\\"#3b528b\\\"],[.3137254901960784,\\\"#33638d\\\"],[.3764705882352941,\\\"#2c728e\\\"],[.4392156862745098,\\\"#26828e\\\"],[.5019607843137255,\\\"#21918c\\\"],[.5647058823529412,\\\"#1fa088\\\"],[.6274509803921569,\\\"#28ae80\\\"],[.6901960784313725,\\\"#3fbc73\\\"],[.7529411764705882,\\\"#5ec962\\\"],[.8156862745098039,\\\"#84d44b\\\"],[.8784313725490196,\\\"#addc30\\\"],[.9411764705882353,\\\"#d8e219\\\"],[1,\\\"#fde725\\\"]],Cividis:[[0,\\\"rgb(0,32,76)\\\"],[.058824,\\\"rgb(0,42,102)\\\"],[.117647,\\\"rgb(0,52,110)\\\"],[.176471,\\\"rgb(39,63,108)\\\"],[.235294,\\\"rgb(60,74,107)\\\"],[.294118,\\\"rgb(76,85,107)\\\"],[.352941,\\\"rgb(91,95,109)\\\"],[.411765,\\\"rgb(104,106,112)\\\"],[.470588,\\\"rgb(117,117,117)\\\"],[.529412,\\\"rgb(131,129,120)\\\"],[.588235,\\\"rgb(146,140,120)\\\"],[.647059,\\\"rgb(161,152,118)\\\"],[.705882,\\\"rgb(176,165,114)\\\"],[.764706,\\\"rgb(192,177,109)\\\"],[.823529,\\\"rgb(209,191,102)\\\"],[.882353,\\\"rgb(225,204,92)\\\"],[.941176,\\\"rgb(243,219,79)\\\"],[1,\\\"rgb(255,233,69)\\\"]]}},{}],590:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){var a=(t-r)/(n-r),o=a+e/(n-r),s=(a+o)/2;return\\\"left\\\"===i||\\\"bottom\\\"===i?a:\\\"center\\\"===i||\\\"middle\\\"===i?s:\\\"right\\\"===i||\\\"top\\\"===i?o:a<2/3-s?a:o>4/3-s?o:s}},{}],591:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=[[\\\"sw-resize\\\",\\\"s-resize\\\",\\\"se-resize\\\"],[\\\"w-resize\\\",\\\"move\\\",\\\"e-resize\\\"],[\\\"nw-resize\\\",\\\"n-resize\\\",\\\"ne-resize\\\"]];e.exports=function(t,e,r,a){return t=\\\"left\\\"===r?0:\\\"center\\\"===r?1:\\\"right\\\"===r?2:n.constrain(Math.floor(3*t),0,2),e=\\\"bottom\\\"===a?0:\\\"middle\\\"===a?1:\\\"top\\\"===a?2:n.constrain(Math.floor(3*e),0,2),i[e][t]}},{\\\"../../lib\\\":696}],592:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"mouse-event-offset\\\"),i=t(\\\"has-hover\\\"),a=t(\\\"has-passive-events\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../plots/cartesian/constants\\\"),c=t(\\\"../../constants/interactions\\\"),u=e.exports={};u.align=t(\\\"./align\\\"),u.getCursor=t(\\\"./cursor\\\");var f=t(\\\"./unhover\\\");function h(){var t=document.createElement(\\\"div\\\");t.className=\\\"dragcover\\\";var e=t.style;return e.position=\\\"fixed\\\",e.left=0,e.right=0,e.top=0,e.bottom=0,e.zIndex=999999999,e.background=\\\"none\\\",document.body.appendChild(t),t}function p(t){return n(t.changedTouches?t.changedTouches[0]:t,document.body)}u.unhover=f.wrapped,u.unhoverRaw=f.raw,u.init=function(t){var e,r,n,f,d,g,v,m,y=t.gd,x=1,b=c.DBLCLICKDELAY,_=t.element;y._mouseDownTime||(y._mouseDownTime=0),_.style.pointerEvents=\\\"all\\\",_.onmousedown=k,a?(_._ontouchstart&&_.removeEventListener(\\\"touchstart\\\",_._ontouchstart),_._ontouchstart=k,_.addEventListener(\\\"touchstart\\\",k,{passive:!1})):_.ontouchstart=k;var w=t.clampFn||function(t,e,r){return Math.abs(t)<r&&(t=0),Math.abs(e)<r&&(e=0),[t,e]};function k(a){a.preventDefault(),y._dragged=!1,y._dragging=!0;var o=p(a);e=o[0],r=o[1],v=a.target,g=a,m=2===a.buttons||a.ctrlKey,\\\"undefined\\\"==typeof a.clientX&&\\\"undefined\\\"==typeof a.clientY&&(a.clientX=e,a.clientY=r),(n=(new Date).getTime())-y._mouseDownTime<b?x+=1:(x=1,y._mouseDownTime=n),t.prepFn&&t.prepFn(a,e,r),i&&!m?(d=h()).style.cursor=window.getComputedStyle(_).cursor:i||(d=document,f=window.getComputedStyle(document.documentElement).cursor,document.documentElement.style.cursor=window.getComputedStyle(_).cursor),document.addEventListener(\\\"mousemove\\\",M),document.addEventListener(\\\"mouseup\\\",A),document.addEventListener(\\\"touchmove\\\",M),document.addEventListener(\\\"touchend\\\",A)}function M(n){n.preventDefault();var i=p(n),a=t.minDrag||l.MINDRAG,o=w(i[0]-e,i[1]-r,a),s=o[0],c=o[1];(s||c)&&(y._dragged=!0,u.unhover(y)),y._dragged&&t.moveFn&&!m&&t.moveFn(s,c)}function A(e){if(document.removeEventListener(\\\"mousemove\\\",M),document.removeEventListener(\\\"mouseup\\\",A),document.removeEventListener(\\\"touchmove\\\",M),document.removeEventListener(\\\"touchend\\\",A),e.preventDefault(),i?s.removeElement(d):f&&(d.documentElement.style.cursor=f,f=null),y._dragging){if(y._dragging=!1,(new Date).getTime()-y._mouseDownTime>b&&(x=Math.max(x-1,1)),y._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(x,g),!m){var r;try{r=new MouseEvent(\\\"click\\\",e)}catch(t){var n=p(e);(r=document.createEvent(\\\"MouseEvents\\\")).initMouseEvent(\\\"click\\\",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}v.dispatchEvent(r)}!function(t){t._dragging=!1,t._replotPending&&o.call(\\\"plot\\\",t)}(y),y._dragged=!1}else y._dragged=!1}},u.coverSlip=h},{\\\"../../constants/interactions\\\":672,\\\"../../lib\\\":696,\\\"../../plots/cartesian/constants\\\":750,\\\"../../registry\\\":827,\\\"./align\\\":590,\\\"./cursor\\\":591,\\\"./unhover\\\":593,\\\"has-hover\\\":393,\\\"has-passive-events\\\":394,\\\"mouse-event-offset\\\":419}],593:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/events\\\"),i=t(\\\"../../lib/throttle\\\"),a=t(\\\"../../lib/get_graph_div\\\"),o=t(\\\"../fx/constants\\\"),s=e.exports={};s.wrapped=function(t,e,r){(t=a(t))._fullLayout&&i.clear(t._fullLayout._uid+o.HOVERID),s.raw(t,e,r)},s.raw=function(t,e){var r=t._fullLayout,i=t._hoverdata;e||(e={}),e.target&&!1===n.triggerHandler(t,\\\"plotly_beforehover\\\",e)||(r._hoverlayer.selectAll(\\\"g\\\").remove(),r._hoverlayer.selectAll(\\\"line\\\").remove(),r._hoverlayer.selectAll(\\\"circle\\\").remove(),t._hoverdata=void 0,e.target&&i&&t.emit(\\\"plotly_unhover\\\",{event:e,points:i}))}},{\\\"../../lib/events\\\":684,\\\"../../lib/get_graph_div\\\":691,\\\"../../lib/throttle\\\":721,\\\"../fx/constants\\\":607}],594:[function(t,e,r){\\\"use strict\\\";r.dash={valType:\\\"string\\\",values:[\\\"solid\\\",\\\"dot\\\",\\\"dash\\\",\\\"longdash\\\",\\\"dashdot\\\",\\\"longdashdot\\\"],dflt:\\\"solid\\\",editType:\\\"style\\\"}},{}],595:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"tinycolor2\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../color\\\"),l=t(\\\"../colorscale\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../lib/svg_text_utils\\\"),f=t(\\\"../../constants/xmlns_namespaces\\\"),h=t(\\\"../../constants/alignment\\\").LINE_SPACING,p=t(\\\"../../constants/interactions\\\").DESELECTDIM,d=t(\\\"../../traces/scatter/subtypes\\\"),g=t(\\\"../../traces/scatter/make_bubble_size_func\\\"),v=e.exports={};v.font=function(t,e,r,n){c.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style(\\\"font-family\\\",e),r+1&&t.style(\\\"font-size\\\",r+\\\"px\\\"),n&&t.call(s.fill,n)},v.setPosition=function(t,e,r){t.attr(\\\"x\\\",e).attr(\\\"y\\\",r)},v.setSize=function(t,e,r){t.attr(\\\"width\\\",e).attr(\\\"height\\\",r)},v.setRect=function(t,e,r,n,i){t.call(v.setPosition,e,r).call(v.setSize,n,i)},v.translatePoint=function(t,e,r,n){var a=r.c2p(t.x),o=n.c2p(t.y);return!!(i(a)&&i(o)&&e.node())&&(\\\"text\\\"===e.node().nodeName?e.attr(\\\"x\\\",a).attr(\\\"y\\\",o):e.attr(\\\"transform\\\",\\\"translate(\\\"+a+\\\",\\\"+o+\\\")\\\"),!0)},v.translatePoints=function(t,e,r){t.each(function(t){var i=n.select(this);v.translatePoint(t,i,e,r)})},v.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr(\\\"display\\\",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:\\\"none\\\")},v.hideOutsideRangePoints=function(t,e){if(e._hasClipOnAxisFalse){var r=e.xaxis,i=e.yaxis;t.each(function(e){var a=e[0].trace,o=a.xcalendar,s=a.ycalendar,l=\\\"bar\\\"===a.type?\\\".bartext\\\":\\\".point,.textpoint\\\";t.selectAll(l).each(function(t){v.hideOutsideRangePoint(t,n.select(this),r,i,o,s)})})}},v.crispRound=function(t,e,r){return e&&i(e)?t._context.staticPlot?e:e<1?1:Math.round(e):r||0},v.singleLineStyle=function(t,e,r,n,i){e.style(\\\"fill\\\",\\\"none\\\");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,l=i||a.dash||\\\"\\\";s.stroke(e,n||a.color),v.dashLine(e,l,o)},v.lineGroupStyle=function(t,e,r,i){t.style(\\\"fill\\\",\\\"none\\\").each(function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=e||a.width||0,l=i||a.dash||\\\"\\\";n.select(this).call(s.stroke,r||a.color).call(v.dashLine,l,o)})},v.dashLine=function(t,e,r){r=+r||0,e=v.dashStyle(e,r),t.style({\\\"stroke-dasharray\\\":e,\\\"stroke-width\\\":r+\\\"px\\\"})},v.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return\\\"solid\\\"===t?t=\\\"\\\":\\\"dot\\\"===t?t=r+\\\"px,\\\"+r+\\\"px\\\":\\\"dash\\\"===t?t=3*r+\\\"px,\\\"+3*r+\\\"px\\\":\\\"longdash\\\"===t?t=5*r+\\\"px,\\\"+5*r+\\\"px\\\":\\\"dashdot\\\"===t?t=3*r+\\\"px,\\\"+r+\\\"px,\\\"+r+\\\"px,\\\"+r+\\\"px\\\":\\\"longdashdot\\\"===t&&(t=5*r+\\\"px,\\\"+2*r+\\\"px,\\\"+r+\\\"px,\\\"+2*r+\\\"px\\\"),t},v.singleFillStyle=function(t){var e=(((n.select(t.node()).data()[0]||[])[0]||{}).trace||{}).fillcolor;e&&t.call(s.fill,e)},v.fillGroupStyle=function(t){t.style(\\\"stroke-width\\\",0).each(function(t){n.select(this).call(s.fill,t[0].trace.fillcolor)})};var m=t(\\\"./symbol_defs\\\");v.symbolNames=[],v.symbolFuncs=[],v.symbolNeedLines={},v.symbolNoDot={},v.symbolNoFill={},v.symbolList=[],Object.keys(m).forEach(function(t){var e=m[t];v.symbolList=v.symbolList.concat([e.n,t,e.n+100,t+\\\"-open\\\"]),v.symbolNames[e.n]=t,v.symbolFuncs[e.n]=e.f,e.needLine&&(v.symbolNeedLines[e.n]=!0),e.noDot?v.symbolNoDot[e.n]=!0:v.symbolList=v.symbolList.concat([e.n+200,t+\\\"-dot\\\",e.n+300,t+\\\"-open-dot\\\"]),e.noFill&&(v.symbolNoFill[e.n]=!0)});var y=v.symbolNames.length,x=\\\"M0,0.5L0.5,0L0,-0.5L-0.5,0Z\\\";function b(t,e){var r=t%100;return v.symbolFuncs[r](e)+(t>=200?x:\\\"\\\")}v.symbolNumber=function(t){if(\\\"string\\\"==typeof t){var e=0;t.indexOf(\\\"-open\\\")>0&&(e=100,t=t.replace(\\\"-open\\\",\\\"\\\")),t.indexOf(\\\"-dot\\\")>0&&(e+=200,t=t.replace(\\\"-dot\\\",\\\"\\\")),(t=v.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=y||t>=400?0:Math.floor(Math.max(t,0))};var _={x1:1,x2:0,y1:0,y2:0},w={x1:0,x2:0,y1:1,y2:0},k=n.format(\\\"~.1f\\\"),M={radial:{node:\\\"radialGradient\\\"},radialreversed:{node:\\\"radialGradient\\\",reversed:!0},horizontal:{node:\\\"linearGradient\\\",attrs:_},horizontalreversed:{node:\\\"linearGradient\\\",attrs:_,reversed:!0},vertical:{node:\\\"linearGradient\\\",attrs:w},verticalreversed:{node:\\\"linearGradient\\\",attrs:w,reversed:!0}};v.gradient=function(t,e,r,i,o,l){for(var u=o.length,f=M[i],h=new Array(u),p=0;p<u;p++)f.reversed?h[u-1-p]=[k(100*(1-o[p][0])),o[p][1]]:h[p]=[k(100*o[p][0]),o[p][1]];var d=\\\"g\\\"+e._fullLayout._uid+\\\"-\\\"+r,g=e._fullLayout._defs.select(\\\".gradients\\\").selectAll(\\\"#\\\"+d).data([i+h.join(\\\";\\\")],c.identity);g.exit().remove(),g.enter().append(f.node).each(function(){var t=n.select(this);f.attrs&&t.attr(f.attrs),t.attr(\\\"id\\\",d);var e=t.selectAll(\\\"stop\\\").data(h);e.exit().remove(),e.enter().append(\\\"stop\\\"),e.each(function(t){var e=a(t[1]);n.select(this).attr({offset:t[0]+\\\"%\\\",\\\"stop-color\\\":s.tinyRGB(e),\\\"stop-opacity\\\":e.getAlpha()})})}),t.style(l,\\\"url(#\\\"+d+\\\")\\\").style(l+\\\"-opacity\\\",null)},v.initGradients=function(t){c.ensureSingle(t._fullLayout._defs,\\\"g\\\",\\\"gradients\\\").selectAll(\\\"linearGradient,radialGradient\\\").remove()},v.pointStyle=function(t,e,r){if(t.size()){var i=v.makePointStyleFns(e);t.each(function(t){v.singlePointStyle(t,n.select(this),e,i,r)})}},v.singlePointStyle=function(t,e,r,n,i){var a=r.marker,o=a.line;if(e.style(\\\"opacity\\\",n.selectedOpacityFn?n.selectedOpacityFn(t):void 0===t.mo?a.opacity:t.mo),n.ms2mrc){var l;l=\\\"various\\\"===t.ms||\\\"various\\\"===a.size?3:n.ms2mrc(t.ms),t.mrc=l,n.selectedSizeFn&&(l=t.mrc=n.selectedSizeFn(t));var u=v.symbolNumber(t.mx||a.symbol)||0;t.om=u%200>=100,e.attr(\\\"d\\\",b(u,l))}var f,h,p,d=!1;if(t.so)p=o.outlierwidth,h=o.outliercolor,f=a.outliercolor;else{var g=(o||{}).width;p=(t.mlw+1||g+1||(t.trace?(t.trace.marker.line||{}).width:0)+1)-1||0,h=\\\"mlc\\\"in t?t.mlcc=n.lineScale(t.mlc):c.isArrayOrTypedArray(o.color)?s.defaultLine:o.color,c.isArrayOrTypedArray(a.color)&&(f=s.defaultLine,d=!0),f=\\\"mc\\\"in t?t.mcc=n.markerScale(t.mc):a.color||\\\"rgba(0,0,0,0)\\\",n.selectedColorFn&&(f=n.selectedColorFn(t))}if(t.om)e.call(s.stroke,f).style({\\\"stroke-width\\\":(p||1)+\\\"px\\\",fill:\\\"none\\\"});else{e.style(\\\"stroke-width\\\",p+\\\"px\\\");var m=a.gradient,y=t.mgt;if(y?d=!0:y=m&&m.type,Array.isArray(y)&&(y=y[0],M[y]||(y=0)),y&&\\\"none\\\"!==y){var x=t.mgc;x?d=!0:x=m.color;var _=r.uid;d&&(_+=\\\"-\\\"+t.i),v.gradient(e,i,_,y,[[0,x],[1,f]],\\\"fill\\\")}else s.fill(e,f);p&&s.stroke(e,h)}},v.makePointStyleFns=function(t){var e={},r=t.marker;return e.markerScale=v.tryColorscale(r,\\\"\\\"),e.lineScale=v.tryColorscale(r,\\\"line\\\"),o.traceIs(t,\\\"symbols\\\")&&(e.ms2mrc=d.isBubble(t)?g(t):function(){return(r.size||6)/2}),t.selectedpoints&&c.extendFlat(e,v.makeSelectedPointStyleFns(t)),e},v.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.marker||{},a=r.marker||{},s=n.marker||{},l=i.opacity,u=a.opacity,f=s.opacity,h=void 0!==u,d=void 0!==f;(c.isArrayOrTypedArray(l)||h||d)&&(e.selectedOpacityFn=function(t){var e=void 0===t.mo?i.opacity:t.mo;return t.selected?h?u:e:d?f:p*e});var g=i.color,v=a.color,m=s.color;(v||m)&&(e.selectedColorFn=function(t){var e=t.mcc||g;return t.selected?v||e:m||e});var y=i.size,x=a.size,b=s.size,_=void 0!==x,w=void 0!==b;return o.traceIs(t,\\\"symbols\\\")&&(_||w)&&(e.selectedSizeFn=function(t){var e=t.mrc||y/2;return t.selected?_?x/2:e:w?b/2:e}),e},v.makeSelectedTextStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.textfont||{},a=r.textfont||{},o=n.textfont||{},l=i.color,c=a.color,u=o.color;return e.selectedTextColorFn=function(t){var e=t.tc||l;return t.selected?c||e:u||(c?e:s.addOpacity(e,p))},e},v.selectedPointStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=v.makeSelectedPointStyleFns(e),i=e.marker||{},a=[];r.selectedOpacityFn&&a.push(function(t,e){t.style(\\\"opacity\\\",r.selectedOpacityFn(e))}),r.selectedColorFn&&a.push(function(t,e){s.fill(t,r.selectedColorFn(e))}),r.selectedSizeFn&&a.push(function(t,e){var n=e.mx||i.symbol||0,a=r.selectedSizeFn(e);t.attr(\\\"d\\\",b(v.symbolNumber(n),a)),e.mrc2=a}),a.length&&t.each(function(t){for(var e=n.select(this),r=0;r<a.length;r++)a[r](e,t)})}},v.tryColorscale=function(t,e){var r=e?c.nestedProperty(t,e).get():t;if(r){var n=r.colorscale,i=r.color;if(n&&c.isArrayOrTypedArray(i))return l.makeColorScaleFunc(l.extractScale(n,r.cmin,r.cmax))}return c.identity};var A={start:1,end:-1,middle:0,bottom:1,top:-1};function T(t,e,r,i){var a=n.select(t.node().parentNode),o=-1!==e.indexOf(\\\"top\\\")?\\\"top\\\":-1!==e.indexOf(\\\"bottom\\\")?\\\"bottom\\\":\\\"middle\\\",s=-1!==e.indexOf(\\\"left\\\")?\\\"end\\\":-1!==e.indexOf(\\\"right\\\")?\\\"start\\\":\\\"middle\\\",l=i?i/.8+1:0,c=(u.lineCount(t)-1)*h+1,f=A[s]*l,p=.75*r+A[o]*l+(A[o]-1)*c*r/2;t.attr(\\\"text-anchor\\\",s),a.attr(\\\"transform\\\",\\\"translate(\\\"+f+\\\",\\\"+p+\\\")\\\")}function S(t,e){var r=t.ts||e.textfont.size;return i(r)&&r>0?r:0}v.textPointStyle=function(t,e,r){if(t.size()){var i;if(e.selectedpoints){var a=v.makeSelectedTextStyleFns(e);i=a.selectedTextColorFn}t.each(function(t){var a=n.select(this),o=c.extractOption(t,e,\\\"tx\\\",\\\"text\\\");if(o||0===o){var s=t.tp||e.textposition,l=S(t,e),f=i?i(t):t.tc||e.textfont.color;a.call(v.font,t.tf||e.textfont.family,l,f).text(o).call(u.convertToTspans,r).call(T,s,l,t.mrc)}else a.remove()})}},v.selectedTextStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=v.makeSelectedTextStyleFns(e);t.each(function(t){var i=n.select(this),a=r.selectedTextColorFn(t),o=t.tp||e.textposition,l=S(t,e);s.fill(i,a),T(i,o,l,t.mrc2||t.mrc)})}};var E=.5;function C(t,e,r,i){var a=t[0]-e[0],o=t[1]-e[1],s=r[0]-e[0],l=r[1]-e[1],c=Math.pow(a*a+o*o,E/2),u=Math.pow(s*s+l*l,E/2),f=(u*u*a-c*c*s)*i,h=(u*u*o-c*c*l)*i,p=3*u*(c+u),d=3*c*(c+u);return[[n.round(e[0]+(p&&f/p),2),n.round(e[1]+(p&&h/p),2)],[n.round(e[0]-(d&&f/d),2),n.round(e[1]-(d&&h/d),2)]]}v.smoothopen=function(t,e){if(t.length<3)return\\\"M\\\"+t.join(\\\"L\\\");var r,n=\\\"M\\\"+t[0],i=[];for(r=1;r<t.length-1;r++)i.push(C(t[r-1],t[r],t[r+1],e));for(n+=\\\"Q\\\"+i[0][0]+\\\" \\\"+t[1],r=2;r<t.length-1;r++)n+=\\\"C\\\"+i[r-2][1]+\\\" \\\"+i[r-1][0]+\\\" \\\"+t[r];return n+=\\\"Q\\\"+i[t.length-3][1]+\\\" \\\"+t[t.length-1]},v.smoothclosed=function(t,e){if(t.length<3)return\\\"M\\\"+t.join(\\\"L\\\")+\\\"Z\\\";var r,n=\\\"M\\\"+t[0],i=t.length-1,a=[C(t[i],t[0],t[1],e)];for(r=1;r<i;r++)a.push(C(t[r-1],t[r],t[r+1],e));for(a.push(C(t[i-1],t[i],t[0],e)),r=1;r<=i;r++)n+=\\\"C\\\"+a[r-1][1]+\\\" \\\"+a[r][0]+\\\" \\\"+t[r];return n+=\\\"C\\\"+a[i][1]+\\\" \\\"+a[0][0]+\\\" \\\"+t[0]+\\\"Z\\\"};var L={hv:function(t,e){return\\\"H\\\"+n.round(e[0],2)+\\\"V\\\"+n.round(e[1],2)},vh:function(t,e){return\\\"V\\\"+n.round(e[1],2)+\\\"H\\\"+n.round(e[0],2)},hvh:function(t,e){return\\\"H\\\"+n.round((t[0]+e[0])/2,2)+\\\"V\\\"+n.round(e[1],2)+\\\"H\\\"+n.round(e[0],2)},vhv:function(t,e){return\\\"V\\\"+n.round((t[1]+e[1])/2,2)+\\\"H\\\"+n.round(e[0],2)+\\\"V\\\"+n.round(e[1],2)}},z=function(t,e){return\\\"L\\\"+n.round(e[0],2)+\\\",\\\"+n.round(e[1],2)};v.steps=function(t){var e=L[t]||z;return function(t){for(var r=\\\"M\\\"+n.round(t[0][0],2)+\\\",\\\"+n.round(t[0][1],2),i=1;i<t.length;i++)r+=e(t[i-1],t[i]);return r}},v.makeTester=function(){var t=c.ensureSingleById(n.select(\\\"body\\\"),\\\"svg\\\",\\\"js-plotly-tester\\\",function(t){t.attr(f.svgAttrs).style({position:\\\"absolute\\\",left:\\\"-10000px\\\",top:\\\"-10000px\\\",width:\\\"9000px\\\",height:\\\"9000px\\\",\\\"z-index\\\":\\\"1\\\"})}),e=c.ensureSingle(t,\\\"path\\\",\\\"js-reference-point\\\",function(t){t.attr(\\\"d\\\",\\\"M0,0H1V1H0Z\\\").style({\\\"stroke-width\\\":0,fill:\\\"black\\\"})});v.tester=t,v.testref=e},v.savedBBoxes={};var O=0;function I(t){var e=t.getAttribute(\\\"data-unformatted\\\");if(null!==e)return e+t.getAttribute(\\\"data-math\\\")+t.getAttribute(\\\"text-anchor\\\")+t.getAttribute(\\\"style\\\")}v.bBox=function(t,e,r){var i,a,o;if(r||(r=I(t)),r){if(i=v.savedBBoxes[r])return c.extendFlat({},i)}else if(1===t.childNodes.length){var s=t.childNodes[0];if(r=I(s)){var l=+s.getAttribute(\\\"x\\\")||0,f=+s.getAttribute(\\\"y\\\")||0,h=s.getAttribute(\\\"transform\\\");if(!h){var p=v.bBox(s,!1,r);return l&&(p.left+=l,p.right+=l),f&&(p.top+=f,p.bottom+=f),p}if(r+=\\\"~\\\"+l+\\\"~\\\"+f+\\\"~\\\"+h,i=v.savedBBoxes[r])return c.extendFlat({},i)}}e?a=t:(o=v.tester.node(),a=t.cloneNode(!0),o.appendChild(a)),n.select(a).attr(\\\"transform\\\",null).call(u.positionText,0,0);var d=a.getBoundingClientRect(),g=v.testref.node().getBoundingClientRect();e||o.removeChild(a);var m={height:d.height,width:d.width,left:d.left-g.left,top:d.top-g.top,right:d.right-g.left,bottom:d.bottom-g.top};return O>=1e4&&(v.savedBBoxes={},O=0),r&&(v.savedBBoxes[r]=m),O++,c.extendFlat({},m)},v.setClipUrl=function(t,e){if(e){if(void 0===v.baseUrl){var r=n.select(\\\"base\\\");r.size()&&r.attr(\\\"href\\\")?v.baseUrl=window.location.href.split(\\\"#\\\")[0]:v.baseUrl=\\\"\\\"}t.attr(\\\"clip-path\\\",\\\"url(\\\"+v.baseUrl+\\\"#\\\"+e+\\\")\\\")}else t.attr(\\\"clip-path\\\",null)},v.getTranslate=function(t){var e=(t[t.attr?\\\"attr\\\":\\\"getAttribute\\\"](\\\"transform\\\")||\\\"\\\").replace(/.*\\\\btranslate\\\\((-?\\\\d*\\\\.?\\\\d*)[^-\\\\d]*(-?\\\\d*\\\\.?\\\\d*)[^\\\\d].*/,function(t,e,r){return[e,r].join(\\\" \\\")}).split(\\\" \\\");return{x:+e[0]||0,y:+e[1]||0}},v.setTranslate=function(t,e,r){var n=t.attr?\\\"attr\\\":\\\"getAttribute\\\",i=t.attr?\\\"attr\\\":\\\"setAttribute\\\",a=t[n](\\\"transform\\\")||\\\"\\\";return e=e||0,r=r||0,a=a.replace(/(\\\\btranslate\\\\(.*?\\\\);?)/,\\\"\\\").trim(),a=(a+=\\\" translate(\\\"+e+\\\", \\\"+r+\\\")\\\").trim(),t[i](\\\"transform\\\",a),a},v.getScale=function(t){var e=(t[t.attr?\\\"attr\\\":\\\"getAttribute\\\"](\\\"transform\\\")||\\\"\\\").replace(/.*\\\\bscale\\\\((\\\\d*\\\\.?\\\\d*)[^\\\\d]*(\\\\d*\\\\.?\\\\d*)[^\\\\d].*/,function(t,e,r){return[e,r].join(\\\" \\\")}).split(\\\" \\\");return{x:+e[0]||1,y:+e[1]||1}},v.setScale=function(t,e,r){var n=t.attr?\\\"attr\\\":\\\"getAttribute\\\",i=t.attr?\\\"attr\\\":\\\"setAttribute\\\",a=t[n](\\\"transform\\\")||\\\"\\\";return e=e||1,r=r||1,a=a.replace(/(\\\\bscale\\\\(.*?\\\\);?)/,\\\"\\\").trim(),a=(a+=\\\" scale(\\\"+e+\\\", \\\"+r+\\\")\\\").trim(),t[i](\\\"transform\\\",a),a};var P=/\\\\s*sc.*/;v.setPointGroupScale=function(t,e,r){if(e=e||1,r=r||1,t){var n=1===e&&1===r?\\\"\\\":\\\" scale(\\\"+e+\\\",\\\"+r+\\\")\\\";t.each(function(){var t=(this.getAttribute(\\\"transform\\\")||\\\"\\\").replace(P,\\\"\\\");t=(t+=n).trim(),this.setAttribute(\\\"transform\\\",t)})}};var D=/translate\\\\([^)]*\\\\)\\\\s*$/;v.setTextPointsScale=function(t,e,r){t&&t.each(function(){var t,i=n.select(this),a=i.select(\\\"text\\\");if(a.node()){var o=parseFloat(a.attr(\\\"x\\\")||0),s=parseFloat(a.attr(\\\"y\\\")||0),l=(i.attr(\\\"transform\\\")||\\\"\\\").match(D);t=1===e&&1===r?[]:[\\\"translate(\\\"+o+\\\",\\\"+s+\\\")\\\",\\\"scale(\\\"+e+\\\",\\\"+r+\\\")\\\",\\\"translate(\\\"+-o+\\\",\\\"+-s+\\\")\\\"],l&&t.push(l),i.attr(\\\"transform\\\",t.join(\\\" \\\"))}})}},{\\\"../../constants/alignment\\\":668,\\\"../../constants/interactions\\\":672,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../registry\\\":827,\\\"../../traces/scatter/make_bubble_size_func\\\":1060,\\\"../../traces/scatter/subtypes\\\":1067,\\\"../color\\\":570,\\\"../colorscale\\\":585,\\\"./symbol_defs\\\":596,d3:148,\\\"fast-isnumeric\\\":214,tinycolor2:514}],596:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\");e.exports={circle:{n:0,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",0A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,-\\\"+e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 0,1 \\\"+e+\\\",0Z\\\"}},square:{n:1,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+e+\\\"H\\\"+e+\\\"Z\\\"}},diamond:{n:2,f:function(t){var e=n.round(1.3*t,2);return\\\"M\\\"+e+\\\",0L0,\\\"+e+\\\"L-\\\"+e+\\\",0L0,-\\\"+e+\\\"Z\\\"}},cross:{n:3,f:function(t){var e=n.round(.4*t,2),r=n.round(1.2*t,2);return\\\"M\\\"+r+\\\",\\\"+e+\\\"H\\\"+e+\\\"V\\\"+r+\\\"H-\\\"+e+\\\"V\\\"+e+\\\"H-\\\"+r+\\\"V-\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+r+\\\"H\\\"+e+\\\"V-\\\"+e+\\\"H\\\"+r+\\\"Z\\\"}},x:{n:4,f:function(t){var e=n.round(.8*t/Math.sqrt(2),2),r=\\\"l\\\"+e+\\\",\\\"+e,i=\\\"l\\\"+e+\\\",-\\\"+e,a=\\\"l-\\\"+e+\\\",-\\\"+e,o=\\\"l-\\\"+e+\\\",\\\"+e;return\\\"M0,\\\"+e+r+i+a+i+a+o+a+o+r+o+r+\\\"Z\\\"}},\\\"triangle-up\\\":{n:5,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return\\\"M-\\\"+e+\\\",\\\"+n.round(t/2,2)+\\\"H\\\"+e+\\\"L0,-\\\"+n.round(t,2)+\\\"Z\\\"}},\\\"triangle-down\\\":{n:6,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return\\\"M-\\\"+e+\\\",-\\\"+n.round(t/2,2)+\\\"H\\\"+e+\\\"L0,\\\"+n.round(t,2)+\\\"Z\\\"}},\\\"triangle-left\\\":{n:7,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return\\\"M\\\"+n.round(t/2,2)+\\\",-\\\"+e+\\\"V\\\"+e+\\\"L-\\\"+n.round(t,2)+\\\",0Z\\\"}},\\\"triangle-right\\\":{n:8,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return\\\"M-\\\"+n.round(t/2,2)+\\\",-\\\"+e+\\\"V\\\"+e+\\\"L\\\"+n.round(t,2)+\\\",0Z\\\"}},\\\"triangle-ne\\\":{n:9,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return\\\"M-\\\"+r+\\\",-\\\"+e+\\\"H\\\"+e+\\\"V\\\"+r+\\\"Z\\\"}},\\\"triangle-se\\\":{n:10,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return\\\"M\\\"+e+\\\",-\\\"+r+\\\"V\\\"+e+\\\"H-\\\"+r+\\\"Z\\\"}},\\\"triangle-sw\\\":{n:11,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return\\\"M\\\"+r+\\\",\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+r+\\\"Z\\\"}},\\\"triangle-nw\\\":{n:12,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return\\\"M-\\\"+e+\\\",\\\"+r+\\\"V-\\\"+e+\\\"H\\\"+r+\\\"Z\\\"}},pentagon:{n:13,f:function(t){var e=n.round(.951*t,2),r=n.round(.588*t,2),i=n.round(-t,2),a=n.round(-.309*t,2);return\\\"M\\\"+e+\\\",\\\"+a+\\\"L\\\"+r+\\\",\\\"+n.round(.809*t,2)+\\\"H-\\\"+r+\\\"L-\\\"+e+\\\",\\\"+a+\\\"L0,\\\"+i+\\\"Z\\\"}},hexagon:{n:14,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return\\\"M\\\"+i+\\\",-\\\"+r+\\\"V\\\"+r+\\\"L0,\\\"+e+\\\"L-\\\"+i+\\\",\\\"+r+\\\"V-\\\"+r+\\\"L0,-\\\"+e+\\\"Z\\\"}},hexagon2:{n:15,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return\\\"M-\\\"+r+\\\",\\\"+i+\\\"H\\\"+r+\\\"L\\\"+e+\\\",0L\\\"+r+\\\",-\\\"+i+\\\"H-\\\"+r+\\\"L-\\\"+e+\\\",0Z\\\"}},octagon:{n:16,f:function(t){var e=n.round(.924*t,2),r=n.round(.383*t,2);return\\\"M-\\\"+r+\\\",-\\\"+e+\\\"H\\\"+r+\\\"L\\\"+e+\\\",-\\\"+r+\\\"V\\\"+r+\\\"L\\\"+r+\\\",\\\"+e+\\\"H-\\\"+r+\\\"L-\\\"+e+\\\",\\\"+r+\\\"V-\\\"+r+\\\"Z\\\"}},star:{n:17,f:function(t){var e=1.4*t,r=n.round(.225*e,2),i=n.round(.951*e,2),a=n.round(.363*e,2),o=n.round(.588*e,2),s=n.round(-e,2),l=n.round(-.309*e,2),c=n.round(.118*e,2),u=n.round(.809*e,2);return\\\"M\\\"+r+\\\",\\\"+l+\\\"H\\\"+i+\\\"L\\\"+a+\\\",\\\"+c+\\\"L\\\"+o+\\\",\\\"+u+\\\"L0,\\\"+n.round(.382*e,2)+\\\"L-\\\"+o+\\\",\\\"+u+\\\"L-\\\"+a+\\\",\\\"+c+\\\"L-\\\"+i+\\\",\\\"+l+\\\"H-\\\"+r+\\\"L0,\\\"+s+\\\"Z\\\"}},hexagram:{n:18,f:function(t){var e=n.round(.66*t,2),r=n.round(.38*t,2),i=n.round(.76*t,2);return\\\"M-\\\"+i+\\\",0l-\\\"+r+\\\",-\\\"+e+\\\"h\\\"+i+\\\"l\\\"+r+\\\",-\\\"+e+\\\"l\\\"+r+\\\",\\\"+e+\\\"h\\\"+i+\\\"l-\\\"+r+\\\",\\\"+e+\\\"l\\\"+r+\\\",\\\"+e+\\\"h-\\\"+i+\\\"l-\\\"+r+\\\",\\\"+e+\\\"l-\\\"+r+\\\",-\\\"+e+\\\"h-\\\"+i+\\\"Z\\\"}},\\\"star-triangle-up\\\":{n:19,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o=\\\"A \\\"+a+\\\",\\\"+a+\\\" 0 0 1 \\\";return\\\"M-\\\"+e+\\\",\\\"+r+o+e+\\\",\\\"+r+o+\\\"0,-\\\"+i+o+\\\"-\\\"+e+\\\",\\\"+r+\\\"Z\\\"}},\\\"star-triangle-down\\\":{n:20,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o=\\\"A \\\"+a+\\\",\\\"+a+\\\" 0 0 1 \\\";return\\\"M\\\"+e+\\\",-\\\"+r+o+\\\"-\\\"+e+\\\",-\\\"+r+o+\\\"0,\\\"+i+o+e+\\\",-\\\"+r+\\\"Z\\\"}},\\\"star-square\\\":{n:21,f:function(t){var e=n.round(1.1*t,2),r=n.round(2*t,2),i=\\\"A \\\"+r+\\\",\\\"+r+\\\" 0 0 1 \\\";return\\\"M-\\\"+e+\\\",-\\\"+e+i+\\\"-\\\"+e+\\\",\\\"+e+i+e+\\\",\\\"+e+i+e+\\\",-\\\"+e+i+\\\"-\\\"+e+\\\",-\\\"+e+\\\"Z\\\"}},\\\"star-diamond\\\":{n:22,f:function(t){var e=n.round(1.4*t,2),r=n.round(1.9*t,2),i=\\\"A \\\"+r+\\\",\\\"+r+\\\" 0 0 1 \\\";return\\\"M-\\\"+e+\\\",0\\\"+i+\\\"0,\\\"+e+i+e+\\\",0\\\"+i+\\\"0,-\\\"+e+i+\\\"-\\\"+e+\\\",0Z\\\"}},\\\"diamond-tall\\\":{n:23,f:function(t){var e=n.round(.7*t,2),r=n.round(1.4*t,2);return\\\"M0,\\\"+r+\\\"L\\\"+e+\\\",0L0,-\\\"+r+\\\"L-\\\"+e+\\\",0Z\\\"}},\\\"diamond-wide\\\":{n:24,f:function(t){var e=n.round(1.4*t,2),r=n.round(.7*t,2);return\\\"M0,\\\"+r+\\\"L\\\"+e+\\\",0L0,-\\\"+r+\\\"L-\\\"+e+\\\",0Z\\\"}},hourglass:{n:25,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"H-\\\"+e+\\\"L\\\"+e+\\\",-\\\"+e+\\\"H-\\\"+e+\\\"Z\\\"},noDot:!0},bowtie:{n:26,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"V-\\\"+e+\\\"L-\\\"+e+\\\",\\\"+e+\\\"V-\\\"+e+\\\"Z\\\"},noDot:!0},\\\"circle-cross\\\":{n:27,f:function(t){var e=n.round(t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e+\\\"M\\\"+e+\\\",0H-\\\"+e+\\\"M\\\"+e+\\\",0A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,-\\\"+e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 0,1 \\\"+e+\\\",0Z\\\"},needLine:!0,noDot:!0},\\\"circle-x\\\":{n:28,f:function(t){var e=n.round(t,2),r=n.round(t/Math.sqrt(2),2);return\\\"M\\\"+r+\\\",\\\"+r+\\\"L-\\\"+r+\\\",-\\\"+r+\\\"M\\\"+r+\\\",-\\\"+r+\\\"L-\\\"+r+\\\",\\\"+r+\\\"M\\\"+e+\\\",0A\\\"+e+\\\",\\\"+e+\\\" 0 1,1 0,-\\\"+e+\\\"A\\\"+e+\\\",\\\"+e+\\\" 0 0,1 \\\"+e+\\\",0Z\\\"},needLine:!0,noDot:!0},\\\"square-cross\\\":{n:29,f:function(t){var e=n.round(t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e+\\\"M\\\"+e+\\\",0H-\\\"+e+\\\"M\\\"+e+\\\",\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+e+\\\"H\\\"+e+\\\"Z\\\"},needLine:!0,noDot:!0},\\\"square-x\\\":{n:30,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"L-\\\"+e+\\\",-\\\"+e+\\\"M\\\"+e+\\\",-\\\"+e+\\\"L-\\\"+e+\\\",\\\"+e+\\\"M\\\"+e+\\\",\\\"+e+\\\"H-\\\"+e+\\\"V-\\\"+e+\\\"H\\\"+e+\\\"Z\\\"},needLine:!0,noDot:!0},\\\"diamond-cross\\\":{n:31,f:function(t){var e=n.round(1.3*t,2);return\\\"M\\\"+e+\\\",0L0,\\\"+e+\\\"L-\\\"+e+\\\",0L0,-\\\"+e+\\\"ZM0,-\\\"+e+\\\"V\\\"+e+\\\"M-\\\"+e+\\\",0H\\\"+e},needLine:!0,noDot:!0},\\\"diamond-x\\\":{n:32,f:function(t){var e=n.round(1.3*t,2),r=n.round(.65*t,2);return\\\"M\\\"+e+\\\",0L0,\\\"+e+\\\"L-\\\"+e+\\\",0L0,-\\\"+e+\\\"ZM-\\\"+r+\\\",-\\\"+r+\\\"L\\\"+r+\\\",\\\"+r+\\\"M-\\\"+r+\\\",\\\"+r+\\\"L\\\"+r+\\\",-\\\"+r},needLine:!0,noDot:!0},\\\"cross-thin\\\":{n:33,f:function(t){var e=n.round(1.4*t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e+\\\"M\\\"+e+\\\",0H-\\\"+e},needLine:!0,noDot:!0,noFill:!0},\\\"x-thin\\\":{n:34,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"L-\\\"+e+\\\",-\\\"+e+\\\"M\\\"+e+\\\",-\\\"+e+\\\"L-\\\"+e+\\\",\\\"+e},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(t){var e=n.round(1.2*t,2),r=n.round(.85*t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e+\\\"M\\\"+e+\\\",0H-\\\"+e+\\\"M\\\"+r+\\\",\\\"+r+\\\"L-\\\"+r+\\\",-\\\"+r+\\\"M\\\"+r+\\\",-\\\"+r+\\\"L-\\\"+r+\\\",\\\"+r},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(t){var e=n.round(t/2,2),r=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+r+\\\"V-\\\"+r+\\\"m-\\\"+r+\\\",0V\\\"+r+\\\"M\\\"+r+\\\",\\\"+e+\\\"H-\\\"+r+\\\"m0,-\\\"+r+\\\"H\\\"+r},needLine:!0,noFill:!0},\\\"y-up\\\":{n:37,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return\\\"M-\\\"+e+\\\",\\\"+i+\\\"L0,0M\\\"+e+\\\",\\\"+i+\\\"L0,0M0,-\\\"+r+\\\"L0,0\\\"},needLine:!0,noDot:!0,noFill:!0},\\\"y-down\\\":{n:38,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return\\\"M-\\\"+e+\\\",-\\\"+i+\\\"L0,0M\\\"+e+\\\",-\\\"+i+\\\"L0,0M0,\\\"+r+\\\"L0,0\\\"},needLine:!0,noDot:!0,noFill:!0},\\\"y-left\\\":{n:39,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return\\\"M\\\"+i+\\\",\\\"+e+\\\"L0,0M\\\"+i+\\\",-\\\"+e+\\\"L0,0M-\\\"+r+\\\",0L0,0\\\"},needLine:!0,noDot:!0,noFill:!0},\\\"y-right\\\":{n:40,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return\\\"M-\\\"+i+\\\",\\\"+e+\\\"L0,0M-\\\"+i+\\\",-\\\"+e+\\\"L0,0M\\\"+r+\\\",0L0,0\\\"},needLine:!0,noDot:!0,noFill:!0},\\\"line-ew\\\":{n:41,f:function(t){var e=n.round(1.4*t,2);return\\\"M\\\"+e+\\\",0H-\\\"+e},needLine:!0,noDot:!0,noFill:!0},\\\"line-ns\\\":{n:42,f:function(t){var e=n.round(1.4*t,2);return\\\"M0,\\\"+e+\\\"V-\\\"+e},needLine:!0,noDot:!0,noFill:!0},\\\"line-ne\\\":{n:43,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",-\\\"+e+\\\"L-\\\"+e+\\\",\\\"+e},needLine:!0,noDot:!0,noFill:!0},\\\"line-nw\\\":{n:44,f:function(t){var e=n.round(t,2);return\\\"M\\\"+e+\\\",\\\"+e+\\\"L-\\\"+e+\\\",-\\\"+e},needLine:!0,noDot:!0,noFill:!0}}},{d3:148}],597:[function(t,e,r){\\\"use strict\\\";e.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\\\"}}}},{}],598:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"./compute_error\\\");function s(t,e,r,i){var s=e[\\\"error_\\\"+i]||{},l=[];if(s.visible&&-1!==[\\\"linear\\\",\\\"log\\\"].indexOf(r.type)){for(var c=o(s),u=0;u<t.length;u++){var f=t[u],h=f.i;if(void 0===h)h=u;else if(null===h)continue;var p=f[i];if(n(r.c2l(p))){var d=c(p,h);if(n(d[0])&&n(d[1])){var g=f[i+\\\"s\\\"]=p-d[0],v=f[i+\\\"h\\\"]=p+d[1];l.push(g,v)}}}var m=a.findExtremes(r,l,{padded:!0}),y=r._id;e._extremes[y].min=e._extremes[y].min.concat(m.min),e._extremes[y].max=e._extremes[y].max.concat(m.max)}}e.exports=function(t){for(var e=t.calcdata,r=0;r<e.length;r++){var n=e[r],o=n[0].trace;if(!0===o.visible&&i.traceIs(o,\\\"errorBarsOK\\\")){var l=a.getFromId(t,o.xaxis),c=a.getFromId(t,o.yaxis);s(n,o,l,\\\"x\\\"),s(n,o,c,\\\"y\\\")}}}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"./compute_error\\\":599,\\\"fast-isnumeric\\\":214}],599:[function(t,e,r){\\\"use strict\\\";function n(t,e){return\\\"percent\\\"===t?function(t){return Math.abs(t*e/100)}:\\\"constant\\\"===t?function(){return Math.abs(e)}:\\\"sqrt\\\"===t?function(t){return Math.sqrt(Math.abs(t))}:void 0}e.exports=function(t){var e=t.type,r=t.symmetric;if(\\\"data\\\"===e){var i=t.array||[];if(r)return function(t,e){var r=+i[e];return[r,r]};var a=t.arrayminus||[];return function(t,e){var r=+i[e],n=+a[e];return isNaN(r)&&isNaN(n)?[NaN,NaN]:[n||0,r||0]}}var o=n(e,t.value),s=n(e,t.valueminus);return r||void 0===t.valueminus?function(t){var e=o(t);return[e,e]}:function(t){return[s(t),o(t)]}}},{}],600:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../plot_api/plot_template\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){var c=\\\"error_\\\"+l.axis,u=o.newContainer(e,c),f=t[c]||{};function h(t,e){return a.coerce(f,u,s,t,e)}if(!1!==h(\\\"visible\\\",void 0!==f.array||void 0!==f.value||\\\"sqrt\\\"===f.type)){var p=h(\\\"type\\\",\\\"array\\\"in f?\\\"data\\\":\\\"percent\\\"),d=!0;\\\"sqrt\\\"!==p&&(d=h(\\\"symmetric\\\",!((\\\"data\\\"===p?\\\"arrayminus\\\":\\\"valueminus\\\")in f))),\\\"data\\\"===p?(h(\\\"array\\\"),h(\\\"traceref\\\"),d||(h(\\\"arrayminus\\\"),h(\\\"tracerefminus\\\"))):\\\"percent\\\"!==p&&\\\"constant\\\"!==p||(h(\\\"value\\\"),d||h(\\\"valueminus\\\"));var g=\\\"copy_\\\"+l.inherit+\\\"style\\\";if(l.inherit)(e[\\\"error_\\\"+l.inherit]||{}).visible&&h(g,!(f.color||n(f.thickness)||n(f.width)));l.inherit&&u[g]||(h(\\\"color\\\",r),h(\\\"thickness\\\"),h(\\\"width\\\",i.traceIs(e,\\\"gl3d\\\")?0:4))}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../registry\\\":827,\\\"./attributes\\\":597,\\\"fast-isnumeric\\\":214}],601:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plot_api/edit_types\\\").overrideAll,a=t(\\\"./attributes\\\"),o={error_x:n.extendFlat({},a),error_y:n.extendFlat({},a)};delete o.error_x.copy_zstyle,delete o.error_y.copy_zstyle,delete o.error_y.copy_ystyle;var s={error_x:n.extendFlat({},a),error_y:n.extendFlat({},a),error_z:n.extendFlat({},a)};delete s.error_x.copy_ystyle,delete s.error_y.copy_ystyle,delete s.error_z.copy_ystyle,delete s.error_z.copy_zstyle,e.exports={moduleType:\\\"component\\\",name:\\\"errorbars\\\",schema:{traces:{scatter:o,bar:o,histogram:o,scatter3d:i(s,\\\"calc\\\",\\\"nested\\\"),scattergl:i(o,\\\"calc\\\",\\\"nested\\\")}},supplyDefaults:t(\\\"./defaults\\\"),calc:t(\\\"./calc\\\"),makeComputeError:t(\\\"./compute_error\\\"),plot:t(\\\"./plot\\\"),style:t(\\\"./style\\\"),hoverInfo:function(t,e,r){(e.error_y||{}).visible&&(r.yerr=t.yh-t.y,e.error_y.symmetric||(r.yerrneg=t.y-t.ys));(e.error_x||{}).visible&&(r.xerr=t.xh-t.x,e.error_x.symmetric||(r.xerrneg=t.x-t.xs))}}},{\\\"../../lib\\\":696,\\\"../../plot_api/edit_types\\\":727,\\\"./attributes\\\":597,\\\"./calc\\\":598,\\\"./compute_error\\\":599,\\\"./defaults\\\":600,\\\"./plot\\\":602,\\\"./style\\\":603}],602:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../drawing\\\"),o=t(\\\"../../traces/scatter/subtypes\\\");e.exports=function(t,e,r){var s=e.xaxis,l=e.yaxis,c=r&&r.duration>0;t.each(function(t){var u,f=t[0].trace,h=f.error_x||{},p=f.error_y||{};f.ids&&(u=function(t){return t.id});var d=o.hasMarkers(f)&&f.marker.maxdisplayed>0;p.visible||h.visible||(t=[]);var g=n.select(this).selectAll(\\\"g.errorbar\\\").data(t,u);if(g.exit().remove(),t.length){h.visible||g.selectAll(\\\"path.xerror\\\").remove(),p.visible||g.selectAll(\\\"path.yerror\\\").remove(),g.style(\\\"opacity\\\",1);var v=g.enter().append(\\\"g\\\").classed(\\\"errorbar\\\",!0);c&&v.style(\\\"opacity\\\",0).transition().duration(r.duration).style(\\\"opacity\\\",1),a.setClipUrl(g,e.layerClipId),g.each(function(t){var e=n.select(this),a=function(t,e,r){var n={x:e.c2p(t.x),y:r.c2p(t.y)};void 0!==t.yh&&(n.yh=r.c2p(t.yh),n.ys=r.c2p(t.ys),i(n.ys)||(n.noYS=!0,n.ys=r.c2p(t.ys,!0)));void 0!==t.xh&&(n.xh=e.c2p(t.xh),n.xs=e.c2p(t.xs),i(n.xs)||(n.noXS=!0,n.xs=e.c2p(t.xs,!0)));return n}(t,s,l);if(!d||t.vis){var o,u=e.select(\\\"path.yerror\\\");if(p.visible&&i(a.x)&&i(a.yh)&&i(a.ys)){var f=p.width;o=\\\"M\\\"+(a.x-f)+\\\",\\\"+a.yh+\\\"h\\\"+2*f+\\\"m-\\\"+f+\\\",0V\\\"+a.ys,a.noYS||(o+=\\\"m-\\\"+f+\\\",0h\\\"+2*f),!u.size()?u=e.append(\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").classed(\\\"yerror\\\",!0):c&&(u=u.transition().duration(r.duration).ease(r.easing)),u.attr(\\\"d\\\",o)}else u.remove();var g=e.select(\\\"path.xerror\\\");if(h.visible&&i(a.y)&&i(a.xh)&&i(a.xs)){var v=(h.copy_ystyle?p:h).width;o=\\\"M\\\"+a.xh+\\\",\\\"+(a.y-v)+\\\"v\\\"+2*v+\\\"m0,-\\\"+v+\\\"H\\\"+a.xs,a.noXS||(o+=\\\"m0,-\\\"+v+\\\"v\\\"+2*v),!g.size()?g=e.append(\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").classed(\\\"xerror\\\",!0):c&&(g=g.transition().duration(r.duration).ease(r.easing)),g.attr(\\\"d\\\",o)}else g.remove()}})}})}},{\\\"../../traces/scatter/subtypes\\\":1067,\\\"../drawing\\\":595,d3:148,\\\"fast-isnumeric\\\":214}],603:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../color\\\");e.exports=function(t){t.each(function(t){var e=t[0].trace,r=e.error_y||{},a=e.error_x||{},o=n.select(this);o.selectAll(\\\"path.yerror\\\").style(\\\"stroke-width\\\",r.thickness+\\\"px\\\").call(i.stroke,r.color),a.copy_ystyle&&(a=r),o.selectAll(\\\"path.xerror\\\").style(\\\"stroke-width\\\",a.thickness+\\\"px\\\").call(i.stroke,a.color)})}},{\\\"../color\\\":570,d3:148}],604:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\");e.exports={hoverlabel:{bgcolor:{valType:\\\"color\\\",arrayOk:!0,editType:\\\"none\\\"},bordercolor:{valType:\\\"color\\\",arrayOk:!0,editType:\\\"none\\\"},font:n({arrayOk:!0,editType:\\\"none\\\"}),namelength:{valType:\\\"integer\\\",min:-1,arrayOk:!0,editType:\\\"none\\\"},editType:\\\"calc\\\"}}},{\\\"../../plots/font_attributes\\\":771}],605:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\");function a(t,e,r,i){i=i||n.identity,Array.isArray(t)&&(e[0][r]=i(t))}e.exports=function(t){var e=t.calcdata,r=t._fullLayout;function o(t){return function(e){return n.coerceHoverinfo({hoverinfo:e},{_module:t._module},r)}}for(var s=0;s<e.length;s++){var l=e[s],c=l[0].trace;if(!i.traceIs(c,\\\"pie\\\")){var u=i.traceIs(c,\\\"2dMap\\\")?a:n.fillArray;u(c.hoverinfo,l,\\\"hi\\\",o(c)),c.hoverlabel&&(u(c.hoverlabel.bgcolor,l,\\\"hbg\\\"),u(c.hoverlabel.bordercolor,l,\\\"hbc\\\"),u(c.hoverlabel.font.size,l,\\\"hts\\\"),u(c.hoverlabel.font.color,l,\\\"htc\\\"),u(c.hoverlabel.font.family,l,\\\"htf\\\"),u(c.hoverlabel.namelength,l,\\\"hnl\\\"))}}}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827}],606:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"./hover\\\").hover;e.exports=function(t,e,r){var a=n.getComponentMethod(\\\"annotations\\\",\\\"onClick\\\")(t,t._hoverdata);function o(){t.emit(\\\"plotly_click\\\",{points:t._hoverdata,event:e})}void 0!==r&&i(t,e,r,!0),t._hoverdata&&e&&e.target&&(a&&a.then?a.then(o):o(),e.stopImmediatePropagation&&e.stopImmediatePropagation())}},{\\\"../../registry\\\":827,\\\"./hover\\\":610}],607:[function(t,e,r){\\\"use strict\\\";e.exports={YANGLE:60,HOVERARROWSIZE:6,HOVERTEXTPAD:3,HOVERFONTSIZE:13,HOVERFONT:\\\"Arial, sans-serif\\\",HOVERMINTIME:50,HOVERID:\\\"-hover\\\"}},{}],608:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"./hoverlabel_defaults\\\");e.exports=function(t,e,r,o){a(t,e,function(r,a){return n.coerce(t,e,i,r,a)},o.hoverlabel)}},{\\\"../../lib\\\":696,\\\"./attributes\\\":604,\\\"./hoverlabel_defaults\\\":611}],609:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");r.getSubplot=function(t){return t.subplot||t.xaxis+t.yaxis||t.geo},r.isTraceInSubplots=function(t,e){if(\\\"splom\\\"===t.type){for(var n=t.xaxes||[],i=t.yaxes||[],a=0;a<n.length;a++)for(var o=0;o<i.length;o++)if(-1!==e.indexOf(n[a]+i[o]))return!0;return!1}return-1!==e.indexOf(r.getSubplot(t))},r.flat=function(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)r[n]=e;return r},r.p2c=function(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)r[n]=t[n].p2c(e);return r},r.getDistanceFunction=function(t,e,n,i){return\\\"closest\\\"===t?i||r.quadrature(e,n):\\\"x\\\"===t?e:n},r.getClosest=function(t,e,r){if(!1!==r.index)r.index>=0&&r.index<t.length?r.distance=0:r.index=!1;else for(var n=0;n<t.length;n++){var i=e(t[n]);i<=r.distance&&(r.index=n,r.distance=i)}return r},r.inbox=function(t,e,r){return t*e<0||0===t?r:1/0},r.quadrature=function(t,e){return function(r){var n=t(r),i=e(r);return Math.sqrt(n*n+i*i)}},r.makeEventData=function(t,e,n){var i=\\\"index\\\"in t?t.index:t.pointNumber,a={data:e._input,fullData:e,curveNumber:e.index,pointNumber:i};if(e._indexToPoints){var o=e._indexToPoints[i];1===o.length?a.pointIndex=o[0]:a.pointIndices=o}else a.pointIndex=i;return e._module.eventData?a=e._module.eventData(a,t,e,n,i):(\\\"xVal\\\"in t?a.x=t.xVal:\\\"x\\\"in t&&(a.x=t.x),\\\"yVal\\\"in t?a.y=t.yVal:\\\"y\\\"in t&&(a.y=t.y),t.xa&&(a.xaxis=t.xa),t.ya&&(a.yaxis=t.ya),void 0!==t.zLabelVal&&(a.z=t.zLabelVal)),r.appendArrayPointValue(a,e,i),a},r.appendArrayPointValue=function(t,e,r){var i=e._arrayAttrs;if(i)for(var s=0;s<i.length;s++){var l=i[s],c=a(l);if(void 0===t[c]){var u=o(n.nestedProperty(e,l).get(),r);void 0!==u&&(t[c]=u)}}},r.appendArrayMultiPointValues=function(t,e,r){var i=e._arrayAttrs;if(i)for(var s=0;s<i.length;s++){var l=i[s],c=a(l);if(void 0===t[c]){for(var u=n.nestedProperty(e,l).get(),f=new Array(r.length),h=0;h<r.length;h++)f[h]=o(u,r[h]);t[c]=f}}};var i={ids:\\\"id\\\",locations:\\\"location\\\",labels:\\\"label\\\",values:\\\"value\\\",\\\"marker.colors\\\":\\\"color\\\"};function a(t){return i[t]||t}function o(t,e){return Array.isArray(e)?Array.isArray(t)&&Array.isArray(t[e[0]])?t[e[0]][e[1]]:void 0:t[e]}},{\\\"../../lib\\\":696}],610:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"tinycolor2\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../lib/events\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../../lib/override_cursor\\\"),u=t(\\\"../drawing\\\"),f=t(\\\"../color\\\"),h=t(\\\"../dragelement\\\"),p=t(\\\"../../plots/cartesian/axes\\\"),d=t(\\\"../../registry\\\"),g=t(\\\"./helpers\\\"),v=t(\\\"./constants\\\"),m=v.YANGLE,y=Math.PI*m/180,x=1/Math.sin(y),b=Math.cos(y),_=Math.sin(y),w=v.HOVERARROWSIZE,k=v.HOVERTEXTPAD;function M(t,e,r){var i=e.hovermode,a=e.rotateLabels,s=e.bgColor,c=e.container,h=e.outerContainer,p=e.commonLabelOpts||{},d=e.fontFamily||v.HOVERFONT,g=e.fontSize||v.HOVERFONTSIZE,y=t[0],x=y.xa,b=y.ya,_=\\\"y\\\"===i?\\\"yLabel\\\":\\\"xLabel\\\",M=y[_],A=(String(M)||\\\"\\\").split(\\\" \\\")[0],T=h.node().getBoundingClientRect(),S=T.top,E=T.width,C=T.height,L=void 0!==M&&y.distance<=e.hoverdistance&&(\\\"x\\\"===i||\\\"y\\\"===i);if(L){var z,O,I=!0;for(z=0;z<t.length;z++){I&&void 0===t[z].zLabel&&(I=!1),O=t[z].hoverinfo||t[z].trace.hoverinfo;var P=Array.isArray(O)?O:O.split(\\\"+\\\");if(-1===P.indexOf(\\\"all\\\")&&-1===P.indexOf(i)){L=!1;break}}I&&(L=!1)}var D=c.selectAll(\\\"g.axistext\\\").data(L?[0]:[]);D.enter().append(\\\"g\\\").classed(\\\"axistext\\\",!0),D.exit().remove(),D.each(function(){var e=n.select(this),a=o.ensureSingle(e,\\\"path\\\",\\\"\\\",function(t){t.style({\\\"stroke-width\\\":\\\"1px\\\"})}),s=o.ensureSingle(e,\\\"text\\\",\\\"\\\",function(t){t.attr(\\\"data-notex\\\",1)}),c=p.bgcolor||f.defaultLine,h=p.bordercolor||f.contrast(c),v=f.contrast(c);a.style({fill:c,stroke:h}),s.text(M).call(u.font,p.font.family||d,p.font.size||g,p.font.color||v).call(l.positionText,0,0).call(l.convertToTspans,r),e.attr(\\\"transform\\\",\\\"\\\");var m=s.node().getBoundingClientRect();if(\\\"x\\\"===i){s.attr(\\\"text-anchor\\\",\\\"middle\\\").call(l.positionText,0,\\\"top\\\"===x.side?S-m.bottom-w-k:S-m.top+w+k);var T=\\\"top\\\"===x.side?\\\"-\\\":\\\"\\\";a.attr(\\\"d\\\",\\\"M0,0L\\\"+w+\\\",\\\"+T+w+\\\"H\\\"+(k+m.width/2)+\\\"v\\\"+T+(2*k+m.height)+\\\"H-\\\"+(k+m.width/2)+\\\"V\\\"+T+w+\\\"H-\\\"+w+\\\"Z\\\"),e.attr(\\\"transform\\\",\\\"translate(\\\"+(x._offset+(y.x0+y.x1)/2)+\\\",\\\"+(b._offset+(\\\"top\\\"===x.side?0:b._length))+\\\")\\\")}else{s.attr(\\\"text-anchor\\\",\\\"right\\\"===b.side?\\\"start\\\":\\\"end\\\").call(l.positionText,(\\\"right\\\"===b.side?1:-1)*(k+w),S-m.top-m.height/2);var E=\\\"right\\\"===b.side?\\\"\\\":\\\"-\\\";a.attr(\\\"d\\\",\\\"M0,0L\\\"+E+w+\\\",\\\"+w+\\\"V\\\"+(k+m.height/2)+\\\"h\\\"+E+(2*k+m.width)+\\\"V-\\\"+(k+m.height/2)+\\\"H\\\"+E+w+\\\"V-\\\"+w+\\\"Z\\\"),e.attr(\\\"transform\\\",\\\"translate(\\\"+(x._offset+(\\\"right\\\"===b.side?x._length:0))+\\\",\\\"+(b._offset+(y.y0+y.y1)/2)+\\\")\\\")}t=t.filter(function(t){return void 0!==t.zLabelVal||(t[_]||\\\"\\\").split(\\\" \\\")[0]===A})});var R=c.selectAll(\\\"g.hovertext\\\").data(t,function(t){return[t.trace.index,t.index,t.x0,t.y0,t.name,t.attr,t.xa,t.ya||\\\"\\\"].join(\\\",\\\")});return R.enter().append(\\\"g\\\").classed(\\\"hovertext\\\",!0).each(function(){var t=n.select(this);t.append(\\\"rect\\\").call(f.fill,f.addOpacity(s,.8)),t.append(\\\"text\\\").classed(\\\"name\\\",!0),t.append(\\\"path\\\").style(\\\"stroke-width\\\",\\\"1px\\\"),t.append(\\\"text\\\").classed(\\\"nums\\\",!0).call(u.font,d,g)}),R.exit().remove(),R.each(function(t){var e=n.select(this).attr(\\\"transform\\\",\\\"\\\"),o=\\\"\\\",c=\\\"\\\",h=t.bgcolor||t.color,p=f.combine(f.opacity(h)?h:f.defaultLine,s),v=f.combine(f.opacity(t.color)?t.color:f.defaultLine,s),y=t.borderColor||f.contrast(p);if(void 0!==t.nameOverride&&(t.name=t.nameOverride),t.name){o=l.plainText(t.name||\\\"\\\");var x=Math.round(t.nameLength);x>-1&&o.length>x&&(o=x>3?o.substr(0,x-3)+\\\"...\\\":o.substr(0,x))}void 0!==t.zLabel?(void 0!==t.xLabel&&(c+=\\\"x: \\\"+t.xLabel+\\\"<br>\\\"),void 0!==t.yLabel&&(c+=\\\"y: \\\"+t.yLabel+\\\"<br>\\\"),c+=(c?\\\"z: \\\":\\\"\\\")+t.zLabel):L&&t[i+\\\"Label\\\"]===M?c=t[(\\\"x\\\"===i?\\\"y\\\":\\\"x\\\")+\\\"Label\\\"]||\\\"\\\":void 0===t.xLabel?void 0!==t.yLabel&&(c=t.yLabel):c=void 0===t.yLabel?t.xLabel:\\\"(\\\"+t.xLabel+\\\", \\\"+t.yLabel+\\\")\\\",!t.text&&0!==t.text||Array.isArray(t.text)||(c+=(c?\\\"<br>\\\":\\\"\\\")+t.text),void 0!==t.extraText&&(c+=(c?\\\"<br>\\\":\\\"\\\")+t.extraText),\\\"\\\"===c&&(\\\"\\\"===o&&e.remove(),c=o);var b=e.select(\\\"text.nums\\\").call(u.font,t.fontFamily||d,t.fontSize||g,t.fontColor||y).text(c).attr(\\\"data-notex\\\",1).call(l.positionText,0,0).call(l.convertToTspans,r),_=e.select(\\\"text.name\\\"),A=0;o&&o!==c?(_.call(u.font,t.fontFamily||d,t.fontSize||g,v).text(o).attr(\\\"data-notex\\\",1).call(l.positionText,0,0).call(l.convertToTspans,r),A=_.node().getBoundingClientRect().width+2*k):(_.remove(),e.select(\\\"rect\\\").remove()),e.select(\\\"path\\\").style({fill:p,stroke:y});var T,z,O=b.node().getBoundingClientRect(),I=t.xa._offset+(t.x0+t.x1)/2,P=t.ya._offset+(t.y0+t.y1)/2,D=Math.abs(t.x1-t.x0),R=Math.abs(t.y1-t.y0),B=O.width+w+k+A;t.ty0=S-O.top,t.bx=O.width+2*k,t.by=O.height+2*k,t.anchor=\\\"start\\\",t.txwidth=O.width,t.tx2width=A,t.offset=0,a?(t.pos=I,T=P+R/2+B<=C,z=P-R/2-B>=0,\\\"top\\\"!==t.idealAlign&&T||!z?T?(P+=R/2,t.anchor=\\\"start\\\"):t.anchor=\\\"middle\\\":(P-=R/2,t.anchor=\\\"end\\\")):(t.pos=P,T=I+D/2+B<=E,z=I-D/2-B>=0,\\\"left\\\"!==t.idealAlign&&T||!z?T?(I+=D/2,t.anchor=\\\"start\\\"):t.anchor=\\\"middle\\\":(I-=D/2,t.anchor=\\\"end\\\")),b.attr(\\\"text-anchor\\\",t.anchor),A&&_.attr(\\\"text-anchor\\\",t.anchor),e.attr(\\\"transform\\\",\\\"translate(\\\"+I+\\\",\\\"+P+\\\")\\\"+(a?\\\"rotate(\\\"+m+\\\")\\\":\\\"\\\"))}),R}function A(t,e){t.each(function(t){var r=n.select(this);if(t.del)r.remove();else{var i=\\\"end\\\"===t.anchor?-1:1,a=r.select(\\\"text.nums\\\"),o={start:1,end:-1,middle:0}[t.anchor],s=o*(w+k),c=s+o*(t.txwidth+k),f=0,h=t.offset;\\\"middle\\\"===t.anchor&&(s-=t.tx2width/2,c+=t.txwidth/2+k),e&&(h*=-_,f=t.offset*b),r.select(\\\"path\\\").attr(\\\"d\\\",\\\"middle\\\"===t.anchor?\\\"M-\\\"+(t.bx/2+t.tx2width/2)+\\\",\\\"+(h-t.by/2)+\\\"h\\\"+t.bx+\\\"v\\\"+t.by+\\\"h-\\\"+t.bx+\\\"Z\\\":\\\"M0,0L\\\"+(i*w+f)+\\\",\\\"+(w+h)+\\\"v\\\"+(t.by/2-w)+\\\"h\\\"+i*t.bx+\\\"v-\\\"+t.by+\\\"H\\\"+(i*w+f)+\\\"V\\\"+(h-w)+\\\"Z\\\"),a.call(l.positionText,s+f,h+t.ty0-t.by/2+k),t.tx2width&&(r.select(\\\"text.name\\\").call(l.positionText,c+o*k+f,h+t.ty0-t.by/2+k),r.select(\\\"rect\\\").call(u.setRect,c+(o-1)*t.tx2width/2+f,h-t.by/2-1,t.tx2width,t.by+2))}})}function T(t,e){var r=t.index,n=t.trace||{},i=t.cd[0],a=t.cd[r]||{},s=Array.isArray(r)?function(t,e){return o.castOption(i,r,t)||o.extractOption({},n,\\\"\\\",e)}:function(t,e){return o.extractOption(a,n,t,e)};function l(e,r,n){var i=s(r,n);i&&(t[e]=i)}if(l(\\\"hoverinfo\\\",\\\"hi\\\",\\\"hoverinfo\\\"),l(\\\"bgcolor\\\",\\\"hbg\\\",\\\"hoverlabel.bgcolor\\\"),l(\\\"borderColor\\\",\\\"hbc\\\",\\\"hoverlabel.bordercolor\\\"),l(\\\"fontFamily\\\",\\\"htf\\\",\\\"hoverlabel.font.family\\\"),l(\\\"fontSize\\\",\\\"hts\\\",\\\"hoverlabel.font.size\\\"),l(\\\"fontColor\\\",\\\"htc\\\",\\\"hoverlabel.font.color\\\"),l(\\\"nameLength\\\",\\\"hnl\\\",\\\"hoverlabel.namelength\\\"),t.posref=\\\"y\\\"===e?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=o.constrain(t.x0,0,t.xa._length),t.x1=o.constrain(t.x1,0,t.xa._length),t.y0=o.constrain(t.y0,0,t.ya._length),t.y1=o.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel=\\\"xLabel\\\"in t?t.xLabel:p.hoverLabelText(t.xa,t.xLabelVal),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel=\\\"yLabel\\\"in t?t.yLabel:p.hoverLabelText(t.ya,t.yLabelVal),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||\\\"log\\\"===t.xa.type&&t.xerr<=0)){var c=p.tickText(t.xa,t.xa.c2l(t.xerr),\\\"hover\\\").text;void 0!==t.xerrneg?t.xLabel+=\\\" +\\\"+c+\\\" / -\\\"+p.tickText(t.xa,t.xa.c2l(t.xerrneg),\\\"hover\\\").text:t.xLabel+=\\\" \\\\xb1 \\\"+c,\\\"x\\\"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||\\\"log\\\"===t.ya.type&&t.yerr<=0)){var u=p.tickText(t.ya,t.ya.c2l(t.yerr),\\\"hover\\\").text;void 0!==t.yerrneg?t.yLabel+=\\\" +\\\"+u+\\\" / -\\\"+p.tickText(t.ya,t.ya.c2l(t.yerrneg),\\\"hover\\\").text:t.yLabel+=\\\" \\\\xb1 \\\"+u,\\\"y\\\"===e&&(t.distance+=1)}var f=t.hoverinfo||t.trace.hoverinfo;return\\\"all\\\"!==f&&(-1===(f=Array.isArray(f)?f:f.split(\\\"+\\\")).indexOf(\\\"x\\\")&&(t.xLabel=void 0),-1===f.indexOf(\\\"y\\\")&&(t.yLabel=void 0),-1===f.indexOf(\\\"z\\\")&&(t.zLabel=void 0),-1===f.indexOf(\\\"text\\\")&&(t.text=void 0),-1===f.indexOf(\\\"name\\\")&&(t.name=void 0)),t}function S(t,e){var r,n,i=e.container,o=e.fullLayout,s=e.event,l=!!t.hLinePoint,c=!!t.vLinePoint;if(i.selectAll(\\\".spikeline\\\").remove(),c||l){var h=f.combine(o.plot_bgcolor,o.paper_bgcolor);if(l){var p,d,g=t.hLinePoint;r=g&&g.xa,\\\"cursor\\\"===(n=g&&g.ya).spikesnap?(p=s.pointerX,d=s.pointerY):(p=r._offset+g.x,d=n._offset+g.y);var v,m,y=a.readability(g.color,h)<1.5?f.contrast(h):g.color,x=n.spikemode,b=n.spikethickness,_=n.spikecolor||y,w=n._boundingBox,k=(w.left+w.right)/2<p?w.right:w.left;-1===x.indexOf(\\\"toaxis\\\")&&-1===x.indexOf(\\\"across\\\")||(-1!==x.indexOf(\\\"toaxis\\\")&&(v=k,m=p),-1!==x.indexOf(\\\"across\\\")&&(v=n._counterSpan[0],m=n._counterSpan[1]),i.insert(\\\"line\\\",\\\":first-child\\\").attr({x1:v,x2:m,y1:d,y2:d,\\\"stroke-width\\\":b,stroke:_,\\\"stroke-dasharray\\\":u.dashStyle(n.spikedash,b)}).classed(\\\"spikeline\\\",!0).classed(\\\"crisp\\\",!0),i.insert(\\\"line\\\",\\\":first-child\\\").attr({x1:v,x2:m,y1:d,y2:d,\\\"stroke-width\\\":b+2,stroke:h}).classed(\\\"spikeline\\\",!0).classed(\\\"crisp\\\",!0)),-1!==x.indexOf(\\\"marker\\\")&&i.insert(\\\"circle\\\",\\\":first-child\\\").attr({cx:k+(\\\"right\\\"!==n.side?b:-b),cy:d,r:b,fill:_}).classed(\\\"spikeline\\\",!0)}if(c){var M,A,T=t.vLinePoint;r=T&&T.xa,n=T&&T.ya,\\\"cursor\\\"===r.spikesnap?(M=s.pointerX,A=s.pointerY):(M=r._offset+T.x,A=n._offset+T.y);var S,E,C=a.readability(T.color,h)<1.5?f.contrast(h):T.color,L=r.spikemode,z=r.spikethickness,O=r.spikecolor||C,I=r._boundingBox,P=(I.top+I.bottom)/2<A?I.bottom:I.top;-1===L.indexOf(\\\"toaxis\\\")&&-1===L.indexOf(\\\"across\\\")||(-1!==L.indexOf(\\\"toaxis\\\")&&(S=P,E=A),-1!==L.indexOf(\\\"across\\\")&&(S=r._counterSpan[0],E=r._counterSpan[1]),i.insert(\\\"line\\\",\\\":first-child\\\").attr({x1:M,x2:M,y1:S,y2:E,\\\"stroke-width\\\":z,stroke:O,\\\"stroke-dasharray\\\":u.dashStyle(r.spikedash,z)}).classed(\\\"spikeline\\\",!0).classed(\\\"crisp\\\",!0),i.insert(\\\"line\\\",\\\":first-child\\\").attr({x1:M,x2:M,y1:S,y2:E,\\\"stroke-width\\\":z+2,stroke:h}).classed(\\\"spikeline\\\",!0).classed(\\\"crisp\\\",!0)),-1!==L.indexOf(\\\"marker\\\")&&i.insert(\\\"circle\\\",\\\":first-child\\\").attr({cx:M,cy:P-(\\\"top\\\"!==r.side?z:-z),r:z,fill:O}).classed(\\\"spikeline\\\",!0)}}}function E(t,e){return!e||(e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint)}r.hover=function(t,e,r,a){t=o.getGraphDiv(t),o.throttle(t._fullLayout._uid+v.HOVERID,v.HOVERMINTIME,function(){!function(t,e,r,a){r||(r=\\\"xy\\\");var l=Array.isArray(r)?r:[r],u=t._fullLayout,v=u._plots||[],m=v[r],y=u._has(\\\"cartesian\\\");if(m){var b=m.overlays.map(function(t){return t.id});l=l.concat(b)}for(var _=l.length,w=new Array(_),k=new Array(_),C=!1,L=0;L<_;L++){var z=l[L],O=v[z];if(O)C=!0,w[L]=p.getFromId(t,O.xaxis._id),k[L]=p.getFromId(t,O.yaxis._id);else{var I=u[z]._subplot;w[L]=I.xaxis,k[L]=I.yaxis}}var P=e.hovermode||u.hovermode;P&&!C&&(P=\\\"closest\\\");if(-1===[\\\"x\\\",\\\"y\\\",\\\"closest\\\"].indexOf(P)||!t.calcdata||t.querySelector(\\\".zoombox\\\")||t._dragging)return h.unhoverRaw(t,e);var D,R,B,F,N,j,V,U,q,H,G,W,Y,X=-1===u.hoverdistance?1/0:u.hoverdistance,Z=-1===u.spikedistance?1/0:u.spikedistance,$=[],J=[],K={hLinePoint:null,vLinePoint:null},Q=!1;if(Array.isArray(e))for(P=\\\"array\\\",B=0;B<e.length;B++)N=t.calcdata[e[B].curveNumber||0],j=N[0].trace,\\\"skip\\\"!==N[0].trace.hoverinfo&&(J.push(N),\\\"h\\\"===j.orientation&&(Q=!0));else{for(F=0;F<t.calcdata.length;F++)N=t.calcdata[F],\\\"skip\\\"!==(j=N[0].trace).hoverinfo&&g.isTraceInSubplots(j,l)&&(J.push(N),\\\"h\\\"===j.orientation&&(Q=!0));var tt,et,rt=!e.target;if(rt)tt=\\\"xpx\\\"in e?e.xpx:w[0]._length/2,et=\\\"ypx\\\"in e?e.ypx:k[0]._length/2;else{if(!1===s.triggerHandler(t,\\\"plotly_beforehover\\\",e))return;var nt=e.target.getBoundingClientRect();if(tt=e.clientX-nt.left,et=e.clientY-nt.top,tt<0||tt>w[0]._length||et<0||et>k[0]._length)return h.unhoverRaw(t,e)}if(e.pointerX=tt+w[0]._offset,e.pointerY=et+k[0]._offset,D=\\\"xval\\\"in e?g.flat(l,e.xval):g.p2c(w,tt),R=\\\"yval\\\"in e?g.flat(l,e.yval):g.p2c(k,et),!i(D[0])||!i(R[0]))return o.warn(\\\"Fx.hover failed\\\",e,t),h.unhoverRaw(t,e)}var it=1/0;for(F=0;F<J.length;F++)if((N=J[F])&&N[0]&&N[0].trace&&!0===N[0].trace.visible&&(j=N[0].trace,-1===[\\\"carpet\\\",\\\"contourcarpet\\\"].indexOf(j._module.name))){if(\\\"splom\\\"===j.type?V=l[U=0]:(V=g.getSubplot(j),U=l.indexOf(V)),q=P,W={cd:N,trace:j,xa:w[U],ya:k[U],maxHoverDistance:X,maxSpikeDistance:Z,index:!1,distance:Math.min(it,X),spikeDistance:1/0,xSpike:void 0,ySpike:void 0,color:f.defaultLine,name:j.name,x0:void 0,x1:void 0,y0:void 0,y1:void 0,xLabelVal:void 0,yLabelVal:void 0,zLabelVal:void 0,text:void 0},u[V]&&(W.subplot=u[V]._subplot),u._splomScenes&&u._splomScenes[j.uid]&&(W.scene=u._splomScenes[j.uid]),Y=$.length,\\\"array\\\"===q){var at=e[F];\\\"pointNumber\\\"in at?(W.index=at.pointNumber,q=\\\"closest\\\"):(q=\\\"\\\",\\\"xval\\\"in at&&(H=at.xval,q=\\\"x\\\"),\\\"yval\\\"in at&&(G=at.yval,q=q?\\\"closest\\\":\\\"y\\\"))}else H=D[U],G=R[U];if(0!==X)if(j._module&&j._module.hoverPoints){var ot=j._module.hoverPoints(W,H,G,q,u._hoverlayer);if(ot)for(var st,lt=0;lt<ot.length;lt++)st=ot[lt],i(st.x0)&&i(st.y0)&&$.push(T(st,P))}else o.log(\\\"Unrecognized trace type in hover:\\\",j);if(\\\"closest\\\"===P&&$.length>Y&&($.splice(0,Y),it=$[0].distance),y&&0!==Z&&0===$.length){W.distance=Z,W.index=!1;var ct=j._module.hoverPoints(W,H,G,\\\"closest\\\",u._hoverlayer);if(ct&&(ct=ct.filter(function(t){return t.spikeDistance<=Z})),ct&&ct.length){var ut,ft=ct.filter(function(t){return t.xa.showspikes});if(ft.length){var ht=ft[0];i(ht.x0)&&i(ht.y0)&&(ut=vt(ht),(!K.vLinePoint||K.vLinePoint.spikeDistance>ut.spikeDistance)&&(K.vLinePoint=ut))}var pt=ct.filter(function(t){return t.ya.showspikes});if(pt.length){var dt=pt[0];i(dt.x0)&&i(dt.y0)&&(ut=vt(dt),(!K.hLinePoint||K.hLinePoint.spikeDistance>ut.spikeDistance)&&(K.hLinePoint=ut))}}}}function gt(t,e){for(var r,n=null,i=1/0,a=0;a<t.length;a++)(r=t[a].spikeDistance)<i&&r<=e&&(n=t[a],i=r);return n}function vt(t){return t?{xa:t.xa,ya:t.ya,x:void 0!==t.xSpike?t.xSpike:(t.x0+t.x1)/2,y:void 0!==t.ySpike?t.ySpike:(t.y0+t.y1)/2,distance:t.distance,spikeDistance:t.spikeDistance,curveNumber:t.trace.index,color:t.color,pointNumber:t.index}:null}var mt={fullLayout:u,container:u._hoverlayer,outerContainer:u._paperdiv,event:e},yt=t._spikepoints,xt={vLinePoint:K.vLinePoint,hLinePoint:K.hLinePoint};if(t._spikepoints=xt,y&&0!==Z&&0!==$.length){var bt=$.filter(function(t){return t.ya.showspikes}),_t=gt(bt,Z);K.hLinePoint=vt(_t);var wt=$.filter(function(t){return t.xa.showspikes}),kt=gt(wt,Z);K.vLinePoint=vt(kt)}if(0===$.length){var Mt=h.unhoverRaw(t,e);return!y||null===K.hLinePoint&&null===K.vLinePoint||E(yt)&&S(K,mt),Mt}y&&E(yt)&&S(K,mt);$.sort(function(t,e){return t.distance-e.distance});var At=t._hoverdata,Tt=[];for(B=0;B<$.length;B++){var St=$[B];Tt.push(g.makeEventData(St,St.trace,St.cd))}t._hoverdata=Tt;var Et=\\\"y\\\"===P&&(J.length>1||$.length>1)||\\\"closest\\\"===P&&Q&&$.length>1,Ct=f.combine(u.plot_bgcolor||f.background,u.paper_bgcolor),Lt={hovermode:P,rotateLabels:Et,bgColor:Ct,container:u._hoverlayer,outerContainer:u._paperdiv,commonLabelOpts:u.hoverlabel,hoverdistance:u.hoverdistance},zt=M($,Lt,t);if(function(t,e,r){var n,i,a,o,s,l,c,u=0,f=1,h=t.map(function(t,n){var i=t[e],a=\\\"x\\\"===i._id.charAt(0),o=i.range;return!n&&o&&o[0]>o[1]!==a&&(f=-1),[{i:n,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(a?x:1)/2,pmin:0,pmax:a?r.width:r.height}]}).sort(function(t,e){return t[0].posref-e[0].posref||f*(e[0].traceIndex-t[0].traceIndex)});function p(t){var e=t[0],r=t[t.length-1];if(i=e.pmin-e.pos-e.dp+e.size,a=r.pos+r.dp+r.size-e.pmax,i>.01){for(s=t.length-1;s>=0;s--)t[s].dp+=i;n=!1}if(!(a<.01)){if(i<-.01){for(s=t.length-1;s>=0;s--)t[s].dp-=a;n=!1}if(n){var c=0;for(o=0;o<t.length;o++)(l=t[o]).pos+l.dp+l.size>e.pmax&&c++;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos>e.pmax-1&&(l.del=!0,c--);for(o=0;o<t.length&&!(c<=0);o++)if((l=t[o]).pos<e.pmin+1)for(l.del=!0,c--,a=2*l.size,s=t.length-1;s>=0;s--)t[s].dp-=a;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos+l.dp+l.size>e.pmax&&(l.del=!0,c--)}}}for(;!n&&u<=t.length;){for(u++,n=!0,o=0;o<h.length-1;){var d=h[o],g=h[o+1],v=d[d.length-1],m=g[0];if((i=v.pos+v.dp+v.size-m.pos-m.dp+m.size)>.01&&v.pmin===m.pmin&&v.pmax===m.pmax){for(s=g.length-1;s>=0;s--)g[s].dp+=i;for(d.push.apply(d,g),h.splice(o+1,1),c=0,s=d.length-1;s>=0;s--)c+=d[s].dp;for(a=c/d.length,s=d.length-1;s>=0;s--)d[s].dp-=a;n=!1}else o++}h.forEach(p)}for(o=h.length-1;o>=0;o--){var y=h[o];for(s=y.length-1;s>=0;s--){var b=y[s],_=t[b.i];_.offset=b.dp,_.del=b.del}}}($,Et?\\\"xa\\\":\\\"ya\\\",u),A(zt,Et),e.target&&e.target.tagName){var Ot=d.getComponentMethod(\\\"annotations\\\",\\\"hasClickToShow\\\")(t,Tt);c(n.select(e.target),Ot?\\\"pointer\\\":\\\"\\\")}if(!e.target||a||!function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber))return!0}return!1}(t,0,At))return;At&&t.emit(\\\"plotly_unhover\\\",{event:e,points:At});t.emit(\\\"plotly_hover\\\",{event:e,points:t._hoverdata,xaxes:w,yaxes:k,xvals:D,yvals:R})}(t,e,r,a)})},r.loneHover=function(t,e){var r={color:t.color||f.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,trace:{index:0,hoverinfo:\\\"\\\"},xa:{_offset:0},ya:{_offset:0},index:0},i=n.select(e.container),a=e.outerContainer?n.select(e.outerContainer):i,o={hovermode:\\\"closest\\\",rotateLabels:!1,bgColor:e.bgColor||f.background,container:i,outerContainer:a},s=M([r],o,e.gd);return A(s,o.rotateLabels),s.node()},r.multiHovers=function(t,e){Array.isArray(t)||(t=[t]);var r=t.map(function(t){return{color:t.color||f.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,trace:{index:0,hoverinfo:\\\"\\\"},xa:{_offset:0},ya:{_offset:0},index:0}}),i=n.select(e.container),a=e.outerContainer?n.select(e.outerContainer):i,o={hovermode:\\\"closest\\\",rotateLabels:!1,bgColor:e.bgColor||f.background,container:i,outerContainer:a},s=M(r,o,e.gd),l=0;return s.sort(function(t,e){return t.y0-e.y0}).each(function(t){var e=t.y0-t.by/2;t.offset=e-5<l?l-e+5:0,l=e+t.by+t.offset}),A(s,o.rotateLabels),s.node()}},{\\\"../../lib\\\":696,\\\"../../lib/events\\\":684,\\\"../../lib/override_cursor\\\":707,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"./constants\\\":607,\\\"./helpers\\\":609,d3:148,\\\"fast-isnumeric\\\":214,tinycolor2:514}],611:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e,r,i){r(\\\"hoverlabel.bgcolor\\\",(i=i||{}).bgcolor),r(\\\"hoverlabel.bordercolor\\\",i.bordercolor),r(\\\"hoverlabel.namelength\\\",i.namelength),n.coerceFont(r,\\\"hoverlabel.font\\\",i.font)}},{\\\"../../lib\\\":696}],612:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../dragelement\\\"),o=t(\\\"./helpers\\\"),s=t(\\\"./layout_attributes\\\"),l=t(\\\"./hover\\\");e.exports={moduleType:\\\"component\\\",name:\\\"fx\\\",constants:t(\\\"./constants\\\"),schema:{layout:s},attributes:t(\\\"./attributes\\\"),layoutAttributes:s,supplyLayoutGlobalDefaults:t(\\\"./layout_global_defaults\\\"),supplyDefaults:t(\\\"./defaults\\\"),supplyLayoutDefaults:t(\\\"./layout_defaults\\\"),calc:t(\\\"./calc\\\"),getDistanceFunction:o.getDistanceFunction,getClosest:o.getClosest,inbox:o.inbox,quadrature:o.quadrature,appendArrayPointValue:o.appendArrayPointValue,castHoverOption:function(t,e,r){return i.castOption(t,e,\\\"hoverlabel.\\\"+r)},castHoverinfo:function(t,e,r){return i.castOption(t,r,\\\"hoverinfo\\\",function(r){return i.coerceHoverinfo({hoverinfo:r},{_module:t._module},e)})},hover:l.hover,unhover:a.unhover,loneHover:l.loneHover,multiHovers:l.multiHovers,loneUnhover:function(t){var e=i.isD3Selection(t)?t:n.select(t);e.selectAll(\\\"g.hovertext\\\").remove(),e.selectAll(\\\".spikeline\\\").remove()},click:t(\\\"./click\\\")}},{\\\"../../lib\\\":696,\\\"../dragelement\\\":592,\\\"./attributes\\\":604,\\\"./calc\\\":605,\\\"./click\\\":606,\\\"./constants\\\":607,\\\"./defaults\\\":608,\\\"./helpers\\\":609,\\\"./hover\\\":610,\\\"./layout_attributes\\\":613,\\\"./layout_defaults\\\":614,\\\"./layout_global_defaults\\\":615,d3:148}],613:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"../../plots/font_attributes\\\")({editType:\\\"none\\\"});i.family.dflt=n.HOVERFONT,i.size.dflt=n.HOVERFONTSIZE,e.exports={clickmode:{valType:\\\"flaglist\\\",flags:[\\\"event\\\",\\\"select\\\"],dflt:\\\"event\\\",editType:\\\"plot\\\",extras:[\\\"none\\\"]},dragmode:{valType:\\\"enumerated\\\",values:[\\\"zoom\\\",\\\"pan\\\",\\\"select\\\",\\\"lasso\\\",\\\"orbit\\\",\\\"turntable\\\"],dflt:\\\"zoom\\\",editType:\\\"modebar\\\"},hovermode:{valType:\\\"enumerated\\\",values:[\\\"x\\\",\\\"y\\\",\\\"closest\\\",!1],editType:\\\"modebar\\\"},hoverdistance:{valType:\\\"integer\\\",min:-1,dflt:20,editType:\\\"none\\\"},spikedistance:{valType:\\\"integer\\\",min:-1,dflt:20,editType:\\\"none\\\"},hoverlabel:{bgcolor:{valType:\\\"color\\\",editType:\\\"none\\\"},bordercolor:{valType:\\\"color\\\",editType:\\\"none\\\"},font:i,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\\\":771,\\\"./constants\\\":607}],614:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\");e.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}var o,s=a(\\\"clickmode\\\");\\\"select\\\"===a(\\\"dragmode\\\")&&a(\\\"selectdirection\\\"),e._has(\\\"cartesian\\\")?s.indexOf(\\\"select\\\")>-1?o=\\\"closest\\\":(e._isHoriz=function(t){for(var e=!0,r=0;r<t.length;r++){var n=t[r];if(\\\"h\\\"!==n.orientation){e=!1;break}}return e}(r),o=e._isHoriz?\\\"y\\\":\\\"x\\\"):o=\\\"closest\\\",a(\\\"hovermode\\\",o)&&(a(\\\"hoverdistance\\\"),a(\\\"spikedistance\\\"));var l=e._has(\\\"mapbox\\\"),c=e._has(\\\"geo\\\"),u=e._basePlotModules.length;\\\"zoom\\\"===e.dragmode&&((l||c)&&1===u||l&&c&&2===u)&&(e.dragmode=\\\"pan\\\")}},{\\\"../../lib\\\":696,\\\"./layout_attributes\\\":613}],615:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./hoverlabel_defaults\\\"),a=t(\\\"./layout_attributes\\\");e.exports=function(t,e){i(t,e,function(r,i){return n.coerce(t,e,a,r,i)})}},{\\\"../../lib\\\":696,\\\"./hoverlabel_defaults\\\":611,\\\"./layout_attributes\\\":613}],616:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../lib/regex\\\").counter,a=t(\\\"../../plots/domain\\\").attributes,o=t(\\\"../../plots/cartesian/constants\\\").idRegex,s=t(\\\"../../plot_api/plot_template\\\"),l={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:[i(\\\"xy\\\").toString(),\\\"\\\"],editType:\\\"plot\\\"},editType:\\\"plot\\\"},xaxes:{valType:\\\"info_array\\\",freeLength:!0,items:{valType:\\\"enumerated\\\",values:[o.x.toString(),\\\"\\\"],editType:\\\"plot\\\"},editType:\\\"plot\\\"},yaxes:{valType:\\\"info_array\\\",freeLength:!0,items:{valType:\\\"enumerated\\\",values:[o.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:a({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 c(t,e,r){var n=e[r+\\\"axes\\\"],i=Object.keys((t._splomAxes||{})[r]||{});return Array.isArray(n)?n:i.length?i:void 0}function u(t,e,r,n,i,a){var o=e(t+\\\"gap\\\",r),s=e(\\\"domain.\\\"+t);e(t+\\\"side\\\",n);for(var l=new Array(i),c=s[0],u=(s[1]-c)/(i-o),f=u*(1-o),h=0;h<i;h++){var p=c+u*h;l[a?i-1-h:h]=[p,p+f]}return l}function f(t,e,r,n,i){var a,o=new Array(r);function s(t,r){-1!==e.indexOf(r)&&void 0===n[r]?(o[t]=r,n[r]=t):o[t]=\\\"\\\"}if(Array.isArray(t))for(a=0;a<r;a++)s(a,t[a]);else for(s(0,i),a=1;a<r;a++)s(a,i+(a+1));return o}e.exports={moduleType:\\\"component\\\",name:\\\"grid\\\",schema:{layout:{grid:l}},layoutAttributes:l,sizeDefaults:function(t,e){var r=t.grid||{},i=c(e,r,\\\"x\\\"),a=c(e,r,\\\"y\\\");if(t.grid||i||a){var o,f,h=Array.isArray(r.subplots)&&Array.isArray(r.subplots[0]),p=Array.isArray(i),d=Array.isArray(a),g=p&&i!==r.xaxes&&d&&a!==r.yaxes;h?(o=r.subplots.length,f=r.subplots[0].length):(d&&(o=a.length),p&&(f=i.length));var v=s.newContainer(e,\\\"grid\\\"),m=M(\\\"rows\\\",o),y=M(\\\"columns\\\",f);if(m*y>1){h||p||d||\\\"independent\\\"===M(\\\"pattern\\\")&&(h=!0),v._hasSubplotGrid=h;var x,b,_=\\\"top to bottom\\\"===M(\\\"roworder\\\"),w=h?.2:.1,k=h?.3:.1;g&&e._splomGridDflt&&(x=e._splomGridDflt.xside,b=e._splomGridDflt.yside),v._domains={x:u(\\\"x\\\",M,w,x,y),y:u(\\\"y\\\",M,k,b,m,_)}}else delete e.grid}function M(t,e){return n.coerce(r,v,l,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,u,h=t.grid||{},p=e._subplots,d=r._hasSubplotGrid,g=r.rows,v=r.columns,m=\\\"independent\\\"===r.pattern,y=r._axisMap={};if(d){var x=h.subplots||[];l=r.subplots=new Array(g);var b=1;for(n=0;n<g;n++){var _=l[n]=new Array(v),w=x[n]||[];for(i=0;i<v;i++)if(m?(s=1===b?\\\"xy\\\":\\\"x\\\"+b+\\\"y\\\"+b,b++):s=w[i],_[i]=\\\"\\\",-1!==p.cartesian.indexOf(s)){if(u=s.indexOf(\\\"y\\\"),a=s.slice(0,u),o=s.slice(u),void 0!==y[a]&&y[a]!==i||void 0!==y[o]&&y[o]!==n)continue;_[i]=s,y[a]=i,y[o]=n}}}else{var k=c(e,h,\\\"x\\\"),M=c(e,h,\\\"y\\\");r.xaxes=f(k,p.xaxis,v,y,\\\"x\\\"),r.yaxes=f(M,p.yaxis,g,y,\\\"y\\\")}var A=r._anchors={},T=\\\"top to bottom\\\"===r.roworder;for(var S in y){var E,C,L,z=S.charAt(0),O=r[z+\\\"side\\\"];if(O.length<8)A[S]=\\\"free\\\";else if(\\\"x\\\"===z){if(\\\"t\\\"===O.charAt(0)===T?(E=0,C=1,L=g):(E=g-1,C=-1,L=-1),d){var I=y[S];for(n=E;n!==L;n+=C)if((s=l[n][I])&&(u=s.indexOf(\\\"y\\\"),s.slice(0,u)===S)){A[S]=s.slice(u);break}}else for(n=E;n!==L;n+=C)if(o=r.yaxes[n],-1!==p.cartesian.indexOf(S+o)){A[S]=o;break}}else if(\\\"l\\\"===O.charAt(0)?(E=0,C=1,L=v):(E=v-1,C=-1,L=-1),d){var P=y[S];for(n=E;n!==L;n+=C)if((s=l[P][n])&&(u=s.indexOf(\\\"y\\\"),s.slice(u)===S)){A[S]=s.slice(0,u);break}}else for(n=E;n!==L;n+=C)if(a=r.xaxes[n],-1!==p.cartesian.indexOf(a+S)){A[S]=a;break}}}}}},{\\\"../../lib\\\":696,\\\"../../lib/regex\\\":712,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/constants\\\":750,\\\"../../plots/domain\\\":770}],617:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/constants\\\"),i=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports=i(\\\"image\\\",{visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"arraydraw\\\"},source:{valType:\\\"string\\\",editType:\\\"arraydraw\\\"},layer:{valType:\\\"enumerated\\\",values:[\\\"below\\\",\\\"above\\\"],dflt:\\\"above\\\",editType:\\\"arraydraw\\\"},sizex:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},sizey:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},sizing:{valType:\\\"enumerated\\\",values:[\\\"fill\\\",\\\"contain\\\",\\\"stretch\\\"],dflt:\\\"contain\\\",editType:\\\"arraydraw\\\"},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1,editType:\\\"arraydraw\\\"},x:{valType:\\\"any\\\",dflt:0,editType:\\\"arraydraw\\\"},y:{valType:\\\"any\\\",dflt:0,editType:\\\"arraydraw\\\"},xanchor:{valType:\\\"enumerated\\\",values:[\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\",editType:\\\"arraydraw\\\"},yanchor:{valType:\\\"enumerated\\\",values:[\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"top\\\",editType:\\\"arraydraw\\\"},xref:{valType:\\\"enumerated\\\",values:[\\\"paper\\\",n.idRegex.x.toString()],dflt:\\\"paper\\\",editType:\\\"arraydraw\\\"},yref:{valType:\\\"enumerated\\\",values:[\\\"paper\\\",n.idRegex.y.toString()],dflt:\\\"paper\\\",editType:\\\"arraydraw\\\"},editType:\\\"arraydraw\\\"})},{\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/constants\\\":750}],618:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib/to_log_range\\\");e.exports=function(t,e,r,a){e=e||{};var o=\\\"log\\\"===r&&\\\"linear\\\"===e.type,s=\\\"linear\\\"===r&&\\\"log\\\"===e.type;if(o||s)for(var l,c,u=t._fullLayout.images,f=e._id.charAt(0),h=0;h<u.length;h++)if(c=\\\"images[\\\"+h+\\\"].\\\",(l=u[h])[f+\\\"ref\\\"]===e._id){var p=l[f],d=l[\\\"size\\\"+f],g=null,v=null;if(o){g=i(p,e.range);var m=d/Math.pow(10,g)/2;v=2*Math.log(m+Math.sqrt(1+m*m))/Math.LN10}else v=(g=Math.pow(10,p))*(Math.pow(10,d/2)-Math.pow(10,-d/2));n(g)?n(v)||(v=null):(g=null,v=null),a(c+f,g),a(c+\\\"size\\\"+f,v)}}},{\\\"../../lib/to_log_range\\\":722,\\\"fast-isnumeric\\\":214}],619:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../plots/array_container_defaults\\\"),o=t(\\\"./attributes\\\");function s(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}var s=a(\\\"source\\\");if(!a(\\\"visible\\\",!!s))return e;a(\\\"layer\\\"),a(\\\"xanchor\\\"),a(\\\"yanchor\\\"),a(\\\"sizex\\\"),a(\\\"sizey\\\"),a(\\\"sizing\\\"),a(\\\"opacity\\\");for(var l={_fullLayout:r},c=[\\\"x\\\",\\\"y\\\"],u=0;u<2;u++){var f=c[u],h=i.coerceRef(t,e,l,f,\\\"paper\\\");i.coercePosition(e,l,a,h,f,0)}return e}e.exports=function(t,e){a(t,e,{name:\\\"images\\\",handleItemDefaults:s})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/cartesian/axes\\\":744,\\\"./attributes\\\":617}],620:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../drawing\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../../constants/xmlns_namespaces\\\");e.exports=function(t){var e,r,s=t._fullLayout,l=[],c={},u=[];for(r=0;r<s.images.length;r++){var f=s.images[r];if(f.visible)if(\\\"below\\\"===f.layer&&\\\"paper\\\"!==f.xref&&\\\"paper\\\"!==f.yref){e=f.xref+f.yref;var h=s._plots[e];if(!h){u.push(f);continue}h.mainplot&&(e=h.mainplot.id),c[e]||(c[e]=[]),c[e].push(f)}else\\\"above\\\"===f.layer?l.push(f):u.push(f)}var p={x:{left:{sizing:\\\"xMin\\\",offset:0},center:{sizing:\\\"xMid\\\",offset:-.5},right:{sizing:\\\"xMax\\\",offset:-1}},y:{top:{sizing:\\\"YMin\\\",offset:0},middle:{sizing:\\\"YMid\\\",offset:-.5},bottom:{sizing:\\\"YMax\\\",offset:-1}}};function d(e){var r=n.select(this);if(!this.img||this.img.src!==e.source){r.attr(\\\"xmlns\\\",o.svg);var i=new Promise(function(t){var n=new Image;function i(){r.remove(),t()}this.img=n,n.setAttribute(\\\"crossOrigin\\\",\\\"anonymous\\\"),n.onerror=i,n.onload=function(){var e=document.createElement(\\\"canvas\\\");e.width=this.width,e.height=this.height,e.getContext(\\\"2d\\\").drawImage(this,0,0);var n=e.toDataURL(\\\"image/png\\\");r.attr(\\\"xlink:href\\\",n),t()},r.on(\\\"error\\\",i),n.src=e.source}.bind(this));t._promises.push(i)}}function g(e){var r=n.select(this),o=a.getFromId(t,e.xref),l=a.getFromId(t,e.yref),c=s._size,u=o?Math.abs(o.l2p(e.sizex)-o.l2p(0)):e.sizex*c.w,f=l?Math.abs(l.l2p(e.sizey)-l.l2p(0)):e.sizey*c.h,h=u*p.x[e.xanchor].offset,d=f*p.y[e.yanchor].offset,g=p.x[e.xanchor].sizing+p.y[e.yanchor].sizing,v=(o?o.r2p(e.x)+o._offset:e.x*c.w+c.l)+h,m=(l?l.r2p(e.y)+l._offset:c.h-e.y*c.h+c.t)+d;switch(e.sizing){case\\\"fill\\\":g+=\\\" slice\\\";break;case\\\"stretch\\\":g=\\\"none\\\"}r.attr({x:v,y:m,width:u,height:f,preserveAspectRatio:g,opacity:e.opacity});var y=(o?o._id:\\\"\\\")+(l?l._id:\\\"\\\");r.call(i.setClipUrl,y?\\\"clip\\\"+s._uid+y:null)}var v=s._imageLowerLayer.selectAll(\\\"image\\\").data(u),m=s._imageUpperLayer.selectAll(\\\"image\\\").data(l);v.enter().append(\\\"image\\\"),m.enter().append(\\\"image\\\"),v.exit().remove(),m.exit().remove(),v.each(function(t){d.bind(this)(t),g.bind(this)(t)}),m.each(function(t){d.bind(this)(t),g.bind(this)(t)});var y=Object.keys(s._plots);for(r=0;r<y.length;r++){e=y[r];var x=s._plots[e];if(x.imagelayer){var b=x.imagelayer.selectAll(\\\"image\\\").data(c[e]||[]);b.enter().append(\\\"image\\\"),b.exit().remove(),b.each(function(t){d.bind(this)(t),g.bind(this)(t)})}}}},{\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../plots/cartesian/axes\\\":744,\\\"../drawing\\\":595,d3:148}],621:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"component\\\",name:\\\"images\\\",layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),includeBasePlot:t(\\\"../../plots/cartesian/include_components\\\")(\\\"images\\\"),draw:t(\\\"./draw\\\"),convertCoords:t(\\\"./convert_coords\\\")}},{\\\"../../plots/cartesian/include_components\\\":755,\\\"./attributes\\\":617,\\\"./convert_coords\\\":618,\\\"./defaults\\\":619,\\\"./draw\\\":620}],622:[function(t,e,r){\\\"use strict\\\";r.isRightAnchor=function(t){return\\\"right\\\"===t.xanchor||\\\"auto\\\"===t.xanchor&&t.x>=2/3},r.isCenterAnchor=function(t){return\\\"center\\\"===t.xanchor||\\\"auto\\\"===t.xanchor&&t.x>1/3&&t.x<2/3},r.isBottomAnchor=function(t){return\\\"bottom\\\"===t.yanchor||\\\"auto\\\"===t.yanchor&&t.y<=1/3},r.isMiddleAnchor=function(t){return\\\"middle\\\"===t.yanchor||\\\"auto\\\"===t.yanchor&&t.y>1/3&&t.y<2/3}},{}],623:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../color/attributes\\\");e.exports={bgcolor:{valType:\\\"color\\\",editType:\\\"legend\\\"},bordercolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"legend\\\"},borderwidth:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"legend\\\"},font:n({editType:\\\"legend\\\"}),orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],dflt:\\\"v\\\",editType:\\\"legend\\\"},traceorder:{valType:\\\"flaglist\\\",flags:[\\\"reversed\\\",\\\"grouped\\\"],extras:[\\\"normal\\\"],editType:\\\"legend\\\"},tracegroupgap:{valType:\\\"number\\\",min:0,dflt:10,editType:\\\"legend\\\"},x:{valType:\\\"number\\\",min:-2,max:3,dflt:1.02,editType:\\\"legend\\\"},xanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\",editType:\\\"legend\\\"},y:{valType:\\\"number\\\",min:-2,max:3,dflt:1,editType:\\\"legend\\\"},yanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"auto\\\",editType:\\\"legend\\\"},editType:\\\"legend\\\"}},{\\\"../../plots/font_attributes\\\":771,\\\"../color/attributes\\\":569}],624:[function(t,e,r){\\\"use strict\\\";e.exports={scrollBarWidth:6,scrollBarMinHeight:20,scrollBarColor:\\\"#808BA4\\\",scrollBarMargin:4,textOffsetX:40}},{}],625:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plot_api/plot_template\\\"),o=t(\\\"./attributes\\\"),s=t(\\\"../../plots/layout_attributes\\\"),l=t(\\\"./helpers\\\");e.exports=function(t,e,r){for(var c,u,f,h,p=t.legend||{},d=0,g=!1,v=\\\"normal\\\",m=0;m<r.length;m++){var y=r[m];y.visible&&((y.showlegend||y._dfltShowLegend)&&(d++,y.showlegend&&(g=!0,(n.traceIs(y,\\\"pie\\\")||!0===y._input.showlegend)&&d++)),(n.traceIs(y,\\\"bar\\\")&&\\\"stack\\\"===e.barmode||-1!==[\\\"tonextx\\\",\\\"tonexty\\\"].indexOf(y.fill))&&(v=l.isGrouped({traceorder:v})?\\\"grouped+reversed\\\":\\\"reversed\\\"),void 0!==y.legendgroup&&\\\"\\\"!==y.legendgroup&&(v=l.isReversed({traceorder:v})?\\\"reversed+grouped\\\":\\\"grouped\\\"))}if(!1!==i.coerce(t,e,s,\\\"showlegend\\\",g&&d>1)){var x=a.newContainer(e,\\\"legend\\\");if(_(\\\"bgcolor\\\",e.paper_bgcolor),_(\\\"bordercolor\\\"),_(\\\"borderwidth\\\"),i.coerceFont(_,\\\"font\\\",e.font),_(\\\"orientation\\\"),\\\"h\\\"===x.orientation){var b=t.xaxis;b&&b.rangeslider&&b.rangeslider.visible?(c=0,f=\\\"left\\\",u=1.1,h=\\\"bottom\\\"):(c=0,f=\\\"left\\\",u=-.1,h=\\\"top\\\")}_(\\\"traceorder\\\",v),l.isGrouped(e.legend)&&_(\\\"tracegroupgap\\\"),_(\\\"x\\\",c),_(\\\"xanchor\\\",f),_(\\\"y\\\",u),_(\\\"yanchor\\\",h),i.noneOrAll(p,x,[\\\"x\\\",\\\"y\\\"])}function _(t,e){return i.coerce(p,x,o,t,e)}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/layout_attributes\\\":799,\\\"../../registry\\\":827,\\\"./attributes\\\":623,\\\"./helpers\\\":629}],626:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib/events\\\"),l=t(\\\"../dragelement\\\"),c=t(\\\"../drawing\\\"),u=t(\\\"../color\\\"),f=t(\\\"../../lib/svg_text_utils\\\"),h=t(\\\"./handle_click\\\"),p=t(\\\"./constants\\\"),d=t(\\\"../../constants/interactions\\\"),g=t(\\\"../../constants/alignment\\\"),v=g.LINE_SPACING,m=g.FROM_TL,y=g.FROM_BR,x=t(\\\"./get_legend_data\\\"),b=t(\\\"./style\\\"),_=t(\\\"./helpers\\\"),w=t(\\\"./anchor_utils\\\"),k=d.DBLCLICKDELAY;function M(t,e,r,n,i){var a=r.data()[0][0].trace,o={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a._expandedIndex,data:t.data,layout:t.layout,frames:t._transitionData._frames,config:t._context,fullData:t._fullData,fullLayout:t._fullLayout};if(a._group&&(o.group=a._group),\\\"pie\\\"===a.type&&(o.label=r.datum()[0].label),!1!==s.triggerHandler(t,\\\"plotly_legendclick\\\",o))if(1===n)e._clickTimeout=setTimeout(function(){h(r,t,n)},k);else if(2===n){e._clickTimeout&&clearTimeout(e._clickTimeout),t._legendMouseDownTime=0,!1!==s.triggerHandler(t,\\\"plotly_legenddoubleclick\\\",o)&&h(r,t,n)}}function A(t,e,r){var n=t.data()[0][0],a=e._fullLayout,s=n.trace,l=o.traceIs(s,\\\"pie\\\"),u=s.index,h=l?n.label:s.name,d=e._context.edits.legendText&&!l,g=i.ensureSingle(t,\\\"text\\\",\\\"legendtext\\\");function m(r){f.convertToTspans(r,e,function(){!function(t,e){var r=t.data()[0][0];if(!r.trace.showlegend)return void t.remove();var n,i,a=t.select(\\\"g[class*=math-group]\\\"),o=a.node(),s=e._fullLayout.legend.font.size*v;if(o){var l=c.bBox(o);n=l.height,i=l.width,c.setTranslate(a,0,n/4)}else{var u=t.select(\\\".legendtext\\\"),h=f.lineCount(u),d=u.node();n=s*h,i=d?c.bBox(d).width:0;var g=s*(.3+(1-h)/2);f.positionText(u,p.textOffsetX,g)}n=Math.max(n,16)+3,r.height=n,r.width=i}(t,e)})}g.attr(\\\"text-anchor\\\",\\\"start\\\").classed(\\\"user-select-none\\\",!0).call(c.font,a.legend.font).text(d?T(h,r):h),f.positionText(g,p.textOffsetX,0),d?g.call(f.makeEditable,{gd:e,text:h}).call(m).on(\\\"edit\\\",function(t){this.text(T(t,r)).call(m);var a=n.trace._fullInput||{},s={};if(o.hasTransform(a,\\\"groupby\\\")){var l=o.getTransformIndices(a,\\\"groupby\\\"),c=l[l.length-1],f=i.keyedContainer(a,\\\"transforms[\\\"+c+\\\"].styles\\\",\\\"target\\\",\\\"value.name\\\");f.set(n.trace._group,t),s=f.constructUpdate()}else s.name=t;return o.call(\\\"restyle\\\",e,s,u)}):m(g)}function T(t,e){var r=Math.max(4,e);if(t&&t.trim().length>=r/2)return t;for(var n=r-(t=t||\\\"\\\").length;n>0;n--)t+=\\\" \\\";return t}function S(t,e){var r,a=1,o=i.ensureSingle(t,\\\"rect\\\",\\\"legendtoggle\\\",function(t){t.style(\\\"cursor\\\",\\\"pointer\\\").attr(\\\"pointer-events\\\",\\\"all\\\").call(u.fill,\\\"rgba(0,0,0,0)\\\")});o.on(\\\"mousedown\\\",function(){(r=(new Date).getTime())-e._legendMouseDownTime<k?a+=1:(a=1,e._legendMouseDownTime=r)}),o.on(\\\"mouseup\\\",function(){if(!e._dragged&&!e._editing){var r=e._fullLayout.legend;(new Date).getTime()-e._legendMouseDownTime>k&&(a=Math.max(a-1,1)),M(e,r,t,a,n.event)}})}function E(t,e,r){var i=t._fullLayout,a=i.legend,o=a.borderwidth,s=_.isGrouped(a),l=0;if(a._width=0,a._height=0,_.isVertical(a))s&&e.each(function(t,e){c.setTranslate(this,0,e*a.tracegroupgap)}),r.each(function(t){var e=t[0],r=e.height,n=e.width;c.setTranslate(this,o,5+o+a._height+r/2),a._height+=r,a._width=Math.max(a._width,n)}),a._width+=45+2*o,a._height+=10+2*o,s&&(a._height+=(a._lgroupsLength-1)*a.tracegroupgap),l=40;else if(s){for(var u=[a._width],f=e.data(),h=0,p=f.length;h<p;h++){var d=f[h].map(function(t){return t[0].width}),g=40+Math.max.apply(null,d);a._width+=a.tracegroupgap+g,u.push(a._width)}e.each(function(t,e){c.setTranslate(this,u[e],0)}),e.each(function(){var t=n.select(this).selectAll(\\\"g.traces\\\"),e=0;t.each(function(t){var r=t[0].height;c.setTranslate(this,0,5+o+e+r/2),e+=r}),a._height=Math.max(a._height,e)}),a._height+=10+2*o,a._width+=2*o}else{var v,m=0,y=0,x=0,b=0,w=0,k=a.tracegroupgap||5;r.each(function(t){x=Math.max(40+t[0].width,x),w+=40+t[0].width+k}),v=i._size.w>o+w-k,r.each(function(t){var e=t[0],r=v?40+t[0].width:x;o+b+k+r>i._size.w&&(b=0,m+=y,a._height=a._height+y,y=0),c.setTranslate(this,o+b,5+o+e.height/2+m),a._width+=k+r,a._height=Math.max(a._height,e.height),b+=k+r,y=Math.max(e.height,y)}),a._width+=2*o,a._height+=10+2*o}a._width=Math.ceil(a._width),a._height=Math.ceil(a._height);var M=t._context.edits.legendText||t._context.edits.legendPosition;r.each(function(t){var e=t[0],r=n.select(this).select(\\\".legendtoggle\\\");c.setRect(r,0,-e.height/2,(M?0:a._width)+l,e.height)})}function C(t){var e=t._fullLayout.legend,r=\\\"left\\\";w.isRightAnchor(e)?r=\\\"right\\\":w.isCenterAnchor(e)&&(r=\\\"center\\\");var n=\\\"top\\\";w.isBottomAnchor(e)?n=\\\"bottom\\\":w.isMiddleAnchor(e)&&(n=\\\"middle\\\"),a.autoMargin(t,\\\"legend\\\",{x:e.x,y:e.y,l:e._width*m[r],r:e._width*y[r],b:e._height*y[n],t:e._height*m[n]})}e.exports=function(t){var e=t._fullLayout,r=\\\"legend\\\"+e._uid;if(e._infolayer&&t.calcdata){t._legendMouseDownTime||(t._legendMouseDownTime=0);var s=e.legend,f=e.showlegend&&x(t.calcdata,s),h=e.hiddenlabels||[];if(!e.showlegend||!f.length)return e._infolayer.selectAll(\\\".legend\\\").remove(),e._topdefs.select(\\\"#\\\"+r).remove(),void a.autoMargin(t,\\\"legend\\\");for(var d=0,g=0;g<f.length;g++)for(var v=0;v<f[g].length;v++){var _=f[g][v][0],k=_.trace,T=o.traceIs(k,\\\"pie\\\")?_.label:k.name;d=Math.max(d,T&&T.length||0)}var L=!1,z=i.ensureSingle(e._infolayer,\\\"g\\\",\\\"legend\\\",function(t){t.attr(\\\"pointer-events\\\",\\\"all\\\"),L=!0}),O=i.ensureSingleById(e._topdefs,\\\"clipPath\\\",r,function(t){t.append(\\\"rect\\\")}),I=i.ensureSingle(z,\\\"rect\\\",\\\"bg\\\",function(t){t.attr(\\\"shape-rendering\\\",\\\"crispEdges\\\")});I.call(u.stroke,s.bordercolor).call(u.fill,s.bgcolor).style(\\\"stroke-width\\\",s.borderwidth+\\\"px\\\");var P=i.ensureSingle(z,\\\"g\\\",\\\"scrollbox\\\"),D=i.ensureSingle(z,\\\"rect\\\",\\\"scrollbar\\\",function(t){t.attr({rx:20,ry:3,width:0,height:0}).call(u.fill,\\\"#808BA4\\\")}),R=P.selectAll(\\\"g.groups\\\").data(f);R.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"groups\\\"),R.exit().remove();var B=R.selectAll(\\\"g.traces\\\").data(i.identity);B.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"traces\\\"),B.exit().remove(),B.call(b,t).style(\\\"opacity\\\",function(t){var e=t[0].trace;return o.traceIs(e,\\\"pie\\\")?-1!==h.indexOf(t[0].label)?.5:1:\\\"legendonly\\\"===e.visible?.5:1}).each(function(){n.select(this).call(A,t,d).call(S,t)}),i.syncOrAsync([a.previousPromises,function(){L&&(E(t,R,B),C(t));var u=e.width,f=e.height;E(t,R,B),s._height>f?function(t){var e=t._fullLayout.legend,r=\\\"left\\\";w.isRightAnchor(e)?r=\\\"right\\\":w.isCenterAnchor(e)&&(r=\\\"center\\\");a.autoMargin(t,\\\"legend\\\",{x:e.x,y:.5,l:e._width*m[r],r:e._width*y[r],b:0,t:0})}(t):C(t);var h=e._size,d=h.l+h.w*s.x,g=h.t+h.h*(1-s.y);w.isRightAnchor(s)?d-=s._width:w.isCenterAnchor(s)&&(d-=s._width/2),w.isBottomAnchor(s)?g-=s._height:w.isMiddleAnchor(s)&&(g-=s._height/2);var v=s._width,x=h.w;v>x?(d=h.l,v=x):(d+v>u&&(d=u-v),d<0&&(d=0),v=Math.min(u-d,s._width));var b,_,k,A,T=s._height,S=h.h;if(T>S?(g=h.t,T=S):(g+T>f&&(g=f-T),g<0&&(g=0),T=Math.min(f-g,s._height)),c.setTranslate(z,d,g),D.on(\\\".drag\\\",null),z.on(\\\"wheel\\\",null),s._height<=T||t._context.staticPlot)I.attr({width:v-s.borderwidth,height:T-s.borderwidth,x:s.borderwidth/2,y:s.borderwidth/2}),c.setTranslate(P,0,0),O.select(\\\"rect\\\").attr({width:v-2*s.borderwidth,height:T-2*s.borderwidth,x:s.borderwidth,y:s.borderwidth}),c.setClipUrl(P,r),c.setRect(D,0,0,0,0),delete s._scrollY;else{var F,N,j=Math.max(p.scrollBarMinHeight,T*T/s._height),V=T-j-2*p.scrollBarMargin,U=s._height-T,q=V/U,H=Math.min(s._scrollY||0,U);I.attr({width:v-2*s.borderwidth+p.scrollBarWidth+p.scrollBarMargin,height:T-s.borderwidth,x:s.borderwidth/2,y:s.borderwidth/2}),O.select(\\\"rect\\\").attr({width:v-2*s.borderwidth+p.scrollBarWidth+p.scrollBarMargin,height:T-2*s.borderwidth,x:s.borderwidth,y:s.borderwidth+H}),c.setClipUrl(P,r),W(H,j,q),z.on(\\\"wheel\\\",function(){W(H=i.constrain(s._scrollY+n.event.deltaY/V*U,0,U),j,q),0!==H&&H!==U&&n.event.preventDefault()});var G=n.behavior.drag().on(\\\"dragstart\\\",function(){F=n.event.sourceEvent.clientY,N=H}).on(\\\"drag\\\",function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||W(H=i.constrain((t.clientY-F)/q+N,0,U),j,q)});D.call(G)}function W(e,r,n){s._scrollY=t._fullLayout.legend._scrollY=e,c.setTranslate(P,0,-e),c.setRect(D,v,p.scrollBarMargin+e*n,p.scrollBarWidth,r),O.select(\\\"rect\\\").attr({y:s.borderwidth+e})}t._context.edits.legendPosition&&(z.classed(\\\"cursor-move\\\",!0),l.init({element:z.node(),gd:t,prepFn:function(){var t=c.getTranslate(z);k=t.x,A=t.y},moveFn:function(t,e){var r=k+t,n=A+e;c.setTranslate(z,r,n),b=l.align(r,0,h.l,h.l+h.w,s.xanchor),_=l.align(n,0,h.t+h.h,h.t,s.yanchor)},doneFn:function(){void 0!==b&&void 0!==_&&o.call(\\\"relayout\\\",t,{\\\"legend.x\\\":b,\\\"legend.y\\\":_})},clickFn:function(r,n){var i=e._infolayer.selectAll(\\\"g.traces\\\").filter(function(){var t=this.getBoundingClientRect();return n.clientX>=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom});i.size()>0&&M(t,z,i,r,n)}}))}],t)}}},{\\\"../../constants/alignment\\\":668,\\\"../../constants/interactions\\\":672,\\\"../../lib\\\":696,\\\"../../lib/events\\\":684,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"./anchor_utils\\\":622,\\\"./constants\\\":624,\\\"./get_legend_data\\\":627,\\\"./handle_click\\\":628,\\\"./helpers\\\":629,\\\"./style\\\":631,d3:148}],627:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"./helpers\\\");e.exports=function(t,e){var r,a,o={},s=[],l=!1,c={},u=0;function f(t,r){if(\\\"\\\"!==t&&i.isGrouped(e))-1===s.indexOf(t)?(s.push(t),l=!0,o[t]=[[r]]):o[t].push([r]);else{var n=\\\"~~i\\\"+u;s.push(n),o[n]=[[r]],u++}}for(r=0;r<t.length;r++){var h=t[r],p=h[0],d=p.trace,g=d.legendgroup;if(d.visible&&d.showlegend)if(n.traceIs(d,\\\"pie\\\"))for(c[g]||(c[g]={}),a=0;a<h.length;a++){var v=h[a].label;c[g][v]||(f(g,{label:v,color:h[a].color,i:h[a].i,trace:d,pts:h[a].pts}),c[g][v]=!0)}else f(g,p)}if(!s.length)return[];var m,y,x=s.length;if(l&&i.isGrouped(e))for(y=new Array(x),r=0;r<x;r++)m=o[s[r]],y[r]=i.isReversed(e)?m.reverse():m;else{for(y=[new Array(x)],r=0;r<x;r++)m=o[s[r]][0],y[0][i.isReversed(e)?x-r-1:r]=m;x=1}return e._lgroupsLength=x,y}},{\\\"../../registry\\\":827,\\\"./helpers\\\":629}],628:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=!0;e.exports=function(t,e,r){if(!e._dragged&&!e._editing){var o,s,l,c,u,f=e._fullLayout.hiddenlabels?e._fullLayout.hiddenlabels.slice():[],h=t.data()[0][0],p=e._fullData,d=h.trace,g=d.legendgroup,v={},m=[],y=[],x=[];if(1===r&&a&&e.data&&e._context.showTips?(n.notifier(n._(e,\\\"Double-click on legend to isolate one trace\\\"),\\\"long\\\"),a=!1):a=!1,i.traceIs(d,\\\"pie\\\")){var b=h.label,_=f.indexOf(b);1===r?-1===_?f.push(b):f.splice(_,1):2===r&&(f=[],e.calcdata[0].forEach(function(t){b!==t.label&&f.push(t.label)}),e._fullLayout.hiddenlabels&&e._fullLayout.hiddenlabels.length===f.length&&-1===_&&(f=[])),i.call(\\\"relayout\\\",e,\\\"hiddenlabels\\\",f)}else{var w,k=g&&g.length,M=[];if(k)for(o=0;o<p.length;o++)(w=p[o]).visible&&w.legendgroup===g&&M.push(o);if(1===r){var A;switch(d.visible){case!0:A=\\\"legendonly\\\";break;case!1:A=!1;break;case\\\"legendonly\\\":A=!0}if(k)for(o=0;o<p.length;o++)!1!==p[o].visible&&p[o].legendgroup===g&&O(p[o],A);else O(d,A)}else if(2===r){var T,S,E=!0;for(o=0;o<p.length;o++)if(!(p[o]===d)&&!(T=k&&p[o].legendgroup===g)&&!0===p[o].visible&&!i.traceIs(p[o],\\\"notLegendIsolatable\\\")){E=!1;break}for(o=0;o<p.length;o++)if(!1!==p[o].visible&&!i.traceIs(p[o],\\\"notLegendIsolatable\\\"))switch(d.visible){case\\\"legendonly\\\":O(p[o],!0);break;case!0:S=!!E||\\\"legendonly\\\",T=p[o]===d||k&&p[o].legendgroup===g,O(p[o],!!T||S)}}for(o=0;o<y.length;o++)if(l=y[o]){var C=l.constructUpdate(),L=Object.keys(C);for(s=0;s<L.length;s++)c=L[s],(v[c]=v[c]||[])[x[o]]=C[c]}for(u=Object.keys(v),o=0;o<u.length;o++)for(c=u[o],s=0;s<m.length;s++)v[c].hasOwnProperty(s)||(v[c][s]=void 0);i.call(\\\"restyle\\\",e,v,m)}}function z(t,e,r){var n=m.indexOf(t),i=v[e];return i||(i=v[e]=[]),-1===m.indexOf(t)&&(m.push(t),n=m.length-1),i[n]=r,n}function O(t,e){var r=t._fullInput;if(i.hasTransform(r,\\\"groupby\\\")){var a=y[r.index];if(!a){var o=i.getTransformIndices(r,\\\"groupby\\\"),s=o[o.length-1];a=n.keyedContainer(r,\\\"transforms[\\\"+s+\\\"].styles\\\",\\\"target\\\",\\\"value.visible\\\"),y[r.index]=a}var l=a.get(t._group);void 0===l&&(l=!0),!1!==l&&a.set(t._group,e),x[r.index]=z(r.index,\\\"visible\\\",!1!==r.visible)}else{var c=!1!==r.visible&&e;z(r.index,\\\"visible\\\",c)}}}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827}],629:[function(t,e,r){\\\"use strict\\\";r.isGrouped=function(t){return-1!==(t.traceorder||\\\"\\\").indexOf(\\\"grouped\\\")},r.isVertical=function(t){return\\\"h\\\"!==t.orientation},r.isReversed=function(t){return-1!==(t.traceorder||\\\"\\\").indexOf(\\\"reversed\\\")}},{}],630:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"component\\\",name:\\\"legend\\\",layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),draw:t(\\\"./draw\\\"),style:t(\\\"./style\\\")}},{\\\"./attributes\\\":623,\\\"./defaults\\\":625,\\\"./draw\\\":626,\\\"./style\\\":631}],631:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../drawing\\\"),s=t(\\\"../color\\\"),l=t(\\\"../../traces/scatter/subtypes\\\"),c=t(\\\"../../traces/pie/style_one\\\");e.exports=function(t,e){t.each(function(t){var e=n.select(this),r=a.ensureSingle(e,\\\"g\\\",\\\"layers\\\");r.style(\\\"opacity\\\",t[0].trace.opacity),r.selectAll(\\\"g.legendfill\\\").data([t]).enter().append(\\\"g\\\").classed(\\\"legendfill\\\",!0),r.selectAll(\\\"g.legendlines\\\").data([t]).enter().append(\\\"g\\\").classed(\\\"legendlines\\\",!0);var i=r.selectAll(\\\"g.legendsymbols\\\").data([t]);i.enter().append(\\\"g\\\").classed(\\\"legendsymbols\\\",!0),i.selectAll(\\\"g.legendpoints\\\").data([t]).enter().append(\\\"g\\\").classed(\\\"legendpoints\\\",!0)}).each(function(t){var e=t[0].trace,r=e.marker||{},a=r.line||{},o=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendbar\\\").data(i.traceIs(e,\\\"bar\\\")?[t]:[]);o.enter().append(\\\"path\\\").classed(\\\"legendbar\\\",!0).attr(\\\"d\\\",\\\"M6,6H-6V-6H6Z\\\").attr(\\\"transform\\\",\\\"translate(20,0)\\\"),o.exit().remove(),o.each(function(t){var e=n.select(this),i=t[0],o=(i.mlw+1||a.width+1)-1;e.style(\\\"stroke-width\\\",o+\\\"px\\\").call(s.fill,i.mc||r.color),o&&e.call(s.stroke,i.mlc||a.color)})}).each(function(t){var e=t[0].trace,r=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendbox\\\").data(i.traceIs(e,\\\"box-violin\\\")&&e.visible?[t]:[]);r.enter().append(\\\"path\\\").classed(\\\"legendbox\\\",!0).attr(\\\"d\\\",\\\"M6,6H-6V-6H6Z\\\").attr(\\\"transform\\\",\\\"translate(20,0)\\\"),r.exit().remove(),r.each(function(){var t=e.line.width,r=n.select(this);r.style(\\\"stroke-width\\\",t+\\\"px\\\").call(s.fill,e.fillcolor),t&&s.stroke(r,e.line.color)})}).each(function(t){var e=t[0].trace,r=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendpie\\\").data(i.traceIs(e,\\\"pie\\\")&&e.visible?[t]:[]);r.enter().append(\\\"path\\\").classed(\\\"legendpie\\\",!0).attr(\\\"d\\\",\\\"M6,6H-6V-6H6Z\\\").attr(\\\"transform\\\",\\\"translate(20,0)\\\"),r.exit().remove(),r.size()&&r.call(c,t[0],e)}).each(function(t){var r=t[0].trace,i=r.visible&&r.fill&&\\\"none\\\"!==r.fill,a=l.hasLines(r),s=r.contours,c=!1,u=!1;if(s){var f=s.coloring;\\\"lines\\\"===f?c=!0:a=\\\"none\\\"===f||\\\"heatmap\\\"===f||s.showlines,\\\"constraint\\\"===s.type?i=\\\"=\\\"!==s._operation:\\\"fill\\\"!==f&&\\\"heatmap\\\"!==f||(u=!0)}var h=l.hasMarkers(r)||l.hasText(r),p=i||u,d=a||c,g=h||!p?\\\"M5,0\\\":d?\\\"M5,-2\\\":\\\"M5,-3\\\",v=n.select(this),m=v.select(\\\".legendfill\\\").selectAll(\\\"path\\\").data(i||u?[t]:[]);m.enter().append(\\\"path\\\").classed(\\\"js-fill\\\",!0),m.exit().remove(),m.attr(\\\"d\\\",g+\\\"h30v6h-30z\\\").call(i?o.fillGroupStyle:function(t){if(t.size()){var n=\\\"legendfill-\\\"+r.uid;o.gradient(t,e,n,\\\"horizontalreversed\\\",r.colorscale,\\\"fill\\\")}});var y=v.select(\\\".legendlines\\\").selectAll(\\\"path\\\").data(a||c?[t]:[]);y.enter().append(\\\"path\\\").classed(\\\"js-line\\\",!0),y.exit().remove(),y.attr(\\\"d\\\",g+(c?\\\"l30,0.0001\\\":\\\"h30\\\")).call(a?o.lineGroupStyle:function(t){if(t.size()){var n=\\\"legendline-\\\"+r.uid;o.lineGroupStyle(t),o.gradient(t,e,n,\\\"horizontalreversed\\\",r.colorscale,\\\"stroke\\\")}})}).each(function(t){var r,i,s=t[0],c=s.trace,u=l.hasMarkers(c),f=l.hasText(c),h=l.hasLines(c);function p(t,e,r){var n=a.nestedProperty(c,t).get(),i=a.isArrayOrTypedArray(n)&&e?e(n):n;if(r){if(i<r[0])return r[0];if(i>r[1])return r[1]}return i}function d(t){return t[0]}if(u||f||h){var g={},v={};if(u){g.mc=p(\\\"marker.color\\\",d),g.mx=p(\\\"marker.symbol\\\",d),g.mo=p(\\\"marker.opacity\\\",a.mean,[.2,1]),g.mlc=p(\\\"marker.line.color\\\",d),g.mlw=p(\\\"marker.line.width\\\",a.mean,[0,5]),v.marker={sizeref:1,sizemin:1,sizemode:\\\"diameter\\\"};var m=p(\\\"marker.size\\\",a.mean,[2,16]);g.ms=m,v.marker.size=m}h&&(v.line={width:p(\\\"line.width\\\",d,[0,10])}),f&&(g.tx=\\\"Aa\\\",g.tp=p(\\\"textposition\\\",d),g.ts=10,g.tc=p(\\\"textfont.color\\\",d),g.tf=p(\\\"textfont.family\\\",d)),r=[a.minExtend(s,g)],(i=a.minExtend(c,v)).selectedpoints=null}var y=n.select(this).select(\\\"g.legendpoints\\\"),x=y.selectAll(\\\"path.scatterpts\\\").data(u?r:[]);x.enter().insert(\\\"path\\\",\\\":first-child\\\").classed(\\\"scatterpts\\\",!0).attr(\\\"transform\\\",\\\"translate(20,0)\\\"),x.exit().remove(),x.call(o.pointStyle,i,e),u&&(r[0].mrc=3);var b=y.selectAll(\\\"g.pointtext\\\").data(f?r:[]);b.enter().append(\\\"g\\\").classed(\\\"pointtext\\\",!0).append(\\\"text\\\").attr(\\\"transform\\\",\\\"translate(20,0)\\\"),b.exit().remove(),b.selectAll(\\\"text\\\").call(o.textPointStyle,i,e)}).each(function(t){var e=t[0].trace,r=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendcandle\\\").data(\\\"candlestick\\\"===e.type&&e.visible?[t,t]:[]);r.enter().append(\\\"path\\\").classed(\\\"legendcandle\\\",!0).attr(\\\"d\\\",function(t,e){return e?\\\"M-15,0H-8M-8,6V-6H8Z\\\":\\\"M15,0H8M8,-6V6H-8Z\\\"}).attr(\\\"transform\\\",\\\"translate(20,0)\\\").style(\\\"stroke-miterlimit\\\",1),r.exit().remove(),r.each(function(t,r){var i=e[r?\\\"increasing\\\":\\\"decreasing\\\"],a=i.line.width,o=n.select(this);o.style(\\\"stroke-width\\\",a+\\\"px\\\").call(s.fill,i.fillcolor),a&&s.stroke(o,i.line.color)})}).each(function(t){var e=t[0].trace,r=n.select(this).select(\\\"g.legendpoints\\\").selectAll(\\\"path.legendohlc\\\").data(\\\"ohlc\\\"===e.type&&e.visible?[t,t]:[]);r.enter().append(\\\"path\\\").classed(\\\"legendohlc\\\",!0).attr(\\\"d\\\",function(t,e){return e?\\\"M-15,0H0M-8,-6V0\\\":\\\"M15,0H0M8,6V0\\\"}).attr(\\\"transform\\\",\\\"translate(20,0)\\\").style(\\\"stroke-miterlimit\\\",1),r.exit().remove(),r.each(function(t,r){var i=e[r?\\\"increasing\\\":\\\"decreasing\\\"],a=i.line.width,l=n.select(this);l.style(\\\"fill\\\",\\\"none\\\").call(o.dashLine,i.line.dash,a),a&&s.stroke(l,i.line.color)})})}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../../traces/pie/style_one\\\":1029,\\\"../../traces/scatter/subtypes\\\":1067,\\\"../color\\\":570,\\\"../drawing\\\":595,d3:148}],632:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../plots/plots\\\"),a=t(\\\"../../plots/cartesian/axis_ids\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../../build/ploticon\\\"),l=o._,c=e.exports={};function u(t,e){var r,i,o=e.currentTarget,s=o.getAttribute(\\\"data-attr\\\"),l=o.getAttribute(\\\"data-val\\\")||!0,c=t._fullLayout,u={},f=a.list(t,null,!0),h=\\\"on\\\";if(\\\"zoom\\\"===s){var p,d=\\\"in\\\"===l?.5:2,g=(1+d)/2,v=(1-d)/2;for(i=0;i<f.length;i++)if(!(r=f[i]).fixedrange)if(p=r._name,\\\"auto\\\"===l)u[p+\\\".autorange\\\"]=!0;else if(\\\"reset\\\"===l){if(void 0===r._rangeInitial)u[p+\\\".autorange\\\"]=!0;else{var m=r._rangeInitial.slice();u[p+\\\".range[0]\\\"]=m[0],u[p+\\\".range[1]\\\"]=m[1]}void 0!==r._showSpikeInitial&&(u[p+\\\".showspikes\\\"]=r._showSpikeInitial,\\\"on\\\"!==h||r._showSpikeInitial||(h=\\\"off\\\"))}else{var y=[r.r2l(r.range[0]),r.r2l(r.range[1])],x=[g*y[0]+v*y[1],g*y[1]+v*y[0]];u[p+\\\".range[0]\\\"]=r.l2r(x[0]),u[p+\\\".range[1]\\\"]=r.l2r(x[1])}c._cartesianSpikesEnabled=h}else{if(\\\"hovermode\\\"!==s||\\\"x\\\"!==l&&\\\"y\\\"!==l){if(\\\"hovermode\\\"===s&&\\\"closest\\\"===l){for(i=0;i<f.length;i++)r=f[i],\\\"on\\\"!==h||r.showspikes||(h=\\\"off\\\");c._cartesianSpikesEnabled=h}}else l=c._isHoriz?\\\"y\\\":\\\"x\\\",o.setAttribute(\\\"data-val\\\",l);u[s]=l}n.call(\\\"relayout\\\",t,u)}function f(t,e){for(var r=e.currentTarget,i=r.getAttribute(\\\"data-attr\\\"),a=r.getAttribute(\\\"data-val\\\")||!0,o=t._fullLayout._subplots.gl3d,s={},l=i.split(\\\".\\\"),c=0;c<o.length;c++)s[o[c]+\\\".\\\"+l[1]]=a;var u=\\\"pan\\\"===a?a:\\\"zoom\\\";s.dragmode=u,n.call(\\\"relayout\\\",t,s)}function h(t,e){for(var r=e.currentTarget.getAttribute(\\\"data-attr\\\"),i=t._fullLayout,a=i._subplots.gl3d,s={},l=0;l<a.length;l++){var c=a[l],u=c+\\\".camera\\\",f=i[c]._scene;\\\"resetDefault\\\"===r?s[u]=null:\\\"resetLastSave\\\"===r&&(s[u]=o.extendDeep({},f.cameraInitial))}n.call(\\\"relayout\\\",t,s)}function p(t,e){var r=e.currentTarget,i=r._previousVal||!1,a=t.layout,s=t._fullLayout,l=s._subplots.gl3d,c=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"],u=[\\\"showspikes\\\",\\\"spikesides\\\",\\\"spikethickness\\\",\\\"spikecolor\\\"],f={},h={},p={};if(i)p=o.extendDeep(a,i),r._previousVal=null;else{p={\\\"allaxes.showspikes\\\":!1};for(var d=0;d<l.length;d++){var g=l[d],v=s[g],m=f[g]={};m.hovermode=v.hovermode,p[g+\\\".hovermode\\\"]=!1;for(var y=0;y<3;y++){var x=c[y];h=m[x]={};for(var b=0;b<u.length;b++){var _=u[b];h[_]=v[x][_]}}}r._previousVal=o.extendDeep({},f)}n.call(\\\"relayout\\\",t,p)}function d(t,e){for(var r=e.currentTarget,i=r.getAttribute(\\\"data-attr\\\"),a=r.getAttribute(\\\"data-val\\\")||!0,o=t._fullLayout,s=o._subplots.geo,l=0;l<s.length;l++){var c=s[l],u=o[c];if(\\\"zoom\\\"===i){var f=u.projection.scale,h=\\\"in\\\"===a?2*f:.5*f;n.call(\\\"relayout\\\",t,c+\\\".projection.scale\\\",h)}else\\\"reset\\\"===i&&v(t,\\\"geo\\\")}}function g(t){var e,r=t._fullLayout;e=r._has(\\\"cartesian\\\")?r._isHoriz?\\\"y\\\":\\\"x\\\":\\\"closest\\\";var i=!t._fullLayout.hovermode&&e;n.call(\\\"relayout\\\",t,\\\"hovermode\\\",i)}function v(t,e){for(var r=t._fullLayout,i=r._subplots[e],a={},o=0;o<i.length;o++)for(var s=i[o],l=r[s]._subplot.viewInitial,c=Object.keys(l),u=0;u<c.length;u++){var f=c[u];a[s+\\\".\\\"+f]=l[f]}n.call(\\\"relayout\\\",t,a)}c.toImage={name:\\\"toImage\\\",title:function(t){var e=(t._context.toImageButtonOptions||{}).format||\\\"png\\\";return l(t,\\\"png\\\"===e?\\\"Download plot as a png\\\":\\\"Download plot\\\")},icon:s.camera,click:function(t){var e=t._context.toImageButtonOptions,r={format:e.format||\\\"png\\\"};o.notifier(l(t,\\\"Taking snapshot - this may take a few seconds\\\"),\\\"long\\\"),\\\"svg\\\"!==r.format&&o.isIE()&&(o.notifier(l(t,\\\"IE only supports svg.  Changing format to svg.\\\"),\\\"long\\\"),r.format=\\\"svg\\\"),[\\\"filename\\\",\\\"width\\\",\\\"height\\\",\\\"scale\\\"].forEach(function(t){e[t]&&(r[t]=e[t])}),n.call(\\\"downloadImage\\\",t,r).then(function(e){o.notifier(l(t,\\\"Snapshot succeeded\\\")+\\\" - \\\"+e,\\\"long\\\")}).catch(function(){o.notifier(l(t,\\\"Sorry, there was a problem downloading your snapshot!\\\"),\\\"long\\\")})}},c.sendDataToCloud={name:\\\"sendDataToCloud\\\",title:function(t){return l(t,\\\"Edit in Chart Studio\\\")},icon:s.disk,click:function(t){i.sendDataToCloud(t)}},c.zoom2d={name:\\\"zoom2d\\\",title:function(t){return l(t,\\\"Zoom\\\")},attr:\\\"dragmode\\\",val:\\\"zoom\\\",icon:s.zoombox,click:u},c.pan2d={name:\\\"pan2d\\\",title:function(t){return l(t,\\\"Pan\\\")},attr:\\\"dragmode\\\",val:\\\"pan\\\",icon:s.pan,click:u},c.select2d={name:\\\"select2d\\\",title:function(t){return l(t,\\\"Box Select\\\")},attr:\\\"dragmode\\\",val:\\\"select\\\",icon:s.selectbox,click:u},c.lasso2d={name:\\\"lasso2d\\\",title:function(t){return l(t,\\\"Lasso Select\\\")},attr:\\\"dragmode\\\",val:\\\"lasso\\\",icon:s.lasso,click:u},c.zoomIn2d={name:\\\"zoomIn2d\\\",title:function(t){return l(t,\\\"Zoom in\\\")},attr:\\\"zoom\\\",val:\\\"in\\\",icon:s.zoom_plus,click:u},c.zoomOut2d={name:\\\"zoomOut2d\\\",title:function(t){return l(t,\\\"Zoom out\\\")},attr:\\\"zoom\\\",val:\\\"out\\\",icon:s.zoom_minus,click:u},c.autoScale2d={name:\\\"autoScale2d\\\",title:function(t){return l(t,\\\"Autoscale\\\")},attr:\\\"zoom\\\",val:\\\"auto\\\",icon:s.autoscale,click:u},c.resetScale2d={name:\\\"resetScale2d\\\",title:function(t){return l(t,\\\"Reset axes\\\")},attr:\\\"zoom\\\",val:\\\"reset\\\",icon:s.home,click:u},c.hoverClosestCartesian={name:\\\"hoverClosestCartesian\\\",title:function(t){return l(t,\\\"Show closest data on hover\\\")},attr:\\\"hovermode\\\",val:\\\"closest\\\",icon:s.tooltip_basic,gravity:\\\"ne\\\",click:u},c.hoverCompareCartesian={name:\\\"hoverCompareCartesian\\\",title:function(t){return l(t,\\\"Compare data on hover\\\")},attr:\\\"hovermode\\\",val:function(t){return t._fullLayout._isHoriz?\\\"y\\\":\\\"x\\\"},icon:s.tooltip_compare,gravity:\\\"ne\\\",click:u},c.zoom3d={name:\\\"zoom3d\\\",title:function(t){return l(t,\\\"Zoom\\\")},attr:\\\"scene.dragmode\\\",val:\\\"zoom\\\",icon:s.zoombox,click:f},c.pan3d={name:\\\"pan3d\\\",title:function(t){return l(t,\\\"Pan\\\")},attr:\\\"scene.dragmode\\\",val:\\\"pan\\\",icon:s.pan,click:f},c.orbitRotation={name:\\\"orbitRotation\\\",title:function(t){return l(t,\\\"Orbital rotation\\\")},attr:\\\"scene.dragmode\\\",val:\\\"orbit\\\",icon:s[\\\"3d_rotate\\\"],click:f},c.tableRotation={name:\\\"tableRotation\\\",title:function(t){return l(t,\\\"Turntable rotation\\\")},attr:\\\"scene.dragmode\\\",val:\\\"turntable\\\",icon:s[\\\"z-axis\\\"],click:f},c.resetCameraDefault3d={name:\\\"resetCameraDefault3d\\\",title:function(t){return l(t,\\\"Reset camera to default\\\")},attr:\\\"resetDefault\\\",icon:s.home,click:h},c.resetCameraLastSave3d={name:\\\"resetCameraLastSave3d\\\",title:function(t){return l(t,\\\"Reset camera to last save\\\")},attr:\\\"resetLastSave\\\",icon:s.movie,click:h},c.hoverClosest3d={name:\\\"hoverClosest3d\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:null,toggle:!0,icon:s.tooltip_basic,gravity:\\\"ne\\\",click:p},c.zoomInGeo={name:\\\"zoomInGeo\\\",title:function(t){return l(t,\\\"Zoom in\\\")},attr:\\\"zoom\\\",val:\\\"in\\\",icon:s.zoom_plus,click:d},c.zoomOutGeo={name:\\\"zoomOutGeo\\\",title:function(t){return l(t,\\\"Zoom out\\\")},attr:\\\"zoom\\\",val:\\\"out\\\",icon:s.zoom_minus,click:d},c.resetGeo={name:\\\"resetGeo\\\",title:function(t){return l(t,\\\"Reset\\\")},attr:\\\"reset\\\",val:null,icon:s.autoscale,click:d},c.hoverClosestGeo={name:\\\"hoverClosestGeo\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:null,toggle:!0,icon:s.tooltip_basic,gravity:\\\"ne\\\",click:g},c.hoverClosestGl2d={name:\\\"hoverClosestGl2d\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:null,toggle:!0,icon:s.tooltip_basic,gravity:\\\"ne\\\",click:g},c.hoverClosestPie={name:\\\"hoverClosestPie\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:\\\"closest\\\",icon:s.tooltip_basic,gravity:\\\"ne\\\",click:g},c.toggleHover={name:\\\"toggleHover\\\",title:function(t){return l(t,\\\"Toggle show closest data on hover\\\")},attr:\\\"hovermode\\\",val:null,toggle:!0,icon:s.tooltip_basic,gravity:\\\"ne\\\",click:function(t,e){g(t),p(t,e)}},c.resetViews={name:\\\"resetViews\\\",title:function(t){return l(t,\\\"Reset views\\\")},icon:s.home,click:function(t,e){var r=e.currentTarget;r.setAttribute(\\\"data-attr\\\",\\\"zoom\\\"),r.setAttribute(\\\"data-val\\\",\\\"reset\\\"),u(t,e),r.setAttribute(\\\"data-attr\\\",\\\"resetLastSave\\\"),h(t,e),v(t,\\\"geo\\\"),v(t,\\\"mapbox\\\")}},c.toggleSpikelines={name:\\\"toggleSpikelines\\\",title:function(t){return l(t,\\\"Toggle Spike Lines\\\")},icon:s.spikeline,attr:\\\"_cartesianSpikesEnabled\\\",val:\\\"on\\\",click:function(t){var e=t._fullLayout;e._cartesianSpikesEnabled=\\\"on\\\"===e._cartesianSpikesEnabled?\\\"off\\\":\\\"on\\\";var r=function(t){for(var e,r,n=t._fullLayout,i=a.list(t,null,!0),o={},s=0;s<i.length;s++)e=i[s],r=e._name,o[r+\\\".showspikes\\\"]=\\\"on\\\"===n._cartesianSpikesEnabled||e._showSpikeInitial;return o}(t);n.call(\\\"relayout\\\",t,r)}},c.resetViewMapbox={name:\\\"resetViewMapbox\\\",title:function(t){return l(t,\\\"Reset view\\\")},attr:\\\"reset\\\",icon:s.home,click:function(t){v(t,\\\"mapbox\\\")}}},{\\\"../../../build/ploticon\\\":2,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827}],633:[function(t,e,r){\\\"use strict\\\";r.manage=t(\\\"./manage\\\")},{\\\"./manage\\\":634}],634:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axis_ids\\\"),i=t(\\\"../../traces/scatter/subtypes\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"./modebar\\\"),s=t(\\\"./buttons\\\");e.exports=function(t){var e=t._fullLayout,r=t._context,l=e._modeBar;if(r.displayModeBar){if(!Array.isArray(r.modeBarButtonsToRemove))throw new Error([\\\"*modeBarButtonsToRemove* configuration options\\\",\\\"must be an array.\\\"].join(\\\" \\\"));if(!Array.isArray(r.modeBarButtonsToAdd))throw new Error([\\\"*modeBarButtonsToAdd* configuration options\\\",\\\"must be an array.\\\"].join(\\\" \\\"));var c,u=r.modeBarButtons;c=Array.isArray(u)&&u.length?function(t){for(var e=0;e<t.length;e++)for(var r=t[e],n=0;n<r.length;n++){var i=r[n];if(\\\"string\\\"==typeof i){if(void 0===s[i])throw new Error([\\\"*modeBarButtons* configuration options\\\",\\\"invalid button name\\\"].join(\\\" \\\"));t[e][n]=s[i]}}return t}(u):function(t,e,r){var o=t._fullLayout,l=t._fullData,c=o._has(\\\"cartesian\\\"),u=o._has(\\\"gl3d\\\"),f=o._has(\\\"geo\\\"),h=o._has(\\\"pie\\\"),p=o._has(\\\"gl2d\\\"),d=o._has(\\\"ternary\\\"),g=o._has(\\\"mapbox\\\"),v=o._has(\\\"polar\\\"),m=function(t){for(var e=n.list({_fullLayout:t},null,!0),r=0;r<e.length;r++)if(!e[r].fixedrange)return!1;return!0}(o),y=[];function x(t){if(t.length){for(var r=[],n=0;n<t.length;n++){var i=t[n];-1===e.indexOf(i)&&r.push(s[i])}y.push(r)}}x([\\\"toImage\\\",\\\"sendDataToCloud\\\"]);var b=[],_=[],w=[],k=[];(c||p||h||d)+f+u+g+v>1?(_=[\\\"toggleHover\\\"],w=[\\\"resetViews\\\"]):f?(b=[\\\"zoomInGeo\\\",\\\"zoomOutGeo\\\"],_=[\\\"hoverClosestGeo\\\"],w=[\\\"resetGeo\\\"]):u?(_=[\\\"hoverClosest3d\\\"],w=[\\\"resetCameraDefault3d\\\",\\\"resetCameraLastSave3d\\\"]):g?(_=[\\\"toggleHover\\\"],w=[\\\"resetViewMapbox\\\"]):_=p?[\\\"hoverClosestGl2d\\\"]:h?[\\\"hoverClosestPie\\\"]:[\\\"toggleHover\\\"];c&&(_=[\\\"toggleSpikelines\\\",\\\"hoverClosestCartesian\\\",\\\"hoverCompareCartesian\\\"]);!c&&!p||m||(b=[\\\"zoomIn2d\\\",\\\"zoomOut2d\\\",\\\"autoScale2d\\\"],\\\"resetViews\\\"!==w[0]&&(w=[\\\"resetScale2d\\\"]));u?k=[\\\"zoom3d\\\",\\\"pan3d\\\",\\\"orbitRotation\\\",\\\"tableRotation\\\"]:(c||p)&&!m||d?k=[\\\"zoom2d\\\",\\\"pan2d\\\"]:g||f?k=[\\\"pan2d\\\"]:v&&(k=[\\\"zoom2d\\\"]);(function(t){for(var e=!1,r=0;r<t.length&&!e;r++){var n=t[r];n._module&&n._module.selectPoints&&(a.traceIs(n,\\\"scatter-like\\\")?(i.hasMarkers(n)||i.hasText(n))&&(e=!0):a.traceIs(n,\\\"box-violin\\\")&&\\\"all\\\"!==n.boxpoints&&\\\"all\\\"!==n.points||(e=!0))}return e})(l)&&k.push(\\\"select2d\\\",\\\"lasso2d\\\");return x(k),x(b.concat(w)),x(_),function(t,e){if(e.length)if(Array.isArray(e[0]))for(var r=0;r<e.length;r++)t.push(e[r]);else t.push(e);return t}(y,r)}(t,r.modeBarButtonsToRemove,r.modeBarButtonsToAdd),l?l.update(t,c):e._modeBar=o(t,c)}else l&&(l.destroy(),delete e._modeBar)}},{\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../registry\\\":827,\\\"../../traces/scatter/subtypes\\\":1067,\\\"./buttons\\\":632,\\\"./modebar\\\":635}],635:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../../build/ploticon\\\"),s=new DOMParser;function l(t){this.container=t.container,this.element=document.createElement(\\\"div\\\"),this.update(t.graphInfo,t.buttons),this.container.appendChild(this.element)}var c=l.prototype;c.update=function(t,e){this.graphInfo=t;var r=this.graphInfo._context,n=this.graphInfo._fullLayout,i=\\\"modebar-\\\"+n._uid;this.element.setAttribute(\\\"id\\\",i),this._uid=i,\\\"hover\\\"===r.displayModeBar?this.element.className=\\\"modebar modebar--hover\\\":this.element.className=\\\"modebar\\\",\\\"v\\\"===n.modebar.orientation&&(this.element.className+=\\\" vertical\\\",e=e.reverse()),a.deleteRelatedStyleRule(i),a.addRelatedStyleRule(i,\\\"#\\\"+i,\\\"background-color: \\\"+n.modebar.bgcolor),a.addRelatedStyleRule(i,\\\"#\\\"+i+\\\" .modebar-btn .icon path\\\",\\\"fill: \\\"+n.modebar.color),a.addRelatedStyleRule(i,\\\"#\\\"+i+\\\" .modebar-btn:hover .icon path\\\",\\\"fill: \\\"+n.modebar.activecolor),a.addRelatedStyleRule(i,\\\"#\\\"+i+\\\" .modebar-btn.active .icon path\\\",\\\"fill: \\\"+n.modebar.activecolor);var o=!this.hasButtons(e),s=this.hasLogo!==r.displaylogo,l=this.locale!==r.locale;this.locale=r.locale,(o||s||l)&&(this.removeAllButtons(),this.updateButtons(e),r.displaylogo&&(\\\"v\\\"===n.modebar.orientation?this.element.prepend(this.getLogo()):this.element.appendChild(this.getLogo()),this.hasLogo=!0)),this.updateActiveButton()},c.updateButtons=function(t){var e=this;this.buttons=t,this.buttonElements=[],this.buttonsNames=[],this.buttons.forEach(function(t){var r=e.createGroup();t.forEach(function(t){var n=t.name;if(!n)throw new Error(\\\"must provide button 'name' in button config\\\");if(-1!==e.buttonsNames.indexOf(n))throw new Error(\\\"button name '\\\"+n+\\\"' is taken\\\");e.buttonsNames.push(n);var i=e.createButton(t);e.buttonElements.push(i),r.appendChild(i)}),e.element.appendChild(r)})},c.createGroup=function(){var t=document.createElement(\\\"div\\\");return t.className=\\\"modebar-group\\\",t},c.createButton=function(t){var e=this,r=document.createElement(\\\"a\\\");r.setAttribute(\\\"rel\\\",\\\"tooltip\\\"),r.className=\\\"modebar-btn\\\";var i=t.title;void 0===i?i=t.name:\\\"function\\\"==typeof i&&(i=i(this.graphInfo)),(i||0===i)&&r.setAttribute(\\\"data-title\\\",i),void 0!==t.attr&&r.setAttribute(\\\"data-attr\\\",t.attr);var a=t.val;if(void 0!==a&&(\\\"function\\\"==typeof a&&(a=a(this.graphInfo)),r.setAttribute(\\\"data-val\\\",a)),\\\"function\\\"!=typeof t.click)throw new Error(\\\"must provide button 'click' function in button config\\\");r.addEventListener(\\\"click\\\",function(r){t.click(e.graphInfo,r),e.updateActiveButton(r.currentTarget)}),r.setAttribute(\\\"data-toggle\\\",t.toggle||!1),t.toggle&&n.select(r).classed(\\\"active\\\",!0);var s=t.icon;return\\\"function\\\"==typeof s?r.appendChild(s()):r.appendChild(this.createIcon(s||o.question)),r.setAttribute(\\\"data-gravity\\\",t.gravity||\\\"n\\\"),r},c.createIcon=function(t){var e,r=i(t.height)?Number(t.height):t.ascent-t.descent,n=\\\"http://www.w3.org/2000/svg\\\";if(t.path){(e=document.createElementNS(n,\\\"svg\\\")).setAttribute(\\\"viewBox\\\",[0,0,t.width,r].join(\\\" \\\")),e.setAttribute(\\\"class\\\",\\\"icon\\\");var a=document.createElementNS(n,\\\"path\\\");a.setAttribute(\\\"d\\\",t.path),t.transform?a.setAttribute(\\\"transform\\\",t.transform):void 0!==t.ascent&&a.setAttribute(\\\"transform\\\",\\\"matrix(1 0 0 -1 0 \\\"+t.ascent+\\\")\\\"),e.appendChild(a)}t.svg&&(e=s.parseFromString(t.svg,\\\"application/xml\\\").childNodes[0]);return e.setAttribute(\\\"height\\\",\\\"1em\\\"),e.setAttribute(\\\"width\\\",\\\"1em\\\"),e},c.updateActiveButton=function(t){var e=this.graphInfo._fullLayout,r=void 0!==t?t.getAttribute(\\\"data-attr\\\"):null;this.buttonElements.forEach(function(t){var i=t.getAttribute(\\\"data-val\\\")||!0,o=t.getAttribute(\\\"data-attr\\\"),s=\\\"true\\\"===t.getAttribute(\\\"data-toggle\\\"),l=n.select(t);if(s)o===r&&l.classed(\\\"active\\\",!l.classed(\\\"active\\\"));else{var c=null===o?o:a.nestedProperty(e,o).get();l.classed(\\\"active\\\",c===i)}})},c.hasButtons=function(t){var e=this.buttons;if(!e)return!1;if(t.length!==e.length)return!1;for(var r=0;r<t.length;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n<t[r].length;n++)if(t[r][n].name!==e[r][n].name)return!1}return!0},c.getLogo=function(){var t=this.createGroup(),e=document.createElement(\\\"a\\\");return e.href=\\\"https://plot.ly/\\\",e.target=\\\"_blank\\\",e.setAttribute(\\\"data-title\\\",a._(this.graphInfo,\\\"Produced with Plotly\\\")),e.className=\\\"modebar-btn plotlyjsicon modebar-btn--logo\\\",e.appendChild(this.createIcon(o.newplotlylogo)),t.appendChild(e),t},c.removeAllButtons=function(){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.hasLogo=!1},c.destroy=function(){a.removeElement(this.container.querySelector(\\\".modebar\\\")),a.deleteRelatedStyleRule(this._uid)},e.exports=function(t,e){var r=t._fullLayout,i=new l({graphInfo:t,container:r._paperdiv.node(),buttons:e});return r._privateplot&&n.select(i.element).append(\\\"span\\\").classed(\\\"badge-private float--left\\\",!0).text(\\\"PRIVATE\\\"),i}},{\\\"../../../build/ploticon\\\":2,\\\"../../lib\\\":696,d3:148,\\\"fast-isnumeric\\\":214}],636:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../color/attributes\\\"),a=(0,t(\\\"../../plot_api/plot_template\\\").templatedArray)(\\\"button\\\",{visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},step:{valType:\\\"enumerated\\\",values:[\\\"month\\\",\\\"year\\\",\\\"day\\\",\\\"hour\\\",\\\"minute\\\",\\\"second\\\",\\\"all\\\"],dflt:\\\"month\\\",editType:\\\"plot\\\"},stepmode:{valType:\\\"enumerated\\\",values:[\\\"backward\\\",\\\"todate\\\"],dflt:\\\"backward\\\",editType:\\\"plot\\\"},count:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"plot\\\"},label:{valType:\\\"string\\\",editType:\\\"plot\\\"},editType:\\\"plot\\\"});e.exports={visible:{valType:\\\"boolean\\\",editType:\\\"plot\\\"},buttons:a,x:{valType:\\\"number\\\",min:-2,max:3,editType:\\\"plot\\\"},xanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\",editType:\\\"plot\\\"},y:{valType:\\\"number\\\",min:-2,max:3,editType:\\\"plot\\\"},yanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"bottom\\\",editType:\\\"plot\\\"},font:n({editType:\\\"plot\\\"}),bgcolor:{valType:\\\"color\\\",dflt:i.lightLine,editType:\\\"plot\\\"},activecolor:{valType:\\\"color\\\",editType:\\\"plot\\\"},bordercolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"plot\\\"},borderwidth:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"plot\\\"},editType:\\\"plot\\\"}},{\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/font_attributes\\\":771,\\\"../color/attributes\\\":569}],637:[function(t,e,r){\\\"use strict\\\";e.exports={yPad:.02,minButtonWidth:30,rx:3,ry:3,lightAmount:25,darkAmount:10}},{}],638:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../color\\\"),a=t(\\\"../../plot_api/plot_template\\\"),o=t(\\\"../../plots/array_container_defaults\\\"),s=t(\\\"./attributes\\\"),l=t(\\\"./constants\\\");function c(t,e,r,i){var a=i.calendar;function o(r,i){return n.coerce(t,e,s.buttons,r,i)}if(o(\\\"visible\\\")){var l=o(\\\"step\\\");\\\"all\\\"!==l&&(!a||\\\"gregorian\\\"===a||\\\"month\\\"!==l&&\\\"year\\\"!==l?o(\\\"stepmode\\\"):e.stepmode=\\\"backward\\\",o(\\\"count\\\")),o(\\\"label\\\")}}e.exports=function(t,e,r,u,f){var h=t.rangeselector||{},p=a.newContainer(e,\\\"rangeselector\\\");function d(t,e){return n.coerce(h,p,s,t,e)}if(d(\\\"visible\\\",o(h,p,{name:\\\"buttons\\\",handleItemDefaults:c,calendar:f}).length>0)){var g=function(t,e,r){for(var n=r.filter(function(r){return e[r].anchor===t._id}),i=0,a=0;a<n.length;a++){var o=e[n[a]].domain;o&&(i=Math.max(o[1],i))}return[t.domain[0],i+l.yPad]}(e,r,u);d(\\\"x\\\",g[0]),d(\\\"y\\\",g[1]),n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\"]),d(\\\"xanchor\\\"),d(\\\"yanchor\\\"),n.coerceFont(d,\\\"font\\\",r.font);var v=d(\\\"bgcolor\\\");d(\\\"activecolor\\\",i.contrast(v,l.lightAmount,l.darkAmount)),d(\\\"bordercolor\\\"),d(\\\"borderwidth\\\")}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/array_container_defaults\\\":740,\\\"../color\\\":570,\\\"./attributes\\\":636,\\\"./constants\\\":637}],639:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../color\\\"),s=t(\\\"../drawing\\\"),l=t(\\\"../../lib\\\"),c=t(\\\"../../lib/svg_text_utils\\\"),u=t(\\\"../../plots/cartesian/axis_ids\\\"),f=t(\\\"../legend/anchor_utils\\\"),h=t(\\\"../../constants/alignment\\\"),p=h.LINE_SPACING,d=h.FROM_TL,g=h.FROM_BR,v=t(\\\"./constants\\\"),m=t(\\\"./get_update_object\\\");function y(t){return t._id}function x(t,e,r){var n=l.ensureSingle(t,\\\"rect\\\",\\\"selector-rect\\\",function(t){t.attr(\\\"shape-rendering\\\",\\\"crispEdges\\\")});n.attr({rx:v.rx,ry:v.ry}),n.call(o.stroke,e.bordercolor).call(o.fill,function(t,e){return e._isActive||e._isHovered?t.activecolor:t.bgcolor}(e,r)).style(\\\"stroke-width\\\",e.borderwidth+\\\"px\\\")}function b(t,e,r,n){var i;l.ensureSingle(t,\\\"text\\\",\\\"selector-text\\\",function(t){t.classed(\\\"user-select-none\\\",!0).attr(\\\"text-anchor\\\",\\\"middle\\\")}).call(s.font,e.font).text((i=r,i.label?i.label:\\\"all\\\"===i.step?\\\"all\\\":i.count+i.step.charAt(0))).call(function(t){c.convertToTspans(t,n)})}e.exports=function(t){var e=t._fullLayout._infolayer.selectAll(\\\".rangeselector\\\").data(function(t){for(var e=u.list(t,\\\"x\\\",!0),r=[],n=0;n<e.length;n++){var i=e[n];i.rangeselector&&i.rangeselector.visible&&r.push(i)}return r}(t),y);e.enter().append(\\\"g\\\").classed(\\\"rangeselector\\\",!0),e.exit().remove(),e.style({cursor:\\\"pointer\\\",\\\"pointer-events\\\":\\\"all\\\"}),e.each(function(e){var r=n.select(this),o=e,u=o.rangeselector,h=r.selectAll(\\\"g.button\\\").data(l.filterVisible(u.buttons));h.enter().append(\\\"g\\\").classed(\\\"button\\\",!0),h.exit().remove(),h.each(function(e){var r=n.select(this),a=m(o,e);e._isActive=function(t,e,r){if(\\\"all\\\"===e.step)return!0===t.autorange;var n=Object.keys(r);return t.range[0]===r[n[0]]&&t.range[1]===r[n[1]]}(o,e,a),r.call(x,u,e),r.call(b,u,e,t),r.on(\\\"click\\\",function(){t._dragged||i.call(\\\"relayout\\\",t,a)}),r.on(\\\"mouseover\\\",function(){e._isHovered=!0,r.call(x,u,e)}),r.on(\\\"mouseout\\\",function(){e._isHovered=!1,r.call(x,u,e)})}),function(t,e,r,i,o){var l=0,u=0,h=r.borderwidth;e.each(function(){var t=n.select(this),e=t.select(\\\".selector-text\\\"),i=r.font.size*p,a=Math.max(i*c.lineCount(e),16)+3;u=Math.max(u,a)}),e.each(function(){var t=n.select(this),e=t.select(\\\".selector-rect\\\"),i=t.select(\\\".selector-text\\\"),a=i.node()&&s.bBox(i.node()).width,o=r.font.size*p,f=c.lineCount(i),d=Math.max(a+10,v.minButtonWidth);t.attr(\\\"transform\\\",\\\"translate(\\\"+(h+l)+\\\",\\\"+h+\\\")\\\"),e.attr({x:0,y:0,width:d,height:u}),c.positionText(i,d/2,u/2-(f-1)*o/2+3),l+=d+5});var m=t._fullLayout._size,y=m.l+m.w*r.x,x=m.t+m.h*(1-r.y),b=\\\"left\\\";f.isRightAnchor(r)&&(y-=l,b=\\\"right\\\");f.isCenterAnchor(r)&&(y-=l/2,b=\\\"center\\\");var _=\\\"top\\\";f.isBottomAnchor(r)&&(x-=u,_=\\\"bottom\\\");f.isMiddleAnchor(r)&&(x-=u/2,_=\\\"middle\\\");l=Math.ceil(l),u=Math.ceil(u),y=Math.round(y),x=Math.round(x),a.autoMargin(t,i+\\\"-range-selector\\\",{x:r.x,y:r.y,l:l*d[b],r:l*g[b],b:u*g[_],t:u*d[_]}),o.attr(\\\"transform\\\",\\\"translate(\\\"+y+\\\",\\\"+x+\\\")\\\")}(t,h,u,o._name,r)})}},{\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../drawing\\\":595,\\\"../legend/anchor_utils\\\":622,\\\"./constants\\\":637,\\\"./get_update_object\\\":640,d3:148}],640:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\");e.exports=function(t,e){var r=t._name,i={};if(\\\"all\\\"===e.step)i[r+\\\".autorange\\\"]=!0;else{var a=function(t,e){var r,i=t.range,a=new Date(t.r2l(i[1])),o=e.step,s=e.count;switch(e.stepmode){case\\\"backward\\\":r=t.l2r(+n.time[o].utc.offset(a,-s));break;case\\\"todate\\\":var l=n.time[o].utc.offset(a,-s);r=t.l2r(+n.time[o].utc.ceil(l))}var c=i[1];return[r,c]}(t,e);i[r+\\\".range[0]\\\"]=a[0],i[r+\\\".range[1]\\\"]=a[1]}return i}},{d3:148}],641:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"component\\\",name:\\\"rangeselector\\\",schema:{subplots:{xaxis:{rangeselector:t(\\\"./attributes\\\")}}},layoutAttributes:t(\\\"./attributes\\\"),handleDefaults:t(\\\"./defaults\\\"),draw:t(\\\"./draw\\\")}},{\\\"./attributes\\\":636,\\\"./defaults\\\":638,\\\"./draw\\\":639}],642:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../color/attributes\\\");e.exports={bgcolor:{valType:\\\"color\\\",dflt:n.background,editType:\\\"plot\\\"},bordercolor:{valType:\\\"color\\\",dflt:n.defaultLine,editType:\\\"plot\\\"},borderwidth:{valType:\\\"integer\\\",dflt:0,min:0,editType:\\\"plot\\\"},autorange:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\",impliedEdits:{\\\"range[0]\\\":void 0,\\\"range[1]\\\":void 0}},range:{valType:\\\"info_array\\\",items:[{valType:\\\"any\\\",editType:\\\"calc\\\",impliedEdits:{\\\"^autorange\\\":!1}},{valType:\\\"any\\\",editType:\\\"calc\\\",impliedEdits:{\\\"^autorange\\\":!1}}],editType:\\\"calc\\\",impliedEdits:{autorange:!1}},thickness:{valType:\\\"number\\\",dflt:.15,min:0,max:1,editType:\\\"plot\\\"},visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},editType:\\\"calc\\\"}},{\\\"../color/attributes\\\":569}],643:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axis_ids\\\").list,i=t(\\\"../../plots/cartesian/autorange\\\").getAutoRange,a=t(\\\"./constants\\\");e.exports=function(t){for(var e=n(t,\\\"x\\\",!0),r=0;r<e.length;r++){var o=e[r],s=o[a.name];s&&s.visible&&s.autorange&&(s._input.autorange=!0,s._input.range=s.range=i(t,o))}}},{\\\"../../plots/cartesian/autorange\\\":743,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"./constants\\\":644}],644:[function(t,e,r){\\\"use strict\\\";e.exports={name:\\\"rangeslider\\\",containerClassName:\\\"rangeslider-container\\\",bgClassName:\\\"rangeslider-bg\\\",rangePlotClassName:\\\"rangeslider-rangeplot\\\",maskMinClassName:\\\"rangeslider-mask-min\\\",maskMaxClassName:\\\"rangeslider-mask-max\\\",slideBoxClassName:\\\"rangeslider-slidebox\\\",grabberMinClassName:\\\"rangeslider-grabber-min\\\",grabAreaMinClassName:\\\"rangeslider-grabarea-min\\\",handleMinClassName:\\\"rangeslider-handle-min\\\",grabberMaxClassName:\\\"rangeslider-grabber-max\\\",grabAreaMaxClassName:\\\"rangeslider-grabarea-max\\\",handleMaxClassName:\\\"rangeslider-handle-max\\\",maskMinOppAxisClassName:\\\"rangeslider-mask-min-opp-axis\\\",maskMaxOppAxisClassName:\\\"rangeslider-mask-max-opp-axis\\\",maskColor:\\\"rgba(0,0,0,0.4)\\\",maskOppAxisColor:\\\"rgba(0,0,0,0.2)\\\",slideBoxFill:\\\"transparent\\\",slideBoxCursor:\\\"ew-resize\\\",grabAreaFill:\\\"transparent\\\",grabAreaCursor:\\\"col-resize\\\",grabAreaWidth:10,handleWidth:4,handleRadius:1,handleStrokeWidth:1,extraPad:15}},{}],645:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plot_api/plot_template\\\"),a=t(\\\"../../plots/cartesian/axis_ids\\\"),o=t(\\\"./attributes\\\"),s=t(\\\"./oppaxis_attributes\\\");e.exports=function(t,e,r){var l=t[r],c=e[r];if(l.rangeslider||e._requestRangeslider[c._id]){n.isPlainObject(l.rangeslider)||(l.rangeslider={});var u,f,h=l.rangeslider,p=i.newContainer(c,\\\"rangeslider\\\");if(_(\\\"visible\\\")){_(\\\"bgcolor\\\",e.plot_bgcolor),_(\\\"bordercolor\\\"),_(\\\"borderwidth\\\"),_(\\\"thickness\\\"),_(\\\"autorange\\\",!c.isValidRange(h.range)),_(\\\"range\\\");var d=e._subplots;if(d)for(var g=d.cartesian.filter(function(t){return t.substr(0,t.indexOf(\\\"y\\\"))===a.name2id(r)}).map(function(t){return t.substr(t.indexOf(\\\"y\\\"),t.length)}),v=n.simpleMap(g,a.id2name),m=0;m<v.length;m++){var y=v[m];u=h[y]||{},f=i.newContainer(p,y,\\\"yaxis\\\");var x,b=e[y];u.range&&b.isValidRange(u.range)&&(x=\\\"fixed\\\"),\\\"match\\\"!==w(\\\"rangemode\\\",x)&&w(\\\"range\\\",b.range.slice())}p._input=h}}function _(t,e){return n.coerce(h,p,o,t,e)}function w(t,e){return n.coerce(u,f,s,t,e)}}},{\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"./attributes\\\":642,\\\"./oppaxis_attributes\\\":648}],646:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../drawing\\\"),l=t(\\\"../color\\\"),c=t(\\\"../titles\\\"),u=t(\\\"../../plots/cartesian\\\"),f=t(\\\"../../plots/cartesian/axes\\\"),h=t(\\\"../dragelement\\\"),p=t(\\\"../../lib/setcursor\\\"),d=t(\\\"./constants\\\");function g(t,e,r,n){var i=o.ensureSingle(t,\\\"rect\\\",d.bgClassName,function(t){t.attr({x:0,y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}),a=n.borderwidth%2==0?n.borderwidth:n.borderwidth-1,l=-n._offsetShift,c=s.crispRound(e,n.borderwidth);i.attr({width:n._width+a,height:n._height+a,transform:\\\"translate(\\\"+l+\\\",\\\"+l+\\\")\\\",fill:n.bgcolor,stroke:n.bordercolor,\\\"stroke-width\\\":c})}function v(t,e,r,n){var i=e._fullLayout;o.ensureSingleById(i._topdefs,\\\"clipPath\\\",n._clipId,function(t){t.append(\\\"rect\\\").attr({x:0,y:0})}).select(\\\"rect\\\").attr({width:n._width,height:n._height})}function m(t,e,r,i){var l,c=f.getSubplots(e,r),h=e.calcdata,p=t.selectAll(\\\"g.\\\"+d.rangePlotClassName).data(c,o.identity);p.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return d.rangePlotClassName+\\\" \\\"+t}).call(s.setClipUrl,i._clipId),p.order(),p.exit().remove(),p.each(function(t,o){var s=n.select(this),c=0===o,p=f.getFromId(e,t,\\\"y\\\"),d=p._name,g=i[d],v={data:[],layout:{xaxis:{type:r.type,domain:[0,1],range:i.range.slice(),calendar:r.calendar},width:i._width,height:i._height,margin:{t:0,b:0,l:0,r:0}},_context:e._context};v.layout[d]={type:p.type,domain:[0,1],range:\\\"match\\\"!==g.rangemode?g.range.slice():p.range.slice(),calendar:p.calendar},a.supplyDefaults(v);var m={id:t,plotgroup:s,xaxis:v._fullLayout.xaxis,yaxis:v._fullLayout[d],isRangePlot:!0};c?l=m:(m.mainplot=\\\"xy\\\",m.mainplotinfo=l),u.rangePlot(e,m,function(t,e){for(var r=[],n=0;n<t.length;n++){var i=t[n],a=i[0].trace;a.xaxis+a.yaxis===e&&r.push(i)}return r}(h,t))})}function y(t,e,r,n,i){(o.ensureSingle(t,\\\"rect\\\",d.maskMinClassName,function(t){t.attr({x:0,y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr(\\\"height\\\",n._height).call(l.fill,d.maskColor),o.ensureSingle(t,\\\"rect\\\",d.maskMaxClassName,function(t){t.attr({y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr(\\\"height\\\",n._height).call(l.fill,d.maskColor),\\\"match\\\"!==i.rangemode)&&(o.ensureSingle(t,\\\"rect\\\",d.maskMinOppAxisClassName,function(t){t.attr({y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr(\\\"width\\\",n._width).call(l.fill,d.maskOppAxisColor),o.ensureSingle(t,\\\"rect\\\",d.maskMaxOppAxisClassName,function(t){t.attr({y:0,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr(\\\"width\\\",n._width).style(\\\"border-top\\\",d.maskOppBorder).call(l.fill,d.maskOppAxisColor))}function x(t,e,r,n){e._context.staticPlot||o.ensureSingle(t,\\\"rect\\\",d.slideBoxClassName,function(t){t.attr({y:0,cursor:d.slideBoxCursor,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).attr({height:n._height,fill:d.slideBoxFill})}function b(t,e,r,n){var i=o.ensureSingle(t,\\\"g\\\",d.grabberMinClassName),a=o.ensureSingle(t,\\\"g\\\",d.grabberMaxClassName),s={x:0,width:d.handleWidth,rx:d.handleRadius,fill:l.background,stroke:l.defaultLine,\\\"stroke-width\\\":d.handleStrokeWidth,\\\"shape-rendering\\\":\\\"crispEdges\\\"},c={y:Math.round(n._height/4),height:Math.round(n._height/2)};if(o.ensureSingle(i,\\\"rect\\\",d.handleMinClassName,function(t){t.attr(s)}).attr(c),o.ensureSingle(a,\\\"rect\\\",d.handleMaxClassName,function(t){t.attr(s)}).attr(c),!e._context.staticPlot){var u={width:d.grabAreaWidth,x:0,y:0,fill:d.grabAreaFill,cursor:d.grabAreaCursor};o.ensureSingle(i,\\\"rect\\\",d.grabAreaMinClassName,function(t){t.attr(u)}).attr(\\\"height\\\",n._height),o.ensureSingle(a,\\\"rect\\\",d.grabAreaMaxClassName,function(t){t.attr(u)}).attr(\\\"height\\\",n._height)}}e.exports=function(t){var e=t._fullLayout,r=function(t){var e=f.list({_fullLayout:t},\\\"x\\\",!0),r=d.name,n=[];if(t._has(\\\"gl2d\\\"))return n;for(var i=0;i<e.length;i++){var a=e[i];a[r]&&a[r].visible&&n.push(a)}return n}(e);var s=e._infolayer.selectAll(\\\"g.\\\"+d.containerClassName).data(r,function(t){return t._name});s.enter().append(\\\"g\\\").classed(d.containerClassName,!0).attr(\\\"pointer-events\\\",\\\"all\\\"),s.exit().each(function(t){var r=t[d.name];e._topdefs.select(\\\"#\\\"+r._clipId).remove()}).remove(),0!==r.length&&s.each(function(r){var s=n.select(this),l=r[d.name],u=e[f.id2name(r.anchor)],_=l[f.id2name(r.anchor)];if(l.range){var w=l.range,k=r.range;w[0]=r.l2r(Math.min(r.r2l(w[0]),r.r2l(k[0]))),w[1]=r.l2r(Math.max(r.r2l(w[1]),r.r2l(k[1]))),l._input.range=w.slice()}r.cleanRange(\\\"rangeslider.range\\\");for(var M=e.margin,A=e._size,T=r.domain,S=(r._boundingBox||{}).height||0,E=1/0,C=f.getSubplots(t,r),L=0;L<C.length;L++){var z=f.getFromId(t,C[L].substr(C[L].indexOf(\\\"y\\\")));E=Math.min(E,z.domain[0])}l._id=d.name+r._id,l._clipId=l._id+\\\"-\\\"+e._uid,l._width=A.w*(T[1]-T[0]),l._height=(e.height-M.b-M.t)*l.thickness,l._offsetShift=Math.floor(l.borderwidth/2);var O=Math.round(M.l+A.w*T[0]),I=Math.round(A.t+A.h*(1-E)+S+l._offsetShift+d.extraPad);s.attr(\\\"transform\\\",\\\"translate(\\\"+O+\\\",\\\"+I+\\\")\\\");var P=r.r2l(l.range[0]),D=r.r2l(l.range[1]),R=D-P;if(l.p2d=function(t){return t/l._width*R+P},l.d2p=function(t){return(t-P)/R*l._width},l._rl=[P,D],\\\"match\\\"!==_.rangemode){var B=u.r2l(_.range[0]),F=u.r2l(_.range[1])-B;l.d2pOppAxis=function(t){return(t-B)/F*l._height}}s.call(g,t,r,l).call(v,t,r,l).call(m,t,r,l).call(y,t,r,l,_).call(x,t,r,l).call(b,t,r,l),function(t,e,r,a){var s=t.select(\\\"rect.\\\"+d.slideBoxClassName).node(),l=t.select(\\\"rect.\\\"+d.grabAreaMinClassName).node(),c=t.select(\\\"rect.\\\"+d.grabAreaMaxClassName).node();t.on(\\\"mousedown\\\",function(){var u=n.event,f=u.target,d=u.clientX,g=d-t.node().getBoundingClientRect().left,v=a.d2p(r._rl[0]),m=a.d2p(r._rl[1]),y=h.coverSlip();function x(t){var u,h,x,b=+t.clientX-d;switch(f){case s:x=\\\"ew-resize\\\",u=v+b,h=m+b;break;case l:x=\\\"col-resize\\\",u=v+b,h=m;break;case c:x=\\\"col-resize\\\",u=v,h=m+b;break;default:x=\\\"ew-resize\\\",u=g,h=g+b}if(h<u){var _=h;h=u,u=_}a._pixelMin=u,a._pixelMax=h,p(n.select(y),x),function(t,e,r,n){function a(t){return r.l2r(o.constrain(t,n._rl[0],n._rl[1]))}var s=a(n.p2d(n._pixelMin)),l=a(n.p2d(n._pixelMax));window.requestAnimationFrame(function(){i.call(\\\"relayout\\\",e,r._name+\\\".range\\\",[s,l])})}(0,e,r,a)}y.addEventListener(\\\"mousemove\\\",x),y.addEventListener(\\\"mouseup\\\",function t(){y.removeEventListener(\\\"mousemove\\\",x);y.removeEventListener(\\\"mouseup\\\",t);o.removeElement(y)})})}(s,t,r,l),function(t,e,r,n,i,a){var s=d.handleWidth/2;function l(t){return o.constrain(t,0,n._width)}function c(t){return o.constrain(t,0,n._height)}function u(t){return o.constrain(t,-s,n._width+s)}var f=l(n.d2p(r._rl[0])),h=l(n.d2p(r._rl[1]));if(t.select(\\\"rect.\\\"+d.slideBoxClassName).attr(\\\"x\\\",f).attr(\\\"width\\\",h-f),t.select(\\\"rect.\\\"+d.maskMinClassName).attr(\\\"width\\\",f),t.select(\\\"rect.\\\"+d.maskMaxClassName).attr(\\\"x\\\",h).attr(\\\"width\\\",n._width-h),\\\"match\\\"!==a.rangemode){var p=n._height-c(n.d2pOppAxis(i._rl[1])),g=n._height-c(n.d2pOppAxis(i._rl[0]));t.select(\\\"rect.\\\"+d.maskMinOppAxisClassName).attr(\\\"x\\\",f).attr(\\\"height\\\",p).attr(\\\"width\\\",h-f),t.select(\\\"rect.\\\"+d.maskMaxOppAxisClassName).attr(\\\"x\\\",f).attr(\\\"y\\\",g).attr(\\\"height\\\",n._height-g).attr(\\\"width\\\",h-f),t.select(\\\"rect.\\\"+d.slideBoxClassName).attr(\\\"y\\\",p).attr(\\\"height\\\",g-p)}var v=Math.round(u(f-s))-.5,m=Math.round(u(h-s))+.5;t.select(\\\"g.\\\"+d.grabberMinClassName).attr(\\\"transform\\\",\\\"translate(\\\"+v+\\\",0.5)\\\"),t.select(\\\"g.\\\"+d.grabberMaxClassName).attr(\\\"transform\\\",\\\"translate(\\\"+m+\\\",0.5)\\\")}(s,0,r,l,u,_),\\\"bottom\\\"===r.side&&c.draw(t,r._id+\\\"title\\\",{propContainer:r,propName:r._name+\\\".title\\\",placeholder:e._dfltTitle.x,attributes:{x:r._offset+r._length/2,y:I+l._height+l._offsetShift+10+1.5*r.titlefont.size,\\\"text-anchor\\\":\\\"middle\\\"}}),a.autoMargin(t,l._id,{x:T[0],y:E,l:0,r:0,t:0,b:l._height+M.b+S,pad:d.extraPad+2*l._offsetShift})})}},{\\\"../../lib\\\":696,\\\"../../lib/setcursor\\\":716,\\\"../../plots/cartesian\\\":756,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"../titles\\\":661,\\\"./constants\\\":644,d3:148}],647:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"./oppaxis_attributes\\\");e.exports={moduleType:\\\"component\\\",name:\\\"rangeslider\\\",schema:{subplots:{xaxis:{rangeslider:n.extendFlat({},i,{yaxis:a})}}},layoutAttributes:t(\\\"./attributes\\\"),handleDefaults:t(\\\"./defaults\\\"),calcAutorange:t(\\\"./calc_autorange\\\"),draw:t(\\\"./draw\\\")}},{\\\"../../lib\\\":696,\\\"./attributes\\\":642,\\\"./calc_autorange\\\":643,\\\"./defaults\\\":645,\\\"./draw\\\":646,\\\"./oppaxis_attributes\\\":648}],648:[function(t,e,r){\\\"use strict\\\";e.exports={_isSubplotObj:!0,rangemode:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"fixed\\\",\\\"match\\\"],dflt:\\\"match\\\",editType:\\\"calc\\\"},range:{valType:\\\"info_array\\\",items:[{valType:\\\"any\\\",editType:\\\"plot\\\"},{valType:\\\"any\\\",editType:\\\"plot\\\"}],editType:\\\"plot\\\"},editType:\\\"calc\\\"}},{}],649:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../annotations/attributes\\\"),i=t(\\\"../../traces/scatter/attributes\\\").line,a=t(\\\"../drawing/attributes\\\").dash,o=t(\\\"../../lib/extend\\\").extendFlat,s=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports=s(\\\"shape\\\",{visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc+arraydraw\\\"},type:{valType:\\\"enumerated\\\",values:[\\\"circle\\\",\\\"rect\\\",\\\"path\\\",\\\"line\\\"],editType:\\\"calc+arraydraw\\\"},layer:{valType:\\\"enumerated\\\",values:[\\\"below\\\",\\\"above\\\"],dflt:\\\"above\\\",editType:\\\"arraydraw\\\"},xref:o({},n.xref,{}),xsizemode:{valType:\\\"enumerated\\\",values:[\\\"scaled\\\",\\\"pixel\\\"],dflt:\\\"scaled\\\",editType:\\\"calc+arraydraw\\\"},xanchor:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},x0:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},x1:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},yref:o({},n.yref,{}),ysizemode:{valType:\\\"enumerated\\\",values:[\\\"scaled\\\",\\\"pixel\\\"],dflt:\\\"scaled\\\",editType:\\\"calc+arraydraw\\\"},yanchor:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},y0:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},y1:{valType:\\\"any\\\",editType:\\\"calc+arraydraw\\\"},path:{valType:\\\"string\\\",editType:\\\"calc+arraydraw\\\"},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1,editType:\\\"arraydraw\\\"},line:{color:o({},i.color,{editType:\\\"arraydraw\\\"}),width:o({},i.width,{editType:\\\"calc+arraydraw\\\"}),dash:o({},a,{editType:\\\"arraydraw\\\"}),editType:\\\"calc+arraydraw\\\"},fillcolor:{valType:\\\"color\\\",dflt:\\\"rgba(0,0,0,0)\\\",editType:\\\"arraydraw\\\"},editType:\\\"arraydraw\\\"})},{\\\"../../lib/extend\\\":685,\\\"../../plot_api/plot_template\\\":734,\\\"../../traces/scatter/attributes\\\":1043,\\\"../annotations/attributes\\\":553,\\\"../drawing/attributes\\\":594}],650:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"./constants\\\"),o=t(\\\"./helpers\\\");function s(t){return c(t.line.width,t.xsizemode,t.x0,t.x1,t.path,!1)}function l(t){return c(t.line.width,t.ysizemode,t.y0,t.y1,t.path,!0)}function c(t,e,r,i,s,l){var c=t/2,u=l;if(\\\"pixel\\\"===e){var f=s?o.extractPathCoords(s,l?a.paramIsY:a.paramIsX):[r,i],h=n.aggNums(Math.max,null,f),p=n.aggNums(Math.min,null,f),d=p<0?Math.abs(p)+c:c,g=h>0?h+c:c;return{ppad:c,ppadplus:u?d:g,ppadminus:u?g:d}}return{ppad:c}}function u(t,e,r,n,i){var s=\\\"category\\\"===t.type?t.r2c:t.d2c;if(void 0!==e)return[s(e),s(r)];if(n){var l,c,u,f,h=1/0,p=-1/0,d=n.match(a.segmentRE);for(\\\"date\\\"===t.type&&(s=o.decodeDate(s)),l=0;l<d.length;l++)void 0!==(c=i[d[l].charAt(0)].drawn)&&(!(u=d[l].substr(1).match(a.paramRE))||u.length<c||((f=s(u[c]))<h&&(h=f),f>p&&(p=f)));return p>=h?[h,p]:void 0}}e.exports=function(t){var e=t._fullLayout,r=n.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var o=0;o<r.length;o++){var c,f,h=r[o];if(h._extremes={},\\\"paper\\\"!==h.xref){var p=\\\"pixel\\\"===h.xsizemode?h.xanchor:h.x0,d=\\\"pixel\\\"===h.xsizemode?h.xanchor:h.x1;(f=u(c=i.getFromId(t,h.xref),p,d,h.path,a.paramIsX))&&(h._extremes[c._id]=i.findExtremes(c,f,s(h)))}if(\\\"paper\\\"!==h.yref){var g=\\\"pixel\\\"===h.ysizemode?h.yanchor:h.y0,v=\\\"pixel\\\"===h.ysizemode?h.yanchor:h.y1;(f=u(c=i.getFromId(t,h.yref),g,v,h.path,a.paramIsY))&&(h._extremes[c._id]=i.findExtremes(c,f,l(h)))}}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"./constants\\\":651,\\\"./helpers\\\":654}],651:[function(t,e,r){\\\"use strict\\\";e.exports={segmentRE:/[MLHVQCTSZ][^MLHVQCTSZ]*/g,paramRE:/[^\\\\s,]+/g,paramIsX:{M:{0:!0,drawn:0},L:{0:!0,drawn:0},H:{0:!0,drawn:0},V:{},Q:{0:!0,2:!0,drawn:2},C:{0:!0,2:!0,4:!0,drawn:4},T:{0:!0,drawn:0},S:{0:!0,2:!0,drawn:2},Z:{}},paramIsY:{M:{1:!0,drawn:1},L:{1:!0,drawn:1},H:{},V:{0:!0,drawn:0},Q:{1:!0,3:!0,drawn:3},C:{1:!0,3:!0,5:!0,drawn:5},T:{1:!0,drawn:1},S:{1:!0,3:!0,drawn:5},Z:{}},numParams:{M:2,L:2,H:1,V:1,Q:4,C:6,T:2,S:4,Z:0}}},{}],652:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../plots/array_container_defaults\\\"),o=t(\\\"./attributes\\\"),s=t(\\\"./helpers\\\");function l(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}if(a(\\\"visible\\\")){a(\\\"layer\\\"),a(\\\"opacity\\\"),a(\\\"fillcolor\\\"),a(\\\"line.color\\\"),a(\\\"line.width\\\"),a(\\\"line.dash\\\");for(var l=a(\\\"type\\\",t.path?\\\"path\\\":\\\"rect\\\"),c=a(\\\"xsizemode\\\"),u=a(\\\"ysizemode\\\"),f=[\\\"x\\\",\\\"y\\\"],h=0;h<2;h++){var p,d,g,v=f[h],m=v+\\\"anchor\\\",y=\\\"x\\\"===v?c:u,x={_fullLayout:r},b=i.coerceRef(t,e,x,v,\\\"\\\",\\\"paper\\\");if(\\\"paper\\\"!==b?((p=i.getFromId(x,b))._shapeIndices.push(e._index),g=s.rangeToShapePosition(p),d=s.shapePositionToRange(p)):d=g=n.identity,\\\"path\\\"!==l){var _=v+\\\"0\\\",w=v+\\\"1\\\",k=t[_],M=t[w];t[_]=d(t[_],!0),t[w]=d(t[w],!0),\\\"pixel\\\"===y?(a(_,0),a(w,10)):(i.coercePosition(e,x,a,b,_,.25),i.coercePosition(e,x,a,b,w,.75)),e[_]=g(e[_]),e[w]=g(e[w]),t[_]=k,t[w]=M}if(\\\"pixel\\\"===y){var A=t[m];t[m]=d(t[m],!0),i.coercePosition(e,x,a,b,m,.25),e[m]=g(e[m]),t[m]=A}}\\\"path\\\"===l?a(\\\"path\\\"):n.noneOrAll(t,e,[\\\"x0\\\",\\\"x1\\\",\\\"y0\\\",\\\"y1\\\"])}}e.exports=function(t,e){a(t,e,{name:\\\"shapes\\\",handleItemDefaults:l})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/cartesian/axes\\\":744,\\\"./attributes\\\":649,\\\"./helpers\\\":654}],653:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../color\\\"),s=t(\\\"../drawing\\\"),l=t(\\\"../../plot_api/plot_template\\\").arrayEditor,c=t(\\\"../dragelement\\\"),u=t(\\\"../../lib/setcursor\\\"),f=t(\\\"./constants\\\"),h=t(\\\"./helpers\\\");function p(t,e){t._fullLayout._paperdiv.selectAll('.shapelayer [data-index=\\\"'+e+'\\\"]').remove();var r=t._fullLayout.shapes[e]||{};if(r._input&&!1!==r.visible)if(\\\"below\\\"!==r.layer)m(t._fullLayout._shapeUpperLayer);else if(\\\"paper\\\"===r.xref||\\\"paper\\\"===r.yref)m(t._fullLayout._shapeLowerLayer);else{var p=t._fullLayout._plots[r.xref+r.yref];if(p)m((p.mainplotinfo||p).shapelayer);else m(t._fullLayout._shapeLowerLayer)}function m(p){var m={\\\"data-index\\\":e,\\\"fill-rule\\\":\\\"evenodd\\\",d:g(t,r)},y=r.line.width?r.line.color:\\\"rgba(0,0,0,0)\\\",x=p.append(\\\"path\\\").attr(m).style(\\\"opacity\\\",r.opacity).call(o.stroke,y).call(o.fill,r.fillcolor).call(s.dashLine,r.line.dash,r.line.width);d(x,t,r),t._context.edits.shapePosition&&function(t,e,r,o,p){var m,y,x,b,_,w,k,M,A,T,S,E,C,L,z,O,I=10,P=10,D=\\\"pixel\\\"===r.xsizemode,R=\\\"pixel\\\"===r.ysizemode,B=\\\"line\\\"===r.type,F=\\\"path\\\"===r.type,N=l(t.layout,\\\"shapes\\\",r),j=N.modifyItem,V=a.getFromId(t,r.xref),U=a.getFromId(t,r.yref),q=h.getDataToPixel(t,V),H=h.getDataToPixel(t,U,!0),G=h.getPixelToData(t,V),W=h.getPixelToData(t,U,!0),Y=B?function(){var t=Math.max(r.line.width,10),n=p.append(\\\"g\\\").attr(\\\"data-index\\\",o);n.append(\\\"path\\\").attr(\\\"d\\\",e.attr(\\\"d\\\")).style({cursor:\\\"move\\\",\\\"stroke-width\\\":t,\\\"stroke-opacity\\\":\\\"0\\\"});var i={\\\"fill-opacity\\\":\\\"0\\\"},a=t/2>10?t/2:10;return n.append(\\\"circle\\\").attr({\\\"data-line-point\\\":\\\"start-point\\\",cx:D?q(r.xanchor)+r.x0:q(r.x0),cy:R?H(r.yanchor)-r.y0:H(r.y0),r:a}).style(i).classed(\\\"cursor-grab\\\",!0),n.append(\\\"circle\\\").attr({\\\"data-line-point\\\":\\\"end-point\\\",cx:D?q(r.xanchor)+r.x1:q(r.x1),cy:R?H(r.yanchor)-r.y1:H(r.y1),r:a}).style(i).classed(\\\"cursor-grab\\\",!0),n}():e,X={element:Y.node(),gd:t,prepFn:function(n){D&&(_=q(r.xanchor));R&&(w=H(r.yanchor));\\\"path\\\"===r.type?z=r.path:(m=D?r.x0:q(r.x0),y=R?r.y0:H(r.y0),x=D?r.x1:q(r.x1),b=R?r.y1:H(r.y1));m<x?(A=m,C=\\\"x0\\\",T=x,L=\\\"x1\\\"):(A=x,C=\\\"x1\\\",T=m,L=\\\"x0\\\");!R&&y<b||R&&y>b?(k=y,S=\\\"y0\\\",M=b,E=\\\"y1\\\"):(k=b,S=\\\"y1\\\",M=y,E=\\\"y0\\\");Z(n),K(p,r),function(t,e,r){var n=e.xref,i=e.yref,o=a.getFromId(r,n),l=a.getFromId(r,i),c=\\\"\\\";\\\"paper\\\"===n||o.autorange||(c+=n);\\\"paper\\\"===i||l.autorange||(c+=i);t.call(s.setClipUrl,c?\\\"clip\\\"+r._fullLayout._uid+c:null)}(e,r,t),X.moveFn=\\\"move\\\"===O?$:J},doneFn:function(){u(e),Q(p),d(e,t,r),n.call(\\\"relayout\\\",t,N.getUpdateObj())},clickFn:function(){Q(p)}};function Z(t){if(B)O=\\\"path\\\"===t.target.tagName?\\\"move\\\":\\\"start-point\\\"===t.target.attributes[\\\"data-line-point\\\"].value?\\\"resize-over-start-point\\\":\\\"resize-over-end-point\\\";else{var r=X.element.getBoundingClientRect(),n=r.right-r.left,i=r.bottom-r.top,a=t.clientX-r.left,o=t.clientY-r.top,s=!F&&n>I&&i>P&&!t.shiftKey?c.getCursor(a/n,1-o/i):\\\"move\\\";u(e,s),O=s.split(\\\"-\\\")[0]}}function $(n,i){if(\\\"path\\\"===r.type){var a=function(t){return t},o=a,s=a;D?j(\\\"xanchor\\\",r.xanchor=G(_+n)):(o=function(t){return G(q(t)+n)},V&&\\\"date\\\"===V.type&&(o=h.encodeDate(o))),R?j(\\\"yanchor\\\",r.yanchor=W(w+i)):(s=function(t){return W(H(t)+i)},U&&\\\"date\\\"===U.type&&(s=h.encodeDate(s))),j(\\\"path\\\",r.path=v(z,o,s))}else D?j(\\\"xanchor\\\",r.xanchor=G(_+n)):(j(\\\"x0\\\",r.x0=G(m+n)),j(\\\"x1\\\",r.x1=G(x+n))),R?j(\\\"yanchor\\\",r.yanchor=W(w+i)):(j(\\\"y0\\\",r.y0=W(y+i)),j(\\\"y1\\\",r.y1=W(b+i)));e.attr(\\\"d\\\",g(t,r)),K(p,r)}function J(n,i){if(F){var a=function(t){return t},o=a,s=a;D?j(\\\"xanchor\\\",r.xanchor=G(_+n)):(o=function(t){return G(q(t)+n)},V&&\\\"date\\\"===V.type&&(o=h.encodeDate(o))),R?j(\\\"yanchor\\\",r.yanchor=W(w+i)):(s=function(t){return W(H(t)+i)},U&&\\\"date\\\"===U.type&&(s=h.encodeDate(s))),j(\\\"path\\\",r.path=v(z,o,s))}else if(B){if(\\\"resize-over-start-point\\\"===O){var l=m+n,c=R?y-i:y+i;j(\\\"x0\\\",r.x0=D?l:G(l)),j(\\\"y0\\\",r.y0=R?c:W(c))}else if(\\\"resize-over-end-point\\\"===O){var u=x+n,f=R?b-i:b+i;j(\\\"x1\\\",r.x1=D?u:G(u)),j(\\\"y1\\\",r.y1=R?f:W(f))}}else{var d=~O.indexOf(\\\"n\\\")?k+i:k,N=~O.indexOf(\\\"s\\\")?M+i:M,Y=~O.indexOf(\\\"w\\\")?A+n:A,X=~O.indexOf(\\\"e\\\")?T+n:T;~O.indexOf(\\\"n\\\")&&R&&(d=k-i),~O.indexOf(\\\"s\\\")&&R&&(N=M-i),(!R&&N-d>P||R&&d-N>P)&&(j(S,r[S]=R?d:W(d)),j(E,r[E]=R?N:W(N))),X-Y>I&&(j(C,r[C]=D?Y:G(Y)),j(L,r[L]=D?X:G(X)))}e.attr(\\\"d\\\",g(t,r)),K(p,r)}function K(t,e){(D||R)&&function(){var r=\\\"path\\\"!==e.type,n=t.selectAll(\\\".visual-cue\\\").data([0]);n.enter().append(\\\"path\\\").attr({fill:\\\"#fff\\\",\\\"fill-rule\\\":\\\"evenodd\\\",stroke:\\\"#000\\\",\\\"stroke-width\\\":1}).classed(\\\"visual-cue\\\",!0);var a=q(D?e.xanchor:i.midRange(r?[e.x0,e.x1]:h.extractPathCoords(e.path,f.paramIsX))),o=H(R?e.yanchor:i.midRange(r?[e.y0,e.y1]:h.extractPathCoords(e.path,f.paramIsY)));if(a=h.roundPositionForSharpStrokeRendering(a,1),o=h.roundPositionForSharpStrokeRendering(o,1),D&&R){var s=\\\"M\\\"+(a-1-1)+\\\",\\\"+(o-1-1)+\\\"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z\\\";n.attr(\\\"d\\\",s)}else if(D){var l=\\\"M\\\"+(a-1-1)+\\\",\\\"+(o-9-1)+\\\"v18 h2 v-18 Z\\\";n.attr(\\\"d\\\",l)}else{var c=\\\"M\\\"+(a-9-1)+\\\",\\\"+(o-1-1)+\\\"h18 v2 h-18 Z\\\";n.attr(\\\"d\\\",c)}}()}function Q(t){t.selectAll(\\\".visual-cue\\\").remove()}c.init(X),Y.node().onmousemove=Z}(t,x,r,e,p)}}function d(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,\\\"\\\");t.call(s.setClipUrl,n?\\\"clip\\\"+e._fullLayout._uid+n:null)}function g(t,e){var r,n,o,s,l,c,u,p,d=e.type,g=a.getFromId(t,e.xref),v=a.getFromId(t,e.yref),m=t._fullLayout._size;if(g?(r=h.shapePositionToRange(g),n=function(t){return g._offset+g.r2p(r(t,!0))}):n=function(t){return m.l+m.w*t},v?(o=h.shapePositionToRange(v),s=function(t){return v._offset+v.r2p(o(t,!0))}):s=function(t){return m.t+m.h*(1-t)},\\\"path\\\"===d)return g&&\\\"date\\\"===g.type&&(n=h.decodeDate(n)),v&&\\\"date\\\"===v.type&&(s=h.decodeDate(s)),function(t,e,r){var n=t.path,a=t.xsizemode,o=t.ysizemode,s=t.xanchor,l=t.yanchor;return n.replace(f.segmentRE,function(t){var n=0,c=t.charAt(0),u=f.paramIsX[c],h=f.paramIsY[c],p=f.numParams[c],d=t.substr(1).replace(f.paramRE,function(t){return u[n]?t=\\\"pixel\\\"===a?e(s)+Number(t):e(t):h[n]&&(t=\\\"pixel\\\"===o?r(l)-Number(t):r(t)),++n>p&&(t=\\\"X\\\"),t});return n>p&&(d=d.replace(/[\\\\s,]*X.*/,\\\"\\\"),i.log(\\\"Ignoring extra params in segment \\\"+t)),c+d})}(e,n,s);if(\\\"pixel\\\"===e.xsizemode){var y=n(e.xanchor);l=y+e.x0,c=y+e.x1}else l=n(e.x0),c=n(e.x1);if(\\\"pixel\\\"===e.ysizemode){var x=s(e.yanchor);u=x-e.y0,p=x-e.y1}else u=s(e.y0),p=s(e.y1);if(\\\"line\\\"===d)return\\\"M\\\"+l+\\\",\\\"+u+\\\"L\\\"+c+\\\",\\\"+p;if(\\\"rect\\\"===d)return\\\"M\\\"+l+\\\",\\\"+u+\\\"H\\\"+c+\\\"V\\\"+p+\\\"H\\\"+l+\\\"Z\\\";var b=(l+c)/2,_=(u+p)/2,w=Math.abs(b-l),k=Math.abs(_-u),M=\\\"A\\\"+w+\\\",\\\"+k,A=b+w+\\\",\\\"+_;return\\\"M\\\"+A+M+\\\" 0 1,1 \\\"+(b+\\\",\\\"+(_-k))+M+\\\" 0 0,1 \\\"+A+\\\"Z\\\"}function v(t,e,r){return t.replace(f.segmentRE,function(t){var n=0,i=t.charAt(0),a=f.paramIsX[i],o=f.paramIsY[i],s=f.numParams[i];return i+t.substr(1).replace(f.paramRE,function(t){return n>=s?t:(a[n]?t=e(t):o[n]&&(t=r(t)),n++,t)})})}e.exports={draw:function(t){var e=t._fullLayout;for(var r in e._shapeUpperLayer.selectAll(\\\"path\\\").remove(),e._shapeLowerLayer.selectAll(\\\"path\\\").remove(),e._plots){var n=e._plots[r].shapelayer;n&&n.selectAll(\\\"path\\\").remove()}for(var i=0;i<e.shapes.length;i++)e.shapes[i].visible&&p(t,i)},drawOne:p}},{\\\"../../lib\\\":696,\\\"../../lib/setcursor\\\":716,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../dragelement\\\":592,\\\"../drawing\\\":595,\\\"./constants\\\":651,\\\"./helpers\\\":654}],654:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"../../lib\\\");r.rangeToShapePosition=function(t){return\\\"log\\\"===t.type?t.r2d:function(t){return t}},r.shapePositionToRange=function(t){return\\\"log\\\"===t.type?t.d2r:function(t){return t}},r.decodeDate=function(t){return function(e){return e.replace&&(e=e.replace(\\\"_\\\",\\\" \\\")),t(e)}},r.encodeDate=function(t){return function(e){return t(e).replace(\\\" \\\",\\\"_\\\")}},r.extractPathCoords=function(t,e){var r=[];return t.match(n.segmentRE).forEach(function(t){var a=e[t.charAt(0)].drawn;if(void 0!==a){var o=t.substr(1).match(n.paramRE);!o||o.length<a||r.push(i.cleanNumber(o[a]))}}),r},r.getDataToPixel=function(t,e,n){var i,a=t._fullLayout._size;if(e){var o=r.shapePositionToRange(e);i=function(t){return e._offset+e.r2p(o(t,!0))},\\\"date\\\"===e.type&&(i=r.decodeDate(i))}else i=n?function(t){return a.t+a.h*(1-t)}:function(t){return a.l+a.w*t};return i},r.getPixelToData=function(t,e,n){var i,a=t._fullLayout._size;if(e){var o=r.rangeToShapePosition(e);i=function(t){return o(e.p2r(t-e._offset))}}else i=n?function(t){return 1-(t-a.t)/a.h}:function(t){return(t-a.l)/a.w};return i},r.roundPositionForSharpStrokeRendering=function(t,e){var r=1===Math.round(e%2),n=Math.round(t);return r?n+.5:n}},{\\\"../../lib\\\":696,\\\"./constants\\\":651}],655:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./draw\\\");e.exports={moduleType:\\\"component\\\",name:\\\"shapes\\\",layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),includeBasePlot:t(\\\"../../plots/cartesian/include_components\\\")(\\\"shapes\\\"),calcAutorange:t(\\\"./calc_autorange\\\"),draw:n.draw,drawOne:n.drawOne}},{\\\"../../plots/cartesian/include_components\\\":755,\\\"./attributes\\\":649,\\\"./calc_autorange\\\":650,\\\"./defaults\\\":652,\\\"./draw\\\":653}],656:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../../plots/pad_attributes\\\"),a=t(\\\"../../lib/extend\\\").extendDeepAll,o=t(\\\"../../plot_api/edit_types\\\").overrideAll,s=t(\\\"../../plots/animation_attributes\\\"),l=t(\\\"../../plot_api/plot_template\\\").templatedArray,c=t(\\\"./constants\\\"),u=l(\\\"step\\\",{visible:{valType:\\\"boolean\\\",dflt:!0},method:{valType:\\\"enumerated\\\",values:[\\\"restyle\\\",\\\"relayout\\\",\\\"animate\\\",\\\"update\\\",\\\"skip\\\"],dflt:\\\"restyle\\\"},args:{valType:\\\"info_array\\\",freeLength:!0,items:[{valType:\\\"any\\\"},{valType:\\\"any\\\"},{valType:\\\"any\\\"}]},label:{valType:\\\"string\\\"},value:{valType:\\\"string\\\"},execute:{valType:\\\"boolean\\\",dflt:!0}});e.exports=o(l(\\\"slider\\\",{visible:{valType:\\\"boolean\\\",dflt:!0},active:{valType:\\\"number\\\",min:0,dflt:0},steps:u,lenmode:{valType:\\\"enumerated\\\",values:[\\\"fraction\\\",\\\"pixels\\\"],dflt:\\\"fraction\\\"},len:{valType:\\\"number\\\",min:0,dflt:1},x:{valType:\\\"number\\\",min:-2,max:3,dflt:0},pad:a({},i,{},{t:{dflt:20}}),xanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\"},y:{valType:\\\"number\\\",min:-2,max:3,dflt:0},yanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],dflt:\\\"top\\\"},transition:{duration:{valType:\\\"number\\\",min:0,dflt:150},easing:{valType:\\\"enumerated\\\",values:s.transition.easing.values,dflt:\\\"cubic-in-out\\\"}},currentvalue:{visible:{valType:\\\"boolean\\\",dflt:!0},xanchor:{valType:\\\"enumerated\\\",values:[\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"left\\\"},offset:{valType:\\\"number\\\",dflt:10},prefix:{valType:\\\"string\\\"},suffix:{valType:\\\"string\\\"},font:n({})},font:n({}),activebgcolor:{valType:\\\"color\\\",dflt:c.gripBgActiveColor},bgcolor:{valType:\\\"color\\\",dflt:c.railBgColor},bordercolor:{valType:\\\"color\\\",dflt:c.railBorderColor},borderwidth:{valType:\\\"number\\\",min:0,dflt:c.railBorderWidth},ticklen:{valType:\\\"number\\\",min:0,dflt:c.tickLength},tickcolor:{valType:\\\"color\\\",dflt:c.tickColor},tickwidth:{valType:\\\"number\\\",min:0,dflt:1},minorticklen:{valType:\\\"number\\\",min:0,dflt:c.minorTickLength}}),\\\"arraydraw\\\",\\\"from-root\\\")},{\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/animation_attributes\\\":739,\\\"../../plots/font_attributes\\\":771,\\\"../../plots/pad_attributes\\\":807,\\\"./constants\\\":657}],657:[function(t,e,r){\\\"use strict\\\";e.exports={name:\\\"sliders\\\",containerClassName:\\\"slider-container\\\",groupClassName:\\\"slider-group\\\",inputAreaClass:\\\"slider-input-area\\\",railRectClass:\\\"slider-rail-rect\\\",railTouchRectClass:\\\"slider-rail-touch-rect\\\",gripRectClass:\\\"slider-grip-rect\\\",tickRectClass:\\\"slider-tick-rect\\\",inputProxyClass:\\\"slider-input-proxy\\\",labelsClass:\\\"slider-labels\\\",labelGroupClass:\\\"slider-label-group\\\",labelClass:\\\"slider-label\\\",currentValueClass:\\\"slider-current-value\\\",railHeight:5,menuIndexAttrName:\\\"slider-active-index\\\",autoMarginIdRoot:\\\"slider-\\\",minWidth:30,minHeight:30,textPadX:40,arrowOffsetX:4,railRadius:2,railWidth:5,railBorder:4,railBorderWidth:1,railBorderColor:\\\"#bec8d9\\\",railBgColor:\\\"#f8fafc\\\",railInset:8,stepInset:10,gripRadius:10,gripWidth:20,gripHeight:20,gripBorder:20,gripBorderWidth:1,gripBorderColor:\\\"#bec8d9\\\",gripBgColor:\\\"#f6f8fa\\\",gripBgActiveColor:\\\"#dbdde0\\\",labelPadding:8,labelOffset:0,tickWidth:1,tickColor:\\\"#333\\\",tickOffset:25,tickLength:7,minorTickOffset:25,minorTickColor:\\\"#333\\\",minorTickLength:4,currentValuePadding:8,currentValueInset:0}},{}],658:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/array_container_defaults\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"./constants\\\").name,s=a.steps;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}for(var s=i(t,e,{name:\\\"steps\\\",handleItemDefaults:c}),l=0,u=0;u<s.length;u++)s[u].visible&&l++;if(l<2?e.visible=!1:o(\\\"visible\\\")){e._stepCount=l;var f=e._visibleSteps=n.filterVisible(s);(s[o(\\\"active\\\")]||{}).visible||(e.active=f[0]._index),o(\\\"x\\\"),o(\\\"y\\\"),n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\"]),o(\\\"xanchor\\\"),o(\\\"yanchor\\\"),o(\\\"len\\\"),o(\\\"lenmode\\\"),o(\\\"pad.t\\\"),o(\\\"pad.r\\\"),o(\\\"pad.b\\\"),o(\\\"pad.l\\\"),n.coerceFont(o,\\\"font\\\",r.font),o(\\\"currentvalue.visible\\\")&&(o(\\\"currentvalue.xanchor\\\"),o(\\\"currentvalue.prefix\\\"),o(\\\"currentvalue.suffix\\\"),o(\\\"currentvalue.offset\\\"),n.coerceFont(o,\\\"currentvalue.font\\\",e.font)),o(\\\"transition.duration\\\"),o(\\\"transition.easing\\\"),o(\\\"bgcolor\\\"),o(\\\"activebgcolor\\\"),o(\\\"bordercolor\\\"),o(\\\"borderwidth\\\"),o(\\\"ticklen\\\"),o(\\\"tickwidth\\\"),o(\\\"tickcolor\\\"),o(\\\"minorticklen\\\")}}function c(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}if(\\\"skip\\\"===t.method||Array.isArray(t.args)?r(\\\"visible\\\"):e.visible=!1){r(\\\"method\\\"),r(\\\"args\\\");var i=r(\\\"label\\\",\\\"step-\\\"+e._index);r(\\\"value\\\",i),r(\\\"execute\\\")}}e.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"./attributes\\\":656,\\\"./constants\\\":657}],659:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../plots/plots\\\"),a=t(\\\"../color\\\"),o=t(\\\"../drawing\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../legend/anchor_utils\\\"),u=t(\\\"../../plot_api/plot_template\\\").arrayEditor,f=t(\\\"./constants\\\"),h=t(\\\"../../constants/alignment\\\"),p=h.LINE_SPACING,d=h.FROM_TL,g=h.FROM_BR;function v(t){return f.autoMarginIdRoot+t._index}function m(t){return t._index}function y(t,e){var r=o.tester.selectAll(\\\"g.\\\"+f.labelGroupClass).data(e._visibleSteps);r.enter().append(\\\"g\\\").classed(f.labelGroupClass,!0);var a=0,s=0;r.each(function(t){var r=_(n.select(this),{step:t},e).node();if(r){var i=o.bBox(r);s=Math.max(s,i.height),a=Math.max(a,i.width)}}),r.remove();var u=e._dims={};u.inputAreaWidth=Math.max(f.railWidth,f.gripHeight);var h=t._fullLayout._size;u.lx=h.l+h.w*e.x,u.ly=h.t+h.h*(1-e.y),\\\"fraction\\\"===e.lenmode?u.outerLength=Math.round(h.w*e.len):u.outerLength=e.len,u.inputAreaStart=0,u.inputAreaLength=Math.round(u.outerLength-e.pad.l-e.pad.r);var p=(u.inputAreaLength-2*f.stepInset)/(e._stepCount-1),m=a+f.labelPadding;if(u.labelStride=Math.max(1,Math.ceil(m/p)),u.labelHeight=s,u.currentValueMaxWidth=0,u.currentValueHeight=0,u.currentValueTotalHeight=0,u.currentValueMaxLines=1,e.currentvalue.visible){var y=o.tester.append(\\\"g\\\");r.each(function(t){var r=x(y,e,t.label),n=r.node()&&o.bBox(r.node())||{width:0,height:0},i=l.lineCount(r);u.currentValueMaxWidth=Math.max(u.currentValueMaxWidth,Math.ceil(n.width)),u.currentValueHeight=Math.max(u.currentValueHeight,Math.ceil(n.height)),u.currentValueMaxLines=Math.max(u.currentValueMaxLines,i)}),u.currentValueTotalHeight=u.currentValueHeight+e.currentvalue.offset,y.remove()}u.height=u.currentValueTotalHeight+f.tickOffset+e.ticklen+f.labelOffset+u.labelHeight+e.pad.t+e.pad.b;var b=\\\"left\\\";c.isRightAnchor(e)&&(u.lx-=u.outerLength,b=\\\"right\\\"),c.isCenterAnchor(e)&&(u.lx-=u.outerLength/2,b=\\\"center\\\");var w=\\\"top\\\";c.isBottomAnchor(e)&&(u.ly-=u.height,w=\\\"bottom\\\"),c.isMiddleAnchor(e)&&(u.ly-=u.height/2,w=\\\"middle\\\"),u.outerLength=Math.ceil(u.outerLength),u.height=Math.ceil(u.height),u.lx=Math.round(u.lx),u.ly=Math.round(u.ly);var k={y:e.y,b:u.height*g[w],t:u.height*d[w]};\\\"fraction\\\"===e.lenmode?(k.l=0,k.xl=e.x-e.len*d[b],k.r=0,k.xr=e.x+e.len*g[b]):(k.x=e.x,k.l=u.outerLength*d[b],k.r=u.outerLength*g[b]),i.autoMargin(t,v(e),k)}function x(t,e,r){if(e.currentvalue.visible){var n,i,a=e._dims;switch(e.currentvalue.xanchor){case\\\"right\\\":n=a.inputAreaLength-f.currentValueInset-a.currentValueMaxWidth,i=\\\"left\\\";break;case\\\"center\\\":n=.5*a.inputAreaLength,i=\\\"middle\\\";break;default:n=f.currentValueInset,i=\\\"left\\\"}var c=s.ensureSingle(t,\\\"text\\\",f.labelClass,function(t){t.classed(\\\"user-select-none\\\",!0).attr({\\\"text-anchor\\\":i,\\\"data-notex\\\":1})}),u=e.currentvalue.prefix?e.currentvalue.prefix:\\\"\\\";if(\\\"string\\\"==typeof r)u+=r;else u+=e.steps[e.active].label;e.currentvalue.suffix&&(u+=e.currentvalue.suffix),c.call(o.font,e.currentvalue.font).text(u).call(l.convertToTspans,e._gd);var h=l.lineCount(c),d=(a.currentValueMaxLines+1-h)*e.currentvalue.font.size*p;return l.positionText(c,n,d),c}}function b(t,e,r){s.ensureSingle(t,\\\"rect\\\",f.gripRectClass,function(n){n.call(A,e,t,r).style(\\\"pointer-events\\\",\\\"all\\\")}).attr({width:f.gripWidth,height:f.gripHeight,rx:f.gripRadius,ry:f.gripRadius}).call(a.stroke,r.bordercolor).call(a.fill,r.bgcolor).style(\\\"stroke-width\\\",r.borderwidth+\\\"px\\\")}function _(t,e,r){var n=s.ensureSingle(t,\\\"text\\\",f.labelClass,function(t){t.classed(\\\"user-select-none\\\",!0).attr({\\\"text-anchor\\\":\\\"middle\\\",\\\"data-notex\\\":1})});return n.call(o.font,r.font).text(e.step.label).call(l.convertToTspans,r._gd),n}function w(t,e){var r=s.ensureSingle(t,\\\"g\\\",f.labelsClass),i=e._dims,a=r.selectAll(\\\"g.\\\"+f.labelGroupClass).data(i.labelSteps);a.enter().append(\\\"g\\\").classed(f.labelGroupClass,!0),a.exit().remove(),a.each(function(t){var r=n.select(this);r.call(_,t,e),o.setTranslate(r,E(e,t.fraction),f.tickOffset+e.ticklen+e.font.size*p+f.labelOffset+i.currentValueTotalHeight)})}function k(t,e,r,n,i){var a=Math.round(n*(r._stepCount-1)),o=r._visibleSteps[a]._index;o!==r.active&&M(t,e,r,o,!0,i)}function M(t,e,r,n,a,o){var s=r.active;r.active=n,u(t.layout,f.name,r).applyUpdate(\\\"active\\\",n);var l=r.steps[r.active];e.call(S,r,o),e.call(x,r),t.emit(\\\"plotly_sliderchange\\\",{slider:r,step:r.steps[r.active],interaction:a,previousActive:s}),l&&l.method&&a&&(e._nextMethod?(e._nextMethod.step=l,e._nextMethod.doCallback=a,e._nextMethod.doTransition=o):(e._nextMethod={step:l,doCallback:a,doTransition:o},e._nextMethodRaf=window.requestAnimationFrame(function(){var r=e._nextMethod.step;r.method&&(r.execute&&i.executeAPICommand(t,r.method,r.args),e._nextMethod=null,e._nextMethodRaf=null)})))}function A(t,e,r){var i=r.node(),o=n.select(e);function s(){return r.data()[0]}t.on(\\\"mousedown\\\",function(){var t=s();e.emit(\\\"plotly_sliderstart\\\",{slider:t});var l=r.select(\\\".\\\"+f.gripRectClass);n.event.stopPropagation(),n.event.preventDefault(),l.call(a.fill,t.activebgcolor);var c=C(t,n.mouse(i)[0]);k(e,r,t,c,!0),t._dragging=!0,o.on(\\\"mousemove\\\",function(){var t=s(),a=C(t,n.mouse(i)[0]);k(e,r,t,a,!1)}),o.on(\\\"mouseup\\\",function(){var t=s();t._dragging=!1,l.call(a.fill,t.bgcolor),o.on(\\\"mouseup\\\",null),o.on(\\\"mousemove\\\",null),e.emit(\\\"plotly_sliderend\\\",{slider:t,step:t.steps[t.active]})})})}function T(t,e){var r=t.selectAll(\\\"rect.\\\"+f.tickRectClass).data(e._visibleSteps),i=e._dims;r.enter().append(\\\"rect\\\").classed(f.tickRectClass,!0),r.exit().remove(),r.attr({width:e.tickwidth+\\\"px\\\",\\\"shape-rendering\\\":\\\"crispEdges\\\"}),r.each(function(t,r){var s=r%i.labelStride==0,l=n.select(this);l.attr({height:s?e.ticklen:e.minorticklen}).call(a.fill,e.tickcolor),o.setTranslate(l,E(e,r/(e._stepCount-1))-.5*e.tickwidth,(s?f.tickOffset:f.minorTickOffset)+i.currentValueTotalHeight)})}function S(t,e,r){for(var n=t.select(\\\"rect.\\\"+f.gripRectClass),i=0,a=0;a<e._stepCount;a++)if(e._visibleSteps[a]._index===e.active){i=a;break}var o=E(e,i/(e._stepCount-1));if(!e._invokingCommand){var s=n;r&&e.transition.duration>0&&(s=s.transition().duration(e.transition.duration).ease(e.transition.easing)),s.attr(\\\"transform\\\",\\\"translate(\\\"+(o-.5*f.gripWidth)+\\\",\\\"+e._dims.currentValueTotalHeight+\\\")\\\")}}function E(t,e){var r=t._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,e))}function C(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function L(t,e,r){var n=r._dims,i=s.ensureSingle(t,\\\"rect\\\",f.railTouchRectClass,function(n){n.call(A,e,t,r).style(\\\"pointer-events\\\",\\\"all\\\")});i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(a.fill,r.bgcolor).attr(\\\"opacity\\\",0),o.setTranslate(i,0,n.currentValueTotalHeight)}function z(t,e){var r=e._dims,n=r.inputAreaLength-2*f.railInset,i=s.ensureSingle(t,\\\"rect\\\",f.railRectClass);i.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,\\\"shape-rendering\\\":\\\"crispEdges\\\"}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style(\\\"stroke-width\\\",e.borderwidth+\\\"px\\\"),o.setTranslate(i,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}e.exports=function(t){var e=t._fullLayout,r=function(t,e){for(var r=t[f.name],n=[],i=0;i<r.length;i++){var a=r[i];a.visible&&(a._gd=e,n.push(a))}return n}(e,t),a=e._infolayer.selectAll(\\\"g.\\\"+f.containerClassName).data(r.length>0?[0]:[]);function s(e){e._commandObserver&&(e._commandObserver.remove(),delete e._commandObserver),i.autoMargin(t,v(e))}if(a.enter().append(\\\"g\\\").classed(f.containerClassName,!0).style(\\\"cursor\\\",\\\"ew-resize\\\"),a.exit().each(function(){n.select(this).selectAll(\\\"g.\\\"+f.groupClassName).each(s)}).remove(),0!==r.length){var l=a.selectAll(\\\"g.\\\"+f.groupClassName).data(r,m);l.enter().append(\\\"g\\\").classed(f.groupClassName,!0),l.exit().each(s).remove();for(var c=0;c<r.length;c++){var u=r[c];y(t,u)}l.each(function(e){var r=n.select(this);!function(t){var e=t._dims;e.labelSteps=[];for(var r=t._stepCount,n=0;n<r;n+=e.labelStride)e.labelSteps.push({fraction:n/(r-1),step:t._visibleSteps[n]})}(e),i.manageCommandObserver(t,e,e._visibleSteps,function(e){var n=r.data()[0];n.active!==e.index&&(n._dragging||M(t,r,n,e.index,!1,!0))}),function(t,e,r){(r.steps[r.active]||{}).visible||(r.active=r._visibleSteps[0]._index);e.call(x,r).call(z,r).call(w,r).call(T,r).call(L,t,r).call(b,t,r);var n=r._dims;o.setTranslate(e,n.lx+r.pad.l,n.ly+r.pad.t),e.call(S,r,!1),e.call(x,r)}(t,n.select(this),e)})}}},{\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/plots\\\":808,\\\"../color\\\":570,\\\"../drawing\\\":595,\\\"../legend/anchor_utils\\\":622,\\\"./constants\\\":657,d3:148}],660:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\");e.exports={moduleType:\\\"component\\\",name:n.name,layoutAttributes:t(\\\"./attributes\\\"),supplyLayoutDefaults:t(\\\"./defaults\\\"),draw:t(\\\"./draw\\\")}},{\\\"./attributes\\\":656,\\\"./constants\\\":657,\\\"./defaults\\\":658,\\\"./draw\\\":659}],661:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../drawing\\\"),c=t(\\\"../color\\\"),u=t(\\\"../../lib/svg_text_utils\\\"),f=t(\\\"../../constants/interactions\\\");e.exports={draw:function(t,e,r){var p,d=r.propContainer,g=r.propName,v=r.placeholder,m=r.traceIndex,y=r.avoid||{},x=r.attributes,b=r.transform,_=r.containerGroup,w=t._fullLayout,k=d.titlefont||{},M=k.family,A=k.size,T=k.color,S=1,E=!1,C=(d.title||\\\"\\\").trim();\\\"title\\\"===g?p=\\\"titleText\\\":-1!==g.indexOf(\\\"axis\\\")?p=\\\"axisTitleText\\\":g.indexOf(!0)&&(p=\\\"colorbarTitleText\\\");var L=t._context.edits[p];\\\"\\\"===C?S=0:C.replace(h,\\\" % \\\")===v.replace(h,\\\" % \\\")&&(S=.2,E=!0,L||(C=\\\"\\\"));var z=C||L;_||(_=s.ensureSingle(w._infolayer,\\\"g\\\",\\\"g-\\\"+e));var O=_.selectAll(\\\"text\\\").data(z?[0]:[]);if(O.enter().append(\\\"text\\\"),O.text(C).attr(\\\"class\\\",e),O.exit().remove(),!z)return _;function I(t){s.syncOrAsync([P,D],t)}function P(e){var r;return b?(r=\\\"\\\",b.rotate&&(r+=\\\"rotate(\\\"+[b.rotate,x.x,x.y]+\\\")\\\"),b.offset&&(r+=\\\"translate(0, \\\"+b.offset+\\\")\\\")):r=null,e.attr(\\\"transform\\\",r),e.style({\\\"font-family\\\":M,\\\"font-size\\\":n.round(A,2)+\\\"px\\\",fill:c.rgb(T),opacity:S*c.opacity(T),\\\"font-weight\\\":a.fontWeight}).attr(x).call(u.convertToTspans,t),a.previousPromises(t)}function D(t){var e=n.select(t.node().parentNode);if(y&&y.selection&&y.side&&C){e.attr(\\\"transform\\\",null);var r=0,a={left:\\\"right\\\",right:\\\"left\\\",top:\\\"bottom\\\",bottom:\\\"top\\\"}[y.side],o=-1!==[\\\"left\\\",\\\"top\\\"].indexOf(y.side)?-1:1,c=i(y.pad)?y.pad:2,u=l.bBox(e.node()),f={left:0,top:0,right:w.width,bottom:w.height},h=y.maxShift||(f[y.side]-u[y.side])*(\\\"left\\\"===y.side||\\\"top\\\"===y.side?-1:1);if(h<0)r=h;else{var p=y.offsetLeft||0,d=y.offsetTop||0;u.left-=p,u.right-=p,u.top-=d,u.bottom-=d,y.selection.each(function(){var t=l.bBox(this);s.bBoxIntersect(u,t,c)&&(r=Math.max(r,o*(t[y.side]-u[a])+c))}),r=Math.min(h,r)}if(r>0||h<0){var g={left:[-r,0],right:[r,0],top:[0,-r],bottom:[0,r]}[y.side];e.attr(\\\"transform\\\",\\\"translate(\\\"+g+\\\")\\\")}}}O.call(I),L&&(C?O.on(\\\".opacity\\\",null):(S=0,E=!0,O.text(v).on(\\\"mouseover.opacity\\\",function(){n.select(this).transition().duration(f.SHOW_PLACEHOLDER).style(\\\"opacity\\\",1)}).on(\\\"mouseout.opacity\\\",function(){n.select(this).transition().duration(f.HIDE_PLACEHOLDER).style(\\\"opacity\\\",0)})),O.call(u.makeEditable,{gd:t}).on(\\\"edit\\\",function(e){void 0!==m?o.call(\\\"restyle\\\",t,g,e,m):o.call(\\\"relayout\\\",t,g,e)}).on(\\\"cancel\\\",function(){this.text(this.attr(\\\"data-unformatted\\\")).call(I)}).on(\\\"input\\\",function(t){this.text(t||\\\" \\\").call(u.positionText,x.x,x.y)}));return O.classed(\\\"js-placeholder\\\",E),_}};var h=/ [XY][0-9]* /},{\\\"../../constants/interactions\\\":672,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"../color\\\":570,\\\"../drawing\\\":595,d3:148,\\\"fast-isnumeric\\\":214}],662:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../color/attributes\\\"),a=t(\\\"../../lib/extend\\\").extendFlat,o=t(\\\"../../plot_api/edit_types\\\").overrideAll,s=t(\\\"../../plots/pad_attributes\\\"),l=t(\\\"../../plot_api/plot_template\\\").templatedArray,c=l(\\\"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\\\"}]},label:{valType:\\\"string\\\",dflt:\\\"\\\"},execute:{valType:\\\"boolean\\\",dflt:!0}});e.exports=o(l(\\\"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:c,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:a({},s,{}),font:n({}),bgcolor:{valType:\\\"color\\\"},bordercolor:{valType:\\\"color\\\",dflt:i.borderLine},borderwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"arraydraw\\\"}}),\\\"arraydraw\\\",\\\"from-root\\\")},{\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/font_attributes\\\":771,\\\"../../plots/pad_attributes\\\":807,\\\"../color/attributes\\\":569}],663:[function(t,e,r){\\\"use strict\\\";e.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\\\"}}},{}],664:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/array_container_defaults\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"./constants\\\").name,s=a.buttons;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}o(\\\"visible\\\",i(t,e,{name:\\\"buttons\\\",handleItemDefaults:c}).length>0)&&(o(\\\"active\\\"),o(\\\"direction\\\"),o(\\\"type\\\"),o(\\\"showactive\\\"),o(\\\"x\\\"),o(\\\"y\\\"),n.noneOrAll(t,e,[\\\"x\\\",\\\"y\\\"]),o(\\\"xanchor\\\"),o(\\\"yanchor\\\"),o(\\\"pad.t\\\"),o(\\\"pad.r\\\"),o(\\\"pad.b\\\"),o(\\\"pad.l\\\"),n.coerceFont(o,\\\"font\\\",r.font),o(\\\"bgcolor\\\",r.paper_bgcolor),o(\\\"bordercolor\\\"),o(\\\"borderwidth\\\"))}function c(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}r(\\\"visible\\\",\\\"skip\\\"===t.method||Array.isArray(t.args))&&(r(\\\"method\\\"),r(\\\"args\\\"),r(\\\"label\\\"),r(\\\"execute\\\"))}e.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"./attributes\\\":662,\\\"./constants\\\":663}],665:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../plots/plots\\\"),a=t(\\\"../color\\\"),o=t(\\\"../drawing\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../legend/anchor_utils\\\"),u=t(\\\"../../plot_api/plot_template\\\").arrayEditor,f=t(\\\"../../constants/alignment\\\").LINE_SPACING,h=t(\\\"./constants\\\"),p=t(\\\"./scrollbox\\\");function d(t){return t._index}function g(t,e){return+t.attr(h.menuIndexAttrName)===e._index}function v(t,e,r,n,i,a,o,s){e.active=o,u(t.layout,h.name,e).applyUpdate(\\\"active\\\",o),\\\"buttons\\\"===e.type?y(t,n,null,null,e):\\\"dropdown\\\"===e.type&&(i.attr(h.menuIndexAttrName,\\\"-1\\\"),m(t,n,i,a,e),s||y(t,n,i,a,e))}function m(t,e,r,n,i){var a=s.ensureSingle(e,\\\"g\\\",h.headerClassName,function(t){t.style(\\\"pointer-events\\\",\\\"all\\\")}),l=i._dims,c=i.active,u=i.buttons[c]||h.blankHeaderOpts,f={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},p={width:l.headerWidth,height:l.headerHeight};a.call(x,i,u,t).call(S,i,f,p),s.ensureSingle(e,\\\"text\\\",h.headerArrowClassName,function(t){t.classed(\\\"user-select-none\\\",!0).attr(\\\"text-anchor\\\",\\\"end\\\").call(o.font,i.font).text(h.arrowSymbol[i.direction])}).attr({x:l.headerWidth-h.arrowOffsetX+i.pad.l,y:l.headerHeight/2+h.textOffsetY+i.pad.t}),a.on(\\\"click\\\",function(){r.call(E,String(g(r,i)?-1:i._index)),y(t,e,r,n,i)}),a.on(\\\"mouseover\\\",function(){a.call(k)}),a.on(\\\"mouseout\\\",function(){a.call(M,i)}),o.setTranslate(e,l.lx,l.ly)}function y(t,e,r,a,o){r||(r=e).attr(\\\"pointer-events\\\",\\\"all\\\");var l=function(t){return-1==+t.attr(h.menuIndexAttrName)}(r)&&\\\"buttons\\\"!==o.type?[]:o.buttons,c=\\\"dropdown\\\"===o.type?h.dropdownButtonClassName:h.buttonClassName,u=r.selectAll(\\\"g.\\\"+c).data(s.filterVisible(l)),f=u.enter().append(\\\"g\\\").classed(c,!0),p=u.exit();\\\"dropdown\\\"===o.type?(f.attr(\\\"opacity\\\",\\\"0\\\").transition().attr(\\\"opacity\\\",\\\"1\\\"),p.transition().attr(\\\"opacity\\\",\\\"0\\\").remove()):p.remove();var d=0,g=0,m=o._dims,y=-1!==[\\\"up\\\",\\\"down\\\"].indexOf(o.direction);\\\"dropdown\\\"===o.type&&(y?g=m.headerHeight+h.gapButtonHeader:d=m.headerWidth+h.gapButtonHeader),\\\"dropdown\\\"===o.type&&\\\"up\\\"===o.direction&&(g=-h.gapButtonHeader+h.gapButton-m.openHeight),\\\"dropdown\\\"===o.type&&\\\"left\\\"===o.direction&&(d=-h.gapButtonHeader+h.gapButton-m.openWidth);var b={x:m.lx+d+o.pad.l,y:m.ly+g+o.pad.t,yPad:h.gapButton,xPad:h.gapButton,index:0},_={l:b.x+o.borderwidth,t:b.y+o.borderwidth};u.each(function(s,l){var c=n.select(this);c.call(x,o,s,t).call(S,o,b),c.on(\\\"click\\\",function(){n.event.defaultPrevented||(v(t,o,0,e,r,a,l),s.execute&&i.executeAPICommand(t,s.method,s.args),t.emit(\\\"plotly_buttonclicked\\\",{menu:o,button:s,active:o.active}))}),c.on(\\\"mouseover\\\",function(){c.call(k)}),c.on(\\\"mouseout\\\",function(){c.call(M,o),u.call(w,o)})}),u.call(w,o),y?(_.w=Math.max(m.openWidth,m.headerWidth),_.h=b.y-_.t):(_.w=b.x-_.l,_.h=Math.max(m.openHeight,m.headerHeight)),_.direction=o.direction,a&&(u.size()?function(t,e,r,n,i,a){var o,s,l,c=i.direction,u=\\\"up\\\"===c||\\\"down\\\"===c,f=i._dims,p=i.active;if(u)for(s=0,l=0;l<p;l++)s+=f.heights[l]+h.gapButton;else for(o=0,l=0;l<p;l++)o+=f.widths[l]+h.gapButton;n.enable(a,o,s),n.hbar&&n.hbar.attr(\\\"opacity\\\",\\\"0\\\").transition().attr(\\\"opacity\\\",\\\"1\\\");n.vbar&&n.vbar.attr(\\\"opacity\\\",\\\"0\\\").transition().attr(\\\"opacity\\\",\\\"1\\\")}(0,0,0,a,o,_):function(t){var e=!!t.hbar,r=!!t.vbar;e&&t.hbar.transition().attr(\\\"opacity\\\",\\\"0\\\").each(\\\"end\\\",function(){e=!1,r||t.disable()});r&&t.vbar.transition().attr(\\\"opacity\\\",\\\"0\\\").each(\\\"end\\\",function(){r=!1,e||t.disable()})}(a))}function x(t,e,r,n){t.call(b,e).call(_,e,r,n)}function b(t,e){s.ensureSingle(t,\\\"rect\\\",h.itemRectClassName,function(t){t.attr({rx:h.rx,ry:h.ry,\\\"shape-rendering\\\":\\\"crispEdges\\\"})}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style(\\\"stroke-width\\\",e.borderwidth+\\\"px\\\")}function _(t,e,r,n){s.ensureSingle(t,\\\"text\\\",h.itemTextClassName,function(t){t.classed(\\\"user-select-none\\\",!0).attr({\\\"text-anchor\\\":\\\"start\\\",\\\"data-notex\\\":1})}).call(o.font,e.font).text(r.label).call(l.convertToTspans,n)}function w(t,e){var r=e.active;t.each(function(t,i){var o=n.select(this);i===r&&e.showactive&&o.select(\\\"rect.\\\"+h.itemRectClassName).call(a.fill,h.activeColor)})}function k(t){t.select(\\\"rect.\\\"+h.itemRectClassName).call(a.fill,h.hoverColor)}function M(t,e){t.select(\\\"rect.\\\"+h.itemRectClassName).call(a.fill,e.bgcolor)}function A(t,e){var r=e._dims={width1:0,height1:0,heights:[],widths:[],totalWidth:0,totalHeight:0,openWidth:0,openHeight:0,lx:0,ly:0},a=o.tester.selectAll(\\\"g.\\\"+h.dropdownButtonClassName).data(s.filterVisible(e.buttons));a.enter().append(\\\"g\\\").classed(h.dropdownButtonClassName,!0);var u=-1!==[\\\"up\\\",\\\"down\\\"].indexOf(e.direction);a.each(function(i,a){var s=n.select(this);s.call(x,e,i,t);var c=s.select(\\\".\\\"+h.itemTextClassName),p=c.node()&&o.bBox(c.node()).width,d=Math.max(p+h.textPadX,h.minWidth),g=e.font.size*f,v=l.lineCount(c),m=Math.max(g*v,h.minHeight)+h.textOffsetY;m=Math.ceil(m),d=Math.ceil(d),r.widths[a]=d,r.heights[a]=m,r.height1=Math.max(r.height1,m),r.width1=Math.max(r.width1,d),u?(r.totalWidth=Math.max(r.totalWidth,d),r.openWidth=r.totalWidth,r.totalHeight+=m+h.gapButton,r.openHeight+=m+h.gapButton):(r.totalWidth+=d+h.gapButton,r.openWidth+=d+h.gapButton,r.totalHeight=Math.max(r.totalHeight,m),r.openHeight=r.totalHeight)}),u?r.totalHeight-=h.gapButton:r.totalWidth-=h.gapButton,r.headerWidth=r.width1+h.arrowPadX,r.headerHeight=r.height1,\\\"dropdown\\\"===e.type&&(u?(r.width1+=h.arrowPadX,r.totalHeight=r.height1):r.totalWidth=r.width1,r.totalWidth+=h.arrowPadX),a.remove();var p=r.totalWidth+e.pad.l+e.pad.r,d=r.totalHeight+e.pad.t+e.pad.b,g=t._fullLayout._size;r.lx=g.l+g.w*e.x,r.ly=g.t+g.h*(1-e.y);var v=\\\"left\\\";c.isRightAnchor(e)&&(r.lx-=p,v=\\\"right\\\"),c.isCenterAnchor(e)&&(r.lx-=p/2,v=\\\"center\\\");var m=\\\"top\\\";c.isBottomAnchor(e)&&(r.ly-=d,m=\\\"bottom\\\"),c.isMiddleAnchor(e)&&(r.ly-=d/2,m=\\\"middle\\\"),r.totalWidth=Math.ceil(r.totalWidth),r.totalHeight=Math.ceil(r.totalHeight),r.lx=Math.round(r.lx),r.ly=Math.round(r.ly),i.autoMargin(t,T(e),{x:e.x,y:e.y,l:p*({right:1,center:.5}[v]||0),r:p*({left:1,center:.5}[v]||0),b:d*({top:1,middle:.5}[m]||0),t:d*({bottom:1,middle:.5}[m]||0)})}function T(t){return h.autoMarginIdRoot+t._index}function S(t,e,r,n){n=n||{};var i=t.select(\\\".\\\"+h.itemRectClassName),a=t.select(\\\".\\\"+h.itemTextClassName),s=e.borderwidth,c=r.index,u=e._dims;o.setTranslate(t,s+r.x,s+r.y);var p=-1!==[\\\"up\\\",\\\"down\\\"].indexOf(e.direction),d=n.height||(p?u.heights[c]:u.height1);i.attr({x:0,y:0,width:n.width||(p?u.width1:u.widths[c]),height:d});var g=e.font.size*f,v=(l.lineCount(a)-1)*g/2;l.positionText(a,h.textOffsetX,d/2-v+h.textOffsetY),p?r.y+=u.heights[c]+r.yPad:r.x+=u.widths[c]+r.xPad,r.index++}function E(t,e){t.attr(h.menuIndexAttrName,e||\\\"-1\\\").selectAll(\\\"g.\\\"+h.dropdownButtonClassName).remove()}e.exports=function(t){var e=t._fullLayout,r=s.filterVisible(e[h.name]);function a(e){i.autoMargin(t,T(e))}var o=e._menulayer.selectAll(\\\"g.\\\"+h.containerClassName).data(r.length>0?[0]:[]);if(o.enter().append(\\\"g\\\").classed(h.containerClassName,!0).style(\\\"cursor\\\",\\\"pointer\\\"),o.exit().each(function(){n.select(this).selectAll(\\\"g.\\\"+h.headerGroupClassName).each(a)}).remove(),0!==r.length){var l=o.selectAll(\\\"g.\\\"+h.headerGroupClassName).data(r,d);l.enter().append(\\\"g\\\").classed(h.headerGroupClassName,!0);for(var c=s.ensureSingle(o,\\\"g\\\",h.dropdownButtonGroupClassName,function(t){t.style(\\\"pointer-events\\\",\\\"all\\\")}),u=0;u<r.length;u++){var f=r[u];A(t,f)}var x=\\\"updatemenus\\\"+e._uid,b=new p(t,c,x);l.enter().size()&&(c.node().parentNode.appendChild(c.node()),c.call(E)),l.exit().each(function(t){c.call(E),a(t)}).remove(),l.each(function(e){var r=n.select(this),a=\\\"dropdown\\\"===e.type?c:null;i.manageCommandObserver(t,e,e.buttons,function(n){v(t,e,e.buttons[n.index],r,a,b,n.index,!0)}),\\\"dropdown\\\"===e.type?(m(t,r,c,b,e),g(c,e)&&y(t,r,c,b,e)):y(t,r,null,null,e)})}}},{\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/plots\\\":808,\\\"../color\\\":570,\\\"../drawing\\\":595,\\\"../legend/anchor_utils\\\":622,\\\"./constants\\\":663,\\\"./scrollbox\\\":667,d3:148}],666:[function(t,e,r){arguments[4][660][0].apply(r,arguments)},{\\\"./attributes\\\":662,\\\"./constants\\\":663,\\\"./defaults\\\":664,\\\"./draw\\\":665,dup:660}],667:[function(t,e,r){\\\"use strict\\\";e.exports=s;var n=t(\\\"d3\\\"),i=t(\\\"../color\\\"),a=t(\\\"../drawing\\\"),o=t(\\\"../../lib\\\");function s(t,e,r){this.gd=t,this.container=e,this.id=r,this.position=null,this.translateX=null,this.translateY=null,this.hbar=null,this.vbar=null,this.bg=this.container.selectAll(\\\"rect.scrollbox-bg\\\").data([0]),this.bg.exit().on(\\\".drag\\\",null).on(\\\"wheel\\\",null).remove(),this.bg.enter().append(\\\"rect\\\").classed(\\\"scrollbox-bg\\\",!0).style(\\\"pointer-events\\\",\\\"all\\\").attr({opacity:0,x:0,y:0,width:0,height:0})}s.barWidth=2,s.barLength=20,s.barRadius=2,s.barPad=1,s.barColor=\\\"#808BA4\\\",s.prototype.enable=function(t,e,r){var o=this.gd._fullLayout,l=o.width,c=o.height;this.position=t;var u,f,h,p,d=this.position.l,g=this.position.w,v=this.position.t,m=this.position.h,y=this.position.direction,x=\\\"down\\\"===y,b=\\\"left\\\"===y,_=\\\"up\\\"===y,w=g,k=m;x||b||\\\"right\\\"===y||_||(this.position.direction=\\\"down\\\",x=!0),x||_?(f=(u=d)+w,x?(h=v,k=(p=Math.min(h+k,c))-h):k=(p=v+k)-(h=Math.max(p-k,0))):(p=(h=v)+k,b?w=(f=d+w)-(u=Math.max(f-w,0)):(u=d,w=(f=Math.min(u+w,l))-u)),this._box={l:u,t:h,w:w,h:k};var M=g>w,A=s.barLength+2*s.barPad,T=s.barWidth+2*s.barPad,S=d,E=v+m;E+T>c&&(E=c-T);var C=this.container.selectAll(\\\"rect.scrollbar-horizontal\\\").data(M?[0]:[]);C.exit().on(\\\".drag\\\",null).remove(),C.enter().append(\\\"rect\\\").classed(\\\"scrollbar-horizontal\\\",!0).call(i.fill,s.barColor),M?(this.hbar=C.attr({rx:s.barRadius,ry:s.barRadius,x:S,y:E,width:A,height:T}),this._hbarXMin=S+A/2,this._hbarTranslateMax=w-A):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var L=m>k,z=s.barWidth+2*s.barPad,O=s.barLength+2*s.barPad,I=d+g,P=v;I+z>l&&(I=l-z);var D=this.container.selectAll(\\\"rect.scrollbar-vertical\\\").data(L?[0]:[]);D.exit().on(\\\".drag\\\",null).remove(),D.enter().append(\\\"rect\\\").classed(\\\"scrollbar-vertical\\\",!0).call(i.fill,s.barColor),L?(this.vbar=D.attr({rx:s.barRadius,ry:s.barRadius,x:I,y:P,width:z,height:O}),this._vbarYMin=P+O/2,this._vbarTranslateMax=k-O):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var R=this.id,B=u-.5,F=L?f+z+.5:f+.5,N=h-.5,j=M?p+T+.5:p+.5,V=o._topdefs.selectAll(\\\"#\\\"+R).data(M||L?[0]:[]);if(V.exit().remove(),V.enter().append(\\\"clipPath\\\").attr(\\\"id\\\",R).append(\\\"rect\\\"),M||L?(this._clipRect=V.select(\\\"rect\\\").attr({x:Math.floor(B),y:Math.floor(N),width:Math.ceil(F)-Math.floor(B),height:Math.ceil(j)-Math.floor(N)}),this.container.call(a.setClipUrl,R),this.bg.attr({x:d,y:v,width:g,height:m})):(this.bg.attr({width:0,height:0}),this.container.on(\\\"wheel\\\",null).on(\\\".drag\\\",null).call(a.setClipUrl,null),delete this._clipRect),M||L){var U=n.behavior.drag().on(\\\"dragstart\\\",function(){n.event.sourceEvent.preventDefault()}).on(\\\"drag\\\",this._onBoxDrag.bind(this));this.container.on(\\\"wheel\\\",null).on(\\\"wheel\\\",this._onBoxWheel.bind(this)).on(\\\".drag\\\",null).call(U);var q=n.behavior.drag().on(\\\"dragstart\\\",function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()}).on(\\\"drag\\\",this._onBarDrag.bind(this));M&&this.hbar.on(\\\".drag\\\",null).call(q),L&&this.vbar.on(\\\".drag\\\",null).call(q)}this.setTranslate(e,r)},s.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on(\\\"wheel\\\",null).on(\\\".drag\\\",null).call(a.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)},s.prototype._onBoxDrag=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t-=n.event.dx),this.vbar&&(e-=n.event.dy),this.setTranslate(t,e)},s.prototype._onBoxWheel=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t+=n.event.deltaY),this.vbar&&(e+=n.event.deltaY),this.setTranslate(t,e)},s.prototype._onBarDrag=function(){var t=this.translateX,e=this.translateY;if(this.hbar){var r=t+this._hbarXMin,i=r+this._hbarTranslateMax;t=(o.constrain(n.event.x,r,i)-r)/(i-r)*(this.position.w-this._box.w)}if(this.vbar){var a=e+this._vbarYMin,s=a+this._vbarTranslateMax;e=(o.constrain(n.event.y,a,s)-a)/(s-a)*(this.position.h-this._box.h)}this.setTranslate(t,e)},s.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=o.constrain(t||0,0,r),e=o.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(a.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(a.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var s=e/n;this.vbar.call(a.setTranslate,t,e+s*this._vbarTranslateMax)}}},{\\\"../../lib\\\":696,\\\"../color\\\":570,\\\"../drawing\\\":595,d3:148}],668:[function(t,e,r){\\\"use strict\\\";e.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,MID_SHIFT:.35,OPPOSITE_SIDE:{left:\\\"right\\\",right:\\\"left\\\",top:\\\"bottom\\\",bottom:\\\"top\\\"}}},{}],669:[function(t,e,r){\\\"use strict\\\";e.exports={COMPARISON_OPS:[\\\"=\\\",\\\"!=\\\",\\\"<\\\",\\\">=\\\",\\\">\\\",\\\"<=\\\"],COMPARISON_OPS2:[\\\"=\\\",\\\"<\\\",\\\">=\\\",\\\">\\\",\\\"<=\\\"],INTERVAL_OPS:[\\\"[]\\\",\\\"()\\\",\\\"[)\\\",\\\"(]\\\",\\\"][\\\",\\\")(\\\",\\\"](\\\",\\\")[\\\"],SET_OPS:[\\\"{}\\\",\\\"}{\\\"],CONSTRAINT_REDUCTION:{\\\"=\\\":\\\"=\\\",\\\"<\\\":\\\"<\\\",\\\"<=\\\":\\\"<\\\",\\\">\\\":\\\">\\\",\\\">=\\\":\\\">\\\",\\\"[]\\\":\\\"[]\\\",\\\"()\\\":\\\"[]\\\",\\\"[)\\\":\\\"[]\\\",\\\"(]\\\":\\\"[]\\\",\\\"][\\\":\\\"][\\\",\\\")(\\\":\\\"][\\\",\\\"](\\\":\\\"][\\\",\\\")[\\\":\\\"][\\\"}}},{}],670:[function(t,e,r){\\\"use strict\\\";e.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]}},{}],671:[function(t,e,r){\\\"use strict\\\";e.exports={circle:\\\"\\\\u25cf\\\",\\\"circle-open\\\":\\\"\\\\u25cb\\\",square:\\\"\\\\u25a0\\\",\\\"square-open\\\":\\\"\\\\u25a1\\\",diamond:\\\"\\\\u25c6\\\",\\\"diamond-open\\\":\\\"\\\\u25c7\\\",cross:\\\"+\\\",x:\\\"\\\\u274c\\\"}},{}],672:[function(t,e,r){\\\"use strict\\\";e.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DBLCLICKDELAY:300,DESELECTDIM:.2}},{}],673:[function(t,e,r){\\\"use strict\\\";e.exports={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE/1e4,ONEAVGYEAR:315576e5,ONEAVGMONTH:26298e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:1-1e-6,LOG_CLIP:10,MINUS_SIGN:\\\"\\\\u2212\\\"}},{}],674:[function(t,e,r){\\\"use strict\\\";r.xmlns=\\\"http://www.w3.org/2000/xmlns/\\\",r.svg=\\\"http://www.w3.org/2000/svg\\\",r.xlink=\\\"http://www.w3.org/1999/xlink\\\",r.svgAttrs={xmlns:r.svg,\\\"xmlns:xlink\\\":r.xlink}},{}],675:[function(t,e,r){\\\"use strict\\\";r.version=\\\"1.42.5\\\",t(\\\"es6-promise\\\").polyfill(),t(\\\"../build/plotcss\\\"),t(\\\"./fonts/mathjax_config\\\");for(var n=t(\\\"./registry\\\"),i=r.register=n.register,a=t(\\\"./plot_api\\\"),o=Object.keys(a),s=0;s<o.length;s++){var l=o[s];r[l]=a[l],i({moduleType:\\\"apiMethod\\\",name:l,fn:a[l]})}i(t(\\\"./traces/scatter\\\")),i([t(\\\"./components/fx\\\"),t(\\\"./components/legend\\\"),t(\\\"./components/annotations\\\"),t(\\\"./components/annotations3d\\\"),t(\\\"./components/shapes\\\"),t(\\\"./components/images\\\"),t(\\\"./components/updatemenus\\\"),t(\\\"./components/sliders\\\"),t(\\\"./components/rangeslider\\\"),t(\\\"./components/rangeselector\\\"),t(\\\"./components/grid\\\"),t(\\\"./components/errorbars\\\")]),i([t(\\\"./locale-en\\\"),t(\\\"./locale-en-us\\\")]),r.Icons=t(\\\"../build/ploticon\\\"),r.Plots=t(\\\"./plots/plots\\\"),r.Fx=t(\\\"./components/fx\\\"),r.Snapshot=t(\\\"./snapshot\\\"),r.PlotSchema=t(\\\"./plot_api/plot_schema\\\"),r.Queue=t(\\\"./lib/queue\\\"),r.d3=t(\\\"d3\\\")},{\\\"../build/plotcss\\\":1,\\\"../build/ploticon\\\":2,\\\"./components/annotations\\\":561,\\\"./components/annotations3d\\\":566,\\\"./components/errorbars\\\":601,\\\"./components/fx\\\":612,\\\"./components/grid\\\":616,\\\"./components/images\\\":621,\\\"./components/legend\\\":630,\\\"./components/rangeselector\\\":641,\\\"./components/rangeslider\\\":647,\\\"./components/shapes\\\":655,\\\"./components/sliders\\\":660,\\\"./components/updatemenus\\\":666,\\\"./fonts/mathjax_config\\\":676,\\\"./lib/queue\\\":711,\\\"./locale-en\\\":725,\\\"./locale-en-us\\\":724,\\\"./plot_api\\\":729,\\\"./plot_api/plot_schema\\\":733,\\\"./plots/plots\\\":808,\\\"./registry\\\":827,\\\"./snapshot\\\":832,\\\"./traces/scatter\\\":1055,d3:148,\\\"es6-promise\\\":203}],676:[function(t,e,r){\\\"use strict\\\";\\\"undefined\\\"!=typeof MathJax?(r.MathJax=!0,\\\"local\\\"!==(window.PlotlyConfig||{}).MathJaxConfig&&(MathJax.Hub.Config({messageStyle:\\\"none\\\",skipStartupTypeset:!0,displayAlign:\\\"left\\\",tex2jax:{inlineMath:[[\\\"$\\\",\\\"$\\\"],[\\\"\\\\\\\\(\\\",\\\"\\\\\\\\)\\\"]]}}),MathJax.Hub.Configured())):r.MathJax=!1},{}],677:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./mod\\\"),i=n.mod,a=n.modHalf,o=Math.PI,s=2*o;function l(t){return Math.abs(t[1]-t[0])>s-1e-15}function c(t,e){return a(e-t,s)}function u(t,e){if(l(e))return!0;var r,n;e[0]<e[1]?(r=e[0],n=e[1]):(r=e[1],n=e[0]),(r=i(r,s))>(n=i(n,s))&&(n+=s);var a=i(t,s),o=a+s;return a>=r&&a<=n||o>=r&&o<=n}function f(t,e,r,n,i,a,c){i=i||0,a=a||0;var u,f,h,p,d,g=l([r,n]);function v(t,e){return[t*Math.cos(e)+i,a-t*Math.sin(e)]}g?(u=0,f=o,h=s):r<n?(u=r,h=n):(u=n,h=r),t<e?(p=t,d=e):(p=e,d=t);var m,y=Math.abs(h-u)<=o?0:1;function x(t,e,r){return\\\"A\\\"+[t,t]+\\\" \\\"+[0,y,r]+\\\" \\\"+v(t,e)}return g?m=null===p?\\\"M\\\"+v(d,u)+x(d,f,0)+x(d,h,0)+\\\"Z\\\":\\\"M\\\"+v(p,u)+x(p,f,0)+x(p,h,0)+\\\"ZM\\\"+v(d,u)+x(d,f,1)+x(d,h,1)+\\\"Z\\\":null===p?(m=\\\"M\\\"+v(d,u)+x(d,h,0),c&&(m+=\\\"L0,0Z\\\")):m=\\\"M\\\"+v(p,u)+\\\"L\\\"+v(d,u)+x(d,h,0)+\\\"L\\\"+v(p,h)+x(p,u,1)+\\\"Z\\\",m}e.exports={deg2rad:function(t){return t/180*o},rad2deg:function(t){return t/o*180},angleDelta:c,angleDist:function(t,e){return Math.abs(c(t,e))},isFullCircle:l,isAngleInsideSector:u,isPtInsideSector:function(t,e,r,n){return!!u(e,n)&&(r[0]<r[1]?(i=r[0],a=r[1]):(i=r[1],a=r[0]),t>=i&&t<=a);var i,a},pathArc:function(t,e,r,n,i){return f(null,t,e,r,n,i,0)},pathSector:function(t,e,r,n,i){return f(null,t,e,r,n,i,1)},pathAnnulus:function(t,e,r,n,i,a){return f(t,e,r,n,i,a,1)}}},{\\\"./mod\\\":703}],678:[function(t,e,r){\\\"use strict\\\";var n=Array.isArray,i=\\\"undefined\\\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer:{isView:function(){return!1}},a=\\\"undefined\\\"==typeof DataView?function(){}:DataView;function o(t){return i.isView(t)&&!(t instanceof a)}function s(t){return n(t)||o(t)}r.isTypedArray=o,r.isArrayOrTypedArray=s,r.isArray1D=function(t){return!s(t[0])},r.ensureArray=function(t,e){return n(t)||(t=[]),t.length=e,t},r.concat=function(){var t,e,r,i,a,o,s,l,c=[],u=!0,f=0;for(r=0;r<arguments.length;r++)(o=(i=arguments[r]).length)&&(e?c.push(i):(e=i,a=o),n(i)?t=!1:(u=!1,f?t!==i.constructor&&(t=!1):t=i.constructor),f+=o);if(!f)return[];if(!c.length)return e;if(u)return e.concat.apply(e,c);if(t){for((s=new t(f)).set(e),r=0;r<c.length;r++)i=c[r],s.set(i,a),a+=i.length;return s}for(s=new Array(f),l=0;l<e.length;l++)s[l]=e[l];for(r=0;r<c.length;r++){for(i=c[r],l=0;l<i.length;l++)s[a+l]=i[l];a+=l}return s}},{}],679:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../constants/numerical\\\").BADNUM,a=/^['\\\"%,$#\\\\s']+|[, ]|['\\\"%,$#\\\\s']+$/g;e.exports=function(t){return\\\"string\\\"==typeof t&&(t=t.replace(a,\\\"\\\")),n(t)?Number(t):i}},{\\\"../constants/numerical\\\":673,\\\"fast-isnumeric\\\":214}],680:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t._fullLayout;e._glcanvas&&e._glcanvas.size()&&e._glcanvas.each(function(t){t.regl&&t.regl.clear({color:!0,depth:!0})})}},{}],681:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){t._responsiveChartHandler&&(window.removeEventListener(\\\"resize\\\",t._responsiveChartHandler),delete t._responsiveChartHandler)}},{}],682:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../plots/attributes\\\"),o=t(\\\"../components/colorscale/get_scale\\\"),s=(Object.keys(t(\\\"../components/colorscale/scales\\\")),t(\\\"./nested_property\\\")),l=t(\\\"./regex\\\").counter,c=t(\\\"../constants/interactions\\\").DESELECTDIM,u=t(\\\"./mod\\\").modHalf,f=t(\\\"./array\\\").isArrayOrTypedArray;function h(t,e){var n=r.valObjectMeta[e.valType];if(e.arrayOk&&f(t))return!0;if(n.validateFunction)return n.validateFunction(t,e);var i={},a=i,o={set:function(t){a=t}};return n.coerceFunction(t,o,i,e),a!==i}r.valObjectMeta={data_array:{coerceFunction:function(t,e,r){f(t)?e.set(t):void 0!==r&&e.set(r)}},enumerated:{coerceFunction:function(t,e,r,n){n.coerceNumber&&(t=+t),-1===n.values.indexOf(t)?e.set(r):e.set(t)},validateFunction:function(t,e){e.coerceNumber&&(t=+t);for(var r=e.values,n=0;n<r.length;n++){var i=String(r[n]);if(\\\"/\\\"===i.charAt(0)&&\\\"/\\\"===i.charAt(i.length-1)){if(new RegExp(i.substr(1,i.length-2)).test(t))return!0}else if(t===r[n])return!0}return!1}},boolean:{coerceFunction:function(t,e,r){!0===t||!1===t?e.set(t):e.set(r)}},number:{coerceFunction:function(t,e,r,i){!n(t)||void 0!==i.min&&t<i.min||void 0!==i.max&&t>i.max?e.set(r):e.set(+t)}},integer:{coerceFunction:function(t,e,r,i){t%1||!n(t)||void 0!==i.min&&t<i.min||void 0!==i.max&&t>i.max?e.set(r):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if(\\\"string\\\"!=typeof t){var i=\\\"number\\\"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){i(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every(function(t){return i(t).isValid()})?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(o(t,r))}},angle:{coerceFunction:function(t,e,r){\\\"auto\\\"===t?e.set(\\\"auto\\\"):n(t)?e.set(u(+t,360)):e.set(r)}},subplotid:{coerceFunction:function(t,e,r,n){var i=n.regex||l(r);\\\"string\\\"==typeof t&&i.test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||\\\"string\\\"==typeof t&&!!l(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if(\\\"string\\\"==typeof t)if(-1===(n.extras||[]).indexOf(t)){for(var i=t.split(\\\"+\\\"),a=0;a<i.length;){var o=i[a];-1===n.flags.indexOf(o)||i.indexOf(o)<a?i.splice(a,1):a++}i.length?e.set(i.join(\\\"+\\\")):e.set(r)}else e.set(t);else e.set(r)}},any:{coerceFunction:function(t,e,r){void 0===t?e.set(r):e.set(t)}},info_array:{coerceFunction:function(t,e,n,i){function a(t,e,n){var i,a={set:function(t){i=t}};return void 0===n&&(n=e.dflt),r.valObjectMeta[e.valType].coerceFunction(t,a,n,e),i}var o=2===i.dimensions||\\\"1-2\\\"===i.dimensions&&Array.isArray(t)&&Array.isArray(t[0]);if(Array.isArray(t)){var s,l,c,u,f,h,p=i.items,d=[],g=Array.isArray(p),v=g&&o&&Array.isArray(p[0]),m=o&&g&&!v,y=g&&!m?p.length:t.length;if(n=Array.isArray(n)?n:[],o)for(s=0;s<y;s++)for(d[s]=[],c=Array.isArray(t[s])?t[s]:[],f=m?p.length:g?p[s].length:c.length,l=0;l<f;l++)u=m?p[l]:g?p[s][l]:p,void 0!==(h=a(c[l],u,(n[s]||[])[l]))&&(d[s][l]=h);else for(s=0;s<y;s++)void 0!==(h=a(t[s],g?p[s]:p,n[s]))&&(d[s]=h);e.set(d)}else e.set(n)},validateFunction:function(t,e){if(!Array.isArray(t))return!1;var r=e.items,n=Array.isArray(r),i=2===e.dimensions;if(!e.freeLength&&t.length!==r.length)return!1;for(var a=0;a<t.length;a++)if(i){if(!Array.isArray(t[a])||!e.freeLength&&t[a].length!==r[a].length)return!1;for(var o=0;o<t[a].length;o++)if(!h(t[a][o],n?r[a][o]:r))return!1}else if(!h(t[a],n?r[a]:r))return!1;return!0}}},r.coerce=function(t,e,n,i,a){var o=s(n,i).get(),l=s(t,i),c=s(e,i),u=l.get(),p=e._template;if(void 0===u&&p&&(u=s(p,i).get(),p=0),void 0===a&&(a=o.dflt),o.arrayOk&&f(u))return c.set(u),u;var d=r.valObjectMeta[o.valType].coerceFunction;d(u,c,a,o);var g=c.get();return p&&g===a&&!h(u,o)&&(d(u=s(p,i).get(),c,a,o),g=c.get()),g},r.coerce2=function(t,e,n,i,a){var o=s(t,i),l=r.coerce(t,e,n,i,a),c=o.get();return null!=c&&l},r.coerceFont=function(t,e,r){var n={};return r=r||{},n.family=t(e+\\\".family\\\",r.family),n.size=t(e+\\\".size\\\",r.size),n.color=t(e+\\\".color\\\",r.color),n},r.coerceHoverinfo=function(t,e,n){var i,o=e._module.attributes,s=o.hoverinfo?o:a,l=s.hoverinfo;if(1===n._dataLength){var c=\\\"all\\\"===l.dflt?l.flags.slice():l.dflt.split(\\\"+\\\");c.splice(c.indexOf(\\\"name\\\"),1),i=c.join(\\\"+\\\")}return r.coerce(t,e,s,\\\"hoverinfo\\\",i)},r.coerceSelectionMarkerOpacity=function(t,e){if(t.marker){var r,n,i=t.marker.opacity;if(void 0!==i)f(i)||t.selected||t.unselected||(r=i,n=c*i),e(\\\"selected.marker.opacity\\\",r),e(\\\"unselected.marker.opacity\\\",n)}},r.validate=h},{\\\"../components/colorscale/get_scale\\\":583,\\\"../components/colorscale/scales\\\":589,\\\"../constants/interactions\\\":672,\\\"../plots/attributes\\\":741,\\\"./array\\\":678,\\\"./mod\\\":703,\\\"./nested_property\\\":704,\\\"./regex\\\":712,\\\"fast-isnumeric\\\":214,tinycolor2:514}],683:[function(t,e,r){\\\"use strict\\\";var n,i,a=t(\\\"d3\\\"),o=t(\\\"fast-isnumeric\\\"),s=t(\\\"./loggers\\\"),l=t(\\\"./mod\\\").mod,c=t(\\\"../constants/numerical\\\"),u=c.BADNUM,f=c.ONEDAY,h=c.ONEHOUR,p=c.ONEMIN,d=c.ONESEC,g=c.EPOCHJD,v=t(\\\"../registry\\\"),m=a.time.format.utc,y=/^\\\\s*(-?\\\\d\\\\d\\\\d\\\\d|\\\\d\\\\d)(-(\\\\d?\\\\d)(-(\\\\d?\\\\d)([ Tt]([01]?\\\\d|2[0-3])(:([0-5]\\\\d)(:([0-5]\\\\d(\\\\.\\\\d+)?))?(Z|z|[+\\\\-]\\\\d\\\\d:?\\\\d\\\\d)?)?)?)?)?\\\\s*$/m,x=/^\\\\s*(-?\\\\d\\\\d\\\\d\\\\d|\\\\d\\\\d)(-(\\\\d?\\\\di?)(-(\\\\d?\\\\d)([ Tt]([01]?\\\\d|2[0-3])(:([0-5]\\\\d)(:([0-5]\\\\d(\\\\.\\\\d+)?))?(Z|z|[+\\\\-]\\\\d\\\\d:?\\\\d\\\\d)?)?)?)?)?\\\\s*$/m,b=(new Date).getFullYear()-70;function _(t){return t&&v.componentsRegistry.calendars&&\\\"string\\\"==typeof t&&\\\"gregorian\\\"!==t}function w(t,e){return String(t+Math.pow(10,e)).substr(1)}r.dateTick0=function(t,e){return _(t)?e?v.getComponentMethod(\\\"calendars\\\",\\\"CANONICAL_SUNDAY\\\")[t]:v.getComponentMethod(\\\"calendars\\\",\\\"CANONICAL_TICK\\\")[t]:e?\\\"2000-01-02\\\":\\\"2000-01-01\\\"},r.dfltRange=function(t){return _(t)?v.getComponentMethod(\\\"calendars\\\",\\\"DFLTRANGE\\\")[t]:[\\\"2000-01-01\\\",\\\"2001-01-01\\\"]},r.isJSDate=function(t){return\\\"object\\\"==typeof t&&null!==t&&\\\"function\\\"==typeof t.getTime},r.dateTime2ms=function(t,e){if(r.isJSDate(t)){var a=t.getTimezoneOffset()*p,o=(t.getUTCMinutes()-t.getMinutes())*p+(t.getUTCSeconds()-t.getSeconds())*d+(t.getUTCMilliseconds()-t.getMilliseconds());if(o){var s=3*p;a=a-s/2+l(o-a+s/2,s)}return(t=Number(t)-a)>=n&&t<=i?t:u}if(\\\"string\\\"!=typeof t&&\\\"number\\\"!=typeof t)return u;t=String(t);var c=_(e),m=t.charAt(0);!c||\\\"G\\\"!==m&&\\\"g\\\"!==m||(t=t.substr(1),e=\\\"\\\");var w=c&&\\\"chinese\\\"===e.substr(0,7),k=t.match(w?x:y);if(!k)return u;var M=k[1],A=k[3]||\\\"1\\\",T=Number(k[5]||1),S=Number(k[7]||0),E=Number(k[9]||0),C=Number(k[11]||0);if(c){if(2===M.length)return u;var L;M=Number(M);try{var z=v.getComponentMethod(\\\"calendars\\\",\\\"getCal\\\")(e);if(w){var O=\\\"i\\\"===A.charAt(A.length-1);A=parseInt(A,10),L=z.newDate(M,z.toMonthIndex(M,A,O),T)}else L=z.newDate(M,Number(A),T)}catch(t){return u}return L?(L.toJD()-g)*f+S*h+E*p+C*d:u}M=2===M.length?(Number(M)+2e3-b)%100+b:Number(M),A-=1;var I=new Date(Date.UTC(2e3,A,T,S,E));return I.setUTCFullYear(M),I.getUTCMonth()!==A?u:I.getUTCDate()!==T?u:I.getTime()+C*d},n=r.MIN_MS=r.dateTime2ms(\\\"-9999\\\"),i=r.MAX_MS=r.dateTime2ms(\\\"9999-12-31 23:59:59.9999\\\"),r.isDateTime=function(t,e){return r.dateTime2ms(t,e)!==u};var k=90*f,M=3*h,A=5*p;function T(t,e,r,n,i){if((e||r||n||i)&&(t+=\\\" \\\"+w(e,2)+\\\":\\\"+w(r,2),(n||i)&&(t+=\\\":\\\"+w(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+=\\\".\\\"+w(i,a)}return t}r.ms2DateTime=function(t,e,r){if(\\\"number\\\"!=typeof t||!(t>=n&&t<=i))return u;e||(e=0);var a,o,s,c,y,x,b=Math.floor(10*l(t+.05,1)),w=Math.round(t-b/10);if(_(r)){var S=Math.floor(w/f)+g,E=Math.floor(l(t,f));try{a=v.getComponentMethod(\\\"calendars\\\",\\\"getCal\\\")(r).fromJD(S).formatDate(\\\"yyyy-mm-dd\\\")}catch(t){a=m(\\\"G%Y-%m-%d\\\")(new Date(w))}if(\\\"-\\\"===a.charAt(0))for(;a.length<11;)a=\\\"-0\\\"+a.substr(1);else for(;a.length<10;)a=\\\"0\\\"+a;o=e<k?Math.floor(E/h):0,s=e<k?Math.floor(E%h/p):0,c=e<M?Math.floor(E%p/d):0,y=e<A?E%d*10+b:0}else x=new Date(w),a=m(\\\"%Y-%m-%d\\\")(x),o=e<k?x.getUTCHours():0,s=e<k?x.getUTCMinutes():0,c=e<M?x.getUTCSeconds():0,y=e<A?10*x.getUTCMilliseconds()+b:0;return T(a,o,s,c,y)},r.ms2DateTimeLocal=function(t){if(!(t>=n+f&&t<=i-f))return u;var e=Math.floor(10*l(t+.05,1)),r=new Date(Math.round(t-e/10));return T(a.time.format(\\\"%Y-%m-%d\\\")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+e)},r.cleanDate=function(t,e,n){if(t===u)return e;if(r.isJSDate(t)||\\\"number\\\"==typeof t&&isFinite(t)){if(_(n))return s.error(\\\"JS Dates and milliseconds are incompatible with world calendars\\\",t),e;if(!(t=r.ms2DateTimeLocal(+t))&&void 0!==e)return e}else if(!r.isDateTime(t,n))return s.error(\\\"unrecognized date\\\",t),e;return t};var S=/%\\\\d?f/g;function E(t,e,r,n){t=t.replace(S,function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,\\\"\\\")||\\\"0\\\"});var i=new Date(Math.floor(e+.05));if(_(n))try{t=v.getComponentMethod(\\\"calendars\\\",\\\"worldCalFmt\\\")(t,e,n)}catch(t){return\\\"Invalid\\\"}return r(t)(i)}var C=[59,59.9,59.99,59.999,59.9999];r.formatDate=function(t,e,r,n,i,a){if(i=_(i)&&i,!e)if(\\\"y\\\"===r)e=a.year;else if(\\\"m\\\"===r)e=a.month;else{if(\\\"d\\\"!==r)return function(t,e){var r=l(t+.05,f),n=w(Math.floor(r/h),2)+\\\":\\\"+w(l(Math.floor(r/p),60),2);if(\\\"M\\\"!==e){o(e)||(e=0);var i=(100+Math.min(l(t/d,60),C[e])).toFixed(e).substr(1);e>0&&(i=i.replace(/0+$/,\\\"\\\").replace(/[\\\\.]$/,\\\"\\\")),n+=\\\":\\\"+i}return n}(t,r)+\\\"\\\\n\\\"+E(a.dayMonthYear,t,n,i);e=a.dayMonth+\\\"\\\\n\\\"+a.year}return E(e,t,n,i)};var L=3*f;r.incrementMonth=function(t,e,r){r=_(r)&&r;var n=l(t,f);if(t=Math.round(t-n),r)try{var i=Math.round(t/f)+g,a=v.getComponentMethod(\\\"calendars\\\",\\\"getCal\\\")(r),o=a.fromJD(i);return e%12?a.add(o,e,\\\"m\\\"):a.add(o,e/12,\\\"y\\\"),(o.toJD()-g)*f+n}catch(e){s.error(\\\"invalid ms \\\"+t+\\\" in calendar \\\"+r)}var c=new Date(t+L);return c.setUTCMonth(c.getUTCMonth()+e)+n-L},r.findExactDates=function(t,e){for(var r,n,i=0,a=0,s=0,l=0,c=_(e)&&v.getComponentMethod(\\\"calendars\\\",\\\"getCal\\\")(e),u=0;u<t.length;u++)if(n=t[u],o(n)){if(!(n%f))if(c)try{1===(r=c.fromJD(n/f+g)).day()?1===r.month()?i++:a++:s++}catch(t){}else 1===(r=new Date(n)).getUTCDate()?0===r.getUTCMonth()?i++:a++:s++}else l++;s+=a+=i;var h=t.length-l;return{exactYears:i/h,exactMonths:a/h,exactDays:s/h}}},{\\\"../constants/numerical\\\":673,\\\"../registry\\\":827,\\\"./loggers\\\":700,\\\"./mod\\\":703,d3:148,\\\"fast-isnumeric\\\":214}],684:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"events\\\").EventEmitter,i={init:function(t){if(t._ev instanceof n)return t;var e=new n,r=new n;return t._ev=e,t._internalEv=r,t.on=e.on.bind(e),t.once=e.once.bind(e),t.removeListener=e.removeListener.bind(e),t.removeAllListeners=e.removeAllListeners.bind(e),t._internalOn=r.on.bind(r),t._internalOnce=r.once.bind(r),t._removeInternalListener=r.removeListener.bind(r),t._removeAllInternalListeners=r.removeAllListeners.bind(r),t.emit=function(n,i){\\\"undefined\\\"!=typeof jQuery&&jQuery(t).trigger(n,i),e.emit(n,i),r.emit(n,i)},t},triggerHandler:function(t,e,r){var n,i;\\\"undefined\\\"!=typeof jQuery&&(n=jQuery(t).triggerHandler(e,r));var a=t._ev;if(!a)return n;var o,s=a._events[e];if(!s)return n;function l(t){return t.listener?(a.removeListener(e,t.listener),t.fired?void 0:(t.fired=!0,t.listener.apply(a,[r]))):t.apply(a,[r])}for(s=Array.isArray(s)?s:[s],o=0;o<s.length-1;o++)l(s[o]);return i=l(s[o]),void 0!==n?n:i},purge:function(t){return delete t._ev,delete t.on,delete t.once,delete t.removeListener,delete t.removeAllListeners,delete t.emit,delete t._ev,delete t._internalEv,delete t._internalOn,delete t._internalOnce,delete t._removeInternalListener,delete t._removeAllInternalListeners,t}};e.exports=i},{events:92}],685:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./is_plain_object.js\\\"),i=Array.isArray;function a(t,e,r,o){var s,l,c,u,f,h,p=t[0],d=t.length;if(2===d&&i(p)&&i(t[1])&&0===p.length){if(function(t,e){var r,n;for(r=0;r<t.length;r++){if(null!==(n=t[r])&&\\\"object\\\"==typeof n)return!1;void 0!==n&&(e[r]=n)}return!0}(t[1],p))return p;p.splice(0,p.length)}for(var g=1;g<d;g++)for(l in s=t[g])c=p[l],u=s[l],o&&i(u)?p[l]=u:e&&u&&(n(u)||(f=i(u)))?(f?(f=!1,h=c&&i(c)?c:[]):h=c&&n(c)?c:{},p[l]=a([h,u],e,r,o)):(\\\"undefined\\\"!=typeof u||r)&&(p[l]=u);return p}r.extendFlat=function(){return a(arguments,!1,!1,!1)},r.extendDeep=function(){return a(arguments,!0,!1,!1)},r.extendDeepAll=function(){return a(arguments,!0,!0,!1)},r.extendDeepNoArrays=function(){return a(arguments,!0,!1,!0)}},{\\\"./is_plain_object.js\\\":697}],686:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e={},r=[],n=0,i=0;i<t.length;i++){var a=t[i];1!==e[a]&&(e[a]=1,r[n++]=a)}return r}},{}],687:[function(t,e,r){\\\"use strict\\\";function n(t){return!0===t.visible}function i(t){return!0===t[0].trace.visible}e.exports=function(t){for(var e,r=(e=t,Array.isArray(e)&&Array.isArray(e[0])&&e[0][0]&&e[0][0].trace?i:n),a=[],o=0;o<t.length;o++){var s=t[o];r(s)&&a.push(s)}return a}},{}],688:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"country-regex\\\"),i=t(\\\"../lib\\\"),a=Object.keys(n),o={\\\"ISO-3\\\":i.identity,\\\"USA-states\\\":i.identity,\\\"country names\\\":function(t){for(var e=0;e<a.length;e++){var r=a[e],o=new RegExp(n[r]);if(o.test(t.trim().toLowerCase()))return r}return i.log(\\\"Unrecognized country name: \\\"+t+\\\".\\\"),!1}};r.locationToFeature=function(t,e,r){if(!e||\\\"string\\\"!=typeof e)return!1;var n=function(t,e){return(0,o[t])(e)}(t,e);if(n){for(var a=0;a<r.length;a++){var s=r[a];if(s.id===n)return s}i.log([\\\"Location with id\\\",n,\\\"does not have a matching topojson feature at this resolution.\\\"].join(\\\" \\\"))}return!1}},{\\\"../lib\\\":696,\\\"country-regex\\\":122}],689:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../constants/numerical\\\").BADNUM;r.calcTraceToLineCoords=function(t){for(var e=t[0].trace.connectgaps,r=[],i=[],a=0;a<t.length;a++){var o=t[a].lonlat;o[0]!==n?i.push(o):!e&&i.length>0&&(r.push(i),i=[])}return i.length>0&&r.push(i),r},r.makeLine=function(t){return 1===t.length?{type:\\\"LineString\\\",coordinates:t[0]}:{type:\\\"MultiLineString\\\",coordinates:t}},r.makePolygon=function(t){if(1===t.length)return{type:\\\"Polygon\\\",coordinates:t};for(var e=new Array(t.length),r=0;r<t.length;r++)e[r]=[t[r]];return{type:\\\"MultiPolygon\\\",coordinates:e}},r.makeBlank=function(){return{type:\\\"Point\\\",coordinates:[]}}},{\\\"../constants/numerical\\\":673}],690:[function(t,e,r){\\\"use strict\\\";var n,i,a,o=t(\\\"./mod\\\").mod;function s(t,e,r,n,i,a,o,s){var l=r-t,c=i-t,u=o-i,f=n-e,h=a-e,p=s-a,d=l*p-u*f;if(0===d)return null;var g=(c*p-u*h)/d,v=(c*f-l*h)/d;return v<0||v>1||g<0||g>1?null:{x:t+l*g,y:e+f*g}}function l(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}r.segmentsIntersect=s,r.segmentDistance=function(t,e,r,n,i,a,o,c){if(s(t,e,r,n,i,a,o,c))return 0;var u=r-t,f=n-e,h=o-i,p=c-a,d=u*u+f*f,g=h*h+p*p,v=Math.min(l(u,f,d,i-t,a-e),l(u,f,d,o-t,c-e),l(h,p,g,t-i,e-a),l(h,p,g,r-i,n-a));return Math.sqrt(v)},r.getTextLocation=function(t,e,r,s){if(t===i&&s===a||(n={},i=t,a=s),n[r])return n[r];var l=t.getPointAtLength(o(r-s/2,e)),c=t.getPointAtLength(o(r+s/2,e)),u=Math.atan((c.y-l.y)/(c.x-l.x)),f=t.getPointAtLength(o(r,e)),h={x:(4*f.x+l.x+c.x)/6,y:(4*f.y+l.y+c.y)/6,theta:u};return n[r]=h,h},r.clearLocationCache=function(){i=null},r.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,c=0,u=t.getTotalLength(),f=u;function h(e){var r=t.getPointAtLength(e);0===e?n=r:e===u&&(i=r);var c=r.x<a?a-r.x:r.x>o?r.x-o:0,f=r.y<s?s-r.y:r.y>l?r.y-l:0;return Math.sqrt(c*c+f*f)}for(var p=h(c);p;){if((c+=p+r)>f)return;p=h(c)}for(p=h(f);p;){if(c>(f-=p+r))return;p=h(f)}return{min:c,max:f,len:f-c,total:u,isClosed:0===c&&f===u&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},r.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,c=n.iterationLimit||30,u=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,f=0,h=0,p=s;f<c;){if(i=(h+p)/2,o=(a=t.getPointAtLength(i))[r]-e,Math.abs(o)<l)return a;u*o>0?p=i:h=i,f++}return a}},{\\\"./mod\\\":703}],691:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e;if(\\\"string\\\"==typeof t){if(null===(e=document.getElementById(t)))throw new Error(\\\"No DOM element with id '\\\"+t+\\\"' exists on the page.\\\");return e}if(null==t)throw new Error(\\\"DOM element provided is null or undefined\\\");return t}},{}],692:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"color-normalize\\\"),o=t(\\\"../components/colorscale\\\"),s=t(\\\"../components/color/attributes\\\").defaultLine,l=t(\\\"./array\\\").isArrayOrTypedArray,c=a(s),u=1;function f(t,e){var r=t;return r[3]*=e,r}function h(t){if(n(t))return c;var e=a(t);return e.length?e:c}function p(t){return n(t)?t:u}e.exports={formatColor:function(t,e,r){var n,i,s,d,g,v=t.color,m=l(v),y=l(e),x=[];if(n=void 0!==t.colorscale?o.makeColorScaleFunc(o.extractScale(t.colorscale,t.cmin,t.cmax)):h,i=m?function(t,e){return void 0===t[e]?c:a(n(t[e]))}:h,s=y?function(t,e){return void 0===t[e]?u:p(t[e])}:p,m||y)for(var b=0;b<r;b++)d=i(v,b),g=s(e,b),x[b]=f(d,g);else x=f(a(v),e);return x},parseColorScale:function(t,e){return void 0===e&&(e=1),t.map(function(t){var r=t[0],n=i(t[1]).toRgb();return{index:r,rgb:[n.r,n.g,n.b,e]}})}}},{\\\"../components/color/attributes\\\":569,\\\"../components/colorscale\\\":585,\\\"./array\\\":678,\\\"color-normalize\\\":108,\\\"fast-isnumeric\\\":214,tinycolor2:514}],693:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./identity\\\");function i(t){return[t]}e.exports={keyFun:function(t){return t.key},repeat:i,descend:n,wrap:i,unwrap:function(t){return t[0]}}},{\\\"./identity\\\":695}],694:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"superscript-text\\\"),i=t(\\\"./svg_text_utils\\\").convertEntities;e.exports=function(t){return\\\"\\\"+i(function(t){return t.replace(/\\\\<.*\\\\>/g,\\\"\\\")}(function(t){for(var e=0;(e=t.indexOf(\\\"<sup>\\\",e))>=0;){var r=t.indexOf(\\\"</sup>\\\",e);if(r<e)break;t=t.slice(0,e)+n(t.slice(e+5,r))+t.slice(r+6)}return t}(t.replace(/\\\\<br\\\\>/g,\\\"\\\\n\\\"))))}},{\\\"./svg_text_utils\\\":720,\\\"superscript-text\\\":507}],695:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t}},{}],696:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../constants/numerical\\\"),o=a.FP_SAFE,s=a.BADNUM,l=e.exports={};l.nestedProperty=t(\\\"./nested_property\\\"),l.keyedContainer=t(\\\"./keyed_container\\\"),l.relativeAttr=t(\\\"./relative_attr\\\"),l.isPlainObject=t(\\\"./is_plain_object\\\"),l.toLogRange=t(\\\"./to_log_range\\\"),l.relinkPrivateKeys=t(\\\"./relink_private\\\");var c=t(\\\"./array\\\");l.isTypedArray=c.isTypedArray,l.isArrayOrTypedArray=c.isArrayOrTypedArray,l.isArray1D=c.isArray1D,l.ensureArray=c.ensureArray,l.concat=c.concat;var u=t(\\\"./mod\\\");l.mod=u.mod,l.modHalf=u.modHalf;var f=t(\\\"./coerce\\\");l.valObjectMeta=f.valObjectMeta,l.coerce=f.coerce,l.coerce2=f.coerce2,l.coerceFont=f.coerceFont,l.coerceHoverinfo=f.coerceHoverinfo,l.coerceSelectionMarkerOpacity=f.coerceSelectionMarkerOpacity,l.validate=f.validate;var h=t(\\\"./dates\\\");l.dateTime2ms=h.dateTime2ms,l.isDateTime=h.isDateTime,l.ms2DateTime=h.ms2DateTime,l.ms2DateTimeLocal=h.ms2DateTimeLocal,l.cleanDate=h.cleanDate,l.isJSDate=h.isJSDate,l.formatDate=h.formatDate,l.incrementMonth=h.incrementMonth,l.dateTick0=h.dateTick0,l.dfltRange=h.dfltRange,l.findExactDates=h.findExactDates,l.MIN_MS=h.MIN_MS,l.MAX_MS=h.MAX_MS;var p=t(\\\"./search\\\");l.findBin=p.findBin,l.sorterAsc=p.sorterAsc,l.sorterDes=p.sorterDes,l.distinctVals=p.distinctVals,l.roundUp=p.roundUp,l.sort=p.sort,l.findIndexOfMin=p.findIndexOfMin;var d=t(\\\"./stats\\\");l.aggNums=d.aggNums,l.len=d.len,l.mean=d.mean,l.midRange=d.midRange,l.variance=d.variance,l.stdev=d.stdev,l.interp=d.interp;var g=t(\\\"./matrix\\\");l.init2dArray=g.init2dArray,l.transposeRagged=g.transposeRagged,l.dot=g.dot,l.translationMatrix=g.translationMatrix,l.rotationMatrix=g.rotationMatrix,l.rotationXYMatrix=g.rotationXYMatrix,l.apply2DTransform=g.apply2DTransform,l.apply2DTransform2=g.apply2DTransform2;var v=t(\\\"./angles\\\");l.deg2rad=v.deg2rad,l.rad2deg=v.rad2deg,l.angleDelta=v.angleDelta,l.angleDist=v.angleDist,l.isFullCircle=v.isFullCircle,l.isAngleInsideSector=v.isAngleInsideSector,l.isPtInsideSector=v.isPtInsideSector,l.pathArc=v.pathArc,l.pathSector=v.pathSector,l.pathAnnulus=v.pathAnnulus;var m=t(\\\"./geometry2d\\\");l.segmentsIntersect=m.segmentsIntersect,l.segmentDistance=m.segmentDistance,l.getTextLocation=m.getTextLocation,l.clearLocationCache=m.clearLocationCache,l.getVisibleSegment=m.getVisibleSegment,l.findPointOnPath=m.findPointOnPath;var y=t(\\\"./extend\\\");l.extendFlat=y.extendFlat,l.extendDeep=y.extendDeep,l.extendDeepAll=y.extendDeepAll,l.extendDeepNoArrays=y.extendDeepNoArrays;var x=t(\\\"./loggers\\\");l.log=x.log,l.warn=x.warn,l.error=x.error;var b=t(\\\"./regex\\\");l.counterRegex=b.counter;var _=t(\\\"./throttle\\\");function w(t){var e={};for(var r in t)for(var n=t[r],i=0;i<n.length;i++)e[n[i]]=+r;return e}l.throttle=_.throttle,l.throttleDone=_.done,l.clearThrottle=_.clear,l.getGraphDiv=t(\\\"./get_graph_div\\\"),l.clearResponsive=t(\\\"./clear_responsive\\\"),l.makeTraceGroups=t(\\\"./make_trace_groups\\\"),l._=t(\\\"./localize\\\"),l.notifier=t(\\\"./notifier\\\"),l.filterUnique=t(\\\"./filter_unique\\\"),l.filterVisible=t(\\\"./filter_visible\\\"),l.pushUnique=t(\\\"./push_unique\\\"),l.cleanNumber=t(\\\"./clean_number\\\"),l.ensureNumber=function(t){return i(t)?(t=Number(t))<-o||t>o?s:i(t)?Number(t):s:s},l.isIndex=function(t,e){return!(void 0!==e&&t>=e)&&(i(t)&&t>=0&&t%1==0)},l.noop=t(\\\"./noop\\\"),l.identity=t(\\\"./identity\\\"),l.repeat=function(t,e){for(var r=new Array(e),n=0;n<e;n++)r[n]=t;return r},l.swapAttrs=function(t,e,r,n){r||(r=\\\"x\\\"),n||(n=\\\"y\\\");for(var i=0;i<e.length;i++){var a=e[i],o=l.nestedProperty(t,a.replace(\\\"?\\\",r)),s=l.nestedProperty(t,a.replace(\\\"?\\\",n)),c=o.get();o.set(s.get()),s.set(c)}},l.raiseToTop=function(t){t.parentNode.appendChild(t)},l.cancelTransition=function(t){return t.transition().duration(0)},l.constrain=function(t,e,r){return e>r?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},l.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},l.simpleMap=function(t,e,r,n){for(var i=t.length,a=new Array(i),o=0;o<i;o++)a[o]=e(t[o],r,n);return a},l.randstr=function t(e,r,n,i){if(n||(n=16),void 0===r&&(r=24),r<=0)return\\\"0\\\";var a,o,s=Math.log(Math.pow(2,r))/Math.log(n),c=\\\"\\\";for(a=2;s===1/0;a*=2)s=Math.log(Math.pow(2,r/a))/Math.log(n)*a;var u=s-Math.floor(s);for(a=0;a<Math.floor(s);a++)c=Math.floor(Math.random()*n).toString(n)+c;u&&(o=Math.pow(n,u),c=Math.floor(Math.random()*o).toString(n)+c);var f=parseInt(c,n);return e&&e[c]||f!==1/0&&f>=Math.pow(2,r)?i>10?(l.warn(\\\"randstr failed uniqueness\\\"),c):t(e,r,n,(i||0)+1):c},l.OptionControl=function(t,e){t||(t={}),e||(e=\\\"opt\\\");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r[\\\"_\\\"+e]=t,r},l.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,c=new Array(l),u=new Array(o);for(r=0;r<l;r++)c[r]=(1-Math.cos(Math.PI*(r+1)/e))/(2*e);for(r=0;r<o;r++){for(a=0,n=0;n<l;n++)(i=r+n+1-e)<-o?i-=s*Math.round(i/s):i>=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*c[n];u[r]=a}return u},l.syncOrAsync=function(t,e,r){var n;function i(){return l.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i).then(void 0,l.promiseError);return r&&r(e)},l.stripTrailingSlash=function(t){return\\\"/\\\"===t.substr(-1)?t.substr(0,t.length-1):t},l.noneOrAll=function(t,e,r){if(t){var n,i=!1,a=!0;for(n=0;n<r.length;n++)null!=t[r[n]]?i=!0:a=!1;if(i&&!a)for(n=0;n<r.length;n++)t[r[n]]=e[r[n]]}},l.mergeArray=function(t,e,r){if(l.isArrayOrTypedArray(t))for(var n=Math.min(t.length,e.length),i=0;i<n;i++)e[i][r]=t[i]},l.fillArray=function(t,e,r,n){if(n=n||l.identity,l.isArrayOrTypedArray(t))for(var i=0;i<e.length;i++)e[i][r]=n(t[i])},l.castOption=function(t,e,r,n){n=n||l.identity;var i=l.nestedProperty(t,r).get();return l.isArrayOrTypedArray(i)?Array.isArray(e)&&l.isArrayOrTypedArray(i[e[0]])?n(i[e[0]][e[1]]):n(i[e]):i},l.extractOption=function(t,e,r,n){if(r in t)return t[r];var i=l.nestedProperty(e,n).get();return Array.isArray(i)?void 0:i},l.tagSelected=function(t,e,r){var n,i,a=e.selectedpoints,o=e._indexToPoints;o&&(n=w(o));for(var s=0;s<a.length;s++){var c=a[s];if(l.isIndex(c)){var u=n?n[c]:c,f=r?r[u]:u;void 0!==(i=f)&&i<t.length&&(t[f].selected=1)}}},l.selIndices2selPoints=function(t){var e=t.selectedpoints,r=t._indexToPoints;if(r){for(var n=w(r),i=[],a=0;a<e.length;a++){var o=e[a];if(l.isIndex(o)){var s=n[o];l.isIndex(s)&&i.push(s)}}return i}return e},l.getTargetArray=function(t,e){var r=e.target;if(\\\"string\\\"==typeof r&&r){var n=l.nestedProperty(t,r).get();return!!Array.isArray(n)&&n}return!!Array.isArray(r)&&r},l.minExtend=function(t,e){var r={};\\\"object\\\"!=typeof e&&(e={});var n,i,a,o=Object.keys(t);for(n=0;n<o.length;n++)a=t[i=o[n]],\\\"_\\\"!==i.charAt(0)&&\\\"function\\\"!=typeof a&&(\\\"module\\\"===i?r[i]=a:Array.isArray(a)?r[i]=a.slice(0,3):r[i]=a&&\\\"object\\\"==typeof a?l.minExtend(t[i],e[i]):a);for(o=Object.keys(e),n=0;n<o.length;n++)\\\"object\\\"==typeof(a=e[i=o[n]])&&i in r&&\\\"object\\\"==typeof r[i]||(r[i]=a);return r},l.titleCase=function(t){return t.charAt(0).toUpperCase()+t.substr(1)},l.containsAny=function(t,e){for(var r=0;r<e.length;r++)if(-1!==t.indexOf(e[r]))return!0;return!1},l.isPlotDiv=function(t){var e=n.select(t);return e.node()instanceof HTMLElement&&e.size()&&e.classed(\\\"js-plotly-plot\\\")},l.removeElement=function(t){var e=t&&t.parentNode;e&&e.removeChild(t)},l.addStyleRule=function(t,e){l.addRelatedStyleRule(\\\"global\\\",t,e)},l.addRelatedStyleRule=function(t,e,r){var n=\\\"plotly.js-style-\\\"+t,i=document.getElementById(n);i||((i=document.createElement(\\\"style\\\")).setAttribute(\\\"id\\\",n),i.appendChild(document.createTextNode(\\\"\\\")),document.head.appendChild(i));var a=i.sheet;a.insertRule?a.insertRule(e+\\\"{\\\"+r+\\\"}\\\",0):a.addRule?a.addRule(e,r,0):l.warn(\\\"addStyleRule failed\\\")},l.deleteRelatedStyleRule=function(t){var e=\\\"plotly.js-style-\\\"+t,r=document.getElementById(e);r&&l.removeElement(r)},l.isIE=function(){return\\\"undefined\\\"!=typeof window.navigator.msSaveBlob},l.isD3Selection=function(t){return t&&\\\"function\\\"==typeof t.classed},l.ensureSingle=function(t,e,r,n){var i=t.select(e+(r?\\\".\\\"+r:\\\"\\\"));if(i.size())return i;var a=t.append(e);return r&&a.classed(r,!0),n&&a.call(n),a},l.ensureSingleById=function(t,e,r,n){var i=t.select(e+\\\"#\\\"+r);if(i.size())return i;var a=t.append(e).attr(\\\"id\\\",r);return n&&a.call(n),a},l.objectFromPath=function(t,e){for(var r,n=t.split(\\\".\\\"),i=r={},a=0;a<n.length;a++){var o=n[a],s=null,l=n[a].match(/(.*)\\\\[([0-9]+)\\\\]/);l?(o=l[1],s=l[2],r=r[o]=[],a===n.length-1?r[s]=e:r[s]={},r=r[s]):(a===n.length-1?r[o]=e:r[o]={},r=r[o])}return i};var k=/^([^\\\\[\\\\.]+)\\\\.(.+)?/,M=/^([^\\\\.]+)\\\\[([0-9]+)\\\\](\\\\.)?(.+)?/;l.expandObjectPaths=function(t){var e,r,n,i,a,o,s;if(\\\"object\\\"==typeof t&&!Array.isArray(t))for(r in t)t.hasOwnProperty(r)&&((e=r.match(k))?(i=t[r],n=e[1],delete t[r],t[n]=l.extendDeepNoArrays(t[n]||{},l.objectFromPath(r,l.expandObjectPaths(i))[n])):(e=r.match(M))?(i=t[r],n=e[1],a=parseInt(e[2]),delete t[r],t[n]=t[n]||[],\\\".\\\"===e[3]?(s=e[4],o=t[n][a]=t[n][a]||{},l.extendDeepNoArrays(o,l.objectFromPath(s,l.expandObjectPaths(i)))):t[n][a]=l.expandObjectPaths(i)):t[r]=l.expandObjectPaths(t[r]));return t},l.numSeparate=function(t,e,r){if(r||(r=!1),\\\"string\\\"!=typeof e||0===e.length)throw new Error(\\\"Separator string required for formatting!\\\");\\\"number\\\"==typeof t&&(t=String(t));var n=/(\\\\d+)(\\\\d{3})/,i=e.charAt(0),a=e.charAt(1),o=t.split(\\\".\\\"),s=o[0],l=o.length>1?i+o[1]:\\\"\\\";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,\\\"$1\\\"+a+\\\"$2\\\");return s+l};var A=/%{([^\\\\s%{}]*)}/g,T=/^\\\\w*$/;l.templateString=function(t,e){var r={};return t.replace(A,function(t,n){return T.test(n)?e[n]||\\\"\\\":(r[n]=r[n]||l.nestedProperty(e,n).get,r[n]()||\\\"\\\")})};l.subplotSort=function(t,e){for(var r=Math.min(t.length,e.length)+1,n=0,i=0,a=0;a<r;a++){var o=t.charCodeAt(a)||0,s=e.charCodeAt(a)||0,l=o>=48&&o<=57,c=s>=48&&s<=57;if(l&&(n=10*n+o-48),c&&(i=10*i+s-48),!l||!c){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var S=2e9;l.seedPseudoRandom=function(){S=2e9},l.pseudoRandom=function(){var t=S;return S=(69069*S+1)%4294967296,Math.abs(S-t)<429496729?l.pseudoRandom():S/4294967296}},{\\\"../constants/numerical\\\":673,\\\"./angles\\\":677,\\\"./array\\\":678,\\\"./clean_number\\\":679,\\\"./clear_responsive\\\":681,\\\"./coerce\\\":682,\\\"./dates\\\":683,\\\"./extend\\\":685,\\\"./filter_unique\\\":686,\\\"./filter_visible\\\":687,\\\"./geometry2d\\\":690,\\\"./get_graph_div\\\":691,\\\"./identity\\\":695,\\\"./is_plain_object\\\":697,\\\"./keyed_container\\\":698,\\\"./localize\\\":699,\\\"./loggers\\\":700,\\\"./make_trace_groups\\\":701,\\\"./matrix\\\":702,\\\"./mod\\\":703,\\\"./nested_property\\\":704,\\\"./noop\\\":705,\\\"./notifier\\\":706,\\\"./push_unique\\\":710,\\\"./regex\\\":712,\\\"./relative_attr\\\":713,\\\"./relink_private\\\":714,\\\"./search\\\":715,\\\"./stats\\\":718,\\\"./throttle\\\":721,\\\"./to_log_range\\\":722,d3:148,\\\"fast-isnumeric\\\":214}],697:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return window&&window.process&&window.process.versions?\\\"[object Object]\\\"===Object.prototype.toString.call(t):\\\"[object Object]\\\"===Object.prototype.toString.call(t)&&Object.getPrototypeOf(t)===Object.prototype}},{}],698:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./nested_property\\\"),i=/^\\\\w*$/;e.exports=function(t,e,r,a){var o,s,l;r=r||\\\"name\\\",a=a||\\\"value\\\";var c={};e&&e.length?(l=n(t,e),s=l.get()):s=t,e=e||\\\"\\\";var u={};if(s)for(o=0;o<s.length;o++)u[s[o][r]]=o;var f=i.test(a),h={set:function(t,e){var i=null===e?4:0;if(!s){if(!l||4===i)return;s=[],l.set(s)}var o=u[t];if(void 0===o){if(4===i)return;i|=3,o=s.length,u[t]=o}else e!==(f?s[o][a]:n(s[o],a).get())&&(i|=2);var p=s[o]=s[o]||{};return p[r]=t,f?p[a]=e:n(p,a).set(e),null!==e&&(i&=-5),c[o]=c[o]|i,h},get:function(t){if(s){var e=u[t];return void 0===e?void 0:f?s[e][a]:n(s[e],a).get()}},rename:function(t,e){var n=u[t];return void 0===n?h:(c[n]=1|c[n],u[e]=n,delete u[t],s[n][r]=e,h)},remove:function(t){var e=u[t];if(void 0===e)return h;var i=s[e];if(Object.keys(i).length>2)return c[e]=2|c[e],h.set(t,null);if(f){for(o=e;o<s.length;o++)c[o]=3|c[o];for(o=e;o<s.length;o++)u[s[o][r]]--;s.splice(e,1),delete u[t]}else n(i,a).set(null),c[e]=6|c[e];return h},constructUpdate:function(){for(var t,i,o={},l=Object.keys(c),u=0;u<l.length;u++)i=l[u],t=e+\\\"[\\\"+i+\\\"]\\\",s[i]?(1&c[i]&&(o[t+\\\".\\\"+r]=s[i][r]),2&c[i]&&(o[t+\\\".\\\"+a]=f?4&c[i]?null:s[i][a]:4&c[i]?null:n(s[i],a).get())):o[t]=null;return o}};return h}},{\\\"./nested_property\\\":704}],699:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\");e.exports=function(t,e){for(var r=t._context.locale,i=0;i<2;i++){for(var a=t._context.locales,o=0;o<2;o++){var s=(a[r]||{}).dictionary;if(s){var l=s[e];if(l)return l}a=n.localeRegistry}var c=r.split(\\\"-\\\")[0];if(c===r)break;r=c}return e}},{\\\"../registry\\\":827}],700:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../plot_api/plot_config\\\"),i=e.exports={};function a(t,e){if(t&&t.apply)try{return void t.apply(console,e)}catch(t){}for(var r=0;r<e.length;r++)try{t(e[r])}catch(t){console.log(e[r])}}i.log=function(){if(n.logging>1){for(var t=[\\\"LOG:\\\"],e=0;e<arguments.length;e++)t.push(arguments[e]);a(console.trace||console.log,t)}},i.warn=function(){if(n.logging>0){for(var t=[\\\"WARN:\\\"],e=0;e<arguments.length;e++)t.push(arguments[e]);a(console.trace||console.log,t)}},i.error=function(){if(n.logging>0){for(var t=[\\\"ERROR:\\\"],e=0;e<arguments.length;e++)t.push(arguments[e]);a(console.error,t)}}},{\\\"../plot_api/plot_config\\\":732}],701:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){var n=t.selectAll(\\\"g.\\\"+r.replace(/\\\\s/g,\\\".\\\")).data(e,function(t){return t[0].trace.uid});return n.exit().remove(),n.enter().append(\\\"g\\\").attr(\\\"class\\\",r),n.order(),n}},{}],702:[function(t,e,r){\\\"use strict\\\";r.init2dArray=function(t,e){for(var r=new Array(t),n=0;n<t;n++)r[n]=new Array(e);return r},r.transposeRagged=function(t){var e,r,n=0,i=t.length;for(e=0;e<i;e++)n=Math.max(n,t[e].length);var a=new Array(n);for(e=0;e<n;e++)for(a[e]=new Array(i),r=0;r<i;r++)a[e][r]=t[r][e];return a},r.dot=function(t,e){if(!t.length||!e.length||t.length!==e.length)return null;var n,i,a=t.length;if(t[0].length)for(n=new Array(a),i=0;i<a;i++)n[i]=r.dot(t[i],e);else if(e[0].length){var o=r.transposeRagged(e);for(n=new Array(o.length),i=0;i<o.length;i++)n[i]=r.dot(t,o[i])}else for(n=0,i=0;i<a;i++)n+=t[i]*e[i];return n},r.translationMatrix=function(t,e){return[[1,0,t],[0,1,e],[0,0,1]]},r.rotationMatrix=function(t){var e=t*Math.PI/180;return[[Math.cos(e),-Math.sin(e),0],[Math.sin(e),Math.cos(e),0],[0,0,1]]},r.rotationXYMatrix=function(t,e,n){return r.dot(r.dot(r.translationMatrix(e,n),r.rotationMatrix(t)),r.translationMatrix(-e,-n))},r.apply2DTransform=function(t){return function(){var e=arguments;3===e.length&&(e=e[0]);var n=1===arguments.length?e[0]:[e[0],e[1]];return r.dot(t,[n[0],n[1],1]).slice(0,2)}},r.apply2DTransform2=function(t){var e=r.apply2DTransform(t);return function(t){return e(t.slice(0,2)).concat(e(t.slice(2,4)))}}},{}],703:[function(t,e,r){\\\"use strict\\\";e.exports={mod:function(t,e){var r=t%e;return r<0?r+e:r},modHalf:function(t,e){return Math.abs(t)>e/2?t-Math.round(t/e)*e:t}}},{}],704:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"./array\\\").isArrayOrTypedArray;e.exports=function(t,e){if(n(e))e=String(e);else if(\\\"string\\\"!=typeof e||\\\"[-1]\\\"===e.substr(e.length-4))throw\\\"bad property string\\\";for(var r,a,o,l=0,c=e.split(\\\".\\\");l<c.length;){if(r=String(c[l]).match(/^([^\\\\[\\\\]]*)((\\\\[\\\\-?[0-9]*\\\\])+)$/)){if(r[1])c[l]=r[1];else{if(0!==l)throw\\\"bad property string\\\";c.splice(0,1)}for(a=r[2].substr(1,r[2].length-2).split(\\\"][\\\"),o=0;o<a.length;o++)l++,c.splice(l,0,Number(a[o]))}l++}return\\\"object\\\"!=typeof t?function(t,e,r){return{set:function(){throw\\\"bad container\\\"},get:function(){},astr:e,parts:r,obj:t}}(t,e,c):{set:s(t,c,e),get:function t(e,r){return function(){var n,a,o,s,l,c=e;for(s=0;s<r.length-1;s++){if(-1===(n=r[s])){for(a=!0,o=[],l=0;l<c.length;l++)o[l]=t(c[l],r.slice(s+1))(),o[l]!==o[0]&&(a=!1);return a?o[0]:o}if(\\\"number\\\"==typeof n&&!i(c))return;if(\\\"object\\\"!=typeof(c=c[n])||null===c)return}if(\\\"object\\\"==typeof c&&null!==c&&null!==(o=c[r[s]]))return o}}(t,c),astr:e,parts:c,obj:t}};var a=/(^|\\\\.)args\\\\[/;function o(t,e){return void 0===t||null===t&&!e.match(a)}function s(t,e,r){return function(n){var a,s,f=t,h=\\\"\\\",p=[[t,h]],d=o(n,r);for(s=0;s<e.length-1;s++){if(\\\"number\\\"==typeof(a=e[s])&&!i(f))throw\\\"array index but container is not an array\\\";if(-1===a){if(d=!c(f,e.slice(s+1),n,r))break;return}if(!u(f,a,e[s+1],d))break;if(\\\"object\\\"!=typeof(f=f[a])||null===f)throw\\\"container is not an object\\\";h=l(h,a),p.push([f,h])}if(d){if(s===e.length-1&&(delete f[e[s]],Array.isArray(f)&&+e[s]==f.length-1))for(;f.length&&void 0===f[f.length-1];)f.pop()}else f[e[s]]=n}}function l(t,e){var r=e;return n(e)?r=\\\"[\\\"+e+\\\"]\\\":t&&(r=\\\".\\\"+e),t+r}function c(t,e,r,n){var a,l=i(r),c=!0,f=r,h=n.replace(\\\"-1\\\",0),p=!l&&o(r,h),d=e[0];for(a=0;a<t.length;a++)h=n.replace(\\\"-1\\\",a),l&&(p=o(f=r[a%r.length],h)),p&&(c=!1),u(t,a,d,p)&&s(t[a],e,n.replace(\\\"-1\\\",a))(f);return c}function u(t,e,r,n){if(void 0===t[e]){if(n)return!1;t[e]=\\\"number\\\"==typeof r?[]:{}}return!0}},{\\\"./array\\\":678,\\\"fast-isnumeric\\\":214}],705:[function(t,e,r){\\\"use strict\\\";e.exports=function(){}},{}],706:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=[];e.exports=function(t,e){if(-1===a.indexOf(t)){a.push(t);var r=1e3;i(e)?r=e:\\\"long\\\"===e&&(r=3e3);var o=n.select(\\\"body\\\").selectAll(\\\".plotly-notifier\\\").data([0]);o.enter().append(\\\"div\\\").classed(\\\"plotly-notifier\\\",!0),o.selectAll(\\\".notifier-note\\\").data(a).enter().append(\\\"div\\\").classed(\\\"notifier-note\\\",!0).style(\\\"opacity\\\",0).each(function(t){var e=n.select(this);e.append(\\\"button\\\").classed(\\\"notifier-close\\\",!0).html(\\\"&times;\\\").on(\\\"click\\\",function(){e.transition().call(s)});for(var i=e.append(\\\"p\\\"),a=t.split(/<br\\\\s*\\\\/?>/g),o=0;o<a.length;o++)o&&i.append(\\\"br\\\"),i.append(\\\"span\\\").text(a[o]);e.transition().duration(700).style(\\\"opacity\\\",1).transition().delay(r).call(s)})}function s(t){t.duration(700).style(\\\"opacity\\\",0).each(\\\"end\\\",function(t){var e=a.indexOf(t);-1!==e&&a.splice(e,1),n.select(this).remove()})}}},{d3:148,\\\"fast-isnumeric\\\":214}],707:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./setcursor\\\"),i=\\\"data-savedcursor\\\";e.exports=function(t,e){var r=t.attr(i);if(e){if(!r){for(var a=(t.attr(\\\"class\\\")||\\\"\\\").split(\\\" \\\"),o=0;o<a.length;o++){var s=a[o];0===s.indexOf(\\\"cursor-\\\")&&t.attr(i,s.substr(7)).classed(s,!1)}t.attr(i)||t.attr(i,\\\"!!\\\")}n(t,e)}else r&&(t.attr(i,null),\\\"!!\\\"===r?n(t):n(t,r))}},{\\\"./setcursor\\\":716}],708:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./matrix\\\").dot,i=t(\\\"../constants/numerical\\\").BADNUM,a=e.exports={};a.tester=function(t){var e,r=t.slice(),n=r[0][0],a=n,o=r[0][1],s=o;for(r.push(r[0]),e=1;e<r.length;e++)n=Math.min(n,r[e][0]),a=Math.max(a,r[e][0]),o=Math.min(o,r[e][1]),s=Math.max(s,r[e][1]);var l,c=!1;5===r.length&&(r[0][0]===r[1][0]?r[2][0]===r[3][0]&&r[0][1]===r[3][1]&&r[1][1]===r[2][1]&&(c=!0,l=function(t){return t[0]===r[0][0]}):r[0][1]===r[1][1]&&r[2][1]===r[3][1]&&r[0][0]===r[3][0]&&r[1][0]===r[2][0]&&(c=!0,l=function(t){return t[1]===r[0][1]}));var u=!0,f=r[0];for(e=1;e<r.length;e++)if(f[0]!==r[e][0]||f[1]!==r[e][1]){u=!1;break}return{xmin:n,xmax:a,ymin:o,ymax:s,pts:r,contains:c?function(t,e){var r=t[0],c=t[1];return!(r===i||r<n||r>a||c===i||c<o||c>s||e&&l(t))}:function(t,e){var l=t[0],c=t[1];if(l===i||l<n||l>a||c===i||c<o||c>s)return!1;var u,f,h,p,d,g=r.length,v=r[0][0],m=r[0][1],y=0;for(u=1;u<g;u++)if(f=v,h=m,v=r[u][0],m=r[u][1],!(l<(p=Math.min(f,v))||l>Math.max(f,v)||c>Math.max(h,m)))if(c<Math.min(h,m))l!==p&&y++;else{if(c===(d=v===f?c:h+(l-f)*(m-h)/(v-f)))return 1!==u||!e;c<=d&&l!==p&&y++}return y%2==1},isRect:c,degenerate:u}};var o=a.isSegmentBent=function(t,e,r,i){var a,o,s,l=t[e],c=[t[r][0]-l[0],t[r][1]-l[1]],u=n(c,c),f=Math.sqrt(u),h=[-c[1]/f,c[0]/f];for(a=e+1;a<r;a++)if(o=[t[a][0]-l[0],t[a][1]-l[1]],(s=n(o,c))<0||s>u||Math.abs(n(o,h))>i)return!0;return!1};a.filter=function(t,e){var r=[t[0]],n=0,i=0;function a(a){t.push(a);var s=r.length,l=n;r.splice(i+1);for(var c=l+1;c<t.length;c++)(c===t.length-1||o(t,l,c+1,e))&&(r.push(t[c]),r.length<s-2&&(n=c,i=r.length-1),l=c)}t.length>1&&a(t.pop());return{addPt:a,raw:t,filtered:r}}},{\\\"../constants/numerical\\\":673,\\\"./matrix\\\":702}],709:[function(t,e,r){(function(r){\\\"use strict\\\";var n=t(\\\"./show_no_webgl_msg\\\"),i=t(\\\"regl\\\");e.exports=function(t,e){var a=t._fullLayout,o=!0;return a._glcanvas.each(function(n){if(!n.regl&&(!n.pick||a._has(\\\"parcoords\\\"))){try{n.regl=i({canvas:this,attributes:{antialias:!n.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||r.devicePixelRatio,extensions:e||[]})}catch(t){o=!1}o&&this.addEventListener(\\\"webglcontextlost\\\",function(e){t&&t.emit&&t.emit(\\\"plotly_webglcontextlost\\\",{event:e,layer:n.key})},!1)}}),o||n({container:a._glcontainer.node()}),o}}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{\\\"./show_no_webgl_msg\\\":717,regl:478}],710:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){if(e instanceof RegExp){var r,n=e.toString();for(r=0;r<t.length;r++)if(t[r]instanceof RegExp&&t[r].toString()===n)return t;t.push(e)}else!e&&0!==e||-1!==t.indexOf(e)||t.push(e);return t}},{}],711:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plot_api/plot_config\\\");var a={add:function(t,e,r,n,a){var o,s;t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},s=t.undoQueue.index,t.autoplay?t.undoQueue.inSequence||(t.autoplay=!1):(!t.undoQueue.sequence||t.undoQueue.beginSequence?(o={undo:{calls:[],args:[]},redo:{calls:[],args:[]}},t.undoQueue.queue.splice(s,t.undoQueue.queue.length-s,o),t.undoQueue.index+=1):o=t.undoQueue.queue[s-1],t.undoQueue.beginSequence=!1,o&&(o.undo.calls.unshift(e),o.undo.args.unshift(r),o.redo.calls.push(n),o.redo.args.push(a)),t.undoQueue.queue.length>i.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(t.framework&&t.framework.isPolar)t.framework.undo();else if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r<e.undo.calls.length;r++)a.plotDo(t,e.undo.calls[r],e.undo.args[r]);t.undoQueue.inSequence=!1,t.autoplay=!1}},redo:function(t){var e,r;if(t.framework&&t.framework.isPolar)t.framework.redo();else if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index>=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r<e.redo.calls.length;r++)a.plotDo(t,e.redo.calls[r],e.redo.args[r]);t.undoQueue.inSequence=!1,t.autoplay=!1,t.undoQueue.index++}}};a.plotDo=function(t,e,r){t.autoplay=!0,r=function(t,e){for(var r,i=[],a=0;a<e.length;a++)r=e[a],i[a]=r===t?r:\\\"object\\\"==typeof r?Array.isArray(r)?n.extendDeep([],r):n.extendDeepAll({},r):r;return i}(t,r),e.apply(null,r)},e.exports=a},{\\\"../lib\\\":696,\\\"../plot_api/plot_config\\\":732}],712:[function(t,e,r){\\\"use strict\\\";r.counter=function(t,e,r){var n=(e||\\\"\\\")+(r?\\\"\\\":\\\"$\\\");return\\\"xy\\\"===t?new RegExp(\\\"^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?\\\"+n):new RegExp(\\\"^\\\"+t+\\\"([2-9]|[1-9][0-9]+)?\\\"+n)}},{}],713:[function(t,e,r){\\\"use strict\\\";var n=/^(.*)(\\\\.[^\\\\.\\\\[\\\\]]+|\\\\[\\\\d\\\\])$/,i=/^[^\\\\.\\\\[\\\\]]+$/;e.exports=function(t,e){for(;e;){var r=t.match(n);if(r)t=r[1];else{if(!t.match(i))throw new Error(\\\"bad relativeAttr call:\\\"+[t,e]);t=\\\"\\\"}if(\\\"^\\\"!==e.charAt(0))break;e=e.slice(1)}return t&&\\\"[\\\"!==e.charAt(0)?t+\\\".\\\"+e:t+e}},{}],714:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./array\\\").isArrayOrTypedArray,i=t(\\\"./is_plain_object\\\");e.exports=function t(e,r){for(var a in r){var o=r[a],s=e[a];if(s!==o)if(\\\"_\\\"===a.charAt(0)||\\\"function\\\"==typeof o){if(a in e)continue;e[a]=o}else if(n(o)&&n(s)&&i(o[0])){if(\\\"customdata\\\"===a||\\\"ids\\\"===a)continue;for(var l=Math.min(o.length,s.length),c=0;c<l;c++)s[c]!==o[c]&&i(o[c])&&i(s[c])&&t(s[c],o[c])}else i(o)&&i(s)&&(t(s,o),Object.keys(s).length||delete e[a])}}},{\\\"./array\\\":678,\\\"./is_plain_object\\\":697}],715:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"./loggers\\\"),a=t(\\\"./identity\\\");function o(t,e){return t<e}function s(t,e){return t<=e}function l(t,e){return t>e}function c(t,e){return t>=e}r.findBin=function(t,e,r){if(n(e.start))return r?Math.ceil((t-e.start)/e.size-1e-9)-1:Math.floor((t-e.start)/e.size+1e-9);var a,u,f=0,h=e.length,p=0,d=h>1?(e[h-1]-e[0])/(h-1):1;for(u=d>=0?r?o:s:r?c:l,t+=1e-9*d*(r?-1:1)*(d>=0?1:-1);f<h&&p++<100;)u(e[a=Math.floor((f+h)/2)],t)?f=a+1:h=a;return p>90&&i.log(\\\"Long binary search...\\\"),f-1},r.sorterAsc=function(t,e){return t-e},r.sorterDes=function(t,e){return e-t},r.distinctVals=function(t){var e=t.slice();e.sort(r.sorterAsc);for(var n=e.length-1,i=e[n]-e[0]||1,a=i/(n||1)/1e4,o=[e[0]],s=0;s<n;s++)e[s+1]>e[s]+a&&(i=Math.min(i,e[s+1]-e[s]),o.push(e[s+1]));return{vals:o,minDiff:i}},r.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,c=r?Math.ceil:Math.floor;i<a&&o++<100;)e[n=c((i+a)/2)]<=t?i=n+s:a=n-l;return e[i]},r.sort=function(t,e){for(var r=0,n=0,i=1;i<t.length;i++){var a=e(t[i],t[i-1]);if(a<0?r=1:a>0&&(n=1),r&&n)return t.sort(e)}return n?t:t.reverse()},r.findIndexOfMin=function(t,e){e=e||a;for(var r,n=1/0,i=0;i<t.length;i++){var o=e(t[i]);o<n&&(n=o,r=i)}return r}},{\\\"./identity\\\":695,\\\"./loggers\\\":700,\\\"fast-isnumeric\\\":214}],716:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){(t.attr(\\\"class\\\")||\\\"\\\").split(\\\" \\\").forEach(function(e){0===e.indexOf(\\\"cursor-\\\")&&t.classed(e,!1)}),e&&t.classed(\\\"cursor-\\\"+e,!0)}},{}],717:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../components/color\\\"),i=function(){};e.exports=function(t){for(var e in t)\\\"function\\\"==typeof t[e]&&(t[e]=i);t.destroy=function(){t.container.parentNode.removeChild(t.container)};var r=document.createElement(\\\"div\\\");r.className=\\\"no-webgl\\\",r.style.cursor=\\\"pointer\\\",r.style.fontSize=\\\"24px\\\",r.style.color=n.defaults[0],r.style.position=\\\"absolute\\\",r.style.left=r.style.top=\\\"0px\\\",r.style.width=r.style.height=\\\"100%\\\",r.style[\\\"background-color\\\"]=n.lightLine,r.style[\\\"z-index\\\"]=30;var a=document.createElement(\\\"p\\\");return a.textContent=\\\"WebGL is not supported by your browser - visit https://get.webgl.org for more info\\\",a.style.position=\\\"relative\\\",a.style.top=\\\"50%\\\",a.style.left=\\\"50%\\\",a.style.height=\\\"30%\\\",a.style.width=\\\"50%\\\",a.style.margin=\\\"-15% 0 0 -25%\\\",r.appendChild(a),t.container.appendChild(r),t.container.style.background=\\\"#FFFFFF\\\",t.container.onclick=function(){window.open(\\\"https://get.webgl.org\\\")},!1}},{\\\"../components/color\\\":570}],718:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"./array\\\").isArrayOrTypedArray;r.aggNums=function(t,e,a,o){var s,l;if((!o||o>a.length)&&(o=a.length),n(e)||(e=!1),i(a[0])){for(l=new Array(o),s=0;s<o;s++)l[s]=r.aggNums(t,e,a[s]);a=l}for(s=0;s<o;s++)n(e)?n(a[s])&&(e=t(+e,+a[s])):e=a[s];return e},r.len=function(t){return r.aggNums(function(t){return t+1},0,t)},r.mean=function(t,e){return e||(e=r.len(t)),r.aggNums(function(t,e){return t+e},0,t)/e},r.midRange=function(t){if(void 0!==t&&0!==t.length)return(r.aggNums(Math.max,null,t)+r.aggNums(Math.min,null,t))/2},r.variance=function(t,e,i){return e||(e=r.len(t)),n(i)||(i=r.mean(t,e)),r.aggNums(function(t,e){return t+Math.pow(e-i,2)},0,t)/e},r.stdev=function(t,e,n){return Math.sqrt(r.variance(t,e,n))},r.interp=function(t,e){if(!n(e))throw\\\"n should be a finite number\\\";if((e=e*t.length-.5)<0)return t[0];if(e>t.length-1)return t[t.length-1];var r=e%1;return r*t[Math.ceil(e)]+(1-r)*t[Math.floor(e)]}},{\\\"./array\\\":678,\\\"fast-isnumeric\\\":214}],719:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"color-normalize\\\");e.exports=function(t){return t?n(t):[0,0,0,1]}},{\\\"color-normalize\\\":108}],720:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../constants/xmlns_namespaces\\\"),o=t(\\\"../constants/alignment\\\").LINE_SPACING;function s(t,e){return t.node().getBoundingClientRect()[e]}var l=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;r.convertToTspans=function(t,e,v){var S=t.text(),E=!t.attr(\\\"data-notex\\\")&&\\\"undefined\\\"!=typeof MathJax&&S.match(l),L=n.select(t.node().parentNode);if(!L.empty()){var z=t.attr(\\\"class\\\")?t.attr(\\\"class\\\").split(\\\" \\\")[0]:\\\"text\\\";return z+=\\\"-math\\\",L.selectAll(\\\"svg.\\\"+z).remove(),L.selectAll(\\\"g.\\\"+z+\\\"-group\\\").remove(),t.style(\\\"display\\\",null).attr({\\\"data-unformatted\\\":S,\\\"data-math\\\":\\\"N\\\"}),E?(e&&e._promises||[]).push(new Promise(function(e){t.style(\\\"display\\\",\\\"none\\\");var r=parseInt(t.node().style.fontSize,10),a={fontSize:r};!function(t,e,r){var a,o,s,l;MathJax.Hub.Queue(function(){return o=i.extendDeepAll({},MathJax.Hub.config),s=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:\\\"none\\\",tex2jax:{inlineMath:[[\\\"$\\\",\\\"$\\\"],[\\\"\\\\\\\\(\\\",\\\"\\\\\\\\)\\\"]]},displayAlign:\\\"left\\\"})},function(){if(\\\"SVG\\\"!==(a=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer(\\\"SVG\\\")},function(){var r=\\\"math-output-\\\"+i.randstr({},64);return l=n.select(\\\"body\\\").append(\\\"div\\\").attr({id:r}).style({visibility:\\\"hidden\\\",position:\\\"absolute\\\"}).style({\\\"font-size\\\":e.fontSize+\\\"px\\\"}).text(t.replace(c,\\\"\\\\\\\\lt \\\").replace(u,\\\"\\\\\\\\gt \\\")),MathJax.Hub.Typeset(l.node())},function(){var e=n.select(\\\"body\\\").select(\\\"#MathJax_SVG_glyphs\\\");if(l.select(\\\".MathJax_SVG\\\").empty()||!l.select(\\\"svg\\\").node())i.log(\\\"There was an error in the tex syntax.\\\",t),r();else{var o=l.select(\\\"svg\\\").node().getBoundingClientRect();r(l.select(\\\".MathJax_SVG\\\"),e,o)}if(l.remove(),\\\"SVG\\\"!==a)return MathJax.Hub.setRenderer(a)},function(){return void 0!==s&&(MathJax.Hub.processSectionDelay=s),MathJax.Hub.Config(o)})}(E[2],a,function(n,i,a){L.selectAll(\\\"svg.\\\"+z).remove(),L.selectAll(\\\"g.\\\"+z+\\\"-group\\\").remove();var o=n&&n.select(\\\"svg\\\");if(!o||!o.node())return O(),void e();var l=L.append(\\\"g\\\").classed(z+\\\"-group\\\",!0).attr({\\\"pointer-events\\\":\\\"none\\\",\\\"data-unformatted\\\":S,\\\"data-math\\\":\\\"Y\\\"});l.node().appendChild(o.node()),i&&i.node()&&o.node().insertBefore(i.node().cloneNode(!0),o.node().firstChild),o.attr({class:z,height:a.height,preserveAspectRatio:\\\"xMinYMin meet\\\"}).style({overflow:\\\"visible\\\",\\\"pointer-events\\\":\\\"none\\\"});var c=t.node().style.fill||\\\"black\\\";o.select(\\\"g\\\").attr({fill:c,stroke:c});var u=s(o,\\\"width\\\"),f=s(o,\\\"height\\\"),h=+t.attr(\\\"x\\\")-u*{start:0,middle:.5,end:1}[t.attr(\\\"text-anchor\\\")||\\\"start\\\"],p=-(r||s(t,\\\"height\\\"))/4;\\\"y\\\"===z[0]?(l.attr({transform:\\\"rotate(\\\"+[-90,+t.attr(\\\"x\\\"),+t.attr(\\\"y\\\")]+\\\") translate(\\\"+[-u/2,p-f/2]+\\\")\\\"}),o.attr({x:+t.attr(\\\"x\\\"),y:+t.attr(\\\"y\\\")})):\\\"l\\\"===z[0]?o.attr({x:t.attr(\\\"x\\\"),y:p-f/2}):\\\"a\\\"===z[0]?o.attr({x:0,y:p}):o.attr({x:h,y:+t.attr(\\\"y\\\")+p-f/2}),v&&v.call(t,l),e(l)})})):O(),t}function O(){L.empty()||(z=t.attr(\\\"class\\\")+\\\"-math\\\",L.select(\\\"svg.\\\"+z).remove()),t.text(\\\"\\\").style(\\\"white-space\\\",\\\"pre\\\"),function(t,e){e=e.replace(m,\\\" \\\");var r,s=!1,l=[],c=-1;function u(){c++;var e=document.createElementNS(a.svg,\\\"tspan\\\");n.select(e).attr({class:\\\"line\\\",dy:c*o+\\\"em\\\"}),t.appendChild(e),r=e;var i=l;if(l=[{node:e}],i.length>1)for(var s=1;s<i.length;s++)v(i[s])}function v(t){var e,i=t.type,o={};if(\\\"a\\\"===i){e=\\\"a\\\";var s=t.target,c=t.href,u=t.popup;c&&(o={\\\"xlink:xlink:show\\\":\\\"_blank\\\"===s||\\\"_\\\"!==s.charAt(0)?\\\"new\\\":\\\"replace\\\",target:s,\\\"xlink:xlink:href\\\":c},u&&(o.onclick='window.open(this.href.baseVal,this.target.baseVal,\\\"'+u+'\\\");return false;'))}else e=\\\"tspan\\\";t.style&&(o.style=t.style);var f=document.createElementNS(a.svg,e);if(\\\"sup\\\"===i||\\\"sub\\\"===i){S(r,d),r.appendChild(f);var g=document.createElementNS(a.svg,\\\"tspan\\\");S(g,d),n.select(g).attr(\\\"dy\\\",p[i]),o.dy=h[i],r.appendChild(f),r.appendChild(g)}else r.appendChild(f);n.select(f).attr(o),r=t.node=f,l.push(t)}function S(t,e){t.appendChild(document.createTextNode(e))}function E(t){if(1!==l.length){var n=l.pop();t!==n.type&&i.log(\\\"Start tag <\\\"+n.type+\\\"> doesnt match end tag <\\\"+t+\\\">. Pretending it did match.\\\",e),r=l[l.length-1].node}else i.log(\\\"Ignoring unexpected end tag </\\\"+t+\\\">.\\\",e)}b.test(e)?u():(r=t,l=[{node:t}]);for(var L=e.split(y),z=0;z<L.length;z++){var O=L[z],I=O.match(x),P=I&&I[2].toLowerCase(),D=f[P];if(\\\"br\\\"===P)u();else if(void 0===D)S(r,C(O));else if(I[1])E(P);else{var R=I[4],B={type:P},F=A(R,_);if(F?(F=F.replace(T,\\\"$1 fill:\\\"),D&&(F+=\\\";\\\"+D)):D&&(F=D),F&&(B.style=F),\\\"a\\\"===P){s=!0;var N=A(R,w);if(N){var j=document.createElement(\\\"a\\\");j.href=N,-1!==g.indexOf(j.protocol)&&(B.href=encodeURI(decodeURI(N)),B.target=A(R,k)||\\\"_blank\\\",B.popup=A(R,M))}}v(B)}}return s}(t.node(),S)&&t.style(\\\"pointer-events\\\",\\\"all\\\"),r.positionText(t),v&&v.call(t)}};var c=/(<|&lt;|&#60;)/g,u=/(>|&gt;|&#62;)/g;var f={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\\\"},h={sub:\\\"0.3em\\\",sup:\\\"-0.6em\\\"},p={sub:\\\"-0.21em\\\",sup:\\\"0.42em\\\"},d=\\\"\\\\u200b\\\",g=[\\\"http:\\\",\\\"https:\\\",\\\"mailto:\\\",\\\"\\\",void 0,\\\":\\\"],v=new RegExp(\\\"</?(\\\"+Object.keys(f).join(\\\"|\\\")+\\\")( [^>]*)?/?>\\\",\\\"g\\\"),m=/(\\\\r\\\\n?|\\\\n)/g,y=/(<[^<>]*>)/,x=/<(\\\\/?)([^ >]*)(\\\\s+(.*))?>/i,b=/<br(\\\\s+.*)?>/i,_=/(^|[\\\\s\\\"'])style\\\\s*=\\\\s*(\\\"([^\\\"]*);?\\\"|'([^']*);?')/i,w=/(^|[\\\\s\\\"'])href\\\\s*=\\\\s*(\\\"([^\\\"]*)\\\"|'([^']*)')/i,k=/(^|[\\\\s\\\"'])target\\\\s*=\\\\s*(\\\"([^\\\"\\\\s]*)\\\"|'([^'\\\\s]*)')/i,M=/(^|[\\\\s\\\"'])popup\\\\s*=\\\\s*(\\\"([\\\\w=,]*)\\\"|'([\\\\w=,]*)')/i;function A(t,e){if(!t)return null;var r=t.match(e),n=r&&(r[3]||r[4]);return n&&C(n)}var T=/(^|;)\\\\s*color:/;r.plainText=function(t){return(t||\\\"\\\").replace(v,\\\" \\\")};var S={mu:\\\"\\\\u03bc\\\",amp:\\\"&\\\",lt:\\\"<\\\",gt:\\\">\\\",nbsp:\\\"\\\\xa0\\\",times:\\\"\\\\xd7\\\",plusmn:\\\"\\\\xb1\\\",deg:\\\"\\\\xb0\\\"},E=/&(#\\\\d+|#x[\\\\da-fA-F]+|[a-z]+);/g;function C(t){return t.replace(E,function(t,e){return(\\\"#\\\"===e.charAt(0)?function(t){if(t>1114111)return;var e=String.fromCodePoint;if(e)return e(t);var r=String.fromCharCode;return t<=65535?r(t):r(55232+(t>>10),t%1024+56320)}(\\\"x\\\"===e.charAt(1)?parseInt(e.substr(2),16):parseInt(e.substr(1),10)):S[e])||t})}function L(t,e,r){var n,i,a,o=r.horizontalAlign,s=r.verticalAlign||\\\"top\\\",l=t.node().getBoundingClientRect(),c=e.node().getBoundingClientRect();return i=\\\"bottom\\\"===s?function(){return l.bottom-n.height}:\\\"middle\\\"===s?function(){return l.top+(l.height-n.height)/2}:function(){return l.top},a=\\\"right\\\"===o?function(){return l.right-n.width}:\\\"center\\\"===o?function(){return l.left+(l.width-n.width)/2}:function(){return l.left},function(){return n=this.node().getBoundingClientRect(),this.style({top:i()-c.top+\\\"px\\\",left:a()-c.left+\\\"px\\\",\\\"z-index\\\":1e3}),this}}r.convertEntities=C,r.lineCount=function(t){return t.selectAll(\\\"tspan.line\\\").size()||1},r.positionText=function(t,e,r){return t.each(function(){var t=n.select(this);function i(e,r){return void 0===r?null===(r=t.attr(e))&&(t.attr(e,0),r=0):t.attr(e,r),r}var a=i(\\\"x\\\",e),o=i(\\\"y\\\",r);\\\"text\\\"===this.nodeName&&t.selectAll(\\\"tspan.line\\\").attr({x:a,y:o})})},r.makeEditable=function(t,e){var r=e.gd,i=e.delegate,a=n.dispatch(\\\"edit\\\",\\\"input\\\",\\\"cancel\\\"),o=i||t;if(t.style({\\\"pointer-events\\\":i?\\\"none\\\":\\\"all\\\"}),1!==t.size())throw new Error(\\\"boo\\\");function s(){!function(){var i=n.select(r).select(\\\".svg-container\\\"),o=i.append(\\\"div\\\"),s=t.node().style,c=parseFloat(s.fontSize||12),u=e.text;void 0===u&&(u=t.attr(\\\"data-unformatted\\\"));o.classed(\\\"plugin-editable editable\\\",!0).style({position:\\\"absolute\\\",\\\"font-family\\\":s.fontFamily||\\\"Arial\\\",\\\"font-size\\\":c,color:e.fill||s.fill||\\\"black\\\",opacity:1,\\\"background-color\\\":e.background||\\\"transparent\\\",outline:\\\"#ffffff33 1px solid\\\",margin:[-c/8+1,0,0,-1].join(\\\"px \\\")+\\\"px\\\",padding:\\\"0\\\",\\\"box-sizing\\\":\\\"border-box\\\"}).attr({contenteditable:!0}).text(u).call(L(t,i,e)).on(\\\"blur\\\",function(){r._editing=!1,t.text(this.textContent).style({opacity:1});var e,i=n.select(this).attr(\\\"class\\\");(e=i?\\\".\\\"+i.split(\\\" \\\")[0]+\\\"-math-group\\\":\\\"[class*=-math-group]\\\")&&n.select(t.node().parentNode).select(e).style({opacity:0});var o=this.textContent;n.select(this).transition().duration(0).remove(),n.select(document).on(\\\"mouseup\\\",null),a.edit.call(t,o)}).on(\\\"focus\\\",function(){var t=this;r._editing=!0,n.select(document).on(\\\"mouseup\\\",function(){if(n.event.target===t)return!1;document.activeElement===o.node()&&o.node().blur()})}).on(\\\"keyup\\\",function(){27===n.event.which?(r._editing=!1,t.style({opacity:1}),n.select(this).style({opacity:0}).on(\\\"blur\\\",function(){return!1}).transition().remove(),a.cancel.call(t,this.textContent)):(a.input.call(t,this.textContent),n.select(this).call(L(t,i,e)))}).on(\\\"keydown\\\",function(){13===n.event.which&&this.blur()}).call(l)}(),t.style({opacity:0});var i,s=o.attr(\\\"class\\\");(i=s?\\\".\\\"+s.split(\\\" \\\")[0]+\\\"-math-group\\\":\\\"[class*=-math-group]\\\")&&n.select(t.node().parentNode).select(i).style({opacity:0})}function l(t){var e=t.node(),r=document.createRange();r.selectNodeContents(e);var n=window.getSelection();n.removeAllRanges(),n.addRange(r),e.focus()}return e.immediate?s():o.on(\\\"click\\\",s),n.rebind(t,a,\\\"on\\\")}},{\\\"../constants/alignment\\\":668,\\\"../constants/xmlns_namespaces\\\":674,\\\"../lib\\\":696,d3:148}],721:[function(t,e,r){\\\"use strict\\\";var n={};function i(t){t&&null!==t.timer&&(clearTimeout(t.timer),t.timer=null)}r.throttle=function(t,e,r){var a=n[t],o=Date.now();if(!a){for(var s in n)n[s].ts<o-6e4&&delete n[s];a=n[t]={ts:0,timer:null}}function l(){r(),a.ts=Date.now(),a.onDone&&(a.onDone(),a.onDone=null)}i(a),o>a.ts+e?l():a.timer=setTimeout(function(){l(),a.timer=null},e)},r.done=function(t){var e=n[t];return e&&e.timer?new Promise(function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}}):Promise.resolve()},r.clear=function(t){if(t)i(n[t]),delete n[t];else for(var e in n)r.clear(e)}},{}],722:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\");e.exports=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var r=Math.log(Math.min(e[0],e[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),r}},{\\\"fast-isnumeric\\\":214}],723:[function(t,e,r){\\\"use strict\\\";var n=e.exports={},i=t(\\\"../plots/geo/constants\\\").locationmodeToLayer,a=t(\\\"topojson-client\\\").feature;n.getTopojsonName=function(t){return[t.scope.replace(/ /g,\\\"-\\\"),\\\"_\\\",t.resolution.toString(),\\\"m\\\"].join(\\\"\\\")},n.getTopojsonPath=function(t,e){return t+e+\\\".json\\\"},n.getTopojsonFeatures=function(t,e){var r=i[t.locationmode],n=e.objects[r];return a(e,n).features}},{\\\"../plots/geo/constants\\\":773,\\\"topojson-client\\\":517}],724:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"locale\\\",name:\\\"en-US\\\",dictionary:{\\\"Click to enter Colorscale title\\\":\\\"Click to enter Colorscale title\\\"},format:{date:\\\"%m/%d/%Y\\\"}}},{}],725:[function(t,e,r){\\\"use strict\\\";e.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\\\"}}},{}],726:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\");e.exports=function(t){for(var e,r,i=n.layoutArrayContainers,a=n.layoutArrayRegexes,o=t.split(\\\"[\\\")[0],s=0;s<a.length;s++)if((r=t.match(a[s]))&&0===r.index){e=r[0];break}if(e||(e=i[i.indexOf(o)]),!e)return!1;var l=t.substr(e.length);return l?!!(r=l.match(/^\\\\[(0|[1-9][0-9]*)\\\\](\\\\.(.+))?$/))&&{array:e,index:Number(r[1]),property:r[3]||\\\"\\\"}:{array:e,index:\\\"\\\",property:\\\"\\\"}}},{\\\"../registry\\\":827}],727:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=n.extendFlat,a=n.isPlainObject,o={valType:\\\"flaglist\\\",extras:[\\\"none\\\"],flags:[\\\"calc\\\",\\\"clearAxisTypes\\\",\\\"plot\\\",\\\"style\\\",\\\"markerSize\\\",\\\"colorbars\\\"]},s={valType:\\\"flaglist\\\",extras:[\\\"none\\\"],flags:[\\\"calc\\\",\\\"plot\\\",\\\"legend\\\",\\\"ticks\\\",\\\"axrange\\\",\\\"layoutstyle\\\",\\\"modebar\\\",\\\"camera\\\",\\\"arraydraw\\\"]},l=o.flags.slice().concat([\\\"fullReplot\\\"]),c=s.flags.slice().concat(\\\"layoutReplot\\\");function u(t){for(var e={},r=0;r<t.length;r++)e[t[r]]=!1;return e}function f(t,e,r){var n=i({},t);for(var o in n){var s=n[o];a(s)&&(n[o]=h(s,e,r,o))}return\\\"from-root\\\"===r&&(n.editType=e),n}function h(t,e,r,n){if(t.valType){var a=i({},t);if(a.editType=e,Array.isArray(t.items)){a.items=new Array(t.items.length);for(var o=0;o<t.items.length;o++)a.items[o]=h(t.items[o],e,\\\"from-root\\\")}return a}return f(t,e,\\\"_\\\"===n.charAt(0)?\\\"nested\\\":\\\"from-root\\\")}e.exports={traces:o,layout:s,traceFlags:function(){return u(l)},layoutFlags:function(){return u(c)},update:function(t,e){var r=e.editType;if(r&&\\\"none\\\"!==r)for(var n=r.split(\\\"+\\\"),i=0;i<n.length;i++)t[n[i]]=!0},overrideAll:f}},{\\\"../lib\\\":696}],728:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"gl-mat4/fromQuat\\\"),a=t(\\\"../registry\\\"),o=t(\\\"../lib\\\"),s=t(\\\"../plots/plots\\\"),l=t(\\\"../plots/cartesian/axis_ids\\\"),c=l.cleanId,u=l.getFromTrace,f=t(\\\"../components/color\\\");function h(t,e){var r=t[e],n=e.charAt(0);r&&\\\"paper\\\"!==r&&(t[e]=c(r,n))}function p(t){if(!o.isPlainObject(t))return!1;var e=t.name;return delete t.name,delete t.showlegend,(\\\"string\\\"==typeof e||\\\"number\\\"==typeof e)&&String(e)}function d(t,e,r,n){if(r&&!n)return t;if(n&&!r)return e;if(!t.trim())return e;if(!e.trim())return t;var i,a=Math.min(t.length,e.length);for(i=0;i<a&&t.charAt(i)===e.charAt(i);i++);return t.substr(0,i).trim()}function g(t){var e=\\\"middle\\\",r=\\\"center\\\";return-1!==t.indexOf(\\\"top\\\")?e=\\\"top\\\":-1!==t.indexOf(\\\"bottom\\\")&&(e=\\\"bottom\\\"),-1!==t.indexOf(\\\"left\\\")?r=\\\"left\\\":-1!==t.indexOf(\\\"right\\\")&&(r=\\\"right\\\"),e+\\\" \\\"+r}function v(t,e){return e in t&&\\\"object\\\"==typeof t[e]&&0===Object.keys(t[e]).length}r.clearPromiseQueue=function(t){Array.isArray(t._promises)&&t._promises.length>0&&o.log(\\\"Clearing previous rejected promises from queue.\\\"),t._promises=[]},r.cleanLayout=function(t){var e,r;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var n=(s.subplotsRegistry.cartesian||{}).attrRegex,a=(s.subplotsRegistry.gl3d||{}).attrRegex,l=Object.keys(t);for(e=0;e<l.length;e++){var u=l[e];if(n&&n.test(u)){var p=t[u];p.anchor&&\\\"free\\\"!==p.anchor&&(p.anchor=c(p.anchor)),p.overlaying&&(p.overlaying=c(p.overlaying)),p.type||(p.isdate?p.type=\\\"date\\\":p.islog?p.type=\\\"log\\\":!1===p.isdate&&!1===p.islog&&(p.type=\\\"linear\\\")),\\\"withzero\\\"!==p.autorange&&\\\"tozero\\\"!==p.autorange||(p.autorange=!0,p.rangemode=\\\"tozero\\\"),delete p.islog,delete p.isdate,delete p.categories,v(p,\\\"domain\\\")&&delete p.domain,void 0!==p.autotick&&(void 0===p.tickmode&&(p.tickmode=p.autotick?\\\"auto\\\":\\\"linear\\\"),delete p.autotick)}else if(a&&a.test(u)){var d=t[u],g=d.cameraposition;if(Array.isArray(g)&&4===g[0].length){var m=g[0],y=g[1],x=g[2],b=i([],m),_=[];for(r=0;r<3;++r)_[r]=y[r]+x*b[2+4*r];d.camera={eye:{x:_[0],y:_[1],z:_[2]},center:{x:y[0],y:y[1],z:y[2]},up:{x:b[1],y:b[5],z:b[9]}},delete d.cameraposition}}}var w=Array.isArray(t.annotations)?t.annotations.length:0;for(e=0;e<w;e++){var k=t.annotations[e];o.isPlainObject(k)&&(k.ref&&(\\\"paper\\\"===k.ref?(k.xref=\\\"paper\\\",k.yref=\\\"paper\\\"):\\\"data\\\"===k.ref&&(k.xref=\\\"x\\\",k.yref=\\\"y\\\"),delete k.ref),h(k,\\\"xref\\\"),h(k,\\\"yref\\\"))}var M=Array.isArray(t.shapes)?t.shapes.length:0;for(e=0;e<M;e++){var A=t.shapes[e];o.isPlainObject(A)&&(h(A,\\\"xref\\\"),h(A,\\\"yref\\\"))}var T=t.legend;return T&&(T.x>3?(T.x=1.02,T.xanchor=\\\"left\\\"):T.x<-2&&(T.x=-.02,T.xanchor=\\\"right\\\"),T.y>3?(T.y=1.02,T.yanchor=\\\"bottom\\\"):T.y<-2&&(T.y=-.02,T.yanchor=\\\"top\\\")),\\\"rotate\\\"===t.dragmode&&(t.dragmode=\\\"orbit\\\"),f.clean(t),t},r.cleanData=function(t){for(var e=0;e<t.length;e++){var n,i=t[e];if(\\\"histogramy\\\"===i.type&&\\\"xbins\\\"in i&&!(\\\"ybins\\\"in i)&&(i.ybins=i.xbins,delete i.xbins),i.error_y&&\\\"opacity\\\"in i.error_y){var l=f.defaults,u=i.error_y.color||(a.traceIs(i,\\\"bar\\\")?f.defaultLine:l[e%l.length]);i.error_y.color=f.addOpacity(f.rgb(u),f.opacity(u)*i.error_y.opacity),delete i.error_y.opacity}if(\\\"bardir\\\"in i&&(\\\"h\\\"!==i.bardir||!a.traceIs(i,\\\"bar\\\")&&\\\"histogram\\\"!==i.type.substr(0,9)||(i.orientation=\\\"h\\\",r.swapXYData(i)),delete i.bardir),\\\"histogramy\\\"===i.type&&r.swapXYData(i),\\\"histogramx\\\"!==i.type&&\\\"histogramy\\\"!==i.type||(i.type=\\\"histogram\\\"),\\\"scl\\\"in i&&(i.colorscale=i.scl,delete i.scl),\\\"reversescl\\\"in i&&(i.reversescale=i.reversescl,delete i.reversescl),i.xaxis&&(i.xaxis=c(i.xaxis,\\\"x\\\")),i.yaxis&&(i.yaxis=c(i.yaxis,\\\"y\\\")),a.traceIs(i,\\\"gl3d\\\")&&i.scene&&(i.scene=s.subplotsRegistry.gl3d.cleanId(i.scene)),!a.traceIs(i,\\\"pie\\\")&&!a.traceIs(i,\\\"bar\\\"))if(Array.isArray(i.textposition))for(n=0;n<i.textposition.length;n++)i.textposition[n]=g(i.textposition[n]);else i.textposition&&(i.textposition=g(i.textposition));var h=a.getModule(i);if(h&&h.colorbar){var m=h.colorbar.container,y=m?i[m]:i;y&&y.colorscale&&(\\\"YIGnBu\\\"===y.colorscale&&(y.colorscale=\\\"YlGnBu\\\"),\\\"YIOrRd\\\"===y.colorscale&&(y.colorscale=\\\"YlOrRd\\\"))}if(\\\"surface\\\"===i.type&&o.isPlainObject(i.contours)){var x=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];for(n=0;n<x.length;n++){var b=i.contours[x[n]];o.isPlainObject(b)&&(b.highlightColor&&(b.highlightcolor=b.highlightColor,delete b.highlightColor),b.highlightWidth&&(b.highlightwidth=b.highlightWidth,delete b.highlightWidth))}}if(\\\"candlestick\\\"===i.type||\\\"ohlc\\\"===i.type){var _=!1!==(i.increasing||{}).showlegend,w=!1!==(i.decreasing||{}).showlegend,k=p(i.increasing),M=p(i.decreasing);if(!1!==k&&!1!==M){var A=d(k,M,_,w);A&&(i.name=A)}else!k&&!M||i.name||(i.name=k||M)}if(Array.isArray(i.transforms)){var T=i.transforms;for(n=0;n<T.length;n++){var S=T[n];if(o.isPlainObject(S))switch(S.type){case\\\"filter\\\":S.filtersrc&&(S.target=S.filtersrc,delete S.filtersrc),S.calendar&&(S.valuecalendar||(S.valuecalendar=S.calendar),delete S.calendar);break;case\\\"groupby\\\":if(S.styles=S.styles||S.style,S.styles&&!Array.isArray(S.styles)){var E=S.styles,C=Object.keys(E);S.styles=[];for(var L=0;L<C.length;L++)S.styles.push({target:C[L],value:E[C[L]]})}}}}v(i,\\\"line\\\")&&delete i.line,\\\"marker\\\"in i&&(v(i.marker,\\\"line\\\")&&delete i.marker.line,v(i,\\\"marker\\\")&&delete i.marker),f.clean(i),i.autobinx&&(delete i.autobinx,delete i.xbins),i.autobiny&&(delete i.autobiny,delete i.ybins)}},r.swapXYData=function(t){var e;if(o.swapAttrs(t,[\\\"?\\\",\\\"?0\\\",\\\"d?\\\",\\\"?bins\\\",\\\"nbins?\\\",\\\"autobin?\\\",\\\"?src\\\",\\\"error_?\\\"]),Array.isArray(t.z)&&Array.isArray(t.z[0])&&(t.transpose?delete t.transpose:t.transpose=!0),t.error_x&&t.error_y){var r=t.error_y,n=\\\"copy_ystyle\\\"in r?r.copy_ystyle:!(r.color||r.thickness||r.width);o.swapAttrs(t,[\\\"error_?.copy_ystyle\\\"]),n&&o.swapAttrs(t,[\\\"error_?.color\\\",\\\"error_?.thickness\\\",\\\"error_?.width\\\"])}if(\\\"string\\\"==typeof t.hoverinfo){var i=t.hoverinfo.split(\\\"+\\\");for(e=0;e<i.length;e++)\\\"x\\\"===i[e]?i[e]=\\\"y\\\":\\\"y\\\"===i[e]&&(i[e]=\\\"x\\\");t.hoverinfo=i.join(\\\"+\\\")}},r.coerceTraceIndices=function(t,e){if(n(e))return[e];if(!Array.isArray(e)||!e.length)return t.data.map(function(t,e){return e});if(Array.isArray(e)){for(var r=[],i=0;i<e.length;i++)o.isIndex(e[i],t.data.length)?r.push(e[i]):o.warn(\\\"trace index (\\\",e[i],\\\") is not a number or is out of bounds\\\");return r}return e},r.manageArrayContainers=function(t,e,r){var i=t.obj,a=t.parts,s=a.length,l=a[s-1],c=n(l);if(c&&null===e){var u=a.slice(0,s-1).join(\\\".\\\");o.nestedProperty(i,u).get().splice(l,1)}else c&&void 0===t.get()?(void 0===t.get()&&(r[t.astr]=null),t.set(e)):t.set(e)};var m=/(\\\\.[^\\\\[\\\\]\\\\.]+|\\\\[[^\\\\[\\\\]\\\\.]+\\\\])$/;function y(t){var e=t.search(m);if(e>0)return t.substr(0,e)}r.hasParent=function(t,e){for(var r=y(e);r;){if(r in t)return!0;r=y(r)}return!1};var x=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];r.clearAxisTypes=function(t,e,r){for(var n=0;n<e.length;n++)for(var i=t._fullData[n],a=0;a<3;a++){var s=u(t,i,x[a]);if(s&&\\\"log\\\"!==s.type){var l=s._name,c=s._id.substr(1);if(\\\"scene\\\"===c.substr(0,5)){if(void 0!==r[c])continue;l=c+\\\".\\\"+l}var f=l+\\\".type\\\";void 0===r[l]&&void 0===r[f]&&o.nestedProperty(t.layout,f).set(null)}}}},{\\\"../components/color\\\":570,\\\"../lib\\\":696,\\\"../plots/cartesian/axis_ids\\\":747,\\\"../plots/plots\\\":808,\\\"../registry\\\":827,\\\"fast-isnumeric\\\":214,\\\"gl-mat4/fromQuat\\\":251}],729:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./plot_api\\\");r.plot=n.plot,r.newPlot=n.newPlot,r.restyle=n.restyle,r.relayout=n.relayout,r.redraw=n.redraw,r.update=n.update,r.react=n.react,r.extendTraces=n.extendTraces,r.prependTraces=n.prependTraces,r.addTraces=n.addTraces,r.deleteTraces=n.deleteTraces,r.moveTraces=n.moveTraces,r.purge=n.purge,r.addFrames=n.addFrames,r.deleteFrames=n.deleteFrames,r.animate=n.animate,r.setPlotConfig=n.setPlotConfig,r.toImage=t(\\\"./to_image\\\"),r.validate=t(\\\"./validate\\\"),r.downloadImage=t(\\\"../snapshot/download\\\");var i=t(\\\"./template_api\\\");r.makeTemplate=i.makeTemplate,r.validateTemplate=i.validateTemplate},{\\\"../snapshot/download\\\":829,\\\"./plot_api\\\":731,\\\"./template_api\\\":736,\\\"./to_image\\\":737,\\\"./validate\\\":738}],730:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib/nested_property\\\"),i=t(\\\"../lib/is_plain_object\\\"),a=t(\\\"../lib/noop\\\"),o=t(\\\"../lib/loggers\\\"),s=t(\\\"../lib/search\\\").sorterAsc,l=t(\\\"../registry\\\");r.containerArrayMatch=t(\\\"./container_array_match\\\");var c=r.isAddVal=function(t){return\\\"add\\\"===t||i(t)},u=r.isRemoveVal=function(t){return null===t||\\\"remove\\\"===t};r.applyContainerArrayChanges=function(t,e,r,i){var f=e.astr,h=l.getComponentMethod(f,\\\"supplyLayoutDefaults\\\"),p=l.getComponentMethod(f,\\\"draw\\\"),d=l.getComponentMethod(f,\\\"drawOne\\\"),g=i.replot||i.recalc||h===a||p===a,v=t.layout,m=t._fullLayout;if(r[\\\"\\\"]){Object.keys(r).length>1&&o.warn(\\\"Full array edits are incompatible with other edits\\\",f);var y=r[\\\"\\\"][\\\"\\\"];if(u(y))e.set(null);else{if(!Array.isArray(y))return o.warn(\\\"Unrecognized full array edit value\\\",f,y),!0;e.set(y)}return!g&&(h(v,m),p(t),!0)}var x,b,_,w,k,M,A,T=Object.keys(r).map(Number).sort(s),S=e.get(),E=S||[],C=n(m,f).get(),L=[],z=-1,O=E.length;for(x=0;x<T.length;x++)if(w=r[_=T[x]],k=Object.keys(w),M=w[\\\"\\\"],A=c(M),_<0||_>E.length-(A?0:1))o.warn(\\\"index out of range\\\",f,_);else if(void 0!==M)k.length>1&&o.warn(\\\"Insertion & removal are incompatible with edits to the same index.\\\",f,_),u(M)?L.push(_):A?(\\\"add\\\"===M&&(M={}),E.splice(_,0,M),C&&C.splice(_,0,{})):o.warn(\\\"Unrecognized full object edit value\\\",f,_,M),-1===z&&(z=_);else for(b=0;b<k.length;b++)n(E[_],k[b]).set(w[k[b]]);for(x=L.length-1;x>=0;x--)E.splice(L[x],1),C&&C.splice(L[x],1);if(E.length?S||e.set(E):e.set(null),g)return!1;if(h(v,m),d!==a){var I;if(-1===z)I=T;else{for(O=Math.max(E.length,O),I=[],x=0;x<T.length&&!((_=T[x])>=z);x++)I.push(_);for(x=z;x<O;x++)I.push(x)}for(x=0;x<I.length;x++)d(t,I[x])}else p(t);return!0}},{\\\"../lib/is_plain_object\\\":697,\\\"../lib/loggers\\\":700,\\\"../lib/nested_property\\\":704,\\\"../lib/noop\\\":705,\\\"../lib/search\\\":715,\\\"../registry\\\":827,\\\"./container_array_match\\\":726}],731:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"has-hover\\\"),o=t(\\\"../lib\\\"),s=t(\\\"../lib/events\\\"),l=t(\\\"../lib/queue\\\"),c=t(\\\"../registry\\\"),u=t(\\\"./plot_schema\\\"),f=t(\\\"../plots/plots\\\"),h=t(\\\"../plots/polar/legacy\\\"),p=t(\\\"../plots/cartesian/axes\\\"),d=t(\\\"../components/drawing\\\"),g=t(\\\"../components/color\\\"),v=t(\\\"../components/colorbar/connect\\\"),m=t(\\\"../plots/cartesian/graph_interact\\\").initInteractions,y=t(\\\"../constants/xmlns_namespaces\\\"),x=t(\\\"../lib/svg_text_utils\\\"),b=t(\\\"./plot_config\\\"),_=t(\\\"./manage_arrays\\\"),w=t(\\\"./helpers\\\"),k=t(\\\"./subroutines\\\"),M=t(\\\"./edit_types\\\"),A=t(\\\"../plots/cartesian/constants\\\").AX_NAME_PATTERN,T=0;function S(t){var e=t._fullLayout;e._redrawFromAutoMarginCount?e._redrawFromAutoMarginCount--:t.emit(\\\"plotly_afterplot\\\")}function E(t,e){try{t._fullLayout._paper.style(\\\"background\\\",e)}catch(t){o.error(t)}}function C(t,e){E(t,g.combine(e,\\\"white\\\"))}function L(t,e){t._context||(t._context=o.extendDeep({},b));var r,n,i,s=t._context;if(e){for(n=Object.keys(e),r=0;r<n.length;r++)\\\"editable\\\"!==(i=n[r])&&\\\"edits\\\"!==i&&i in s&&(\\\"setBackground\\\"===i&&\\\"opaque\\\"===e[i]?s[i]=C:s[i]=e[i]);e.plot3dPixelRatio&&!s.plotGlPixelRatio&&(s.plotGlPixelRatio=s.plot3dPixelRatio);var l=e.editable;if(void 0!==l)for(s.editable=l,n=Object.keys(s.edits),r=0;r<n.length;r++)s.edits[n[r]]=l;if(e.edits)for(n=Object.keys(e.edits),r=0;r<n.length;r++)(i=n[r])in s.edits&&(s.edits[i]=e.edits[i])}s.staticPlot&&(s.editable=!1,s.edits={},s.autosizable=!1,s.scrollZoom=!1,s.doubleClick=!1,s.showTips=!1,s.showLink=!1,s.displayModeBar=!1),\\\"hover\\\"!==s.displayModeBar||a||(s.displayModeBar=!0),\\\"transparent\\\"!==s.setBackground&&\\\"function\\\"==typeof s.setBackground||(s.setBackground=E),s._hasZeroHeight=s._hasZeroHeight||0===t.clientHeight,s._hasZeroWidth=s._hasZeroWidth||0===t.clientWidth}function z(t,e){var r,n,i=e+1,a=[];for(r=0;r<t.length;r++)(n=t[r])<0?a.push(i+n):a.push(n);return a}function O(t,e,r){var n,i;for(n=0;n<e.length;n++){if((i=e[n])!==parseInt(i,10))throw new Error(\\\"all values in \\\"+r+\\\" must be integers\\\");if(i>=t.data.length||i<-t.data.length)throw new Error(r+\\\" must be valid indices for gd.data.\\\");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error(\\\"each index in \\\"+r+\\\" must be unique.\\\")}}function I(t,e,r){if(!Array.isArray(t.data))throw new Error(\\\"gd.data must be an array.\\\");if(\\\"undefined\\\"==typeof e)throw new Error(\\\"currentIndices is a required argument.\\\");if(Array.isArray(e)||(e=[e]),O(t,e,\\\"currentIndices\\\"),\\\"undefined\\\"==typeof r||Array.isArray(r)||(r=[r]),\\\"undefined\\\"!=typeof r&&O(t,r,\\\"newIndices\\\"),\\\"undefined\\\"!=typeof r&&e.length!==r.length)throw new Error(\\\"current and new indices must be of equal length.\\\")}function P(t,e,r,n,a){!function(t,e,r,n){var i=o.isPlainObject(n);if(!Array.isArray(t.data))throw new Error(\\\"gd.data must be an array\\\");if(!o.isPlainObject(e))throw new Error(\\\"update must be a key:value object\\\");if(\\\"undefined\\\"==typeof r)throw new Error(\\\"indices must be an integer or array of integers\\\");for(var a in O(t,r,\\\"indices\\\"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error(\\\"attribute \\\"+a+\\\" must be an array of length equal to indices array length\\\");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].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\\\")}}(t,e,r,n);for(var s=function(t,e,r,n){var a,s,l,c,u,f=o.isPlainObject(n),h=[];for(var p in Array.isArray(r)||(r=[r]),r=z(r,t.data.length-1),e)for(var d=0;d<r.length;d++){if(a=t.data[r[d]],s=(l=o.nestedProperty(a,p)).get(),c=e[p][d],!o.isArrayOrTypedArray(c))throw new Error(\\\"attribute: \\\"+p+\\\" index: \\\"+d+\\\" must be an array\\\");if(!o.isArrayOrTypedArray(s))throw new Error(\\\"cannot extend missing or non-array attribute: \\\"+p);if(s.constructor!==c.constructor)throw new Error(\\\"cannot extend array with an array of a different type: \\\"+p);u=f?n[p][d]:n,i(u)||(u=-1),h.push({prop:l,target:s,insert:c,maxp:Math.floor(u)})}return h}(t,e,r,n),l={},c={},u=0;u<s.length;u++){var f=s[u].prop,h=s[u].maxp,p=a(s[u].target,s[u].insert,h);f.set(p[0]),Array.isArray(l[f.astr])||(l[f.astr]=[]),l[f.astr].push(p[1]),Array.isArray(c[f.astr])||(c[f.astr]=[]),c[f.astr].push(s[u].target.length)}return{update:l,maxPoints:c}}function D(t,e){var r=new t.constructor(t.length+e.length);return r.set(t),r.set(e,t.length),r}function R(t){return void 0===t?null:t}function B(t,e,r){var n,i,a=t._fullLayout,s=t._fullData,l=t.data,h=M.traceFlags(),d={},g={};function v(){return r.map(function(){})}function m(t){var e=p.id2name(t);-1===i.indexOf(e)&&i.push(e)}function y(t){return\\\"LAYOUT\\\"+t+\\\".autorange\\\"}function x(t){return\\\"LAYOUT\\\"+t+\\\".range\\\"}function b(n,i,a){var s;Array.isArray(n)?n.forEach(function(t){b(t,i,a)}):n in e||w.hasParent(e,n)||(s=\\\"LAYOUT\\\"===n.substr(0,6)?o.nestedProperty(t.layout,n.replace(\\\"LAYOUT\\\",\\\"\\\")):o.nestedProperty(l[r[a]],n),n in g||(g[n]=v()),void 0===g[n][a]&&(g[n][a]=R(s.get())),void 0!==i&&s.set(i))}function _(t){return function(e){return s[e][t]}}function k(t){return function(e,n){return!1===e?s[r[n]][t]:null}}for(var A in e){if(w.hasParent(e,A))throw new Error(\\\"cannot set \\\"+A+\\\"and a parent attribute simultaneously\\\");var T,S,E,C,L,z,O=e[A];if(\\\"autobinx\\\"!==A&&\\\"autobiny\\\"!==A||(A=A.charAt(A.length-1)+\\\"bins\\\",O=Array.isArray(O)?O.map(k(A)):!1===O?r.map(_(A)):null),d[A]=O,\\\"LAYOUT\\\"!==A.substr(0,6)){for(g[A]=v(),n=0;n<r.length;n++)if(T=l[r[n]],S=s[r[n]],C=(E=o.nestedProperty(T,A)).get(),void 0!==(L=Array.isArray(O)?O[n%O.length]:O)){var I=E.parts[E.parts.length-1],P=A.substr(0,A.length-I.length-1),D=P?P+\\\".\\\":\\\"\\\",B=P?o.nestedProperty(S,P).get():S;if((z=u.getTraceValObject(S,E.parts))&&z.impliedEdits&&null!==L)for(var F in z.impliedEdits)b(o.relativeAttr(A,F),z.impliedEdits[F],n);else if(\\\"thicknessmode\\\"!==I&&\\\"lenmode\\\"!==I||C===L||\\\"fraction\\\"!==L&&\\\"pixels\\\"!==L||!B){if(\\\"type\\\"===A&&\\\"pie\\\"===L!=(\\\"pie\\\"===C)){var N=\\\"x\\\",j=\\\"y\\\";\\\"bar\\\"!==L&&\\\"bar\\\"!==C||\\\"h\\\"!==T.orientation||(N=\\\"y\\\",j=\\\"x\\\"),o.swapAttrs(T,[\\\"?\\\",\\\"?src\\\"],\\\"labels\\\",N),o.swapAttrs(T,[\\\"d?\\\",\\\"?0\\\"],\\\"label\\\",N),o.swapAttrs(T,[\\\"?\\\",\\\"?src\\\"],\\\"values\\\",j),\\\"pie\\\"===C?(o.nestedProperty(T,\\\"marker.color\\\").set(o.nestedProperty(T,\\\"marker.colors\\\").get()),a._pielayer.selectAll(\\\"g.trace\\\").remove()):c.traceIs(T,\\\"cartesian\\\")&&o.nestedProperty(T,\\\"marker.colors\\\").set(o.nestedProperty(T,\\\"marker.color\\\").get())}}else{var V=a._size,U=B.orient,q=\\\"top\\\"===U||\\\"bottom\\\"===U;if(\\\"thicknessmode\\\"===I){var H=q?V.h:V.w;b(D+\\\"thickness\\\",B.thickness*(\\\"fraction\\\"===L?1/H:H),n)}else{var G=q?V.w:V.h;b(D+\\\"len\\\",B.len*(\\\"fraction\\\"===L?1/G:G),n)}}g[A][n]=R(C);if(-1!==[\\\"swapxy\\\",\\\"swapxyaxes\\\",\\\"orientation\\\",\\\"orientationaxes\\\"].indexOf(A)){if(\\\"orientation\\\"===A){E.set(L);var W=T.x&&!T.y?\\\"h\\\":\\\"v\\\";if((E.get()||W)===S.orientation)continue}else\\\"orientationaxes\\\"===A&&(T.orientation={v:\\\"h\\\",h:\\\"v\\\"}[S.orientation]);w.swapXYData(T),h.calc=h.clearAxisTypes=!0}else-1!==f.dataArrayContainers.indexOf(E.parts[0])?(w.manageArrayContainers(E,L,g),h.calc=!0):(z?z.arrayOk&&!c.traceIs(S,\\\"regl\\\")&&(o.isArrayOrTypedArray(L)||o.isArrayOrTypedArray(C))?h.calc=!0:M.update(h,z):h.calc=!0,E.set(L))}if(-1!==[\\\"swapxyaxes\\\",\\\"orientationaxes\\\"].indexOf(A)&&p.swap(t,r),\\\"orientationaxes\\\"===A){var Y=o.nestedProperty(t.layout,\\\"hovermode\\\");\\\"x\\\"===Y.get()?Y.set(\\\"y\\\"):\\\"y\\\"===Y.get()&&Y.set(\\\"x\\\")}if(-1!==[\\\"orientation\\\",\\\"type\\\"].indexOf(A)){for(i=[],n=0;n<r.length;n++){var X=l[r[n]];c.traceIs(X,\\\"cartesian\\\")&&(m(X.xaxis||\\\"x\\\"),m(X.yaxis||\\\"y\\\"))}b(i.map(y),!0,0),b(i.map(x),[0,1],0)}}else E=o.nestedProperty(t.layout,A.replace(\\\"LAYOUT\\\",\\\"\\\")),g[A]=[R(E.get())],E.set(Array.isArray(O)?O[0]:O),h.calc=!0}return(h.calc||h.plot)&&(h.fullReplot=!0),{flags:h,undoit:g,redoit:d,traces:r,eventData:o.extendDeepNoArrays([],[d,r])}}function F(t,e,r){var n;if(!e.axrange)return!1;for(n in e)if(\\\"axrange\\\"!==n&&e[n])return!1;for(n in r.rangesAltered){var i=p.id2name(n),a=t.layout[i],o=t._fullLayout[i];o.autorange=a.autorange,o.range=a.range.slice(),o.cleanRange()}return!0}function N(t,e){var r=e?function(t){return p.doTicks(t,Object.keys(e),!0)}:function(t){return p.doTicks(t,\\\"redraw\\\")};t.push(k.doAutoRangeAndConstraints,r,k.drawData,k.finalDraw)}r.plot=function(t,e,i,a){var l;if(t=o.getGraphDiv(t),s.init(t),o.isPlainObject(e)){var u=e;e=u.data,i=u.layout,a=u.config,l=u.frames}if(!1===s.triggerHandler(t,\\\"plotly_beforeplot\\\",[e,i,a]))return Promise.reject();e||i||o.isPlotDiv(t)||o.warn(\\\"Calling Plotly.plot as if redrawing but this container doesn't yet have a plot.\\\",t),L(t,a),i||(i={}),n.select(t).classed(\\\"js-plotly-plot\\\",!0),d.makeTester(),delete d.baseUrl,Array.isArray(t._promises)||(t._promises=[]);var g=0===(t.data||[]).length&&Array.isArray(e);if(Array.isArray(e)&&(w.cleanData(e),g?t.data=e:t.data.push.apply(t.data,e),t.empty=!1),t.layout&&!g||(t.layout=w.cleanLayout(i)),t._dragging&&!t._transitioning)return t._replotPending=!0,Promise.reject();t._replotPending=!1,f.supplyDefaults(t);var y=t._fullLayout,b=y._has(\\\"cartesian\\\");if(!y._has(\\\"polar\\\")&&e&&e[0]&&e[0].r)return o.log(\\\"Legacy polar charts are deprecated!\\\"),function(t,e,r){var i=n.select(t).selectAll(\\\".plot-container\\\").data([0]);i.enter().insert(\\\"div\\\",\\\":first-child\\\").classed(\\\"plot-container plotly\\\",!0);var a=i.selectAll(\\\".svg-container\\\").data([0]);a.enter().append(\\\"div\\\").classed(\\\"svg-container\\\",!0).style(\\\"position\\\",\\\"relative\\\"),a.html(\\\"\\\"),e&&(t.data=e);r&&(t.layout=r);h.manager.fillLayout(t),a.style({width:t._fullLayout.width+\\\"px\\\",height:t._fullLayout.height+\\\"px\\\"}),t.framework=h.manager.framework(t),t.framework({data:t.data,layout:t.layout},a.node()),t.framework.setUndoPoint();var s=t.framework.svg(),l=1,c=t._fullLayout.title;\\\"\\\"!==c&&c||(l=0);var u=function(){this.call(x.convertToTspans,t)},p=s.select(\\\".title-group text\\\").call(u);if(t._context.edits.titleText){var d=o._(t,\\\"Click to enter Plot title\\\");c&&c!==d||(l=.2,p.attr({\\\"data-unformatted\\\":d}).text(d).style({opacity:l}).on(\\\"mouseover.opacity\\\",function(){n.select(this).transition().duration(100).style(\\\"opacity\\\",1)}).on(\\\"mouseout.opacity\\\",function(){n.select(this).transition().duration(1e3).style(\\\"opacity\\\",0)}));var g=function(){this.call(x.makeEditable,{gd:t}).on(\\\"edit\\\",function(e){t.framework({layout:{title:e}}),this.text(e).call(u),this.call(g)}).on(\\\"cancel\\\",function(){var t=this.attr(\\\"data-unformatted\\\");this.text(t).call(u)})};p.call(g)}return t._context.setBackground(t,t._fullLayout.paper_bgcolor),f.addLinks(t),Promise.resolve()}(t,e,i);y._replotting=!0,g&&W(t),t.framework!==W&&(t.framework=W,W(t)),d.initGradients(t),g&&p.saveShowSpikeInitial(t);var _=!t.calcdata||t.calcdata.length!==(t._fullData||[]).length;_&&f.doCalcdata(t);for(var M=0;M<t.calcdata.length;M++)t.calcdata[M][0].trace=t._fullData[M];t._context.responsive?t._responsiveChartHandler||(t._responsiveChartHandler=function(){f.resize(t)},window.addEventListener(\\\"resize\\\",t._responsiveChartHandler)):o.clearResponsive(t);var A=JSON.stringify(y._size),T=0;function E(){var e,r,n,i=t.calcdata;for(f.clearAutoMarginIds(t),k.drawMarginPushers(t),p.allowAutoMargin(t),e=0;e<i.length;e++){var a=(n=(r=i[e])[0].trace)._module.colorbar;!0===n.visible&&a?v(t,r,a):f.autoMargin(t,\\\"cb\\\"+n.uid)}return f.doAutoMargin(t),f.previousPromises(t)}function C(){t._transitioning||(k.doAutoRangeAndConstraints(t),g&&p.saveRangeInitial(t))}var z=[f.previousPromises,function(){if(l)return r.addFrames(t,l)},function e(){for(var r=y._basePlotModules,n=0;n<r.length;n++)r[n].drawFramework&&r[n].drawFramework(t);if(!y._glcanvas&&y._has(\\\"gl\\\")&&(y._glcanvas=y._glcontainer.selectAll(\\\".gl-canvas\\\").data([{key:\\\"contextLayer\\\",context:!0,pick:!1},{key:\\\"focusLayer\\\",context:!1,pick:!1},{key:\\\"pickLayer\\\",context:!1,pick:!0}],function(t){return t.key}),y._glcanvas.enter().append(\\\"canvas\\\").attr(\\\"class\\\",function(t){return\\\"gl-canvas gl-canvas-\\\"+t.key.replace(\\\"Layer\\\",\\\"\\\")}).style({position:\\\"absolute\\\",top:0,left:0,width:\\\"100%\\\",height:\\\"100%\\\",overflow:\\\"visible\\\",\\\"pointer-events\\\":\\\"none\\\"})),y._glcanvas){y._glcanvas.attr(\\\"width\\\",y.width).attr(\\\"height\\\",y.height);var i=y._glcanvas.data()[0].regl;if(i&&(Math.floor(y.width)!==i._gl.drawingBufferWidth||Math.floor(y.height)!==i._gl.drawingBufferHeight)){var a=\\\"WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.\\\";if(!T)return o.log(a+\\\" Clearing graph and plotting again.\\\"),f.cleanPlot([],{},t._fullData,y),f.supplyDefaults(t),y=t._fullLayout,f.doCalcdata(t),T++,e();o.error(a)}}return f.previousPromises(t)},E,function(){if(JSON.stringify(y._size)!==A)return o.syncOrAsync([E,k.layoutStyles],t)}];b&&z.push(function(){if(_)return o.syncOrAsync([c.getComponentMethod(\\\"shapes\\\",\\\"calcAutorange\\\"),c.getComponentMethod(\\\"annotations\\\",\\\"calcAutorange\\\"),C,c.getComponentMethod(\\\"rangeslider\\\",\\\"calcAutorange\\\")],t);C()}),z.push(k.layoutStyles),b&&z.push(function(){return p.doTicks(t,g?\\\"\\\":\\\"redraw\\\")}),z.push(k.drawData,k.finalDraw,m,f.addLinks,f.rehover,f.doAutoMargin,f.previousPromises);var O=o.syncOrAsync(z,t);return O&&O.then||(O=Promise.resolve()),O.then(function(){return S(t),t})},r.setPlotConfig=function(t){return o.extendFlat(b,t)},r.redraw=function(t){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error(\\\"This element is not a Plotly plot: \\\"+t);return w.cleanData(t.data),w.cleanLayout(t.layout),t.calcdata=void 0,r.plot(t).then(function(){return t.emit(\\\"plotly_redraw\\\"),t})},r.newPlot=function(t,e,n,i){return t=o.getGraphDiv(t),f.cleanPlot([],{},t._fullData||[],t._fullLayout||{}),f.purge(t),r.plot(t,e,n,i)},r.extendTraces=function t(e,n,i,a){var s=P(e=o.getGraphDiv(e),n,i,a,function(t,e,r){var n,i;if(o.isTypedArray(t))if(r<0){var a=new t.constructor(0),s=D(t,e);r<0?(n=s,i=a):(n=a,i=s)}else if(n=new t.constructor(r),i=new t.constructor(t.length+e.length-r),r===e.length)n.set(e),i.set(t);else if(r<e.length){var l=e.length-r;n.set(e.subarray(l)),i.set(t),i.set(e.subarray(0,l),t.length)}else{var c=r-e.length,u=t.length-c;n.set(t.subarray(u)),n.set(e,c),i.set(t.subarray(0,u))}else n=t.concat(e),i=r>=0&&r<n.length?n.splice(0,n.length-r):[];return[n,i]}),c=r.redraw(e),u=[e,s.update,i,s.maxPoints];return l.add(e,r.prependTraces,u,t,arguments),c},r.prependTraces=function t(e,n,i,a){var s=P(e=o.getGraphDiv(e),n,i,a,function(t,e,r){var n,i;if(o.isTypedArray(t))if(r<=0){var a=new t.constructor(0),s=D(e,t);r<0?(n=s,i=a):(n=a,i=s)}else if(n=new t.constructor(r),i=new t.constructor(t.length+e.length-r),r===e.length)n.set(e),i.set(t);else if(r<e.length){var l=e.length-r;n.set(e.subarray(0,l)),i.set(e.subarray(l)),i.set(t,l)}else{var c=r-e.length;n.set(e),n.set(t.subarray(0,c),e.length),i.set(t.subarray(c))}else n=e.concat(t),i=r>=0&&r<n.length?n.splice(r,n.length):[];return[n,i]}),c=r.redraw(e),u=[e,s.update,i,s.maxPoints];return l.add(e,r.extendTraces,u,t,arguments),c},r.addTraces=function t(e,n,i){e=o.getGraphDiv(e);var a,s,c=[],u=r.deleteTraces,f=t,h=[e,c],p=[e,n];for(function(t,e,r){var n,i;if(!Array.isArray(t.data))throw new Error(\\\"gd.data must be an array.\\\");if(\\\"undefined\\\"==typeof e)throw new Error(\\\"traces must be defined.\\\");for(Array.isArray(e)||(e=[e]),n=0;n<e.length;n++)if(\\\"object\\\"!=typeof(i=e[n])||Array.isArray(i)||null===i)throw new Error(\\\"all values in traces array must be non-array objects\\\");if(\\\"undefined\\\"==typeof r||Array.isArray(r)||(r=[r]),\\\"undefined\\\"!=typeof r&&r.length!==e.length)throw new Error(\\\"if indices is specified, traces.length must equal indices.length\\\")}(e,n,i),Array.isArray(n)||(n=[n]),n=n.map(function(t){return o.extendFlat({},t)}),w.cleanData(n),a=0;a<n.length;a++)e.data.push(n[a]);for(a=0;a<n.length;a++)c.push(-n.length+a);if(\\\"undefined\\\"==typeof i)return s=r.redraw(e),l.add(e,u,h,f,p),s;Array.isArray(i)||(i=[i]);try{I(e,c,i)}catch(t){throw e.data.splice(e.data.length-n.length,n.length),t}return l.startSequence(e),l.add(e,u,h,f,p),s=r.moveTraces(e,c,i),l.stopSequence(e),s},r.deleteTraces=function t(e,n){e=o.getGraphDiv(e);var i,a,s=[],c=r.addTraces,u=t,f=[e,s,n],h=[e,n];if(\\\"undefined\\\"==typeof n)throw new Error(\\\"indices must be an integer or array of integers.\\\");for(Array.isArray(n)||(n=[n]),O(e,n,\\\"indices\\\"),(n=z(n,e.data.length-1)).sort(o.sorterDes),i=0;i<n.length;i+=1)a=e.data.splice(n[i],1)[0],s.push(a);var p=r.redraw(e);return l.add(e,c,f,u,h),p},r.moveTraces=function t(e,n,i){var a,s=[],c=[],u=t,f=t,h=[e=o.getGraphDiv(e),i,n],p=[e,n,i];if(I(e,n,i),n=Array.isArray(n)?n:[n],\\\"undefined\\\"==typeof i)for(i=[],a=0;a<n.length;a++)i.push(-n.length+a);for(i=Array.isArray(i)?i:[i],n=z(n,e.data.length-1),i=z(i,e.data.length-1),a=0;a<e.data.length;a++)-1===n.indexOf(a)&&s.push(e.data[a]);for(a=0;a<n.length;a++)c.push({newIndex:i[a],trace:e.data[n[a]]});for(c.sort(function(t,e){return t.newIndex-e.newIndex}),a=0;a<c.length;a+=1)s.splice(c[a].newIndex,0,c[a].trace);e.data=s;var d=r.redraw(e);return l.add(e,u,h,f,p),d},r.restyle=function t(e,n,i,a){e=o.getGraphDiv(e),w.clearPromiseQueue(e);var s={};if(\\\"string\\\"==typeof n)s[n]=i;else{if(!o.isPlainObject(n))return o.warn(\\\"Restyle fail.\\\",n,i,a),Promise.reject();s=o.extendFlat({},n),void 0===a&&(a=i)}Object.keys(s).length&&(e.changed=!0);var c=w.coerceTraceIndices(e,a),u=B(e,s,c),h=u.flags;h.calc&&(e.calcdata=void 0),h.clearAxisTypes&&w.clearAxisTypes(e,c,{});var p=[];h.fullReplot?p.push(r.plot):(p.push(f.previousPromises),f.supplyDefaults(e),h.markerSize&&(f.doCalcdata(e),N(p)),h.style&&p.push(k.doTraceStyle),h.colorbars&&p.push(k.doColorBars),p.push(S)),p.push(f.rehover),l.add(e,t,[e,u.undoit,u.traces],t,[e,u.redoit,u.traces]);var d=o.syncOrAsync(p,e);return d&&d.then||(d=Promise.resolve()),d.then(function(){return e.emit(\\\"plotly_restyle\\\",u.eventData),e})},r.relayout=function t(e,r,n){if(e=o.getGraphDiv(e),w.clearPromiseQueue(e),e.framework&&e.framework.isPolar)return Promise.resolve(e);var i={};if(\\\"string\\\"==typeof r)i[r]=n;else{if(!o.isPlainObject(r))return o.warn(\\\"Relayout fail.\\\",r,n),Promise.reject();i=o.extendFlat({},r)}Object.keys(i).length&&(e.changed=!0);var a=q(e,i),s=a.flags;s.calc&&(e.calcdata=void 0);var c=[f.previousPromises];s.layoutReplot?c.push(k.layoutReplot):Object.keys(i).length&&(F(e,s,a)||f.supplyDefaults(e),s.legend&&c.push(k.doLegend),s.layoutstyle&&c.push(k.layoutStyles),s.axrange&&N(c,a.rangesAltered),s.ticks&&c.push(k.doTicksRelayout),s.modebar&&c.push(k.doModeBar),s.camera&&c.push(k.doCamera),c.push(S)),c.push(f.rehover),l.add(e,t,[e,a.undoit],t,[e,a.redoit]);var u=o.syncOrAsync(c,e);return u&&u.then||(u=Promise.resolve(e)),u.then(function(){return e.emit(\\\"plotly_relayout\\\",a.eventData),e})};var j=/^[xyz]axis[0-9]*\\\\.range(\\\\[[0|1]\\\\])?$/,V=/^[xyz]axis[0-9]*\\\\.autorange$/,U=/^[xyz]axis[0-9]*\\\\.domain(\\\\[[0|1]\\\\])?$/;function q(t,e){var r,n,i,a=t.layout,s=t._fullLayout,l=Object.keys(e),f=p.list(t),h={};for(n=0;n<l.length;n++)if(0===l[n].indexOf(\\\"allaxes\\\")){for(i=0;i<f.length;i++){var d=f[i]._id.substr(1),g=-1!==d.indexOf(\\\"scene\\\")?d+\\\".\\\":\\\"\\\",v=l[n].replace(\\\"allaxes\\\",g+f[i]._name);e[v]||(e[v]=e[l[n]])}delete e[l[n]]}var m=M.layoutFlags(),y={},x={};function b(t,r){if(Array.isArray(t))t.forEach(function(t){b(t,r)});else if(!(t in e||w.hasParent(e,t))){var n=o.nestedProperty(a,t);t in x||(x[t]=R(n.get())),void 0!==r&&n.set(r)}}var k,T={};function S(t){var e=p.name2id(t.split(\\\".\\\")[0]);return T[e]=1,e}for(var E in e){if(w.hasParent(e,E))throw new Error(\\\"cannot set \\\"+E+\\\"and a parent attribute simultaneously\\\");for(var C=o.nestedProperty(a,E),L=e[E],z=C.parts.length-1;z>0&&\\\"string\\\"!=typeof C.parts[z];)z--;var O=C.parts[z],I=C.parts[z-1]+\\\".\\\"+O,P=C.parts.slice(0,z).join(\\\".\\\"),D=o.nestedProperty(t.layout,P).get(),B=o.nestedProperty(s,P).get(),F=C.get();if(void 0!==L){y[E]=L,x[E]=\\\"reverse\\\"===O?L:R(F);var N=u.getLayoutValObject(s,C.parts);if(N&&N.impliedEdits&&null!==L)for(var q in N.impliedEdits)b(o.relativeAttr(E,q),N.impliedEdits[q]);if(-1!==[\\\"width\\\",\\\"height\\\"].indexOf(E))if(L){b(\\\"autosize\\\",null);var G=\\\"height\\\"===E?\\\"width\\\":\\\"height\\\";b(G,s[G])}else s[E]=t._initialAutoSize[E];else if(\\\"autosize\\\"===E)b(\\\"width\\\",L?null:s.width),b(\\\"height\\\",L?null:s.height);else if(I.match(j))S(I),o.nestedProperty(s,P+\\\"._inputRange\\\").set(null);else if(I.match(V)){S(I),o.nestedProperty(s,P+\\\"._inputRange\\\").set(null);var W=o.nestedProperty(s,P).get();W._inputDomain&&(W._input.domain=W._inputDomain.slice())}else I.match(U)&&o.nestedProperty(s,P+\\\"._inputDomain\\\").set(null);if(\\\"type\\\"===O){var Y=D,X=\\\"linear\\\"===B.type&&\\\"log\\\"===L,Z=\\\"log\\\"===B.type&&\\\"linear\\\"===L;if(X||Z){if(Y&&Y.range)if(B.autorange)X&&(Y.range=Y.range[1]>Y.range[0]?[1,2]:[2,1]);else{var $=Y.range[0],J=Y.range[1];X?($<=0&&J<=0&&b(P+\\\".autorange\\\",!0),$<=0?$=J/1e6:J<=0&&(J=$/1e6),b(P+\\\".range[0]\\\",Math.log($)/Math.LN10),b(P+\\\".range[1]\\\",Math.log(J)/Math.LN10)):(b(P+\\\".range[0]\\\",Math.pow(10,$)),b(P+\\\".range[1]\\\",Math.pow(10,J)))}else b(P+\\\".autorange\\\",!0);Array.isArray(s._subplots.polar)&&s._subplots.polar.length&&s[C.parts[0]]&&\\\"radialaxis\\\"===C.parts[1]&&delete s[C.parts[0]]._subplot.viewInitial[\\\"radialaxis.range\\\"],c.getComponentMethod(\\\"annotations\\\",\\\"convertCoords\\\")(t,B,L,b),c.getComponentMethod(\\\"images\\\",\\\"convertCoords\\\")(t,B,L,b)}else b(P+\\\".autorange\\\",!0),b(P+\\\".range\\\",null);o.nestedProperty(s,P+\\\"._inputRange\\\").set(null)}else if(O.match(A)){var K=o.nestedProperty(s,E).get(),Q=(L||{}).type;Q&&\\\"-\\\"!==Q||(Q=\\\"linear\\\"),c.getComponentMethod(\\\"annotations\\\",\\\"convertCoords\\\")(t,K,Q,b),c.getComponentMethod(\\\"images\\\",\\\"convertCoords\\\")(t,K,Q,b)}var tt=_.containerArrayMatch(E);if(tt){r=tt.array,n=tt.index;var et=tt.property,rt=(o.nestedProperty(a,r)||[])[n]||{},nt=N||{editType:\\\"calc\\\"};\\\"\\\"!==n&&\\\"\\\"===et&&(_.isAddVal(L)?x[E]=null:_.isRemoveVal(L)?x[E]=rt:o.warn(\\\"unrecognized full object value\\\",e)),M.update(m,nt),h[r]||(h[r]={});var it=h[r][n];it||(it=h[r][n]={}),it[et]=L,delete e[E]}else\\\"reverse\\\"===O?(D.range?D.range.reverse():(b(P+\\\".autorange\\\",!0),D.range=[1,0]),B.autorange?m.calc=!0:m.plot=!0):(s._has(\\\"scatter-like\\\")&&s._has(\\\"regl\\\")&&\\\"dragmode\\\"===E&&(\\\"lasso\\\"===L||\\\"select\\\"===L)&&\\\"lasso\\\"!==F&&\\\"select\\\"!==F?m.plot=!0:N?M.update(m,N):m.calc=!0,C.set(L))}}for(r in h){_.applyContainerArrayChanges(t,o.nestedProperty(a,r),h[r],m)||(m.plot=!0)}var at=s._axisConstraintGroups||[];for(k in T)for(n=0;n<at.length;n++){var ot=at[n];if(ot[k])for(var st in m.calc=!0,ot)T[st]||(p.getFromId(t,st)._constraintShrinkable=!0)}return(H(t)||e.height||e.width)&&(m.plot=!0),(m.plot||m.calc)&&(m.layoutReplot=!0),{flags:m,rangesAltered:T,undoit:x,redoit:y,eventData:o.extendDeep({},y)}}function H(t){var e=t._fullLayout,r=e.width,n=e.height;return t.layout.autosize&&f.plotAutoSize(t,t.layout,e),e.width!==r||e.height!==n}function G(t,e,r,n){var i,a,s=n.getValObject,l=n.flags,c=n.immutable,u=n.inArray,f=n.arrayIndex;function h(){var t=i.editType;u&&-1!==t.indexOf(\\\"arraydraw\\\")?o.pushUnique(l.arrays[u],f):M.update(l,i)}function p(t){return\\\"data_array\\\"===t.valType||t.arrayOk}for(a in t){if(l.calc)return;var d=t[a],g=e[a];if(\\\"_\\\"!==a.charAt(0)&&\\\"function\\\"!=typeof d&&d!==g){if((\\\"tick0\\\"===a||\\\"dtick\\\"===a)&&\\\"geo\\\"!==r[0]){var v=e.tickmode;if(\\\"auto\\\"===v||\\\"array\\\"===v||!v)continue}if((\\\"range\\\"!==a||!e.autorange)&&(\\\"zmin\\\"!==a&&\\\"zmax\\\"!==a||\\\"contourcarpet\\\"!==e.type)){var m=r.concat(a);if((i=s(m))&&(!i._compareAsJSON||JSON.stringify(d)!==JSON.stringify(g))){var y,x=i.valType,b=p(i),_=Array.isArray(d),w=Array.isArray(g);if(_&&w){var k=\\\"_input_\\\"+a,A=t[k],T=e[k];if(Array.isArray(A)&&A===T)continue}if(void 0===g)b&&_?l.calc=!0:h();else if(i._isLinkedToArray){var S=[],E=!1;u||(l.arrays[a]=S);var C=Math.min(d.length,g.length),L=Math.max(d.length,g.length);if(C!==L){if(\\\"arraydraw\\\"!==i.editType){h();continue}E=!0}for(y=0;y<C;y++)G(d[y],g[y],m.concat(y),o.extendFlat({inArray:a,arrayIndex:y},n));if(E)for(y=C;y<L;y++)S.push(y)}else!x&&o.isPlainObject(d)?G(d,g,m,n):b?_&&w?c&&(l.calc=!0):_!==w?l.calc=!0:h():_&&w&&d.length===g.length&&String(d)===String(g)||h()}}}}for(a in e)if(!(a in t||\\\"_\\\"===a.charAt(0)||\\\"function\\\"==typeof e[a])){if(p(i=s(r.concat(a)))&&Array.isArray(e[a]))return void(l.calc=!0);h()}}function W(t){var e=n.select(t),r=t._fullLayout;if(r._container=e.selectAll(\\\".plot-container\\\").data([0]),r._container.enter().insert(\\\"div\\\",\\\":first-child\\\").classed(\\\"plot-container\\\",!0).classed(\\\"plotly\\\",!0),r._paperdiv=r._container.selectAll(\\\".svg-container\\\").data([0]),r._paperdiv.enter().append(\\\"div\\\").classed(\\\"svg-container\\\",!0).style(\\\"position\\\",\\\"relative\\\"),r._glcontainer=r._paperdiv.selectAll(\\\".gl-container\\\").data([{}]),r._glcontainer.enter().append(\\\"div\\\").classed(\\\"gl-container\\\",!0),r._paperdiv.selectAll(\\\".main-svg\\\").remove(),r._paper=r._paperdiv.insert(\\\"svg\\\",\\\":first-child\\\").classed(\\\"main-svg\\\",!0),r._toppaper=r._paperdiv.append(\\\"svg\\\").classed(\\\"main-svg\\\",!0),!r._uid){var i={};n.selectAll(\\\"defs\\\").each(function(){this.id&&(i[this.id.split(\\\"-\\\")[1]]=1)}),r._uid=o.randstr(i)}r._paperdiv.selectAll(\\\".main-svg\\\").attr(y.svgAttrs),r._defs=r._paper.append(\\\"defs\\\").attr(\\\"id\\\",\\\"defs-\\\"+r._uid),r._clips=r._defs.append(\\\"g\\\").classed(\\\"clips\\\",!0),r._topdefs=r._toppaper.append(\\\"defs\\\").attr(\\\"id\\\",\\\"topdefs-\\\"+r._uid),r._topclips=r._topdefs.append(\\\"g\\\").classed(\\\"clips\\\",!0),r._bgLayer=r._paper.append(\\\"g\\\").classed(\\\"bglayer\\\",!0),r._draggers=r._paper.append(\\\"g\\\").classed(\\\"draglayer\\\",!0);var a=r._paper.append(\\\"g\\\").classed(\\\"layer-below\\\",!0);r._imageLowerLayer=a.append(\\\"g\\\").classed(\\\"imagelayer\\\",!0),r._shapeLowerLayer=a.append(\\\"g\\\").classed(\\\"shapelayer\\\",!0),r._cartesianlayer=r._paper.append(\\\"g\\\").classed(\\\"cartesianlayer\\\",!0),r._polarlayer=r._paper.append(\\\"g\\\").classed(\\\"polarlayer\\\",!0),r._ternarylayer=r._paper.append(\\\"g\\\").classed(\\\"ternarylayer\\\",!0),r._geolayer=r._paper.append(\\\"g\\\").classed(\\\"geolayer\\\",!0),r._pielayer=r._paper.append(\\\"g\\\").classed(\\\"pielayer\\\",!0),r._glimages=r._paper.append(\\\"g\\\").classed(\\\"glimages\\\",!0);var s=r._toppaper.append(\\\"g\\\").classed(\\\"layer-above\\\",!0);r._imageUpperLayer=s.append(\\\"g\\\").classed(\\\"imagelayer\\\",!0),r._shapeUpperLayer=s.append(\\\"g\\\").classed(\\\"shapelayer\\\",!0),r._infolayer=r._toppaper.append(\\\"g\\\").classed(\\\"infolayer\\\",!0),r._menulayer=r._toppaper.append(\\\"g\\\").classed(\\\"menulayer\\\",!0),r._zoomlayer=r._toppaper.append(\\\"g\\\").classed(\\\"zoomlayer\\\",!0),r._hoverlayer=r._toppaper.append(\\\"g\\\").classed(\\\"hoverlayer\\\",!0),t.emit(\\\"plotly_framework\\\")}r.update=function t(e,n,i,a){if(e=o.getGraphDiv(e),w.clearPromiseQueue(e),e.framework&&e.framework.isPolar)return Promise.resolve(e);o.isPlainObject(n)||(n={}),o.isPlainObject(i)||(i={}),Object.keys(n).length&&(e.changed=!0),Object.keys(i).length&&(e.changed=!0);var s=w.coerceTraceIndices(e,a),c=B(e,o.extendFlat({},n),s),u=c.flags,h=q(e,o.extendFlat({},i)),p=h.flags;(u.calc||p.calc)&&(e.calcdata=void 0),u.clearAxisTypes&&w.clearAxisTypes(e,s,i);var d=[];if(u.fullReplot&&p.layoutReplot){var g=e.data,v=e.layout;e.data=void 0,e.layout=void 0,d.push(function(){return r.plot(e,g,v)})}else u.fullReplot?d.push(r.plot):p.layoutReplot?d.push(k.layoutReplot):(d.push(f.previousPromises),F(e,p,h)||f.supplyDefaults(e),u.style&&d.push(k.doTraceStyle),u.colorbars&&d.push(k.doColorBars),p.legend&&d.push(k.doLegend),p.layoutstyle&&d.push(k.layoutStyles),p.axrange&&N(d,h.rangesAltered),p.ticks&&d.push(k.doTicksRelayout),p.modebar&&d.push(k.doModeBar),p.camera&&d.push(k.doCamera),d.push(S));d.push(f.rehover),l.add(e,t,[e,c.undoit,h.undoit,c.traces],t,[e,c.redoit,h.redoit,c.traces]);var m=o.syncOrAsync(d,e);return m&&m.then||(m=Promise.resolve(e)),m.then(function(){return e.emit(\\\"plotly_update\\\",{data:c.eventData,layout:h.eventData}),e})},r.react=function(t,e,n,i){var a,s;var l=(t=o.getGraphDiv(t))._fullData,h=t._fullLayout;if(o.isPlotDiv(t)&&l&&h){if(o.isPlainObject(e)){var p=e;e=p.data,n=p.layout,i=p.config,a=p.frames}var d=!1;if(i){var g=o.extendDeep({},t._context);t._context=void 0,L(t,i),d=function t(e,r){var n;for(n in e)if(\\\"_\\\"!==n.charAt(0)){var i=e[n],a=r[n];if(i!==a)if(o.isPlainObject(i)&&o.isPlainObject(a)){if(t(i,a))return!0}else{if(!Array.isArray(i)||!Array.isArray(a))return!0;if(i.length!==a.length)return!0;for(var s=0;s<i.length;s++)if(i[s]!==a[s]){if(!o.isPlainObject(i[s])||!o.isPlainObject(a[s]))return!0;if(t(i[s],a[s]))return!0}}}}(g,t._context)}t.data=e||[],w.cleanData(t.data),t.layout=n||{},w.cleanLayout(t.layout),f.supplyDefaults(t,{skipUpdateCalc:!0});var v=t._fullData,m=t._fullLayout,y=void 0===m.datarevision,x=function(t,e,r,n){if(e.length!==r.length)return{fullReplot:!0,calc:!0};var i,a,o=M.traceFlags();o.arrays={};var s={getValObject:function(t){return u.getTraceValObject(a,t)},flags:o,immutable:n,gd:t},l={};for(i=0;i<e.length;i++)a=r[i]._fullInput,f.hasMakesDataTransform(a)&&(a=r[i]),l[a.uid]||(l[a.uid]=1,G(e[i]._fullInput,a,[],s));(o.calc||o.plot)&&(o.fullReplot=!0);return o}(t,l,v,y),b=function(t,e,r,n){var i=M.layoutFlags();i.arrays={},G(e,r,[],{getValObject:function(t){return u.getLayoutValObject(r,t)},flags:i,immutable:n,gd:t}),(i.plot||i.calc)&&(i.layoutReplot=!0);return i}(t,h,m,y);H(t)&&(b.layoutReplot=!0),x.calc||b.calc?t.calcdata=void 0:f.supplyDefaultsUpdateCalc(t.calcdata,v);var _=[];if(a&&(t._transitionData={},f.createTransitionData(t),_.push(function(){return r.addFrames(t,a)})),x.fullReplot||b.layoutReplot||d)t._fullLayout._skipDefaults=!0,_.push(r.plot);else{for(var A in b.arrays){var T=b.arrays[A];if(T.length){var E=c.getComponentMethod(A,\\\"drawOne\\\");if(E!==o.noop)for(var C=0;C<T.length;C++)E(t,T[C]);else{var z=c.getComponentMethod(A,\\\"draw\\\");if(z===o.noop)throw new Error(\\\"cannot draw components: \\\"+A);z(t)}}}_.push(f.previousPromises),x.style&&_.push(k.doTraceStyle),x.colorbars&&_.push(k.doColorBars),b.legend&&_.push(k.doLegend),b.layoutstyle&&_.push(k.layoutStyles),b.axrange&&N(_),b.ticks&&_.push(k.doTicksRelayout),b.modebar&&_.push(k.doModeBar),b.camera&&_.push(k.doCamera),_.push(S)}_.push(f.rehover),(s=o.syncOrAsync(_,t))&&s.then||(s=Promise.resolve(t))}else s=r.newPlot(t,e,n,i);return s.then(function(){return t.emit(\\\"plotly_react\\\",{data:e,layout:n}),t})},r.animate=function(t,e,r){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error(\\\"This element is not a Plotly plot: \\\"+t+\\\". It's likely that you've failed to create a plot before animating it. For more details, see https://plot.ly/javascript/animations/\\\");var n=t._transitionData;n._frameQueue||(n._frameQueue=[]);var i=(r=f.supplyAnimationDefaults(r)).transition,a=r.frame;function s(t){return Array.isArray(i)?t>=i.length?i[0]:i[t]:i}function l(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function c(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise(function(a,u){function h(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,f.transition(t,e.frame.data,e.frame.layout,w.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then(function(){e.onComplete&&e.onComplete()}),t.emit(\\\"plotly_animatingframe\\\",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit(\\\"plotly_animated\\\"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}function p(){t.emit(\\\"plotly_animating\\\"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&h()};e()}var d,g,v=0;function m(t){return Array.isArray(i)?v>=i.length?t.transitionOpts=i[v]:t.transitionOpts=i[0]:t.transitionOpts=i,v++,t}var y=[],x=null==e,b=Array.isArray(e);if(!x&&!b&&o.isPlainObject(e))y.push({type:\\\"object\\\",data:m(o.extendFlat({},e))});else if(x||-1!==[\\\"string\\\",\\\"number\\\"].indexOf(typeof e))for(d=0;d<n._frames.length;d++)(g=n._frames[d])&&(x||String(g.group)===String(e))&&y.push({type:\\\"byname\\\",name:String(g.name),data:m({name:g.name})});else if(b)for(d=0;d<e.length;d++){var _=e[d];-1!==[\\\"number\\\",\\\"string\\\"].indexOf(typeof _)?(_=String(_),y.push({type:\\\"byname\\\",name:_,data:m({name:_})})):o.isPlainObject(_)&&y.push({type:\\\"object\\\",data:m(o.extendFlat({},_))})}for(d=0;d<y.length;d++)if(\\\"byname\\\"===(g=y[d]).type&&!n._frameHash[g.data.name])return o.warn('animate failure: frame not found: \\\"'+g.data.name+'\\\"'),void u();-1!==[\\\"next\\\",\\\"immediate\\\"].indexOf(r.mode)&&function(){if(0!==n._frameQueue.length){for(;n._frameQueue.length;){var e=n._frameQueue.pop();e.onInterrupt&&e.onInterrupt()}t.emit(\\\"plotly_animationinterrupted\\\",[])}}(),\\\"reverse\\\"===r.direction&&y.reverse();var k=t._fullLayout._currentFrame;if(k&&r.fromcurrent){var M=-1;for(d=0;d<y.length;d++)if(\\\"byname\\\"===(g=y[d]).type&&g.name===k){M=d;break}if(M>0&&M<y.length-1){var A=[];for(d=0;d<y.length;d++)g=y[d],(\\\"byname\\\"!==y[d].type||d>M)&&A.push(g);y=A}}y.length>0?function(e){if(0!==e.length){for(var i=0;i<e.length;i++){var o;o=\\\"byname\\\"===e[i].type?f.computeFrame(t,e[i].name):e[i].data;var h=l(i),d=s(i);d.duration=Math.min(d.duration,h.duration);var g={frame:o,name:e[i].name,frameOpts:h,transitionOpts:d};i===e.length-1&&(g.onComplete=c(a,2),g.onInterrupt=u),n._frameQueue.push(g)}\\\"immediate\\\"===r.mode&&(n._lastFrameAt=-1/0),n._animationRaf||p()}}(y):(t.emit(\\\"plotly_animated\\\"),a())})},r.addFrames=function(t,e,r){if(t=o.getGraphDiv(t),null==e)return Promise.resolve();if(!o.isPlotDiv(t))throw new Error(\\\"This element is not a Plotly plot: \\\"+t+\\\". It's likely that you've failed to create a plot before adding frames. For more details, see https://plot.ly/javascript/animations/\\\");var n,i,a,s,c=t._transitionData._frames,u=t._transitionData._frameHash;if(!Array.isArray(e))throw new Error(\\\"addFrames failure: frameList must be an Array of frame definitions\\\"+e);var h=c.length+2*e.length,p=[],d={};for(n=e.length-1;n>=0;n--)if(o.isPlainObject(e[n])){var g=e[n].name,v=(u[g]||d[g]||{}).name,m=e[n].name,y=u[v]||d[v];v&&m&&\\\"number\\\"==typeof m&&y&&T<5&&(T++,o.warn('addFrames: overwriting frame \\\"'+(u[v]||d[v]).name+'\\\" with a frame whose name of type \\\"number\\\" also equates to \\\"'+v+'\\\". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===T&&o.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.\\\")),d[g]={name:g},p.push({frame:f.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:h+n})}p.sort(function(t,e){return t.index>e.index?-1:t.index<e.index?1:0});var x=[],b=[],_=c.length;for(n=p.length-1;n>=0;n--){if(\\\"number\\\"==typeof(i=p[n].frame).name&&o.warn(\\\"Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings\\\"),!i.name)for(;u[i.name=\\\"frame \\\"+t._transitionData._counter++];);if(u[i.name]){for(a=0;a<c.length&&(c[a]||{}).name!==i.name;a++);x.push({type:\\\"replace\\\",index:a,value:i}),b.unshift({type:\\\"replace\\\",index:a,value:c[a]})}else s=Math.max(0,Math.min(p[n].index,_)),x.push({type:\\\"insert\\\",index:s,value:i}),b.unshift({type:\\\"delete\\\",index:s}),_++}var w=f.modifyFrames,k=f.modifyFrames,M=[t,b],A=[t,x];return l&&l.add(t,w,M,k,A),f.modifyFrames(t,x)},r.deleteFrames=function(t,e){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error(\\\"This element is not a Plotly plot: \\\"+t);var r,n,i=t._transitionData._frames,a=[],s=[];if(!e)for(e=[],r=0;r<i.length;r++)e.push(r);for((e=e.slice(0)).sort(),r=e.length-1;r>=0;r--)n=e[r],a.push({type:\\\"delete\\\",index:n}),s.unshift({type:\\\"insert\\\",index:n,value:i[n]});var c=f.modifyFrames,u=f.modifyFrames,h=[t,s],p=[t,a];return l&&l.add(t,c,h,u,p),f.modifyFrames(t,a)},r.purge=function(t){var e=(t=o.getGraphDiv(t))._fullLayout||{},r=t._fullData||[];return f.cleanPlot([],{},r,e),f.purge(t),s.purge(t),e._container&&e._container.remove(),delete t._context,t}},{\\\"../components/color\\\":570,\\\"../components/colorbar/connect\\\":572,\\\"../components/drawing\\\":595,\\\"../constants/xmlns_namespaces\\\":674,\\\"../lib\\\":696,\\\"../lib/events\\\":684,\\\"../lib/queue\\\":711,\\\"../lib/svg_text_utils\\\":720,\\\"../plots/cartesian/axes\\\":744,\\\"../plots/cartesian/constants\\\":750,\\\"../plots/cartesian/graph_interact\\\":754,\\\"../plots/plots\\\":808,\\\"../plots/polar/legacy\\\":816,\\\"../registry\\\":827,\\\"./edit_types\\\":727,\\\"./helpers\\\":728,\\\"./manage_arrays\\\":730,\\\"./plot_config\\\":732,\\\"./plot_schema\\\":733,\\\"./subroutines\\\":735,d3:148,\\\"fast-isnumeric\\\":214,\\\"has-hover\\\":393}],732:[function(t,e,r){\\\"use strict\\\";e.exports={staticPlot:!1,plotlyServerURL:\\\"https://plot.ly\\\",editable:!1,edits:{annotationPosition:!1,annotationTail:!1,annotationText:!1,axisTitleText:!1,colorbarPosition:!1,colorbarTitleText:!1,legendPosition:!1,legendText:!1,shapePosition:!1,titleText:!1},autosizable:!1,responsive:!1,queueLength:0,fillFrame:!1,frameMargins:0,scrollZoom:!1,doubleClick:\\\"reset+autosize\\\",showTips:!0,showAxisDragHandles:!0,showAxisRangeEntryBoxes:!0,showLink:!1,sendData:!0,linkText:\\\"Edit chart\\\",showSources:!1,displayModeBar:\\\"hover\\\",modeBarButtonsToRemove:[],modeBarButtonsToAdd:[],modeBarButtons:!1,toImageButtonOptions:{},displaylogo:!0,plotGlPixelRatio:2,setBackground:\\\"transparent\\\",topojsonURL:\\\"https://cdn.plot.ly/\\\",mapboxAccessToken:null,logging:1,globalTransforms:[],locale:\\\"en-US\\\",locales:{}}},{}],733:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../plots/attributes\\\"),o=t(\\\"../plots/layout_attributes\\\"),s=t(\\\"../plots/frame_attributes\\\"),l=t(\\\"../plots/animation_attributes\\\"),c=t(\\\"../plots/polar/legacy/area_attributes\\\"),u=t(\\\"../plots/polar/legacy/axis_attributes\\\"),f=t(\\\"./edit_types\\\"),h=i.extendFlat,p=i.extendDeepAll,d=i.isPlainObject,g=\\\"_isSubplotObj\\\",v=\\\"_isLinkedToArray\\\",m=[g,v,\\\"_arrayAttrRegexps\\\",\\\"_deprecated\\\"];function y(t,e,r){if(!t)return!1;if(t._isLinkedToArray)if(x(e[r]))r++;else if(r<e.length)return!1;for(;r<e.length;r++){var n=t[e[r]];if(!d(n))break;if(t=n,r===e.length-1)break;if(t._isLinkedToArray){if(!x(e[++r]))return!1}else if(\\\"info_array\\\"===t.valType){var i=e[++r];if(!x(i))return!1;var a=t.items;if(Array.isArray(a)){if(i>=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!x(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function x(t){return t===Math.round(t)&&t>=0}function b(t){return function(t){r.crawl(t,function(t,e,n){r.isValObject(t)?\\\"data_array\\\"===t.valType?(t.role=\\\"data\\\",n[e+\\\"src\\\"]={valType:\\\"string\\\",editType:\\\"none\\\"}):!0===t.arrayOk&&(n[e+\\\"src\\\"]={valType:\\\"string\\\",editType:\\\"none\\\"}):d(t)&&(t.role=\\\"object\\\")})}(t),function(t){r.crawl(t,function(t,e,r){if(!t)return;var n=t[v];if(!n)return;delete t[v],r[e]={items:{}},r[e].items[n]=t,r[e].role=\\\"object\\\"})}(t),function(t){!function t(e){for(var r in e)if(d(e[r]))t(e[r]);else if(Array.isArray(e[r]))for(var n=0;n<e[r].length;n++)t(e[r][n]);else e[r]instanceof RegExp&&(e[r]=e[r].toString())}(t)}(t),t}function _(t,e,r){var n=i.nestedProperty(t,r),a=p({},e.layoutAttributes);a[g]=!0,n.set(a)}function w(t,e,r){var n=i.nestedProperty(t,r);n.set(p(n.get()||{},e))}r.IS_SUBPLOT_OBJ=g,r.IS_LINKED_TO_ARRAY=v,r.DEPRECATED=\\\"_deprecated\\\",r.UNDERSCORE_ATTRS=m,r.get=function(){var t={};n.allTypes.concat(\\\"area\\\").forEach(function(e){t[e]=function(t){var e,o;\\\"area\\\"===t?(e={attributes:c},o={}):(e=n.modules[t]._module,o=e.basePlotModule);var s={type:null},l=p({},a),u=p({},e.attributes);r.crawl(u,function(t,e,r,n,a){i.nestedProperty(l,a).set(void 0),void 0===t&&i.nestedProperty(u,a).set(void 0)}),p(s,l),p(s,u),o.attributes&&p(s,o.attributes);s.type=t;var f={meta:e.meta||{},attributes:b(s)};if(e.layoutAttributes){var h={};p(h,e.layoutAttributes),f.layoutAttributes=b(h)}return f}(e)});var e,d={};return Object.keys(n.transformsRegistry).forEach(function(t){d[t]=function(t){var e=n.transformsRegistry[t],r=p({},e.attributes);return Object.keys(n.componentsRegistry).forEach(function(e){var i=n.componentsRegistry[e];i.schema&&i.schema.transforms&&i.schema.transforms[t]&&Object.keys(i.schema.transforms[t]).forEach(function(e){w(r,i.schema.transforms[t][e],e)})}),{attributes:b(r)}}(t)}),{defs:{valObjects:i.valObjectMeta,metaKeys:m.concat([\\\"description\\\",\\\"role\\\",\\\"editType\\\",\\\"impliedEdits\\\"]),editType:{traces:f.traces,layout:f.layout},impliedEdits:{}},traces:t,layout:function(){var t,e,r={};for(t in p(r,o),n.subplotsRegistry)if((e=n.subplotsRegistry[t]).layoutAttributes)if(Array.isArray(e.attr))for(var i=0;i<e.attr.length;i++)_(r,e,e.attr[i]);else{var a=\\\"subplot\\\"===e.attr?e.name:e.attr;_(r,e,a)}for(t in r=function(t){return h(t,{radialaxis:u.radialaxis,angularaxis:u.angularaxis}),h(t,u.layout),t}(r),n.componentsRegistry){var s=(e=n.componentsRegistry[t]).schema;if(s&&(s.subplots||s.layout)){var l=s.subplots;if(l&&l.xaxis&&!l.yaxis)for(var c in l.xaxis)delete r.yaxis[c]}else e.layoutAttributes&&w(r,e.layoutAttributes,e.name)}return{layoutAttributes:b(r)}}(),transforms:d,frames:(e={frames:i.extendDeepAll({},s)},b(e),e.frames),animation:b(l)}},r.crawl=function(t,e,n,i){var a=n||0;i=i||\\\"\\\",Object.keys(t).forEach(function(n){var o=t[n];if(-1===m.indexOf(n)){var s=(i?i+\\\".\\\":\\\"\\\")+n;e(o,n,t,a,s),r.isValObject(o)||d(o)&&\\\"impliedEdits\\\"!==n&&r.crawl(o,e,a+1,s)}})},r.isValObject=function(t){return t&&void 0!==t.valType},r.findArrayAttributes=function(t){var e,n,o=[],s=[],l=[];function c(t,r,a,c){s=s.slice(0,c).concat([r]),l=l.slice(0,c).concat([t&&t._isLinkedToArray]),t&&(\\\"data_array\\\"===t.valType||!0===t.arrayOk)&&!(\\\"colorbar\\\"===s[c-1]&&(\\\"ticktext\\\"===r||\\\"tickvals\\\"===r))&&function t(e,r,a){var c=e[s[r]];var u=a+s[r];if(r===s.length-1)i.isArrayOrTypedArray(c)&&o.push(n+u);else if(l[r]){if(Array.isArray(c))for(var f=0;f<c.length;f++)i.isPlainObject(c[f])&&t(c[f],r+1,u+\\\"[\\\"+f+\\\"].\\\")}else i.isPlainObject(c)&&t(c,r+1,u+\\\".\\\")}(e,0,\\\"\\\")}e=t,n=\\\"\\\",r.crawl(a,c),t._module&&t._module.attributes&&r.crawl(t._module.attributes,c);var u=t.transforms;if(u)for(var f=0;f<u.length;f++){var h=u[f],p=h._module;p&&(n=\\\"transforms[\\\"+f+\\\"].\\\",e=h,r.crawl(p.attributes,c))}return o},r.getTraceValObject=function(t,e){var r,i,o=e[0],s=1;if(\\\"transforms\\\"===o){if(1===e.length)return a.transforms;var l=t.transforms;if(!Array.isArray(l)||!l.length)return!1;var u=e[1];if(!x(u)||u>=l.length)return!1;i=(r=(n.transformsRegistry[l[u].type]||{}).attributes)&&r[e[2]],s=3}else if(\\\"area\\\"===t.type)i=c[o];else{var f=t._module;if(f||(f=(n.modules[t.type||a.type.dflt]||{})._module),!f)return!1;if(!(i=(r=f.attributes)&&r[o])){var h=f.basePlotModule;h&&h.attributes&&(i=h.attributes[o])}i||(i=a[o])}return y(i,e,s)},r.getLayoutValObject=function(t,e){return y(function(t,e){var r,i,a,s,l=t._basePlotModules;if(l){var c;for(r=0;r<l.length;r++){if((a=l[r]).attrRegex&&a.attrRegex.test(e)){if(a.layoutAttrOverrides)return a.layoutAttrOverrides;!c&&a.layoutAttributes&&(c=a.layoutAttributes)}var f=a.baseLayoutAttrOverrides;if(f&&e in f)return f[e]}if(c)return c}var h=t._modules;if(h)for(r=0;r<h.length;r++)if((s=h[r].layoutAttributes)&&e in s)return s[e];for(i in n.componentsRegistry)if(!(a=n.componentsRegistry[i]).schema&&e===a.name)return a.layoutAttributes;if(e in o)return o[e];if(\\\"radialaxis\\\"===e||\\\"angularaxis\\\"===e)return u[e];return u.layout[e]||!1}(t,e[0]),e,1)}},{\\\"../lib\\\":696,\\\"../plots/animation_attributes\\\":739,\\\"../plots/attributes\\\":741,\\\"../plots/frame_attributes\\\":772,\\\"../plots/layout_attributes\\\":799,\\\"../plots/polar/legacy/area_attributes\\\":814,\\\"../plots/polar/legacy/axis_attributes\\\":815,\\\"../registry\\\":827,\\\"./edit_types\\\":727}],734:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plots/attributes\\\"),a=\\\"templateitemname\\\",o={name:{valType:\\\"string\\\",editType:\\\"none\\\"}};function s(t){return t&&\\\"string\\\"==typeof t}function l(t){var e=t.length-1;return\\\"s\\\"!==t.charAt(e)&&n.warn(\\\"bad argument to arrayDefaultKey: \\\"+t),t.substr(0,t.length-1)+\\\"defaults\\\"}o[a]={valType:\\\"string\\\",editType:\\\"calc\\\"},r.templatedArray=function(t,e){return e._isLinkedToArray=t,e.name=o.name,e[a]=o[a],e},r.traceTemplater=function(t){var e,r,a={};for(e in t)r=t[e],Array.isArray(r)&&r.length&&(a[e]=0);return{newTrace:function(o){var s={type:e=n.coerce(o,{},i,\\\"type\\\"),_template:null};if(e in a){r=t[e];var l=a[e]%r.length;a[e]++,s._template=r[l]}return s}}},r.newContainer=function(t,e,r){var i=t._template,a=i&&(i[e]||r&&i[r]);return n.isPlainObject(a)||(a=null),t[e]={_template:a}},r.arrayTemplater=function(t,e,r){var n=t._template,i=n&&n[l(e)],o=n&&n[e];Array.isArray(o)&&o.length||(o=[]);var c={};return{newItem:function(t){var e={name:t.name,_input:t},n=e[a]=t[a];if(!s(n))return e._template=i,e;for(var l=0;l<o.length;l++){var u=o[l];if(u.name===n)return c[n]=1,e._template=u,e}return e[r]=t[r]||!1,e._template=!1,e},defaultItems:function(){for(var t=[],e=0;e<o.length;e++){var r=o[e],n=r.name;if(s(n)&&!c[n]){var i={_template:r,name:n,_input:{_templateitemname:n}};i[a]=r[a],t.push(i),c[n]=1}}return t}}},r.arrayDefaultKey=l,r.arrayEditor=function(t,e,r){var i=(n.nestedProperty(t,e).get()||[]).length,o=r._index,s=o>=i&&(r._input||{})._templateitemname;s&&(o=i);var l,c=e+\\\"[\\\"+o+\\\"]\\\";function u(){l={},s&&(l[c]={},l[c][a]=s)}function f(t,e){s?n.nestedProperty(l[c],t).set(e):l[c+\\\".\\\"+t]=e}function h(){var t=l;return u(),t}return u(),{modifyBase:function(t,e){l[t]=e},modifyItem:f,getUpdateObj:h,applyUpdate:function(e,r){e&&f(e,r);var i=h();for(var a in i)n.nestedProperty(t,a).set(i[a])}}}},{\\\"../lib\\\":696,\\\"../plots/attributes\\\":741}],735:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../registry\\\"),a=t(\\\"../plots/plots\\\"),o=t(\\\"../lib\\\"),s=t(\\\"../lib/clear_gl_canvases\\\"),l=t(\\\"../components/color\\\"),c=t(\\\"../components/drawing\\\"),u=t(\\\"../components/titles\\\"),f=t(\\\"../components/modebar\\\"),h=t(\\\"../plots/cartesian/axes\\\"),p=t(\\\"../constants/alignment\\\"),d=t(\\\"../plots/cartesian/constraints\\\"),g=d.enforce,v=d.clean,m=t(\\\"../plots/cartesian/autorange\\\").doAutoRange;function y(t,e,r){for(var n=0;n<r.length;n++){var i=r[n][0],a=r[n][1];if(!(i[0]>=t[1]||i[1]<=t[0])&&(a[0]<e[1]&&a[1]>e[0]))return!0}return!1}function x(t){var e,i,a,s,u,d=t._fullLayout,g=d._size,v=g.p,m=h.list(t,\\\"\\\",!0);if(d._paperdiv.style({width:t._context.responsive&&d.autosize&&!t._context._hasZeroWidth&&!t.layout.width?\\\"100%\\\":d.width+\\\"px\\\",height:t._context.responsive&&d.autosize&&!t._context._hasZeroHeight&&!t.layout.height?\\\"100%\\\":d.height+\\\"px\\\"}).selectAll(\\\".main-svg\\\").call(c.setSize,d.width,d.height),t._context.setBackground(t,d.paper_bgcolor),r.drawMainTitle(t),f.manage(t),!d._has(\\\"cartesian\\\"))return t._promises.length&&Promise.all(t._promises);function x(t,e,r){var n=t._lw/2;return\\\"x\\\"===t._id.charAt(0)?e?\\\"top\\\"===r?e._offset-v-n:e._offset+e._length+v+n:g.t+g.h*(1-(t.position||0))+n%1:e?\\\"right\\\"===r?e._offset+e._length+v+n:e._offset-v-n:g.l+g.w*(t.position||0)+n%1}for(e=0;e<m.length;e++){var w=m[e];w.setScale();var M=w._anchorAxis;w._linepositions={},w._lw=c.crispRound(t,w.linewidth,1),w._mainLinePosition=x(w,M,w.side),w._mainMirrorPosition=w.mirror&&M?x(w,M,p.OPPOSITE_SIDE[w.side]):null,w._mainSubplot=b(w,d)}var A=[],T=[],S=[],E=1===l.opacity(d.paper_bgcolor)&&1===l.opacity(d.plot_bgcolor)&&d.paper_bgcolor===d.plot_bgcolor;for(i in d._plots)if((a=d._plots[i]).mainplot)a.bg&&a.bg.remove(),a.bg=void 0;else{var C=a.xaxis.domain,L=a.yaxis.domain,z=a.plotgroup;if(y(C,L,S)){var O=z.node(),I=a.bg=o.ensureSingle(z,\\\"rect\\\",\\\"bg\\\");O.insertBefore(I.node(),O.childNodes[0]),T.push(i)}else z.select(\\\"rect.bg\\\").remove(),S.push([C,L]),E||(A.push(i),T.push(i))}var P,D,R,B,F,N,j,V,U,q,H,G,W,Y=d._bgLayer.selectAll(\\\".bg\\\").data(A);for(Y.enter().append(\\\"rect\\\").classed(\\\"bg\\\",!0),Y.exit().remove(),Y.each(function(t){d._plots[t].bg=n.select(this)}),e=0;e<T.length;e++)a=d._plots[T[e]],s=a.xaxis,u=a.yaxis,a.bg&&a.bg.call(c.setRect,s._offset-v,u._offset-v,s._length+2*v,u._length+2*v).call(l.fill,d.plot_bgcolor).style(\\\"stroke-width\\\",0);if(!d._hasOnlyLargeSploms)for(i in d._plots){a=d._plots[i],s=a.xaxis,u=a.yaxis;var X,Z,$=a.clipId=\\\"clip\\\"+d._uid+i+\\\"plot\\\",J=o.ensureSingleById(d._clips,\\\"clipPath\\\",$,function(t){t.classed(\\\"plotclip\\\",!0).append(\\\"rect\\\")});a.clipRect=J.select(\\\"rect\\\").attr({width:s._length,height:u._length}),c.setTranslate(a.plot,s._offset,u._offset),a._hasClipOnAxisFalse?(X=null,Z=$):(X=$,Z=null),c.setClipUrl(a.plot,X),a.layerClipId=Z}function K(t){return\\\"M\\\"+P+\\\",\\\"+t+\\\"H\\\"+D}function Q(t){return\\\"M\\\"+s._offset+\\\",\\\"+t+\\\"h\\\"+s._length}function tt(t){return\\\"M\\\"+t+\\\",\\\"+V+\\\"V\\\"+j}function et(t){return\\\"M\\\"+t+\\\",\\\"+u._offset+\\\"v\\\"+u._length}function rt(t,e,r){if(!t.showline||i!==t._mainSubplot)return\\\"\\\";if(!t._anchorAxis)return r(t._mainLinePosition);var n=e(t._mainLinePosition);return t.mirror&&(n+=e(t._mainMirrorPosition)),n}for(i in d._plots){a=d._plots[i],s=a.xaxis,u=a.yaxis;var nt=\\\"M0,0\\\";_(s,i)&&(F=k(s,\\\"left\\\",u,m),P=s._offset-(F?v+F:0),N=k(s,\\\"right\\\",u,m),D=s._offset+s._length+(N?v+N:0),R=x(s,u,\\\"bottom\\\"),B=x(s,u,\\\"top\\\"),!(W=!s._anchorAxis||i!==s._mainSubplot)||\\\"allticks\\\"!==s.mirror&&\\\"all\\\"!==s.mirror||(s._linepositions[i]=[R,B]),nt=rt(s,K,Q),W&&s.showline&&(\\\"all\\\"===s.mirror||\\\"allticks\\\"===s.mirror)&&(nt+=K(R)+K(B)),a.xlines.style(\\\"stroke-width\\\",s._lw+\\\"px\\\").call(l.stroke,s.showline?s.linecolor:\\\"rgba(0,0,0,0)\\\")),a.xlines.attr(\\\"d\\\",nt);var it=\\\"M0,0\\\";_(u,i)&&(H=k(u,\\\"bottom\\\",s,m),j=u._offset+u._length+(H?v:0),G=k(u,\\\"top\\\",s,m),V=u._offset-(G?v:0),U=x(u,s,\\\"left\\\"),q=x(u,s,\\\"right\\\"),!(W=!u._anchorAxis||i!==u._mainSubplot)||\\\"allticks\\\"!==u.mirror&&\\\"all\\\"!==u.mirror||(u._linepositions[i]=[U,q]),it=rt(u,tt,et),W&&u.showline&&(\\\"all\\\"===u.mirror||\\\"allticks\\\"===u.mirror)&&(it+=tt(U)+tt(q)),a.ylines.style(\\\"stroke-width\\\",u._lw+\\\"px\\\").call(l.stroke,u.showline?u.linecolor:\\\"rgba(0,0,0,0)\\\")),a.ylines.attr(\\\"d\\\",it)}return h.makeClipPaths(t),t._promises.length&&Promise.all(t._promises)}function b(t,e){var r=e._subplots,n=r.cartesian.concat(r.gl2d||[]),i={_fullLayout:e},a=\\\"x\\\"===t._id.charAt(0),o=t._mainAxis._anchorAxis,s=\\\"\\\",l=\\\"\\\",c=\\\"\\\";if(o&&(c=o._mainAxis._id,s=a?t._id+c:c+t._id),!s||!e._plots[s]){s=\\\"\\\";for(var u=0;u<n.length;u++){var f=n[u],p=f.indexOf(\\\"y\\\"),d=a?f.substr(0,p):f.substr(p),g=a?f.substr(p):f.substr(0,p);if(d===t._id){l||(l=f);var v=h.getFromId(i,g);if(c&&v.overlaying===c){s=f;break}}}}return s||l}function _(t,e){return(t.ticks||t.showline)&&(e===t._mainSubplot||\\\"all\\\"===t.mirror||\\\"allticks\\\"===t.mirror)}function w(t,e,r){if(!r.showline||!r._lw)return!1;if(\\\"all\\\"===r.mirror||\\\"allticks\\\"===r.mirror)return!0;var n=r._anchorAxis;if(!n)return!1;var i=p.FROM_BL[e];return r.side===e?n.domain[i]===t.domain[i]:r.mirror&&n.domain[1-i]===t.domain[1-i]}function k(t,e,r,n){if(w(t,e,r))return r._lw;for(var i=0;i<n.length;i++){var a=n[i];if(a._mainAxis===r._mainAxis&&w(t,e,a))return a._lw}return 0}r.layoutStyles=function(t){return o.syncOrAsync([a.doAutoMargin,x],t)},r.drawMainTitle=function(t){var e=t._fullLayout;u.draw(t,\\\"gtitle\\\",{propContainer:e,propName:\\\"title\\\",placeholder:e._dfltTitle.plot,attributes:{x:e.width/2,y:e._size.t/2,\\\"text-anchor\\\":\\\"middle\\\"}})},r.doTraceStyle=function(t){var e,n=t.calcdata,o=[];for(e=0;e<n.length;e++){var l=n[e],c=l[0]||{},u=c.trace||{},f=u._module||{},h=f.arraysToCalcdata;h&&h(l,u);var p=f.editStyle;p&&o.push({fn:p,cd0:c})}if(o.length){for(e=0;e<o.length;e++){var d=o[e];d.fn(t,d.cd0)}s(t),r.redrawReglTraces(t)}return a.style(t),i.getComponentMethod(\\\"legend\\\",\\\"draw\\\")(t),a.previousPromises(t)},r.doColorBars=function(t){for(var e=0;e<t.calcdata.length;e++){var r=t.calcdata[e][0];if((r.t||{}).cb){var n=r.trace,o=r.t.cb;i.traceIs(n,\\\"contour\\\")&&o.line({width:!1!==n.contours.showlines?n.line.width:0,dash:n.line.dash,color:\\\"line\\\"===n.contours.coloring?o._opts.line.color:n.line.color});var s=n._module.colorbar.container,l=(s?n[s]:n).colorbar;o.options(l)()}}return a.previousPromises(t)},r.layoutReplot=function(t){var e=t.layout;return t.layout=void 0,i.call(\\\"plot\\\",t,\\\"\\\",e)},r.doLegend=function(t){return i.getComponentMethod(\\\"legend\\\",\\\"draw\\\")(t),a.previousPromises(t)},r.doTicksRelayout=function(t){return h.doTicks(t,\\\"redraw\\\"),t._fullLayout._hasOnlyLargeSploms&&(i.subplotsRegistry.splom.updateGrid(t),s(t),r.redrawReglTraces(t)),r.drawMainTitle(t),a.previousPromises(t)},r.doModeBar=function(t){var e=t._fullLayout;f.manage(t);for(var r=0;r<e._basePlotModules.length;r++){var n=e._basePlotModules[r].updateFx;n&&n(t)}return a.previousPromises(t)},r.doCamera=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=0;n<r.length;n++){var i=e[r[n]];i._scene.setCamera(i.camera)}},r.drawData=function(t){var e,n=t._fullLayout,o=t.calcdata;for(e=0;e<o.length;e++){var l=o[e][0].trace;!0===l.visible&&l._module.colorbar||n._infolayer.select(\\\".cb\\\"+l.uid).remove()}s(t);var c=n._basePlotModules;for(e=0;e<c.length;e++)c[e].plot(t);return r.redrawReglTraces(t),a.style(t),i.getComponentMethod(\\\"shapes\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"annotations\\\",\\\"draw\\\")(t),n._replotting=!1,a.previousPromises(t)},r.redrawReglTraces=function(t){var e=t._fullLayout;if(e._has(\\\"regl\\\")){var r,n,i=t._fullData,a=[],s=[];for(e._hasOnlyLargeSploms&&e._splomGrid.draw(),r=0;r<i.length;r++){var l=i[r];!0===l.visible&&(\\\"splom\\\"===l.type?e._splomScenes[l.uid].draw():\\\"scattergl\\\"===l.type?o.pushUnique(a,l.xaxis+l.yaxis):\\\"scatterpolargl\\\"===l.type&&o.pushUnique(s,l.subplot))}for(r=0;r<a.length;r++)(n=e._plots[a[r]])._scene&&n._scene.draw();for(r=0;r<s.length;r++)(n=e[s[r]]._subplot)._scene&&n._scene.draw()}},r.doAutoRangeAndConstraints=function(t){for(var e=h.list(t,\\\"\\\",!0),r=0;r<e.length;r++){var n=e[r];v(t,n),m(t,n)}g(t)},r.finalDraw=function(t){i.getComponentMethod(\\\"shapes\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"images\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"annotations\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"rangeslider\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"rangeselector\\\",\\\"draw\\\")(t)},r.drawMarginPushers=function(t){i.getComponentMethod(\\\"legend\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"rangeselector\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"sliders\\\",\\\"draw\\\")(t),i.getComponentMethod(\\\"updatemenus\\\",\\\"draw\\\")(t)}},{\\\"../components/color\\\":570,\\\"../components/drawing\\\":595,\\\"../components/modebar\\\":633,\\\"../components/titles\\\":661,\\\"../constants/alignment\\\":668,\\\"../lib\\\":696,\\\"../lib/clear_gl_canvases\\\":680,\\\"../plots/cartesian/autorange\\\":743,\\\"../plots/cartesian/axes\\\":744,\\\"../plots/cartesian/constraints\\\":752,\\\"../plots/plots\\\":808,\\\"../registry\\\":827,d3:148}],736:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=n.isPlainObject,a=t(\\\"./plot_schema\\\"),o=t(\\\"../plots/plots\\\"),s=t(\\\"../plots/attributes\\\"),l=t(\\\"./plot_template\\\"),c=t(\\\"./plot_config\\\");function u(t,e){t=n.extendDeep({},t);var r,a,o=Object.keys(t).sort();function s(e,r,n){if(i(r)&&i(e))u(e,r);else if(Array.isArray(r)&&Array.isArray(e)){var o=l.arrayTemplater({_template:t},n);for(a=0;a<r.length;a++){var s=r[a],c=o.newItem(s)._template;c&&u(c,s)}var f=o.defaultItems();for(a=0;a<f.length;a++)r.push(f[a]._template);for(a=0;a<r.length;a++)delete r[a].templateitemname}}for(r=0;r<o.length;r++){var c=o[r],h=t[c];if(c in e?s(h,e[c],c):e[c]=h,f(c)===c)for(var p in e){var d=f(p);p===d||d!==c||p in t||s(h,e[p],c)}}}function f(t){return t.replace(/[0-9]+$/,\\\"\\\")}function h(t,e,r,a,o){var s=o&&r(o);for(var c in t){var u=t[c],d=p(t,c,a),g=p(t,c,o),v=r(g);if(!v){var m=f(c);m!==c&&(v=r(g=p(t,m,o)))}if((!s||s!==v)&&!(!v||v._noTemplating||\\\"data_array\\\"===v.valType||v.arrayOk&&Array.isArray(u)))if(!v.valType&&i(u))h(u,e,r,d,g);else if(v._isLinkedToArray&&Array.isArray(u))for(var y=!1,x=0,b={},_=0;_<u.length;_++){var w=u[_];if(i(w)){var k=w.name;if(k)b[k]||(h(w,e,r,p(u,x,d),p(u,x,g)),x++,b[k]=1);else if(!y){var M=p(t,l.arrayDefaultKey(c),a),A=p(u,x,d);h(w,e,r,A,p(u,x,g));var T=n.nestedProperty(e,A);n.nestedProperty(e,M).set(T.get()),T.set(null),y=!0}}}else{n.nestedProperty(e,d).set(u)}}}function p(t,e,r){return r?Array.isArray(t)?r+\\\"[\\\"+e+\\\"]\\\":r+\\\".\\\"+e:e}function d(t){for(var e=0;e<t.length;e++)if(i(t[e]))return!0}function g(t){var e;switch(t.code){case\\\"data\\\":e=\\\"The template has no key data.\\\";break;case\\\"layout\\\":e=\\\"The template has no key layout.\\\";break;case\\\"missing\\\":e=t.path?\\\"There are no templates for item \\\"+t.path+\\\" with name \\\"+t.templateitemname:\\\"There are no templates for trace \\\"+t.index+\\\", of type \\\"+t.traceType+\\\".\\\";break;case\\\"unused\\\":e=t.path?\\\"The template item at \\\"+t.path+\\\" was not used in constructing the plot.\\\":t.dataCount?\\\"Some of the templates of type \\\"+t.traceType+\\\" were not used. The template has \\\"+t.templateCount+\\\" traces, the data only has \\\"+t.dataCount+\\\" of this type.\\\":\\\"The template has \\\"+t.templateCount+\\\" traces of type \\\"+t.traceType+\\\" but there are none in the data.\\\";break;case\\\"reused\\\":e=\\\"Some of the templates of type \\\"+t.traceType+\\\" were used more than once. The template has \\\"+t.templateCount+\\\" traces, the data has \\\"+t.dataCount+\\\" of this type.\\\"}return t.msg=e,t}r.makeTemplate=function(t){t=n.extendDeep({_context:c},{data:t.data,layout:t.layout}),o.supplyDefaults(t);var e=t.data||[],r=t.layout||{};r._basePlotModules=t._fullLayout._basePlotModules,r._modules=t._fullLayout._modules;var l={data:{},layout:{}};e.forEach(function(t){var e={};h(t,e,function(t,e){return a.getTraceValObject(t,n.nestedProperty({},e).parts)}.bind(null,t));var r=n.coerce(t,{},s,\\\"type\\\"),i=l.data[r];i||(i=l.data[r]=[]),i.push(e)}),h(r,l.layout,function(t,e){return a.getLayoutValObject(t,n.nestedProperty({},e).parts)}.bind(null,r)),delete l.layout.template;var f=r.template;if(i(f)){var p,d,g,v,m,y,x=f.layout;i(x)&&u(x,l.layout);var b=f.data;if(i(b)){for(d in l.data)if(g=b[d],Array.isArray(g)){for(y=(m=l.data[d]).length,v=g.length,p=0;p<y;p++)u(g[p%v],m[p]);for(p=y;p<v;p++)m.push(n.extendDeep({},g[p]))}for(d in b)d in l.data||(l.data[d]=n.extendDeep([],b[d]))}}return l},r.validateTemplate=function(t,e){var r=n.extendDeep({},{_context:c,data:t.data,layout:t.layout}),a=r.layout||{};i(e)||(e=a.template||{});var s=e.layout,l=e.data,u=[];r.layout=a,r.layout.template=e,o.supplyDefaults(r);var h=r._fullLayout,v=r._fullData,m={};if(i(s)?(!function t(e,r){for(var n in e)if(\\\"_\\\"!==n.charAt(0)&&i(e[n])){var a,o=f(n),s=[];for(a=0;a<r.length;a++)s.push(p(e,n,r[a])),o!==n&&s.push(p(e,o,r[a]));for(a=0;a<s.length;a++)m[s[a]]=1;t(e[n],s)}}(h,[\\\"layout\\\"]),function t(e,r){for(var n in e)if(-1===n.indexOf(\\\"defaults\\\")&&i(e[n])){var a=p(e,n,r);m[a]?t(e[n],a):u.push({code:\\\"unused\\\",path:a})}}(s,\\\"layout\\\")):u.push({code:\\\"layout\\\"}),i(l)){for(var y,x={},b=0;b<v.length;b++){var _=v[b];x[y=_.type]=(x[y]||0)+1,_._fullInput._template||u.push({code:\\\"missing\\\",index:_._fullInput.index,traceType:y})}for(y in l){var w=l[y].length,k=x[y]||0;w>k?u.push({code:\\\"unused\\\",traceType:y,templateCount:w,dataCount:k}):k>w&&u.push({code:\\\"reused\\\",traceType:y,templateCount:w,dataCount:k})}}else u.push({code:\\\"data\\\"});if(function t(e,r){for(var n in e)if(\\\"_\\\"!==n.charAt(0)){var a=e[n],o=p(e,n,r);i(a)?(Array.isArray(e)&&!1===a._template&&a.templateitemname&&u.push({code:\\\"missing\\\",path:o,templateitemname:a.templateitemname}),t(a,o)):Array.isArray(a)&&d(a)&&t(a,o)}}({data:v,layout:h},\\\"\\\"),u.length)return u.map(g)}},{\\\"../lib\\\":696,\\\"../plots/attributes\\\":741,\\\"../plots/plots\\\":808,\\\"./plot_config\\\":732,\\\"./plot_schema\\\":733,\\\"./plot_template\\\":734}],737:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./plot_api\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../snapshot/helpers\\\"),o=t(\\\"../snapshot/tosvg\\\"),s=t(\\\"../snapshot/svgtoimg\\\"),l={format:{valType:\\\"enumerated\\\",values:[\\\"png\\\",\\\"jpeg\\\",\\\"webp\\\",\\\"svg\\\"],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}},c=/^data:image\\\\/\\\\w+;base64,/;e.exports=function(t,e){var r,u,f;function h(t){return!(t in e)||i.validate(e[t],l[t])}if(e=e||{},i.isPlainObject(t)?(r=t.data||[],u=t.layout||{},f=t.config||{}):(t=i.getGraphDiv(t),r=i.extendDeep([],t.data),u=i.extendDeep({},t.layout),f=t._context),!h(\\\"width\\\")||!h(\\\"height\\\"))throw new Error(\\\"Height and width should be pixel values.\\\");if(!h(\\\"format\\\"))throw new Error(\\\"Image format is not jpeg, png, svg or webp.\\\");var p={};function d(t,r){return i.coerce(e,p,l,t,r)}var g=d(\\\"format\\\"),v=d(\\\"width\\\"),m=d(\\\"height\\\"),y=d(\\\"scale\\\"),x=d(\\\"setBackground\\\"),b=d(\\\"imageDataOnly\\\"),_=document.createElement(\\\"div\\\");_.style.position=\\\"absolute\\\",_.style.left=\\\"-5000px\\\",document.body.appendChild(_);var w=i.extendFlat({},u);v&&(w.width=v),m&&(w.height=m);var k=i.extendFlat({},f,{staticPlot:!0,setBackground:x}),M=a.getRedrawFunc(_);function A(){return new Promise(function(t){setTimeout(t,a.getDelay(_._fullLayout))})}function T(){return new Promise(function(t,e){var r=o(_,g,y),a=_._fullLayout.width,l=_._fullLayout.height;if(n.purge(_),document.body.removeChild(_),\\\"svg\\\"===g)return t(b?r:\\\"data:image/svg+xml,\\\"+encodeURIComponent(r));var c=document.createElement(\\\"canvas\\\");c.id=i.randstr(),s({format:g,width:a,height:l,scale:y,canvas:c,svg:r,promise:!0}).then(t).catch(e)})}return new Promise(function(t,e){n.plot(_,r,w,k).then(M).then(A).then(T).then(function(e){t(function(t){return b?t.replace(c,\\\"\\\"):t}(e))}).catch(function(t){e(t)})})}},{\\\"../lib\\\":696,\\\"../snapshot/helpers\\\":831,\\\"../snapshot/svgtoimg\\\":833,\\\"../snapshot/tosvg\\\":835,\\\"./plot_api\\\":731}],738:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plots/plots\\\"),a=t(\\\"./plot_schema\\\"),o=t(\\\"./plot_config\\\"),s=n.isPlainObject,l=Array.isArray,c=n.isArrayOrTypedArray;function u(t,e,r,i,a,o){o=o||[];for(var f=Object.keys(t),h=0;h<f.length;h++){var v=f[h];if(\\\"transforms\\\"!==v){var m=o.slice();m.push(v);var y=t[v],x=e[v],b=g(r,v),_=\\\"info_array\\\"===(b||{}).valType,w=\\\"colorscale\\\"===(b||{}).valType,k=(b||{}).items;if(d(r,v))if(s(y)&&s(x))u(y,x,b,i,a,m);else if(_&&l(y)){y.length>x.length&&i.push(p(\\\"unused\\\",a,m.concat(x.length)));var M,A,T,S,E,C=x.length,L=Array.isArray(k);if(L&&(C=Math.min(C,k.length)),2===b.dimensions)for(A=0;A<C;A++)if(l(y[A])){y[A].length>x[A].length&&i.push(p(\\\"unused\\\",a,m.concat(A,x[A].length)));var z=x[A].length;for(M=0;M<(L?Math.min(z,k[A].length):z);M++)T=L?k[A][M]:k,S=y[A][M],E=x[A][M],n.validate(S,T)?E!==S&&E!==+S&&i.push(p(\\\"dynamic\\\",a,m.concat(A,M),S,E)):i.push(p(\\\"value\\\",a,m.concat(A,M),S))}else i.push(p(\\\"array\\\",a,m.concat(A),y[A]));else for(A=0;A<C;A++)T=L?k[A]:k,S=y[A],E=x[A],n.validate(S,T)?E!==S&&E!==+S&&i.push(p(\\\"dynamic\\\",a,m.concat(A),S,E)):i.push(p(\\\"value\\\",a,m.concat(A),S))}else if(b.items&&!_&&l(y)){var O,I,P=k[Object.keys(k)[0]],D=[];for(O=0;O<x.length;O++){var R=x[O]._index||O;if((I=m.slice()).push(R),s(y[R])&&s(x[O])){D.push(R);var B=y[R],F=x[O];s(B)&&!1!==B.visible&&!1===F.visible?i.push(p(\\\"invisible\\\",a,I)):u(B,F,P,i,a,I)}}for(O=0;O<y.length;O++)(I=m.slice()).push(O),s(y[O])?-1===D.indexOf(O)&&i.push(p(\\\"unused\\\",a,I)):i.push(p(\\\"object\\\",a,I,y[O]))}else!s(y)&&s(x)?i.push(p(\\\"object\\\",a,m,y)):c(y)||!c(x)||_||w?v in e?n.validate(y,b)?\\\"enumerated\\\"===b.valType&&(b.coerceNumber&&y!==+x||y!==x)&&i.push(p(\\\"dynamic\\\",a,m,y,x)):i.push(p(\\\"value\\\",a,m,y)):i.push(p(\\\"unused\\\",a,m,y)):i.push(p(\\\"array\\\",a,m,y));else i.push(p(\\\"schema\\\",a,m))}}return i}e.exports=function(t,e){var r,c,f=a.get(),h=[],d={_context:n.extendFlat({},o)};l(t)?(d.data=n.extendDeep([],t),r=t):(d.data=[],r=[],h.push(p(\\\"array\\\",\\\"data\\\"))),s(e)?(d.layout=n.extendDeep({},e),c=e):(d.layout={},c={},arguments.length>1&&h.push(p(\\\"object\\\",\\\"layout\\\"))),i.supplyDefaults(d);for(var g=d._fullData,v=r.length,m=0;m<v;m++){var y=r[m],x=[\\\"data\\\",m];if(s(y)){var b=g[m],_=b.type,w=f.traces[_].attributes;w.type={valType:\\\"enumerated\\\",values:[_]},!1===b.visible&&!1!==y.visible&&h.push(p(\\\"invisible\\\",x)),u(y,b,w,h,x);var k=y.transforms,M=b.transforms;if(k){l(k)||h.push(p(\\\"array\\\",x,[\\\"transforms\\\"])),x.push(\\\"transforms\\\");for(var A=0;A<k.length;A++){var T=[\\\"transforms\\\",A],S=k[A].type;if(s(k[A])){var E=f.transforms[S]?f.transforms[S].attributes:{};E.type={valType:\\\"enumerated\\\",values:Object.keys(f.transforms)},u(k[A],M[A],E,h,x,T)}else h.push(p(\\\"object\\\",x,T))}}}else h.push(p(\\\"object\\\",x))}return u(c,d._fullLayout,function(t,e){for(var r=t.layout.layoutAttributes,i=0;i<e.length;i++){var a=e[i],o=t.traces[a.type],s=o.layoutAttributes;s&&(a.subplot?n.extendFlat(r[o.attributes.subplot.dflt],s):n.extendFlat(r,s))}return r}(f,g),h,\\\"layout\\\"),0===h.length?void 0:h};var f={object:function(t,e){return(\\\"layout\\\"===t&&\\\"\\\"===e?\\\"The layout argument\\\":\\\"data\\\"===t[0]&&\\\"\\\"===e?\\\"Trace \\\"+t[1]+\\\" in the data argument\\\":h(t)+\\\"key \\\"+e)+\\\" must be linked to an object container\\\"},array:function(t,e){return(\\\"data\\\"===t?\\\"The data argument\\\":h(t)+\\\"key \\\"+e)+\\\" must be linked to an array container\\\"},schema:function(t,e){return h(t)+\\\"key \\\"+e+\\\" is not part of the schema\\\"},unused:function(t,e,r){var n=s(r)?\\\"container\\\":\\\"key\\\";return h(t)+n+\\\" \\\"+e+\\\" did not get coerced\\\"},dynamic:function(t,e,r,n){return[h(t)+\\\"key\\\",e,\\\"(set to '\\\"+r+\\\"')\\\",\\\"got reset to\\\",\\\"'\\\"+n+\\\"'\\\",\\\"during defaults.\\\"].join(\\\" \\\")},invisible:function(t,e){return(e?h(t)+\\\"item \\\"+e:\\\"Trace \\\"+t[1])+\\\" got defaulted to be not visible\\\"},value:function(t,e,r){return[h(t)+\\\"key \\\"+e,\\\"is set to an invalid value (\\\"+r+\\\")\\\"].join(\\\" \\\")}};function h(t){return l(t)?\\\"In data trace \\\"+t[1]+\\\", \\\":\\\"In \\\"+t+\\\", \\\"}function p(t,e,r,i,a){var o,s;r=r||\\\"\\\",l(e)?(o=e[0],s=e[1]):(o=e,s=null);var c=function(t){if(!l(t))return String(t);for(var e=\\\"\\\",r=0;r<t.length;r++){var n=t[r];\\\"number\\\"==typeof n?e=e.substr(0,e.length-1)+\\\"[\\\"+n+\\\"]\\\":e+=n,r<t.length-1&&(e+=\\\".\\\")}return e}(r),u=f[t](e,c,i,a);return n.log(u),{code:t,container:o,trace:s,path:r,astr:c,msg:u}}function d(t,e){var r=m(e),n=r.keyMinusId,i=r.id;return!!(n in t&&t[n]._isSubplotObj&&i)||e in t}function g(t,e){return e in t?t[e]:t[m(e).keyMinusId]}var v=n.counterRegex(\\\"([a-z]+)\\\");function m(t){var e=t.match(v);return{keyMinusId:e&&e[1],id:e&&e[2]}}},{\\\"../lib\\\":696,\\\"../plots/plots\\\":808,\\\"./plot_config\\\":732,\\\"./plot_schema\\\":733}],739:[function(t,e,r){\\\"use strict\\\";e.exports={mode:{valType:\\\"enumerated\\\",dflt:\\\"afterall\\\",values:[\\\"immediate\\\",\\\"next\\\",\\\"afterall\\\"]},direction:{valType:\\\"enumerated\\\",values:[\\\"forward\\\",\\\"reverse\\\"],dflt:\\\"forward\\\"},fromcurrent:{valType:\\\"boolean\\\",dflt:!1},frame:{duration:{valType:\\\"number\\\",min:0,dflt:500},redraw:{valType:\\\"boolean\\\",dflt:!0}},transition:{duration:{valType:\\\"number\\\",min:0,dflt:500},easing:{valType:\\\"enumerated\\\",dflt:\\\"cubic-in-out\\\",values:[\\\"linear\\\",\\\"quad\\\",\\\"cubic\\\",\\\"sin\\\",\\\"exp\\\",\\\"circle\\\",\\\"elastic\\\",\\\"back\\\",\\\"bounce\\\",\\\"linear-in\\\",\\\"quad-in\\\",\\\"cubic-in\\\",\\\"sin-in\\\",\\\"exp-in\\\",\\\"circle-in\\\",\\\"elastic-in\\\",\\\"back-in\\\",\\\"bounce-in\\\",\\\"linear-out\\\",\\\"quad-out\\\",\\\"cubic-out\\\",\\\"sin-out\\\",\\\"exp-out\\\",\\\"circle-out\\\",\\\"elastic-out\\\",\\\"back-out\\\",\\\"bounce-out\\\",\\\"linear-in-out\\\",\\\"quad-in-out\\\",\\\"cubic-in-out\\\",\\\"sin-in-out\\\",\\\"exp-in-out\\\",\\\"circle-in-out\\\",\\\"elastic-in-out\\\",\\\"back-in-out\\\",\\\"bounce-in-out\\\"]}}}},{}],740:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plot_api/plot_template\\\");e.exports=function(t,e,r){var a,o,s=r.name,l=r.inclusionAttr||\\\"visible\\\",c=e[s],u=n.isArrayOrTypedArray(t[s])?t[s]:[],f=e[s]=[],h=i.arrayTemplater(e,s,l);for(a=0;a<u.length;a++){var p=u[a];n.isPlainObject(p)?o=h.newItem(p):(o=h.newItem({}))[l]=!1,o._index=a,!1!==o[l]&&r.handleItemDefaults(p,o,e,r),f.push(o)}var d=h.defaultItems();for(a=0;a<d.length;a++)(o=d[a])._index=f.length,r.handleItemDefaults({},o,e,r,{}),f.push(o);if(n.isArrayOrTypedArray(c)){var g=Math.min(c.length,f.length);for(a=0;a<g;a++)n.relinkPrivateKeys(f[a],c[a])}return f}},{\\\"../lib\\\":696,\\\"../plot_api/plot_template\\\":734}],741:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../components/fx/attributes\\\");e.exports={type:{valType:\\\"enumerated\\\",values:[],dflt:\\\"scatter\\\",editType:\\\"calc+clearAxisTypes\\\",_noTemplating:!0},visible:{valType:\\\"enumerated\\\",values:[!0,!1,\\\"legendonly\\\"],dflt:!0,editType:\\\"calc\\\"},showlegend:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"style\\\"},legendgroup:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"style\\\"},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1,editType:\\\"style\\\"},name:{valType:\\\"string\\\",editType:\\\"style\\\"},uid:{valType:\\\"string\\\",editType:\\\"plot\\\"},ids:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},customdata:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},selectedpoints:{valType:\\\"any\\\",editType:\\\"calc\\\"},hoverinfo:{valType:\\\"flaglist\\\",flags:[\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"text\\\",\\\"name\\\"],extras:[\\\"all\\\",\\\"none\\\",\\\"skip\\\"],arrayOk:!0,dflt:\\\"all\\\",editType:\\\"none\\\"},hoverlabel:n.hoverlabel,stream:{token:{valType:\\\"string\\\",noBlank:!0,strict:!0,editType:\\\"calc\\\"},maxpoints:{valType:\\\"number\\\",min:0,max:1e4,dflt:500,editType:\\\"calc\\\"},editType:\\\"calc\\\"},transforms:{_isLinkedToArray:\\\"transform\\\",editType:\\\"calc\\\"}}},{\\\"../components/fx/attributes\\\":604}],742:[function(t,e,r){\\\"use strict\\\";e.exports={xaxis:{valType:\\\"subplotid\\\",dflt:\\\"x\\\",editType:\\\"calc+clearAxisTypes\\\"},yaxis:{valType:\\\"subplotid\\\",dflt:\\\"y\\\",editType:\\\"calc+clearAxisTypes\\\"}}},{}],743:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").FP_SAFE;function o(t,e){var r,n,a=[],o=s(e),c=l(t,e),u=c.min,f=c.max;if(0===u.length||0===f.length)return i.simpleMap(e.range,e.r2l);var h=u[0].val,p=f[0].val;for(r=1;r<u.length&&h===p;r++)h=Math.min(h,u[r].val);for(r=1;r<f.length&&h===p;r++)p=Math.max(p,f[r].val);var d=!1;if(e.range){var g=i.simpleMap(e.range,e.r2l);d=g[1]<g[0]}\\\"reversed\\\"===e.autorange&&(d=!0,e.autorange=!0);var v,m,y,x,b,_,w=e.rangemode,k=\\\"tozero\\\"===w,M=\\\"nonnegative\\\"===w,A=e._length,T=A/10,S=0;for(r=0;r<u.length;r++)for(v=u[r],n=0;n<f.length;n++)(_=(m=f[n]).val-v.val)>0&&((b=A-o(v)-o(m))>T?_/b>S&&(y=v,x=m,S=_/b):_/A>S&&(y={val:v.val,pad:0},x={val:m.val,pad:0},S=_/A));if(h===p){var E=h-1,C=h+1;if(k)if(0===h)a=[0,1];else{var L=(h>0?f:u).reduce(function(t,e){return Math.max(t,o(e))},0),z=h/(1-Math.min(.5,L/A));a=h>0?[0,z]:[z,0]}else a=M?[Math.max(0,E),Math.max(1,C)]:[E,C]}else k?(y.val>=0&&(y={val:0,pad:0}),x.val<=0&&(x={val:0,pad:0})):M&&(y.val-S*o(y)<0&&(y={val:0,pad:0}),x.val<=0&&(x={val:1,pad:0})),S=(x.val-y.val)/(A-o(y)-o(x)),a=[y.val-S*o(y),x.val+S*o(x)];return d&&a.reverse(),i.simpleMap(a,e.l2r||Number)}function s(t){var e=t._length/20;return\\\"domain\\\"===t.constrain&&t._inputDomain&&(e*=(t._inputDomain[1]-t._inputDomain[0])/(t.domain[1]-t.domain[0])),function(t){return t.pad+(t.extrapad?e:0)}}function l(t,e){var r,n,i,a=e._id,o=t._fullData,s=t._fullLayout,l=[],f=[];function h(t,e){for(r=0;r<e.length;r++){var o=t[e[r]],s=(o._extremes||{})[a];if(!0===o.visible&&s){for(n=0;n<s.min.length;n++)i=s.min[n],c(l,i.val,i.pad,{extrapad:i.extrapad});for(n=0;n<s.max.length;n++)i=s.max[n],u(f,i.val,i.pad,{extrapad:i.extrapad})}}}return h(o,e._traceIndices),h(s.annotations||[],e._annIndices||[]),h(s.shapes||[],e._shapeIndices||[]),{min:l,max:f}}function c(t,e,r,n){f(t,e,r,n,p)}function u(t,e,r,n){f(t,e,r,n,d)}function f(t,e,r,n,i){for(var a=n.tozero,o=n.extrapad,s=!0,l=0;l<t.length&&s;l++){var c=t[l];if(i(c.val,e)&&c.pad>=r&&(c.extrapad||!o)){s=!1;break}i(e,c.val)&&c.pad<=r&&(o||!c.extrapad)&&(t.splice(l,1),l--)}if(s){var u=a&&0===e;t.push({val:e,pad:u?0:r,extrapad:!u&&o})}}function h(t){return n(t)&&Math.abs(t)<a}function p(t,e){return t<=e}function d(t,e){return t>=e}e.exports={getAutoRange:o,makePadFn:s,doAutoRange:function(t,e){e._length||e.setScale();var r;e.autorange&&(e.range=o(t,e),e._r=e.range.slice(),e._rl=i.simpleMap(e._r,e.r2l),(r=e._input).range=e.range.slice(),r.autorange=e.autorange);if(e._anchorAxis&&e._anchorAxis.rangeslider){var n=e._anchorAxis.rangeslider[e._name];n&&\\\"auto\\\"===n.rangemode&&(n.range=o(t,e)),(r=e._anchorAxis._input).rangeslider[e._name]=i.extendFlat({},n)}},findExtremes:function(t,e,r){r||(r={});t._m||t.setScale();var i,o,s,l,f,p,d,g,v,m=[],y=[],x=e.length,b=r.padded||!1,_=r.tozero&&(\\\"linear\\\"===t.type||\\\"-\\\"===t.type),w=\\\"log\\\"===t.type,k=!1;function M(t){if(Array.isArray(t))return k=!0,function(e){return Math.max(Number(t[e]||0),0)};var e=Math.max(Number(t||0),0);return function(){return e}}var A=M((t._m>0?r.ppadplus:r.ppadminus)||r.ppad||0),T=M((t._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),S=M(r.vpadplus||r.vpad),E=M(r.vpadminus||r.vpad);if(!k){if(g=1/0,v=-1/0,w)for(i=0;i<x;i++)(o=e[i])<g&&o>0&&(g=o),o>v&&o<a&&(v=o);else for(i=0;i<x;i++)(o=e[i])<g&&o>-a&&(g=o),o>v&&o<a&&(v=o);e=[g,v],x=2}var C={tozero:_,extrapad:b};function L(r){s=e[r],n(s)&&(p=A(r),d=T(r),g=s-E(r),v=s+S(r),w&&g<v/10&&(g=v/10),l=t.c2l(g),f=t.c2l(v),_&&(l=Math.min(0,l),f=Math.max(0,f)),h(l)&&c(m,l,d,C),h(f)&&u(y,f,p,C))}var z=Math.min(6,x);for(i=0;i<z;i++)L(i);for(i=x-1;i>=z;i--)L(i);return{min:m,max:y}},concatExtremes:l}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"fast-isnumeric\\\":214}],744:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../plots/plots\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../../components/titles\\\"),u=t(\\\"../../components/color\\\"),f=t(\\\"../../components/drawing\\\"),h=t(\\\"./layout_attributes\\\"),p=t(\\\"./clean_ticks\\\"),d=t(\\\"../../constants/numerical\\\"),g=d.ONEAVGYEAR,v=d.ONEAVGMONTH,m=d.ONEDAY,y=d.ONEHOUR,x=d.ONEMIN,b=d.ONESEC,_=d.MINUS_SIGN,w=d.BADNUM,k=t(\\\"../../constants/alignment\\\").MID_SHIFT,M=t(\\\"../../constants/alignment\\\").LINE_SPACING,A=e.exports={};A.setConvert=t(\\\"./set_convert\\\");var T=t(\\\"./axis_autotype\\\"),S=t(\\\"./axis_ids\\\");A.id2name=S.id2name,A.name2id=S.name2id,A.cleanId=S.cleanId,A.list=S.list,A.listIds=S.listIds,A.getFromId=S.getFromId,A.getFromTrace=S.getFromTrace;var E=t(\\\"./autorange\\\");A.getAutoRange=E.getAutoRange,A.findExtremes=E.findExtremes,A.coerceRef=function(t,e,r,n,i,a){var o=n.charAt(n.length-1),l=r._fullLayout._subplots[o+\\\"axis\\\"],c=n+\\\"ref\\\",u={};return i||(i=l[0]||a),a||(a=i),u[c]={valType:\\\"enumerated\\\",values:l.concat(a?[a]:[]),dflt:i},s.coerce(t,e,u,c)},A.coercePosition=function(t,e,r,n,i,a){var o,l;if(\\\"paper\\\"===n||\\\"pixel\\\"===n)o=s.ensureNumber,l=r(i,a);else{var c=A.getFromId(e,n);l=r(i,a=c.fraction2r(a)),o=c.cleanPos}t[i]=o(l)},A.cleanPosition=function(t,e,r){return(\\\"paper\\\"===r||\\\"pixel\\\"===r?s.ensureNumber:A.getFromId(e,r).cleanPos)(t)};var C=A.getDataConversions=function(t,e,r,n){var i,a=\\\"x\\\"===r||\\\"y\\\"===r||\\\"z\\\"===r?r:n;if(Array.isArray(a)){if(i={type:T(n),_categories:[]},A.setConvert(i),\\\"category\\\"===i.type)for(var o=0;o<n.length;o++)i.d2c(n[o])}else i=A.getFromTrace(t,e,a);return i?{d2c:i.d2c,c2d:i.c2d}:\\\"ids\\\"===a?{d2c:z,c2d:z}:{d2c:L,c2d:L}};function L(t){return+t}function z(t){return String(t)}A.getDataToCoordFunc=function(t,e,r,n){return C(t,e,r,n).d2c},A.counterLetter=function(t){var e=t.charAt(0);return\\\"x\\\"===e?\\\"y\\\":\\\"y\\\"===e?\\\"x\\\":void 0},A.minDtick=function(t,e,r,n){-1===[\\\"log\\\",\\\"category\\\"].indexOf(t.type)&&n?void 0===t._minDtick?(t._minDtick=e,t._forceTick0=r):t._minDtick&&((t._minDtick/e+1e-6)%1<2e-6&&((r-t._forceTick0)/e%1+1.000001)%1<2e-6?(t._minDtick=e,t._forceTick0=r):((e/t._minDtick+1e-6)%1>2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},A.saveRangeInitial=function(t,e){for(var r=A.list(t,\\\"\\\",!0),n=!1,i=0;i<r.length;i++){var a=r[i],o=void 0===a._rangeInitial,s=o||!(a.range[0]===a._rangeInitial[0]&&a.range[1]===a._rangeInitial[1]);(o&&!1===a.autorange||e&&s)&&(a._rangeInitial=a.range.slice(),n=!0)}return n},A.saveShowSpikeInitial=function(t,e){for(var r=A.list(t,\\\"\\\",!0),n=!1,i=\\\"on\\\",a=0;a<r.length;a++){var o=r[a],s=void 0===o._showSpikeInitial,l=s||!(o.showspikes===o._showspikes);(s||e&&l)&&(o._showSpikeInitial=o.showspikes,n=!0),\\\"on\\\"!==i||o.showspikes||(i=\\\"off\\\")}return t._fullLayout._cartesianSpikesEnabled=i,n},A.autoBin=function(t,e,r,n,a,o){var l,c=s.aggNums(Math.min,null,t),u=s.aggNums(Math.max,null,t);if(\\\"category\\\"===e.type)return{start:c-.5,end:u+.5,size:Math.max(1,Math.round(o)||1),_dataSpan:u-c};if(a||(a=e.calendar),l=\\\"log\\\"===e.type?{type:\\\"linear\\\",range:[c,u]}:{type:e.type,range:s.simpleMap([c,u],e.c2r,0,a),calendar:a},A.setConvert(l),o=o&&p.dtick(o,l.type))l.dtick=o,l.tick0=p.tick0(void 0,l.type,a);else{var f;if(r)f=(u-c)/r;else{var h=s.distinctVals(t),d=Math.pow(10,Math.floor(Math.log(h.minDiff)/Math.LN10)),g=d*s.roundUp(h.minDiff/d,[.9,1.9,4.9,9.9],!0);f=Math.max(g,2*s.stdev(t)/Math.pow(t.length,n?.25:.4)),i(f)||(f=1)}A.autoTicks(l,f)}var v,y=l.dtick,x=A.tickIncrement(A.tickFirst(l),y,\\\"reverse\\\",a);if(\\\"number\\\"==typeof y)v=(x=function(t,e,r,n,a){var o=0,s=0,l=0,c=0;function u(e){return(1+100*(e-t)/r.dtick)%100<2}for(var f=0;f<e.length;f++)e[f]%1==0?l++:i(e[f])||c++,u(e[f])&&o++,u(e[f]+r.dtick/2)&&s++;var h=e.length-c;if(l===h&&\\\"date\\\"!==r.type)r.dtick<1?t=n-.5*r.dtick:(t-=.5)+r.dtick<n&&(t+=r.dtick);else if(s<.1*h&&(o>.3*h||u(n)||u(a))){var p=r.dtick/2;t+=t+p<n?p:-p}return t}(x,t,l,c,u))+(1+Math.floor((u-x)/y))*y;else for(\\\"M\\\"===l.dtick.charAt(0)&&(x=function(t,e,r,n,i){var a=s.findExactDates(e,i);if(a.exactDays>.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=A.tickIncrement(t,\\\"M6\\\",\\\"reverse\\\")+1.5*m:a.exactMonths>.8?t=A.tickIncrement(t,\\\"M1\\\",\\\"reverse\\\")+15.5*m:t-=m/2;var l=A.tickIncrement(t,r);if(l<=n)return l}return t}(x,t,y,c,a)),v=x,0;v<=u;)v=A.tickIncrement(v,y,!1,a),0;return{start:e.c2r(x,0,a),end:e.c2r(v,0,a),size:y,_dataSpan:u-c}},A.prepTicks=function(t){var e=s.simpleMap(t.range,t.r2l);if(\\\"auto\\\"===t.tickmode||!t.dtick){var r,n=t.nticks;n||(\\\"category\\\"===t.type?(r=t.tickfont?1.2*(t.tickfont.size||12):15,n=t._length/r):(r=\\\"y\\\"===t._id.charAt(0)?40:80,n=s.constrain(t._length/r,4,9)+1),\\\"radialaxis\\\"===t._name&&(n*=2)),\\\"array\\\"===t.tickmode&&(n*=100),A.autoTicks(t,Math.abs(e[1]-e[0])/n),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}t.tick0||(t.tick0=\\\"date\\\"===t.type?\\\"2000-01-01\\\":0),\\\"date\\\"===t.type&&t.dtick<.1&&(t.dtick=.1),j(t)},A.calcTicks=function(t){A.prepTicks(t);var e=s.simpleMap(t.range,t.r2l);if(\\\"array\\\"===t.tickmode)return function(t){var e,r,n=t.tickvals,i=t.ticktext,a=new Array(n.length),o=s.simpleMap(t.range,t.r2l),l=1.0001*o[0]-1e-4*o[1],c=1.0001*o[1]-1e-4*o[0],u=Math.min(l,c),f=Math.max(l,c),h=0;Array.isArray(i)||(i=[]);var p=\\\"category\\\"===t.type?t.d2l_noadd:t.d2l;\\\"log\\\"===t.type&&\\\"L\\\"!==String(t.dtick).charAt(0)&&(t.dtick=\\\"L\\\"+Math.pow(10,Math.floor(Math.min(t.range[0],t.range[1]))-1));for(r=0;r<n.length;r++)(e=p(n[r]))>u&&e<f&&(void 0===i[r]?a[h]=A.tickText(t,e):a[h]=V(t,e,String(i[r])),h++);h<n.length&&a.splice(h,n.length-h);return a}(t);t._tmin=A.tickFirst(t);var r=1.0001*e[0]-1e-4*e[1],n=1.0001*e[1]-1e-4*e[0],i=e[1]<e[0];if(t._tmin<r!==i)return[];var a=[];\\\"category\\\"===t.type&&(n=i?Math.max(-.5,n):Math.min(t._categories.length-.5,n));for(var o=null,l=Math.max(1e3,t._length||0),c=t._tmin;(i?c>=n:c<=n)&&!(a.length>l||c===o);c=A.tickIncrement(c,t.dtick,i,t.calendar))o=c,a.push(c);$(t)&&360===Math.abs(e[1]-e[0])&&a.pop(),t._tmax=a[a.length-1],t._prevDateHead=\\\"\\\",t._inCalcTicks=!0;for(var u=new Array(a.length),f=0;f<a.length;f++)u[f]=A.tickText(t,a[f]);return t._inCalcTicks=!1,u};var O=[2,5,10],I=[1,2,3,6,12],P=[1,2,5,10,15,30],D=[1,2,3,7,14],R=[-.046,0,.301,.477,.602,.699,.778,.845,.903,.954,1],B=[-.301,0,.301,.699,1],F=[15,30,45,90,180];function N(t,e,r){return e*s.roundUp(t/e,r)}function j(t){var e=t.dtick;if(t._tickexponent=0,i(e)||\\\"string\\\"==typeof e||(e=1),\\\"category\\\"===t.type&&(t._tickround=null),\\\"date\\\"===t.type){var r=t.r2l(t.tick0),n=t.l2r(r).replace(/(^-|i)/g,\\\"\\\"),a=n.length;if(\\\"M\\\"===String(e).charAt(0))a>10||\\\"01-01\\\"!==n.substr(5)?t._tickround=\\\"d\\\":t._tickround=+e.substr(1)%12==0?\\\"y\\\":\\\"m\\\";else if(e>=m&&a<=10||e>=15*m)t._tickround=\\\"d\\\";else if(e>=x&&a<=16||e>=y)t._tickround=\\\"M\\\";else if(e>=b&&a<=19||e>=x)t._tickround=\\\"S\\\";else{var o=t.l2r(r+e).replace(/^-/,\\\"\\\").length;t._tickround=Math.max(a,o)-20,t._tickround<0&&(t._tickround=4)}}else if(i(e)||\\\"L\\\"===e.charAt(0)){var s=t.range.map(t.r2d||Number);i(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),c=Math.floor(Math.log(l)/Math.LN10+.01);Math.abs(c)>3&&(q(t.exponentformat)&&!H(c)?t._tickexponent=3*Math.round((c-1)/3):t._tickexponent=c)}else t._tickround=null}function V(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||\\\"\\\",fontSize:n.size,font:n.family,fontColor:n.color}}A.autoTicks=function(t,e){var r;function n(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if(\\\"date\\\"===t.type){t.tick0=s.dateTick0(t.calendar);var a=2*e;a>g?(e/=g,r=n(10),t.dtick=\\\"M\\\"+12*N(e,r,O)):a>v?(e/=v,t.dtick=\\\"M\\\"+N(e,1,I)):a>m?(t.dtick=N(e,m,D),t.tick0=s.dateTick0(t.calendar,!0)):a>y?t.dtick=N(e,y,I):a>x?t.dtick=N(e,x,P):a>b?t.dtick=N(e,b,P):(r=n(10),t.dtick=N(e,r,O))}else if(\\\"log\\\"===t.type){t.tick0=0;var o=s.simpleMap(t.range,t.r2l);if(e>.7)t.dtick=Math.ceil(e);else if(Math.abs(o[1]-o[0])<1){var l=1.5*Math.abs((o[1]-o[0])/e);e=Math.abs(Math.pow(10,o[1])-Math.pow(10,o[0]))/l,r=n(10),t.dtick=\\\"L\\\"+N(e,r,O)}else t.dtick=e>.3?\\\"D2\\\":\\\"D1\\\"}else\\\"category\\\"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):$(t)?(t.tick0=0,r=1,t.dtick=N(e,r,F)):(t.tick0=0,r=n(10),t.dtick=N(e,r,O));if(0===t.dtick&&(t.dtick=1),!i(t.dtick)&&\\\"string\\\"!=typeof t.dtick){var c=t.dtick;throw t.dtick=1,\\\"ax.dtick error: \\\"+String(c)}},A.tickIncrement=function(t,e,r,a){var o=r?-1:1;if(i(e))return t+o*e;var l=e.charAt(0),c=o*Number(e.substr(1));if(\\\"M\\\"===l)return s.incrementMonth(t,c,a);if(\\\"L\\\"===l)return Math.log(Math.pow(10,t)+c)/Math.LN10;if(\\\"D\\\"===l){var u=\\\"D2\\\"===e?B:R,f=t+.01*o,h=s.roundUp(s.mod(f,1),u,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,h),1))/Math.LN10}throw\\\"unrecognized dtick \\\"+String(e)},A.tickFirst=function(t){var e=t.r2l||Number,r=s.simpleMap(t.range,e),a=r[1]<r[0],o=a?Math.floor:Math.ceil,l=1.0001*r[0]-1e-4*r[1],c=t.dtick,u=e(t.tick0);if(i(c)){var f=o((l-u)/c)*c+u;return\\\"category\\\"===t.type&&(f=s.constrain(f,0,t._categories.length-1)),f}var h=c.charAt(0),p=Number(c.substr(1));if(\\\"M\\\"===h){for(var d,g,v,m=0,y=u;m<10;){if(((d=A.tickIncrement(y,c,a,t.calendar))-l)*(y-l)<=0)return a?Math.min(y,d):Math.max(y,d);g=(l-(y+d)/2)/(d-y),v=h+(Math.abs(Math.round(g))||1)*p,y=A.tickIncrement(y,v,g<0?!a:a,t.calendar),m++}return s.error(\\\"tickFirst did not converge\\\",t),y}if(\\\"L\\\"===h)return Math.log(o((Math.pow(10,l)-u)/p)*p+u)/Math.LN10;if(\\\"D\\\"===h){var x=\\\"D2\\\"===c?B:R,b=s.roundUp(s.mod(l,1),x,a);return Math.floor(l)+Math.log(n.round(Math.pow(10,b),1))/Math.LN10}throw\\\"unrecognized dtick \\\"+String(c)},A.tickText=function(t,e,r){var n,a,o=V(t,e),l=\\\"array\\\"===t.tickmode,c=r||l,u=\\\"category\\\"===t.type?t.d2l_noadd:t.d2l;if(l&&Array.isArray(t.ticktext)){var f=s.simpleMap(t.range,t.r2l),h=Math.abs(f[1]-f[0])/1e4;for(a=0;a<t.ticktext.length&&!(Math.abs(e-u(t.tickvals[a]))<h);a++);if(a<t.ticktext.length)return o.text=String(t.ticktext[a]),o}function p(n){var i;return void 0===n||(r?\\\"none\\\"===n:(i={first:t._tmin,last:t._tmax}[n],\\\"all\\\"!==n&&e!==i))}return n=r?\\\"never\\\":\\\"none\\\"!==t.exponentformat&&p(t.showexponent)?\\\"hide\\\":\\\"\\\",\\\"date\\\"===t.type?function(t,e,r,n){var a=t._tickround,o=r&&t.hoverformat||A.getTickFormat(t);n&&(a=i(a)?4:{y:\\\"m\\\",m:\\\"d\\\",d:\\\"M\\\",M:\\\"S\\\",S:4}[a]);var l,c=s.formatDate(e.x,o,a,t._dateFormat,t.calendar,t._extraFormat),u=c.indexOf(\\\"\\\\n\\\");-1!==u&&(l=c.substr(u+1),c=c.substr(0,u));n&&(\\\"00:00:00\\\"===c||\\\"00:00\\\"===c?(c=l,l=\\\"\\\"):8===c.length&&(c=c.replace(/:00$/,\\\"\\\")));l&&(r?\\\"d\\\"===a?c+=\\\", \\\"+l:c=l+(c?\\\", \\\"+c:\\\"\\\"):t._inCalcTicks&&l===t._prevDateHead||(c+=\\\"<br>\\\"+l,t._prevDateHead=l));e.text=c}(t,o,r,c):\\\"log\\\"===t.type?function(t,e,r,n,a){var o=t.dtick,l=e.x,c=t.tickformat,u=\\\"string\\\"==typeof o&&o.charAt(0);\\\"never\\\"===a&&(a=\\\"\\\");n&&\\\"L\\\"!==u&&(o=\\\"L3\\\",u=\\\"L\\\");if(c||\\\"L\\\"===u)e.text=G(Math.pow(10,l),t,a,n);else if(i(o)||\\\"D\\\"===u&&s.mod(l+.01,1)<.1){var f=Math.round(l),h=Math.abs(f),p=t.exponentformat;\\\"power\\\"===p||q(p)&&H(f)?(e.text=0===f?1:1===f?\\\"10\\\":\\\"10<sup>\\\"+(f>1?\\\"\\\":_)+h+\\\"</sup>\\\",e.fontSize*=1.25):(\\\"e\\\"===p||\\\"E\\\"===p)&&h>2?e.text=\\\"1\\\"+p+(f>0?\\\"+\\\":_)+h:(e.text=G(Math.pow(10,l),t,\\\"\\\",\\\"fakehover\\\"),\\\"D1\\\"===o&&\\\"y\\\"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if(\\\"D\\\"!==u)throw\\\"unrecognized dtick \\\"+String(o);e.text=String(Math.round(Math.pow(10,s.mod(l,1)))),e.fontSize*=.75}if(\\\"D1\\\"===t.dtick){var d=String(e.text).charAt(0);\\\"0\\\"!==d&&\\\"1\\\"!==d||(\\\"y\\\"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(l<0?.5:.25)))}}(t,o,0,c,n):\\\"category\\\"===t.type?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r=\\\"\\\");e.text=String(r)}(t,o):$(t)?function(t,e,r,n,i){if(\\\"radians\\\"!==t.thetaunit||r)e.text=G(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text=\\\"0\\\";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){var r=1;for(;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=G(s.deg2rad(e.x),t,i,n);else{var l=e.x<0;1===o[1]?1===o[0]?e.text=\\\"\\\\u03c0\\\":e.text=o[0]+\\\"\\\\u03c0\\\":e.text=[\\\"<sup>\\\",o[0],\\\"</sup>\\\",\\\"\\\\u2044\\\",\\\"<sub>\\\",o[1],\\\"</sub>\\\",\\\"\\\\u03c0\\\"].join(\\\"\\\"),l&&(e.text=_+e.text)}}}}(t,o,r,c,n):function(t,e,r,n,i){\\\"never\\\"===i?i=\\\"\\\":\\\"all\\\"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i=\\\"hide\\\");e.text=G(e.x,t,i,n)}(t,o,0,c,n),t.tickprefix&&!p(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!p(t.showticksuffix)&&(o.text+=t.ticksuffix),o},A.hoverLabelText=function(t,e,r){if(r!==w&&r!==e)return A.hoverLabelText(t,e)+\\\" - \\\"+A.hoverLabelText(t,r);var n=\\\"log\\\"===t.type&&e<=0,i=A.tickText(t,t.c2l(n?-e:e),\\\"hover\\\").text;return n?0===e?\\\"0\\\":_+i:i};var U=[\\\"f\\\",\\\"p\\\",\\\"n\\\",\\\"\\\\u03bc\\\",\\\"m\\\",\\\"\\\",\\\"k\\\",\\\"M\\\",\\\"G\\\",\\\"T\\\"];function q(t){return\\\"SI\\\"===t||\\\"B\\\"===t}function H(t){return t>14||t<-15}function G(t,e,r,n){var a=t<0,o=e._tickround,l=r||e.exponentformat||\\\"B\\\",c=e._tickexponent,u=A.getTickFormat(e),f=e.separatethousands;if(n){var h={exponentformat:l,dtick:\\\"none\\\"===e.showexponent?e.dtick:i(t)&&Math.abs(t)||1,range:\\\"none\\\"===e.showexponent?e.range.map(e.r2d):[0,t||1]};j(h),o=(Number(h._tickround)||0)+4,c=h._tickexponent,e.hoverformat&&(u=e.hoverformat)}if(u)return e._numFormat(u)(t).replace(/-/g,_);var p,d=Math.pow(10,-o)/2;if(\\\"none\\\"===l&&(c=0),(t=Math.abs(t))<d)t=\\\"0\\\",a=!1;else{if(t+=d,c&&(t*=Math.pow(10,-c),o+=c),0===o)t=String(Math.floor(t));else if(o<0){t=(t=String(Math.round(t))).substr(0,t.length+o);for(var g=o;g<0;g++)t+=\\\"0\\\"}else{var v=(t=String(t)).indexOf(\\\".\\\")+1;v&&(t=t.substr(0,v+o).replace(/\\\\.?0+$/,\\\"\\\"))}t=s.numSeparate(t,e._separators,f)}c&&\\\"hide\\\"!==l&&(q(l)&&H(c)&&(l=\\\"power\\\"),p=c<0?_+-c:\\\"power\\\"!==l?\\\"+\\\"+c:String(c),\\\"e\\\"===l||\\\"E\\\"===l?t+=l+p:\\\"power\\\"===l?t+=\\\"\\\\xd710<sup>\\\"+p+\\\"</sup>\\\":\\\"B\\\"===l&&9===c?t+=\\\"B\\\":q(l)&&(t+=U[c/3+5]));return a?_+t:t}function W(t,e){var r=t.l2p(e);return r>1&&r<t._length-1}function Y(t,e){for(var r=0;r<e.length;r++)-1===t.indexOf(e[r])&&t.push(e[r])}function X(t,e,r){var n,i,a=[],o=[],l=t.layout;for(n=0;n<e.length;n++)a.push(A.getFromId(t,e[n]));for(n=0;n<r.length;n++)o.push(A.getFromId(t,r[n]));var c=Object.keys(h),u=[\\\"anchor\\\",\\\"domain\\\",\\\"overlaying\\\",\\\"position\\\",\\\"side\\\",\\\"tickangle\\\",\\\"editType\\\"],f=[\\\"linear\\\",\\\"log\\\"];for(n=0;n<c.length;n++){var p=c[n],d=a[0][p],g=o[0][p],v=!0,m=!1,y=!1;if(\\\"_\\\"!==p.charAt(0)&&\\\"function\\\"!=typeof d&&-1===u.indexOf(p)){for(i=1;i<a.length&&v;i++){var x=a[i][p];\\\"type\\\"===p&&-1!==f.indexOf(d)&&-1!==f.indexOf(x)&&d!==x?m=!0:x!==d&&(v=!1)}for(i=1;i<o.length&&v;i++){var b=o[i][p];\\\"type\\\"===p&&-1!==f.indexOf(g)&&-1!==f.indexOf(b)&&g!==b?y=!0:o[i][p]!==g&&(v=!1)}v&&(m&&(l[a[0]._name].type=\\\"linear\\\"),y&&(l[o[0]._name].type=\\\"linear\\\"),Z(l,p,a,o,t._fullLayout._dfltTitle))}}for(n=0;n<t._fullLayout.annotations.length;n++){var _=t._fullLayout.annotations[n];-1!==e.indexOf(_.xref)&&-1!==r.indexOf(_.yref)&&s.swapAttrs(l.annotations[n],[\\\"?\\\"])}}function Z(t,e,r,n,i){var a,o=s.nestedProperty,l=o(t[r[0]._name],e).get(),c=o(t[n[0]._name],e).get();for(\\\"title\\\"===e&&(l===i.x&&(l=i.y),c===i.y&&(c=i.x)),a=0;a<r.length;a++)o(t,r[a]._name+\\\".\\\"+e).set(c);for(a=0;a<n.length;a++)o(t,n[a]._name+\\\".\\\"+e).set(l)}function $(t){return\\\"angularaxis\\\"===t._id}A.getTickFormat=function(t){var e,r,n,i,a,o,s,l;function c(t){return\\\"string\\\"!=typeof t?t:Number(t.replace(\\\"M\\\",\\\"\\\"))*v}function u(t,e){var r=[\\\"L\\\",\\\"D\\\"];if(typeof t==typeof e){if(\\\"number\\\"==typeof t)return t-e;var n=r.indexOf(t.charAt(0)),i=r.indexOf(e.charAt(0));return n===i?Number(t.replace(/(L|D)/g,\\\"\\\"))-Number(e.replace(/(L|D)/g,\\\"\\\")):n-i}return\\\"number\\\"==typeof t?1:-1}function f(t,e){var r=null===e[0],n=null===e[1],i=u(t,e[0])>=0,a=u(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case\\\"date\\\":case\\\"linear\\\":for(e=0;e<t.tickformatstops.length;e++)if((n=t.tickformatstops[e]).enabled&&(i=t.dtick,a=n.dtickrange,o=void 0,void 0,void 0,o=c||function(t){return t},s=a[0],l=a[1],(!s&&\\\"number\\\"!=typeof s||o(s)<=o(i))&&(!l&&\\\"number\\\"!=typeof l||o(l)>=o(i)))){r=n;break}break;case\\\"log\\\":for(e=0;e<t.tickformatstops.length;e++)if((n=t.tickformatstops[e]).enabled&&f(t.dtick,n.dtickrange)){r=n;break}}return r?r.value:t.tickformat},A.getSubplots=function(t,e){var r=t._fullLayout._subplots,n=r.cartesian.concat(r.gl2d||[]),i=e?A.findSubplotsWithAxis(n,e):n;return i.sort(function(t,e){var r=t.substr(1).split(\\\"y\\\"),n=e.substr(1).split(\\\"y\\\");return r[0]===n[0]?+r[1]-+n[1]:+r[0]-+n[0]}),i},A.findSubplotsWithAxis=function(t,e){for(var r=new RegExp(\\\"x\\\"===e._id.charAt(0)?\\\"^\\\"+e._id+\\\"y\\\":e._id+\\\"$\\\"),n=[],i=0;i<t.length;i++){var a=t[i];r.test(a)&&n.push(a)}return n},A.makeClipPaths=function(t){var e=t._fullLayout;if(!e._hasOnlyLargeSploms){var r,i,a={_offset:0,_length:e.width,_id:\\\"\\\"},o={_offset:0,_length:e.height,_id:\\\"\\\"},s=A.list(t,\\\"x\\\",!0),l=A.list(t,\\\"y\\\",!0),c=[];for(r=0;r<s.length;r++)for(c.push({x:s[r],y:o}),i=0;i<l.length;i++)0===r&&c.push({x:a,y:l[i]}),c.push({x:s[r],y:l[i]});var u=e._clips.selectAll(\\\".axesclip\\\").data(c,function(t){return t.x._id+t.y._id});u.enter().append(\\\"clipPath\\\").classed(\\\"axesclip\\\",!0).attr(\\\"id\\\",function(t){return\\\"clip\\\"+e._uid+t.x._id+t.y._id}).append(\\\"rect\\\"),u.exit().remove(),u.each(function(t){n.select(this).select(\\\"rect\\\").attr({x:t.x._offset||0,y:t.y._offset||0,width:t.x._length||1,height:t.y._length||1})})}},A.doTicks=function(t,e,r){var n=t._fullLayout;\\\"redraw\\\"===e&&n._paper.selectAll(\\\"g.subplot\\\").each(function(t){var e=t[0],r=n._plots[e],i=r.xaxis,a=r.yaxis;r.xaxislayer.selectAll(\\\".\\\"+i._id+\\\"tick\\\").remove(),r.yaxislayer.selectAll(\\\".\\\"+a._id+\\\"tick\\\").remove(),r.gridlayer&&r.gridlayer.selectAll(\\\"path\\\").remove(),r.zerolinelayer&&r.zerolinelayer.selectAll(\\\"path\\\").remove(),n._infolayer.select(\\\".g-\\\"+i._id+\\\"title\\\").remove(),n._infolayer.select(\\\".g-\\\"+a._id+\\\"title\\\").remove()});var i=e&&\\\"redraw\\\"!==e?e:A.listIds(t);s.syncOrAsync(i.map(function(e){return function(){if(e){var n=A.doTicksSingle(t,e,r),i=A.getFromId(t,e);return i._r=i.range.slice(),i._rl=s.simpleMap(i._r,i.r2l),n}}}))},A.doTicksSingle=function(t,e,r){var o,h=t._fullLayout,p=!1;s.isPlainObject(e)?(o=e,p=!0):o=A.getFromId(t,e),o.setScale();var d,g,v,m,y,x,b=o._id,_=b.charAt(0),w=A.counterLetter(b),T=o._vals=A.calcTicks(o),E=function(t){return[t.text,t.x,o.mirror,t.font,t.fontSize,t.fontColor].join(\\\"_\\\")},C=b+\\\"tick\\\",L=b+\\\"grid\\\",z=b+\\\"zl\\\",O=(o.linewidth||1)/2,I=\\\"outside\\\"===o.ticks?o.ticklen:0,P=0,D=f.crispRound(t,o.gridwidth,1),R=f.crispRound(t,o.zerolinewidth,D),B=f.crispRound(t,o.tickwidth,1);if(o._counterangle&&\\\"outside\\\"===o.ticks){var F=o._counterangle*Math.PI/180;I=o.ticklen*Math.cos(F)+1,P=o.ticklen*Math.sin(F)}if(o.showticklabels&&(\\\"outside\\\"===o.ticks||o.showline)&&(I+=.2*o.tickfont.size),\\\"x\\\"===_)d=[\\\"bottom\\\",\\\"top\\\"],g=o._transfn||function(t){return\\\"translate(\\\"+(o._offset+o.l2p(t.x))+\\\",0)\\\"},v=function(t,e){if(o._counterangle){var r=o._counterangle*Math.PI/180;return\\\"M0,\\\"+t+\\\"l\\\"+Math.sin(r)*e+\\\",\\\"+Math.cos(r)*e}return\\\"M0,\\\"+t+\\\"v\\\"+e};else if(\\\"y\\\"===_)d=[\\\"left\\\",\\\"right\\\"],g=o._transfn||function(t){return\\\"translate(0,\\\"+(o._offset+o.l2p(t.x))+\\\")\\\"},v=function(t,e){if(o._counterangle){var r=o._counterangle*Math.PI/180;return\\\"M\\\"+t+\\\",0l\\\"+Math.cos(r)*e+\\\",\\\"+-Math.sin(r)*e}return\\\"M\\\"+t+\\\",0h\\\"+e};else{if(!$(o))return void s.warn(\\\"Unrecognized doTicks axis:\\\",b);d=[\\\"left\\\",\\\"right\\\"],g=o._transfn,v=function(t,e){return\\\"M\\\"+t+\\\",0h\\\"+e}}var N=o.side||d[0],j=[-1,1,N===d[1]?1:-1];if(\\\"inside\\\"!==o.ticks==(\\\"x\\\"===_)&&(j=j.map(function(t){return-t})),o.visible){o._tickFilter&&(T=T.filter(o._tickFilter));var V=o._valsClipped=$(o)?T:T.filter(function(t){return W(o,t.x)});if(p){if(Z(o._axislayer,v(o._pos+O*j[2],j[2]*o.ticklen)),o._counteraxis)Q({gridlayer:o._gridlayer,zerolinelayer:o._zerolinelayer},o._counteraxis);return J(o._axislayer,o._pos)}if(h._has(\\\"cartesian\\\")){m=A.getSubplots(t,o);var U={};m.map(function(t){var e=h._plots[t],r=e[w+\\\"axis\\\"],n=r._mainAxis._id;U[n]||(U[n]=1,Q(e,r))});var q=o._mainSubplot,H=h._plots[q],G=[];if(o.ticks){var Y=j[2],X=v(o._mainLinePosition+O*Y,Y*o.ticklen);o._anchorAxis&&o.mirror&&!0!==o.mirror&&(X+=v(o._mainMirrorPosition-O*Y,-Y*o.ticklen)),Z(H[_+\\\"axislayer\\\"],X),G=Object.keys(o._linepositions||{})}return G.map(function(t){var e=h._plots[t][_+\\\"axislayer\\\"],r=o._linepositions[t]||[];function n(t){var e=j[t];return v(r[t]+O*e,e*o.ticklen)}Z(e,n(0)+n(1))}),J(H[_+\\\"axislayer\\\"],o._mainLinePosition)}}function Z(t,e){var r=t.selectAll(\\\"path.\\\"+C).data(\\\"inside\\\"===o.ticks?V:T,E);e&&o.ticks?(r.enter().append(\\\"path\\\").classed(C,1).classed(\\\"ticks\\\",1).classed(\\\"crisp\\\",1).call(u.stroke,o.tickcolor).style(\\\"stroke-width\\\",B+\\\"px\\\").attr(\\\"d\\\",e),r.attr(\\\"transform\\\",g),r.exit().remove()):r.remove()}function J(e,r){if(y=e.selectAll(\\\"g.\\\"+C).data(T,E),!i(r))return y.remove(),void K();if(!o.showticklabels)return y.remove(),K(),void z();var c,u,p,d,v;\\\"x\\\"===_?(c=function(t){return t.dx+P*v},d=r+(I+O)*(v=\\\"bottom\\\"===N?1:-1),u=function(t){return t.dy+d+t.fontSize*(\\\"bottom\\\"===N?1:-.2)},p=function(t){return i(t)&&0!==t&&180!==t?t*v<0?\\\"end\\\":\\\"start\\\":\\\"middle\\\"}):\\\"y\\\"===_?(v=\\\"right\\\"===N?1:-1,u=function(t){return t.dy+t.fontSize*k-P*v},c=function(t){return t.dx+r+(I+O+(90===Math.abs(o.tickangle)?t.fontSize/2:0))*v},p=function(t){return i(t)&&90===Math.abs(t)?\\\"middle\\\":\\\"right\\\"===N?\\\"start\\\":\\\"end\\\"}):$(o)&&(o._labelShift=P,o._labelStandoff=I,o._pad=O,c=o._labelx,u=o._labely,p=o._labelanchor);var w=0,A=0,S=[];function L(t,e){t.each(function(t){var r=p(e,t),a=n.select(this),o=a.select(\\\".text-math-group\\\"),s=g.call(a.node(),t)+(i(e)&&0!=+e?\\\" rotate(\\\"+e+\\\",\\\"+c(t)+\\\",\\\"+(u(t)-t.fontSize/2)+\\\")\\\":\\\"\\\"),h=function(t,e,r){var n=(t-1)*e;if(\\\"x\\\"===_){if(r<-60||60<r)return-.5*n;if(\\\"top\\\"===N)return-n}else{if((r*=\\\"left\\\"===N?1:-1)<-30)return-n;if(r<30)return-.5*n}return 0}(l.lineCount(a),M*t.fontSize,i(e)?+e:0);if(h&&(s+=\\\" translate(0, \\\"+h+\\\")\\\"),o.empty())a.select(\\\"text\\\").attr({transform:s,\\\"text-anchor\\\":r});else{var d=f.bBox(o.node()).width*{end:-.5,start:.5}[r];o.attr(\\\"transform\\\",s+(d?\\\"translate(\\\"+d+\\\",0)\\\":\\\"\\\"))}})}function z(){if(o.showticklabels){var r=t.getBoundingClientRect(),n=e.node().getBoundingClientRect();o._boundingBox={width:n.width,height:n.height,left:n.left-r.left,right:n.right-r.left,top:n.top-r.top,bottom:n.bottom-r.top}}else{var i,a=h._size;\\\"x\\\"===_?(i=\\\"free\\\"===o.anchor?a.t+a.h*(1-o.position):a.t+a.h*(1-o._anchorAxis.domain[{bottom:0,top:1}[o.side]]),o._boundingBox={top:i,bottom:i,left:o._offset,right:o._offset+o._length,width:o._length,height:0}):(i=\\\"free\\\"===o.anchor?a.l+a.w*o.position:a.l+a.w*o._anchorAxis.domain[{left:0,right:1}[o.side]],o._boundingBox={left:i,right:i,bottom:o._offset+o._length,top:o._offset,height:o._length,width:0})}if(m){var s=o._counterSpan=[1/0,-1/0];for(x=0;x<m.length;x++){var l=h._plots[m[x]][\\\"x\\\"===_?\\\"yaxis\\\":\\\"xaxis\\\"];c(s,[l._offset,l._offset+l._length])}\\\"free\\\"===o.anchor&&c(s,\\\"x\\\"===_?[o._boundingBox.bottom,o._boundingBox.top]:[o._boundingBox.right,o._boundingBox.left])}function c(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.max(t[1],e[1])}}y.enter().append(\\\"g\\\").classed(C,1).append(\\\"text\\\").attr(\\\"text-anchor\\\",\\\"middle\\\").each(function(e){var r=n.select(this),i=t._promises.length;r.call(l.positionText,c(e),u(e)).call(f.font,e.font,e.fontSize,e.fontColor).text(e.text).call(l.convertToTspans,t),(i=t._promises[i])?S.push(t._promises.pop().then(function(){L(r,o.tickangle)})):L(r,o.tickangle)}),y.exit().remove(),y.each(function(t){w=Math.max(w,t.fontSize)}),$(o)&&y.each(function(t){n.select(this).select(\\\"text\\\").call(l.positionText,c(t),u(t))}),L(y,o._lastangle||o.tickangle);var D=s.syncOrAsync([function(){return S.length&&Promise.all(S)},function(){if(L(y,o.tickangle),\\\"x\\\"===_&&!i(o.tickangle)&&(\\\"log\\\"!==o.type||\\\"D\\\"!==String(o.dtick).charAt(0))){var t=[];for(y.each(function(e){var r=n.select(this),i=r.select(\\\".text-math-group\\\"),a=o.l2p(e.x);i.empty()&&(i=r.select(\\\"text\\\"));var s=f.bBox(i.node());t.push({top:0,bottom:10,height:10,left:a-s.width/2,right:a+s.width/2+2,width:s.width+2})}),x=0;x<t.length-1;x++)if(s.bBoxIntersect(t[x],t[x+1])){A=30;break}A&&(Math.abs((T[T.length-1].x-T[0].x)*o._m)/(T.length-1)<2.5*w&&(A=90),L(y,A)),o._lastangle=A}return K(),b+\\\" done\\\"},z,function(){var e=o._name+\\\".automargin\\\";if(\\\"x\\\"===_||\\\"y\\\"===_)if(o.automargin){var r=o.side[0],n={x:0,y:0,r:0,l:0,t:0,b:0};\\\"x\\\"===_?(n.y=\\\"free\\\"===o.anchor?o.position:o._anchorAxis.domain[\\\"t\\\"===r?1:0],n[r]+=o._boundingBox.height):(n.x=\\\"free\\\"===o.anchor?o.position:o._anchorAxis.domain[\\\"r\\\"===r?1:0],n[r]+=o._boundingBox.width),o.title!==h._dfltTitle[_]&&(n[r]+=o.titlefont.size),a.autoMargin(t,e,n)}else a.autoMargin(t,e)}]);return D&&D.then&&t._promises.push(D),D}function K(){if(!(r||o.rangeslider&&o.rangeslider.visible&&o._boundingBox&&\\\"bottom\\\"===o.side)){var e,n,i,a,s={selection:y,side:o.side},l=b.charAt(0),u=t._fullLayout._size,p=o.titlefont.size;if(y.size()){var d=f.getTranslate(y.node().parentNode);s.offsetLeft=d.x,s.offsetTop=d.y}var g=10+1.5*p+(o.linewidth?o.linewidth-1:0);\\\"x\\\"===l?(n=\\\"free\\\"===o.anchor?{_offset:u.t+(1-(o.position||0))*u.h,_length:0}:S.getFromId(t,o.anchor),i=o._offset+o._length/2,a=\\\"top\\\"===o.side?-g-p*(o.showticklabels?1:0):n._length+g+p*(o.showticklabels?1.5:.5),a+=n._offset,s.side||(s.side=\\\"bottom\\\")):(n=\\\"free\\\"===o.anchor?{_offset:u.l+(o.position||0)*u.w,_length:0}:S.getFromId(t,o.anchor),a=o._offset+o._length/2,i=\\\"right\\\"===o.side?n._length+g+p*(o.showticklabels?1:.5):-g-p*(o.showticklabels?.5:0),i+=n._offset,e={rotate:\\\"-90\\\",offset:0},s.side||(s.side=\\\"left\\\")),c.draw(t,b+\\\"title\\\",{propContainer:o,propName:o._name+\\\".title\\\",placeholder:h._dfltTitle[l],avoid:s,transform:e,attributes:{x:i,y:a,\\\"text-anchor\\\":\\\"middle\\\"}})}}function Q(e,r){if(!h._hasOnlyLargeSploms){var i=e.gridlayer.selectAll(\\\".\\\"+b),a=e.zerolinelayer,s=o._gridpath||(\\\"x\\\"===_?\\\"M0,\\\"+r._offset+\\\"v\\\":\\\"M\\\"+r._offset+\\\",0h\\\")+r._length,l=i.selectAll(\\\"path.\\\"+L).data(!1===o.showgrid?[]:V,E);if(l.enter().append(\\\"path\\\").classed(L,1).classed(\\\"crisp\\\",1).attr(\\\"d\\\",s).each(function(t){o.zeroline&&(\\\"linear\\\"===o.type||\\\"-\\\"===o.type)&&Math.abs(t.x)<o.dtick/100&&n.select(this).remove()}),l.attr(\\\"transform\\\",g).call(u.stroke,o.gridcolor||\\\"#ddd\\\").style(\\\"stroke-width\\\",D+\\\"px\\\"),\\\"function\\\"==typeof s&&l.attr(\\\"d\\\",s),l.exit().remove(),a){var c={x:0,id:b},f=A.shouldShowZeroLine(t,o,r),p=a.selectAll(\\\"path.\\\"+z).data(f?[c]:[]);p.enter().append(\\\"path\\\").classed(z,1).classed(\\\"zl\\\",1).classed(\\\"crisp\\\",1).attr(\\\"d\\\",s).each(function(){a.selectAll(\\\"path\\\").sort(function(t,e){return S.idSort(t.id,e.id)})}),p.attr(\\\"transform\\\",g).call(u.stroke,o.zerolinecolor||u.defaultLine).style(\\\"stroke-width\\\",R+\\\"px\\\"),p.exit().remove()}}}},A.shouldShowZeroLine=function(t,e,r){var n=s.simpleMap(e.range,e.r2l);return n[0]*n[1]<=0&&e.zeroline&&(\\\"linear\\\"===e.type||\\\"-\\\"===e.type)&&e._valsClipped.length&&(W(e,0)||!function(t,e,r,n){var i=r._mainAxis;if(!i)return;var a=t._fullLayout,o=e._id.charAt(0),s=A.counterLetter(e._id),l=e._offset+(Math.abs(n[0])<Math.abs(n[1])==(\\\"x\\\"===o)?0:e._length);function c(t){if(!t.showline||!t.linewidth)return!1;var r=Math.max((t.linewidth+e.zerolinewidth)/2,1);function n(t){return\\\"number\\\"==typeof t&&Math.abs(t-l)<r}if(n(t._mainLinePosition)||n(t._mainMirrorPosition))return!0;var i=t._linepositions||{};for(var a in i)if(n(i[a][0])||n(i[a][1]))return!0}var u=a._plots[r._mainSubplot];if(!(u.mainplotinfo||u).overlays.length)return c(r);for(var f=A.list(t,s),h=0;h<f.length;h++){var p=f[h];if(p._mainAxis===i&&c(p))return!0}}(t,e,r,n)||function(t,e){for(var r=t._fullData,n=e._mainSubplot,i=e._id.charAt(0),a=0;a<r.length;a++){var s=r[a];if(!0===s.visible&&s.xaxis+s.yaxis===n&&(o.traceIs(s,\\\"bar\\\")&&s.orientation==={x:\\\"h\\\",y:\\\"v\\\"}[i]||s.fill&&s.fill.charAt(s.fill.length-1)===i))return!0}return!1}(t,e))},A.allowAutoMargin=function(t){for(var e=A.list(t,\\\"\\\",!0),r=0;r<e.length;r++){var n=e[r];n.automargin&&a.allowAutoMargin(t,n._name+\\\".automargin\\\"),n.rangeslider&&n.rangeslider.visible&&a.allowAutoMargin(t,\\\"rangeslider\\\"+n._id)}},A.swap=function(t,e){for(var r=function(t,e){var r,n,i=[];for(r=0;r<e.length;r++){var a=[],o=t._fullData[e[r]].xaxis,s=t._fullData[e[r]].yaxis;if(o&&s){for(n=0;n<i.length;n++)-1===i[n].x.indexOf(o)&&-1===i[n].y.indexOf(s)||a.push(n);if(a.length){var l,c=i[a[0]];if(a.length>1)for(n=1;n<a.length;n++)l=i[a[n]],Y(c.x,l.x),Y(c.y,l.y);Y(c.x,[o]),Y(c.y,[s])}else i.push({x:[o],y:[s]})}}return i}(t,e),n=0;n<r.length;n++)X(t,r[n].x,r[n].y)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../components/titles\\\":661,\\\"../../constants/alignment\\\":668,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/plots\\\":808,\\\"../../registry\\\":827,\\\"./autorange\\\":743,\\\"./axis_autotype\\\":745,\\\"./axis_ids\\\":747,\\\"./clean_ticks\\\":749,\\\"./layout_attributes\\\":757,\\\"./set_convert\\\":763,d3:148,\\\"fast-isnumeric\\\":214}],745:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e){return function(t,e){for(var r=Math.max(1,(t.length-1)/1e3),a=0,o=0,s={},l=0;l<t.length;l+=r){var c=t[Math.round(l)],u=String(c);s[u]||(s[u]=1,i.isDateTime(c,e)&&(a+=1),n(c)&&(o+=1))}return a>2*o}(t,e)?\\\"date\\\":function(t){for(var e=Math.max(1,(t.length-1)/1e3),r=0,n=0,o={},s=0;s<t.length;s+=e){var l=t[Math.round(s)],c=String(l);o[c]||(o[c]=1,\\\"boolean\\\"==typeof l?n++:i.cleanNumber(l)!==a?r++:\\\"string\\\"==typeof l&&n++)}return n>2*r}(t)?\\\"category\\\":function(t){if(!t)return!1;for(var e=0;e<t.length;e++)if(n(t[e]))return!0;return!1}(t)?\\\"linear\\\":\\\"-\\\"}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"fast-isnumeric\\\":214}],746:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"./layout_attributes\\\"),o=t(\\\"./tick_value_defaults\\\"),s=t(\\\"./tick_mark_defaults\\\"),l=t(\\\"./tick_label_defaults\\\"),c=t(\\\"./category_order_defaults\\\"),u=t(\\\"./line_grid_defaults\\\"),f=t(\\\"./set_convert\\\");e.exports=function(t,e,r,h,p){var d=h.letter,g=h.font||{},v=h.splomStash||{},m=r(\\\"visible\\\",!h.cheateronly),y=e.type;\\\"date\\\"===y&&n.getComponentMethod(\\\"calendars\\\",\\\"handleDefaults\\\")(t,e,\\\"calendar\\\",h.calendar);if(f(e,p),!r(\\\"autorange\\\",!e.isValidRange(t.range))||\\\"linear\\\"!==y&&\\\"-\\\"!==y||r(\\\"rangemode\\\"),r(\\\"range\\\"),e.cleanRange(),c(t,e,r,h),\\\"category\\\"===y||h.noHover||r(\\\"hoverformat\\\"),!m)return e;var x=r(\\\"color\\\"),b=x!==a.color.dflt?x:g.color;return r(\\\"title\\\",v.label||p._dfltTitle[d]),i.coerceFont(r,\\\"titlefont\\\",{family:g.family,size:Math.round(1.2*g.size),color:b}),o(t,e,r,y),l(t,e,r,y,h),s(t,e,r,h),u(t,e,r,{dfltColor:x,bgColor:h.bgColor,showGrid:h.showGrid,attributes:a}),(e.showline||e.ticks)&&r(\\\"mirror\\\"),h.automargin&&r(\\\"automargin\\\"),e}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./category_order_defaults\\\":748,\\\"./layout_attributes\\\":757,\\\"./line_grid_defaults\\\":759,\\\"./set_convert\\\":763,\\\"./tick_label_defaults\\\":764,\\\"./tick_mark_defaults\\\":765,\\\"./tick_value_defaults\\\":766}],747:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"./constants\\\");r.id2name=function(t){if(\\\"string\\\"==typeof t&&t.match(i.AX_ID_PATTERN)){var e=t.substr(1);return\\\"1\\\"===e&&(e=\\\"\\\"),t.charAt(0)+\\\"axis\\\"+e}},r.name2id=function(t){if(t.match(i.AX_NAME_PATTERN)){var e=t.substr(5);return\\\"1\\\"===e&&(e=\\\"\\\"),t.charAt(0)+e}},r.cleanId=function(t,e){if(t.match(i.AX_ID_PATTERN)&&(!e||t.charAt(0)===e)){var r=t.substr(1).replace(/^0+/,\\\"\\\");return\\\"1\\\"===r&&(r=\\\"\\\"),t.charAt(0)+r}},r.list=function(t,e,n){var i=t._fullLayout;if(!i)return[];var a,o=r.listIds(t,e),s=new Array(o.length);for(a=0;a<o.length;a++){var l=o[a];s[a]=i[l.charAt(0)+\\\"axis\\\"+l.substr(1)]}if(!n){var c=i._subplots.gl3d||[];for(a=0;a<c.length;a++){var u=i[c[a]];e?s.push(u[e+\\\"axis\\\"]):s.push(u.xaxis,u.yaxis,u.zaxis)}}return s},r.listIds=function(t,e){var r=t._fullLayout;if(!r)return[];var n=r._subplots;return e?n[e+\\\"axis\\\"]:n.xaxis.concat(n.yaxis)},r.getFromId=function(t,e,n){var i=t._fullLayout;return\\\"x\\\"===n?e=e.replace(/y[0-9]*/,\\\"\\\"):\\\"y\\\"===n&&(e=e.replace(/x[0-9]*/,\\\"\\\")),i[r.id2name(e)]},r.getFromTrace=function(t,e,i){var a=t._fullLayout,o=null;if(n.traceIs(e,\\\"gl3d\\\")){var s=e.scene;\\\"scene\\\"===s.substr(0,5)&&(o=a[s][i+\\\"axis\\\"])}else o=r.getFromId(t,e[i+\\\"axis\\\"]||i);return o},r.idSort=function(t,e){var r=t.charAt(0),n=e.charAt(0);return r!==n?r>n?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)}},{\\\"../../registry\\\":827,\\\"./constants\\\":750}],748:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){if(\\\"category\\\"===e.type){var i,a=t.categoryarray,o=Array.isArray(a)&&a.length>0;o&&(i=\\\"array\\\");var s,l=r(\\\"categoryorder\\\",i);\\\"array\\\"===l&&(s=r(\\\"categoryarray\\\")),o||\\\"array\\\"!==l||(l=e.categoryorder=\\\"trace\\\"),\\\"trace\\\"===l?e._initialCategories=[]:\\\"array\\\"===l?e._initialCategories=s.slice():(s=function(t,e){var r,n,i,a=e.dataAttr||t._id.charAt(0),o={};if(e.axData)r=e.axData;else for(r=[],n=0;n<e.data.length;n++){var s=e.data[n];s[a+\\\"axis\\\"]===t._id&&r.push(s)}for(n=0;n<r.length;n++){var l=r[n][a];for(i=0;i<l.length;i++){var c=l[i];null!=c&&(o[c]=1)}}return Object.keys(o)}(e,n).sort(),\\\"category ascending\\\"===l?e._initialCategories=s:\\\"category descending\\\"===l&&(e._initialCategories=s.reverse()))}}},{}],749:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").ONEDAY;r.dtick=function(t,e){var r=\\\"log\\\"===e,i=\\\"date\\\"===e,o=\\\"category\\\"===e,s=i?a:1;if(!t)return s;if(n(t))return(t=Number(t))<=0?s:o?Math.max(1,Math.round(t)):i?Math.max(.1,t):t;if(\\\"string\\\"!=typeof t||!i&&!r)return s;var l=t.charAt(0),c=t.substr(1);return(c=n(c)?Number(c):0)<=0||!(i&&\\\"M\\\"===l&&c===Math.round(c)||r&&\\\"L\\\"===l||r&&\\\"D\\\"===l&&(1===c||2===c))?s:t},r.tick0=function(t,e,r,a){return\\\"date\\\"===e?i.cleanDate(t,i.dateTick0(r)):\\\"D1\\\"!==a&&\\\"D2\\\"!==a?n(t)?Number(t):0:void 0}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"fast-isnumeric\\\":214}],750:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/regex\\\").counter;e.exports={idRegex:{x:n(\\\"x\\\"),y:n(\\\"y\\\")},attrRegex:n(\\\"[xy]axis\\\"),xAxisMatch:n(\\\"xaxis\\\"),yAxisMatch:n(\\\"yaxis\\\"),AX_ID_PATTERN:/^[xyz][0-9]*$/,AX_NAME_PATTERN:/^[xyz]axis[0-9]*$/,SUBPLOT_PATTERN:/^x([0-9]*)y([0-9]*)$/,MINDRAG:8,MINSELECT:12,MINZOOM:20,DRAGGERSIZE:20,BENDPX:1.5,REDRAWDELAY:50,SELECTDELAY:100,SELECTID:\\\"-select\\\",DFLTRANGEX:[-1,6],DFLTRANGEY:[-1,4],traceLayerClasses:[\\\"heatmaplayer\\\",\\\"contourcarpetlayer\\\",\\\"contourlayer\\\",\\\"barlayer\\\",\\\"carpetlayer\\\",\\\"violinlayer\\\",\\\"boxlayer\\\",\\\"ohlclayer\\\",\\\"scattercarpetlayer\\\",\\\"scatterlayer\\\"],layerValue2layerClass:{\\\"above traces\\\":\\\"above\\\",\\\"below traces\\\":\\\"below\\\"}}},{\\\"../../lib/regex\\\":712}],751:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./axis_ids\\\").id2name;e.exports=function(t,e,r,a,o){var s=o._axisConstraintGroups,l=e._id,c=l.charAt(0);if(!e.fixedrange&&(r(\\\"constrain\\\"),n.coerce(t,e,{constraintoward:{valType:\\\"enumerated\\\",values:\\\"x\\\"===c?[\\\"left\\\",\\\"center\\\",\\\"right\\\"]:[\\\"bottom\\\",\\\"middle\\\",\\\"top\\\"],dflt:\\\"x\\\"===c?\\\"center\\\":\\\"middle\\\"}},\\\"constraintoward\\\"),t.scaleanchor)){var u=function(t,e,r,n){var a,o,s,l,c=n[i(e)].type,u=[];for(o=0;o<r.length;o++)(s=r[o])!==e&&((l=n[i(s)]).type!==c||l.fixedrange||u.push(s));for(a=0;a<t.length;a++)if(t[a][e]){var f=t[a],h=[];for(o=0;o<u.length;o++)s=u[o],f[s]||h.push(s);return{linkableAxes:h,thisGroup:f}}return{linkableAxes:u,thisGroup:null}}(s,l,a,o),f=n.coerce(t,e,{scaleanchor:{valType:\\\"enumerated\\\",values:u.linkableAxes}},\\\"scaleanchor\\\");if(f){var h=r(\\\"scaleratio\\\");h||(h=e.scaleratio=1),function(t,e,r,n,i){var a,o,s,l,c;null===e?((e={})[r]=1,c=t.length,t.push(e)):c=t.indexOf(e);var u=Object.keys(e);for(a=0;a<t.length;a++)if(s=t[a],a!==c&&s[n]){var f=s[n];for(o=0;o<u.length;o++)l=u[o],s[l]=f*i*e[l];return void t.splice(c,1)}if(1!==i)for(o=0;o<u.length;o++)e[u[o]]*=i;e[n]=1}(s,u.thisGroup,l,f,h)}else-1!==a.indexOf(t.scaleanchor)&&n.warn(\\\"ignored \\\"+e._name+'.scaleanchor: \\\"'+t.scaleanchor+'\\\" to avoid either an infinite loop and possibly inconsistent scaleratios, or because the targetaxis has fixed range.')}}},{\\\"../../lib\\\":696,\\\"./axis_ids\\\":747}],752:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./axis_ids\\\").id2name,i=t(\\\"./scale_zoom\\\"),a=t(\\\"./autorange\\\").makePadFn,o=t(\\\"./autorange\\\").concatExtremes,s=t(\\\"../../constants/numerical\\\").ALMOST_EQUAL,l=t(\\\"../../constants/alignment\\\").FROM_BL;function c(t,e){var r=t._inputDomain,n=l[t.constraintoward],i=r[0]+(r[1]-r[0])*n;t.domain=t._input.domain=[i+(r[0]-i)/e,i+(r[1]-i)/e]}r.enforce=function(t){var e,r,l,u,f,h,p,d=t._fullLayout,g=d._axisConstraintGroups||[];for(e=0;e<g.length;e++){var v=g[e],m=Object.keys(v),y=1/0,x=0,b=1/0,_={},w={},k=!1;for(r=0;r<m.length;r++)w[l=m[r]]=u=d[n(l)],u._inputDomain?u.domain=u._inputDomain.slice():u._inputDomain=u.domain.slice(),u._inputRange||(u._inputRange=u.range.slice()),u.setScale(),_[l]=f=Math.abs(u._m)/v[l],y=Math.min(y,f),\\\"domain\\\"!==u.constrain&&u._constraintShrinkable||(b=Math.min(b,f)),delete u._constraintShrinkable,x=Math.max(x,f),\\\"domain\\\"===u.constrain&&(k=!0);if(!(y>s*x)||k)for(r=0;r<m.length;r++)if(f=_[l=m[r]],h=(u=w[l]).constrain,f!==b||\\\"domain\\\"===h)if(p=f/b,\\\"range\\\"===h)i(u,p);else{var M=u._inputDomain,A=(u.domain[1]-u.domain[0])/(M[1]-M[0]),T=(u.r2l(u.range[1])-u.r2l(u.range[0]))/(u.r2l(u._inputRange[1])-u.r2l(u._inputRange[0]));if((p/=A)*T<1){u.domain=u._input.domain=M.slice(),i(u,p);continue}if(T<1&&(u.range=u._input.range=u._inputRange.slice(),p*=T),u.autorange){var S=u.r2l(u.range[0]),E=u.r2l(u.range[1]),C=(S+E)/2,L=C,z=C,O=Math.abs(E-C),I=C-O*p*1.0001,P=C+O*p*1.0001,D=a(u);c(u,p),u.setScale();var R,B,F=Math.abs(u._m),N=o(t,u),j=N.min,V=N.max;for(B=0;B<j.length;B++)(R=j[B].val-D(j[B])/F)>I&&R<L&&(L=R);for(B=0;B<V.length;B++)(R=V[B].val+D(V[B])/F)<P&&R>z&&(z=R);p/=(z-L)/(2*O),L=u.l2r(L),z=u.l2r(z),u.range=u._input.range=S<E?[L,z]:[z,L]}c(u,p)}}},r.clean=function(t,e){if(e._inputDomain){for(var r=!1,n=e._id,i=t._fullLayout._axisConstraintGroups,a=0;a<i.length;a++)if(i[a][n]){r=!0;break}r&&\\\"domain\\\"===e.constrain||(e._input.domain=e.domain=e._inputDomain,delete e._inputDomain)}}},{\\\"../../constants/alignment\\\":668,\\\"../../constants/numerical\\\":673,\\\"./autorange\\\":743,\\\"./axis_ids\\\":747,\\\"./scale_zoom\\\":761}],753:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"has-passive-events\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../../components/color\\\"),u=t(\\\"../../components/drawing\\\"),f=t(\\\"../../components/fx\\\"),h=t(\\\"../../lib/setcursor\\\"),p=t(\\\"../../components/dragelement\\\"),d=t(\\\"../../constants/alignment\\\").FROM_TL,g=t(\\\"../../lib/clear_gl_canvases\\\"),v=t(\\\"../../plot_api/subroutines\\\").redrawReglTraces,m=t(\\\"../plots\\\"),y=t(\\\"./axes\\\").doTicksSingle,x=t(\\\"./axis_ids\\\").getFromId,b=t(\\\"./select\\\").prepSelect,_=t(\\\"./select\\\").clearSelect,w=t(\\\"./select\\\").selectOnClick,k=t(\\\"./scale_zoom\\\"),M=t(\\\"./constants\\\"),A=M.MINDRAG,T=M.MINZOOM,S=!0;function E(t,e,r,n){var i=s.ensureSingle(t.draglayer,e,r,function(e){e.classed(\\\"drag\\\",!0).style({fill:\\\"transparent\\\",\\\"stroke-width\\\":0}).attr(\\\"data-subplot\\\",t.id)});return i.call(h,n),i.node()}function C(t,e,r,i,a,o,s){var l=E(t,\\\"rect\\\",e,r);return n.select(l).call(u.setRect,i,a,o,s),l}function L(t,e){for(var r=0;r<t.length;r++)if(!t[r].fixedrange)return e;return\\\"\\\"}function z(t,e,r,n,i){var a,o,s,l;for(a=0;a<t.length;a++)(o=t[a]).fixedrange||(s=o._rl[0],l=o._rl[1]-s,o.range=[o.l2r(s+l*e),o.l2r(s+l*r)],n[o._name+\\\".range[0]\\\"]=o.range[0],n[o._name+\\\".range[1]\\\"]=o.range[1]);if(i&&i.length){var c=(e+(1-r))/2;z(i,c,1-c,n)}}function O(t,e){for(var r=0;r<t.length;r++){var n=t[r];n.fixedrange||(n.range=[n.l2r(n._rl[0]-e/n._m),n.l2r(n._rl[1]-e/n._m)])}}function I(t){return 1-(t>=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function P(t,e,r,n,i){return t.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox\\\").style({fill:e>.2?\\\"rgba(0,0,0,0)\\\":\\\"rgba(255,255,255,0)\\\",\\\"stroke-width\\\":0}).attr(\\\"transform\\\",\\\"translate(\\\"+r+\\\", \\\"+n+\\\")\\\").attr(\\\"d\\\",i+\\\"Z\\\")}function D(t,e,r){return t.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox-corners\\\").style({fill:c.background,stroke:c.defaultLine,\\\"stroke-width\\\":1,opacity:0}).attr(\\\"transform\\\",\\\"translate(\\\"+e+\\\", \\\"+r+\\\")\\\").attr(\\\"d\\\",\\\"M0,0Z\\\")}function R(t,e,r,n,i,a){t.attr(\\\"d\\\",n+\\\"M\\\"+r.l+\\\",\\\"+r.t+\\\"v\\\"+r.h+\\\"h\\\"+r.w+\\\"v-\\\"+r.h+\\\"h-\\\"+r.w+\\\"Z\\\"),B(t,e,i,a)}function B(t,e,r,n){r||(t.transition().style(\\\"fill\\\",n>.2?\\\"rgba(0,0,0,0.4)\\\":\\\"rgba(255,255,255,0.3)\\\").duration(200),e.transition().style(\\\"opacity\\\",1).duration(200))}function F(t){n.select(t).selectAll(\\\".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners\\\").remove()}function N(t){S&&t.data&&t._context.showTips&&(s.notifier(s._(t,\\\"Double-click to zoom back out\\\"),\\\"long\\\"),S=!1)}function j(t){return\\\"lasso\\\"===t||\\\"select\\\"===t}function V(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,T)/2);return\\\"M\\\"+(t.l-3.5)+\\\",\\\"+(t.t-.5+e)+\\\"h3v\\\"+-e+\\\"h\\\"+e+\\\"v-3h-\\\"+(e+3)+\\\"ZM\\\"+(t.r+3.5)+\\\",\\\"+(t.t-.5+e)+\\\"h-3v\\\"+-e+\\\"h\\\"+-e+\\\"v-3h\\\"+(e+3)+\\\"ZM\\\"+(t.r+3.5)+\\\",\\\"+(t.b+.5-e)+\\\"h-3v\\\"+e+\\\"h\\\"+-e+\\\"v3h\\\"+(e+3)+\\\"ZM\\\"+(t.l-3.5)+\\\",\\\"+(t.b+.5-e)+\\\"h3v\\\"+e+\\\"h\\\"+e+\\\"v3h-\\\"+(e+3)+\\\"Z\\\"}function U(t,e){if(a){var r=void 0!==t.onwheel?\\\"wheel\\\":\\\"mousewheel\\\";t._onwheel&&t.removeEventListener(r,t._onwheel),t._onwheel=e,t.addEventListener(r,e,{passive:!1})}else void 0!==t.onwheel?t.onwheel=e:void 0!==t.onmousewheel&&(t.onmousewheel=e)}function q(t){var e=[];for(var r in t)e.push(t[r]);return e}e.exports={makeDragBox:function(t,e,r,a,c,h,S,E){var B,H,G,W,Y,X,Z,$,J,K,Q,tt,et,rt,nt,it,at,ot,st,lt,ct,ut=t._fullLayout._zoomlayer,ft=S+E===\\\"nsew\\\",ht=1===(S+E).length;function pt(){if(B=e.xaxis,H=e.yaxis,J=B._length,K=H._length,Z=B._offset,$=H._offset,(G={})[B._id]=B,(W={})[H._id]=H,S&&E)for(var r=e.overlays,n=0;n<r.length;n++){var i=r[n].xaxis;G[i._id]=i;var a=r[n].yaxis;W[a._id]=a}Y=q(G),X=q(W),tt=L(Y,E),et=L(X,S),rt=!et&&!tt,Q=function(t,e,r){for(var n,i,a,o,l=t._fullLayout._axisConstraintGroups,c=!1,u={},f={},h=0;h<l.length;h++){var p=l[h];for(n in e)if(p[n]){for(a in p)(\\\"x\\\"===a.charAt(0)?e:r)[a]||(u[a]=1);for(i in r)p[i]&&(c=!0)}for(i in r)if(p[i])for(o in p)(\\\"x\\\"===o.charAt(0)?e:r)[o]||(f[o]=1)}c&&(s.extendFlat(u,f),f={});var d={},g=[];for(a in u){var v=x(t,a);g.push(v),d[v._id]=v}var m={},y=[];for(o in f){var b=x(t,o);y.push(b),m[b._id]=b}return{xaHash:d,yaHash:m,xaxes:g,yaxes:y,isSubplotConstrained:c}}(t,G,W),nt=Q.isSubplotConstrained,it=E||nt,at=S||nt;var o=t._fullLayout;ot=o._has(\\\"scattergl\\\"),st=o._has(\\\"splom\\\"),lt=o._has(\\\"svg\\\")}pt();var dt=function(t,e,r){return t?\\\"nsew\\\"===t?r?\\\"\\\":\\\"pan\\\"===e?\\\"move\\\":\\\"crosshair\\\":t.toLowerCase()+\\\"-resize\\\":\\\"pointer\\\"}(et+tt,t._fullLayout.dragmode,ft),gt=C(e,S+E+\\\"drag\\\",dt,r,a,c,h);if(rt&&!ft)return gt.onmousedown=null,gt.style.pointerEvents=\\\"none\\\",gt;var vt,mt,yt,xt,bt,_t,wt,kt,Mt,At,Tt={element:gt,gd:t,plotinfo:e};function St(){Tt.plotinfo.selection=!1,_(ut)}function Et(r,i){var a=t._fullLayout.clickmode;if(F(t),2!==r||ht||function(){if(!t._transitioningWithDuration){var e,r,n,i=t._context.doubleClick,a=(tt?Y:[]).concat(et?X:[]),s={};if(\\\"reset+autosize\\\"===i)for(i=\\\"autosize\\\",r=0;r<a.length;r++)if((e=a[r])._rangeInitial&&(e.range[0]!==e._rangeInitial[0]||e.range[1]!==e._rangeInitial[1])||!e._rangeInitial&&!e.autorange){i=\\\"reset\\\";break}if(\\\"autosize\\\"===i)for(r=0;r<a.length;r++)(e=a[r]).fixedrange||(s[e._name+\\\".autorange\\\"]=!0);else if(\\\"reset\\\"===i)for((tt||nt)&&(a=a.concat(Q.xaxes)),et&&!nt&&(a=a.concat(Q.yaxes)),nt&&(tt?et||(a=a.concat(X)):a=a.concat(Y)),r=0;r<a.length;r++)(e=a[r])._rangeInitial?(n=e._rangeInitial,s[e._name+\\\".range[0]\\\"]=n[0],s[e._name+\\\".range[1]\\\"]=n[1]):s[e._name+\\\".autorange\\\"]=!0;t.emit(\\\"plotly_doubleclick\\\",null),o.call(\\\"relayout\\\",t,s)}}(),ft)a.indexOf(\\\"select\\\")>-1&&w(i,t,Y,X,e.id,Tt),a.indexOf(\\\"event\\\")>-1&&f.click(t,i,e.id);else if(1===r&&ht){var s=S?H:B,c=\\\"s\\\"===S||\\\"w\\\"===E?0:1,u=s._name+\\\".range[\\\"+c+\\\"]\\\",h=function(t,e){var r,i=t.range[e],a=Math.abs(i-t.range[1-e]);return\\\"date\\\"===t.type?i:\\\"log\\\"===t.type?(r=Math.ceil(Math.max(0,-Math.log(a)/Math.LN10))+3,n.format(\\\".\\\"+r+\\\"g\\\")(Math.pow(10,i))):(r=Math.floor(Math.log(Math.abs(i))/Math.LN10)-Math.floor(Math.log(a)/Math.LN10)+4,n.format(\\\".\\\"+String(r)+\\\"g\\\")(i))}(s,c),p=\\\"left\\\",d=\\\"middle\\\";if(s.fixedrange)return;S?(d=\\\"n\\\"===S?\\\"top\\\":\\\"bottom\\\",\\\"right\\\"===s.side&&(p=\\\"right\\\")):\\\"e\\\"===E&&(p=\\\"right\\\"),t._context.showAxisRangeEntryBoxes&&n.select(gt).call(l.makeEditable,{gd:t,immediate:!0,background:t._fullLayout.paper_bgcolor,text:String(h),fill:s.tickfont?s.tickfont.color:\\\"#444\\\",horizontalAlign:p,verticalAlign:d}).on(\\\"edit\\\",function(e){var r=s.d2r(e);void 0!==r&&o.call(\\\"relayout\\\",t,u,r)})}}function Ct(e,r){if(t._transitioningWithDuration)return!1;var n=Math.max(0,Math.min(J,e+vt)),i=Math.max(0,Math.min(K,r+mt)),a=Math.abs(n-vt),o=Math.abs(i-mt);function s(){wt=\\\"\\\",yt.r=yt.l,yt.t=yt.b,Mt.attr(\\\"d\\\",\\\"M0,0Z\\\")}yt.l=Math.min(vt,n),yt.r=Math.max(vt,n),yt.t=Math.min(mt,i),yt.b=Math.max(mt,i),nt?a>T||o>T?(wt=\\\"xy\\\",a/J>o/K?(o=a*K/J,mt>i?yt.t=mt-o:yt.b=mt+o):(a=o*J/K,vt>n?yt.l=vt-a:yt.r=vt+a),Mt.attr(\\\"d\\\",V(yt))):s():!et||o<Math.min(Math.max(.6*a,A),T)?a<A||!tt?s():(yt.t=0,yt.b=K,wt=\\\"x\\\",Mt.attr(\\\"d\\\",function(t,e){return\\\"M\\\"+(t.l-.5)+\\\",\\\"+(e-T-.5)+\\\"h-3v\\\"+(2*T+1)+\\\"h3ZM\\\"+(t.r+.5)+\\\",\\\"+(e-T-.5)+\\\"h3v\\\"+(2*T+1)+\\\"h-3Z\\\"}(yt,mt))):!tt||a<Math.min(.6*o,T)?(yt.l=0,yt.r=J,wt=\\\"y\\\",Mt.attr(\\\"d\\\",function(t,e){return\\\"M\\\"+(e-T-.5)+\\\",\\\"+(t.t-.5)+\\\"v-3h\\\"+(2*T+1)+\\\"v3ZM\\\"+(e-T-.5)+\\\",\\\"+(t.b+.5)+\\\"v3h\\\"+(2*T+1)+\\\"v-3Z\\\"}(yt,vt))):(wt=\\\"xy\\\",Mt.attr(\\\"d\\\",V(yt))),yt.w=yt.r-yt.l,yt.h=yt.b-yt.t,wt&&(At=!0),t._dragged=At,R(kt,Mt,yt,bt,_t,xt),_t=!0}function Lt(){if(ct={},Math.min(yt.h,yt.w)<2*A)return F(t);\\\"xy\\\"!==wt&&\\\"x\\\"!==wt||z(Y,yt.l/J,yt.r/J,ct,Q.xaxes),\\\"xy\\\"!==wt&&\\\"y\\\"!==wt||z(X,(K-yt.b)/K,(K-yt.t)/K,ct,Q.yaxes),F(t),Nt(),N(t)}Tt.prepFn=function(e,r,n){var a=Tt.dragmode,o=t._fullLayout.dragmode;o!==a&&(Tt.dragmode=o),pt(),rt||(ft?e.shiftKey?\\\"pan\\\"===o?o=\\\"zoom\\\":j(o)||(o=\\\"pan\\\"):e.ctrlKey&&(o=\\\"pan\\\"):o=\\\"pan\\\"),Tt.minDrag=\\\"lasso\\\"===o?1:void 0,j(o)?(Tt.xaxes=Y,Tt.yaxes=X,b(e,r,n,Tt,o)):(Tt.clickFn=Et,j(a)&&St(),rt||(\\\"zoom\\\"===o?(Tt.moveFn=Ct,Tt.doneFn=Lt,Tt.minDrag=1,function(e,r,n){var a=gt.getBoundingClientRect();vt=r-a.left,mt=n-a.top,yt={l:vt,r:vt,w:0,t:mt,b:mt,h:0},xt=t._hmpixcount?t._hmlumcount/t._hmpixcount:i(t._fullLayout.plot_bgcolor).getLuminance(),_t=!1,wt=\\\"xy\\\",At=!1,kt=P(ut,xt,Z,$,bt=\\\"M0,0H\\\"+J+\\\"V\\\"+K+\\\"H0V0\\\"),Mt=D(ut,Z,$)}(0,r,n)):\\\"pan\\\"===o&&(Tt.moveFn=Bt,Tt.doneFn=Nt)))},p.init(Tt);var zt,Ot,It=[0,0,J,K],Pt=null,Dt=M.REDRAWDELAY,Rt=e.mainplot?t._fullLayout._plots[e.mainplot]:e;function Bt(e,r){if(!t._transitioningWithDuration){if(\\\"ew\\\"===tt||\\\"ns\\\"===et)return tt&&O(Y,e),et&&O(X,r),jt([tt?-e:0,et?-r:0,J,K]),void Ft(et,tt);if(nt&&tt&&et){var n=\\\"w\\\"===tt==(\\\"n\\\"===et)?1:-1,i=(e/J+n*r/K)/2;e=i*J,r=n*i*K}\\\"w\\\"===tt?e=l(Y,0,e):\\\"e\\\"===tt?e=l(Y,1,-e):tt||(e=0),\\\"n\\\"===et?r=l(X,1,r):\\\"s\\\"===et?r=l(X,0,-r):et||(r=0);var a=\\\"w\\\"===tt?e:0,o=\\\"n\\\"===et?r:0;if(nt){var s;if(!tt&&1===et.length){for(s=0;s<Y.length;s++)Y[s].range=Y[s]._r.slice(),k(Y[s],1-r/K);a=(e=r*J/K)/2}if(!et&&1===tt.length){for(s=0;s<X.length;s++)X[s].range=X[s]._r.slice(),k(X[s],1-e/J);o=(r=e*K/J)/2}}jt([a,o,J-e,K-r]),Ft(et,tt)}function l(t,e,r){for(var n,i,a=1-e,o=0;o<t.length;o++){var s=t[o];if(!s.fixedrange){n=s,i=s._rl[a]+(s._rl[e]-s._rl[a])/I(r/s._length);var l=s.l2r(i);!1!==l&&void 0!==l&&(s.range[e]=l)}}return n._length*(n._rl[e]-i)/(n._rl[e]-n._rl[a])}}function Ft(e,r){var n,i=[];function a(t){for(n=0;n<t.length;n++)t[n].fixedrange||i.push(t[n]._id)}for(it&&(a(Y),a(Q.xaxes)),at&&(a(X),a(Q.yaxes)),ct={},n=0;n<i.length;n++){var s=i[n];y(t,s,!0);var l=x(t,s);ct[l._name+\\\".range[0]\\\"]=l.range[0],ct[l._name+\\\".range[1]\\\"]=l.range[1]}function c(a,o,s){for(n=0;n<a.length;n++){var l=a[n];if((r&&-1!==i.indexOf(l.xref)||e&&-1!==i.indexOf(l.yref))&&(o(t,n),s))return}}c(t._fullLayout.annotations||[],o.getComponentMethod(\\\"annotations\\\",\\\"drawOne\\\")),c(t._fullLayout.shapes||[],o.getComponentMethod(\\\"shapes\\\",\\\"drawOne\\\")),c(t._fullLayout.images||[],o.getComponentMethod(\\\"images\\\",\\\"draw\\\"),!0)}function Nt(){jt([0,0,J,K]),s.syncOrAsync([m.previousPromises,function(){o.call(\\\"relayout\\\",t,ct)}],t)}function jt(e){var r,n,i,a,l=t._fullLayout,c=l._plots,f=l._subplots.cartesian;if(st&&o.subplotsRegistry.splom.drag(t),ot)for(r=0;r<f.length;r++)if(i=(n=c[f[r]]).xaxis,a=n.yaxis,n._scene){var h=s.simpleMap(i.range,i.r2l),p=s.simpleMap(a.range,a.r2l);n._scene.update({range:[h[0],p[0],h[1],p[1]]})}if((st||ot)&&(g(t),v(t)),lt){var d=e[2]/B._length,m=e[3]/H._length;for(r=0;r<f.length;r++){i=(n=c[f[r]]).xaxis,a=n.yaxis;var y,x,b,_,w=it&&!i.fixedrange&&G[i._id],k=at&&!a.fixedrange&&W[a._id];if(w?(y=d,b=E?e[0]:qt(i,y)):b=Ut(i,y=Vt(i,d,m)),k?(x=m,_=S?e[1]:qt(a,x)):_=Ut(a,x=Vt(a,d,m)),y||x){y||(y=1),x||(x=1);var M=i._offset-b/y,A=a._offset-_/x;n.clipRect.call(u.setTranslate,b,_).call(u.setScale,y,x),n.plot.call(u.setTranslate,M,A).call(u.setScale,1/y,1/x),y===zt&&x===Ot||(u.setPointGroupScale(n.zoomScalePts,y,x),u.setTextPointsScale(n.zoomScaleTxt,y,x)),u.hideOutsideRangePoints(n.clipOnAxisFalseTraces,n),zt=y,Ot=x}}}}function Vt(t,e,r){return t.fixedrange?0:it&&Q.xaHash[t._id]?e:at&&(nt?Q.xaHash:Q.yaHash)[t._id]?r:0}function Ut(t,e){return e?(t.range=t._r.slice(),k(t,e),qt(t,e)):0}function qt(t,e){return t._length*(1-e)*d[t.constraintoward||\\\"middle\\\"]}return S.length*E.length!=1&&U(gt,function(e){if(t._context.scrollZoom||t._fullLayout._enablescrollzoom){if(St(),t._transitioningWithDuration)return e.preventDefault(),void e.stopPropagation();var r=t.querySelector(\\\".plotly\\\");if(pt(),!(r.scrollHeight-r.clientHeight>10||r.scrollWidth-r.clientWidth>10)){clearTimeout(Pt);var n=-e.deltaY;if(isFinite(n)||(n=e.wheelDelta/10),isFinite(n)){var i,a=Math.exp(-Math.min(Math.max(n,-20),20)/200),o=Rt.draglayer.select(\\\".nsewdrag\\\").node().getBoundingClientRect(),l=(e.clientX-o.left)/o.width,c=(o.bottom-e.clientY)/o.height;if(it){for(E||(l=.5),i=0;i<Y.length;i++)u(Y[i],l,a);It[2]*=a,It[0]+=It[2]*l*(1/a-1)}if(at){for(S||(c=.5),i=0;i<X.length;i++)u(X[i],c,a);It[3]*=a,It[1]+=It[3]*(1-c)*(1/a-1)}jt(It),Ft(S,E),Pt=setTimeout(function(){It=[0,0,J,K],Nt()},Dt),e.preventDefault()}else s.log(\\\"Did not find wheel motion attributes: \\\",e)}}function u(t,e,r){if(!t.fixedrange){var n=s.simpleMap(t.range,t.r2l),i=n[0]+(n[1]-n[0])*e;t.range=n.map(function(e){return t.l2r(i+(e-i)*r)})}}}),gt},makeDragger:E,makeRectDragger:C,makeZoombox:P,makeCorners:D,updateZoombox:R,xyCorners:V,transitionZoombox:B,removeZoombox:F,showDoubleClickNotifier:N,attachWheelEventHandler:U}},{\\\"../../components/color\\\":570,\\\"../../components/dragelement\\\":592,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/clear_gl_canvases\\\":680,\\\"../../lib/setcursor\\\":716,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/subroutines\\\":735,\\\"../../registry\\\":827,\\\"../plots\\\":808,\\\"./axes\\\":744,\\\"./axis_ids\\\":747,\\\"./constants\\\":750,\\\"./scale_zoom\\\":761,\\\"./select\\\":762,d3:148,\\\"has-passive-events\\\":394,tinycolor2:514}],754:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/fx\\\"),a=t(\\\"../../components/dragelement\\\"),o=t(\\\"../../lib/setcursor\\\"),s=t(\\\"./dragbox\\\").makeDragBox,l=t(\\\"./constants\\\").DRAGGERSIZE;r.initInteractions=function(t){var e=t._fullLayout;if(t._context.staticPlot)n.select(t).selectAll(\\\".drag\\\").remove();else if(e._has(\\\"cartesian\\\")||e._has(\\\"splom\\\")){Object.keys(e._plots||{}).sort(function(t,r){if((e._plots[t].mainplot&&!0)===(e._plots[r].mainplot&&!0)){var n=t.split(\\\"y\\\"),i=r.split(\\\"y\\\");return n[0]===i[0]?Number(n[1]||1)-Number(i[1]||1):Number(n[0]||1)-Number(i[0]||1)}return e._plots[t].mainplot?1:-1}).forEach(function(r){var n=e._plots[r],o=n.xaxis,c=n.yaxis;if(!n.mainplot){var u=s(t,n,o._offset,c._offset,o._length,c._length,\\\"ns\\\",\\\"ew\\\");u.onmousemove=function(e){t._fullLayout._rehover=function(){t._fullLayout._hoversubplot===r&&i.hover(t,e,r)},i.hover(t,e,r),t._fullLayout._lasthover=u,t._fullLayout._hoversubplot=r},u.onmouseout=function(e){t._dragging||(t._fullLayout._hoversubplot=null,a.unhover(t,e))},t._context.showAxisDragHandles&&(s(t,n,o._offset-l,c._offset-l,l,l,\\\"n\\\",\\\"w\\\"),s(t,n,o._offset+o._length,c._offset-l,l,l,\\\"n\\\",\\\"e\\\"),s(t,n,o._offset-l,c._offset+c._length,l,l,\\\"s\\\",\\\"w\\\"),s(t,n,o._offset+o._length,c._offset+c._length,l,l,\\\"s\\\",\\\"e\\\"))}if(t._context.showAxisDragHandles){if(r===o._mainSubplot){var f=o._mainLinePosition;\\\"top\\\"===o.side&&(f-=l),s(t,n,o._offset+.1*o._length,f,.8*o._length,l,\\\"\\\",\\\"ew\\\"),s(t,n,o._offset,f,.1*o._length,l,\\\"\\\",\\\"w\\\"),s(t,n,o._offset+.9*o._length,f,.1*o._length,l,\\\"\\\",\\\"e\\\")}if(r===c._mainSubplot){var h=c._mainLinePosition;\\\"right\\\"!==c.side&&(h-=l),s(t,n,h,c._offset+.1*c._length,l,.8*c._length,\\\"ns\\\",\\\"\\\"),s(t,n,h,c._offset+.9*c._length,l,.1*c._length,\\\"s\\\",\\\"\\\"),s(t,n,h,c._offset,l,.1*c._length,\\\"n\\\",\\\"\\\")}}});var o=e._hoverlayer.node();o.onmousemove=function(r){r.target=t._fullLayout._lasthover,i.hover(t,r,e._hoversubplot)},o.onclick=function(e){e.target=t._fullLayout._lasthover,i.click(t,e)},o.onmousedown=function(e){t._fullLayout._lasthover.onmousedown(e)},r.updateFx(t)}},r.updateFx=function(t){var e=t._fullLayout,r=\\\"pan\\\"===e.dragmode?\\\"move\\\":\\\"crosshair\\\";o(e._draggers,r)}},{\\\"../../components/dragelement\\\":592,\\\"../../components/fx\\\":612,\\\"../../lib/setcursor\\\":716,\\\"./constants\\\":750,\\\"./dragbox\\\":753,d3:148}],755:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\");e.exports=function(t){return function(e,r){var a=e[t];if(Array.isArray(a))for(var o=n.subplotsRegistry.cartesian,s=o.idRegex,l=r._subplots,c=l.xaxis,u=l.yaxis,f=l.cartesian,h=r._has(\\\"cartesian\\\")||r._has(\\\"gl2d\\\"),p=0;p<a.length;p++){var d=a[p];if(i.isPlainObject(d)){var g=d.xref,v=d.yref,m=s.x.test(g),y=s.y.test(v);if(m||y){h||i.pushUnique(r._basePlotModules,o);var x=!1;m&&-1===c.indexOf(g)&&(c.push(g),x=!0),y&&-1===u.indexOf(v)&&(u.push(v),x=!0),x&&m&&y&&f.push(g+v)}}}}}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827}],756:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../plots\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"../get_data\\\").getModuleCalcData,c=t(\\\"./axis_ids\\\"),u=t(\\\"./constants\\\"),f=t(\\\"../../constants/xmlns_namespaces\\\"),h=a.ensureSingle;function p(t,e,r){return a.ensureSingle(t,e,r,function(t){t.datum(r)})}function d(t,e,r,a,o){for(var c,f,h,p=u.traceLayerClasses,d=t._fullLayout,g=d._modules,v=[],m=[],y=0;y<g.length;y++){var x=(c=g[y]).name,b=i.modules[x].categories;if(b.svg){var _=c.layerName||x+\\\"layer\\\",w=c.plot;h=(f=l(r,w))[0],r=f[1],h.length&&v.push({i:p.indexOf(_),className:_,plotMethod:w,cdModule:h}),b.zoomScale&&m.push(\\\".\\\"+_)}}v.sort(function(t,e){return t.i-e.i});var k=e.plot.selectAll(\\\"g.mlayer\\\").data(v,function(t){return t.className});if(k.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return t.className}).classed(\\\"mlayer\\\",!0),k.exit().remove(),k.order(),k.each(function(r){var i=n.select(this),l=r.className;r.plotMethod(t,e,r.cdModule,i,a,o),\\\"scatterlayer\\\"!==l&&\\\"barlayer\\\"!==l&&s.setClipUrl(i,e.layerClipId)}),d._has(\\\"scattergl\\\")&&(c=i.getModule(\\\"scattergl\\\"),h=l(r,c)[0],c.plot(t,e,h)),!t._context.staticPlot&&(e._hasClipOnAxisFalse&&(e.clipOnAxisFalseTraces=e.plot.selectAll(\\\".scatterlayer, .barlayer\\\").selectAll(\\\".trace\\\")),m.length)){var M=e.plot.selectAll(m.join(\\\",\\\")).selectAll(\\\".trace\\\");e.zoomScalePts=M.selectAll(\\\"path.point\\\"),e.zoomScaleTxt=M.selectAll(\\\".textpoint\\\")}}function g(t,e){var r=e.plotgroup,n=e.id,i=u.layerValue2layerClass[e.xaxis.layer],a=u.layerValue2layerClass[e.yaxis.layer],o=t._fullLayout._hasOnlyLargeSploms;if(e.mainplot){var s=e.mainplotinfo,l=s.plotgroup,f=n+\\\"-x\\\",d=n+\\\"-y\\\";e.gridlayer=s.gridlayer,e.zerolinelayer=s.zerolinelayer,h(s.overlinesBelow,\\\"path\\\",f),h(s.overlinesBelow,\\\"path\\\",d),h(s.overaxesBelow,\\\"g\\\",f),h(s.overaxesBelow,\\\"g\\\",d),e.plot=h(s.overplot,\\\"g\\\",n),h(s.overlinesAbove,\\\"path\\\",f),h(s.overlinesAbove,\\\"path\\\",d),h(s.overaxesAbove,\\\"g\\\",f),h(s.overaxesAbove,\\\"g\\\",d),e.xlines=l.select(\\\".overlines-\\\"+i).select(\\\".\\\"+f),e.ylines=l.select(\\\".overlines-\\\"+a).select(\\\".\\\"+d),e.xaxislayer=l.select(\\\".overaxes-\\\"+i).select(\\\".\\\"+f),e.yaxislayer=l.select(\\\".overaxes-\\\"+a).select(\\\".\\\"+d)}else if(o)e.xlines=h(r,\\\"path\\\",\\\"xlines-above\\\"),e.ylines=h(r,\\\"path\\\",\\\"ylines-above\\\"),e.xaxislayer=h(r,\\\"g\\\",\\\"xaxislayer-above\\\"),e.yaxislayer=h(r,\\\"g\\\",\\\"yaxislayer-above\\\");else{var g=h(r,\\\"g\\\",\\\"layer-subplot\\\");e.shapelayer=h(g,\\\"g\\\",\\\"shapelayer\\\"),e.imagelayer=h(g,\\\"g\\\",\\\"imagelayer\\\"),e.gridlayer=h(r,\\\"g\\\",\\\"gridlayer\\\"),e.zerolinelayer=h(r,\\\"g\\\",\\\"zerolinelayer\\\"),h(r,\\\"path\\\",\\\"xlines-below\\\"),h(r,\\\"path\\\",\\\"ylines-below\\\"),e.overlinesBelow=h(r,\\\"g\\\",\\\"overlines-below\\\"),h(r,\\\"g\\\",\\\"xaxislayer-below\\\"),h(r,\\\"g\\\",\\\"yaxislayer-below\\\"),e.overaxesBelow=h(r,\\\"g\\\",\\\"overaxes-below\\\"),e.plot=h(r,\\\"g\\\",\\\"plot\\\"),e.overplot=h(r,\\\"g\\\",\\\"overplot\\\"),e.xlines=h(r,\\\"path\\\",\\\"xlines-above\\\"),e.ylines=h(r,\\\"path\\\",\\\"ylines-above\\\"),e.overlinesAbove=h(r,\\\"g\\\",\\\"overlines-above\\\"),h(r,\\\"g\\\",\\\"xaxislayer-above\\\"),h(r,\\\"g\\\",\\\"yaxislayer-above\\\"),e.overaxesAbove=h(r,\\\"g\\\",\\\"overaxes-above\\\"),e.xlines=r.select(\\\".xlines-\\\"+i),e.ylines=r.select(\\\".ylines-\\\"+a),e.xaxislayer=r.select(\\\".xaxislayer-\\\"+i),e.yaxislayer=r.select(\\\".yaxislayer-\\\"+a)}o||(p(e.gridlayer,\\\"g\\\",e.xaxis._id),p(e.gridlayer,\\\"g\\\",e.yaxis._id),e.gridlayer.selectAll(\\\"g\\\").map(function(t){return t[0]}).sort(c.idSort)),e.xlines.style(\\\"fill\\\",\\\"none\\\").classed(\\\"crisp\\\",!0),e.ylines.style(\\\"fill\\\",\\\"none\\\").classed(\\\"crisp\\\",!0)}function v(t,e){if(t){var r={};for(var i in t.each(function(t){var i=t[0];n.select(this).remove(),m(i,e),r[i]=!0}),e._plots)for(var a=e._plots[i].overlays||[],o=0;o<a.length;o++){var s=a[o];r[s.id]&&s.plot.selectAll(\\\".trace\\\").remove()}}}function m(t,e){e._draggers.selectAll(\\\"g.\\\"+t).remove(),e._defs.select(\\\"#clip\\\"+e._uid+t+\\\"plot\\\").remove()}r.name=\\\"cartesian\\\",r.attr=[\\\"xaxis\\\",\\\"yaxis\\\"],r.idRoot=[\\\"x\\\",\\\"y\\\"],r.idRegex=u.idRegex,r.attrRegex=u.attrRegex,r.attributes=t(\\\"./attributes\\\"),r.layoutAttributes=t(\\\"./layout_attributes\\\"),r.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),r.transitionAxes=t(\\\"./transition_axes\\\"),r.finalizeSubplots=function(t,e){var r,n,i,o=e._subplots,s=o.xaxis,l=o.yaxis,f=o.cartesian,h=f.concat(o.gl2d||[]),p={},d={};for(r=0;r<h.length;r++){var g=h[r].split(\\\"y\\\");p[g[0]]=1,d[\\\"y\\\"+g[1]]=1}for(r=0;r<s.length;r++)p[n=s[r]]||(i=(t[c.id2name(n)]||{}).anchor,u.idRegex.y.test(i)||(i=\\\"y\\\"),f.push(n+i),h.push(n+i),d[i]||(d[i]=1,a.pushUnique(l,i)));for(r=0;r<l.length;r++)d[i=l[r]]||(n=(t[c.id2name(i)]||{}).anchor,u.idRegex.x.test(n)||(n=\\\"x\\\"),f.push(n+i),h.push(n+i),p[n]||(p[n]=1,a.pushUnique(s,n)));if(!h.length){for(var v in n=\\\"\\\",i=\\\"\\\",t){if(u.attrRegex.test(v))\\\"x\\\"===v.charAt(0)?(!n||+v.substr(5)<+n.substr(5))&&(n=v):(!i||+v.substr(5)<+i.substr(5))&&(i=v)}n=n?c.name2id(n):\\\"x\\\",i=i?c.name2id(i):\\\"y\\\",s.push(n),l.push(i),f.push(n+i)}},r.plot=function(t,e,r,n){var i,a=t._fullLayout,o=a._subplots.cartesian,s=t.calcdata;if(null!==e){if(!Array.isArray(e))for(e=[],i=0;i<s.length;i++)e.push(i);for(i=0;i<o.length;i++){for(var l,c=o[i],u=a._plots[c],f=[],h=0;h<s.length;h++){var p=s[h],g=p[0].trace;g.xaxis+g.yaxis===c&&((-1!==e.indexOf(g.index)||g.carpet)&&(l&&l[0].trace.xaxis+l[0].trace.yaxis===c&&-1!==[\\\"tonextx\\\",\\\"tonexty\\\",\\\"tonext\\\"].indexOf(g.fill)&&-1===f.indexOf(l)&&f.push(l),f.push(p)),l=p)}d(t,u,f,r,n)}}},r.clean=function(t,e,r,n){var i,a,o,s=n._plots||{},l=e._plots||{},u=n._subplots||{};if(n._hasOnlyLargeSploms&&!e._hasOnlyLargeSploms)for(o in s)(i=s[o]).plotgroup&&i.plotgroup.remove();var f=n._has&&n._has(\\\"gl\\\"),h=e._has&&e._has(\\\"gl\\\");if(f&&!h)for(o in s)(i=s[o])._scene&&i._scene.destroy();if(u.xaxis&&u.yaxis){var p=c.listIds({_fullLayout:n});for(a=0;a<p.length;a++){var d=p[a];e[c.id2name(d)]||n._infolayer.selectAll(\\\".g-\\\"+d+\\\"title\\\").remove()}}var g=n._has&&n._has(\\\"cartesian\\\"),y=e._has&&e._has(\\\"cartesian\\\");if(g&&!y)v(n._cartesianlayer.selectAll(\\\".subplot\\\"),n),n._defs.selectAll(\\\".axesclip\\\").remove(),delete n._axisConstraintGroups;else if(u.cartesian)for(a=0;a<u.cartesian.length;a++){var x=u.cartesian[a];if(!l[x]){var b=\\\".\\\"+x+\\\",.\\\"+x+\\\"-x,.\\\"+x+\\\"-y\\\";n._cartesianlayer.selectAll(b).remove(),m(x,n)}}},r.drawFramework=function(t){var e=t._fullLayout,r=function(t){var e,r,n,i,a,o,s=t._fullLayout,l=s._subplots.cartesian,c=l.length,u=[],f=[];for(e=0;e<c;e++){n=l[e],i=s._plots[n],a=i.xaxis,o=i.yaxis;var h=a._mainAxis,p=o._mainAxis,d=h._id+p._id,g=s._plots[d];i.overlays=[],d!==n&&g?(i.mainplot=d,i.mainplotinfo=g,f.push(n)):(i.mainplot=void 0,i.mainPlotinfo=void 0,u.push(n))}for(e=0;e<f.length;e++)n=f[e],(i=s._plots[n]).mainplotinfo.overlays.push(i);var v=u.concat(f),m=new Array(c);for(e=0;e<c;e++){n=v[e],i=s._plots[n],a=i.xaxis,o=i.yaxis;var y=[n,a.layer,o.layer,a.overlaying||\\\"\\\",o.overlaying||\\\"\\\"];for(r=0;r<i.overlays.length;r++)y.push(i.overlays[r].id);m[e]=y}return m}(t),i=e._cartesianlayer.selectAll(\\\".subplot\\\").data(r,String);i.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"subplot \\\"+t[0]}),i.order(),i.exit().call(v,e),i.each(function(r){var i=r[0],a=e._plots[i];a.plotgroup=n.select(this),g(t,a),a.draglayer=h(e._draggers,\\\"g\\\",i)})},r.rangePlot=function(t,e,r){g(t,e),d(t,e,r),o.style(t)},r.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(\\\".svg-container\\\");r.filter(function(t,e){return e===r.size()-1}).selectAll(\\\".gl-canvas-context, .gl-canvas-focus\\\").each(function(){var t=this.toDataURL(\\\"image/png\\\");e.append(\\\"svg:image\\\").attr({xmlns:f.svg,\\\"xlink:href\\\":t,preserveAspectRatio:\\\"none\\\",x:0,y:0,width:this.width,height:this.height})})},r.updateFx=t(\\\"./graph_interact\\\").updateFx},{\\\"../../components/drawing\\\":595,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../get_data\\\":781,\\\"../plots\\\":808,\\\"./attributes\\\":742,\\\"./axis_ids\\\":747,\\\"./constants\\\":750,\\\"./graph_interact\\\":754,\\\"./layout_attributes\\\":757,\\\"./layout_defaults\\\":758,\\\"./transition_axes\\\":767,d3:148}],757:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../font_attributes\\\"),i=t(\\\"../../components/color/attributes\\\"),a=t(\\\"../../components/drawing/attributes\\\").dash,o=t(\\\"../../lib/extend\\\").extendFlat,s=t(\\\"../../plot_api/plot_template\\\").templatedArray,l=t(\\\"./constants\\\");e.exports={visible:{valType:\\\"boolean\\\",editType:\\\"plot\\\"},color:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"ticks\\\"},title:{valType:\\\"string\\\",editType:\\\"ticks\\\"},titlefont:n({editType:\\\"ticks\\\"}),type:{valType:\\\"enumerated\\\",values:[\\\"-\\\",\\\"linear\\\",\\\"log\\\",\\\"date\\\",\\\"category\\\"],dflt:\\\"-\\\",editType:\\\"calc\\\",_noTemplating:!0},autorange:{valType:\\\"enumerated\\\",values:[!0,!1,\\\"reversed\\\"],dflt:!0,editType:\\\"axrange\\\",impliedEdits:{\\\"range[0]\\\":void 0,\\\"range[1]\\\":void 0}},rangemode:{valType:\\\"enumerated\\\",values:[\\\"normal\\\",\\\"tozero\\\",\\\"nonnegative\\\"],dflt:\\\"normal\\\",editType:\\\"plot\\\"},range:{valType:\\\"info_array\\\",items:[{valType:\\\"any\\\",editType:\\\"axrange\\\",impliedEdits:{\\\"^autorange\\\":!1}},{valType:\\\"any\\\",editType:\\\"axrange\\\",impliedEdits:{\\\"^autorange\\\":!1}}],editType:\\\"axrange\\\",impliedEdits:{autorange:!1}},fixedrange:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},scaleanchor:{valType:\\\"enumerated\\\",values:[l.idRegex.x.toString(),l.idRegex.y.toString()],editType:\\\"plot\\\"},scaleratio:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"plot\\\"},constrain:{valType:\\\"enumerated\\\",values:[\\\"range\\\",\\\"domain\\\"],dflt:\\\"range\\\",editType:\\\"plot\\\"},constraintoward:{valType:\\\"enumerated\\\",values:[\\\"left\\\",\\\"center\\\",\\\"right\\\",\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],editType:\\\"plot\\\"},tickmode:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"linear\\\",\\\"array\\\"],editType:\\\"ticks\\\",impliedEdits:{tick0:void 0,dtick:void 0}},nticks:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"ticks\\\"},tick0:{valType:\\\"any\\\",editType:\\\"ticks\\\",impliedEdits:{tickmode:\\\"linear\\\"}},dtick:{valType:\\\"any\\\",editType:\\\"ticks\\\",impliedEdits:{tickmode:\\\"linear\\\"}},tickvals:{valType:\\\"data_array\\\",editType:\\\"ticks\\\"},ticktext:{valType:\\\"data_array\\\",editType:\\\"ticks\\\"},ticks:{valType:\\\"enumerated\\\",values:[\\\"outside\\\",\\\"inside\\\",\\\"\\\"],editType:\\\"ticks\\\"},mirror:{valType:\\\"enumerated\\\",values:[!0,\\\"ticks\\\",!1,\\\"all\\\",\\\"allticks\\\"],dflt:!1,editType:\\\"ticks+layoutstyle\\\"},ticklen:{valType:\\\"number\\\",min:0,dflt:5,editType:\\\"ticks\\\"},tickwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"ticks\\\"},tickcolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"ticks\\\"},showticklabels:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"ticks\\\"},automargin:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"ticks\\\"},showspikes:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"modebar\\\"},spikecolor:{valType:\\\"color\\\",dflt:null,editType:\\\"none\\\"},spikethickness:{valType:\\\"number\\\",dflt:3,editType:\\\"none\\\"},spikedash:o({},a,{dflt:\\\"dash\\\",editType:\\\"none\\\"}),spikemode:{valType:\\\"flaglist\\\",flags:[\\\"toaxis\\\",\\\"across\\\",\\\"marker\\\"],dflt:\\\"toaxis\\\",editType:\\\"none\\\"},spikesnap:{valType:\\\"enumerated\\\",values:[\\\"data\\\",\\\"cursor\\\"],dflt:\\\"data\\\",editType:\\\"none\\\"},tickfont:n({editType:\\\"ticks\\\"}),tickangle:{valType:\\\"angle\\\",dflt:\\\"auto\\\",editType:\\\"ticks\\\"},tickprefix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"ticks\\\"},showtickprefix:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"ticks\\\"},ticksuffix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"ticks\\\"},showticksuffix:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"ticks\\\"},showexponent:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"ticks\\\"},exponentformat:{valType:\\\"enumerated\\\",values:[\\\"none\\\",\\\"e\\\",\\\"E\\\",\\\"power\\\",\\\"SI\\\",\\\"B\\\"],dflt:\\\"B\\\",editType:\\\"ticks\\\"},separatethousands:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"ticks\\\"},tickformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"ticks\\\"},tickformatstops:s(\\\"tickformatstop\\\",{enabled:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"ticks\\\"},dtickrange:{valType:\\\"info_array\\\",items:[{valType:\\\"any\\\",editType:\\\"ticks\\\"},{valType:\\\"any\\\",editType:\\\"ticks\\\"}],editType:\\\"ticks\\\"},value:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"ticks\\\"},editType:\\\"ticks\\\"}),hoverformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"none\\\"},showline:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"ticks+layoutstyle\\\"},linecolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"layoutstyle\\\"},linewidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"ticks+layoutstyle\\\"},showgrid:{valType:\\\"boolean\\\",editType:\\\"ticks\\\"},gridcolor:{valType:\\\"color\\\",dflt:i.lightLine,editType:\\\"ticks\\\"},gridwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"ticks\\\"},zeroline:{valType:\\\"boolean\\\",editType:\\\"ticks\\\"},zerolinecolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"ticks\\\"},zerolinewidth:{valType:\\\"number\\\",dflt:1,editType:\\\"ticks\\\"},anchor:{valType:\\\"enumerated\\\",values:[\\\"free\\\",l.idRegex.x.toString(),l.idRegex.y.toString()],editType:\\\"plot\\\"},side:{valType:\\\"enumerated\\\",values:[\\\"top\\\",\\\"bottom\\\",\\\"left\\\",\\\"right\\\"],editType:\\\"plot\\\"},overlaying:{valType:\\\"enumerated\\\",values:[\\\"free\\\",l.idRegex.x.toString(),l.idRegex.y.toString()],editType:\\\"plot\\\"},layer:{valType:\\\"enumerated\\\",values:[\\\"above traces\\\",\\\"below traces\\\"],dflt:\\\"above traces\\\",editType:\\\"plot\\\"},domain:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\",min:0,max:1,editType:\\\"plot\\\"},{valType:\\\"number\\\",min:0,max:1,editType:\\\"plot\\\"}],dflt:[0,1],editType:\\\"plot\\\"},position:{valType:\\\"number\\\",min:0,max:1,dflt:0,editType:\\\"plot\\\"},categoryorder:{valType:\\\"enumerated\\\",values:[\\\"trace\\\",\\\"category ascending\\\",\\\"category descending\\\",\\\"array\\\"],dflt:\\\"trace\\\",editType:\\\"calc\\\"},categoryarray:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\",_deprecated:{autotick:{valType:\\\"boolean\\\",editType:\\\"ticks\\\"}}}},{\\\"../../components/color/attributes\\\":569,\\\"../../components/drawing/attributes\\\":594,\\\"../../lib/extend\\\":685,\\\"../../plot_api/plot_template\\\":734,\\\"../font_attributes\\\":771,\\\"./constants\\\":750}],758:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../plot_api/plot_template\\\"),o=t(\\\"../layout_attributes\\\"),s=t(\\\"./layout_attributes\\\"),l=t(\\\"./type_defaults\\\"),c=t(\\\"./axis_defaults\\\"),u=t(\\\"./constraint_defaults\\\"),f=t(\\\"./position_defaults\\\"),h=t(\\\"./axis_ids\\\"),p=h.id2name,d=h.name2id,g=t(\\\"../../registry\\\"),v=g.traceIs,m=g.getComponentMethod;function y(t,e,r){Array.isArray(t[e])?t[e].push(r):t[e]=[r]}e.exports=function(t,e,r){var h,g,x={},b={},_={},w={},k={};for(h=0;h<r.length;h++){var M=r[h];if(v(M,\\\"cartesian\\\")||v(M,\\\"gl2d\\\")){var A,T;if(M.xaxis)y(x,A=p(M.xaxis),M);else if(M.xaxes)for(g=0;g<M.xaxes.length;g++)y(x,p(M.xaxes[g]),M);if(M.yaxis)y(x,T=p(M.yaxis),M);else if(M.yaxes)for(g=0;g<M.yaxes.length;g++)y(x,p(M.yaxes[g]),M);if(v(M,\\\"carpet\\\")&&(\\\"carpet\\\"!==M.type||M._cheater)||A&&(_[A]=1),\\\"carpet\\\"===M.type&&M._cheater&&A&&(b[A]=1),v(M,\\\"2dMap\\\")&&(w[A]=1,w[T]=1),v(M,\\\"oriented\\\"))k[\\\"h\\\"===M.orientation?T:A]=1}}var S=e._subplots,E=S.xaxis,C=S.yaxis,L=n.simpleMap(E,p),z=n.simpleMap(C,p),O=L.concat(z),I=i.background;E.length&&C.length&&(I=n.coerce(t,e,o,\\\"plot_bgcolor\\\"));var P,D,R,B,F=i.combine(I,e.paper_bgcolor);function N(t,e){return n.coerce(R,B,s,t,e)}function j(t,e){return n.coerce2(R,B,s,t,e)}function V(t){return\\\"x\\\"===t?C:E}var U={x:V(\\\"x\\\"),y:V(\\\"y\\\")};function q(e,r){for(var n=\\\"x\\\"===e?L:z,i=[],a=0;a<n.length;a++){var o=n[a];o===r||(t[o]||{}).overlaying||i.push(d(o))}return i}for(h=0;h<O.length;h++){D=(P=O[h]).charAt(0),n.isPlainObject(t[P])||(t[P]={}),R=t[P],B=a.newContainer(e,P,D+\\\"axis\\\");var H=x[P]||[];B._traceIndices=H.map(function(t){return t._expandedIndex}),B._annIndices=[],B._shapeIndices=[],B._name=P;var G=B._id=d(P),W=q(D,P),Y={letter:D,font:e.font,outerTicks:w[P],showGrid:!k[P],data:H,bgColor:F,calendar:e.calendar,automargin:!0,cheateronly:\\\"x\\\"===D&&b[P]&&!_[P],splomStash:((e._splomAxes||{})[D]||{})[G]};l(R,B,N,Y),c(R,B,N,Y,e);var X=j(\\\"spikecolor\\\"),Z=j(\\\"spikethickness\\\"),$=j(\\\"spikedash\\\"),J=j(\\\"spikemode\\\"),K=j(\\\"spikesnap\\\");N(\\\"showspikes\\\",!!(X||Z||$||J||K))||(delete B.spikecolor,delete B.spikethickness,delete B.spikedash,delete B.spikemode,delete B.spikesnap);var Q={letter:D,counterAxes:U[D],overlayableAxes:W,grid:e.grid};f(R,B,N,Q),B._input=R}var tt=m(\\\"rangeslider\\\",\\\"handleDefaults\\\"),et=m(\\\"rangeselector\\\",\\\"handleDefaults\\\");for(h=0;h<L.length;h++)P=L[h],R=t[P],B=e[P],tt(t,e,P),\\\"date\\\"===B.type&&et(R,B,e,z,B.calendar),N(\\\"fixedrange\\\");for(h=0;h<z.length;h++){P=z[h],R=t[P],B=e[P];var rt=e[p(B.anchor)];N(\\\"fixedrange\\\",rt&&rt.rangeslider&&rt.rangeslider.visible)}e._axisConstraintGroups=[];var nt=U.x.concat(U.y);for(h=0;h<O.length;h++)D=(P=O[h]).charAt(0),R=t[P],B=e[P],u(R,B,N,nt,e)}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../registry\\\":827,\\\"../layout_attributes\\\":799,\\\"./axis_defaults\\\":746,\\\"./axis_ids\\\":747,\\\"./constraint_defaults\\\":751,\\\"./layout_attributes\\\":757,\\\"./position_defaults\\\":760,\\\"./type_defaults\\\":768}],759:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"tinycolor2\\\").mix,i=t(\\\"../../components/color/attributes\\\").lightFraction,a=t(\\\"../../lib\\\");e.exports=function(t,e,r,o){var s=(o=o||{}).dfltColor;function l(r,n){return a.coerce2(t,e,o.attributes,r,n)}var c=l(\\\"linecolor\\\",s),u=l(\\\"linewidth\\\");r(\\\"showline\\\",o.showLine||!!c||!!u)||(delete e.linecolor,delete e.linewidth);var f=l(\\\"gridcolor\\\",n(s,o.bgColor,o.blend||i).toRgbString()),h=l(\\\"gridwidth\\\");if(r(\\\"showgrid\\\",o.showGrid||!!f||!!h)||(delete e.gridcolor,delete e.gridwidth),!o.noZeroLine){var p=l(\\\"zerolinecolor\\\",s),d=l(\\\"zerolinewidth\\\");r(\\\"zeroline\\\",o.showGrid||!!p||!!d)||(delete e.zerolinecolor,delete e.zerolinewidth)}}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib\\\":696,tinycolor2:514}],760:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\");e.exports=function(t,e,r,a){var o,s,l,c,u=a.counterAxes||[],f=a.overlayableAxes||[],h=a.letter,p=a.grid;p&&(s=p._domains[h][p._axisMap[e._id]],o=p._anchors[e._id],s&&(l=p[h+\\\"side\\\"].split(\\\" \\\")[0],c=p.domain[h][\\\"right\\\"===l||\\\"top\\\"===l?1:0])),s=s||[0,1],o=o||(n(t.position)?\\\"free\\\":u[0]||\\\"free\\\"),l=l||(\\\"x\\\"===h?\\\"bottom\\\":\\\"left\\\"),c=c||0,\\\"free\\\"===i.coerce(t,e,{anchor:{valType:\\\"enumerated\\\",values:[\\\"free\\\"].concat(u),dflt:o}},\\\"anchor\\\")&&r(\\\"position\\\",c),i.coerce(t,e,{side:{valType:\\\"enumerated\\\",values:\\\"x\\\"===h?[\\\"bottom\\\",\\\"top\\\"]:[\\\"left\\\",\\\"right\\\"],dflt:l}},\\\"side\\\");var d=!1;if(f.length&&(d=i.coerce(t,e,{overlaying:{valType:\\\"enumerated\\\",values:[!1].concat(f),dflt:!1}},\\\"overlaying\\\")),!d){var g=r(\\\"domain\\\",s);g[0]>g[1]-.01&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s)}return r(\\\"layer\\\"),e}},{\\\"../../lib\\\":696,\\\"fast-isnumeric\\\":214}],761:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../constants/alignment\\\").FROM_BL;e.exports=function(t,e,r){void 0===r&&(r=n[t.constraintoward||\\\"center\\\"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*r;t.range=t._input.range=[t.l2r(a+(i[0]-a)*e),t.l2r(a+(i[1]-a)*e)]}},{\\\"../../constants/alignment\\\":668}],762:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"polybooljs\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../../components/fx\\\"),s=t(\\\"../../lib/polygon\\\"),l=t(\\\"../../lib/throttle\\\"),c=t(\\\"../../components/fx/helpers\\\").makeEventData,u=t(\\\"./axis_ids\\\").getFromId,f=t(\\\"../../lib/clear_gl_canvases\\\"),h=t(\\\"../../plot_api/subroutines\\\").redrawReglTraces,p=t(\\\"./constants\\\"),d=p.MINSELECT,g=s.filter,v=s.tester;function m(t){return t._id}function y(t,e,r,n,i,a,o){var s,l,c,u,f,h,p,d,g,v=e._hoverdata,m=e._fullLayout.clickmode.indexOf(\\\"event\\\")>-1,y=[];if(function(t){return t&&Array.isArray(t)&&!0!==t[0].hoverOnBox}(v)){w(t,e,a);var x=function(t,e){var r,n,i=t[0],a=-1,o=[];for(n=0;n<e.length;n++)if(r=e[n],i.fullData._expandedIndex===r.cd[0].trace._expandedIndex){if(!0===i.hoverOnBox)break;void 0!==i.pointNumber?a=i.pointNumber:void 0!==i.binNumber&&(a=i.binNumber,o=i.pointNumbers);break}return{pointNumber:a,pointNumbers:o,searchInfo:r}}(v,s=M(e,r,n,i));if(x.pointNumbers.length>0?function(t,e){var r,n,i,a=[];for(i=0;i<t.length;i++)(r=t[i]).cd[0].trace.selectedpoints&&r.cd[0].trace.selectedpoints.length>0&&a.push(r);if(1===a.length&&a[0]===e.searchInfo&&(n=e.searchInfo.cd[0].trace).selectedpoints.length===e.pointNumbers.length){for(i=0;i<e.pointNumbers.length;i++)if(n.selectedpoints.indexOf(e.pointNumbers[i])<0)return!1;return!0}return!1}(s,x):function(t){var e,r,n,i=0;for(n=0;n<t.length;n++)if(e=t[n],(r=e.cd[0].trace).selectedpoints){if(r.selectedpoints.length>1)return!1;if((i+=r.selectedpoints.length)>1)return!1}return 1===i}(s)&&(h=T(x))){for(o&&o.remove(),g=0;g<s.length;g++)(l=s[g])._module.selectPoints(l,!1);S(e,s),k(a),m&&e.emit(\\\"plotly_deselect\\\",null)}else{for(p=t.shiftKey&&(void 0!==h?h:T(x)),c=function(t,e,r){return{pointNumber:t,searchInfo:e,subtract:r}}(x.pointNumber,x.searchInfo,p),u=_(a.selectionDefs.concat([c])),g=0;g<s.length;g++)if(f=E(s[g]._module.selectPoints(s[g],u),s[g]),y.length)for(var b=0;b<f.length;b++)y.push(f[b]);else y=f;S(e,s,d={points:y}),c&&a&&a.selectionDefs.push(c),o&&A(a.mergedPolygons,o),m&&e.emit(\\\"plotly_selected\\\",d)}}}function x(t){return\\\"pointNumber\\\"in t&&\\\"searchInfo\\\"in t}function b(t){return{xmin:0,xmax:0,ymin:0,ymax:0,pts:[],contains:function(e,r,n,i){var a=t.searchInfo.cd[0].trace._expandedIndex;return i.cd[0].trace._expandedIndex===a&&n===t.pointNumber},isRect:!1,degenerate:!1,subtract:t.subtract}}function _(t){for(var e=[],r=x(t[0])?0:t[0][0][0],n=r,i=x(t[0])?0:t[0][0][1],a=i,o=0;o<t.length;o++)if(x(t[o]))e.push(b(t[o]));else{var l=s.tester(t[o]);l.subtract=t[o].subtract,e.push(l),r=Math.min(r,l.xmin),n=Math.max(n,l.xmax),i=Math.min(i,l.ymin),a=Math.max(a,l.ymax)}return{xmin:r,xmax:n,ymin:i,ymax:a,pts:[],contains:function(t,r,n,i){for(var a=!1,o=0;o<e.length;o++)e[o].contains(t,r,n,i)&&(a=!1===e[o].subtract);return a},isRect:!1,degenerate:!1}}function w(t,e,r){var n=e._fullLayout,i=n._zoomlayer,a=r.plotinfo,o=n._lastSelectedSubplot&&n._lastSelectedSubplot===a.id,s=t.shiftKey||t.altKey;o&&s&&a.selection&&a.selection.selectionDefs&&!r.selectionDefs?(r.selectionDefs=a.selection.selectionDefs,r.mergedPolygons=a.selection.mergedPolygons):s&&a.selection||k(r),o||(C(i),n._lastSelectedSubplot=a.id)}function k(t){var e=t.plotinfo;e.selection={},e.selection.selectionDefs=t.selectionDefs=[],e.selection.mergedPolygons=t.mergedPolygons=[]}function M(t,e,r,n){var i,a,o,s=[],l=e.map(m),c=r.map(m);for(o=0;o<t.calcdata.length;o++)if(!0===(a=(i=t.calcdata[o])[0].trace).visible&&a._module&&a._module.selectPoints)if(!n||a.subplot!==n&&a.geo!==n)if(\\\"splom\\\"===a.type&&a._xaxes[l[0]]&&a._yaxes[c[0]]){var f=h(a._module,i,e[0],r[0]);f.scene=t._fullLayout._splomScenes[a.uid],s.push(f)}else{if(-1===l.indexOf(a.xaxis))continue;if(-1===c.indexOf(a.yaxis))continue;s.push(h(a._module,i,u(t,a.xaxis),u(t,a.yaxis)))}else s.push(h(a._module,i,e[0],r[0]));return s;function h(t,e,r,n){return{_module:t,cd:e,xaxis:r,yaxis:n}}}function A(t,e){var r,n,i=[];for(r=0;r<t.length;r++){var a=t[r];i.push(a.join(\\\"L\\\")+\\\"L\\\"+a[0])}n=t.length>0?\\\"M\\\"+i.join(\\\"M\\\")+\\\"Z\\\":\\\"M0,0Z\\\",e.attr(\\\"d\\\",n)}function T(t){var e=t.searchInfo.cd[0].trace,r=t.pointNumber,n=t.pointNumbers,i=n.length>0?n[0]:r;return!!e.selectedpoints&&e.selectedpoints.indexOf(i)>-1}function S(t,e,r){var n,a,o,s;if(r){var l=r.points||[];for(n=0;n<e.length;n++)(s=e[n].cd[0].trace).selectedpoints=[],s._input.selectedpoints=[];for(n=0;n<l.length;n++){var c=l[n],u=c.data,p=c.fullData;c.pointIndices?([].push.apply(u.selectedpoints,c.pointIndices),[].push.apply(p.selectedpoints,c.pointIndices)):(u.selectedpoints.push(c.pointIndex),p.selectedpoints.push(c.pointIndex))}}else for(n=0;n<e.length;n++)delete(s=e[n].cd[0].trace).selectedpoints,delete s._input.selectedpoints;var d=!1;for(n=0;n<e.length;n++){s=(o=(a=e[n]).cd)[0].trace,i.traceIs(s,\\\"regl\\\")&&(d=!0);var g=a._module,v=g.styleOnSelect||g.style;v&&v(t,o)}d&&(f(t),h(t))}function E(t,e){if(Array.isArray(t))for(var r=e.cd,n=e.cd[0].trace,i=0;i<t.length;i++)t[i]=c(t[i],n,r);return t}function C(t){t.selectAll(\\\".select-outline\\\").remove()}e.exports={prepSelect:function(t,e,r,i,s){var c,u,f,h,m,x,b,T=i.gd,C=T._fullLayout,L=C._zoomlayer,z=i.element.getBoundingClientRect(),O=i.plotinfo,I=O.xaxis._offset,P=O.yaxis._offset,D=e-z.left,R=r-z.top,B=D,F=R,N=\\\"M\\\"+D+\\\",\\\"+R,j=i.xaxes[0]._length,V=i.yaxes[0]._length,U=i.xaxes.concat(i.yaxes),q=t.altKey;w(t,T,i),\\\"lasso\\\"===s&&(c=g([[D,R]],p.BENDPX));var H=L.selectAll(\\\"path.select-outline-\\\"+O.id).data([1,2]);H.enter().append(\\\"path\\\").attr(\\\"class\\\",function(t){return\\\"select-outline select-outline-\\\"+t+\\\" select-outline-\\\"+O.id}).attr(\\\"transform\\\",\\\"translate(\\\"+I+\\\", \\\"+P+\\\")\\\").attr(\\\"d\\\",N+\\\"Z\\\");var G,W=L.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox-corners\\\").style({fill:a.background,stroke:a.defaultLine,\\\"stroke-width\\\":1}).attr(\\\"transform\\\",\\\"translate(\\\"+I+\\\", \\\"+P+\\\")\\\").attr(\\\"d\\\",\\\"M0,0Z\\\"),Y=C._uid+p.SELECTID,X=[],Z=M(T,i.xaxes,i.yaxes,i.subplot);function $(t){var e=\\\"y\\\"===t._id.charAt(0)?1:0;return function(r){return t.p2d(r[e])}}function J(t,e){return t-e}G=O.fillRangeItems?O.fillRangeItems:\\\"select\\\"===s?function(t,e){var r=t.range={};for(m=0;m<U.length;m++){var n=U[m],i=n._id.charAt(0);r[n._id]=[n.p2d(e[i+\\\"min\\\"]),n.p2d(e[i+\\\"max\\\"])].sort(J)}}:function(t,e,r){var n=t.lassoPoints={};for(m=0;m<U.length;m++){var i=U[m];n[i._id]=r.filtered.map($(i))}},i.moveFn=function(t,e){B=Math.max(0,Math.min(j,t+D)),F=Math.max(0,Math.min(V,e+R));var r=Math.abs(B-D),a=Math.abs(F-R);if(\\\"select\\\"===s){var o=C.selectdirection;\\\"h\\\"===(o=\\\"any\\\"===C.selectdirection?a<Math.min(.6*r,d)?\\\"h\\\":r<Math.min(.6*a,d)?\\\"v\\\":\\\"d\\\":C.selectdirection)?((h=[[D,0],[D,V],[B,V],[B,0]]).xmin=Math.min(D,B),h.xmax=Math.max(D,B),h.ymin=Math.min(0,V),h.ymax=Math.max(0,V),W.attr(\\\"d\\\",\\\"M\\\"+h.xmin+\\\",\\\"+(R-d)+\\\"h-4v\\\"+2*d+\\\"h4ZM\\\"+(h.xmax-1)+\\\",\\\"+(R-d)+\\\"h4v\\\"+2*d+\\\"h-4Z\\\")):\\\"v\\\"===o?((h=[[0,R],[0,F],[j,F],[j,R]]).xmin=Math.min(0,j),h.xmax=Math.max(0,j),h.ymin=Math.min(R,F),h.ymax=Math.max(R,F),W.attr(\\\"d\\\",\\\"M\\\"+(D-d)+\\\",\\\"+h.ymin+\\\"v-4h\\\"+2*d+\\\"v4ZM\\\"+(D-d)+\\\",\\\"+(h.ymax-1)+\\\"v4h\\\"+2*d+\\\"v-4Z\\\")):\\\"d\\\"===o&&((h=[[D,R],[D,F],[B,F],[B,R]]).xmin=Math.min(D,B),h.xmax=Math.max(D,B),h.ymin=Math.min(R,F),h.ymax=Math.max(R,F),W.attr(\\\"d\\\",\\\"M0,0Z\\\"))}else\\\"lasso\\\"===s&&(c.addPt([B,F]),h=c.filtered);i.selectionDefs&&i.selectionDefs.length?(f=function(t,e,r){return r?n.difference({regions:t,inverted:!1},{regions:[e],inverted:!1}).regions:n.union({regions:t,inverted:!1},{regions:[e],inverted:!1}).regions}(i.mergedPolygons,h,q),h.subtract=q,u=_(i.selectionDefs.concat([h]))):(f=[h],u=v(h)),A(f,H),l.throttle(Y,p.SELECTDELAY,function(){X=[];var t,e,r=[];for(m=0;m<Z.length;m++)if(e=(x=Z[m])._module.selectPoints(x,u),r.push(e),t=E(e,x),X.length)for(var n=0;n<t.length;n++)X.push(t[n]);else X=t;S(T,Z,b={points:X}),G(b,h,c),i.gd.emit(\\\"plotly_selecting\\\",b)})},i.clickFn=function(t,e){var r=C.clickmode;W.remove(),l.done(Y).then(function(){if(l.clear(Y),2===t){for(H.remove(),m=0;m<Z.length;m++)(x=Z[m])._module.selectPoints(x,!1);S(T,Z),k(i),T.emit(\\\"plotly_deselect\\\",null)}else r.indexOf(\\\"select\\\")>-1&&y(e,T,i.xaxes,i.yaxes,i.subplot,i,H),\\\"event\\\"===r&&T.emit(\\\"plotly_selected\\\",void 0);o.click(T,e)})},i.doneFn=function(){W.remove(),l.done(Y).then(function(){l.clear(Y),i.gd.emit(\\\"plotly_selected\\\",b),h&&i.selectionDefs&&(h.subtract=q,i.selectionDefs.push(h),i.mergedPolygons.length=0,[].push.apply(i.mergedPolygons,f))})}},clearSelect:C,selectOnClick:y}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../components/fx/helpers\\\":609,\\\"../../lib/clear_gl_canvases\\\":680,\\\"../../lib/polygon\\\":708,\\\"../../lib/throttle\\\":721,\\\"../../plot_api/subroutines\\\":735,\\\"../../registry\\\":827,\\\"./axis_ids\\\":747,\\\"./constants\\\":750,polybooljs:456}],763:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../lib\\\"),o=a.cleanNumber,s=a.ms2DateTime,l=a.dateTime2ms,c=a.ensureNumber,u=t(\\\"../../constants/numerical\\\"),f=u.FP_SAFE,h=u.BADNUM,p=u.LOG_CLIP,d=t(\\\"./constants\\\"),g=t(\\\"./axis_ids\\\");function v(t){return Math.pow(10,t)}e.exports=function(t,e){e=e||{};var r=(t._id||\\\"x\\\").charAt(0);function u(e,r){if(e>0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-2*p*Math.abs(n-i))}return h}function m(e,r,n){var o=l(e,n||t.calendar);if(o===h){if(!i(e))return h;e=+e;var s=Math.floor(10*a.mod(e+.05,1)),c=Math.round(e-s/10);o=l(new Date(c))+s/10}return o}function y(e,r,n){return s(e,r,n||t.calendar)}function x(e){return t._categories[Math.round(e)]}function b(e){if(t._categoriesMap){var r=t._categoriesMap[e];if(void 0!==r)return r}if(i(e))return+e}function _(e){return i(e)?n.round(t._b+t._m*e,2):h}function w(e){return(e-t._b)/t._m}t.c2l=\\\"log\\\"===t.type?u:c,t.l2c=\\\"log\\\"===t.type?v:c,t.l2p=_,t.p2l=w,t.c2p=\\\"log\\\"===t.type?function(t,e){return _(u(t,e))}:_,t.p2c=\\\"log\\\"===t.type?function(t){return v(w(t))}:w,-1!==[\\\"linear\\\",\\\"-\\\"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=o,t.c2d=t.c2r=t.l2d=t.l2r=c,t.d2p=t.r2p=function(e){return t.l2p(o(e))},t.p2d=t.p2r=w,t.cleanPos=c):\\\"log\\\"===t.type?(t.d2r=t.d2l=function(t,e){return u(o(t),e)},t.r2d=t.r2c=function(t){return v(o(t))},t.d2c=t.r2l=o,t.c2d=t.l2r=c,t.c2r=u,t.l2d=v,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return v(w(t))},t.r2p=function(e){return t.l2p(o(e))},t.p2r=w,t.cleanPos=c):\\\"date\\\"===t.type?(t.d2r=t.r2d=a.identity,t.d2c=t.r2c=t.d2l=t.r2l=m,t.c2d=t.c2r=t.l2d=t.l2r=y,t.d2p=t.r2p=function(e,r,n){return t.l2p(m(e,0,n))},t.p2d=t.p2r=function(t,e,r){return y(w(t),e,r)},t.cleanPos=function(e){return a.cleanDate(e,h,t.calendar)}):\\\"category\\\"===t.type&&(t.d2c=t.d2l=function(e){if(null!=e){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push(e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return h},t.r2d=t.c2d=t.l2d=x,t.d2r=t.d2l_noadd=b,t.r2c=function(e){var r=b(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=c,t.r2l=b,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return x(w(t))},t.r2p=t.d2p,t.p2r=w,t.cleanPos=function(t){return\\\"string\\\"==typeof t&&\\\"\\\"!==t?t:c(t)}),t.fraction2r=function(e){var r=t.r2l(t.range[0]),n=t.r2l(t.range[1]);return t.l2r(r+e*(n-r))},t.r2fraction=function(e){var r=t.r2l(t.range[0]),n=t.r2l(t.range[1]);return(t.r2l(e)-r)/(n-r)},t.cleanRange=function(e,n){n||(n={}),e||(e=\\\"range\\\");var o,s,l=a.nestedProperty(t,e).get();if(s=(s=\\\"date\\\"===t.type?a.dfltRange(t.calendar):\\\"y\\\"===r?d.DFLTRANGEY:n.dfltRange||d.DFLTRANGEX).slice(),l&&2===l.length)for(\\\"date\\\"===t.type&&(l[0]=a.cleanDate(l[0],h,t.calendar),l[1]=a.cleanDate(l[1],h,t.calendar)),o=0;o<2;o++)if(\\\"date\\\"===t.type){if(!a.isDateTime(l[o],t.calendar)){t[e]=s;break}if(t.r2l(l[0])===t.r2l(l[1])){var c=a.constrain(t.r2l(l[0]),a.MIN_MS+1e3,a.MAX_MS-1e3);l[0]=t.l2r(c-1e3),l[1]=t.l2r(c+1e3);break}}else{if(!i(l[o])){if(!i(l[1-o])){t[e]=s;break}l[o]=l[1-o]*(o?10:.1)}if(l[o]<-f?l[o]=-f:l[o]>f&&(l[o]=f),l[0]===l[1]){var u=Math.max(1,Math.abs(1e-6*l[0]));l[0]-=u,l[1]+=u}}else a.nestedProperty(t,e).set(s)},t.setScale=function(n){var i=e._size;if(t._categories||(t._categories=[]),t._categoriesMap||(t._categoriesMap={}),t.overlaying){var a=g.getFromId({_fullLayout:e},t.overlaying);t.domain=a.domain}var o=n&&t._r?\\\"_r\\\":\\\"range\\\",s=t.calendar;t.cleanRange(o);var l=t.r2l(t[o][0],s),c=t.r2l(t[o][1],s);if(\\\"y\\\"===r?(t._offset=i.t+(1-t.domain[1])*i.h,t._length=i.h*(t.domain[1]-t.domain[0]),t._m=t._length/(l-c),t._b=-t._m*c):(t._offset=i.l+t.domain[0]*i.w,t._length=i.w*(t.domain[1]-t.domain[0]),t._m=t._length/(c-l),t._b=-t._m*l),!isFinite(t._m)||!isFinite(t._b))throw e._replotting=!1,new Error(\\\"Something went wrong with axis scaling\\\")},t.makeCalcdata=function(e,r){var n,i,o,s,l=t.type,c=\\\"date\\\"===l&&e[r+\\\"calendar\\\"];if(r in e){if(n=e[r],s=e._length||n.length,a.isTypedArray(n)&&(\\\"linear\\\"===l||\\\"log\\\"===l)){if(s===n.length)return n;if(n.subarray)return n.subarray(0,s)}for(i=new Array(s),o=0;o<s;o++)i[o]=t.d2c(n[o],0,c)}else{var u=r+\\\"0\\\"in e?t.d2c(e[r+\\\"0\\\"],0,c):0,f=e[\\\"d\\\"+r]?Number(e[\\\"d\\\"+r]):1;for(n=e[{x:\\\"y\\\",y:\\\"x\\\"}[r]],s=e._length||n.length,i=new Array(s),o=0;o<s;o++)i[o]=u+o*f}return i},t.isValidRange=function(e){return Array.isArray(e)&&2===e.length&&i(t.r2l(e[0]))&&i(t.r2l(e[1]))},t.isPtWithinRange=function(e,n){var i=t.c2l(e[r],null,n),a=t.r2l(t.range[0]),o=t.r2l(t.range[1]);return a<o?a<=i&&i<=o:o<=i&&i<=a},t.clearCalc=function(){t._categories=(t._initialCategories||[]).slice(),t._categoriesMap={};for(var e=0;e<t._categories.length;e++)t._categoriesMap[t._categories[e]]=e};var k=e._d3locale;\\\"date\\\"===t.type&&(t._dateFormat=k?k.timeFormat.utc:n.time.format.utc,t._extraFormat=e._extraFormat),t._separators=e.separators,t._numFormat=k?k.numberFormat:n.format,delete t._minDtick,delete t._forceTick0}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"./axis_ids\\\":747,\\\"./constants\\\":750,d3:148,\\\"fast-isnumeric\\\":214}],764:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\"),a=t(\\\"../array_container_defaults\\\");function o(t,e){function r(r,a){return n.coerce(t,e,i.tickformatstops,r,a)}r(\\\"enabled\\\")&&(r(\\\"dtickrange\\\"),r(\\\"value\\\"))}e.exports=function(t,e,r,s,l){var c=function(t){var e=[\\\"showexponent\\\",\\\"showtickprefix\\\",\\\"showticksuffix\\\"].filter(function(e){return void 0!==t[e]});if(e.every(function(r){return t[r]===t[e[0]]})||1===e.length)return t[e[0]]}(t);if(r(\\\"tickprefix\\\")&&r(\\\"showtickprefix\\\",c),r(\\\"ticksuffix\\\",l.tickSuffixDflt)&&r(\\\"showticksuffix\\\",c),r(\\\"showticklabels\\\")){var u=l.font||{},f=e.color,h=f&&f!==i.color.dflt?f:u.color;if(n.coerceFont(r,\\\"tickfont\\\",{family:u.family,size:u.size,color:h}),r(\\\"tickangle\\\"),\\\"category\\\"!==s){var p=r(\\\"tickformat\\\"),d=t.tickformatstops;Array.isArray(d)&&d.length&&a(t,e,{name:\\\"tickformatstops\\\",inclusionAttr:\\\"enabled\\\",handleItemDefaults:o}),p||\\\"date\\\"===s||(r(\\\"showexponent\\\",c),r(\\\"exponentformat\\\"),r(\\\"separatethousands\\\"))}}}},{\\\"../../lib\\\":696,\\\"../array_container_defaults\\\":740,\\\"./layout_attributes\\\":757}],765:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\");e.exports=function(t,e,r,a){var o=n.coerce2(t,e,i,\\\"ticklen\\\"),s=n.coerce2(t,e,i,\\\"tickwidth\\\"),l=n.coerce2(t,e,i,\\\"tickcolor\\\",e.color);r(\\\"ticks\\\",a.outerTicks||o||s||l?\\\"outside\\\":\\\"\\\")||(delete e.ticklen,delete e.tickwidth,delete e.tickcolor)}},{\\\"../../lib\\\":696,\\\"./layout_attributes\\\":757}],766:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./clean_ticks\\\");e.exports=function(t,e,r,i){var a;\\\"array\\\"!==t.tickmode||\\\"log\\\"!==i&&\\\"date\\\"!==i?a=r(\\\"tickmode\\\",Array.isArray(t.tickvals)?\\\"array\\\":t.dtick?\\\"linear\\\":\\\"auto\\\"):a=e.tickmode=\\\"auto\\\";if(\\\"auto\\\"===a)r(\\\"nticks\\\");else if(\\\"linear\\\"===a){var o=e.dtick=n.dtick(t.dtick,i);e.tick0=n.tick0(t.tick0,i,e.calendar,o)}else{void 0===r(\\\"tickvals\\\")?e.tickmode=\\\"auto\\\":r(\\\"ticktext\\\")}}},{\\\"./clean_ticks\\\":749}],767:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"./axes\\\"),s=t(\\\"./constants\\\").attrRegex;e.exports=function(t,e,r,l){var c=t._fullLayout,u=[];var f,h,p,d,g=function(t){var e,r,n,i,a={};for(e in t)if((r=e.split(\\\".\\\"))[0].match(s)){var o=e.charAt(0),l=r[0];if(n=c[l],i={},Array.isArray(t[e])?i.to=t[e].slice(0):Array.isArray(t[e].range)&&(i.to=t[e].range.slice(0)),!i.to)continue;i.axisName=l,i.length=n._length,u.push(o),a[o]=i}return a}(e),v=Object.keys(g),m=function(t,e,r){var n,i,a,o=t._plots,s=[];for(n in o){var l=o[n];if(-1===s.indexOf(l)){var c=l.xaxis._id,u=l.yaxis._id,f=l.xaxis.range,h=l.yaxis.range;l.xaxis._r=l.xaxis.range.slice(),l.yaxis._r=l.yaxis.range.slice(),i=r[c]?r[c].to:f,a=r[u]?r[u].to:h,f[0]===i[0]&&f[1]===i[1]&&h[0]===a[0]&&h[1]===a[1]||-1===e.indexOf(c)&&-1===e.indexOf(u)||s.push(l)}}return s}(c,v,g);if(!m.length)return function(){function e(e,r,n){for(var i=0;i<e.length;i++)if(r(t,i),n)return}e(c.annotations||[],i.getComponentMethod(\\\"annotations\\\",\\\"drawOne\\\")),e(c.shapes||[],i.getComponentMethod(\\\"shapes\\\",\\\"drawOne\\\")),e(c.images||[],i.getComponentMethod(\\\"images\\\",\\\"draw\\\"),!0)}(),!1;function y(t){var e=t.xaxis,r=t.yaxis;c._defs.select(\\\"#\\\"+t.clipId+\\\"> rect\\\").call(a.setTranslate,0,0).call(a.setScale,1,1),t.plot.call(a.setTranslate,e._offset,r._offset).call(a.setScale,1,1);var n=t.plot.selectAll(\\\".scatterlayer .trace\\\");n.selectAll(\\\".point\\\").call(a.setPointGroupScale,1,1),n.selectAll(\\\".textpoint\\\").call(a.setTextPointsScale,1,1),n.call(a.hideOutsideRangePoints,t)}function x(e,r){var n,s,l,u=g[e.xaxis._id],f=g[e.yaxis._id],h=[];if(u){s=(n=t._fullLayout[u.axisName])._r,l=u.to,h[0]=(s[0]*(1-r)+r*l[0]-s[0])/(s[1]-s[0])*e.xaxis._length;var p=s[1]-s[0],d=l[1]-l[0];n.range[0]=s[0]*(1-r)+r*l[0],n.range[1]=s[1]*(1-r)+r*l[1],h[2]=e.xaxis._length*(1-r+r*d/p)}else h[0]=0,h[2]=e.xaxis._length;if(f){s=(n=t._fullLayout[f.axisName])._r,l=f.to,h[1]=(s[1]*(1-r)+r*l[1]-s[1])/(s[0]-s[1])*e.yaxis._length;var v=s[1]-s[0],m=l[1]-l[0];n.range[0]=s[0]*(1-r)+r*l[0],n.range[1]=s[1]*(1-r)+r*l[1],h[3]=e.yaxis._length*(1-r+r*m/v)}else h[1]=0,h[3]=e.yaxis._length;!function(e,r){var n,a=[];for(a=[e._id,r._id],n=0;n<a.length;n++)o.doTicksSingle(t,a[n],!0);function s(e,r,i){for(n=0;n<e.length;n++){var o=e[n];if(-1===a.indexOf(o.xref)&&-1===a.indexOf(o.yref)||r(t,n),i)return}}s(c.annotations||[],i.getComponentMethod(\\\"annotations\\\",\\\"drawOne\\\")),s(c.shapes||[],i.getComponentMethod(\\\"shapes\\\",\\\"drawOne\\\")),s(c.images||[],i.getComponentMethod(\\\"images\\\",\\\"draw\\\"),!0)}(e.xaxis,e.yaxis);var y=e.xaxis,x=e.yaxis,b=!!u,_=!!f,w=b?y._length/h[2]:1,k=_?x._length/h[3]:1,M=b?h[0]:0,A=_?h[1]:0,T=b?h[0]/h[2]*y._length:0,S=_?h[1]/h[3]*x._length:0,E=y._offset-T,C=x._offset-S;e.clipRect.call(a.setTranslate,M,A).call(a.setScale,1/w,1/k),e.plot.call(a.setTranslate,E,C).call(a.setScale,w,k),a.setPointGroupScale(e.zoomScalePts,1/w,1/k),a.setTextPointsScale(e.zoomScaleTxt,1/w,1/k)}l&&(f=l());var b=n.ease(r.easing);return t._transitionData._interruptCallbacks.push(function(){return window.cancelAnimationFrame(d),d=null,function(){for(var e={},r=0;r<v.length;r++){var n=t._fullLayout[v[r]+\\\"axis\\\"];e[n._name+\\\".range[0]\\\"]=n.range[0],e[n._name+\\\".range[1]\\\"]=n.range[1],n.range=n._r.slice()}return i.call(\\\"relayout\\\",t,e).then(function(){for(var t=0;t<m.length;t++)y(m[t])})}()}),h=Date.now(),d=window.requestAnimationFrame(function e(){p=Date.now();for(var n=Math.min(1,(p-h)/r.duration),a=b(n),o=0;o<m.length;o++)x(m[o],a);p-h>r.duration?(function(){for(var e={},r=0;r<v.length;r++){var n=t._fullLayout[g[v[r]].axisName],a=g[v[r]].to;e[n._name+\\\".range[0]\\\"]=a[0],e[n._name+\\\".range[1]\\\"]=a[1],n.range=a.slice()}f&&f(),i.call(\\\"relayout\\\",t,e).then(function(){for(var t=0;t<m.length;t++)y(m[t])})}(),d=window.cancelAnimationFrame(e)):d=window.requestAnimationFrame(e)}),Promise.resolve()}},{\\\"../../components/drawing\\\":595,\\\"../../registry\\\":827,\\\"./axes\\\":744,\\\"./constants\\\":750,d3:148}],768:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"./axis_autotype\\\");function a(t){return{v:\\\"x\\\",h:\\\"y\\\"}[t.orientation||\\\"v\\\"]}function o(t,e){var r=a(t),i=n.traceIs(t,\\\"box-violin\\\"),o=n.traceIs(t._fullInput||{},\\\"candlestick\\\");return i&&!o&&e===r&&void 0===t[r]&&void 0===t[r+\\\"0\\\"]}e.exports=function(t,e,r,s){\\\"-\\\"===r(\\\"type\\\",(s.splomStash||{}).type)&&(!function(t,e){if(\\\"-\\\"!==t.type)return;var r=t._id,s=r.charAt(0);-1!==r.indexOf(\\\"scene\\\")&&(r=s);var l=function(t,e,r){for(var n=0;n<t.length;n++){var i=t[n];if(\\\"splom\\\"===i.type&&i._length>0&&(i[\\\"_\\\"+r+\\\"axes\\\"]||{})[e])return i;if((i[r+\\\"axis\\\"]||r)===e){if(o(i,r))return i;if((i[r]||[]).length||i[r+\\\"0\\\"])return i}}}(e,r,s);if(!l)return;if(\\\"histogram\\\"===l.type&&s==={v:\\\"y\\\",h:\\\"x\\\"}[l.orientation||\\\"v\\\"])return void(t.type=\\\"linear\\\");var c,u=s+\\\"calendar\\\",f=l[u];if(o(l,s)){var h=a(l),p=[];for(c=0;c<e.length;c++){var d=e[c];n.traceIs(d,\\\"box-violin\\\")&&(d[s+\\\"axis\\\"]||s)===r&&(void 0!==d[h]?p.push(d[h][0]):void 0!==d.name?p.push(d.name):p.push(\\\"text\\\"),d[u]!==f&&(f=void 0))}t.type=i(p,f)}else if(\\\"splom\\\"===l.type){var g=l.dimensions,v=l._diag;for(c=0;c<g.length;c++){var m=g[c];if(m.visible&&(v[c][0]===r||v[c][1]===r)){t.type=i(m.values,f);break}}}else t.type=i(l[s]||[l[s+\\\"0\\\"]],f)}(e,s.data),\\\"-\\\"===e.type?e.type=\\\"linear\\\":t.type=e.type)}},{\\\"../../registry\\\":827,\\\"./axis_autotype\\\":745}],769:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\"),i=t(\\\"../lib\\\");function a(t,e,r){var n,a,o,s=!1;if(\\\"data\\\"===e.type)n=t._fullData[null!==e.traces?e.traces[0]:0];else{if(\\\"layout\\\"!==e.type)return!1;n=t._fullLayout}return a=i.nestedProperty(n,e.prop).get(),(o=r[e.type]=r[e.type]||{}).hasOwnProperty(e.prop)&&o[e.prop]!==a&&(s=!0),o[e.prop]=a,{changed:s,value:a}}function o(t,e){var r=[],n=e[0],a={};if(\\\"string\\\"==typeof n)a[n]=e[1];else{if(!i.isPlainObject(n))return r;a=n}return l(a,function(t,e,n){r.push({type:\\\"layout\\\",prop:t,value:n})},\\\"\\\",0),r}function s(t,e){var r,n,a,o,s=[];if(n=e[0],a=e[1],r=e[2],o={},\\\"string\\\"==typeof n)o[n]=a;else{if(!i.isPlainObject(n))return s;o=n,void 0===r&&(r=a)}return void 0===r&&(r=null),l(o,function(e,n,i){var a;if(Array.isArray(i)){var o=Math.min(i.length,t.data.length);r&&(o=Math.min(o,r.length)),a=[];for(var l=0;l<o;l++)a[l]=r?r[l]:l}else a=r?r.slice(0):null;if(null===a)Array.isArray(i)&&(i=i[0]);else if(Array.isArray(a)){if(!Array.isArray(i)){var c=i;i=[];for(var u=0;u<a.length;u++)i[u]=c}i.length=Math.min(a.length,i.length)}s.push({type:\\\"data\\\",prop:e,traces:a,value:i})},\\\"\\\",0),s}function l(t,e,r,n){Object.keys(t).forEach(function(a){var o=t[a];if(\\\"_\\\"!==a[0]){var s=r+(n>0?\\\".\\\":\\\"\\\")+a;i.isPlainObject(o)?l(o,e,s,n+1):e(s,a,o)}})}r.manageCommandObserver=function(t,e,n,o){var s={},l=!0;e&&e._commandObserver&&(s=e._commandObserver),s.cache||(s.cache={}),s.lookupTable={};var c=r.hasSimpleAPICommandBindings(t,n,s.lookupTable);if(e&&e._commandObserver){if(c)return s;if(e._commandObserver.remove)return e._commandObserver.remove(),e._commandObserver=null,s}if(c){a(t,c,s.cache),s.check=function(){if(l){var e=a(t,c,s.cache);return e.changed&&o&&void 0!==s.lookupTable[e.value]&&(s.disable(),Promise.resolve(o({value:e.value,type:c.type,prop:c.prop,traces:c.traces,index:s.lookupTable[e.value]})).then(s.enable,s.enable)),e.changed}};for(var u=[\\\"plotly_relayout\\\",\\\"plotly_redraw\\\",\\\"plotly_restyle\\\",\\\"plotly_update\\\",\\\"plotly_animatingframe\\\",\\\"plotly_afterplot\\\"],f=0;f<u.length;f++)t._internalOn(u[f],s.check);s.remove=function(){for(var e=0;e<u.length;e++)t._removeInternalListener(u[e],s.check)}}else i.log(\\\"Unable to automatically bind plot updates to API command\\\"),s.lookupTable={},s.remove=function(){};return s.disable=function(){l=!1},s.enable=function(){l=!0},e&&(e._commandObserver=s),s},r.hasSimpleAPICommandBindings=function(t,e,n){var i,a,o=e.length;for(i=0;i<o;i++){var s,l=e[i],c=l.method,u=l.args;if(Array.isArray(u)||(u=[]),!c)return!1;var f=r.computeAPICommandBindings(t,c,u);if(1!==f.length)return!1;if(a){if((s=f[0]).type!==a.type)return!1;if(s.prop!==a.prop)return!1;if(Array.isArray(a.traces)){if(!Array.isArray(s.traces))return!1;s.traces.sort();for(var h=0;h<a.traces.length;h++)if(a.traces[h]!==s.traces[h])return!1}else if(s.prop!==a.prop)return!1}else a=f[0],Array.isArray(a.traces)&&a.traces.sort();var p=(s=f[0]).value;if(Array.isArray(p)){if(1!==p.length)return!1;p=p[0]}n&&(n[p]=i)}return a},r.executeAPICommand=function(t,e,r){if(\\\"skip\\\"===e)return Promise.resolve();var a=n.apiMethodRegistry[e],o=[t];Array.isArray(r)||(r=[]);for(var s=0;s<r.length;s++)o.push(r[s]);return a.apply(null,o).catch(function(t){return i.warn(\\\"API call to Plotly.\\\"+e+\\\" rejected.\\\",t),Promise.reject(t)})},r.computeAPICommandBindings=function(t,e,r){var n;switch(Array.isArray(r)||(r=[]),e){case\\\"restyle\\\":n=s(t,r);break;case\\\"relayout\\\":n=o(t,r);break;case\\\"update\\\":n=s(t,[r[0],r[2]]).concat(o(t,[r[1]]));break;case\\\"animate\\\":n=function(t,e){return Array.isArray(e[0])&&1===e[0].length&&-1!==[\\\"string\\\",\\\"number\\\"].indexOf(typeof e[0][0])?[{type:\\\"layout\\\",prop:\\\"_currentFrame\\\",value:e[0][0].toString()}]:[]}(0,r);break;default:n=[]}return n}},{\\\"../lib\\\":696,\\\"../registry\\\":827}],770:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib/extend\\\").extendFlat;r.attributes=function(t,e){e=e||{};var r={valType:\\\"info_array\\\",editType:(t=t||{}).editType,items:[{valType:\\\"number\\\",min:0,max:1,editType:t.editType},{valType:\\\"number\\\",min:0,max:1,editType:t.editType}],dflt:[0,1]},i=(t.name&&t.name,t.trace,e.description&&e.description,{x:n({},r,{}),y:n({},r,{}),editType:t.editType});return t.noGridCell||(i.row={valType:\\\"integer\\\",min:0,dflt:0,editType:t.editType},i.column={valType:\\\"integer\\\",min:0,dflt:0,editType:t.editType}),i},r.defaults=function(t,e,r,n){var i=n&&n.x||[0,1],a=n&&n.y||[0,1],o=e.grid;if(o){var s=r(\\\"domain.column\\\");void 0!==s&&(s<o.columns?i=o._domains.x[s]:delete t.domain.column);var l=r(\\\"domain.row\\\");void 0!==l&&(l<o.rows?a=o._domains.y[l]:delete t.domain.row)}r(\\\"domain.x\\\",i),r(\\\"domain.y\\\",a)}},{\\\"../lib/extend\\\":685}],771:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){var e=t.editType,r=t.colorEditType;void 0===r&&(r=e);var n={family:{valType:\\\"string\\\",noBlank:!0,strict:!0,editType:e},size:{valType:\\\"number\\\",min:1,editType:e},color:{valType:\\\"color\\\",editType:r},editType:e};return t.arrayOk&&(n.family.arrayOk=!0,n.size.arrayOk=!0,n.color.arrayOk=!0),n}},{}],772:[function(t,e,r){\\\"use strict\\\";e.exports={_isLinkedToArray:\\\"frames_entry\\\",group:{valType:\\\"string\\\"},name:{valType:\\\"string\\\"},traces:{valType:\\\"any\\\"},baseframe:{valType:\\\"string\\\"},data:{valType:\\\"any\\\"},layout:{valType:\\\"any\\\"}}},{}],773:[function(t,e,r){\\\"use strict\\\";r.projNames={equirectangular:\\\"equirectangular\\\",mercator:\\\"mercator\\\",orthographic:\\\"orthographic\\\",\\\"natural earth\\\":\\\"naturalEarth\\\",kavrayskiy7:\\\"kavrayskiy7\\\",miller:\\\"miller\\\",robinson:\\\"robinson\\\",eckert4:\\\"eckert4\\\",\\\"azimuthal equal area\\\":\\\"azimuthalEqualArea\\\",\\\"azimuthal equidistant\\\":\\\"azimuthalEquidistant\\\",\\\"conic equal area\\\":\\\"conicEqualArea\\\",\\\"conic conformal\\\":\\\"conicConformal\\\",\\\"conic equidistant\\\":\\\"conicEquidistant\\\",gnomonic:\\\"gnomonic\\\",stereographic:\\\"stereographic\\\",mollweide:\\\"mollweide\\\",hammer:\\\"hammer\\\",\\\"transverse mercator\\\":\\\"transverseMercator\\\",\\\"albers usa\\\":\\\"albersUsa\\\",\\\"winkel tripel\\\":\\\"winkel3\\\",aitoff:\\\"aitoff\\\",sinusoidal:\\\"sinusoidal\\\"},r.axesNames=[\\\"lonaxis\\\",\\\"lataxis\\\"],r.lonaxisSpan={orthographic:180,\\\"azimuthal equal area\\\":360,\\\"azimuthal equidistant\\\":360,\\\"conic conformal\\\":180,gnomonic:160,stereographic:180,\\\"transverse mercator\\\":180,\\\"*\\\":360},r.lataxisSpan={\\\"conic conformal\\\":150,stereographic:179.5,\\\"*\\\":180},r.scopeDefaults={world:{lonaxisRange:[-180,180],lataxisRange:[-90,90],projType:\\\"equirectangular\\\",projRotate:[0,0,0]},usa:{lonaxisRange:[-180,-50],lataxisRange:[15,80],projType:\\\"albers usa\\\"},europe:{lonaxisRange:[-30,60],lataxisRange:[30,85],projType:\\\"conic conformal\\\",projRotate:[15,0,0],projParallels:[0,60]},asia:{lonaxisRange:[22,160],lataxisRange:[-15,55],projType:\\\"mercator\\\",projRotate:[0,0,0]},africa:{lonaxisRange:[-30,60],lataxisRange:[-40,40],projType:\\\"mercator\\\",projRotate:[0,0,0]},\\\"north america\\\":{lonaxisRange:[-180,-45],lataxisRange:[5,85],projType:\\\"conic conformal\\\",projRotate:[-100,0,0],projParallels:[29.5,45.5]},\\\"south america\\\":{lonaxisRange:[-100,-30],lataxisRange:[-60,15],projType:\\\"mercator\\\",projRotate:[0,0,0]}},r.clipPad=.001,r.precision=.1,r.landColor=\\\"#F0DC82\\\",r.waterColor=\\\"#3399FF\\\",r.locationmodeToLayer={\\\"ISO-3\\\":\\\"countries\\\",\\\"USA-states\\\":\\\"subunits\\\",\\\"country names\\\":\\\"countries\\\"},r.sphereSVG={type:\\\"Sphere\\\"},r.fillLayers={ocean:1,land:1,lakes:1},r.lineLayers={subunits:1,countries:1,coastlines:1,rivers:1,frame:1},r.layers=[\\\"bg\\\",\\\"ocean\\\",\\\"land\\\",\\\"lakes\\\",\\\"subunits\\\",\\\"countries\\\",\\\"coastlines\\\",\\\"rivers\\\",\\\"lataxis\\\",\\\"lonaxis\\\",\\\"frame\\\",\\\"backplot\\\",\\\"frontplot\\\"],r.layersForChoropleth=[\\\"bg\\\",\\\"ocean\\\",\\\"land\\\",\\\"subunits\\\",\\\"countries\\\",\\\"coastlines\\\",\\\"lataxis\\\",\\\"lonaxis\\\",\\\"frame\\\",\\\"backplot\\\",\\\"rivers\\\",\\\"lakes\\\",\\\"frontplot\\\"],r.layerNameToAdjective={ocean:\\\"ocean\\\",land:\\\"land\\\",lakes:\\\"lake\\\",subunits:\\\"subunit\\\",countries:\\\"country\\\",coastlines:\\\"coastline\\\",rivers:\\\"river\\\",frame:\\\"frame\\\"}},{}],774:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"../../components/fx\\\"),c=t(\\\"../plots\\\"),u=t(\\\"../cartesian/axes\\\"),f=t(\\\"../../components/dragelement\\\"),h=t(\\\"../cartesian/select\\\").prepSelect,p=t(\\\"../cartesian/select\\\").selectOnClick,d=t(\\\"./zoom\\\"),g=t(\\\"./constants\\\"),v=t(\\\"../../lib/topojson_utils\\\"),m=t(\\\"topojson-client\\\").feature;function y(t){this.id=t.id,this.graphDiv=t.graphDiv,this.container=t.container,this.topojsonURL=t.topojsonURL,this.isStatic=t.staticPlot,this.topojsonName=null,this.topojson=null,this.projection=null,this.viewInitial=null,this.fitScale=null,this.bounds=null,this.midPt=null,this.hasChoropleth=!1,this.traceHash={},this.layers={},this.basePaths={},this.dataPaths={},this.dataPoints={},this.clipDef=null,this.clipRect=null,this.bgRect=null,this.makeFramework()}t(\\\"./projections\\\")(n);var x=y.prototype;e.exports=function(t){return new y(t)},x.plot=function(t,e,r){var n=this,i=e[this.id],a=v.getTopojsonName(i);null===n.topojson||a!==n.topojsonName?(n.topojsonName=a,void 0===PlotlyGeoAssets.topojson[n.topojsonName]?r.push(n.fetchTopojson().then(function(r){PlotlyGeoAssets.topojson[n.topojsonName]=r,n.topojson=r,n.update(t,e)})):(n.topojson=PlotlyGeoAssets.topojson[n.topojsonName],n.update(t,e))):n.update(t,e)},x.fetchTopojson=function(){var t=v.getTopojsonPath(this.topojsonURL,this.topojsonName);return new Promise(function(e,r){n.json(t,function(n,i){if(n)return 404===n.status?r(new Error([\\\"plotly.js could not find topojson file at\\\",t,\\\".\\\",\\\"Make sure the *topojsonURL* plot config option\\\",\\\"is set properly.\\\"].join(\\\" \\\"))):r(new Error([\\\"unexpected error while fetching topojson file at\\\",t].join(\\\" \\\")));e(i)})})},x.update=function(t,e){var r=e[this.id];if(!this.updateProjection(e,r)){this.hasChoropleth=!1;for(var n=0;n<t.length;n++)if(\\\"choropleth\\\"===t[n][0].trace.type){this.hasChoropleth=!0;break}this.viewInitial||this.saveViewInitial(r),this.updateBaseLayers(e,r),this.updateDims(e,r),this.updateFx(e,r),c.generalUpdatePerTraceModule(this.graphDiv,this,t,r);var i=this.layers.frontplot.select(\\\".scatterlayer\\\");this.dataPoints.point=i.selectAll(\\\".point\\\"),this.dataPoints.text=i.selectAll(\\\"text\\\"),this.dataPaths.line=i.selectAll(\\\".js-line\\\");var a=this.layers.backplot.select(\\\".choroplethlayer\\\");this.dataPaths.choropleth=a.selectAll(\\\"path\\\"),this.render()}},x.updateProjection=function(t,e){var r=t._size,o=e.domain,s=e.projection,l=s.rotation||{},c=e.center||{},u=this.projection=function(t){for(var e=t.projection.type,r=n.geo[g.projNames[e]](),i=t._isClipped?g.lonaxisSpan[e]/2:null,a=[\\\"center\\\",\\\"rotate\\\",\\\"parallels\\\",\\\"clipExtent\\\"],o=function(t){return t?r:[]},s=0;s<a.length;s++){var l=a[s];\\\"function\\\"!=typeof r[l]&&(r[l]=o)}r.isLonLatOverEdges=function(t){if(null===r(t))return!0;if(i){var e=r.rotate();return n.geo.distance(t,[-e[0],-e[1]])>i*Math.PI/180}return!1},r.getPath=function(){return n.geo.path().projection(r)},r.getBounds=function(t){return r.getPath().bounds(t)},r.fitExtent=function(t,e){var n=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=r.clipExtent&&r.clipExtent();r.scale(150).translate([0,0]),a&&r.clipExtent(null);var o=r.getBounds(e),s=Math.min(n/(o[1][0]-o[0][0]),i/(o[1][1]-o[0][1])),l=+t[0][0]+(n-s*(o[1][0]+o[0][0]))/2,c=+t[0][1]+(i-s*(o[1][1]+o[0][1]))/2;return a&&r.clipExtent(a),r.scale(150*s).translate([l,c])},r.precision(g.precision),i&&r.clipAngle(i-g.clipPad);return r}(e);u.center([c.lon-l.lon,c.lat-l.lat]).rotate([-l.lon,-l.lat,l.roll]).parallels(s.parallels);var f=[[r.l+r.w*o.x[0],r.t+r.h*(1-o.y[1])],[r.l+r.w*o.x[1],r.t+r.h*(1-o.y[0])]],h=e.lonaxis,p=e.lataxis,d=function(t,e){var r=g.clipPad,n=t[0]+r,i=t[1]-r,a=e[0]+r,o=e[1]-r;n>0&&i<0&&(i+=360);var s=(i-n)/4;return{type:\\\"Polygon\\\",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}(h.range,p.range);u.fitExtent(f,d);var v=this.bounds=u.getBounds(d),m=this.fitScale=u.scale(),y=u.translate();if(!isFinite(v[0][0])||!isFinite(v[0][1])||!isFinite(v[1][0])||!isFinite(v[1][1])||isNaN(y[0])||isNaN(y[0])){for(var x=this.graphDiv,b=[\\\"projection.rotation\\\",\\\"center\\\",\\\"lonaxis.range\\\",\\\"lataxis.range\\\"],_=\\\"Invalid geo settings, relayout'ing to default view.\\\",w={},k=0;k<b.length;k++)w[this.id+\\\".\\\"+b[k]]=null;return this.viewInitial=null,a.warn(_),x._promises.push(i.call(\\\"relayout\\\",x,w)),_}var M=this.midPt=[(v[0][0]+v[1][0])/2,(v[0][1]+v[1][1])/2];if(u.scale(s.scale*m).translate([y[0]+(M[0]-y[0]),y[1]+(M[1]-y[1])]).clipExtent(v),e._isAlbersUsa){var A=u([c.lon,c.lat]),T=u.translate();u.translate([T[0]-(A[0]-T[0]),T[1]-(A[1]-T[1])])}},x.updateBaseLayers=function(t,e){var r=this,i=r.topojson,a=r.layers,l=r.basePaths;function c(t){return\\\"lonaxis\\\"===t||\\\"lataxis\\\"===t}function u(t){return Boolean(g.lineLayers[t])}function f(t){return Boolean(g.fillLayers[t])}var h=(this.hasChoropleth?g.layersForChoropleth:g.layers).filter(function(t){return u(t)||f(t)?e[\\\"show\\\"+t]:!c(t)||e[t].showgrid}),p=r.framework.selectAll(\\\".layer\\\").data(h,String);p.exit().each(function(t){delete a[t],delete l[t],n.select(this).remove()}),p.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"layer \\\"+t}).each(function(t){var e=a[t]=n.select(this);\\\"bg\\\"===t?r.bgRect=e.append(\\\"rect\\\").style(\\\"pointer-events\\\",\\\"all\\\"):c(t)?l[t]=e.append(\\\"path\\\").style(\\\"fill\\\",\\\"none\\\"):\\\"backplot\\\"===t?e.append(\\\"g\\\").classed(\\\"choroplethlayer\\\",!0):\\\"frontplot\\\"===t?e.append(\\\"g\\\").classed(\\\"scatterlayer\\\",!0):u(t)?l[t]=e.append(\\\"path\\\").style(\\\"fill\\\",\\\"none\\\").style(\\\"stroke-miterlimit\\\",2):f(t)&&(l[t]=e.append(\\\"path\\\").style(\\\"stroke\\\",\\\"none\\\"))}),p.order(),p.each(function(t){var r=l[t],a=g.layerNameToAdjective[t];\\\"frame\\\"===t?r.datum(g.sphereSVG):u(t)||f(t)?r.datum(m(i,i.objects[t])):c(t)&&r.datum(function(t,e){var r=e[t].dtick,i=g.scopeDefaults[e.scope],a=i.lonaxisRange,o=i.lataxisRange,s=\\\"lonaxis\\\"===t?[r]:[0,r];return n.geo.graticule().extent([[a[0],o[0]],[a[1],o[1]]]).step(s)}(t,e)).call(o.stroke,e[t].gridcolor).call(s.dashLine,\\\"\\\",e[t].gridwidth),u(t)?r.call(o.stroke,e[a+\\\"color\\\"]).call(s.dashLine,\\\"\\\",e[a+\\\"width\\\"]):f(t)&&r.call(o.fill,e[a+\\\"color\\\"])})},x.updateDims=function(t,e){var r=this.bounds,n=(e.framewidth||0)/2,i=r[0][0]-n,a=r[0][1]-n,l=r[1][0]-i+n,c=r[1][1]-a+n;s.setRect(this.clipRect,i,a,l,c),this.bgRect.call(s.setRect,i,a,l,c).call(o.fill,e.bgcolor),this.xaxis._offset=i,this.xaxis._length=l,this.yaxis._offset=a,this.yaxis._length=c},x.updateFx=function(t,e){var r=this,a=r.graphDiv,o=r.bgRect,s=t.dragmode,c=t.clickmode;if(!r.isStatic){var u;\\\"select\\\"===s?u=function(t,e){(t.range={})[r.id]=[v([e.xmin,e.ymin]),v([e.xmax,e.ymax])]}:\\\"lasso\\\"===s&&(u=function(t,e,n){(t.lassoPoints={})[r.id]=n.filtered.map(v)});var g={element:r.bgRect.node(),gd:a,plotinfo:{id:r.id,xaxis:r.xaxis,yaxis:r.yaxis,fillRangeItems:u},xaxes:[r.xaxis],yaxes:[r.yaxis],subplot:r.id,clickFn:function(e){2===e&&t._zoomlayer.selectAll(\\\".select-outline\\\").remove()}};\\\"pan\\\"===s?(o.node().onmousedown=null,o.call(d(r,e)),o.on(\\\"dblclick.zoom\\\",function(){var t=r.viewInitial,e={};for(var n in t)e[r.id+\\\".\\\"+n]=t[n];i.call(\\\"relayout\\\",a,e),a.emit(\\\"plotly_doubleclick\\\",null)})):\\\"select\\\"!==s&&\\\"lasso\\\"!==s||(o.on(\\\".zoom\\\",null),g.prepFn=function(t,e,r){h(t,e,r,g,s)},f.init(g)),o.on(\\\"mousemove\\\",function(){var t=r.projection.invert(n.mouse(this));if(!t||isNaN(t[0])||isNaN(t[1]))return f.unhover(a,n.event);r.xaxis.p2c=function(){return t[0]},r.yaxis.p2c=function(){return t[1]},l.hover(a,n.event,r.id)}),o.on(\\\"mouseout\\\",function(){a._dragging||f.unhover(a,n.event)}),o.on(\\\"click\\\",function(){\\\"select\\\"!==s&&\\\"lasso\\\"!==s&&(c.indexOf(\\\"select\\\")>-1&&p(n.event,a,[r.xaxis],[r.yaxis],r.id,g),c.indexOf(\\\"event\\\")>-1&&l.click(a,n.event))})}function v(t){return r.projection.invert([t[0]+r.xaxis._offset,t[1]+r.yaxis._offset])}},x.makeFramework=function(){var t=this,e=t.graphDiv._fullLayout,r=\\\"clip\\\"+e._uid+t.id;t.clipDef=e._clips.append(\\\"clipPath\\\").attr(\\\"id\\\",r),t.clipRect=t.clipDef.append(\\\"rect\\\"),t.framework=n.select(t.container).append(\\\"g\\\").attr(\\\"class\\\",\\\"geo \\\"+t.id).call(s.setClipUrl,r),t.project=function(e){var r=t.projection(e);return r?[r[0]-t.xaxis._offset,r[1]-t.yaxis._offset]:[null,null]},t.xaxis={_id:\\\"x\\\",c2p:function(e){return t.project(e)[0]}},t.yaxis={_id:\\\"y\\\",c2p:function(e){return t.project(e)[1]}},t.mockAxis={type:\\\"linear\\\",showexponent:\\\"all\\\",exponentformat:\\\"B\\\"},u.setConvert(t.mockAxis,e)},x.saveViewInitial=function(t){var e=t.center||{},r=t.projection,n=r.rotation||{};t._isScoped?this.viewInitial={\\\"center.lon\\\":e.lon,\\\"center.lat\\\":e.lat,\\\"projection.scale\\\":r.scale}:t._isClipped?this.viewInitial={\\\"projection.scale\\\":r.scale,\\\"projection.rotation.lon\\\":n.lon,\\\"projection.rotation.lat\\\":n.lat}:this.viewInitial={\\\"center.lon\\\":e.lon,\\\"center.lat\\\":e.lat,\\\"projection.scale\\\":r.scale,\\\"projection.rotation.lon\\\":n.lon}},x.render=function(){var t,e=this.projection,r=e.getPath();function n(t){var r=e(t.lonlat);return r?\\\"translate(\\\"+r[0]+\\\",\\\"+r[1]+\\\")\\\":null}function i(t){return e.isLonLatOverEdges(t.lonlat)?\\\"none\\\":null}for(t in this.basePaths)this.basePaths[t].attr(\\\"d\\\",r);for(t in this.dataPaths)this.dataPaths[t].attr(\\\"d\\\",function(t){return r(t.geojson)});for(t in this.dataPoints)this.dataPoints[t].attr(\\\"display\\\",i).attr(\\\"transform\\\",n)}},{\\\"../../components/color\\\":570,\\\"../../components/dragelement\\\":592,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../lib/topojson_utils\\\":723,\\\"../../registry\\\":827,\\\"../cartesian/axes\\\":744,\\\"../cartesian/select\\\":762,\\\"../plots\\\":808,\\\"./constants\\\":773,\\\"./projections\\\":779,\\\"./zoom\\\":780,d3:148,\\\"topojson-client\\\":517}],775:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./geo\\\"),i=t(\\\"../../plots/get_data\\\").getSubplotCalcData,a=t(\\\"../../lib\\\").counterRegex,o=\\\"geo\\\";r.name=o,r.attr=o,r.idRoot=o,r.idRegex=r.attrRegex=a(o),r.attributes=t(\\\"./layout/attributes\\\"),r.layoutAttributes=t(\\\"./layout/layout_attributes\\\"),r.supplyLayoutDefaults=t(\\\"./layout/defaults\\\"),r.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots.geo;void 0===window.PlotlyGeoAssets&&(window.PlotlyGeoAssets={topojson:{}});for(var s=0;s<a.length;s++){var l=a[s],c=i(r,o,l),u=e[l]._subplot;u||(u=n({id:l,graphDiv:t,container:e._geolayer.node(),topojsonURL:t._context.topojsonURL,staticPlot:t._context.staticPlot}),e[l]._subplot=u),u.plot(c,e,t._promises)}},r.clean=function(t,e,r,n){for(var i=n._subplots.geo||[],a=0;a<i.length;a++){var o=i[a],s=n[o]._subplot;!e[o]&&s&&(s.framework.remove(),s.clipDef.remove())}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.geo,n=0;n<r.length;n++){var i=e[r[n]];i._subplot.updateFx(e,i)}}},{\\\"../../lib\\\":696,\\\"../../plots/get_data\\\":781,\\\"./geo\\\":774,\\\"./layout/attributes\\\":776,\\\"./layout/defaults\\\":777,\\\"./layout/layout_attributes\\\":778}],776:[function(t,e,r){\\\"use strict\\\";e.exports={geo:{valType:\\\"subplotid\\\",dflt:\\\"geo\\\",editType:\\\"calc\\\"}}},{}],777:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../subplot_defaults\\\"),i=t(\\\"../constants\\\"),a=t(\\\"./layout_attributes\\\"),o=i.axesNames;function s(t,e,r){var n=r(\\\"resolution\\\"),a=r(\\\"scope\\\"),s=i.scopeDefaults[a],l=r(\\\"projection.type\\\",s.projType),c=e._isAlbersUsa=\\\"albers usa\\\"===l;c&&(a=e.scope=\\\"usa\\\");var u=e._isScoped=\\\"world\\\"!==a,f=e._isConic=-1!==l.indexOf(\\\"conic\\\");e._isClipped=!!i.lonaxisSpan[l];for(var h=0;h<o.length;h++){var p,d=o[h],g=[30,10][h];if(u)p=s[d+\\\"Range\\\"];else{var v=i[d+\\\"Span\\\"],m=(v[l]||v[\\\"*\\\"])/2,y=r(\\\"projection.rotation.\\\"+d.substr(0,3),s.projRotate[h]);p=[y-m,y+m]}var x=r(d+\\\".range\\\",p);r(d+\\\".tick0\\\",x[0]),r(d+\\\".dtick\\\",g),r(d+\\\".showgrid\\\")&&(r(d+\\\".gridcolor\\\"),r(d+\\\".gridwidth\\\"))}var b=e.lonaxis.range,_=e.lataxis.range,w=b[0],k=b[1];w>0&&k<0&&(k+=360);var M,A,T,S=(w+k)/2;if(!c){var E=u?s.projRotate:[S,0,0];M=r(\\\"projection.rotation.lon\\\",E[0]),r(\\\"projection.rotation.lat\\\",E[1]),r(\\\"projection.rotation.roll\\\",E[2]),r(\\\"showcoastlines\\\",!u)&&(r(\\\"coastlinecolor\\\"),r(\\\"coastlinewidth\\\")),r(\\\"showocean\\\")&&r(\\\"oceancolor\\\")}(c?(A=-96.6,T=38.7):(A=u?S:M,T=(_[0]+_[1])/2),r(\\\"center.lon\\\",A),r(\\\"center.lat\\\",T),f)&&r(\\\"projection.parallels\\\",s.projParallels||[0,60]);r(\\\"projection.scale\\\"),r(\\\"showland\\\")&&r(\\\"landcolor\\\"),r(\\\"showlakes\\\")&&r(\\\"lakecolor\\\"),r(\\\"showrivers\\\")&&(r(\\\"rivercolor\\\"),r(\\\"riverwidth\\\")),r(\\\"showcountries\\\",u&&\\\"usa\\\"!==a)&&(r(\\\"countrycolor\\\"),r(\\\"countrywidth\\\")),(\\\"usa\\\"===a||\\\"north america\\\"===a&&50===n)&&(r(\\\"showsubunits\\\",!0),r(\\\"subunitcolor\\\"),r(\\\"subunitwidth\\\")),u||r(\\\"showframe\\\",!0)&&(r(\\\"framecolor\\\"),r(\\\"framewidth\\\")),r(\\\"bgcolor\\\")}e.exports=function(t,e,r){n(t,e,r,{type:\\\"geo\\\",attributes:a,handleDefaults:s,partition:\\\"y\\\"})}},{\\\"../../subplot_defaults\\\":822,\\\"../constants\\\":773,\\\"./layout_attributes\\\":778}],778:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../components/color/attributes\\\"),i=t(\\\"../../domain\\\").attributes,a=t(\\\"../constants\\\"),o=t(\\\"../../../plot_api/edit_types\\\").overrideAll,s={range:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\"},{valType:\\\"number\\\"}]},showgrid:{valType:\\\"boolean\\\",dflt:!1},tick0:{valType:\\\"number\\\"},dtick:{valType:\\\"number\\\"},gridcolor:{valType:\\\"color\\\",dflt:n.lightLine},gridwidth:{valType:\\\"number\\\",min:0,dflt:1}};e.exports=o({domain:i({name:\\\"geo\\\"},{}),resolution:{valType:\\\"enumerated\\\",values:[110,50],dflt:110,coerceNumber:!0},scope:{valType:\\\"enumerated\\\",values:Object.keys(a.scopeDefaults),dflt:\\\"world\\\"},projection:{type:{valType:\\\"enumerated\\\",values:Object.keys(a.projNames)},rotation:{lon:{valType:\\\"number\\\"},lat:{valType:\\\"number\\\"},roll:{valType:\\\"number\\\"}},parallels:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\"},{valType:\\\"number\\\"}]},scale:{valType:\\\"number\\\",min:0,dflt:1}},center:{lon:{valType:\\\"number\\\"},lat:{valType:\\\"number\\\"}},showcoastlines:{valType:\\\"boolean\\\"},coastlinecolor:{valType:\\\"color\\\",dflt:n.defaultLine},coastlinewidth:{valType:\\\"number\\\",min:0,dflt:1},showland:{valType:\\\"boolean\\\",dflt:!1},landcolor:{valType:\\\"color\\\",dflt:a.landColor},showocean:{valType:\\\"boolean\\\",dflt:!1},oceancolor:{valType:\\\"color\\\",dflt:a.waterColor},showlakes:{valType:\\\"boolean\\\",dflt:!1},lakecolor:{valType:\\\"color\\\",dflt:a.waterColor},showrivers:{valType:\\\"boolean\\\",dflt:!1},rivercolor:{valType:\\\"color\\\",dflt:a.waterColor},riverwidth:{valType:\\\"number\\\",min:0,dflt:1},showcountries:{valType:\\\"boolean\\\"},countrycolor:{valType:\\\"color\\\",dflt:n.defaultLine},countrywidth:{valType:\\\"number\\\",min:0,dflt:1},showsubunits:{valType:\\\"boolean\\\"},subunitcolor:{valType:\\\"color\\\",dflt:n.defaultLine},subunitwidth:{valType:\\\"number\\\",min:0,dflt:1},showframe:{valType:\\\"boolean\\\"},framecolor:{valType:\\\"color\\\",dflt:n.defaultLine},framewidth:{valType:\\\"number\\\",min:0,dflt:1},bgcolor:{valType:\\\"color\\\",dflt:n.background},lonaxis:s,lataxis:s},\\\"plot\\\",\\\"from-root\\\")},{\\\"../../../components/color/attributes\\\":569,\\\"../../../plot_api/edit_types\\\":727,\\\"../../domain\\\":770,\\\"../constants\\\":773}],779:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){function e(t,e){return{type:\\\"Feature\\\",id:t.id,properties:t.properties,geometry:r(t.geometry,e)}}function r(e,n){if(!e)return null;if(\\\"GeometryCollection\\\"===e.type)return{type:\\\"GeometryCollection\\\",geometries:object.geometries.map(function(t){return r(t,n)})};if(!c.hasOwnProperty(e.type))return null;var i=c[e.type];return t.geo.stream(e,n(i)),i.result()}t.geo.project=function(t,e){var i=e.stream;if(!i)throw new Error(\\\"not yet supported\\\");return(t&&n.hasOwnProperty(t.type)?n[t.type]:r)(t,i)};var n={Feature:e,FeatureCollection:function(t,r){return{type:\\\"FeatureCollection\\\",features:t.features.map(function(t){return e(t,r)})}}},i=[],a=[],o={point:function(t,e){i.push([t,e])},result:function(){var t=i.length?i.length<2?{type:\\\"Point\\\",coordinates:i[0]}:{type:\\\"MultiPoint\\\",coordinates:i}:null;return i=[],t}},s={lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){i.length&&(a.push(i),i=[])},result:function(){var t=a.length?a.length<2?{type:\\\"LineString\\\",coordinates:a[0]}:{type:\\\"MultiLineString\\\",coordinates:a}:null;return a=[],t}},l={polygonStart:u,lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){var t=i.length;if(t){do{i.push(i[0].slice())}while(++t<4);a.push(i),i=[]}},polygonEnd:u,result:function(){if(!a.length)return null;var t=[],e=[];return a.forEach(function(r){!function(t){if((e=t.length)<4)return!1;for(var e,r=0,n=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++r<e;)n+=t[r-1][1]*t[r][0]-t[r-1][0]*t[r][1];return n<=0}(r)?e.push(r):t.push([r])}),e.forEach(function(e){var r=e[0];t.some(function(t){if(function(t,e){for(var r=e[0],n=e[1],i=!1,a=0,o=t.length,s=o-1;a<o;s=a++){var l=t[a],c=l[0],u=l[1],f=t[s],h=f[0],p=f[1];u>n^p>n&&r<(h-c)*(n-u)/(p-u)+c&&(i=!i)}return i}(t[0],r))return t.push(e),!0})||t.push([e])}),a=[],t.length?t.length>1?{type:\\\"MultiPolygon\\\",coordinates:t}:{type:\\\"Polygon\\\",coordinates:t[0]}:null}},c={Point:o,MultiPoint:o,LineString:s,MultiLineString:s,Polygon:l,MultiPolygon:l,Sphere:l};function u(){}var f=1e-6,h=f*f,p=Math.PI,d=p/2,g=(Math.sqrt(p),p/180),v=180/p;function m(t){return t>1?d:t<-1?-d:Math.asin(t)}function y(t){return t>1?0:t<-1?p:Math.acos(t)}var x=t.geo.projection,b=t.geo.projectionMutator;function _(t,e){var r=(2+d)*Math.sin(e);e/=2;for(var n=0,i=1/0;n<10&&Math.abs(i)>f;n++){var a=Math.cos(e);e-=i=(e+Math.sin(e)*(a+2)-r)/(2*a*(1+a))}return[2/Math.sqrt(p*(4+p))*t*(1+Math.cos(e)),2*Math.sqrt(p/(4+p))*Math.sin(e)]}t.geo.interrupt=function(e){var r,n=[[[[-p,0],[0,d],[p,0]]],[[[-p,0],[0,-d],[p,0]]]];function i(t,r){for(var i=r<0?-1:1,a=n[+(r<0)],o=0,s=a.length-1;o<s&&t>a[o][2][0];++o);var l=e(t-a[o][1][0],r);return l[0]+=e(a[o][1][0],i*r>i*a[o][0][1]?a[o][0][1]:r)[0],l}e.invert&&(i.invert=function(t,a){for(var o=r[+(a<0)],s=n[+(a<0)],c=0,u=o.length;c<u;++c){var f=o[c];if(f[0][0]<=t&&t<f[1][0]&&f[0][1]<=a&&a<f[1][1]){var h=e.invert(t-e(s[c][1][0],0)[0],a);return h[0]+=s[c][1][0],l(i(h[0],h[1]),[t,a])?h:null}}});var a=t.geo.projection(i),o=a.stream;function s(t,e){for(var r,n,i,a=-1,o=t.length,s=t[0],l=[];++a<o;){n=((r=t[a])[0]-s[0])/e,i=(r[1]-s[1])/e;for(var c=0;c<e;++c)l.push([s[0]+c*n,s[1]+c*i]);s=r}return l.push(r),l}function l(t,e){return Math.abs(t[0]-e[0])<f&&Math.abs(t[1]-e[1])<f}return a.stream=function(e){var r=a.rotate(),i=o(e),l=(a.rotate([0,0]),o(e));return a.rotate(r),i.sphere=function(){t.geo.stream(function(){for(var e=1e-6,r=[],i=0,a=n[0].length;i<a;++i){var o=n[0][i],l=180*o[0][0]/p,c=180*o[0][1]/p,u=180*o[1][1]/p,f=180*o[2][0]/p,h=180*o[2][1]/p;r.push(s([[l+e,c+e],[l+e,u-e],[f-e,u-e],[f-e,h+e]],30))}for(var i=n[1].length-1;i>=0;--i){var o=n[1][i],l=180*o[0][0]/p,c=180*o[0][1]/p,u=180*o[1][1]/p,f=180*o[2][0]/p,h=180*o[2][1]/p;r.push(s([[f-e,h-e],[f-e,u+e],[l+e,u+e],[l+e,c-e]],30))}return{type:\\\"Polygon\\\",coordinates:[t.merge(r)]}}(),l)},i},a.lobes=function(t){return arguments.length?(n=t.map(function(t){return t.map(function(t){return[[t[0][0]*p/180,t[0][1]*p/180],[t[1][0]*p/180,t[1][1]*p/180],[t[2][0]*p/180,t[2][1]*p/180]]})}),r=n.map(function(t){return t.map(function(t){var r,n=e(t[0][0],t[0][1])[0],i=e(t[2][0],t[2][1])[0],a=e(t[1][0],t[0][1])[1],o=e(t[1][0],t[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]})}),a):n.map(function(t){return t.map(function(t){return[[180*t[0][0]/p,180*t[0][1]/p],[180*t[1][0]/p,180*t[1][1]/p],[180*t[2][0]/p,180*t[2][1]/p]]})})},a},_.invert=function(t,e){var r=.5*e*Math.sqrt((4+p)/p),n=m(r),i=Math.cos(n);return[t/(2/Math.sqrt(p*(4+p))*(1+i)),m((n+r*(i+2))/(2+d))]},(t.geo.eckert4=function(){return x(_)}).raw=_;var w=t.geo.azimuthalEqualArea.raw;function k(t,e){if(arguments.length<2&&(e=t),1===e)return w;if(e===1/0)return M;function r(r,n){var i=w(r/e,n);return i[0]*=t,i}return r.invert=function(r,n){var i=w.invert(r/t,n);return i[0]*=e,i},r}function M(t,e){return[t*Math.cos(e)/Math.cos(e/=2),2*Math.sin(e)]}function A(t,e){return[3*t/(2*p)*Math.sqrt(p*p/3-e*e),e]}function T(t,e){return[t,1.25*Math.log(Math.tan(p/4+.4*e))]}function S(t){return function(e){var r,n=t*Math.sin(e),i=30;do{e-=r=(e+Math.sin(e)-n)/(1+Math.cos(e))}while(Math.abs(r)>f&&--i>0);return e/2}}M.invert=function(t,e){var r=2*m(e/2);return[t*Math.cos(r/2)/Math.cos(r),r]},(t.geo.hammer=function(){var t=2,e=b(k),r=e(t);return r.coefficient=function(r){return arguments.length?e(t=+r):t},r}).raw=k,A.invert=function(t,e){return[2/3*p*t/Math.sqrt(p*p/3-e*e),e]},(t.geo.kavrayskiy7=function(){return x(A)}).raw=A,T.invert=function(t,e){return[t,2.5*Math.atan(Math.exp(.8*e))-.625*p]},(t.geo.miller=function(){return x(T)}).raw=T,S(p);var E=function(t,e,r){var n=S(r);function i(r,i){return[t*r*Math.cos(i=n(i)),e*Math.sin(i)]}return i.invert=function(n,i){var a=m(i/e);return[n/(t*Math.cos(a)),m((2*a+Math.sin(2*a))/r)]},i}(Math.SQRT2/d,Math.SQRT2,p);function C(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}(t.geo.mollweide=function(){return x(E)}).raw=E,C.invert=function(t,e){var r,n=e,i=25;do{var a=n*n,o=a*a;n-=r=(n*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-e)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(Math.abs(r)>f&&--i>0);return[t/(.8707+(a=n*n)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),n]},(t.geo.naturalEarth=function(){return x(C)}).raw=C;var L=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];function z(t,e){var r,n=Math.min(18,36*Math.abs(e)/p),i=Math.floor(n),a=n-i,o=(r=L[i])[0],s=r[1],l=(r=L[++i])[0],c=r[1],u=(r=L[Math.min(19,++i)])[0],f=r[1];return[t*(l+a*(u-o)/2+a*a*(u-2*l+o)/2),(e>0?d:-d)*(c+a*(f-s)/2+a*a*(f-2*c+s)/2)]}function O(t,e){return[t*Math.cos(e),e]}function I(t,e){var r,n=Math.cos(e),i=(r=y(n*Math.cos(t/=2)))?r/Math.sin(r):1;return[2*n*Math.sin(t)*i,Math.sin(e)*i]}function P(t,e){var r=I(t,e);return[(r[0]+t/d)/2,(r[1]+e)/2]}L.forEach(function(t){t[1]*=1.0144}),z.invert=function(t,e){var r=e/d,n=90*r,i=Math.min(18,Math.abs(n/5)),a=Math.max(0,Math.floor(i));do{var o=L[a][1],s=L[a+1][1],l=L[Math.min(19,a+2)][1],c=l-o,u=l-2*s+o,f=2*(Math.abs(r)-s)/c,p=u/c,m=f*(1-p*f*(1-2*p*f));if(m>=0||1===a){n=(e>=0?5:-5)*(m+i);var y,x=50;do{m=(i=Math.min(18,Math.abs(n)/5))-(a=Math.floor(i)),o=L[a][1],s=L[a+1][1],l=L[Math.min(19,a+2)][1],n-=(y=(e>=0?d:-d)*(s+m*(l-o)/2+m*m*(l-2*s+o)/2)-e)*v}while(Math.abs(y)>h&&--x>0);break}}while(--a>=0);var b=L[a][0],_=L[a+1][0],w=L[Math.min(19,a+2)][0];return[t/(_+m*(w-b)/2+m*m*(w-2*_+b)/2),n*g]},(t.geo.robinson=function(){return x(z)}).raw=z,O.invert=function(t,e){return[t/Math.cos(e),e]},(t.geo.sinusoidal=function(){return x(O)}).raw=O,I.invert=function(t,e){if(!(t*t+4*e*e>p*p+f)){var r=t,n=e,i=25;do{var a,o=Math.sin(r),s=Math.sin(r/2),l=Math.cos(r/2),c=Math.sin(n),u=Math.cos(n),h=Math.sin(2*n),d=c*c,g=u*u,v=s*s,m=1-g*l*l,x=m?y(u*l)*Math.sqrt(a=1/m):a=0,b=2*x*u*s-t,_=x*c-e,w=a*(g*v+x*u*l*d),k=a*(.5*o*h-2*x*c*s),M=.25*a*(h*s-x*c*g*o),A=a*(d*l+x*v*u),T=k*M-A*w;if(!T)break;var S=(_*k-b*A)/T,E=(b*M-_*w)/T;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]}},(t.geo.aitoff=function(){return x(I)}).raw=I,P.invert=function(t,e){var r=t,n=e,i=25;do{var a,o=Math.cos(n),s=Math.sin(n),l=Math.sin(2*n),c=s*s,u=o*o,h=Math.sin(r),p=Math.cos(r/2),g=Math.sin(r/2),v=g*g,m=1-u*p*p,x=m?y(o*p)*Math.sqrt(a=1/m):a=0,b=.5*(2*x*o*g+r/d)-t,_=.5*(x*s+n)-e,w=.5*a*(u*v+x*o*p*c)+.5/d,k=a*(h*l/4-x*s*g),M=.125*a*(l*g-x*s*u*h),A=.5*a*(c*p+x*v*o)+.5,T=k*M-A*w,S=(_*k-b*A)/T,E=(b*M-_*w)/T;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]},(t.geo.winkel3=function(){return x(P)}).raw=P}},{}],780:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=Math.PI/180,o=180/Math.PI,s={cursor:\\\"pointer\\\"},l={cursor:\\\"auto\\\"};function c(t,e){return n.behavior.zoom().translate(e.translate()).scale(e.scale())}function u(t,e,r){var n=t.id,a=t.graphDiv,o=a.layout[n],s=a._fullLayout[n],l={};function c(t,e){var r=i.nestedProperty(s,t);r.get()!==e&&(r.set(e),i.nestedProperty(o,t).set(e),l[n+\\\".\\\"+t]=e)}r(c),c(\\\"projection.scale\\\",e.scale()/t.fitScale),a.emit(\\\"plotly_relayout\\\",l)}function f(t,e){var r=c(0,e);function i(r){var n=e.invert(t.midPt);r(\\\"center.lon\\\",n[0]),r(\\\"center.lat\\\",n[1])}return r.on(\\\"zoomstart\\\",function(){n.select(this).style(s)}).on(\\\"zoom\\\",function(){e.scale(n.event.scale).translate(n.event.translate),t.render()}).on(\\\"zoomend\\\",function(){n.select(this).style(l),u(t,e,i)}),r}function h(t,e){var r,i,a,o,f,h,p,d,g,v=c(0,e),m=2;function y(t){return e.invert(t)}function x(r){var n=e.rotate(),i=e.invert(t.midPt);r(\\\"projection.rotation.lon\\\",-n[0]),r(\\\"center.lon\\\",i[0]),r(\\\"center.lat\\\",i[1])}return v.on(\\\"zoomstart\\\",function(){n.select(this).style(s),r=n.mouse(this),i=e.rotate(),a=e.translate(),o=i,f=y(r)}).on(\\\"zoom\\\",function(){if(h=n.mouse(this),function(t){var r=y(t);if(!r)return!0;var n=e(r);return Math.abs(n[0]-t[0])>m||Math.abs(n[1]-t[1])>m}(r))return v.scale(e.scale()),void v.translate(e.translate());e.scale(n.event.scale),e.translate([a[0],n.event.translate[1]]),f?y(h)&&(d=y(h),p=[o[0]+(d[0]-f[0]),i[1],i[2]],e.rotate(p),o=p):f=y(r=h),g=!0,t.render()}).on(\\\"zoomend\\\",function(){n.select(this).style(l),g&&u(t,e,x)}),v}function p(t,e){var r,i={r:e.rotate(),k:e.scale()},f=c(0,e),h=function(t){var e=0,r=arguments.length,i=[];for(;++e<r;)i.push(arguments[e]);var a=n.dispatch.apply(null,i);return a.of=function(e,r){return function(i){var o;try{o=i.sourceEvent=n.event,i.target=t,n.event=i,a[i.type].apply(e,r)}finally{n.event=o}}},a}(f,\\\"zoomstart\\\",\\\"zoom\\\",\\\"zoomend\\\"),p=0,v=f.on;function x(t){var r=e.rotate();t(\\\"projection.rotation.lon\\\",-r[0]),t(\\\"projection.rotation.lat\\\",-r[1])}return f.on(\\\"zoomstart\\\",function(){n.select(this).style(s);var t,l,c,u,x,b,_,w,k,M,A,T=n.mouse(this),S=e.rotate(),E=S,C=e.translate(),L=(l=.5*(t=S)[0]*a,c=.5*t[1]*a,u=.5*t[2]*a,x=Math.sin(l),b=Math.cos(l),_=Math.sin(c),w=Math.cos(c),k=Math.sin(u),M=Math.cos(u),[b*w*M+x*_*k,x*w*M-b*_*k,b*_*M+x*w*k,b*w*k-x*_*M]);r=d(e,T),v.call(f,\\\"zoom\\\",function(){var t,a,s,l,c,u,f,p,v,x,b=n.mouse(this);if(e.scale(i.k=n.event.scale),r){if(d(e,b)){e.rotate(S).translate(C);var _=d(e,b),w=function(t,e){if(!t||!e)return;var r=function(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}(t,e),n=Math.sqrt(y(r,r)),i=.5*Math.acos(Math.max(-1,Math.min(1,y(t,e)))),a=Math.sin(i)/n;return n&&[Math.cos(i),r[2]*a,-r[1]*a,r[0]*a]}(r,_),k=function(t){return[Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),1-2*(t[1]*t[1]+t[2]*t[2]))*o,Math.asin(Math.max(-1,Math.min(1,2*(t[0]*t[2]-t[3]*t[1]))))*o,Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),1-2*(t[2]*t[2]+t[3]*t[3]))*o]}((a=w,s=(t=L)[0],l=t[1],c=t[2],u=t[3],f=a[0],p=a[1],v=a[2],x=a[3],[s*f-l*p-c*v-u*x,s*p+l*f+c*x-u*v,s*v-l*x+c*f+u*p,s*x+l*v-c*p+u*f])),M=i.r=function(t,e,r){var n=m(e,2,t[0]);n=m(n,1,t[1]),n=m(n,0,t[2]-r[2]);var i,a,s=e[0],l=e[1],c=e[2],u=n[0],f=n[1],h=n[2],p=Math.atan2(l,s)*o,d=Math.sqrt(s*s+l*l);Math.abs(f)>d?(a=(f>0?90:-90)-p,i=0):(a=Math.asin(f/d)*o-p,i=Math.sqrt(d*d-f*f));var v=180-a-2*p,y=(Math.atan2(h,u)-Math.atan2(c,i))*o,x=(Math.atan2(h,u)-Math.atan2(c,-i))*o,b=g(r[0],r[1],a,y),_=g(r[0],r[1],v,x);return b<=_?[a,y,r[2]]:[v,x,r[2]]}(k,r,E);isFinite(M[0])&&isFinite(M[1])&&isFinite(M[2])||(M=E),e.rotate(M),E=M}}else r=d(e,T=b);h.of(this,arguments)({type:\\\"zoom\\\"})}),A=h.of(this,arguments),p++||A({type:\\\"zoomstart\\\"})}).on(\\\"zoomend\\\",function(){var r;n.select(this).style(l),v.call(f,\\\"zoom\\\",null),r=h.of(this,arguments),--p||r({type:\\\"zoomend\\\"}),u(t,e,x)}).on(\\\"zoom.redraw\\\",function(){t.render()}),n.rebind(f,h,\\\"on\\\")}function d(t,e){var r=t.invert(e);return r&&isFinite(r[0])&&isFinite(r[1])&&function(t){var e=t[0]*a,r=t[1]*a,n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}(r)}function g(t,e,r,n){var i=v(r-t),a=v(n-e);return Math.sqrt(i*i+a*a)}function v(t){return(t%360+540)%360-180}function m(t,e,r){var n=r*a,i=t.slice(),o=0===e?1:0,s=2===e?1:2,l=Math.cos(n),c=Math.sin(n);return i[o]=t[o]*l-t[s]*c,i[s]=t[s]*l+t[o]*c,i}function y(t,e){for(var r=0,n=0,i=t.length;n<i;++n)r+=t[n]*e[n];return r}e.exports=function(t,e){var r=t.projection;return(e._isScoped?f:e._isClipped?p:h)(t,r)}},{\\\"../../lib\\\":696,d3:148}],781:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../registry\\\"),i=t(\\\"./cartesian/constants\\\").SUBPLOT_PATTERN;r.getSubplotCalcData=function(t,e,r){var i=n.subplotsRegistry[e];if(!i)return[];for(var a=i.attr,o=[],s=0;s<t.length;s++){var l=t[s];l[0].trace[a]===r&&o.push(l)}return o},r.getModuleCalcData=function(t,e){var r,i=[],a=[];if(!(r=\\\"string\\\"==typeof e?n.getModule(e).plot:\\\"function\\\"==typeof e?e:e.plot))return[i,t];for(var o=0;o<t.length;o++){var s=t[o],l=s[0].trace;!0===l.visible&&(l._module.plot===r?i.push(s):a.push(s))}return[i,a]},r.getSubplotData=function(t,e,r){if(!n.subplotsRegistry[e])return[];var a,o,s,l=n.subplotsRegistry[e].attr,c=[];if(\\\"gl2d\\\"===e){var u=r.match(i);o=\\\"x\\\"+u[1],s=\\\"y\\\"+u[2]}for(var f=0;f<t.length;f++)a=t[f],\\\"gl2d\\\"===e&&n.traceIs(a,\\\"gl2d\\\")?a[l[0]]===o&&a[l[1]]===s&&c.push(a):a[l]===r&&c.push(a);return c}},{\\\"../registry\\\":827,\\\"./cartesian/constants\\\":750}],782:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"mouse-change\\\"),i=t(\\\"mouse-wheel\\\"),a=t(\\\"mouse-event-offset\\\"),o=t(\\\"../cartesian/constants\\\"),s=t(\\\"has-passive-events\\\");function l(t,e){this.element=t,this.plot=e,this.mouseListener=null,this.wheelListener=null,this.lastInputTime=Date.now(),this.lastPos=[0,0],this.boxEnabled=!1,this.boxInited=!1,this.boxStart=[0,0],this.boxEnd=[0,0],this.dragStart=[0,0]}e.exports=function(t){var e=t.mouseContainer,r=t.glplot,c=new l(e,r);function u(){t.xaxis.autorange=!1,t.yaxis.autorange=!1}function f(e,n,i){var a,s,l=t.calcDataBox(),f=r.viewBox,h=c.lastPos[0],p=c.lastPos[1],d=o.MINDRAG*r.pixelRatio,g=o.MINZOOM*r.pixelRatio;function v(e,r,n){var i=Math.min(r,n),a=Math.max(r,n);i!==a?(l[e]=i,l[e+2]=a,c.dataBox=l,t.setRanges(l)):(t.selectBox.selectBox=[0,0,1,1],t.glplot.setDirty())}switch(n*=r.pixelRatio,i*=r.pixelRatio,i=f[3]-f[1]-i,t.fullLayout.dragmode){case\\\"zoom\\\":if(e){var m=n/(f[2]-f[0])*(l[2]-l[0])+l[0],y=i/(f[3]-f[1])*(l[3]-l[1])+l[1];c.boxInited||(c.boxStart[0]=m,c.boxStart[1]=y,c.dragStart[0]=n,c.dragStart[1]=i),c.boxEnd[0]=m,c.boxEnd[1]=y,c.boxInited=!0,c.boxEnabled||c.boxStart[0]===c.boxEnd[0]&&c.boxStart[1]===c.boxEnd[1]||(c.boxEnabled=!0);var x=Math.abs(c.dragStart[0]-n)<g,b=Math.abs(c.dragStart[1]-i)<g;if(!function(){for(var e=t.graphDiv._fullLayout._axisConstraintGroups,r=t.xaxis._id,n=t.yaxis._id,i=0;i<e.length;i++)if(-1!==e[i][r]){if(-1!==e[i][n])return!0;break}return!1}()||x&&b)x&&(c.boxEnd[0]=c.boxStart[0]),b&&(c.boxEnd[1]=c.boxStart[1]);else{a=c.boxEnd[0]-c.boxStart[0],s=c.boxEnd[1]-c.boxStart[1];var _=(l[3]-l[1])/(l[2]-l[0]);Math.abs(a*_)>Math.abs(s)?(c.boxEnd[1]=c.boxStart[1]+Math.abs(a)*_*(s>=0?1:-1),c.boxEnd[1]<l[1]?(c.boxEnd[1]=l[1],c.boxEnd[0]=c.boxStart[0]+(l[1]-c.boxStart[1])/Math.abs(_)):c.boxEnd[1]>l[3]&&(c.boxEnd[1]=l[3],c.boxEnd[0]=c.boxStart[0]+(l[3]-c.boxStart[1])/Math.abs(_))):(c.boxEnd[0]=c.boxStart[0]+Math.abs(s)/_*(a>=0?1:-1),c.boxEnd[0]<l[0]?(c.boxEnd[0]=l[0],c.boxEnd[1]=c.boxStart[1]+(l[0]-c.boxStart[0])*Math.abs(_)):c.boxEnd[0]>l[2]&&(c.boxEnd[0]=l[2],c.boxEnd[1]=c.boxStart[1]+(l[2]-c.boxStart[0])*Math.abs(_)))}}else c.boxEnabled?(a=c.boxStart[0]!==c.boxEnd[0],s=c.boxStart[1]!==c.boxEnd[1],a||s?(a&&(v(0,c.boxStart[0],c.boxEnd[0]),t.xaxis.autorange=!1),s&&(v(1,c.boxStart[1],c.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),c.boxEnabled=!1,c.boxInited=!1):c.boxInited&&(c.boxInited=!1);break;case\\\"pan\\\":c.boxEnabled=!1,c.boxInited=!1,e?(c.panning||(c.dragStart[0]=n,c.dragStart[1]=i),Math.abs(c.dragStart[0]-n)<d&&(n=c.dragStart[0]),Math.abs(c.dragStart[1]-i)<d&&(i=c.dragStart[1]),a=(h-n)*(l[2]-l[0])/(r.viewBox[2]-r.viewBox[0]),s=(p-i)*(l[3]-l[1])/(r.viewBox[3]-r.viewBox[1]),l[0]+=a,l[2]+=a,l[1]+=s,l[3]+=s,t.setRanges(l),c.panning=!0,c.lastInputTime=Date.now(),u(),t.cameraChanged(),t.handleAnnotations()):c.panning&&(c.panning=!1,t.relayoutCallback())}c.lastPos[0]=n,c.lastPos[1]=i}return c.mouseListener=n(e,f),e.addEventListener(\\\"touchstart\\\",function(t){var r=a(t.changedTouches[0],e);f(0,r[0],r[1]),f(1,r[0],r[1]),t.preventDefault()},!!s&&{passive:!1}),e.addEventListener(\\\"touchmove\\\",function(t){t.preventDefault();var r=a(t.changedTouches[0],e);f(1,r[0],r[1]),t.preventDefault()},!!s&&{passive:!1}),e.addEventListener(\\\"touchend\\\",function(t){f(0,c.lastPos[0],c.lastPos[1]),t.preventDefault()},!!s&&{passive:!1}),c.wheelListener=i(e,function(e,n){if(!t.scrollZoom)return!1;var i=t.calcDataBox(),a=r.viewBox,o=c.lastPos[0],s=c.lastPos[1],l=Math.exp(5*n/(a[3]-a[1])),f=o/(a[2]-a[0])*(i[2]-i[0])+i[0],h=s/(a[3]-a[1])*(i[3]-i[1])+i[1];return i[0]=(i[0]-f)*l+f,i[2]=(i[2]-f)*l+f,i[1]=(i[1]-h)*l+h,i[3]=(i[3]-h)*l+h,t.setRanges(i),c.lastInputTime=Date.now(),u(),t.cameraChanged(),t.handleAnnotations(),t.relayoutCallback(),!0},!0),c}},{\\\"../cartesian/constants\\\":750,\\\"has-passive-events\\\":394,\\\"mouse-change\\\":418,\\\"mouse-event-offset\\\":419,\\\"mouse-wheel\\\":421}],783:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../cartesian/axes\\\"),i=t(\\\"../../lib/html2unicode\\\"),a=t(\\\"../../lib/str2rgbarray\\\");function o(t){this.scene=t,this.gl=t.gl,this.pixelRatio=t.pixelRatio,this.screenBox=[0,0,1,1],this.viewBox=[0,0,1,1],this.dataBox=[-1,-1,1,1],this.borderLineEnable=[!1,!1,!1,!1],this.borderLineWidth=[1,1,1,1],this.borderLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.ticks=[[],[]],this.tickEnable=[!0,!0,!1,!1],this.tickPad=[15,15,15,15],this.tickAngle=[0,0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickMarkLength=[0,0,0,0],this.tickMarkWidth=[0,0,0,0],this.tickMarkColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labels=[\\\"x\\\",\\\"y\\\"],this.labelEnable=[!0,!0,!1,!1],this.labelAngle=[0,Math.PI/2,0,3*Math.PI/2],this.labelPad=[15,15,15,15],this.labelSize=[12,12],this.labelFont=[\\\"sans-serif\\\",\\\"sans-serif\\\"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.title=\\\"\\\",this.titleEnable=!0,this.titleCenter=[0,0,0,0],this.titleAngle=0,this.titleColor=[0,0,0,1],this.titleFont=\\\"sans-serif\\\",this.titleSize=18,this.gridLineEnable=[!0,!0],this.gridLineColor=[[0,0,0,.5],[0,0,0,.5]],this.gridLineWidth=[1,1],this.zeroLineEnable=[!0,!0],this.zeroLineWidth=[1,1],this.zeroLineColor=[[0,0,0,1],[0,0,0,1]],this.borderColor=!1,this.backgroundColor=[0,0,0,0],this.static=this.scene.staticPlot}var s=o.prototype,l=[\\\"xaxis\\\",\\\"yaxis\\\"];s.merge=function(t){var e,r,n,o,s,c,u,f,h,p,d;for(this.titleEnable=!1,this.backgroundColor=a(t.plot_bgcolor),p=0;p<2;++p){var g=(e=l[p]).charAt(0);for(n=(r=t[this.scene[e]._name]).title===this.scene.fullLayout._dfltTitle[g]?\\\"\\\":r.title,d=0;d<=2;d+=2)this.labelEnable[p+d]=!1,this.labels[p+d]=i(n),this.labelColor[p+d]=a(r.titlefont.color),this.labelFont[p+d]=r.titlefont.family,this.labelSize[p+d]=r.titlefont.size,this.labelPad[p+d]=this.getLabelPad(e,r),this.tickEnable[p+d]=!1,this.tickColor[p+d]=a((r.tickfont||{}).color),this.tickAngle[p+d]=\\\"auto\\\"===r.tickangle?0:Math.PI*-r.tickangle/180,this.tickPad[p+d]=this.getTickPad(r),this.tickMarkLength[p+d]=0,this.tickMarkWidth[p+d]=r.tickwidth||0,this.tickMarkColor[p+d]=a(r.tickcolor),this.borderLineEnable[p+d]=!1,this.borderLineColor[p+d]=a(r.linecolor),this.borderLineWidth[p+d]=r.linewidth||0;u=this.hasSharedAxis(r),s=this.hasAxisInDfltPos(e,r)&&!u,c=this.hasAxisInAltrPos(e,r)&&!u,o=r.mirror||!1,f=u?-1!==String(o).indexOf(\\\"all\\\"):!!o,h=u?\\\"allticks\\\"===o:-1!==String(o).indexOf(\\\"ticks\\\"),s?this.labelEnable[p]=!0:c&&(this.labelEnable[p+2]=!0),s?this.tickEnable[p]=r.showticklabels:c&&(this.tickEnable[p+2]=r.showticklabels),(s||f)&&(this.borderLineEnable[p]=r.showline),(c||f)&&(this.borderLineEnable[p+2]=r.showline),(s||h)&&(this.tickMarkLength[p]=this.getTickMarkLength(r)),(c||h)&&(this.tickMarkLength[p+2]=this.getTickMarkLength(r)),this.gridLineEnable[p]=r.showgrid,this.gridLineColor[p]=a(r.gridcolor),this.gridLineWidth[p]=r.gridwidth,this.zeroLineEnable[p]=r.zeroline,this.zeroLineColor[p]=a(r.zerolinecolor),this.zeroLineWidth[p]=r.zerolinewidth}},s.hasSharedAxis=function(t){var e=this.scene,r=e.fullLayout._subplots.gl2d;return 0!==n.findSubplotsWithAxis(r,t).indexOf(e.id)},s.hasAxisInDfltPos=function(t,e){var r=e.side;return\\\"xaxis\\\"===t?\\\"bottom\\\"===r:\\\"yaxis\\\"===t?\\\"left\\\"===r:void 0},s.hasAxisInAltrPos=function(t,e){var r=e.side;return\\\"xaxis\\\"===t?\\\"top\\\"===r:\\\"yaxis\\\"===t?\\\"right\\\"===r:void 0},s.getLabelPad=function(t,e){var r=e.titlefont.size,n=e.showticklabels;return\\\"xaxis\\\"===t?\\\"top\\\"===e.side?r*(1.5+(n?1:0))-10:r*(1.5+(n?.5:0))-10:\\\"yaxis\\\"===t?\\\"right\\\"===e.side?10+r*(1.5+(n?1:.5)):10+r*(1.5+(n?.5:0)):void 0},s.getTickPad=function(t){return\\\"outside\\\"===t.ticks?10+t.ticklen:15},s.getTickMarkLength=function(t){if(!t.ticks)return 0;var e=t.ticklen;return\\\"inside\\\"===t.ticks?-e:e},e.exports=function(t){return new o(t)}},{\\\"../../lib/html2unicode\\\":694,\\\"../../lib/str2rgbarray\\\":719,\\\"../cartesian/axes\\\":744}],784:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plot_api/edit_types\\\").overrideAll,i=t(\\\"./scene2d\\\"),a=t(\\\"../layout_attributes\\\"),o=t(\\\"../../constants/xmlns_namespaces\\\"),s=t(\\\"../cartesian/constants\\\"),l=t(\\\"../cartesian\\\"),c=t(\\\"../../components/fx/layout_attributes\\\"),u=t(\\\"../get_data\\\").getSubplotData;r.name=\\\"gl2d\\\",r.attr=[\\\"xaxis\\\",\\\"yaxis\\\"],r.idRoot=[\\\"x\\\",\\\"y\\\"],r.idRegex=s.idRegex,r.attrRegex=s.attrRegex,r.attributes=t(\\\"../cartesian/attributes\\\"),r.supplyLayoutDefaults=function(t,e,r){e._has(\\\"cartesian\\\")||l.supplyLayoutDefaults(t,e,r)},r.layoutAttrOverrides=n(l.layoutAttributes,\\\"plot\\\",\\\"from-root\\\"),r.baseLayoutAttrOverrides=n({plot_bgcolor:a.plot_bgcolor,hoverlabel:c.hoverlabel},\\\"plot\\\",\\\"nested\\\"),r.plot=function(t){for(var e=t._fullLayout,r=t._fullData,n=e._subplots.gl2d,a=0;a<n.length;a++){var o=n[a],s=e._plots[o],l=u(r,\\\"gl2d\\\",o),c=s._scene2d;void 0===c&&(c=new i({id:o,graphDiv:t,container:t.querySelector(\\\".gl-container\\\"),staticPlot:t._context.staticPlot,plotGlPixelRatio:t._context.plotGlPixelRatio},e),s._scene2d=c),c.plot(l,t.calcdata,e,t.layout)}},r.clean=function(t,e,r,n){for(var i=n._subplots.gl2d||[],a=0;a<i.length;a++){var o=i[a],s=n._plots[o];if(s._scene2d)0===u(t,\\\"gl2d\\\",o).length&&(s._scene2d.destroy(),delete n._plots[o])}l.clean.apply(this,arguments)},r.drawFramework=function(t){t._context.staticPlot||l.drawFramework(t)},r.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.gl2d,n=0;n<r.length;n++){var i=e._plots[r[n]]._scene2d,a=i.toImage(\\\"png\\\");e._glimages.append(\\\"svg:image\\\").attr({xmlns:o.svg,\\\"xlink:href\\\":a,x:0,y:0,width:\\\"100%\\\",height:\\\"100%\\\",preserveAspectRatio:\\\"none\\\"}),i.destroy()}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.gl2d,n=0;n<r.length;n++){e._plots[r[n]]._scene2d.updateFx(e.dragmode)}}},{\\\"../../components/fx/layout_attributes\\\":613,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../plot_api/edit_types\\\":727,\\\"../cartesian\\\":756,\\\"../cartesian/attributes\\\":742,\\\"../cartesian/constants\\\":750,\\\"../get_data\\\":781,\\\"../layout_attributes\\\":799,\\\"./scene2d\\\":785}],785:[function(t,e,r){\\\"use strict\\\";var n,i,a=t(\\\"../../registry\\\"),o=t(\\\"../../plots/cartesian/axes\\\"),s=t(\\\"../../components/fx\\\"),l=t(\\\"gl-plot2d\\\"),c=t(\\\"gl-spikes2d\\\"),u=t(\\\"gl-select-box\\\"),f=t(\\\"webgl-context\\\"),h=t(\\\"./convert\\\"),p=t(\\\"./camera\\\"),d=t(\\\"../../lib/html2unicode\\\"),g=t(\\\"../../lib/show_no_webgl_msg\\\"),v=t(\\\"../cartesian/constraints\\\"),m=v.enforce,y=v.clean,x=t(\\\"../cartesian/autorange\\\").doAutoRange,b=[\\\"xaxis\\\",\\\"yaxis\\\"],_=t(\\\"../cartesian/constants\\\").SUBPLOT_PATTERN;function w(t,e){this.container=t.container,this.graphDiv=t.graphDiv,this.pixelRatio=t.plotGlPixelRatio||window.devicePixelRatio,this.id=t.id,this.staticPlot=!!t.staticPlot,this.scrollZoom=this.graphDiv._context.scrollZoom,this.fullData=null,this.updateRefs(e),this.makeFramework(),this.stopped||(this.glplotOptions=h(this),this.glplotOptions.merge(e),this.glplot=l(this.glplotOptions),this.camera=p(this),this.traces={},this.spikes=c(this.glplot),this.selectBox=u(this.glplot,{innerFill:!1,outerFill:!0}),this.lastButtonState=0,this.pickResult=null,this.isMouseOver=!0,this.stopped=!1,this.redraw=this.draw.bind(this),this.redraw())}e.exports=w;var k=w.prototype;k.makeFramework=function(){if(this.staticPlot){if(!(i||(n=document.createElement(\\\"canvas\\\"),i=f({canvas:n,preserveDrawingBuffer:!1,premultipliedAlpha:!0,antialias:!0}))))throw new Error(\\\"Error creating static canvas/context for image server\\\");this.canvas=n,this.gl=i}else{var t=this.container.querySelector(\\\".gl-canvas-focus\\\"),e=f({canvas:t,preserveDrawingBuffer:!0,premultipliedAlpha:!0});if(!e)return g(this),void(this.stopped=!0);this.canvas=t,this.gl=e}var r=this.canvas;r.style.width=\\\"100%\\\",r.style.height=\\\"100%\\\",r.style.position=\\\"absolute\\\",r.style.top=\\\"0px\\\",r.style.left=\\\"0px\\\",r.style[\\\"pointer-events\\\"]=\\\"none\\\",this.updateSize(r),r.className+=\\\" user-select-none\\\";var a=this.svgContainer=document.createElementNS(\\\"http://www.w3.org/2000/svg\\\",\\\"svg\\\");a.style.position=\\\"absolute\\\",a.style.top=a.style.left=\\\"0px\\\",a.style.width=a.style.height=\\\"100%\\\",a.style[\\\"z-index\\\"]=20,a.style[\\\"pointer-events\\\"]=\\\"none\\\";var o=this.mouseContainer=document.createElement(\\\"div\\\");o.style.position=\\\"absolute\\\",o.style[\\\"pointer-events\\\"]=\\\"auto\\\",this.pickCanvas=this.container.querySelector(\\\".gl-canvas-pick\\\");var s=this.container;s.appendChild(a),s.appendChild(o);var l=this;o.addEventListener(\\\"mouseout\\\",function(){l.isMouseOver=!1,l.unhover()}),o.addEventListener(\\\"mouseover\\\",function(){l.isMouseOver=!0})},k.toImage=function(t){t||(t=\\\"png\\\"),this.stopped=!0,this.staticPlot&&this.container.appendChild(n),this.updateSize(this.canvas);var e=this.glplot.gl,r=e.drawingBufferWidth,i=e.drawingBufferHeight;e.clearColor(1,1,1,0),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT),this.glplot.setDirty(),this.glplot.draw(),e.bindFramebuffer(e.FRAMEBUFFER,null);var a=new Uint8Array(r*i*4);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a);for(var o=0,s=i-1;o<s;++o,--s)for(var l=0;l<r;++l)for(var c=0;c<4;++c){var u=a[4*(r*o+l)+c];a[4*(r*o+l)+c]=a[4*(r*s+l)+c],a[4*(r*s+l)+c]=u}var f=document.createElement(\\\"canvas\\\");f.width=r,f.height=i;var h,p=f.getContext(\\\"2d\\\"),d=p.createImageData(r,i);switch(d.data.set(a),p.putImageData(d,0,0),t){case\\\"jpeg\\\":h=f.toDataURL(\\\"image/jpeg\\\");break;case\\\"webp\\\":h=f.toDataURL(\\\"image/webp\\\");break;default:h=f.toDataURL(\\\"image/png\\\")}return this.staticPlot&&this.container.removeChild(n),h},k.updateSize=function(t){t||(t=this.canvas);var e=this.pixelRatio,r=this.fullLayout,n=r.width,i=r.height,a=0|Math.ceil(e*n),o=0|Math.ceil(e*i);return t.width===a&&t.height===o||(t.width=a,t.height=o),t},k.computeTickMarks=function(){this.xaxis.setScale(),this.yaxis.setScale();for(var t=[o.calcTicks(this.xaxis),o.calcTicks(this.yaxis)],e=0;e<2;++e)for(var r=0;r<t[e].length;++r)t[e][r].text=d(t[e][r].text+\\\"\\\");return t},k.updateRefs=function(t){this.fullLayout=t;var e=this.id.match(_),r=\\\"xaxis\\\"+e[1],n=\\\"yaxis\\\"+e[2];this.xaxis=this.fullLayout[r],this.yaxis=this.fullLayout[n]},k.relayoutCallback=function(){var t=this.graphDiv,e=this.xaxis,r=this.yaxis,n=t.layout;n.xaxis.autorange=e.autorange,n.xaxis.range=e.range.slice(0),n.yaxis.autorange=r.autorange,n.yaxis.range=r.range.slice(0);var i={lastInputTime:this.camera.lastInputTime};i[e._name]=e.range.slice(0),i[r._name]=r.range.slice(0),t.emit(\\\"plotly_relayout\\\",i)},k.cameraChanged=function(){var t=this.camera;this.glplot.setDataBox(this.calcDataBox());var e=this.computeTickMarks();(function(t,e){for(var r=0;r<2;++r){var n=t[r],i=e[r];if(n.length!==i.length)return!0;for(var a=0;a<n.length;++a)if(n[a].x!==i[a].x)return!0}return!1})(e,this.glplotOptions.ticks)&&(this.glplotOptions.ticks=e,this.glplotOptions.dataBox=t.dataBox,this.glplot.update(this.glplotOptions),this.handleAnnotations())},k.handleAnnotations=function(){for(var t=this.graphDiv,e=this.fullLayout.annotations,r=0;r<e.length;r++){var n=e[r];n.xref===this.xaxis._id&&n.yref===this.yaxis._id&&a.getComponentMethod(\\\"annotations\\\",\\\"drawOne\\\")(t,r)}},k.destroy=function(){if(this.glplot){var t=this.traces;t&&Object.keys(t).map(function(e){t[e].dispose(),delete t[e]}),this.glplot.dispose(),this.container.removeChild(this.svgContainer),this.container.removeChild(this.mouseContainer),this.fullData=null,this.glplot=null,this.stopped=!0,this.camera.mouseListener.enabled=!1,this.mouseContainer.removeEventListener(\\\"wheel\\\",this.camera.wheelListener),this.camera=null}},k.plot=function(t,e,r){var n=this.glplot;this.updateRefs(r),this.xaxis.clearCalc(),this.yaxis.clearCalc(),this.updateTraces(t,e),this.updateFx(r.dragmode);var i=r.width,a=r.height;this.updateSize(this.canvas);var o=this.glplotOptions;o.merge(r),o.screenBox=[0,0,i,a];var s={_fullLayout:{_axisConstraintGroups:this.graphDiv._fullLayout._axisConstraintGroups,xaxis:this.xaxis,yaxis:this.yaxis}};y(s,this.xaxis),y(s,this.yaxis);var l,c,u=r._size,f=this.xaxis.domain,h=this.yaxis.domain;for(o.viewBox=[u.l+f[0]*u.w,u.b+h[0]*u.h,i-u.r-(1-f[1])*u.w,a-u.t-(1-h[1])*u.h],this.mouseContainer.style.width=u.w*(f[1]-f[0])+\\\"px\\\",this.mouseContainer.style.height=u.h*(h[1]-h[0])+\\\"px\\\",this.mouseContainer.height=u.h*(h[1]-h[0]),this.mouseContainer.style.left=u.l+f[0]*u.w+\\\"px\\\",this.mouseContainer.style.top=u.t+(1-h[1])*u.h+\\\"px\\\",c=0;c<2;++c)(l=this[b[c]])._length=o.viewBox[c+2]-o.viewBox[c],x(this.graphDiv,l),l.setScale();m(s),o.ticks=this.computeTickMarks(),o.dataBox=this.calcDataBox(),o.merge(r),n.update(o),this.glplot.draw()},k.calcDataBox=function(){var t=this.xaxis,e=this.yaxis,r=t.range,n=e.range,i=t.r2l,a=e.r2l;return[i(r[0]),a(n[0]),i(r[1]),a(n[1])]},k.setRanges=function(t){var e=this.xaxis,r=this.yaxis,n=e.l2r,i=r.l2r;e.range=[n(t[0]),n(t[2])],r.range=[i(t[1]),i(t[3])]},k.updateTraces=function(t,e){var r,n,i,a=Object.keys(this.traces);this.fullData=t;t:for(r=0;r<a.length;r++){var o=a[r],s=this.traces[o];for(n=0;n<t.length;n++)if((i=t[n]).uid===o&&i.type===s.type)continue t;s.dispose(),delete this.traces[o]}for(r=0;r<t.length;r++){i=t[r];var l=e[r],c=this.traces[i.uid];c?c.update(i,l):(c=i._module.plot(this,i,l),this.traces[i.uid]=c)}this.glplot.objects.sort(function(t,e){return t._trace.index-e._trace.index})},k.updateFx=function(t){\\\"lasso\\\"===t||\\\"select\\\"===t?(this.pickCanvas.style[\\\"pointer-events\\\"]=\\\"none\\\",this.mouseContainer.style[\\\"pointer-events\\\"]=\\\"none\\\"):(this.pickCanvas.style[\\\"pointer-events\\\"]=\\\"auto\\\",this.mouseContainer.style[\\\"pointer-events\\\"]=\\\"auto\\\"),this.mouseContainer.style.cursor=\\\"pan\\\"===t?\\\"move\\\":\\\"zoom\\\"===t?\\\"crosshair\\\":null},k.emitPointAction=function(t,e){for(var r,n=t.trace.uid,i=t.pointIndex,a=0;a<this.fullData.length;a++)this.fullData[a].uid===n&&(r=this.fullData[a]);var o={x:t.traceCoord[0],y:t.traceCoord[1],curveNumber:r.index,pointNumber:i,data:r._input,fullData:this.fullData,xaxis:this.xaxis,yaxis:this.yaxis};s.appendArrayPointValue(o,r,i),this.graphDiv.emit(e,{points:[o]})},k.draw=function(){if(!this.stopped){requestAnimationFrame(this.redraw);var t=this.glplot,e=this.camera,r=e.mouseListener,n=1===this.lastButtonState&&0===r.buttons,i=this.fullLayout;this.lastButtonState=r.buttons,this.cameraChanged();var a,o=r.x*t.pixelRatio,l=this.canvas.height-t.pixelRatio*r.y;if(e.boxEnabled&&\\\"zoom\\\"===i.dragmode){this.selectBox.enabled=!0;for(var c=this.selectBox.selectBox=[Math.min(e.boxStart[0],e.boxEnd[0]),Math.min(e.boxStart[1],e.boxEnd[1]),Math.max(e.boxStart[0],e.boxEnd[0]),Math.max(e.boxStart[1],e.boxEnd[1])],u=0;u<2;u++)e.boxStart[u]===e.boxEnd[u]&&(c[u]=t.dataBox[u],c[u+2]=t.dataBox[u+2]);t.setDirty()}else if(!e.panning&&this.isMouseOver){this.selectBox.enabled=!1;var f=i._size,h=this.xaxis.domain,p=this.yaxis.domain,d=(a=t.pick(o/t.pixelRatio+f.l+h[0]*f.w,l/t.pixelRatio-(f.t+(1-p[1])*f.h)))&&a.object._trace.handlePick(a);if(d&&n&&this.emitPointAction(d,\\\"plotly_click\\\"),a&&\\\"skip\\\"!==a.object._trace.hoverinfo&&i.hovermode&&d&&(!this.lastPickResult||this.lastPickResult.traceUid!==d.trace.uid||this.lastPickResult.dataCoord[0]!==d.dataCoord[0]||this.lastPickResult.dataCoord[1]!==d.dataCoord[1])){var g=d;this.lastPickResult={traceUid:d.trace?d.trace.uid:null,dataCoord:d.dataCoord.slice()},this.spikes.update({center:a.dataCoord}),g.screenCoord=[((t.viewBox[2]-t.viewBox[0])*(a.dataCoord[0]-t.dataBox[0])/(t.dataBox[2]-t.dataBox[0])+t.viewBox[0])/t.pixelRatio,(this.canvas.height-(t.viewBox[3]-t.viewBox[1])*(a.dataCoord[1]-t.dataBox[1])/(t.dataBox[3]-t.dataBox[1])-t.viewBox[1])/t.pixelRatio],this.emitPointAction(d,\\\"plotly_hover\\\");var v=this.fullData[g.trace.index]||{},m=g.pointIndex,y=s.castHoverinfo(v,i,m);if(y&&\\\"all\\\"!==y){var x=y.split(\\\"+\\\");-1===x.indexOf(\\\"x\\\")&&(g.traceCoord[0]=void 0),-1===x.indexOf(\\\"y\\\")&&(g.traceCoord[1]=void 0),-1===x.indexOf(\\\"z\\\")&&(g.traceCoord[2]=void 0),-1===x.indexOf(\\\"text\\\")&&(g.textLabel=void 0),-1===x.indexOf(\\\"name\\\")&&(g.name=void 0)}s.loneHover({x:g.screenCoord[0],y:g.screenCoord[1],xLabel:this.hoverFormatter(\\\"xaxis\\\",g.traceCoord[0]),yLabel:this.hoverFormatter(\\\"yaxis\\\",g.traceCoord[1]),zLabel:g.traceCoord[2],text:g.textLabel,name:g.name,color:s.castHoverOption(v,m,\\\"bgcolor\\\")||g.color,borderColor:s.castHoverOption(v,m,\\\"bordercolor\\\"),fontFamily:s.castHoverOption(v,m,\\\"font.family\\\"),fontSize:s.castHoverOption(v,m,\\\"font.size\\\"),fontColor:s.castHoverOption(v,m,\\\"font.color\\\")},{container:this.svgContainer,gd:this.graphDiv})}}a||this.unhover(),t.draw()}},k.unhover=function(){this.lastPickResult&&(this.spikes.update({}),this.lastPickResult=null,this.graphDiv.emit(\\\"plotly_unhover\\\"),s.loneUnhover(this.svgContainer))},k.hoverFormatter=function(t,e){if(void 0!==e){var r=this[t];return o.tickText(r,r.c2l(e),\\\"hover\\\").text}}},{\\\"../../components/fx\\\":612,\\\"../../lib/html2unicode\\\":694,\\\"../../lib/show_no_webgl_msg\\\":717,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"../cartesian/autorange\\\":743,\\\"../cartesian/constants\\\":750,\\\"../cartesian/constraints\\\":752,\\\"./camera\\\":782,\\\"./convert\\\":783,\\\"gl-plot2d\\\":275,\\\"gl-select-box\\\":286,\\\"gl-spikes2d\\\":295,\\\"webgl-context\\\":533}],786:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){t=t||document.body,e=e||{};var r=[.01,1/0];\\\"distanceLimits\\\"in e&&(r[0]=e.distanceLimits[0],r[1]=e.distanceLimits[1]);\\\"zoomMin\\\"in e&&(r[0]=e.zoomMin);\\\"zoomMax\\\"in e&&(r[1]=e.zoomMax);var c=i({center:e.center||[0,0,0],up:e.up||[0,1,0],eye:e.eye||[0,0,10],mode:e.mode||\\\"orbit\\\",distanceLimits:r}),u=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],f=0,h=t.clientWidth,p=t.clientHeight,d={keyBindingMode:\\\"rotate\\\",view:c,element:t,delay:e.delay||16,rotateSpeed:e.rotateSpeed||1,zoomSpeed:e.zoomSpeed||1,translateSpeed:e.translateSpeed||1,flipX:!!e.flipX,flipY:!!e.flipY,modes:c.modes,tick:function(){var e=n(),r=this.delay,i=e-2*r;c.idle(e-r),c.recalcMatrix(i),c.flush(e-(100+2*r));for(var a=!0,o=c.computedMatrix,s=0;s<16;++s)a=a&&u[s]===o[s],u[s]=o[s];var l=t.clientWidth===h&&t.clientHeight===p;return h=t.clientWidth,p=t.clientHeight,a?!l:(f=Math.exp(c.computedRadius[0]),!0)},lookAt:function(t,e,r){c.lookAt(c.lastT(),t,e,r)},rotate:function(t,e,r){c.rotate(c.lastT(),t,e,r)},pan:function(t,e,r){c.pan(c.lastT(),t,e,r)},translate:function(t,e,r){c.translate(c.lastT(),t,e,r)}};Object.defineProperties(d,{matrix:{get:function(){return c.computedMatrix},set:function(t){return c.setMatrix(c.lastT(),t),c.computedMatrix},enumerable:!0},mode:{get:function(){return c.getMode()},set:function(t){var e=c.computedUp.slice(),r=c.computedEye.slice(),i=c.computedCenter.slice();if(c.setMode(t),\\\"turntable\\\"===t){var a=n();c._active.lookAt(a,r,i,e),c._active.lookAt(a+500,r,i,[0,0,1]),c._active.flush(a)}return c.getMode()},enumerable:!0},center:{get:function(){return c.computedCenter},set:function(t){return c.lookAt(c.lastT(),null,t),c.computedCenter},enumerable:!0},eye:{get:function(){return c.computedEye},set:function(t){return c.lookAt(c.lastT(),t),c.computedEye},enumerable:!0},up:{get:function(){return c.computedUp},set:function(t){return c.lookAt(c.lastT(),null,null,t),c.computedUp},enumerable:!0},distance:{get:function(){return f},set:function(t){return c.setDistance(c.lastT(),t),t},enumerable:!0},distanceLimits:{get:function(){return c.getDistanceLimits(r)},set:function(t){return c.setDistanceLimits(t),t},enumerable:!0}}),t.addEventListener(\\\"contextmenu\\\",function(t){return t.preventDefault(),!1});var g=0,v=0,m={shift:!1,control:!1,alt:!1,meta:!1};function y(e,r,i,a){var o=d.keyBindingMode;if(!1!==o){var s=\\\"rotate\\\"===o,l=\\\"pan\\\"===o,u=\\\"zoom\\\"===o,h=!!a.control,p=!!a.alt,y=!!a.shift,x=!!(1&e),b=!!(2&e),_=!!(4&e),w=1/t.clientHeight,k=w*(r-g),M=w*(i-v),A=d.flipX?1:-1,T=d.flipY?1:-1,S=n(),E=Math.PI*d.rotateSpeed;if((s&&x&&!h&&!p&&!y||x&&!h&&!p&&y)&&c.rotate(S,A*E*k,-T*E*M,0),(l&&x&&!h&&!p&&!y||b||x&&h&&!p&&!y)&&c.pan(S,-d.translateSpeed*k*f,d.translateSpeed*M*f,0),u&&x&&!h&&!p&&!y||_||x&&!h&&p&&!y){var C=-d.zoomSpeed*M/window.innerHeight*(S-c.lastT())*100;c.pan(S,0,0,f*(Math.exp(C)-1))}return g=r,v=i,m=a,!0}}return d.mouseListener=a(t,y),t.addEventListener(\\\"touchstart\\\",function(e){var r=s(e.changedTouches[0],t);y(0,r[0],r[1],m),y(1,r[0],r[1],m),e.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\\\"touchmove\\\",function(e){var r=s(e.changedTouches[0],t);y(1,r[0],r[1],m),e.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\\\"touchend\\\",function(t){y(0,g,v,m),t.preventDefault()},!!l&&{passive:!1}),d.wheelListener=o(t,function(t,e){if(!1!==d.keyBindingMode){var r=d.flipX?1:-1,i=d.flipY?1:-1,a=n();if(Math.abs(t)>Math.abs(e))c.rotate(a,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else{var o=-d.zoomSpeed*i*e/window.innerHeight*(a-c.lastT())/20;c.pan(a,0,0,f*(Math.exp(o)-1))}}},!0),d};var n=t(\\\"right-now\\\"),i=t(\\\"3d-view\\\"),a=t(\\\"mouse-change\\\"),o=t(\\\"mouse-wheel\\\"),s=t(\\\"mouse-event-offset\\\"),l=t(\\\"has-passive-events\\\")},{\\\"3d-view\\\":45,\\\"has-passive-events\\\":394,\\\"mouse-change\\\":418,\\\"mouse-event-offset\\\":419,\\\"mouse-wheel\\\":421,\\\"right-now\\\":480}],787:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plot_api/edit_types\\\").overrideAll,i=t(\\\"../../components/fx/layout_attributes\\\"),a=t(\\\"./scene\\\"),o=t(\\\"../get_data\\\").getSubplotData,s=t(\\\"../../lib\\\"),l=t(\\\"../../constants/xmlns_namespaces\\\");r.name=\\\"gl3d\\\",r.attr=\\\"scene\\\",r.idRoot=\\\"scene\\\",r.idRegex=r.attrRegex=s.counterRegex(\\\"scene\\\"),r.attributes=t(\\\"./layout/attributes\\\"),r.layoutAttributes=t(\\\"./layout/layout_attributes\\\"),r.baseLayoutAttrOverrides=n({hoverlabel:i.hoverlabel},\\\"plot\\\",\\\"nested\\\"),r.supplyLayoutDefaults=t(\\\"./layout/defaults\\\"),r.plot=function(t){for(var e=t._fullLayout,r=t._fullData,n=e._subplots.gl3d,i=0;i<n.length;i++){var l=n[i],c=o(r,\\\"gl3d\\\",l),u=e[l],f=u._scene;f||(f=new a({id:l,graphDiv:t,container:t.querySelector(\\\".gl-container\\\"),staticPlot:t._context.staticPlot,plotGlPixelRatio:t._context.plotGlPixelRatio},e),u._scene=f),f.cameraInitial||(f.cameraInitial=s.extendDeep({},u.camera)),f.plot(c,e,t.layout)}},r.clean=function(t,e,r,n){for(var i=n._subplots.gl3d||[],a=0;a<i.length;a++){var o=i[a];!e[o]&&n[o]._scene&&(n[o]._scene.destroy(),n._infolayer&&n._infolayer.selectAll(\\\".annotation-\\\"+o).remove())}},r.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=e._size,i=0;i<r.length;i++){var a=e[r[i]],o=a.domain,s=a._scene,c=s.toImage(\\\"png\\\");e._glimages.append(\\\"svg:image\\\").attr({xmlns:l.svg,\\\"xlink:href\\\":c,x:n.l+n.w*o.x[0],y:n.t+n.h*(1-o.y[1]),width:n.w*(o.x[1]-o.x[0]),height:n.h*(o.y[1]-o.y[0]),preserveAspectRatio:\\\"none\\\"}),s.destroy()}},r.cleanId=function(t){if(t.match(/^scene[0-9]*$/)){var e=t.substr(5);return\\\"1\\\"===e&&(e=\\\"\\\"),\\\"scene\\\"+e}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=0;n<r.length;n++){e[r[n]]._scene.updateFx(e.dragmode,e.hovermode)}}},{\\\"../../components/fx/layout_attributes\\\":613,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../plot_api/edit_types\\\":727,\\\"../get_data\\\":781,\\\"./layout/attributes\\\":788,\\\"./layout/defaults\\\":792,\\\"./layout/layout_attributes\\\":793,\\\"./scene\\\":797}],788:[function(t,e,r){\\\"use strict\\\";e.exports={scene:{valType:\\\"subplotid\\\",dflt:\\\"scene\\\",editType:\\\"calc+clearAxisTypes\\\"}}},{}],789:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../components/color\\\"),i=t(\\\"../../cartesian/layout_attributes\\\"),a=t(\\\"../../../lib/extend\\\").extendFlat,o=t(\\\"../../../plot_api/edit_types\\\").overrideAll;e.exports=o({visible:i.visible,showspikes:{valType:\\\"boolean\\\",dflt:!0},spikesides:{valType:\\\"boolean\\\",dflt:!0},spikethickness:{valType:\\\"number\\\",min:0,dflt:2},spikecolor:{valType:\\\"color\\\",dflt:n.defaultLine},showbackground:{valType:\\\"boolean\\\",dflt:!1},backgroundcolor:{valType:\\\"color\\\",dflt:\\\"rgba(204, 204, 204, 0.5)\\\"},showaxeslabels:{valType:\\\"boolean\\\",dflt:!0},color:i.color,categoryorder:i.categoryorder,categoryarray:i.categoryarray,title:i.title,titlefont:i.titlefont,type:i.type,autorange:i.autorange,rangemode:i.rangemode,range:i.range,tickmode:i.tickmode,nticks:i.nticks,tick0:i.tick0,dtick:i.dtick,tickvals:i.tickvals,ticktext:i.ticktext,ticks:i.ticks,mirror:i.mirror,ticklen:i.ticklen,tickwidth:i.tickwidth,tickcolor:i.tickcolor,showticklabels:i.showticklabels,tickfont:i.tickfont,tickangle:i.tickangle,tickprefix:i.tickprefix,showtickprefix:i.showtickprefix,ticksuffix:i.ticksuffix,showticksuffix:i.showticksuffix,showexponent:i.showexponent,exponentformat:i.exponentformat,separatethousands:i.separatethousands,tickformat:i.tickformat,tickformatstops:i.tickformatstops,hoverformat:i.hoverformat,showline:i.showline,linecolor:i.linecolor,linewidth:i.linewidth,showgrid:i.showgrid,gridcolor:a({},i.gridcolor,{dflt:\\\"rgb(204, 204, 204)\\\"}),gridwidth:i.gridwidth,zeroline:i.zeroline,zerolinecolor:i.zerolinecolor,zerolinewidth:i.zerolinewidth},\\\"plot\\\",\\\"from-root\\\")},{\\\"../../../components/color\\\":570,\\\"../../../lib/extend\\\":685,\\\"../../../plot_api/edit_types\\\":727,\\\"../../cartesian/layout_attributes\\\":757}],790:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"tinycolor2\\\").mix,i=t(\\\"../../../lib\\\"),a=t(\\\"../../../plot_api/plot_template\\\"),o=t(\\\"./axis_attributes\\\"),s=t(\\\"../../cartesian/type_defaults\\\"),l=t(\\\"../../cartesian/axis_defaults\\\"),c=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"];e.exports=function(t,e,r){var u,f;function h(t,e){return i.coerce(u,f,o,t,e)}for(var p=0;p<c.length;p++){var d=c[p];u=t[d]||{},(f=a.newContainer(e,d))._id=d[0]+r.scene,f._name=d,s(u,f,h,r),l(u,f,h,{font:r.font,letter:d[0],data:r.data,showGrid:!0,bgColor:r.bgColor,calendar:r.calendar},r.fullLayout),h(\\\"gridcolor\\\",n(f.color,r.bgColor,13600/187).toRgbString()),h(\\\"title\\\",d[0]),f.setScale=i.noop,h(\\\"showspikes\\\")&&(h(\\\"spikesides\\\"),h(\\\"spikethickness\\\"),h(\\\"spikecolor\\\",f.color)),h(\\\"showaxeslabels\\\"),h(\\\"showbackground\\\")&&h(\\\"backgroundcolor\\\")}}},{\\\"../../../lib\\\":696,\\\"../../../plot_api/plot_template\\\":734,\\\"../../cartesian/axis_defaults\\\":746,\\\"../../cartesian/type_defaults\\\":768,\\\"./axis_attributes\\\":789,tinycolor2:514}],791:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../lib/html2unicode\\\"),i=t(\\\"../../../lib/str2rgbarray\\\"),a=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"];function o(){this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.tickEnable=[!0,!0,!0],this.tickFont=[\\\"sans-serif\\\",\\\"sans-serif\\\",\\\"sans-serif\\\"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[18,18,18],this.labels=[\\\"x\\\",\\\"y\\\",\\\"z\\\"],this.labelEnable=[!0,!0,!0],this.labelFont=[\\\"Open Sans\\\",\\\"Open Sans\\\",\\\"Open Sans\\\"],this.labelSize=[20,20,20],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[30,30,30],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=[10,10,10],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=[!0,!0,!0],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._defaultTickPad=this.tickPad.slice(),this._defaultLabelPad=this.labelPad.slice(),this._defaultLineTickLength=this.lineTickLength.slice()}o.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[a[e]];r.visible?(this.labels[e]=n(r.title),\\\"titlefont\\\"in r&&(r.titlefont.color&&(this.labelColor[e]=i(r.titlefont.color)),r.titlefont.family&&(this.labelFont[e]=r.titlefont.family),r.titlefont.size&&(this.labelSize[e]=r.titlefont.size)),\\\"showline\\\"in r&&(this.lineEnable[e]=r.showline),\\\"linecolor\\\"in r&&(this.lineColor[e]=i(r.linecolor)),\\\"linewidth\\\"in r&&(this.lineWidth[e]=r.linewidth),\\\"showgrid\\\"in r&&(this.gridEnable[e]=r.showgrid),\\\"gridcolor\\\"in r&&(this.gridColor[e]=i(r.gridcolor)),\\\"gridwidth\\\"in r&&(this.gridWidth[e]=r.gridwidth),\\\"log\\\"===r.type?this.zeroEnable[e]=!1:\\\"zeroline\\\"in r&&(this.zeroEnable[e]=r.zeroline),\\\"zerolinecolor\\\"in r&&(this.zeroLineColor[e]=i(r.zerolinecolor)),\\\"zerolinewidth\\\"in r&&(this.zeroLineWidth[e]=r.zerolinewidth),\\\"ticks\\\"in r&&r.ticks?this.lineTickEnable[e]=!0:this.lineTickEnable[e]=!1,\\\"ticklen\\\"in r&&(this.lineTickLength[e]=this._defaultLineTickLength[e]=r.ticklen),\\\"tickcolor\\\"in r&&(this.lineTickColor[e]=i(r.tickcolor)),\\\"tickwidth\\\"in r&&(this.lineTickWidth[e]=r.tickwidth),\\\"tickangle\\\"in r&&(this.tickAngle[e]=\\\"auto\\\"===r.tickangle?-3600:Math.PI*-r.tickangle/180),\\\"showticklabels\\\"in r&&(this.tickEnable[e]=r.showticklabels),\\\"tickfont\\\"in r&&(r.tickfont.color&&(this.tickColor[e]=i(r.tickfont.color)),r.tickfont.family&&(this.tickFont[e]=r.tickfont.family),r.tickfont.size&&(this.tickSize[e]=r.tickfont.size)),\\\"mirror\\\"in r?-1!==[\\\"ticks\\\",\\\"all\\\",\\\"allticks\\\"].indexOf(r.mirror)?(this.lineTickMirror[e]=!0,this.lineMirror[e]=!0):!0===r.mirror?(this.lineTickMirror[e]=!1,this.lineMirror[e]=!0):(this.lineTickMirror[e]=!1,this.lineMirror[e]=!1):this.lineMirror[e]=!1,\\\"showbackground\\\"in r&&!1!==r.showbackground?(this.backgroundEnable[e]=!0,this.backgroundColor[e]=i(r.backgroundcolor)):this.backgroundEnable[e]=!1):(this.tickEnable[e]=!1,this.labelEnable[e]=!1,this.lineEnable[e]=!1,this.lineTickEnable[e]=!1,this.gridEnable[e]=!1,this.zeroEnable[e]=!1,this.backgroundEnable[e]=!1)}},e.exports=function(t){var e=new o;return e.merge(t),e}},{\\\"../../../lib/html2unicode\\\":694,\\\"../../../lib/str2rgbarray\\\":719}],792:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../lib\\\"),i=t(\\\"../../../components/color\\\"),a=t(\\\"../../../registry\\\"),o=t(\\\"../../subplot_defaults\\\"),s=t(\\\"./axis_defaults\\\"),l=t(\\\"./layout_attributes\\\");function c(t,e,r,n){for(var o=r(\\\"bgcolor\\\"),l=i.combine(o,n.paper_bgcolor),c=[\\\"up\\\",\\\"center\\\",\\\"eye\\\"],u=0;u<c.length;u++)r(\\\"camera.\\\"+c[u]+\\\".x\\\"),r(\\\"camera.\\\"+c[u]+\\\".y\\\"),r(\\\"camera.\\\"+c[u]+\\\".z\\\");var f=!!r(\\\"aspectratio.x\\\")&&!!r(\\\"aspectratio.y\\\")&&!!r(\\\"aspectratio.z\\\"),h=r(\\\"aspectmode\\\",f?\\\"manual\\\":\\\"auto\\\");f||(t.aspectratio=e.aspectratio={x:1,y:1,z:1},\\\"manual\\\"===h&&(e.aspectmode=\\\"auto\\\"),t.aspectmode=e.aspectmode),s(t,e,{font:n.font,scene:n.id,data:n.fullData,bgColor:l,calendar:n.calendar,fullLayout:n.fullLayout}),a.getComponentMethod(\\\"annotations3d\\\",\\\"handleDefaults\\\")(t,e,n),r(\\\"dragmode\\\",n.getDfltFromLayout(\\\"dragmode\\\")),r(\\\"hovermode\\\",n.getDfltFromLayout(\\\"hovermode\\\"))}e.exports=function(t,e,r){var i=e._basePlotModules.length>1;o(t,e,r,{type:\\\"gl3d\\\",attributes:l,handleDefaults:c,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!i)return n.validate(t[e],l[e])?t[e]:void 0},paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})}},{\\\"../../../components/color\\\":570,\\\"../../../lib\\\":696,\\\"../../../registry\\\":827,\\\"../../subplot_defaults\\\":822,\\\"./axis_defaults\\\":790,\\\"./layout_attributes\\\":793}],793:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./axis_attributes\\\"),i=t(\\\"../../domain\\\").attributes,a=t(\\\"../../../lib/extend\\\").extendFlat,o=t(\\\"../../../lib\\\").counterRegex;function s(t,e,r){return{x:{valType:\\\"number\\\",dflt:t,editType:\\\"camera\\\"},y:{valType:\\\"number\\\",dflt:e,editType:\\\"camera\\\"},z:{valType:\\\"number\\\",dflt:r,editType:\\\"camera\\\"},editType:\\\"camera\\\"}}e.exports={_arrayAttrRegexps:[o(\\\"scene\\\",\\\".annotations\\\",!0)],bgcolor:{valType:\\\"color\\\",dflt:\\\"rgba(0,0,0,0)\\\",editType:\\\"plot\\\"},camera:{up:a(s(0,0,1),{}),center:a(s(0,0,0),{}),eye:a(s(1.25,1.25,1.25),{}),editType:\\\"camera\\\"},domain:i({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:n,yaxis:n,zaxis:n,dragmode:{valType:\\\"enumerated\\\",values:[\\\"orbit\\\",\\\"turntable\\\",\\\"zoom\\\",\\\"pan\\\",!1],dflt:\\\"turntable\\\",editType:\\\"plot\\\"},hovermode:{valType:\\\"enumerated\\\",values:[\\\"closest\\\",!1],dflt:\\\"closest\\\",editType:\\\"modebar\\\"},editType:\\\"plot\\\",_deprecated:{cameraposition:{valType:\\\"info_array\\\",editType:\\\"camera\\\"}}}},{\\\"../../../lib\\\":696,\\\"../../../lib/extend\\\":685,\\\"../../domain\\\":770,\\\"./axis_attributes\\\":789}],794:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../lib/str2rgbarray\\\"),i=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"];function a(){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]}a.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[i[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=n(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}},e.exports=function(t){var e=new a;return e.merge(t),e}},{\\\"../../../lib/str2rgbarray\\\":719}],795:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,l=t.fullSceneLayout,c=[[],[],[]],u=0;u<3;++u){var f=l[o[u]];if(f._length=(r[u].hi-r[u].lo)*r[u].pixelsPerDataUnit/t.dataScale[u],Math.abs(f._length)===1/0)c[u]=[];else{f._input_range=f.range.slice(),f.range[0]=r[u].lo/t.dataScale[u],f.range[1]=r[u].hi/t.dataScale[u],f._m=1/(t.dataScale[u]*r[u].pixelsPerDataUnit),f.range[0]===f.range[1]&&(f.range[0]-=1,f.range[1]+=1);var h=f.tickmode;if(\\\"auto\\\"===f.tickmode){f.tickmode=\\\"linear\\\";var p=f.nticks||i.constrain(f._length/40,4,9);n.autoTicks(f,Math.abs(f.range[1]-f.range[0])/p)}for(var d=n.calcTicks(f),g=0;g<d.length;++g)d[g].x=d[g].x*t.dataScale[u],d[g].text=a(d[g].text);c[u]=d,f.tickmode=h}}e.ticks=c;for(var u=0;u<3;++u){s[u]=.5*(t.glplot.bounds[0][u]+t.glplot.bounds[1][u]);for(var g=0;g<2;++g)e.bounds[g][u]=t.glplot.bounds[g][u]}t.contourLevels=function(t){for(var e=new Array(3),r=0;r<3;++r){for(var n=t[r],i=new Array(n.length),a=0;a<n.length;++a)i[a]=n[a].x;e[r]=i}return e}(c)};var n=t(\\\"../../cartesian/axes\\\"),i=t(\\\"../../../lib\\\"),a=t(\\\"../../../lib/html2unicode\\\"),o=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"],s=[0,0,0]},{\\\"../../../lib\\\":696,\\\"../../../lib/html2unicode\\\":694,\\\"../../cartesian/axes\\\":744}],796:[function(t,e,r){\\\"use strict\\\";function n(t,e){var r,n,i=[0,0,0,0];for(r=0;r<4;++r)for(n=0;n<4;++n)i[n]+=t[4*r+n]*e[r];return i}e.exports=function(t,e){return n(t.projection,n(t.view,n(t.model,[e[0],e[1],e[2],1])))}},{}],797:[function(t,e,r){\\\"use strict\\\";var n,i,a=t(\\\"gl-plot3d\\\"),o=t(\\\"webgl-context\\\"),s=t(\\\"has-passive-events\\\"),l=t(\\\"../../registry\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../plots/cartesian/axes\\\"),f=t(\\\"../../components/fx\\\"),h=t(\\\"../../lib/str2rgbarray\\\"),p=t(\\\"../../lib/show_no_webgl_msg\\\"),d=t(\\\"./camera\\\"),g=t(\\\"./project\\\"),v=t(\\\"./layout/convert\\\"),m=t(\\\"./layout/spikes\\\"),y=t(\\\"./layout/tick_marks\\\");function x(t,e,r,l){var c=t.graphDiv,h={canvas:r,gl:l,container:t.container,axes:t.axesOptions,spikes:t.spikeOptions,pickRadius:10,snapToData:!0,autoScale:!0,autoBounds:!1};if(t.staticMode){if(!(i||(n=document.createElement(\\\"canvas\\\"),i=o({canvas:n,preserveDrawingBuffer:!0,premultipliedAlpha:!0,antialias:!0}))))throw new Error(\\\"error creating static canvas/context for image server\\\");h.pixelRatio=t.pixelRatio,h.gl=i,h.canvas=n}try{t.glplot=a(h)}catch(e){return p(t)}var v=function(t){if(!1!==t.fullSceneLayout.dragmode){var e={};e[t.id+\\\".camera\\\"]=M(t.camera),t.saveCamera(c.layout),t.graphDiv.emit(\\\"plotly_relayout\\\",e)}};if(t.glplot.canvas.addEventListener(\\\"mouseup\\\",v.bind(null,t)),t.glplot.canvas.addEventListener(\\\"wheel\\\",v.bind(null,t),!!s&&{passive:!1}),t.staticMode||t.glplot.canvas.addEventListener(\\\"webglcontextlost\\\",function(e){c&&c.emit&&c.emit(\\\"plotly_webglcontextlost\\\",{event:e,layer:t.id})},!1),!t.camera){var m=t.fullSceneLayout.camera;t.camera=d(t.container,{center:[m.center.x,m.center.y,m.center.z],eye:[m.eye.x,m.eye.y,m.eye.z],up:[m.up.x,m.up.y,m.up.z],zoomMin:.1,zoomMax:100,mode:\\\"orbit\\\"})}return t.glplot.camera=t.camera,t.glplot.oncontextloss=function(){t.recoverContext()},t.glplot.onrender=function(t){var e,r=t.svgContainer,n=t.container.getBoundingClientRect(),i=n.width,a=n.height;r.setAttributeNS(null,\\\"viewBox\\\",\\\"0 0 \\\"+i+\\\" \\\"+a),r.setAttributeNS(null,\\\"width\\\",i),r.setAttributeNS(null,\\\"height\\\",a),y(t),t.glplot.axes.update(t.axesOptions);for(var o,s=Object.keys(t.traces),l=null,c=t.glplot.selection,h=0;h<s.length;++h)\\\"skip\\\"!==(e=t.traces[s[h]]).data.hoverinfo&&e.handlePick(c)&&(l=e),e.setContourLevels&&e.setContourLevels();function p(e,r){var n=t.fullSceneLayout[e];return u.tickText(n,n.d2l(r),\\\"hover\\\").text}if(null!==l){var d=g(t.glplot.cameraParams,c.dataCoordinate);e=l.data;var v,m=c.index,x=f.castHoverinfo(e,t.fullLayout,m),b=x.split(\\\"+\\\"),_=\\\"all\\\"===x,w=p(\\\"xaxis\\\",c.traceCoordinate[0]),k=p(\\\"yaxis\\\",c.traceCoordinate[1]),M=p(\\\"zaxis\\\",c.traceCoordinate[2]);if(_||(-1===b.indexOf(\\\"x\\\")&&(w=void 0),-1===b.indexOf(\\\"y\\\")&&(k=void 0),-1===b.indexOf(\\\"z\\\")&&(M=void 0),-1===b.indexOf(\\\"text\\\")&&(c.textLabel=void 0),-1===b.indexOf(\\\"name\\\")&&(l.name=void 0)),\\\"cone\\\"===e.type||\\\"streamtube\\\"===e.type){var A=[];(_||-1!==b.indexOf(\\\"u\\\"))&&A.push(\\\"u: \\\"+p(\\\"xaxis\\\",c.traceCoordinate[3])),(_||-1!==b.indexOf(\\\"v\\\"))&&A.push(\\\"v: \\\"+p(\\\"yaxis\\\",c.traceCoordinate[4])),(_||-1!==b.indexOf(\\\"w\\\"))&&A.push(\\\"w: \\\"+p(\\\"zaxis\\\",c.traceCoordinate[5])),(_||-1!==b.indexOf(\\\"norm\\\"))&&A.push(\\\"norm: \\\"+c.traceCoordinate[6].toPrecision(3)),\\\"streamtube\\\"!==e.type||!_&&-1===b.indexOf(\\\"divergence\\\")||A.push(\\\"divergence: \\\"+c.traceCoordinate[7].toPrecision(3)),c.textLabel&&A.push(c.textLabel),v=A.join(\\\"<br>\\\")}else v=c.textLabel;t.fullSceneLayout.hovermode&&f.loneHover({x:(.5+.5*d[0]/d[3])*i,y:(.5-.5*d[1]/d[3])*a,xLabel:w,yLabel:k,zLabel:M,text:v,name:l.name,color:f.castHoverOption(e,m,\\\"bgcolor\\\")||l.color,borderColor:f.castHoverOption(e,m,\\\"bordercolor\\\"),fontFamily:f.castHoverOption(e,m,\\\"font.family\\\"),fontSize:f.castHoverOption(e,m,\\\"font.size\\\"),fontColor:f.castHoverOption(e,m,\\\"font.color\\\")},{container:r,gd:t.graphDiv});var T={x:c.traceCoordinate[0],y:c.traceCoordinate[1],z:c.traceCoordinate[2],data:e._input,fullData:e,curveNumber:e.index,pointNumber:m};e._module.eventData&&(T=e._module.eventData(T,c,e,{},m)),f.appendArrayPointValue(T,e,m);var S={points:[T]};c.buttons&&c.distance<5?t.graphDiv.emit(\\\"plotly_click\\\",S):t.graphDiv.emit(\\\"plotly_hover\\\",S),o=S}else f.loneUnhover(r),t.graphDiv.emit(\\\"plotly_unhover\\\",o);t.drawAnnotations(t)}.bind(null,t),t.traces={},!0}function b(t,e){var r=document.createElement(\\\"div\\\"),n=t.container;this.graphDiv=t.graphDiv;var i=document.createElementNS(\\\"http://www.w3.org/2000/svg\\\",\\\"svg\\\");i.style.position=\\\"absolute\\\",i.style.top=i.style.left=\\\"0px\\\",i.style.width=i.style.height=\\\"100%\\\",i.style[\\\"z-index\\\"]=20,i.style[\\\"pointer-events\\\"]=\\\"none\\\",r.appendChild(i),this.svgContainer=i,r.id=t.id,r.style.position=\\\"absolute\\\",r.style.top=r.style.left=\\\"0px\\\",r.style.width=r.style.height=\\\"100%\\\",n.appendChild(r),this.fullLayout=e,this.id=t.id||\\\"scene\\\",this.fullSceneLayout=e[this.id],this.plotArgs=[[],{},{}],this.axesOptions=v(e[this.id]),this.spikeOptions=m(e[this.id]),this.container=r,this.staticMode=!!t.staticPlot,this.pixelRatio=t.plotGlPixelRatio||2,this.dataScale=[1,1,1],this.contourLevels=[[],[],[]],this.convertAnnotations=l.getComponentMethod(\\\"annotations3d\\\",\\\"convert\\\"),this.drawAnnotations=l.getComponentMethod(\\\"annotations3d\\\",\\\"draw\\\"),x(this)}var _=b.prototype;_.recoverContext=function(){var t=this,e=this.glplot.gl,r=this.glplot.canvas;this.glplot.dispose(),requestAnimationFrame(function n(){e.isContextLost()?requestAnimationFrame(n):x(t,t.fullLayout,r,e)?t.plot.apply(t,t.plotArgs):c.error(\\\"Catastrophic and unrecoverable WebGL error. Context lost.\\\")})};var w=[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"];function k(t,e,r){for(var n=t.fullSceneLayout,i=0;i<3;i++){var a=w[i],o=a.charAt(0),s=n[a],l=e[o],u=e[o+\\\"calendar\\\"],f=e[\\\"_\\\"+o+\\\"length\\\"];if(c.isArrayOrTypedArray(l))for(var h,p=0;p<(f||l.length);p++)if(c.isArrayOrTypedArray(l[p]))for(var d=0;d<l[p].length;++d)h=s.d2l(l[p][d],0,u),!isNaN(h)&&isFinite(h)&&(r[0][i]=Math.min(r[0][i],h),r[1][i]=Math.max(r[1][i],h));else h=s.d2l(l[p],0,u),!isNaN(h)&&isFinite(h)&&(r[0][i]=Math.min(r[0][i],h),r[1][i]=Math.max(r[1][i],h));else r[0][i]=Math.min(r[0][i],0),r[1][i]=Math.max(r[1][i],f-1)}}function M(t){return{up:{x:t.up[0],y:t.up[1],z:t.up[2]},center:{x:t.center[0],y:t.center[1],z:t.center[2]},eye:{x:t.eye[0],y:t.eye[1],z:t.eye[2]}}}_.plot=function(t,e,r){if(this.plotArgs=[t,e,r],!this.glplot.contextLost){var n,i,a,o,s,l,c=e[this.id],u=r[this.id];c.bgcolor?this.glplot.clearColor=h(c.bgcolor):this.glplot.clearColor=[0,0,0,0],this.glplot.snapToData=!0,this.fullLayout=e,this.fullSceneLayout=c,this.glplotLayout=c,this.axesOptions.merge(c),this.spikeOptions.merge(c),this.setCamera(c.camera),this.updateFx(c.dragmode,c.hovermode),this.glplot.update({}),this.setConvert(s),t?Array.isArray(t)||(t=[t]):t=[];var f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(a=0;a<t.length;++a)!0===(n=t[a]).visible&&k(this,n,f);var p=[1,1,1];for(o=0;o<3;++o)f[1][o]===f[0][o]?p[o]=1:p[o]=1/(f[1][o]-f[0][o]);for(this.dataScale=p,this.convertAnnotations(this),a=0;a<t.length;++a)!0===(n=t[a]).visible&&((i=this.traces[n.uid])?i.data.type===n.type?i.update(n):(i.dispose(),i=n._module.plot(this,n),this.traces[n.uid]=i):(i=n._module.plot(this,n),this.traces[n.uid]=i),i.name=n.name);var d=Object.keys(this.traces);t:for(a=0;a<d.length;++a){for(o=0;o<t.length;++o)if(t[o].uid===d[a]&&!0===t[o].visible)continue t;(i=this.traces[d[a]]).dispose(),delete this.traces[d[a]]}this.glplot.objects.sort(function(t,e){return t._trace.data.index-e._trace.data.index});var g=[[0,0,0],[0,0,0]],v=[],m={};for(a=0;a<3;++a){if((l=(s=c[w[a]]).type)in m?(m[l].acc*=p[a],m[l].count+=1):m[l]={acc:p[a],count:1},s.autorange){g[0][a]=1/0,g[1][a]=-1/0;var y=this.glplot.objects,x=this.fullSceneLayout.annotations||[],b=s._name.charAt(0);for(o=0;o<y.length;o++){var _=y[o],M=_.bounds,A=_._trace.data._pad||0;\\\"ErrorBars\\\"===_.constructor.name&&s._lowerLogErrorBound?g[0][a]=Math.min(g[0][a],s._lowerLogErrorBound):g[0][a]=Math.min(g[0][a],M[0][a]/p[a]-A),g[1][a]=Math.max(g[1][a],M[1][a]/p[a]+A)}for(o=0;o<x.length;o++){var T=x[o];if(T.visible){var S=s.r2l(T[b]);g[0][a]=Math.min(g[0][a],S),g[1][a]=Math.max(g[1][a],S)}}if(\\\"rangemode\\\"in s&&\\\"tozero\\\"===s.rangemode&&(g[0][a]=Math.min(g[0][a],0),g[1][a]=Math.max(g[1][a],0)),g[0][a]>g[1][a])g[0][a]=-1,g[1][a]=1;else{var E=g[1][a]-g[0][a];g[0][a]-=E/32,g[1][a]+=E/32}if(\\\"reversed\\\"===s.autorange){var C=g[0][a];g[0][a]=g[1][a],g[1][a]=C}}else{var L=s.range;g[0][a]=s.r2l(L[0]),g[1][a]=s.r2l(L[1])}g[0][a]===g[1][a]&&(g[0][a]-=1,g[1][a]+=1),v[a]=g[1][a]-g[0][a],this.glplot.bounds[0][a]=g[0][a]*p[a],this.glplot.bounds[1][a]=g[1][a]*p[a]}var z=[1,1,1];for(a=0;a<3;++a){var O=m[l=(s=c[w[a]]).type];z[a]=Math.pow(O.acc,1/O.count)/p[a]}var I;if(\\\"auto\\\"===c.aspectmode)I=Math.max.apply(null,z)/Math.min.apply(null,z)<=4?z:[1,1,1];else if(\\\"cube\\\"===c.aspectmode)I=[1,1,1];else if(\\\"data\\\"===c.aspectmode)I=z;else{if(\\\"manual\\\"!==c.aspectmode)throw new Error(\\\"scene.js aspectRatio was not one of the enumerated types\\\");var P=c.aspectratio;I=[P.x,P.y,P.z]}c.aspectratio.x=u.aspectratio.x=I[0],c.aspectratio.y=u.aspectratio.y=I[1],c.aspectratio.z=u.aspectratio.z=I[2],this.glplot.aspect=I;var D=c.domain||null,R=e._size||null;if(D&&R){var B=this.container.style;B.position=\\\"absolute\\\",B.left=R.l+D.x[0]*R.w+\\\"px\\\",B.top=R.t+(1-D.y[1])*R.h+\\\"px\\\",B.width=R.w*(D.x[1]-D.x[0])+\\\"px\\\",B.height=R.h*(D.y[1]-D.y[0])+\\\"px\\\"}this.glplot.redraw()}},_.destroy=function(){this.glplot&&(this.camera.mouseListener.enabled=!1,this.container.removeEventListener(\\\"wheel\\\",this.camera.wheelListener),this.camera=this.glplot.camera=null,this.glplot.dispose(),this.container.parentNode.removeChild(this.container),this.glplot=null)},_.getCamera=function(){return this.glplot.camera.view.recalcMatrix(this.camera.view.lastT()),M(this.glplot.camera)},_.setCamera=function(t){var e;this.glplot.camera.lookAt.apply(this,[[(e=t).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]])},_.saveCamera=function(t){var e=this.getCamera(),r=c.nestedProperty(t,this.id+\\\".camera\\\"),n=r.get(),i=!1;function a(t,e,r,n){var i=[\\\"up\\\",\\\"center\\\",\\\"eye\\\"],a=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}if(void 0===n)i=!0;else for(var o=0;o<3;o++)for(var s=0;s<3;s++)if(!a(e,n,o,s)){i=!0;break}return i&&r.set(e),i},_.updateFx=function(t,e){var r=this.camera;r&&(\\\"orbit\\\"===t?(r.mode=\\\"orbit\\\",r.keyBindingMode=\\\"rotate\\\"):\\\"turntable\\\"===t?(r.up=[0,0,1],r.mode=\\\"turntable\\\",r.keyBindingMode=\\\"rotate\\\"):r.keyBindingMode=t),this.fullSceneLayout.hovermode=e},_.toImage=function(t){t||(t=\\\"png\\\"),this.staticMode&&this.container.appendChild(n),this.glplot.redraw();var e=this.glplot.gl,r=e.drawingBufferWidth,i=e.drawingBufferHeight;e.bindFramebuffer(e.FRAMEBUFFER,null);var a=new Uint8Array(r*i*4);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a);for(var o=0,s=i-1;o<s;++o,--s)for(var l=0;l<r;++l)for(var c=0;c<4;++c){var u=a[4*(r*o+l)+c];a[4*(r*o+l)+c]=a[4*(r*s+l)+c],a[4*(r*s+l)+c]=u}var f=document.createElement(\\\"canvas\\\");f.width=r,f.height=i;var h,p=f.getContext(\\\"2d\\\"),d=p.createImageData(r,i);switch(d.data.set(a),p.putImageData(d,0,0),t){case\\\"jpeg\\\":h=f.toDataURL(\\\"image/jpeg\\\");break;case\\\"webp\\\":h=f.toDataURL(\\\"image/webp\\\");break;default:h=f.toDataURL(\\\"image/png\\\")}return this.staticMode&&this.container.removeChild(n),h},_.setConvert=function(){for(var t=0;t<3;t++){var e=this.fullSceneLayout[w[t]];u.setConvert(e,this.fullLayout),e.setScale=c.noop}},e.exports=b},{\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../lib/show_no_webgl_msg\\\":717,\\\"../../lib/str2rgbarray\\\":719,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"./camera\\\":786,\\\"./layout/convert\\\":791,\\\"./layout/spikes\\\":794,\\\"./layout/tick_marks\\\":795,\\\"./project\\\":796,\\\"gl-plot3d\\\":277,\\\"has-passive-events\\\":394,\\\"webgl-context\\\":533}],798:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){n=n||t.length;for(var i=new Array(n),a=0;a<n;a++)i[a]=[t[a],e[a],r[a]];return i}},{}],799:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./font_attributes\\\"),i=t(\\\"../components/color/attributes\\\"),a=n({editType:\\\"calc\\\"});a.family.dflt='\\\"Open Sans\\\", verdana, arial, sans-serif',a.size.dflt=12,a.color.dflt=i.defaultLine,e.exports={font:a,title:{valType:\\\"string\\\",editType:\\\"layoutstyle\\\"},titlefont:n({editType:\\\"layoutstyle\\\"}),autosize:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"none\\\"},width:{valType:\\\"number\\\",min:10,dflt:700,editType:\\\"plot\\\"},height:{valType:\\\"number\\\",min:10,dflt:450,editType:\\\"plot\\\"},margin:{l:{valType:\\\"number\\\",min:0,dflt:80,editType:\\\"plot\\\"},r:{valType:\\\"number\\\",min:0,dflt:80,editType:\\\"plot\\\"},t:{valType:\\\"number\\\",min:0,dflt:100,editType:\\\"plot\\\"},b:{valType:\\\"number\\\",min:0,dflt:80,editType:\\\"plot\\\"},pad:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"plot\\\"},autoexpand:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},editType:\\\"plot\\\"},paper_bgcolor:{valType:\\\"color\\\",dflt:i.background,editType:\\\"plot\\\"},plot_bgcolor:{valType:\\\"color\\\",dflt:i.background,editType:\\\"layoutstyle\\\"},separators:{valType:\\\"string\\\",editType:\\\"plot\\\"},hidesources:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"plot\\\"},showlegend:{valType:\\\"boolean\\\",editType:\\\"legend\\\"},colorway:{valType:\\\"colorlist\\\",dflt:i.defaults,editType:\\\"calc\\\"},datarevision:{valType:\\\"any\\\",editType:\\\"calc\\\"},template:{valType:\\\"any\\\",editType:\\\"calc\\\"},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\\\"},editType:\\\"modebar\\\"}}},{\\\"../components/color/attributes\\\":569,\\\"./font_attributes\\\":771}],800:[function(t,e,r){\\\"use strict\\\";e.exports={requiredVersion:\\\"0.45.0\\\",styleUrlPrefix:\\\"mapbox://styles/mapbox/\\\",styleUrlSuffix:\\\"v9\\\",controlContainerClassName:\\\"mapboxgl-control-container\\\",wrongVersionErrorMsg:[\\\"Your custom plotly.js bundle is not using the correct mapbox-gl version\\\",\\\"Please install mapbox-gl@0.45.0.\\\"].join(\\\"\\\\n\\\"),noAccessTokenErrorMsg:[\\\"Missing Mapbox access token.\\\",\\\"Mapbox trace type require a Mapbox access token to be registered.\\\",\\\"For example:\\\",\\\"  Plotly.plot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });\\\",\\\"More info here: https://www.mapbox.com/help/define-access-token/\\\"].join(\\\"\\\\n\\\"),mapOnErrorMsg:\\\"Mapbox error.\\\",styleRules:{map:\\\"overflow:hidden;position:relative;\\\",\\\"missing-css\\\":\\\"display:none\\\"}}},{}],801:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e){var r=t.split(\\\" \\\"),i=r[0],a=r[1],o=n.isArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,c=[\\\"\\\",\\\"\\\"],u=[0,0];switch(i){case\\\"top\\\":c[0]=\\\"top\\\",u[1]=-l;break;case\\\"bottom\\\":c[0]=\\\"bottom\\\",u[1]=l}switch(a){case\\\"left\\\":c[1]=\\\"right\\\",u[0]=-s;break;case\\\"right\\\":c[1]=\\\"left\\\",u[0]=s}return{anchor:c[0]&&c[1]?c.join(\\\"-\\\"):c[0]?c[0]:c[1]?c[1]:\\\"center\\\",offset:u}}},{\\\"../../lib\\\":696}],802:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"mapbox-gl\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/get_data\\\").getSubplotCalcData,o=t(\\\"../../constants/xmlns_namespaces\\\"),s=t(\\\"./mapbox\\\"),l=t(\\\"./constants\\\");for(var c in l.styleRules)i.addStyleRule(\\\".mapboxgl-\\\"+c,l.styleRules[c]);r.name=\\\"mapbox\\\",r.attr=\\\"subplot\\\",r.idRoot=\\\"mapbox\\\",r.idRegex=r.attrRegex=i.counterRegex(\\\"mapbox\\\"),r.attributes={subplot:{valType:\\\"subplotid\\\",dflt:\\\"mapbox\\\",editType:\\\"calc\\\"}},r.layoutAttributes=t(\\\"./layout_attributes\\\"),r.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),r.plot=function(t){var e=t._fullLayout,r=t.calcdata,o=e._subplots.mapbox;if(n.version!==l.requiredVersion)throw new Error(l.wrongVersionErrorMsg);var c=function(t,e){var r=t._fullLayout;if(\\\"\\\"===t._context.mapboxAccessToken)return\\\"\\\";for(var n=0;n<e.length;n++){var i=r[e[n]];if(i.accesstoken)return i.accesstoken}throw new Error(l.noAccessTokenErrorMsg)}(t,o);n.accessToken=c;for(var u=0;u<o.length;u++){var f=o[u],h=a(r,\\\"mapbox\\\",f),p=e[f],d=p._subplot;d||(d=s({gd:t,container:e._glcontainer.node(),id:f,fullLayout:e,staticPlot:t._context.staticPlot}),e[f]._subplot=d),d.viewInitial||(d.viewInitial={center:i.extendFlat({},p.center),zoom:p.zoom,bearing:p.bearing,pitch:p.pitch}),d.plot(h,e,t._promises)}},r.clean=function(t,e,r,n){for(var i=n._subplots.mapbox||[],a=0;a<i.length;a++){var o=i[a];!e[o]&&n[o]._subplot&&n[o]._subplot.destroy()}},r.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=e._size,i=0;i<r.length;i++){var a=e[r[i]],s=a.domain,l=a._subplot,c=l.toImage(\\\"png\\\");e._glimages.append(\\\"svg:image\\\").attr({xmlns:o.svg,\\\"xlink:href\\\":c,x:n.l+n.w*s.x[0],y:n.t+n.h*(1-s.y[1]),width:n.w*(s.x[1]-s.x[0]),height:n.h*(s.y[1]-s.y[0]),preserveAspectRatio:\\\"none\\\"}),l.destroy()}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=0;n<r.length;n++){e[r[n]]._subplot.updateFx(e)}}},{\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../plots/get_data\\\":781,\\\"./constants\\\":800,\\\"./layout_attributes\\\":804,\\\"./layout_defaults\\\":805,\\\"./mapbox\\\":806,\\\"mapbox-gl\\\":409}],803:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./convert_text_opts\\\");function a(t,e){this.mapbox=t,this.map=t.map,this.uid=t.uid+\\\"-layer\\\"+e,this.idSource=this.uid+\\\"-source\\\",this.idLayer=this.uid+\\\"-layer\\\",this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var o=a.prototype;function s(t){var e=t.source;return t.visible&&(n.isPlainObject(e)||\\\"string\\\"==typeof e&&e.length>0)}function l(t){var e={},r={};switch(t.type){case\\\"circle\\\":n.extendFlat(r,{\\\"circle-radius\\\":t.circle.radius,\\\"circle-color\\\":t.color,\\\"circle-opacity\\\":t.opacity});break;case\\\"line\\\":n.extendFlat(r,{\\\"line-width\\\":t.line.width,\\\"line-color\\\":t.color,\\\"line-opacity\\\":t.opacity});break;case\\\"fill\\\":n.extendFlat(r,{\\\"fill-color\\\":t.color,\\\"fill-outline-color\\\":t.fill.outlinecolor,\\\"fill-opacity\\\":t.opacity});break;case\\\"symbol\\\":var a=t.symbol,o=i(a.textposition,a.iconsize);n.extendFlat(e,{\\\"icon-image\\\":a.icon+\\\"-15\\\",\\\"icon-size\\\":a.iconsize/10,\\\"text-field\\\":a.text,\\\"text-size\\\":a.textfont.size,\\\"text-anchor\\\":o.anchor,\\\"text-offset\\\":o.offset}),n.extendFlat(r,{\\\"icon-color\\\":t.color,\\\"text-color\\\":a.textfont.color,\\\"text-opacity\\\":t.opacity})}return{layout:e,paint:r}}o.update=function(t){this.visible?this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=s(t)},o.needsNewSource=function(t){return this.sourceType!==t.sourcetype||this.source!==t.source||this.layerType!==t.type},o.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==t.below},o.updateSource=function(t){var e=this.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,s(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,i={type:r};\\\"geojson\\\"===r?e=\\\"data\\\":\\\"vector\\\"===r&&(e=\\\"string\\\"==typeof n?\\\"url\\\":\\\"tiles\\\");return i[e]=n,i}(t);e.addSource(this.idSource,r)}},o.updateLayer=function(t){var e=this.map,r=l(t);this.removeLayer(),this.layerType=t.type,s(t)&&e.addLayer({id:this.idLayer,source:this.idSource,\\\"source-layer\\\":t.sourcelayer||\\\"\\\",type:t.type,layout:r.layout,paint:r.paint},t.below)},o.updateStyle=function(t){if(s(t)){var e=l(t);this.mapbox.setOptions(this.idLayer,\\\"setLayoutProperty\\\",e.layout),this.mapbox.setOptions(this.idLayer,\\\"setPaintProperty\\\",e.paint)}},o.removeLayer=function(){var t=this.map;t.getLayer(this.idLayer)&&t.removeLayer(this.idLayer)},o.dispose=function(){var t=this.map;t.removeLayer(this.idLayer),t.removeSource(this.idSource)},e.exports=function(t,e,r){var n=new a(t,e);return n.update(r),n}},{\\\"../../lib\\\":696,\\\"./convert_text_opts\\\":801}],804:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\").defaultLine,a=t(\\\"../domain\\\").attributes,o=t(\\\"../font_attributes\\\"),s=t(\\\"../../traces/scatter/attributes\\\").textposition,l=t(\\\"../../plot_api/edit_types\\\").overrideAll,c=t(\\\"../../plot_api/plot_template\\\").templatedArray,u=o({});u.family.dflt=\\\"Open Sans Regular, Arial Unicode MS Regular\\\",e.exports=l({_arrayAttrRegexps:[n.counterRegex(\\\"mapbox\\\",\\\".layers\\\",!0)],domain:a({name:\\\"mapbox\\\"}),accesstoken:{valType:\\\"string\\\",noBlank:!0,strict:!0},style:{valType:\\\"any\\\",values:[\\\"basic\\\",\\\"streets\\\",\\\"outdoors\\\",\\\"light\\\",\\\"dark\\\",\\\"satellite\\\",\\\"satellite-streets\\\"],dflt:\\\"basic\\\"},center:{lon:{valType:\\\"number\\\",dflt:0},lat:{valType:\\\"number\\\",dflt:0}},zoom:{valType:\\\"number\\\",dflt:1},bearing:{valType:\\\"number\\\",dflt:0},pitch:{valType:\\\"number\\\",dflt:0},layers:c(\\\"layer\\\",{visible:{valType:\\\"boolean\\\",dflt:!0},sourcetype:{valType:\\\"enumerated\\\",values:[\\\"geojson\\\",\\\"vector\\\"],dflt:\\\"geojson\\\"},source:{valType:\\\"any\\\"},sourcelayer:{valType:\\\"string\\\",dflt:\\\"\\\"},type:{valType:\\\"enumerated\\\",values:[\\\"circle\\\",\\\"line\\\",\\\"fill\\\",\\\"symbol\\\"],dflt:\\\"circle\\\"},below:{valType:\\\"string\\\",dflt:\\\"\\\"},color:{valType:\\\"color\\\",dflt:i},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1},circle:{radius:{valType:\\\"number\\\",dflt:15}},line:{width:{valType:\\\"number\\\",dflt:2}},fill:{outlinecolor:{valType:\\\"color\\\",dflt:i}},symbol:{icon:{valType:\\\"string\\\",dflt:\\\"marker\\\"},iconsize:{valType:\\\"number\\\",dflt:10},text:{valType:\\\"string\\\",dflt:\\\"\\\"},textfont:u,textposition:n.extendFlat({},s,{arrayOk:!1})}})},\\\"plot\\\",\\\"from-root\\\")},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plot_api/edit_types\\\":727,\\\"../../plot_api/plot_template\\\":734,\\\"../../traces/scatter/attributes\\\":1043,\\\"../domain\\\":770,\\\"../font_attributes\\\":771}],805:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../subplot_defaults\\\"),a=t(\\\"../array_container_defaults\\\"),o=t(\\\"./layout_attributes\\\");function s(t,e,r,n){r(\\\"accesstoken\\\",n.accessToken),r(\\\"style\\\"),r(\\\"center.lon\\\"),r(\\\"center.lat\\\"),r(\\\"zoom\\\"),r(\\\"bearing\\\"),r(\\\"pitch\\\"),a(t,e,{name:\\\"layers\\\",handleItemDefaults:l}),e._input=t}function l(t,e){function r(r,i){return n.coerce(t,e,o.layers,r,i)}if(r(\\\"visible\\\")){var i=r(\\\"sourcetype\\\");r(\\\"source\\\"),\\\"vector\\\"===i&&r(\\\"sourcelayer\\\");var a=r(\\\"type\\\");r(\\\"below\\\"),r(\\\"color\\\"),r(\\\"opacity\\\"),\\\"circle\\\"===a&&r(\\\"circle.radius\\\"),\\\"line\\\"===a&&r(\\\"line.width\\\"),\\\"fill\\\"===a&&r(\\\"fill.outlinecolor\\\"),\\\"symbol\\\"===a&&(r(\\\"symbol.icon\\\"),r(\\\"symbol.iconsize\\\"),r(\\\"symbol.text\\\"),n.coerceFont(r,\\\"symbol.textfont\\\"),r(\\\"symbol.textposition\\\"))}}e.exports=function(t,e,r){i(t,e,r,{type:\\\"mapbox\\\",attributes:o,handleDefaults:s,partition:\\\"y\\\",accessToken:e._mapboxAccessToken})}},{\\\"../../lib\\\":696,\\\"../array_container_defaults\\\":740,\\\"../subplot_defaults\\\":822,\\\"./layout_attributes\\\":804}],806:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"mapbox-gl\\\"),i=t(\\\"../../components/fx\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../components/dragelement\\\"),s=t(\\\"../cartesian/select\\\").prepSelect,l=t(\\\"../cartesian/select\\\").selectOnClick,c=t(\\\"./constants\\\"),u=t(\\\"./layout_attributes\\\"),f=t(\\\"./layers\\\");function h(t){this.id=t.id,this.gd=t.gd,this.container=t.container,this.isStatic=t.staticPlot;var e=t.fullLayout;this.uid=e._uid+\\\"-\\\"+this.id,this.opts=e[this.id],this.div=null,this.xaxis=null,this.yaxis=null,this.createFramework(e),this.map=null,this.accessToken=null,this.styleObj=null,this.traceHash={},this.layerList=[]}var p=h.prototype;function d(t){var e=u.style.values,r=u.style.dflt,n={};return a.isPlainObject(t)?(n.id=t.id,n.style=t):\\\"string\\\"==typeof t?(n.id=t,n.style=-1!==e.indexOf(t)?g(t):t):(n.id=r,n.style=g(r)),n.transition={duration:0,delay:0},n}function g(t){return c.styleUrlPrefix+t+\\\"-\\\"+c.styleUrlSuffix}function v(t){return[t.lon,t.lat]}e.exports=function(t){return new h(t)},p.plot=function(t,e,r){var n,i=this,a=i.opts=e[this.id];i.map&&a.accesstoken!==i.accessToken&&(i.map.remove(),i.map=null,i.styleObj=null,i.traceHash=[],i.layerList={}),n=i.map?new Promise(function(r,n){i.updateMap(t,e,r,n)}):new Promise(function(r,n){i.createMap(t,e,r,n)}),r.push(n)},p.createMap=function(t,e,r,a){var o=this,s=o.gd,u=o.opts,f=o.styleObj=d(u.style);o.accessToken=u.accesstoken;var h=o.map=new n.Map({container:o.div,style:f.style,center:v(u.center),zoom:u.zoom,bearing:u.bearing,pitch:u.pitch,interactive:!o.isStatic,preserveDrawingBuffer:o.isStatic,doubleClickZoom:!1,boxZoom:!1}),p=c.controlContainerClassName,g=o.div.getElementsByClassName(p)[0];if(o.div.removeChild(g),h._canvas.style.left=\\\"0px\\\",h._canvas.style.top=\\\"0px\\\",o.rejectOnError(a),h.once(\\\"load\\\",function(){o.updateData(t),o.updateLayout(e),o.resolveOnRender(r)}),!o.isStatic){var m=!1;h.on(\\\"moveend\\\",function(t){if(o.map){var e=o.getView();u._input.center=u.center=e.center,u._input.zoom=u.zoom=e.zoom,u._input.bearing=u.bearing=e.bearing,u._input.pitch=u.pitch=e.pitch,(t.originalEvent||m)&&x(e),m=!1}}),h.on(\\\"wheel\\\",function(){m=!0}),h.on(\\\"mousemove\\\",function(t){var e=o.div.getBoundingClientRect();t.clientX=t.point.x+e.left,t.clientY=t.point.y+e.top,t.target.getBoundingClientRect=function(){return e},o.xaxis.p2c=function(){return t.lngLat.lng},o.yaxis.p2c=function(){return t.lngLat.lat},i.hover(s,t,o.id)}),h.on(\\\"dragstart\\\",y),h.on(\\\"zoomstart\\\",y),h.on(\\\"dblclick\\\",function(){s.emit(\\\"plotly_doubleclick\\\",null);var t=o.viewInitial;h.setCenter(v(t.center)),h.setZoom(t.zoom),h.setBearing(t.bearing),h.setPitch(t.pitch);var e=o.getView();u._input.center=u.center=e.center,u._input.zoom=u.zoom=e.zoom,u._input.bearing=u.bearing=e.bearing,u._input.pitch=u.pitch=e.pitch,x(e)}),o.clearSelect=function(){s._fullLayout._zoomlayer.selectAll(\\\".select-outline\\\").remove()},o.onClickInPanFn=function(t){return function(e){var r=s._fullLayout.clickmode;r.indexOf(\\\"select\\\")>-1&&l(e.originalEvent,s,[o.xaxis],[o.yaxis],o.id,t),r.indexOf(\\\"event\\\")>-1&&i.click(s,e.originalEvent)}}}function y(){i.loneUnhover(e._toppaper)}function x(t){var e=o.id,r={};for(var n in t)r[e+\\\".\\\"+n]=t[n];s.emit(\\\"plotly_relayout\\\",r)}},p.updateMap=function(t,e,r,n){var i=this,a=i.map;i.rejectOnError(n);var o=d(i.opts.style);i.styleObj.id!==o.id?(i.styleObj=o,a.setStyle(o.style),a.once(\\\"styledata\\\",function(){i.traceHash={},i.updateData(t),i.updateLayout(e),i.resolveOnRender(r)})):(i.updateData(t),i.updateLayout(e),i.resolveOnRender(r))},p.updateData=function(t){var e,r,n,i,a=this.traceHash;for(n=0;n<t.length;n++){var o=t[n];(e=a[(r=o[0].trace).uid])?e.update(o):r._module&&(a[r.uid]=r._module.plot(this,o))}var s=Object.keys(a);t:for(n=0;n<s.length;n++){var l=s[n];for(i=0;i<t.length;i++)if(l===(r=t[i][0].trace).uid)continue t;(e=a[l]).dispose(),delete a[l]}},p.updateLayout=function(t){var e=this.map,r=this.opts;e.setCenter(v(r.center)),e.setZoom(r.zoom),e.setBearing(r.bearing),e.setPitch(r.pitch),this.updateLayers(),this.updateFramework(t),this.updateFx(t),this.map.resize()},p.resolveOnRender=function(t){var e=this.map;e.on(\\\"render\\\",function r(){e.loaded()&&(e.off(\\\"render\\\",r),setTimeout(t,0))})},p.rejectOnError=function(t){var e=this.map;function r(){t(new Error(c.mapOnErrorMsg))}e.once(\\\"error\\\",r),e.once(\\\"style.error\\\",r),e.once(\\\"source.error\\\",r),e.once(\\\"tile.error\\\",r),e.once(\\\"layer.error\\\",r)},p.createFramework=function(t){var e=this,r=e.div=document.createElement(\\\"div\\\");r.id=e.uid,r.style.position=\\\"absolute\\\",e.container.appendChild(r),e.xaxis={_id:\\\"x\\\",c2p:function(t){return e.project(t).x}},e.yaxis={_id:\\\"y\\\",c2p:function(t){return e.project(t).y}},e.updateFramework(t)},p.updateFx=function(t){var e=this,r=e.map,n=e.gd;if(!e.isStatic){var i,l=t.dragmode;i=\\\"select\\\"===l?function(t,r){(t.range={})[e.id]=[u([r.xmin,r.ymin]),u([r.xmax,r.ymax])]}:function(t,r,n){(t.lassoPoints={})[e.id]=n.filtered.map(u)};var c=e.dragOptions;e.dragOptions=a.extendDeep(c||{},{element:e.div,gd:n,plotinfo:{id:e.id,xaxis:e.xaxis,yaxis:e.yaxis,fillRangeItems:i},xaxes:[e.xaxis],yaxes:[e.yaxis],subplot:e.id}),r.off(\\\"click\\\",e.onClickInPanHandler),\\\"select\\\"===l||\\\"lasso\\\"===l?(r.dragPan.disable(),r.on(\\\"zoomstart\\\",e.clearSelect),e.dragOptions.prepFn=function(t,r,n){s(t,r,n,e.dragOptions,l)},o.init(e.dragOptions)):(r.dragPan.enable(),r.off(\\\"zoomstart\\\",e.clearSelect),e.div.onmousedown=null,e.onClickInPanHandler=e.onClickInPanFn(e.dragOptions),r.on(\\\"click\\\",e.onClickInPanHandler))}function u(t){var r=e.map.unproject(t);return[r.lng,r.lat]}},p.updateFramework=function(t){var e=t[this.id].domain,r=t._size,n=this.div.style;n.width=r.w*(e.x[1]-e.x[0])+\\\"px\\\",n.height=r.h*(e.y[1]-e.y[0])+\\\"px\\\",n.left=r.l+e.x[0]*r.w+\\\"px\\\",n.top=r.t+(1-e.y[1])*r.h+\\\"px\\\",this.xaxis._offset=r.l+e.x[0]*r.w,this.xaxis._length=r.w*(e.x[1]-e.x[0]),this.yaxis._offset=r.t+(1-e.y[1])*r.h,this.yaxis._length=r.h*(e.y[1]-e.y[0])},p.updateLayers=function(){var t,e=this.opts.layers,r=this.layerList;if(e.length!==r.length){for(t=0;t<r.length;t++)r[t].dispose();for(r=this.layerList=[],t=0;t<e.length;t++)r.push(f(this,t,e[t]))}else for(t=0;t<e.length;t++)r[t].update(e[t])},p.destroy=function(){this.map&&(this.map.remove(),this.map=null,this.container.removeChild(this.div))},p.toImage=function(){return this.map.stop(),this.map.getCanvas().toDataURL()},p.setOptions=function(t,e,r){for(var n in r)this.map[e](t,n,r[n])},p.project=function(t){return this.map.project(new n.LngLat(t[0],t[1]))},p.getView=function(){var t=this.map,e=t.getCenter();return{center:{lon:e.lng,lat:e.lat},zoom:t.getZoom(),bearing:t.getBearing(),pitch:t.getPitch()}}},{\\\"../../components/dragelement\\\":592,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../cartesian/select\\\":762,\\\"./constants\\\":800,\\\"./layers\\\":803,\\\"./layout_attributes\\\":804,\\\"mapbox-gl\\\":409}],807:[function(t,e,r){\\\"use strict\\\";e.exports={t:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},r:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},b:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},l:{valType:\\\"number\\\",dflt:0,editType:\\\"arraydraw\\\"},editType:\\\"arraydraw\\\"}},{}],808:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../registry\\\"),o=t(\\\"../plot_api/plot_schema\\\"),s=t(\\\"../plot_api/plot_template\\\"),l=t(\\\"../lib\\\"),c=t(\\\"../components/color\\\"),u=t(\\\"../constants/numerical\\\").BADNUM,f=t(\\\"../plots/cartesian/axis_ids\\\"),h=t(\\\"./animation_attributes\\\"),p=t(\\\"./frame_attributes\\\"),d=l.relinkPrivateKeys,g=l._,v=e.exports={};l.extendFlat(v,a),v.attributes=t(\\\"./attributes\\\"),v.attributes.type.values=v.allTypes,v.fontAttrs=t(\\\"./font_attributes\\\"),v.layoutAttributes=t(\\\"./layout_attributes\\\"),v.fontWeight=\\\"normal\\\";var m=v.transformsRegistry,y=t(\\\"./command\\\");v.executeAPICommand=y.executeAPICommand,v.computeAPICommandBindings=y.computeAPICommandBindings,v.manageCommandObserver=y.manageCommandObserver,v.hasSimpleAPICommandBindings=y.hasSimpleAPICommandBindings,v.redrawText=function(t){if(!((t=l.getGraphDiv(t)).data&&t.data[0]&&t.data[0].r))return new Promise(function(e){setTimeout(function(){a.getComponentMethod(\\\"annotations\\\",\\\"draw\\\")(t),a.getComponentMethod(\\\"legend\\\",\\\"draw\\\")(t),(t.calcdata||[]).forEach(function(t){t[0]&&t[0].t&&t[0].t.cb&&t[0].t.cb()}),e(v.previousPromises(t))},300)})},v.resize=function(t){return t=l.getGraphDiv(t),new Promise(function(e,r){function n(t){var e=window.getComputedStyle(t).display;return!e||\\\"none\\\"===e}t&&!n(t)||r(new Error(\\\"Resize must be passed a displayed plot div element.\\\")),t._redrawTimer&&clearTimeout(t._redrawTimer),t._redrawTimer=setTimeout(function(){if(!t.layout||t.layout.width&&t.layout.height||n(t))e(t);else{delete t.layout.width,delete t.layout.height;var r=t.changed;t.autoplay=!0,a.call(\\\"relayout\\\",t,{autosize:!0}).then(function(){t.changed=r,e(t)})}},100)})},v.previousPromises=function(t){if((t._promises||[]).length)return Promise.all(t._promises).then(function(){t._promises=[]})},v.addLinks=function(t){if(t._context.showLink||t._context.showSources){var e=t._fullLayout,r=l.ensureSingle(e._paper,\\\"text\\\",\\\"js-plot-link-container\\\",function(t){t.style({\\\"font-family\\\":'\\\"Open Sans\\\", Arial, sans-serif',\\\"font-size\\\":\\\"12px\\\",fill:c.defaultLine,\\\"pointer-events\\\":\\\"all\\\"}).each(function(){var t=n.select(this);t.append(\\\"tspan\\\").classed(\\\"js-link-to-tool\\\",!0),t.append(\\\"tspan\\\").classed(\\\"js-link-spacer\\\",!0),t.append(\\\"tspan\\\").classed(\\\"js-sourcelinks\\\",!0)})}),i=r.node(),a={y:e._paper.attr(\\\"height\\\")-9};document.body.contains(i)&&i.getComputedTextLength()>=e.width-20?(a[\\\"text-anchor\\\"]=\\\"start\\\",a.x=5):(a[\\\"text-anchor\\\"]=\\\"end\\\",a.x=e._paper.attr(\\\"width\\\")-7),r.attr(a);var o=r.select(\\\".js-link-to-tool\\\"),s=r.select(\\\".js-link-spacer\\\"),u=r.select(\\\".js-sourcelinks\\\");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text(\\\"\\\");var r=e.append(\\\"a\\\").attr({\\\"xlink:xlink:href\\\":\\\"#\\\",class:\\\"link--impt link--embedview\\\",\\\"font-weight\\\":\\\"bold\\\"}).text(t._context.linkText+\\\" \\\"+String.fromCharCode(187));if(t._context.sendData)r.on(\\\"click\\\",function(){v.sendDataToCloud(t)});else{var n=window.location.pathname.split(\\\"/\\\"),i=window.location.search;r.attr({\\\"xlink:xlink:show\\\":\\\"new\\\",\\\"xlink:xlink:href\\\":\\\"/\\\"+n[2].split(\\\".\\\")[0]+\\\"/\\\"+n[1]+i})}}(t,o),s.text(o.text()&&u.text()?\\\" - \\\":\\\"\\\")}},v.sendDataToCloud=function(t){t.emit(\\\"plotly_beforeexport\\\");var e=(window.PLOTLYENV||{}).BASE_URL||t._context.plotlyServerURL,r=n.select(t).append(\\\"div\\\").attr(\\\"id\\\",\\\"hiddenform\\\").style(\\\"display\\\",\\\"none\\\"),i=r.append(\\\"form\\\").attr({action:e+\\\"/external\\\",method:\\\"post\\\",target:\\\"_blank\\\"});return i.append(\\\"input\\\").attr({type:\\\"text\\\",name:\\\"data\\\"}).node().value=v.graphJson(t,!1,\\\"keepdata\\\"),i.node().submit(),r.remove(),t.emit(\\\"plotly_afterexport\\\"),!1};var x,b=[\\\"days\\\",\\\"shortDays\\\",\\\"months\\\",\\\"shortMonths\\\",\\\"periods\\\",\\\"dateTime\\\",\\\"date\\\",\\\"time\\\",\\\"decimal\\\",\\\"thousands\\\",\\\"grouping\\\",\\\"currency\\\"],_=[\\\"year\\\",\\\"month\\\",\\\"dayMonth\\\",\\\"dayMonthYear\\\"];function w(t,e){var r=t._context.locale,n=!1,i={};function o(t){for(var r=!0,a=0;a<e.length;a++){var o=e[a];i[o]||(t[o]?i[o]=t[o]:r=!1)}r&&(n=!0)}for(var s=0;s<2;s++){for(var l=t._context.locales,c=0;c<2;c++){var u=(l[r]||{}).format;if(u&&(o(u),n))break;l=a.localeRegistry}var f=r.split(\\\"-\\\")[0];if(n||f===r)break;r=f}return n||o(a.localeRegistry.en.format),i}function k(t){var e=t.transforms;if(Array.isArray(e)&&e.length)for(var r=0;r<e.length;r++){var n=e[r],i=n._module||m[n.type];if(i&&i.makesData)return!0}return!1}function M(t,e,r,n){for(var i=t.transforms,a=[t],o=0;o<i.length;o++){var s=i[o],l=m[s.type];l&&l.transform&&(a=l.transform(a,{transform:s,fullTrace:t,fullData:e,layout:r,fullLayout:n,transformIndex:o}))}return a}function A(t){t._pushmargin||(t._pushmargin={}),t._pushmarginIds||(t._pushmarginIds={})}function T(t){for(var e=0;e<t.length;e++)t[e].clearCalc()}v.supplyDefaults=function(t,e){var r=e&&e.skipUpdateCalc,i=t._fullLayout||{};if(i._skipDefaults)delete i._skipDefaults;else{var o,s=t._fullLayout={},c=t.layout||{},u=t._fullData||[],h=t._fullData=[],p=t.data||[],m=t.calcdata||[],y=t._context||{};t._transitionData||v.createTransitionData(t),s._dfltTitle={plot:g(t,\\\"Click to enter Plot title\\\"),x:g(t,\\\"Click to enter X axis title\\\"),y:g(t,\\\"Click to enter Y axis title\\\"),colorbar:g(t,\\\"Click to enter Colorscale title\\\"),annotation:g(t,\\\"new text\\\")},s._traceWord=g(t,\\\"trace\\\");var k=w(t,b);if(s._mapboxAccessToken=y.mapboxAccessToken,i._initialAutoSizeIsDone){var M=i.width,A=i.height;v.supplyLayoutGlobalDefaults(c,s,k),c.width||(s.width=M),c.height||(s.height=A),v.sanitizeMargins(s)}else{v.supplyLayoutGlobalDefaults(c,s,k);var T=!c.width||!c.height,S=s.autosize,E=y.autosizable;T&&(S||E)?v.plotAutoSize(t,c,s):T&&v.sanitizeMargins(s),!S&&T&&(c.width=s.width,c.height=s.height)}s._d3locale=function(t,e){return t.decimal=e.charAt(0),t.thousands=e.charAt(1),n.locale(t)}(k,s.separators),s._extraFormat=w(t,_),s._initialAutoSizeIsDone=!0,s._dataLength=p.length,s._modules=[],s._visibleModules=[],s._basePlotModules=[];var C=s._subplots=function(){var t,e,r={};if(!x){x=[];var n=a.subplotsRegistry;for(var i in n){var o=n[i],s=o.attr;if(s&&(x.push(i),Array.isArray(s)))for(e=0;e<s.length;e++)l.pushUnique(x,s[e])}}for(t=0;t<x.length;t++)r[x[t]]=[];return r}(),L=s._splomAxes={x:{},y:{}},z=s._splomSubplots={};s._splomGridDflt={},s._scatterStackOpts={},s._firstScatter={},s._requestRangeslider={},s._traceUids=function(t,e){var r,n,i=e.length,a=[];for(r=0;r<t.length;r++){var o=t[r]._fullInput;o!==n&&a.push(o),n=o}var s=a.length,c=new Array(i),u={};function f(t,e){c[e]=t,u[t]=1}function h(t,e){if(t&&\\\"string\\\"==typeof t&&!u[t])return f(t,e),!0}for(r=0;r<i;r++)h(e[r].uid,r)||r<s&&h(a[r].uid,r)||f(l.randstr(u),r);return c}(u,p),s._globalTransforms=(t._context||{}).globalTransforms,v.supplyDataDefaults(p,h,c,s);var O=Object.keys(L.x),I=Object.keys(L.y);if(O.length>1&&I.length>1){for(a.getComponentMethod(\\\"grid\\\",\\\"sizeDefaults\\\")(c,s),o=0;o<O.length;o++)l.pushUnique(C.xaxis,O[o]);for(o=0;o<I.length;o++)l.pushUnique(C.yaxis,I[o]);for(var P in z)l.pushUnique(C.cartesian,P)}if(s._has=v._hasPlotType.bind(s),u.length===h.length)for(o=0;o<h.length;o++)d(h[o],u[o]);v.supplyLayoutModuleDefaults(c,s,h,t._transitionData);var D=s._visibleModules,R=[];for(o=0;o<D.length;o++){var B=D[o].crossTraceDefaults;B&&l.pushUnique(R,B)}for(o=0;o<R.length;o++)R[o](h,s);s._hasOnlyLargeSploms=1===s._basePlotModules.length&&\\\"splom\\\"===s._basePlotModules[0].name&&O.length>15&&I.length>15&&0===s.shapes.length&&0===s.images.length,s._hasCartesian=s._has(\\\"cartesian\\\"),s._hasGeo=s._has(\\\"geo\\\"),s._hasGL3D=s._has(\\\"gl3d\\\"),s._hasGL2D=s._has(\\\"gl2d\\\"),s._hasTernary=s._has(\\\"ternary\\\"),s._hasPie=s._has(\\\"pie\\\"),v.linkSubplots(h,s,u,i),v.cleanPlot(h,s,u,i),d(s,i),v.doAutoMargin(t);var F=f.list(t);for(o=0;o<F.length;o++){F[o].setScale()}r||m.length!==h.length||v.supplyDefaultsUpdateCalc(m,h)}},v.supplyDefaultsUpdateCalc=function(t,e){for(var r=0;r<e.length;r++){var n=e[r],i=t[r][0];if(i&&i.trace){var a=i.trace;if(a._hasCalcTransform){var o,s,c,u=a._arrayAttrs;for(o=0;o<u.length;o++)s=u[o],c=l.nestedProperty(a,s).get().slice(),l.nestedProperty(n,s).set(c)}i.trace=n}}},v.createTransitionData=function(t){t._transitionData||(t._transitionData={}),t._transitionData._frames||(t._transitionData._frames=[]),t._transitionData._frameHash||(t._transitionData._frameHash={}),t._transitionData._counter||(t._transitionData._counter=0),t._transitionData._interruptCallbacks||(t._transitionData._interruptCallbacks=[])},v._hasPlotType=function(t){var e,r=this._basePlotModules||[];for(e=0;e<r.length;e++)if(r[e].name===t)return!0;var n=this._modules||[];for(e=0;e<n.length;e++){var i=n[e].name;if(i===t)return!0;var o=a.modules[i];if(o&&o.categories[t])return!0}return!1},v.cleanPlot=function(t,e,r,n){var i,a,o=n._basePlotModules||[];for(i=0;i<o.length;i++){var s=o[i];s.clean&&s.clean(t,e,r,n)}var l=n._has&&n._has(\\\"gl\\\"),c=e._has&&e._has(\\\"gl\\\");l&&!c&&void 0!==n._glcontainer&&(n._glcontainer.selectAll(\\\".gl-canvas\\\").remove(),n._glcontainer.selectAll(\\\".no-webgl\\\").remove(),n._glcanvas=null);var u=!!n._infolayer;t:for(i=0;i<r.length;i++){var f=r[i].uid;for(a=0;a<t.length;a++){if(f===t[a].uid)continue t}u&&n._infolayer.select(\\\".cb\\\"+f).remove()}n._zoomlayer&&n._zoomlayer.selectAll(\\\".select-outline\\\").remove()},v.linkSubplots=function(t,e,r,n){var i,a,o=n._plots||{},s=e._plots={},l=e._subplots,c={_fullData:t,_fullLayout:e},u=l.cartesian.concat(l.gl2d||[]);for(i=0;i<u.length;i++){var h,p=u[i],d=o[p],g=f.getFromId(c,p,\\\"x\\\"),v=f.getFromId(c,p,\\\"y\\\");for(d?h=s[p]=d:(h=s[p]={}).id=p,h.xaxis=g,h.yaxis=v,h._hasClipOnAxisFalse=!1,a=0;a<t.length;a++){var m=t[a];if(m.xaxis===h.xaxis._id&&m.yaxis===h.yaxis._id&&!1===m.cliponaxis){h._hasClipOnAxisFalse=!0;break}}}var y=f.list(c,null,!0);for(i=0;i<y.length;i++){var x=y[i],b=null;x.overlaying&&(b=f.getFromId(c,x.overlaying))&&b.overlaying&&(x.overlaying=!1,b=null),x._mainAxis=b||x,b&&(x.domain=b.domain.slice()),x._anchorAxis=\\\"free\\\"===x.anchor?null:f.getFromId(c,x.anchor)}},v.clearExpandedTraceDefaultColors=function(t){var e,r,n;for(r=[],(e=t._module._colorAttrs)||(t._module._colorAttrs=e=[],o.crawl(t._module.attributes,function(t,n,i,a){r[a]=n,r.length=a+1,\\\"color\\\"===t.valType&&void 0===t.dflt&&e.push(r.join(\\\".\\\"))})),n=0;n<e.length;n++){l.nestedProperty(t,\\\"_input.\\\"+e[n]).get()||l.nestedProperty(t,e[n]).set(null)}},v.supplyDataDefaults=function(t,e,r,n){var i,o,c,u=n._modules,f=n._visibleModules,h=n._basePlotModules,p=0,g=0;function m(t){e.push(t);var r=t._module;r&&(l.pushUnique(u,r),!0===t.visible&&l.pushUnique(f,r),l.pushUnique(h,t._module.basePlotModule),p++,!1!==t._input.visible&&g++)}n._transformModules=[];var y={},x=[],b=(r.template||{}).data||{},_=s.traceTemplater(b);for(i=0;i<t.length;i++){if(c=t[i],(o=_.newTrace(c)).uid=n._traceUids[i],v.supplyTraceDefaults(c,o,g,n,i),o.index=i,o._input=c,o._expandedIndex=p,o.transforms&&o.transforms.length)for(var w=!1!==c.visible&&!1===o.visible,k=M(o,e,r,n),A=0;A<k.length;A++){var T=k[A],S={_template:o._template,type:o.type,uid:o.uid+A};w&&!1===T.visible&&delete T.visible,v.supplyTraceDefaults(T,S,p,n,i),d(S,T),S.index=i,S._input=c,S._fullInput=o,S._expandedIndex=p,S._expandedInput=T,m(S)}else o._fullInput=o,o._expandedInput=o,m(o);a.traceIs(o,\\\"carpetAxis\\\")&&(y[o.carpet]=o),a.traceIs(o,\\\"carpetDependent\\\")&&x.push(i)}for(i=0;i<x.length;i++)if((o=e[x[i]]).visible){var E=y[o.carpet];o._carpet=E,E&&E.visible?(o.xaxis=E.xaxis,o.yaxis=E.yaxis):o.visible=!1}},v.supplyAnimationDefaults=function(t){var e;t=t||{};var r={};function n(e,n){return l.coerce(t||{},r,h,e,n)}if(n(\\\"mode\\\"),n(\\\"direction\\\"),n(\\\"fromcurrent\\\"),Array.isArray(t.frame))for(r.frame=[],e=0;e<t.frame.length;e++)r.frame[e]=v.supplyAnimationFrameDefaults(t.frame[e]||{});else r.frame=v.supplyAnimationFrameDefaults(t.frame||{});if(Array.isArray(t.transition))for(r.transition=[],e=0;e<t.transition.length;e++)r.transition[e]=v.supplyAnimationTransitionDefaults(t.transition[e]||{});else r.transition=v.supplyAnimationTransitionDefaults(t.transition||{});return r},v.supplyAnimationFrameDefaults=function(t){var e={};function r(r,n){return l.coerce(t||{},e,h.frame,r,n)}return r(\\\"duration\\\"),r(\\\"redraw\\\"),e},v.supplyAnimationTransitionDefaults=function(t){var e={};function r(r,n){return l.coerce(t||{},e,h.transition,r,n)}return r(\\\"duration\\\"),r(\\\"easing\\\"),e},v.supplyFrameDefaults=function(t){var e={};function r(r,n){return l.coerce(t,e,p,r,n)}return r(\\\"group\\\"),r(\\\"name\\\"),r(\\\"traces\\\"),r(\\\"baseframe\\\"),r(\\\"data\\\"),r(\\\"layout\\\"),e},v.supplyTraceDefaults=function(t,e,r,n,i){var o,s=n.colorway||c.defaults,u=s[r%s.length];function f(r,n){return l.coerce(t,e,v.attributes,r,n)}var h=f(\\\"visible\\\");f(\\\"type\\\"),f(\\\"name\\\",n._traceWord+\\\" \\\"+i);var p,d,g,m=v.getModule(e);if(e._module=m,m){var y=m.basePlotModule,x=y.attr,b=y.attributes;if(x&&b){var _=n._subplots,w=\\\"\\\";if(\\\"gl2d\\\"!==y.name||h){if(Array.isArray(x))for(o=0;o<x.length;o++){var k=x[o],M=l.coerce(t,e,b,k);_[k]&&l.pushUnique(_[k],M),w+=M}else w=l.coerce(t,e,b,x);_[y.name]&&l.pushUnique(_[y.name],w)}}}return h&&(f(\\\"customdata\\\"),f(\\\"ids\\\"),a.traceIs(e,\\\"showLegend\\\")?(e._dfltShowLegend=!0,f(\\\"showlegend\\\"),f(\\\"legendgroup\\\")):e._dfltShowLegend=!1,p=\\\"hoverlabel\\\",d=\\\"\\\",g=function(){a.getComponentMethod(\\\"fx\\\",\\\"supplyDefaults\\\")(t,e,u,n)},m&&p in m.attributes&&void 0===m.attributes[p]||(g&&\\\"function\\\"==typeof g?g():f(p,d)),m&&(m.supplyDefaults(t,e,u,n),l.coerceHoverinfo(t,e,n)),a.traceIs(e,\\\"noOpacity\\\")||f(\\\"opacity\\\"),a.traceIs(e,\\\"notLegendIsolatable\\\")&&(e.visible=!!e.visible),m&&m.selectPoints&&f(\\\"selectedpoints\\\"),v.supplyTransformDefaults(t,e,n)),e},v.hasMakesDataTransform=k,v.supplyTransformDefaults=function(t,e,r){if(e._length||k(t)){var n=r._globalTransforms||[],i=r._transformModules||[];if(Array.isArray(t.transforms)||0!==n.length)for(var a=t.transforms||[],o=n.concat(a),s=e.transforms=[],c=0;c<o.length;c++){var u,f=o[c],h=f.type,p=m[h],d=!(f._module&&f._module===p),g=p&&\\\"function\\\"==typeof p.transform;p||l.warn(\\\"Unrecognized transform type \\\"+h+\\\".\\\"),p&&p.supplyDefaults&&(d||g)?((u=p.supplyDefaults(f,e,r,t)).type=h,u._module=p,l.pushUnique(i,p)):u=l.extendFlat({},f),s.push(u)}}},v.supplyLayoutGlobalDefaults=function(t,e,r){function n(r,n){return l.coerce(t,e,v.layoutAttributes,r,n)}var i=t.template;l.isPlainObject(i)&&(e.template=i,e._template=i.layout,e._dataTemplate=i.data);var o=l.coerceFont(n,\\\"font\\\");n(\\\"title\\\",e._dfltTitle.plot),l.coerceFont(n,\\\"titlefont\\\",{family:o.family,size:Math.round(1.4*o.size),color:o.color}),n(\\\"autosize\\\",!(t.width&&t.height)),n(\\\"width\\\"),n(\\\"height\\\"),n(\\\"margin.l\\\"),n(\\\"margin.r\\\"),n(\\\"margin.t\\\"),n(\\\"margin.b\\\"),n(\\\"margin.pad\\\"),n(\\\"margin.autoexpand\\\"),t.width&&t.height&&v.sanitizeMargins(e),a.getComponentMethod(\\\"grid\\\",\\\"sizeDefaults\\\")(t,e),n(\\\"paper_bgcolor\\\"),n(\\\"separators\\\",r.decimal+r.thousands),n(\\\"hidesources\\\"),n(\\\"colorway\\\"),n(\\\"datarevision\\\"),n(\\\"modebar.orientation\\\"),n(\\\"modebar.bgcolor\\\",c.addOpacity(e.paper_bgcolor,.5));var s=c.contrast(c.rgb(e.modebar.bgcolor));n(\\\"modebar.color\\\",c.addOpacity(s,.3)),n(\\\"modebar.activecolor\\\",c.addOpacity(s,.7)),a.getComponentMethod(\\\"calendars\\\",\\\"handleDefaults\\\")(t,e,\\\"calendar\\\"),a.getComponentMethod(\\\"fx\\\",\\\"supplyLayoutGlobalDefaults\\\")(t,e,n)},v.plotAutoSize=function(t,e,r){var n,a,o=t._context||{},s=o.frameMargins,c=l.isPlotDiv(t);if(c&&t.emit(\\\"plotly_autosize\\\"),o.fillFrame)n=window.innerWidth,a=window.innerHeight,document.body.style.overflow=\\\"hidden\\\";else{var u=c?window.getComputedStyle(t):{};if(n=parseFloat(u.width)||parseFloat(u.maxWidth)||r.width,a=parseFloat(u.height)||parseFloat(u.maxHeight)||r.height,i(s)&&s>0){var f=1-2*s;n=Math.round(f*n),a=Math.round(f*a)}}var h=v.layoutAttributes.width.min,p=v.layoutAttributes.height.min;n<h&&(n=h),a<p&&(a=p);var d=!e.width&&Math.abs(r.width-n)>1,g=!e.height&&Math.abs(r.height-a)>1;(g||d)&&(d&&(r.width=n),g&&(r.height=a)),t._initialAutoSize||(t._initialAutoSize={width:n,height:a}),v.sanitizeMargins(r)},v.supplyLayoutModuleDefaults=function(t,e,r,n){var i,o,s,c=a.componentsRegistry,u=e._basePlotModules,f=a.subplotsRegistry.cartesian;for(i in c)(s=c[i]).includeBasePlot&&s.includeBasePlot(t,e);for(var h in u.length||u.push(f),e._has(\\\"cartesian\\\")&&(a.getComponentMethod(\\\"grid\\\",\\\"contentDefaults\\\")(t,e),f.finalizeSubplots(t,e)),e._subplots)e._subplots[h].sort(l.subplotSort);for(o=0;o<u.length;o++)(s=u[o]).supplyLayoutDefaults&&s.supplyLayoutDefaults(t,e,r);var p=e._modules;for(o=0;o<p.length;o++)(s=p[o]).supplyLayoutDefaults&&s.supplyLayoutDefaults(t,e,r);var d=e._transformModules;for(o=0;o<d.length;o++)(s=d[o]).supplyLayoutDefaults&&s.supplyLayoutDefaults(t,e,r,n);for(i in c)(s=c[i]).supplyLayoutDefaults&&s.supplyLayoutDefaults(t,e,r)},v.purge=function(t){var e=t._fullLayout||{};void 0!==e._glcontainer&&(e._glcontainer.selectAll(\\\".gl-canvas\\\").remove(),e._glcontainer.remove(),e._glcanvas=null),void 0!==e._geocontainer&&e._geocontainer.remove(),e._modeBar&&e._modeBar.destroy(),t._transitionData&&(t._transitionData._interruptCallbacks&&(t._transitionData._interruptCallbacks.length=0),t._transitionData._animationRaf&&window.cancelAnimationFrame(t._transitionData._animationRaf)),l.clearThrottle(),l.clearResponsive(t),delete t.data,delete t.layout,delete t._fullData,delete t._fullLayout,delete t.calcdata,delete t.framework,delete t.empty,delete t.fid,delete t.undoqueue,delete t.undonum,delete t.autoplay,delete t.changed,delete t._promises,delete t._redrawTimer,delete t._hmlumcount,delete t._hmpixcount,delete t._transitionData,delete t._transitioning,delete t._initialAutoSize,delete t._transitioningWithDuration,delete t._dragging,delete t._dragged,delete t._hoverdata,delete t._snapshotInProgress,delete t._editing,delete t._replotPending,delete t._mouseDownTime,delete t._legendMouseDownTime,t.removeAllListeners&&t.removeAllListeners()},v.style=function(t){var e,r=t._fullLayout._visibleModules,n=[];for(e=0;e<r.length;e++){var i=r[e];i.style&&l.pushUnique(n,i.style)}for(e=0;e<n.length;e++)n[e](t)},v.sanitizeMargins=function(t){if(t&&t.margin){var e,r=t.width,n=t.height,i=t.margin,a=r-(i.l+i.r),o=n-(i.t+i.b);a<0&&(e=(r-1)/(i.l+i.r),i.l=Math.floor(e*i.l),i.r=Math.floor(e*i.r)),o<0&&(e=(n-1)/(i.t+i.b),i.t=Math.floor(e*i.t),i.b=Math.floor(e*i.b))}},v.clearAutoMarginIds=function(t){t._fullLayout._pushmarginIds={}},v.allowAutoMargin=function(t,e){t._fullLayout._pushmarginIds[e]=1},v.autoMargin=function(t,e,r){var n=t._fullLayout;A(n);var i=n._pushmargin,a=n._pushmarginIds;if(!1!==n.margin.autoexpand){if(r){var o=r.pad;if(void 0===o){var s=n.margin;o=Math.min(12,s.l,s.r,s.t,s.b)}r.l+r.r>.5*n.width&&(r.l=r.r=0),r.b+r.t>.5*n.height&&(r.b=r.t=0);var l=void 0!==r.xl?r.xl:r.x,c=void 0!==r.xr?r.xr:r.x,u=void 0!==r.yt?r.yt:r.y,f=void 0!==r.yb?r.yb:r.y;i[e]={l:{val:l,size:r.l+o},r:{val:c,size:r.r+o},b:{val:f,size:r.b+o},t:{val:u,size:r.t+o}},a[e]=1}else delete i[e],delete a[e];n._replotting||v.doAutoMargin(t)}},v.doAutoMargin=function(t){var e=t._fullLayout;e._size||(e._size={}),A(e);var r=e._size,n=JSON.stringify(r),o=Math.max(e.margin.l||0,0),s=Math.max(e.margin.r||0,0),l=Math.max(e.margin.t||0,0),c=Math.max(e.margin.b||0,0),u=e._pushmargin,f=e._pushmarginIds;if(!1!==e.margin.autoexpand){for(var h in u)f[h]||delete u[h];for(var p in u.base={l:{val:0,size:o},r:{val:1,size:s},t:{val:1,size:l},b:{val:0,size:c}},u){var d=u[p].l||{},g=u[p].b||{},v=d.val,m=d.size,y=g.val,x=g.size;for(var b in u){if(i(m)&&u[b].r){var _=u[b].r.val,w=u[b].r.size;if(_>v){var k=(m*_+(w-e.width)*v)/(_-v),M=(w*(1-v)+(m-e.width)*(1-_))/(_-v);k>=0&&M>=0&&k+M>o+s&&(o=k,s=M)}}if(i(x)&&u[b].t){var T=u[b].t.val,S=u[b].t.size;if(T>y){var E=(x*T+(S-e.height)*y)/(T-y),C=(S*(1-y)+(x-e.height)*(1-T))/(T-y);E>=0&&C>=0&&E+C>c+l&&(c=E,l=C)}}}}}if(r.l=Math.round(o),r.r=Math.round(s),r.t=Math.round(l),r.b=Math.round(c),r.p=Math.round(e.margin.pad),r.w=Math.round(e.width)-r.l-r.r,r.h=Math.round(e.height)-r.t-r.b,!e._replotting&&\\\"{}\\\"!==n&&n!==JSON.stringify(e._size))return\\\"_redrawFromAutoMarginCount\\\"in e?e._redrawFromAutoMarginCount++:e._redrawFromAutoMarginCount=1,a.call(\\\"plot\\\",t)},v.graphJson=function(t,e,r,n,i){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&v.supplyDefaults(t);var a=i?t._fullData:t.data,o=i?t._fullLayout:t.layout,s=(t._transitionData||{})._frames;function c(t){if(\\\"function\\\"==typeof t)return null;if(l.isPlainObject(t)){var e,n,i={};for(e in t)if(\\\"function\\\"!=typeof t[e]&&-1===[\\\"_\\\",\\\"[\\\"].indexOf(e.charAt(0))){if(\\\"keepdata\\\"===r){if(\\\"src\\\"===e.substr(e.length-3))continue}else if(\\\"keepstream\\\"===r){if(\\\"string\\\"==typeof(n=t[e+\\\"src\\\"])&&n.indexOf(\\\":\\\")>0&&!l.isPlainObject(t.stream))continue}else if(\\\"keepall\\\"!==r&&\\\"string\\\"==typeof(n=t[e+\\\"src\\\"])&&n.indexOf(\\\":\\\")>0)continue;i[e]=c(t[e])}return i}return Array.isArray(t)?t.map(c):l.isTypedArray(t)?l.simpleMap(t,l.identity):l.isJSDate(t)?l.ms2DateTimeLocal(+t):t}var u={data:(a||[]).map(function(t){var r=c(t);return e&&delete r.fit,r})};return e||(u.layout=c(o)),t.framework&&t.framework.isPolar&&(u=t.framework.getConfig()),s&&(u.frames=c(s)),\\\"object\\\"===n?u:JSON.stringify(u)},v.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r<e.length;r++)switch((n=e[r]).type){case\\\"replace\\\":i=n.value;var s=(a[n.index]||{}).name,l=i.name;a[n.index]=o[l]=i,l!==s&&(delete o[s],o[l]=i);break;case\\\"insert\\\":o[(i=n.value).name]=i,a.splice(n.index,0,i);break;case\\\"delete\\\":delete o[(i=a[n.index]).name],a.splice(n.index,1)}return Promise.resolve()},v.computeFrame=function(t,e){var r,n,i,a,o=t._transitionData._frameHash;if(!e)throw new Error(\\\"computeFrame must be given a string frame name\\\");var s=o[e.toString()];if(!s)return!1;for(var l=[s],c=[s.name];s.baseframe&&(s=o[s.baseframe.toString()])&&-1===c.indexOf(s.name);)l.push(s),c.push(s.name);for(var u={};s=l.pop();)if(s.layout&&(u.layout=v.extendLayout(u.layout,s.layout)),s.data){if(u.data||(u.data=[]),!(n=s.traces))for(n=[],r=0;r<s.data.length;r++)n[r]=r;for(u.traces||(u.traces=[]),r=0;r<s.data.length;r++)null!=(i=n[r])&&(-1===(a=u.traces.indexOf(i))&&(a=u.data.length,u.traces[a]=i),u.data[a]=v.extendTrace(u.data[a],s.data[r]))}return u},v.recomputeFrameHash=function(t){for(var e=t._transitionData._frameHash={},r=t._transitionData._frames,n=0;n<r.length;n++){var i=r[n];i&&i.name&&(e[i.name]=i)}},v.extendObjectWithContainers=function(t,e,r){var n,i,a,o,s,c,u,f=l.extendDeepNoArrays({},e||{}),h=l.expandObjectPaths(f),p={};if(r&&r.length)for(a=0;a<r.length;a++)void 0===(i=(n=l.nestedProperty(h,r[a])).get())?l.nestedProperty(p,r[a]).set(null):(n.set(null),l.nestedProperty(p,r[a]).set(i));if(t=l.extendDeepNoArrays(t||{},h),r&&r.length)for(a=0;a<r.length;a++)if(c=l.nestedProperty(p,r[a]).get()){for(u=(s=l.nestedProperty(t,r[a])).get(),Array.isArray(u)||(u=[],s.set(u)),o=0;o<c.length;o++){var d=c[o];u[o]=null===d?null:v.extendObjectWithContainers(u[o],d)}s.set(u)}return t},v.dataArrayContainers=[\\\"transforms\\\",\\\"dimensions\\\"],v.layoutArrayContainers=a.layoutArrayContainers,v.extendTrace=function(t,e){return v.extendObjectWithContainers(t,e,v.dataArrayContainers)},v.extendLayout=function(t,e){return v.extendObjectWithContainers(t,e,v.layoutArrayContainers)},v.transition=function(t,e,r,n,i,o){var s,c,u=Array.isArray(e)?e.length:0,f=n.slice(0,u),h=[];var p=!1;for(s=0;s<f.length;s++){c=f[s];t._fullData[c]._module}var d=[v.previousPromises,function(){if(t._transitionData)return t._transitioning=!1,function(t){var e=Promise.resolve();if(!t)return e;for(;t.length;)e=e.then(t.shift());return e}(t._transitionData._interruptCallbacks)},function(){var n;for(n=0;n<f.length;n++){var i=f[n],a=t._fullData[i]._module;a&&(a.animatable&&h.push(i),t.data[f[n]]=v.extendTrace(t.data[f[n]],e[n]))}var o=l.expandObjectPaths(l.extendDeepNoArrays({},r)),s=/^[xy]axis[0-9]*$/;for(var c in o)s.test(c)&&delete o[c].range;return v.extendLayout(t.layout,o),delete t.calcdata,v.supplyDefaults(t),v.doCalcdata(t),Promise.resolve()},v.rehover,function(){return t.emit(\\\"plotly_transitioning\\\",[]),new Promise(function(e){t._transitioning=!0,o.duration>0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push(function(){p=!0}),i.redraw&&t._transitionData._interruptCallbacks.push(function(){return a.call(\\\"redraw\\\",t)}),t._transitionData._interruptCallbacks.push(function(){t.emit(\\\"plotly_transitioninterrupted\\\",[])});var n,s,c=0,u=0;function f(){return c++,function(){var r;u++,p||u!==c||(r=e,t._transitionData&&(function(t){if(t)for(;t.length;)t.shift()}(t._transitionData._interruptCallbacks),Promise.resolve().then(function(){if(i.redraw)return a.call(\\\"redraw\\\",t)}).then(function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit(\\\"plotly_transitioned\\\",[])}).then(r)))}}var d=t._fullLayout._basePlotModules,g=!1;if(r)for(s=0;s<d.length;s++)if(d[s].transitionAxes){var v=l.expandObjectPaths(r);g=d[s].transitionAxes(t,v,o,f)||g}for(g?((n=l.extendFlat({},o)).duration=0,h=null):n=o,s=0;s<d.length;s++)d[s].plot(t,h,n,f);setTimeout(f())})}],g=l.syncOrAsync(d,t);return g&&g.then||(g=Promise.resolve()),g.then(function(){return t})},v.doCalcdata=function(t,e){var r,n,i,s,c=f.list(t),h=t._fullData,p=t._fullLayout,d=new Array(h.length),g=(t.calcdata||[]).slice(0);for(t.calcdata=d,p._numBoxes=0,p._numViolins=0,p._violinScaleGroupStats={},t._hmpixcount=0,t._hmlumcount=0,p._piecolormap={},i=0;i<h.length;i++)Array.isArray(e)&&-1===e.indexOf(i)&&(d[i]=g[i]);for(i=0;i<h.length;i++)(r=h[i])._arrayAttrs=o.findArrayAttributes(r),r._extremes={};var v=p._subplots.polar||[];for(i=0;i<v.length;i++)c.push(p[v[i]].radialaxis,p[v[i]].angularaxis);T(c);var y=!1;for(i=0;i<h.length;i++)if(!0===(r=h[i]).visible&&r.transforms){if((n=r._module)&&n.calc){var x=n.calc(t,r);x[0]&&x[0].t&&x[0].t._scene&&delete x[0].t._scene.dirty}for(s=0;s<r.transforms.length;s++){var b=r.transforms[s];(n=m[b.type])&&n.calcTransform&&(r._hasCalcTransform=!0,y=!0,n.calcTransform(t,r,b))}}function _(e,i){if(r=h[e],!!(n=r._module).isContainer===i){var a=[];if(!0===r.visible){delete r._indexToPoints;var o=r.transforms||[];for(s=o.length-1;s>=0;s--)if(o[s].enabled){r._indexToPoints=o[s]._indexToPoints;break}n&&n.calc&&(a=n.calc(t,r))}Array.isArray(a)&&a[0]||(a=[{x:u,y:u}]),a[0].t||(a[0].t={}),a[0].trace=r,d[e]=a}}for(y&&T(c),i=0;i<h.length;i++)_(i,!0);for(i=0;i<h.length;i++)_(i,!1);!function(t){var e,r,n,i=t._fullLayout,a=i._visibleModules,o={};for(r=0;r<a.length;r++){var s=a[r],c=s.crossTraceCalc;if(c){var u=s.basePlotModule.name;o[u]?l.pushUnique(o[u],c):o[u]=[c]}}for(n in o){var f=o[n],h=i._subplots[n];if(Array.isArray(h))for(e=0;e<h.length;e++){var p=h[e],d=\\\"cartesian\\\"===n?i._plots[p]:i[p];for(r=0;r<f.length;r++)f[r](t,d,p)}else for(r=0;r<f.length;r++)f[r](t)}}(t),a.getComponentMethod(\\\"fx\\\",\\\"calc\\\")(t),a.getComponentMethod(\\\"errorbars\\\",\\\"calc\\\")(t)},v.rehover=function(t){t._fullLayout._rehover&&t._fullLayout._rehover()},v.generalUpdatePerTraceModule=function(t,e,r,n){var i,a=e.traceHash,o={};for(i=0;i<r.length;i++){var s=r[i],c=s[0].trace;c.visible&&(o[c.type]=o[c.type]||[],o[c.type].push(s))}for(var u in a)if(!o[u]){var f=a[u][0];f[0].trace.visible=!1,o[u]=[f]}for(var h in o){var p=o[h];p[0][0].trace._module.plot(t,e,l.filterVisible(p),n)}e.traceHash=o}},{\\\"../components/color\\\":570,\\\"../constants/numerical\\\":673,\\\"../lib\\\":696,\\\"../plot_api/plot_schema\\\":733,\\\"../plot_api/plot_template\\\":734,\\\"../plots/cartesian/axis_ids\\\":747,\\\"../registry\\\":827,\\\"./animation_attributes\\\":739,\\\"./attributes\\\":741,\\\"./command\\\":769,\\\"./font_attributes\\\":771,\\\"./frame_attributes\\\":772,\\\"./layout_attributes\\\":799,d3:148,\\\"fast-isnumeric\\\":214}],809:[function(t,e,r){\\\"use strict\\\";e.exports={attr:\\\"subplot\\\",name:\\\"polar\\\",axisNames:[\\\"angularaxis\\\",\\\"radialaxis\\\"],axisName2dataArray:{angularaxis:\\\"theta\\\",radialaxis:\\\"r\\\"},layerNames:[\\\"draglayer\\\",\\\"plotbg\\\",\\\"backplot\\\",\\\"angular-grid\\\",\\\"radial-grid\\\",\\\"frontplot\\\",\\\"angular-line\\\",\\\"radial-line\\\",\\\"angular-axis\\\",\\\"radial-axis\\\"],radialDragBoxSize:50,angularDragBoxSize:30,cornerLen:25,cornerHalfWidth:2,MINDRAG:8,MINZOOM:20,OFFEDGE:20}},{}],810:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../lib/polygon\\\").tester,a=n.findIndexOfMin,o=n.isAngleInsideSector,s=n.angleDelta,l=n.angleDist;function c(t,e,r,n){var i,a,o=n[0],s=n[1],l=f(Math.sin(e)-Math.sin(t)),c=f(Math.cos(e)-Math.cos(t)),u=Math.tan(r),h=f(1/u),p=l/c,d=s-p*o;return h?l&&c?a=u*(i=d/(u-p)):c?(i=s*h,a=s):(i=o,a=o*u):l&&c?(i=0,a=d):c?(i=0,a=s):i=a=NaN,[i,a]}function u(t,e,r,i){return n.isFullCircle([e,r])?function(t,e){var r,n=e.length,i=new Array(n+1);for(r=0;r<n;r++){var a=e[r];i[r]=[t*Math.cos(a),t*Math.sin(a)]}return i[r]=i[0].slice(),i}(t,i):function(t,e,r,i){var s,u,f=i.length,h=[];function p(e){return[t*Math.cos(e),t*Math.sin(e)]}function d(t,e,r){return c(t,e,r,p(t))}function g(t){return n.mod(t,f)}function v(t){return o(t,[e,r])}var m=a(i,function(t){return v(t)?l(t,e):1/0}),y=d(i[m],i[g(m-1)],e);for(h.push(y),s=m,u=0;u<f;s++,u++){var x=i[g(s)];if(!v(x))break;h.push(p(x))}var b=a(i,function(t){return v(t)?l(t,r):1/0}),_=d(i[b],i[g(b+1)],r);return h.push(_),h.push([0,0]),h.push(h[0].slice()),h}(t,e,r,i)}function f(t){return Math.abs(t)>1e-10?t:0}function h(t,e,r){e=e||0,r=r||0;for(var n=t.length,i=new Array(n),a=0;a<n;a++){var o=t[a];i[a]=[e+o[0],r-o[1]]}return i}e.exports={isPtInsidePolygon:function(t,e,r,n,a){if(!o(e,n))return!1;var s,l;r[0]<r[1]?(s=r[0],l=r[1]):(s=r[1],l=r[0]);var c=i(u(s,n[0],n[1],a)),f=i(u(l,n[0],n[1],a)),h=[t*Math.cos(e),t*Math.sin(e)];return f.contains(h)&&!c.contains(h)},findPolygonOffset:function(t,e,r,n){for(var i=1/0,a=1/0,o=u(t,e,r,n),s=0;s<o.length;s++){var l=o[s];i=Math.min(i,l[0]),a=Math.min(a,-l[1])}return[i,a]},findEnclosingVertexAngles:function(t,e){var r=a(e,function(e){var r=s(e,t);return r>0?r:1/0}),i=n.mod(r+1,e.length);return[e[r],e[i]]},findIntersectionXY:c,findXYatLength:function(t,e,r,n){var i=-e*r,a=e*e+1,o=2*(e*i-r),s=i*i+r*r-t*t,l=Math.sqrt(o*o-4*a*s),c=(-o+l)/(2*a),u=(-o-l)/(2*a);return[[c,e*c+i+n],[u,e*u+i+n]]},clampTiny:f,pathPolygon:function(t,e,r,n,i,a){return\\\"M\\\"+h(u(t,e,r,n),i,a).join(\\\"L\\\")},pathPolygonAnnulus:function(t,e,r,n,i,a,o){var s,l;t<e?(s=t,l=e):(s=e,l=t);var c=h(u(s,r,n,i),a,o);return\\\"M\\\"+h(u(l,r,n,i),a,o).reverse().join(\\\"L\\\")+\\\"M\\\"+c.join(\\\"L\\\")}}},{\\\"../../lib\\\":696,\\\"../../lib/polygon\\\":708}],811:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../get_data\\\").getSubplotCalcData,i=t(\\\"../../lib\\\").counterRegex,a=t(\\\"./polar\\\"),o=t(\\\"./constants\\\"),s=o.attr,l=o.name,c=i(l),u={};u[s]={valType:\\\"subplotid\\\",dflt:l,editType:\\\"calc\\\"},e.exports={attr:s,name:l,idRoot:l,idRegex:c,attrRegex:c,attributes:u,layoutAttributes:t(\\\"./layout_attributes\\\"),supplyLayoutDefaults:t(\\\"./layout_defaults\\\"),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots[l],o=0;o<i.length;o++){var s=i[o],c=n(r,l,s),u=e[s]._subplot;u||(u=a(t,s),e[s]._subplot=u),u.plot(c,e,t._promises)}},clean:function(t,e,r,n){for(var i=n._subplots[l]||[],a=n._has&&n._has(\\\"gl\\\"),o=e._has&&e._has(\\\"gl\\\"),s=a&&!o,c=0;c<i.length;c++){var u=i[c],f=n[u]._subplot;if(!e[u]&&f)for(var h in f.framework.remove(),f.layers[\\\"radial-axis-title\\\"].remove(),f.clipPaths)f.clipPaths[h].remove();s&&f._scene&&(f._scene.destroy(),f._scene=null)}},toSVG:t(\\\"../cartesian\\\").toSVG}},{\\\"../../lib\\\":696,\\\"../cartesian\\\":756,\\\"../get_data\\\":781,\\\"./constants\\\":809,\\\"./layout_attributes\\\":812,\\\"./layout_defaults\\\":813,\\\"./polar\\\":820}],812:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color/attributes\\\"),i=t(\\\"../cartesian/layout_attributes\\\"),a=t(\\\"../domain\\\").attributes,o=t(\\\"../../lib\\\").extendFlat,s=t(\\\"../../plot_api/edit_types\\\").overrideAll,l=s({color:i.color,showline:o({},i.showline,{dflt:!0}),linecolor:i.linecolor,linewidth:i.linewidth,showgrid:o({},i.showgrid,{dflt:!0}),gridcolor:i.gridcolor,gridwidth:i.gridwidth},\\\"plot\\\",\\\"from-root\\\"),c=s({tickmode:i.tickmode,nticks:i.nticks,tick0:i.tick0,dtick:i.dtick,tickvals:i.tickvals,ticktext:i.ticktext,ticks:i.ticks,ticklen:i.ticklen,tickwidth:i.tickwidth,tickcolor:i.tickcolor,showticklabels:i.showticklabels,showtickprefix:i.showtickprefix,tickprefix:i.tickprefix,showticksuffix:i.showticksuffix,ticksuffix:i.ticksuffix,showexponent:i.showexponent,exponentformat:i.exponentformat,separatethousands:i.separatethousands,tickfont:i.tickfont,tickangle:i.tickangle,tickformat:i.tickformat,tickformatstops:i.tickformatstops,layer:i.layer},\\\"plot\\\",\\\"from-root\\\"),u={visible:o({},i.visible,{dflt:!0}),type:i.type,autorange:o({},i.autorange,{editType:\\\"plot\\\"}),rangemode:{valType:\\\"enumerated\\\",values:[\\\"tozero\\\",\\\"nonnegative\\\",\\\"normal\\\"],dflt:\\\"tozero\\\",editType:\\\"calc\\\"},range:o({},i.range,{items:[{valType:\\\"any\\\",editType:\\\"plot\\\",impliedEdits:{\\\"^autorange\\\":!1}},{valType:\\\"any\\\",editType:\\\"plot\\\",impliedEdits:{\\\"^autorange\\\":!1}}],editType:\\\"plot\\\"}),categoryorder:i.categoryorder,categoryarray:i.categoryarray,angle:{valType:\\\"angle\\\",editType:\\\"plot\\\"},side:{valType:\\\"enumerated\\\",values:[\\\"clockwise\\\",\\\"counterclockwise\\\"],dflt:\\\"clockwise\\\",editType:\\\"plot\\\"},title:o({},i.title,{editType:\\\"plot\\\",dflt:\\\"\\\"}),titlefont:s(i.titlefont,\\\"plot\\\",\\\"from-root\\\"),hoverformat:i.hoverformat,editType:\\\"calc\\\"};o(u,l,c);var f={visible:o({},i.visible,{dflt:!0}),type:{valType:\\\"enumerated\\\",values:[\\\"-\\\",\\\"linear\\\",\\\"category\\\"],dflt:\\\"-\\\",editType:\\\"calc\\\",_noTemplating:!0},categoryorder:i.categoryorder,categoryarray:i.categoryarray,thetaunit:{valType:\\\"enumerated\\\",values:[\\\"radians\\\",\\\"degrees\\\"],dflt:\\\"degrees\\\",editType:\\\"calc\\\"},period:{valType:\\\"number\\\",editType:\\\"calc\\\",min:0},direction:{valType:\\\"enumerated\\\",values:[\\\"counterclockwise\\\",\\\"clockwise\\\"],dflt:\\\"counterclockwise\\\",editType:\\\"calc\\\"},rotation:{valType:\\\"angle\\\",editType:\\\"calc\\\"},hoverformat:i.hoverformat,editType:\\\"calc\\\"};o(f,l,c),e.exports={domain:a({name:\\\"polar\\\",editType:\\\"plot\\\"}),sector:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\",editType:\\\"plot\\\"},{valType:\\\"number\\\",editType:\\\"plot\\\"}],dflt:[0,360],editType:\\\"plot\\\"},hole:{valType:\\\"number\\\",min:0,max:1,dflt:0,editType:\\\"plot\\\"},bgcolor:{valType:\\\"color\\\",editType:\\\"plot\\\",dflt:n.background},radialaxis:u,angularaxis:f,gridshape:{valType:\\\"enumerated\\\",values:[\\\"circular\\\",\\\"linear\\\"],dflt:\\\"circular\\\",editType:\\\"plot\\\"},editType:\\\"calc\\\"}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib\\\":696,\\\"../../plot_api/edit_types\\\":727,\\\"../cartesian/layout_attributes\\\":757,\\\"../domain\\\":770}],813:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../plot_api/plot_template\\\"),o=t(\\\"../subplot_defaults\\\"),s=t(\\\"../get_data\\\").getSubplotData,l=t(\\\"../cartesian/tick_value_defaults\\\"),c=t(\\\"../cartesian/tick_mark_defaults\\\"),u=t(\\\"../cartesian/tick_label_defaults\\\"),f=t(\\\"../cartesian/category_order_defaults\\\"),h=t(\\\"../cartesian/line_grid_defaults\\\"),p=t(\\\"../cartesian/axis_autotype\\\"),d=t(\\\"./layout_attributes\\\"),g=t(\\\"./set_convert\\\"),v=t(\\\"./constants\\\"),m=v.axisNames;function y(t,e,r,o){var p=r(\\\"bgcolor\\\");o.bgColor=i.combine(p,o.paper_bgcolor);var y=r(\\\"sector\\\");r(\\\"hole\\\");var b,_=s(o.fullData,v.name,o.id),w=o.layoutOut;function k(t,e){return r(b+\\\".\\\"+t,e)}for(var M=0;M<m.length;M++){b=m[M],n.isPlainObject(t[b])||(t[b]={});var A=t[b],T=a.newContainer(e,b);T._id=T._name=b,T._traceIndices=_.map(function(t){return t._expandedIndex});var S=v.axisName2dataArray[b],E=x(A,T,k,_,S);f(A,T,k,{axData:_,dataAttr:S});var C,L,z=k(\\\"visible\\\");switch(g(T,e,w),z&&(L=(C=k(\\\"color\\\"))===A.color?C:o.font.color),T._m=1,b){case\\\"radialaxis\\\":var O=k(\\\"autorange\\\",!T.isValidRange(A.range));A.autorange=O,!O||\\\"linear\\\"!==E&&\\\"-\\\"!==E||k(\\\"rangemode\\\"),\\\"reversed\\\"===O&&(T._m=-1),k(\\\"range\\\"),T.cleanRange(\\\"range\\\",{dfltRange:[0,1]}),z&&(k(\\\"side\\\"),k(\\\"angle\\\",y[0]),k(\\\"title\\\"),n.coerceFont(k,\\\"titlefont\\\",{family:o.font.family,size:Math.round(1.2*o.font.size),color:L}));break;case\\\"angularaxis\\\":if(\\\"date\\\"===E){n.log(\\\"Polar plots do not support date angular axes yet.\\\");for(var I=0;I<_.length;I++)_[I].visible=!1;E=A.type=T.type=\\\"linear\\\"}k(\\\"linear\\\"===E?\\\"thetaunit\\\":\\\"period\\\");var P=k(\\\"direction\\\");k(\\\"rotation\\\",{counterclockwise:0,clockwise:90}[P])}if(z)l(A,T,k,T.type),u(A,T,k,T.type,{tickSuffixDflt:\\\"degrees\\\"===T.thetaunit?\\\"\\\\xb0\\\":void 0}),c(A,T,k,{outerTicks:!0}),k(\\\"showticklabels\\\")&&(n.coerceFont(k,\\\"tickfont\\\",{family:o.font.family,size:o.font.size,color:L}),k(\\\"tickangle\\\"),k(\\\"tickformat\\\")),h(A,T,k,{dfltColor:C,bgColor:o.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:d[b]}),k(\\\"layer\\\");\\\"category\\\"!==E&&k(\\\"hoverformat\\\"),T._input=A}\\\"category\\\"===e.angularaxis.type&&r(\\\"gridshape\\\")}function x(t,e,r,n,i){if(\\\"-\\\"===r(\\\"type\\\")){for(var a,o=0;o<n.length;o++)if(n[o].visible){a=n[o];break}a&&a[i]&&(e.type=p(a[i],\\\"gregorian\\\")),\\\"-\\\"===e.type?e.type=\\\"linear\\\":t.type=e.type}return e.type}e.exports=function(t,e,r){o(t,e,r,{type:v.name,attributes:d,handleDefaults:y,font:e.font,paper_bgcolor:e.paper_bgcolor,fullData:r,layoutOut:e})}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../cartesian/axis_autotype\\\":745,\\\"../cartesian/category_order_defaults\\\":748,\\\"../cartesian/line_grid_defaults\\\":759,\\\"../cartesian/tick_label_defaults\\\":764,\\\"../cartesian/tick_mark_defaults\\\":765,\\\"../cartesian/tick_value_defaults\\\":766,\\\"../get_data\\\":781,\\\"../subplot_defaults\\\":822,\\\"./constants\\\":809,\\\"./layout_attributes\\\":812,\\\"./set_convert\\\":821}],814:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../../traces/scatter/attributes\\\"),i=n.marker,a=t(\\\"../../../lib/extend\\\").extendFlat;[\\\"Area traces are deprecated!\\\",\\\"Please switch to the *barpolar* trace type.\\\"].join(\\\" \\\");e.exports={r:a({},n.r,{}),t:a({},n.t,{}),marker:{color:a({},i.color,{}),size:a({},i.size,{}),symbol:a({},i.symbol,{}),opacity:a({},i.opacity,{}),editType:\\\"calc\\\"}}},{\\\"../../../lib/extend\\\":685,\\\"../../../traces/scatter/attributes\\\":1043}],815:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../cartesian/layout_attributes\\\"),i=t(\\\"../../../lib/extend\\\").extendFlat,a=t(\\\"../../../plot_api/edit_types\\\").overrideAll,o=[\\\"Legacy polar charts are deprecated!\\\",\\\"Please switch to *polar* subplots.\\\"].join(\\\" \\\"),s=i({},n.domain,{});function l(t,e){return i({},e,{showline:{valType:\\\"boolean\\\"},showticklabels:{valType:\\\"boolean\\\"},tickorientation:{valType:\\\"enumerated\\\",values:[\\\"horizontal\\\",\\\"vertical\\\"]},ticklen:{valType:\\\"number\\\",min:0},tickcolor:{valType:\\\"color\\\"},ticksuffix:{valType:\\\"string\\\"},endpadding:{valType:\\\"number\\\",description:o},visible:{valType:\\\"boolean\\\"}})}e.exports=a({radialaxis:l(0,{range:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\"},{valType:\\\"number\\\"}]},domain:s,orientation:{valType:\\\"number\\\"}}),angularaxis:l(0,{range:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\",dflt:0},{valType:\\\"number\\\",dflt:360}]},domain:s}),layout:{direction:{valType:\\\"enumerated\\\",values:[\\\"clockwise\\\",\\\"counterclockwise\\\"]},orientation:{valType:\\\"angle\\\"}}},\\\"plot\\\",\\\"nested\\\")},{\\\"../../../lib/extend\\\":685,\\\"../../../plot_api/edit_types\\\":727,\\\"../../cartesian/layout_attributes\\\":757}],816:[function(t,e,r){\\\"use strict\\\";(e.exports=t(\\\"./micropolar\\\")).manager=t(\\\"./micropolar_manager\\\")},{\\\"./micropolar\\\":817,\\\"./micropolar_manager\\\":818}],817:[function(t,e,r){var n=t(\\\"d3\\\"),i=t(\\\"../../../lib\\\").extendDeepAll,a=t(\\\"../../../constants/alignment\\\").MID_SHIFT,o=e.exports={version:\\\"0.2.2\\\"};o.Axis=function(){var t,e,r,s,l={data:[],layout:{}},c={},u={},f=n.dispatch(\\\"hover\\\"),h={};return h.render=function(c){return function(c){e=c||e;var f=l.data,h=l.layout;(\\\"string\\\"==typeof e||e.nodeName)&&(e=n.select(e)),e.datum(f).each(function(e,l){var c=e.slice();u={data:o.util.cloneJson(c),layout:o.util.cloneJson(h)};var f=0;c.forEach(function(t,e){t.color||(t.color=h.defaultColorRange[f],f=(f+1)%h.defaultColorRange.length),t.strokeColor||(t.strokeColor=\\\"LinePlot\\\"===t.geometry?t.color:n.rgb(t.color).darker().toString()),u.data[e].color=t.color,u.data[e].strokeColor=t.strokeColor,u.data[e].strokeDash=t.strokeDash,u.data[e].strokeSize=t.strokeSize});var p=c.filter(function(t,e){var r=t.visible;return\\\"undefined\\\"==typeof r||!0===r}),d=!1,g=p.map(function(t,e){return d=d||\\\"undefined\\\"!=typeof t.groupId,t});if(d){var v=n.nest().key(function(t,e){return\\\"undefined\\\"!=typeof t.groupId?t.groupId:\\\"unstacked\\\"}).entries(g),m=[],y=v.map(function(t,e){if(\\\"unstacked\\\"===t.key)return t.values;var r=t.values[0].r.map(function(t,e){return 0});return t.values.forEach(function(t,e,n){t.yStack=[r],m.push(r),r=o.util.sumArrays(t.r,r)}),t.values});p=n.merge(y)}p.forEach(function(t,e){t.t=Array.isArray(t.t[0])?t.t:[t.t],t.r=Array.isArray(t.r[0])?t.r:[t.r]});var x=Math.min(h.width-h.margin.left-h.margin.right,h.height-h.margin.top-h.margin.bottom)/2;x=Math.max(10,x);var b,_=[h.margin.left+x,h.margin.top+x];b=d?[0,n.max(o.util.sumArrays(o.util.arrayLast(p).r[0],o.util.arrayLast(m)))]:n.extent(o.util.flattenArray(p.map(function(t,e){return t.r}))),h.radialAxis.domain!=o.DATAEXTENT&&(b[0]=0),r=n.scale.linear().domain(h.radialAxis.domain!=o.DATAEXTENT&&h.radialAxis.domain?h.radialAxis.domain:b).range([0,x]),u.layout.radialAxis.domain=r.domain();var w,k=o.util.flattenArray(p.map(function(t,e){return t.t})),M=\\\"string\\\"==typeof k[0];M&&(k=o.util.deduplicate(k),w=k.slice(),k=n.range(k.length),p=p.map(function(t,e){var r=t;return t.t=[k],d&&(r.yStack=t.yStack),r}));var A=p.filter(function(t,e){return\\\"LinePlot\\\"===t.geometry||\\\"DotPlot\\\"===t.geometry}).length===p.length,T=null===h.needsEndSpacing?M||!A:h.needsEndSpacing,S=h.angularAxis.domain&&h.angularAxis.domain!=o.DATAEXTENT&&!M&&h.angularAxis.domain[0]>=0?h.angularAxis.domain:n.extent(k),E=Math.abs(k[1]-k[0]);A&&!M&&(E=0);var C=S.slice();T&&M&&(C[1]+=E);var L=h.angularAxis.ticksCount||4;L>8&&(L=L/(L/8)+L%8),h.angularAxis.ticksStep&&(L=(C[1]-C[0])/L);var z=h.angularAxis.ticksStep||(C[1]-C[0])/(L*(h.minorTicks+1));w&&(z=Math.max(Math.round(z),1)),C[2]||(C[2]=z);var O=n.range.apply(this,C);if(O=O.map(function(t,e){return parseFloat(t.toPrecision(12))}),s=n.scale.linear().domain(C.slice(0,2)).range(\\\"clockwise\\\"===h.direction?[0,360]:[360,0]),u.layout.angularAxis.domain=s.domain(),u.layout.angularAxis.endPadding=T?E:0,\\\"undefined\\\"==typeof(t=n.select(this).select(\\\"svg.chart-root\\\"))||t.empty()){var I=(new DOMParser).parseFromString(\\\"<svg xmlns='http://www.w3.org/2000/svg' class='chart-root'>' + '<g class='outer-group'>' + '<g class='chart-group'>' + '<circle class='background-circle'></circle>' + '<g class='geometry-group'></g>' + '<g class='radial axis-group'>' + '<circle class='outside-circle'></circle>' + '</g>' + '<g class='angular axis-group'></g>' + '<g class='guides-group'><line></line><circle r='0'></circle></g>' + '</g>' + '<g class='legend-group'></g>' + '<g class='tooltips-group'></g>' + '<g class='title-group'><text></text></g>' + '</g>' + '</svg>\\\",\\\"application/xml\\\"),P=this.appendChild(this.ownerDocument.importNode(I.documentElement,!0));t=n.select(P)}t.select(\\\".guides-group\\\").style({\\\"pointer-events\\\":\\\"none\\\"}),t.select(\\\".angular.axis-group\\\").style({\\\"pointer-events\\\":\\\"none\\\"}),t.select(\\\".radial.axis-group\\\").style({\\\"pointer-events\\\":\\\"none\\\"});var D,R=t.select(\\\".chart-group\\\"),B={fill:\\\"none\\\",stroke:h.tickColor},F={\\\"font-size\\\":h.font.size,\\\"font-family\\\":h.font.family,fill:h.font.color,\\\"text-shadow\\\":[\\\"-1px 0px\\\",\\\"1px -1px\\\",\\\"-1px 1px\\\",\\\"1px 1px\\\"].map(function(t,e){return\\\" \\\"+t+\\\" 0 \\\"+h.font.outlineColor}).join(\\\",\\\")};if(h.showLegend){D=t.select(\\\".legend-group\\\").attr({transform:\\\"translate(\\\"+[x,h.margin.top]+\\\")\\\"}).style({display:\\\"block\\\"});var N=p.map(function(t,e){var r=o.util.cloneJson(t);return r.symbol=\\\"DotPlot\\\"===t.geometry?t.dotType||\\\"circle\\\":\\\"LinePlot\\\"!=t.geometry?\\\"square\\\":\\\"line\\\",r.visibleInLegend=\\\"undefined\\\"==typeof t.visibleInLegend||t.visibleInLegend,r.color=\\\"LinePlot\\\"===t.geometry?t.strokeColor:t.color,r});o.Legend().config({data:p.map(function(t,e){return t.name||\\\"Element\\\"+e}),legendConfig:i({},o.Legend.defaultConfig().legendConfig,{container:D,elements:N,reverseOrder:h.legend.reverseOrder})})();var j=D.node().getBBox();x=Math.min(h.width-j.width-h.margin.left-h.margin.right,h.height-h.margin.top-h.margin.bottom)/2,x=Math.max(10,x),_=[h.margin.left+x,h.margin.top+x],r.range([0,x]),u.layout.radialAxis.domain=r.domain(),D.attr(\\\"transform\\\",\\\"translate(\\\"+[_[0]+x,_[1]-x]+\\\")\\\")}else D=t.select(\\\".legend-group\\\").style({display:\\\"none\\\"});t.attr({width:h.width,height:h.height}).style({opacity:h.opacity}),R.attr(\\\"transform\\\",\\\"translate(\\\"+_+\\\")\\\").style({cursor:\\\"crosshair\\\"});var V=[(h.width-(h.margin.left+h.margin.right+2*x+(j?j.width:0)))/2,(h.height-(h.margin.top+h.margin.bottom+2*x))/2];if(V[0]=Math.max(0,V[0]),V[1]=Math.max(0,V[1]),t.select(\\\".outer-group\\\").attr(\\\"transform\\\",\\\"translate(\\\"+V+\\\")\\\"),h.title){var U=t.select(\\\"g.title-group text\\\").style(F).text(h.title),q=U.node().getBBox();U.attr({x:_[0]-q.width/2,y:_[1]-x-20})}var H=t.select(\\\".radial.axis-group\\\");if(h.radialAxis.gridLinesVisible){var G=H.selectAll(\\\"circle.grid-circle\\\").data(r.ticks(5));G.enter().append(\\\"circle\\\").attr({class:\\\"grid-circle\\\"}).style(B),G.attr(\\\"r\\\",r),G.exit().remove()}H.select(\\\"circle.outside-circle\\\").attr({r:x}).style(B);var W=t.select(\\\"circle.background-circle\\\").attr({r:x}).style({fill:h.backgroundColor,stroke:h.stroke});function Y(t,e){return s(t)%360+h.orientation}if(h.radialAxis.visible){var X=n.svg.axis().scale(r).ticks(5).tickSize(5);H.call(X).attr({transform:\\\"rotate(\\\"+h.radialAxis.orientation+\\\")\\\"}),H.selectAll(\\\".domain\\\").style(B),H.selectAll(\\\"g>text\\\").text(function(t,e){return this.textContent+h.radialAxis.ticksSuffix}).style(F).style({\\\"text-anchor\\\":\\\"start\\\"}).attr({x:0,y:0,dx:0,dy:0,transform:function(t,e){return\\\"horizontal\\\"===h.radialAxis.tickOrientation?\\\"rotate(\\\"+-h.radialAxis.orientation+\\\") translate(\\\"+[0,F[\\\"font-size\\\"]]+\\\")\\\":\\\"translate(\\\"+[0,F[\\\"font-size\\\"]]+\\\")\\\"}}),H.selectAll(\\\"g>line\\\").style({stroke:\\\"black\\\"})}var Z=t.select(\\\".angular.axis-group\\\").selectAll(\\\"g.angular-tick\\\").data(O),$=Z.enter().append(\\\"g\\\").classed(\\\"angular-tick\\\",!0);Z.attr({transform:function(t,e){return\\\"rotate(\\\"+Y(t)+\\\")\\\"}}).style({display:h.angularAxis.visible?\\\"block\\\":\\\"none\\\"}),Z.exit().remove(),$.append(\\\"line\\\").classed(\\\"grid-line\\\",!0).classed(\\\"major\\\",function(t,e){return e%(h.minorTicks+1)==0}).classed(\\\"minor\\\",function(t,e){return!(e%(h.minorTicks+1)==0)}).style(B),$.selectAll(\\\".minor\\\").style({stroke:h.minorTickColor}),Z.select(\\\"line.grid-line\\\").attr({x1:h.tickLength?x-h.tickLength:0,x2:x}).style({display:h.angularAxis.gridLinesVisible?\\\"block\\\":\\\"none\\\"}),$.append(\\\"text\\\").classed(\\\"axis-text\\\",!0).style(F);var J=Z.select(\\\"text.axis-text\\\").attr({x:x+h.labelOffset,dy:a+\\\"em\\\",transform:function(t,e){var r=Y(t),n=x+h.labelOffset,i=h.angularAxis.tickOrientation;return\\\"horizontal\\\"==i?\\\"rotate(\\\"+-r+\\\" \\\"+n+\\\" 0)\\\":\\\"radial\\\"==i?r<270&&r>90?\\\"rotate(180 \\\"+n+\\\" 0)\\\":null:\\\"rotate(\\\"+(r<=180&&r>0?-90:90)+\\\" \\\"+n+\\\" 0)\\\"}}).style({\\\"text-anchor\\\":\\\"middle\\\",display:h.angularAxis.labelsVisible?\\\"block\\\":\\\"none\\\"}).text(function(t,e){return e%(h.minorTicks+1)!=0?\\\"\\\":w?w[t]+h.angularAxis.ticksSuffix:t+h.angularAxis.ticksSuffix}).style(F);h.angularAxis.rewriteTicks&&J.text(function(t,e){return e%(h.minorTicks+1)!=0?\\\"\\\":h.angularAxis.rewriteTicks(this.textContent,e)});var K=n.max(R.selectAll(\\\".angular-tick text\\\")[0].map(function(t,e){return t.getCTM().e+t.getBBox().width}));D.attr({transform:\\\"translate(\\\"+[x+K,h.margin.top]+\\\")\\\"});var Q=t.select(\\\"g.geometry-group\\\").selectAll(\\\"g\\\").size()>0,tt=t.select(\\\"g.geometry-group\\\").selectAll(\\\"g.geometry\\\").data(p);if(tt.enter().append(\\\"g\\\").attr({class:function(t,e){return\\\"geometry geometry\\\"+e}}),tt.exit().remove(),p[0]||Q){var et=[];p.forEach(function(t,e){var n={};n.radialScale=r,n.angularScale=s,n.container=tt.filter(function(t,r){return r==e}),n.geometry=t.geometry,n.orientation=h.orientation,n.direction=h.direction,n.index=e,et.push({data:t,geometryConfig:n})});var rt=n.nest().key(function(t,e){return\\\"undefined\\\"!=typeof t.data.groupId||\\\"unstacked\\\"}).entries(et),nt=[];rt.forEach(function(t,e){\\\"unstacked\\\"===t.key?nt=nt.concat(t.values.map(function(t,e){return[t]})):nt.push(t.values)}),nt.forEach(function(t,e){var r;r=Array.isArray(t)?t[0].geometryConfig.geometry:t.geometryConfig.geometry;var n=t.map(function(t,e){return i(o[r].defaultConfig(),t)});o[r]().config(n)()})}var it,at,ot=t.select(\\\".guides-group\\\"),st=t.select(\\\".tooltips-group\\\"),lt=o.tooltipPanel().config({container:st,fontSize:8})(),ct=o.tooltipPanel().config({container:st,fontSize:8})(),ut=o.tooltipPanel().config({container:st,hasTick:!0})();if(!M){var ft=ot.select(\\\"line\\\").attr({x1:0,y1:0,y2:0}).style({stroke:\\\"grey\\\",\\\"pointer-events\\\":\\\"none\\\"});R.on(\\\"mousemove.angular-guide\\\",function(t,e){var r=o.util.getMousePos(W).angle;ft.attr({x2:-x,transform:\\\"rotate(\\\"+r+\\\")\\\"}).style({opacity:.5});var n=(r+180+360-h.orientation)%360;it=s.invert(n);var i=o.util.convertToCartesian(x+12,r+180);lt.text(o.util.round(it)).move([i[0]+_[0],i[1]+_[1]])}).on(\\\"mouseout.angular-guide\\\",function(t,e){ot.select(\\\"line\\\").style({opacity:0})})}var ht=ot.select(\\\"circle\\\").style({stroke:\\\"grey\\\",fill:\\\"none\\\"});R.on(\\\"mousemove.radial-guide\\\",function(t,e){var n=o.util.getMousePos(W).radius;ht.attr({r:n}).style({opacity:.5}),at=r.invert(o.util.getMousePos(W).radius);var i=o.util.convertToCartesian(n,h.radialAxis.orientation);ct.text(o.util.round(at)).move([i[0]+_[0],i[1]+_[1]])}).on(\\\"mouseout.radial-guide\\\",function(t,e){ht.style({opacity:0}),ut.hide(),lt.hide(),ct.hide()}),t.selectAll(\\\".geometry-group .mark\\\").on(\\\"mouseover.tooltip\\\",function(e,r){var i=n.select(this),a=this.style.fill,s=\\\"black\\\",l=this.style.opacity||1;if(i.attr({\\\"data-opacity\\\":l}),a&&\\\"none\\\"!==a){i.attr({\\\"data-fill\\\":a}),s=n.hsl(a).darker().toString(),i.style({fill:s,opacity:1});var c={t:o.util.round(e[0]),r:o.util.round(e[1])};M&&(c.t=w[e[0]]);var u=\\\"t: \\\"+c.t+\\\", r: \\\"+c.r,f=this.getBoundingClientRect(),h=t.node().getBoundingClientRect(),p=[f.left+f.width/2-V[0]-h.left,f.top+f.height/2-V[1]-h.top];ut.config({color:s}).text(u),ut.move(p)}else a=this.style.stroke||\\\"black\\\",i.attr({\\\"data-stroke\\\":a}),s=n.hsl(a).darker().toString(),i.style({stroke:s,opacity:1})}).on(\\\"mousemove.tooltip\\\",function(t,e){if(0!=n.event.which)return!1;n.select(this).attr(\\\"data-fill\\\")&&ut.show()}).on(\\\"mouseout.tooltip\\\",function(t,e){ut.hide();var r=n.select(this),i=r.attr(\\\"data-fill\\\");i?r.style({fill:i,opacity:r.attr(\\\"data-opacity\\\")}):r.style({stroke:r.attr(\\\"data-stroke\\\"),opacity:r.attr(\\\"data-opacity\\\")})})})}(c),this},h.config=function(t){if(!arguments.length)return l;var e=o.util.cloneJson(t);return e.data.forEach(function(t,e){l.data[e]||(l.data[e]={}),i(l.data[e],o.Axis.defaultConfig().data[0]),i(l.data[e],t)}),i(l.layout,o.Axis.defaultConfig().layout),i(l.layout,e.layout),this},h.getLiveConfig=function(){return u},h.getinputConfig=function(){return c},h.radialScale=function(t){return r},h.angularScale=function(t){return s},h.svg=function(){return t},n.rebind(h,f,\\\"on\\\"),h},o.Axis.defaultConfig=function(t,e){return{data:[{t:[1,2,3,4],r:[10,11,12,13],name:\\\"Line1\\\",geometry:\\\"LinePlot\\\",color:null,strokeDash:\\\"solid\\\",strokeColor:null,strokeSize:\\\"1\\\",visibleInLegend:!0,opacity:1}],layout:{defaultColorRange:n.scale.category10().range(),title:null,height:450,width:500,margin:{top:40,right:40,bottom:40,left:40},font:{size:12,color:\\\"gray\\\",outlineColor:\\\"white\\\",family:\\\"Tahoma, sans-serif\\\"},direction:\\\"clockwise\\\",orientation:0,labelOffset:10,radialAxis:{domain:null,orientation:-45,ticksSuffix:\\\"\\\",visible:!0,gridLinesVisible:!0,tickOrientation:\\\"horizontal\\\",rewriteTicks:null},angularAxis:{domain:[0,360],ticksSuffix:\\\"\\\",visible:!0,gridLinesVisible:!0,labelsVisible:!0,tickOrientation:\\\"horizontal\\\",rewriteTicks:null,ticksCount:null,ticksStep:null},minorTicks:0,tickLength:null,tickColor:\\\"silver\\\",minorTickColor:\\\"#eee\\\",backgroundColor:\\\"none\\\",needsEndSpacing:null,showLegend:!0,legend:{reverseOrder:!1},opacity:1}}},o.util={},o.DATAEXTENT=\\\"dataExtent\\\",o.AREA=\\\"AreaChart\\\",o.LINE=\\\"LinePlot\\\",o.DOT=\\\"DotPlot\\\",o.BAR=\\\"BarChart\\\",o.util._override=function(t,e){for(var r in t)r in e&&(e[r]=t[r])},o.util._extend=function(t,e){for(var r in t)e[r]=t[r]},o.util._rndSnd=function(){return 2*Math.random()-1+(2*Math.random()-1)+(2*Math.random()-1)},o.util.dataFromEquation2=function(t,e){var r=e||6;return n.range(0,360+r,r).map(function(e,r){var n=e*Math.PI/180;return[e,t(n)]})},o.util.dataFromEquation=function(t,e,r){var i=e||6,a=[],o=[];n.range(0,360+i,i).forEach(function(e,r){var n=e*Math.PI/180,i=t(n);a.push(e),o.push(i)});var s={t:a,r:o};return r&&(s.name=r),s},o.util.ensureArray=function(t,e){if(\\\"undefined\\\"==typeof t)return null;var r=[].concat(t);return n.range(e).map(function(t,e){return r[e]||r[0]})},o.util.fillArrays=function(t,e,r){return e.forEach(function(e,n){t[e]=o.util.ensureArray(t[e],r)}),t},o.util.cloneJson=function(t){return JSON.parse(JSON.stringify(t))},o.util.validateKeys=function(t,e){\\\"string\\\"==typeof e&&(e=e.split(\\\".\\\"));var r=e.shift();return t[r]&&(!e.length||objHasKeys(t[r],e))},o.util.sumArrays=function(t,e){return n.zip(t,e).map(function(t,e){return n.sum(t)})},o.util.arrayLast=function(t){return t[t.length-1]},o.util.arrayEqual=function(t,e){for(var r=Math.max(t.length,e.length,1);r-- >=0&&t[r]===e[r];);return-2===r},o.util.flattenArray=function(t){for(var e=[];!o.util.arrayEqual(e,t);)e=t,t=[].concat.apply([],t);return t},o.util.deduplicate=function(t){return t.filter(function(t,e,r){return r.indexOf(t)==e})},o.util.convertToCartesian=function(t,e){var r=e*Math.PI/180;return[t*Math.cos(r),t*Math.sin(r)]},o.util.round=function(t,e){var r=e||2,n=Math.pow(10,r);return Math.round(t*n)/n},o.util.getMousePos=function(t){var e=n.mouse(t.node()),r=e[0],i=e[1],a={};return a.x=r,a.y=i,a.pos=e,a.angle=180*(Math.atan2(i,r)+Math.PI)/Math.PI,a.radius=Math.sqrt(r*r+i*i),a},o.util.duplicatesCount=function(t){for(var e,r={},n={},i=0,a=t.length;i<a;i++)(e=t[i])in r?(r[e]++,n[e]=r[e]):r[e]=1;return n},o.util.duplicates=function(t){return Object.keys(o.util.duplicatesCount(t))},o.util.translator=function(t,e,r,n){if(n){var i=r.slice();r=e,e=i}var a=e.reduce(function(t,e){if(\\\"undefined\\\"!=typeof t)return t[e]},t);\\\"undefined\\\"!=typeof a&&(e.reduce(function(t,r,n){if(\\\"undefined\\\"!=typeof t)return n===e.length-1&&delete t[r],t[r]},t),r.reduce(function(t,e,n){return\\\"undefined\\\"==typeof t[e]&&(t[e]={}),n===r.length-1&&(t[e]=a),t[e]},t))},o.PolyChart=function(){var t=[o.PolyChart.defaultConfig()],e=n.dispatch(\\\"hover\\\"),r={solid:\\\"none\\\",dash:[5,2],dot:[2,5]};function a(){var e=t[0].geometryConfig,i=e.container;\\\"string\\\"==typeof i&&(i=n.select(i)),i.datum(t).each(function(t,i){var a=!!t[0].data.yStack,o=t.map(function(t,e){return a?n.zip(t.data.t[0],t.data.r[0],t.data.yStack[0]):n.zip(t.data.t[0],t.data.r[0])}),s=e.angularScale,l=e.radialScale.domain()[0],c={bar:function(r,i,a){var o=t[a].data,l=e.radialScale(r[1])-e.radialScale(0),c=e.radialScale(r[2]||0),u=o.barWidth;n.select(this).attr({class:\\\"mark bar\\\",d:\\\"M\\\"+[[l+c,-u/2],[l+c,u/2],[c,u/2],[c,-u/2]].join(\\\"L\\\")+\\\"Z\\\",transform:function(t,r){return\\\"rotate(\\\"+(e.orientation+s(t[0]))+\\\")\\\"}})}};c.dot=function(r,i,a){var o=r[2]?[r[0],r[1]+r[2]]:r,s=n.svg.symbol().size(t[a].data.dotSize).type(t[a].data.dotType)(r,i);n.select(this).attr({class:\\\"mark dot\\\",d:s,transform:function(t,r){var n,i,a,s=(n=function(t,r){var n=e.radialScale(t[1]),i=(e.angularScale(t[0])+e.orientation)*Math.PI/180;return{r:n,t:i}}(o),i=n.r*Math.cos(n.t),a=n.r*Math.sin(n.t),{x:i,y:a});return\\\"translate(\\\"+[s.x,s.y]+\\\")\\\"}})};var u=n.svg.line.radial().interpolate(t[0].data.lineInterpolation).radius(function(t){return e.radialScale(t[1])}).angle(function(t){return e.angularScale(t[0])*Math.PI/180});c.line=function(r,i,a){var s=r[2]?o[a].map(function(t,e){return[t[0],t[1]+t[2]]}):o[a];if(n.select(this).each(c.dot).style({opacity:function(e,r){return+t[a].data.dotVisible},fill:d.stroke(r,i,a)}).attr({class:\\\"mark dot\\\"}),!(i>0)){var l=n.select(this.parentNode).selectAll(\\\"path.line\\\").data([0]);l.enter().insert(\\\"path\\\"),l.attr({class:\\\"line\\\",d:u(s),transform:function(t,r){return\\\"rotate(\\\"+(e.orientation+90)+\\\")\\\"},\\\"pointer-events\\\":\\\"none\\\"}).style({fill:function(t,e){return d.fill(r,i,a)},\\\"fill-opacity\\\":0,stroke:function(t,e){return d.stroke(r,i,a)},\\\"stroke-width\\\":function(t,e){return d[\\\"stroke-width\\\"](r,i,a)},\\\"stroke-dasharray\\\":function(t,e){return d[\\\"stroke-dasharray\\\"](r,i,a)},opacity:function(t,e){return d.opacity(r,i,a)},display:function(t,e){return d.display(r,i,a)}})}};var f=e.angularScale.range(),h=Math.abs(f[1]-f[0])/o[0].length*Math.PI/180,p=n.svg.arc().startAngle(function(t){return-h/2}).endAngle(function(t){return h/2}).innerRadius(function(t){return e.radialScale(l+(t[2]||0))}).outerRadius(function(t){return e.radialScale(l+(t[2]||0))+e.radialScale(t[1])});c.arc=function(t,r,i){n.select(this).attr({class:\\\"mark arc\\\",d:p,transform:function(t,r){return\\\"rotate(\\\"+(e.orientation+s(t[0])+90)+\\\")\\\"}})};var d={fill:function(e,r,n){return t[n].data.color},stroke:function(e,r,n){return t[n].data.strokeColor},\\\"stroke-width\\\":function(e,r,n){return t[n].data.strokeSize+\\\"px\\\"},\\\"stroke-dasharray\\\":function(e,n,i){return r[t[i].data.strokeDash]},opacity:function(e,r,n){return t[n].data.opacity},display:function(e,r,n){return\\\"undefined\\\"==typeof t[n].data.visible||t[n].data.visible?\\\"block\\\":\\\"none\\\"}},g=n.select(this).selectAll(\\\"g.layer\\\").data(o);g.enter().append(\\\"g\\\").attr({class:\\\"layer\\\"});var v=g.selectAll(\\\"path.mark\\\").data(function(t,e){return t});v.enter().append(\\\"path\\\").attr({class:\\\"mark\\\"}),v.style(d).each(c[e.geometryType]),v.exit().remove(),g.exit().remove()})}return a.config=function(e){return arguments.length?(e.forEach(function(e,r){t[r]||(t[r]={}),i(t[r],o.PolyChart.defaultConfig()),i(t[r],e)}),this):t},a.getColorScale=function(){},n.rebind(a,e,\\\"on\\\"),a},o.PolyChart.defaultConfig=function(){return{data:{name:\\\"geom1\\\",t:[[1,2,3,4]],r:[[1,2,3,4]],dotType:\\\"circle\\\",dotSize:64,dotVisible:!1,barWidth:20,color:\\\"#ffa500\\\",strokeSize:1,strokeColor:\\\"silver\\\",strokeDash:\\\"solid\\\",opacity:1,index:0,visible:!0,visibleInLegend:!0},geometryConfig:{geometry:\\\"LinePlot\\\",geometryType:\\\"arc\\\",direction:\\\"clockwise\\\",orientation:0,container:\\\"body\\\",radialScale:null,angularScale:null,colorScale:n.scale.category20()}}},o.BarChart=function(){return o.PolyChart()},o.BarChart.defaultConfig=function(){return{geometryConfig:{geometryType:\\\"bar\\\"}}},o.AreaChart=function(){return o.PolyChart()},o.AreaChart.defaultConfig=function(){return{geometryConfig:{geometryType:\\\"arc\\\"}}},o.DotPlot=function(){return o.PolyChart()},o.DotPlot.defaultConfig=function(){return{geometryConfig:{geometryType:\\\"dot\\\",dotType:\\\"circle\\\"}}},o.LinePlot=function(){return o.PolyChart()},o.LinePlot.defaultConfig=function(){return{geometryConfig:{geometryType:\\\"line\\\"}}},o.Legend=function(){var t=o.Legend.defaultConfig(),e=n.dispatch(\\\"hover\\\");function r(){var e=t.legendConfig,a=t.data.map(function(t,r){return[].concat(t).map(function(t,n){var a=i({},e.elements[r]);return a.name=t,a.color=[].concat(e.elements[r].color)[n],a})}),o=n.merge(a);o=o.filter(function(t,r){return e.elements[r]&&(e.elements[r].visibleInLegend||\\\"undefined\\\"==typeof e.elements[r].visibleInLegend)}),e.reverseOrder&&(o=o.reverse());var s=e.container;(\\\"string\\\"==typeof s||s.nodeName)&&(s=n.select(s));var l=o.map(function(t,e){return t.color}),c=e.fontSize,u=null==e.isContinuous?\\\"number\\\"==typeof o[0]:e.isContinuous,f=u?e.height:c*o.length,h=s.classed(\\\"legend-group\\\",!0).selectAll(\\\"svg\\\").data([0]),p=h.enter().append(\\\"svg\\\").attr({width:300,height:f+c,xmlns:\\\"http://www.w3.org/2000/svg\\\",\\\"xmlns:xlink\\\":\\\"http://www.w3.org/1999/xlink\\\",version:\\\"1.1\\\"});p.append(\\\"g\\\").classed(\\\"legend-axis\\\",!0),p.append(\\\"g\\\").classed(\\\"legend-marks\\\",!0);var d=n.range(o.length),g=n.scale[u?\\\"linear\\\":\\\"ordinal\\\"]().domain(d).range(l),v=n.scale[u?\\\"linear\\\":\\\"ordinal\\\"]().domain(d)[u?\\\"range\\\":\\\"rangePoints\\\"]([0,f]);if(u){var m=h.select(\\\".legend-marks\\\").append(\\\"defs\\\").append(\\\"linearGradient\\\").attr({id:\\\"grad1\\\",x1:\\\"0%\\\",y1:\\\"0%\\\",x2:\\\"0%\\\",y2:\\\"100%\\\"}).selectAll(\\\"stop\\\").data(l);m.enter().append(\\\"stop\\\"),m.attr({offset:function(t,e){return e/(l.length-1)*100+\\\"%\\\"}}).style({\\\"stop-color\\\":function(t,e){return t}}),h.append(\\\"rect\\\").classed(\\\"legend-mark\\\",!0).attr({height:e.height,width:e.colorBandWidth,fill:\\\"url(#grad1)\\\"})}else{var y=h.select(\\\".legend-marks\\\").selectAll(\\\"path.legend-mark\\\").data(o);y.enter().append(\\\"path\\\").classed(\\\"legend-mark\\\",!0),y.attr({transform:function(t,e){return\\\"translate(\\\"+[c/2,v(e)+c/2]+\\\")\\\"},d:function(t,e){var r,i,a,o=t.symbol;return a=3*(i=c),\\\"line\\\"===(r=o)?\\\"M\\\"+[[-i/2,-i/12],[i/2,-i/12],[i/2,i/12],[-i/2,i/12]]+\\\"Z\\\":-1!=n.svg.symbolTypes.indexOf(r)?n.svg.symbol().type(r).size(a)():n.svg.symbol().type(\\\"square\\\").size(a)()},fill:function(t,e){return g(e)}}),y.exit().remove()}var x=n.svg.axis().scale(v).orient(\\\"right\\\"),b=h.select(\\\"g.legend-axis\\\").attr({transform:\\\"translate(\\\"+[u?e.colorBandWidth:c,c/2]+\\\")\\\"}).call(x);return b.selectAll(\\\".domain\\\").style({fill:\\\"none\\\",stroke:\\\"none\\\"}),b.selectAll(\\\"line\\\").style({fill:\\\"none\\\",stroke:u?e.textColor:\\\"none\\\"}),b.selectAll(\\\"text\\\").style({fill:e.textColor,\\\"font-size\\\":e.fontSize}).text(function(t,e){return o[e].name}),r}return r.config=function(e){return arguments.length?(i(t,e),this):t},n.rebind(r,e,\\\"on\\\"),r},o.Legend.defaultConfig=function(t,e){return{data:[\\\"a\\\",\\\"b\\\",\\\"c\\\"],legendConfig:{elements:[{symbol:\\\"line\\\",color:\\\"red\\\"},{symbol:\\\"square\\\",color:\\\"yellow\\\"},{symbol:\\\"diamond\\\",color:\\\"limegreen\\\"}],height:150,colorBandWidth:30,fontSize:12,container:\\\"body\\\",isContinuous:null,textColor:\\\"grey\\\",reverseOrder:!1}}},o.tooltipPanel=function(){var t,e,r,a={container:null,hasTick:!1,fontSize:12,color:\\\"white\\\",padding:5},s=\\\"tooltip-\\\"+o.tooltipPanel.uid++,l=10,c=function(){var n=(t=a.container.selectAll(\\\"g.\\\"+s).data([0])).enter().append(\\\"g\\\").classed(s,!0).style({\\\"pointer-events\\\":\\\"none\\\",display:\\\"none\\\"});return r=n.append(\\\"path\\\").style({fill:\\\"white\\\",\\\"fill-opacity\\\":.9}).attr({d:\\\"M0 0\\\"}),e=n.append(\\\"text\\\").attr({dx:a.padding+l,dy:.3*+a.fontSize}),c};return c.text=function(i){var o=n.hsl(a.color).l,s=o>=.5?\\\"#aaa\\\":\\\"white\\\",u=o>=.5?\\\"black\\\":\\\"white\\\",f=i||\\\"\\\";e.style({fill:u,\\\"font-size\\\":a.fontSize+\\\"px\\\"}).text(f);var h=a.padding,p=e.node().getBBox(),d={fill:a.color,stroke:s,\\\"stroke-width\\\":\\\"2px\\\"},g=p.width+2*h+l,v=p.height+2*h;return r.attr({d:\\\"M\\\"+[[l,-v/2],[l,-v/4],[a.hasTick?0:l,0],[l,v/4],[l,v/2],[g,v/2],[g,-v/2]].join(\\\"L\\\")+\\\"Z\\\"}).style(d),t.attr({transform:\\\"translate(\\\"+[l,-v/2+2*h]+\\\")\\\"}),t.style({display:\\\"block\\\"}),c},c.move=function(e){if(t)return t.attr({transform:\\\"translate(\\\"+[e[0],e[1]]+\\\")\\\"}).style({display:\\\"block\\\"}),c},c.hide=function(){if(t)return t.style({display:\\\"none\\\"}),c},c.show=function(){if(t)return t.style({display:\\\"block\\\"}),c},c.config=function(t){return i(a,t),c},c},o.tooltipPanel.uid=1,o.adapter={},o.adapter.plotly=function(){var t={convert:function(t,e){var r={};if(t.data&&(r.data=t.data.map(function(t,r){var n=i({},t);return[[n,[\\\"marker\\\",\\\"color\\\"],[\\\"color\\\"]],[n,[\\\"marker\\\",\\\"opacity\\\"],[\\\"opacity\\\"]],[n,[\\\"marker\\\",\\\"line\\\",\\\"color\\\"],[\\\"strokeColor\\\"]],[n,[\\\"marker\\\",\\\"line\\\",\\\"dash\\\"],[\\\"strokeDash\\\"]],[n,[\\\"marker\\\",\\\"line\\\",\\\"width\\\"],[\\\"strokeSize\\\"]],[n,[\\\"marker\\\",\\\"symbol\\\"],[\\\"dotType\\\"]],[n,[\\\"marker\\\",\\\"size\\\"],[\\\"dotSize\\\"]],[n,[\\\"marker\\\",\\\"barWidth\\\"],[\\\"barWidth\\\"]],[n,[\\\"line\\\",\\\"interpolation\\\"],[\\\"lineInterpolation\\\"]],[n,[\\\"showlegend\\\"],[\\\"visibleInLegend\\\"]]].forEach(function(t,r){o.util.translator.apply(null,t.concat(e))}),e||delete n.marker,e&&delete n.groupId,e?(\\\"LinePlot\\\"===n.geometry?(n.type=\\\"scatter\\\",!0===n.dotVisible?(delete n.dotVisible,n.mode=\\\"lines+markers\\\"):n.mode=\\\"lines\\\"):\\\"DotPlot\\\"===n.geometry?(n.type=\\\"scatter\\\",n.mode=\\\"markers\\\"):\\\"AreaChart\\\"===n.geometry?n.type=\\\"area\\\":\\\"BarChart\\\"===n.geometry&&(n.type=\\\"bar\\\"),delete n.geometry):(\\\"scatter\\\"===n.type?\\\"lines\\\"===n.mode?n.geometry=\\\"LinePlot\\\":\\\"markers\\\"===n.mode?n.geometry=\\\"DotPlot\\\":\\\"lines+markers\\\"===n.mode&&(n.geometry=\\\"LinePlot\\\",n.dotVisible=!0):\\\"area\\\"===n.type?n.geometry=\\\"AreaChart\\\":\\\"bar\\\"===n.type&&(n.geometry=\\\"BarChart\\\"),delete n.mode,delete n.type),n}),!e&&t.layout&&\\\"stack\\\"===t.layout.barmode)){var a=o.util.duplicates(r.data.map(function(t,e){return t.geometry}));r.data.forEach(function(t,e){var n=a.indexOf(t.geometry);-1!=n&&(r.data[e].groupId=n)})}if(t.layout){var s=i({},t.layout);if([[s,[\\\"plot_bgcolor\\\"],[\\\"backgroundColor\\\"]],[s,[\\\"showlegend\\\"],[\\\"showLegend\\\"]],[s,[\\\"radialaxis\\\"],[\\\"radialAxis\\\"]],[s,[\\\"angularaxis\\\"],[\\\"angularAxis\\\"]],[s.angularaxis,[\\\"showline\\\"],[\\\"gridLinesVisible\\\"]],[s.angularaxis,[\\\"showticklabels\\\"],[\\\"labelsVisible\\\"]],[s.angularaxis,[\\\"nticks\\\"],[\\\"ticksCount\\\"]],[s.angularaxis,[\\\"tickorientation\\\"],[\\\"tickOrientation\\\"]],[s.angularaxis,[\\\"ticksuffix\\\"],[\\\"ticksSuffix\\\"]],[s.angularaxis,[\\\"range\\\"],[\\\"domain\\\"]],[s.angularaxis,[\\\"endpadding\\\"],[\\\"endPadding\\\"]],[s.radialaxis,[\\\"showline\\\"],[\\\"gridLinesVisible\\\"]],[s.radialaxis,[\\\"tickorientation\\\"],[\\\"tickOrientation\\\"]],[s.radialaxis,[\\\"ticksuffix\\\"],[\\\"ticksSuffix\\\"]],[s.radialaxis,[\\\"range\\\"],[\\\"domain\\\"]],[s.angularAxis,[\\\"showline\\\"],[\\\"gridLinesVisible\\\"]],[s.angularAxis,[\\\"showticklabels\\\"],[\\\"labelsVisible\\\"]],[s.angularAxis,[\\\"nticks\\\"],[\\\"ticksCount\\\"]],[s.angularAxis,[\\\"tickorientation\\\"],[\\\"tickOrientation\\\"]],[s.angularAxis,[\\\"ticksuffix\\\"],[\\\"ticksSuffix\\\"]],[s.angularAxis,[\\\"range\\\"],[\\\"domain\\\"]],[s.angularAxis,[\\\"endpadding\\\"],[\\\"endPadding\\\"]],[s.radialAxis,[\\\"showline\\\"],[\\\"gridLinesVisible\\\"]],[s.radialAxis,[\\\"tickorientation\\\"],[\\\"tickOrientation\\\"]],[s.radialAxis,[\\\"ticksuffix\\\"],[\\\"ticksSuffix\\\"]],[s.radialAxis,[\\\"range\\\"],[\\\"domain\\\"]],[s.font,[\\\"outlinecolor\\\"],[\\\"outlineColor\\\"]],[s.legend,[\\\"traceorder\\\"],[\\\"reverseOrder\\\"]],[s,[\\\"labeloffset\\\"],[\\\"labelOffset\\\"]],[s,[\\\"defaultcolorrange\\\"],[\\\"defaultColorRange\\\"]]].forEach(function(t,r){o.util.translator.apply(null,t.concat(e))}),e?(\\\"undefined\\\"!=typeof s.tickLength&&(s.angularaxis.ticklen=s.tickLength,delete s.tickLength),s.tickColor&&(s.angularaxis.tickcolor=s.tickColor,delete s.tickColor)):(s.angularAxis&&\\\"undefined\\\"!=typeof s.angularAxis.ticklen&&(s.tickLength=s.angularAxis.ticklen),s.angularAxis&&\\\"undefined\\\"!=typeof s.angularAxis.tickcolor&&(s.tickColor=s.angularAxis.tickcolor)),s.legend&&\\\"boolean\\\"!=typeof s.legend.reverseOrder&&(s.legend.reverseOrder=\\\"normal\\\"!=s.legend.reverseOrder),s.legend&&\\\"boolean\\\"==typeof s.legend.traceorder&&(s.legend.traceorder=s.legend.traceorder?\\\"reversed\\\":\\\"normal\\\",delete s.legend.reverseOrder),s.margin&&\\\"undefined\\\"!=typeof s.margin.t){var l=[\\\"t\\\",\\\"r\\\",\\\"b\\\",\\\"l\\\",\\\"pad\\\"],c=[\\\"top\\\",\\\"right\\\",\\\"bottom\\\",\\\"left\\\",\\\"pad\\\"],u={};n.entries(s.margin).forEach(function(t,e){u[c[l.indexOf(t.key)]]=t.value}),s.margin=u}e&&(delete s.needsEndSpacing,delete s.minorTickColor,delete s.minorTicks,delete s.angularaxis.ticksCount,delete s.angularaxis.ticksCount,delete s.angularaxis.ticksStep,delete s.angularaxis.rewriteTicks,delete s.angularaxis.nticks,delete s.radialaxis.ticksCount,delete s.radialaxis.ticksCount,delete s.radialaxis.ticksStep,delete s.radialaxis.rewriteTicks,delete s.radialaxis.nticks),r.layout=s}return r}};return t}},{\\\"../../../constants/alignment\\\":668,\\\"../../../lib\\\":696,d3:148}],818:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../../lib\\\"),a=t(\\\"../../../components/color\\\"),o=t(\\\"./micropolar\\\"),s=t(\\\"./undo_manager\\\"),l=i.extendDeepAll,c=e.exports={};c.framework=function(t){var e,r,i,a,u,f=new s;function h(r,s){return s&&(u=s),n.select(n.select(u).node().parentNode).selectAll(\\\".svg-container>*:not(.chart-root)\\\").remove(),e=e?l(e,r):r,i||(i=o.Axis()),a=o.adapter.plotly().convert(e),i.config(a).render(u),t.data=e.data,t.layout=e.layout,c.fillLayout(t),e}return h.isPolar=!0,h.svg=function(){return i.svg()},h.getConfig=function(){return e},h.getLiveConfig=function(){return o.adapter.plotly().convert(i.getLiveConfig(),!0)},h.getLiveScales=function(){return{t:i.angularScale(),r:i.radialScale()}},h.setUndoPoint=function(){var t,n,i=this,a=o.util.cloneJson(e);t=a,n=r,f.add({undo:function(){n&&i(n)},redo:function(){i(t)}}),r=o.util.cloneJson(a)},h.undo=function(){f.undo()},h.redo=function(){f.redo()},h},c.fillLayout=function(t){var e=n.select(t).selectAll(\\\".plot-container\\\"),r=e.selectAll(\\\".svg-container\\\"),i=t.framework&&t.framework.svg&&t.framework.svg(),o={width:800,height:600,paper_bgcolor:a.background,_container:e,_paperdiv:r,_paper:i};t._fullLayout=l(o,t.layout)}},{\\\"../../../components/color\\\":570,\\\"../../../lib\\\":696,\\\"./micropolar\\\":817,\\\"./undo_manager\\\":819,d3:148}],819:[function(t,e,r){\\\"use strict\\\";e.exports=function(){var t,e=[],r=-1,n=!1;function i(t,e){return t?(n=!0,t[e](),n=!1,this):this}return{add:function(t){return n?this:(e.splice(r+1,e.length-r),e.push(t),r=e.length-1,this)},setCallback:function(e){t=e},undo:function(){var n=e[r];return n?(i(n,\\\"undo\\\"),r-=1,t&&t(n.undo),this):this},redo:function(){var n=e[r+1];return n?(i(n,\\\"redo\\\"),r+=1,t&&t(n.redo),this):this},clear:function(){e=[],r=-1},hasUndo:function(){return-1!==r},hasRedo:function(){return r<e.length-1},getCommands:function(){return e},getPreviousCommand:function(){return e[r-1]},getIndex:function(){return r}}}},{}],820:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../components/color\\\"),l=t(\\\"../../components/drawing\\\"),c=t(\\\"../plots\\\"),u=t(\\\"../cartesian/set_convert\\\"),f=t(\\\"./set_convert\\\"),h=t(\\\"../cartesian/autorange\\\").doAutoRange,p=t(\\\"../cartesian/axes\\\").doTicksSingle,d=t(\\\"../cartesian/dragbox\\\"),g=t(\\\"../../components/dragelement\\\"),v=t(\\\"../../components/fx\\\"),m=t(\\\"../../components/titles\\\"),y=t(\\\"../cartesian/select\\\").prepSelect,x=t(\\\"../cartesian/select\\\").selectOnClick,b=t(\\\"../cartesian/select\\\").clearSelect,_=t(\\\"../../lib/setcursor\\\"),w=t(\\\"../../lib/clear_gl_canvases\\\"),k=t(\\\"../../plot_api/subroutines\\\").redrawReglTraces,M=t(\\\"../../constants/alignment\\\").MID_SHIFT,A=t(\\\"./constants\\\"),T=t(\\\"./helpers\\\"),S=o._,E=o.mod,C=o.deg2rad,L=o.rad2deg;function z(t,e){this.id=e,this.gd=t,this._hasClipOnAxisFalse=null,this.vangles=null,this.radialAxisAngle=null,this.traceHash={},this.layers={},this.clipPaths={},this.clipIds={},this.viewInitial={};var r=t._fullLayout,n=\\\"clip\\\"+r._uid+e;this.clipIds.forTraces=n+\\\"-for-traces\\\",this.clipPaths.forTraces=r._clips.append(\\\"clipPath\\\").attr(\\\"id\\\",this.clipIds.forTraces),this.clipPaths.forTraces.append(\\\"path\\\"),this.framework=r._polarlayer.append(\\\"g\\\").attr(\\\"class\\\",e),this.radialTickLayout=null,this.angularTickLayout=null}var O=z.prototype;function I(t){var e=t.ticks+String(t.ticklen)+String(t.showticklabels);return\\\"side\\\"in t&&(e+=t.side),e}function P(t,e){return e[o.findIndexOfMin(e,function(e){return o.angleDist(t,e)})]}function D(t,e,r){return e?(t.attr(\\\"display\\\",null),t.attr(r)):t&&t.attr(\\\"display\\\",\\\"none\\\"),t}function R(t,e){return\\\"translate(\\\"+t+\\\",\\\"+e+\\\")\\\"}function B(t){return\\\"rotate(\\\"+t+\\\")\\\"}function F(t){return Math.abs(t)<1e-10?0:t>0?1:-1}function N(t){return F(Math.cos(t))}function j(t){return F(Math.sin(t))}e.exports=function(t,e){return new z(t,e)},O.plot=function(t,e){var r=e[this.id];this._hasClipOnAxisFalse=!1;for(var n=0;n<t.length;n++){if(!1===t[n][0].trace.cliponaxis){this._hasClipOnAxisFalse=!0;break}}this.updateLayers(e,r),this.updateLayout(e,r),c.generalUpdatePerTraceModule(this.gd,this,t,r),this.updateFx(e,r)},O.updateLayers=function(t,e){var r=this.layers,i=e.radialaxis,a=e.angularaxis,o=A.layerNames,s=o.indexOf(\\\"frontplot\\\"),l=o.slice(0,s),c=\\\"below traces\\\"===a.layer,u=\\\"below traces\\\"===i.layer;c&&l.push(\\\"angular-line\\\"),u&&l.push(\\\"radial-line\\\"),c&&l.push(\\\"angular-axis\\\"),u&&l.push(\\\"radial-axis\\\"),l.push(\\\"frontplot\\\"),c||l.push(\\\"angular-line\\\"),u||l.push(\\\"radial-line\\\"),c||l.push(\\\"angular-axis\\\"),u||l.push(\\\"radial-axis\\\");var f=this.framework.selectAll(\\\".polarsublayer\\\").data(l,String);f.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"polarsublayer \\\"+t}).each(function(t){var e=r[t]=n.select(this);switch(t){case\\\"frontplot\\\":e.append(\\\"g\\\").classed(\\\"barlayer\\\",!0),e.append(\\\"g\\\").classed(\\\"scatterlayer\\\",!0);break;case\\\"backplot\\\":e.append(\\\"g\\\").classed(\\\"maplayer\\\",!0);break;case\\\"plotbg\\\":r.bg=e.append(\\\"path\\\");break;case\\\"radial-grid\\\":e.style(\\\"fill\\\",\\\"none\\\"),e.append(\\\"g\\\").classed(\\\"x\\\",1);break;case\\\"angular-grid\\\":e.style(\\\"fill\\\",\\\"none\\\"),e.append(\\\"g\\\").classed(\\\"angularaxis\\\",1);break;case\\\"radial-line\\\":e.append(\\\"line\\\").style(\\\"fill\\\",\\\"none\\\");break;case\\\"angular-line\\\":e.append(\\\"path\\\").style(\\\"fill\\\",\\\"none\\\")}}),f.order()},O.updateLayout=function(t,e){var r=this.layers,n=t._size,i=e.radialaxis,a=e.angularaxis,o=e.domain.x,c=e.domain.y;this.xOffset=n.l+n.w*o[0],this.yOffset=n.t+n.h*(1-c[1]);var u=this.xLength=n.w*(o[1]-o[0]),f=this.yLength=n.h*(c[1]-c[0]),h=e.sector;this.sectorInRad=h.map(C);var p,d,g,v,m,y=this.sectorBBox=function(t){var e,r,n,i,a=t[0],o=t[1]-a,s=E(a,360),l=s+o,c=Math.cos(C(s)),u=Math.sin(C(s)),f=Math.cos(C(l)),h=Math.sin(C(l));i=s<=90&&l>=90||s>90&&l>=450?1:u<=0&&h<=0?0:Math.max(u,h);e=s<=180&&l>=180||s>180&&l>=540?-1:c>=0&&f>=0?0:Math.min(c,f);r=s<=270&&l>=270||s>270&&l>=630?-1:u>=0&&h>=0?0:Math.min(u,h);n=l>=360?1:c<=0&&f<=0?0:Math.max(c,f);return[e,r,n,i]}(h),x=y[2]-y[0],b=y[3]-y[1],_=f/u,w=Math.abs(b/x);_>w?(p=u,m=(f-(d=u*w))/n.h/2,g=[o[0],o[1]],v=[c[0]+m,c[1]-m]):(d=f,m=(u-(p=f/w))/n.w/2,g=[o[0]+m,o[1]-m],v=[c[0],c[1]]),this.xLength2=p,this.yLength2=d,this.xDomain2=g,this.yDomain2=v;var k=this.xOffset2=n.l+n.w*g[0],M=this.yOffset2=n.t+n.h*(1-v[1]),A=this.radius=p/x,T=this.innerRadius=e.hole*A,S=this.cx=k-A*y[0],L=this.cy=M+A*y[3],z=this.cxx=S-k,O=this.cyy=L-M;this.radialAxis=this.mockAxis(t,e,i,{_axislayer:r[\\\"radial-axis\\\"],_gridlayer:r[\\\"radial-grid\\\"],_id:\\\"x\\\",side:{counterclockwise:\\\"top\\\",clockwise:\\\"bottom\\\"}[i.side],domain:[T/n.w,A/n.w]}),this.angularAxis=this.mockAxis(t,e,a,{_axislayer:r[\\\"angular-axis\\\"],_gridlayer:r[\\\"angular-grid\\\"],side:\\\"right\\\",domain:[0,Math.PI],autorange:!1}),this.doAutoRange(t,e),this.updateAngularAxis(t,e),this.updateRadialAxis(t,e),this.updateRadialAxisTitle(t,e),this.xaxis=this.mockCartesianAxis(t,e,{_id:\\\"x\\\",domain:g}),this.yaxis=this.mockCartesianAxis(t,e,{_id:\\\"y\\\",domain:v});var I=this.pathSubplot();this.clipPaths.forTraces.select(\\\"path\\\").attr(\\\"d\\\",I).attr(\\\"transform\\\",R(z,O)),r.frontplot.attr(\\\"transform\\\",R(k,M)).call(l.setClipUrl,this._hasClipOnAxisFalse?null:this.clipIds.forTraces),r.bg.attr(\\\"d\\\",I).attr(\\\"transform\\\",R(S,L)).call(s.fill,e.bgcolor),this.framework.selectAll(\\\".crisp\\\").classed(\\\"crisp\\\",0)},O.mockAxis=function(t,e,r,n){var i=o.extendFlat({anchor:\\\"free\\\",position:0,_pos:0,_counteraxis:!0,automargin:!1},r,n);return f(i,e,t),i},O.mockCartesianAxis=function(t,e,r){var n=this,i=r._id,a=o.extendFlat({type:\\\"linear\\\"},r);u(a,t);var s={x:[0,2],y:[1,3]};return a.setRange=function(){var t=n.sectorBBox,r=s[i],o=n.radialAxis._rl,l=(o[1]-o[0])/(1-e.hole);a.range=[t[r[0]]*l,t[r[1]]*l]},a.isPtWithinRange=\\\"x\\\"===i?function(t){return n.isPtInside(t)}:function(){return!0},a.setRange(),a.setScale(),a},O.doAutoRange=function(t,e){var r=this.gd,n=this.radialAxis,i=e.radialaxis;n.setScale(),h(r,n);var a=n.range;i.range=a.slice(),i._input.range=a.slice(),n._rl=[n.r2l(a[0],null,\\\"gregorian\\\"),n.r2l(a[1],null,\\\"gregorian\\\")]},O.updateRadialAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,o=r.innerRadius,l=r.cx,c=r.cy,u=e.radialaxis,f=E(e.sector[0],360),h=r.radialAxis,d=o<a;r.fillViewInitialKey(\\\"radialaxis.angle\\\",u.angle),r.fillViewInitialKey(\\\"radialaxis.range\\\",h.range.slice()),h.setGeometry(),\\\"auto\\\"===h.tickangle&&f>90&&f<=270&&(h.tickangle=180),h._transfn=function(t){return\\\"translate(\\\"+(h.l2p(t.x)+o)+\\\",0)\\\"},h._gridpath=function(t){return r.pathArc(h.r2p(t.x)+o)};var g=I(u);r.radialTickLayout!==g&&(i[\\\"radial-axis\\\"].selectAll(\\\".xtick\\\").remove(),r.radialTickLayout=g),d&&(h.setScale(),p(n,h,!0));var v=r.radialAxisAngle=r.vangles?L(P(C(u.angle),r.vangles)):u.angle,m=R(l,c)+B(-v);D(i[\\\"radial-axis\\\"],d&&(u.showticklabels||u.ticks),{transform:m}),D(i[\\\"radial-grid\\\"],d&&u.showgrid,{transform:R(l,c)}).selectAll(\\\"path\\\").attr(\\\"transform\\\",null),D(i[\\\"radial-line\\\"].select(\\\"line\\\"),d&&u.showline,{x1:o,y1:0,x2:a,y2:0,transform:m}).attr(\\\"stroke-width\\\",u.linewidth).call(s.stroke,u.linecolor)},O.updateRadialAxisTitle=function(t,e,r){var n=this.gd,i=this.radius,a=this.cx,o=this.cy,s=e.radialaxis,c=this.id+\\\"title\\\",u=void 0!==r?r:this.radialAxisAngle,f=C(u),h=Math.cos(f),p=Math.sin(f),d=0;if(s.title){var g=l.bBox(this.layers[\\\"radial-axis\\\"].node()).height,v=s.titlefont.size;d=\\\"counterclockwise\\\"===s.side?-g-.4*v:g+.8*v}this.layers[\\\"radial-axis-title\\\"]=m.draw(n,c,{propContainer:s,propName:this.id+\\\".radialaxis.title\\\",placeholder:S(n,\\\"Click to enter radial axis title\\\"),attributes:{x:a+i/2*h+d*p,y:o-i/2*p+d*h,\\\"text-anchor\\\":\\\"middle\\\"},transform:{rotate:-u}})},O.updateAngularAxis=function(t,e){var r=this,i=r.gd,a=r.layers,l=r.radius,c=r.innerRadius,u=r.cx,f=r.cy,h=e.angularaxis,d=r.angularAxis;r.fillViewInitialKey(\\\"angularaxis.rotation\\\",h.rotation),d.setGeometry();var g=function(t){return d.t2g(t.x)};\\\"linear\\\"===d.type&&\\\"radians\\\"===d.thetaunit&&(d.tick0=L(d.tick0),d.dtick=L(d.dtick)),\\\"category\\\"===d.type&&(d._tickFilter=function(t){return o.isAngleInsideSector(g(t),r.sectorInRad)}),d._transfn=function(t){var e=n.select(this),r=e&&e.node();if(r&&e.classed(\\\"angularaxisgrid\\\"))return\\\"\\\";var i=g(t),a=R(u+l*Math.cos(i),f-l*Math.sin(i));return r&&e.classed(\\\"ticks\\\")&&(a+=B(-L(i))),a},d._gridpath=function(t){var e=g(t),r=Math.cos(e),n=Math.sin(e);return\\\"M\\\"+[u+c*r,f-c*n]+\\\"L\\\"+[u+l*r,f-l*n]};var v=\\\"outside\\\"!==h.ticks?.7:.5;d._labelx=function(t){var e=g(t),r=d._labelStandoff,n=d._pad;return(0===j(e)?0:Math.cos(e)*(r+n+v*t.fontSize))+N(e)*(t.dx+r+n)},d._labely=function(t){var e=g(t),r=d._labelStandoff,n=d._labelShift,i=d._pad;return t.dy+t.fontSize*M-n+-Math.sin(e)*(r+i+v*t.fontSize)},d._labelanchor=function(t,e){var r=g(e);return 0===j(r)?N(r)>0?\\\"start\\\":\\\"end\\\":\\\"middle\\\"};var m,y=I(h);r.angularTickLayout!==y&&(a[\\\"angular-axis\\\"].selectAll(\\\".\\\"+d._id+\\\"tick\\\").remove(),r.angularTickLayout=y),d.setScale(),p(i,d,!0),\\\"linear\\\"===e.gridshape?(m=d._vals.map(g),o.angleDelta(m[0],m[1])<0&&(m=m.slice().reverse())):m=null,r.vangles=m,D(a[\\\"angular-line\\\"].select(\\\"path\\\"),h.showline,{d:r.pathSubplot(),transform:R(u,f)}).attr(\\\"stroke-width\\\",h.linewidth).call(s.stroke,h.linecolor)},O.updateFx=function(t,e){this.gd._context.staticPlot||(this.updateAngularDrag(t),this.updateRadialDrag(t,e,0),this.updateRadialDrag(t,e,1),this.updateMainDrag(t))},O.updateMainDrag=function(t){var e=this,r=e.gd,o=e.layers,s=t._zoomlayer,l=A.MINZOOM,c=A.OFFEDGE,u=e.radius,f=e.innerRadius,h=e.cx,p=e.cy,m=e.cxx,_=e.cyy,w=e.sectorInRad,k=e.vangles,M=e.radialAxis,S=T.clampTiny,E=T.findXYatLength,C=T.findEnclosingVertexAngles,L=A.cornerHalfWidth,z=A.cornerLen/2,O=d.makeDragger(o,\\\"path\\\",\\\"maindrag\\\",\\\"crosshair\\\");n.select(O).attr(\\\"d\\\",e.pathSubplot()).attr(\\\"transform\\\",R(h,p));var I,P,D,B,F,N,j,V,U,q={element:O,gd:r,subplot:e.id,plotinfo:{id:e.id,xaxis:e.xaxis,yaxis:e.yaxis},xaxes:[e.xaxis],yaxes:[e.yaxis]};function H(t,e){return Math.sqrt(t*t+e*e)}function G(t,e){return H(t-m,e-_)}function W(t,e){return Math.atan2(_-e,t-m)}function Y(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function X(t,r){if(0===t)return e.pathSector(2*L);var n=z/t,i=r-n,a=r+n,o=Math.max(0,Math.min(t,u)),s=o-L,l=o+L;return\\\"M\\\"+Y(s,i)+\\\"A\\\"+[s,s]+\\\" 0,0,0 \\\"+Y(s,a)+\\\"L\\\"+Y(l,a)+\\\"A\\\"+[l,l]+\\\" 0,0,1 \\\"+Y(l,i)+\\\"Z\\\"}function Z(t,r,n){if(0===t)return e.pathSector(2*L);var i,a,o=Y(t,r),s=Y(t,n),l=S((o[0]+s[0])/2),c=S((o[1]+s[1])/2);if(l&&c){var u=c/l,f=-1/u,h=E(L,u,l,c);i=E(z,f,h[0][0],h[0][1]),a=E(z,f,h[1][0],h[1][1])}else{var p,d;c?(p=z,d=L):(p=L,d=z),i=[[l-p,c-d],[l+p,c-d]],a=[[l-p,c+d],[l+p,c+d]]}return\\\"M\\\"+i.join(\\\"L\\\")+\\\"L\\\"+a.reverse().join(\\\"L\\\")+\\\"Z\\\"}function $(t,e){return e=Math.max(Math.min(e,u),f),t<c?t=0:u-t<c?t=u:e<c?e=0:u-e<c&&(e=u),Math.abs(e-t)>l?(t<e?(D=t,B=e):(D=e,B=t),!0):(D=null,B=null,!1)}function J(t,e){t=t||F,e=e||\\\"M0,0Z\\\",V.attr(\\\"d\\\",t),U.attr(\\\"d\\\",e),d.transitionZoombox(V,U,N,j),N=!0}function K(t,r){var n,i,a=I+t,o=P+r,s=G(I,P),l=Math.min(G(a,o),u),c=W(I,P);$(s,l)&&(n=F+e.pathSector(B),D&&(n+=e.pathSector(D)),i=X(D,c)+X(B,c)),J(n,i)}function Q(t,e,r,n){var i=T.findIntersectionXY(r,n,r,[t-m,_-e]);return H(i[0],i[1])}function tt(t,r){var n,i,a=I+t,o=P+r,s=W(I,P),l=W(a,o),c=C(s,k),f=C(l,k);$(Q(I,P,c[0],c[1]),Math.min(Q(a,o,f[0],f[1]),u))&&(n=F+e.pathSector(B),D&&(n+=e.pathSector(D)),i=[Z(D,c[0],c[1]),Z(B,c[0],c[1])].join(\\\" \\\")),J(n,i)}function et(){if(d.removeZoombox(r),null!==D&&null!==B){d.showDoubleClickNotifier(r);var t=M._rl,n=(t[1]-t[0])/(1-f/u)/u,i=[t[0]+(D-f)*n,t[0]+(B-f)*n];a.call(\\\"relayout\\\",r,e.id+\\\".radialaxis.range\\\",i)}}function rt(t,n){var i=r._fullLayout.clickmode;if(d.removeZoombox(r),2===t){var o={};for(var s in e.viewInitial)o[e.id+\\\".\\\"+s]=e.viewInitial[s];r.emit(\\\"plotly_doubleclick\\\",null),a.call(\\\"relayout\\\",r,o)}i.indexOf(\\\"select\\\")>-1&&1===t&&x(n,r,[e.xaxis],[e.yaxis],e.id,q),i.indexOf(\\\"event\\\")>-1&&v.click(r,n,e.id)}q.prepFn=function(t,n,a){var o=r._fullLayout.dragmode,l=O.getBoundingClientRect();if(I=n-l.left,P=a-l.top,k){var c=T.findPolygonOffset(u,w[0],w[1],k);I+=m+c[0],P+=_+c[1]}switch(o){case\\\"zoom\\\":q.moveFn=k?tt:K,q.clickFn=rt,q.doneFn=et,function(){D=null,B=null,F=e.pathSubplot(),N=!1;var t=r._fullLayout[e.id];j=i(t.bgcolor).getLuminance(),(V=d.makeZoombox(s,j,h,p,F)).attr(\\\"fill-rule\\\",\\\"evenodd\\\"),U=d.makeCorners(s,h,p),b(s)}();break;case\\\"select\\\":case\\\"lasso\\\":y(t,n,a,q,o)}},O.onmousemove=function(t){v.hover(r,t,e.id),r._fullLayout._lasthover=O,r._fullLayout._hoversubplot=e.id},O.onmouseout=function(t){r._dragging||g.unhover(r,t)},g.init(q)},O.updateRadialDrag=function(t,e,r){var i=this,s=i.gd,l=i.layers,c=i.radius,u=i.innerRadius,f=i.cx,h=i.cy,v=i.radialAxis,m=A.radialDragBoxSize,y=m/2;if(v.visible){var x,_,M,T=C(i.radialAxisAngle),S=v._rl,E=S[0],z=S[1],O=S[r],I=.75*(S[1]-S[0])/(1-e.hole)/c;r?(x=f+(c+y)*Math.cos(T),_=h-(c+y)*Math.sin(T),M=\\\"radialdrag\\\"):(x=f+(u-y)*Math.cos(T),_=h-(u-y)*Math.sin(T),M=\\\"radialdrag-inner\\\");var F,N,j,V=d.makeRectDragger(l,M,\\\"crosshair\\\",-y,-y,m,m),U={element:V,gd:s};D(n.select(V),v.visible&&u<c,{transform:R(x,_)}),U.prepFn=function(){F=null,N=null,j=null,U.moveFn=q,U.doneFn=H,b(t._zoomlayer)},U.clampFn=function(t,e){return Math.sqrt(t*t+e*e)<A.MINDRAG&&(t=0,e=0),[t,e]},g.init(U)}function q(t,e){if(F)F(t,e);else{var r=[t,-e],n=[Math.cos(T),Math.sin(T)],i=Math.abs(o.dot(r,n)/Math.sqrt(o.dot(r,r)));isNaN(i)||(F=i<.5?G:W)}}function H(){null!==N?a.call(\\\"relayout\\\",s,i.id+\\\".radialaxis.angle\\\",N):null!==j&&a.call(\\\"relayout\\\",s,i.id+\\\".radialaxis.range[\\\"+r+\\\"]\\\",j)}function G(t,e){if(0!==r){var n=x+t,a=_+e;N=Math.atan2(h-a,n-f),i.vangles&&(N=P(N,i.vangles)),N=L(N);var o=R(f,h)+B(-N);l[\\\"radial-axis\\\"].attr(\\\"transform\\\",o),l[\\\"radial-line\\\"].select(\\\"line\\\").attr(\\\"transform\\\",o);var s=i.gd._fullLayout,c=s[i.id];i.updateRadialAxisTitle(s,c,N)}}function W(t,e){var n=o.dot([t,-e],[Math.cos(T),Math.sin(T)]);if(j=O-I*n,I>0==(r?j>E:j<z)){v.range[r]=j,v._rl[r]=j,v.setGeometry(),v.setScale(),i.xaxis.setRange(),i.xaxis.setScale(),i.yaxis.setRange(),i.yaxis.setScale(),p(s,v,!0),l[\\\"radial-grid\\\"].attr(\\\"transform\\\",R(f,h)).selectAll(\\\"path\\\").attr(\\\"transform\\\",null);var c=!1;for(var u in i.traceHash){var d=i.traceHash[u],g=o.filterVisible(d),m=d[0][0].trace._module,y=s._fullLayout[i.id];m.plot(s,i,g,y),a.traceIs(u,\\\"gl\\\")&&g.length&&(c=!0)}c&&(w(s),k(s))}else j=null}},O.updateAngularDrag=function(t){var e=this,r=e.gd,i=e.layers,s=e.radius,c=e.angularAxis,u=e.cx,f=e.cy,h=e.cxx,v=e.cyy,m=A.angularDragBoxSize,y=d.makeDragger(i,\\\"path\\\",\\\"angulardrag\\\",\\\"move\\\"),x={element:y,gd:r};function M(t,e){return Math.atan2(v+m-e,t-h-m)}n.select(y).attr(\\\"d\\\",e.pathAnnulus(s,s+m)).attr(\\\"transform\\\",R(u,f)).call(_,\\\"move\\\");var T,S,E,C,z,O,I=i.frontplot.select(\\\".scatterlayer\\\").selectAll(\\\".trace\\\"),P=I.selectAll(\\\".point\\\"),D=I.selectAll(\\\".textpoint\\\");function F(t,s){var d=e.gd._fullLayout,g=d[e.id],m=M(T+t,S+s),y=L(m-O);if(C=E+y,i.frontplot.attr(\\\"transform\\\",R(e.xOffset2,e.yOffset2)+B([-y,h,v])),e.vangles){z=e.radialAxisAngle+y;var x=R(u,f)+B(-y),b=R(u,f)+B(-z);i.bg.attr(\\\"transform\\\",x),i[\\\"radial-grid\\\"].attr(\\\"transform\\\",x),i[\\\"angular-line\\\"].select(\\\"path\\\").attr(\\\"transform\\\",x),i[\\\"radial-axis\\\"].attr(\\\"transform\\\",b),i[\\\"radial-line\\\"].select(\\\"line\\\").attr(\\\"transform\\\",b),e.updateRadialAxisTitle(d,g,z)}else e.clipPaths.forTraces.select(\\\"path\\\").attr(\\\"transform\\\",R(h,v)+B(y));P.each(function(){var t=n.select(this),e=l.getTranslate(t);t.attr(\\\"transform\\\",R(e.x,e.y)+B([y]))}),D.each(function(){var t=n.select(this),e=t.select(\\\"text\\\"),r=l.getTranslate(t);t.attr(\\\"transform\\\",B([y,e.attr(\\\"x\\\"),e.attr(\\\"y\\\")])+R(r.x,r.y))}),c.rotation=o.modHalf(C,360),c.setGeometry(),c.setScale(),p(r,c,!0),e._hasClipOnAxisFalse&&!o.isFullCircle(e.sectorInRad)&&I.call(l.hideOutsideRangePoints,e);var _=!1;for(var A in e.traceHash)if(a.traceIs(A,\\\"gl\\\")){var F=e.traceHash[A],N=o.filterVisible(F);F[0][0].trace._module.plot(r,e,N,g),N.length&&(_=!0)}_&&(w(r),k(r))}function N(){D.select(\\\"text\\\").attr(\\\"transform\\\",null);var t={};t[e.id+\\\".angularaxis.rotation\\\"]=C,e.vangles&&(t[e.id+\\\".radialaxis.angle\\\"]=z),a.call(\\\"relayout\\\",r,t)}x.prepFn=function(r,n,i){var a=t[e.id];E=a.angularaxis.rotation;var o=y.getBoundingClientRect();T=n-o.left,S=i-o.top,O=M(T,S),x.moveFn=F,x.doneFn=N,b(t._zoomlayer)},e.vangles&&!o.isFullCircle(e.sectorInRad)&&(x.prepFn=o.noop,_(n.select(y),null)),g.init(x)},O.isPtInside=function(t){var e=this.sectorInRad,r=this.vangles,n=this.angularAxis.c2g(t.theta),i=this.radialAxis,a=i.c2l(t.r),s=i._rl;return(r?T.isPtInsidePolygon:o.isPtInsideSector)(a,n,s,e,r)},O.pathArc=function(t){var e=this.sectorInRad,r=this.vangles;return(r?T.pathPolygon:o.pathArc)(t,e[0],e[1],r)},O.pathSector=function(t){var e=this.sectorInRad,r=this.vangles;return(r?T.pathPolygon:o.pathSector)(t,e[0],e[1],r)},O.pathAnnulus=function(t,e){var r=this.sectorInRad,n=this.vangles;return(n?T.pathPolygonAnnulus:o.pathAnnulus)(t,e,r[0],r[1],n)},O.pathSubplot=function(){var t=this.innerRadius,e=this.radius;return t?this.pathAnnulus(t,e):this.pathSector(e)},O.fillViewInitialKey=function(t,e){t in this.viewInitial||(this.viewInitial[t]=e)}},{\\\"../../components/color\\\":570,\\\"../../components/dragelement\\\":592,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../components/titles\\\":661,\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/clear_gl_canvases\\\":680,\\\"../../lib/setcursor\\\":716,\\\"../../plot_api/subroutines\\\":735,\\\"../../registry\\\":827,\\\"../cartesian/autorange\\\":743,\\\"../cartesian/axes\\\":744,\\\"../cartesian/dragbox\\\":753,\\\"../cartesian/select\\\":762,\\\"../cartesian/set_convert\\\":763,\\\"../plots\\\":808,\\\"./constants\\\":809,\\\"./helpers\\\":810,\\\"./set_convert\\\":821,d3:148,tinycolor2:514}],821:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../cartesian/set_convert\\\"),a=n.deg2rad,o=n.rad2deg;e.exports=function(t,e,r){switch(i(t,r),t._id){case\\\"x\\\":case\\\"radialaxis\\\":!function(t,e){var r=e._subplot;t.setGeometry=function(){var e=t._rl[0],n=t._rl[1],i=r.innerRadius,a=(r.radius-i)/(n-e),o=i/a,s=e>n?function(t){return t<=0}:function(t){return t>=0};t.c2g=function(r){var n=t.c2l(r)-e;return(s(n)?n:0)+o},t.g2c=function(r){return t.l2c(r+e-o)},t.g2p=function(t){return t*a},t.c2p=function(e){return t.g2p(t.c2g(e))}}}(t,e);break;case\\\"angularaxis\\\":!function(t,e){var r=t.type;if(\\\"linear\\\"===r){var i=t.d2c,s=t.c2d;t.d2c=function(t,e){return function(t,e){return\\\"degrees\\\"===e?a(t):t}(i(t),e)},t.c2d=function(t,e){return s(function(t,e){return\\\"degrees\\\"===e?o(t):t}(t,e))}}t.makeCalcdata=function(e,i){var a,o,s=e[i],l=e._length,c=function(r){return t.d2c(r,e.thetaunit)};if(s){if(n.isTypedArray(s)&&\\\"linear\\\"===r){if(l===s.length)return s;if(s.subarray)return s.subarray(0,l)}for(a=new Array(l),o=0;o<l;o++)a[o]=c(s[o])}else{var u=i+\\\"0\\\",f=\\\"d\\\"+i,h=u in e?c(e[u]):0,p=e[f]?c(e[f]):(t.period||2*Math.PI)/l;for(a=new Array(l),o=0;o<l;o++)a[o]=h+o*p}return a},t.setGeometry=function(){var i,s,l,c,u=e.sector,f=u.map(a),h={clockwise:-1,counterclockwise:1}[t.direction],p=a(t.rotation),d=function(t){return h*t+p},g=function(t){return(t-p)/h};switch(r){case\\\"linear\\\":s=i=n.identity,c=a,l=o,t.range=n.isFullCircle(f)?[u[0],u[0]+360]:f.map(g).map(o);break;case\\\"category\\\":var v=t._categories.length,m=t.period?Math.max(t.period,v):v;s=c=function(t){return 2*t*Math.PI/m},i=l=function(t){return t*m/Math.PI/2},t.range=[0,m]}t.c2g=function(t){return d(s(t))},t.g2c=function(t){return i(g(t))},t.t2g=function(t){return d(c(t))},t.g2t=function(t){return l(g(t))}}}(t,e)}}},{\\\"../../lib\\\":696,\\\"../cartesian/set_convert\\\":763}],822:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plot_api/plot_template\\\"),a=t(\\\"./domain\\\").defaults;e.exports=function(t,e,r,o){var s,l,c=o.type,u=o.attributes,f=o.handleDefaults,h=o.partition||\\\"x\\\",p=e._subplots[c],d=p.length,g=d&&p[0].replace(/\\\\d+$/,\\\"\\\");function v(t,e){return n.coerce(s,l,u,t,e)}for(var m=0;m<d;m++){var y=p[m];s=t[y]?t[y]:t[y]={},l=i.newContainer(e,y,g);var x={};x[h]=[m/d,(m+1)/d],a(l,e,v,x),o.id=y,f(s,l,v,o)}}},{\\\"../lib\\\":696,\\\"../plot_api/plot_template\\\":734,\\\"./domain\\\":770}],823:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./ternary\\\"),i=t(\\\"../../plots/get_data\\\").getSubplotCalcData,a=t(\\\"../../lib\\\").counterRegex;r.name=\\\"ternary\\\";var o=r.attr=\\\"subplot\\\";r.idRoot=\\\"ternary\\\",r.idRegex=r.attrRegex=a(\\\"ternary\\\"),(r.attributes={})[o]={valType:\\\"subplotid\\\",dflt:\\\"ternary\\\",editType:\\\"calc\\\"},r.layoutAttributes=t(\\\"./layout_attributes\\\"),r.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),r.plot=function(t){for(var e=t._fullLayout,r=t.calcdata,a=e._subplots.ternary,o=0;o<a.length;o++){var s=a[o],l=i(r,\\\"ternary\\\",s),c=e[s]._subplot;c||(c=new n({id:s,graphDiv:t,container:e._ternarylayer.node()},e),e[s]._subplot=c),c.plot(l,e,t._promises)}},r.clean=function(t,e,r,n){for(var i=n._subplots.ternary||[],a=0;a<i.length;a++){var o=i[a],s=n[o]._subplot;!e[o]&&s&&(s.plotContainer.remove(),s.clipDef.remove(),s.clipDefRelative.remove(),s.layers[\\\"a-title\\\"].remove(),s.layers[\\\"b-title\\\"].remove(),s.layers[\\\"c-title\\\"].remove())}}},{\\\"../../lib\\\":696,\\\"../../plots/get_data\\\":781,\\\"./layout_attributes\\\":824,\\\"./layout_defaults\\\":825,\\\"./ternary\\\":826}],824:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color/attributes\\\"),i=t(\\\"../domain\\\").attributes,a=t(\\\"../cartesian/layout_attributes\\\"),o=t(\\\"../../plot_api/edit_types\\\").overrideAll,s=t(\\\"../../lib/extend\\\").extendFlat,l={title:a.title,titlefont:a.titlefont,color:a.color,tickmode:a.tickmode,nticks:s({},a.nticks,{dflt:6,min:1}),tick0:a.tick0,dtick:a.dtick,tickvals:a.tickvals,ticktext:a.ticktext,ticks:a.ticks,ticklen:a.ticklen,tickwidth:a.tickwidth,tickcolor:a.tickcolor,showticklabels:a.showticklabels,showtickprefix:a.showtickprefix,tickprefix:a.tickprefix,showticksuffix:a.showticksuffix,ticksuffix:a.ticksuffix,showexponent:a.showexponent,exponentformat:a.exponentformat,separatethousands:a.separatethousands,tickfont:a.tickfont,tickangle:a.tickangle,tickformat:a.tickformat,tickformatstops:a.tickformatstops,hoverformat:a.hoverformat,showline:s({},a.showline,{dflt:!0}),linecolor:a.linecolor,linewidth:a.linewidth,showgrid:s({},a.showgrid,{dflt:!0}),gridcolor:a.gridcolor,gridwidth:a.gridwidth,layer:a.layer,min:{valType:\\\"number\\\",dflt:0,min:0}};e.exports=o({domain:i({name:\\\"ternary\\\"}),bgcolor:{valType:\\\"color\\\",dflt:n.background},sum:{valType:\\\"number\\\",dflt:1,min:0},aaxis:l,baxis:l,caxis:l},\\\"plot\\\",\\\"from-root\\\")},{\\\"../../components/color/attributes\\\":569,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../cartesian/layout_attributes\\\":757,\\\"../domain\\\":770}],825:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../plot_api/plot_template\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../subplot_defaults\\\"),s=t(\\\"../cartesian/tick_label_defaults\\\"),l=t(\\\"../cartesian/tick_mark_defaults\\\"),c=t(\\\"../cartesian/tick_value_defaults\\\"),u=t(\\\"../cartesian/line_grid_defaults\\\"),f=t(\\\"./layout_attributes\\\"),h=[\\\"aaxis\\\",\\\"baxis\\\",\\\"caxis\\\"];function p(t,e,r,a){var o,s,l,c=r(\\\"bgcolor\\\"),u=r(\\\"sum\\\");a.bgColor=n.combine(c,a.paper_bgcolor);for(var f=0;f<h.length;f++)s=t[o=h[f]]||{},(l=i.newContainer(e,o))._name=o,d(s,l,a);var p=e.aaxis,g=e.baxis,v=e.caxis;p.min+g.min+v.min>=u&&(p.min=0,g.min=0,v.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}function d(t,e,r){var n=f[e._name];function i(r,i){return a.coerce(t,e,n,r,i)}e.type=\\\"linear\\\";var o=i(\\\"color\\\"),h=o!==n.color.dflt?o:r.font.color,p=e._name.charAt(0).toUpperCase(),d=\\\"Component \\\"+p,g=i(\\\"title\\\",d);e._hovertitle=g===d?g:p,a.coerceFont(i,\\\"titlefont\\\",{family:r.font.family,size:Math.round(1.2*r.font.size),color:h}),i(\\\"min\\\"),c(t,e,i,\\\"linear\\\"),s(t,e,i,\\\"linear\\\",{}),l(t,e,i,{outerTicks:!0}),i(\\\"showticklabels\\\")&&(a.coerceFont(i,\\\"tickfont\\\",{family:r.font.family,size:r.font.size,color:h}),i(\\\"tickangle\\\"),i(\\\"tickformat\\\")),u(t,e,i,{dfltColor:o,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:n}),i(\\\"hoverformat\\\"),i(\\\"layer\\\")}e.exports=function(t,e,r){o(t,e,r,{type:\\\"ternary\\\",attributes:f,handleDefaults:p,font:e.font,paper_bgcolor:e.paper_bgcolor})}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../cartesian/line_grid_defaults\\\":759,\\\"../cartesian/tick_label_defaults\\\":764,\\\"../cartesian/tick_mark_defaults\\\":765,\\\"../cartesian/tick_value_defaults\\\":766,\\\"../subplot_defaults\\\":822,\\\"./layout_attributes\\\":824}],826:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../../lib\\\"),s=o._,l=t(\\\"../../components/color\\\"),c=t(\\\"../../components/drawing\\\"),u=t(\\\"../cartesian/set_convert\\\"),f=t(\\\"../../lib/extend\\\").extendFlat,h=t(\\\"../plots\\\"),p=t(\\\"../cartesian/axes\\\"),d=t(\\\"../../components/dragelement\\\"),g=t(\\\"../../components/fx\\\"),v=t(\\\"../../components/titles\\\"),m=t(\\\"../cartesian/select\\\").prepSelect,y=t(\\\"../cartesian/select\\\").selectOnClick,x=t(\\\"../cartesian/select\\\").clearSelect,b=t(\\\"../cartesian/constants\\\");function _(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}e.exports=_;var w=_.prototype;w.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},w.plot=function(t,e){var r=e[this.id],n=e._size;this._hasClipOnAxisFalse=!1;for(var i=0;i<t.length;i++){if(!1===t[i][0].trace.cliponaxis){this._hasClipOnAxisFalse=!0;break}}this.updateLayers(r),this.adjustLayout(r,n),h.generalUpdatePerTraceModule(this.graphDiv,this,t,r),this.layers.plotbg.select(\\\"path\\\").call(l.fill,r.bgcolor)},w.makeFramework=function(t){var e=t[this.id],r=this.clipId=\\\"clip\\\"+this.layoutId+this.id,n=this.clipIdRelative=\\\"clip-relative\\\"+this.layoutId+this.id;this.clipDef=o.ensureSingleById(t._clips,\\\"clipPath\\\",r,function(t){t.append(\\\"path\\\").attr(\\\"d\\\",\\\"M0,0Z\\\")}),this.clipDefRelative=o.ensureSingleById(t._clips,\\\"clipPath\\\",n,function(t){t.append(\\\"path\\\").attr(\\\"d\\\",\\\"M0,0Z\\\")}),this.plotContainer=o.ensureSingle(this.container,\\\"g\\\",this.id),this.updateLayers(e),c.setClipUrl(this.layers.backplot,r),c.setClipUrl(this.layers.grids,r)},w.updateLayers=function(t){var e=this.layers,r=[\\\"draglayer\\\",\\\"plotbg\\\",\\\"backplot\\\",\\\"grids\\\"];\\\"below traces\\\"===t.aaxis.layer&&r.push(\\\"aaxis\\\",\\\"aline\\\"),\\\"below traces\\\"===t.baxis.layer&&r.push(\\\"baxis\\\",\\\"bline\\\"),\\\"below traces\\\"===t.caxis.layer&&r.push(\\\"caxis\\\",\\\"cline\\\"),r.push(\\\"frontplot\\\"),\\\"above traces\\\"===t.aaxis.layer&&r.push(\\\"aaxis\\\",\\\"aline\\\"),\\\"above traces\\\"===t.baxis.layer&&r.push(\\\"baxis\\\",\\\"bline\\\"),\\\"above traces\\\"===t.caxis.layer&&r.push(\\\"caxis\\\",\\\"cline\\\");var i=this.plotContainer.selectAll(\\\"g.toplevel\\\").data(r,String),a=[\\\"agrid\\\",\\\"bgrid\\\",\\\"cgrid\\\"];i.enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"toplevel \\\"+t}).each(function(t){var r=n.select(this);e[t]=r,\\\"frontplot\\\"===t?r.append(\\\"g\\\").classed(\\\"scatterlayer\\\",!0):\\\"backplot\\\"===t?r.append(\\\"g\\\").classed(\\\"maplayer\\\",!0):\\\"plotbg\\\"===t?r.append(\\\"path\\\").attr(\\\"d\\\",\\\"M0,0Z\\\"):\\\"aline\\\"===t||\\\"bline\\\"===t||\\\"cline\\\"===t?r.append(\\\"path\\\"):\\\"grids\\\"===t&&a.forEach(function(t){e[t]=r.append(\\\"g\\\").classed(\\\"grid \\\"+t,!0);var n=\\\"bgrid\\\"===t?\\\"x\\\":\\\"y\\\";e[t].append(\\\"g\\\").classed(n,!0)})}),i.order()};var k=Math.sqrt(4/3);function M(t){return t.ticks+String(t.ticklen)+String(t.showticklabels)}w.adjustLayout=function(t,e){var r,n,i,a,o,s,h=this,p=t.domain,d=(p.x[0]+p.x[1])/2,g=(p.y[0]+p.y[1])/2,v=p.x[1]-p.x[0],m=p.y[1]-p.y[0],y=v*e.w,x=m*e.h,b=t.sum,_=t.aaxis.min,w=t.baxis.min,M=t.caxis.min;y>k*x?i=(a=x)*k:a=(i=y)/k,o=v*i/y,s=m*a/x,r=e.l+e.w*d-i/2,n=e.t+e.h*(1-g)-a/2,h.x0=r,h.y0=n,h.w=i,h.h=a,h.sum=b,h.xaxis={type:\\\"linear\\\",range:[_+2*M-b,b-_-2*w],domain:[d-o/2,d+o/2],_id:\\\"x\\\"},u(h.xaxis,h.graphDiv._fullLayout),h.xaxis.setScale(),h.xaxis.isPtWithinRange=function(t){return t.a>=h.aaxis.range[0]&&t.a<=h.aaxis.range[1]&&t.b>=h.baxis.range[1]&&t.b<=h.baxis.range[0]&&t.c>=h.caxis.range[1]&&t.c<=h.caxis.range[0]},h.yaxis={type:\\\"linear\\\",range:[_,b-w-M],domain:[g-s/2,g+s/2],_id:\\\"y\\\"},u(h.yaxis,h.graphDiv._fullLayout),h.yaxis.setScale(),h.yaxis.isPtWithinRange=function(){return!0};var A=h.yaxis.domain[0],T=h.aaxis=f({},t.aaxis,{visible:!0,range:[_,b-w-M],side:\\\"left\\\",_counterangle:30,tickangle:(+t.aaxis.tickangle||0)-30,domain:[A,A+s*k],_axislayer:h.layers.aaxis,_gridlayer:h.layers.agrid,anchor:\\\"free\\\",position:0,_pos:0,_id:\\\"y\\\",_length:i,_gridpath:\\\"M0,0l\\\"+a+\\\",-\\\"+i/2,automargin:!1});u(T,h.graphDiv._fullLayout),T.setScale();var S=h.baxis=f({},t.baxis,{visible:!0,range:[b-_-M,w],side:\\\"bottom\\\",_counterangle:30,domain:h.xaxis.domain,_axislayer:h.layers.baxis,_gridlayer:h.layers.bgrid,_counteraxis:h.aaxis,anchor:\\\"free\\\",position:0,_pos:0,_id:\\\"x\\\",_length:i,_gridpath:\\\"M0,0l-\\\"+i/2+\\\",-\\\"+a,automargin:!1});u(S,h.graphDiv._fullLayout),S.setScale(),T._counteraxis=S;var E=h.caxis=f({},t.caxis,{visible:!0,range:[b-_-w,M],side:\\\"right\\\",_counterangle:30,tickangle:(+t.caxis.tickangle||0)+30,domain:[A,A+s*k],_axislayer:h.layers.caxis,_gridlayer:h.layers.cgrid,_counteraxis:h.baxis,anchor:\\\"free\\\",position:0,_pos:0,_id:\\\"y\\\",_length:i,_gridpath:\\\"M0,0l-\\\"+a+\\\",\\\"+i/2,automargin:!1});u(E,h.graphDiv._fullLayout),E.setScale();var C=\\\"M\\\"+r+\\\",\\\"+(n+a)+\\\"h\\\"+i+\\\"l-\\\"+i/2+\\\",-\\\"+a+\\\"Z\\\";h.clipDef.select(\\\"path\\\").attr(\\\"d\\\",C),h.layers.plotbg.select(\\\"path\\\").attr(\\\"d\\\",C);var L=\\\"M0,\\\"+a+\\\"h\\\"+i+\\\"l-\\\"+i/2+\\\",-\\\"+a+\\\"Z\\\";h.clipDefRelative.select(\\\"path\\\").attr(\\\"d\\\",L);var z=\\\"translate(\\\"+r+\\\",\\\"+n+\\\")\\\";h.plotContainer.selectAll(\\\".scatterlayer,.maplayer\\\").attr(\\\"transform\\\",z),h.clipDefRelative.select(\\\"path\\\").attr(\\\"transform\\\",null);var O=\\\"translate(\\\"+(r-S._offset)+\\\",\\\"+(n+a)+\\\")\\\";h.layers.baxis.attr(\\\"transform\\\",O),h.layers.bgrid.attr(\\\"transform\\\",O);var I=\\\"translate(\\\"+(r+i/2)+\\\",\\\"+n+\\\")rotate(30)translate(0,\\\"+-T._offset+\\\")\\\";h.layers.aaxis.attr(\\\"transform\\\",I),h.layers.agrid.attr(\\\"transform\\\",I);var P=\\\"translate(\\\"+(r+i/2)+\\\",\\\"+n+\\\")rotate(-30)translate(0,\\\"+-E._offset+\\\")\\\";h.layers.caxis.attr(\\\"transform\\\",P),h.layers.cgrid.attr(\\\"transform\\\",P),h.drawAxes(!0),h.plotContainer.selectAll(\\\".crisp\\\").classed(\\\"crisp\\\",!1),h.layers.aline.select(\\\"path\\\").attr(\\\"d\\\",T.showline?\\\"M\\\"+r+\\\",\\\"+(n+a)+\\\"l\\\"+i/2+\\\",-\\\"+a:\\\"M0,0\\\").call(l.stroke,T.linecolor||\\\"#000\\\").style(\\\"stroke-width\\\",(T.linewidth||0)+\\\"px\\\"),h.layers.bline.select(\\\"path\\\").attr(\\\"d\\\",S.showline?\\\"M\\\"+r+\\\",\\\"+(n+a)+\\\"h\\\"+i:\\\"M0,0\\\").call(l.stroke,S.linecolor||\\\"#000\\\").style(\\\"stroke-width\\\",(S.linewidth||0)+\\\"px\\\"),h.layers.cline.select(\\\"path\\\").attr(\\\"d\\\",E.showline?\\\"M\\\"+(r+i/2)+\\\",\\\"+n+\\\"l\\\"+i/2+\\\",\\\"+a:\\\"M0,0\\\").call(l.stroke,E.linecolor||\\\"#000\\\").style(\\\"stroke-width\\\",(E.linewidth||0)+\\\"px\\\"),h.graphDiv._context.staticPlot||h.initInteractions(),c.setClipUrl(h.layers.frontplot,h._hasClipOnAxisFalse?null:h.clipId)},w.drawAxes=function(t){var e,r=this.graphDiv,n=this.id.substr(7)+\\\"title\\\",i=this.layers,a=this.aaxis,o=this.baxis,l=this.caxis;if(e=M(a),this.aTickLayout!==e&&(i.aaxis.selectAll(\\\".ytick\\\").remove(),this.aTickLayout=e),e=M(o),this.bTickLayout!==e&&(i.baxis.selectAll(\\\".xtick\\\").remove(),this.bTickLayout=e),e=M(l),this.cTickLayout!==e&&(i.caxis.selectAll(\\\".ytick\\\").remove(),this.cTickLayout=e),p.doTicksSingle(r,a,!0),p.doTicksSingle(r,o,!0),p.doTicksSingle(r,l,!0),t){var c=Math.max(a.showticklabels?a.tickfont.size/2:0,(l.showticklabels?.75*l.tickfont.size:0)+(\\\"outside\\\"===l.ticks?.87*l.ticklen:0));this.layers[\\\"a-title\\\"]=v.draw(r,\\\"a\\\"+n,{propContainer:a,propName:this.id+\\\".aaxis.title\\\",placeholder:s(r,\\\"Click to enter Component A title\\\"),attributes:{x:this.x0+this.w/2,y:this.y0-a.titlefont.size/3-c,\\\"text-anchor\\\":\\\"middle\\\"}});var u=(o.showticklabels?o.tickfont.size:0)+(\\\"outside\\\"===o.ticks?o.ticklen:0)+3;this.layers[\\\"b-title\\\"]=v.draw(r,\\\"b\\\"+n,{propContainer:o,propName:this.id+\\\".baxis.title\\\",placeholder:s(r,\\\"Click to enter Component B title\\\"),attributes:{x:this.x0-u,y:this.y0+this.h+.83*o.titlefont.size+u,\\\"text-anchor\\\":\\\"middle\\\"}}),this.layers[\\\"c-title\\\"]=v.draw(r,\\\"c\\\"+n,{propContainer:l,propName:this.id+\\\".caxis.title\\\",placeholder:s(r,\\\"Click to enter Component C title\\\"),attributes:{x:this.x0+this.w+u,y:this.y0+this.h+.83*l.titlefont.size+u,\\\"text-anchor\\\":\\\"middle\\\"}})}};var A=b.MINZOOM/2+.87,T=\\\"m-0.87,.5h\\\"+A+\\\"v3h-\\\"+(A+5.2)+\\\"l\\\"+(A/2+2.6)+\\\",-\\\"+(.87*A+4.5)+\\\"l2.6,1.5l-\\\"+A/2+\\\",\\\"+.87*A+\\\"Z\\\",S=\\\"m0.87,.5h-\\\"+A+\\\"v3h\\\"+(A+5.2)+\\\"l-\\\"+(A/2+2.6)+\\\",-\\\"+(.87*A+4.5)+\\\"l-2.6,1.5l\\\"+A/2+\\\",\\\"+.87*A+\\\"Z\\\",E=\\\"m0,1l\\\"+A/2+\\\",\\\"+.87*A+\\\"l2.6,-1.5l-\\\"+(A/2+2.6)+\\\",-\\\"+(.87*A+4.5)+\\\"l-\\\"+(A/2+2.6)+\\\",\\\"+(.87*A+4.5)+\\\"l2.6,1.5l\\\"+A/2+\\\",-\\\"+.87*A+\\\"Z\\\",C=\\\"m0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z\\\",L=!0;function z(t){n.select(t).selectAll(\\\".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners\\\").remove()}w.initInteractions=function(){var t,e,r,n,u,f,h,p,v,_,w=this,M=w.layers.plotbg.select(\\\"path\\\").node(),A=w.graphDiv,O=A._fullLayout._zoomlayer,I={element:M,gd:A,plotinfo:{id:w.id,xaxis:w.xaxis,yaxis:w.yaxis},subplot:w.id,prepFn:function(a,o,s){I.xaxes=[w.xaxis],I.yaxes=[w.yaxis];var c=A._fullLayout.dragmode;I.minDrag=\\\"lasso\\\"===c?1:void 0,\\\"zoom\\\"===c?(I.moveFn=F,I.clickFn=P,I.doneFn=N,function(a,o,s){var c=M.getBoundingClientRect();t=o-c.left,e=s-c.top,r={a:w.aaxis.range[0],b:w.baxis.range[1],c:w.caxis.range[1]},u=r,n=w.aaxis.range[1]-r.a,f=i(w.graphDiv._fullLayout[w.id].bgcolor).getLuminance(),h=\\\"M0,\\\"+w.h+\\\"L\\\"+w.w/2+\\\", 0L\\\"+w.w+\\\",\\\"+w.h+\\\"Z\\\",p=!1,v=O.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox\\\").attr(\\\"transform\\\",\\\"translate(\\\"+w.x0+\\\", \\\"+w.y0+\\\")\\\").style({fill:f>.2?\\\"rgba(0,0,0,0)\\\":\\\"rgba(255,255,255,0)\\\",\\\"stroke-width\\\":0}).attr(\\\"d\\\",h),_=O.append(\\\"path\\\").attr(\\\"class\\\",\\\"zoombox-corners\\\").attr(\\\"transform\\\",\\\"translate(\\\"+w.x0+\\\", \\\"+w.y0+\\\")\\\").style({fill:l.background,stroke:l.defaultLine,\\\"stroke-width\\\":1,opacity:0}).attr(\\\"d\\\",\\\"M0,0Z\\\"),x(O)}(0,o,s)):\\\"pan\\\"===c?(I.moveFn=j,I.clickFn=P,I.doneFn=V,r={a:w.aaxis.range[0],b:w.baxis.range[1],c:w.caxis.range[1]},u=r,x(O)):\\\"select\\\"!==c&&\\\"lasso\\\"!==c||m(a,o,s,I,c)}};function P(t,e){var r=A._fullLayout.clickmode;if(z(A),2===t){var n={};n[w.id+\\\".aaxis.min\\\"]=0,n[w.id+\\\".baxis.min\\\"]=0,n[w.id+\\\".caxis.min\\\"]=0,A.emit(\\\"plotly_doubleclick\\\",null),a.call(\\\"relayout\\\",A,n)}r.indexOf(\\\"select\\\")>-1&&1===t&&y(e,A,[w.xaxis],[w.yaxis],w.id,I),r.indexOf(\\\"event\\\")>-1&&g.click(A,e,w.id)}function D(t,e){return 1-e/w.h}function R(t,e){return 1-(t+(w.h-e)/Math.sqrt(3))/w.w}function B(t,e){return(t-(w.h-e)/Math.sqrt(3))/w.w}function F(i,a){var o=t+i,s=e+a,l=Math.max(0,Math.min(1,D(0,e),D(0,s))),c=Math.max(0,Math.min(1,R(t,e),R(o,s))),d=Math.max(0,Math.min(1,B(t,e),B(o,s))),g=(l/2+d)*w.w,m=(1-l/2-c)*w.w,y=(g+m)/2,x=m-g,M=(1-l)*w.h,A=M-x/k;x<b.MINZOOM?(u=r,v.attr(\\\"d\\\",h),_.attr(\\\"d\\\",\\\"M0,0Z\\\")):(u={a:r.a+l*n,b:r.b+c*n,c:r.c+d*n},v.attr(\\\"d\\\",h+\\\"M\\\"+g+\\\",\\\"+M+\\\"H\\\"+m+\\\"L\\\"+y+\\\",\\\"+A+\\\"L\\\"+g+\\\",\\\"+M+\\\"Z\\\"),_.attr(\\\"d\\\",\\\"M\\\"+t+\\\",\\\"+e+C+\\\"M\\\"+g+\\\",\\\"+M+T+\\\"M\\\"+m+\\\",\\\"+M+S+\\\"M\\\"+y+\\\",\\\"+A+E)),p||(v.transition().style(\\\"fill\\\",f>.2?\\\"rgba(0,0,0,0.4)\\\":\\\"rgba(255,255,255,0.3)\\\").duration(200),_.transition().style(\\\"opacity\\\",1).duration(200),p=!0)}function N(){if(z(A),u!==r){var t={};t[w.id+\\\".aaxis.min\\\"]=u.a,t[w.id+\\\".baxis.min\\\"]=u.b,t[w.id+\\\".caxis.min\\\"]=u.c,a.call(\\\"relayout\\\",A,t),L&&A.data&&A._context.showTips&&(o.notifier(s(A,\\\"Double-click to zoom back out\\\"),\\\"long\\\"),L=!1)}}function j(t,e){var n=t/w.xaxis._m,i=e/w.yaxis._m,a=[(u={a:r.a-i,b:r.b+(n+i)/2,c:r.c-(n-i)/2}).a,u.b,u.c].sort(),o=a.indexOf(u.a),s=a.indexOf(u.b),l=a.indexOf(u.c);a[0]<0&&(a[1]+a[0]/2<0?(a[2]+=a[0]+a[1],a[0]=a[1]=0):(a[2]+=a[0]/2,a[1]+=a[0]/2,a[0]=0),u={a:a[o],b:a[s],c:a[l]},e=(r.a-u.a)*w.yaxis._m,t=(r.c-u.c-r.b+u.b)*w.xaxis._m);var f=\\\"translate(\\\"+(w.x0+t)+\\\",\\\"+(w.y0+e)+\\\")\\\";w.plotContainer.selectAll(\\\".scatterlayer,.maplayer\\\").attr(\\\"transform\\\",f);var h=\\\"translate(\\\"+-t+\\\",\\\"+-e+\\\")\\\";w.clipDefRelative.select(\\\"path\\\").attr(\\\"transform\\\",h),w.aaxis.range=[u.a,w.sum-u.b-u.c],w.baxis.range=[w.sum-u.a-u.c,u.b],w.caxis.range=[w.sum-u.a-u.b,u.c],w.drawAxes(!1),w.plotContainer.selectAll(\\\".crisp\\\").classed(\\\"crisp\\\",!1),w._hasClipOnAxisFalse&&w.plotContainer.select(\\\".scatterlayer\\\").selectAll(\\\".trace\\\").call(c.hideOutsideRangePoints,w)}function V(){var t={};t[w.id+\\\".aaxis.min\\\"]=u.a,t[w.id+\\\".baxis.min\\\"]=u.b,t[w.id+\\\".caxis.min\\\"]=u.c,a.call(\\\"relayout\\\",A,t)}M.onmousemove=function(t){g.hover(A,t,w.id),A._fullLayout._lasthover=M,A._fullLayout._hoversubplot=w.id},M.onmouseout=function(t){A._dragging||d.unhover(A,t)},d.init(I)}},{\\\"../../components/color\\\":570,\\\"../../components/dragelement\\\":592,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../components/titles\\\":661,\\\"../../lib\\\":696,\\\"../../lib/extend\\\":685,\\\"../../registry\\\":827,\\\"../cartesian/axes\\\":744,\\\"../cartesian/constants\\\":750,\\\"../cartesian/select\\\":762,\\\"../cartesian/set_convert\\\":763,\\\"../plots\\\":808,d3:148,tinycolor2:514}],827:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lib/loggers\\\"),i=t(\\\"./lib/noop\\\"),a=t(\\\"./lib/push_unique\\\"),o=t(\\\"./lib/is_plain_object\\\"),s=t(\\\"./lib/extend\\\"),l=t(\\\"./plots/attributes\\\"),c=t(\\\"./plots/layout_attributes\\\"),u=s.extendFlat,f=s.extendDeepAll;function h(t){var e=t.name,i=t.categories,a=t.meta;if(r.modules[e])n.log(\\\"Type \\\"+e+\\\" already registered\\\");else{r.subplotsRegistry[t.basePlotModule.name]||function(t){var e=t.name;if(r.subplotsRegistry[e])return void n.log(\\\"Plot type \\\"+e+\\\" already registered.\\\");for(var i in v(t),r.subplotsRegistry[e]=t,r.componentsRegistry)x(i,t.name)}(t.basePlotModule);for(var o={},s=0;s<i.length;s++)o[i[s]]=!0,r.allCategories[i[s]]=!0;for(var l in r.modules[e]={_module:t,categories:o},a&&Object.keys(a).length&&(r.modules[e].meta=a),r.allTypes.push(e),r.componentsRegistry)m(l,e);t.layoutAttributes&&u(r.traceLayoutAttributes,t.layoutAttributes)}}function p(t){if(\\\"string\\\"!=typeof t.name)throw new Error(\\\"Component module *name* must be a string.\\\");var e=t.name;for(var n in r.componentsRegistry[e]=t,t.layoutAttributes&&(t.layoutAttributes._isLinkedToArray&&a(r.layoutArrayContainers,e),v(t)),r.modules)m(e,n);for(var i in r.subplotsRegistry)x(e,i);for(var o in r.transformsRegistry)y(e,o);t.schema&&t.schema.layout&&f(c,t.schema.layout)}function d(t){if(\\\"string\\\"!=typeof t.name)throw new Error(\\\"Transform module *name* must be a string.\\\");var e=\\\"Transform module \\\"+t.name,i=\\\"function\\\"==typeof t.transform,a=\\\"function\\\"==typeof t.calcTransform;if(!i&&!a)throw new Error(e+\\\" is missing a *transform* or *calcTransform* method.\\\");for(var s in i&&a&&n.log([e+\\\" has both a *transform* and *calcTransform* methods.\\\",\\\"Please note that all *transform* methods are executed\\\",\\\"before all *calcTransform* methods.\\\"].join(\\\" \\\")),o(t.attributes)||n.log(e+\\\" registered without an *attributes* object.\\\"),\\\"function\\\"!=typeof t.supplyDefaults&&n.log(e+\\\" registered without a *supplyDefaults* method.\\\"),r.transformsRegistry[t.name]=t,r.componentsRegistry)y(s,t.name)}function g(t){var e=t.name,n=e.split(\\\"-\\\")[0],i=t.dictionary,a=t.format,o=i&&Object.keys(i).length,s=a&&Object.keys(a).length,l=r.localeRegistry,c=l[e];if(c||(l[e]=c={}),n!==e){var u=l[n];u||(l[n]=u={}),o&&u.dictionary===c.dictionary&&(u.dictionary=i),s&&u.format===c.format&&(u.format=a)}o&&(c.dictionary=i),s&&(c.format=a)}function v(t){if(t.layoutAttributes){var e=t.layoutAttributes._arrayAttrRegexps;if(e)for(var n=0;n<e.length;n++)a(r.layoutArrayRegexes,e[n])}}function m(t,e){var n=r.componentsRegistry[t].schema;if(n&&n.traces){var i=n.traces[e];i&&f(r.modules[e]._module.attributes,i)}}function y(t,e){var n=r.componentsRegistry[t].schema;if(n&&n.transforms){var i=n.transforms[e];i&&f(r.transformsRegistry[e].attributes,i)}}function x(t,e){var n=r.componentsRegistry[t].schema;if(n&&n.subplots){var i=r.subplotsRegistry[e],a=i.layoutAttributes,o=\\\"subplot\\\"===i.attr?i.name:i.attr;Array.isArray(o)&&(o=o[0]);var s=n.subplots[o];a&&s&&f(a,s)}}function b(t){return\\\"object\\\"==typeof t&&(t=t.type),t}r.modules={},r.allCategories={},r.allTypes=[],r.subplotsRegistry={},r.transformsRegistry={},r.componentsRegistry={},r.layoutArrayContainers=[],r.layoutArrayRegexes=[],r.traceLayoutAttributes={},r.localeRegistry={},r.apiMethodRegistry={},r.register=function(t){if(!t)throw new Error(\\\"No argument passed to Plotly.register.\\\");t&&!Array.isArray(t)&&(t=[t]);for(var e=0;e<t.length;e++){var n=t[e];if(!n)throw new Error(\\\"Invalid module was attempted to be registered!\\\");switch(n.moduleType){case\\\"trace\\\":h(n);break;case\\\"transform\\\":d(n);break;case\\\"component\\\":p(n);break;case\\\"locale\\\":g(n);break;case\\\"apiMethod\\\":var i=n.name;r.apiMethodRegistry[i]=n.fn;break;default:throw new Error(\\\"Invalid module was attempted to be registered!\\\")}}},r.getModule=function(t){var e=r.modules[b(t)];return!!e&&e._module},r.traceIs=function(t,e){if(\\\"various\\\"===(t=b(t)))return!1;var i=r.modules[t];return i||(t&&\\\"area\\\"!==t&&n.log(\\\"Unrecognized trace type \\\"+t+\\\".\\\"),i=r.modules[l.type.dflt]),!!i.categories[e]},r.getTransformIndices=function(t,e){for(var r=[],n=t.transforms||[],i=0;i<n.length;i++)n[i].type===e&&r.push(i);return r},r.hasTransform=function(t,e){for(var r=t.transforms||[],n=0;n<r.length;n++)if(r[n].type===e)return!0;return!1},r.getComponentMethod=function(t,e){var n=r.componentsRegistry[t];return n&&n[e]||i},r.call=function(){var t=arguments[0],e=[].slice.call(arguments,1);return r.apiMethodRegistry[t].apply(null,e)}},{\\\"./lib/extend\\\":685,\\\"./lib/is_plain_object\\\":697,\\\"./lib/loggers\\\":700,\\\"./lib/noop\\\":705,\\\"./lib/push_unique\\\":710,\\\"./plots/attributes\\\":741,\\\"./plots/layout_attributes\\\":799}],828:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=n.extendFlat,a=n.extendDeep;function o(t){var e;switch(t){case\\\"themes__thumb\\\":e={autosize:!0,width:150,height:150,title:\\\"\\\",showlegend:!1,margin:{l:5,r:5,t:5,b:5,pad:0},annotations:[]};break;case\\\"thumbnail\\\":e={title:\\\"\\\",hidesources:!0,showlegend:!1,borderwidth:0,bordercolor:\\\"\\\",margin:{l:1,r:1,t:1,b:1,pad:0},annotations:[]};break;default:e={}}return e}e.exports=function(t,e){var r;t.framework&&t.framework.isPolar&&(t=t.framework.getConfig());var n,s=t.data,l=t.layout,c=a([],s),u=a({},l,o(e.tileClass)),f=t._context||{};if(e.width&&(u.width=e.width),e.height&&(u.height=e.height),\\\"thumbnail\\\"===e.tileClass||\\\"themes__thumb\\\"===e.tileClass){u.annotations=[];var h=Object.keys(u);for(r=0;r<h.length;r++)n=h[r],[\\\"xaxis\\\",\\\"yaxis\\\",\\\"zaxis\\\"].indexOf(n.slice(0,5))>-1&&(u[h[r]].title=\\\"\\\");for(r=0;r<c.length;r++){var p=c[r];p.showscale=!1,p.marker&&(p.marker.showscale=!1),\\\"pie\\\"===p.type&&(p.textposition=\\\"none\\\")}}if(Array.isArray(e.annotations))for(r=0;r<e.annotations.length;r++)u.annotations.push(e.annotations[r]);var d=Object.keys(u).filter(function(t){return t.match(/^scene\\\\d*$/)});if(d.length){var g={};for(\\\"thumbnail\\\"===e.tileClass&&(g={title:\\\"\\\",showaxeslabels:!1,showticklabels:!1,linetickenable:!1}),r=0;r<d.length;r++){var v=u[d[r]];v.xaxis||(v.xaxis={}),v.yaxis||(v.yaxis={}),v.zaxis||(v.zaxis={}),i(v.xaxis,g),i(v.yaxis,g),i(v.zaxis,g),v._scene=null}}var m=document.createElement(\\\"div\\\");e.tileClass&&(m.className=e.tileClass);var y={gd:m,td:m,layout:u,data:c,config:{staticPlot:void 0===e.staticPlot||e.staticPlot,plotGlPixelRatio:void 0===e.plotGlPixelRatio?2:e.plotGlPixelRatio,displaylogo:e.displaylogo||!1,showLink:e.showLink||!1,showTips:e.showTips||!1,mapboxAccessToken:f.mapboxAccessToken}};return\\\"transparent\\\"!==e.setBackground&&(y.config.setBackground=e.setBackground||\\\"opaque\\\"),y.gd.defaultLayout=o(e.tileClass),y}},{\\\"../lib\\\":696}],829:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../plot_api/to_image\\\"),i=t(\\\"../lib\\\"),a=t(\\\"./filesaver\\\");e.exports=function(t,e){var r;return i.isPlainObject(t)||(r=i.getGraphDiv(t)),(e=e||{}).format=e.format||\\\"png\\\",new Promise(function(o,s){r&&r._snapshotInProgress&&s(new Error(\\\"Snapshotting already in progress.\\\")),i.isIE()&&\\\"svg\\\"!==e.format&&s(new Error(\\\"Sorry IE does not support downloading from canvas. Try {format:'svg'} instead.\\\")),r&&(r._snapshotInProgress=!0);var l=n(t,e),c=e.filename||t.fn||\\\"newplot\\\";c+=\\\".\\\"+e.format,l.then(function(t){return r&&(r._snapshotInProgress=!1),a(t,c)}).then(function(t){o(t)}).catch(function(t){r&&(r._snapshotInProgress=!1),s(t)})})}},{\\\"../lib\\\":696,\\\"../plot_api/to_image\\\":737,\\\"./filesaver\\\":830}],830:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r=document.createElement(\\\"a\\\"),n=\\\"download\\\"in r,i=/Version\\\\/[\\\\d\\\\.]+.*Safari/.test(navigator.userAgent);return new Promise(function(a,o){if(\\\"undefined\\\"!=typeof navigator&&/MSIE [1-9]\\\\./.test(navigator.userAgent)&&o(new Error(\\\"IE < 10 unsupported\\\")),i&&(document.location.href=\\\"data:application/octet-stream\\\"+t.slice(t.search(/[,;]/)),a(e)),e||(e=\\\"download\\\"),n&&(r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),a(e)),\\\"undefined\\\"!=typeof navigator&&navigator.msSaveBlob){var s=t.split(/^data:image\\\\/svg\\\\+xml,/)[1],l=decodeURIComponent(s);navigator.msSaveBlob(new Blob([l]),e),a(e)}o(new Error(\\\"download error\\\"))})}},{}],831:[function(t,e,r){\\\"use strict\\\";r.getDelay=function(t){return t._has&&(t._has(\\\"gl3d\\\")||t._has(\\\"gl2d\\\")||t._has(\\\"mapbox\\\"))?500:0},r.getRedrawFunc=function(t){var e=t._fullLayout||{};if(!(!(e._has&&e._has(\\\"polar\\\"))&&t.data&&t.data[0]&&t.data[0].r))return function(){(t.calcdata||[]).forEach(function(t){t[0]&&t[0].t&&t[0].t.cb&&t[0].t.cb()})}}},{}],832:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./helpers\\\"),i={getDelay:n.getDelay,getRedrawFunc:n.getRedrawFunc,clone:t(\\\"./cloneplot\\\"),toSVG:t(\\\"./tosvg\\\"),svgToImg:t(\\\"./svgtoimg\\\"),toImage:t(\\\"./toimage\\\"),downloadImage:t(\\\"./download\\\")};e.exports=i},{\\\"./cloneplot\\\":828,\\\"./download\\\":829,\\\"./helpers\\\":831,\\\"./svgtoimg\\\":833,\\\"./toimage\\\":834,\\\"./tosvg\\\":835}],833:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"events\\\").EventEmitter;e.exports=function(t){var e=t.emitter||new i,r=new Promise(function(i,a){var o=window.Image,s=t.svg,l=t.format||\\\"png\\\";if(n.isIE()&&\\\"svg\\\"!==l){var c=new Error(\\\"Sorry IE does not support downloading from canvas. Try {format:'svg'} instead.\\\");return a(c),t.promise?r:e.emit(\\\"error\\\",c)}var u=t.canvas,f=t.scale||1,h=t.width||300,p=t.height||150,d=f*h,g=f*p,v=u.getContext(\\\"2d\\\"),m=new o,y=\\\"data:image/svg+xml,\\\"+encodeURIComponent(s);u.width=d,u.height=g,m.onload=function(){var r;switch(\\\"svg\\\"!==l&&v.drawImage(m,0,0,d,g),l){case\\\"jpeg\\\":r=u.toDataURL(\\\"image/jpeg\\\");break;case\\\"png\\\":r=u.toDataURL(\\\"image/png\\\");break;case\\\"webp\\\":r=u.toDataURL(\\\"image/webp\\\");break;case\\\"svg\\\":r=y;break;default:var n=\\\"Image format is not jpeg, png, svg or webp.\\\";if(a(new Error(n)),!t.promise)return e.emit(\\\"error\\\",n)}i(r),t.promise||e.emit(\\\"success\\\",r)},m.onerror=function(r){if(a(r),!t.promise)return e.emit(\\\"error\\\",r)},m.src=y});return t.promise?r:e}},{\\\"../lib\\\":696,events:92}],834:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"events\\\").EventEmitter,i=t(\\\"../registry\\\"),a=t(\\\"../lib\\\"),o=t(\\\"./helpers\\\"),s=t(\\\"./cloneplot\\\"),l=t(\\\"./tosvg\\\"),c=t(\\\"./svgtoimg\\\");e.exports=function(t,e){var r=new n,u=s(t,{format:\\\"png\\\"}),f=u.gd;f.style.position=\\\"absolute\\\",f.style.left=\\\"-5000px\\\",document.body.appendChild(f);var h=o.getRedrawFunc(f);return i.call(\\\"plot\\\",f,u.data,u.layout,u.config).then(h).then(function(){var t=o.getDelay(f._fullLayout);setTimeout(function(){var t=l(f),n=document.createElement(\\\"canvas\\\");n.id=a.randstr(),(r=c({format:e.format,width:f._fullLayout.width,height:f._fullLayout.height,canvas:n,emitter:r,svg:t})).clean=function(){f&&document.body.removeChild(f)}},t)}).catch(function(t){r.emit(\\\"error\\\",t)}),r}},{\\\"../lib\\\":696,\\\"../registry\\\":827,\\\"./cloneplot\\\":828,\\\"./helpers\\\":831,\\\"./svgtoimg\\\":833,\\\"./tosvg\\\":835,events:92}],835:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../components/drawing\\\"),o=t(\\\"../components/color\\\"),s=t(\\\"../constants/xmlns_namespaces\\\"),l=/\\\"/g,c=new RegExp('(\\\"TOBESTRIPPED)|(TOBESTRIPPED\\\")',\\\"g\\\");e.exports=function(t,e,r){var u,f=t._fullLayout,h=f._paper,p=f._toppaper,d=f.width,g=f.height;h.insert(\\\"rect\\\",\\\":first-child\\\").call(a.setRect,0,0,d,g).call(o.fill,f.paper_bgcolor);var v=f._basePlotModules||[];for(u=0;u<v.length;u++){var m=v[u];m.toSVG&&m.toSVG(t)}if(p){var y=p.node().childNodes,x=Array.prototype.slice.call(y);for(u=0;u<x.length;u++){var b=x[u];b.childNodes.length&&h.node().appendChild(b)}}f._draggers&&f._draggers.remove(),h.node().style.background=\\\"\\\",h.selectAll(\\\"text\\\").attr({\\\"data-unformatted\\\":null,\\\"data-math\\\":null}).each(function(){var t=n.select(this);if(\\\"hidden\\\"!==this.style.visibility&&\\\"none\\\"!==this.style.display){t.style({visibility:null,display:null});var e=this.style.fontFamily;e&&-1!==e.indexOf('\\\"')&&t.style(\\\"font-family\\\",e.replace(l,\\\"TOBESTRIPPED\\\"))}else t.remove()}),h.selectAll(\\\".point, .scatterpts, .legendfill>path, .legendlines>path, .cbfill\\\").each(function(){var t=n.select(this),e=this.style.fill;e&&-1!==e.indexOf(\\\"url(\\\")&&t.style(\\\"fill\\\",e.replace(l,\\\"TOBESTRIPPED\\\"));var r=this.style.stroke;r&&-1!==r.indexOf(\\\"url(\\\")&&t.style(\\\"stroke\\\",r.replace(l,\\\"TOBESTRIPPED\\\"))}),\\\"pdf\\\"!==e&&\\\"eps\\\"!==e||h.selectAll(\\\"#MathJax_SVG_glyphs path\\\").attr(\\\"stroke-width\\\",0),h.node().setAttributeNS(s.xmlns,\\\"xmlns\\\",s.svg),h.node().setAttributeNS(s.xmlns,\\\"xmlns:xlink\\\",s.xlink),\\\"svg\\\"===e&&r&&(h.attr(\\\"width\\\",r*d),h.attr(\\\"height\\\",r*g),h.attr(\\\"viewBox\\\",\\\"0 0 \\\"+d+\\\" \\\"+g));var _=(new window.XMLSerializer).serializeToString(h.node());return _=function(t){var e=n.select(\\\"body\\\").append(\\\"div\\\").style({display:\\\"none\\\"}).html(\\\"\\\"),r=t.replace(/(&[^;]*;)/gi,function(t){return\\\"&lt;\\\"===t?\\\"&#60;\\\":\\\"&rt;\\\"===t?\\\"&#62;\\\":-1!==t.indexOf(\\\"<\\\")||-1!==t.indexOf(\\\">\\\")?\\\"\\\":e.html(t).text()});return e.remove(),r}(_),_=(_=_.replace(/&(?!\\\\w+;|\\\\#[0-9]+;| \\\\#x[0-9A-F]+;)/g,\\\"&amp;\\\")).replace(c,\\\"'\\\"),i.isIE()&&(_=(_=(_=_.replace(/\\\"/gi,\\\"'\\\")).replace(/(\\\\('#)([^']*)('\\\\))/gi,'(\\\"#$2\\\")')).replace(/(\\\\\\\\')/gi,'\\\"')),_}},{\\\"../components/color\\\":570,\\\"../components/drawing\\\":595,\\\"../constants/xmlns_namespaces\\\":674,\\\"../lib\\\":696,d3:148}],836:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").mergeArray;e.exports=function(t,e){for(var r=0;r<t.length;r++)t[r].i=r;n(e.text,t,\\\"tx\\\"),n(e.hovertext,t,\\\"htx\\\");var i=e.marker;if(i){n(i.opacity,t,\\\"mo\\\"),n(i.color,t,\\\"mc\\\");var a=i.line;a&&(n(a.color,t,\\\"mlc\\\"),n(a.width,t,\\\"mlw\\\"))}}},{\\\"../../lib\\\":696}],837:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../plots/font_attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat,l=o({editType:\\\"calc\\\",arrayOk:!0,colorEditType:\\\"style\\\"}),c=s({},n.marker.line.width,{dflt:0}),u=s({width:c,editType:\\\"calc\\\"},i(\\\"marker.line\\\")),f=s({line:u,editType:\\\"calc\\\"},i(\\\"marker\\\"),{colorbar:a,opacity:{valType:\\\"number\\\",arrayOk:!0,dflt:1,min:0,max:1,editType:\\\"style\\\"}});e.exports={x:n.x,x0:n.x0,dx:n.dx,y:n.y,y0:n.y0,dy:n.dy,text:n.text,hovertext:n.hovertext,textposition:{valType:\\\"enumerated\\\",values:[\\\"inside\\\",\\\"outside\\\",\\\"auto\\\",\\\"none\\\"],dflt:\\\"none\\\",arrayOk:!0,editType:\\\"calc\\\"},textfont:s({},l,{}),insidetextfont:s({},l,{}),outsidetextfont:s({},l,{}),constraintext:{valType:\\\"enumerated\\\",values:[\\\"inside\\\",\\\"outside\\\",\\\"both\\\",\\\"none\\\"],dflt:\\\"both\\\",editType:\\\"calc\\\"},cliponaxis:s({},n.cliponaxis,{}),orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],editType:\\\"calc+clearAxisTypes\\\"},base:{valType:\\\"any\\\",dflt:null,arrayOk:!0,editType:\\\"calc\\\"},offset:{valType:\\\"number\\\",dflt:null,arrayOk:!0,editType:\\\"calc\\\"},width:{valType:\\\"number\\\",dflt:null,min:0,arrayOk:!0,editType:\\\"calc\\\"},marker:f,selected:{marker:{opacity:n.selected.marker.opacity,color:n.selected.marker.color,editType:\\\"style\\\"},textfont:n.selected.textfont,editType:\\\"style\\\"},unselected:{marker:{opacity:n.unselected.marker.opacity,color:n.unselected.marker.color,editType:\\\"style\\\"},textfont:n.unselected.textfont,editType:\\\"style\\\"},r:n.r,t:n.t,_deprecated:{bardir:{valType:\\\"enumerated\\\",editType:\\\"calc\\\",values:[\\\"v\\\",\\\"h\\\"]}}}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/font_attributes\\\":771,\\\"../scatter/attributes\\\":1043}],838:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/calc\\\"),o=t(\\\"./arrays_to_calcdata\\\"),s=t(\\\"../scatter/calc_selection\\\");e.exports=function(t,e){var r,l,c=n.getFromId(t,e.xaxis||\\\"x\\\"),u=n.getFromId(t,e.yaxis||\\\"y\\\");\\\"h\\\"===e.orientation?(r=c.makeCalcdata(e,\\\"x\\\"),l=u.makeCalcdata(e,\\\"y\\\")):(r=u.makeCalcdata(e,\\\"y\\\"),l=c.makeCalcdata(e,\\\"x\\\"));for(var f=Math.min(l.length,r.length),h=new Array(f),p=0;p<f;p++)h[p]={p:l[p],s:r[p]},e.ids&&(h[p].id=String(e.ids[p]));return i(e,\\\"marker\\\")&&a(e,e.marker.color,\\\"marker\\\",\\\"c\\\"),i(e,\\\"marker.line\\\")&&a(e,e.marker.line.color,\\\"marker.line\\\",\\\"c\\\"),o(h,e),s(h,e),h}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/calc_selection\\\":1045,\\\"./arrays_to_calcdata\\\":836}],839:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\").isArrayOrTypedArray,a=t(\\\"../../constants/numerical\\\").BADNUM,o=t(\\\"../../registry\\\"),s=t(\\\"../../plots/cartesian/axes\\\"),l=t(\\\"./sieve.js\\\");function c(t,e,r,o){if(o.length){var c,_,w,k,M=t._fullLayout.barmode,A=\\\"overlay\\\"===M,T=\\\"group\\\"===M;if(function(t,e,r,a){var o,s;for(o=0;o<a.length;o++){var l,c=a[o],u=c[0].trace,f=u.base,h=\\\"h\\\"===u.orientation?u.xcalendar:u.ycalendar;if(i(f)){for(s=0;s<Math.min(f.length,c.length);s++)l=r.d2c(f[s],0,h),n(l)?(c[s].b=+l,c[s].hasB=1):c[s].b=0;for(;s<c.length;s++)c[s].b=0}else{l=r.d2c(f,0,h);var p=n(l);for(l=p?l:0,s=0;s<c.length;s++)c[s].b=l,p&&(c[s].hasB=1)}}}(0,0,r,o),A)u(t,e,r,o);else if(T){for(c=[],_=[],w=0;w<o.length;w++)void 0===(k=o[w])[0].trace.offset?_.push(k):c.push(k);_.length&&function(t,e,r,n){var i=t._fullLayout.barnorm,a=new l(n,!1,!i);(function(t,e,r){var n,i,a,o,s=t._fullLayout,l=s.bargap,c=s.bargroupgap||0,u=r.positions,f=r.distinctPositions,g=r.minDiff,v=r.traces,m=u.length!==f.length,y=v.length,x=g*(1-l),b=m?x/y:x,_=b*(1-c);for(n=0;n<y;n++){i=v[n],a=i[0];var w=m?((2*n+1-y)*b-_)/2:-_/2;(o=a.t).barwidth=_,o.poffset=w,o.bargroupwidth=x,o.bardelta=g}r.binWidth=v[0][0].t.barwidth/100,h(r),p(t,e,r),d(t,e,r,m)})(t,e,a),i?(m(t,r,a),y(t,r,a)):v(t,r,a)}(t,e,r,_),c.length&&u(t,e,r,c)}else{for(c=[],_=[],w=0;w<o.length;w++)void 0===(k=o[w])[0].trace.base?_.push(k):c.push(k);_.length&&function(t,e,r,i){var o=t._fullLayout.barmode,c=\\\"stack\\\"===o,u=\\\"relative\\\"===o,h=t._fullLayout.barnorm,p=new l(i,u,!(h||c||u));f(t,e,p),function(t,e,r){var i,o,l,c,u=t._fullLayout.barnorm,f=x(e),h=r.traces,p=[null,null];for(i=0;i<h.length;i++)for(o=h[i],l=0;l<o.length;l++)if((c=o[l]).s!==a){var d=r.put(c.p,c.b+c.s),v=d+c.b+c.s;c.b=d,c[f]=v,u||(n(e.c2l(v))&&g(p,v),c.hasB&&n(e.c2l(d))&&g(p,d))}if(!u){var m=s.findExtremes(e,p,{tozero:!0,padded:!0});b(h,e,m)}}(t,r,p);for(var d=0;d<i.length;d++)for(var v=i[d],m=0;m<v.length;m++){var _=v[m];if(_.s!==a){var w=_.b+_.s===p.get(_.p,_.s);w&&(_._outmost=!0)}}h&&y(t,r,p)}(t,e,r,_),c.length&&u(t,e,r,c)}!function(t,e){var r,i,a,o=e._id.charAt(0),s={},l=1/0,c=-1/0;for(r=0;r<t.length;r++)for(a=t[r],i=0;i<a.length;i++){var u=a[i].p;n(u)&&(l=Math.min(l,u),c=Math.max(c,u))}var f,h,p=1e4/(c-l),d=s.round=function(t){return String(Math.round(p*(t-l)))};for(r=0;r<t.length;r++)for((a=t[r])[0].t.extents=s,f=a[0].t.poffset,h=Array.isArray(f),i=0;i<a.length;i++){var g=a[i],v=g[o]-g.w/2;if(n(v)){var m=g[o]+g.w/2,y=d(g.p);s[y]?s[y]=[Math.min(v,s[y][0]),Math.max(m,s[y][1])]:s[y]=[v,m]}g.p0=g.p+(h?f[i]:f),g.p1=g.p0+g.w,g.s0=g.b,g.s1=g.s0+g.s}}(o,e)}}function u(t,e,r,n){for(var i=t._fullLayout.barnorm,a=!i,o=0;o<n.length;o++){var s=n[o],c=new l([s],!1,a);f(t,e,c),i?(m(t,r,c),y(t,r,c)):v(t,r,c)}}function f(t,e,r){var n,i,a=t._fullLayout,o=a.bargap,s=a.bargroupgap||0,l=r.minDiff,c=r.traces,u=l*(1-o),f=u*(1-s),g=-f/2;for(n=0;n<c.length;n++)(i=c[n][0].t).barwidth=f,i.poffset=g,i.bargroupwidth=u,i.bardelta=l;r.binWidth=c[0][0].t.barwidth/100,h(r),p(t,e,r),d(t,e,r)}function h(t){var e,r,a,o,s,l,c=t.traces;for(e=0;e<c.length;e++){o=(a=(r=c[e])[0]).trace,l=a.t;var u,f=o._offset||o.offset,h=l.poffset;if(i(f)){for(u=Array.prototype.slice.call(f,0,r.length),s=0;s<u.length;s++)n(u[s])||(u[s]=h);for(s=u.length;s<r.length;s++)u.push(h);l.poffset=u}else void 0!==f&&(l.poffset=f);var p=o._width||o.width,d=l.barwidth;if(i(p)){var g=Array.prototype.slice.call(p,0,r.length);for(s=0;s<g.length;s++)n(g[s])||(g[s]=d);for(s=g.length;s<r.length;s++)g.push(d);if(l.barwidth=g,void 0===f){for(u=[],s=0;s<r.length;s++)u.push(h+(d-g[s])/2);l.poffset=u}}else void 0!==p&&(l.barwidth=p,void 0===f&&(l.poffset=h+(d-p)/2))}}function p(t,e,r){for(var n=r.traces,i=x(e),a=0;a<n.length;a++)for(var o=n[a],s=o[0].t,l=s.poffset,c=Array.isArray(l),u=s.barwidth,f=Array.isArray(u),h=0;h<o.length;h++){var p=o[h],d=p.w=f?u[h]:u;p[i]=p.p+(c?l[h]:l)+d/2}}function d(t,e,r,n){var i=r.traces,a=r.distinctPositions,o=a[0],l=r.minDiff,c=l/2;s.minDtick(e,l,o,n);for(var u=Math.min.apply(Math,a)-c,f=Math.max.apply(Math,a)+c,h=0;h<i.length;h++){var p=i[h],d=p[0],g=d.trace;if(void 0!==g.width||void 0!==g.offset)for(var v=d.t,m=v.poffset,y=v.barwidth,x=Array.isArray(m),_=Array.isArray(y),w=0;w<p.length;w++){var k=p[w],M=x?m[w]:m,A=_?y[w]:y,T=k.p+M,S=T+A;u=Math.min(u,T),f=Math.max(f,S)}}b(i,e,s.findExtremes(e,[u,f],{padded:!1}))}function g(t,e){n(t[0])?t[0]=Math.min(t[0],e):t[0]=e,n(t[1])?t[1]=Math.max(t[1],e):t[1]=e}function v(t,e,r){for(var i=r.traces,a=x(e),o=[null,null],l=0;l<i.length;l++)for(var c=i[l],u=0;u<c.length;u++){var f=c[u],h=f.b,p=h+f.s;f[a]=p,n(e.c2l(p))&&g(o,p),f.hasB&&n(e.c2l(h))&&g(o,h)}b(i,e,s.findExtremes(e,o,{tozero:!0,padded:!0}))}function m(t,e,r){for(var n=r.traces,i=0;i<n.length;i++)for(var o=n[i],s=0;s<o.length;s++){var l=o[s];l.s!==a&&r.put(l.p,l.b+l.s)}}function y(t,e,r){var i=r.traces,o=x(e),l=\\\"fraction\\\"===t._fullLayout.barnorm?1:100,c=l/1e9,u=e.l2c(e.c2l(0)),f=\\\"stack\\\"===t._fullLayout.barmode?l:u,h=[u,f],p=!1;function d(t){n(e.c2l(t))&&(t<u-c||t>f+c||!n(u))&&(p=!0,g(h,t))}for(var v=0;v<i.length;v++)for(var m=i[v],y=0;y<m.length;y++){var _=m[y];if(_.s!==a){var w=Math.abs(l/r.get(_.p,_.s));_.b*=w,_.s*=w;var k=_.b,M=k+_.s;_[o]=M,d(M),_.hasB&&d(k)}}var A=s.findExtremes(e,h,{tozero:!0,padded:p});b(i,e,A)}function x(t){return t._id.charAt(0)}function b(t,e,r){for(var n=0;n<t.length;n++)t[n][0].trace._extremes[e._id]=r}e.exports={crossTraceCalc:function(t,e){var r,n=e.xaxis,i=e.yaxis,a=t._fullData,s=t.calcdata,l=[],u=[];for(r=0;r<a.length;r++){var f=a[r];!0===f.visible&&o.traceIs(f,\\\"bar\\\")&&f.xaxis===n._id&&f.yaxis===i._id&&(\\\"h\\\"===f.orientation?l.push(s[r]):u.push(s[r]))}c(t,n,i,u),c(t,i,n,l)},setGroupPositions:c}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"./sieve.js\\\":848,\\\"fast-isnumeric\\\":214}],840:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../scatter/xy_defaults\\\"),s=t(\\\"../bar/style_defaults\\\"),l=t(\\\"./attributes\\\");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,l,r,i)}var f=n.coerceFont;if(o(t,e,c,u)){u(\\\"orientation\\\",e.x&&!e.y?\\\"h\\\":\\\"v\\\"),u(\\\"base\\\"),u(\\\"offset\\\"),u(\\\"width\\\"),u(\\\"text\\\"),u(\\\"hovertext\\\");var h=u(\\\"textposition\\\"),p=Array.isArray(h)||\\\"auto\\\"===h,d=p||\\\"outside\\\"===h;if(p||\\\"inside\\\"===h||d){var g=f(u,\\\"textfont\\\",c.font),v=n.extendFlat({},g);!(t.textfont&&t.textfont.color)&&delete v.color,f(u,\\\"insidetextfont\\\",v),d&&f(u,\\\"outsidetextfont\\\",g),u(\\\"constraintext\\\"),u(\\\"selected.textfont.color\\\"),u(\\\"unselected.textfont.color\\\"),u(\\\"cliponaxis\\\")}s(t,e,u,r,c);var m=a.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");m(t,e,i.defaultLine,{axis:\\\"y\\\"}),m(t,e,i.defaultLine,{axis:\\\"x\\\",inherit:\\\"y\\\"}),n.coerceSelectionMarkerOpacity(e,u)}else e.visible=!1}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../bar/style_defaults\\\":850,\\\"../scatter/xy_defaults\\\":1069,\\\"./attributes\\\":837}],841:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"tinycolor2\\\");r.coerceString=function(t,e,r){if(\\\"string\\\"==typeof e){if(e||!t.noBlank)return e}else if(\\\"number\\\"==typeof e&&!t.strict)return String(e);return void 0!==r?r:t.dflt},r.coerceNumber=function(t,e,r){if(n(e)){e=+e;var i=t.min,a=t.max;if(!(void 0!==i&&e<i||void 0!==a&&e>a))return e}return void 0!==r?r:t.dflt},r.coerceColor=function(t,e,r){return i(e).isValid()?e:void 0!==r?r:t.dflt},r.coerceEnumerated=function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt},r.getValue=function(t,e){var r;return Array.isArray(t)?e<t.length&&(r=t[e]):r=t,r}},{\\\"fast-isnumeric\\\":214,tinycolor2:514}],842:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../scatter/fill_hover_text\\\");function s(t,e){var r=e.mcc||t.marker.color,n=e.mlcc||t.marker.line.color,i=e.mlw||t.marker.line.width;return a.opacity(r)?r:a.opacity(n)&&i?n:void 0}e.exports={hoverPoints:function(t,e,r,a){var l,c,u,f,h,p,d,g=t.cd,v=g[0].trace,m=g[0].t,y=\\\"closest\\\"===a,x=t.maxHoverDistance,b=t.maxSpikeDistance;function _(t){return t[u]-t.w/2}function w(t){return t[u]+t.w/2}var k=y?_:function(t){return Math.min(_(t),t.p-m.bardelta/2)},M=y?w:function(t){return Math.max(w(t),t.p+m.bardelta/2)};function A(t,e){return n.inbox(t-l,e-l,x+Math.min(1,Math.abs(e-t)/d)-1)}function T(t){return A(k(t),M(t))}function S(t){return n.inbox(t.b-c,t[f]-c,x+(t[f]-c)/(t[f]-t.b)-1)}\\\"h\\\"===v.orientation?(l=r,c=e,u=\\\"y\\\",f=\\\"x\\\",h=S,p=T):(l=e,c=r,u=\\\"x\\\",f=\\\"y\\\",p=S,h=T);var E=t[u+\\\"a\\\"],C=t[f+\\\"a\\\"];d=Math.abs(E.r2c(E.range[1])-E.r2c(E.range[0]));var L=n.getDistanceFunction(a,h,p,function(t){return(h(t)+p(t))/2});if(n.getClosest(g,L,t),!1!==t.index){y||(k=function(t){return Math.min(_(t),t.p-m.bargroupwidth/2)},M=function(t){return Math.max(w(t),t.p+m.bargroupwidth/2)});var z=g[t.index],O=v.base?z.b+z.s:z.s;t[f+\\\"0\\\"]=t[f+\\\"1\\\"]=C.c2p(z[f],!0),t[f+\\\"LabelVal\\\"]=O;var I=m.extents[m.extents.round(z.p)];return t[u+\\\"0\\\"]=E.c2p(y?k(z):I[0],!0),t[u+\\\"1\\\"]=E.c2p(y?M(z):I[1],!0),t[u+\\\"LabelVal\\\"]=z.p,t.spikeDistance=(S(z)+function(t){return A(_(t),w(t))}(z))/2+b-x,t[u+\\\"Spike\\\"]=E.c2p(z.p,!0),t.color=s(v,z),o(z,v,t),i.getComponentMethod(\\\"errorbars\\\",\\\"hoverInfo\\\")(z,v,t),[t]}},getTraceColor:s}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../registry\\\":827,\\\"../scatter/fill_hover_text\\\":1051}],843:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.layoutAttributes=t(\\\"./layout_attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),n.calc=t(\\\"./calc\\\"),n.crossTraceCalc=t(\\\"./cross_trace_calc\\\").crossTraceCalc,n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.arraysToCalcdata=t(\\\"./arrays_to_calcdata\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"./style\\\").style,n.styleOnSelect=t(\\\"./style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\").hoverPoints,n.selectPoints=t(\\\"./select\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"bar\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"bar\\\",\\\"oriented\\\",\\\"errorBarsOK\\\",\\\"showLegend\\\",\\\"zoomScale\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../scatter/marker_colorbar\\\":1061,\\\"./arrays_to_calcdata\\\":836,\\\"./attributes\\\":837,\\\"./calc\\\":838,\\\"./cross_trace_calc\\\":839,\\\"./defaults\\\":840,\\\"./hover\\\":842,\\\"./layout_attributes\\\":844,\\\"./layout_defaults\\\":845,\\\"./plot\\\":846,\\\"./select\\\":847,\\\"./style\\\":849}],844:[function(t,e,r){\\\"use strict\\\";e.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\\\"}}},{}],845:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"./layout_attributes\\\");e.exports=function(t,e,r){function s(r,n){return a.coerce(t,e,o,r,n)}for(var l=!1,c=!1,u=!1,f={},h=0;h<r.length;h++){var p=r[h];if(n.traceIs(p,\\\"bar\\\")&&p.visible){if(l=!0,\\\"overlay\\\"!==t.barmode&&\\\"stack\\\"!==t.barmode){var d=p.xaxis+p.yaxis;f[d]&&(u=!0),f[d]=!0}if(p.visible&&\\\"histogram\\\"===p.type)\\\"category\\\"!==i.getFromId({_fullLayout:e},p[\\\"v\\\"===p.orientation?\\\"xaxis\\\":\\\"yaxis\\\"]).type&&(c=!0)}}l&&(\\\"overlay\\\"!==s(\\\"barmode\\\")&&s(\\\"barnorm\\\"),s(\\\"bargap\\\",c&&!u?0:.2),s(\\\"bargroupgap\\\"))}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"./layout_attributes\\\":844}],846:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../lib/svg_text_utils\\\"),s=t(\\\"../../components/color\\\"),l=t(\\\"../../components/drawing\\\"),c=t(\\\"../../registry\\\"),u=t(\\\"./attributes\\\"),f=u.text,h=u.textposition,p=t(\\\"./helpers\\\"),d=t(\\\"./style\\\"),g=3;function v(t,e,r,n,i,a){var o;return i<1?o=\\\"scale(\\\"+i+\\\") \\\":(i=1,o=\\\"\\\"),\\\"translate(\\\"+(r-i*t)+\\\" \\\"+(n-i*e)+\\\")\\\"+o+(a?\\\"rotate(\\\"+a+\\\" \\\"+t+\\\" \\\"+e+\\\") \\\":\\\"\\\")}e.exports=function(t,e,r,u){var m=e.xaxis,y=e.yaxis,x=t._fullLayout,b=a.makeTraceGroups(u,r,\\\"trace bars\\\").each(function(r){var c=n.select(this),u=r[0],b=u.trace;e.isRangePlot||(u.node3=c);var _=a.ensureSingle(c,\\\"g\\\",\\\"points\\\").selectAll(\\\"g.point\\\").data(a.identity);_.enter().append(\\\"g\\\").classed(\\\"point\\\",!0),_.exit().remove(),_.each(function(c,u){var _,w,k,M,A=n.select(this);if(\\\"h\\\"===b.orientation?(k=y.c2p(c.p0,!0),M=y.c2p(c.p1,!0),_=m.c2p(c.s0,!0),w=m.c2p(c.s1,!0),c.ct=[w,(k+M)/2]):(_=m.c2p(c.p0,!0),w=m.c2p(c.p1,!0),k=y.c2p(c.s0,!0),M=y.c2p(c.s1,!0),c.ct=[(_+w)/2,M]),i(_)&&i(w)&&i(k)&&i(M)&&_!==w&&k!==M){var T=(c.mlw+1||b.marker.line.width+1||(c.trace?c.trace.marker.line.width:0)+1)-1,S=n.round(T/2%1,2);if(!t._context.staticPlot){var E=s.opacity(c.mc||b.marker.color)<1||T>.01?C:function(t,e){return Math.abs(t-e)>=2?C(t):t>e?Math.ceil(t):Math.floor(t)};_=E(_,w),w=E(w,_),k=E(k,M),M=E(M,k)}a.ensureSingle(A,\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").attr(\\\"d\\\",\\\"M\\\"+_+\\\",\\\"+k+\\\"V\\\"+M+\\\"H\\\"+w+\\\"V\\\"+k+\\\"Z\\\").call(l.setClipUrl,e.layerClipId),function(t,e,r,n,i,s,c,u){var m;function y(e,r,n){var i=a.ensureSingle(e,\\\"text\\\").text(r).attr({class:\\\"bartext bartext-\\\"+m,transform:\\\"\\\",\\\"text-anchor\\\":\\\"middle\\\",\\\"data-notex\\\":1}).call(l.font,n).call(o.convertToTspans,t);return i}var x=r[0].trace,b=x.orientation,_=function(t,e){var r=p.getValue(t.text,e);return p.coerceString(f,r)}(x,n);if(m=function(t,e){var r=p.getValue(t.textposition,e);return p.coerceEnumerated(h,r)}(x,n),!_||\\\"none\\\"===m)return void e.select(\\\"text\\\").remove();var w,k,M,A,T,S,E=t._fullLayout.font,C=d.getBarColor(r[n],x),L=d.getInsideTextFont(x,n,E,C),z=d.getOutsideTextFont(x,n,E),O=t._fullLayout.barmode,I=\\\"relative\\\"===O,P=\\\"stack\\\"===O||I,D=r[n],R=!P||D._outmost,B=Math.abs(s-i)-2*g,F=Math.abs(u-c)-2*g;\\\"outside\\\"===m&&(R||D.hasB||(m=\\\"inside\\\"));if(\\\"auto\\\"===m)if(R){m=\\\"inside\\\",w=y(e,_,L),k=l.bBox(w.node()),M=k.width,A=k.height;var N=M>0&&A>0,j=M<=B&&A<=F,V=M<=F&&A<=B,U=\\\"h\\\"===b?B>=M*(F/A):F>=A*(B/M);N&&(j||V||U)?m=\\\"inside\\\":(m=\\\"outside\\\",w.remove(),w=null)}else m=\\\"inside\\\";if(!w&&(w=y(e,_,\\\"outside\\\"===m?z:L),k=l.bBox(w.node()),M=k.width,A=k.height,M<=0||A<=0))return void w.remove();\\\"outside\\\"===m?(S=\\\"both\\\"===x.constraintext||\\\"outside\\\"===x.constraintext,T=function(t,e,r,n,i,a,o){var s,l=\\\"h\\\"===a?Math.abs(n-r):Math.abs(e-t);l>2*g&&(s=g);var c=1;o&&(c=\\\"h\\\"===a?Math.min(1,l/i.height):Math.min(1,l/i.width));var u,f,h,p,d=(i.left+i.right)/2,m=(i.top+i.bottom)/2;u=c*i.width,f=c*i.height,\\\"h\\\"===a?e<t?(h=e-s-u/2,p=(r+n)/2):(h=e+s+u/2,p=(r+n)/2):n>r?(h=(t+e)/2,p=n+s+f/2):(h=(t+e)/2,p=n-s-f/2);return v(d,m,h,p,c,!1)}(i,s,c,u,k,b,S)):(S=\\\"both\\\"===x.constraintext||\\\"inside\\\"===x.constraintext,T=function(t,e,r,n,i,a,o){var s,l,c,u,f,h,p,d=i.width,m=i.height,y=(i.left+i.right)/2,x=(i.top+i.bottom)/2,b=Math.abs(e-t),_=Math.abs(n-r);b>2*g&&_>2*g?(b-=2*(f=g),_-=2*f):f=0;d<=b&&m<=_?(h=!1,p=1):d<=_&&m<=b?(h=!0,p=1):d<m==b<_?(h=!1,p=o?Math.min(b/d,_/m):1):(h=!0,p=o?Math.min(_/d,b/m):1);h&&(h=90);h?(s=p*m,l=p*d):(s=p*d,l=p*m);\\\"h\\\"===a?e<t?(c=e+f+s/2,u=(r+n)/2):(c=e-f-s/2,u=(r+n)/2):n>r?(c=(t+e)/2,u=n-f-l/2):(c=(t+e)/2,u=n+f+l/2);return v(y,x,c,u,p,h)}(i,s,c,u,k,b,S));w.attr(\\\"transform\\\",T)}(t,A,r,u,_,w,k,M),e.layerClipId&&l.hideOutsideRangePoint(c,A.select(\\\"text\\\"),m,y,b.xcalendar,b.ycalendar)}else A.remove();function C(t){return 0===x.bargap&&0===x.bargroupgap?n.round(Math.round(t)-S,2):t}});var w=!1===u.trace.cliponaxis;l.setClipUrl(c,w?null:e.layerClipId)});c.getComponentMethod(\\\"errorbars\\\",\\\"plot\\\")(b,e)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../registry\\\":827,\\\"./attributes\\\":837,\\\"./helpers\\\":841,\\\"./style\\\":849,d3:148,\\\"fast-isnumeric\\\":214}],847:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[];if(!1===e)for(r=0;r<n.length;r++)n[r].selected=0;else for(r=0;r<n.length;r++){var s=n[r];e.contains(s.ct,!1,r,t)?(o.push({pointNumber:r,x:i.c2d(s.x),y:a.c2d(s.y)}),s.selected=1):s.selected=0}return o}},{}],848:[function(t,e,r){\\\"use strict\\\";e.exports=a;var n=t(\\\"../../lib\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM;function a(t,e,r){this.traces=t,this.separateNegativeValues=e,this.dontMergeOverlappingData=r;for(var a=1/0,o=[],s=0;s<t.length;s++){for(var l=t[s],c=0;c<l.length;c++){var u=l[c];u.p!==i&&o.push(u.p)}l[0]&&l[0].width1&&(a=Math.min(l[0].width1,a))}this.positions=o;var f=n.distinctVals(o);this.distinctPositions=f.vals,1===f.vals.length&&a!==1/0?this.minDiff=a:this.minDiff=Math.min(f.minDiff,a),this.binWidth=this.minDiff,this.bins={}}a.prototype.put=function(t,e){var r=this.getLabel(t,e),n=this.bins[r]||0;return this.bins[r]=n+e,n},a.prototype.get=function(t,e){var r=this.getLabel(t,e);return this.bins[r]||0},a.prototype.getLabel=function(t,e){return(e<0&&this.separateNegativeValues?\\\"v\\\":\\\"^\\\")+(this.dontMergeOverlappingData?t:Math.round(t/this.binWidth))}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696}],849:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../registry\\\"),l=t(\\\"./attributes\\\"),c=l.textfont,u=l.insidetextfont,f=l.outsidetextfont,h=t(\\\"./helpers\\\");function p(t,e,r){var i=t.selectAll(\\\"path\\\"),o=t.selectAll(\\\"text\\\");a.pointStyle(i,e,r),o.each(function(t){var i=n.select(this),o=d(i,t,e,r);a.font(i,o)})}function d(t,e,r,n){var i=n._fullLayout.font,a=r.textfont;if(t.classed(\\\"bartext-inside\\\")){var o=x(e,r);a=v(r,e.i,i,o)}else t.classed(\\\"bartext-outside\\\")&&(a=m(r,e.i,i));return a}function g(t,e,r){return y(c,t.textfont,e,r)}function v(t,e,r,n){var a=g(t,e,r);return(void 0===t._input.textfont||void 0===t._input.textfont.color||Array.isArray(t.textfont.color)&&void 0===t.textfont.color[e])&&(a={color:i.contrast(n),family:a.family,size:a.size}),y(u,t.insidetextfont,e,a)}function m(t,e,r){var n=g(t,e,r);return y(f,t.outsidetextfont,e,n)}function y(t,e,r,n){e=e||{};var i=h.getValue(e.family,r),a=h.getValue(e.size,r),o=h.getValue(e.color,r);return{family:h.coerceString(t.family,i,n.family),size:h.coerceNumber(t.size,a,n.size),color:h.coerceColor(t.color,o,n.color)}}function x(t,e){return t.mc||e.marker.color}e.exports={style:function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.trace.bars\\\"),i=r.size(),a=t._fullLayout;r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}).each(function(t){(\\\"stack\\\"===a.barmode&&i>1||0===a.bargap&&0===a.bargroupgap&&!t[0].trace.marker.line.width)&&n.select(this).attr(\\\"shape-rendering\\\",\\\"crispEdges\\\")}),r.selectAll(\\\"g.points\\\").each(function(e){p(n.select(this),e[0].trace,t)}),s.getComponentMethod(\\\"errorbars\\\",\\\"style\\\")(r)},styleOnSelect:function(t,e){var r=e[0].node3,i=e[0].trace;i.selectedpoints?function(t,e,r){a.selectedPointStyle(t.selectAll(\\\"path\\\"),e),function(t,e,r){t.each(function(t){var i,s=n.select(this);if(t.selected){i=o.extendFlat({},d(s,t,e,r));var l=e.selected.textfont&&e.selected.textfont.color;l&&(i.color=l),a.font(s,i)}else a.selectedTextStyle(s,e)})}(t.selectAll(\\\"text\\\"),e,r)}(r,i,t):p(r,i,t)},getInsideTextFont:v,getOutsideTextFont:m,getBarColor:x}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":837,\\\"./helpers\\\":841,d3:148}],850:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\");e.exports=function(t,e,r,o,s){r(\\\"marker.color\\\",o),i(t,\\\"marker\\\")&&a(t,e,s,r,{prefix:\\\"marker.\\\",cLetter:\\\"c\\\"}),r(\\\"marker.line.color\\\",n.defaultLine),i(t,\\\"marker.line\\\")&&a(t,e,s,r,{prefix:\\\"marker.line.\\\",cLetter:\\\"c\\\"}),r(\\\"marker.line.width\\\"),r(\\\"marker.opacity\\\"),r(\\\"selected.marker.color\\\"),r(\\\"unselected.marker.color\\\")}},{\\\"../../components/color\\\":570,\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584}],851:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/extend\\\").extendFlat,i=t(\\\"../scatterpolar/attributes\\\"),a=t(\\\"../bar/attributes\\\");e.exports={r:i.r,theta:i.theta,r0:i.r0,dr:i.dr,theta0:i.theta0,dtheta:i.dtheta,thetaunit:i.thetaunit,base:n({},a.base,{}),offset:n({},a.offset,{}),width:n({},a.width,{}),text:n({},a.text,{}),marker:a.marker,hoverinfo:i.hoverinfo,selected:a.selected,unselected:a.unselected}},{\\\"../../lib/extend\\\":685,\\\"../bar/attributes\\\":837,\\\"../scatterpolar/attributes\\\":1105}],852:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/has_colorscale\\\"),i=t(\\\"../../components/colorscale/calc\\\"),a=t(\\\"../bar/arrays_to_calcdata\\\"),o=t(\\\"../bar/cross_trace_calc\\\").setGroupPositions,s=t(\\\"../scatter/calc_selection\\\"),l=t(\\\"../../registry\\\").traceIs,c=t(\\\"../../lib\\\").extendFlat;e.exports={calc:function(t,e){for(var r=t._fullLayout,o=e.subplot,l=r[o].radialaxis,c=r[o].angularaxis,u=l.makeCalcdata(e,\\\"r\\\"),f=c.makeCalcdata(e,\\\"theta\\\"),h=e._length,p=new Array(h),d=u,g=f,v=0;v<h;v++)p[v]={p:g[v],s:d[v]};function m(t){var r=e[t];void 0!==r&&(e[\\\"_\\\"+t]=Array.isArray(r)?c.makeCalcdata(e,t):c.d2c(r,e.thetaunit))}return\\\"linear\\\"===c.type&&(m(\\\"width\\\"),m(\\\"offset\\\")),n(e,\\\"marker\\\")&&i(e,e.marker.color,\\\"marker\\\",\\\"c\\\"),n(e,\\\"marker.line\\\")&&i(e,e.marker.line.color,\\\"marker.line\\\",\\\"c\\\"),a(p,e),s(p,e),p},crossTraceCalc:function(t,e,r){for(var n=t.calcdata,i=[],a=0;a<n.length;a++){var s=n[a],u=s[0].trace;!0===u.visible&&l(u,\\\"bar\\\")&&u.subplot===r&&i.push(s)}var f=c({},e.radialaxis,{_id:\\\"x\\\"}),h=e.angularaxis;o({_fullLayout:e},h,f,i)}}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../bar/arrays_to_calcdata\\\":836,\\\"../bar/cross_trace_calc\\\":839,\\\"../scatter/calc_selection\\\":1045}],853:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatterpolar/defaults\\\").handleRThetaDefaults,a=t(\\\"../bar/style_defaults\\\"),o=t(\\\"./attributes\\\");e.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,o,r,i)}i(t,e,s,l)?(l(\\\"thetaunit\\\"),l(\\\"base\\\"),l(\\\"offset\\\"),l(\\\"width\\\"),l(\\\"text\\\"),a(t,e,l,r,s),n.coerceSelectionMarkerOpacity(e,l)):e.visible=!1}},{\\\"../../lib\\\":696,\\\"../bar/style_defaults\\\":850,\\\"../scatterpolar/defaults\\\":1107,\\\"./attributes\\\":851}],854:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../bar/hover\\\").getTraceColor,o=t(\\\"../scatter/fill_hover_text\\\"),s=t(\\\"../scatterpolar/hover\\\").makeHoverPointText,l=t(\\\"../../plots/polar/helpers\\\").isPtInsidePolygon;e.exports=function(t,e,r){var c=t.cd,u=c[0].trace,f=t.subplot,h=f.radialAxis,p=f.angularAxis,d=f.vangles,g=d?l:i.isPtInsideSector,v=t.maxHoverDistance,m=p._period||2*Math.PI,y=Math.abs(h.g2p(Math.sqrt(e*e+r*r))),x=Math.atan2(r,e);h.range[0]>h.range[1]&&(x+=Math.PI);if(n.getClosest(c,function(t){return g(y,x,[t.rp0,t.rp1],[t.thetag0,t.thetag1],d)?v+Math.min(1,Math.abs(t.thetag1-t.thetag0)/m)-1+(t.rp1-y)/(t.rp1-t.rp0)-1:1/0},t),!1!==t.index){var b=c[t.index];t.x0=t.x1=b.ct[0],t.y0=t.y1=b.ct[1];var _=i.extendFlat({},b,{r:b.s,theta:b.p});return o(b,u,t),s(_,u,f,t),t.color=a(u,b),t.xLabelVal=t.yLabelVal=void 0,b.s<0&&(t.idealAlign=\\\"left\\\"),[t]}}},{\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../plots/polar/helpers\\\":810,\\\"../bar/hover\\\":842,\\\"../scatter/fill_hover_text\\\":1051,\\\"../scatterpolar/hover\\\":1108}],855:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"barpolar\\\",basePlotModule:t(\\\"../../plots/polar\\\"),categories:[\\\"polar\\\",\\\"bar\\\",\\\"showLegend\\\"],attributes:t(\\\"./attributes\\\"),layoutAttributes:t(\\\"./layout_attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),supplyLayoutDefaults:t(\\\"./layout_defaults\\\"),calc:t(\\\"./calc\\\").calc,crossTraceCalc:t(\\\"./calc\\\").crossTraceCalc,plot:t(\\\"./plot\\\"),colorbar:t(\\\"../scatter/marker_colorbar\\\"),style:t(\\\"../bar/style\\\").style,hoverPoints:t(\\\"./hover\\\"),selectPoints:t(\\\"../bar/select\\\"),meta:{}}},{\\\"../../plots/polar\\\":811,\\\"../bar/select\\\":847,\\\"../bar/style\\\":849,\\\"../scatter/marker_colorbar\\\":1061,\\\"./attributes\\\":851,\\\"./calc\\\":852,\\\"./defaults\\\":853,\\\"./hover\\\":854,\\\"./layout_attributes\\\":856,\\\"./layout_defaults\\\":857,\\\"./plot\\\":858}],856:[function(t,e,r){\\\"use strict\\\";e.exports={barmode:{valType:\\\"enumerated\\\",values:[\\\"stack\\\",\\\"overlay\\\"],dflt:\\\"stack\\\",editType:\\\"calc\\\"},bargap:{valType:\\\"number\\\",dflt:.1,min:0,max:1,editType:\\\"calc\\\"}}},{}],857:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\");e.exports=function(t,e,r){var a,o={};function s(r,o){return n.coerce(t[a]||{},e[a],i,r,o)}for(var l=0;l<r.length;l++){var c=r[l];\\\"barpolar\\\"===c.type&&!0===c.visible&&(o[a=c.subplot]||(s(\\\"barmode\\\"),s(\\\"bargap\\\"),o[a]=1))}}},{\\\"../../lib\\\":696,\\\"./layout_attributes\\\":856}],858:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../components/drawing\\\"),s=t(\\\"../../plots/polar/helpers\\\");e.exports=function(t,e,r){var l=e.xaxis,c=e.yaxis,u=e.radialAxis,f=e.angularAxis,h=function(t){var e=t.cxx,r=t.cyy;if(t.vangles)return function(n,i,o,l){var c,u;a.angleDelta(o,l)>0?(c=o,u=l):(c=l,u=o);var f=s.findEnclosingVertexAngles(c,t.vangles)[0],h=s.findEnclosingVertexAngles(u,t.vangles)[1],p=[f,(c+u)/2,h];return s.pathPolygonAnnulus(n,i,c,u,p,e,r)};return function(t,n,i,o){return a.pathAnnulus(t,n,i,o,e,r)}}(e),p=e.layers.frontplot.select(\\\"g.barlayer\\\");a.makeTraceGroups(p,r,\\\"trace bars\\\").each(function(t){var r=t[0].node3=n.select(this),s=a.ensureSingle(r,\\\"g\\\",\\\"points\\\").selectAll(\\\"g.point\\\").data(a.identity);s.enter().append(\\\"g\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").style(\\\"stroke-miterlimit\\\",2).classed(\\\"point\\\",!0),s.exit().remove(),s.each(function(t){var e,r=n.select(this),o=t.rp0=u.c2p(t.s0),s=t.rp1=u.c2p(t.s1),p=t.thetag0=f.c2g(t.p0),d=t.thetag1=f.c2g(t.p1);if(i(o)&&i(s)&&i(p)&&i(d)&&o!==s&&p!==d){var g=u.c2g(t.s1),v=(p+d)/2;t.ct=[l.c2p(g*Math.cos(v)),c.c2p(g*Math.sin(v))],e=h(o,s,p,d)}else e=\\\"M0,0Z\\\";a.ensureSingle(r,\\\"path\\\").attr(\\\"d\\\",e)}),o.setClipUrl(r,e._hasClipOnAxisFalse?e.clipIds.forTraces:null)})}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../plots/polar/helpers\\\":810,d3:148,\\\"fast-isnumeric\\\":214}],859:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/color/attributes\\\"),a=t(\\\"../../lib/extend\\\").extendFlat,o=n.marker,s=o.line;e.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\\\"},name:{valType:\\\"string\\\",editType:\\\"calc+clearAxisTypes\\\"},text:a({},n.text,{}),whiskerwidth:{valType:\\\"number\\\",min:0,max:1,dflt:.5,editType:\\\"calc\\\"},notched:{valType:\\\"boolean\\\",editType:\\\"calc\\\"},notchwidth:{valType:\\\"number\\\",min:0,max:.5,dflt:.25,editType:\\\"calc\\\"},boxpoints:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"outliers\\\",\\\"suspectedoutliers\\\",!1],dflt:\\\"outliers\\\",editType:\\\"calc\\\"},boxmean:{valType:\\\"enumerated\\\",values:[!0,\\\"sd\\\",!1],dflt:!1,editType:\\\"calc\\\"},jitter:{valType:\\\"number\\\",min:0,max:1,editType:\\\"calc\\\"},pointpos:{valType:\\\"number\\\",min:-2,max:2,editType:\\\"calc\\\"},orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],editType:\\\"calc+clearAxisTypes\\\"},marker:{outliercolor:{valType:\\\"color\\\",dflt:\\\"rgba(0, 0, 0, 0)\\\",editType:\\\"style\\\"},symbol:a({},o.symbol,{arrayOk:!1,editType:\\\"plot\\\"}),opacity:a({},o.opacity,{arrayOk:!1,dflt:1,editType:\\\"style\\\"}),size:a({},o.size,{arrayOk:!1,editType:\\\"calc\\\"}),color:a({},o.color,{arrayOk:!1,editType:\\\"style\\\"}),line:{color:a({},s.color,{arrayOk:!1,dflt:i.defaultLine,editType:\\\"style\\\"}),width:a({},s.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:n.fillcolor,selected:{marker:n.selected.marker,editType:\\\"style\\\"},unselected:{marker:n.unselected.marker,editType:\\\"style\\\"},hoveron:{valType:\\\"flaglist\\\",flags:[\\\"boxes\\\",\\\"points\\\"],dflt:\\\"boxes+points\\\",editType:\\\"style\\\"}}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib/extend\\\":685,\\\"../scatter/attributes\\\":1043}],860:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=i._,o=t(\\\"../../plots/cartesian/axes\\\");function s(t,e,r){var n={text:\\\"tx\\\"};for(var i in n)Array.isArray(e[i])&&(t[n[i]]=e[i][r])}function l(t,e){return t.v-e.v}function c(t){return t.v}e.exports=function(t,e){var r,u,f,h,p,d=t._fullLayout,g=o.getFromId(t,e.xaxis||\\\"x\\\"),v=o.getFromId(t,e.yaxis||\\\"y\\\"),m=[],y=\\\"violin\\\"===e.type?\\\"_numViolins\\\":\\\"_numBoxes\\\";\\\"h\\\"===e.orientation?(u=g,f=\\\"x\\\",h=v,p=\\\"y\\\"):(u=v,f=\\\"y\\\",h=g,p=\\\"x\\\");var x=u.makeCalcdata(e,f),b=function(t,e,r,a,o){if(e in t)return r.makeCalcdata(t,e);var s;s=e+\\\"0\\\"in t?t[e+\\\"0\\\"]:\\\"name\\\"in t&&(\\\"category\\\"===r.type||n(t.name)&&-1!==[\\\"linear\\\",\\\"log\\\"].indexOf(r.type)||i.isDateTime(t.name)&&\\\"date\\\"===r.type)?t.name:o;var l=r.d2c(s,0,t[e+\\\"calendar\\\"]);return a.map(function(){return l})}(e,p,h,x,d[y]),_=i.distinctVals(b),w=_.vals,k=_.minDiff/2,M=function(t,e){for(var r=t.length,n=new Array(r+1),i=0;i<r;i++)n[i]=t[i]-e;return n[r]=t[r-1]+e,n}(w,k),A=w.length,T=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=[];return e}(A);for(r=0;r<e._length;r++){var S=x[r];if(n(S)){var E=i.findBin(b[r],M);if(E>=0&&E<A){var C={v:S,i:r};s(C,e,r),T[E].push(C)}}}for(r=0;r<A;r++)if(T[r].length>0){var L=T[r].sort(l),z=L.map(c),O=z.length,I={pos:w[r],pts:L};I.min=z[0],I.max=z[O-1],I.mean=i.mean(z,O),I.sd=i.stdev(z,O,I.mean),I.q1=i.interp(z,.25),I.med=i.interp(z,.5),I.q3=i.interp(z,.75),I.lf=Math.min(I.q1,z[Math.min(i.findBin(2.5*I.q1-1.5*I.q3,z,!0)+1,O-1)]),I.uf=Math.max(I.q3,z[Math.max(i.findBin(2.5*I.q3-1.5*I.q1,z),0)]),I.lo=4*I.q1-3*I.q3,I.uo=4*I.q3-3*I.q1;var P=1.57*(I.q3-I.q1)/Math.sqrt(O);I.ln=I.med-P,I.un=I.med+P,m.push(I)}!function(t,e){if(i.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r<t.length;r++){for(var n=t[r].pts||[],a={},o=0;o<n.length;o++)a[n[o].i]=o;i.tagSelected(n,e,a)}}(m,e);var D=o.findExtremes(u,x,{padded:!0});return e._extremes[u._id]=D,m.length>0?(m[0].t={num:d[y],dPos:k,posLetter:p,valLetter:f,labels:{med:a(t,\\\"median:\\\"),min:a(t,\\\"min:\\\"),q1:a(t,\\\"q1:\\\"),q3:a(t,\\\"q3:\\\"),max:a(t,\\\"max:\\\"),mean:\\\"sd\\\"===e.boxmean?a(t,\\\"mean \\\\xb1 \\\\u03c3:\\\"):a(t,\\\"mean:\\\"),lf:a(t,\\\"lower fence:\\\"),uf:a(t,\\\"upper fence:\\\")}},d[y]++,m):[{t:{empty:!0}}]}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"fast-isnumeric\\\":214}],861:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\"),a=[\\\"v\\\",\\\"h\\\"];function o(t,e,r,a,o){var s,l,c,u=e.calcdata,f=e._fullLayout,h=[],p=\\\"violin\\\"===t?\\\"_numViolins\\\":\\\"_numBoxes\\\";for(s=0;s<r.length;s++)for(c=u[r[s]],l=0;l<c.length;l++)h.push(c[l].pos);if(h.length){var d=i.distinctVals(h),g=d.minDiff/2;h.length===d.vals.length&&(f[p]=1),n.minDtick(a,d.minDiff,d.vals[0],!0);var v=(1-f[t+\\\"gap\\\"])*(1-f[t+\\\"groupgap\\\"])*g/f[p],m=n.findExtremes(a,d.vals,{vpadminus:g+o[0]*v,vpadplus:g+o[1]*v});for(s=0;s<r.length;s++)(c=u[r[s]])[0].t.dPos=g,c[0].trace._extremes[a._id]=m}}e.exports={crossTraceCalc:function(t,e){for(var r=t.calcdata,n=e.xaxis,i=e.yaxis,s=0;s<a.length;s++){for(var l=a[s],c=\\\"h\\\"===l?i:n,u=[],f=0,h=0,p=0;p<r.length;p++){var d=r[p],g=d[0].t,v=d[0].trace;!0!==v.visible||\\\"box\\\"!==v.type&&\\\"candlestick\\\"!==v.type||g.empty||(v.orientation||\\\"v\\\")!==l||v.xaxis!==n._id||v.yaxis!==i._id||(u.push(p),v.boxpoints&&(f=Math.max(f,v.jitter-v.pointpos-1),h=Math.max(h,v.jitter+v.pointpos-1)))}o(\\\"box\\\",t,u,c,[f,h])}},setPositionOffset:o}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],862:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"./attributes\\\");function s(t,e,r,n){var a,o,s=r(\\\"y\\\"),l=r(\\\"x\\\"),c=l&&l.length;if(s&&s.length)a=\\\"v\\\",c?o=Math.min(l.length,s.length):(r(\\\"x0\\\"),o=s.length);else{if(!c)return void(e.visible=!1);a=\\\"h\\\",r(\\\"y0\\\"),o=l.length}e._length=o,i.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\"],n),r(\\\"orientation\\\",a)}function l(t,e,r,i){var a=i.prefix,s=n.coerce2(t,e,o,\\\"marker.outliercolor\\\"),l=r(\\\"marker.line.outliercolor\\\"),c=r(a+\\\"points\\\",s||l?\\\"suspectedoutliers\\\":void 0);c?(r(\\\"jitter\\\",\\\"all\\\"===c?.3:0),r(\\\"pointpos\\\",\\\"all\\\"===c?-1.5:0),r(\\\"marker.symbol\\\"),r(\\\"marker.opacity\\\"),r(\\\"marker.size\\\"),r(\\\"marker.color\\\",e.line.color),r(\\\"marker.line.color\\\"),r(\\\"marker.line.width\\\"),\\\"suspectedoutliers\\\"===c&&(r(\\\"marker.line.outliercolor\\\",e.marker.color),r(\\\"marker.line.outlierwidth\\\")),r(\\\"selected.marker.color\\\"),r(\\\"unselected.marker.color\\\"),r(\\\"selected.marker.size\\\"),r(\\\"unselected.marker.size\\\"),r(\\\"text\\\")):delete e.marker,r(\\\"hoveron\\\"),n.coerceSelectionMarkerOpacity(e,r)}e.exports={supplyDefaults:function(t,e,r,i){function c(r,i){return n.coerce(t,e,o,r,i)}s(t,e,c,i),!1!==e.visible&&(c(\\\"line.color\\\",(t.marker||{}).color||r),c(\\\"line.width\\\"),c(\\\"fillcolor\\\",a.addOpacity(e.line.color,.5)),c(\\\"whiskerwidth\\\"),c(\\\"boxmean\\\"),c(\\\"notched\\\",void 0!==t.notchwidth)&&c(\\\"notchwidth\\\"),l(t,e,c,{prefix:\\\"box\\\"}))},handleSampleDefaults:s,handlePointsDefaults:l}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":859}],863:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return e.hoverOnBox&&(t.hoverOnBox=e.hoverOnBox),\\\"xVal\\\"in e&&(t.x=e.xVal),\\\"yVal\\\"in e&&(t.y=e.yVal),e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),t}},{}],864:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/fx\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../scatter/fill_hover_text\\\");function l(t,e,r,s){var l,c,u,f,h,p,d,g,v,m,y,x,b=t.cd,_=t.xa,w=t.ya,k=b[0].trace,M=b[0].t,A=\\\"violin\\\"===k.type,T=[],S=M.bdPos,E=M.wHover,C=function(t){return t.pos+M.bPos-p};A&&\\\"both\\\"!==k.side?(\\\"positive\\\"===k.side&&(v=function(t){var e=C(t);return a.inbox(e,e+E,m)}),\\\"negative\\\"===k.side&&(v=function(t){var e=C(t);return a.inbox(e-E,e,m)})):v=function(t){var e=C(t);return a.inbox(e-E,e+E,m)},x=A?function(t){return a.inbox(t.span[0]-h,t.span[1]-h,m)}:function(t){return a.inbox(t.min-h,t.max-h,m)},\\\"h\\\"===k.orientation?(h=e,p=r,d=x,g=v,l=\\\"y\\\",u=w,c=\\\"x\\\",f=_):(h=r,p=e,d=v,g=x,l=\\\"x\\\",u=_,c=\\\"y\\\",f=w);var L=Math.min(1,S/Math.abs(u.r2c(u.range[1])-u.r2c(u.range[0])));function z(t){return(d(t)+g(t))/2}m=t.maxHoverDistance-L,y=t.maxSpikeDistance-L;var O=a.getDistanceFunction(s,d,g,z);if(a.getClosest(b,O,t),!1===t.index)return[];var I=b[t.index],P=k.line.color,D=(k.marker||{}).color;o.opacity(P)&&k.line.width?t.color=P:o.opacity(D)&&k.boxpoints?t.color=D:t.color=k.fillcolor,t[l+\\\"0\\\"]=u.c2p(I.pos+M.bPos-S,!0),t[l+\\\"1\\\"]=u.c2p(I.pos+M.bPos+S,!0),t[l+\\\"LabelVal\\\"]=I.pos;var R=l+\\\"Spike\\\";t.spikeDistance=z(I)*y/m,t[R]=u.c2p(I.pos,!0);var B={},F=[\\\"med\\\",\\\"min\\\",\\\"q1\\\",\\\"q3\\\",\\\"max\\\"];(k.boxmean||(k.meanline||{}).visible)&&F.push(\\\"mean\\\"),(k.boxpoints||k.points)&&F.push(\\\"lf\\\",\\\"uf\\\");for(var N=0;N<F.length;N++){var j=F[N];if(j in I&&!(I[j]in B)){B[I[j]]=!0;var V=I[j],U=f.c2p(V,!0),q=i.extendFlat({},t);q[c+\\\"0\\\"]=q[c+\\\"1\\\"]=U,q[c+\\\"LabelVal\\\"]=V,q[c+\\\"Label\\\"]=(M.labels?M.labels[j]+\\\" \\\":\\\"\\\")+n.hoverLabelText(f,V),q.hoverOnBox=!0,\\\"mean\\\"===j&&\\\"sd\\\"in I&&\\\"sd\\\"===k.boxmean&&(q[c+\\\"err\\\"]=I.sd),t.name=\\\"\\\",t.spikeDistance=void 0,t[R]=void 0,T.push(q)}}return T}function c(t,e,r){for(var n,o,l,c=t.cd,u=t.xa,f=t.ya,h=c[0].trace,p=u.c2p(e),d=f.c2p(r),g=a.quadrature(function(t){var e=Math.max(3,t.mrc||0);return Math.max(Math.abs(u.c2p(t.x)-p)-e,1-3/e)},function(t){var e=Math.max(3,t.mrc||0);return Math.max(Math.abs(f.c2p(t.y)-d)-e,1-3/e)}),v=!1,m=0;m<c.length;m++){o=c[m];for(var y=0;y<(o.pts||[]).length;y++){var x=g(l=o.pts[y]);x<=t.distance&&(t.distance=x,v=[m,y])}}if(!v)return!1;l=(o=c[v[0]]).pts[v[1]];var b=u.c2p(l.x,!0),_=f.c2p(l.y,!0),w=l.mrc||1;n=i.extendFlat({},t,{index:l.i,color:(h.marker||{}).color,name:h.name,x0:b-w,x1:b+w,xLabelVal:l.x,y0:_-w,y1:_+w,yLabelVal:l.y,spikeDistance:t.distance});var k=\\\"h\\\"===h.orientation?\\\"y\\\":\\\"x\\\",M=\\\"h\\\"===h.orientation?f:u;return n[k+\\\"Spike\\\"]=M.c2p(o.pos,!0),s(l,h,n),n}e.exports={hoverPoints:function(t,e,r,n){var i,a=t.cd[0].trace.hoveron,o=[];return-1!==a.indexOf(\\\"boxes\\\")&&(o=o.concat(l(t,e,r,n))),-1!==a.indexOf(\\\"points\\\")&&(i=c(t,e,r)),\\\"closest\\\"===n?i?[i]:o:i?(o.push(i),o):o},hoverOnBoxes:l,hoverOnPoints:c}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/fill_hover_text\\\":1051}],865:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.layoutAttributes=t(\\\"./layout_attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\").supplyDefaults,n.supplyLayoutDefaults=t(\\\"./layout_defaults\\\").supplyLayoutDefaults,n.calc=t(\\\"./calc\\\"),n.crossTraceCalc=t(\\\"./cross_trace_calc\\\").crossTraceCalc,n.plot=t(\\\"./plot\\\").plot,n.style=t(\\\"./style\\\").style,n.styleOnSelect=t(\\\"./style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\").hoverPoints,n.eventData=t(\\\"./event_data\\\"),n.selectPoints=t(\\\"./select\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"box\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"symbols\\\",\\\"oriented\\\",\\\"box-violin\\\",\\\"showLegend\\\",\\\"boxLayout\\\",\\\"zoomScale\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":859,\\\"./calc\\\":860,\\\"./cross_trace_calc\\\":861,\\\"./defaults\\\":862,\\\"./event_data\\\":863,\\\"./hover\\\":864,\\\"./layout_attributes\\\":866,\\\"./layout_defaults\\\":867,\\\"./plot\\\":868,\\\"./select\\\":869,\\\"./style\\\":870}],866:[function(t,e,r){\\\"use strict\\\";e.exports={boxmode:{valType:\\\"enumerated\\\",values:[\\\"group\\\",\\\"overlay\\\"],dflt:\\\"overlay\\\",editType:\\\"calc\\\"},boxgap:{valType:\\\"number\\\",min:0,max:1,dflt:.3,editType:\\\"calc\\\"},boxgroupgap:{valType:\\\"number\\\",min:0,max:1,dflt:.3,editType:\\\"calc\\\"}}},{}],867:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"./layout_attributes\\\");function o(t,e,r,i,a){for(var o,s=a+\\\"Layout\\\",l=0;l<r.length;l++)if(n.traceIs(r[l],s)){o=!0;break}o&&(i(a+\\\"mode\\\"),i(a+\\\"gap\\\"),i(a+\\\"groupgap\\\"))}e.exports={supplyLayoutDefaults:function(t,e,r){o(0,0,r,function(r,n){return i.coerce(t,e,a,r,n)},\\\"box\\\")},_supply:o}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./layout_attributes\\\":866}],868:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/drawing\\\"),o=5,s=.01;function l(t,e,r,a){var o,s,l=e.pos,c=e.val,u=a.bPos,f=a.wdPos||0,h=a.bPosPxOffset||0,p=r.whiskerwidth||0,d=r.notched||!1,g=d?1-2*r.notchwidth:1;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var v=t.selectAll(\\\"path.box\\\").data(\\\"violin\\\"!==r.type||r.box.visible?i.identity:[]);v.enter().append(\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").attr(\\\"class\\\",\\\"box\\\"),v.exit().remove(),v.each(function(t){var e=t.pos,a=l.c2p(e+u,!0)+h,v=l.c2p(e+u-o,!0)+h,m=l.c2p(e+u+s,!0)+h,y=l.c2p(e+u-f,!0)+h,x=l.c2p(e+u+f,!0)+h,b=l.c2p(e+u-o*g,!0)+h,_=l.c2p(e+u+s*g,!0)+h,w=c.c2p(t.q1,!0),k=c.c2p(t.q3,!0),M=i.constrain(c.c2p(t.med,!0),Math.min(w,k)+1,Math.max(w,k)-1),A=void 0===t.lf||!1===r.boxpoints,T=c.c2p(A?t.min:t.lf,!0),S=c.c2p(A?t.max:t.uf,!0),E=c.c2p(t.ln,!0),C=c.c2p(t.un,!0);\\\"h\\\"===r.orientation?n.select(this).attr(\\\"d\\\",\\\"M\\\"+M+\\\",\\\"+b+\\\"V\\\"+_+\\\"M\\\"+w+\\\",\\\"+v+\\\"V\\\"+m+(d?\\\"H\\\"+E+\\\"L\\\"+M+\\\",\\\"+_+\\\"L\\\"+C+\\\",\\\"+m:\\\"\\\")+\\\"H\\\"+k+\\\"V\\\"+v+(d?\\\"H\\\"+C+\\\"L\\\"+M+\\\",\\\"+b+\\\"L\\\"+E+\\\",\\\"+v:\\\"\\\")+\\\"ZM\\\"+w+\\\",\\\"+a+\\\"H\\\"+T+\\\"M\\\"+k+\\\",\\\"+a+\\\"H\\\"+S+(0===p?\\\"\\\":\\\"M\\\"+T+\\\",\\\"+y+\\\"V\\\"+x+\\\"M\\\"+S+\\\",\\\"+y+\\\"V\\\"+x)):n.select(this).attr(\\\"d\\\",\\\"M\\\"+b+\\\",\\\"+M+\\\"H\\\"+_+\\\"M\\\"+v+\\\",\\\"+w+\\\"H\\\"+m+(d?\\\"V\\\"+E+\\\"L\\\"+_+\\\",\\\"+M+\\\"L\\\"+m+\\\",\\\"+C:\\\"\\\")+\\\"V\\\"+k+\\\"H\\\"+v+(d?\\\"V\\\"+C+\\\"L\\\"+b+\\\",\\\"+M+\\\"L\\\"+v+\\\",\\\"+E:\\\"\\\")+\\\"ZM\\\"+a+\\\",\\\"+w+\\\"V\\\"+T+\\\"M\\\"+a+\\\",\\\"+k+\\\"V\\\"+S+(0===p?\\\"\\\":\\\"M\\\"+y+\\\",\\\"+T+\\\"H\\\"+x+\\\"M\\\"+y+\\\",\\\"+S+\\\"H\\\"+x))})}function c(t,e,r,n){var l=e.x,c=e.y,u=n.bdPos,f=n.bPos,h=r.boxpoints||r.points;i.seedPseudoRandom();var p=t.selectAll(\\\"g.points\\\").data(h?function(t){return t.forEach(function(t){t.t=n,t.trace=r}),t}:[]);p.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"points\\\"),p.exit().remove();var d=p.selectAll(\\\"path\\\").data(function(t){var e,n,a=\\\"all\\\"===h?t.pts:t.pts.filter(function(e){return e.v<t.lf||e.v>t.uf}),l=Math.max((t.max-t.min)/10,t.q3-t.q1),c=1e-9*l,p=l*s,d=[],g=0;if(r.jitter){if(0===l)for(g=1,d=new Array(a.length),e=0;e<a.length;e++)d[e]=1;else for(e=0;e<a.length;e++){var v=Math.max(0,e-o),m=a[v].v,y=Math.min(a.length-1,e+o),x=a[y].v;\\\"all\\\"!==h&&(a[e].v<t.lf?x=Math.min(x,t.lf):m=Math.max(m,t.uf));var b=Math.sqrt(p*(y-v)/(x-m+c))||0;b=i.constrain(Math.abs(b),0,1),d.push(b),g=Math.max(b,g)}n=2*r.jitter/(g||1)}for(e=0;e<a.length;e++){var _=a[e],w=_.v,k=r.jitter?n*d[e]*(i.pseudoRandom()-.5):0,M=t.pos+f+u*(r.pointpos+k);\\\"h\\\"===r.orientation?(_.y=M,_.x=w):(_.x=M,_.y=w),\\\"suspectedoutliers\\\"===h&&w<t.uo&&w>t.lo&&(_.so=!0)}return a});d.enter().append(\\\"path\\\").classed(\\\"point\\\",!0),d.exit().remove(),d.call(a.translatePoints,l,c)}function u(t,e,r,a){var o,s,l=e.pos,c=e.val,u=a.bPos,f=a.bPosPxOffset||0,h=r.boxmean||(r.meanline||{}).visible;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var p=t.selectAll(\\\"path.mean\\\").data(\\\"box\\\"===r.type&&r.boxmean||\\\"violin\\\"===r.type&&r.box.visible&&r.meanline.visible?i.identity:[]);p.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"mean\\\").style({fill:\\\"none\\\",\\\"vector-effect\\\":\\\"non-scaling-stroke\\\"}),p.exit().remove(),p.each(function(t){var e=l.c2p(t.pos+u,!0)+f,i=l.c2p(t.pos+u-o,!0)+f,a=l.c2p(t.pos+u+s,!0)+f,p=c.c2p(t.mean,!0),d=c.c2p(t.mean-t.sd,!0),g=c.c2p(t.mean+t.sd,!0);\\\"h\\\"===r.orientation?n.select(this).attr(\\\"d\\\",\\\"M\\\"+p+\\\",\\\"+i+\\\"V\\\"+a+(\\\"sd\\\"===h?\\\"m0,0L\\\"+d+\\\",\\\"+e+\\\"L\\\"+p+\\\",\\\"+i+\\\"L\\\"+g+\\\",\\\"+e+\\\"Z\\\":\\\"\\\")):n.select(this).attr(\\\"d\\\",\\\"M\\\"+i+\\\",\\\"+p+\\\"H\\\"+a+(\\\"sd\\\"===h?\\\"m0,0L\\\"+e+\\\",\\\"+d+\\\"L\\\"+i+\\\",\\\"+p+\\\"L\\\"+e+\\\",\\\"+g+\\\"Z\\\":\\\"\\\"))})}e.exports={plot:function(t,e,r,a){var o=t._fullLayout,s=e.xaxis,f=e.yaxis,h=o._numBoxes,p=1-o.boxgap,d=\\\"group\\\"===o.boxmode&&h>1;i.makeTraceGroups(a,r,\\\"trace boxes\\\").each(function(t){var r=n.select(this),i=t[0],a=i.t,g=i.trace;e.isRangePlot||(i.node3=r);var v,m,y=a.dPos*p*(1-o.boxgroupgap)/(d?h:1),x=d?2*a.dPos*((a.num+.5)/h-.5)*p:0,b=y*g.whiskerwidth;!0!==g.visible||a.empty?r.remove():(\\\"h\\\"===g.orientation?(v=f,m=s):(v=s,m=f),a.bPos=x,a.bdPos=y,a.wdPos=b,a.wHover=a.dPos*(d?p/h:1),l(r,{pos:v,val:m},g,a),c(r,{x:s,y:f},g,a),u(r,{pos:v,val:m},g,a))})},plotBoxAndWhiskers:l,plotPoints:c,plotBoxMean:u}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,d3:148}],869:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r<i.length;r++)for(n=0;n<(i[r].pts||[]).length;n++)i[r].pts[n].selected=0;else for(r=0;r<i.length;r++)for(n=0;n<(i[r].pts||[]).length;n++){var l=i[r].pts[n],c=a.c2p(l.x),u=o.c2p(l.y);e.contains([c,u],null,l.i,t)?(s.push({pointNumber:l.i,x:a.c2d(l.x),y:o.c2d(l.y)}),l.selected=1):l.selected=0}return s}},{}],870:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../components/drawing\\\");e.exports={style:function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.trace.boxes\\\");r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),r.each(function(e){var r=n.select(this),o=e[0].trace,s=o.line.width;function l(t,e,r,n){t.style(\\\"stroke-width\\\",e+\\\"px\\\").call(i.stroke,r).call(i.fill,n)}var c=r.selectAll(\\\"path.box\\\");if(\\\"candlestick\\\"===o.type)c.each(function(t){var e=n.select(this),r=o[t.dir];l(e,r.line.width,r.line.color,r.fillcolor),e.style(\\\"opacity\\\",o.selectedpoints&&!t.selected?.3:1)});else{l(c,s,o.line.color,o.fillcolor),r.selectAll(\\\"path.mean\\\").style({\\\"stroke-width\\\":s,\\\"stroke-dasharray\\\":2*s+\\\"px,\\\"+s+\\\"px\\\"}).call(i.stroke,o.line.color);var u=r.selectAll(\\\"path.point\\\");a.pointStyle(u,o,t)}})},styleOnSelect:function(t,e){var r=e[0].node3,n=e[0].trace,i=r.selectAll(\\\"path.point\\\");n.selectedpoints?a.selectedPointStyle(i,n):a.pointStyle(i,n,t)}}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,d3:148}],871:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").extendFlat,i=t(\\\"../ohlc/attributes\\\"),a=t(\\\"../box/attributes\\\");function o(t){return{line:{color:n({},a.line.color,{dflt:t}),width:a.line.width,editType:\\\"style\\\"},fillcolor:a.fillcolor,editType:\\\"style\\\"}}e.exports={x:i.x,open:i.open,high:i.high,low:i.low,close:i.close,line:{width:n({},a.line.width,{}),editType:\\\"style\\\"},increasing:o(i.increasing.line.color.dflt),decreasing:o(i.decreasing.line.color.dflt),text:i.text,whiskerwidth:n({},a.whiskerwidth,{dflt:0}),hoverlabel:i.hoverlabel}},{\\\"../../lib\\\":696,\\\"../box/attributes\\\":859,\\\"../ohlc/attributes\\\":991}],872:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../ohlc/calc\\\").calcCommon;function o(t,e,r,n){return{min:r,q1:Math.min(t,n),med:n,q3:Math.max(t,n),max:e}}e.exports=function(t,e){var r=t._fullLayout,s=i.getFromId(t,e.xaxis),l=i.getFromId(t,e.yaxis),c=s.makeCalcdata(e,\\\"x\\\"),u=a(t,e,c,l,o);return u.length?(n.extendFlat(u[0].t,{num:r._numBoxes,dPos:n.distinctVals(c).minDiff/2,posLetter:\\\"x\\\",valLetter:\\\"y\\\"}),r._numBoxes++,u):[{t:{empty:!0}}]}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../ohlc/calc\\\":992}],873:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../ohlc/ohlc_defaults\\\"),o=t(\\\"./attributes\\\");function s(t,e,r,n){var a=r(n+\\\".line.color\\\");r(n+\\\".line.width\\\",e.line.width),r(n+\\\".fillcolor\\\",i.addOpacity(a,.5))}e.exports=function(t,e,r,i){function l(r,i){return n.coerce(t,e,o,r,i)}a(t,e,l,i)?(l(\\\"line.width\\\"),s(t,e,l,\\\"increasing\\\"),s(t,e,l,\\\"decreasing\\\"),l(\\\"text\\\"),l(\\\"whiskerwidth\\\"),i._requestRangeslider[e.xaxis]=!0):e.visible=!1}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../ohlc/ohlc_defaults\\\":996,\\\"./attributes\\\":871}],874:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"candlestick\\\",basePlotModule:t(\\\"../../plots/cartesian\\\"),categories:[\\\"cartesian\\\",\\\"svg\\\",\\\"showLegend\\\",\\\"candlestick\\\",\\\"boxLayout\\\"],meta:{},attributes:t(\\\"./attributes\\\"),layoutAttributes:t(\\\"../box/layout_attributes\\\"),supplyLayoutDefaults:t(\\\"../box/layout_defaults\\\").supplyLayoutDefaults,crossTraceCalc:t(\\\"../box/cross_trace_calc\\\").crossTraceCalc,supplyDefaults:t(\\\"./defaults\\\"),calc:t(\\\"./calc\\\"),plot:t(\\\"../box/plot\\\").plot,layerName:\\\"boxlayer\\\",style:t(\\\"../box/style\\\").style,hoverPoints:t(\\\"../ohlc/hover\\\").hoverPoints,selectPoints:t(\\\"../ohlc/select\\\")}},{\\\"../../plots/cartesian\\\":756,\\\"../box/cross_trace_calc\\\":861,\\\"../box/layout_attributes\\\":866,\\\"../box/layout_defaults\\\":867,\\\"../box/plot\\\":868,\\\"../box/style\\\":870,\\\"../ohlc/hover\\\":994,\\\"../ohlc/select\\\":998,\\\"./attributes\\\":871,\\\"./calc\\\":872,\\\"./defaults\\\":873}],875:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./axis_defaults\\\"),i=t(\\\"../../plot_api/plot_template\\\");e.exports=function(t,e,r,a,o){a(\\\"a\\\")||(a(\\\"da\\\"),a(\\\"a0\\\")),a(\\\"b\\\")||(a(\\\"db\\\"),a(\\\"b0\\\")),function(t,e,r,a){[\\\"aaxis\\\",\\\"baxis\\\"].forEach(function(o){var s=o.charAt(0),l=t[o]||{},c=i.newContainer(e,o),u={tickfont:\\\"x\\\",id:s+\\\"axis\\\",letter:s,font:e.font,name:o,data:t[s],calendar:e.calendar,dfltColor:a,bgColor:r.paper_bgcolor,fullLayout:r};n(l,c,u),c._categories=c._categories||[],t[o]||\\\"-\\\"===l.type||(t[o]={type:l.type})})}(t,e,r,o)}},{\\\"../../plot_api/plot_template\\\":734,\\\"./axis_defaults\\\":880}],876:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t){return function t(e,r){if(!n(e)||r>=10)return null;var i=1/0;var a=-1/0;var o=e.length;for(var s=0;s<o;s++){var l=e[s];if(n(l)){var c=t(l,r+1);c&&(i=Math.min(c[0],i),a=Math.max(c[1],a))}else i=Math.min(l,i),a=Math.max(l,a)}return[i,a]}(t,0)}},{\\\"../../lib\\\":696}],877:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"./axis_attributes\\\"),a=t(\\\"../../components/color/attributes\\\"),o=n({editType:\\\"calc\\\"});o.family.dflt='\\\"Open Sans\\\", verdana, arial, sans-serif',o.size.dflt=12,o.color.dflt=a.defaultLine,e.exports={carpet:{valType:\\\"string\\\",editType:\\\"calc\\\"},x:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},y:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},a:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},a0:{valType:\\\"number\\\",dflt:0,editType:\\\"calc\\\"},da:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},b:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},b0:{valType:\\\"number\\\",dflt:0,editType:\\\"calc\\\"},db:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},cheaterslope:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},aaxis:i,baxis:i,font:o,color:{valType:\\\"color\\\",dflt:a.defaultLine,editType:\\\"plot\\\"},transforms:void 0}},{\\\"../../components/color/attributes\\\":569,\\\"../../plots/font_attributes\\\":771,\\\"./axis_attributes\\\":879}],878:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r,i){var a,o,s,l,c,u,f,h,p,d,g,v,m,y=n(r)?\\\"a\\\":\\\"b\\\",x=(\\\"a\\\"===y?t.aaxis:t.baxis).smoothing,b=\\\"a\\\"===y?t.a2i:t.b2j,_=\\\"a\\\"===y?r:i,w=\\\"a\\\"===y?i:r,k=\\\"a\\\"===y?e.a.length:e.b.length,M=\\\"a\\\"===y?e.b.length:e.a.length,A=Math.floor(\\\"a\\\"===y?t.b2j(w):t.a2i(w)),T=\\\"a\\\"===y?function(e){return t.evalxy([],e,A)}:function(e){return t.evalxy([],A,e)};x&&(s=Math.max(0,Math.min(M-2,A)),l=A-s,o=\\\"a\\\"===y?function(e,r){return t.dxydi([],e,s,r,l)}:function(e,r){return t.dxydj([],s,e,l,r)});var S=b(_[0]),E=b(_[1]),C=S<E?1:-1,L=1e-8*(E-S),z=C>0?Math.floor:Math.ceil,O=C>0?Math.ceil:Math.floor,I=C>0?Math.min:Math.max,P=C>0?Math.max:Math.min,D=z(S+L),R=O(E-L),B=[[f=T(S)]];for(a=D;a*C<R*C;a+=C)c=[],g=P(S,a),m=(v=I(E,a+C))-g,u=Math.max(0,Math.min(k-2,Math.floor(.5*(g+v)))),h=T(v),x&&(p=o(u,g-u),d=o(u,v-u),c.push([f[0]+p[0]/3*m,f[1]+p[1]/3*m]),c.push([h[0]-d[0]/3*m,h[1]-d[1]/3*m])),c.push(h),B.push(c),f=h;return B}},{\\\"../../lib\\\":696}],879:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../../components/color/attributes\\\"),a=t(\\\"../../plots/cartesian/layout_attributes\\\"),o=t(\\\"../../plot_api/edit_types\\\").overrideAll;e.exports={color:{valType:\\\"color\\\",editType:\\\"calc\\\"},smoothing:{valType:\\\"number\\\",dflt:1,min:0,max:1.3,editType:\\\"calc\\\"},title:{valType:\\\"string\\\",editType:\\\"calc\\\"},titlefont:n({editType:\\\"calc\\\"}),titleoffset:{valType:\\\"number\\\",dflt:10,editType:\\\"calc\\\"},type:{valType:\\\"enumerated\\\",values:[\\\"-\\\",\\\"linear\\\",\\\"date\\\",\\\"category\\\"],dflt:\\\"-\\\",editType:\\\"calc\\\"},autorange:{valType:\\\"enumerated\\\",values:[!0,!1,\\\"reversed\\\"],dflt:!0,editType:\\\"calc\\\"},rangemode:{valType:\\\"enumerated\\\",values:[\\\"normal\\\",\\\"tozero\\\",\\\"nonnegative\\\"],dflt:\\\"normal\\\",editType:\\\"calc\\\"},range:{valType:\\\"info_array\\\",editType:\\\"calc\\\",items:[{valType:\\\"any\\\",editType:\\\"calc\\\"},{valType:\\\"any\\\",editType:\\\"calc\\\"}]},fixedrange:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},cheatertype:{valType:\\\"enumerated\\\",values:[\\\"index\\\",\\\"value\\\"],dflt:\\\"value\\\",editType:\\\"calc\\\"},tickmode:{valType:\\\"enumerated\\\",values:[\\\"linear\\\",\\\"array\\\"],dflt:\\\"array\\\",editType:\\\"calc\\\"},nticks:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},tickvals:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},ticktext:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},showticklabels:{valType:\\\"enumerated\\\",values:[\\\"start\\\",\\\"end\\\",\\\"both\\\",\\\"none\\\"],dflt:\\\"start\\\",editType:\\\"calc\\\"},tickfont:n({editType:\\\"calc\\\"}),tickangle:{valType:\\\"angle\\\",dflt:\\\"auto\\\",editType:\\\"calc\\\"},tickprefix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},showtickprefix:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"calc\\\"},ticksuffix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},showticksuffix:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"calc\\\"},showexponent:{valType:\\\"enumerated\\\",values:[\\\"all\\\",\\\"first\\\",\\\"last\\\",\\\"none\\\"],dflt:\\\"all\\\",editType:\\\"calc\\\"},exponentformat:{valType:\\\"enumerated\\\",values:[\\\"none\\\",\\\"e\\\",\\\"E\\\",\\\"power\\\",\\\"SI\\\",\\\"B\\\"],dflt:\\\"B\\\",editType:\\\"calc\\\"},separatethousands:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},tickformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},tickformatstops:o(a.tickformatstops,\\\"calc\\\",\\\"from-root\\\"),categoryorder:{valType:\\\"enumerated\\\",values:[\\\"trace\\\",\\\"category ascending\\\",\\\"category descending\\\",\\\"array\\\"],dflt:\\\"trace\\\",editType:\\\"calc\\\"},categoryarray:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},labelpadding:{valType:\\\"integer\\\",dflt:10,editType:\\\"calc\\\"},labelprefix:{valType:\\\"string\\\",editType:\\\"calc\\\"},labelsuffix:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},showline:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},linecolor:{valType:\\\"color\\\",dflt:i.defaultLine,editType:\\\"calc\\\"},linewidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"calc\\\"},gridcolor:{valType:\\\"color\\\",editType:\\\"calc\\\"},gridwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"calc\\\"},showgrid:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},minorgridcount:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},minorgridwidth:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"calc\\\"},minorgridcolor:{valType:\\\"color\\\",dflt:i.lightLine,editType:\\\"calc\\\"},startline:{valType:\\\"boolean\\\",editType:\\\"calc\\\"},startlinecolor:{valType:\\\"color\\\",editType:\\\"calc\\\"},startlinewidth:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},endline:{valType:\\\"boolean\\\",editType:\\\"calc\\\"},endlinewidth:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},endlinecolor:{valType:\\\"color\\\",editType:\\\"calc\\\"},tick0:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"calc\\\"},dtick:{valType:\\\"number\\\",min:0,dflt:1,editType:\\\"calc\\\"},arraytick0:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},arraydtick:{valType:\\\"integer\\\",min:1,dflt:1,editType:\\\"calc\\\"},editType:\\\"calc\\\"}},{\\\"../../components/color/attributes\\\":569,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/cartesian/layout_attributes\\\":757,\\\"../../plots/font_attributes\\\":771}],880:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./attributes\\\"),i=t(\\\"../../components/color\\\").addOpacity,a=t(\\\"../../registry\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../plots/cartesian/tick_value_defaults\\\"),l=t(\\\"../../plots/cartesian/tick_label_defaults\\\"),c=t(\\\"../../plots/cartesian/category_order_defaults\\\"),u=t(\\\"../../plots/cartesian/set_convert\\\"),f=t(\\\"../../plots/cartesian/axis_autotype\\\");e.exports=function(t,e,r){var h=r.letter,p=r.font||{},d=n[h+\\\"axis\\\"];function g(r,n){return o.coerce(t,e,d,r,n)}function v(r,n){return o.coerce2(t,e,d,r,n)}r.name&&(e._name=r.name,e._id=r.name);var m=g(\\\"type\\\");(\\\"-\\\"===m&&(r.data&&function(t,e){if(\\\"-\\\"!==t.type)return;var r=t._id.charAt(0),n=t[r+\\\"calendar\\\"];t.type=f(e,n)}(e,r.data),\\\"-\\\"===e.type?e.type=\\\"linear\\\":m=t.type=e.type),g(\\\"smoothing\\\"),g(\\\"cheatertype\\\"),g(\\\"showticklabels\\\"),g(\\\"labelprefix\\\",h+\\\" = \\\"),g(\\\"labelsuffix\\\"),g(\\\"showtickprefix\\\"),g(\\\"showticksuffix\\\"),g(\\\"separatethousands\\\"),g(\\\"tickformat\\\"),g(\\\"exponentformat\\\"),g(\\\"showexponent\\\"),g(\\\"categoryorder\\\"),g(\\\"tickmode\\\"),g(\\\"tickvals\\\"),g(\\\"ticktext\\\"),g(\\\"tick0\\\"),g(\\\"dtick\\\"),\\\"array\\\"===e.tickmode&&(g(\\\"arraytick0\\\"),g(\\\"arraydtick\\\")),g(\\\"labelpadding\\\"),e._hovertitle=h,\\\"date\\\"===m)&&a.getComponentMethod(\\\"calendars\\\",\\\"handleDefaults\\\")(t,e,\\\"calendar\\\",r.calendar);u(e,r.fullLayout),e.c2p=o.identity;var y=g(\\\"color\\\",r.dfltColor),x=y===t.color?y:p.color;g(\\\"title\\\"),o.coerceFont(g,\\\"titlefont\\\",{family:p.family,size:Math.round(1.2*p.size),color:x}),g(\\\"titleoffset\\\"),g(\\\"tickangle\\\"),g(\\\"autorange\\\",!e.isValidRange(t.range))&&g(\\\"rangemode\\\"),g(\\\"range\\\"),e.cleanRange(),g(\\\"fixedrange\\\"),s(t,e,g,m),l(t,e,g,m,r),c(t,e,g,{data:r.data,dataAttr:h});var b=v(\\\"gridcolor\\\",i(y,.3)),_=v(\\\"gridwidth\\\"),w=g(\\\"showgrid\\\");w||(delete e.gridcolor,delete e.gridwidth);var k=v(\\\"startlinecolor\\\",y),M=v(\\\"startlinewidth\\\",_);g(\\\"startline\\\",e.showgrid||!!k||!!M)||(delete e.startlinecolor,delete e.startlinewidth);var A=v(\\\"endlinecolor\\\",y),T=v(\\\"endlinewidth\\\",_);return g(\\\"endline\\\",e.showgrid||!!A||!!T)||(delete e.endlinecolor,delete e.endlinewidth),w?(g(\\\"minorgridcount\\\"),g(\\\"minorgridwidth\\\",_),g(\\\"minorgridcolor\\\",i(b,.06)),e.minorgridcount||(delete e.minorgridwidth,delete e.minorgridcolor)):(delete e.gridcolor,delete e.gridWidth),\\\"none\\\"===e.showticklabels&&(delete e.tickfont,delete e.tickangle,delete e.showexponent,delete e.exponentformat,delete e.tickformat,delete e.showticksuffix,delete e.showtickprefix),e.showticksuffix||delete e.ticksuffix,e.showtickprefix||delete e.tickprefix,g(\\\"tickmode\\\"),(!e.title||e.title&&0===e.title.length)&&(delete e.titlefont,delete e.titleoffset),e}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axis_autotype\\\":745,\\\"../../plots/cartesian/category_order_defaults\\\":748,\\\"../../plots/cartesian/set_convert\\\":763,\\\"../../plots/cartesian/tick_label_defaults\\\":764,\\\"../../plots/cartesian/tick_value_defaults\\\":766,\\\"../../registry\\\":827,\\\"./attributes\\\":877}],881:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\").isArray1D,a=t(\\\"./cheater_basis\\\"),o=t(\\\"./array_minmax\\\"),s=t(\\\"./calc_gridlines\\\"),l=t(\\\"./calc_labels\\\"),c=t(\\\"./calc_clippath\\\"),u=t(\\\"../heatmap/clean_2d_array\\\"),f=t(\\\"./smooth_fill_2d_array\\\"),h=t(\\\"../heatmap/convert_column_xyz\\\"),p=t(\\\"./set_convert\\\");e.exports=function(t,e){var r=n.getFromId(t,e.xaxis),d=n.getFromId(t,e.yaxis),g=e.aaxis,v=e.baxis,m=e.x,y=e.y,x=[];m&&i(m)&&x.push(\\\"x\\\"),y&&i(y)&&x.push(\\\"y\\\"),x.length&&h(e,g,v,\\\"a\\\",\\\"b\\\",x);var b=e._a=e._a||e.a,_=e._b=e._b||e.b;m=e._x||e.x,y=e._y||e.y;var w={};if(e._cheater){var k=\\\"index\\\"===g.cheatertype?b.length:b,M=\\\"index\\\"===v.cheatertype?_.length:_;m=a(k,M,e.cheaterslope)}e._x=m=u(m),e._y=y=u(y),f(m,b,_),f(y,b,_),p(e),e.setScale();var A=o(m),T=o(y),S=.5*(A[1]-A[0]),E=.5*(A[1]+A[0]),C=.5*(T[1]-T[0]),L=.5*(T[1]+T[0]);return A=[E-1.3*S,E+1.3*S],T=[L-1.3*C,L+1.3*C],e._extremes[r._id]=n.findExtremes(r,A,{padded:!0}),e._extremes[d._id]=n.findExtremes(d,T,{padded:!0}),s(e,\\\"a\\\",\\\"b\\\"),s(e,\\\"b\\\",\\\"a\\\"),l(e,g),l(e,v),w.clipsegments=c(e._xctrl,e._yctrl,g,v),w.x=m,w.y=y,w.a=b,w.b=_,[w]}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../heatmap/clean_2d_array\\\":947,\\\"../heatmap/convert_column_xyz\\\":949,\\\"./array_minmax\\\":876,\\\"./calc_clippath\\\":882,\\\"./calc_gridlines\\\":883,\\\"./calc_labels\\\":884,\\\"./cheater_basis\\\":886,\\\"./set_convert\\\":899,\\\"./smooth_fill_2d_array\\\":900}],882:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i,a,o,s=[],l=!!r.smoothing,c=!!n.smoothing,u=t[0].length-1,f=t.length-1;for(i=0,a=[],o=[];i<=u;i++)a[i]=t[0][i],o[i]=e[0][i];for(s.push({x:a,y:o,bicubic:l}),i=0,a=[],o=[];i<=f;i++)a[i]=t[i][u],o[i]=e[i][u];for(s.push({x:a,y:o,bicubic:c}),i=u,a=[],o=[];i>=0;i--)a[u-i]=t[f][i],o[u-i]=e[f][i];for(s.push({x:a,y:o,bicubic:l}),i=f,a=[],o=[];i>=0;i--)a[f-i]=t[i][0],o[f-i]=e[i][0];return s.push({x:a,y:o,bicubic:c}),s}},{}],883:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib/extend\\\").extendFlat;e.exports=function(t,e,r){var a,o,s,l,c,u,f,h,p,d,g,v,m,y,x=t[\\\"_\\\"+e],b=t[e+\\\"axis\\\"],_=b._gridlines=[],w=b._minorgridlines=[],k=b._boundarylines=[],M=t[\\\"_\\\"+r],A=t[r+\\\"axis\\\"];\\\"array\\\"===b.tickmode&&(b.tickvals=x.slice());var T=t._xctrl,S=t._yctrl,E=T[0].length,C=T.length,L=t._a.length,z=t._b.length;n.prepTicks(b),\\\"array\\\"===b.tickmode&&delete b.tickvals;var O=b.smoothing?3:1;function I(n){var i,a,o,s,l,c,u,f,p,d,g,v,m=[],y=[],x={};if(\\\"b\\\"===e)for(a=t.b2j(n),o=Math.floor(Math.max(0,Math.min(z-2,a))),s=a-o,x.length=z,x.crossLength=L,x.xy=function(e){return t.evalxy([],e,a)},x.dxy=function(e,r){return t.dxydi([],e,o,r,s)},i=0;i<L;i++)c=Math.min(L-2,i),u=i-c,f=t.evalxy([],i,a),A.smoothing&&i>0&&(p=t.dxydi([],i-1,o,0,s),m.push(l[0]+p[0]/3),y.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),m.push(f[0]-d[0]/3),y.push(f[1]-d[1]/3)),m.push(f[0]),y.push(f[1]),l=f;else for(i=t.a2i(n),c=Math.floor(Math.max(0,Math.min(L-2,i))),u=i-c,x.length=L,x.crossLength=z,x.xy=function(e){return t.evalxy([],i,e)},x.dxy=function(e,r){return t.dxydj([],c,e,u,r)},a=0;a<z;a++)o=Math.min(z-2,a),s=a-o,f=t.evalxy([],i,a),A.smoothing&&a>0&&(g=t.dxydj([],c,a-1,u,0),m.push(l[0]+g[0]/3),y.push(l[1]+g[1]/3),v=t.dxydj([],c,a-1,u,1),m.push(f[0]-v[0]/3),y.push(f[1]-v[1]/3)),m.push(f[0]),y.push(f[1]),l=f;return x.axisLetter=e,x.axis=b,x.crossAxis=A,x.value=n,x.constvar=r,x.index=h,x.x=m,x.y=y,x.smoothing=A.smoothing,x}function P(n){var i,a,o,s,l,c=[],u=[],f={};if(f.length=x.length,f.crossLength=M.length,\\\"b\\\"===e)for(o=Math.max(0,Math.min(z-2,n)),l=Math.min(1,Math.max(0,n-o)),f.xy=function(e){return t.evalxy([],e,n)},f.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;i<E;i++)c[i]=T[n*O][i],u[i]=S[n*O][i];else for(a=Math.max(0,Math.min(L-2,n)),s=Math.min(1,Math.max(0,n-a)),f.xy=function(e){return t.evalxy([],n,e)},f.dxy=function(e,r){return t.dxydj([],a,e,s,r)},i=0;i<C;i++)c[i]=T[i][n*O],u[i]=S[i][n*O];return f.axisLetter=e,f.axis=b,f.crossAxis=A,f.value=x[n],f.constvar=r,f.index=n,f.x=c,f.y=u,f.smoothing=A.smoothing,f}if(\\\"array\\\"===b.tickmode){for(l=5e-15,u=(c=[Math.floor((x.length-1-b.arraytick0)/b.arraydtick*(1+l)),Math.ceil(-b.arraytick0/b.arraydtick/(1+l))].sort(function(t,e){return t-e}))[0]-1,f=c[1]+1,h=u;h<f;h++)(o=b.arraytick0+b.arraydtick*h)<0||o>x.length-1||_.push(i(P(o),{color:b.gridcolor,width:b.gridwidth}));for(h=u;h<f;h++)if(s=b.arraytick0+b.arraydtick*h,g=Math.min(s+b.arraydtick,x.length-1),!(s<0||s>x.length-1||g<0||g>x.length-1))for(v=x[s],m=x[g],a=0;a<b.minorgridcount;a++)(y=g-s)<=0||(d=v+(m-v)*(a+1)/(b.minorgridcount+1)*(b.arraydtick/y))<x[0]||d>x[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&k.push(i(P(0),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&k.push(i(P(x.length-1),{color:b.endlinecolor,width:b.endlinewidth}))}else{for(l=5e-15,u=(c=[Math.floor((x[x.length-1]-b.tick0)/b.dtick*(1+l)),Math.ceil((x[0]-b.tick0)/b.dtick/(1+l))].sort(function(t,e){return t-e}))[0],f=c[1],h=u;h<=f;h++)p=b.tick0+b.dtick*h,_.push(i(I(p),{color:b.gridcolor,width:b.gridwidth}));for(h=u-1;h<f+1;h++)for(p=b.tick0+b.dtick*h,a=0;a<b.minorgridcount;a++)(d=p+b.dtick*(a+1)/(b.minorgridcount+1))<x[0]||d>x[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&k.push(i(I(x[0]),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&k.push(i(I(x[x.length-1]),{color:b.endlinecolor,width:b.endlinewidth}))}}},{\\\"../../lib/extend\\\":685,\\\"../../plots/cartesian/axes\\\":744}],884:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib/extend\\\").extendFlat;e.exports=function(t,e){var r,a,o,s=e._labels=[],l=e._gridlines;for(r=0;r<l.length;r++)o=l[r],-1!==[\\\"start\\\",\\\"both\\\"].indexOf(e.showticklabels)&&(a=n.tickText(e,o.value),i(a,{prefix:void 0,suffix:void 0,endAnchor:!0,xy:o.xy(0),dxy:o.dxy(0,0),axis:o.axis,length:o.crossAxis.length,font:o.axis.tickfont,isFirst:0===r,isLast:r===l.length-1}),s.push(a)),-1!==[\\\"end\\\",\\\"both\\\"].indexOf(e.showticklabels)&&(a=n.tickText(e,o.value),i(a,{endAnchor:!1,xy:o.xy(o.crossLength-1),dxy:o.dxy(o.crossLength-2,1),axis:o.axis,length:o.crossAxis.length,font:o.axis.tickfont,isFirst:0===r,isLast:r===l.length-1}),s.push(a))}},{\\\"../../lib/extend\\\":685,\\\"../../plots/cartesian/axes\\\":744}],885:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i=t[0]-e[0],a=t[1]-e[1],o=r[0]-e[0],s=r[1]-e[1],l=Math.pow(i*i+a*a,.25),c=Math.pow(o*o+s*s,.25),u=(c*c*i-l*l*o)*n,f=(c*c*a-l*l*s)*n,h=c*(l+c)*3,p=l*(l+c)*3;return[[e[0]+(h&&u/h),e[1]+(h&&f/h)],[e[0]-(p&&u/p),e[1]-(p&&f/p)]]}},{}],886:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r){var i,a,o,s,l,c,u=[],f=n(t)?t.length:t,h=n(e)?e.length:e,p=n(t)?t:null,d=n(e)?e:null;p&&(o=(p.length-1)/(p[p.length-1]-p[0])/(f-1)),d&&(s=(d.length-1)/(d[d.length-1]-d[0])/(h-1));var g=1/0,v=-1/0;for(a=0;a<h;a++)for(u[a]=[],l=d?(d[a]-d[0])*s:a/(h-1),i=0;i<f;i++)c=(p?(p[i]-p[0])*o:i/(f-1))-l*r,g=Math.min(c,g),v=Math.max(c,v),u[a][i]=c;var m=1/(v-g),y=-g*m;for(a=0;a<h;a++)for(i=0;i<f;i++)u[a][i]=m*u[a][i]+y;return u}},{\\\"../../lib\\\":696}],887:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./catmull_rom\\\"),i=t(\\\"../../lib\\\").ensureArray;function a(t,e,r){var n=-.5*r[0]+1.5*e[0],i=-.5*r[1]+1.5*e[1];return[(2*n+t[0])/3,(2*i+t[1])/3]}e.exports=function(t,e,r,o,s,l){var c,u,f,h,p,d,g,v,m,y,x=r[0].length,b=r.length,_=s?3*x-2:x,w=l?3*b-2:b;for(t=i(t,w),e=i(e,w),f=0;f<w;f++)t[f]=i(t[f],_),e[f]=i(e[f],_);for(u=0,h=0;u<b;u++,h+=l?3:1)for(p=t[h],d=e[h],g=r[u],v=o[u],c=0,f=0;c<x;c++,f+=s?3:1)p[f]=g[c],d[f]=v[c];if(s)for(u=0,h=0;u<b;u++,h+=l?3:1){for(c=1,f=3;c<x-1;c++,f+=3)m=n([r[u][c-1],o[u][c-1]],[r[u][c],o[u][c]],[r[u][c+1],o[u][c+1]],s),t[h][f-1]=m[0][0],e[h][f-1]=m[0][1],t[h][f+1]=m[1][0],e[h][f+1]=m[1][1];y=a([t[h][0],e[h][0]],[t[h][2],e[h][2]],[t[h][3],e[h][3]]),t[h][1]=y[0],e[h][1]=y[1],y=a([t[h][_-1],e[h][_-1]],[t[h][_-3],e[h][_-3]],[t[h][_-4],e[h][_-4]]),t[h][_-2]=y[0],e[h][_-2]=y[1]}if(l)for(f=0;f<_;f++){for(h=3;h<w-3;h+=3)m=n([t[h-3][f],e[h-3][f]],[t[h][f],e[h][f]],[t[h+3][f],e[h+3][f]],l),t[h-1][f]=m[0][0],e[h-1][f]=m[0][1],t[h+1][f]=m[1][0],e[h+1][f]=m[1][1];y=a([t[0][f],e[0][f]],[t[2][f],e[2][f]],[t[3][f],e[3][f]]),t[1][f]=y[0],e[1][f]=y[1],y=a([t[w-1][f],e[w-1][f]],[t[w-3][f],e[w-3][f]],[t[w-4][f],e[w-4][f]]),t[w-2][f]=y[0],e[w-2][f]=y[1]}if(s&&l)for(h=1;h<w;h+=(h+1)%3==0?2:1){for(f=3;f<_-3;f+=3)m=n([t[h][f-3],e[h][f-3]],[t[h][f],e[h][f]],[t[h][f+3],e[h][f+3]],s),t[h][f-1]=.5*(t[h][f-1]+m[0][0]),e[h][f-1]=.5*(e[h][f-1]+m[0][1]),t[h][f+1]=.5*(t[h][f+1]+m[1][0]),e[h][f+1]=.5*(e[h][f+1]+m[1][1]);y=a([t[h][0],e[h][0]],[t[h][2],e[h][2]],[t[h][3],e[h][3]]),t[h][1]=.5*(t[h][1]+y[0]),e[h][1]=.5*(e[h][1]+y[1]),y=a([t[h][_-1],e[h][_-1]],[t[h][_-3],e[h][_-3]],[t[h][_-4],e[h][_-4]]),t[h][_-2]=.5*(t[h][_-2]+y[0]),e[h][_-2]=.5*(e[h][_-2]+y[1])}return[t,e]}},{\\\"../../lib\\\":696,\\\"./catmull_rom\\\":885}],888:[function(t,e,r){\\\"use strict\\\";e.exports={RELATIVE_CULL_TOLERANCE:1e-6}},{}],889:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){return e&&r?function(e,r,n,i,a){var o,s,l,c,u,f;e||(e=[]),r*=3,n*=3;var h=i*i,p=1-i,d=p*p,g=p*i*2,v=-3*d,m=3*(d-g),y=3*(g-h),x=3*h,b=a*a,_=b*a,w=1-a,k=w*w,M=k*w;for(f=0;f<t.length;f++)o=v*(u=t[f])[n][r]+m*u[n][r+1]+y*u[n][r+2]+x*u[n][r+3],s=v*u[n+1][r]+m*u[n+1][r+1]+y*u[n+1][r+2]+x*u[n+1][r+3],l=v*u[n+2][r]+m*u[n+2][r+1]+y*u[n+2][r+2]+x*u[n+2][r+3],c=v*u[n+3][r]+m*u[n+3][r+1]+y*u[n+3][r+2]+x*u[n+3][r+3],e[f]=M*o+3*(k*a*s+w*b*l)+_*c;return e}:e?function(e,r,n,i,a){var o,s,l,c;e||(e=[]),r*=3;var u=i*i,f=1-i,h=f*f,p=f*i*2,d=-3*h,g=3*(h-p),v=3*(p-u),m=3*u,y=1-a;for(l=0;l<t.length;l++)o=d*(c=t[l])[n][r]+g*c[n][r+1]+v*c[n][r+2]+m*c[n][r+3],s=d*c[n+1][r]+g*c[n+1][r+1]+v*c[n+1][r+2]+m*c[n+1][r+3],e[l]=y*o+a*s;return e}:r?function(e,r,n,i,a){var o,s,l,c,u,f;e||(e=[]),n*=3;var h=a*a,p=h*a,d=1-a,g=d*d,v=g*d;for(u=0;u<t.length;u++)o=(f=t[u])[n][r+1]-f[n][r],s=f[n+1][r+1]-f[n+1][r],l=f[n+2][r+1]-f[n+2][r],c=f[n+3][r+1]-f[n+3][r],e[u]=v*o+3*(g*a*s+d*h*l)+p*c;return e}:function(e,r,n,i,a){var o,s,l,c;e||(e=[]);var u=1-a;for(l=0;l<t.length;l++)o=(c=t[l])[n][r+1]-c[n][r],s=c[n+1][r+1]-c[n+1][r],e[l]=u*o+a*s;return e}}},{}],890:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){return e&&r?function(e,r,n,i,a){var o,s,l,c,u,f;e||(e=[]),r*=3,n*=3;var h=i*i,p=h*i,d=1-i,g=d*d,v=g*d,m=a*a,y=1-a,x=y*y,b=y*a*2,_=-3*x,w=3*(x-b),k=3*(b-m),M=3*m;for(f=0;f<t.length;f++)o=_*(u=t[f])[n][r]+w*u[n+1][r]+k*u[n+2][r]+M*u[n+3][r],s=_*u[n][r+1]+w*u[n+1][r+1]+k*u[n+2][r+1]+M*u[n+3][r+1],l=_*u[n][r+2]+w*u[n+1][r+2]+k*u[n+2][r+2]+M*u[n+3][r+2],c=_*u[n][r+3]+w*u[n+1][r+3]+k*u[n+2][r+3]+M*u[n+3][r+3],e[f]=v*o+3*(g*i*s+d*h*l)+p*c;return e}:e?function(e,r,n,i,a){var o,s,l,c,u,f;e||(e=[]),r*=3;var h=a*a,p=h*a,d=1-a,g=d*d,v=g*d;for(u=0;u<t.length;u++)o=(f=t[u])[n+1][r]-f[n][r],s=f[n+1][r+1]-f[n][r+1],l=f[n+1][r+2]-f[n][r+2],c=f[n+1][r+3]-f[n][r+3],e[u]=v*o+3*(g*a*s+d*h*l)+p*c;return e}:r?function(e,r,n,i,a){var o,s,l,c;e||(e=[]),n*=3;var u=1-i,f=a*a,h=1-a,p=h*h,d=h*a*2,g=-3*p,v=3*(p-d),m=3*(d-f),y=3*f;for(l=0;l<t.length;l++)o=g*(c=t[l])[n][r]+v*c[n+1][r]+m*c[n+2][r]+y*c[n+3][r],s=g*c[n][r+1]+v*c[n+1][r+1]+m*c[n+2][r+1]+y*c[n+3][r+1],e[l]=u*o+i*s;return e}:function(e,r,n,i,a){var o,s,l,c;e||(e=[]);var u=1-i;for(l=0;l<t.length;l++)o=(c=t[l])[n+1][r]-c[n][r],s=c[n+1][r+1]-c[n][r+1],e[l]=u*o+i*s;return e}}},{}],891:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){var a=e-2,o=r-2;return n&&i?function(e,r,n){var i,s,l,c,u,f;e||(e=[]);var h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),g=Math.max(0,Math.min(1,n-p));h*=3,p*=3;var v=d*d,m=v*d,y=1-d,x=y*y,b=x*y,_=g*g,w=_*g,k=1-g,M=k*k,A=M*k;for(f=0;f<t.length;f++)i=b*(u=t[f])[p][h]+3*(x*d*u[p][h+1]+y*v*u[p][h+2])+m*u[p][h+3],s=b*u[p+1][h]+3*(x*d*u[p+1][h+1]+y*v*u[p+1][h+2])+m*u[p+1][h+3],l=b*u[p+2][h]+3*(x*d*u[p+2][h+1]+y*v*u[p+2][h+2])+m*u[p+2][h+3],c=b*u[p+3][h]+3*(x*d*u[p+3][h+1]+y*v*u[p+3][h+2])+m*u[p+3][h+3],e[f]=A*i+3*(M*g*s+k*_*l)+w*c;return e}:n?function(e,r,n){e||(e=[]);var i,s,l,c,u,f,h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),g=Math.max(0,Math.min(1,n-p));h*=3;var v=d*d,m=v*d,y=1-d,x=y*y,b=x*y,_=1-g;for(u=0;u<t.length;u++)i=_*(f=t[u])[p][h]+g*f[p+1][h],s=_*f[p][h+1]+g*f[p+1][h+1],l=_*f[p][h+2]+g*f[p+1][h+1],c=_*f[p][h+3]+g*f[p+1][h+1],e[u]=b*i+3*(x*d*s+y*v*l)+m*c;return e}:i?function(e,r,n){e||(e=[]);var i,s,l,c,u,f,h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),g=Math.max(0,Math.min(1,n-p));p*=3;var v=g*g,m=v*g,y=1-g,x=y*y,b=x*y,_=1-d;for(u=0;u<t.length;u++)i=_*(f=t[u])[p][h]+d*f[p][h+1],s=_*f[p+1][h]+d*f[p+1][h+1],l=_*f[p+2][h]+d*f[p+2][h+1],c=_*f[p+3][h]+d*f[p+3][h+1],e[u]=b*i+3*(x*g*s+y*v*l)+m*c;return e}:function(e,r,n){e||(e=[]);var i,s,l,c,u=Math.max(0,Math.min(Math.floor(r),a)),f=Math.max(0,Math.min(Math.floor(n),o)),h=Math.max(0,Math.min(1,r-u)),p=Math.max(0,Math.min(1,n-f)),d=1-p,g=1-h;for(l=0;l<t.length;l++)i=g*(c=t[l])[f][u]+h*c[f][u+1],s=g*c[f+1][u]+h*c[f+1][u+1],e[l]=d*i+p*s;return e}}},{}],892:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./xy_defaults\\\"),a=t(\\\"./ab_defaults\\\"),o=t(\\\"./attributes\\\"),s=t(\\\"../../components/color/attributes\\\");e.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,o,r,i)}e._clipPathId=\\\"clip\\\"+e.uid+\\\"carpet\\\";var u=c(\\\"color\\\",s.defaultLine);(n.coerceFont(c,\\\"font\\\"),c(\\\"carpet\\\"),a(t,e,l,c,u),e.a&&e.b)?(e.a.length<3&&(e.aaxis.smoothing=0),e.b.length<3&&(e.baxis.smoothing=0),i(t,e,c)||(e.visible=!1),e._cheater&&c(\\\"cheaterslope\\\")):e.visible=!1}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib\\\":696,\\\"./ab_defaults\\\":875,\\\"./attributes\\\":877,\\\"./xy_defaults\\\":901}],893:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.plot=t(\\\"./plot\\\"),n.calc=t(\\\"./calc\\\"),n.animatable=!0,n.isContainer=!0,n.moduleType=\\\"trace\\\",n.name=\\\"carpet\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"carpet\\\",\\\"carpetAxis\\\",\\\"notLegendIsolatable\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":877,\\\"./calc\\\":881,\\\"./defaults\\\":892,\\\"./plot\\\":898}],894:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r,n=t._fullData.length,i=0;i<n;i++){var a=t._fullData[i];if(a.index!==e.index&&(\\\"carpet\\\"===a.type&&(r||(r=a),a.carpet===e.carpet)))return a}return r}},{}],895:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){if(0===t.length)return\\\"\\\";var n,i=[],a=r?3:1;for(n=0;n<t.length;n+=a)i.push(t[n]+\\\",\\\"+e[n]),r&&n<t.length-a&&(i.push(\\\"C\\\"),i.push([t[n+1]+\\\",\\\"+e[n+1],t[n+2]+\\\",\\\"+e[n+2]+\\\" \\\"].join(\\\" \\\")));return i.join(r?\\\"\\\":\\\"L\\\")}},{}],896:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r){var i;for(n(t)?t.length>e.length&&(t=t.slice(0,e.length)):t=[],i=0;i<e.length;i++)t[i]=r(e[i]);return t}},{\\\"../../lib\\\":696}],897:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i,a){var o=i[0]*t.dpdx(e),s=i[1]*t.dpdy(r),l=1,c=1;if(a){var u=Math.sqrt(i[0]*i[0]+i[1]*i[1]),f=Math.sqrt(a[0]*a[0]+a[1]*a[1]),h=(i[0]*a[0]+i[1]*a[1])/u/f;c=Math.max(0,h)}var p=180*Math.atan2(s,o)/Math.PI;return p<-90?(p+=180,l=-l):p>90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:c}}},{}],898:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"./map_1d_array\\\"),o=t(\\\"./makepath\\\"),s=t(\\\"./orient_text\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../constants/alignment\\\");function f(t,e,r,i,s,l){var c=\\\"const-\\\"+s+\\\"-lines\\\",u=r.selectAll(\\\".\\\"+c).data(l);u.enter().append(\\\"path\\\").classed(c,!0).style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\"),u.each(function(r){var i=r,s=i.x,l=i.y,c=a([],s,t.c2p),u=a([],l,e.c2p),f=\\\"M\\\"+o(c,u,i.smoothing);n.select(this).attr(\\\"d\\\",f).style(\\\"stroke-width\\\",i.width).style(\\\"stroke\\\",i.color).style(\\\"fill\\\",\\\"none\\\")}),u.exit().remove()}function h(t,e,r,a,o,c,u,f){var h=c.selectAll(\\\"text.\\\"+f).data(u);h.enter().append(\\\"text\\\").classed(f,!0);var p=0,d={};return h.each(function(o,c){var u;if(\\\"auto\\\"===o.axis.tickangle)u=s(a,e,r,o.xy,o.dxy);else{var f=(o.axis.tickangle+180)*Math.PI/180;u=s(a,e,r,o.xy,[Math.cos(f),Math.sin(f)])}c||(d={angle:u.angle,flip:u.flip});var h=(o.endAnchor?-1:1)*u.flip,g=n.select(this).attr({\\\"text-anchor\\\":h>0?\\\"start\\\":\\\"end\\\",\\\"data-notex\\\":1}).call(i.font,o.font).text(o.text).call(l.convertToTspans,t),v=i.bBox(this);g.attr(\\\"transform\\\",\\\"translate(\\\"+u.p[0]+\\\",\\\"+u.p[1]+\\\") rotate(\\\"+u.angle+\\\")translate(\\\"+o.axis.labelpadding*h+\\\",\\\"+.3*v.height+\\\")\\\"),p=Math.max(p,v.width+o.axis.labelpadding)}),h.exit().remove(),d.maxExtent=p,d}e.exports=function(t,e,r,i){var l=e.xaxis,u=e.yaxis,p=t._fullLayout._clips;c.makeTraceGroups(i,r,\\\"trace\\\").each(function(e){var r=n.select(this),i=e[0],d=i.trace,v=d.aaxis,m=d.baxis,y=c.ensureSingle(r,\\\"g\\\",\\\"minorlayer\\\"),x=c.ensureSingle(r,\\\"g\\\",\\\"majorlayer\\\"),b=c.ensureSingle(r,\\\"g\\\",\\\"boundarylayer\\\"),_=c.ensureSingle(r,\\\"g\\\",\\\"labellayer\\\");r.style(\\\"opacity\\\",d.opacity),f(l,u,x,v,\\\"a\\\",v._gridlines),f(l,u,x,m,\\\"b\\\",m._gridlines),f(l,u,y,v,\\\"a\\\",v._minorgridlines),f(l,u,y,m,\\\"b\\\",m._minorgridlines),f(l,u,b,v,\\\"a-boundary\\\",v._boundarylines),f(l,u,b,m,\\\"b-boundary\\\",m._boundarylines);var w=h(t,l,u,d,i,_,v._labels,\\\"a-label\\\"),k=h(t,l,u,d,i,_,m._labels,\\\"b-label\\\");!function(t,e,r,n,i,a,o,l){var u,f,h,p;u=.5*(r.a[0]+r.a[r.a.length-1]),f=r.b[0],h=r.ab2xy(u,f,!0),p=r.dxyda_rough(u,f),void 0===o.angle&&c.extendFlat(o,s(r,i,a,h,r.dxydb_rough(u,f)));g(t,e,r,n,h,p,r.aaxis,i,a,o,\\\"a-title\\\"),u=r.a[0],f=.5*(r.b[0]+r.b[r.b.length-1]),h=r.ab2xy(u,f,!0),p=r.dxydb_rough(u,f),void 0===l.angle&&c.extendFlat(l,s(r,i,a,h,r.dxyda_rough(u,f)));g(t,e,r,n,h,p,r.baxis,i,a,l,\\\"b-title\\\")}(t,_,d,i,l,u,w,k),function(t,e,r,n,i){var s,l,u,f,h=r.select(\\\"#\\\"+t._clipPathId);h.size()||(h=r.append(\\\"clipPath\\\").classed(\\\"carpetclip\\\",!0));var p=c.ensureSingle(h,\\\"path\\\",\\\"carpetboundary\\\"),d=e.clipsegments,g=[];for(f=0;f<d.length;f++)s=d[f],l=a([],s.x,n.c2p),u=a([],s.y,i.c2p),g.push(o(l,u,s.bicubic));var v=\\\"M\\\"+g.join(\\\"L\\\")+\\\"Z\\\";h.attr(\\\"id\\\",t._clipPathId),p.attr(\\\"d\\\",v)}(d,i,p,l,u)})};var p=u.LINE_SPACING,d=(1-u.MID_SHIFT)/p+1;function g(t,e,r,a,o,c,u,f,h,g,v){var m=[];u.title&&m.push(u.title);var y=e.selectAll(\\\"text.\\\"+v).data(m),x=g.maxExtent;y.enter().append(\\\"text\\\").classed(v,!0),y.each(function(){var e=s(r,f,h,o,c);-1===[\\\"start\\\",\\\"both\\\"].indexOf(u.showticklabels)&&(x=0);var a=u.titlefont.size;x+=a+u.titleoffset;var v=(g.angle+(g.flip<0?180:0)-e.angle+450)%360,m=v>90&&v<270,y=n.select(this);y.text(u.title||\\\"\\\").call(l.convertToTspans,t),m&&(x=(-l.lineCount(y)+d)*p*a-x),y.attr(\\\"transform\\\",\\\"translate(\\\"+e.p[0]+\\\",\\\"+e.p[1]+\\\") rotate(\\\"+e.angle+\\\") translate(0,\\\"+x+\\\")\\\").classed(\\\"user-select-none\\\",!0).attr(\\\"text-anchor\\\",\\\"middle\\\").call(i.font,u.titlefont)}),y.exit().remove()}},{\\\"../../components/drawing\\\":595,\\\"../../constants/alignment\\\":668,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"./makepath\\\":895,\\\"./map_1d_array\\\":896,\\\"./orient_text\\\":897,d3:148}],899:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"../../lib/search\\\").findBin,a=t(\\\"./compute_control_points\\\"),o=t(\\\"./create_spline_evaluator\\\"),s=t(\\\"./create_i_derivative_evaluator\\\"),l=t(\\\"./create_j_derivative_evaluator\\\");e.exports=function(t){var e=t._a,r=t._b,c=e.length,u=r.length,f=t.aaxis,h=t.baxis,p=e[0],d=e[c-1],g=r[0],v=r[u-1],m=e[e.length-1]-e[0],y=r[r.length-1]-r[0],x=m*n.RELATIVE_CULL_TOLERANCE,b=y*n.RELATIVE_CULL_TOLERANCE;p-=x,d+=x,g-=b,v+=b,t.isVisible=function(t,e){return t>p&&t<d&&e>g&&e<v},t.isOccluded=function(t,e){return t<p||t>d||e<g||e>v},t.setScale=function(){var e=t._x,r=t._y,n=a(t._xctrl,t._yctrl,e,r,f.smoothing,h.smoothing);t._xctrl=n[0],t._yctrl=n[1],t.evalxy=o([t._xctrl,t._yctrl],c,u,f.smoothing,h.smoothing),t.dxydi=s([t._xctrl,t._yctrl],f.smoothing,h.smoothing),t.dxydj=l([t._xctrl,t._yctrl],f.smoothing,h.smoothing)},t.i2a=function(t){var r=Math.max(0,Math.floor(t[0]),c-2),n=t[0]-r;return(1-n)*e[r]+n*e[r+1]},t.j2b=function(t){var e=Math.max(0,Math.floor(t[1]),c-2),n=t[1]-e;return(1-n)*r[e]+n*r[e+1]},t.ij2ab=function(e){return[t.i2a(e[0]),t.j2b(e[1])]},t.a2i=function(t){var r=Math.max(0,Math.min(i(t,e),c-2)),n=e[r],a=e[r+1];return Math.max(0,Math.min(c-1,r+(t-n)/(a-n)))},t.b2j=function(t){var e=Math.max(0,Math.min(i(t,r),u-2)),n=r[e],a=r[e+1];return Math.max(0,Math.min(u-1,e+(t-n)/(a-n)))},t.ab2ij=function(e){return[t.a2i(e[0]),t.b2j(e[1])]},t.i2c=function(e,r){return t.evalxy([],e,r)},t.ab2xy=function(n,i,a){if(!a&&(n<e[0]||n>e[c-1]|i<r[0]||i>r[u-1]))return[!1,!1];var o=t.a2i(n),s=t.b2j(i),l=t.evalxy([],o,s);if(a){var f,h,p,d,g=0,v=0,m=[];n<e[0]?(f=0,h=0,g=(n-e[0])/(e[1]-e[0])):n>e[c-1]?(f=c-2,h=1,g=(n-e[c-1])/(e[c-1]-e[c-2])):h=o-(f=Math.max(0,Math.min(c-2,Math.floor(o)))),i<r[0]?(p=0,d=0,v=(i-r[0])/(r[1]-r[0])):i>r[u-1]?(p=u-2,d=1,v=(i-r[u-1])/(r[u-1]-r[u-2])):d=s-(p=Math.max(0,Math.min(u-2,Math.floor(s)))),g&&(t.dxydi(m,f,p,h,d),l[0]+=m[0]*g,l[1]+=m[1]*g),v&&(t.dxydj(m,f,p,h,d),l[0]+=m[0]*v,l[1]+=m[1]*v)}return l},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=m*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=y*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}}},{\\\"../../lib/search\\\":715,\\\"./compute_control_points\\\":887,\\\"./constants\\\":888,\\\"./create_i_derivative_evaluator\\\":889,\\\"./create_j_derivative_evaluator\\\":890,\\\"./create_spline_evaluator\\\":891}],900:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e,r){var i,a,o,s=[],l=[],c=t[0].length,u=t.length;function f(e,r){var n,i=0,a=0;return e>0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e<c-1&&void 0!==(n=t[r][e+1])&&(a++,i+=n),r>0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r<u-1&&void 0!==(n=t[r+1][e])&&(a++,i+=n),i/Math.max(1,a)}var h,p,d,g,v,m,y,x,b,_,w,k=0;for(i=0;i<c;i++)for(a=0;a<u;a++)void 0===t[a][i]&&(s.push(i),l.push(a),t[a][i]=f(i,a)),k=Math.max(k,Math.abs(t[a][i]));if(!s.length)return t;var M=0,A=0,T=s.length;do{for(M=0,o=0;o<T;o++){i=s[o],a=l[o];var S,E,C,L,z,O,I=0,P=0;0===i?(C=e[z=Math.min(c-1,2)],L=e[1],S=t[a][z],P+=(E=t[a][1])+(E-S)*(e[0]-L)/(L-C),I++):i===c-1&&(C=e[z=Math.max(0,c-3)],L=e[c-2],S=t[a][z],P+=(E=t[a][c-2])+(E-S)*(e[c-1]-L)/(L-C),I++),(0===i||i===c-1)&&a>0&&a<u-1&&(h=r[a+1]-r[a],P+=((p=r[a]-r[a-1])*t[a+1][i]+h*t[a-1][i])/(p+h),I++),0===a?(C=r[O=Math.min(u-1,2)],L=r[1],S=t[O][i],P+=(E=t[1][i])+(E-S)*(r[0]-L)/(L-C),I++):a===u-1&&(C=r[O=Math.max(0,u-3)],L=r[u-2],S=t[O][i],P+=(E=t[u-2][i])+(E-S)*(r[u-1]-L)/(L-C),I++),(0===a||a===u-1)&&i>0&&i<c-1&&(h=e[i+1]-e[i],P+=((p=e[i]-e[i-1])*t[a][i+1]+h*t[a][i-1])/(p+h),I++),I?P/=I:(d=e[i+1]-e[i],g=e[i]-e[i-1],x=(v=r[a+1]-r[a])*(m=r[a]-r[a-1])*(v+m),P=((y=d*g*(d+g))*(m*t[a+1][i]+v*t[a-1][i])+x*(g*t[a][i+1]+d*t[a][i-1]))/(x*(g+d)+y*(m+v))),M+=(_=(b=P-t[a][i])/k)*_,w=I?0:.85,t[a][i]+=b*(1+w)}M=Math.sqrt(M)}while(A++<100&&M>1e-5);return n.log(\\\"Smoother converged to\\\",M,\\\"after\\\",A,\\\"iterations\\\"),t}},{\\\"../../lib\\\":696}],901:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArray1D;e.exports=function(t,e,r){var i=r(\\\"x\\\"),a=i&&i.length,o=r(\\\"y\\\"),s=o&&o.length;if(!a&&!s)return!1;if(e._cheater=!i,a&&!n(i)||s&&!n(o))e._length=null;else{var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),e.a&&e.a.length&&(l=Math.min(l,e.a.length)),e.b&&e.b.length&&(l=Math.min(l,e.b.length)),e._length=l}return!0}},{\\\"../../lib\\\":696}],902:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scattergeo/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat,l=n.marker.line;e.exports=s({locations:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},locationmode:n.locationmode,z:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},text:s({},n.text,{}),marker:{line:{color:l.color,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:n.selected.marker.opacity,editType:\\\"plot\\\"},editType:\\\"plot\\\"},unselected:{marker:{opacity:n.unselected.marker.opacity,editType:\\\"plot\\\"},editType:\\\"plot\\\"},hoverinfo:s({},o.hoverinfo,{editType:\\\"calc\\\",flags:[\\\"location\\\",\\\"z\\\",\\\"text\\\",\\\"name\\\"]})},i(\\\"\\\",{cLetter:\\\"z\\\",editTypeOverride:\\\"calc\\\"}),{colorbar:a})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../scattergeo/attributes\\\":1083}],903:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM,a=t(\\\"../../components/colorscale/calc\\\"),o=t(\\\"../scatter/arrays_to_calcdata\\\"),s=t(\\\"../scatter/calc_selection\\\");e.exports=function(t,e){for(var r=e._length,l=new Array(r),c=0;c<r;c++){var u=l[c]={},f=e.locations[c],h=e.z[c];u.loc=\\\"string\\\"==typeof f?f:null,u.z=n(h)?h:i}return o(l,e),a(e,e.z,\\\"\\\",\\\"z\\\"),s(l,e),l}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../constants/numerical\\\":673,\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc_selection\\\":1045,\\\"fast-isnumeric\\\":214}],904:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/defaults\\\"),a=t(\\\"./attributes\\\");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s(\\\"locations\\\"),c=s(\\\"z\\\");l&&l.length&&n.isArrayOrTypedArray(c)&&c.length?(e._length=Math.min(l.length,c.length),s(\\\"locationmode\\\"),s(\\\"text\\\"),s(\\\"marker.line.color\\\"),s(\\\"marker.line.width\\\"),s(\\\"marker.opacity\\\"),i(t,e,o,s,{prefix:\\\"\\\",cLetter:\\\"z\\\"}),n.coerceSelectionMarkerOpacity(e,s)):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"./attributes\\\":902}],905:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return t.location=e.location,t.z=e.z,t}},{}],906:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"../scatter/fill_hover_text\\\");e.exports=function(t,e,r){var o,s,l,c,u=t.cd,f=u[0].trace,h=t.subplot;for(s=0;s<u.length;s++)if(c=!1,(o=u[s])._polygons){for(l=0;l<o._polygons.length;l++)o._polygons[l].contains([e,r])&&(c=!c),o._polygons[l].contains([e+360,r])&&(c=!c);if(c)break}if(c&&o)return t.x0=t.x1=t.xa.c2p(o.ct),t.y0=t.y1=t.ya.c2p(o.ct),t.index=o.index,t.location=o.loc,t.z=o.z,function(t,e,r,o){var s=r.hi||e.hoverinfo,l=\\\"all\\\"===s?i.hoverinfo.flags:s.split(\\\"+\\\"),c=-1!==l.indexOf(\\\"name\\\"),u=-1!==l.indexOf(\\\"location\\\"),f=-1!==l.indexOf(\\\"z\\\"),h=-1!==l.indexOf(\\\"text\\\"),p=[];!c&&u?t.nameOverride=r.loc:(c&&(t.nameOverride=e.name),u&&p.push(r.loc));f&&p.push((d=r.z,n.tickText(o,o.c2l(d),\\\"hover\\\").text));var d;h&&a(r,e,p);t.extraText=p.join(\\\"<br>\\\")}(t,f,o,h.mockAxis),[t]}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/fill_hover_text\\\":1051,\\\"./attributes\\\":902}],907:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../heatmap/colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"./style\\\").style,n.styleOnSelect=t(\\\"./style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.eventData=t(\\\"./event_data\\\"),n.selectPoints=t(\\\"./select\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"choropleth\\\",n.basePlotModule=t(\\\"../../plots/geo\\\"),n.categories=[\\\"geo\\\",\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"../../plots/geo\\\":775,\\\"../heatmap/colorbar\\\":948,\\\"./attributes\\\":902,\\\"./calc\\\":903,\\\"./defaults\\\":904,\\\"./event_data\\\":905,\\\"./hover\\\":906,\\\"./plot\\\":908,\\\"./select\\\":909,\\\"./style\\\":910}],908:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../lib/polygon\\\"),o=t(\\\"../../lib/topojson_utils\\\").getTopojsonFeatures,s=t(\\\"../../lib/geo_location_utils\\\").locationToFeature,l=t(\\\"./style\\\").style;function c(t,e){for(var r=t[0].trace,n=t.length,i=o(r,e),a=0;a<n;a++){var l=t[a],c=s(r.locationmode,l.loc,i);c?(l.geojson=c,l.ct=c.properties.ct,l.index=a,l._polygons=u(c)):l.geojson=null}}function u(t){var e,r,n,i,o=t.geometry,s=o.coordinates,l=t.id,c=[];function u(t){for(var e=0;e<t.length-1;e++)if(t[e][0]>0&&t[e+1][0]<0)return e;return null}switch(e=\\\"RUS\\\"===l||\\\"FJI\\\"===l?function(t){var e;if(null===u(t))e=t;else for(e=new Array(t.length),i=0;i<t.length;i++)e[i]=[t[i][0]<0?t[i][0]+360:t[i][0],t[i][1]];c.push(a.tester(e))}:\\\"ATA\\\"===l?function(t){var e=u(t);if(null===e)return c.push(a.tester(t));var r=new Array(t.length+1),n=0;for(i=0;i<t.length;i++)i>e?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var o=a.tester(r);o.pts.pop(),c.push(o)}:function(t){c.push(a.tester(t))},o.type){case\\\"MultiPolygon\\\":for(r=0;r<s.length;r++)for(n=0;n<s[r].length;n++)e(s[r][n]);break;case\\\"Polygon\\\":for(r=0;r<s.length;r++)e(s[r])}return c}e.exports=function(t,e,r){for(var a=0;a<r.length;a++)c(r[a],e.topojson);var o=e.layers.backplot.select(\\\".choroplethlayer\\\");i.makeTraceGroups(o,r,\\\"trace choropleth\\\").each(function(e){var r=(e[0].node3=n.select(this)).selectAll(\\\"path.choroplethlocation\\\").data(i.identity);r.enter().append(\\\"path\\\").classed(\\\"choroplethlocation\\\",!0),r.exit().remove(),l(t,e)})}},{\\\"../../lib\\\":696,\\\"../../lib/geo_location_utils\\\":688,\\\"../../lib/polygon\\\":708,\\\"../../lib/topojson_utils\\\":723,\\\"./style\\\":910,d3:148}],909:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n,i,a,o,s=t.cd,l=t.xaxis,c=t.yaxis,u=[];if(!1===e)for(r=0;r<s.length;r++)s[r].selected=0;else for(r=0;r<s.length;r++)(i=(n=s[r]).ct)&&(a=l.c2p(i),o=c.c2p(i),e.contains([a,o],null,r,t)?(u.push({pointNumber:r,lon:i[0],lat:i[1]}),n.selected=1):n.selected=0);return u}},{}],910:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"../../components/colorscale\\\");function s(t,e){var r=e[0].trace,s=e[0].node3.selectAll(\\\".choroplethlocation\\\"),l=r.marker||{},c=l.line||{},u=o.makeColorScaleFunc(o.extractScale(r.colorscale,r.zmin,r.zmax));s.each(function(t){n.select(this).attr(\\\"fill\\\",u(t.z)).call(i.stroke,t.mlc||c.color).call(a.dashLine,\\\"\\\",t.mlw||c.width||0).style(\\\"opacity\\\",l.opacity)}),a.selectedPointStyle(s,r,t)}e.exports={style:function(t,e){e&&s(t,e)},styleOnSelect:function(t,e){var r=e[0].node3,n=e[0].trace;n.selectedpoints?a.selectedPointStyle(r.selectAll(\\\".choroplethlocation\\\"),n,t):s(t,e)}}},{\\\"../../components/color\\\":570,\\\"../../components/colorscale\\\":585,\\\"../../components/drawing\\\":595,d3:148}],911:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../mesh3d/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../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\\\"}};s(l,n(\\\"\\\",{colorAttr:\\\"u/v/w norm\\\",showScaleDflt:!0,editTypeOverride:\\\"calc\\\"}),{colorbar:i});[\\\"opacity\\\",\\\"lightposition\\\",\\\"lighting\\\"].forEach(function(t){l[t]=a[t]}),l.hoverinfo=s({},o.hoverinfo,{editType:\\\"calc\\\",flags:[\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"u\\\",\\\"v\\\",\\\"w\\\",\\\"norm\\\",\\\"text\\\",\\\"name\\\"],dflt:\\\"x+y+z+norm+text+name\\\"}),l.transforms=void 0,e.exports=l},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../mesh3d/attributes\\\":986}],912:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\");e.exports=function(t,e){for(var r=e.u,i=e.v,a=e.w,o=Math.min(e.x.length,e.y.length,e.z.length,r.length,i.length,a.length),s=-1/0,l=1/0,c=0;c<o;c++){var u=r[c],f=i[c],h=a[c],p=Math.sqrt(u*u+f*f+h*h);s=Math.max(s,p),l=Math.min(l,p)}e._len=o,e._normMax=s,n(e,[l,s],\\\"\\\",\\\"c\\\")}},{\\\"../../components/colorscale/calc\\\":578}],913:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-cone3d\\\"),i=t(\\\"gl-cone3d\\\").createConeMesh,a=t(\\\"../../lib\\\").simpleMap,o=t(\\\"../../lib/gl_format_color\\\").parseColorScale,s=t(\\\"../../plots/gl3d/zip3\\\");function l(t,e){this.scene=t,this.uid=e,this.mesh=null,this.data=null}var c=l.prototype;c.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index,r=this.data.x[e],n=this.data.y[e],i=this.data.z[e],a=this.data.u[e],o=this.data.v[e],s=this.data.w[e];t.traceCoordinate=[r,n,i,a,o,s,Math.sqrt(a*a+o*o+s*s)];var l=this.data.text;return Array.isArray(l)&&void 0!==l[e]?t.textLabel=l[e]:l&&(t.textLabel=l),!0}};var u={xaxis:0,yaxis:1,zaxis:2},f={tip:1,tail:0,cm:.25,center:.5},h={tip:1,tail:1,cm:.75,center:.5};function p(t,e){var r=t.fullSceneLayout,i=t.dataScale,l={};function c(t,e){var n=r[e],o=i[u[e]];return a(t,function(t){return n.d2l(t)*o})}l.vectors=s(c(e.u,\\\"xaxis\\\"),c(e.v,\\\"yaxis\\\"),c(e.w,\\\"zaxis\\\"),e._len),l.positions=s(c(e.x,\\\"xaxis\\\"),c(e.y,\\\"yaxis\\\"),c(e.z,\\\"zaxis\\\"),e._len),l.colormap=o(e.colorscale),l.vertexIntensityBounds=[e.cmin/e._normMax,e.cmax/e._normMax],l.coneOffset=f[e.anchor],\\\"scaled\\\"===e.sizemode?l.coneSize=e.sizeref||.5:l.coneSize=e.sizeref&&e._normMax?e.sizeref/e._normMax:.5;var p=n(l),d=e.lightposition;return p.lightPosition=[d.x,d.y,d.z],p.ambient=e.lighting.ambient,p.diffuse=e.lighting.diffuse,p.specular=e.lighting.specular,p.roughness=e.lighting.roughness,p.fresnel=e.lighting.fresnel,p.opacity=e.opacity,e._pad=h[e.anchor]*p.vectorScale*p.coneScale*e._normMax,p}c.update=function(t){this.data=t;var e=p(this.scene,t);this.mesh.update(e)},c.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},e.exports=function(t,e){var r=t.glplot.gl,n=p(t,e),a=i(r,n),o=new l(t,e.uid);return o.mesh=a,o.data=e,a._trace=o,t.glplot.add(a),o}},{\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../plots/gl3d/zip3\\\":798,\\\"gl-cone3d\\\":231}],914:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/defaults\\\"),a=t(\\\"./attributes\\\");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s(\\\"u\\\"),c=s(\\\"v\\\"),u=s(\\\"w\\\"),f=s(\\\"x\\\"),h=s(\\\"y\\\"),p=s(\\\"z\\\");l&&l.length&&c&&c.length&&u&&u.length&&f&&f.length&&h&&h.length&&p&&p.length?(s(\\\"sizeref\\\"),s(\\\"sizemode\\\"),s(\\\"anchor\\\"),s(\\\"lighting.ambient\\\"),s(\\\"lighting.diffuse\\\"),s(\\\"lighting.specular\\\"),s(\\\"lighting.roughness\\\"),s(\\\"lighting.fresnel\\\"),s(\\\"lightposition.x\\\"),s(\\\"lightposition.y\\\"),s(\\\"lightposition.z\\\"),i(t,e,o,s,{prefix:\\\"\\\",cLetter:\\\"c\\\"}),s(\\\"text\\\"),e._length=null):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"./attributes\\\":911}],915:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"cone\\\",basePlotModule:t(\\\"../../plots/gl3d\\\"),categories:[\\\"gl3d\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),colorbar:{min:\\\"cmin\\\",max:\\\"cmax\\\"},calc:t(\\\"./calc\\\"),plot:t(\\\"./convert\\\"),meta:{}}},{\\\"../../plots/gl3d\\\":787,\\\"./attributes\\\":911,\\\"./calc\\\":912,\\\"./convert\\\":913,\\\"./defaults\\\":914}],916:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../heatmap/attributes\\\"),i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/colorbar/attributes\\\"),s=t(\\\"../../components/drawing/attributes\\\").dash,l=t(\\\"../../plots/font_attributes\\\"),c=t(\\\"../../lib/extend\\\").extendFlat,u=t(\\\"../../constants/filter_ops\\\"),f=u.COMPARISON_OPS2,h=u.INTERVAL_OPS,p=i.line;e.exports=c({z:n.z,x:n.x,x0:n.x0,dx:n.dx,y:n.y,y0:n.y0,dy:n.dy,text:n.text,transpose:n.transpose,xtype:n.xtype,ytype:n.ytype,zhoverformat:n.zhoverformat,connectgaps:n.connectgaps,fillcolor:{valType:\\\"color\\\",editType:\\\"calc\\\"},autocontour:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\",impliedEdits:{\\\"contours.start\\\":void 0,\\\"contours.end\\\":void 0,\\\"contours.size\\\":void 0}},ncontours:{valType:\\\"integer\\\",dflt:15,min:1,editType:\\\"calc\\\"},contours:{type:{valType:\\\"enumerated\\\",values:[\\\"levels\\\",\\\"constraint\\\"],dflt:\\\"levels\\\",editType:\\\"calc\\\"},start:{valType:\\\"number\\\",dflt:null,editType:\\\"plot\\\",impliedEdits:{\\\"^autocontour\\\":!1}},end:{valType:\\\"number\\\",dflt:null,editType:\\\"plot\\\",impliedEdits:{\\\"^autocontour\\\":!1}},size:{valType:\\\"number\\\",dflt:null,min:0,editType:\\\"plot\\\",impliedEdits:{\\\"^autocontour\\\":!1}},coloring:{valType:\\\"enumerated\\\",values:[\\\"fill\\\",\\\"heatmap\\\",\\\"lines\\\",\\\"none\\\"],dflt:\\\"fill\\\",editType:\\\"calc\\\"},showlines:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},showlabels:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"plot\\\"},labelfont:l({editType:\\\"plot\\\",colorEditType:\\\"style\\\"}),labelformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"plot\\\"},operation:{valType:\\\"enumerated\\\",values:[].concat(f).concat(h),dflt:\\\"=\\\",editType:\\\"calc\\\"},value:{valType:\\\"any\\\",dflt:0,editType:\\\"calc\\\"},editType:\\\"calc\\\",impliedEdits:{autocontour:!1}},line:{color:c({},p.color,{editType:\\\"style+colorbars\\\"}),width:c({},p.width,{editType:\\\"style+colorbars\\\"}),dash:s,smoothing:c({},p.smoothing,{}),editType:\\\"plot\\\"}},a(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1,editTypeOverride:\\\"calc\\\"}),{colorbar:o})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../components/drawing/attributes\\\":594,\\\"../../constants/filter_ops\\\":669,\\\"../../lib/extend\\\":685,\\\"../../plots/font_attributes\\\":771,\\\"../heatmap/attributes\\\":945,\\\"../scatter/attributes\\\":1043}],917:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../heatmap/calc\\\"),i=t(\\\"./set_contours\\\");e.exports=function(t,e){var r=n(t,e);return i(e),r}},{\\\"../heatmap/calc\\\":946,\\\"./set_contours\\\":935}],918:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i,a,o,s=t[0],l=s.x.length,c=s.y.length,u=s.z,f=n.contours,h=-1/0,p=1/0;for(i=0;i<c;i++)p=Math.min(p,u[i][0]),p=Math.min(p,u[i][l-1]),h=Math.max(h,u[i][0]),h=Math.max(h,u[i][l-1]);for(i=1;i<l-1;i++)p=Math.min(p,u[0][i]),p=Math.min(p,u[c-1][i]),h=Math.max(h,u[0][i]),h=Math.max(h,u[c-1][i]);switch(s.prefixBoundary=!1,e){case\\\">\\\":f.value>h&&(s.prefixBoundary=!0);break;case\\\"<\\\":f.value<p&&(s.prefixBoundary=!0);break;case\\\"[]\\\":a=Math.min.apply(null,f.value),((o=Math.max.apply(null,f.value))<p||a>h)&&(s.prefixBoundary=!0);break;case\\\"][\\\":a=Math.min.apply(null,f.value),o=Math.max.apply(null,f.value),a<p&&o>h&&(s.prefixBoundary=!0)}}},{}],919:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorbar/draw\\\"),i=t(\\\"./make_color_map\\\"),a=t(\\\"./end_plus\\\");e.exports=function(t,e){var r=e[0].trace,o=\\\"cb\\\"+r.uid;if(t._fullLayout._infolayer.selectAll(\\\".\\\"+o).remove(),r.showscale){var s=e[0].t.cb=n(t,o),l=r.contours,c=r.line,u=l.size||1,f=l.coloring,h=i(r,{isColorbar:!0});s.fillgradient(\\\"heatmap\\\"===f?r.colorscale:\\\"\\\").zrange(\\\"heatmap\\\"===f?[r.zmin,r.zmax]:\\\"\\\").fillcolor(\\\"fill\\\"===f?h:\\\"\\\").line({color:\\\"lines\\\"===f?h:c.color,width:!1!==l.showlines?c.width:0,dash:c.dash}).levels({start:l.start,end:a(l),size:u}).options(r.colorbar)()}}},{\\\"../../components/colorbar/draw\\\":575,\\\"./end_plus\\\":927,\\\"./make_color_map\\\":932}],920:[function(t,e,r){\\\"use strict\\\";e.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}}},{}],921:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"./label_defaults\\\"),a=t(\\\"../../components/color\\\"),o=a.addOpacity,s=a.opacity,l=t(\\\"../../constants/filter_ops\\\"),c=l.CONSTRAINT_REDUCTION,u=l.COMPARISON_OPS2;e.exports=function(t,e,r,a,l,f){var h,p,d,g=e.contours,v=r(\\\"contours.operation\\\");(g._operation=c[v],function(t,e){var r;-1===u.indexOf(e.operation)?(t(\\\"contours.value\\\",[0,1]),Array.isArray(e.value)?e.value.length>2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(r=parseFloat(e.value[0]),e.value=[r,r+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:n(e.value)&&(r=parseFloat(e.value),e.value=[r,r+1])):(t(\\\"contours.value\\\",0),n(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(r,g),\\\"=\\\"===v?h=g.showlines=!0:(h=r(\\\"contours.showlines\\\"),d=r(\\\"fillcolor\\\",o((t.line||{}).color||l,.5))),h)&&(p=r(\\\"line.color\\\",d&&s(d)?o(e.fillcolor,1):l),r(\\\"line.width\\\",2),r(\\\"line.dash\\\"));r(\\\"line.smoothing\\\"),i(r,a,p,f)}},{\\\"../../components/color\\\":570,\\\"../../constants/filter_ops\\\":669,\\\"./label_defaults\\\":931,\\\"fast-isnumeric\\\":214}],922:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../constants/filter_ops\\\"),i=t(\\\"fast-isnumeric\\\");function a(t,e){var r,a=Array.isArray(e);function o(t){return i(t)?+t:null}return-1!==n.COMPARISON_OPS2.indexOf(t)?r=o(a?e[0]:e):-1!==n.INTERVAL_OPS.indexOf(t)?r=a?[o(e[0]),o(e[1])]:[o(e),o(e)]:-1!==n.SET_OPS.indexOf(t)&&(r=a?e.map(o):[o(e)]),r}function o(t){return function(e){e=a(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function s(t){return function(e){return{start:e=a(t,e),end:1/0,size:1/0}}}e.exports={\\\"[]\\\":o(\\\"[]\\\"),\\\"][\\\":o(\\\"][\\\"),\\\">\\\":s(\\\">\\\"),\\\"<\\\":s(\\\"<\\\"),\\\"=\\\":s(\\\"=\\\")}},{\\\"../../constants/filter_ops\\\":669,\\\"fast-isnumeric\\\":214}],923:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i=n(\\\"contours.start\\\"),a=n(\\\"contours.end\\\"),o=!1===i||!1===a,s=r(\\\"contours.size\\\");!(o?e.autocontour=!0:r(\\\"autocontour\\\",!1))&&s||r(\\\"ncontours\\\")}},{}],924:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");function i(t){return n.extendFlat({},t,{edgepaths:n.extendDeep([],t.edgepaths),paths:n.extendDeep([],t.paths)})}e.exports=function(t,e){var r,a,o,s=function(t){return t.reverse()},l=function(t){return t};switch(e){case\\\"=\\\":case\\\"<\\\":return t;case\\\">\\\":for(1!==t.length&&n.warn(\\\"Contour data invalid for the specified inequality operation.\\\"),a=t[0],r=0;r<a.edgepaths.length;r++)a.edgepaths[r]=s(a.edgepaths[r]);for(r=0;r<a.paths.length;r++)a.paths[r]=s(a.paths[r]);return t;case\\\"][\\\":var c=s;s=l,l=c;case\\\"[]\\\":for(2!==t.length&&n.warn(\\\"Contour data invalid for the specified inequality range operation.\\\"),a=i(t[0]),o=i(t[1]),r=0;r<a.edgepaths.length;r++)a.edgepaths[r]=s(a.edgepaths[r]);for(r=0;r<a.paths.length;r++)a.paths[r]=s(a.paths[r]);for(;o.edgepaths.length;)a.edgepaths.push(l(o.edgepaths.shift()));for(;o.paths.length;)a.paths.push(l(o.paths.shift()));return[a]}}},{\\\"../../lib\\\":696}],925:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../heatmap/xyz_defaults\\\"),a=t(\\\"./constraint_defaults\\\"),o=t(\\\"./contours_defaults\\\"),s=t(\\\"./style_defaults\\\"),l=t(\\\"./attributes\\\");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,l,r,i)}if(i(t,e,u,c)){u(\\\"text\\\");var f=\\\"constraint\\\"===u(\\\"contours.type\\\");u(\\\"connectgaps\\\",n.isArray1D(e.z)),f?a(t,e,u,c,r):(o(t,e,u,function(r){return n.coerce2(t,e,l,r)}),s(t,e,u,c))}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../heatmap/xyz_defaults\\\":960,\\\"./attributes\\\":916,\\\"./constraint_defaults\\\":921,\\\"./contours_defaults\\\":923,\\\"./style_defaults\\\":937}],926:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./constraint_mapping\\\"),a=t(\\\"./end_plus\\\");e.exports=function(t,e,r){for(var o=\\\"constraint\\\"===t.type?i[t._operation](t.value):t,s=o.size,l=[],c=a(o),u=r.trace._carpetTrace,f=u?{xaxis:u.aaxis,yaxis:u.baxis,x:r.a,y:r.b}:{xaxis:e.xaxis,yaxis:e.yaxis,x:r.x,y:r.y},h=o.start;h<c;h+=s)if(l.push(n.extendFlat({level:h,crossings:{},starts:[],edgepaths:[],paths:[],z:r.z,smoothing:r.trace.line.smoothing},f)),l.length>1e3){n.warn(\\\"Too many contours, clipping at 1000\\\",t);break}return l}},{\\\"../../lib\\\":696,\\\"./constraint_mapping\\\":922,\\\"./end_plus\\\":927}],927:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){return t.end+t.size/1e6}},{}],928:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./constants\\\");function a(t,e,r,n){return Math.abs(t[0]-e[0])<r&&Math.abs(t[1]-e[1])<n}function o(t,e,r,o,l){var c,u=e.join(\\\",\\\"),f=u,h=t.crossings[f],p=function(t,e,r){var n=0,a=0;t>20&&e?208===t||1114===t?n=0===r[0]?1:-1:a=0===r[1]?1:-1:-1!==i.BOTTOMSTART.indexOf(t)?a=1:-1!==i.LEFTSTART.indexOf(t)?n=1:-1!==i.TOPSTART.indexOf(t)?a=-1:n=-1;return[n,a]}(h,r,e),d=[s(t,e,[-p[0],-p[1]])],g=p.join(\\\",\\\"),v=t.z.length,m=t.z[0].length;for(c=0;c<1e4;c++){if(h>20?(h=i.CHOOSESADDLE[h][(p[0]||p[1])<0?0:1],t.crossings[f]=i.SADDLEREMAINDER[h]):delete t.crossings[f],!(p=i.NEWDELTA[h])){n.log(\\\"Found bad marching index:\\\",h,e,t.level);break}d.push(s(t,e,p)),e[0]+=p[0],e[1]+=p[1],a(d[d.length-1],d[d.length-2],o,l)&&d.pop(),f=e.join(\\\",\\\");var y=p[0]&&(e[0]<0||e[0]>m-2)||p[1]&&(e[1]<0||e[1]>v-2);if(f===u&&p.join(\\\",\\\")===g||r&&y)break;h=t.crossings[f]}1e4===c&&n.log(\\\"Infinite loop in contour?\\\");var x,b,_,w,k,M,A,T,S,E,C,L,z,O,I,P=a(d[0],d[d.length-1],o,l),D=0,R=.2*t.smoothing,B=[],F=0;for(c=1;c<d.length;c++)L=d[c],z=d[c-1],void 0,void 0,O=L[2]-z[2],I=L[3]-z[3],D+=A=Math.sqrt(O*O+I*I),B.push(A);var N=D/B.length*R;function j(t){return d[t%d.length]}for(c=d.length-2;c>=F;c--)if((x=B[c])<N){for(_=0,b=c-1;b>=F&&x+B[b]<N;b--)x+=B[b];if(P&&c===d.length-2)for(_=0;_<b&&x+B[_]<N;_++)x+=B[_];k=c-b+_+1,M=Math.floor((c+b+_+2)/2),w=P||c!==d.length-2?P||-1!==b?k%2?j(M):[(j(M)[0]+j(M+1)[0])/2,(j(M)[1]+j(M+1)[1])/2]:d[0]:d[d.length-1],d.splice(b+1,c-b+1,w),c=b+1,_&&(F=_),P&&(c===d.length-2?d[_]=d[d.length-1]:0===c&&(d[d.length-1]=d[0]))}for(d.splice(0,F),c=0;c<d.length;c++)d[c].length=2;if(!(d.length<2))if(P)d.pop(),t.paths.push(d);else{r||n.log(\\\"Unclosed interior contour?\\\",t.level,u,d.join(\\\"L\\\"));var V=!1;for(T=0;T<t.edgepaths.length;T++)if(E=t.edgepaths[T],!V&&a(E[0],d[d.length-1],o,l)){d.pop(),V=!0;var U=!1;for(S=0;S<t.edgepaths.length;S++)if(a((C=t.edgepaths[S])[C.length-1],d[0],o,l)){U=!0,d.shift(),t.edgepaths.splice(T,1),S===T?t.paths.push(d.concat(C)):(S>T&&S--,t.edgepaths[S]=C.concat(d,E));break}U||(t.edgepaths[T]=d.concat(E))}for(T=0;T<t.edgepaths.length&&!V;T++)a((E=t.edgepaths[T])[E.length-1],d[0],o,l)&&(d.shift(),t.edgepaths[T]=E.concat(d),V=!0);V||t.edgepaths.push(d)}}function s(t,e,r){var n=e[0]+Math.max(r[0],0),i=e[1]+Math.max(r[1],0),a=t.z[i][n],o=t.xaxis,s=t.yaxis;if(r[1]){var l=(t.level-a)/(t.z[i][n+1]-a);return[o.c2p((1-l)*t.x[n]+l*t.x[n+1],!0),s.c2p(t.y[i],!0),n+l,i]}var c=(t.level-a)/(t.z[i+1][n]-a);return[o.c2p(t.x[n],!0),s.c2p((1-c)*t.y[i]+c*t.y[i+1],!0),n,i+c]}e.exports=function(t,e,r){var i,a,s,l;for(e=e||.01,r=r||.01,a=0;a<t.length;a++){for(s=t[a],l=0;l<s.starts.length;l++)o(s,s.starts[l],\\\"edge\\\",e,r);for(i=0;Object.keys(s.crossings).length&&i<1e4;)i++,o(s,Object.keys(s.crossings)[0].split(\\\",\\\").map(Number),void 0,e,r);1e4===i&&n.log(\\\"Infinite loop in contour?\\\")}}},{\\\"../../lib\\\":696,\\\"./constants\\\":920}],929:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../heatmap/hover\\\");e.exports=function(t,e,r,a,o){var s=i(t,e,r,a,o,!0);return s&&s.forEach(function(t){var e=t.trace;\\\"constraint\\\"===e.contours.type&&(e.fillcolor&&n.opacity(e.fillcolor)?t.color=n.addOpacity(e.fillcolor,1):e.contours.showlines&&n.opacity(e.line.color)&&(t.color=n.addOpacity(e.line.color,1)))}),s}},{\\\"../../components/color\\\":570,\\\"../heatmap/hover\\\":952}],930:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\").plot,n.style=t(\\\"./style\\\"),n.colorbar=t(\\\"./colorbar\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"contour\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"2dMap\\\",\\\"contour\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":916,\\\"./calc\\\":917,\\\"./colorbar\\\":919,\\\"./defaults\\\":925,\\\"./hover\\\":929,\\\"./plot\\\":934,\\\"./style\\\":936}],931:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e,r,i){if(i||(i={}),t(\\\"contours.showlabels\\\")){var a=e.font;n.coerceFont(t,\\\"contours.labelfont\\\",{family:a.family,size:a.size,color:r}),t(\\\"contours.labelformat\\\")}!1!==i.hasHover&&t(\\\"zhoverformat\\\")}},{\\\"../../lib\\\":696}],932:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/colorscale\\\"),a=t(\\\"./end_plus\\\");e.exports=function(t){var e=t.contours,r=e.start,o=a(e),s=e.size||1,l=Math.floor((o-r)/s)+1,c=\\\"lines\\\"===e.coloring?0:1;isFinite(s)||(s=1,l=1);var u,f,h=t.colorscale,p=h.length,d=new Array(p),g=new Array(p);if(\\\"heatmap\\\"===e.coloring){for(t.zauto&&!1===t.autocontour&&(t.zmin=r-s/2,t.zmax=t.zmin+l*s),f=0;f<p;f++)u=h[f],d[f]=u[0]*(t.zmax-t.zmin)+t.zmin,g[f]=u[1];var v=n.extent([t.zmin,t.zmax,e.start,e.start+s*(l-1)]),m=v[t.zmin<t.zmax?0:1],y=v[t.zmin<t.zmax?1:0];m!==t.zmin&&(d.splice(0,0,m),g.splice(0,0,Range[0])),y!==t.zmax&&(d.push(y),g.push(g[g.length-1]))}else for(f=0;f<p;f++)u=h[f],d[f]=(u[0]*(l+c-1)-c/2)*s+r,g[f]=u[1];return i.makeColorScaleFunc({domain:d,range:g},{noNumericCheck:!0})}},{\\\"../../components/colorscale\\\":585,\\\"./end_plus\\\":927,d3:148}],933:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\");function i(t,e){var r=(e[0][0]>t?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}e.exports=function(t){var e,r,a,o,s,l,c,u,f,h=t[0].z,p=h.length,d=h[0].length,g=2===p||2===d;for(r=0;r<p-1;r++)for(o=[],0===r&&(o=o.concat(n.BOTTOMSTART)),r===p-2&&(o=o.concat(n.TOPSTART)),e=0;e<d-1;e++)for(a=o.slice(),0===e&&(a=a.concat(n.LEFTSTART)),e===d-2&&(a=a.concat(n.RIGHTSTART)),s=e+\\\",\\\"+r,l=[[h[r][e],h[r][e+1]],[h[r+1][e],h[r+1][e+1]]],f=0;f<t.length;f++)(c=i((u=t[f]).level,l))&&(u.crossings[s]=c,-1!==a.indexOf(c)&&(u.starts.push([e,r]),g&&-1!==a.indexOf(c,a.indexOf(c)+1)&&u.starts.push([e,r])))}},{\\\"./constants\\\":920}],934:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"../../lib/svg_text_utils\\\"),s=t(\\\"../../plots/cartesian/axes\\\"),l=t(\\\"../../plots/cartesian/set_convert\\\"),c=t(\\\"../heatmap/plot\\\"),u=t(\\\"./make_crossings\\\"),f=t(\\\"./find_all_paths\\\"),h=t(\\\"./empty_pathinfo\\\"),p=t(\\\"./convert_to_constraints\\\"),d=t(\\\"./close_boundaries\\\"),g=t(\\\"./constants\\\"),v=g.LABELOPTIMIZER;function m(t,e){var r,n,o,s,l,c,u,f=function(t,e){var r=t.prefixBoundary;if(void 0===r){var n=Math.min(t.z[0][0],t.z[0][1]);r=!t.edgepaths.length&&n>t.level}return r?\\\"M\\\"+e.join(\\\"L\\\")+\\\"Z\\\":\\\"\\\"}(t,e),h=0,p=t.edgepaths.map(function(t,e){return e}),d=!0;function g(t){return Math.abs(t[1]-e[2][1])<.01}function v(t){return Math.abs(t[0]-e[0][0])<.01}function m(t){return Math.abs(t[0]-e[2][0])<.01}for(;p.length;){for(c=a.smoothopen(t.edgepaths[h],t.smoothing),f+=d?c:c.replace(/^M/,\\\"L\\\"),p.splice(p.indexOf(h),1),r=t.edgepaths[h][t.edgepaths[h].length-1],s=-1,o=0;o<4;o++){if(!r){i.log(\\\"Missing end?\\\",h,t);break}for(u=r,Math.abs(u[1]-e[0][1])<.01&&!m(r)?n=e[1]:v(r)?n=e[0]:g(r)?n=e[3]:m(r)&&(n=e[2]),l=0;l<t.edgepaths.length;l++){var y=t.edgepaths[l][0];Math.abs(r[0]-n[0])<.01?Math.abs(r[0]-y[0])<.01&&(y[1]-r[1])*(n[1]-y[1])>=0&&(n=y,s=l):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-y[1])<.01&&(y[0]-r[0])*(n[0]-y[0])>=0&&(n=y,s=l):i.log(\\\"endpt to newendpt is not vert. or horz.\\\",r,n,y)}if(r=n,s>=0)break;f+=\\\"L\\\"+n}if(s===t.edgepaths.length){i.log(\\\"unclosed perimeter path\\\");break}h=s,(d=-1===p.indexOf(h))&&(h=p[0],f+=\\\"Z\\\")}for(h=0;h<t.paths.length;h++)f+=a.smoothclosed(t.paths[h],t.smoothing);return f}function y(t,e,r,n){var a=e.width/2,o=e.height/2,s=t.x,l=t.y,c=t.theta,u=Math.cos(c)*a,f=Math.sin(c)*a,h=(s>n.center?n.right-s:s-n.left)/(u+Math.abs(Math.sin(c)*o)),p=(l>n.middle?n.bottom-l:l-n.top)/(Math.abs(f)+Math.cos(c)*o);if(h<1||p<1)return 1/0;var d=v.EDGECOST*(1/(h-1)+1/(p-1));d+=v.ANGLECOST*c*c;for(var g=s-u,m=l-f,y=s+u,x=l+f,b=0;b<r.length;b++){var _=r[b],w=Math.cos(_.theta)*_.width/2,k=Math.sin(_.theta)*_.width/2,M=2*i.segmentDistance(g,m,y,x,_.x-w,_.y-k,_.x+w,_.y+k)/(e.height+_.height),A=_.level===e.level,T=A?v.SAMELEVELDISTANCE:1;if(M<=T)return 1/0;d+=v.NEIGHBORCOST*(A?v.SAMELEVELFACTOR:1)/(M-T)}return d}r.plot=function(t,e,o,s){var l=e.xaxis,v=e.yaxis,y=t._fullLayout;i.makeTraceGroups(s,o,\\\"contour\\\").each(function(o){var s=n.select(this),x=o[0],b=x.trace,_=x.x,w=x.y,k=b.contours,M=h(k,e,x),A=i.ensureSingle(s,\\\"g\\\",\\\"heatmapcoloring\\\"),T=[];\\\"heatmap\\\"===k.coloring&&(b.zauto&&!1===b.autocontour&&(b._input.zmin=b.zmin=k.start-k.size/2,b._input.zmax=b.zmax=b.zmin+M.length*k.size),T=[o]),c(t,e,T,A),u(M),f(M);var S=l.c2p(_[0],!0),E=l.c2p(_[_.length-1],!0),C=v.c2p(w[0],!0),L=v.c2p(w[w.length-1],!0),z=[[S,L],[E,L],[E,C],[S,C]],O=M;\\\"constraint\\\"===k.type&&(O=p(M,k._operation),d(O,k._operation,z,b)),function(t,e,r){var n=i.ensureSingle(t,\\\"g\\\",\\\"contourbg\\\").selectAll(\\\"path\\\").data(\\\"fill\\\"===r.coloring?[0]:[]);n.enter().append(\\\"path\\\"),n.exit().remove(),n.attr(\\\"d\\\",\\\"M\\\"+e.join(\\\"L\\\")+\\\"Z\\\").style(\\\"stroke\\\",\\\"none\\\")}(s,z,k),function(t,e,r,a){var o=i.ensureSingle(t,\\\"g\\\",\\\"contourfill\\\").selectAll(\\\"path\\\").data(\\\"fill\\\"===a.coloring||\\\"constraint\\\"===a.type&&\\\"=\\\"!==a._operation?e:[]);o.enter().append(\\\"path\\\"),o.exit().remove(),o.each(function(t){var e=m(t,r);e?n.select(this).attr(\\\"d\\\",e).style(\\\"stroke\\\",\\\"none\\\"):n.select(this).remove()})}(s,O,z,k),function(t,e,o,s,l,c){var u=i.ensureSingle(t,\\\"g\\\",\\\"contourlines\\\"),f=!1!==l.showlines,h=l.showlabels,p=f&&h,d=r.createLines(u,f||h,e),v=r.createLineClip(u,p,o._fullLayout._clips,s.trace.uid),m=t.selectAll(\\\"g.contourlabels\\\").data(h?[0]:[]);if(m.exit().remove(),m.enter().append(\\\"g\\\").classed(\\\"contourlabels\\\",!0),h){var y=[c],x=[];i.clearLocationCache();var b=r.labelFormatter(l,s.t.cb,o._fullLayout),_=a.tester.append(\\\"text\\\").attr(\\\"data-notex\\\",1).call(a.font,l.labelfont),w=e[0].xaxis._length,k=e[0].yaxis._length,M={left:Math.max(c[0][0],0),right:Math.min(c[2][0],w),top:Math.max(c[0][1],0),bottom:Math.min(c[2][1],k)};M.middle=(M.top+M.bottom)/2,M.center=(M.left+M.right)/2;var A=Math.sqrt(w*w+k*k),T=g.LABELDISTANCE*A/Math.max(1,e.length/g.LABELINCREASE);d.each(function(t){var e=r.calcTextOpts(t.level,b,_,o);n.select(this).selectAll(\\\"path\\\").each(function(){var t=i.getVisibleSegment(this,M,e.height/2);if(t&&!(t.len<(e.width+e.height)*g.LABELMIN))for(var n=Math.min(Math.ceil(t.len/T),g.LABELMAX),a=0;a<n;a++){var o=r.findBestTextLocation(this,t,e,x,M);if(!o)break;r.addLabelData(o,e,x,y)}})}),_.remove(),r.drawLabels(m,x,o,v,p?y:null)}h&&!f&&d.remove()}(s,M,t,x,k,z),function(t,e,r,n,o){var s=\\\"clip\\\"+n.trace.uid,l=r.selectAll(\\\"#\\\"+s).data(n.trace.connectgaps?[]:[0]);if(l.enter().append(\\\"clipPath\\\").classed(\\\"contourclip\\\",!0).attr(\\\"id\\\",s),l.exit().remove(),!1===n.trace.connectgaps){var c={level:.9,crossings:{},starts:[],edgepaths:[],paths:[],xaxis:e.xaxis,yaxis:e.yaxis,x:n.x,y:n.y,z:function(t){var e,r,n=t.trace._emptypoints,i=[],a=t.z.length,o=t.z[0].length,s=[];for(e=0;e<o;e++)s.push(1);for(e=0;e<a;e++)i.push(s.slice());for(e=0;e<n.length;e++)r=n[e],i[r[0]][r[1]]=0;return t.zmask=i,i}(n),smoothing:0};u([c]),f([c]);var h=m(c,o),p=i.ensureSingle(l,\\\"path\\\",\\\"\\\");p.attr(\\\"d\\\",h)}else s=null;t.call(a.setClipUrl,s)}(s,e,y._clips,x,z)})},r.createLines=function(t,e,r){var n=r[0].smoothing,i=t.selectAll(\\\"g.contourlevel\\\").data(e?r:[]);if(i.exit().remove(),i.enter().append(\\\"g\\\").classed(\\\"contourlevel\\\",!0),e){var o=i.selectAll(\\\"path.openline\\\").data(function(t){return t.pedgepaths||t.edgepaths});o.exit().remove(),o.enter().append(\\\"path\\\").classed(\\\"openline\\\",!0),o.attr(\\\"d\\\",function(t){return a.smoothopen(t,n)}).style(\\\"stroke-miterlimit\\\",1).style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\");var s=i.selectAll(\\\"path.closedline\\\").data(function(t){return t.ppaths||t.paths});s.exit().remove(),s.enter().append(\\\"path\\\").classed(\\\"closedline\\\",!0),s.attr(\\\"d\\\",function(t){return a.smoothclosed(t,n)}).style(\\\"stroke-miterlimit\\\",1).style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\")}return i},r.createLineClip=function(t,e,r,n){var i=e?\\\"clipline\\\"+n:null,o=r.selectAll(\\\"#\\\"+i).data(e?[0]:[]);return o.exit().remove(),o.enter().append(\\\"clipPath\\\").classed(\\\"contourlineclip\\\",!0).attr(\\\"id\\\",i),a.setClipUrl(t,i),o},r.labelFormatter=function(t,e,r){if(t.labelformat)return r._d3locale.numberFormat(t.labelformat);var n;if(e)n=e.axis;else{if(n={type:\\\"linear\\\",_id:\\\"ycontour\\\",showexponent:\\\"all\\\",exponentformat:\\\"B\\\"},\\\"constraint\\\"===t.type){var i=t.value;Array.isArray(i)?n.range=[i[0],i[i.length-1]]:n.range=[i,i]}else n.range=[t.start,t.end],n.nticks=(t.end-t.start)/t.size;n.range[0]===n.range[1]&&(n.range[1]+=n.range[0]||1),n.nticks||(n.nticks=1e3),l(n,r),s.prepTicks(n),n._tmin=null,n._tmax=null}return function(t){return s.tickText(n,t).text}},r.calcTextOpts=function(t,e,r,n){var i=e(t);r.text(i).call(o.convertToTspans,n);var s=a.bBox(r.node(),!0);return{text:i,width:s.width,height:s.height,level:t,dy:(s.top+s.bottom)/2}},r.findBestTextLocation=function(t,e,r,n,a){var o,s,l,c,u,f=r.width;e.isClosed?(s=e.len/v.INITIALSEARCHPOINTS,o=e.min+s/2,l=e.max):(s=(e.len-f)/(v.INITIALSEARCHPOINTS+1),o=e.min+s+f/2,l=e.max-(s+f)/2);for(var h=1/0,p=0;p<v.ITERATIONS;p++){for(var d=o;d<l;d+=s){var g=i.getTextLocation(t,e.total,d,f),m=y(g,r,n,a);m<h&&(h=m,u=g,c=d)}if(h>2*v.MAXCOST)break;p&&(s/=2),l=(o=c-s/2)+1.5*s}if(h<=v.MAXCOST)return u},r.addLabelData=function(t,e,r,n){var i=e.width/2,a=e.height/2,o=t.x,s=t.y,l=t.theta,c=Math.sin(l),u=Math.cos(l),f=i*u,h=a*c,p=i*c,d=-a*u,g=[[o-f-h,s-p-d],[o+f-h,s+p-d],[o+f+h,s+p+d],[o-f+h,s-p+d]];r.push({text:e.text,x:o,y:s,dy:e.dy,theta:l,level:e.level,width:e.width,height:e.height}),n.push(g)},r.drawLabels=function(t,e,r,a,s){var l=t.selectAll(\\\"text\\\").data(e,function(t){return t.text+\\\",\\\"+t.x+\\\",\\\"+t.y+\\\",\\\"+t.theta});if(l.exit().remove(),l.enter().append(\\\"text\\\").attr({\\\"data-notex\\\":1,\\\"text-anchor\\\":\\\"middle\\\"}).each(function(t){var e=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;n.select(this).text(t.text).attr({x:e,y:i,transform:\\\"rotate(\\\"+180*t.theta/Math.PI+\\\" \\\"+e+\\\" \\\"+i+\\\")\\\"}).call(o.convertToTspans,r)}),s){for(var c=\\\"\\\",u=0;u<s.length;u++)c+=\\\"M\\\"+s[u].join(\\\"L\\\")+\\\"Z\\\";i.ensureSingle(a,\\\"path\\\",\\\"\\\").attr(\\\"d\\\",c)}}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/cartesian/set_convert\\\":763,\\\"../heatmap/plot\\\":957,\\\"./close_boundaries\\\":918,\\\"./constants\\\":920,\\\"./convert_to_constraints\\\":924,\\\"./empty_pathinfo\\\":926,\\\"./find_all_paths\\\":928,\\\"./make_crossings\\\":933,d3:148}],935:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\");function a(t,e,r){var i={type:\\\"linear\\\",range:[t,e]};return n.autoTicks(i,(e-t)/(r||15)),i}e.exports=function(t){var e=t.contours;if(t.autocontour){var r=t.zmin,o=t.zmax;void 0!==r&&void 0!==o||(r=i.aggNums(Math.min,null,t._z),o=i.aggNums(Math.max,null,t._z));var s=a(r,o,t.ncontours);e.size=s.dtick,e.start=n.tickFirst(s),s.range.reverse(),e.end=n.tickFirst(s),e.start===r&&(e.start+=e.size),e.end===o&&(e.end-=e.size),e.start>e.end&&(e.start=e.end=(e.start+e.end)/2),t._input.contours||(t._input.contours={}),i.extendFlat(t._input.contours,{start:e.start,end:e.end,size:e.size}),t._input.autocontour=!0}else if(\\\"constraint\\\"!==e.type){var l,c=e.start,u=e.end,f=t._input.contours;if(c>u&&(e.start=f.start=u,u=e.end=f.end=c,c=e.start),!(e.size>0))l=c===u?1:a(c,u,t.ncontours).dtick,f.size=e.size=l}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],936:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"../heatmap/style\\\"),o=t(\\\"./make_color_map\\\");e.exports=function(t){var e=n.select(t).selectAll(\\\"g.contour\\\");e.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),e.each(function(t){var e=n.select(this),r=t[0].trace,a=r.contours,s=r.line,l=a.size||1,c=a.start,u=\\\"constraint\\\"===a.type,f=!u&&\\\"lines\\\"===a.coloring,h=!u&&\\\"fill\\\"===a.coloring,p=f||h?o(r):null;e.selectAll(\\\"g.contourlevel\\\").each(function(t){n.select(this).selectAll(\\\"path\\\").call(i.lineGroupStyle,s.width,f?p(t.level):s.color,s.dash)});var d=a.labelfont;if(e.selectAll(\\\"g.contourlabels text\\\").each(function(t){i.font(n.select(this),{family:d.family,size:d.size,color:d.color||(f?p(t.level):s.color)})}),u)e.selectAll(\\\"g.contourfill path\\\").style(\\\"fill\\\",r.fillcolor);else if(h){var g;e.selectAll(\\\"g.contourfill path\\\").style(\\\"fill\\\",function(t){return void 0===g&&(g=t.level),p(t.level+.5*l)}),void 0===g&&(g=c),e.selectAll(\\\"g.contourbg path\\\").style(\\\"fill\\\",p(g-.5*l))}}),a(t)}},{\\\"../../components/drawing\\\":595,\\\"../heatmap/style\\\":958,\\\"./make_color_map\\\":932,d3:148}],937:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/defaults\\\"),i=t(\\\"./label_defaults\\\");e.exports=function(t,e,r,a,o){var s,l=r(\\\"contours.coloring\\\"),c=\\\"\\\";\\\"fill\\\"===l&&(s=r(\\\"contours.showlines\\\")),!1!==s&&(\\\"lines\\\"!==l&&(c=r(\\\"line.color\\\",\\\"#000\\\")),r(\\\"line.width\\\",.5),r(\\\"line.dash\\\")),\\\"none\\\"!==l&&(!0!==t.showlegend&&(e.showlegend=!1),e._dfltShowLegend=!1,n(t,e,a,r,{prefix:\\\"\\\",cLetter:\\\"z\\\"})),r(\\\"line.smoothing\\\"),i(r,a,c,o)}},{\\\"../../components/colorscale/defaults\\\":580,\\\"./label_defaults\\\":931}],938:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../heatmap/attributes\\\"),i=t(\\\"../contour/attributes\\\"),a=i.contours,o=t(\\\"../scatter/attributes\\\"),s=t(\\\"../../components/colorscale/attributes\\\"),l=t(\\\"../../components/colorbar/attributes\\\"),c=t(\\\"../../lib/extend\\\").extendFlat,u=o.line;e.exports=c({carpet:{valType:\\\"string\\\",editType:\\\"calc\\\"},z:n.z,a:n.x,a0:n.x0,da:n.dx,b:n.y,b0:n.y0,db:n.dy,text:n.text,transpose:n.transpose,atype:n.xtype,btype:n.ytype,fillcolor:i.fillcolor,autocontour:i.autocontour,ncontours:i.ncontours,contours:{type:a.type,start:a.start,end:a.end,size:a.size,coloring:{valType:\\\"enumerated\\\",values:[\\\"fill\\\",\\\"lines\\\",\\\"none\\\"],dflt:\\\"fill\\\",editType:\\\"calc\\\"},showlines:a.showlines,showlabels:a.showlabels,labelfont:a.labelfont,labelformat:a.labelformat,operation:a.operation,value:a.value,editType:\\\"calc\\\",impliedEdits:{autocontour:!1}},line:{color:c({},u.color,{}),width:u.width,dash:u.dash,smoothing:c({},u.smoothing,{}),editType:\\\"plot\\\"},transforms:void 0},s(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1}),{colorbar:l})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../contour/attributes\\\":916,\\\"../heatmap/attributes\\\":945,\\\"../scatter/attributes\\\":1043}],939:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\"),i=t(\\\"../../lib\\\").isArray1D,a=t(\\\"../heatmap/convert_column_xyz\\\"),o=t(\\\"../heatmap/clean_2d_array\\\"),s=t(\\\"../heatmap/max_row_length\\\"),l=t(\\\"../heatmap/interp2d\\\"),c=t(\\\"../heatmap/find_empties\\\"),u=t(\\\"../heatmap/make_bound_array\\\"),f=t(\\\"./defaults\\\"),h=t(\\\"../carpet/lookup_carpetid\\\"),p=t(\\\"../contour/set_contours\\\");e.exports=function(t,e){var r=e._carpetTrace=h(t,e);if(r&&r.visible&&\\\"legendonly\\\"!==r.visible){if(!e.a||!e.b){var d=t.data[r.index],g=t.data[e.index];g.a||(g.a=d.a),g.b||(g.b=d.b),f(g,e,e._defaultColor,t._fullLayout)}var v=function(t,e){var r,f,h,p,d,g,v,m=e._carpetTrace,y=m.aaxis,x=m.baxis;y._minDtick=0,x._minDtick=0,i(e.z)&&a(e,y,x,\\\"a\\\",\\\"b\\\",[\\\"z\\\"]);r=e._a=e._a||e.a,p=e._b=e._b||e.b,r=r?y.makeCalcdata(e,\\\"_a\\\"):[],p=p?x.makeCalcdata(e,\\\"_b\\\"):[],f=e.a0||0,h=e.da||1,d=e.b0||0,g=e.db||1,v=e._z=o(e._z||e.z,e.transpose),e._emptypoints=c(v),l(v,e._emptypoints);var b=s(v),_=\\\"scaled\\\"===e.xtype?\\\"\\\":r,w=u(e,_,f,h,b,y),k=\\\"scaled\\\"===e.ytype?\\\"\\\":p,M=u(e,k,d,g,v.length,x),A={a:w,b:M,z:v};\\\"levels\\\"===e.contours.type&&\\\"none\\\"!==e.contours.coloring&&n(e,v,\\\"\\\",\\\"z\\\");return[A]}(0,e);return p(e),v}}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../lib\\\":696,\\\"../carpet/lookup_carpetid\\\":894,\\\"../contour/set_contours\\\":935,\\\"../heatmap/clean_2d_array\\\":947,\\\"../heatmap/convert_column_xyz\\\":949,\\\"../heatmap/find_empties\\\":951,\\\"../heatmap/interp2d\\\":954,\\\"../heatmap/make_bound_array\\\":955,\\\"../heatmap/max_row_length\\\":956,\\\"./defaults\\\":940}],940:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../heatmap/xyz_defaults\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"../contour/constraint_defaults\\\"),s=t(\\\"../contour/contours_defaults\\\"),l=t(\\\"../contour/style_defaults\\\");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,a,r,i)}if(u(\\\"carpet\\\"),t.a&&t.b){if(!i(t,e,u,c,\\\"a\\\",\\\"b\\\"))return void(e.visible=!1);u(\\\"text\\\"),\\\"constraint\\\"===u(\\\"contours.type\\\")?o(t,e,u,c,r,{hasHover:!1}):(s(t,e,u,function(r){return n.coerce2(t,e,a,r)}),l(t,e,u,c,{hasHover:!1}))}else e._defaultColor=r,e._length=null}},{\\\"../../lib\\\":696,\\\"../contour/constraint_defaults\\\":921,\\\"../contour/contours_defaults\\\":923,\\\"../contour/style_defaults\\\":937,\\\"../heatmap/xyz_defaults\\\":960,\\\"./attributes\\\":938}],941:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../contour/colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"../contour/style\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"contourcarpet\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"carpet\\\",\\\"contour\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"hasLines\\\",\\\"carpetDependent\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../contour/colorbar\\\":919,\\\"../contour/style\\\":936,\\\"./attributes\\\":938,\\\"./calc\\\":939,\\\"./defaults\\\":940,\\\"./plot\\\":944}],942:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/drawing\\\"),i=t(\\\"../carpet/axis_aligned_line\\\"),a=t(\\\"../../lib\\\");e.exports=function(t,e,r,o,s,l,c,u){var f,h,p,d,g,v,m,y=\\\"\\\",x=e.edgepaths.map(function(t,e){return e}),b=!0,_=1e-4*Math.abs(r[0][0]-r[2][0]),w=1e-4*Math.abs(r[0][1]-r[2][1]);function k(t){return Math.abs(t[1]-r[0][1])<w}function M(t){return Math.abs(t[1]-r[2][1])<w}function A(t){return Math.abs(t[0]-r[0][0])<_}function T(t){return Math.abs(t[0]-r[2][0])<_}function S(t,e){var r,n,a,o,f=\\\"\\\";for(k(t)&&!T(t)||M(t)&&!A(t)?(o=s.aaxis,a=i(s,l,[t[0],e[0]],.5*(t[1]+e[1]))):(o=s.baxis,a=i(s,l,.5*(t[0]+e[0]),[t[1],e[1]])),r=1;r<a.length;r++)for(f+=o.smoothing?\\\"C\\\":\\\"L\\\",n=0;n<a[r].length;n++){var h=a[r][n];f+=[c.c2p(h[0]),u.c2p(h[1])]+\\\" \\\"}return f}for(f=0,h=null;x.length;){var E=e.edgepaths[f][0];for(h&&(y+=S(h,E)),m=n.smoothopen(e.edgepaths[f].map(o),e.smoothing),y+=b?m:m.replace(/^M/,\\\"L\\\"),x.splice(x.indexOf(f),1),h=e.edgepaths[f][e.edgepaths[f].length-1],g=-1,d=0;d<4;d++){if(!h){a.log(\\\"Missing end?\\\",f,e);break}for(k(h)&&!T(h)?p=r[1]:A(h)?p=r[0]:M(h)?p=r[3]:T(h)&&(p=r[2]),v=0;v<e.edgepaths.length;v++){var C=e.edgepaths[v][0];Math.abs(h[0]-p[0])<_?Math.abs(h[0]-C[0])<_&&(C[1]-h[1])*(p[1]-C[1])>=0&&(p=C,g=v):Math.abs(h[1]-p[1])<w?Math.abs(h[1]-C[1])<w&&(C[0]-h[0])*(p[0]-C[0])>=0&&(p=C,g=v):a.log(\\\"endpt to newendpt is not vert. or horz.\\\",h,p,C)}if(g>=0)break;y+=S(h,p),h=p}if(g===e.edgepaths.length){a.log(\\\"unclosed perimeter path\\\");break}f=g,(b=-1===x.indexOf(f))&&(f=x[0],y+=S(h,p)+\\\"Z\\\",h=null)}for(f=0;f<e.paths.length;f++)y+=n.smoothclosed(e.paths[f].map(o),e.smoothing);return y}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../carpet/axis_aligned_line\\\":878}],943:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n,i,a,o,s,l,c,u;for(r=0;r<t.length;r++){for(o=(a=t[r]).pedgepaths=[],s=a.ppaths=[],n=0;n<a.edgepaths.length;n++){for(u=a.edgepaths[n],l=[],i=0;i<u.length;i++)l[i]=e(u[i]);o.push(l)}for(n=0;n<a.paths.length;n++){for(u=a.paths[n],c=[],i=0;i<u.length;i++)c[i]=e(u[i]);s.push(c)}}}},{}],944:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../carpet/map_1d_array\\\"),a=t(\\\"../carpet/makepath\\\"),o=t(\\\"../../components/drawing\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../contour/make_crossings\\\"),c=t(\\\"../contour/find_all_paths\\\"),u=t(\\\"../contour/plot\\\"),f=t(\\\"../contour/constants\\\"),h=t(\\\"../contour/convert_to_constraints\\\"),p=t(\\\"./join_all_paths\\\"),d=t(\\\"../contour/empty_pathinfo\\\"),g=t(\\\"./map_pathinfo\\\"),v=t(\\\"../carpet/lookup_carpetid\\\"),m=t(\\\"../contour/close_boundaries\\\");function y(t,e,r){var n=t.getPointAtLength(e),i=t.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function x(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]}function b(t,e){var r=Math.abs(t[0]*e[0]+t[1]*e[1]);return Math.sqrt(1-r*r)/r}e.exports=function(t,e,r,_){var w=e.xaxis,k=e.yaxis;s.makeTraceGroups(_,r,\\\"contour\\\").each(function(r){var _=n.select(this),M=r[0],A=M.trace,T=A._carpetTrace=v(t,A),S=t.calcdata[T.index][0];if(T.visible&&\\\"legendonly\\\"!==T.visible){var E=M.a,C=M.b,L=A.contours,z=d(L,e,M),O=\\\"constraint\\\"===L.type,I=L._operation,P=O?\\\"=\\\"===I?\\\"lines\\\":\\\"fill\\\":L.coloring,D=[[E[0],C[C.length-1]],[E[E.length-1],C[C.length-1]],[E[E.length-1],C[0]],[E[0],C[0]]];l(z);var R=1e-8*(E[E.length-1]-E[0]),B=1e-8*(C[C.length-1]-C[0]);c(z,R,B);var F,N,j,V,U=z;\\\"constraint\\\"===L.type&&(U=h(z,I),m(U,I,D,A)),g(z,G);var q=[];for(V=S.clipsegments.length-1;V>=0;V--)F=S.clipsegments[V],N=i([],F.x,w.c2p),j=i([],F.y,k.c2p),N.reverse(),j.reverse(),q.push(a(N,j,F.bicubic));var H=\\\"M\\\"+q.join(\\\"L\\\")+\\\"Z\\\";!function(t,e,r,n,o,l){var c,u,f,h,p=s.ensureSingle(t,\\\"g\\\",\\\"contourbg\\\").selectAll(\\\"path\\\").data(\\\"fill\\\"!==l||o?[]:[0]);p.enter().append(\\\"path\\\"),p.exit().remove();var d=[];for(h=0;h<e.length;h++)c=e[h],u=i([],c.x,r.c2p),f=i([],c.y,n.c2p),d.push(a(u,f,c.bicubic));p.attr(\\\"d\\\",\\\"M\\\"+d.join(\\\"L\\\")+\\\"Z\\\").style(\\\"stroke\\\",\\\"none\\\")}(_,S.clipsegments,w,k,O,P),function(t,e,r,i,a,o,l,c,u,f,h){var d=s.ensureSingle(e,\\\"g\\\",\\\"contourfill\\\").selectAll(\\\"path\\\").data(\\\"fill\\\"===f?a:[]);d.enter().append(\\\"path\\\"),d.exit().remove(),d.each(function(e){var a=p(t,e,o,l,c,u,r,i);e.prefixBoundary&&(a=h+a),a?n.select(this).attr(\\\"d\\\",a).style(\\\"stroke\\\",\\\"none\\\"):n.select(this).remove()})}(A,_,w,k,U,D,G,T,S,P,H),function(t,e,r,i,a,l,c){var h=s.ensureSingle(t,\\\"g\\\",\\\"contourlines\\\"),p=!1!==a.showlines,d=a.showlabels,g=p&&d,v=u.createLines(h,p||d,e),m=u.createLineClip(h,g,r._fullLayout._defs,i.trace.uid),_=t.selectAll(\\\"g.contourlabels\\\").data(d?[0]:[]);if(_.exit().remove(),_.enter().append(\\\"g\\\").classed(\\\"contourlabels\\\",!0),d){var w=l.xaxis,k=l.yaxis,M=w._length,A=k._length,T=[[[0,0],[M,0],[M,A],[0,A]]],S=[];s.clearLocationCache();var E=u.labelFormatter(a,i.t.cb,r._fullLayout),C=o.tester.append(\\\"text\\\").attr(\\\"data-notex\\\",1).call(o.font,a.labelfont),L={left:0,right:M,center:M/2,top:0,bottom:A,middle:A/2},z=Math.sqrt(M*M+A*A),O=f.LABELDISTANCE*z/Math.max(1,e.length/f.LABELINCREASE);v.each(function(t){var e=u.calcTextOpts(t.level,E,C,r);n.select(this).selectAll(\\\"path\\\").each(function(r){var n=s.getVisibleSegment(this,L,e.height/2);if(n&&(function(t,e,r,n,i,a){for(var o,s=0;s<r.pedgepaths.length;s++)e===r.pedgepaths[s]&&(o=r.edgepaths[s]);if(!o)return;var l=i.a[0],c=i.a[i.a.length-1],u=i.b[0],f=i.b[i.b.length-1];function h(t,e){var r,n=0;return(Math.abs(t[0]-l)<.1||Math.abs(t[0]-c)<.1)&&(r=x(i.dxydb_rough(t[0],t[1],.1)),n=Math.max(n,a*b(e,r)/2)),(Math.abs(t[1]-u)<.1||Math.abs(t[1]-f)<.1)&&(r=x(i.dxyda_rough(t[0],t[1],.1)),n=Math.max(n,a*b(e,r)/2)),n}var p=y(t,0,1),d=y(t,n.total,n.total-1),g=h(o[0],p),v=n.total-h(o[o.length-1],d);n.min<g&&(n.min=g);n.max>v&&(n.max=v);n.len=n.max-n.min}(this,r,t,n,c,e.height),!(n.len<(e.width+e.height)*f.LABELMIN)))for(var i=Math.min(Math.ceil(n.len/O),f.LABELMAX),a=0;a<i;a++){var o=u.findBestTextLocation(this,n,e,S,L);if(!o)break;u.addLabelData(o,e,S,T)}})}),C.remove(),u.drawLabels(_,S,r,m,g?T:null)}d&&!p&&v.remove()}(_,z,t,M,L,e,T),o.setClipUrl(_,T._clipPathId)}function G(t){var e=T.ab2xy(t[0],t[1],!0);return[w.c2p(e[0]),k.c2p(e[1])]}})}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../carpet/lookup_carpetid\\\":894,\\\"../carpet/makepath\\\":895,\\\"../carpet/map_1d_array\\\":896,\\\"../contour/close_boundaries\\\":918,\\\"../contour/constants\\\":920,\\\"../contour/convert_to_constraints\\\":924,\\\"../contour/empty_pathinfo\\\":926,\\\"../contour/find_all_paths\\\":928,\\\"../contour/make_crossings\\\":933,\\\"../contour/plot\\\":934,\\\"./join_all_paths\\\":942,\\\"./map_pathinfo\\\":943,d3:148}],945:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../lib/extend\\\").extendFlat;e.exports=o({z:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},x:o({},n.x,{impliedEdits:{xtype:\\\"array\\\"}}),x0:o({},n.x0,{impliedEdits:{xtype:\\\"scaled\\\"}}),dx:o({},n.dx,{impliedEdits:{xtype:\\\"scaled\\\"}}),y:o({},n.y,{impliedEdits:{ytype:\\\"array\\\"}}),y0:o({},n.y0,{impliedEdits:{ytype:\\\"scaled\\\"}}),dy:o({},n.dy,{impliedEdits:{ytype:\\\"scaled\\\"}}),text:{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\\\"},connectgaps:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},xgap:{valType:\\\"number\\\",dflt:0,min:0,editType:\\\"plot\\\"},ygap:{valType:\\\"number\\\",dflt:0,min:0,editType:\\\"plot\\\"},zhoverformat:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"none\\\"},transforms:void 0},i(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1}),{colorbar:a})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../scatter/attributes\\\":1043}],946:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../histogram2d/calc\\\"),s=t(\\\"../../components/colorscale/calc\\\"),l=t(\\\"./convert_column_xyz\\\"),c=t(\\\"./max_row_length\\\"),u=t(\\\"./clean_2d_array\\\"),f=t(\\\"./interp2d\\\"),h=t(\\\"./find_empties\\\"),p=t(\\\"./make_bound_array\\\");e.exports=function(t,e){var r,d,g,v,m,y,x,b,_,w=a.getFromId(t,e.xaxis||\\\"x\\\"),k=a.getFromId(t,e.yaxis||\\\"y\\\"),M=n.traceIs(e,\\\"contour\\\"),A=n.traceIs(e,\\\"histogram\\\"),T=n.traceIs(e,\\\"gl2d\\\"),S=M?\\\"best\\\":e.zsmooth;if(w._minDtick=0,k._minDtick=0,A)r=(_=o(t,e)).x,d=_.x0,g=_.dx,v=_.y,m=_.y0,y=_.dy,x=_.z;else{var E=e.z;i.isArray1D(E)?(l(e,w,k,\\\"x\\\",\\\"y\\\",[\\\"z\\\"]),r=e._x,v=e._y,E=e._z):(r=e.x?w.makeCalcdata(e,\\\"x\\\"):[],v=e.y?k.makeCalcdata(e,\\\"y\\\"):[]),d=e.x0||0,g=e.dx||1,m=e.y0||0,y=e.dy||1,x=u(E,e.transpose),(M||e.connectgaps)&&(e._emptypoints=h(x),f(x,e._emptypoints))}function C(t){S=e._input.zsmooth=e.zsmooth=!1,i.warn('cannot use zsmooth: \\\"fast\\\": '+t)}if(\\\"fast\\\"===S)if(\\\"log\\\"===w.type||\\\"log\\\"===k.type)C(\\\"log axis found\\\");else if(!A){if(r.length){var L=(r[r.length-1]-r[0])/(r.length-1),z=Math.abs(L/100);for(b=0;b<r.length-1;b++)if(Math.abs(r[b+1]-r[b]-L)>z){C(\\\"x scale is not linear\\\");break}}if(v.length&&\\\"fast\\\"===S){var O=(v[v.length-1]-v[0])/(v.length-1),I=Math.abs(O/100);for(b=0;b<v.length-1;b++)if(Math.abs(v[b+1]-v[b]-O)>I){C(\\\"y scale is not linear\\\");break}}}var P=c(x),D=\\\"scaled\\\"===e.xtype?\\\"\\\":r,R=p(e,D,d,g,P,w),B=\\\"scaled\\\"===e.ytype?\\\"\\\":v,F=p(e,B,m,y,x.length,k);T||(e._extremes[w._id]=a.findExtremes(w,R),e._extremes[k._id]=a.findExtremes(k,F));var N={x:R,y:F,z:x,text:e._text||e.text};if(D&&D.length===R.length-1&&(N.xCenter=D),B&&B.length===F.length-1&&(N.yCenter=B),A&&(N.xRanges=_.xRanges,N.yRanges=_.yRanges,N.pts=_.pts),M&&\\\"constraint\\\"===e.contours.type||s(e,x,\\\"\\\",\\\"z\\\"),M&&e.contours&&\\\"heatmap\\\"===e.contours.coloring){var j={type:\\\"contour\\\"===e.type?\\\"heatmap\\\":\\\"histogram2d\\\",xcalendar:e.xcalendar,ycalendar:e.ycalendar};N.xfill=p(j,D,d,g,P,w),N.yfill=p(j,B,m,y,x.length,k)}return[N]}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../../registry\\\":827,\\\"../histogram2d/calc\\\":977,\\\"./clean_2d_array\\\":947,\\\"./convert_column_xyz\\\":949,\\\"./find_empties\\\":951,\\\"./interp2d\\\":954,\\\"./make_bound_array\\\":955,\\\"./max_row_length\\\":956}],947:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\");e.exports=function(t,e){var r,i,a,o,s,l;function c(t){if(n(t))return+t}if(e){for(r=0,s=0;s<t.length;s++)r=Math.max(r,t[s].length);if(0===r)return!1;a=function(t){return t.length},o=function(t,e,r){return t[r][e]}}else r=t.length,a=function(t,e){return t[e].length},o=function(t,e,r){return t[e][r]};var u=new Array(r);for(s=0;s<r;s++)for(i=a(t,s),u[s]=new Array(i),l=0;l<i;l++)u[s][l]=c(o(t,s,l));return u}},{\\\"fast-isnumeric\\\":214}],948:[function(t,e,r){\\\"use strict\\\";e.exports={min:\\\"zmin\\\",max:\\\"zmax\\\"}},{}],949:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e,r,a,o,s){var l,c,u,f=t._length,h=t[a].slice(0,f),p=t[o].slice(0,f),d=t.text,g=void 0!==d&&n.isArray1D(d),v=t[a+\\\"calendar\\\"],m=t[o+\\\"calendar\\\"];for(l=0;l<f;l++)h[l]=e.d2c(h[l],0,v),p[l]=r.d2c(p[l],0,m);var y,x,b,_=n.distinctVals(h),w=_.vals,k=n.distinctVals(p),M=k.vals,A=[];for(l=0;l<s.length;l++)A[l]=n.init2dArray(M.length,w.length);for(g&&(b=n.init2dArray(M.length,w.length)),l=0;l<f;l++)if(h[l]!==i&&p[l]!==i){for(y=n.findBin(h[l]+_.minDiff/2,w),x=n.findBin(p[l]+k.minDiff/2,M),c=0;c<s.length;c++)u=t[s[c]],A[c][x][y]=u[l];g&&(b[x][y]=d[l])}for(t[\\\"_\\\"+a]=w,t[\\\"_\\\"+o]=M,c=0;c<s.length;c++)t[\\\"_\\\"+s[c]]=A[c];g&&(t._text=b)}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696}],950:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./xyz_defaults\\\"),a=t(\\\"./style_defaults\\\"),o=t(\\\"../../components/colorscale/defaults\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,s,r,i)}i(t,e,c,l)?(c(\\\"text\\\"),a(t,e,c,l),c(\\\"connectgaps\\\",n.isArray1D(e.z)&&!1!==e.zsmooth),o(t,e,l,c,{prefix:\\\"\\\",cLetter:\\\"z\\\"})):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"./attributes\\\":945,\\\"./style_defaults\\\":959,\\\"./xyz_defaults\\\":960}],951:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./max_row_length\\\");e.exports=function(t){var e,r,i,a,o,s,l,c,u=[],f={},h=[],p=t[0],d=[],g=[0,0,0],v=n(t);for(r=0;r<t.length;r++)for(e=d,d=p,p=t[r+1]||[],i=0;i<v;i++)void 0===d[i]&&((s=(void 0!==d[i-1]?1:0)+(void 0!==d[i+1]?1:0)+(void 0!==e[i]?1:0)+(void 0!==p[i]?1:0))?(0===r&&s++,0===i&&s++,r===t.length-1&&s++,i===d.length-1&&s++,s<4&&(f[[r,i]]=[r,i,s]),u.push([r,i,s])):h.push([r,i]));for(;h.length;){for(l={},c=!1,o=h.length-1;o>=0;o--)(s=((f[[(r=(a=h[o])[0])-1,i=a[1]]]||g)[2]+(f[[r+1,i]]||g)[2]+(f[[r,i-1]]||g)[2]+(f[[r,i+1]]||g)[2])/20)&&(l[a]=[r,i,s],h.splice(o,1),c=!0);if(!c)throw\\\"findEmpties iterated with no new neighbors\\\";for(a in l)f[a]=l[a],u.push(l[a])}return u.sort(function(t,e){return e[2]-t[2]})}},{\\\"./max_row_length\\\":956}],952:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\");e.exports=function(t,e,r,o,s,l){var c,u,f,h,p=t.cd[0],d=p.trace,g=t.xa,v=t.ya,m=p.x,y=p.y,x=p.z,b=p.xCenter,_=p.yCenter,w=p.zmask,k=[d.zmin,d.zmax],M=d.zhoverformat,A=m,T=y;if(!1!==t.index){try{f=Math.round(t.index[1]),h=Math.round(t.index[0])}catch(e){return void i.error(\\\"Error hovering on heatmap, pointNumber must be [row,col], found:\\\",t.index)}if(f<0||f>=x[0].length||h<0||h>x.length)return}else{if(n.inbox(e-m[0],e-m[m.length-1],0)>0||n.inbox(r-y[0],r-y[y.length-1],0)>0)return;if(l){var S;for(A=[2*m[0]-m[1]],S=1;S<m.length;S++)A.push((m[S]+m[S-1])/2);for(A.push([2*m[m.length-1]-m[m.length-2]]),T=[2*y[0]-y[1]],S=1;S<y.length;S++)T.push((y[S]+y[S-1])/2);T.push([2*y[y.length-1]-y[y.length-2]])}f=Math.max(0,Math.min(A.length-2,i.findBin(e,A))),h=Math.max(0,Math.min(T.length-2,i.findBin(r,T)))}var E=g.c2p(m[f]),C=g.c2p(m[f+1]),L=v.c2p(y[h]),z=v.c2p(y[h+1]);l?(C=E,c=m[f],z=L,u=y[h]):(c=b?b[f]:(m[f]+m[f+1])/2,u=_?_[h]:(y[h]+y[h+1])/2,d.zsmooth&&(E=C=g.c2p(c),L=z=v.c2p(u)));var O,I,P=x[h][f];w&&!w[h][f]&&(P=void 0),Array.isArray(p.text)&&Array.isArray(p.text[h])&&(O=p.text[h][f]);var D={type:\\\"linear\\\",range:k,hoverformat:M,_separators:g._separators,_numFormat:g._numFormat};return I=a.tickText(D,P,\\\"hover\\\").text,[i.extendFlat(t,{index:[h,f],distance:t.maxHoverDistance,spikeDistance:t.maxSpikeDistance,x0:E,x1:C,y0:L,y1:z,xLabelVal:c,yLabelVal:u,zLabelVal:P,zLabel:I,text:O})]}},{\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],953:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.colorbar=t(\\\"./colorbar\\\"),n.style=t(\\\"./style\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"heatmap\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"2dMap\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":945,\\\"./calc\\\":946,\\\"./colorbar\\\":948,\\\"./defaults\\\":950,\\\"./hover\\\":952,\\\"./plot\\\":957,\\\"./style\\\":958}],954:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=[[-1,0],[1,0],[0,-1],[0,1]];function a(t){return.5-.25*Math.min(1,.5*t)}function o(t,e,r){var n,a,o,s,l,c,u,f,h,p,d,g,v,m=0;for(s=0;s<e.length;s++){for(a=(n=e[s])[0],o=n[1],d=t[a][o],p=0,h=0,l=0;l<4;l++)(u=t[a+(c=i[l])[0]])&&void 0!==(f=u[o+c[1]])&&(0===p?g=v=f:(g=Math.min(g,f),v=Math.max(v,f)),h++,p+=f);if(0===h)throw\\\"iterateInterp2d order is wrong: no defined neighbors\\\";t[a][o]=p/h,void 0===d?h<4&&(m=1):(t[a][o]=(1+r)*t[a][o]-r*d,v>g&&(m=Math.max(m,Math.abs(t[a][o]-d)/(v-g))))}return m}e.exports=function(t,e){var r,i=1;for(o(t,e),r=0;r<e.length&&!(e[r][2]<4);r++);for(e=e.slice(r),r=0;r<100&&i>.01;r++)i=o(t,e,a(i));return i>.01&&n.log(\\\"interp2d didn't converge quickly\\\",i),t}},{\\\"../../lib\\\":696}],955:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r,a,o,s){var l,c,u,f=[],h=n.traceIs(t,\\\"contour\\\"),p=n.traceIs(t,\\\"histogram\\\"),d=n.traceIs(t,\\\"gl2d\\\");if(i(e)&&e.length>1&&!p&&\\\"category\\\"!==s.type){var g=e.length;if(!(g<=o))return h?e.slice(0,o):e.slice(0,o+1);if(h||d)f=e.slice(0,o);else if(1===o)f=[e[0]-.5,e[0]+.5];else{for(f=[1.5*e[0]-.5*e[1]],u=1;u<g;u++)f.push(.5*(e[u-1]+e[u]));f.push(1.5*e[g-1]-.5*e[g-2])}if(g<o){var v=f[f.length-1],m=v-f[f.length-2];for(u=g;u<o;u++)v+=m,f.push(v)}}else{c=a||1;var y=t[s._id.charAt(0)+\\\"calendar\\\"];for(l=p||\\\"category\\\"===s.type?s.r2c(r,0,y)||0:i(e)&&1===e.length?e[0]:void 0===r?0:s.d2c(r,0,y),u=h||d?0:-.5;u<o;u++)f.push(l+c*u)}return f}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827}],956:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=0,r=0;r<t.length;r++)e=Math.max(e,t[r].length);return e}},{}],957:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"tinycolor2\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../components/colorscale\\\"),l=t(\\\"../../constants/xmlns_namespaces\\\"),c=t(\\\"./max_row_length\\\");function u(t,e){var r=e.length-2,n=o.constrain(o.findBin(t,e),0,r),i=e[n],a=e[n+1],s=o.constrain(n+(t-i)/(a-i)-.5,0,r),l=Math.round(s),c=Math.abs(s-l);return s&&s!==r&&c?{bin0:l,frac:c,bin1:Math.round(l+c/(s-l))}:{bin0:l,bin1:l,frac:0}}function f(t,e){var r=e.length-1,n=o.constrain(o.findBin(t,e),0,r),i=e[n],a=(t-i)/(e[n+1]-i)||0;return a<=0?{bin0:n,bin1:n,frac:0}:a<.5?{bin0:n,bin1:n+1,frac:a}:{bin0:n+1,bin1:n,frac:1-a}}function h(t,e,r){t[e]=r[0],t[e+1]=r[1],t[e+2]=r[2],t[e+3]=Math.round(255*r[3])}e.exports=function(t,e,r,p){var d=e.xaxis,g=e.yaxis;o.makeTraceGroups(p,r,\\\"hm\\\").each(function(e){var r,p,v,m,y,x,b=n.select(this),_=e[0],w=_.trace,k=_.z,M=_.x,A=_.y,T=_.xCenter,S=_.yCenter,E=a.traceIs(w,\\\"contour\\\"),C=E?\\\"best\\\":w.zsmooth,L=k.length,z=c(k),O=!1,I=!1;for(x=0;void 0===r&&x<M.length-1;)r=d.c2p(M[x]),x++;for(x=M.length-1;void 0===p&&x>0;)p=d.c2p(M[x]),x--;for(p<r&&(v=p,p=r,r=v,O=!0),x=0;void 0===m&&x<A.length-1;)m=g.c2p(A[x]),x++;for(x=A.length-1;void 0===y&&x>0;)y=g.c2p(A[x]),x--;if(y<m&&(v=m,m=y,y=v,I=!0),E&&(T=M,S=A,M=_.xfill,A=_.yfill),\\\"fast\\\"!==C){var P=\\\"best\\\"===C?0:.5;r=Math.max(-P*d._length,r),p=Math.min((1+P)*d._length,p),m=Math.max(-P*g._length,m),y=Math.min((1+P)*g._length,y)}var D=Math.round(p-r),R=Math.round(y-m);if(D<=0||R<=0){b.selectAll(\\\"image\\\").data([]).exit().remove()}else{var B,F;\\\"fast\\\"===C?(B=z,F=L):(B=D,F=R);var N=document.createElement(\\\"canvas\\\");N.width=B,N.height=F;var j,V,U=N.getContext(\\\"2d\\\"),q=s.makeColorScaleFunc(s.extractScale(w.colorscale,w.zmin,w.zmax),{noNumericCheck:!0,returnArray:!0});\\\"fast\\\"===C?(j=O?function(t){return z-1-t}:o.identity,V=I?function(t){return L-1-t}:o.identity):(j=function(t){return o.constrain(Math.round(d.c2p(M[t])-r),0,D)},V=function(t){return o.constrain(Math.round(g.c2p(A[t])-m),0,R)});var H,G,W,Y,X,Z=V(0),$=[Z,Z],J=O?0:1,K=I?0:1,Q=0,tt=0,et=0,rt=0;if(C){var nt,it=0;try{nt=new Uint8Array(D*R*4)}catch(t){nt=new Array(D*R*4)}if(\\\"best\\\"===C){var at,ot,st,lt=T||M,ct=S||A,ut=new Array(lt.length),ft=new Array(ct.length),ht=new Array(D),pt=T?f:u,dt=S?f:u;for(x=0;x<lt.length;x++)ut[x]=Math.round(d.c2p(lt[x])-r);for(x=0;x<ct.length;x++)ft[x]=Math.round(g.c2p(ct[x])-m);for(x=0;x<D;x++)ht[x]=pt(x,ut);for(G=0;G<R;G++)for(ot=k[(at=dt(G,ft)).bin0],st=k[at.bin1],x=0;x<D;x++,it+=4)h(nt,it,X=At(ot,st,ht[x],at))}else for(G=0;G<L;G++)for(Y=k[G],$=V(G),x=0;x<D;x++)X=Mt(Y[x],1),h(nt,it=4*($*D+j(x)),X);var gt=U.createImageData(D,R);try{gt.data.set(nt)}catch(t){var vt=gt.data,mt=vt.length;for(G=0;G<mt;G++)vt[G]=nt[G]}U.putImageData(gt,0,0)}else{var yt=w.xgap,xt=w.ygap,bt=Math.floor(yt/2),_t=Math.floor(xt/2);for(G=0;G<L;G++)if(Y=k[G],$.reverse(),$[K]=V(G+1),$[0]!==$[1]&&void 0!==$[0]&&void 0!==$[1])for(H=[W=j(0),W],x=0;x<z;x++)H.reverse(),H[J]=j(x+1),H[0]!==H[1]&&void 0!==H[0]&&void 0!==H[1]&&(X=Mt(Y[x],(H[1]-H[0])*($[1]-$[0])),U.fillStyle=\\\"rgba(\\\"+X.join(\\\",\\\")+\\\")\\\",U.fillRect(H[0]+bt,$[0]+_t,H[1]-H[0]-yt,$[1]-$[0]-xt))}tt=Math.round(tt/Q),et=Math.round(et/Q),rt=Math.round(rt/Q);var wt=i(\\\"rgb(\\\"+tt+\\\",\\\"+et+\\\",\\\"+rt+\\\")\\\");t._hmpixcount=(t._hmpixcount||0)+Q,t._hmlumcount=(t._hmlumcount||0)+Q*wt.getLuminance();var kt=b.selectAll(\\\"image\\\").data(e);kt.enter().append(\\\"svg:image\\\").attr({xmlns:l.svg,preserveAspectRatio:\\\"none\\\"}),kt.attr({height:R,width:D,x:r,y:m,\\\"xlink:href\\\":N.toDataURL(\\\"image/png\\\")})}function Mt(t,e){if(void 0!==t){var r=q(t);return r[0]=Math.round(r[0]),r[1]=Math.round(r[1]),r[2]=Math.round(r[2]),Q+=e,tt+=r[0]*e,et+=r[1]*e,rt+=r[2]*e,r}return[0,0,0,0]}function At(t,e,r,n){var i=t[r.bin0];if(void 0===i)return Mt(void 0,1);var a,o=t[r.bin1],s=e[r.bin0],l=e[r.bin1],c=o-i||0,u=s-i||0;return a=void 0===o?void 0===l?0:void 0===s?2*(l-i):2*(2*l-s-i)/3:void 0===l?void 0===s?0:2*(2*i-o-s)/3:void 0===s?2*(2*l-o-i)/3:l+i-o-s,Mt(i+r.frac*c+n.frac*(u+r.frac*a))}})}},{\\\"../../components/colorscale\\\":585,\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./max_row_length\\\":956,d3:148,tinycolor2:514}],958:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\");e.exports=function(t){n.select(t).selectAll(\\\".hm image\\\").style(\\\"opacity\\\",function(t){return t.trace.opacity})}},{d3:148}],959:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){!1===r(\\\"zsmooth\\\")&&(r(\\\"xgap\\\"),r(\\\"ygap\\\")),r(\\\"zhoverformat\\\")}},{}],960:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../registry\\\");function o(t,e){var r=e(t);return\\\"scaled\\\"===(r?e(t+\\\"type\\\",\\\"array\\\"):\\\"scaled\\\")&&(e(t+\\\"0\\\"),e(\\\"d\\\"+t)),r}e.exports=function(t,e,r,s,l,c){var u,f,h=r(\\\"z\\\");if(l=l||\\\"x\\\",c=c||\\\"y\\\",void 0===h||!h.length)return 0;if(i.isArray1D(t.z)){if(u=r(l),f=r(c),!(u&&u.length&&f&&f.length))return 0;e._length=Math.min(u.length,f.length,h.length)}else{if(u=o(l,r),f=o(c,r),!function(t){for(var e,r=!0,a=!1,o=!1,s=0;s<t.length;s++){if(e=t[s],!i.isArrayOrTypedArray(e)){r=!1;break}e.length>0&&(a=!0);for(var l=0;l<e.length;l++)if(n(e[l])){o=!0;break}}return r&&a&&o}(h))return 0;r(\\\"transpose\\\"),e._length=null}return a.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[l,c],s),!0}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"fast-isnumeric\\\":214}],961:[function(t,e,r){\\\"use strict\\\";for(var n=t(\\\"../heatmap/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../lib/extend\\\").extendFlat,s=t(\\\"../../plot_api/edit_types\\\").overrideAll,l=[\\\"z\\\",\\\"x\\\",\\\"x0\\\",\\\"dx\\\",\\\"y\\\",\\\"y0\\\",\\\"dy\\\",\\\"text\\\",\\\"transpose\\\",\\\"xtype\\\",\\\"ytype\\\"],c={},u=0;u<l.length;u++){var f=l[u];c[f]=n[f]}o(c,i(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1}),{colorbar:a}),e.exports=s(c,\\\"calc\\\",\\\"nested\\\")},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../heatmap/attributes\\\":945}],962:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-heatmap2d\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../lib/str2rgbarray\\\");function o(t,e){this.scene=t,this.uid=e,this.type=\\\"heatmapgl\\\",this.name=\\\"\\\",this.hoverinfo=\\\"all\\\",this.xData=[],this.yData=[],this.zData=[],this.textLabels=[],this.idToIndex=[],this.bounds=[0,0,0,0],this.options={z:[],x:[],y:[],shape:[0,0],colorLevels:[0],colorValues:[0,0,0,1]},this.heatmap=n(t.glplot,this.options),this.heatmap._trace=this}var s=o.prototype;s.handlePick=function(t){var e=this.options,r=e.shape,n=t.pointId,i=n%r[0],a=Math.floor(n/r[0]),o=n;return{trace:this,dataCoord:t.dataCoord,traceCoord:[e.x[i],e.y[a],e.z[o]],textLabel:this.textLabels[n],name:this.name,pointIndex:[a,i],hoverinfo:this.hoverinfo}},s.update=function(t,e){var r=e[0];this.index=t.index,this.name=t.name,this.hoverinfo=t.hoverinfo;var n=r.z;this.options.z=[].concat.apply([],n);var o=n[0].length,s=n.length;this.options.shape=[o,s],this.options.x=r.x,this.options.y=r.y;var l=function(t){for(var e=t.colorscale,r=t.zmin,n=t.zmax,i=e.length,o=new Array(i),s=new Array(4*i),l=0;l<i;l++){var c=e[l],u=a(c[1]);o[l]=r+c[0]*(n-r);for(var f=0;f<4;f++)s[4*l+f]=u[f]}return{colorLevels:o,colorValues:s}}(t);this.options.colorLevels=l.colorLevels,this.options.colorValues=l.colorValues,this.textLabels=[].concat.apply([],t.text),this.heatmap.update(this.options);var c=this.scene.xaxis,u=this.scene.yaxis;t._extremes[c._id]=i.findExtremes(c,r.x),t._extremes[u._id]=i.findExtremes(u,r.y)},s.dispose=function(){this.heatmap.dispose()},e.exports=function(t,e,r){var n=new o(t,e.uid);return n.update(e,r),n}},{\\\"../../lib/str2rgbarray\\\":719,\\\"../../plots/cartesian/axes\\\":744,\\\"gl-heatmap2d\\\":241}],963:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"../heatmap/defaults\\\"),n.colorbar=t(\\\"../heatmap/colorbar\\\"),n.calc=t(\\\"../heatmap/calc\\\"),n.plot=t(\\\"./convert\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"heatmapgl\\\",n.basePlotModule=t(\\\"../../plots/gl2d\\\"),n.categories=[\\\"gl\\\",\\\"gl2d\\\",\\\"2dMap\\\"],n.meta={},e.exports=n},{\\\"../../plots/gl2d\\\":784,\\\"../heatmap/calc\\\":946,\\\"../heatmap/colorbar\\\":948,\\\"../heatmap/defaults\\\":950,\\\"./attributes\\\":961,\\\"./convert\\\":962}],964:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../bar/attributes\\\"),i=t(\\\"./bin_attributes\\\");e.exports={x:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},y:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},text:n.text,orientation:n.orientation,histfunc:{valType:\\\"enumerated\\\",values:[\\\"count\\\",\\\"sum\\\",\\\"avg\\\",\\\"min\\\",\\\"max\\\"],dflt:\\\"count\\\",editType:\\\"calc\\\"},histnorm:{valType:\\\"enumerated\\\",values:[\\\"\\\",\\\"percent\\\",\\\"probability\\\",\\\"density\\\",\\\"probability density\\\"],dflt:\\\"\\\",editType:\\\"calc\\\"},cumulative:{enabled:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},direction:{valType:\\\"enumerated\\\",values:[\\\"increasing\\\",\\\"decreasing\\\"],dflt:\\\"increasing\\\",editType:\\\"calc\\\"},currentbin:{valType:\\\"enumerated\\\",values:[\\\"include\\\",\\\"exclude\\\",\\\"half\\\"],dflt:\\\"include\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"},nbinsx:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},xbins:i(\\\"x\\\",!0),nbinsy:{valType:\\\"integer\\\",min:0,dflt:0,editType:\\\"calc\\\"},ybins:i(\\\"y\\\",!0),autobinx:{valType:\\\"boolean\\\",dflt:null,editType:\\\"calc\\\"},autobiny:{valType:\\\"boolean\\\",dflt:null,editType:\\\"calc\\\",impliedEdits:{\\\"ybins.start\\\":void 0,\\\"ybins.end\\\":void 0,\\\"ybins.size\\\":void 0}},marker:n.marker,selected:n.selected,unselected:n.unselected,_deprecated:{bardir:n._deprecated.bardir}}},{\\\"../bar/attributes\\\":837,\\\"./bin_attributes\\\":966}],965:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){for(var r=t.length,n=0,i=0;i<r;i++)e[i]?(t[i]/=e[i],n+=t[i]):t[i]=null;return n}},{}],966:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return{start:{valType:\\\"any\\\",editType:\\\"calc\\\"},end:{valType:\\\"any\\\",editType:\\\"calc\\\"},size:{valType:\\\"any\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"}}},{}],967:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\");e.exports={count:function(t,e,r){return r[t]++,1},sum:function(t,e,r,i){var a=i[e];return n(a)?(a=Number(a),r[t]+=a,a):0},avg:function(t,e,r,i,a){var o=i[e];return n(o)&&(o=Number(o),r[t]+=o,a[t]++),0},min:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]>a){var o=a-r[t];return r[t]=a,o}}return 0},max:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]<a){var o=a-r[t];return r[t]=a,o}}return 0}}},{\\\"fast-isnumeric\\\":214}],968:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../constants/numerical\\\"),i=n.ONEAVGYEAR,a=n.ONEAVGMONTH,o=n.ONEDAY,s=n.ONEHOUR,l=n.ONEMIN,c=n.ONESEC,u=t(\\\"../../plots/cartesian/axes\\\").tickIncrement;function f(t,e,r,n){if(t*e<=0)return 1/0;for(var i=Math.abs(e-t),a=\\\"date\\\"===r.type,o=h(i,a),s=0;s<10;s++){var l=h(80*o,a);if(o===l)break;if(!p(l,t,e,a,r,n))break;o=l}return o}function h(t,e){return e&&t>c?t>o?t>1.1*i?i:t>1.1*a?a:o:t>s?s:t>l?l:c:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function p(t,e,r,n,a,s){if(n&&t>o){var l=d(e,a,s),c=d(r,a,s),u=t===i?0:1;return l[u]!==c[u]}return Math.floor(r/t)-Math.floor(e/t)>.1}function d(t,e,r){var n=e.c2d(t,i,r).split(\\\"-\\\");return\\\"\\\"===n[0]&&(n.unshift(),n[0]=\\\"-\\\"+n[0]),n}e.exports=function(t,e,r,n,a){var s,l,c=-1.1*e,h=-.1*e,p=t-h,d=r[0],g=r[1],v=Math.min(f(d+h,d+p,n,a),f(g+h,g+p,n,a)),m=Math.min(f(d+c,d+h,n,a),f(g+c,g+h,n,a));if(v>m&&m<Math.abs(g-d)/4e3?(s=v,l=!1):(s=Math.min(v,m),l=!0),\\\"date\\\"===n.type&&s>o){var y=s===i?1:6,x=s===i?\\\"M12\\\":\\\"M1\\\";return function(e,r){var o=n.c2d(e,i,a),s=o.indexOf(\\\"-\\\",y);s>0&&(o=o.substr(0,s));var c=n.d2c(o,0,a);if(c<e){var f=u(c,x,!1,a);(c+f)/2<e+t&&(c=f)}return r&&l?u(c,x,!0,a):c}}return function(e,r){var n=s*Math.round(e/s);return n+s/10<e&&n+.9*s<e+t&&(n+=s),r&&l&&(n-=s),n}}},{\\\"../../constants/numerical\\\":673,\\\"../../plots/cartesian/axes\\\":744}],969:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../bar/arrays_to_calcdata\\\"),s=t(\\\"./bin_functions\\\"),l=t(\\\"./norm_functions\\\"),c=t(\\\"./average\\\"),u=t(\\\"./bin_label_vals\\\");function f(t,e,r,o,s){var l,c,u,h,p,d,g,v=o+\\\"bins\\\",m=t._fullLayout,y=\\\"overlay\\\"===m.barmode,x=\\\"date\\\"===r.type?function(t){return t||0===t?i.cleanDate(t,null,r.calendar):null}:function(t){return n(t)?Number(t):null};function b(t,e,r){e[t+\\\"Found\\\"]?(e[t]=x(e[t]),null===e[t]&&(e[t]=r[t])):(d[t]=e[t]=r[t],i.nestedProperty(c[0],v+\\\".\\\"+t).set(r[t]))}var _=m._histogramBinOpts[e._groupName];if(e._autoBinFinished)delete e._autoBinFinished;else{c=_.traces;var w=_.sizeFound,k=[];d=c[0]._autoBin={};var M=!0;for(l=0;l<c.length;l++)p=(u=c[l])._pos0=r.makeCalcdata(u,o),k=i.concat(k,p),delete u._autoBinFinished,!0===e.visible&&(M?M=!1:(delete u._autoBin,u._autoBinFinished=1));h=c[0][o+\\\"calendar\\\"];var A=a.autoBin(k,r,_.nbins,!1,h,w&&_.size);if(y&&0===A._dataSpan&&\\\"category\\\"!==r.type){if(s)return[A,p,!0];A=function(t,e,r,n,a){var o,s,l=function(t,e){for(var r=e.xaxis,n=e.yaxis,i=e.orientation,a=[],o=t._fullData,s=0;s<o.length;s++){var l=o[s];\\\"histogram\\\"===l.type&&!0===l.visible&&l.orientation===i&&l.xaxis===r&&l.yaxis===n&&a.push(l)}return a}(t,e),c=!1,u=1/0,h=[e];for(o=0;o<l.length;o++)if((s=l[o])===e)c=!0;else if(c){var p=f(t,s,r,n,!0),d=p[0],g=p[2];s._autoBinFinished=1,s._pos0=p[1],g?h.push(s):u=Math.min(u,d.size)}else u=Math.min(u,s[a].size);var v=new Array(h.length);for(o=0;o<h.length;o++)for(var m=h[o]._pos0,y=0;y<m.length;y++)if(void 0!==m[y]){v[o]=m[y];break}isFinite(u)||(u=i.distinctVals(v).minDiff);for(o=0;o<h.length;o++){var x=(s=h[o])[n+\\\"calendar\\\"];s._input[a]=s[a]={start:r.c2r(v[o]-u/2,0,x),end:r.c2r(v[o]+u/2,0,x),size:u}}return e[a]}(t,e,r,o,v)}(g=u.cumulative).enabled&&\\\"include\\\"!==g.currentbin&&(\\\"decreasing\\\"===g.direction?A.start=r.c2r(a.tickIncrement(r.r2c(A.start,0,h),A.size,!0,h)):A.end=r.c2r(a.tickIncrement(r.r2c(A.end,0,h),A.size,!1,h))),_.size=A.size,w||(d.size=A.size,i.nestedProperty(c[0],v+\\\".size\\\").set(A.size)),b(\\\"start\\\",_,A),b(\\\"end\\\",_,A)}p=e._pos0,delete e._pos0;var T=e._input[v]||{},S=i.extendFlat({},_),E=_.start,C=r.r2l(T.start),L=void 0!==C;if((_.startFound||L)&&C!==r.r2l(E)){var z=L?C:i.aggNums(Math.min,null,p),O={type:\\\"category\\\"===r.type?\\\"linear\\\":r.type,r2l:r.r2l,dtick:_.size,tick0:E,calendar:h,range:[z,a.tickIncrement(z,_.size,!1,h)].map(r.l2r)},I=a.tickFirst(O);I>r.r2l(z)&&(I=a.tickIncrement(I,_.size,!0,h)),S.start=r.l2r(I),L||i.nestedProperty(e,v+\\\".start\\\").set(S.start)}var P=_.end,D=r.r2l(T.end),R=void 0!==D;if((_.endFound||R)&&D!==r.r2l(P)){var B=R?D:i.aggNums(Math.max,null,p);S.end=r.l2r(B),R||i.nestedProperty(e,v+\\\".start\\\").set(S.end)}var F=\\\"autobin\\\"+o;return!1===e._input[F]&&(e._input[v]=i.extendFlat({},e[v]||{}),delete e._input[F],delete e[F]),[S,p]}e.exports=function(t,e){if(!0===e.visible){var r,h,p,d,g=[],v=[],m=a.getFromId(t,\\\"h\\\"===e.orientation?e.yaxis||\\\"y\\\":e.xaxis||\\\"x\\\"),y=\\\"h\\\"===e.orientation?\\\"y\\\":\\\"x\\\",x={x:\\\"y\\\",y:\\\"x\\\"}[y],b=e[y+\\\"calendar\\\"],_=e.cumulative,w=f(t,e,m,y),k=w[0],M=w[1],A=\\\"string\\\"==typeof k.size,T=[],S=A?T:k,E=[],C=[],L=[],z=0,O=e.histnorm,I=e.histfunc,P=-1!==O.indexOf(\\\"density\\\");_.enabled&&P&&(O=O.replace(/ ?density$/,\\\"\\\"),P=!1);var D,R=\\\"max\\\"===I||\\\"min\\\"===I?null:0,B=s.count,F=l[O],N=!1,j=function(t){return m.r2c(t,0,b)};for(i.isArrayOrTypedArray(e[x])&&\\\"count\\\"!==I&&(D=e[x],N=\\\"avg\\\"===I,B=s[I]),r=j(k.start),p=j(k.end)+(r-a.tickIncrement(r,k.size,!1,b))/1e6;r<p&&g.length<1e6&&(h=a.tickIncrement(r,k.size,!1,b),g.push((r+h)/2),v.push(R),L.push([]),T.push(r),P&&E.push(1/(h-r)),N&&C.push(0),!(h<=r));)r=h;T.push(r),A||\\\"date\\\"!==m.type||(S={start:j(S.start),end:j(S.end),size:S.size});var V,U=v.length,q=!0,H=1/0,G=1/0,W={};for(r=0;r<M.length;r++){var Y=M[r];(d=i.findBin(Y,S))>=0&&d<U&&(z+=B(d,r,v,D,C),q&&L[d].length&&Y!==M[L[d][0]]&&(q=!1),L[d].push(r),W[r]=d,H=Math.min(H,Y-T[d]),G=Math.min(G,T[d+1]-Y))}q||(V=u(H,G,T,m,b)),N&&(z=c(v,C)),F&&F(v,z,E),_.enabled&&function(t,e,r){var n,i,a;function o(e){a=t[e],t[e]/=2}function s(e){i=t[e],t[e]=a+i/2,a+=i}if(\\\"half\\\"===r)if(\\\"increasing\\\"===e)for(o(0),n=1;n<t.length;n++)s(n);else for(o(t.length-1),n=t.length-2;n>=0;n--)s(n);else if(\\\"increasing\\\"===e){for(n=1;n<t.length;n++)t[n]+=t[n-1];\\\"exclude\\\"===r&&(t.unshift(0),t.pop())}else{for(n=t.length-2;n>=0;n--)t[n]+=t[n+1];\\\"exclude\\\"===r&&(t.push(0),t.shift())}}(v,_.direction,_.currentbin);var X=Math.min(g.length,v.length),Z=[],$=0,J=X-1;for(r=0;r<X;r++)if(v[r]){$=r;break}for(r=X-1;r>=$;r--)if(v[r]){J=r;break}for(r=$;r<=J;r++)if(n(g[r])&&n(v[r])){var K={p:g[r],s:v[r],b:0};_.enabled||(K.pts=L[r],q?K.ph0=K.ph1=L[r].length?M[L[r][0]]:g[r]:(K.ph0=V(T[r]),K.ph1=V(T[r+1],!0))),Z.push(K)}return 1===Z.length&&(Z[0].width1=a.tickIncrement(Z[0].p,k.size,!1,b)-Z[0].p),o(Z,e),i.isArrayOrTypedArray(e.selectedpoints)&&i.tagSelected(Z,e,W),Z}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../bar/arrays_to_calcdata\\\":836,\\\"./average\\\":965,\\\"./bin_functions\\\":967,\\\"./bin_label_vals\\\":968,\\\"./norm_functions\\\":975,\\\"fast-isnumeric\\\":214}],970:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=n.nestedProperty,a=t(\\\"./attributes\\\"),o={x:[{aStr:\\\"xbins.start\\\",name:\\\"start\\\"},{aStr:\\\"xbins.end\\\",name:\\\"end\\\"},{aStr:\\\"xbins.size\\\",name:\\\"size\\\"},{aStr:\\\"nbinsx\\\",name:\\\"nbins\\\"}],y:[{aStr:\\\"ybins.start\\\",name:\\\"start\\\"},{aStr:\\\"ybins.end\\\",name:\\\"end\\\"},{aStr:\\\"ybins.size\\\",name:\\\"size\\\"},{aStr:\\\"nbinsy\\\",name:\\\"nbins\\\"}]};e.exports=function(t,e){var r,s,l,c,u,f,h,p=e._histogramBinOpts={},d=\\\"overlay\\\"===e.barmode;function g(t){return n.coerce(l._input,l,a,t)}for(r=0;r<t.length;r++)\\\"histogram\\\"===(l=t[r]).type&&(delete l._autoBinFinished,u=\\\"v\\\"===l.orientation?\\\"x\\\":\\\"y\\\",f=d?l.uid:l.xaxis+l.yaxis+u,l._groupName=f,(h=p[f])?h.traces.push(l):h=p[f]={traces:[l],direction:u});for(f in p){u=(h=p[f]).direction;var v=o[u];for(s=0;s<v.length;s++){var m=v[s],y=m.name;if(\\\"nbins\\\"!==y||!h.sizeFound){var x=m.aStr;for(r=0;r<h.traces.length;r++){if(c=(l=h.traces[r])._input,void 0!==i(c,x).get()){h[y]=g(x),h[y+\\\"Found\\\"]=!0;break}var b=l._autoBin;b&&b[y]&&i(l,x).set(b[y])}if(\\\"start\\\"===y||\\\"end\\\"===y)for(;r<h.traces.length;r++)g(x,((l=h.traces[r])._autoBin||{})[y]);\\\"nbins\\\"!==y||h.sizeFound||h.nbinsFound||(l=h.traces[0],h[y]=g(x))}}}}},{\\\"../../lib\\\":696,\\\"./attributes\\\":964}],971:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../bar/style_defaults\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){function c(r,n){return i.coerce(t,e,s,r,n)}var u=c(\\\"x\\\"),f=c(\\\"y\\\");c(\\\"cumulative.enabled\\\")&&(c(\\\"cumulative.direction\\\"),c(\\\"cumulative.currentbin\\\")),c(\\\"text\\\");var h=c(\\\"orientation\\\",f&&!u?\\\"h\\\":\\\"v\\\"),p=\\\"v\\\"===h?\\\"x\\\":\\\"y\\\",d=\\\"v\\\"===h?\\\"y\\\":\\\"x\\\",g=u&&f?Math.min(u.length&&f.length):(e[p]||[]).length;if(g){e._length=g,n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\"],l),e[d]&&c(\\\"histfunc\\\"),c(\\\"histnorm\\\"),c(\\\"autobin\\\"+p),o(t,e,c,r,l);var v=n.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");v(t,e,a.defaultLine,{axis:\\\"y\\\"}),v(t,e,a.defaultLine,{axis:\\\"x\\\",inherit:\\\"y\\\"}),i.coerceSelectionMarkerOpacity(e,c)}else e.visible=!1}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../bar/style_defaults\\\":850,\\\"./attributes\\\":964}],972:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){if(t.x=\\\"xVal\\\"in e?e.xVal:e.x,t.y=\\\"yVal\\\"in e?e.yVal:e.y,e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),!(r.cumulative||{}).enabled){var a,o=Array.isArray(i)?n[0].pts[i[0]][i[1]]:n[i].pts;if(t.pointNumbers=o,t.binNumber=t.pointNumber,delete t.pointNumber,delete t.pointIndex,r._indexToPoints){a=[];for(var s=0;s<o.length;s++)a=a.concat(r._indexToPoints[o[s]])}else a=o;t.pointIndices=a}return t}},{}],973:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../bar/hover\\\").hoverPoints,i=t(\\\"../../plots/cartesian/axes\\\").hoverLabelText;e.exports=function(t,e,r,a){var o=n(t,e,r,a);if(o){var s=(t=o[0]).cd[t.index],l=t.cd[0].trace;if(!l.cumulative.enabled){var c=\\\"h\\\"===l.orientation?\\\"y\\\":\\\"x\\\";t[c+\\\"Label\\\"]=i(t[c+\\\"a\\\"],s.ph0,s.ph1)}return o}}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../bar/hover\\\":842}],974:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.layoutAttributes=t(\\\"../bar/layout_attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.crossTraceDefaults=t(\\\"./cross_trace_defaults\\\"),n.supplyLayoutDefaults=t(\\\"../bar/layout_defaults\\\"),n.calc=t(\\\"./calc\\\"),n.crossTraceCalc=t(\\\"../bar/cross_trace_calc\\\").crossTraceCalc,n.plot=t(\\\"../bar/plot\\\"),n.layerName=\\\"barlayer\\\",n.style=t(\\\"../bar/style\\\").style,n.styleOnSelect=t(\\\"../bar/style\\\").styleOnSelect,n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.selectPoints=t(\\\"../bar/select\\\"),n.eventData=t(\\\"./event_data\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"histogram\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"bar\\\",\\\"histogram\\\",\\\"oriented\\\",\\\"errorBarsOK\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../bar/cross_trace_calc\\\":839,\\\"../bar/layout_attributes\\\":844,\\\"../bar/layout_defaults\\\":845,\\\"../bar/plot\\\":846,\\\"../bar/select\\\":847,\\\"../bar/style\\\":849,\\\"../scatter/marker_colorbar\\\":1061,\\\"./attributes\\\":964,\\\"./calc\\\":969,\\\"./cross_trace_defaults\\\":970,\\\"./defaults\\\":971,\\\"./event_data\\\":972,\\\"./hover\\\":973}],975:[function(t,e,r){\\\"use strict\\\";e.exports={percent:function(t,e){for(var r=t.length,n=100/e,i=0;i<r;i++)t[i]*=n},probability:function(t,e){for(var r=t.length,n=0;n<r;n++)t[n]/=e},density:function(t,e,r,n){var i=t.length;n=n||1;for(var a=0;a<i;a++)t[a]*=r[a]*n},\\\"probability density\\\":function(t,e,r,n){var i=t.length;n&&(e/=n);for(var a=0;a<i;a++)t[a]*=r[a]/e}}},{}],976:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../histogram/attributes\\\"),i=t(\\\"../histogram/bin_attributes\\\"),a=t(\\\"../heatmap/attributes\\\"),o=t(\\\"../../components/colorscale/attributes\\\"),s=t(\\\"../../components/colorbar/attributes\\\"),l=t(\\\"../../lib/extend\\\").extendFlat;e.exports=l({x:n.x,y:n.y,z:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},marker:{color:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"},histnorm:n.histnorm,histfunc:n.histfunc,nbinsx:n.nbinsx,xbins:i(\\\"x\\\"),nbinsy:n.nbinsy,ybins:i(\\\"y\\\"),autobinx:n.autobinx,autobiny:n.autobiny,xgap:a.xgap,ygap:a.ygap,zsmooth:a.zsmooth,zhoverformat:a.zhoverformat},o(\\\"\\\",{cLetter:\\\"z\\\",autoColorDflt:!1}),{colorbar:s})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../heatmap/attributes\\\":945,\\\"../histogram/attributes\\\":964,\\\"../histogram/bin_attributes\\\":966}],977:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../histogram/bin_functions\\\"),o=t(\\\"../histogram/norm_functions\\\"),s=t(\\\"../histogram/average\\\"),l=t(\\\"../histogram/bin_label_vals\\\");function c(t,e,r,a,o,s,l){var c=e+\\\"bins\\\",u=t[c];u||(u=t[c]={});var f=t._input[c]||{},h=t._autoBin={};f.size||delete u.size,void 0===f.start&&delete u.start,void 0===f.end&&delete u.end;var p=!u.size,d=void 0===u.start,g=void 0===u.end;if(p||d||g){var v=i.autoBin(r,a,t[\\\"nbins\\\"+e],\\\"2d\\\",l,u.size);\\\"histogram2dcontour\\\"===t.type&&(d&&(v.start=s(i.tickIncrement(o(v.start),v.size,!0,l))),g&&(v.end=s(i.tickIncrement(o(v.end),v.size,!1,l)))),p&&(u.size=h.size=v.size),d&&(u.start=h.start=v.start),g&&(u.end=h.end=v.end)}var m=\\\"autobin\\\"+e;!1===t._input[m]&&(t._input[c]=n.extendFlat({},u),delete t._input[m],delete t[m])}function u(t,e,r,n){var i,a=new Array(t);if(n)for(i=0;i<t;i++)a[i]=1/(e[i+1]-e[i]);else{var o=1/r;for(i=0;i<t;i++)a[i]=o}return a}function f(t,e){return{start:t(e.start),end:t(e.end),size:e.size}}function h(t,e,r,n,i,a){var o,s=t.length-1,c=new Array(s);if(e)for(o=0;o<s;o++)c[o]=[e[o],e[o]];else{var u=l(r,n,t,i,a);for(o=0;o<s;o++)c[o]=[u(t[o]),u(t[o+1],!0)]}return c}e.exports=function(t,e){var r,l,p,d,g=i.getFromId(t,e.xaxis||\\\"x\\\"),v=e.x?g.makeCalcdata(e,\\\"x\\\"):[],m=i.getFromId(t,e.yaxis||\\\"y\\\"),y=e.y?m.makeCalcdata(e,\\\"y\\\"):[],x=e.xcalendar,b=e.ycalendar,_=function(t){return g.r2c(t,0,x)},w=function(t){return m.r2c(t,0,b)},k=function(t){return g.c2r(t,0,x)},M=function(t){return m.c2r(t,0,b)},A=e._length;v.length>A&&v.splice(A,v.length-A),y.length>A&&y.splice(A,y.length-A),c(e,\\\"x\\\",v,g,_,k,x),c(e,\\\"y\\\",y,m,w,M,b);var T=[],S=[],E=[],C=\\\"string\\\"==typeof e.xbins.size,L=\\\"string\\\"==typeof e.ybins.size,z=[],O=[],I=C?z:e.xbins,P=L?O:e.ybins,D=0,R=[],B=[],F=e.histnorm,N=e.histfunc,j=-1!==F.indexOf(\\\"density\\\"),V=\\\"max\\\"===N||\\\"min\\\"===N?null:0,U=a.count,q=o[F],H=!1,G=[],W=[],Y=\\\"z\\\"in e?e.z:\\\"marker\\\"in e&&Array.isArray(e.marker.color)?e.marker.color:\\\"\\\";Y&&\\\"count\\\"!==N&&(H=\\\"avg\\\"===N,U=a[N]);var X=e.xbins,Z=_(X.start),$=_(X.end)+(Z-i.tickIncrement(Z,X.size,!1,x))/1e6;for(r=Z;r<$;r=i.tickIncrement(r,X.size,!1,x))S.push(V),z.push(r),H&&E.push(0);z.push(r);var J=S.length,K=_(e.xbins.start),Q=(r-K)/J,tt=k(K+Q/2);for(Z=w((X=e.ybins).start),$=w(X.end)+(Z-i.tickIncrement(Z,X.size,!1,b))/1e6,r=Z;r<$;r=i.tickIncrement(r,X.size,!1,b)){T.push(S.slice()),O.push(r);var et=new Array(J);for(l=0;l<J;l++)et[l]=[];B.push(et),H&&R.push(E.slice())}O.push(r);var rt=T.length,nt=w(e.ybins.start),it=(r-nt)/rt,at=M(nt+it/2);j&&(G=u(S.length,I,Q,C),W=u(T.length,P,it,L)),C||\\\"date\\\"!==g.type||(I=f(_,I)),L||\\\"date\\\"!==m.type||(P=f(w,P));var ot=!0,st=!0,lt=new Array(J),ct=new Array(rt),ut=1/0,ft=1/0,ht=1/0,pt=1/0;for(r=0;r<A;r++){var dt=v[r],gt=y[r];p=n.findBin(dt,I),d=n.findBin(gt,P),p>=0&&p<J&&d>=0&&d<rt&&(D+=U(p,r,T[d],Y,R[d]),B[d][p].push(r),ot&&(void 0===lt[p]?lt[p]=dt:lt[p]!==dt&&(ot=!1)),st&&(void 0===ct[p]?ct[p]=gt:ct[p]!==gt&&(st=!1)),ut=Math.min(ut,dt-z[p]),ft=Math.min(ft,z[p+1]-dt),ht=Math.min(ht,gt-O[d]),pt=Math.min(pt,O[d+1]-gt))}if(H)for(d=0;d<rt;d++)D+=s(T[d],R[d]);if(q)for(d=0;d<rt;d++)q(T[d],D,G,W[d]);return{x:v,xRanges:h(z,ot&&lt,ut,ft,g,x),x0:tt,dx:Q,y:y,yRanges:h(O,st&&ct,ht,pt,m,b),y0:at,dy:it,z:T,pts:B}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../histogram/average\\\":965,\\\"../histogram/bin_functions\\\":967,\\\"../histogram/bin_label_vals\\\":968,\\\"../histogram/norm_functions\\\":975}],978:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM,a=t(\\\"../../plots/cartesian/axis_ids\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"./attributes\\\"),l=[\\\"x\\\",\\\"y\\\"];function c(t,e,r,s){var l=r[a.id2name(t[e+\\\"axis\\\"])].type,c=e+\\\"bins\\\",u=t[c],f=t[e+\\\"calendar\\\"];u||(u=t[c]={});var h=\\\"date\\\"===l?function(t,e){return t||0===t?o.cleanDate(t,i,f):e}:function(t,e){return n(t)?Number(t):e};u.start=h(u.start,s.start),u.end=h(u.end,s.end);var p=s.size,d=u.size;if(n(d))u.size=d>0?Number(d):p;else if(\\\"string\\\"!=typeof d)u.size=p;else{var g=d.charAt(0),v=d.substr(1);((v=n(v)?Number(v):0)<=0||\\\"date\\\"!==l||\\\"M\\\"!==g||v!==Math.round(v))&&(u.size=p)}}e.exports=function(t,e){var r,n,i,a;function u(t){return o.coerce(i._input,i,s,t)}for(r=0;r<t.length;r++){var f=(i=t[r]).type;if(\\\"histogram2d\\\"===f||\\\"histogram2dcontour\\\"===f)for(n=0;n<l.length;n++){var h=(a=l[n])+\\\"bins\\\",p=(i._autoBin||{})[a]||{};u(h+\\\".start\\\",p.start),u(h+\\\".end\\\",p.end),u(h+\\\".size\\\",p.size),c(i,a,e,p),(i[h]||{}).size||u(\\\"nbins\\\"+a)}}}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"./attributes\\\":976,\\\"fast-isnumeric\\\":214}],979:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./sample_defaults\\\"),a=t(\\\"../heatmap/style_defaults\\\"),o=t(\\\"../../components/colorscale/defaults\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,s,r,i)}i(t,e,c,l),!1!==e.visible&&(a(t,e,c,l),o(t,e,l,c,{prefix:\\\"\\\",cLetter:\\\"z\\\"}))}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"../heatmap/style_defaults\\\":959,\\\"./attributes\\\":976,\\\"./sample_defaults\\\":982}],980:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../heatmap/hover\\\"),i=t(\\\"../../plots/cartesian/axes\\\").hoverLabelText;e.exports=function(t,e,r,a,o,s){var l=n(t,e,r,a,o,s);if(l){var c=(t=l[0]).index,u=c[0],f=c[1],h=t.cd[0],p=h.xRanges[f],d=h.yRanges[u];return t.xLabel=i(t.xa,p[0],p[1]),t.yLabel=i(t.ya,d[0],d[1]),l}}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../heatmap/hover\\\":952}],981:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.crossTraceDefaults=t(\\\"./cross_trace_defaults\\\"),n.calc=t(\\\"../heatmap/calc\\\"),n.plot=t(\\\"../heatmap/plot\\\"),n.layerName=\\\"heatmaplayer\\\",n.colorbar=t(\\\"../heatmap/colorbar\\\"),n.style=t(\\\"../heatmap/style\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.eventData=t(\\\"../histogram/event_data\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"histogram2d\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"2dMap\\\",\\\"histogram\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../heatmap/calc\\\":946,\\\"../heatmap/colorbar\\\":948,\\\"../heatmap/plot\\\":957,\\\"../heatmap/style\\\":958,\\\"../histogram/event_data\\\":972,\\\"./attributes\\\":976,\\\"./cross_trace_defaults\\\":978,\\\"./defaults\\\":979,\\\"./hover\\\":980}],982:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\");e.exports=function(t,e,r,i){var a=r(\\\"x\\\"),o=r(\\\"y\\\");a&&a.length&&o&&o.length?(e._length=Math.min(a.length,o.length),n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\"],i),(r(\\\"z\\\")||r(\\\"marker.color\\\"))&&r(\\\"histfunc\\\"),r(\\\"histnorm\\\"),r(\\\"autobinx\\\"),r(\\\"autobiny\\\")):e.visible=!1}},{\\\"../../registry\\\":827}],983:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../histogram2d/attributes\\\"),i=t(\\\"../contour/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/colorbar/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat;e.exports=s({x:n.x,y:n.y,z:n.z,marker:n.marker,histnorm:n.histnorm,histfunc:n.histfunc,nbinsx:n.nbinsx,xbins:n.xbins,nbinsy:n.nbinsy,ybins:n.ybins,autobinx:n.autobinx,autobiny:n.autobiny,autocontour:i.autocontour,ncontours:i.ncontours,contours:i.contours,line:i.line,zhoverformat:n.zhoverformat},a(\\\"\\\",{cLetter:\\\"z\\\",editTypeOverride:\\\"calc\\\"}),{colorbar:o})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../contour/attributes\\\":916,\\\"../histogram2d/attributes\\\":976}],984:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../histogram2d/sample_defaults\\\"),a=t(\\\"../contour/contours_defaults\\\"),o=t(\\\"../contour/style_defaults\\\"),s=t(\\\"./attributes\\\");e.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,s,r,i)}i(t,e,c,l),!1!==e.visible&&(a(t,e,c,function(r){return n.coerce2(t,e,s,r)}),o(t,e,c,l))}},{\\\"../../lib\\\":696,\\\"../contour/contours_defaults\\\":923,\\\"../contour/style_defaults\\\":937,\\\"../histogram2d/sample_defaults\\\":982,\\\"./attributes\\\":983}],985:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.crossTraceDefaults=t(\\\"../histogram2d/cross_trace_defaults\\\"),n.calc=t(\\\"../contour/calc\\\"),n.plot=t(\\\"../contour/plot\\\").plot,n.layerName=\\\"contourlayer\\\",n.style=t(\\\"../contour/style\\\"),n.colorbar=t(\\\"../contour/colorbar\\\"),n.hoverPoints=t(\\\"../contour/hover\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"histogram2dcontour\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"2dMap\\\",\\\"contour\\\",\\\"histogram\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../contour/calc\\\":917,\\\"../contour/colorbar\\\":919,\\\"../contour/hover\\\":929,\\\"../contour/plot\\\":934,\\\"../contour/style\\\":936,\\\"../histogram2d/cross_trace_defaults\\\":978,\\\"./attributes\\\":983,\\\"./defaults\\\":984}],986:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../surface/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat;e.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\\\"},delaunayaxis:{valType:\\\"enumerated\\\",values:[\\\"x\\\",\\\"y\\\",\\\"z\\\"],dflt:\\\"z\\\",editType:\\\"calc\\\"},alphahull:{valType:\\\"number\\\",dflt:-1,editType:\\\"calc\\\"},intensity:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},color:{valType:\\\"color\\\",editType:\\\"calc\\\"},vertexcolor:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},facecolor:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},transforms:void 0},n(\\\"\\\",{colorAttr:\\\"`intensity`\\\",showScaleDflt:!0,editTypeOverride:\\\"calc\\\"}),{colorbar:i,opacity:a.opacity,flatshading:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},contour:{show:s({},a.contours.x.show,{}),color:a.contours.x.color,width:a.contours.x.width,editType:\\\"calc\\\"},lightposition:{x:s({},a.lightposition.x,{dflt:1e5}),y:s({},a.lightposition.y,{dflt:1e5}),z:s({},a.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\\\"},a.lighting),hoverinfo:s({},o.hoverinfo,{editType:\\\"calc\\\"})})},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../surface/attributes\\\":1130}],987:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\");e.exports=function(t,e){e.intensity&&n(e,e.intensity,\\\"\\\",\\\"c\\\")}},{\\\"../../components/colorscale/calc\\\":578}],988:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-mesh3d\\\"),i=t(\\\"delaunay-triangulate\\\"),a=t(\\\"alpha-shape\\\"),o=t(\\\"convex-hull\\\"),s=t(\\\"../../lib/gl_format_color\\\").parseColorScale,l=t(\\\"../../lib/str2rgbarray\\\"),c=t(\\\"../../plots/gl3d/zip3\\\");function u(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name=\\\"\\\",this.color=\\\"#fff\\\",this.data=null,this.showContour=!1}var f=u.prototype;function h(t){return t.map(l)}f.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index;t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]];var r=this.data.text;return Array.isArray(r)&&void 0!==r[e]?t.textLabel=r[e]:r&&(t.textLabel=r),!0}},f.update=function(t){var e=this.scene,r=e.fullSceneLayout;function n(t,e,r,n){return e.map(function(e){return t.d2l(e,0,n)*r})}this.data=t;var u,f=c(n(r.xaxis,t.x,e.dataScale[0],t.xcalendar),n(r.yaxis,t.y,e.dataScale[1],t.ycalendar),n(r.zaxis,t.z,e.dataScale[2],t.zcalendar));if(t.i&&t.j&&t.k)u=c(t.i,t.j,t.k);else if(0===t.alphahull)u=o(f);else if(t.alphahull>0)u=a(t.alphahull,f);else{var p=[\\\"x\\\",\\\"y\\\",\\\"z\\\"].indexOf(t.delaunayaxis);u=i(f.map(function(t){return[t[(p+1)%3],t[(p+2)%3]]}))}var d={positions:f,cells:u,lightPosition:[t.lightposition.x,t.lightposition.y,t.lightposition.z],ambient:t.lighting.ambient,diffuse:t.lighting.diffuse,specular:t.lighting.specular,roughness:t.lighting.roughness,fresnel:t.lighting.fresnel,vertexNormalsEpsilon:t.lighting.vertexnormalsepsilon,faceNormalsEpsilon:t.lighting.facenormalsepsilon,opacity:t.opacity,contourEnable:t.contour.show,contourColor:l(t.contour.color).slice(0,3),contourWidth:t.contour.width,useFacetNormals:t.flatshading};t.intensity?(this.color=\\\"#fff\\\",d.vertexIntensity=t.intensity,d.vertexIntensityBounds=[t.cmin,t.cmax],d.colormap=s(t.colorscale)):t.vertexcolor?(this.color=t.vertexcolor[0],d.vertexColors=h(t.vertexcolor)):t.facecolor?(this.color=t.facecolor[0],d.cellColors=h(t.facecolor)):(this.color=t.color,d.meshColor=l(t.color)),this.mesh.update(d)},f.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},e.exports=function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new u(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}},{\\\"../../lib/gl_format_color\\\":692,\\\"../../lib/str2rgbarray\\\":719,\\\"../../plots/gl3d/zip3\\\":798,\\\"alpha-shape\\\":52,\\\"convex-hull\\\":118,\\\"delaunay-triangulate\\\":150,\\\"gl-mesh3d\\\":268}],989:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"./attributes\\\");e.exports=function(t,e,r,s){function l(r,n){return i.coerce(t,e,o,r,n)}function c(t){var e=t.map(function(t){var e=l(t);return e&&i.isArrayOrTypedArray(e)?e:null});return e.every(function(t){return t&&t.length===e[0].length})&&e}var u=c([\\\"x\\\",\\\"y\\\",\\\"z\\\"]),f=c([\\\"i\\\",\\\"j\\\",\\\"k\\\"]);u?(f&&f.forEach(function(t){for(var e=0;e<t.length;++e)t[e]|=0}),n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\",\\\"z\\\"],s),[\\\"lighting.ambient\\\",\\\"lighting.diffuse\\\",\\\"lighting.specular\\\",\\\"lighting.roughness\\\",\\\"lighting.fresnel\\\",\\\"lighting.vertexnormalsepsilon\\\",\\\"lighting.facenormalsepsilon\\\",\\\"lightposition.x\\\",\\\"lightposition.y\\\",\\\"lightposition.z\\\",\\\"contour.show\\\",\\\"contour.color\\\",\\\"contour.width\\\",\\\"colorscale\\\",\\\"reversescale\\\",\\\"flatshading\\\",\\\"alphahull\\\",\\\"delaunayaxis\\\",\\\"opacity\\\"].forEach(function(t){l(t)}),\\\"intensity\\\"in t?(l(\\\"intensity\\\"),a(t,e,s,l,{prefix:\\\"\\\",cLetter:\\\"c\\\"})):(e.showscale=!1,\\\"facecolor\\\"in t?l(\\\"facecolor\\\"):\\\"vertexcolor\\\"in t?l(\\\"vertexcolor\\\"):l(\\\"color\\\",r)),l(\\\"text\\\"),e._length=null):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":986}],990:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.colorbar={min:\\\"cmin\\\",max:\\\"cmax\\\"},n.plot=t(\\\"./convert\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"mesh3d\\\",n.basePlotModule=t(\\\"../../plots/gl3d\\\"),n.categories=[\\\"gl3d\\\"],n.meta={},e.exports=n},{\\\"../../plots/gl3d\\\":787,\\\"./attributes\\\":986,\\\"./calc\\\":987,\\\"./convert\\\":988,\\\"./defaults\\\":989}],991:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").extendFlat,i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../components/drawing/attributes\\\").dash,o=t(\\\"../../components/fx/attributes\\\"),s=i.line;function l(t){return{line:{color:n({},s.color,{dflt:t}),width:s.width,dash:a,editType:\\\"style\\\"},editType:\\\"style\\\"}}e.exports={x:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},open:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},high:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},low:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},close:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},line:{width:n({},s.width,{}),dash:n({},a,{}),editType:\\\"style\\\"},increasing:l(\\\"#3D9970\\\"),decreasing:l(\\\"#FF4136\\\"),text:{valType:\\\"string\\\",dflt:\\\"\\\",arrayOk:!0,editType:\\\"calc\\\"},tickwidth:{valType:\\\"number\\\",min:0,max:.5,dflt:.3,editType:\\\"calc\\\"},hoverlabel:n({},o.hoverlabel,{split:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"style\\\"}})}},{\\\"../../components/drawing/attributes\\\":594,\\\"../../components/fx/attributes\\\":604,\\\"../../lib\\\":696,\\\"../scatter/attributes\\\":1043}],992:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=n._,a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../../constants/numerical\\\").BADNUM;function s(t,e,r,n){return{o:t,h:e,l:r,c:n}}function l(t,e,r,n,s){for(var l=n.makeCalcdata(e,\\\"open\\\"),c=n.makeCalcdata(e,\\\"high\\\"),u=n.makeCalcdata(e,\\\"low\\\"),f=n.makeCalcdata(e,\\\"close\\\"),h=Array.isArray(e.text),p=!0,d=null,g=[],v=0;v<r.length;v++){var m=r[v],y=l[v],x=c[v],b=u[v],_=f[v];if(m!==o&&y!==o&&x!==o&&b!==o&&_!==o){_===y?null!==d&&_!==d&&(p=_>d):p=_>y,d=_;var w=s(y,x,b,_);w.pos=m,w.yc=(y+_)/2,w.i=v,w.dir=p?\\\"increasing\\\":\\\"decreasing\\\",h&&(w.tx=e.text[v]),g.push(w)}}return e._extremes[n._id]=a.findExtremes(n,u.concat(c),{padded:!0}),g.length&&(g[0].t={labels:{open:i(t,\\\"open:\\\")+\\\" \\\",high:i(t,\\\"high:\\\")+\\\" \\\",low:i(t,\\\"low:\\\")+\\\" \\\",close:i(t,\\\"close:\\\")+\\\" \\\"}}),g}e.exports={calc:function(t,e){var r=a.getFromId(t,e.xaxis),i=a.getFromId(t,e.yaxis),o=function(t,e,r){var i=r._minDiff;if(!i){var a,o=t._fullData,s=[];for(i=1/0,a=0;a<o.length;a++){var l=o[a];if(\\\"ohlc\\\"===l.type&&!0===l.visible&&l.xaxis===e._id){s.push(l);var c=e.makeCalcdata(l,\\\"x\\\");l._xcalc=c;var u=n.distinctVals(c).minDiff;u&&isFinite(u)&&(i=Math.min(i,u))}}for(i===1/0&&(i=1),a=0;a<s.length;a++)s[a]._minDiff=i}return i*r.tickwidth}(t,r,e),c=e._minDiff;e._minDiff=null;var u=e._xcalc;e._xcalc=null;var f=l(t,e,u,i,s);return e._extremes[r._id]=a.findExtremes(r,u,{vpad:c/2}),f.length?(n.extendFlat(f[0].t,{wHover:c/2,tickLen:o}),f):[{t:{empty:!0}}]},calcCommon:l}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744}],993:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./ohlc_defaults\\\"),a=t(\\\"./attributes\\\");function o(t,e,r,n){r(n+\\\".line.color\\\"),r(n+\\\".line.width\\\",e.line.width),r(n+\\\".line.dash\\\",e.line.dash)}e.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,a,r,i)}i(t,e,l,s)?(l(\\\"line.width\\\"),l(\\\"line.dash\\\"),o(t,e,l,\\\"increasing\\\"),o(t,e,l,\\\"decreasing\\\"),l(\\\"text\\\"),l(\\\"tickwidth\\\"),s._requestRangeslider[e.xaxis]=!0):e.visible=!1}},{\\\"../../lib\\\":696,\\\"./attributes\\\":991,\\\"./ohlc_defaults\\\":996}],994:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/cartesian/axes\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/fx\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../scatter/fill_hover_text\\\"),l={increasing:\\\"\\\\u25b2\\\",decreasing:\\\"\\\\u25bc\\\"};function c(t,e,r,n){var i,s,l=t.cd,c=t.xa,u=l[0].trace,f=l[0].t,h=u.type,p=\\\"ohlc\\\"===h?\\\"l\\\":\\\"min\\\",d=\\\"ohlc\\\"===h?\\\"h\\\":\\\"max\\\",g=f.bPos||0,v=function(t){return t.pos+g-e},m=f.bdPos||f.tickLen,y=f.wHover,x=Math.min(1,m/Math.abs(c.r2c(c.range[1])-c.r2c(c.range[0])));function b(t){var e=v(t);return a.inbox(e-y,e+y,i)}function _(t){return a.inbox(t[p]-r,t[d]-r,i)}function w(t){return(b(t)+_(t))/2}i=t.maxHoverDistance-x,s=t.maxSpikeDistance-x;var k=a.getDistanceFunction(n,b,_,w);if(a.getClosest(l,k,t),!1===t.index)return null;var M=l[t.index],A=u[M.dir],T=A.line.color;return o.opacity(T)&&A.line.width?t.color=T:t.color=A.fillcolor,t.x0=c.c2p(M.pos+g-m,!0),t.x1=c.c2p(M.pos+g+m,!0),t.xLabelVal=M.pos,t.spikeDistance=w(M)*s/i,t.xSpike=c.c2p(M.pos,!0),t}function u(t,e,r,a){var o=t.cd,s=t.ya,l=o[0].trace,u=o[0].t,f=[],h=c(t,e,r,a);if(!h)return[];var p=o[h.index].hi||l.hoverinfo,d=p.split(\\\"+\\\");if(!(\\\"all\\\"===p||-1!==d.indexOf(\\\"y\\\")))return[];for(var g=[\\\"high\\\",\\\"open\\\",\\\"close\\\",\\\"low\\\"],v={},m=0;m<g.length;m++){var y,x=g[m],b=l[x][h.index],_=s.c2p(b,!0);b in v?(y=v[b]).yLabel+=\\\"<br>\\\"+u.labels[x]+n.hoverLabelText(s,b):((y=i.extendFlat({},h)).y0=y.y1=_,y.yLabelVal=b,y.yLabel=u.labels[x]+n.hoverLabelText(s,b),y.name=\\\"\\\",f.push(y),v[b]=y)}return f}function f(t,e,r,i){var a=t.cd,o=t.ya,u=a[0].trace,f=a[0].t,h=c(t,e,r,i);if(!h)return[];var p=a[h.index],d=h.index=p.i,g=p.dir;function v(t){return f.labels[t]+n.hoverLabelText(o,u[t][d])}var m=p.hi||u.hoverinfo,y=m.split(\\\"+\\\"),x=\\\"all\\\"===m,b=x||-1!==y.indexOf(\\\"y\\\"),_=x||-1!==y.indexOf(\\\"text\\\"),w=b?[v(\\\"open\\\"),v(\\\"high\\\"),v(\\\"low\\\"),v(\\\"close\\\")+\\\"  \\\"+l[g]]:[];return _&&s(p,u,w),h.extraText=w.join(\\\"<br>\\\"),h.y0=h.y1=o.c2p(p.yc,!0),[h]}e.exports={hoverPoints:function(t,e,r,n){return t.cd[0].trace.hoverlabel.split?u(t,e,r,n):f(t,e,r,n)},hoverSplit:u,hoverOnPoints:f}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/fill_hover_text\\\":1051}],995:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"ohlc\\\",basePlotModule:t(\\\"../../plots/cartesian\\\"),categories:[\\\"cartesian\\\",\\\"svg\\\",\\\"showLegend\\\"],meta:{},attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),calc:t(\\\"./calc\\\").calc,plot:t(\\\"./plot\\\"),style:t(\\\"./style\\\"),hoverPoints:t(\\\"./hover\\\").hoverPoints,selectPoints:t(\\\"./select\\\")}},{\\\"../../plots/cartesian\\\":756,\\\"./attributes\\\":991,\\\"./calc\\\":992,\\\"./defaults\\\":993,\\\"./hover\\\":994,\\\"./plot\\\":997,\\\"./select\\\":998,\\\"./style\\\":999}],996:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\");e.exports=function(t,e,r,i){var a=r(\\\"x\\\"),o=r(\\\"open\\\"),s=r(\\\"high\\\"),l=r(\\\"low\\\"),c=r(\\\"close\\\");if(r(\\\"hoverlabel.split\\\"),n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\"],i),o&&s&&l&&c){var u=Math.min(o.length,s.length,l.length,c.length);return a&&(u=Math.min(u,a.length)),e._length=u,u}}},{\\\"../../registry\\\":827}],997:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\");e.exports=function(t,e,r,a){var o=e.xaxis,s=e.yaxis;i.makeTraceGroups(a,r,\\\"trace ohlc\\\").each(function(t){var r=n.select(this),a=t[0],l=a.t,c=a.trace;if(e.isRangePlot||(a.node3=r),!0!==c.visible||l.empty)r.remove();else{var u=l.tickLen,f=r.selectAll(\\\"path\\\").data(i.identity);f.enter().append(\\\"path\\\"),f.exit().remove(),f.attr(\\\"d\\\",function(t){var e=o.c2p(t.pos,!0),r=o.c2p(t.pos-u,!0),n=o.c2p(t.pos+u,!0);return\\\"M\\\"+r+\\\",\\\"+s.c2p(t.o,!0)+\\\"H\\\"+e+\\\"M\\\"+e+\\\",\\\"+s.c2p(t.h,!0)+\\\"V\\\"+s.c2p(t.l,!0)+\\\"M\\\"+n+\\\",\\\"+s.c2p(t.c,!0)+\\\"H\\\"+e})}})}},{\\\"../../lib\\\":696,d3:148}],998:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].t.bPos||0;if(!1===e)for(r=0;r<n.length;r++)n[r].selected=0;else for(r=0;r<n.length;r++){var l=n[r];e.contains([i.c2p(l.pos+s),a.c2p(l.yc)],null,l.i,t)?(o.push({pointNumber:l.i,x:i.c2d(l.pos),y:a.c2d(l.yc)}),l.selected=1):l.selected=0}return o}},{}],999:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"../../components/color\\\");e.exports=function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.ohlclayer\\\").selectAll(\\\"g.trace\\\");r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),r.each(function(t){var e=t[0].trace;n.select(this).selectAll(\\\"path\\\").each(function(t){var r=e[t.dir].line;n.select(this).style(\\\"fill\\\",\\\"none\\\").call(a.stroke,r.color).call(i.dashLine,r.dash,r.width).style(\\\"opacity\\\",e.selectedpoints&&!t.selected?.3:1)})})}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,d3:148}],1000:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/extend\\\").extendFlat,i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../plots/font_attributes\\\"),o=t(\\\"../../components/colorscale/attributes\\\"),s=t(\\\"../../plots/domain\\\").attributes,l=t(\\\"../scatter/attributes\\\").line,c=t(\\\"../../components/colorbar/attributes\\\"),u=n({editType:\\\"calc\\\"},o(\\\"line\\\",{editType:\\\"calc\\\"}),{showscale:l.showscale,colorbar:c,shape:{valType:\\\"enumerated\\\",values:[\\\"linear\\\",\\\"hspline\\\"],dflt:\\\"linear\\\",editType:\\\"plot\\\"}});e.exports={domain:s({name:\\\"parcats\\\",trace:!0,editType:\\\"calc\\\"}),hoverinfo:n({},i.hoverinfo,{flags:[\\\"count\\\",\\\"probability\\\"],editType:\\\"plot\\\",arrayOk:!1}),hoveron:{valType:\\\"enumerated\\\",values:[\\\"category\\\",\\\"color\\\",\\\"dimension\\\"],dflt:\\\"category\\\",editType:\\\"plot\\\"},arrangement:{valType:\\\"enumerated\\\",values:[\\\"perpendicular\\\",\\\"freeform\\\",\\\"fixed\\\"],dflt:\\\"perpendicular\\\",editType:\\\"plot\\\"},bundlecolors:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},sortpaths:{valType:\\\"enumerated\\\",values:[\\\"forward\\\",\\\"backward\\\"],dflt:\\\"forward\\\",editType:\\\"plot\\\"},labelfont:a({editType:\\\"calc\\\"}),tickfont:a({editType:\\\"calc\\\"}),dimensions:{_isLinkedToArray:\\\"dimension\\\",label:{valType:\\\"string\\\",editType:\\\"calc\\\"},categoryorder:{valType:\\\"enumerated\\\",values:[\\\"trace\\\",\\\"category ascending\\\",\\\"category descending\\\",\\\"array\\\"],dflt:\\\"trace\\\",editType:\\\"calc\\\"},categoryarray:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},ticktext:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},values:{valType:\\\"data_array\\\",dflt:[],editType:\\\"calc\\\"},displayindex:{valType:\\\"integer\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\",visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"}},line:u,counts:{valType:\\\"number\\\",min:0,dflt:1,arrayOk:!0,editType:\\\"calc\\\"},customdata:void 0,hoverlabel:void 0,ids:void 0,legendgroup:void 0,opacity:void 0,selectedpoints:void 0,showlegend:void 0}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771,\\\"../scatter/attributes\\\":1043}],1001:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/get_data\\\").getModuleCalcData,i=t(\\\"./plot\\\");r.name=\\\"parcats\\\",r.plot=function(t,e,r,a){var o=n(t.calcdata,\\\"parcats\\\");if(o.length){var s=o[0];i(t,s,r,a)}},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"parcats\\\"),a=e._has&&e._has(\\\"parcats\\\");i&&!a&&n._paperdiv.selectAll(\\\".parcats\\\").remove()}},{\\\"../../plots/get_data\\\":781,\\\"./plot\\\":1006}],1002:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/gup\\\").wrap,i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/calc\\\"),o=t(\\\"../../lib/filter_unique.js\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"../../lib\\\");function c(t,e,r){t.valueInds.push(e),t.count+=r}function u(t,e,r){t.valueInds.push(e),t.count+=r}e.exports=function(t,e){var r=l.filterVisible(e.dimensions);if(0===r.length)return[];var f,h,p,d=r.map(function(t){var e;return\\\"trace\\\"===t.categoryorder?e=null:\\\"array\\\"===t.categoryorder?e=t.categoryarray:(e=o(t.values).sort(),\\\"category descending\\\"===t.categoryorder&&(e=e.reverse())),function(t,e){e=null==e?[]:e.map(function(t){return t});var r={},n={},i=[];e.forEach(function(t,e){r[t]=0,n[t]=e});for(var a=0;a<t.length;a++){var o,s=t[a];void 0===r[s]?(r[s]=1,o=e.push(s)-1,n[s]=o):(r[s]++,o=n[s]),i.push(o)}var l=e.map(function(t){return r[t]});return{uniqueValues:e,uniqueCounts:l,inds:i}}(t.values,e)});f=l.isArrayOrTypedArray(e.counts)?e.counts:[e.counts],function(t){var e;if(function(t){for(var e=new Array(t.length),r=0;r<t.length;r++){if(t[r]<0||t[r]>=t.length)return!1;if(void 0!==e[t[r]])return!1;e[t[r]]=!0}return!0}(t.map(function(t){return t.displayindex})))for(e=0;e<t.length;e++)t[e]._displayindex=t[e].displayindex;else for(e=0;e<t.length;e++)t[e]._displayindex=e}(r),r.forEach(function(t,e){!function(t,e){t._categoryarray=e.uniqueValues,null===t.ticktext||void 0===t.ticktext?t._ticktext=[]:t._ticktext=t.ticktext.slice();for(var r=t._ticktext.length;r<e.uniqueValues.length;r++)t._ticktext.push(e.uniqueValues[r])}(t,d[e])});var g,v=e.line;v?(i(e,\\\"line\\\")&&a(e,e.line.color,\\\"line\\\",\\\"c\\\"),g=s.tryColorscale(v)):g=l.identity;var m,y,x,b,_=r[0].values.length,w={},k=d.map(function(t){return t.inds});for(p=0,m=0;m<_;m++){var M=[];for(y=0;y<k.length;y++)M.push(k[y][m]);h=f[m%f.length],p+=h;var A=(x=m,b=void 0,b=l.isArrayOrTypedArray(v.color)?v.color[x%v.color.length]:v.color,{color:g(b),rawColor:b}),T=M+\\\"-\\\"+A.rawColor;void 0===w[T]&&(w[T]={categoryInds:M,color:A.color,rawColor:A.rawColor,valueInds:[],count:0}),u(w[T],m,h)}var S,E=r.map(function(t,e){return r=e,n=t._index,i=t._displayindex,a=t.label,{dimensionInd:r,containerInd:n,displayInd:i,dimensionLabel:a,count:p,categories:[],dragX:null};var r,n,i,a});for(m=0;m<_;m++)for(h=f[m%f.length],y=0;y<E.length;y++){var C=E[y].containerInd,L=d[y].inds[m],z=E[y].categories;if(void 0===z[L]){var O=e.dimensions[C]._categoryarray[L],I=e.dimensions[C]._ticktext[L];z[L]={dimensionInd:y,categoryInd:S=L,categoryValue:O,displayInd:S,categoryLabel:I,valueInds:[],count:0,dragY:null}}c(z[L],m,h)}return n(function(t,e,r){var n=t.map(function(t){return t.categories.length}).reduce(function(t,e){return Math.max(t,e)});return{dimensions:t,paths:e,trace:void 0,maxCats:n,count:r}}(E,w,p))}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/filter_unique.js\\\":686,\\\"../../lib/gup\\\":693}],1003:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"../../plots/domain\\\").defaults,s=t(\\\"../../plots/array_container_defaults\\\"),l=t(\\\"./attributes\\\"),c=t(\\\"../parcoords/merge_length\\\");function u(t,e){function r(r,i){return n.coerce(t,e,l.dimensions,r,i)}var i=r(\\\"values\\\"),a=r(\\\"visible\\\");if(i&&i.length||(a=e.visible=!1),a){r(\\\"label\\\"),r(\\\"displayindex\\\",e._index);var o,s=t.categoryarray,c=Array.isArray(s)&&s.length>0;c&&(o=\\\"array\\\");var u=r(\\\"categoryorder\\\",o);\\\"array\\\"===u?(r(\\\"categoryarray\\\"),r(\\\"ticktext\\\")):(delete t.categoryarray,delete t.ticktext),c||\\\"array\\\"!==u||(e.categoryorder=\\\"trace\\\")}}e.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,l,r,i)}var p=s(t,e,{name:\\\"dimensions\\\",handleItemDefaults:u}),d=function(t,e,r,o,s){s(\\\"line.shape\\\");var l=s(\\\"line.color\\\",o.colorway[0]);if(i(t,\\\"line\\\")&&n.isArrayOrTypedArray(l)){if(l.length)return s(\\\"line.colorscale\\\"),a(t,e,o,s,{prefix:\\\"line.\\\",cLetter:\\\"c\\\"}),l.length;e.line.color=r}return 1/0}(t,e,r,f,h);o(e,f,h),Array.isArray(p)&&p.length||(e.visible=!1),c(e,p,\\\"values\\\",d),h(\\\"hoveron\\\"),h(\\\"arrangement\\\"),h(\\\"bundlecolors\\\"),h(\\\"sortpaths\\\"),h(\\\"counts\\\");var g={family:f.font.family,size:Math.round(f.font.size),color:f.font.color};n.coerceFont(h,\\\"labelfont\\\",g);var v={family:f.font.family,size:Math.round(f.font.size/1.2),color:f.font.color};n.coerceFont(h,\\\"tickfont\\\",v)}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/domain\\\":770,\\\"../parcoords/merge_length\\\":1015,\\\"./attributes\\\":1e3}],1004:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.colorbar={container:\\\"line\\\",min:\\\"cmin\\\",max:\\\"cmax\\\"},n.moduleType=\\\"trace\\\",n.name=\\\"parcats\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1e3,\\\"./base_plot\\\":1001,\\\"./calc\\\":1002,\\\"./defaults\\\":1003,\\\"./plot\\\":1006}],1005:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../plot_api/plot_api\\\"),a=t(\\\"../../components/fx\\\"),o=t(\\\"../../lib\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"tinycolor2\\\"),c=t(\\\"../../lib/svg_text_utils\\\");function u(t,e,r,i){var a=t.map(function(t,e,r){var n,i=r[0],a=e.margin||{l:80,r:80,t:100,b:80},o=i.trace,s=o.domain,l=e.width,c=e.height,u=Math.floor(l*(s.x[1]-s.x[0])),f=Math.floor(c*(s.y[1]-s.y[0])),h=s.x[0]*l+a.l,p=e.height-s.y[1]*e.height+a.t,d=o.line.shape;n=\\\"all\\\"===o.hoverinfo?[\\\"count\\\",\\\"probability\\\"]:o.hoverinfo.split(\\\"+\\\");var g={key:o.uid,model:i,x:h,y:p,width:u,height:f,hoveron:o.hoveron,hoverinfoItems:n,arrangement:o.arrangement,bundlecolors:o.bundlecolors,sortpaths:o.sortpaths,labelfont:o.labelfont,categorylabelfont:o.tickfont,pathShape:d,dragDimension:null,margin:a,paths:[],dimensions:[],graphDiv:t,traceSelection:null,pathSelection:null,dimensionSelection:null};i.dimensions&&(R(g),D(g));return g}.bind(0,e,r)),l=i.selectAll(\\\"g.parcatslayer\\\").data([null]);l.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"parcatslayer\\\").style(\\\"pointer-events\\\",\\\"all\\\");var u=l.selectAll(\\\"g.trace.parcats\\\").data(a,f),v=u.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"trace parcats\\\");u.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\", \\\"+t.y+\\\")\\\"}),v.append(\\\"g\\\").attr(\\\"class\\\",\\\"paths\\\");var x=u.select(\\\"g.paths\\\").selectAll(\\\"path.path\\\").data(function(t){return t.paths},f);x.attr(\\\"fill\\\",function(t){return t.model.color});var w=x.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"path\\\").attr(\\\"stroke-opacity\\\",0).attr(\\\"fill\\\",function(t){return t.model.color}).attr(\\\"fill-opacity\\\",0);y(w),x.attr(\\\"d\\\",function(t){return t.svgD}),w.empty()||x.sort(p),x.exit().remove(),x.on(\\\"mouseover\\\",d).on(\\\"mouseout\\\",g).on(\\\"click\\\",m),v.append(\\\"g\\\").attr(\\\"class\\\",\\\"dimensions\\\");var k=u.select(\\\"g.dimensions\\\").selectAll(\\\"g.dimension\\\").data(function(t){return t.dimensions},f);k.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"dimension\\\"),k.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\", 0)\\\"}),k.exit().remove();var M=k.selectAll(\\\"g.category\\\").data(function(t){return t.categories},f),A=M.enter().append(\\\"g\\\").attr(\\\"class\\\",\\\"category\\\");M.attr(\\\"transform\\\",function(t){return\\\"translate(0, \\\"+t.y+\\\")\\\"}),A.append(\\\"rect\\\").attr(\\\"class\\\",\\\"catrect\\\").attr(\\\"pointer-events\\\",\\\"none\\\"),M.select(\\\"rect.catrect\\\").attr(\\\"fill\\\",\\\"none\\\").attr(\\\"width\\\",function(t){return t.width}).attr(\\\"height\\\",function(t){return t.height}),b(A);var z=M.selectAll(\\\"rect.bandrect\\\").data(function(t){return t.bands},f);z.each(function(){o.raiseToTop(this)}),z.attr(\\\"fill\\\",function(t){return t.color});var O=z.enter().append(\\\"rect\\\").attr(\\\"class\\\",\\\"bandrect\\\").attr(\\\"stroke-opacity\\\",0).attr(\\\"fill\\\",function(t){return t.color}).attr(\\\"fill-opacity\\\",0);z.attr(\\\"fill\\\",function(t){return t.color}).attr(\\\"width\\\",function(t){return t.width}).attr(\\\"height\\\",function(t){return t.height}).attr(\\\"y\\\",function(t){return t.y}).attr(\\\"cursor\\\",function(t){return\\\"fixed\\\"===t.parcatsViewModel.arrangement?\\\"default\\\":\\\"perpendicular\\\"===t.parcatsViewModel.arrangement?\\\"ns-resize\\\":\\\"move\\\"}),_(O),z.exit().remove(),A.append(\\\"text\\\").attr(\\\"class\\\",\\\"catlabel\\\").attr(\\\"pointer-events\\\",\\\"none\\\");var I=e._fullLayout.paper_bgcolor;M.select(\\\"text.catlabel\\\").attr(\\\"text-anchor\\\",function(t){return h(t)?\\\"start\\\":\\\"end\\\"}).attr(\\\"alignment-baseline\\\",\\\"middle\\\").style(\\\"text-shadow\\\",I+\\\" -1px  1px 2px, \\\"+I+\\\" 1px  1px 2px, \\\"+I+\\\"  1px -1px 2px, \\\"+I+\\\" -1px -1px 2px\\\").style(\\\"fill\\\",\\\"rgb(0, 0, 0)\\\").attr(\\\"x\\\",function(t){return h(t)?t.width+5:-5}).attr(\\\"y\\\",function(t){return t.height/2}).text(function(t){return t.model.categoryLabel}).each(function(t){s.font(n.select(this),t.parcatsViewModel.categorylabelfont),c.convertToTspans(n.select(this),e)}),A.append(\\\"text\\\").attr(\\\"class\\\",\\\"dimlabel\\\"),M.select(\\\"text.dimlabel\\\").attr(\\\"text-anchor\\\",\\\"middle\\\").attr(\\\"alignment-baseline\\\",\\\"baseline\\\").attr(\\\"cursor\\\",function(t){return\\\"fixed\\\"===t.parcatsViewModel.arrangement?\\\"default\\\":\\\"ew-resize\\\"}).attr(\\\"x\\\",function(t){return t.width/2}).attr(\\\"y\\\",-5).text(function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null}).each(function(t){s.font(n.select(this),t.parcatsViewModel.labelfont)}),M.selectAll(\\\"rect.bandrect\\\").on(\\\"mouseover\\\",T).on(\\\"mouseout\\\",S),M.exit().remove(),k.call(n.behavior.drag().origin(function(t){return{x:t.x,y:0}}).on(\\\"dragstart\\\",E).on(\\\"drag\\\",C).on(\\\"dragend\\\",L)),u.each(function(t){t.traceSelection=n.select(this),t.pathSelection=n.select(this).selectAll(\\\"g.paths\\\").selectAll(\\\"path.path\\\"),t.dimensionSelection=n.select(this).selectAll(\\\"g.dimensions\\\").selectAll(\\\"g.dimension\\\")}),u.exit().remove()}function f(t){return t.key}function h(t){var e=t.parcatsViewModel.dimensions.length,r=t.parcatsViewModel.dimensions[e-1].model.dimensionInd;return t.model.dimensionInd===r}function p(t,e){return t.model.rawColor>e.model.rawColor?1:t.model.rawColor<e.model.rawColor?-1:0}function d(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\")){o.raiseToTop(this),x(n.select(this));var e=v(t);if(t.parcatsViewModel.graphDiv.emit(\\\"plotly_hover\\\",{points:e,event:n.event}),-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"none\\\")){var r,i,s,c=n.mouse(this)[0],u=t.parcatsViewModel.graphDiv,f=u._fullLayout,h=f._paperdiv.node().getBoundingClientRect(),p=t.parcatsViewModel.graphDiv.getBoundingClientRect();for(s=0;s<t.leftXs.length-1;s++)if(t.leftXs[s]+t.dimWidths[s]-2<=c&&c<=t.leftXs[s+1]+2){var d=t.parcatsViewModel.dimensions[s],g=t.parcatsViewModel.dimensions[s+1];r=(d.x+d.width+g.x)/2,i=(t.topYs[s]+t.topYs[s+1]+t.height)/2;break}var m=t.parcatsViewModel.x+r,y=t.parcatsViewModel.y+i,b=l.mostReadable(t.model.color,[\\\"black\\\",\\\"white\\\"]),_=[];-1!==t.parcatsViewModel.hoverinfoItems.indexOf(\\\"count\\\")&&_.push([\\\"Count:\\\",t.model.count].join(\\\" \\\")),-1!==t.parcatsViewModel.hoverinfoItems.indexOf(\\\"probability\\\")&&_.push([\\\"P:\\\",(t.model.count/t.parcatsViewModel.model.count).toFixed(3)].join(\\\" \\\"));var w=_.join(\\\"<br>\\\"),k=n.mouse(u)[0];a.loneHover({x:m-h.left+p.left,y:y-h.top+p.top,text:w,color:t.model.color,borderColor:\\\"black\\\",fontFamily:'Monaco, \\\"Courier New\\\", monospace',fontSize:10,fontColor:b,idealAlign:k<m?\\\"right\\\":\\\"left\\\"},{container:f._hoverlayer.node(),outerContainer:f._paper.node(),gd:u})}}}function g(t){if(!t.parcatsViewModel.dragDimension&&(y(n.select(this)),a.loneUnhover(t.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()),t.parcatsViewModel.pathSelection.sort(p),-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\"))){var e=v(t);t.parcatsViewModel.graphDiv.emit(\\\"plotly_unhover\\\",{points:e,event:n.event})}}function v(t){for(var e=[],r=z(t.parcatsViewModel),n=0;n<t.model.valueInds.length;n++){var i=t.model.valueInds[n];e.push({curveNumber:r,pointNumber:i})}return e}function m(t){if(-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\")){var e=v(t);t.parcatsViewModel.graphDiv.emit(\\\"plotly_click\\\",{points:e,event:n.event})}}function y(t){t.attr(\\\"fill\\\",function(t){return t.model.color}).attr(\\\"fill-opacity\\\",.6).attr(\\\"stroke\\\",\\\"lightgray\\\").attr(\\\"stroke-width\\\",.2).attr(\\\"stroke-opacity\\\",1)}function x(t){t.attr(\\\"fill-opacity\\\",.8).attr(\\\"stroke\\\",function(t){return l.mostReadable(t.model.color,[\\\"black\\\",\\\"white\\\"])}).attr(\\\"stroke-width\\\",.3)}function b(t){t.select(\\\"rect.catrect\\\").attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",1).attr(\\\"stroke-opacity\\\",1)}function _(t){t.attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",.2).attr(\\\"stroke-opacity\\\",1).attr(\\\"fill-opacity\\\",1)}function w(t){var e=t.parcatsViewModel.pathSelection,r=t.categoryViewModel.model.dimensionInd,n=t.categoryViewModel.model.categoryInd;return e.filter(function(e){return e.model.categoryInds[r]===n&&e.model.color===t.color})}function k(t,e,r){var i=n.select(t).datum().parcatsViewModel.graphDiv,a=n.select(t.parentNode).selectAll(\\\"rect.bandrect\\\"),o=[];a.each(function(t){w(t).each(function(t){Array.prototype.push.apply(o,v(t))})}),i.emit(e,{points:o,event:r})}function M(t,e,r){var i=n.select(t).datum(),a=i.parcatsViewModel.graphDiv,o=w(i),s=[];o.each(function(t){Array.prototype.push.apply(s,v(t))}),a.emit(e,{points:s,event:r})}function A(t,e){var r,i,a=n.select(e.parentNode).select(\\\"rect.catrect\\\"),o=a.node().getBoundingClientRect(),s=a.datum(),l=s.parcatsViewModel,c=l.model.dimensions[s.model.dimensionInd],u=o.top+o.height/2;l.dimensions.length>1&&c.displayInd===l.dimensions.length-1?(r=o.left,i=\\\"left\\\"):(r=o.left+o.width,i=\\\"right\\\");var f=[];-1!==s.parcatsViewModel.hoverinfoItems.indexOf(\\\"count\\\")&&f.push([\\\"Count:\\\",s.model.count].join(\\\" \\\")),-1!==s.parcatsViewModel.hoverinfoItems.indexOf(\\\"probability\\\")&&f.push([\\\"P(\\\"+s.model.categoryLabel+\\\"):\\\",(s.model.count/s.parcatsViewModel.model.count).toFixed(3)].join(\\\" \\\"));var h=f.join(\\\"<br>\\\");return{x:r-t.left,y:u-t.top,text:h,color:\\\"lightgray\\\",borderColor:\\\"black\\\",fontFamily:'Monaco, \\\"Courier New\\\", monospace',fontSize:12,fontColor:\\\"black\\\",idealAlign:i}}function T(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\")){if(n.mouse(this)[1]<-1)return;var e,r=t.parcatsViewModel.graphDiv,i=r._fullLayout,s=i._paperdiv.node().getBoundingClientRect(),c=t.parcatsViewModel.hoveron;if(\\\"color\\\"===c?(!function(t){var e=n.select(t).datum(),r=w(e);x(r),r.each(function(){o.raiseToTop(this)}),n.select(t.parentNode).selectAll(\\\"rect.bandrect\\\").filter(function(t){return t.color===e.color}).each(function(){o.raiseToTop(this),n.select(this).attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",1.5)})}(this),M(this,\\\"plotly_hover\\\",n.event)):(!function(t){n.select(t.parentNode).selectAll(\\\"rect.bandrect\\\").each(function(t){var e=w(t);x(e),e.each(function(){o.raiseToTop(this)})}),n.select(t.parentNode).select(\\\"rect.catrect\\\").attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",2.5)}(this),k(this,\\\"plotly_hover\\\",n.event)),-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"none\\\"))\\\"category\\\"===c?e=A(s,this):\\\"color\\\"===c?e=function(t,e){var r,i,a=e.getBoundingClientRect(),o=n.select(e).datum(),s=o.categoryViewModel,c=s.parcatsViewModel,u=c.model.dimensions[s.model.dimensionInd],f=a.y+a.height/2;c.dimensions.length>1&&u.displayInd===c.dimensions.length-1?(r=a.left,i=\\\"left\\\"):(r=a.left+a.width,i=\\\"right\\\");var h=s.model.categoryLabel,p=o.parcatsViewModel.model.count,d=0;o.categoryViewModel.bands.forEach(function(t){t.color===o.color&&(d+=t.count)});var g=s.model.count,v=0;c.pathSelection.each(function(t){t.model.color===o.color&&(v+=t.model.count)});var m=[];if(-1!==s.parcatsViewModel.hoverinfoItems.indexOf(\\\"count\\\")&&m.push([\\\"Count:\\\",d].join(\\\" \\\")),-1!==s.parcatsViewModel.hoverinfoItems.indexOf(\\\"probability\\\")){var y=\\\"P(color \\\\u2229 \\\"+h+\\\"): \\\"+(d/p).toFixed(3);m.push(y);var x=\\\"P(\\\"+h+\\\" | color): \\\"+(d/v).toFixed(3);m.push(x);var b=\\\"P(color | \\\"+h+\\\"): \\\"+(d/g).toFixed(3);m.push(b)}var _=m.join(\\\"<br>\\\"),w=l.mostReadable(o.color,[\\\"black\\\",\\\"white\\\"]);return{x:r-t.left,y:f-t.top,text:_,color:o.color,borderColor:\\\"black\\\",fontFamily:'Monaco, \\\"Courier New\\\", monospace',fontColor:w,fontSize:10,idealAlign:i}}(s,this):\\\"dimension\\\"===c&&(e=function(t,e){var r=[];return n.select(e.parentNode.parentNode).selectAll(\\\"g.category\\\").select(\\\"rect.catrect\\\").each(function(){r.push(A(t,this))}),r}(s,this)),e&&a.multiHovers(e,{container:i._hoverlayer.node(),outerContainer:i._paper.node(),gd:r})}}function S(t){var e=t.parcatsViewModel;if(!e.dragDimension&&(y(e.pathSelection),b(e.dimensionSelection.selectAll(\\\"g.category\\\")),_(e.dimensionSelection.selectAll(\\\"g.category\\\").selectAll(\\\"rect.bandrect\\\")),a.loneUnhover(e.graphDiv._fullLayout._hoverlayer.node()),e.pathSelection.sort(p),-1===e.hoverinfoItems.indexOf(\\\"skip\\\"))){\\\"color\\\"===t.parcatsViewModel.hoveron?M(this,\\\"plotly_unhover\\\",n.event):k(this,\\\"plotly_unhover\\\",n.event)}}function E(t){\\\"fixed\\\"!==t.parcatsViewModel.arrangement&&(t.dragDimensionDisplayInd=t.model.displayInd,t.initialDragDimensionDisplayInds=t.parcatsViewModel.model.dimensions.map(function(t){return t.displayInd}),t.dragHasMoved=!1,t.dragCategoryDisplayInd=null,n.select(this).selectAll(\\\"g.category\\\").select(\\\"rect.catrect\\\").each(function(e){var r=n.mouse(this)[0],i=n.mouse(this)[1];-2<=r&&r<=e.width+2&&-2<=i&&i<=e.height+2&&(t.dragCategoryDisplayInd=e.model.displayInd,t.initialDragCategoryDisplayInds=t.model.categories.map(function(t){return t.displayInd}),e.model.dragY=e.y,o.raiseToTop(this.parentNode),n.select(this.parentNode).selectAll(\\\"rect.bandrect\\\").each(function(e){e.y<i&&i<=e.y+e.height&&(t.potentialClickBand=this)}))}),t.parcatsViewModel.dragDimension=t,a.loneUnhover(t.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()))}function C(t){if(\\\"fixed\\\"!==t.parcatsViewModel.arrangement&&(t.dragHasMoved=!0,null!==t.dragDimensionDisplayInd)){var e=t.dragDimensionDisplayInd,r=e-1,i=e+1,a=t.parcatsViewModel.dimensions[e];if(null!==t.dragCategoryDisplayInd){var o=a.categories[t.dragCategoryDisplayInd];o.model.dragY+=n.event.dy;var s=o.model.dragY,l=o.model.displayInd,c=a.categories,u=c[l-1],f=c[l+1];void 0!==u&&s<u.y+u.height/2&&(o.model.displayInd=u.model.displayInd,u.model.displayInd=l),void 0!==f&&s+o.height>f.y+f.height/2&&(o.model.displayInd=f.model.displayInd,f.model.displayInd=l),t.dragCategoryDisplayInd=o.model.displayInd}if(null===t.dragCategoryDisplayInd||\\\"freeform\\\"===t.parcatsViewModel.arrangement){a.model.dragX=n.event.x;var h=t.parcatsViewModel.dimensions[r],p=t.parcatsViewModel.dimensions[i];void 0!==h&&a.model.dragX<h.x+h.width&&(a.model.displayInd=h.model.displayInd,h.model.displayInd=e),void 0!==p&&a.model.dragX+a.width>p.x&&(a.model.displayInd=p.model.displayInd,p.model.displayInd=t.dragDimensionDisplayInd),t.dragDimensionDisplayInd=a.model.displayInd}R(t.parcatsViewModel),D(t.parcatsViewModel),I(t.parcatsViewModel),O(t.parcatsViewModel)}}function L(t){if(\\\"fixed\\\"!==t.parcatsViewModel.arrangement&&null!==t.dragDimensionDisplayInd){n.select(this).selectAll(\\\"text\\\").attr(\\\"font-weight\\\",\\\"normal\\\");var e={},r=z(t.parcatsViewModel),a=t.parcatsViewModel.model.dimensions.map(function(t){return t.displayInd}),o=t.initialDragDimensionDisplayInds.some(function(t,e){return t!==a[e]});o&&a.forEach(function(r,n){var i=t.parcatsViewModel.model.dimensions[n].containerInd;e[\\\"dimensions[\\\"+i+\\\"].displayindex\\\"]=r});var s=!1;if(null!==t.dragCategoryDisplayInd){var l=t.model.categories.map(function(t){return t.displayInd});if(s=t.initialDragCategoryDisplayInds.some(function(t,e){return t!==l[e]})){var c=t.model.categories.slice().sort(function(t,e){return t.displayInd-e.displayInd}),u=c.map(function(t){return t.categoryValue}),f=c.map(function(t){return t.categoryLabel});e[\\\"dimensions[\\\"+t.model.containerInd+\\\"].categoryarray\\\"]=[u],e[\\\"dimensions[\\\"+t.model.containerInd+\\\"].ticktext\\\"]=[f],e[\\\"dimensions[\\\"+t.model.containerInd+\\\"].categoryorder\\\"]=\\\"array\\\"}}if(-1===t.parcatsViewModel.hoverinfoItems.indexOf(\\\"skip\\\")&&!t.dragHasMoved&&t.potentialClickBand&&(\\\"color\\\"===t.parcatsViewModel.hoveron?M(t.potentialClickBand,\\\"plotly_click\\\",n.event.sourceEvent):k(t.potentialClickBand,\\\"plotly_click\\\",n.event.sourceEvent)),t.model.dragX=null,null!==t.dragCategoryDisplayInd)t.parcatsViewModel.dimensions[t.dragDimensionDisplayInd].categories[t.dragCategoryDisplayInd].model.dragY=null,t.dragCategoryDisplayInd=null;t.dragDimensionDisplayInd=null,t.parcatsViewModel.dragDimension=null,t.dragHasMoved=null,t.potentialClickBand=null,R(t.parcatsViewModel),D(t.parcatsViewModel),n.transition().duration(300).ease(\\\"cubic-in-out\\\").each(function(){I(t.parcatsViewModel,!0),O(t.parcatsViewModel,!0)}).each(\\\"end\\\",function(){(o||s)&&i.restyle(t.parcatsViewModel.graphDiv,e,[r])})}}function z(t){for(var e,r=t.graphDiv._fullData,n=0;n<r.length;n++)if(t.key===r[n].uid){e=n;break}return e}function O(t,e){var r;void 0===e&&(e=!1),t.pathSelection.data(function(t){return t.paths},f),(r=t.pathSelection,e?r.transition():r).attr(\\\"d\\\",function(t){return t.svgD})}function I(t,e){function r(t){return e?t.transition():t}void 0===e&&(e=!1),t.dimensionSelection.data(function(t){return t.dimensions},f);var i=t.dimensionSelection.selectAll(\\\"g.category\\\").data(function(t){return t.categories},f);r(t.dimensionSelection).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\", 0)\\\"}),r(i).attr(\\\"transform\\\",function(t){return\\\"translate(0, \\\"+t.y+\\\")\\\"}),i.select(\\\".dimlabel\\\").text(function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null}),i.select(\\\".catlabel\\\").attr(\\\"text-anchor\\\",function(t){return h(t)?\\\"start\\\":\\\"end\\\"}).attr(\\\"x\\\",function(t){return h(t)?t.width+5:-5}).each(function(t){var e,r;h(t)?(e=t.width+5,r=\\\"start\\\"):(e=-5,r=\\\"end\\\"),n.select(this).selectAll(\\\"tspan\\\").attr(\\\"x\\\",e).attr(\\\"text-anchor\\\",r)});var a=i.selectAll(\\\"rect.bandrect\\\").data(function(t){return t.bands},f),s=a.enter().append(\\\"rect\\\").attr(\\\"class\\\",\\\"bandrect\\\").attr(\\\"cursor\\\",\\\"move\\\").attr(\\\"stroke-opacity\\\",0).attr(\\\"fill\\\",function(t){return t.color}).attr(\\\"fill-opacity\\\",0);a.attr(\\\"fill\\\",function(t){return t.color}).attr(\\\"width\\\",function(t){return t.width}).attr(\\\"height\\\",function(t){return t.height}).attr(\\\"y\\\",function(t){return t.y}),_(s),a.each(function(){o.raiseToTop(this)}),a.exit().remove()}function P(t,e,r,i,a){var o,s,l=[],c=[];for(s=0;s<r.length-1;s++)o=n.interpolateNumber(r[s]+t[s],t[s+1]),l.push(o(a)),c.push(o(1-a));var u=\\\"M \\\"+t[0]+\\\",\\\"+e[0];for(u+=\\\"l\\\"+r[0]+\\\",0 \\\",s=1;s<r.length;s++)u+=\\\"C\\\"+l[s-1]+\\\",\\\"+e[s-1]+\\\" \\\"+c[s-1]+\\\",\\\"+e[s]+\\\" \\\"+t[s]+\\\",\\\"+e[s],u+=\\\"l\\\"+r[s]+\\\",0 \\\";for(u+=\\\"l0,\\\"+i+\\\" \\\",u+=\\\"l -\\\"+r[r.length-1]+\\\",0 \\\",s=r.length-2;s>=0;s--)u+=\\\"C\\\"+c[s]+\\\",\\\"+(e[s+1]+i)+\\\" \\\"+l[s]+\\\",\\\"+(e[s]+i)+\\\" \\\"+(t[s]+r[s])+\\\",\\\"+(e[s]+i),u+=\\\"l-\\\"+r[s]+\\\",0 \\\";return u+=\\\"Z\\\"}function D(t){var e=t.dimensions,r=t.model,n=e.map(function(t){return t.categories.map(function(t){return t.y})}),i=t.model.dimensions.map(function(t){return t.categories.map(function(t){return t.displayInd})}),a=t.model.dimensions.map(function(t){return t.displayInd}),o=t.dimensions.map(function(t){return t.model.dimensionInd}),s=e.map(function(t){return t.x}),l=e.map(function(t){return t.width}),c=[];for(var u in r.paths)r.paths.hasOwnProperty(u)&&c.push(r.paths[u]);function f(t){var e=t.categoryInds.map(function(t,e){return i[e][t]});return o.map(function(t){return e[t]})}c.sort(function(e,r){var n=f(e),i=f(r);return\\\"backward\\\"===t.sortpaths&&(n.reverse(),i.reverse()),n.push(e.valueInds[0]),i.push(r.valueInds[0]),t.bundlecolors&&(n.unshift(e.rawColor),i.unshift(r.rawColor)),n<i?-1:n>i?1:0});for(var h=new Array(c.length),p=e[0].model.count,d=e[0].categories.map(function(t){return t.height}).reduce(function(t,e){return t+e}),g=0;g<c.length;g++){var v,m=c[g];v=p>0?d*(m.count/p):0;for(var y,x=new Array(n.length),b=0;b<m.categoryInds.length;b++){var _=m.categoryInds[b],w=i[b][_],k=a[b];x[k]=n[k][w],n[k][w]+=v;var M=t.dimensions[k].categories[w],A=M.bands.length,T=M.bands[A-1];if(void 0===T||m.rawColor!==T.rawColor){var S=void 0===T?0:T.y+T.height;M.bands.push({key:S,color:m.color,rawColor:m.rawColor,height:v,width:M.width,count:m.count,y:S,categoryViewModel:M,parcatsViewModel:t})}else{var E=M.bands[A-1];E.height+=v,E.count+=m.count}}y=\\\"hspline\\\"===t.pathShape?P(s,x,l,v,.5):P(s,x,l,v,0),h[g]={key:m.valueInds[0],model:m,height:v,leftXs:s,topYs:x,dimWidths:l,svgD:y,parcatsViewModel:t}}t.paths=h}function R(t){var e=t.model.dimensions.map(function(t){return{displayInd:t.displayInd,dimensionInd:t.dimensionInd}});e.sort(function(t,e){return t.displayInd-e.displayInd});var r=[];for(var n in e){var i=e[n].dimensionInd,a=t.model.dimensions[i];r.push(B(t,a))}t.dimensions=r}function B(t,e){var r,n=t.model.dimensions.length,i=e.displayInd;r=40+(n>1?(t.width-80-16)/(n-1):0)*i;var a,o,s,l,c,u=[],f=t.model.maxCats,h=e.categories.length,p=e.count,d=t.height-8*(f-1),g=8*(f-h)/2,v=e.categories.map(function(t){return{displayInd:t.displayInd,categoryInd:t.categoryInd}});for(v.sort(function(t,e){return t.displayInd-e.displayInd}),c=0;c<h;c++)l=v[c].categoryInd,o=e.categories[l],a=p>0?o.count/p*d:0,s={key:o.valueInds[0],model:o,width:16,height:a,y:null!==o.dragY?o.dragY:g,bands:[],parcatsViewModel:t},g=g+a+8,u.push(s);return{key:e.dimensionInd,x:null!==e.dragX?e.dragX:r,y:0,width:16,model:e,categories:u,parcatsViewModel:t,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}e.exports=function(t,e,r,n){u(r,t,n,e)}},{\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"../../plot_api/plot_api\\\":731,d3:148,tinycolor2:514}],1006:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./parcats\\\");e.exports=function(t,e,r,i){var a=t._fullLayout,o=a._paper,s=a._size;n(t,o,e,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},r,i)}},{\\\"./parcats\\\":1005}],1007:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../../plots/cartesian/layout_attributes\\\"),o=t(\\\"../../plots/font_attributes\\\"),s=t(\\\"../../plots/domain\\\").attributes,l=t(\\\"../../lib/extend\\\").extendFlat,c=t(\\\"../../plot_api/plot_template\\\").templatedArray;e.exports={domain:s({name:\\\"parcoords\\\",trace:!0,editType:\\\"calc\\\"}),hoverlabel:void 0,labelfont:o({editType:\\\"calc\\\"}),tickfont:o({editType:\\\"calc\\\"}),rangefont:o({editType:\\\"calc\\\"}),dimensions:c(\\\"dimension\\\",{label:{valType:\\\"string\\\",editType:\\\"calc\\\"},tickvals:l({},a.tickvals,{editType:\\\"calc\\\"}),ticktext:l({},a.ticktext,{editType:\\\"calc\\\"}),tickformat:{valType:\\\"string\\\",dflt:\\\"3s\\\",editType:\\\"calc\\\"},visible:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},range:{valType:\\\"info_array\\\",items:[{valType:\\\"number\\\",editType:\\\"calc\\\"},{valType:\\\"number\\\",editType:\\\"calc\\\"}],editType:\\\"calc\\\"},constraintrange:{valType:\\\"info_array\\\",freeLength:!0,dimensions:\\\"1-2\\\",items:[{valType:\\\"number\\\",editType:\\\"calc\\\"},{valType:\\\"number\\\",editType:\\\"calc\\\"}],editType:\\\"calc\\\"},multiselect:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},values:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"}),line:l(n(\\\"line\\\",{colorscaleDflt:\\\"Viridis\\\",autoColorDflt:!1,editTypeOverride:\\\"calc\\\"}),{colorbar:i,editType:\\\"calc\\\"})}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/layout_attributes\\\":757,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771}],1008:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"d3\\\"),a=t(\\\"../../lib/gup\\\").keyFun,o=t(\\\"../../lib/gup\\\").repeat,s=t(\\\"../../lib\\\").sorterAsc,l=n.bar.snapRatio;function c(t,e){return t*(1-l)+e*l}var u=n.bar.snapClose;function f(t,e){return t*(1-u)+e*u}function h(t,e,r){if(d(e,r))return e;for(var n=t[0],i=n,a=1;a<t.length;a++){var o=t[a];if(e<f(n,o))return c(n,i);if(e<o||a===t.length-1)return c(o,n);i=n,n=o}}function p(t,e,r){if(d(e,r))return e;for(var n=t[t.length-1],i=n,a=t.length-2;a>=0;a--){var o=t[a];if(e>f(n,o))return c(n,i);if(e>o||a===t.length-1)return c(o,n);i=n,n=o}}function d(t,e){for(var r=0;r<e.length;r++)if(t>=e[r][0]&&t<=e[r][1])return!0;return!1}function g(t){t.attr(\\\"x\\\",-n.bar.captureWidth/2).attr(\\\"width\\\",n.bar.captureWidth)}function v(t){t.attr(\\\"visibility\\\",\\\"visible\\\").style(\\\"visibility\\\",\\\"visible\\\").attr(\\\"fill\\\",\\\"yellow\\\").attr(\\\"opacity\\\",0)}function m(t){if(!t.brush.filterSpecified)return\\\"0,\\\"+t.height;for(var e,r,n,i=y(t.brush.filter.getConsolidated(),t.height),a=[0],o=i.length?i[0][0]:null,s=0;s<i.length;s++)r=(e=i[s])[1]-e[0],a.push(o),a.push(r),(n=s+1)<i.length&&(o=i[n][0]-e[1]);return a.push(t.height),a}function y(t,e){return t.map(function(t){return t.map(function(t){return t*e}).sort(s)})}function x(){i.select(document.body).style(\\\"cursor\\\",null)}function b(t){t.attr(\\\"stroke-dasharray\\\",m)}function _(t,e){var r=i.select(t).selectAll(\\\".highlight, .highlight-shadow\\\");b(e?r.transition().duration(n.bar.snapDuration).each(\\\"end\\\",e):r)}function w(t,e){var r,i=t.brush,a=NaN,o={};if(i.filterSpecified){var s=t.height,l=i.filter.getConsolidated(),c=y(l,s),u=NaN,f=NaN,h=NaN;for(r=0;r<=c.length;r++){var p=c[r];if(p&&p[0]<=e&&e<=p[1]){u=r;break}if(f=r?r-1:NaN,p&&p[0]>e){h=r;break}}if(a=u,isNaN(a)&&(a=isNaN(f)||isNaN(h)?isNaN(f)?h:f:e-c[f][1]<c[h][0]-e?f:h),!isNaN(a)){var d=c[a],g=function(t,e){var r=n.bar.handleHeight;if(!(e>t[1]+r||e<t[0]-r))return e>=.9*t[1]+.1*t[0]?\\\"n\\\":e<=.9*t[0]+.1*t[1]?\\\"s\\\":\\\"ns\\\"}(d,e);g&&(o.interval=l[a],o.intervalPix=d,o.region=g)}}if(t.ordinal&&!o.region){var v=t.unitTickvals,m=t.unitToPaddedPx.invert(e);for(r=0;r<v.length;r++){var x=[.25*v[Math.max(r-1,0)]+.75*v[r],.25*v[Math.min(r+1,v.length-1)]+.75*v[r]];if(m>=x[0]&&m<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function k(t){t.on(\\\"mousemove\\\",function(t){if(i.event.preventDefault(),!t.parent.inBrushDrag){var e=w(t,t.height-i.mouse(this)[1]-2*n.verticalPadding),r=\\\"crosshair\\\";e.clickableOrdinalRange?r=\\\"pointer\\\":e.region&&(r=e.region+\\\"-resize\\\"),i.select(document.body).style(\\\"cursor\\\",r)}}).on(\\\"mouseleave\\\",function(t){t.parent.inBrushDrag||x()}).call(i.behavior.drag().on(\\\"dragstart\\\",function(t){i.event.sourceEvent.stopPropagation();var e=t.height-i.mouse(this)[1]-2*n.verticalPadding,r=t.unitToPaddedPx.invert(e),a=t.brush,o=w(t,e),s=o.interval,l=a.svgBrush;if(l.wasDragged=!1,l.grabbingBar=\\\"ns\\\"===o.region,l.grabbingBar){var c=s.map(t.unitToPaddedPx);l.grabPoint=e-c[0]-n.verticalPadding,l.barLength=c[1]-c[0]}l.clickableOrdinalRange=o.clickableOrdinalRange,l.stayingIntervals=t.multiselect&&a.filterSpecified?a.filter.getConsolidated():[],s&&(l.stayingIntervals=l.stayingIntervals.filter(function(t){return t[0]!==s[0]&&t[1]!==s[1]})),l.startExtent=o.region?s[\\\"s\\\"===o.region?1:0]:r,t.parent.inBrushDrag=!0,l.brushStartCallback()}).on(\\\"drag\\\",function(t){i.event.sourceEvent.stopPropagation();var e=t.height-i.mouse(this)[1]-2*n.verticalPadding,r=t.brush.svgBrush;r.wasDragged=!0,r.grabbingBar?r.newExtent=[e-r.grabPoint,e+r.barLength-r.grabPoint].map(t.unitToPaddedPx.invert):r.newExtent=[r.startExtent,t.unitToPaddedPx.invert(e)].sort(s);var a=Math.max(0,-r.newExtent[0]),o=Math.max(0,r.newExtent[1]-1);r.newExtent[0]+=a,r.newExtent[1]-=o,r.grabbingBar&&(r.newExtent[1]+=a,r.newExtent[0]-=o),t.brush.filterSpecified=!0,r.extent=r.stayingIntervals.concat([r.newExtent]),r.brushCallback(t),_(this.parentNode)}).on(\\\"dragend\\\",function(t){i.event.sourceEvent.stopPropagation();var e=t.brush,r=e.filter,n=e.svgBrush,a=n.grabbingBar;if(n.grabbingBar=!1,n.grabLocation=void 0,t.parent.inBrushDrag=!1,x(),!n.wasDragged)return n.wasDragged=void 0,n.clickableOrdinalRange?e.filterSpecified&&t.multiselect?n.extent.push(n.clickableOrdinalRange):(n.extent=[n.clickableOrdinalRange],e.filterSpecified=!0):a?(n.extent=n.stayingIntervals,0===n.extent.length&&A(e)):A(e),n.brushCallback(t),_(this.parentNode),void n.brushEndCallback(e.filterSpecified?r.getConsolidated():[]);var o=function(){r.set(r.getConsolidated())};if(t.ordinal){var s=t.unitTickvals;s[s.length-1]<s[0]&&s.reverse(),n.newExtent=[h(s,n.newExtent[0],n.stayingIntervals),p(s,n.newExtent[1],n.stayingIntervals)];var l=n.newExtent[1]>n.newExtent[0];n.extent=n.stayingIntervals.concat(l?[n.newExtent]:[]),n.extent.length||A(e),n.brushCallback(t),l?_(this.parentNode,o):(o(),_(this.parentNode))}else o();n.brushEndCallback(e.filterSpecified?r.getConsolidated():[])}))}function M(t,e){return t[0]-e[0]}function A(t){t.filterSpecified=!1,t.svgBrush.extent=[[0,1]]}function T(t){for(var e,r=t.slice(),n=[],i=r.shift();i;){for(e=i.slice();(i=r.shift())&&i[0]<=e[1];)e[1]=Math.max(e[1],i[1]);n.push(e)}return n}e.exports={makeBrush:function(t,e,r,n,i,a){var o,l=function(){var t,e,r=[];return{set:function(n){r=n.map(function(t){return t.slice().sort(s)}).sort(M),t=T(r),e=r.reduce(function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]},[1/0,-1/0])},get:function(){return r.slice()},getConsolidated:function(){return t},getBounds:function(){return e}}}();return l.set(r),{filter:l,filterSpecified:e,svgBrush:{extent:[],brushStartCallback:n,brushCallback:(o=i,function(t){var e=t.brush,r=function(t){return t.svgBrush.extent.map(function(t){return t.slice()})}(e).slice();e.filter.set(r),o()}),brushEndCallback:a}}},ensureAxisBrush:function(t){var e=t.selectAll(\\\".\\\"+n.cn.axisBrush).data(o,a);e.enter().append(\\\"g\\\").classed(n.cn.axisBrush,!0),function(t){var e=t.selectAll(\\\".background\\\").data(o);e.enter().append(\\\"rect\\\").classed(\\\"background\\\",!0).call(g).call(v).style(\\\"pointer-events\\\",\\\"auto\\\").attr(\\\"transform\\\",\\\"translate(0 \\\"+n.verticalPadding+\\\")\\\"),e.call(k).attr(\\\"height\\\",function(t){return t.height-n.verticalPadding});var r=t.selectAll(\\\".highlight-shadow\\\").data(o);r.enter().append(\\\"line\\\").classed(\\\"highlight-shadow\\\",!0).attr(\\\"x\\\",-n.bar.width/2).attr(\\\"stroke-width\\\",n.bar.width+n.bar.strokeWidth).attr(\\\"stroke\\\",n.bar.strokeColor).attr(\\\"opacity\\\",n.bar.strokeOpacity).attr(\\\"stroke-linecap\\\",\\\"butt\\\"),r.attr(\\\"y1\\\",function(t){return t.height}).call(b);var i=t.selectAll(\\\".highlight\\\").data(o);i.enter().append(\\\"line\\\").classed(\\\"highlight\\\",!0).attr(\\\"x\\\",-n.bar.width/2).attr(\\\"stroke-width\\\",n.bar.width-n.bar.strokeWidth).attr(\\\"stroke\\\",n.bar.fillColor).attr(\\\"opacity\\\",n.bar.fillOpacity).attr(\\\"stroke-linecap\\\",\\\"butt\\\"),i.attr(\\\"y1\\\",function(t){return t.height}).call(b)}(e)},cleanRanges:function(t,e){if(Array.isArray(t[0])?(t=t.map(function(t){return t.sort(s)}),t=e.multiselect?T(t.sort(M)):[t[0]]):t=[t.sort(s)],e.tickvals){var r=e.tickvals.slice().sort(s);if(!(t=t.map(function(t){var e=[h(r,t[0],[]),p(r,t[1],[])];if(e[1]>e[0])return e}).filter(function(t){return t})).length)return}return t.length>1?t:t[0]}}},{\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"./constants\\\":1011,d3:148}],1009:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../plots/get_data\\\").getModuleCalcData,a=t(\\\"./plot\\\"),o=t(\\\"../../constants/xmlns_namespaces\\\");r.name=\\\"parcoords\\\",r.plot=function(t){var e=i(t.calcdata,\\\"parcoords\\\")[0];e.length&&a(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"parcoords\\\"),a=e._has&&e._has(\\\"parcoords\\\");i&&!a&&(n._paperdiv.selectAll(\\\".parcoords\\\").remove(),n._glimages.selectAll(\\\"*\\\").remove())},r.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(\\\".svg-container\\\");r.filter(function(t,e){return e===r.size()-1}).selectAll(\\\".gl-canvas-context, .gl-canvas-focus\\\").each(function(){var t=this.toDataURL(\\\"image/png\\\");e.append(\\\"svg:image\\\").attr({xmlns:o.svg,\\\"xlink:href\\\":t,preserveAspectRatio:\\\"none\\\",x:0,y:0,width:this.width,height:this.height})}),window.setTimeout(function(){n.selectAll(\\\"#filterBarPattern\\\").attr(\\\"id\\\",\\\"filterBarPattern\\\")},60)}},{\\\"../../constants/xmlns_namespaces\\\":674,\\\"../../plots/get_data\\\":781,\\\"./plot\\\":1017,d3:148}],1010:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/has_colorscale\\\"),i=t(\\\"../../components/colorscale/calc\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"../../lib/gup\\\").wrap;e.exports=function(t,e){var r=!!e.line.colorscale&&a.isArrayOrTypedArray(e.line.color),s=r?e.line.color:function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=.5;return e}(e._length),l=r?e.line.colorscale:[[0,e.line.color],[1,e.line.color]];return n(e,\\\"line\\\")&&i(e,s,\\\"line\\\",\\\"c\\\"),o({lineColor:s,cscale:l})}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693}],1011:[function(t,e,r){\\\"use strict\\\";e.exports={maxDimensionCount:60,overdrag:45,verticalPadding:2,tickDistance:50,canvasPixelRatio:1,blockLineCount:5e3,layers:[\\\"contextLineLayer\\\",\\\"focusLineLayer\\\",\\\"pickLineLayer\\\"],axisTitleOffset:28,axisExtentOffset:10,bar:{width:4,captureWidth:10,fillColor:\\\"magenta\\\",fillOpacity:1,snapDuration:150,snapRatio:.25,snapClose:.01,strokeColor:\\\"white\\\",strokeOpacity:1,strokeWidth:1,handleHeight:8,handleOpacity:1,handleOverlap:0},cn:{axisExtentText:\\\"axis-extent-text\\\",parcoordsLineLayers:\\\"parcoords-line-layers\\\",parcoordsLineLayer:\\\"parcoords-lines\\\",parcoords:\\\"parcoords\\\",parcoordsControlView:\\\"parcoords-control-view\\\",yAxis:\\\"y-axis\\\",axisOverlays:\\\"axis-overlays\\\",axis:\\\"axis\\\",axisHeading:\\\"axis-heading\\\",axisTitle:\\\"axis-title\\\",axisExtent:\\\"axis-extent\\\",axisExtentTop:\\\"axis-extent-top\\\",axisExtentTopText:\\\"axis-extent-top-text\\\",axisExtentBottom:\\\"axis-extent-bottom\\\",axisExtentBottomText:\\\"axis-extent-bottom-text\\\",axisBrush:\\\"axis-brush\\\"},id:{filterBarPattern:\\\"filter-bar-pattern\\\"}}},{}],1012:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"../../plots/domain\\\").defaults,s=t(\\\"../../plots/array_container_defaults\\\"),l=t(\\\"./attributes\\\"),c=t(\\\"./axisbrush\\\"),u=t(\\\"./constants\\\").maxDimensionCount,f=t(\\\"./merge_length\\\");function h(t,e){function r(r,i){return n.coerce(t,e,l.dimensions,r,i)}var i=r(\\\"values\\\"),a=r(\\\"visible\\\");if(i&&i.length||(a=e.visible=!1),a){r(\\\"label\\\"),r(\\\"tickvals\\\"),r(\\\"ticktext\\\"),r(\\\"tickformat\\\"),r(\\\"range\\\"),r(\\\"multiselect\\\");var o=r(\\\"constraintrange\\\");o&&(e.constraintrange=c.cleanRanges(o,e))}}e.exports=function(t,e,r,c){function p(r,i){return n.coerce(t,e,l,r,i)}var d=t.dimensions;Array.isArray(d)&&d.length>u&&(n.log(\\\"parcoords traces support up to \\\"+u+\\\" dimensions at the moment\\\"),d.splice(u));var g=s(t,e,{name:\\\"dimensions\\\",handleItemDefaults:h}),v=function(t,e,r,o,s){var l=s(\\\"line.color\\\",r);if(i(t,\\\"line\\\")&&n.isArrayOrTypedArray(l)){if(l.length)return s(\\\"line.colorscale\\\"),a(t,e,o,s,{prefix:\\\"line.\\\",cLetter:\\\"c\\\"}),l.length;e.line.color=r}return 1/0}(t,e,r,c,p);o(e,c,p),Array.isArray(g)&&g.length||(e.visible=!1),f(e,g,\\\"values\\\",v);var m={family:c.font.family,size:Math.round(c.font.size/1.2),color:c.font.color};n.coerceFont(p,\\\"labelfont\\\",m),n.coerceFont(p,\\\"tickfont\\\",m),n.coerceFont(p,\\\"rangefont\\\",m)}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../../plots/domain\\\":770,\\\"./attributes\\\":1007,\\\"./axisbrush\\\":1008,\\\"./constants\\\":1011,\\\"./merge_length\\\":1015}],1013:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.colorbar={container:\\\"line\\\",min:\\\"cmin\\\",max:\\\"cmax\\\"},n.moduleType=\\\"trace\\\",n.name=\\\"parcoords\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"gl\\\",\\\"regl\\\",\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1007,\\\"./base_plot\\\":1009,\\\"./calc\\\":1010,\\\"./defaults\\\":1012,\\\"./plot\\\":1017}],1014:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"glslify\\\"),i=n([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 p0, p1, p2, p3,\\\\n               p4, p5, p6, p7,\\\\n               p8, p9, pa, pb,\\\\n               pc, pd, pe;\\\\n\\\\nattribute vec4 pf;\\\\n\\\\nuniform mat4 dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D,\\\\n             loA, hiA, loB, hiB, loC, hiC, loD, hiD;\\\\n\\\\nuniform vec2 resolution,\\\\n             viewBoxPosition,\\\\n             viewBoxSize;\\\\n\\\\nuniform sampler2D palette;\\\\nuniform sampler2D mask;\\\\nuniform float maskHeight;\\\\n\\\\nuniform vec2 colorClamp;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvec4 unit_1 = vec4(1, 1, 1, 1);\\\\n\\\\nfloat val(mat4 p, mat4 v) {\\\\n    return dot(matrixCompMult(p, v) * unit_1, unit_1);\\\\n}\\\\n\\\\nfloat axisY(\\\\n        float x,\\\\n        mat4 d[4],\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D\\\\n    ) {\\\\n\\\\n    float y1 = val(d[0], dim1A) + val(d[1], dim1B) + val(d[2], dim1C) + val(d[3], dim1D);\\\\n    float y2 = val(d[0], dim2A) + val(d[1], dim2B) + val(d[2], dim2C) + val(d[3], dim2D);\\\\n    return y1 * (1.0 - x) + y2 * x;\\\\n}\\\\n\\\\nconst int bitsPerByte = 8;\\\\n\\\\nint mod2(int a) {\\\\n    return a - 2 * (a / 2);\\\\n}\\\\n\\\\nint mod8(int a) {\\\\n    return a - 8 * (a / 8);\\\\n}\\\\n\\\\nvec4 zero = vec4(0, 0, 0, 0);\\\\nvec4 unit_0 = vec4(1, 1, 1, 1);\\\\nvec2 xyProjection = vec2(1, 1);\\\\n\\\\nmat4 mclamp(mat4 m, mat4 lo, mat4 hi) {\\\\n    return mat4(clamp(m[0], lo[0], hi[0]),\\\\n                clamp(m[1], lo[1], hi[1]),\\\\n                clamp(m[2], lo[2], hi[2]),\\\\n                clamp(m[3], lo[3], hi[3]));\\\\n}\\\\n\\\\nbool mshow(mat4 p, mat4 lo, mat4 hi) {\\\\n    return mclamp(p, lo, hi) == p;\\\\n}\\\\n\\\\nbool withinBoundingBox(\\\\n        mat4 d[4],\\\\n        mat4 loA, mat4 hiA, mat4 loB, mat4 hiB, mat4 loC, mat4 hiC, mat4 loD, mat4 hiD\\\\n    ) {\\\\n\\\\n    return mshow(d[0], loA, hiA) &&\\\\n           mshow(d[1], loB, hiB) &&\\\\n           mshow(d[2], loC, hiC) &&\\\\n           mshow(d[3], loD, hiD);\\\\n}\\\\n\\\\nbool withinRasterMask(mat4 d[4], sampler2D mask, float height) {\\\\n    bool result = true;\\\\n    int bitInByteStepper;\\\\n    float valY, valueY, scaleX;\\\\n    int hit, bitmask, valX;\\\\n    for(int i = 0; i < 4; i++) {\\\\n        for(int j = 0; j < 4; j++) {\\\\n            for(int k = 0; k < 4; k++) {\\\\n                bitInByteStepper = mod8(j * 4 + k);\\\\n                valX = i * 2 + j / 2;\\\\n                valY = d[i][j][k];\\\\n                valueY = valY * (height - 1.0) + 0.5;\\\\n                scaleX = (float(valX) + 0.5) / 8.0;\\\\n                hit = int(texture2D(mask, vec2(scaleX, (valueY + 0.5) / height))[3] * 255.0) / int(pow(2.0, float(bitInByteStepper)));\\\\n                result = result && mod2(hit) == 1;\\\\n            }\\\\n        }\\\\n    }\\\\n    return result;\\\\n}\\\\n\\\\nvec4 position(\\\\n        float depth,\\\\n        vec2 resolution, vec2 viewBoxPosition, vec2 viewBoxSize,\\\\n        mat4 dims[4],\\\\n        float signum,\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D,\\\\n        mat4 loA, mat4 hiA, mat4 loB, mat4 hiB, mat4 loC, mat4 hiC, mat4 loD, mat4 hiD,\\\\n        sampler2D mask, float maskHeight\\\\n    ) {\\\\n\\\\n    float x = 0.5 * signum + 0.5;\\\\n    float y = axisY(x, dims, dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D);\\\\n\\\\n    float show = float(\\\\n                            withinBoundingBox(dims, loA, hiA, loB, hiB, loC, hiC, loD, hiD)\\\\n                         && withinRasterMask(dims, mask, maskHeight)\\\\n                      );\\\\n\\\\n    vec2 viewBoxXY = viewBoxPosition + viewBoxSize * vec2(x, y);\\\\n    float depthOrHide = depth + 2.0 * (1.0 - show);\\\\n\\\\n    return vec4(\\\\n        xyProjection * (2.0 * viewBoxXY / resolution - 1.0),\\\\n        depthOrHide,\\\\n        1.0\\\\n    );\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\n    float prominence = abs(pf[3]);\\\\n\\\\n    mat4 p[4];\\\\n    p[0] = mat4(p0, p1, p2, p3);\\\\n    p[1] = mat4(p4, p5, p6, p7);\\\\n    p[2] = mat4(p8, p9, pa, pb);\\\\n    p[3] = mat4(pc, pd, pe, abs(pf));\\\\n\\\\n    gl_Position = position(\\\\n        1.0 - prominence,\\\\n        resolution, viewBoxPosition, viewBoxSize,\\\\n        p,\\\\n        sign(pf[3]),\\\\n        dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D,\\\\n        loA, hiA, loB, hiB, loC, hiC, loD, hiD,\\\\n        mask, maskHeight\\\\n    );\\\\n\\\\n    float clampedColorIndex = clamp((prominence - colorClamp[0]) / (colorClamp[1] - colorClamp[0]), 0.0, 1.0);\\\\n    fragColor = texture2D(palette, vec2((clampedColorIndex * 255.0 + 0.5) / 256.0, 0.5));\\\\n}\\\\n\\\"]),a=n([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 p0, p1, p2, p3,\\\\n               p4, p5, p6, p7,\\\\n               p8, p9, pa, pb,\\\\n               pc, pd, pe;\\\\n\\\\nattribute vec4 pf;\\\\n\\\\nuniform mat4 dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D;\\\\n\\\\nuniform vec2 resolution,\\\\n             viewBoxPosition,\\\\n             viewBoxSize;\\\\n\\\\nuniform sampler2D palette;\\\\n\\\\nuniform vec2 colorClamp;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvec2 xyProjection = vec2(1, 1);\\\\n\\\\nvec4 unit = vec4(1, 1, 1, 1);\\\\n\\\\nfloat val(mat4 p, mat4 v) {\\\\n    return dot(matrixCompMult(p, v) * unit, unit);\\\\n}\\\\n\\\\nfloat axisY(\\\\n        float x,\\\\n        mat4 d[4],\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D\\\\n    ) {\\\\n\\\\n    float y1 = val(d[0], dim1A) + val(d[1], dim1B) + val(d[2], dim1C) + val(d[3], dim1D);\\\\n    float y2 = val(d[0], dim2A) + val(d[1], dim2B) + val(d[2], dim2C) + val(d[3], dim2D);\\\\n    return y1 * (1.0 - x) + y2 * x;\\\\n}\\\\n\\\\nvec4 position(\\\\n        float depth,\\\\n        vec2 resolution, vec2 viewBoxPosition, vec2 viewBoxSize,\\\\n        mat4 dims[4],\\\\n        float signum,\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D\\\\n    ) {\\\\n\\\\n    float x = 0.5 * signum + 0.5;\\\\n    float y = axisY(x, dims, dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D);\\\\n\\\\n    vec2 viewBoxXY = viewBoxPosition + viewBoxSize * vec2(x, y);\\\\n\\\\n    return vec4(\\\\n        xyProjection * (2.0 * viewBoxXY / resolution - 1.0),\\\\n        depth,\\\\n        1.0\\\\n    );\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\n    float prominence = abs(pf[3]);\\\\n\\\\n    mat4 p[4];\\\\n    p[0] = mat4(p0, p1, p2, p3);\\\\n    p[1] = mat4(p4, p5, p6, p7);\\\\n    p[2] = mat4(p8, p9, pa, pb);\\\\n    p[3] = mat4(pc, pd, pe, abs(pf));\\\\n\\\\n    gl_Position = position(\\\\n        1.0 - prominence,\\\\n        resolution, viewBoxPosition, viewBoxSize,\\\\n        p,\\\\n        sign(pf[3]),\\\\n        dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D\\\\n    );\\\\n\\\\n    float clampedColorIndex = clamp((prominence - colorClamp[0]) / (colorClamp[1] - colorClamp[0]), 0.0, 1.0);\\\\n    fragColor = texture2D(palette, vec2((clampedColorIndex * 255.0 + 0.5) / 256.0, 0.5));\\\\n}\\\\n\\\"]),o=n([\\\"precision highp float;\\\\n#define GLSLIFY 1\\\\n\\\\nattribute vec4 p0, p1, p2, p3,\\\\n               p4, p5, p6, p7,\\\\n               p8, p9, pa, pb,\\\\n               pc, pd, pe;\\\\n\\\\nattribute vec4 pf;\\\\n\\\\nuniform mat4 dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D,\\\\n             loA, hiA, loB, hiB, loC, hiC, loD, hiD;\\\\n\\\\nuniform vec2 resolution,\\\\n             viewBoxPosition,\\\\n             viewBoxSize;\\\\n\\\\nuniform sampler2D mask;\\\\nuniform float maskHeight;\\\\n\\\\nuniform vec2 colorClamp;\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvec4 unit_1 = vec4(1, 1, 1, 1);\\\\n\\\\nfloat val(mat4 p, mat4 v) {\\\\n    return dot(matrixCompMult(p, v) * unit_1, unit_1);\\\\n}\\\\n\\\\nfloat axisY(\\\\n        float x,\\\\n        mat4 d[4],\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D\\\\n    ) {\\\\n\\\\n    float y1 = val(d[0], dim1A) + val(d[1], dim1B) + val(d[2], dim1C) + val(d[3], dim1D);\\\\n    float y2 = val(d[0], dim2A) + val(d[1], dim2B) + val(d[2], dim2C) + val(d[3], dim2D);\\\\n    return y1 * (1.0 - x) + y2 * x;\\\\n}\\\\n\\\\nconst int bitsPerByte = 8;\\\\n\\\\nint mod2(int a) {\\\\n    return a - 2 * (a / 2);\\\\n}\\\\n\\\\nint mod8(int a) {\\\\n    return a - 8 * (a / 8);\\\\n}\\\\n\\\\nvec4 zero = vec4(0, 0, 0, 0);\\\\nvec4 unit_0 = vec4(1, 1, 1, 1);\\\\nvec2 xyProjection = vec2(1, 1);\\\\n\\\\nmat4 mclamp(mat4 m, mat4 lo, mat4 hi) {\\\\n    return mat4(clamp(m[0], lo[0], hi[0]),\\\\n                clamp(m[1], lo[1], hi[1]),\\\\n                clamp(m[2], lo[2], hi[2]),\\\\n                clamp(m[3], lo[3], hi[3]));\\\\n}\\\\n\\\\nbool mshow(mat4 p, mat4 lo, mat4 hi) {\\\\n    return mclamp(p, lo, hi) == p;\\\\n}\\\\n\\\\nbool withinBoundingBox(\\\\n        mat4 d[4],\\\\n        mat4 loA, mat4 hiA, mat4 loB, mat4 hiB, mat4 loC, mat4 hiC, mat4 loD, mat4 hiD\\\\n    ) {\\\\n\\\\n    return mshow(d[0], loA, hiA) &&\\\\n           mshow(d[1], loB, hiB) &&\\\\n           mshow(d[2], loC, hiC) &&\\\\n           mshow(d[3], loD, hiD);\\\\n}\\\\n\\\\nbool withinRasterMask(mat4 d[4], sampler2D mask, float height) {\\\\n    bool result = true;\\\\n    int bitInByteStepper;\\\\n    float valY, valueY, scaleX;\\\\n    int hit, bitmask, valX;\\\\n    for(int i = 0; i < 4; i++) {\\\\n        for(int j = 0; j < 4; j++) {\\\\n            for(int k = 0; k < 4; k++) {\\\\n                bitInByteStepper = mod8(j * 4 + k);\\\\n                valX = i * 2 + j / 2;\\\\n                valY = d[i][j][k];\\\\n                valueY = valY * (height - 1.0) + 0.5;\\\\n                scaleX = (float(valX) + 0.5) / 8.0;\\\\n                hit = int(texture2D(mask, vec2(scaleX, (valueY + 0.5) / height))[3] * 255.0) / int(pow(2.0, float(bitInByteStepper)));\\\\n                result = result && mod2(hit) == 1;\\\\n            }\\\\n        }\\\\n    }\\\\n    return result;\\\\n}\\\\n\\\\nvec4 position(\\\\n        float depth,\\\\n        vec2 resolution, vec2 viewBoxPosition, vec2 viewBoxSize,\\\\n        mat4 dims[4],\\\\n        float signum,\\\\n        mat4 dim1A, mat4 dim2A, mat4 dim1B, mat4 dim2B, mat4 dim1C, mat4 dim2C, mat4 dim1D, mat4 dim2D,\\\\n        mat4 loA, mat4 hiA, mat4 loB, mat4 hiB, mat4 loC, mat4 hiC, mat4 loD, mat4 hiD,\\\\n        sampler2D mask, float maskHeight\\\\n    ) {\\\\n\\\\n    float x = 0.5 * signum + 0.5;\\\\n    float y = axisY(x, dims, dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D);\\\\n\\\\n    float show = float(\\\\n                            withinBoundingBox(dims, loA, hiA, loB, hiB, loC, hiC, loD, hiD)\\\\n                         && withinRasterMask(dims, mask, maskHeight)\\\\n                      );\\\\n\\\\n    vec2 viewBoxXY = viewBoxPosition + viewBoxSize * vec2(x, y);\\\\n    float depthOrHide = depth + 2.0 * (1.0 - show);\\\\n\\\\n    return vec4(\\\\n        xyProjection * (2.0 * viewBoxXY / resolution - 1.0),\\\\n        depthOrHide,\\\\n        1.0\\\\n    );\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\n    float prominence = abs(pf[3]);\\\\n\\\\n    mat4 p[4];\\\\n    p[0] = mat4(p0, p1, p2, p3);\\\\n    p[1] = mat4(p4, p5, p6, p7);\\\\n    p[2] = mat4(p8, p9, pa, pb);\\\\n    p[3] = mat4(pc, pd, pe, abs(pf));\\\\n\\\\n    gl_Position = position(\\\\n        1.0 - prominence,\\\\n        resolution, viewBoxPosition, viewBoxSize,\\\\n        p,\\\\n        sign(pf[3]),\\\\n        dim1A, dim2A, dim1B, dim2B, dim1C, dim2C, dim1D, dim2D,\\\\n        loA, hiA, loB, hiB, loC, hiC, loD, hiD,\\\\n        mask, maskHeight\\\\n    );\\\\n\\\\n    fragColor = vec4(pf.rgb, 1.0);\\\\n}\\\\n\\\"]),s=n([\\\"precision lowp float;\\\\n#define GLSLIFY 1\\\\n\\\\nvarying vec4 fragColor;\\\\n\\\\nvoid main() {\\\\n    gl_FragColor = fragColor;\\\\n}\\\\n\\\"]),l=t(\\\"../../lib\\\"),c=1e-6,u=1e-7,f=2048,h=64,p=2,d=4,g=8,v=h/g,m=[119,119,119],y=new Uint8Array(4),x=new Uint8Array(4),b={shape:[256,1],format:\\\"rgba\\\",type:\\\"uint8\\\",mag:\\\"nearest\\\",min:\\\"nearest\\\"};function _(t,e,r,n,i){var a=t._gl;a.enable(a.SCISSOR_TEST),a.scissor(e,r,n,i),t.clear({color:[0,0,0,0],depth:1})}function w(t,e,r,n,i,a){var o=a.key;r.drawCompleted||(!function(t){t.read({x:0,y:0,width:1,height:1,data:y})}(t),r.drawCompleted=!0),function s(l){var c;c=Math.min(n,i-l*n),a.offset=p*l*n,a.count=p*c,0===l&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],_(t,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),r.clearOnly||(e(a),l*n+c<i&&(r.currentRafs[o]=window.requestAnimationFrame(function(){s(l+1)})),r.drawCompleted=!1)}(0)}function k(t,e){return(t>>>8*e)%256/255}function M(t,e,r){var n,i,a,o=[];for(i=0;i<t;i++)for(a=0;a<p;a++)for(n=0;n<d;n++)o.push(e[i*h+r*d+n]),r*d+n===h-1&&a%2==0&&(o[o.length-1]*=-1);return o}e.exports=function(t,e){var r,n,p,d,y,A=e.context,T=e.pick,S=e.regl,E={currentRafs:{},drawCompleted:!0,clearOnly:!1},C=function(t){for(var e={},r=0;r<16;r++)e[\\\"p\\\"+r.toString(16)]=t.buffer({usage:\\\"dynamic\\\",type:\\\"float\\\",data:new Uint8Array(0)});return e}(S),L=S.texture(b);O(e);var z=S({profile:!1,blend:{enable:A,func:{srcRGB:\\\"src alpha\\\",dstRGB:\\\"one minus src alpha\\\",srcAlpha:1,dstAlpha:1},equation:{rgb:\\\"add\\\",alpha:\\\"add\\\"},color:[0,0,0,0]},depth:{enable:!A,mask:!0,func:\\\"less\\\",range:[0,1]},cull:{enable:!0,face:\\\"back\\\"},scissor:{enable:!0,box:{x:S.prop(\\\"scissorX\\\"),y:S.prop(\\\"scissorY\\\"),width:S.prop(\\\"scissorWidth\\\"),height:S.prop(\\\"scissorHeight\\\")}},viewport:{x:S.prop(\\\"viewportX\\\"),y:S.prop(\\\"viewportY\\\"),width:S.prop(\\\"viewportWidth\\\"),height:S.prop(\\\"viewportHeight\\\")},dither:!1,vert:T?o:A?a:i,frag:s,primitive:\\\"lines\\\",lineWidth:1,attributes:C,uniforms:{resolution:S.prop(\\\"resolution\\\"),viewBoxPosition:S.prop(\\\"viewBoxPosition\\\"),viewBoxSize:S.prop(\\\"viewBoxSize\\\"),dim1A:S.prop(\\\"dim1A\\\"),dim2A:S.prop(\\\"dim2A\\\"),dim1B:S.prop(\\\"dim1B\\\"),dim2B:S.prop(\\\"dim2B\\\"),dim1C:S.prop(\\\"dim1C\\\"),dim2C:S.prop(\\\"dim2C\\\"),dim1D:S.prop(\\\"dim1D\\\"),dim2D:S.prop(\\\"dim2D\\\"),loA:S.prop(\\\"loA\\\"),hiA:S.prop(\\\"hiA\\\"),loB:S.prop(\\\"loB\\\"),hiB:S.prop(\\\"hiB\\\"),loC:S.prop(\\\"loC\\\"),hiC:S.prop(\\\"hiC\\\"),loD:S.prop(\\\"loD\\\"),hiD:S.prop(\\\"hiD\\\"),palette:L,mask:S.prop(\\\"maskTexture\\\"),maskHeight:S.prop(\\\"maskHeight\\\"),colorClamp:S.prop(\\\"colorClamp\\\")},offset:S.prop(\\\"offset\\\"),count:S.prop(\\\"count\\\")});function O(t){r=t.model,n=t.viewModel,p=n.dimensions.slice(),d=p[0]?p[0].values.length:0;var e=r.lines,i=T?e.color.map(function(t,r){return r/e.color.length}):e.color,a=Math.max(1/255,Math.pow(1/i.length,1/3)),o=function(t,e,r){for(var n,i=e.length,a=[],o=0;o<t;o++)for(var s=0;s<h;s++)a.push(s<i?e[s].paddedUnitValues[o]:s===h-1?(n=r[o],Math.max(c,Math.min(1-c,n))):s>=h-4?k(o,h-2-s):.5);return a}(d,p,i);!function(t,e,r){for(var n=0;n<16;n++)t[\\\"p\\\"+n.toString(16)](M(e,r,n))}(C,d,o),L=S.texture(l.extendFlat({data:function(t,e,r){for(var n=[],i=0;i<256;i++){var a=t(i/255);n.push((e?m:a).concat(r))}return n}(r.unitToColor,A,Math.round(255*(A?a:1)))},b))}var I=[0,1];var P=[];function D(t,e,n,i,a,o,s,c,u,f,h){var p,d,g,v,m=[t,e],y=[0,1].map(function(){return[0,1,2,3].map(function(){return new Float32Array(16)})});for(p=0;p<2;p++)for(v=m[p],d=0;d<4;d++)for(g=0;g<16;g++)y[p][d][g]=g+16*d===v?1:0;var x=r.lines.canvasOverdrag,b=r.domain,_=r.canvasWidth,w=r.canvasHeight;return l.extendFlat({key:s,resolution:[_,w],viewBoxPosition:[n+x,i],viewBoxSize:[a,o],i:t,ii:e,dim1A:y[0][0],dim1B:y[0][1],dim1C:y[0][2],dim1D:y[0][3],dim2A:y[1][0],dim2B:y[1][1],dim2C:y[1][2],dim2D:y[1][3],colorClamp:I,scissorX:(c===u?0:n+x)+(r.pad.l-x)+r.layoutWidth*b.x[0],scissorWidth:(c===f?_-n+x:a+.5)+(c===u?n+x:0),scissorY:i+r.pad.b+r.layoutHeight*b.y[0],scissorHeight:o,viewportX:r.pad.l-x+r.layoutWidth*b.x[0],viewportY:r.pad.b+r.layoutHeight*b.y[0],viewportWidth:_,viewportHeight:w},h)}return{setColorDomain:function(t){I[0]=t[0],I[1]=t[1]},render:function(t,e,n){var i,a,o,s=t.length,l=1/0,c=-1/0;for(i=0;i<s;i++)t[i].dim2.canvasX>c&&(c=t[i].dim2.canvasX,o=i),t[i].dim1.canvasX<l&&(l=t[i].dim1.canvasX,a=i);0===s&&_(S,0,0,r.canvasWidth,r.canvasHeight);var h=A?{}:function(){var t,e,r,n=[0,1].map(function(){return[0,1,2,3].map(function(){return new Float32Array(16)})});for(t=0;t<2;t++)for(e=0;e<4;e++)for(r=0;r<16;r++){var i,a=r+16*e;i=a<p.length?p[a].brush.filter.getBounds()[t]:t,n[t][e][r]=i+(2*t-1)*u}function o(t,e){var r=f-1;return[Math.max(0,Math.floor(e[0]*r)),Math.min(r,Math.ceil(e[1]*r))]}for(var s=Array.apply(null,new Array(f*v)).map(function(){return 255}),l=0;l<p.length;l++){var c=l%g,h=(l-c)/g,d=Math.pow(2,c),m=p[l],x=m.brush.filter.get();if(!(x.length<2))for(var b=o(0,x[0])[1],_=1;_<x.length;_++){for(var w=o(0,x[_]),k=b+1;k<w[0];k++)s[k*v+h]&=~d;b=Math.max(b,w[1])}}var M={shape:[v,f],format:\\\"alpha\\\",type:\\\"uint8\\\",mag:\\\"nearest\\\",min:\\\"nearest\\\",data:s};return y?y(M):y=S.texture(M),{maskTexture:y,maskHeight:f,loA:n[0][0],loB:n[0][1],loC:n[0][2],loD:n[0][3],hiA:n[1][0],hiB:n[1][1],hiC:n[1][2],hiD:n[1][3]}}();for(i=0;i<s;i++){var m=t[i],x=m.dim1,b=x.crossfilterDimensionIndex,k=m.canvasX,M=m.canvasY,T=m.dim2.crossfilterDimensionIndex,C=m.panelSizeX,L=m.panelSizeY,O=k+C;if(e||!P[b]||P[b][0]!==k||P[b][1]!==O){P[b]=[k,O];var I=D(b,T,k,M,C,L,x.crossfilterDimensionIndex,i,a,o,h);E.clearOnly=n,w(S,z,E,e?r.lines.blockLineCount:d,d,I)}}},readPixel:function(t,e){return S.read({x:t,y:e,width:1,height:1,data:x}),x},readPixels:function(t,e,r,n){var i=new Uint8Array(4*r*n);return S.read({x:t,y:e,width:r,height:n,data:i}),i},destroy:function(){for(var e in t.style[\\\"pointer-events\\\"]=\\\"none\\\",L.destroy(),y&&y.destroy(),C)C[e].destroy()},update:O}}},{\\\"../../lib\\\":696,glslify:392}],1015:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n){var i,a;for(n||(n=1/0),i=0;i<e.length;i++)(a=e[i]).visible&&(n=Math.min(n,a[r].length));for(n===1/0&&(n=0),t._length=n,i=0;i<e.length;i++)(a=e[i]).visible&&(a._length=n);return n}},{}],1016:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./lines\\\"),i=t(\\\"./constants\\\"),a=t(\\\"../../lib\\\"),o=t(\\\"d3\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"../../lib/gup\\\"),c=l.keyFun,u=l.repeat,f=l.unwrap,h=t(\\\"./axisbrush\\\");function p(t){return!(\\\"visible\\\"in t)||t.visible}function d(t){var e=t.range?t.range[0]:a.aggNums(Math.min,null,t.values,t._length),r=t.range?t.range[1]:a.aggNums(Math.max,null,t.values,t._length);return!isNaN(e)&&isFinite(e)||(e=0),!isNaN(r)&&isFinite(r)||(r=0),e===r&&(0===e?(e-=1,r+=1):(e*=.9,r*=1.1)),[e,r]}function g(t){return t.dimensions.some(function(t){return t.brush.filterSpecified})}function v(t,e,r){var n=f(e),s=n.trace,l=n.lineColor,c=n.cscale,u=s.line,h=s.domain,g=s.dimensions,v=t.width,m=s.labelfont,y=s.tickfont,x=s.rangefont,b=a.extendDeepNoArrays({},u,{color:l.map(o.scale.linear().domain(d({values:l,range:[u.cmin,u.cmax],_length:s._length}))),blockLineCount:i.blockLineCount,canvasOverdrag:i.overdrag*i.canvasPixelRatio}),_=Math.floor(v*(h.x[1]-h.x[0])),w=Math.floor(t.height*(h.y[1]-h.y[0])),k=t.margin||{l:80,r:80,t:100,b:80},M=_,A=w;return{key:r,colCount:g.filter(p).length,dimensions:g,tickDistance:i.tickDistance,unitToColor:function(t){var e=t.map(function(t){return t[0]}),r=t.map(function(t){return o.rgb(t[1])}),n=\\\"rgb\\\".split(\\\"\\\").map(function(t){return o.scale.linear().clamp(!0).domain(e).range(r.map((n=t,function(t){return t[n]})));var n});return function(t){return n.map(function(e){return e(t)})}}(c),lines:b,labelFont:m,tickFont:y,rangeFont:x,layoutWidth:v,layoutHeight:t.height,domain:h,translateX:h.x[0]*v,translateY:t.height-h.y[1]*t.height,pad:k,canvasWidth:M*i.canvasPixelRatio+2*b.canvasOverdrag,canvasHeight:A*i.canvasPixelRatio,width:M,height:A,canvasPixelRatio:i.canvasPixelRatio}}function m(t,e,r){var n=r.width,s=r.height,l=r.dimensions,c=r.canvasPixelRatio,u=function(t){return n*t/Math.max(1,r.colCount-1)},f=i.verticalPadding/s,v=function(t,e){return o.scale.linear().range([e,t-e])}(s,i.verticalPadding),m={key:r.key,xScale:u,model:r,inBrushDrag:!1},y={};return m.dimensions=l.filter(p).map(function(n,l){var p=function(t,e){return o.scale.linear().domain(d(t)).range([e,1-e])}(n,f),x=y[n.label];y[n.label]=(x||0)+1;var b=n.label+(x?\\\"__\\\"+x:\\\"\\\"),_=n.constraintrange,w=_&&_.length;w&&!Array.isArray(_[0])&&(_=[_]);var k=w?_.map(function(t){return t.map(p)}):[[0,1]],M=n.values;M.length>n._length&&(M=M.slice(0,n._length));var A,T=n.tickvals;function S(t,e){return{val:t,text:A[e]}}function E(t,e){return t.val-e.val}if(Array.isArray(T)&&T.length){A=n.ticktext,Array.isArray(A)&&A.length?A.length>T.length?A=A.slice(0,T.length):T.length>A.length&&(T=T.slice(0,A.length)):A=T.map(o.format(n.tickformat));for(var C=1;C<T.length;C++)if(T[C]<T[C-1]){for(var L=T.map(S).sort(E),z=0;z<T.length;z++)T[z]=L[z].val,A[z]=L[z].text;break}}else T=void 0;return{key:b,label:n.label,tickFormat:n.tickformat,tickvals:T,ticktext:A,ordinal:!!T,multiselect:n.multiselect,xIndex:l,crossfilterDimensionIndex:l,visibleIndex:n._index,height:s,values:M,paddedUnitValues:M.map(p),unitTickvals:T&&T.map(p),xScale:u,x:u(l),canvasX:u(l)*c,unitToPaddedPx:v,domainScale:function(t,e,r,n,i){var a,s,l=d(r);return n?o.scale.ordinal().domain(n.map((a=o.format(r.tickformat),s=i,s?function(t,e){var r=s[e];return null==r?a(t):r}:a))).range(n.map(function(r){var n=(r-l[0])/(l[1]-l[0]);return t-e+n*(2*e-t)})):o.scale.linear().domain(l).range([t-e,e])}(s,i.verticalPadding,n,T,A),ordinalScale:function(t){if(t.tickvals){var e=d(t);return o.scale.ordinal().domain(t.tickvals).range(t.tickvals.map(function(t){return(t-e[0])/(e[1]-e[0])}))}}(n),parent:m,model:r,brush:h.makeBrush(t,w,k,function(){t.linePickActive(!1)},function(){var e=m;e.focusLayer&&e.focusLayer.render(e.panels,!0);var r=g(e);!t.contextShown()&&r?(e.contextLayer&&e.contextLayer.render(e.panels,!0),t.contextShown(!0)):t.contextShown()&&!r&&(e.contextLayer&&e.contextLayer.render(e.panels,!0,!0),t.contextShown(!1))},function(r){var i=m;if(i.focusLayer.render(i.panels,!0),i.pickLayer&&i.pickLayer.render(i.panels,!0),t.linePickActive(!0),e&&e.filterChanged){var o=p.invert,s=r.map(function(t){return t.map(o).sort(a.sorterAsc)}).sort(function(t,e){return t[0]-e[0]});e.filterChanged(i.key,n._index,s)}})}}),m}function y(t){t.classed(i.cn.axisExtentText,!0).attr(\\\"text-anchor\\\",\\\"middle\\\").style(\\\"cursor\\\",\\\"default\\\").style(\\\"user-select\\\",\\\"none\\\")}e.exports=function(t,e,r,l,p,d){var x,b,_=(x=!0,b=!1,{linePickActive:function(t){return arguments.length?x=!!t:x},contextShown:function(t){return arguments.length?b=!!t:b}}),w=l.filter(function(t){return f(t).trace.visible}).map(v.bind(0,p)).map(m.bind(0,_,d));r.each(function(t,e){return a.extendFlat(t,w[e])});var k=r.selectAll(\\\".gl-canvas\\\").each(function(t){t.viewModel=w[0],t.model=t.viewModel?t.viewModel.model:null}),M=null;k.filter(function(t){return t.pick}).style(\\\"pointer-events\\\",\\\"auto\\\").on(\\\"mousemove\\\",function(t){if(_.linePickActive()&&t.lineLayer&&d&&d.hover){var e=o.event,r=this.width,n=this.height,i=o.mouse(this),a=i[0],s=i[1];if(a<0||s<0||a>=r||s>=n)return;var l=t.lineLayer.readPixel(a,n-1-s),c=0!==l[3],u=c?l[2]+256*(l[1]+256*l[0]):null,f={x:a,y:s,clientX:e.clientX,clientY:e.clientY,dataIndex:t.model.key,curveNumber:u};u!==M&&(c?d.hover(f):d.unhover&&d.unhover(f),M=u)}}),k.style(\\\"opacity\\\",function(t){return t.pick?.01:1}),e.style(\\\"background\\\",\\\"rgba(255, 255, 255, 0)\\\");var A=e.selectAll(\\\".\\\"+i.cn.parcoords).data(w,c);A.exit().remove(),A.enter().append(\\\"g\\\").classed(i.cn.parcoords,!0).style(\\\"shape-rendering\\\",\\\"crispEdges\\\").style(\\\"pointer-events\\\",\\\"none\\\"),A.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.model.translateX+\\\",\\\"+t.model.translateY+\\\")\\\"});var T=A.selectAll(\\\".\\\"+i.cn.parcoordsControlView).data(u,c);T.enter().append(\\\"g\\\").classed(i.cn.parcoordsControlView,!0),T.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.model.pad.l+\\\",\\\"+t.model.pad.t+\\\")\\\"});var S=T.selectAll(\\\".\\\"+i.cn.yAxis).data(function(t){return t.dimensions},c);function E(t,e){for(var r=e.panels||(e.panels=[]),n=t.data(),i=n.length-1,a=0;a<i;a++){var o=r[a]||(r[a]={}),s=n[a],l=n[a+1];o.dim1=s,o.dim2=l,o.canvasX=s.canvasX,o.panelSizeX=l.canvasX-s.canvasX,o.panelSizeY=e.model.canvasHeight,o.y=0,o.canvasY=0}}S.enter().append(\\\"g\\\").classed(i.cn.yAxis,!0),T.each(function(t){E(S,t)}),k.each(function(t){if(t.viewModel){!t.lineLayer||d?t.lineLayer=n(this,t):t.lineLayer.update(t),(t.key||0===t.key)&&(t.viewModel[t.key]=t.lineLayer);var e=!t.context||d;t.lineLayer.render(t.viewModel.panels,e)}}),S.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.xScale(t.xIndex)+\\\", 0)\\\"}),S.call(o.behavior.drag().origin(function(t){return t}).on(\\\"drag\\\",function(t){var e=t.parent;_.linePickActive(!1),t.x=Math.max(-i.overdrag,Math.min(t.model.width+i.overdrag,o.event.x)),t.canvasX=t.x*t.model.canvasPixelRatio,S.sort(function(t,e){return t.x-e.x}).each(function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio}),E(S,e),S.filter(function(e){return 0!==Math.abs(t.xIndex-e.xIndex)}).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.xScale(t.xIndex)+\\\", 0)\\\"}),o.select(this).attr(\\\"transform\\\",\\\"translate(\\\"+t.x+\\\", 0)\\\"),S.each(function(r,n,i){i===t.parent.key&&(e.dimensions[n]=r)}),e.contextLayer&&e.contextLayer.render(e.panels,!1,!g(e)),e.focusLayer.render&&e.focusLayer.render(e.panels)}).on(\\\"dragend\\\",function(t){var e=t.parent;t.x=t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio,E(S,e),o.select(this).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\", 0)\\\"}),e.contextLayer&&e.contextLayer.render(e.panels,!1,!g(e)),e.focusLayer&&e.focusLayer.render(e.panels),e.pickLayer&&e.pickLayer.render(e.panels,!0),_.linePickActive(!0),d&&d.axesMoved&&d.axesMoved(e.key,e.dimensions.map(function(t){return t.crossfilterDimensionIndex}))})),S.exit().remove();var C=S.selectAll(\\\".\\\"+i.cn.axisOverlays).data(u,c);C.enter().append(\\\"g\\\").classed(i.cn.axisOverlays,!0),C.selectAll(\\\".\\\"+i.cn.axis).remove();var L=C.selectAll(\\\".\\\"+i.cn.axis).data(u,c);L.enter().append(\\\"g\\\").classed(i.cn.axis,!0),L.each(function(t){var e=t.model.height/t.model.tickDistance,r=t.domainScale,n=r.domain();o.select(this).call(o.svg.axis().orient(\\\"left\\\").tickSize(4).outerTickSize(2).ticks(e,t.tickFormat).tickValues(t.ordinal?n:null).tickFormat(t.ordinal?function(t){return t}:null).scale(r)),s.font(L.selectAll(\\\"text\\\"),t.model.tickFont)}),L.selectAll(\\\".domain, .tick>line\\\").attr(\\\"fill\\\",\\\"none\\\").attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-opacity\\\",.25).attr(\\\"stroke-width\\\",\\\"1px\\\"),L.selectAll(\\\"text\\\").style(\\\"text-shadow\\\",\\\"1px 1px 1px #fff, -1px -1px 1px #fff, 1px -1px 1px #fff, -1px 1px 1px #fff\\\").style(\\\"cursor\\\",\\\"default\\\").style(\\\"user-select\\\",\\\"none\\\");var z=C.selectAll(\\\".\\\"+i.cn.axisHeading).data(u,c);z.enter().append(\\\"g\\\").classed(i.cn.axisHeading,!0);var O=z.selectAll(\\\".\\\"+i.cn.axisTitle).data(u,c);O.enter().append(\\\"text\\\").classed(i.cn.axisTitle,!0).attr(\\\"text-anchor\\\",\\\"middle\\\").style(\\\"cursor\\\",\\\"ew-resize\\\").style(\\\"user-select\\\",\\\"none\\\").style(\\\"pointer-events\\\",\\\"auto\\\"),O.attr(\\\"transform\\\",\\\"translate(0,\\\"+-i.axisTitleOffset+\\\")\\\").text(function(t){return t.label}).each(function(t){s.font(o.select(this),t.model.labelFont)});var I=C.selectAll(\\\".\\\"+i.cn.axisExtent).data(u,c);I.enter().append(\\\"g\\\").classed(i.cn.axisExtent,!0);var P=I.selectAll(\\\".\\\"+i.cn.axisExtentTop).data(u,c);P.enter().append(\\\"g\\\").classed(i.cn.axisExtentTop,!0),P.attr(\\\"transform\\\",\\\"translate(0,\\\"+-i.axisExtentOffset+\\\")\\\");var D=P.selectAll(\\\".\\\"+i.cn.axisExtentTopText).data(u,c);function R(t,e){if(t.ordinal)return\\\"\\\";var r=t.domainScale.domain();return o.format(t.tickFormat)(r[e?r.length-1:0])}D.enter().append(\\\"text\\\").classed(i.cn.axisExtentTopText,!0).call(y),D.text(function(t){return R(t,!0)}).each(function(t){s.font(o.select(this),t.model.rangeFont)});var B=I.selectAll(\\\".\\\"+i.cn.axisExtentBottom).data(u,c);B.enter().append(\\\"g\\\").classed(i.cn.axisExtentBottom,!0),B.attr(\\\"transform\\\",function(t){return\\\"translate(0,\\\"+(t.model.height+i.axisExtentOffset)+\\\")\\\"});var F=B.selectAll(\\\".\\\"+i.cn.axisExtentBottomText).data(u,c);F.enter().append(\\\"text\\\").classed(i.cn.axisExtentBottomText,!0).attr(\\\"dy\\\",\\\"0.75em\\\").call(y),F.text(function(t){return R(t)}).each(function(t){s.font(o.select(this),t.model.rangeFont)}),h.ensureAxisBrush(C)}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"./axisbrush\\\":1008,\\\"./constants\\\":1011,\\\"./lines\\\":1014,d3:148}],1017:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./parcoords\\\"),i=t(\\\"../../lib/prepare_regl\\\");e.exports=function(t,e){var r=t._fullLayout,a=r._toppaper,o=r._paperdiv,s=r._glcontainer;if(i(t)){var l={},c={},u=r._size;e.forEach(function(e,r){l[r]=t.data[r].dimensions,c[r]=t.data[r].dimensions.slice()});n(o,a,s,e,{width:u.w,height:u.h,margin:{t:u.t,r:u.r,b:u.b,l:u.l}},{filterChanged:function(e,r,n){var i=c[e][r],a=n.map(function(t){return t.slice()});a.length?(1===a.length&&(a=a[0]),i.constraintrange=a,a=[a]):(delete i.constraintrange,a=null);var o={};o[\\\"dimensions[\\\"+r+\\\"].constraintrange\\\"]=a,t.emit(\\\"plotly_restyle\\\",[o,[e]])},hover:function(e){t.emit(\\\"plotly_hover\\\",e)},unhover:function(e){t.emit(\\\"plotly_unhover\\\",e)},axesMoved:function(e,r){function n(t){return!(\\\"visible\\\"in t)||t.visible}function i(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}var a=function(t){return function(e,n){return i(r,t,e)-i(r,t,n)}}(c[e].filter(n));l[e].sort(a),c[e].filter(function(t){return!n(t)}).sort(function(t){return c[e].indexOf(t)}).forEach(function(t){l[e].splice(l[e].indexOf(t),1),l[e].splice(c[e].indexOf(t),0,t)}),t.emit(\\\"plotly_restyle\\\")}})}}},{\\\"../../lib/prepare_regl\\\":709,\\\"./parcoords\\\":1016}],1018:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color/attributes\\\"),i=t(\\\"../../plots/font_attributes\\\"),a=t(\\\"../../plots/attributes\\\"),o=t(\\\"../../plots/domain\\\").attributes,s=t(\\\"../../lib/extend\\\").extendFlat,l=i({editType:\\\"calc\\\",arrayOk:!0,colorEditType:\\\"plot\\\"});e.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:n.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:\\\"calc\\\"},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:s({},a.hoverinfo,{flags:[\\\"label\\\",\\\"text\\\",\\\"value\\\",\\\"percent\\\",\\\"name\\\"]}),textposition:{valType:\\\"enumerated\\\",values:[\\\"inside\\\",\\\"outside\\\",\\\"auto\\\",\\\"none\\\"],dflt:\\\"auto\\\",arrayOk:!0,editType:\\\"calc\\\"},textfont:s({},l,{}),insidetextfont:s({},l,{}),outsidetextfont:s({},l,{}),title:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},titleposition:{valType:\\\"enumerated\\\",values:[\\\"top left\\\",\\\"top center\\\",\\\"top right\\\",\\\"middle center\\\",\\\"bottom left\\\",\\\"bottom center\\\",\\\"bottom right\\\"],editType:\\\"calc\\\"},titlefont:s({},l,{}),domain:o({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\\\"}}},{\\\"../../components/color/attributes\\\":569,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771}],1019:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../plots/get_data\\\").getModuleCalcData;r.name=\\\"pie\\\",r.plot=function(t){var e=n.getModule(\\\"pie\\\"),r=i(t.calcdata,e)[0];r.length&&e.plot(t,r)},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"pie\\\"),a=e._has&&e._has(\\\"pie\\\");i&&!a&&n._pielayer.selectAll(\\\"g.trace\\\").remove()}},{\\\"../../plots/get_data\\\":781,\\\"../../registry\\\":827}],1020:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\").isArrayOrTypedArray,a=t(\\\"tinycolor2\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"./helpers\\\");r.calc=function(t,e){var r,l,c,u,f,h=e.values,p=i(h)&&h.length,d=e.labels,g=e.marker.colors||[],v=[],m=t._fullLayout,y=m._piecolormap,x={},b=0,_=m.hiddenlabels||[];if(e.dlabel)for(d=new Array(h.length),r=0;r<h.length;r++)d[r]=String(e.label0+r*e.dlabel);function w(t,e){return!!t&&(!!(t=a(t)).isValid()&&(t=o.addOpacity(t,t.getAlpha()),y[e]||(y[e]=t),t))}var k=(p?h:d).length;for(r=0;r<k;r++){if(p){if(l=h[r],!n(l))continue;if((l=+l)<0)continue}else l=1;void 0!==(c=d[r])&&\\\"\\\"!==c||(c=r);var M=x[c=String(c)];void 0===M?(x[c]=v.length,(u=-1!==_.indexOf(c))||(b+=l),v.push({v:l,label:c,color:w(g[r],c),i:r,pts:[r],hidden:u})):((f=v[M]).v+=l,f.pts.push(r),f.hidden||(b+=l),!1===f.color&&g[r]&&(f.color=w(g[r],c)))}if(e.sort&&v.sort(function(t,e){return e.v-t.v}),v[0]&&(v[0].vTotal=b),e.textinfo&&\\\"none\\\"!==e.textinfo){var A,T=-1!==e.textinfo.indexOf(\\\"label\\\"),S=-1!==e.textinfo.indexOf(\\\"text\\\"),E=-1!==e.textinfo.indexOf(\\\"value\\\"),C=-1!==e.textinfo.indexOf(\\\"percent\\\"),L=m.separators;for(r=0;r<v.length;r++){if(f=v[r],A=T?[f.label]:[],S){var z=s.getFirstFilled(e.text,f.pts);z&&A.push(z)}E&&A.push(s.formatPieValue(f.v,L)),C&&A.push(s.formatPiePercent(f.v/b,L)),f.text=A.join(\\\"<br>\\\")}}return v},r.crossTraceCalc=function(t){var e=t._fullLayout,r=t.calcdata,n=e.piecolorway,i=e._piecolormap;e.extendpiecolors&&(n=function(t){var e,r=JSON.stringify(t),n=l[r];if(!n){for(n=t.slice(),e=0;e<t.length;e++)n.push(a(t[e]).lighten(20).toHexString());for(e=0;e<t.length;e++)n.push(a(t[e]).darken(20).toHexString());l[r]=n}return n}(n));var o,s,c,u,f=0;for(o=0;o<r.length;o++)if(\\\"pie\\\"===(c=r[o])[0].trace.type)for(s=0;s<c.length;s++)!1===(u=c[s]).color&&(i[u.label]?u.color=i[u.label]:(i[u.label]=u.color=n[f%n.length],f++))};var l={}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"./helpers\\\":1023,\\\"fast-isnumeric\\\":214,tinycolor2:514}],1021:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"../../plots/domain\\\").defaults;e.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}var l,c=n.coerceFont,u=s(\\\"values\\\"),f=n.isArrayOrTypedArray(u),h=s(\\\"labels\\\");if(Array.isArray(h)?(l=h.length,f&&(l=Math.min(l,u.length))):f&&(l=u.length,s(\\\"label0\\\"),s(\\\"dlabel\\\")),l){e._length=l,s(\\\"marker.line.width\\\")&&s(\\\"marker.line.color\\\"),s(\\\"marker.colors\\\"),s(\\\"scalegroup\\\");var p=s(\\\"text\\\"),d=s(\\\"textinfo\\\",Array.isArray(p)?\\\"text+percent\\\":\\\"percent\\\");if(s(\\\"hovertext\\\"),d&&\\\"none\\\"!==d){var g=s(\\\"textposition\\\"),v=Array.isArray(g)||\\\"auto\\\"===g,m=v||\\\"inside\\\"===g,y=v||\\\"outside\\\"===g;if(m||y){var x=c(s,\\\"textfont\\\",o.font);if(m){var b=n.extendFlat({},x);!(t.textfont&&t.textfont.color)&&delete b.color,c(s,\\\"insidetextfont\\\",b)}y&&c(s,\\\"outsidetextfont\\\",x)}}a(e,o,s);var _=s(\\\"hole\\\");if(s(\\\"title\\\")){var w=s(\\\"titleposition\\\",_?\\\"middle center\\\":\\\"top center\\\");_||\\\"middle center\\\"!==w||(e.titleposition=\\\"top center\\\"),c(s,\\\"titlefont\\\",o.font)}s(\\\"sort\\\"),s(\\\"direction\\\"),s(\\\"rotation\\\"),s(\\\"pull\\\")}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../../plots/domain\\\":770,\\\"./attributes\\\":1018}],1022:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx/helpers\\\").appendArrayMultiPointValues;e.exports=function(t,e){var r={curveNumber:e.index,pointNumbers:t.pts,data:e._input,fullData:e,label:t.label,color:t.color,value:t.v,v:t.v};return 1===t.pts.length&&(r.pointNumber=r.i=t.pts[0]),n(r,e,t.pts),r}},{\\\"../../components/fx/helpers\\\":609}],1023:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");r.formatPiePercent=function(t,e){var r=(100*t).toPrecision(3);return-1!==r.lastIndexOf(\\\".\\\")&&(r=r.replace(/[.]?0+$/,\\\"\\\")),n.numSeparate(r,e)+\\\"%\\\"},r.formatPieValue=function(t,e){var r=t.toPrecision(10);return-1!==r.lastIndexOf(\\\".\\\")&&(r=r.replace(/[.]?0+$/,\\\"\\\")),n.numSeparate(r,e)},r.getFirstFilled=function(t,e){if(Array.isArray(t))for(var r=0;r<e.length;r++){var n=t[e[r]];if(n||0===n)return n}},r.castOption=function(t,e){return Array.isArray(t)?r.getFirstFilled(t,e):t||void 0}},{\\\"../../lib\\\":696}],1024:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.supplyLayoutDefaults=t(\\\"./layout_defaults\\\"),n.layoutAttributes=t(\\\"./layout_attributes\\\");var i=t(\\\"./calc\\\");n.calc=i.calc,n.crossTraceCalc=i.crossTraceCalc,n.plot=t(\\\"./plot\\\"),n.style=t(\\\"./style\\\"),n.styleOne=t(\\\"./style_one\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"pie\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"pie\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1018,\\\"./base_plot\\\":1019,\\\"./calc\\\":1020,\\\"./defaults\\\":1021,\\\"./layout_attributes\\\":1025,\\\"./layout_defaults\\\":1026,\\\"./plot\\\":1027,\\\"./style\\\":1028,\\\"./style_one\\\":1029}],1025:[function(t,e,r){\\\"use strict\\\";e.exports={hiddenlabels:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},piecolorway:{valType:\\\"colorlist\\\",editType:\\\"calc\\\"},extendpiecolors:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"}}},{}],1026:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r(\\\"hiddenlabels\\\"),r(\\\"piecolorway\\\",e.colorway),r(\\\"extendpiecolors\\\")}},{\\\"../../lib\\\":696,\\\"./layout_attributes\\\":1025}],1027:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/fx\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../../components/drawing\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../lib/svg_text_utils\\\"),c=t(\\\"./helpers\\\"),u=t(\\\"./event_data\\\");function f(t,e){if(t.v===e.vTotal&&!e.trace.hole)return 1;var r=Math.PI*Math.min(t.v/e.vTotal,.5);return Math.min(1/(1+1/Math.sin(r)),(1-e.trace.hole)/2)}function h(t,e){var r=e.pxmid[0],n=e.pxmid[1],i=t.width/2,a=t.height/2;return r<0&&(i*=-1),n<0&&(a*=-1),{scale:1,rCenter:1,rotate:0,x:i+Math.abs(a)*(i>0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function p(t,e){var r=t.trace,n=e.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(t.titleBox.height,n/2)}function d(t){var e,r=t.pull;if(Array.isArray(r))for(r=0,e=0;e<t.pull.length;e++)t.pull[e]>r&&(r=t.pull[e]);return r}e.exports=function(t,e){var r=t._fullLayout;!function(t,e){for(var r,n,i=0;i<t.length;i++)if(r=t[i][0],(n=r.trace).title){var a=o.tester.append(\\\"text\\\").attr(\\\"data-notex\\\",1).text(n.title).call(o.font,n.titlefont).call(l.convertToTspans,e),s=o.bBox(a.node(),!0);r.titleBox={width:s.width,height:s.height},a.remove()}}(e,t),function(t,e){var r,n,i,a,o,s,l,c,u,f=[];for(i=0;i<t.length;i++)o=t[i][0],s=o.trace,r=e.w*(s.domain.x[1]-s.domain.x[0]),n=e.h*(s.domain.y[1]-s.domain.y[0]),s.title&&\\\"middle center\\\"!==s.titleposition&&(n-=p(o,e)),l=d(s),o.r=Math.min(r,n)/(2+2*l),o.cx=e.l+e.w*(s.domain.x[1]+s.domain.x[0])/2,o.cy=e.t+e.h*(1-s.domain.y[0])-n/2,s.title&&-1!==s.titleposition.indexOf(\\\"bottom\\\")&&(o.cy-=p(o,e)),s.scalegroup&&-1===f.indexOf(s.scalegroup)&&f.push(s.scalegroup);for(a=0;a<f.length;a++){for(u=1/0,c=f[a],i=0;i<t.length;i++)(o=t[i][0]).trace.scalegroup===c&&(u=Math.min(u,o.r*o.r/o.vTotal));for(i=0;i<t.length;i++)(o=t[i][0]).trace.scalegroup===c&&(o.r=Math.sqrt(u*o.vTotal))}}(e,r._size);var g=s.makeTraceGroups(r._pielayer,e,\\\"trace\\\").each(function(e){var g=n.select(this),v=e[0],m=v.trace;!function(t){var e,r,n,i=t[0],a=i.trace,o=a.rotation*Math.PI/180,s=2*Math.PI/i.vTotal,l=\\\"px0\\\",c=\\\"px1\\\";if(\\\"counterclockwise\\\"===a.direction){for(e=0;e<t.length&&t[e].hidden;e++);if(e===t.length)return;o+=s*t[e].v,s*=-1,l=\\\"px1\\\",c=\\\"px0\\\"}function u(t){return[i.r*Math.sin(t),-i.r*Math.cos(t)]}for(n=u(o),e=0;e<t.length;e++)(r=t[e]).hidden||(r[l]=n,o+=s*r.v/2,r.pxmid=u(o),r.midangle=o,o+=s*r.v/2,n=u(o),r[c]=n,r.largeArc=r.v>i.vTotal/2?1:0)}(e),g.attr(\\\"stroke-linejoin\\\",\\\"round\\\"),g.each(function(){var g=n.select(this).selectAll(\\\"g.slice\\\").data(e);g.enter().append(\\\"g\\\").classed(\\\"slice\\\",!0),g.exit().remove();var y=[[[],[]],[[],[]]],x=!1;g.each(function(e){if(e.hidden)n.select(this).selectAll(\\\"path,g\\\").remove();else{e.pointNumber=e.i,e.curveNumber=m.index,y[e.pxmid[1]<0?0:1][e.pxmid[0]<0?0:1].push(e);var p=v.cx,d=v.cy,g=n.select(this),b=g.selectAll(\\\"path.surface\\\").data([e]),_=!1,w=!1;if(b.enter().append(\\\"path\\\").classed(\\\"surface\\\",!0).style({\\\"pointer-events\\\":\\\"all\\\"}),g.select(\\\"path.textline\\\").remove(),g.on(\\\"mouseover\\\",function(){var a=t._fullLayout,o=t._fullData[m.index];if(!t._dragging&&!1!==a.hovermode){var s=o.hoverinfo;if(Array.isArray(s)&&(s=i.castHoverinfo({hoverinfo:[c.castOption(s,e.pts)],_module:m._module},a,0)),\\\"all\\\"===s&&(s=\\\"label+text+value+percent+name\\\"),\\\"none\\\"!==s&&\\\"skip\\\"!==s&&s){var l=f(e,v),h=p+e.pxmid[0]*(1-l),g=d+e.pxmid[1]*(1-l),y=r.separators,x=[];if(-1!==s.indexOf(\\\"label\\\")&&x.push(e.label),-1!==s.indexOf(\\\"text\\\")){var b=c.castOption(o.hovertext||o.text,e.pts);b&&x.push(b)}-1!==s.indexOf(\\\"value\\\")&&x.push(c.formatPieValue(e.v,y)),-1!==s.indexOf(\\\"percent\\\")&&x.push(c.formatPiePercent(e.v/v.vTotal,y));var k=m.hoverlabel,M=k.font;i.loneHover({x0:h-l*v.r,x1:h+l*v.r,y:g,text:x.join(\\\"<br>\\\"),name:-1!==s.indexOf(\\\"name\\\")?o.name:void 0,idealAlign:e.pxmid[0]<0?\\\"left\\\":\\\"right\\\",color:c.castOption(k.bgcolor,e.pts)||e.color,borderColor:c.castOption(k.bordercolor,e.pts),fontFamily:c.castOption(M.family,e.pts),fontSize:c.castOption(M.size,e.pts),fontColor:c.castOption(M.color,e.pts)},{container:a._hoverlayer.node(),outerContainer:a._paper.node(),gd:t}),_=!0}t.emit(\\\"plotly_hover\\\",{points:[u(e,o)],event:n.event}),w=!0}}).on(\\\"mouseout\\\",function(r){var a=t._fullLayout,o=t._fullData[m.index];w&&(r.originalEvent=n.event,t.emit(\\\"plotly_unhover\\\",{points:[u(e,o)],event:n.event}),w=!1),_&&(i.loneUnhover(a._hoverlayer.node()),_=!1)}).on(\\\"click\\\",function(){var r=t._fullLayout,a=t._fullData[m.index];t._dragging||!1===r.hovermode||(t._hoverdata=[u(e,a)],i.click(t,n.event))}),m.pull){var k=+c.castOption(m.pull,e.pts)||0;k>0&&(p+=k*e.pxmid[0],d+=k*e.pxmid[1])}e.cxFinal=p,e.cyFinal=d;var M=m.hole;if(e.v===v.vTotal){var A=\\\"M\\\"+(p+e.px0[0])+\\\",\\\"+(d+e.px0[1])+L(e.px0,e.pxmid,!0,1)+L(e.pxmid,e.px0,!0,1)+\\\"Z\\\";M?b.attr(\\\"d\\\",\\\"M\\\"+(p+M*e.px0[0])+\\\",\\\"+(d+M*e.px0[1])+L(e.px0,e.pxmid,!1,M)+L(e.pxmid,e.px0,!1,M)+\\\"Z\\\"+A):b.attr(\\\"d\\\",A)}else{var T=L(e.px0,e.px1,!0,1);if(M){var S=1-M;b.attr(\\\"d\\\",\\\"M\\\"+(p+M*e.px1[0])+\\\",\\\"+(d+M*e.px1[1])+L(e.px1,e.px0,!1,M)+\\\"l\\\"+S*e.px0[0]+\\\",\\\"+S*e.px0[1]+T+\\\"Z\\\")}else b.attr(\\\"d\\\",\\\"M\\\"+p+\\\",\\\"+d+\\\"l\\\"+e.px0[0]+\\\",\\\"+e.px0[1]+T+\\\"Z\\\")}var E=c.castOption(m.textposition,e.pts),C=g.selectAll(\\\"g.slicetext\\\").data(e.text&&\\\"none\\\"!==E?[0]:[]);C.enter().append(\\\"g\\\").classed(\\\"slicetext\\\",!0),C.exit().remove(),C.each(function(){var r=s.ensureSingle(n.select(this),\\\"text\\\",\\\"\\\",function(t){t.attr(\\\"data-notex\\\",1)});r.text(e.text).attr({class:\\\"slicetext\\\",transform:\\\"\\\",\\\"text-anchor\\\":\\\"middle\\\"}).call(o.font,\\\"outside\\\"===E?function(t,e,r){var n=c.castOption(t.outsidetextfont.color,e.pts)||c.castOption(t.textfont.color,e.pts)||r.color,i=c.castOption(t.outsidetextfont.family,e.pts)||c.castOption(t.textfont.family,e.pts)||r.family,a=c.castOption(t.outsidetextfont.size,e.pts)||c.castOption(t.textfont.size,e.pts)||r.size;return{color:n,family:i,size:a}}(m,e,t._fullLayout.font):function(t,e,r){var n=c.castOption(t.insidetextfont.color,e.pts);!n&&t._input.textfont&&(n=c.castOption(t._input.textfont.color,e.pts));var i=c.castOption(t.insidetextfont.family,e.pts)||c.castOption(t.textfont.family,e.pts)||r.family,o=c.castOption(t.insidetextfont.size,e.pts)||c.castOption(t.textfont.size,e.pts)||r.size;return{color:n||a.contrast(e.color),family:i,size:o}}(m,e,t._fullLayout.font)).call(l.convertToTspans,t);var i,u=o.bBox(r.node());\\\"outside\\\"===E?i=h(u,e):(i=function(t,e,r){var n=Math.sqrt(t.width*t.width+t.height*t.height),i=t.width/t.height,a=Math.PI*Math.min(e.v/r.vTotal,.5),o=1-r.trace.hole,s=f(e,r),l={scale:s*r.r*2/n,rCenter:1-s,rotate:0};if(l.scale>=1)return l;var c=i+1/(2*Math.tan(a)),u=r.r*Math.min(1/(Math.sqrt(c*c+.5)+c),o/(Math.sqrt(i*i+o/2)+i)),h={scale:2*u/t.height,rCenter:Math.cos(u/r.r)-u*i/r.r,rotate:(180/Math.PI*e.midangle+720)%180-90},p=1/i,d=p+1/(2*Math.tan(a)),g=r.r*Math.min(1/(Math.sqrt(d*d+.5)+d),o/(Math.sqrt(p*p+o/2)+p)),v={scale:2*g/t.width,rCenter:Math.cos(g/r.r)-g/i/r.r,rotate:(180/Math.PI*e.midangle+810)%180-90},m=v.scale>h.scale?v:h;return l.scale<1&&m.scale>l.scale?m:l}(u,e,v),\\\"auto\\\"===E&&i.scale<1&&(r.call(o.font,m.outsidetextfont),m.outsidetextfont.family===m.insidetextfont.family&&m.outsidetextfont.size===m.insidetextfont.size||(u=o.bBox(r.node())),i=h(u,e)));var g=p+e.pxmid[0]*i.rCenter+(i.x||0),y=d+e.pxmid[1]*i.rCenter+(i.y||0);i.outside&&(e.yLabelMin=y-u.height/2,e.yLabelMid=y,e.yLabelMax=y+u.height/2,e.labelExtraX=0,e.labelExtraY=0,x=!0),r.attr(\\\"transform\\\",\\\"translate(\\\"+g+\\\",\\\"+y+\\\")\\\"+(i.scale<1?\\\"scale(\\\"+i.scale+\\\")\\\":\\\"\\\")+(i.rotate?\\\"rotate(\\\"+i.rotate+\\\")\\\":\\\"\\\")+\\\"translate(\\\"+-(u.left+u.right)/2+\\\",\\\"+-(u.top+u.bottom)/2+\\\")\\\")})}function L(t,r,n,i){return\\\"a\\\"+i*v.r+\\\",\\\"+i*v.r+\\\" 0 \\\"+e.largeArc+(n?\\\" 1 \\\":\\\" 0 \\\")+i*(r[0]-t[0])+\\\",\\\"+i*(r[1]-t[1])}});var b=n.select(this).selectAll(\\\"g.titletext\\\").data(m.title?[0]:[]);b.enter().append(\\\"g\\\").classed(\\\"titletext\\\",!0),b.exit().remove(),b.each(function(){var e,i=s.ensureSingle(n.select(this),\\\"text\\\",\\\"\\\",function(t){t.attr(\\\"data-notex\\\",1)});i.text(m.title).attr({class:\\\"titletext\\\",transform:\\\"\\\",\\\"text-anchor\\\":\\\"middle\\\"}).call(o.font,m.titlefont).call(l.convertToTspans,t),e=\\\"middle center\\\"===m.titleposition?function(t){var e=Math.sqrt(t.titleBox.width*t.titleBox.width+t.titleBox.height*t.titleBox.height);return{x:t.cx,y:t.cy,scale:t.trace.hole*t.r*2/e,tx:0,ty:-t.titleBox.height/2+t.trace.titlefont.size}}(v):function(t,e){var r,n,i=1,a=1,o=t.trace,s={x:t.cx,y:t.cy},l={tx:0,ty:0};l.ty+=o.titlefont.size,n=d(o),-1!==o.titleposition.indexOf(\\\"top\\\")?(s.y-=(1+n)*t.r,l.ty-=t.titleBox.height):-1!==o.titleposition.indexOf(\\\"bottom\\\")&&(s.y+=(1+n)*t.r);-1!==o.titleposition.indexOf(\\\"left\\\")?(r=e.w*(o.domain.x[1]-o.domain.x[0])/2+t.r,s.x-=(1+n)*t.r,l.tx+=t.titleBox.width/2):-1!==o.titleposition.indexOf(\\\"center\\\")?r=e.w*(o.domain.x[1]-o.domain.x[0]):-1!==o.titleposition.indexOf(\\\"right\\\")&&(r=e.w*(o.domain.x[1]-o.domain.x[0])/2+t.r,s.x+=(1+n)*t.r,l.tx-=t.titleBox.width/2);return i=r/t.titleBox.width,a=p(t,e)/t.titleBox.height,{x:s.x,y:s.y,scale:Math.min(i,a),tx:l.tx,ty:l.ty}}(v,r._size),i.attr(\\\"transform\\\",\\\"translate(\\\"+e.x+\\\",\\\"+e.y+\\\")\\\"+(e.scale<1?\\\"scale(\\\"+e.scale+\\\")\\\":\\\"\\\")+\\\"translate(\\\"+e.tx+\\\",\\\"+e.ty+\\\")\\\")}),x&&function(t,e){var r,n,i,a,o,s,l,u,f,h,p,d,g;function v(t,e){return t.pxmid[1]-e.pxmid[1]}function m(t,e){return e.pxmid[1]-t.pxmid[1]}function y(t,r){r||(r={});var i,u,f,p,d,g,v=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),m=n?t.yLabelMin:t.yLabelMax,y=n?t.yLabelMax:t.yLabelMin,x=t.cyFinal+o(t.px0[1],t.px1[1]),b=v-m;if(b*l>0&&(t.labelExtraY=b),Array.isArray(e.pull))for(u=0;u<h.length;u++)(f=h[u])===t||(c.castOption(e.pull,t.pts)||0)>=(c.castOption(e.pull,f.pts)||0)||((t.pxmid[1]-f.pxmid[1])*l>0?(p=f.cyFinal+o(f.px0[1],f.px1[1]),(b=p-m-t.labelExtraY)*l>0&&(t.labelExtraY+=b)):(y+t.labelExtraY-x)*l>0&&(i=3*s*Math.abs(u-h.indexOf(t)),d=f.cxFinal+a(f.px0[0],f.px1[0]),(g=d+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=g)))}for(n=0;n<2;n++)for(i=n?v:m,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(u=t[n][r]).sort(i),f=t[1-n][r],h=f.concat(u),d=[],p=0;p<u.length;p++)void 0!==u[p].yLabelMid&&d.push(u[p]);for(g=!1,p=0;n&&p<f.length;p++)if(void 0!==f[p].yLabelMid){g=f[p];break}for(p=0;p<d.length;p++){var x=p&&d[p-1];g&&!p&&(x=g),y(d[p],x)}}}(y,m),g.each(function(t){if(t.labelExtraX||t.labelExtraY){var e=n.select(this),r=e.select(\\\"g.slicetext text\\\");r.attr(\\\"transform\\\",\\\"translate(\\\"+t.labelExtraX+\\\",\\\"+t.labelExtraY+\\\")\\\"+r.attr(\\\"transform\\\"));var i=t.cxFinal+t.pxmid[0],o=\\\"M\\\"+i+\\\",\\\"+(t.cyFinal+t.pxmid[1]),s=(t.yLabelMax-t.yLabelMin)*(t.pxmid[0]<0?-1:1)/4;if(t.labelExtraX){var l=t.labelExtraX*t.pxmid[1]/t.pxmid[0],c=t.yLabelMid+t.labelExtraY-(t.cyFinal+t.pxmid[1]);Math.abs(l)>Math.abs(c)?o+=\\\"l\\\"+c*t.pxmid[0]/t.pxmid[1]+\\\",\\\"+c+\\\"H\\\"+(i+t.labelExtraX+s):o+=\\\"l\\\"+t.labelExtraX+\\\",\\\"+l+\\\"v\\\"+(c-l)+\\\"h\\\"+s}else o+=\\\"V\\\"+(t.yLabelMid+t.labelExtraY)+\\\"h\\\"+s;e.append(\\\"path\\\").classed(\\\"textline\\\",!0).call(a.stroke,m.outsidetextfont.color).attr({\\\"stroke-width\\\":Math.min(2,m.outsidetextfont.size/8),d:o,fill:\\\"none\\\"})}})})});setTimeout(function(){g.selectAll(\\\"tspan\\\").each(function(){var t=n.select(this);t.attr(\\\"dy\\\")&&t.attr(\\\"dy\\\",t.attr(\\\"dy\\\"))})},0)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../lib/svg_text_utils\\\":720,\\\"./event_data\\\":1022,\\\"./helpers\\\":1023,d3:148}],1028:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"./style_one\\\");e.exports=function(t){t._fullLayout._pielayer.selectAll(\\\".trace\\\").each(function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll(\\\"path.surface\\\").each(function(t){n.select(this).call(i,t,e)})})}},{\\\"./style_one\\\":1029,d3:148}],1029:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"./helpers\\\").castOption;e.exports=function(t,e,r){var a=r.marker.line,o=i(a.color,e.pts)||n.defaultLine,s=i(a.width,e.pts)||0;t.style({\\\"stroke-width\\\":s}).call(n.fill,e.color).call(n.stroke,o)}},{\\\"../../components/color\\\":570,\\\"./helpers\\\":1023}],1030:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\");e.exports={x:n.x,y:n.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:n.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\\\":1043}],1031:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-pointcloud2d\\\"),i=t(\\\"../../lib/str2rgbarray\\\"),a=t(\\\"../../plots/cartesian/autorange\\\").findExtremes,o=t(\\\"../scatter/get_trace_color\\\");function s(t,e){this.scene=t,this.uid=e,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=n(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var l=s.prototype;l.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},l.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=o(t,{})},l.updateFast=function(t){var e,r,n,o,s,l,c=this.xData=this.pickXData=t.x,u=this.yData=this.pickYData=t.y,f=this.pickXYData=t.xy,h=t.xbounds&&t.ybounds,p=t.indices,d=this.bounds;if(f){if(n=f,e=f.length>>>1,h)d[0]=t.xbounds[0],d[2]=t.xbounds[1],d[1]=t.ybounds[0],d[3]=t.ybounds[1];else for(l=0;l<e;l++)o=n[2*l],s=n[2*l+1],o<d[0]&&(d[0]=o),o>d[2]&&(d[2]=o),s<d[1]&&(d[1]=s),s>d[3]&&(d[3]=s);if(p)r=p;else for(r=new Int32Array(e),l=0;l<e;l++)r[l]=l}else for(e=c.length,n=new Float32Array(2*e),r=new Int32Array(e),l=0;l<e;l++)o=c[l],s=u[l],r[l]=l,n[2*l]=o,n[2*l+1]=s,o<d[0]&&(d[0]=o),o>d[2]&&(d[2]=o),s<d[1]&&(d[1]=s),s>d[3]&&(d[3]=s);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var g=i(t.marker.color),v=i(t.marker.border.color),m=t.opacity*t.marker.opacity;g[3]*=m,this.pointcloudOptions.color=g;var y=t.marker.blend;if(null===y){y=c.length<100||u.length<100}this.pointcloudOptions.blend=y,v[3]*=m,this.pointcloudOptions.borderColor=v;var x=t.marker.sizemin,b=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=x,this.pointcloudOptions.sizeMax=b,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var _=this.scene.xaxis,w=this.scene.yaxis,k=b/2||.5;t._extremes[_._id]=a(_,[d[0],d[2]],{ppad:k}),t._extremes[w._id]=a(w,[d[1],d[3]],{ppad:k})},l.dispose=function(){this.pointcloud.dispose()},e.exports=function(t,e){var r=new s(t,e.uid);return r.update(e),r}},{\\\"../../lib/str2rgbarray\\\":719,\\\"../../plots/cartesian/autorange\\\":743,\\\"../scatter/get_trace_color\\\":1053,\\\"gl-pointcloud2d\\\":279}],1032:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\");e.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}a(\\\"x\\\"),a(\\\"y\\\"),a(\\\"xbounds\\\"),a(\\\"ybounds\\\"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),a(\\\"text\\\"),a(\\\"marker.color\\\",r),a(\\\"marker.opacity\\\"),a(\\\"marker.blend\\\"),a(\\\"marker.sizemin\\\"),a(\\\"marker.sizemax\\\"),a(\\\"marker.border.color\\\",r),a(\\\"marker.border.arearatio\\\"),e._length=null}},{\\\"../../lib\\\":696,\\\"./attributes\\\":1030}],1033:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"../scatter3d/calc\\\"),n.plot=t(\\\"./convert\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"pointcloud\\\",n.basePlotModule=t(\\\"../../plots/gl2d\\\"),n.categories=[\\\"gl\\\",\\\"gl2d\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../plots/gl2d\\\":784,\\\"../scatter3d/calc\\\":1071,\\\"./attributes\\\":1030,\\\"./convert\\\":1031,\\\"./defaults\\\":1032}],1034:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/font_attributes\\\"),i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../components/color/attributes\\\"),o=t(\\\"../../components/fx/attributes\\\"),s=t(\\\"../../plots/domain\\\").attributes,l=t(\\\"../../lib/extend\\\").extendFlat,c=t(\\\"../../plot_api/edit_types\\\").overrideAll;(e.exports=c({hoverinfo:l({},i.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:o.hoverlabel,domain:s({name:\\\"sankey\\\",trace:!0}),orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],dflt:\\\"h\\\"},valueformat:{valType:\\\"string\\\",dflt:\\\".3s\\\"},valuesuffix:{valType:\\\"string\\\",dflt:\\\"\\\"},arrangement:{valType:\\\"enumerated\\\",values:[\\\"snap\\\",\\\"perpendicular\\\",\\\"freeform\\\",\\\"fixed\\\"],dflt:\\\"snap\\\"},textfont:n({}),node:{label:{valType:\\\"data_array\\\",dflt:[]},color:{valType:\\\"color\\\",arrayOk:!0},line:{color:{valType:\\\"color\\\",dflt:a.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:o.hoverlabel},link:{label:{valType:\\\"data_array\\\",dflt:[]},color:{valType:\\\"color\\\",arrayOk:!0},line:{color:{valType:\\\"color\\\",dflt:a.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:o.hoverlabel}},\\\"calc\\\",\\\"nested\\\")).transforms=void 0},{\\\"../../components/color/attributes\\\":569,\\\"../../components/fx/attributes\\\":604,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771}],1035:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plot_api/edit_types\\\").overrideAll,i=t(\\\"../../plots/get_data\\\").getModuleCalcData,a=t(\\\"./plot\\\"),o=t(\\\"../../components/fx/layout_attributes\\\");r.name=\\\"sankey\\\",r.baseLayoutAttrOverrides=n({hoverlabel:o.hoverlabel},\\\"plot\\\",\\\"nested\\\"),r.plot=function(t){var e=i(t.calcdata,\\\"sankey\\\")[0];a(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"sankey\\\"),a=e._has&&e._has(\\\"sankey\\\");i&&!a&&n._paperdiv.selectAll(\\\".sankey\\\").remove()}},{\\\"../../components/fx/layout_attributes\\\":613,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/get_data\\\":781,\\\"./plot\\\":1040}],1036:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"strongly-connected-components\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../lib/gup\\\").wrap;e.exports=function(t,e){return function(t,e,r){for(var a=t.length,o=i.init2dArray(a,0),s=0;s<Math.min(e.length,r.length);s++)if(i.isIndex(e[s],a)&&i.isIndex(r[s],a)){if(e[s]===r[s])return!0;o[e[s]].push(r[s])}return n(o).components.some(function(t){return t.length>1})}(e.node.label,e.link.source,e.link.target)&&(i.error(\\\"Circularity is present in the Sankey data. Removing all nodes and links.\\\"),e.link.label=[],e.link.source=[],e.link.target=[],e.link.value=[],e.link.color=[],e.node.label=[],e.node.color=[]),a({link:e.link,node:e.node})}},{\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"strongly-connected-components\\\":506}],1037:[function(t,e,r){\\\"use strict\\\";e.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:\\\"cubic-in-out\\\",cn:{sankey:\\\"sankey\\\",sankeyLinks:\\\"sankey-links\\\",sankeyLink:\\\"sankey-link\\\",sankeyNodeSet:\\\"sankey-node-set\\\",sankeyNode:\\\"sankey-node\\\",nodeRect:\\\"node-rect\\\",nodeCapture:\\\"node-capture\\\",nodeCentered:\\\"node-entered\\\",nodeLabelGuide:\\\"node-label-guide\\\",nodeLabel:\\\"node-label\\\",nodeLabelTextPath:\\\"node-label-text-path\\\"}}},{}],1038:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"tinycolor2\\\"),s=t(\\\"../../plots/domain\\\").defaults,l=t(\\\"../../components/fx/hoverlabel_defaults\\\"),c=t(\\\"../../plot_api/plot_template\\\");e.exports=function(t,e,r,u){function f(r,a){return n.coerce(t,e,i,r,a)}var h=n.extendDeep(u.hoverlabel,t.hoverlabel),p=t.node,d=c.newContainer(e,\\\"node\\\");function g(t,e){return n.coerce(p,d,i.node,t,e)}g(\\\"label\\\"),g(\\\"pad\\\"),g(\\\"thickness\\\"),g(\\\"line.color\\\"),g(\\\"line.width\\\"),g(\\\"hoverinfo\\\",t.hoverinfo),l(p,d,g,h);var v=u.colorway;g(\\\"color\\\",d.label.map(function(t,e){return a.addOpacity(function(t){return v[t%v.length]}(e),.8)}));var m=t.link,y=c.newContainer(e,\\\"link\\\");function x(t,e){return n.coerce(m,y,i.link,t,e)}x(\\\"label\\\"),x(\\\"source\\\"),x(\\\"target\\\"),x(\\\"value\\\"),x(\\\"line.color\\\"),x(\\\"line.width\\\"),x(\\\"hoverinfo\\\",t.hoverinfo),l(m,y,x,h);var b=o(u.paper_bgcolor).getLuminance()<.333?\\\"rgba(255, 255, 255, 0.6)\\\":\\\"rgba(0, 0, 0, 0.2)\\\";x(\\\"color\\\",n.repeat(b,y.value.length)),s(e,u,f),f(\\\"orientation\\\"),f(\\\"valueformat\\\"),f(\\\"valuesuffix\\\"),f(\\\"arrangement\\\"),n.coerceFont(f,\\\"textfont\\\",n.extendFlat({},u.font)),e._length=null}},{\\\"../../components/color\\\":570,\\\"../../components/fx/hoverlabel_defaults\\\":611,\\\"../../lib\\\":696,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/domain\\\":770,\\\"./attributes\\\":1034,tinycolor2:514}],1039:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"sankey\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1034,\\\"./base_plot\\\":1035,\\\"./calc\\\":1036,\\\"./defaults\\\":1038,\\\"./plot\\\":1040}],1040:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"./render\\\"),a=t(\\\"../../components/fx\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"./constants\\\").cn,c=s._;function u(t){return\\\"\\\"!==t}function f(t,e){return t.filter(function(t){return t.key===e.traceId})}function h(t,e){n.select(t).select(\\\"path\\\").style(\\\"fill-opacity\\\",e),n.select(t).select(\\\"rect\\\").style(\\\"fill-opacity\\\",e)}function p(t){n.select(t).select(\\\"text.name\\\").style(\\\"fill\\\",\\\"black\\\")}function d(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function g(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function v(t,e,r){e&&r&&f(r,e).selectAll(\\\".\\\"+l.sankeyLink).filter(d(e)).call(y.bind(0,e,r,!1))}function m(t,e,r){e&&r&&f(r,e).selectAll(\\\".\\\"+l.sankeyLink).filter(d(e)).call(x.bind(0,e,r,!1))}function y(t,e,r,n){var i=n.datum().link.label;n.style(\\\"fill-opacity\\\",.4),i&&f(e,t).selectAll(\\\".\\\"+l.sankeyLink).filter(function(t){return t.link.label===i}).style(\\\"fill-opacity\\\",.4),r&&f(e,t).selectAll(\\\".\\\"+l.sankeyNode).filter(g(t)).call(v)}function x(t,e,r,n){var i=n.datum().link.label;n.style(\\\"fill-opacity\\\",function(t){return t.tinyColorAlpha}),i&&f(e,t).selectAll(\\\".\\\"+l.sankeyLink).filter(function(t){return t.link.label===i}).style(\\\"fill-opacity\\\",function(t){return t.tinyColorAlpha}),r&&f(e,t).selectAll(l.sankeyNode).filter(g(t)).call(m)}function b(t,e){var r=t.hoverlabel||{},n=s.nestedProperty(r,e).get();return!Array.isArray(n)&&n}e.exports=function(t,e){var r=t._fullLayout,s=r._paper,f=r._size,d=c(t,\\\"source:\\\")+\\\" \\\",g=c(t,\\\"target:\\\")+\\\" \\\",_=c(t,\\\"incoming flow count:\\\")+\\\" \\\",w=c(t,\\\"outgoing flow count:\\\")+\\\" \\\";i(s,e,{width:f.w,height:f.h,margin:{t:f.t,r:f.r,b:f.b,l:f.l}},{linkEvents:{hover:function(e,r,i){!1!==t._fullLayout.hovermode&&(n.select(e).call(y.bind(0,r,i,!0)),\\\"skip\\\"!==r.link.trace.link.hoverinfo&&t.emit(\\\"plotly_hover\\\",{event:n.event,points:[r.link]}))},follow:function(e,i){if(!1!==t._fullLayout.hovermode){var s=i.link.trace.link;if(\\\"none\\\"!==s.hoverinfo&&\\\"skip\\\"!==s.hoverinfo){var l=t._fullLayout._paperdiv.node().getBoundingClientRect(),c=e.getBoundingClientRect(),f=c.left+c.width/2,v=c.top+c.height/2,m=a.loneHover({x:f-l.left,y:v-l.top,name:n.format(i.valueFormat)(i.link.value)+i.valueSuffix,text:[i.link.label||\\\"\\\",d+i.link.source.label,g+i.link.target.label].filter(u).join(\\\"<br>\\\"),color:b(s,\\\"bgcolor\\\")||o.addOpacity(i.tinyColorHue,1),borderColor:b(s,\\\"bordercolor\\\"),fontFamily:b(s,\\\"font.family\\\"),fontSize:b(s,\\\"font.size\\\"),fontColor:b(s,\\\"font.color\\\"),idealAlign:n.event.x<f?\\\"right\\\":\\\"left\\\"},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});h(m,.65),p(m)}}},unhover:function(e,i,o){!1!==t._fullLayout.hovermode&&(n.select(e).call(x.bind(0,i,o,!0)),\\\"skip\\\"!==i.link.trace.link.hoverinfo&&t.emit(\\\"plotly_unhover\\\",{event:n.event,points:[i.link]}),a.loneUnhover(r._hoverlayer.node()))},select:function(e,r){var i=r.link;i.originalEvent=n.event,t._hoverdata=[i],a.click(t,{target:!0})}},nodeEvents:{hover:function(e,r,i){!1!==t._fullLayout.hovermode&&(n.select(e).call(v,r,i),\\\"skip\\\"!==r.node.trace.node.hoverinfo&&t.emit(\\\"plotly_hover\\\",{event:n.event,points:[r.node]}))},follow:function(e,i){if(!1!==t._fullLayout.hovermode){var o=i.node.trace.node;if(\\\"none\\\"!==o.hoverinfo&&\\\"skip\\\"!==o.hoverinfo){var s=n.select(e).select(\\\".\\\"+l.nodeRect),c=t._fullLayout._paperdiv.node().getBoundingClientRect(),f=s.node().getBoundingClientRect(),d=f.left-2-c.left,g=f.right+2-c.left,v=f.top+f.height/4-c.top,m=a.loneHover({x0:d,x1:g,y:v,name:n.format(i.valueFormat)(i.node.value)+i.valueSuffix,text:[i.node.label,_+i.node.targetLinks.length,w+i.node.sourceLinks.length].filter(u).join(\\\"<br>\\\"),color:b(o,\\\"bgcolor\\\")||i.tinyColorHue,borderColor:b(o,\\\"bordercolor\\\"),fontFamily:b(o,\\\"font.family\\\"),fontSize:b(o,\\\"font.size\\\"),fontColor:b(o,\\\"font.color\\\"),idealAlign:\\\"left\\\"},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});h(m,.85),p(m)}}},unhover:function(e,i,o){!1!==t._fullLayout.hovermode&&(n.select(e).call(m,i,o),\\\"skip\\\"!==i.node.trace.node.hoverinfo&&t.emit(\\\"plotly_unhover\\\",{event:n.event,points:[i.node]}),a.loneUnhover(r._hoverlayer.node()))},select:function(e,r,i){var o=r.node;o.originalEvent=n.event,t._hoverdata=[o],n.select(e).call(m,r,i),a.click(t,{target:!0})}}})}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"./constants\\\":1037,\\\"./render\\\":1041,d3:148}],1041:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"d3\\\"),a=t(\\\"tinycolor2\\\"),o=t(\\\"../../components/color\\\"),s=t(\\\"../../components/drawing\\\"),l=t(\\\"@plotly/d3-sankey\\\").sankey,c=t(\\\"d3-force\\\"),u=t(\\\"../../lib\\\"),f=u.isArrayOrTypedArray,h=u.isIndex,p=t(\\\"../../lib/gup\\\"),d=p.keyFun,g=p.repeat,v=p.unwrap;function m(t){t.lastDraggedX=t.x,t.lastDraggedY=t.y}function y(t){return function(e){return e.node.originalX===t.node.originalX}}function x(t){for(var e=0;e<t.length;e++)t[e].y=t[e].y+t[e].dy/2}function b(t){t.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.node.x.toFixed(3)+\\\", \\\"+(t.node.y-t.node.dy/2).toFixed(3)+\\\")\\\"})}function _(t){var e=t.sankey.nodes();!function(t){for(var e=0;e<t.length;e++)t[e].y=t[e].y-t[e].dy/2}(e);var r=t.sankey.link()(t.link);return x(e),r}function w(t){t.call(b)}function k(t,e){t.call(w),e.attr(\\\"d\\\",_)}function M(t){t.attr(\\\"width\\\",function(t){return t.visibleWidth}).attr(\\\"height\\\",function(t){return t.visibleHeight})}function A(t){return t.link.dy>1||t.linkLineWidth>0}function T(t){return\\\"translate(\\\"+t.translateX+\\\",\\\"+t.translateY+\\\")\\\"+(t.horizontal?\\\"matrix(1 0 0 1 0 0)\\\":\\\"matrix(0 1 1 0 0 0)\\\")}function S(t){return\\\"translate(\\\"+(t.horizontal?0:t.labelY)+\\\" \\\"+(t.horizontal?t.labelY:0)+\\\")\\\"}function E(t){return i.svg.line()([[t.horizontal?t.left?-t.sizeAcross:t.visibleWidth+n.nodeTextOffsetHorizontal:n.nodeTextOffsetHorizontal,0],[t.horizontal?t.left?-n.nodeTextOffsetHorizontal:t.sizeAcross:t.visibleHeight-n.nodeTextOffsetHorizontal,0]])}function C(t){return t.horizontal?\\\"matrix(1 0 0 1 0 0)\\\":\\\"matrix(0 1 1 0 0 0)\\\"}function L(t){return t.horizontal?\\\"scale(1 1)\\\":\\\"scale(-1 1)\\\"}function z(t){return t.darkBackground&&!t.horizontal?\\\"rgb(255,255,255)\\\":\\\"rgb(0,0,0)\\\"}function O(t){return t.horizontal&&t.left?\\\"100%\\\":\\\"0%\\\"}function I(t,e,r){t.on(\\\".basic\\\",null).on(\\\"mouseover.basic\\\",function(t){t.interactionState.dragInProgress||(r.hover(this,t,e),t.interactionState.hovered=[this,t])}).on(\\\"mousemove.basic\\\",function(t){t.interactionState.dragInProgress||(r.follow(this,t),t.interactionState.hovered=[this,t])}).on(\\\"mouseout.basic\\\",function(t){t.interactionState.dragInProgress||(r.unhover(this,t,e),t.interactionState.hovered=!1)}).on(\\\"click.basic\\\",function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||r.select(this,t,e)})}function P(t,e,r){var a=i.behavior.drag().origin(function(t){return t.node}).on(\\\"dragstart\\\",function(i){if(\\\"fixed\\\"!==i.arrangement&&(u.raiseToTop(this),i.interactionState.dragInProgress=i.node,m(i.node),i.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,i.interactionState.hovered),i.interactionState.hovered=!1),\\\"snap\\\"===i.arrangement)){var a=i.traceId+\\\"|\\\"+Math.floor(i.node.originalX);i.forceLayouts[a]?i.forceLayouts[a].alpha(1):function(t,e,r){var i=r.sankey.nodes().filter(function(t){return t.originalX===r.node.originalX});r.forceLayouts[e]=c.forceSimulation(i).alphaDecay(0).force(\\\"collide\\\",c.forceCollide().radius(function(t){return t.dy/2+r.nodePad/2}).strength(1).iterations(n.forceIterations)).force(\\\"constrain\\\",function(t,e,r,i){return function(){for(var t=0,a=0;a<r.length;a++){var o=r[a];o===i.interactionState.dragInProgress?(o.x=o.lastDraggedX,o.y=o.lastDraggedY):(o.vx=(o.originalX-o.x)/n.forceTicksPerFrame,o.y=Math.min(i.size-o.dy/2,Math.max(o.dy/2,o.y))),t=Math.max(t,Math.abs(o.vx),Math.abs(o.vy))}!i.interactionState.dragInProgress&&t<.1&&i.forceLayouts[e].alpha()>0&&i.forceLayouts[e].alpha(0)}}(0,e,i,r)).stop()}(0,a,i),function(t,e,r,i){window.requestAnimationFrame(function a(){for(var o=0;o<n.forceTicksPerFrame;o++)r.forceLayouts[i].tick();r.sankey.relayout(),k(t.filter(y(r)),e),r.forceLayouts[i].alpha()>0&&window.requestAnimationFrame(a)})}(t,e,i,a)}}).on(\\\"drag\\\",function(r){if(\\\"fixed\\\"!==r.arrangement){var n=i.event.x,a=i.event.y;\\\"snap\\\"===r.arrangement?(r.node.x=n,r.node.y=a):(\\\"freeform\\\"===r.arrangement&&(r.node.x=n),r.node.y=Math.max(r.node.dy/2,Math.min(r.size-r.node.dy/2,a))),m(r.node),\\\"snap\\\"!==r.arrangement&&(r.sankey.relayout(),k(t.filter(y(r)),e))}}).on(\\\"dragend\\\",function(t){t.interactionState.dragInProgress=!1});t.on(\\\".drag\\\",null).call(a)}e.exports=function(t,e,r,i){var c=t.selectAll(\\\".\\\"+n.cn.sankey).data(e.filter(function(t){return v(t).trace.visible}).map(function(t,e,r){var i,a=v(e).trace,o=a.domain,s=a.node,c=a.link,p=a.arrangement,d=\\\"h\\\"===a.orientation,g=a.node.pad,m=a.node.thickness,y=a.node.line.color,b=a.node.line.width,_=a.link.line.color,w=a.link.line.width,k=a.valueformat,M=a.valuesuffix,A=a.textfont,T=t.width*(o.x[1]-o.x[0]),S=t.height*(o.y[1]-o.y[0]),E=[],C=f(c.color),L={},z=s.label.length;for(i=0;i<c.value.length;i++){var O=c.value[i],I=c.source[i],P=c.target[i];O>0&&h(I,z)&&h(P,z)&&(P=+P,L[I=+I]=L[P]=!0,E.push({pointNumber:i,label:c.label[i],color:C?c.color[i]:c.color,source:I,target:P,value:+O}))}var D=f(s.color),R=[],B=!1,F={};for(i=0;i<z;i++)if(L[i]){var N=s.label[i];F[i]=R.length,R.push({pointNumber:i,label:N,color:D?s.color[i]:s.color})}else B=!0;if(B)for(i=0;i<E.length;i++)E[i].source=F[E[i].source],E[i].target=F[E[i].target];var j=l().size(d?[T,S]:[S,T]).nodeWidth(m).nodePadding(g).nodes(R).links(E).layout(n.sankeyIterations);j.nodePadding()<g&&u.warn(\\\"node.pad was reduced to \\\",j.nodePadding(),\\\" to fit within the figure.\\\");for(var V,U=j.nodes(),q=0;q<U.length;q++)(V=U[q]).width=T,V.height=S;return x(R),{key:r,trace:a,guid:Math.floor(1e12*(1+Math.random())),horizontal:d,width:T,height:S,nodePad:g,nodeLineColor:y,nodeLineWidth:b,linkLineColor:_,linkLineWidth:w,valueFormat:k,valueSuffix:M,textFont:A,translateX:o.x[0]*t.width+t.margin.l,translateY:t.height-o.y[1]*t.height+t.margin.t,dragParallel:d?S:T,dragPerpendicular:d?T:S,nodes:R,links:E,arrangement:p,sankey:j,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}.bind(null,r)),d);c.exit().remove(),c.enter().append(\\\"g\\\").classed(n.cn.sankey,!0).style(\\\"box-sizing\\\",\\\"content-box\\\").style(\\\"position\\\",\\\"absolute\\\").style(\\\"left\\\",0).style(\\\"shape-rendering\\\",\\\"geometricPrecision\\\").style(\\\"pointer-events\\\",\\\"auto\\\").attr(\\\"transform\\\",T),c.transition().ease(n.ease).duration(n.duration).attr(\\\"transform\\\",T);var p=c.selectAll(\\\".\\\"+n.cn.sankeyLinks).data(g,d);p.enter().append(\\\"g\\\").classed(n.cn.sankeyLinks,!0).style(\\\"fill\\\",\\\"none\\\");var m=p.selectAll(\\\".\\\"+n.cn.sankeyLink).data(function(t){return t.sankey.links().filter(function(t){return t.value}).map(function(t,e,r){var n=a(r.color),i=r.source.label+\\\"|\\\"+r.target.label,s=t[i];t[i]=(s||0)+1;var l=i+\\\"__\\\"+t[i];return r.trace=e.trace,r.curveNumber=e.trace.index,{key:l,traceId:e.key,link:r,tinyColorHue:o.tinyRGB(n),tinyColorAlpha:n.getAlpha(),linkLineColor:e.linkLineColor,linkLineWidth:e.linkLineWidth,valueFormat:e.valueFormat,valueSuffix:e.valueSuffix,sankey:e.sankey,interactionState:e.interactionState}}.bind(null,{},t))},d);m.enter().append(\\\"path\\\").classed(n.cn.sankeyLink,!0).attr(\\\"d\\\",_).call(I,c,i.linkEvents),m.style(\\\"stroke\\\",function(t){return A(t)?o.tinyRGB(a(t.linkLineColor)):t.tinyColorHue}).style(\\\"stroke-opacity\\\",function(t){return A(t)?o.opacity(t.linkLineColor):t.tinyColorAlpha}).style(\\\"stroke-width\\\",function(t){return A(t)?t.linkLineWidth:1}).style(\\\"fill\\\",function(t){return t.tinyColorHue}).style(\\\"fill-opacity\\\",function(t){return t.tinyColorAlpha}),m.transition().ease(n.ease).duration(n.duration).attr(\\\"d\\\",_),m.exit().transition().ease(n.ease).duration(n.duration).style(\\\"opacity\\\",0).remove();var y=c.selectAll(\\\".\\\"+n.cn.sankeyNodeSet).data(g,d);y.enter().append(\\\"g\\\").classed(n.cn.sankeyNodeSet,!0),y.style(\\\"cursor\\\",function(t){switch(t.arrangement){case\\\"fixed\\\":return\\\"default\\\";case\\\"perpendicular\\\":return\\\"ns-resize\\\";default:return\\\"move\\\"}});var w=y.selectAll(\\\".\\\"+n.cn.sankeyNode).data(function(t){var e=t.sankey.nodes();return function(t){var e,r=[];for(e=0;e<t.length;e++)t[e].originalX=t[e].x,t[e].originalY=t[e].y,-1===r.indexOf(t[e].x)&&r.push(t[e].x);for(r.sort(function(t,e){return t-e}),e=0;e<t.length;e++)t[e].originalLayerIndex=r.indexOf(t[e].originalX),t[e].originalLayer=t[e].originalLayerIndex/(r.length-1)}(e),e.filter(function(t){return t.value}).map(function(t,e,r){var i=a(r.color),s=n.nodePadAcross,l=e.nodePad/2,c=r.dx,u=Math.max(.5,r.dy),f=r.label,h=t[f];t[f]=(h||0)+1;var p=f+\\\"__\\\"+t[f];return r.trace=e.trace,r.curveNumber=e.trace.index,{key:p,traceId:e.key,node:r,nodePad:e.nodePad,nodeLineColor:e.nodeLineColor,nodeLineWidth:e.nodeLineWidth,textFont:e.textFont,size:e.horizontal?e.height:e.width,visibleWidth:Math.ceil(c),visibleHeight:u,zoneX:-s,zoneY:-l,zoneWidth:c+2*s,zoneHeight:u+2*l,labelY:e.horizontal?r.dy/2+1:r.dx/2+1,left:1===r.originalLayer,sizeAcross:e.width,forceLayouts:e.forceLayouts,horizontal:e.horizontal,darkBackground:i.getBrightness()<=128,tinyColorHue:o.tinyRGB(i),tinyColorAlpha:i.getAlpha(),valueFormat:e.valueFormat,valueSuffix:e.valueSuffix,sankey:e.sankey,arrangement:e.arrangement,uniqueNodeLabelPathId:[e.guid,e.key,p].join(\\\" \\\"),interactionState:e.interactionState}}.bind(null,{},t))},d);w.enter().append(\\\"g\\\").classed(n.cn.sankeyNode,!0).call(b).call(I,c,i.nodeEvents),w.call(P,m,i),w.transition().ease(n.ease).duration(n.duration).call(b),w.exit().transition().ease(n.ease).duration(n.duration).style(\\\"opacity\\\",0).remove();var k=w.selectAll(\\\".\\\"+n.cn.nodeRect).data(g);k.enter().append(\\\"rect\\\").classed(n.cn.nodeRect,!0).call(M),k.style(\\\"stroke-width\\\",function(t){return t.nodeLineWidth}).style(\\\"stroke\\\",function(t){return o.tinyRGB(a(t.nodeLineColor))}).style(\\\"stroke-opacity\\\",function(t){return o.opacity(t.nodeLineColor)}).style(\\\"fill\\\",function(t){return t.tinyColorHue}).style(\\\"fill-opacity\\\",function(t){return t.tinyColorAlpha}),k.transition().ease(n.ease).duration(n.duration).call(M);var D=w.selectAll(\\\".\\\"+n.cn.nodeCapture).data(g);D.enter().append(\\\"rect\\\").classed(n.cn.nodeCapture,!0).style(\\\"fill-opacity\\\",0),D.attr(\\\"x\\\",function(t){return t.zoneX}).attr(\\\"y\\\",function(t){return t.zoneY}).attr(\\\"width\\\",function(t){return t.zoneWidth}).attr(\\\"height\\\",function(t){return t.zoneHeight});var R=w.selectAll(\\\".\\\"+n.cn.nodeCentered).data(g);R.enter().append(\\\"g\\\").classed(n.cn.nodeCentered,!0).attr(\\\"transform\\\",S),R.transition().ease(n.ease).duration(n.duration).attr(\\\"transform\\\",S);var B=R.selectAll(\\\".\\\"+n.cn.nodeLabelGuide).data(g);B.enter().append(\\\"path\\\").classed(n.cn.nodeLabelGuide,!0).attr(\\\"id\\\",function(t){return t.uniqueNodeLabelPathId}).attr(\\\"d\\\",E).attr(\\\"transform\\\",C),B.transition().ease(n.ease).duration(n.duration).attr(\\\"d\\\",E).attr(\\\"transform\\\",C);var F=R.selectAll(\\\".\\\"+n.cn.nodeLabel).data(g);F.enter().append(\\\"text\\\").classed(n.cn.nodeLabel,!0).attr(\\\"transform\\\",L).style(\\\"user-select\\\",\\\"none\\\").style(\\\"cursor\\\",\\\"default\\\").style(\\\"fill\\\",\\\"black\\\"),F.style(\\\"text-shadow\\\",function(t){return t.horizontal?\\\"-1px 1px 1px #fff, 1px 1px 1px #fff, 1px -1px 1px #fff, -1px -1px 1px #fff\\\":\\\"none\\\"}).each(function(t){s.font(F,t.textFont)}),F.transition().ease(n.ease).duration(n.duration).attr(\\\"transform\\\",L);var N=F.selectAll(\\\".\\\"+n.cn.nodeLabelTextPath).data(g);N.enter().append(\\\"textPath\\\").classed(n.cn.nodeLabelTextPath,!0).attr(\\\"alignment-baseline\\\",\\\"middle\\\").attr(\\\"xlink:href\\\",function(t){return\\\"#\\\"+t.uniqueNodeLabelPathId}).attr(\\\"startOffset\\\",O).style(\\\"fill\\\",z),N.text(function(t){return t.horizontal||t.node.dy>5?t.node.label:\\\"\\\"}).attr(\\\"text-anchor\\\",function(t){return t.horizontal&&t.left?\\\"end\\\":\\\"start\\\"}),N.transition().ease(n.ease).duration(n.duration).attr(\\\"startOffset\\\",O).style(\\\"fill\\\",z)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"./constants\\\":1037,\\\"@plotly/d3-sankey\\\":46,d3:148,\\\"d3-force\\\":144,tinycolor2:514}],1042:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e){for(var r=0;r<t.length;r++)t[r].i=r;n.mergeArray(e.text,t,\\\"tx\\\"),n.mergeArray(e.hovertext,t,\\\"htx\\\"),n.mergeArray(e.customdata,t,\\\"data\\\"),n.mergeArray(e.textposition,t,\\\"tp\\\"),e.textfont&&(n.mergeArray(e.textfont.size,t,\\\"ts\\\"),n.mergeArray(e.textfont.color,t,\\\"tc\\\"),n.mergeArray(e.textfont.family,t,\\\"tf\\\"));var i=e.marker;if(i){n.mergeArray(i.size,t,\\\"ms\\\"),n.mergeArray(i.opacity,t,\\\"mo\\\"),n.mergeArray(i.symbol,t,\\\"mx\\\"),n.mergeArray(i.color,t,\\\"mc\\\");var a=i.line;i.line&&(n.mergeArray(a.color,t,\\\"mlc\\\"),n.mergeArray(a.width,t,\\\"mlw\\\"));var o=i.gradient;o&&\\\"none\\\"!==o.type&&(n.mergeArray(o.type,t,\\\"mgt\\\"),n.mergeArray(o.color,t,\\\"mgc\\\"))}}},{\\\"../../lib\\\":696}],1043:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../../plots/font_attributes\\\"),o=t(\\\"../../components/drawing/attributes\\\").dash,s=t(\\\"../../components/drawing\\\"),l=(t(\\\"./constants\\\"),t(\\\"../../lib/extend\\\").extendFlat);e.exports={x:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},x0:{valType:\\\"any\\\",dflt:0,editType:\\\"calc+clearAxisTypes\\\"},dx:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},y:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},y0:{valType:\\\"any\\\",dflt:0,editType:\\\"calc+clearAxisTypes\\\"},dy:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},stackgroup:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"},orientation:{valType:\\\"enumerated\\\",values:[\\\"v\\\",\\\"h\\\"],editType:\\\"calc\\\"},groupnorm:{valType:\\\"enumerated\\\",values:[\\\"\\\",\\\"fraction\\\",\\\"percent\\\"],dflt:\\\"\\\",editType:\\\"calc\\\"},stackgaps:{valType:\\\"enumerated\\\",values:[\\\"infer zero\\\",\\\"interpolate\\\"],dflt:\\\"infer zero\\\",editType:\\\"calc\\\"},text:{valType:\\\"string\\\",dflt:\\\"\\\",arrayOk:!0,editType:\\\"calc\\\"},hovertext:{valType:\\\"string\\\",dflt:\\\"\\\",arrayOk:!0,editType:\\\"style\\\"},mode:{valType:\\\"flaglist\\\",flags:[\\\"lines\\\",\\\"markers\\\",\\\"text\\\"],extras:[\\\"none\\\"],editType:\\\"calc\\\"},hoveron:{valType:\\\"flaglist\\\",flags:[\\\"points\\\",\\\"fills\\\"],editType:\\\"style\\\"},line:{color:{valType:\\\"color\\\",editType:\\\"style\\\"},width:{valType:\\\"number\\\",min:0,dflt:2,editType:\\\"style\\\"},shape:{valType:\\\"enumerated\\\",values:[\\\"linear\\\",\\\"spline\\\",\\\"hv\\\",\\\"vh\\\",\\\"hvh\\\",\\\"vhv\\\"],dflt:\\\"linear\\\",editType:\\\"plot\\\"},smoothing:{valType:\\\"number\\\",min:0,max:1.3,dflt:1,editType:\\\"plot\\\"},dash:l({},o,{editType:\\\"style\\\"}),simplify:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},editType:\\\"plot\\\"},connectgaps:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},cliponaxis:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"plot\\\"},fill:{valType:\\\"enumerated\\\",values:[\\\"none\\\",\\\"tozeroy\\\",\\\"tozerox\\\",\\\"tonexty\\\",\\\"tonextx\\\",\\\"toself\\\",\\\"tonext\\\"],editType:\\\"calc\\\"},fillcolor:{valType:\\\"color\\\",editType:\\\"style\\\"},marker:l({symbol:{valType:\\\"enumerated\\\",values:s.symbolList,dflt:\\\"circle\\\",arrayOk:!0,editType:\\\"style\\\"},opacity:{valType:\\\"number\\\",min:0,max:1,arrayOk:!0,editType:\\\"style\\\"},size:{valType:\\\"number\\\",min:0,dflt:6,arrayOk:!0,editType:\\\"calc\\\"},maxdisplayed:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"plot\\\"},sizeref:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},sizemin:{valType:\\\"number\\\",min:0,dflt:0,editType:\\\"calc\\\"},sizemode:{valType:\\\"enumerated\\\",values:[\\\"diameter\\\",\\\"area\\\"],dflt:\\\"diameter\\\",editType:\\\"calc\\\"},colorbar:i,line:l({width:{valType:\\\"number\\\",min:0,arrayOk:!0,editType:\\\"style\\\"},editType:\\\"calc\\\"},n(\\\"marker.line\\\")),gradient:{type:{valType:\\\"enumerated\\\",values:[\\\"radial\\\",\\\"horizontal\\\",\\\"vertical\\\",\\\"none\\\"],arrayOk:!0,dflt:\\\"none\\\",editType:\\\"calc\\\"},color:{valType:\\\"color\\\",arrayOk:!0,editType:\\\"calc\\\"},editType:\\\"calc\\\"},editType:\\\"calc\\\"},n(\\\"marker\\\")),selected:{marker:{opacity:{valType:\\\"number\\\",min:0,max:1,editType:\\\"style\\\"},color:{valType:\\\"color\\\",editType:\\\"style\\\"},size:{valType:\\\"number\\\",min:0,editType:\\\"style\\\"},editType:\\\"style\\\"},textfont:{color:{valType:\\\"color\\\",editType:\\\"style\\\"},editType:\\\"style\\\"},editType:\\\"style\\\"},unselected:{marker:{opacity:{valType:\\\"number\\\",min:0,max:1,editType:\\\"style\\\"},color:{valType:\\\"color\\\",editType:\\\"style\\\"},size:{valType:\\\"number\\\",min:0,editType:\\\"style\\\"},editType:\\\"style\\\"},textfont:{color:{valType:\\\"color\\\",editType:\\\"style\\\"},editType:\\\"style\\\"},editType:\\\"style\\\"},textposition:{valType:\\\"enumerated\\\",values:[\\\"top left\\\",\\\"top center\\\",\\\"top right\\\",\\\"middle left\\\",\\\"middle center\\\",\\\"middle right\\\",\\\"bottom left\\\",\\\"bottom center\\\",\\\"bottom right\\\"],dflt:\\\"middle center\\\",arrayOk:!0,editType:\\\"calc\\\"},textfont:a({editType:\\\"calc\\\",colorEditType:\\\"style\\\",arrayOk:!0}),r:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},t:{valType:\\\"data_array\\\",editType:\\\"calc\\\"}}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../components/drawing\\\":595,\\\"../../components/drawing/attributes\\\":594,\\\"../../lib/extend\\\":685,\\\"../../plots/font_attributes\\\":771,\\\"./constants\\\":1047}],1044:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../../constants/numerical\\\").BADNUM,s=t(\\\"./subtypes\\\"),l=t(\\\"./colorscale_calc\\\"),c=t(\\\"./arrays_to_calcdata\\\"),u=t(\\\"./calc_selection\\\");function f(t,e,r,n,i,o,l){var c=e._length,u=t._fullLayout,f=r._id,h=n._id,p=u._firstScatter[d(e)]===e.uid,v=(g(e,u,r,n)||{}).orientation,m=e.fill;r._minDtick=0,n._minDtick=0;var y={padded:!0},x={padded:!0};l&&(y.ppad=x.ppad=l);var b=c<2||i[0]!==i[c-1]||o[0]!==o[c-1];b&&(\\\"tozerox\\\"===m||\\\"tonextx\\\"===m&&(p||\\\"h\\\"===v))?y.tozero=!0:(e.error_y||{}).visible||\\\"tonexty\\\"!==m&&\\\"tozeroy\\\"!==m&&(s.hasMarkers(e)||s.hasText(e))||(y.padded=!1,y.ppad=0),b&&(\\\"tozeroy\\\"===m||\\\"tonexty\\\"===m&&(p||\\\"v\\\"===v))?x.tozero=!0:\\\"tonextx\\\"!==m&&\\\"tozerox\\\"!==m||(x.padded=!1),f&&(e._extremes[f]=a.findExtremes(r,i,y)),h&&(e._extremes[h]=a.findExtremes(n,o,x))}function h(t,e){if(s.hasMarkers(t)){var r,n=t.marker,o=1.6*(t.marker.sizeref||1);if(r=\\\"area\\\"===t.marker.sizemode?function(t){return Math.max(Math.sqrt((t||0)/o),3)}:function(t){return Math.max((t||0)/o,3)},i.isArrayOrTypedArray(n.size)){var l={type:\\\"linear\\\"};a.setConvert(l);for(var c=l.makeCalcdata(t.marker,\\\"size\\\"),u=new Array(e),f=0;f<e;f++)u[f]=r(c[f]);return u}return r(n.size)}}function p(t,e){var r=d(e),n=t._firstScatter;n[r]||(n[r]=e.uid)}function d(t){var e=t.stackgroup;return t.xaxis+t.yaxis+t.type+(e?\\\"-\\\"+e:\\\"\\\")}function g(t,e,r,n){var i=t.stackgroup;if(i){var a=e._scatterStackOpts[r._id+n._id][i],o=\\\"v\\\"===a.orientation?n:r;return\\\"linear\\\"===o.type||\\\"log\\\"===o.type?a:void 0}}e.exports={calc:function(t,e){var r,s,d,v,m,y,x=t._fullLayout,b=a.getFromId(t,e.xaxis||\\\"x\\\"),_=a.getFromId(t,e.yaxis||\\\"y\\\"),w=b.makeCalcdata(e,\\\"x\\\"),k=_.makeCalcdata(e,\\\"y\\\"),M=e._length,A=new Array(M),T=e.ids,S=g(e,x,b,_),E=!1;p(x,e);var C,L=\\\"x\\\",z=\\\"y\\\";for(S?(S.traceIndices.push(e.index),(r=\\\"v\\\"===S.orientation)?(z=\\\"s\\\",C=\\\"x\\\"):(L=\\\"s\\\",C=\\\"y\\\"),m=\\\"interpolate\\\"===S.stackgaps):f(t,e,b,_,w,k,h(e,M)),s=0;s<M;s++){var O=A[s]={},I=n(w[s]),P=n(k[s]);I&&P?(O[L]=w[s],O[z]=k[s]):S&&(r?I:P)?(O[C]=r?w[s]:k[s],O.gap=!0,m?(O.s=o,E=!0):O.s=0):O[L]=O[z]=o,T&&(O.id=String(T[s]))}if(c(A,e),l(e),u(A,e),S){for(s=0;s<A.length;)A[s][C]===o?A.splice(s,1):s++;if(i.sort(A,function(t,e){return t[C]-e[C]||t.i-e.i}),E){for(s=0;s<A.length-1&&A[s].gap;)s++;for((y=A[s].s)||(y=A[s].s=0),d=0;d<s;d++)A[d].s=y;for(v=A.length-1;v>s&&A[v].gap;)v--;for(y=A[v].s,d=A.length-1;d>v;d--)A[d].s=y;for(;s<v;)if(A[++s].gap){for(d=s+1;A[d].gap;)d++;for(var D=A[s-1][C],R=A[s-1].s,B=(A[d].s-R)/(A[d][C]-D);s<d;)A[s].s=R+(A[s][C]-D)*B,s++}}}return A},calcMarkerSize:h,calcAxisExpansion:f,setFirstScatter:p,getStackOpts:g}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"./arrays_to_calcdata\\\":1042,\\\"./calc_selection\\\":1045,\\\"./colorscale_calc\\\":1046,\\\"./subtypes\\\":1067,\\\"fast-isnumeric\\\":214}],1045:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e){n.isArrayOrTypedArray(e.selectedpoints)&&n.tagSelected(t,e)}},{\\\"../../lib\\\":696}],1046:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/has_colorscale\\\"),i=t(\\\"../../components/colorscale/calc\\\"),a=t(\\\"./subtypes\\\");e.exports=function(t){a.hasLines(t)&&n(t,\\\"line\\\")&&i(t,t.line.color,\\\"line\\\",\\\"c\\\"),a.hasMarkers(t)&&(n(t,\\\"marker\\\")&&i(t,t.marker.color,\\\"marker\\\",\\\"c\\\"),n(t,\\\"marker.line\\\")&&i(t,t.marker.line.color,\\\"marker.line\\\",\\\"c\\\"))}},{\\\"../../components/colorscale/calc\\\":578,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"./subtypes\\\":1067}],1047:[function(t,e,r){\\\"use strict\\\";e.exports={PTS_LINESONLY:20,minTolerance:.2,toleranceGrowth:10,maxScreensAway:20}},{}],1048:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./calc\\\");function i(t,e,r,n,i,a,o){i[n]=!0;var s={i:null,gap:!0,s:0};if(s[o]=r,t.splice(e,0,s),e&&r===t[e-1][o]){var l=t[e-1];s.s=l.s,s.i=l.i,s.gap=l.gap}else a&&(s.s=function(t,e,r,n){var i=t[e-1],a=t[e+1];return a?i?i.s+(a.s-i.s)*(r-i[n])/(a[n]-i[n]):a.s:i.s}(t,e,r,o));e||(t[0].t=t[1].t,t[0].trace=t[1].trace,delete t[1].t,delete t[1].trace)}e.exports=function(t,e){var r=e.xaxis,a=e.yaxis,o=r._id+a._id,s=t._fullLayout._scatterStackOpts[o];if(s){var l,c,u,f,h,p,d,g,v,m,y,x,b,_,w,k=t.calcdata;for(var M in s){var A=(m=s[M]).traceIndices;if(A.length){for(y=\\\"interpolate\\\"===m.stackgaps,x=m.groupnorm,\\\"v\\\"===m.orientation?(b=\\\"x\\\",_=\\\"y\\\"):(b=\\\"y\\\",_=\\\"x\\\"),w=new Array(A.length),l=0;l<w.length;l++)w[l]=!1;p=k[A[0]];var T=new Array(p.length);for(l=0;l<p.length;l++)T[l]=p[l][b];for(l=1;l<A.length;l++){for(h=k[A[l]],c=u=0;c<h.length;c++){for(d=h[c][b];d>T[u]&&u<T.length;u++)i(h,c,T[u],l,w,y,b),c++;if(d!==T[u]){for(f=0;f<l;f++)i(k[A[f]],u,d,f,w,y,b);T.splice(u,0,d)}u++}for(;u<T.length;u++)i(h,c,T[u],l,w,y,b),c++}var S=T.length;for(c=0;c<p.length;c++){for(g=p[c][_]=p[c].s,l=1;l<A.length;l++)(h=k[A[l]])[0].trace._rawLength=h[0].trace._length,h[0].trace._length=S,g+=h[c].s,h[c][_]=g;if(x)for(v=(\\\"fraction\\\"===x?g:g/100)||1,l=0;l<A.length;l++){var E=k[A[l]][c];E[_]/=v,E.sNorm=E.s/v}}for(l=0;l<A.length;l++){var C=(h=k[A[l]])[0].trace,L=n.calcMarkerSize(C,C._rawLength),z=Array.isArray(L);if(L&&w[l]||z){var O=L;for(L=new Array(S),c=0;c<S;c++)L[c]=h[c].gap?0:z?O[h[c].i]:O}var I=new Array(S),P=new Array(S);for(c=0;c<S;c++)I[c]=h[c].x,P[c]=h[c].y;n.calcAxisExpansion(t,C,r,a,I,P,L),h[0].t.orientation=m.orientation}}}}}},{\\\"./calc\\\":1044}],1049:[function(t,e,r){\\\"use strict\\\";e.exports=function(t){for(var e=0;e<t.length;e++){var r=t[e];if(\\\"scatter\\\"===r.type){var n=r.fill;if(\\\"none\\\"!==n&&\\\"toself\\\"!==n&&(r.opacity=void 0,\\\"tonexty\\\"===n||\\\"tonextx\\\"===n))for(var i=e-1;i>=0;i--){var a=t[i];if(\\\"scatter\\\"===a.type&&a.xaxis===r.xaxis&&a.yaxis===r.yaxis){a.opacity=void 0;break}}}}}},{}],1050:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"./constants\\\"),s=t(\\\"./subtypes\\\"),l=t(\\\"./xy_defaults\\\"),c=t(\\\"./stack_defaults\\\"),u=t(\\\"./marker_defaults\\\"),f=t(\\\"./line_defaults\\\"),h=t(\\\"./line_shape_defaults\\\"),p=t(\\\"./text_defaults\\\"),d=t(\\\"./fillcolor_defaults\\\");e.exports=function(t,e,r,g){function v(r,i){return n.coerce(t,e,a,r,i)}var m=l(t,e,g,v);if(m||(e.visible=!1),e.visible){var y=c(t,e,g,v),x=!y&&m<o.PTS_LINESONLY?\\\"lines+markers\\\":\\\"lines\\\";v(\\\"text\\\"),v(\\\"hovertext\\\"),v(\\\"mode\\\",x),s.hasLines(e)&&(f(t,e,r,g,v),h(t,e,v),v(\\\"connectgaps\\\"),v(\\\"line.simplify\\\")),s.hasMarkers(e)&&u(t,e,r,g,v,{gradient:!0}),s.hasText(e)&&p(t,e,g,v);var b=[];(s.hasMarkers(e)||s.hasText(e))&&(v(\\\"cliponaxis\\\"),v(\\\"marker.maxdisplayed\\\"),b.push(\\\"points\\\")),v(\\\"fill\\\",y?y.fillDflt:\\\"none\\\"),\\\"none\\\"!==e.fill&&(d(t,e,r,v),s.hasLines(e)||h(t,e,v)),\\\"tonext\\\"!==e.fill&&\\\"toself\\\"!==e.fill||b.push(\\\"fills\\\"),v(\\\"hoveron\\\",b.join(\\\"+\\\")||\\\"points\\\");var _=i.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");_(t,e,r,{axis:\\\"y\\\"}),_(t,e,r,{axis:\\\"x\\\",inherit:\\\"y\\\"}),n.coerceSelectionMarkerOpacity(e,v)}}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":1043,\\\"./constants\\\":1047,\\\"./fillcolor_defaults\\\":1052,\\\"./line_defaults\\\":1056,\\\"./line_shape_defaults\\\":1058,\\\"./marker_defaults\\\":1062,\\\"./stack_defaults\\\":1065,\\\"./subtypes\\\":1067,\\\"./text_defaults\\\":1068,\\\"./xy_defaults\\\":1069}],1051:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");function i(t){return t||0===t}e.exports=function(t,e,r){var a=Array.isArray(r)?function(t){r.push(t)}:function(t){r.text=t},o=n.extractOption(t,e,\\\"htx\\\",\\\"hovertext\\\");if(i(o))return a(o);var s=n.extractOption(t,e,\\\"tx\\\",\\\"text\\\");return i(s)?a(s):void 0}},{\\\"../../lib\\\":696}],1052:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../lib\\\").isArrayOrTypedArray;e.exports=function(t,e,r,a){var o=!1;if(e.marker){var s=e.marker.color,l=(e.marker.line||{}).color;s&&!i(s)?o=s:l&&!i(l)&&(o=l)}a(\\\"fillcolor\\\",n.addOpacity((e.line||{}).color||o||r,.5))}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696}],1053:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"./subtypes\\\");e.exports=function(t,e){var r,a;if(\\\"lines\\\"===t.mode)return(r=t.line.color)&&n.opacity(r)?r:t.fillcolor;if(\\\"none\\\"===t.mode)return t.fill?t.fillcolor:\\\"\\\";var o=e.mcc||(t.marker||{}).color,s=e.mlcc||((t.marker||{}).line||{}).color;return(a=o&&n.opacity(o)?o:s&&n.opacity(s)&&(e.mlw||((t.marker||{}).line||{}).width)?s:\\\"\\\")?n.opacity(a)<.3?n.addOpacity(a,.3):a:(r=(t.line||{}).color)&&n.opacity(r)&&i.hasLines(t)&&t.line.width?r:t.fillcolor}},{\\\"../../components/color\\\":570,\\\"./subtypes\\\":1067}],1054:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/fx\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"./get_trace_color\\\"),s=t(\\\"../../components/color\\\"),l=t(\\\"./fill_hover_text\\\");e.exports=function(t,e,r,c){var u=t.cd,f=u[0].trace,h=t.xa,p=t.ya,d=h.c2p(e),g=p.c2p(r),v=[d,g],m=f.hoveron||\\\"\\\",y=-1!==f.mode.indexOf(\\\"markers\\\")?3:.5;if(-1!==m.indexOf(\\\"points\\\")){var x=function(t){var e=Math.max(y,t.mrc||0),r=h.c2p(t.x)-d,n=p.c2p(t.y)-g;return Math.max(Math.sqrt(r*r+n*n)-e,1-y/e)},b=i.getDistanceFunction(c,function(t){var e=Math.max(3,t.mrc||0),r=1-1/e,n=Math.abs(h.c2p(t.x)-d);return n<e?r*n/e:n-e+r},function(t){var e=Math.max(3,t.mrc||0),r=1-1/e,n=Math.abs(p.c2p(t.y)-g);return n<e?r*n/e:n-e+r},x);if(i.getClosest(u,b,t),!1!==t.index){var _=u[t.index],w=h.c2p(_.x,!0),k=p.c2p(_.y,!0),M=_.mrc||1;t.index=_.i;var A=u[0].t.orientation,T=A&&(_.sNorm||_.s),S=\\\"h\\\"===A?T:_.x,E=\\\"v\\\"===A?T:_.y;return n.extendFlat(t,{color:o(f,_),x0:w-M,x1:w+M,xLabelVal:S,y0:k-M,y1:k+M,yLabelVal:E,spikeDistance:x(_)}),l(_,f,t),a.getComponentMethod(\\\"errorbars\\\",\\\"hoverInfo\\\")(_,f,t),[t]}}if(-1!==m.indexOf(\\\"fills\\\")&&f._polygons){var C,L,z,O,I,P,D,R,B,F=f._polygons,N=[],j=!1,V=1/0,U=-1/0,q=1/0,H=-1/0;for(C=0;C<F.length;C++)(z=F[C]).contains(v)&&(j=!j,N.push(z),q=Math.min(q,z.ymin),H=Math.max(H,z.ymax));if(j){var G=((q=Math.max(q,0))+(H=Math.min(H,p._length)))/2;for(C=0;C<N.length;C++)for(O=N[C].pts,L=1;L<O.length;L++)(R=O[L-1][1])>G!=(B=O[L][1])>=G&&(P=O[L-1][0],D=O[L][0],B-R&&(I=P+(D-P)*(G-R)/(B-R),V=Math.min(V,I),U=Math.max(U,I)));V=Math.max(V,0),U=Math.min(U,h._length);var W=s.defaultLine;return s.opacity(f.fillcolor)?W=f.fillcolor:s.opacity((f.line||{}).color)&&(W=f.line.color),n.extendFlat(t,{distance:t.maxHoverDistance,x0:V,x1:U,y0:G,y1:G,color:W}),delete t.index,f.text&&!Array.isArray(f.text)?t.text=String(f.text):t.text=f.name,[t]}}}},{\\\"../../components/color\\\":570,\\\"../../components/fx\\\":612,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./fill_hover_text\\\":1051,\\\"./get_trace_color\\\":1053}],1055:[function(t,e,r){\\\"use strict\\\";var n={},i=t(\\\"./subtypes\\\");n.hasLines=i.hasLines,n.hasMarkers=i.hasMarkers,n.hasText=i.hasText,n.isBubble=i.isBubble,n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.crossTraceDefaults=t(\\\"./cross_trace_defaults\\\"),n.calc=t(\\\"./calc\\\").calc,n.crossTraceCalc=t(\\\"./cross_trace_calc\\\"),n.arraysToCalcdata=t(\\\"./arrays_to_calcdata\\\"),n.plot=t(\\\"./plot\\\"),n.colorbar=t(\\\"./marker_colorbar\\\"),n.style=t(\\\"./style\\\").style,n.styleOnSelect=t(\\\"./style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.selectPoints=t(\\\"./select\\\"),n.animatable=!0,n.moduleType=\\\"trace\\\",n.name=\\\"scatter\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"cartesian\\\",\\\"svg\\\",\\\"symbols\\\",\\\"errorBarsOK\\\",\\\"showLegend\\\",\\\"scatter-like\\\",\\\"zoomScale\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"./arrays_to_calcdata\\\":1042,\\\"./attributes\\\":1043,\\\"./calc\\\":1044,\\\"./cross_trace_calc\\\":1048,\\\"./cross_trace_defaults\\\":1049,\\\"./defaults\\\":1050,\\\"./hover\\\":1054,\\\"./marker_colorbar\\\":1061,\\\"./plot\\\":1063,\\\"./select\\\":1064,\\\"./style\\\":1066,\\\"./subtypes\\\":1067}],1056:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\").isArrayOrTypedArray,i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\");e.exports=function(t,e,r,o,s,l){var c=(t.marker||{}).color;(s(\\\"line.color\\\",r),i(t,\\\"line\\\"))?a(t,e,o,s,{prefix:\\\"line.\\\",cLetter:\\\"c\\\",noScale:!0}):s(\\\"line.color\\\",!n(c)&&c||r);s(\\\"line.width\\\"),(l||{}).noDash||s(\\\"line.dash\\\")}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"../../lib\\\":696}],1057:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../constants/numerical\\\"),i=n.BADNUM,a=n.LOG_CLIP,o=a+.5,s=a-.5,l=t(\\\"../../lib\\\"),c=l.segmentsIntersect,u=l.constrain,f=t(\\\"./constants\\\");e.exports=function(t,e){var r,n,a,h,p,d,g,v,m,y,x,b,_,w,k,M,A,T,S=e.xaxis,E=e.yaxis,C=\\\"log\\\"===S.type,L=\\\"log\\\"===E.type,z=S._length,O=E._length,I=e.connectGaps,P=e.baseTolerance,D=e.shape,R=\\\"linear\\\"===D,B=[],F=f.minTolerance,N=new Array(t.length),j=0;function V(e){var r=t[e];if(!r)return!1;var n=S.c2p(r.x),a=E.c2p(r.y);if(n===i){if(C&&(n=S.c2p(r.x,!0)),n===i)return!1;L&&a===i&&(n*=Math.abs(S._m*O*(S._m>0?o:s)/(E._m*z*(E._m>0?o:s)))),n*=1e3}if(a===i){if(L&&(a=E.c2p(r.y,!0)),a===i)return!1;a*=1e3}return[n,a]}function U(t,e,r,n){var i=r-t,a=n-e,o=.5-t,s=.5-e,l=i*i+a*a,c=i*o+a*s;if(c>0&&c<l){var u=o*a-s*i;if(u*u<l)return!0}}function q(t,e){var r=t[0]/z,n=t[1]/O,i=Math.max(0,-r,r-1,-n,n-1);return i&&void 0!==A&&U(r,n,A,T)&&(i=0),i&&e&&U(r,n,e[0]/z,e[1]/O)&&(i=0),(1+f.toleranceGrowth*i)*P}function H(t,e){var r=t[0]-e[0],n=t[1]-e[1];return Math.sqrt(r*r+n*n)}var G,W,Y,X,Z,$,J,K=f.maxScreensAway,Q=-z*K,tt=z*(1+K),et=-O*K,rt=O*(1+K),nt=[[Q,et,tt,et],[tt,et,tt,rt],[tt,rt,Q,rt],[Q,rt,Q,et]];function it(t){if(t[0]<Q||t[0]>tt||t[1]<et||t[1]>rt)return[u(t[0],Q,tt),u(t[1],et,rt)]}function at(t,e){return t[0]===e[0]&&(t[0]===Q||t[0]===tt)||(t[1]===e[1]&&(t[1]===et||t[1]===rt)||void 0)}function ot(t,e,r){return function(n,i){var a=it(n),o=it(i),s=[];if(a&&o&&at(a,o))return s;a&&s.push(a),o&&s.push(o);var c=2*l.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);c&&((a&&o?c>0==a[t]>o[t]?a:o:a||o)[t]+=c);return s}}function st(t){var e=t[0],r=t[1],n=e===N[j-1][0],i=r===N[j-1][1];if(!n||!i)if(j>1){var a=e===N[j-2][0],o=r===N[j-2][1];n&&(e===Q||e===tt)&&a?o?j--:N[j-1]=t:i&&(r===et||r===rt)&&o?a?j--:N[j-1]=t:N[j++]=t}else N[j++]=t}function lt(t){N[j-1][0]!==t[0]&&N[j-1][1]!==t[1]&&st([Y,X]),st(t),Z=null,Y=X=0}function ct(t){if(A=t[0]/z,T=t[1]/O,G=t[0]<Q?Q:t[0]>tt?tt:0,W=t[1]<et?et:t[1]>rt?rt:0,G||W){if(j)if(Z){var e=J(Z,t);e.length>1&&(lt(e[0]),N[j++]=e[1])}else $=J(N[j-1],t)[0],N[j++]=$;else N[j++]=[G||t[0],W||t[1]];var r=N[j-1];G&&W&&(r[0]!==G||r[1]!==W)?(Z&&(Y!==G&&X!==W?st(Y&&X?(n=Z,a=(i=t)[0]-n[0],o=(i[1]-n[1])/a,(n[1]*i[0]-i[1]*n[0])/a>0?[o>0?Q:tt,rt]:[o>0?tt:Q,et]):[Y||G,X||W]):Y&&X&&st([Y,X])),st([G,W])):Y-G&&X-W&&st([G||Y,W||X]),Z=t,Y=G,X=W}else Z&&lt(J(Z,t)[0]),N[j++]=t;var n,i,a,o}for(\\\"linear\\\"===D||\\\"spline\\\"===D?J=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=nt[i],o=c(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&H(o,t)<H(r[0],t)?r.unshift(o):r.push(o),n++)}return r}:\\\"hv\\\"===D||\\\"vh\\\"===D?J=function(t,e){var r=[],n=it(t),i=it(e);return n&&i&&at(n,i)?r:(n&&r.push(n),i&&r.push(i),r)}:\\\"hvh\\\"===D?J=ot(0,Q,tt):\\\"vhv\\\"===D&&(J=ot(1,et,rt)),r=0;r<t.length;r++)if(n=V(r)){for(j=0,Z=null,ct(n),r++;r<t.length;r++){if(!(h=V(r))){if(I)continue;break}if(R&&e.simplify){var ut=V(r+1);if(!((y=H(h,n))<q(h,ut)*F)){for(v=[(h[0]-n[0])/y,(h[1]-n[1])/y],p=n,x=y,b=w=k=0,g=!1,a=h,r++;r<t.length;r++){if(d=ut,ut=V(r+1),!d){if(I)continue;break}if(M=(m=[d[0]-n[0],d[1]-n[1]])[0]*v[1]-m[1]*v[0],w=Math.min(w,M),(k=Math.max(k,M))-w>q(d,ut))break;a=d,(_=m[0]*v[0]+m[1]*v[1])>x?(x=_,h=d,g=!1):_<b&&(b=_,p=d,g=!0)}if(g?(ct(h),a!==p&&ct(p)):(p!==n&&ct(p),a!==h&&ct(h)),ct(a),r>=t.length||!d)break;ct(d),n=d}}else ct(h)}Z&&st([Y||Z[0],X||Z[1]]),B.push(N.slice(0,j))}return B}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"./constants\\\":1047}],1058:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r){\\\"spline\\\"===r(\\\"line.shape\\\")&&r(\\\"line.smoothing\\\")}},{}],1059:[function(t,e,r){\\\"use strict\\\";var n={tonextx:1,tonexty:1,tonext:1};e.exports=function(t,e,r){var i,a,o,s,l,c={},u=!1,f=-1,h=0,p=-1;for(a=0;a<r.length;a++)(o=(i=r[a][0].trace).stackgroup||\\\"\\\")?o in c?l=c[o]:(l=c[o]=h,h++):i.fill in n&&p>=0?l=p:(l=p=h,h++),l<f&&(u=!0),i._groupIndex=f=l;var d=r.slice();u&&d.sort(function(t,e){var r=t[0].trace,n=e[0].trace;return r._groupIndex-n._groupIndex||r.index-n.index});var g={};for(a=0;a<d.length;a++)o=(i=d[a][0].trace).stackgroup||\\\"\\\",!0===i.visible?(i._nexttrace=null,i.fill in n&&(s=g[o],i._prevtrace=s||null,s&&(s._nexttrace=i)),i._ownfill=i.fill&&(\\\"tozero\\\"===i.fill.substr(0,6)||\\\"toself\\\"===i.fill||\\\"to\\\"===i.fill.substr(0,2)&&!i._prevtrace),g[o]=i):i._prevtrace=i._nexttrace=i._ownfill=null;return d}},{}],1060:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\");e.exports=function(t){var e=t.marker,r=e.sizeref||1,i=e.sizemin||0,a=\\\"area\\\"===e.sizemode?function(t){return Math.sqrt(t/r)}:function(t){return t/r};return function(t){var e=a(t/2);return n(e)&&e>0?Math.max(e,i):0}}},{\\\"fast-isnumeric\\\":214}],1061:[function(t,e,r){\\\"use strict\\\";e.exports={container:\\\"marker\\\",min:\\\"cmin\\\",max:\\\"cmax\\\"}},{}],1062:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../components/colorscale/has_colorscale\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"./subtypes\\\");e.exports=function(t,e,r,s,l,c){var u=o.isBubble(t),f=(t.line||{}).color;(c=c||{},f&&(r=f),l(\\\"marker.symbol\\\"),l(\\\"marker.opacity\\\",u?.7:1),l(\\\"marker.size\\\"),l(\\\"marker.color\\\",r),i(t,\\\"marker\\\")&&a(t,e,s,l,{prefix:\\\"marker.\\\",cLetter:\\\"c\\\"}),c.noSelect||(l(\\\"selected.marker.color\\\"),l(\\\"unselected.marker.color\\\"),l(\\\"selected.marker.size\\\"),l(\\\"unselected.marker.size\\\")),c.noLine||(l(\\\"marker.line.color\\\",f&&!Array.isArray(f)&&e.marker.color!==f?f:u?n.background:n.defaultLine),i(t,\\\"marker.line\\\")&&a(t,e,s,l,{prefix:\\\"marker.line.\\\",cLetter:\\\"c\\\"}),l(\\\"marker.line.width\\\",u?1:0)),u&&(l(\\\"marker.sizeref\\\"),l(\\\"marker.sizemin\\\"),l(\\\"marker.sizemode\\\")),c.gradient)&&(\\\"none\\\"!==l(\\\"marker.gradient.type\\\")&&l(\\\"marker.gradient.color\\\"))}},{\\\"../../components/color\\\":570,\\\"../../components/colorscale/defaults\\\":580,\\\"../../components/colorscale/has_colorscale\\\":584,\\\"./subtypes\\\":1067}],1063:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib\\\"),o=a.ensureSingle,s=a.identity,l=t(\\\"../../components/drawing\\\"),c=t(\\\"./subtypes\\\"),u=t(\\\"./line_points\\\"),f=t(\\\"./link_traces\\\"),h=t(\\\"../../lib/polygon\\\").tester;function p(t,e,r,f,p,d,g){var v;!function(t,e,r,i,o){var s=r.xaxis,l=r.yaxis,u=n.extent(a.simpleMap(s.range,s.r2c)),f=n.extent(a.simpleMap(l.range,l.r2c)),h=i[0].trace;if(!c.hasMarkers(h))return;var p=h.marker.maxdisplayed;if(0===p)return;var d=i.filter(function(t){return t.x>=u[0]&&t.x<=u[1]&&t.y>=f[0]&&t.y<=f[1]}),g=Math.ceil(d.length/p),v=0;o.forEach(function(t,r){var n=t[0].trace;c.hasMarkers(n)&&n.marker.maxdisplayed>0&&r<e&&v++});var m=Math.round(v*g/3+Math.floor(v/3)*g/7.1);i.forEach(function(t){delete t.vis}),d.forEach(function(t,e){0===Math.round((e+m)%g)&&(t.vis=!0)})}(0,e,r,f,p);var m=!!g&&g.duration>0;function y(t){return m?t.transition():t}var x=r.xaxis,b=r.yaxis,_=f[0].trace,w=_.line,k=n.select(d),M=o(k,\\\"g\\\",\\\"errorbars\\\"),A=o(k,\\\"g\\\",\\\"lines\\\"),T=o(k,\\\"g\\\",\\\"points\\\"),S=o(k,\\\"g\\\",\\\"text\\\");if(i.getComponentMethod(\\\"errorbars\\\",\\\"plot\\\")(M,r,g),!0===_.visible){var E,C;y(k).style(\\\"opacity\\\",_.opacity);var L=_.fill.charAt(_.fill.length-1);\\\"x\\\"!==L&&\\\"y\\\"!==L&&(L=\\\"\\\"),r.isRangePlot||(f[0].node3=k);var z=\\\"\\\",O=[],I=_._prevtrace;I&&(z=I._prevRevpath||\\\"\\\",C=I._nextFill,O=I._polygons);var P,D,R,B,F,N,j,V,U,q=\\\"\\\",H=\\\"\\\",G=[],W=a.noop;if(E=_._ownFill,c.hasLines(_)||\\\"none\\\"!==_.fill){for(C&&C.datum(f),-1!==[\\\"hv\\\",\\\"vh\\\",\\\"hvh\\\",\\\"vhv\\\"].indexOf(w.shape)?(R=l.steps(w.shape),B=l.steps(w.shape.split(\\\"\\\").reverse().join(\\\"\\\"))):R=B=\\\"spline\\\"===w.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?l.smoothclosed(t.slice(1),w.smoothing):l.smoothopen(t,w.smoothing)}:function(t){return\\\"M\\\"+t.join(\\\"L\\\")},F=function(t){return B(t.reverse())},G=u(f,{xaxis:x,yaxis:b,connectGaps:_.connectgaps,baseTolerance:Math.max(w.width||1,3)/4,shape:w.shape,simplify:w.simplify}),U=_._polygons=new Array(G.length),v=0;v<G.length;v++)_._polygons[v]=h(G[v]);G.length&&(N=G[0][0],V=(j=G[G.length-1])[j.length-1]),W=function(t){return function(e){if(P=R(e),D=F(e),q?L?(q+=\\\"L\\\"+P.substr(1),H=D+\\\"L\\\"+H.substr(1)):(q+=\\\"Z\\\"+P,H=D+\\\"Z\\\"+H):(q=P,H=D),c.hasLines(_)&&e.length>1){var r=n.select(this);if(r.datum(f),t)y(r.style(\\\"opacity\\\",0).attr(\\\"d\\\",P).call(l.lineGroupStyle)).style(\\\"opacity\\\",1);else{var i=y(r);i.attr(\\\"d\\\",P),l.singleLineStyle(f,i)}}}}}var Y=A.selectAll(\\\".js-line\\\").data(G);y(Y.exit()).style(\\\"opacity\\\",0).remove(),Y.each(W(!1)),Y.enter().append(\\\"path\\\").classed(\\\"js-line\\\",!0).style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").call(l.lineGroupStyle).each(W(!0)),l.setClipUrl(Y,r.layerClipId),G.length?(E?(E.datum(f),N&&V&&(L?(\\\"y\\\"===L?N[1]=V[1]=b.c2p(0,!0):\\\"x\\\"===L&&(N[0]=V[0]=x.c2p(0,!0)),y(E).attr(\\\"d\\\",\\\"M\\\"+V+\\\"L\\\"+N+\\\"L\\\"+q.substr(1)).call(l.singleFillStyle)):y(E).attr(\\\"d\\\",q+\\\"Z\\\").call(l.singleFillStyle))):C&&(\\\"tonext\\\"===_.fill.substr(0,6)&&q&&z?(\\\"tonext\\\"===_.fill?y(C).attr(\\\"d\\\",q+\\\"Z\\\"+z+\\\"Z\\\").call(l.singleFillStyle):y(C).attr(\\\"d\\\",q+\\\"L\\\"+z.substr(1)+\\\"Z\\\").call(l.singleFillStyle),_._polygons=_._polygons.concat(O)):(Z(C),_._polygons=null)),_._prevRevpath=H,_._prevPolygons=U):(E?Z(E):C&&Z(C),_._polygons=_._prevRevpath=_._prevPolygons=null),T.datum(f),S.datum(f),function(e,i,a){var o,u=a[0].trace,f=c.hasMarkers(u),h=c.hasText(u),p=tt(u),d=et,g=et;if(f||h){var v=s,_=u.stackgroup,w=_&&\\\"infer zero\\\"===t._fullLayout._scatterStackOpts[x._id+b._id][_].stackgaps;u.marker.maxdisplayed||u._needsCull?v=w?J:$:_&&!w&&(v=K),f&&(d=v),h&&(g=v)}var k,M=(o=e.selectAll(\\\"path.point\\\").data(d,p)).enter().append(\\\"path\\\").classed(\\\"point\\\",!0);m&&M.call(l.pointStyle,u,t).call(l.translatePoints,x,b).style(\\\"opacity\\\",0).transition().style(\\\"opacity\\\",1),o.order(),f&&(k=l.makePointStyleFns(u)),o.each(function(e){var i=n.select(this),a=y(i);l.translatePoint(e,a,x,b)?(l.singlePointStyle(e,a,u,k,t),r.layerClipId&&l.hideOutsideRangePoint(e,a,x,b,u.xcalendar,u.ycalendar),u.customdata&&i.classed(\\\"plotly-customdata\\\",null!==e.data&&void 0!==e.data)):a.remove()}),m?o.exit().transition().style(\\\"opacity\\\",0).remove():o.exit().remove(),(o=i.selectAll(\\\"g\\\").data(g,p)).enter().append(\\\"g\\\").classed(\\\"textpoint\\\",!0).append(\\\"text\\\"),o.order(),o.each(function(t){var e=n.select(this),i=y(e.select(\\\"text\\\"));l.translatePoint(t,i,x,b)?r.layerClipId&&l.hideOutsideRangePoint(t,e,x,b,u.xcalendar,u.ycalendar):e.remove()}),o.selectAll(\\\"text\\\").call(l.textPointStyle,u,t).each(function(t){var e=x.c2p(t.x),r=b.c2p(t.y);n.select(this).selectAll(\\\"tspan.line\\\").each(function(){y(n.select(this)).attr({x:e,y:r})})}),o.exit().remove()}(T,S,f);var X=!1===_.cliponaxis?null:r.layerClipId;l.setClipUrl(T,X),l.setClipUrl(S,X)}function Z(t){y(t).attr(\\\"d\\\",\\\"M0,0Z\\\")}function $(t){return t.filter(function(t){return!t.gap&&t.vis})}function J(t){return t.filter(function(t){return t.vis})}function K(t){return t.filter(function(t){return!t.gap})}function Q(t){return t.id}function tt(t){if(t.ids)return Q}function et(){return!1}}e.exports=function(t,e,r,i,a,c){var u,h,d=!a,g=!!a&&a.duration>0,v=f(t,e,r);((u=i.selectAll(\\\"g.trace\\\").data(v,function(t){return t[0].trace.uid})).enter().append(\\\"g\\\").attr(\\\"class\\\",function(t){return\\\"trace scatter trace\\\"+t[0].trace.uid}).style(\\\"stroke-miterlimit\\\",2),u.order(),function(t,e,r){e.each(function(t){var e=o(n.select(this),\\\"g\\\",\\\"fills\\\");l.setClipUrl(e,r.layerClipId);var i=t[0].trace,a=[];i._ownfill&&a.push(\\\"_ownFill\\\"),i._nexttrace&&a.push(\\\"_nextFill\\\");var c=e.selectAll(\\\"g\\\").data(a,s);c.enter().append(\\\"g\\\"),c.exit().each(function(t){i[t]=null}).remove(),c.order().each(function(t){i[t]=o(n.select(this),\\\"path\\\",\\\"js-fill\\\")})})}(0,u,e),g)?(c&&(h=c()),n.transition().duration(a.duration).ease(a.easing).each(\\\"end\\\",function(){h&&h()}).each(\\\"interrupt\\\",function(){h&&h()}).each(function(){i.selectAll(\\\"g.trace\\\").each(function(r,n){p(t,n,e,r,v,this,a)})})):u.each(function(r,n){p(t,n,e,r,v,this,a)});d&&u.exit().remove(),i.selectAll(\\\"path:not([d])\\\").remove()}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/polygon\\\":708,\\\"../../registry\\\":827,\\\"./line_points\\\":1057,\\\"./link_traces\\\":1059,\\\"./subtypes\\\":1067,d3:148}],1064:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./subtypes\\\");e.exports=function(t,e){var r,i,a,o,s=t.cd,l=t.xaxis,c=t.yaxis,u=[],f=s[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===e)for(r=0;r<s.length;r++)s[r].selected=0;else for(r=0;r<s.length;r++)i=s[r],a=l.c2p(i.x),o=c.c2p(i.y),null!==i.i&&e.contains([a,o],!1,r,t)?(u.push({pointNumber:i.i,x:l.c2d(i.x),y:c.c2d(i.y)}),i.selected=1):i.selected=0;return u}},{\\\"./subtypes\\\":1067}],1065:[function(t,e,r){\\\"use strict\\\";var n=[\\\"orientation\\\",\\\"groupnorm\\\",\\\"stackgaps\\\"];e.exports=function(t,e,r,i){var a=r._scatterStackOpts,o=i(\\\"stackgroup\\\");if(o){var s=e.xaxis+e.yaxis,l=a[s];l||(l=a[s]={});var c=l[o],u=!1;c?c.traces.push(e):(c=l[o]={traceIndices:[],traces:[e]},u=!0);for(var f={orientation:e.x&&!e.y?\\\"h\\\":\\\"v\\\"},h=0;h<n.length;h++){var p=n[h],d=p+\\\"Found\\\";if(!c[d]){var g=void 0!==t[p],v=\\\"orientation\\\"===p;if((g||u)&&(c[p]=i(p,f[p]),v&&(c.fillDflt=\\\"h\\\"===c[p]?\\\"tonextx\\\":\\\"tonexty\\\"),g&&(c[d]=!0,!u&&(delete c.traces[0][p],v))))for(var m=0;m<c.traces.length-1;m++){var y=c.traces[m];y._input.fill!==y.fill&&(y.fill=c.fillDflt)}}}return c}}},{}],1066:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"../../registry\\\");function o(t,e,r){i.pointStyle(t.selectAll(\\\"path.point\\\"),e,r)}function s(t,e,r){i.textPointStyle(t.selectAll(\\\"text\\\"),e,r)}e.exports={style:function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.trace.scatter\\\");r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),r.selectAll(\\\"g.points\\\").each(function(e){o(n.select(this),e.trace||e[0].trace,t)}),r.selectAll(\\\"g.text\\\").each(function(e){s(n.select(this),e.trace||e[0].trace,t)}),r.selectAll(\\\"g.trace path.js-line\\\").call(i.lineGroupStyle),r.selectAll(\\\"g.trace path.js-fill\\\").call(i.fillGroupStyle),a.getComponentMethod(\\\"errorbars\\\",\\\"style\\\")(r)},stylePoints:o,styleText:s,styleOnSelect:function(t,e){var r=e[0].node3,n=e[0].trace;n.selectedpoints?(i.selectedPointStyle(r.selectAll(\\\"path.point\\\"),n),i.selectedTextStyle(r.selectAll(\\\"text\\\"),n)):(o(r,n,t),s(r,n,t))}}},{\\\"../../components/drawing\\\":595,\\\"../../registry\\\":827,d3:148}],1067:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports={hasLines:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf(\\\"lines\\\")},hasMarkers:function(t){return t.visible&&(t.mode&&-1!==t.mode.indexOf(\\\"markers\\\")||\\\"splom\\\"===t.type)},hasText:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf(\\\"text\\\")},isBubble:function(t){return n.isPlainObject(t.marker)&&n.isArrayOrTypedArray(t.marker.size)}}},{\\\"../../lib\\\":696}],1068:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\");e.exports=function(t,e,r,i,a){a=a||{},i(\\\"textposition\\\"),n.coerceFont(i,\\\"textfont\\\",r.font),a.noSelect||(i(\\\"selected.textfont.color\\\"),i(\\\"unselected.textfont.color\\\"))}},{\\\"../../lib\\\":696}],1069:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\");e.exports=function(t,e,r,i){var a,o=i(\\\"x\\\"),s=i(\\\"y\\\");if(n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\"],r),o)s?a=Math.min(o.length,s.length):(a=o.length,i(\\\"y0\\\"),i(\\\"dy\\\"));else{if(!s)return 0;a=e.y.length,i(\\\"x0\\\"),i(\\\"dx\\\")}return e._length=a,a}},{\\\"../../registry\\\":827}],1070:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../plots/attributes\\\"),o=t(\\\"../../constants/gl3d_dashes\\\"),s=t(\\\"../../constants/gl3d_markers\\\"),l=t(\\\"../../lib/extend\\\").extendFlat,c=t(\\\"../../plot_api/edit_types\\\").overrideAll,u=n.line,f=n.marker,h=f.line,p=l({width:u.width,dash:{valType:\\\"enumerated\\\",values:Object.keys(o),dflt:\\\"solid\\\"}},i(\\\"line\\\"));delete p.showscale,delete p.colorbar;var d=e.exports=c({x:n.x,y:n.y,z:{valType:\\\"data_array\\\"},text:l({},n.text,{}),hovertext:l({},n.hovertext,{}),mode:l({},n.mode,{dflt:\\\"lines+markers\\\"}),surfaceaxis:{valType:\\\"enumerated\\\",values:[-1,0,1,2],dflt:-1},surfacecolor:{valType:\\\"color\\\"},projection:{x:{show:{valType:\\\"boolean\\\",dflt:!1},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1},scale:{valType:\\\"number\\\",min:0,max:10,dflt:2/3}},y:{show:{valType:\\\"boolean\\\",dflt:!1},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1},scale:{valType:\\\"number\\\",min:0,max:10,dflt:2/3}},z:{show:{valType:\\\"boolean\\\",dflt:!1},opacity:{valType:\\\"number\\\",min:0,max:1,dflt:1},scale:{valType:\\\"number\\\",min:0,max:10,dflt:2/3}}},connectgaps:n.connectgaps,line:p,marker:l({symbol:{valType:\\\"enumerated\\\",values:Object.keys(s),dflt:\\\"circle\\\",arrayOk:!0},size:l({},f.size,{dflt:8}),sizeref:f.sizeref,sizemin:f.sizemin,sizemode:f.sizemode,opacity:l({},f.opacity,{arrayOk:!1}),colorbar:f.colorbar,line:l({width:l({},h.width,{arrayOk:!1})},i(\\\"marker.line\\\"))},i(\\\"marker\\\")),textposition:l({},n.textposition,{dflt:\\\"top center\\\",arrayOk:!1}),textfont:{color:n.textfont.color,size:n.textfont.size,family:l({},n.textfont.family,{arrayOk:!1})},hoverinfo:l({},a.hoverinfo)},\\\"calc\\\",\\\"nested\\\");d.x.editType=d.y.editType=d.z.editType=\\\"calc+clearAxisTypes\\\"},{\\\"../../components/colorscale/attributes\\\":577,\\\"../../constants/gl3d_dashes\\\":670,\\\"../../constants/gl3d_markers\\\":671,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1071:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/arrays_to_calcdata\\\"),i=t(\\\"../scatter/colorscale_calc\\\");e.exports=function(t,e){var r=[{x:!1,y:!1,trace:e,t:{}}];return n(r,e),i(e),r}},{\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/colorscale_calc\\\":1046}],1072:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\");function i(t,e,r,i){if(!e||!e.visible)return null;for(var a=n.getComponentMethod(\\\"errorbars\\\",\\\"makeComputeError\\\")(e),o=new Array(t.length),s=0;s<t.length;s++){var l=a(+t[s],s);if(\\\"log\\\"===i.type){var c=i.c2l(t[s]),u=t[s]-l[0],f=t[s]+l[1];if(o[s]=[(i.c2l(u,!0)-c)*r,(i.c2l(f,!0)-c)*r],u>0){var h=i.c2l(u);i._lowerLogErrorBound||(i._lowerLogErrorBound=h),i._lowerErrorBound=Math.min(i._lowerLogErrorBound,h)}}else o[s]=[-l[0]*r,l[1]*r]}return o}e.exports=function(t,e,r){var n=[i(t.x,t.error_x,e[0],r.xaxis),i(t.y,t.error_y,e[1],r.yaxis),i(t.z,t.error_z,e[2],r.zaxis)],a=function(t){for(var e=0;e<t.length;e++)if(t[e])return t[e].length;return 0}(n);if(0===a)return null;for(var o=new Array(a),s=0;s<a;s++){for(var l=[[0,0,0],[0,0,0]],c=0;c<3;c++)if(n[c])for(var u=0;u<2;u++)l[u][c]=n[c][s][u];o[s]=l}return o}},{\\\"../../registry\\\":827}],1073:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-line3d\\\"),i=t(\\\"gl-scatter3d\\\"),a=t(\\\"gl-error3d\\\"),o=t(\\\"gl-mesh3d\\\"),s=t(\\\"delaunay-triangulate\\\"),l=t(\\\"../../lib\\\"),c=t(\\\"../../lib/str2rgbarray\\\"),u=t(\\\"../../lib/gl_format_color\\\").formatColor,f=t(\\\"../scatter/make_bubble_size_func\\\"),h=t(\\\"../../constants/gl3d_dashes\\\"),p=t(\\\"../../constants/gl3d_markers\\\"),d=t(\\\"./calc_errors\\\");function g(t,e){this.scene=t,this.uid=e,this.linePlot=null,this.scatterPlot=null,this.errorBars=null,this.textMarkers=null,this.delaunayMesh=null,this.color=null,this.mode=\\\"\\\",this.dataPoints=[],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.textLabels=null,this.data=null}var v=g.prototype;function m(t,e){return e(4*t)}function y(t){return p[t]}function x(t,e,r,n,i){var a=null;if(l.isArrayOrTypedArray(t)){a=[];for(var o=0;o<e;o++)void 0===t[o]?a[o]=n:a[o]=r(t[o],i)}else a=r(t,l.identity);return a}function b(t,e){var r,n,i,a,o,s,h,p,g=[],v=t.fullSceneLayout,b=t.dataScale,_=v.xaxis,w=v.yaxis,k=v.zaxis,M=e.marker,A=e.line,T=e.x||[],S=e.y||[],E=e.z||[],C=T.length,L=e.xcalendar,z=e.ycalendar,O=e.zcalendar;for(n=0;n<C;n++)i=_.d2l(T[n],0,L)*b[0],a=w.d2l(S[n],0,z)*b[1],o=k.d2l(E[n],0,O)*b[2],g[n]=[i,a,o];if(Array.isArray(e.text))s=e.text;else if(void 0!==e.text)for(s=new Array(C),n=0;n<C;n++)s[n]=e.text;if(r={position:g,mode:e.mode,text:s},\\\"line\\\"in e&&(r.lineColor=u(A,1,C),r.lineWidth=A.width,r.lineDashes=A.dash),\\\"marker\\\"in e){var I=f(e);r.scatterColor=u(M,1,C),r.scatterSize=x(M.size,C,m,20,I),r.scatterMarker=x(M.symbol,C,y,\\\"\\\\u25cf\\\"),r.scatterLineWidth=M.line.width,r.scatterLineColor=u(M.line,1,C),r.scatterAngle=0}\\\"textposition\\\"in e&&(r.textOffset=(h=e.textposition,p=[0,0],Array.isArray(h)?[0,-1]:(h.indexOf(\\\"bottom\\\")>=0&&(p[1]+=1),h.indexOf(\\\"top\\\")>=0&&(p[1]-=1),h.indexOf(\\\"left\\\")>=0&&(p[0]-=1),h.indexOf(\\\"right\\\")>=0&&(p[0]+=1),p)),r.textColor=u(e.textfont,1,C),r.textSize=x(e.textfont.size,C,l.identity,12),r.textFont=e.textfont.family,r.textAngle=0);var P=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];for(r.project=[!1,!1,!1],r.projectScale=[1,1,1],r.projectOpacity=[1,1,1],n=0;n<3;++n){var D=e.projection[P[n]];(r.project[n]=D.show)&&(r.projectOpacity[n]=D.opacity,r.projectScale[n]=D.scale)}r.errorBounds=d(e,b,v);var R=function(t){for(var e=[0,0,0],r=[[0,0,0],[0,0,0],[0,0,0]],n=[1,1,1],i=0;i<3;i++){var a=t[i];a&&!1!==a.copy_zstyle&&!1!==t[2].visible&&(a=t[2]),a&&a.visible&&(e[i]=a.width/2,r[i]=c(a.color),n[i]=a.thickness)}return{capSize:e,color:r,lineWidth:n}}([e.error_x,e.error_y,e.error_z]);return r.errorColor=R.color,r.errorLineWidth=R.lineWidth,r.errorCapSize=R.capSize,r.delaunayAxis=e.surfaceaxis,r.delaunayColor=c(e.surfacecolor),r}function _(t){if(Array.isArray(t)){var e=t[0];return Array.isArray(e)&&(t=e),\\\"rgb(\\\"+t.slice(0,3).map(function(t){return Math.round(255*t)})+\\\")\\\"}return null}v.handlePick=function(t){if(t.object&&(t.object===this.linePlot||t.object===this.delaunayMesh||t.object===this.textMarkers||t.object===this.scatterPlot)){var e=t.index=t.data.index;return t.object.highlight&&t.object.highlight(null),this.scatterPlot&&(t.object=this.scatterPlot,this.scatterPlot.highlight(t.data)),t.textLabel=\\\"\\\",this.textLabels&&(Array.isArray(this.textLabels)?(this.textLabels[e]||0===this.textLabels[e])&&(t.textLabel=this.textLabels[e]):t.textLabel=this.textLabels),t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]],!0}},v.update=function(t){var e,r,l,c,u=this.scene.glplot.gl,f=h.solid;this.data=t;var p=b(this.scene,t);\\\"mode\\\"in p&&(this.mode=p.mode),\\\"lineDashes\\\"in p&&p.lineDashes in h&&(f=h[p.lineDashes]),this.color=_(p.scatterColor)||_(p.lineColor),this.dataPoints=p.position,e={gl:u,position:p.position,color:p.lineColor,lineWidth:p.lineWidth||1,dashes:f[0],dashScale:f[1],opacity:t.opacity,connectGaps:t.connectgaps},-1!==this.mode.indexOf(\\\"lines\\\")?this.linePlot?this.linePlot.update(e):(this.linePlot=n(e),this.linePlot._trace=this,this.scene.glplot.add(this.linePlot)):this.linePlot&&(this.scene.glplot.remove(this.linePlot),this.linePlot.dispose(),this.linePlot=null);var d=t.opacity;if(t.marker&&t.marker.opacity&&(d*=t.marker.opacity),r={gl:u,position:p.position,color:p.scatterColor,size:p.scatterSize,glyph:p.scatterMarker,opacity:d,orthographic:!0,lineWidth:p.scatterLineWidth,lineColor:p.scatterLineColor,project:p.project,projectScale:p.projectScale,projectOpacity:p.projectOpacity},-1!==this.mode.indexOf(\\\"markers\\\")?this.scatterPlot?this.scatterPlot.update(r):(this.scatterPlot=i(r),this.scatterPlot._trace=this,this.scatterPlot.highlightScale=1,this.scene.glplot.add(this.scatterPlot)):this.scatterPlot&&(this.scene.glplot.remove(this.scatterPlot),this.scatterPlot.dispose(),this.scatterPlot=null),c={gl:u,position:p.position,glyph:p.text,color:p.textColor,size:p.textSize,angle:p.textAngle,alignment:p.textOffset,font:p.textFont,orthographic:!0,lineWidth:0,project:!1,opacity:t.opacity},this.textLabels=t.hovertext||t.text,-1!==this.mode.indexOf(\\\"text\\\")?this.textMarkers?this.textMarkers.update(c):(this.textMarkers=i(c),this.textMarkers._trace=this,this.textMarkers.highlightScale=1,this.scene.glplot.add(this.textMarkers)):this.textMarkers&&(this.scene.glplot.remove(this.textMarkers),this.textMarkers.dispose(),this.textMarkers=null),l={gl:u,position:p.position,color:p.errorColor,error:p.errorBounds,lineWidth:p.errorLineWidth,capSize:p.errorCapSize,opacity:t.opacity},this.errorBars?p.errorBounds?this.errorBars.update(l):(this.scene.glplot.remove(this.errorBars),this.errorBars.dispose(),this.errorBars=null):p.errorBounds&&(this.errorBars=a(l),this.errorBars._trace=this,this.scene.glplot.add(this.errorBars)),p.delaunayAxis>=0){var g=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],l=[];for(n=0;n<t.length;++n){var c=t[n];!isNaN(c[i])&&isFinite(c[i])&&!isNaN(c[a])&&isFinite(c[a])&&(o.push([c[i],c[a]]),l.push(n))}var u=s(o);for(n=0;n<u.length;++n)for(var f=u[n],h=0;h<f.length;++h)f[h]=l[f[h]];return{positions:t,cells:u,meshColor:e}}(p.position,p.delaunayColor,p.delaunayAxis);g.opacity=t.opacity,this.delaunayMesh?this.delaunayMesh.update(g):(g.gl=u,this.delaunayMesh=o(g),this.delaunayMesh._trace=this,this.scene.glplot.add(this.delaunayMesh))}else this.delaunayMesh&&(this.scene.glplot.remove(this.delaunayMesh),this.delaunayMesh.dispose(),this.delaunayMesh=null)},v.dispose=function(){this.linePlot&&(this.scene.glplot.remove(this.linePlot),this.linePlot.dispose()),this.scatterPlot&&(this.scene.glplot.remove(this.scatterPlot),this.scatterPlot.dispose()),this.errorBars&&(this.scene.glplot.remove(this.errorBars),this.errorBars.dispose()),this.textMarkers&&(this.scene.glplot.remove(this.textMarkers),this.textMarkers.dispose()),this.delaunayMesh&&(this.scene.glplot.remove(this.delaunayMesh),this.delaunayMesh.dispose())},e.exports=function(t,e){var r=new g(t,e.uid);return r.update(e),r}},{\\\"../../constants/gl3d_dashes\\\":670,\\\"../../constants/gl3d_markers\\\":671,\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../lib/str2rgbarray\\\":719,\\\"../scatter/make_bubble_size_func\\\":1060,\\\"./calc_errors\\\":1072,\\\"delaunay-triangulate\\\":150,\\\"gl-error3d\\\":237,\\\"gl-line3d\\\":245,\\\"gl-mesh3d\\\":268,\\\"gl-scatter3d\\\":284}],1074:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../scatter/subtypes\\\"),o=t(\\\"../scatter/marker_defaults\\\"),s=t(\\\"../scatter/line_defaults\\\"),l=t(\\\"../scatter/text_defaults\\\"),c=t(\\\"./attributes\\\");e.exports=function(t,e,r,u){function f(r,n){return i.coerce(t,e,c,r,n)}if(function(t,e,r,i){var a=0,o=r(\\\"x\\\"),s=r(\\\"y\\\"),l=r(\\\"z\\\");n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\",\\\"z\\\"],i),o&&s&&l&&(a=Math.min(o.length,s.length,l.length),e._length=e._xlength=e._ylength=e._zlength=a);return a}(t,e,f,u)){f(\\\"text\\\"),f(\\\"hovertext\\\"),f(\\\"mode\\\"),a.hasLines(e)&&(f(\\\"connectgaps\\\"),s(t,e,r,u,f)),a.hasMarkers(e)&&o(t,e,r,u,f,{noSelect:!0}),a.hasText(e)&&l(t,e,u,f,{noSelect:!0});var h=(e.line||{}).color,p=(e.marker||{}).color;f(\\\"surfaceaxis\\\")>=0&&f(\\\"surfacecolor\\\",h||p);for(var d=[\\\"x\\\",\\\"y\\\",\\\"z\\\"],g=0;g<3;++g){var v=\\\"projection.\\\"+d[g];f(v+\\\".show\\\")&&(f(v+\\\".opacity\\\"),f(v+\\\".scale\\\"))}var m=n.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");m(t,e,r,{axis:\\\"z\\\"}),m(t,e,r,{axis:\\\"y\\\",inherit:\\\"z\\\"}),m(t,e,r,{axis:\\\"x\\\",inherit:\\\"z\\\"})}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1070}],1075:[function(t,e,r){\\\"use strict\\\";var n={};n.plot=t(\\\"./convert\\\"),n.attributes=t(\\\"./attributes\\\"),n.markerSymbols=t(\\\"../../constants/gl3d_markers\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"scatter3d\\\",n.basePlotModule=t(\\\"../../plots/gl3d\\\"),n.categories=[\\\"gl3d\\\",\\\"symbols\\\",\\\"showLegend\\\"],n.meta={},e.exports=n},{\\\"../../constants/gl3d_markers\\\":671,\\\"../../plots/gl3d\\\":787,\\\"../scatter/marker_colorbar\\\":1061,\\\"./attributes\\\":1070,\\\"./calc\\\":1071,\\\"./convert\\\":1073,\\\"./defaults\\\":1074}],1076:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/colorbar/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat,l=n.marker,c=n.line,u=l.line;e.exports={carpet:{valType:\\\"string\\\",editType:\\\"calc\\\"},a:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},b:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},mode:s({},n.mode,{dflt:\\\"markers\\\"}),text:s({},n.text,{}),line:{color:c.color,width:c.width,dash:c.dash,shape:s({},c.shape,{values:[\\\"linear\\\",\\\"spline\\\"]}),smoothing:c.smoothing,editType:\\\"calc\\\"},connectgaps:n.connectgaps,fill:s({},n.fill,{values:[\\\"none\\\",\\\"toself\\\",\\\"tonext\\\"],dflt:\\\"none\\\"}),fillcolor:n.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:u.width,editType:\\\"calc\\\"},a(\\\"marker.line\\\")),gradient:l.gradient,editType:\\\"calc\\\"},a(\\\"marker\\\"),{colorbar:o}),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:s({},i.hoverinfo,{flags:[\\\"a\\\",\\\"b\\\",\\\"text\\\",\\\"name\\\"]}),hoveron:n.hoveron}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1077:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../scatter/colorscale_calc\\\"),a=t(\\\"../scatter/arrays_to_calcdata\\\"),o=t(\\\"../scatter/calc_selection\\\"),s=t(\\\"../scatter/calc\\\").calcMarkerSize,l=t(\\\"../carpet/lookup_carpetid\\\");e.exports=function(t,e){var r=e._carpetTrace=l(t,e);if(r&&r.visible&&\\\"legendonly\\\"!==r.visible){var c;e.xaxis=r.xaxis,e.yaxis=r.yaxis;var u,f,h=e._length,p=new Array(h),d=!1;for(c=0;c<h;c++)if(u=e.a[c],f=e.b[c],n(u)&&n(f)){var g=r.ab2xy(+u,+f,!0),v=r.isVisible(+u,+f);v||(d=!0),p[c]={x:g[0],y:g[1],a:u,b:f,vis:v}}else p[c]={x:!1,y:!1};return e._needsCull=d,p[0].carpet=r,p[0].trace=e,s(e,h),i(e),a(p,e),o(p,e),p}}},{\\\"../carpet/lookup_carpetid\\\":894,\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc\\\":1044,\\\"../scatter/calc_selection\\\":1045,\\\"../scatter/colorscale_calc\\\":1046,\\\"fast-isnumeric\\\":214}],1078:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/constants\\\"),a=t(\\\"../scatter/subtypes\\\"),o=t(\\\"../scatter/marker_defaults\\\"),s=t(\\\"../scatter/line_defaults\\\"),l=t(\\\"../scatter/line_shape_defaults\\\"),c=t(\\\"../scatter/text_defaults\\\"),u=t(\\\"../scatter/fillcolor_defaults\\\"),f=t(\\\"./attributes\\\");e.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}p(\\\"carpet\\\"),e.xaxis=\\\"x\\\",e.yaxis=\\\"y\\\";var d=p(\\\"a\\\"),g=p(\\\"b\\\"),v=Math.min(d.length,g.length);if(v){e._length=v,p(\\\"text\\\"),p(\\\"mode\\\",v<i.PTS_LINESONLY?\\\"lines+markers\\\":\\\"lines\\\"),a.hasLines(e)&&(s(t,e,r,h,p),l(t,e,p),p(\\\"connectgaps\\\")),a.hasMarkers(e)&&o(t,e,r,h,p,{gradient:!0}),a.hasText(e)&&c(t,e,h,p);var m=[];(a.hasMarkers(e)||a.hasText(e))&&(p(\\\"marker.maxdisplayed\\\"),m.push(\\\"points\\\")),p(\\\"fill\\\"),\\\"none\\\"!==e.fill&&(u(t,e,r,p),a.hasLines(e)||l(t,e,p)),\\\"tonext\\\"!==e.fill&&\\\"toself\\\"!==e.fill||m.push(\\\"fills\\\"),p(\\\"hoveron\\\",m.join(\\\"+\\\")||\\\"points\\\"),n.coerceSelectionMarkerOpacity(e,p)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/line_shape_defaults\\\":1058,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1076}],1079:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){var a=n[i];return t.a=a.a,t.b=a.b,t}},{}],1080:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/hover\\\");e.exports=function(t,e,r,i){var a=n(t,e,r,i);if(a&&!1!==a[0].index){var o=a[0];if(void 0===o.index){var s=1-o.y0/t.ya._length,l=t.xa._length,c=l*s/2,u=l-c;return o.x0=Math.max(Math.min(o.x0,u),c),o.x1=Math.max(Math.min(o.x1,u),c),a}var f=o.cd[o.index];o.a=f.a,o.b=f.b,o.xLabelVal=void 0,o.yLabelVal=void 0;var h=o.trace,p=h._carpet,d=(f.hi||h.hoverinfo).split(\\\"+\\\"),g=[];-1!==d.indexOf(\\\"all\\\")&&(d=[\\\"a\\\",\\\"b\\\"]),-1!==d.indexOf(\\\"a\\\")&&w(p.aaxis,f.a),-1!==d.indexOf(\\\"b\\\")&&w(p.baxis,f.b);var v=p.ab2ij([f.a,f.b]),m=Math.floor(v[0]),y=v[0]-m,x=Math.floor(v[1]),b=v[1]-x,_=p.evalxy([],m,x,y,b);return g.push(\\\"y: \\\"+_[1].toFixed(3)),o.extraText=g.join(\\\"<br>\\\"),a}function w(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,\\\"\\\"):t._hovertitle,g.push(r+\\\": \\\"+e.toFixed(3)+t.labelsuffix)}}},{\\\"../scatter/hover\\\":1054}],1081:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"../scatter/style\\\").style,n.styleOnSelect=t(\\\"../scatter/style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.selectPoints=t(\\\"../scatter/select\\\"),n.eventData=t(\\\"./event_data\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"scattercarpet\\\",n.basePlotModule=t(\\\"../../plots/cartesian\\\"),n.categories=[\\\"svg\\\",\\\"carpet\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"carpetDependent\\\",\\\"zoomScale\\\"],n.meta={},e.exports=n},{\\\"../../plots/cartesian\\\":756,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/select\\\":1064,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1076,\\\"./calc\\\":1077,\\\"./defaults\\\":1078,\\\"./event_data\\\":1079,\\\"./hover\\\":1080,\\\"./plot\\\":1082}],1082:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/plot\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../components/drawing\\\");e.exports=function(t,e,r,o){var s,l,c,u=r[0][0].carpet,f={xaxis:i.getFromId(t,u.xaxis||\\\"x\\\"),yaxis:i.getFromId(t,u.yaxis||\\\"y\\\"),plot:e.plot};for(n(t,f,r,o),s=0;s<r.length;s++)l=r[s][0].trace,c=o.selectAll(\\\"g.trace\\\"+l.uid+\\\" .js-line\\\"),a.setClipUrl(c,u._clipPathId)}},{\\\"../../components/drawing\\\":595,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/plot\\\":1063}],1083:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/drawing/attributes\\\").dash,s=t(\\\"../../lib/extend\\\").extendFlat,l=t(\\\"../../plot_api/edit_types\\\").overrideAll,c=n.marker,u=n.line,f=c.line;e.exports=l({lon:{valType:\\\"data_array\\\"},lat:{valType:\\\"data_array\\\"},locations:{valType:\\\"data_array\\\"},locationmode:{valType:\\\"enumerated\\\",values:[\\\"ISO-3\\\",\\\"USA-states\\\",\\\"country names\\\"],dflt:\\\"ISO-3\\\"},mode:s({},n.mode,{dflt:\\\"markers\\\"}),text:s({},n.text,{}),hovertext:s({},n.hovertext,{}),textfont:n.textfont,textposition:n.textposition,line:{color:u.color,width:u.width,dash:o},connectgaps:n.connectgaps,marker:s({symbol:c.symbol,opacity:c.opacity,size:c.size,sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,colorbar:c.colorbar,line:s({width:f.width},a(\\\"marker.line\\\")),gradient:c.gradient},a(\\\"marker\\\")),fill:{valType:\\\"enumerated\\\",values:[\\\"none\\\",\\\"toself\\\"],dflt:\\\"none\\\"},fillcolor:n.fillcolor,selected:n.selected,unselected:n.unselected,hoverinfo:s({},i.hoverinfo,{flags:[\\\"lon\\\",\\\"lat\\\",\\\"location\\\",\\\"text\\\",\\\"name\\\"]})},\\\"calc\\\",\\\"nested\\\")},{\\\"../../components/colorscale/attributes\\\":577,\\\"../../components/drawing/attributes\\\":594,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1084:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM,a=t(\\\"../scatter/colorscale_calc\\\"),o=t(\\\"../scatter/arrays_to_calcdata\\\"),s=t(\\\"../scatter/calc_selection\\\"),l=t(\\\"../../lib\\\")._;e.exports=function(t,e){for(var r=Array.isArray(e.locations),c=r?e.locations.length:e._length,u=new Array(c),f=0;f<c;f++){var h=u[f]={};if(r){var p=e.locations[f];h.loc=\\\"string\\\"==typeof p?p:null}else{var d=e.lon[f],g=e.lat[f];n(d)&&n(g)?h.lonlat=[+d,+g]:h.lonlat=[i,i]}}return o(u,e),a(e),s(u,e),c&&(u[0].t={labels:{lat:l(t,\\\"lat:\\\")+\\\" \\\",lon:l(t,\\\"lon:\\\")+\\\" \\\"}}),u}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc_selection\\\":1045,\\\"../scatter/colorscale_calc\\\":1046,\\\"fast-isnumeric\\\":214}],1085:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../scatter/marker_defaults\\\"),o=t(\\\"../scatter/line_defaults\\\"),s=t(\\\"../scatter/text_defaults\\\"),l=t(\\\"../scatter/fillcolor_defaults\\\"),c=t(\\\"./attributes\\\");e.exports=function(t,e,r,u){function f(r,i){return n.coerce(t,e,c,r,i)}!function(t,e,r){var n,i,a=0,o=r(\\\"locations\\\");if(o)return r(\\\"locationmode\\\"),a=o.length;return n=r(\\\"lon\\\")||[],i=r(\\\"lat\\\")||[],a=Math.min(n.length,i.length),e._length=a,a}(0,e,f)?e.visible=!1:(f(\\\"text\\\"),f(\\\"hovertext\\\"),f(\\\"mode\\\"),i.hasLines(e)&&(o(t,e,r,u,f),f(\\\"connectgaps\\\")),i.hasMarkers(e)&&a(t,e,r,u,f,{gradient:!0}),i.hasText(e)&&s(t,e,u,f),f(\\\"fill\\\"),\\\"none\\\"!==e.fill&&l(t,e,r,f),n.coerceSelectionMarkerOpacity(e,f))}},{\\\"../../lib\\\":696,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1083}],1086:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.location=e.loc?e.loc:null,t}},{}],1087:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM,o=t(\\\"../scatter/get_trace_color\\\"),s=t(\\\"../scatter/fill_hover_text\\\"),l=t(\\\"./attributes\\\");e.exports=function(t,e,r){var c=t.cd,u=c[0].trace,f=t.xa,h=t.ya,p=t.subplot,d=p.projection.isLonLatOverEdges,g=p.project;if(n.getClosest(c,function(t){var n=t.lonlat;if(n[0]===a)return 1/0;if(d(n))return 1/0;var i=g(n),o=g([e,r]),s=Math.abs(i[0]-o[0]),l=Math.abs(i[1]-o[1]),c=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(s*s+l*l)-c,1-3/c)},t),!1!==t.index){var v=c[t.index],m=v.lonlat,y=[f.c2p(m),h.c2p(m)],x=v.mrc||1;return t.x0=y[0]-x,t.x1=y[0]+x,t.y0=y[1]-x,t.y1=y[1]+x,t.loc=v.loc,t.lon=m[0],t.lat=m[1],t.color=o(u,v),t.extraText=function(t,e,r,n){var a=e.hi||t.hoverinfo,o=\\\"all\\\"===a?l.hoverinfo.flags:a.split(\\\"+\\\"),c=-1!==o.indexOf(\\\"location\\\")&&Array.isArray(t.locations),u=-1!==o.indexOf(\\\"lon\\\"),f=-1!==o.indexOf(\\\"lat\\\"),h=-1!==o.indexOf(\\\"text\\\"),p=[];function d(t){return i.tickText(r,r.c2l(t),\\\"hover\\\").text+\\\"\\\\xb0\\\"}c?p.push(e.loc):u&&f?p.push(\\\"(\\\"+d(e.lonlat[0])+\\\", \\\"+d(e.lonlat[1])+\\\")\\\"):u?p.push(n.lon+d(e.lonlat[0])):f&&p.push(n.lat+d(e.lonlat[1]));h&&s(e,t,p);return p.join(\\\"<br>\\\")}(u,v,p.mockAxis,c[0].t.labels),[t]}}},{\\\"../../components/fx\\\":612,\\\"../../constants/numerical\\\":673,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/fill_hover_text\\\":1051,\\\"../scatter/get_trace_color\\\":1053,\\\"./attributes\\\":1083}],1088:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"./style\\\"),n.styleOnSelect=t(\\\"../scatter/style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.eventData=t(\\\"./event_data\\\"),n.selectPoints=t(\\\"./select\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"scattergeo\\\",n.basePlotModule=t(\\\"../../plots/geo\\\"),n.categories=[\\\"geo\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],n.meta={},e.exports=n},{\\\"../../plots/geo\\\":775,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1083,\\\"./calc\\\":1084,\\\"./defaults\\\":1085,\\\"./event_data\\\":1086,\\\"./hover\\\":1087,\\\"./plot\\\":1089,\\\"./select\\\":1090,\\\"./style\\\":1091}],1089:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM,o=t(\\\"../../lib/topojson_utils\\\").getTopojsonFeatures,s=t(\\\"../../lib/geo_location_utils\\\").locationToFeature,l=t(\\\"../../lib/geojson_utils\\\"),c=t(\\\"../scatter/subtypes\\\"),u=t(\\\"./style\\\");function f(t,e){var r=t[0].trace;if(Array.isArray(r.locations))for(var n=o(r,e),i=r.locationmode,l=0;l<t.length;l++){var c=t[l],u=s(i,c.loc,n);c.lonlat=u?u.properties.ct:[a,a]}}e.exports=function(t,e,r){for(var o=0;o<r.length;o++)f(r[o],e.topojson);function s(t,e){t.lonlat[0]===a&&n.select(e).remove()}var h=e.layers.frontplot.select(\\\".scatterlayer\\\"),p=i.makeTraceGroups(h,r,\\\"trace scattergeo\\\");p.selectAll(\\\"*\\\").remove(),p.each(function(e){var r=e[0].node3=n.select(this),a=e[0].trace;if(c.hasLines(a)||\\\"none\\\"!==a.fill){var o=l.calcTraceToLineCoords(e),f=\\\"none\\\"!==a.fill?l.makePolygon(o):l.makeLine(o);r.selectAll(\\\"path.js-line\\\").data([{geojson:f,trace:a}]).enter().append(\\\"path\\\").classed(\\\"js-line\\\",!0).style(\\\"stroke-miterlimit\\\",2)}c.hasMarkers(a)&&r.selectAll(\\\"path.point\\\").data(i.identity).enter().append(\\\"path\\\").classed(\\\"point\\\",!0).each(function(t){s(t,this)}),c.hasText(a)&&r.selectAll(\\\"g\\\").data(i.identity).enter().append(\\\"g\\\").append(\\\"text\\\").each(function(t){s(t,this)}),u(t,e)})}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../lib/geo_location_utils\\\":688,\\\"../../lib/geojson_utils\\\":689,\\\"../../lib/topojson_utils\\\":723,\\\"../scatter/subtypes\\\":1067,\\\"./style\\\":1091,d3:148}],1090:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/subtypes\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e){var r,a,o,s,l,c=t.cd,u=t.xaxis,f=t.yaxis,h=[],p=c[0].trace;if(!n.hasMarkers(p)&&!n.hasText(p))return[];if(!1===e)for(l=0;l<c.length;l++)c[l].selected=0;else for(l=0;l<c.length;l++)(a=(r=c[l]).lonlat)[0]!==i&&(o=u.c2p(a),s=f.c2p(a),e.contains([o,s],null,l,t)?(h.push({pointNumber:l,lon:a[0],lat:a[1]}),r.selected=1):r.selected=0);return h}},{\\\"../../constants/numerical\\\":673,\\\"../scatter/subtypes\\\":1067}],1091:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/drawing\\\"),a=t(\\\"../../components/color\\\"),o=t(\\\"../scatter/style\\\"),s=o.stylePoints,l=o.styleText;e.exports=function(t,e){e&&function(t,e){var r=e[0].trace,o=e[0].node3;o.style(\\\"opacity\\\",e[0].trace.opacity),s(o,r,t),l(o,r,t),o.selectAll(\\\"path.js-line\\\").style(\\\"fill\\\",\\\"none\\\").each(function(t){var e=n.select(this),r=t.trace,o=r.line||{};e.call(a.stroke,o.color).call(i.dashLine,o.dash||\\\"\\\",o.width||0),\\\"none\\\"!==r.fill&&e.call(a.fill,r.fillcolor)})}(t,e)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../scatter/style\\\":1066,d3:148}],1092:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/attributes\\\"),i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../lib/extend\\\").extendFlat,s=t(\\\"../../plot_api/edit_types\\\").overrideAll,l=t(\\\"./constants\\\").DASHES,c=i.line,u=i.marker,f=u.line,h=e.exports=s({x:i.x,x0:i.x0,dx:i.dx,y:i.y,y0:i.y0,dy:i.dy,text:i.text,hovertext:i.hovertext,textposition:i.textposition,textfont:i.textfont,mode:{valType:\\\"flaglist\\\",flags:[\\\"lines\\\",\\\"markers\\\",\\\"text\\\"],extras:[\\\"none\\\"]},line:{color:c.color,width:c.width,shape:{valType:\\\"enumerated\\\",values:[\\\"linear\\\",\\\"hv\\\",\\\"vh\\\",\\\"hvh\\\",\\\"vhv\\\"],dflt:\\\"linear\\\",editType:\\\"plot\\\"},dash:{valType:\\\"enumerated\\\",values:Object.keys(l),dflt:\\\"solid\\\"}},marker:o({},a(\\\"marker\\\"),{symbol:u.symbol,size:u.size,sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,opacity:u.opacity,colorbar:u.colorbar,line:o({},a(\\\"marker.line\\\"),{width:f.width})}),connectgaps:i.connectgaps,fill:o({},i.fill,{dflt:\\\"none\\\"}),fillcolor:i.fillcolor,selected:{marker:i.selected.marker,textfont:i.selected.textfont},unselected:{marker:i.unselected.marker,textfont:i.unselected.textfont},opacity:n.opacity},\\\"calc\\\",\\\"nested\\\");h.x.editType=h.y.editType=h.x0.editType=h.y0.editType=\\\"calc+clearAxisTypes\\\"},{\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043,\\\"./constants\\\":1093}],1093:[function(t,e,r){\\\"use strict\\\";e.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]}}},{}],1094:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"svg-path-sdf\\\"),a=t(\\\"color-normalize\\\"),o=t(\\\"../../registry\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../components/drawing\\\"),c=t(\\\"../../plots/cartesian/axis_ids\\\"),u=t(\\\"../../lib/gl_format_color\\\").formatColor,f=t(\\\"../scatter/subtypes\\\"),h=t(\\\"../scatter/make_bubble_size_func\\\"),p=t(\\\"./constants\\\"),d=t(\\\"../../constants/interactions\\\").DESELECTDIM,g={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1};function v(t){var e,r=t._length,i=t.textfont,a=t.textposition,o=Array.isArray(a)?a:[a],s=i.color,l=i.size,c=i.family,u={};for(u.text=t.text,u.opacity=t.opacity,u.font={},u.align=[],u.baseline=[],e=0;e<o.length;e++){var f=o[e].split(/\\\\s+/);switch(f[1]){case\\\"left\\\":u.align.push(\\\"right\\\");break;case\\\"right\\\":u.align.push(\\\"left\\\");break;default:u.align.push(f[1])}switch(f[0]){case\\\"top\\\":u.baseline.push(\\\"bottom\\\");break;case\\\"bottom\\\":u.baseline.push(\\\"top\\\");break;default:u.baseline.push(f[0])}}if(Array.isArray(s))for(u.color=new Array(r),e=0;e<r;e++)u.color[e]=s[e];else u.color=s;if(Array.isArray(l)||Array.isArray(c))for(u.font=new Array(r),e=0;e<r;e++){var h=u.font[e]={};h.size=Array.isArray(l)?n(l[e])?l[e]:0:l,h.family=Array.isArray(c)?c[e]:c}else u.font={size:l,family:c};return u}function m(t){var e,r,n=t._length,i=t.marker,o={},l=Array.isArray(i.symbol),c=s.isArrayOrTypedArray(i.color),f=s.isArrayOrTypedArray(i.line.color),d=s.isArrayOrTypedArray(i.opacity),g=s.isArrayOrTypedArray(i.size),v=s.isArrayOrTypedArray(i.line.width);if(l||(r=p.OPEN_RE.test(i.symbol)),l||c||f||d){o.colors=new Array(n),o.borderColors=new Array(n);var m=u(i,i.opacity,n),y=u(i.line,i.opacity,n);if(!Array.isArray(y[0])){var x=y;for(y=Array(n),e=0;e<n;e++)y[e]=x}if(!Array.isArray(m[0])){var b=m;for(m=Array(n),e=0;e<n;e++)m[e]=b}for(o.colors=m,o.borderColors=y,e=0;e<n;e++){if(l){var _=i.symbol[e];r=p.OPEN_RE.test(_)}r&&(y[e]=m[e].slice(),m[e]=m[e].slice(),m[e][3]=0)}o.opacity=t.opacity}else r?(o.color=a(i.color,\\\"uint8\\\"),o.color[3]=0,o.borderColor=a(i.color,\\\"uint8\\\")):(o.color=a(i.color,\\\"uint8\\\"),o.borderColor=a(i.line.color,\\\"uint8\\\")),o.opacity=t.opacity*i.opacity;if(l)for(o.markers=new Array(n),e=0;e<n;e++)o.markers[e]=T(i.symbol[e]);else o.marker=T(i.symbol);var w,k=h(t);if(g||v){var M,A=o.sizes=new Array(n),S=o.borderSizes=new Array(n),E=0;if(g){for(e=0;e<n;e++)A[e]=k(i.size[e]),E+=A[e];M=E/n}else for(w=k(i.size),e=0;e<n;e++)A[e]=w;if(v)for(e=0;e<n;e++)S[e]=i.line.width[e]/2;else for(w=i.line.width/2,e=0;e<n;e++)S[e]=w;o.sizeAvg=M}else o.size=k(i&&i.size||10),o.borderSizes=k(i.line.width);return o}function y(t,e){var r=t.marker,n={};return e?(e.marker&&e.marker.symbol?n=m(s.extendFlat({},r,e.marker)):e.marker&&(e.marker.size&&(n.size=e.marker.size/2),e.marker.color&&(n.colors=e.marker.color),void 0!==e.marker.opacity&&(n.opacity=e.marker.opacity)),n):n}function x(t,e){var r={};if(!e)return r;if(e.textfont){var n={opacity:1,text:t.text,textposition:t.textposition,textfont:s.extendFlat({},t.textfont)};e.textfont&&s.extendFlat(n.textfont,e.textfont),r=v(n)}return r}function b(t,e){var r={capSize:2*e.width,lineWidth:e.thickness,color:e.color};return e.copy_ystyle&&(r=t.error_y),r}var _=p.SYMBOL_SDF_SIZE,w=p.SYMBOL_SIZE,k=p.SYMBOL_STROKE,M={},A=l.symbolFuncs[0](.05*w);function T(t){if(\\\"circle\\\"===t)return null;var e,r,n=l.symbolNumber(t),a=l.symbolFuncs[n%100],o=!!l.symbolNoDot[n%100],s=!!l.symbolNoFill[n%100],c=p.DOT_RE.test(t);return M[t]?M[t]:(e=c&&!o?a(1.1*w)+A:a(w),r=i(e,{w:_,h:_,viewBox:[-w,-w,w,w],stroke:s?k:-k}),M[t]=r,r||null)}e.exports={style:function(t,e){var r,n={marker:void 0,markerSel:void 0,markerUnsel:void 0,line:void 0,fill:void 0,errorX:void 0,errorY:void 0,text:void 0,textSel:void 0,textUnsel:void 0};if(!0!==e.visible)return n;if(f.hasText(e)&&(n.text=v(e),n.textSel=x(e,e.selected),n.textUnsel=x(e,e.unselected)),f.hasMarkers(e)&&(n.marker=m(e),n.markerSel=y(e,e.selected),n.markerUnsel=y(e,e.unselected),!e.unselected&&Array.isArray(e.marker.opacity))){var i=e.marker.opacity;for(n.markerUnsel.opacity=new Array(i.length),r=0;r<i.length;r++)n.markerUnsel.opacity[r]=d*i[r]}if(f.hasLines(e)){n.line={overlay:!0,thickness:e.line.width,color:e.line.color,opacity:e.opacity};var a=(p.DASHES[e.line.dash]||[1]).slice();for(r=0;r<a.length;++r)a[r]*=e.line.width;n.line.dashes=a}return e.error_x&&e.error_x.visible&&(n.errorX=b(e,e.error_x)),e.error_y&&e.error_y.visible&&(n.errorY=b(e,e.error_y)),e.fill&&\\\"none\\\"!==e.fill&&(n.fill={closed:!0,fill:e.fillcolor,thickness:0}),n},markerStyle:m,markerSelection:y,linePositions:function(t,e,r){var n,i,a=r.length,o=a/2;if(f.hasLines(e)&&o)if(\\\"hv\\\"===e.line.shape){for(n=[],i=0;i<o-1;i++)isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN,NaN,NaN):(n.push(r[2*i],r[2*i+1]),isNaN(r[2*i+2])||isNaN(r[2*i+3])?n.push(NaN,NaN):n.push(r[2*i+2],r[2*i+1]));n.push(r[a-2],r[a-1])}else if(\\\"hvh\\\"===e.line.shape){for(n=[],i=0;i<o-1;i++)if(isNaN(r[2*i])||isNaN(r[2*i+1])||isNaN(r[2*i+2])||isNaN(r[2*i+3]))isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+1]),n.push(NaN,NaN);else{var s=(r[2*i]+r[2*i+2])/2;n.push(r[2*i],r[2*i+1],s,r[2*i+1],s,r[2*i+3])}n.push(r[a-2],r[a-1])}else if(\\\"vhv\\\"===e.line.shape){for(n=[],i=0;i<o-1;i++)if(isNaN(r[2*i])||isNaN(r[2*i+1])||isNaN(r[2*i+2])||isNaN(r[2*i+3]))isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+1]),n.push(NaN,NaN);else{var l=(r[2*i+1]+r[2*i+3])/2;n.push(r[2*i],r[2*i+1],r[2*i],l,r[2*i+2],l)}n.push(r[a-2],r[a-1])}else if(\\\"vh\\\"===e.line.shape){for(n=[],i=0;i<o-1;i++)isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN,NaN,NaN):(n.push(r[2*i],r[2*i+1]),isNaN(r[2*i+2])||isNaN(r[2*i+3])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+3]));n.push(r[a-2],r[a-1])}else n=r;var c=!1;for(i=0;i<n.length;i++)if(isNaN(n[i])){c=!0;break}var u=c||n.length>p.TOO_MANY_POINTS?\\\"rect\\\":f.hasMarkers(e)?\\\"rect\\\":\\\"round\\\";if(c&&e.connectgaps){var h=n[0],d=n[1];for(i=0;i<n.length;i+=2)isNaN(n[i])||isNaN(n[i+1])?(n[i]=h,n[i+1]=d):(h=n[i],d=n[i+1])}return{join:u,positions:n}},errorBarPositions:function(t,e,r,i,a){var s=o.getComponentMethod(\\\"errorbars\\\",\\\"makeComputeError\\\"),l=c.getFromId(t,e.xaxis),u=c.getFromId(t,e.yaxis),f=r.length/2,h={};function p(t,i){var a=i._id.charAt(0),o=e[\\\"error_\\\"+a];if(o&&o.visible&&(\\\"linear\\\"===i.type||\\\"log\\\"===i.type)){for(var l=s(o),c={x:0,y:1}[a],u={x:[0,1,2,3],y:[2,3,0,1]}[a],p=new Float64Array(4*f),d=1/0,g=-1/0,v=0,m=0;v<f;v++,m+=4){var y=t[v];if(n(y)){var x=r[2*v+c],b=l(y,v),_=b[0],w=b[1];if(n(_)&&n(w)){var k=y-_,M=y+w;p[m+u[0]]=x-i.c2l(k),p[m+u[1]]=i.c2l(M)-x,p[m+u[2]]=0,p[m+u[3]]=0,d=Math.min(d,y-_),g=Math.max(g,y+w)}}}h[a]={positions:r,errors:p,_bnds:[d,g]}}}return p(i,l),p(a,u),h},textPosition:function(t,e,r,n){var i,a=e._length,o={};if(f.hasMarkers(e)){var s=r.font,l=r.align,c=r.baseline;for(o.offset=new Array(a),i=0;i<a;i++){var u=n.sizes?n.sizes[i]:n.size,h=Array.isArray(s)?s[i].size:s.size,p=Array.isArray(l)?l.length>1?l[i]:l[0]:l,d=Array.isArray(c)?c.length>1?c[i]:c[0]:c,v=g[p],m=g[d],y=u?u/.8+1:0,x=-m*y-.5*m;o.offset[i]=[v*y/h,x/h]}}return o}}},{\\\"../../components/drawing\\\":595,\\\"../../constants/interactions\\\":672,\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../registry\\\":827,\\\"../scatter/make_bubble_size_func\\\":1060,\\\"../scatter/subtypes\\\":1067,\\\"./constants\\\":1093,\\\"color-normalize\\\":108,\\\"fast-isnumeric\\\":214,\\\"svg-path-sdf\\\":512}],1095:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"../scatter/constants\\\"),s=t(\\\"../scatter/subtypes\\\"),l=t(\\\"../scatter/xy_defaults\\\"),c=t(\\\"../scatter/marker_defaults\\\"),u=t(\\\"../scatter/line_defaults\\\"),f=t(\\\"../scatter/fillcolor_defaults\\\"),h=t(\\\"../scatter/text_defaults\\\");e.exports=function(t,e,r,p){function d(r,i){return n.coerce(t,e,a,r,i)}var g=!!t.marker&&/-open/.test(t.marker.symbol),v=s.isBubble(t),m=l(t,e,p,d);if(m){var y=m<o.PTS_LINESONLY?\\\"lines+markers\\\":\\\"lines\\\";d(\\\"text\\\"),d(\\\"hovertext\\\"),d(\\\"mode\\\",y),s.hasLines(e)&&(d(\\\"connectgaps\\\"),u(t,e,r,p,d),d(\\\"line.shape\\\")),s.hasMarkers(e)&&(c(t,e,r,p,d),d(\\\"marker.line.width\\\",g||v?1:0)),s.hasText(e)&&h(t,e,p,d),d(\\\"fill\\\"),\\\"none\\\"!==e.fill&&f(t,e,r,d);var x=i.getComponentMethod(\\\"errorbars\\\",\\\"supplyDefaults\\\");x(t,e,r,{axis:\\\"y\\\"}),x(t,e,r,{axis:\\\"x\\\",inherit:\\\"y\\\"}),n.coerceSelectionMarkerOpacity(e,d)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"../scatter/xy_defaults\\\":1069,\\\"./attributes\\\":1092}],1096:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"regl-scatter2d\\\"),i=t(\\\"regl-line2d\\\"),a=t(\\\"regl-error2d\\\"),o=t(\\\"point-cluster\\\"),s=t(\\\"array-range\\\"),l=t(\\\"gl-text\\\"),c=t(\\\"../../registry\\\"),u=t(\\\"../../lib\\\"),f=t(\\\"../../lib/prepare_regl\\\"),h=t(\\\"../../plots/cartesian/axis_ids\\\"),p=t(\\\"../../plots/cartesian/autorange\\\").findExtremes,d=t(\\\"../../components/color\\\"),g=t(\\\"../scatter/subtypes\\\"),v=t(\\\"../scatter/calc\\\"),m=v.calcMarkerSize,y=v.calcAxisExpansion,x=v.setFirstScatter,b=t(\\\"../scatter/colorscale_calc\\\"),_=t(\\\"../scatter/link_traces\\\"),w=t(\\\"../scatter/get_trace_color\\\"),k=t(\\\"../scatter/fill_hover_text\\\"),M=t(\\\"./convert\\\"),A=t(\\\"../../constants/numerical\\\").BADNUM,T=t(\\\"./constants\\\").TOO_MANY_POINTS,S=t(\\\"../../constants/interactions\\\").DESELECTDIM;function E(t,e,r){var n=t._extremes[e._id],i=p(e,r._bnds,{padded:!0});n.min=n.min.concat(i.min),n.max=n.max.concat(i.max)}function C(t,e){var r=e._scene,n={count:0,dirty:!0,lineOptions:[],fillOptions:[],markerOptions:[],markerSelectedOptions:[],markerUnselectedOptions:[],errorXOptions:[],errorYOptions:[],textOptions:[],textSelectedOptions:[],textUnselectedOptions:[]},i={selectBatch:null,unselectBatch:null,fill2d:!1,scatter2d:!1,error2d:!1,line2d:!1,glText:!1,select2d:null};return e._scene||((r=e._scene={}).init=function(){u.extendFlat(r,i,n)},r.init(),r.update=function(t){var e=u.repeat(t,r.count);if(r.fill2d&&r.fill2d.update(e),r.scatter2d&&r.scatter2d.update(e),r.line2d&&r.line2d.update(e),r.error2d&&r.error2d.update(e.concat(e)),r.select2d&&r.select2d.update(e),r.glText)for(var n=0;n<r.count;n++)r.glText[n].update(t)},r.draw=function(){for(var t=r.count,e=r.fill2d,n=r.error2d,i=r.line2d,a=r.scatter2d,o=r.glText,s=r.select2d,l=r.selectBatch,c=r.unselectBatch,u=0;u<t;u++)e&&r.fillOrder[u]&&e.draw(r.fillOrder[u]),i&&r.lineOptions[u]&&i.draw(u),n&&(r.errorXOptions[u]&&n.draw(u),r.errorYOptions[u]&&n.draw(u+t)),!a||!r.markerOptions[u]||l&&l[u]||a.draw(u),o[u]&&r.textOptions[u]&&o[u].render();a&&s&&l&&(s.draw(l),a.draw(c)),r.dirty=!1},r.destroy=function(){r.fill2d&&r.fill2d.destroy&&r.fill2d.destroy(),r.scatter2d&&r.scatter2d.destroy&&r.scatter2d.destroy(),r.error2d&&r.error2d.destroy&&r.error2d.destroy(),r.line2d&&r.line2d.destroy&&r.line2d.destroy(),r.select2d&&r.select2d.destroy&&r.select2d.destroy(),r.glText&&r.glText.forEach(function(t){t.destroy&&t.destroy()}),r.lineOptions=null,r.fillOptions=null,r.markerOptions=null,r.markerSelectedOptions=null,r.markerUnselectedOptions=null,r.errorXOptions=null,r.errorYOptions=null,r.textOptions=null,r.textSelectedOptions=null,r.textUnselectedOptions=null,r.selectBatch=null,r.unselectBatch=null,e._scene=null}),r.dirty||u.extendFlat(r,n),r}function L(t,e,r,n){var i=t.xa,a=t.ya,o=t.distance,s=t.dxy,l=t.index,f={pointNumber:l,x:e[l],y:r[l]};f.tx=Array.isArray(n.text)?n.text[l]:n.text,f.htx=Array.isArray(n.hovertext)?n.hovertext[l]:n.hovertext,f.data=Array.isArray(n.customdata)?n.customdata[l]:n.customdata,f.tp=Array.isArray(n.textposition)?n.textposition[l]:n.textposition;var h=n.textfont;h&&(f.ts=Array.isArray(h.size)?h.size[l]:h.size,f.tc=Array.isArray(h.color)?h.color[l]:h.color,f.tf=Array.isArray(h.family)?h.family[l]:h.family);var p=n.marker;p&&(f.ms=u.isArrayOrTypedArray(p.size)?p.size[l]:p.size,f.mo=u.isArrayOrTypedArray(p.opacity)?p.opacity[l]:p.opacity,f.mx=Array.isArray(p.symbol)?p.symbol[l]:p.symbol,f.mc=u.isArrayOrTypedArray(p.color)?p.color[l]:p.color);var d=p&&p.line;d&&(f.mlc=Array.isArray(d.color)?d.color[l]:d.color,f.mlw=u.isArrayOrTypedArray(d.width)?d.width[l]:d.width);var g=p&&p.gradient;g&&\\\"none\\\"!==g.type&&(f.mgt=Array.isArray(g.type)?g.type[l]:g.type,f.mgc=Array.isArray(g.color)?g.color[l]:g.color);var v=i.c2p(f.x,!0),m=a.c2p(f.y,!0),y=f.mrc||1,x=n.hoverlabel;x&&(f.hbg=Array.isArray(x.bgcolor)?x.bgcolor[l]:x.bgcolor,f.hbc=Array.isArray(x.bordercolor)?x.bordercolor[l]:x.bordercolor,f.hts=Array.isArray(x.font.size)?x.font.size[l]:x.font.size,f.htc=Array.isArray(x.font.color)?x.font.color[l]:x.font.color,f.htf=Array.isArray(x.font.family)?x.font.family[l]:x.font.family,f.hnl=Array.isArray(x.namelength)?x.namelength[l]:x.namelength);var b=n.hoverinfo;b&&(f.hi=Array.isArray(b)?b[l]:b);var _={};return _[t.index]=f,u.extendFlat(t,{color:w(n,f),x0:v-y,x1:v+y,xLabelVal:f.x,y0:m-y,y1:m+y,yLabelVal:f.y,cd:_,distance:o,spikeDistance:s}),f.htx?t.text=f.htx:f.tx?t.text=f.tx:n.text&&(t.text=n.text),k(f,n,t),c.getComponentMethod(\\\"errorbars\\\",\\\"hoverInfo\\\")(f,n,t),t}function z(t){var e,r,n=t[0],i=n.trace,a=n.t,o=a._scene,s=a.index,l=o.selectBatch[s],c=o.unselectBatch[s],f=o.textOptions[s],h=o.textSelectedOptions[s]||{},p=o.textUnselectedOptions[s]||{},g=u.extendFlat({},f);if(l&&c){var v=h.color,m=p.color,y=f.color,x=Array.isArray(y);for(g.color=new Array(i._length),e=0;e<l.length;e++)r=l[e],g.color[r]=v||(x?y[r]:y);for(e=0;e<c.length;e++){r=c[e];var b=x?y[r]:y;g.color[r]=m||(v?b:d.addOpacity(b,S))}}o.glText[s].update(g)}e.exports={moduleType:\\\"trace\\\",name:\\\"scattergl\\\",basePlotModule:t(\\\"../../plots/cartesian\\\"),categories:[\\\"gl\\\",\\\"regl\\\",\\\"cartesian\\\",\\\"symbols\\\",\\\"errorBarsOK\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),crossTraceDefaults:t(\\\"../scatter/cross_trace_defaults\\\"),colorbar:t(\\\"../scatter/marker_colorbar\\\"),calc:function(t,e){var r,n,i,a=t._fullLayout,s=h.getFromId(t,e.xaxis),l=h.getFromId(t,e.yaxis),c=a._plots[e.xaxis+e.yaxis],f=e._length,p=2*f,d={},g=s.makeCalcdata(e,\\\"x\\\"),v=l.makeCalcdata(e,\\\"y\\\"),_=new Array(p);for(r=0;r<f;r++)n=g[r],i=v[r],_[2*r]=n===A?NaN:n,_[2*r+1]=i===A?NaN:i;if(\\\"log\\\"===s.type)for(r=0;r<p;r+=2)_[r]=s.c2l(_[r]);if(\\\"log\\\"===l.type)for(r=1;r<p;r+=2)_[r]=l.c2l(_[r]);if(\\\"log\\\"!==s.type&&\\\"log\\\"!==l.type)d.tree=o(_);else{var w=d.ids=new Array(f);for(r=0;r<f;r++)w[r]=r}b(e);var k,S=function(t,e,r,n,i,a){var o=M.style(t,r);if(o.marker&&(o.marker.positions=n),o.line&&n.length>1&&u.extendFlat(o.line,M.linePositions(t,r,n)),o.errorX||o.errorY){var s=M.errorBarPositions(t,r,n,i,a);o.errorX&&u.extendFlat(o.errorX,s.x),o.errorY&&u.extendFlat(o.errorY,s.y)}return o.text&&(u.extendFlat(o.text,{positions:n},M.textPosition(t,r,o.text,o.marker)),u.extendFlat(o.textSel,{positions:n},M.textPosition(t,r,o.text,o.markerSel)),u.extendFlat(o.textUnsel,{positions:n},M.textPosition(t,r,o.text,o.markerUnsel))),o}(t,0,e,_,g,v),L=C(0,c);return x(a,e),f<T?k=m(e,f):S.marker&&(k=2*(S.marker.sizeAvg||Math.max(S.marker.size,3))),y(t,e,s,l,g,v,k),S.errorX&&E(e,s,S.errorX),S.errorY&&E(e,l,S.errorY),S.fill&&!L.fill2d&&(L.fill2d=!0),S.marker&&!L.scatter2d&&(L.scatter2d=!0),S.line&&!L.line2d&&(L.line2d=!0),!S.errorX&&!S.errorY||L.error2d||(L.error2d=!0),S.text&&!L.glText&&(L.glText=!0),S.marker&&f>=T&&(S.marker.cluster=d.tree),L.lineOptions.push(S.line),L.errorXOptions.push(S.errorX),L.errorYOptions.push(S.errorY),L.fillOptions.push(S.fill),L.markerOptions.push(S.marker),L.markerSelectedOptions.push(S.markerSel),L.markerUnselectedOptions.push(S.markerUnsel),L.textOptions.push(S.text),L.textSelectedOptions.push(S.textSel),L.textUnselectedOptions.push(S.textUnsel),d._scene=L,d.index=L.count,d.x=g,d.y=v,d.positions=_,L.count++,[{x:!1,y:!1,t:d,trace:e}]},plot:function(t,e,r){if(r.length){var o,s,c=t._fullLayout,h=e._scene,p=e.xaxis,d=e.yaxis;if(h)if(f(t,[\\\"ANGLE_instanced_arrays\\\",\\\"OES_element_index_uint\\\"])){var g=c._glcanvas.data()[0].regl;if(_(t,e,r),h.dirty){if(!0===h.error2d&&(h.error2d=a(g)),!0===h.line2d&&(h.line2d=i(g)),!0===h.scatter2d&&(h.scatter2d=n(g)),!0===h.fill2d&&(h.fill2d=i(g)),!0===h.glText)for(h.glText=new Array(h.count),o=0;o<h.count;o++)h.glText[o]=new l(g);if(h.glText)for(o=0;o<h.count;o++)h.glText[o].update(h.textOptions[o]);if(h.line2d&&(h.line2d.update(h.lineOptions),h.lineOptions=h.lineOptions.map(function(t){if(t&&t.positions){for(var e=t.positions,r=0;r<e.length&&(isNaN(e[r])||isNaN(e[r+1]));)r+=2;for(var n=e.length-2;n>r&&(isNaN(e[n])||isNaN(e[n+1]));)n-=2;t.positions=e.slice(r,n+2)}return t}),h.line2d.update(h.lineOptions)),h.error2d){var v=(h.errorXOptions||[]).concat(h.errorYOptions||[]);h.error2d.update(v)}h.scatter2d&&h.scatter2d.update(h.markerOptions),h.fillOrder=u.repeat(null,h.count),h.fill2d&&(h.fillOptions=h.fillOptions.map(function(t,e){var n=r[e];if(t&&n&&n[0]&&n[0].trace){var i,a,o=n[0],s=o.trace,l=o.t,c=h.lineOptions[e],u=[];s._ownfill&&u.push(e),s._nexttrace&&u.push(e+1),u.length&&(h.fillOrder[e]=u);var f,p,d=[],g=c&&c.positions||l.positions;if(\\\"tozeroy\\\"===s.fill){for(f=0;f<g.length&&isNaN(g[f+1]);)f+=2;for(p=g.length-2;p>f&&isNaN(g[p+1]);)p-=2;0!==g[f+1]&&(d=[g[f],0]),d=d.concat(g.slice(f,p+2)),0!==g[p+1]&&(d=d.concat([g[p],0]))}else if(\\\"tozerox\\\"===s.fill){for(f=0;f<g.length&&isNaN(g[f]);)f+=2;for(p=g.length-2;p>f&&isNaN(g[p]);)p-=2;0!==g[f]&&(d=[0,g[f+1]]),d=d.concat(g.slice(f,p+2)),0!==g[p]&&(d=d.concat([0,g[p+1]]))}else if(\\\"toself\\\"===s.fill||\\\"tonext\\\"===s.fill){for(d=[],i=0,a=0;a<g.length;a+=2)(isNaN(g[a])||isNaN(g[a+1]))&&((d=d.concat(g.slice(i,a))).push(g[i],g[i+1]),i=a+2);d=d.concat(g.slice(i)),i&&d.push(g[i],g[i+1])}else{var v=s._nexttrace;if(v){var m=h.lineOptions[e+1];if(m){var y=m.positions;if(\\\"tonexty\\\"===s.fill){for(d=g.slice(),e=Math.floor(y.length/2);e--;){var x=y[2*e],b=y[2*e+1];isNaN(x)||isNaN(b)||d.push(x,b)}t.fill=v.fillcolor}}}}if(s._prevtrace&&\\\"tonext\\\"===s._prevtrace.fill){var _=h.lineOptions[e-1].positions,w=d.length/2,k=[i=w];for(a=0;a<_.length;a+=2)(isNaN(_[a])||isNaN(_[a+1]))&&(k.push(a/2+w+1),i=a+2);d=d.concat(_),t.hole=k}return t.fillmode=s.fill,t.opacity=s.opacity,t.positions=d,t}}),h.fill2d.update(h.fillOptions))}h.selectBatch=null,h.unselectBatch=null;var m=c.dragmode,y=\\\"lasso\\\"===m||\\\"select\\\"===m,x=c.clickmode.indexOf(\\\"select\\\")>-1;for(o=0;o<r.length;o++){var b=r[o][0],w=b.trace,k=b.t,M=k.index,A=w._length,T=k.x,S=k.y;if(w.selectedpoints||y||x){if(y||(y=!0),h.selectBatch||(h.selectBatch=[],h.unselectBatch=[]),w.selectedpoints){var E=h.selectBatch[M]=u.selIndices2selPoints(w),C={};for(s=0;s<E.length;s++)C[E[s]]=1;var L=[];for(s=0;s<A;s++)C[s]||L.push(s);h.unselectBatch[M]=L}var O=k.xpx=new Array(A),I=k.ypx=new Array(A);for(s=0;s<A;s++)O[s]=p.c2p(T[s]),I[s]=d.c2p(S[s])}else k.xpx=k.ypx=null}y?(h.select2d||(h.select2d=n(c._glcanvas.data()[1].regl)),h.scatter2d&&h.selectBatch&&h.selectBatch.length&&h.scatter2d.update(h.markerUnselectedOptions.map(function(t,e){return h.selectBatch[e]?t:null})),h.select2d&&(h.select2d.update(h.markerOptions),h.select2d.update(h.markerSelectedOptions)),h.glText&&r.forEach(function(t){t&&t[0]&&t[0].trace&&z(t)})):h.scatter2d&&h.scatter2d.update(h.markerOptions);var P={viewport:function(t,e,r){var n=t._size,i=t.width,a=t.height;return[n.l+e.domain[0]*n.w,n.b+r.domain[0]*n.h,i-n.r-(1-e.domain[1])*n.w,a-n.t-(1-r.domain[1])*n.h]}(c,p,d),range:[(p._rl||p.range)[0],(d._rl||d.range)[0],(p._rl||p.range)[1],(d._rl||d.range)[1]]},D=u.repeat(P,h.count);h.fill2d&&h.fill2d.update(D),h.line2d&&h.line2d.update(D),h.error2d&&h.error2d.update(D.concat(D)),h.scatter2d&&h.scatter2d.update(D),h.select2d&&h.select2d.update(D),h.glText&&h.glText.forEach(function(t){t.update(P)})}else h.init()}},hoverPoints:function(t,e,r,n){var i,a,o,s,l,c,u,f,h,p=t.cd,d=p[0].t,g=p[0].trace,v=t.xa,m=t.ya,y=d.x,x=d.y,b=v.c2p(e),_=m.c2p(r),w=t.distance;if(d.tree){var k=v.p2c(b-w),M=v.p2c(b+w),A=m.p2c(_-w),T=m.p2c(_+w);i=\\\"x\\\"===n?d.tree.range(Math.min(k,M),Math.min(m._rl[0],m._rl[1]),Math.max(k,M),Math.max(m._rl[0],m._rl[1])):d.tree.range(Math.min(k,M),Math.min(A,T),Math.max(k,M),Math.max(A,T))}else{if(!d.ids)return[t];i=d.ids}var S=w;if(\\\"x\\\"===n)for(l=0;l<i.length;l++)o=y[i[l]],(c=Math.abs(v.c2p(o)-b))<S&&(S=c,u=m.c2p(x[i[l]])-_,h=Math.sqrt(c*c+u*u),a=i[l]);else for(l=0;l<i.length;l++)o=y[i[l]],s=x[i[l]],c=v.c2p(o)-b,u=m.c2p(s)-_,(f=Math.sqrt(c*c+u*u))<S&&(S=h=f,a=i[l]);return t.index=a,t.distance=S,t.dxy=h,void 0===a?[t]:(L(t,y,x,g),[t])},selectPoints:function(t,e){var r=t.cd,n=[],i=r[0].trace,a=r[0].t,o=i._length,l=a.x,c=a.y,u=a._scene;if(!u)return n;var f=g.hasText(i),h=g.hasMarkers(i),p=!h&&!f;if(!0!==i.visible||p)return n;var d,v=null,m=null;if(!1===e||e.degenerate)m=s(o);else for(v=[],m=[],d=0;d<o;d++)e.contains([a.xpx[d],a.ypx[d]],!1,d,t)?(v.push(d),n.push({pointNumber:d,x:l[d],y:c[d]})):m.push(d);if(u.selectBatch||(u.selectBatch=[],u.unselectBatch=[]),!u.selectBatch[a.index]){for(d=0;d<u.count;d++)u.selectBatch[d]=[],u.unselectBatch[d]=[];h&&u.scatter2d.update(u.markerUnselectedOptions)}return u.selectBatch[a.index]=v,u.unselectBatch[a.index]=m,f&&z(r),n},sceneUpdate:C,calcHover:L,meta:{}}},{\\\"../../components/color\\\":570,\\\"../../constants/interactions\\\":672,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../lib/prepare_regl\\\":709,\\\"../../plots/cartesian\\\":756,\\\"../../plots/cartesian/autorange\\\":743,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../registry\\\":827,\\\"../scatter/calc\\\":1044,\\\"../scatter/colorscale_calc\\\":1046,\\\"../scatter/cross_trace_defaults\\\":1049,\\\"../scatter/fill_hover_text\\\":1051,\\\"../scatter/get_trace_color\\\":1053,\\\"../scatter/link_traces\\\":1059,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/subtypes\\\":1067,\\\"./attributes\\\":1092,\\\"./constants\\\":1093,\\\"./convert\\\":1094,\\\"./defaults\\\":1095,\\\"array-range\\\":55,\\\"gl-text\\\":304,\\\"point-cluster\\\":452,\\\"regl-error2d\\\":473,\\\"regl-line2d\\\":474,\\\"regl-scatter2d\\\":475}],1097:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scattergeo/attributes\\\"),i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../plots/mapbox/layout_attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../components/colorbar/attributes\\\"),l=t(\\\"../../lib/extend\\\").extendFlat,c=t(\\\"../../plot_api/edit_types\\\").overrideAll,u=n.line,f=n.marker;e.exports=c({lon:n.lon,lat:n.lat,mode:l({},i.mode,{dflt:\\\"markers\\\"}),text:l({},i.text,{}),hovertext:l({},i.hovertext,{}),line:{color:u.color,width:u.width},connectgaps:i.connectgaps,marker:{symbol:{valType:\\\"string\\\",dflt:\\\"circle\\\",arrayOk:!0},opacity:f.opacity,size:f.size,sizeref:f.sizeref,sizemin:f.sizemin,sizemode:f.sizemode,color:f.color,colorscale:f.colorscale,cauto:f.cauto,cmax:f.cmax,cmin:f.cmin,autocolorscale:f.autocolorscale,reversescale:f.reversescale,showscale:f.showscale,colorbar:s},fill:n.fill,fillcolor:i.fillcolor,textfont:a.layers.symbol.textfont,textposition:a.layers.symbol.textposition,selected:{marker:i.selected.marker},unselected:{marker:i.unselected.marker},hoverinfo:l({},o.hoverinfo,{flags:[\\\"lon\\\",\\\"lat\\\",\\\"text\\\",\\\"name\\\"]})},\\\"calc\\\",\\\"nested\\\")},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741,\\\"../../plots/mapbox/layout_attributes\\\":804,\\\"../scatter/attributes\\\":1043,\\\"../scattergeo/attributes\\\":1083}],1098:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM,o=t(\\\"../../lib/geojson_utils\\\"),s=t(\\\"../../components/colorscale\\\"),l=t(\\\"../../components/drawing\\\"),c=t(\\\"../scatter/make_bubble_size_func\\\"),u=t(\\\"../scatter/subtypes\\\"),f=t(\\\"../../plots/mapbox/convert_text_opts\\\");function h(){return{geojson:o.makeBlank(),layout:{visibility:\\\"none\\\"},paint:{}}}function p(t){return i.isArrayOrTypedArray(t)?function(t){return t}:t?function(){return t}:d}function d(){return\\\"\\\"}function g(t){return t[0]===a}e.exports=function(t){var e,r=t[0].trace,a=!0===r.visible,v=\\\"none\\\"!==r.fill,m=u.hasLines(r),y=u.hasMarkers(r),x=u.hasText(r),b=y&&\\\"circle\\\"===r.marker.symbol,_=y&&\\\"circle\\\"!==r.marker.symbol,w=h(),k=h(),M=h(),A=h(),T={fill:w,line:k,circle:M,symbol:A};if(!a)return T;if((v||m)&&(e=o.calcTraceToLineCoords(t)),v&&(w.geojson=o.makePolygon(e),w.layout.visibility=\\\"visible\\\",i.extendFlat(w.paint,{\\\"fill-color\\\":r.fillcolor})),m&&(k.geojson=o.makeLine(e),k.layout.visibility=\\\"visible\\\",i.extendFlat(k.paint,{\\\"line-width\\\":r.line.width,\\\"line-color\\\":r.line.color,\\\"line-opacity\\\":r.opacity})),b){var S=function(t){var e,r,a,o,u=t[0].trace,f=u.marker,h=u.selectedpoints,p=i.isArrayOrTypedArray(f.color),d=i.isArrayOrTypedArray(f.size),v=i.isArrayOrTypedArray(f.opacity);function m(t){return u.opacity*t}p&&(r=s.hasColorscale(u,\\\"marker\\\")?s.makeColorScaleFunc(s.extractScale(f.colorscale,f.cmin,f.cmax)):i.identity);d&&(a=c(u));v&&(o=function(t){var e=n(t)?+i.constrain(t,0,1):0;return m(e)});var y,x=[];for(e=0;e<t.length;e++){var b=t[e],_=b.lonlat;if(!g(_)){var w={};r&&(w.mcc=b.mcc=r(b.mc)),a&&(w.mrc=b.mrc=a(b.ms)),o&&(w.mo=o(b.mo)),h&&(w.selected=b.selected||0),x.push({type:\\\"Feature\\\",geometry:{type:\\\"Point\\\",coordinates:_},properties:w})}}if(h)for(y=l.makeSelectedPointStyleFns(u),e=0;e<x.length;e++){var k=x[e].properties;y.selectedOpacityFn&&(k.mo=m(y.selectedOpacityFn(k))),y.selectedColorFn&&(k.mcc=y.selectedColorFn(k)),y.selectedSizeFn&&(k.mrc=y.selectedSizeFn(k))}return{geojson:{type:\\\"FeatureCollection\\\",features:x},mcc:p||y&&y.selectedColorFn?{type:\\\"identity\\\",property:\\\"mcc\\\"}:f.color,mrc:d||y&&y.selectedSizeFn?{type:\\\"identity\\\",property:\\\"mrc\\\"}:(M=f.size,M/2),mo:v||y&&y.selectedOpacityFn?{type:\\\"identity\\\",property:\\\"mo\\\"}:m(f.opacity)};var M}(t);M.geojson=S.geojson,M.layout.visibility=\\\"visible\\\",i.extendFlat(M.paint,{\\\"circle-color\\\":S.mcc,\\\"circle-radius\\\":S.mrc,\\\"circle-opacity\\\":S.mo})}if((_||x)&&(A.geojson=function(t){for(var e=t[0].trace,r=(e.marker||{}).symbol,n=e.text,i=\\\"circle\\\"!==r?p(r):d,a=u.hasText(e)?p(n):d,o=[],s=0;s<t.length;s++){var l=t[s];g(l.lonlat)||o.push({type:\\\"Feature\\\",geometry:{type:\\\"Point\\\",coordinates:l.lonlat},properties:{symbol:i(l.mx),text:a(l.tx)}})}return{type:\\\"FeatureCollection\\\",features:o}}(t),i.extendFlat(A.layout,{visibility:\\\"visible\\\",\\\"icon-image\\\":\\\"{symbol}-15\\\",\\\"text-field\\\":\\\"{text}\\\"}),_&&(i.extendFlat(A.layout,{\\\"icon-size\\\":r.marker.size/10}),i.extendFlat(A.paint,{\\\"icon-opacity\\\":r.opacity*r.marker.opacity,\\\"icon-color\\\":r.marker.color})),x)){var E=(r.marker||{}).size,C=f(r.textposition,E);i.extendFlat(A.layout,{\\\"text-size\\\":r.textfont.size,\\\"text-anchor\\\":C.anchor,\\\"text-offset\\\":C.offset}),i.extendFlat(A.paint,{\\\"text-color\\\":r.textfont.color,\\\"text-opacity\\\":r.opacity})}return T}},{\\\"../../components/colorscale\\\":585,\\\"../../components/drawing\\\":595,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../lib/geojson_utils\\\":689,\\\"../../plots/mapbox/convert_text_opts\\\":801,\\\"../scatter/make_bubble_size_func\\\":1060,\\\"../scatter/subtypes\\\":1067,\\\"fast-isnumeric\\\":214}],1099:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../scatter/marker_defaults\\\"),o=t(\\\"../scatter/line_defaults\\\"),s=t(\\\"../scatter/text_defaults\\\"),l=t(\\\"../scatter/fillcolor_defaults\\\"),c=t(\\\"./attributes\\\");e.exports=function(t,e,r,u){function f(r,i){return n.coerce(t,e,c,r,i)}if(function(t,e,r){var n=r(\\\"lon\\\")||[],i=r(\\\"lat\\\")||[],a=Math.min(n.length,i.length);return e._length=a,a}(0,e,f)){if(f(\\\"text\\\"),f(\\\"hovertext\\\"),f(\\\"mode\\\"),i.hasLines(e)&&(o(t,e,r,u,f,{noDash:!0}),f(\\\"connectgaps\\\")),i.hasMarkers(e)){a(t,e,r,u,f,{noLine:!0});var h=e.marker;\\\"circle\\\"!==h.symbol&&(n.isArrayOrTypedArray(h.size)&&(h.size=h.size[0]),n.isArrayOrTypedArray(h.color)&&(h.color=h.color[0]))}i.hasText(e)&&s(t,e,u,f,{noSelect:!0}),f(\\\"fill\\\"),\\\"none\\\"!==e.fill&&l(t,e,r,f),n.coerceSelectionMarkerOpacity(e,f)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1097}],1100:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t}},{}],1101:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/fx\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../scatter/get_trace_color\\\"),o=t(\\\"../scatter/fill_hover_text\\\"),s=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e,r){var l=t.cd,c=l[0].trace,u=t.xa,f=t.ya,h=t.subplot,p=360*(e>=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),d=e-p;if(n.getClosest(l,function(t){var e=t.lonlat;if(e[0]===s)return 1/0;var n=i.modHalf(e[0],360),a=e[1],o=h.project([n,a]),l=o.x-u.c2p([d,a]),c=o.y-f.c2p([n,r]),p=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(l*l+c*c)-p,1-3/p)},t),!1!==t.index){var g=l[t.index],v=g.lonlat,m=[i.modHalf(v[0],360)+p,v[1]],y=u.c2p(m),x=f.c2p(m),b=g.mrc||1;return t.x0=y-b,t.x1=y+b,t.y0=x-b,t.y1=x+b,t.color=a(c,g),t.extraText=function(t,e,r){var n=(e.hi||t.hoverinfo).split(\\\"+\\\"),i=-1!==n.indexOf(\\\"all\\\"),a=-1!==n.indexOf(\\\"lon\\\"),s=-1!==n.indexOf(\\\"lat\\\"),l=e.lonlat,c=[];function u(t){return t+\\\"\\\\xb0\\\"}i||a&&s?c.push(\\\"(\\\"+u(l[0])+\\\", \\\"+u(l[1])+\\\")\\\"):a?c.push(r.lon+u(l[0])):s&&c.push(r.lat+u(l[1]));(i||-1!==n.indexOf(\\\"text\\\"))&&o(e,t,c);return c.join(\\\"<br>\\\")}(c,g,l[0].t.labels),[t]}}},{\\\"../../components/fx\\\":612,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../scatter/fill_hover_text\\\":1051,\\\"../scatter/get_trace_color\\\":1053}],1102:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"../scattergeo/calc\\\"),n.plot=t(\\\"./plot\\\"),n.hoverPoints=t(\\\"./hover\\\"),n.eventData=t(\\\"./event_data\\\"),n.selectPoints=t(\\\"./select\\\"),n.style=function(t,e){e&&e[0].trace._glTrace.update(e)},n.moduleType=\\\"trace\\\",n.name=\\\"scattermapbox\\\",n.basePlotModule=t(\\\"../../plots/mapbox\\\"),n.categories=[\\\"mapbox\\\",\\\"gl\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatterlike\\\"],n.meta={},e.exports=n},{\\\"../../plots/mapbox\\\":802,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scattergeo/calc\\\":1084,\\\"./attributes\\\":1097,\\\"./defaults\\\":1099,\\\"./event_data\\\":1100,\\\"./hover\\\":1101,\\\"./plot\\\":1103,\\\"./select\\\":1104}],1103:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./convert\\\");function i(t,e){this.subplot=t,this.uid=e,this.sourceIds={fill:e+\\\"-source-fill\\\",line:e+\\\"-source-line\\\",circle:e+\\\"-source-circle\\\",symbol:e+\\\"-source-symbol\\\"},this.layerIds={fill:e+\\\"-layer-fill\\\",line:e+\\\"-layer-line\\\",circle:e+\\\"-layer-circle\\\",symbol:e+\\\"-layer-symbol\\\"},this.order=[\\\"fill\\\",\\\"line\\\",\\\"circle\\\",\\\"symbol\\\"]}var a=i.prototype;a.addSource=function(t,e){this.subplot.map.addSource(this.sourceIds[t],{type:\\\"geojson\\\",data:e.geojson})},a.setSourceData=function(t,e){this.subplot.map.getSource(this.sourceIds[t]).setData(e.geojson)},a.addLayer=function(t,e){this.subplot.map.addLayer({type:t,id:this.layerIds[t],source:this.sourceIds[t],layout:e.layout,paint:e.paint})},a.update=function(t){for(var e=this.subplot,r=n(t),i=0;i<this.order.length;i++){var a=this.order[i],o=r[a];e.setOptions(this.layerIds[a],\\\"setLayoutProperty\\\",o.layout),\\\"visible\\\"===o.layout.visibility&&(this.setSourceData(a,o),e.setOptions(this.layerIds[a],\\\"setPaintProperty\\\",o.paint))}t[0].trace._glTrace=this},a.dispose=function(){for(var t=this.subplot.map,e=0;e<this.order.length;e++){var r=this.order[e];t.removeLayer(this.layerIds[r]),t.removeSource(this.sourceIds[r])}},e.exports=function(t,e){for(var r=new i(t,e[0].trace.uid),a=n(e),o=0;o<r.order.length;o++){var s=r.order[o],l=a[s];r.addSource(s,l),r.addLayer(s,l)}return e[0].trace._glTrace=r,r}},{\\\"./convert\\\":1098}],1104:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e){var r,o=t.cd,s=t.xaxis,l=t.yaxis,c=[],u=o[0].trace;if(!i.hasMarkers(u))return[];if(!1===e)for(r=0;r<o.length;r++)o[r].selected=0;else for(r=0;r<o.length;r++){var f=o[r],h=f.lonlat;if(h[0]!==a){var p=[n.modHalf(h[0],360),h[1]],d=[s.c2p(p),l.c2p(p)];e.contains(d,null,r,t)?(c.push({pointNumber:r,lon:h[0],lat:h[1]}),f.selected=1):f.selected=0}}return c}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../scatter/subtypes\\\":1067}],1105:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/extend\\\").extendFlat,i=t(\\\"../scatter/attributes\\\"),a=t(\\\"../../plots/attributes\\\"),o=i.line;e.exports={mode:i.mode,r:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},theta:{valType:\\\"data_array\\\",editType:\\\"calc+clearAxisTypes\\\"},r0:{valType:\\\"any\\\",dflt:0,editType:\\\"calc+clearAxisTypes\\\"},dr:{valType:\\\"number\\\",dflt:1,editType:\\\"calc\\\"},theta0:{valType:\\\"any\\\",dflt:0,editType:\\\"calc+clearAxisTypes\\\"},dtheta:{valType:\\\"number\\\",editType:\\\"calc\\\"},thetaunit:{valType:\\\"enumerated\\\",values:[\\\"radians\\\",\\\"degrees\\\",\\\"gradians\\\"],dflt:\\\"degrees\\\",editType:\\\"calc+clearAxisTypes\\\"},text:i.text,hovertext:i.hovertext,line:{color:o.color,width:o.width,dash:o.dash,shape:n({},o.shape,{values:[\\\"linear\\\",\\\"spline\\\"]}),smoothing:o.smoothing,editType:\\\"calc\\\"},connectgaps:i.connectgaps,marker:i.marker,cliponaxis:n({},i.cliponaxis,{dflt:!1}),textposition:i.textposition,textfont:i.textfont,fill:n({},i.fill,{values:[\\\"none\\\",\\\"toself\\\",\\\"tonext\\\"],dflt:\\\"none\\\"}),fillcolor:i.fillcolor,hoverinfo:n({},a.hoverinfo,{flags:[\\\"r\\\",\\\"theta\\\",\\\"text\\\",\\\"name\\\"]}),hoveron:i.hoveron,selected:i.selected,unselected:i.unselected}},{\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1106:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM,a=t(\\\"../../plots/cartesian/axes\\\"),o=t(\\\"../scatter/colorscale_calc\\\"),s=t(\\\"../scatter/arrays_to_calcdata\\\"),l=t(\\\"../scatter/calc_selection\\\"),c=t(\\\"../scatter/calc\\\").calcMarkerSize;e.exports=function(t,e){for(var r=t._fullLayout,u=e.subplot,f=r[u].radialaxis,h=r[u].angularaxis,p=f.makeCalcdata(e,\\\"r\\\"),d=h.makeCalcdata(e,\\\"theta\\\"),g=e._length,v=new Array(g),m=0;m<g;m++){var y=p[m],x=d[m],b=v[m]={};n(y)&&n(x)?(b.r=y,b.theta=x):b.r=i}var _=c(e,g);return e._extremes.x=a.findExtremes(f,p,{ppad:_}),o(e),s(v,e),l(v,e),v}},{\\\"../../constants/numerical\\\":673,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc\\\":1044,\\\"../scatter/calc_selection\\\":1045,\\\"../scatter/colorscale_calc\\\":1046,\\\"fast-isnumeric\\\":214}],1107:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../scatter/marker_defaults\\\"),o=t(\\\"../scatter/line_defaults\\\"),s=t(\\\"../scatter/line_shape_defaults\\\"),l=t(\\\"../scatter/text_defaults\\\"),c=t(\\\"../scatter/fillcolor_defaults\\\"),u=t(\\\"../scatter/constants\\\").PTS_LINESONLY,f=t(\\\"./attributes\\\");function h(t,e,r,n){var i,a=n(\\\"r\\\"),o=n(\\\"theta\\\");if(a)o?i=Math.min(a.length,o.length):(i=a.length,n(\\\"theta0\\\"),n(\\\"dtheta\\\"));else{if(!o)return 0;i=e.theta.length,n(\\\"r0\\\"),n(\\\"dr\\\")}return e._length=i,i}e.exports={handleRThetaDefaults:h,supplyDefaults:function(t,e,r,p){function d(r,i){return n.coerce(t,e,f,r,i)}var g=h(0,e,0,d);if(g){d(\\\"thetaunit\\\"),d(\\\"mode\\\",g<u?\\\"lines+markers\\\":\\\"lines\\\"),d(\\\"text\\\"),d(\\\"hovertext\\\"),i.hasLines(e)&&(o(t,e,r,p,d),s(t,e,d),d(\\\"connectgaps\\\")),i.hasMarkers(e)&&a(t,e,r,p,d,{gradient:!0}),i.hasText(e)&&l(t,e,p,d);var v=[];(i.hasMarkers(e)||i.hasText(e))&&(d(\\\"cliponaxis\\\"),d(\\\"marker.maxdisplayed\\\"),v.push(\\\"points\\\")),d(\\\"fill\\\"),\\\"none\\\"!==e.fill&&(c(t,e,r,d),i.hasLines(e)||s(t,e,d)),\\\"tonext\\\"!==e.fill&&\\\"toself\\\"!==e.fill||v.push(\\\"fills\\\"),d(\\\"hoveron\\\",v.join(\\\"+\\\")||\\\"points\\\"),n.coerceSelectionMarkerOpacity(e,d)}else e.visible=!1}}},{\\\"../../lib\\\":696,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/line_shape_defaults\\\":1058,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1105}],1108:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/hover\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../../lib\\\");function o(t,e,r,n){var o=r.radialAxis,s=r.angularAxis,l=(t.hi||e.hoverinfo).split(\\\"+\\\"),c=[];function u(t,e){c.push(t._hovertitle+\\\": \\\"+i.tickText(t,e,\\\"hover\\\").text)}if(o._hovertitle=\\\"r\\\",s._hovertitle=\\\"\\\\u03b8\\\",-1!==l.indexOf(\\\"all\\\")&&(l=[\\\"r\\\",\\\"theta\\\",\\\"text\\\"]),-1!==l.indexOf(\\\"r\\\")&&u(o,o.c2l(t.r)),-1!==l.indexOf(\\\"theta\\\")){var f=t.theta;u(s,\\\"degrees\\\"===s.thetaunit?a.rad2deg(f):f)}-1!==l.indexOf(\\\"text\\\")&&n.text&&(c.push(n.text),delete n.text),n.extraText=c.join(\\\"<br>\\\")}e.exports={hoverPoints:function(t,e,r,i){var a=n(t,e,r,i);if(a&&!1!==a[0].index){var s=a[0];if(void 0===s.index)return a;var l=t.subplot,c=s.cd[s.index],u=s.trace;if(l.isPtInside(c))return s.xLabelVal=void 0,s.yLabelVal=void 0,o(c,u,l,s),a}},makeHoverPointText:o}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/hover\\\":1054}],1109:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"scatterpolar\\\",basePlotModule:t(\\\"../../plots/polar\\\"),categories:[\\\"polar\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\").supplyDefaults,colorbar:t(\\\"../scatter/marker_colorbar\\\"),calc:t(\\\"./calc\\\"),plot:t(\\\"./plot\\\"),style:t(\\\"../scatter/style\\\").style,hoverPoints:t(\\\"./hover\\\").hoverPoints,selectPoints:t(\\\"../scatter/select\\\"),meta:{}}},{\\\"../../plots/polar\\\":811,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/select\\\":1064,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1105,\\\"./calc\\\":1106,\\\"./defaults\\\":1107,\\\"./hover\\\":1108,\\\"./plot\\\":1110}],1110:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/plot\\\"),i=t(\\\"../../constants/numerical\\\").BADNUM;e.exports=function(t,e,r){for(var a=e.layers.frontplot.select(\\\"g.scatterlayer\\\"),o={xaxis:e.xaxis,yaxis:e.yaxis,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},s=e.radialAxis,l=e.angularAxis,c=0;c<r.length;c++)for(var u=r[c],f=0;f<u.length;f++){var h=u[f],p=h.r;if(p===i)h.x=h.y=i;else{var d=s.c2g(p),g=l.c2g(h.theta);h.x=d*Math.cos(g),h.y=d*Math.sin(g)}}n(t,o,r,a)}},{\\\"../../constants/numerical\\\":673,\\\"../scatter/plot\\\":1063}],1111:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatterpolar/attributes\\\"),i=t(\\\"../scattergl/attributes\\\");e.exports={mode:n.mode,r:n.r,theta:n.theta,r0:n.r0,dr:n.dr,theta0:n.theta0,dtheta:n.dtheta,thetaunit:n.thetaunit,text:n.text,hovertext:n.hovertext,line:i.line,connectgaps:i.connectgaps,marker:i.marker,fill:i.fill,fillcolor:i.fillcolor,textposition:i.textposition,textfont:i.textfont,hoverinfo:n.hoverinfo,selected:n.selected,unselected:n.unselected}},{\\\"../scattergl/attributes\\\":1092,\\\"../scatterpolar/attributes\\\":1105}],1112:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/subtypes\\\"),a=t(\\\"../scatterpolar/defaults\\\").handleRThetaDefaults,o=t(\\\"../scatter/marker_defaults\\\"),s=t(\\\"../scatter/line_defaults\\\"),l=t(\\\"../scatter/text_defaults\\\"),c=t(\\\"../scatter/fillcolor_defaults\\\"),u=t(\\\"../scatter/constants\\\").PTS_LINESONLY,f=t(\\\"./attributes\\\");e.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}var d=a(t,e,h,p);d?(p(\\\"thetaunit\\\"),p(\\\"mode\\\",d<u?\\\"lines+markers\\\":\\\"lines\\\"),p(\\\"text\\\"),p(\\\"hovertext\\\"),i.hasLines(e)&&(s(t,e,r,h,p),p(\\\"connectgaps\\\")),i.hasMarkers(e)&&o(t,e,r,h,p),i.hasText(e)&&l(t,e,h,p),p(\\\"fill\\\"),\\\"none\\\"!==e.fill&&c(t,e,r,p),n.coerceSelectionMarkerOpacity(e,p)):e.visible=!1}},{\\\"../../lib\\\":696,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"../scatterpolar/defaults\\\":1107,\\\"./attributes\\\":1111}],1113:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"point-cluster\\\"),i=t(\\\"fast-isnumeric\\\"),a=t(\\\"../scattergl\\\"),o=t(\\\"../scatter/colorscale_calc\\\"),s=t(\\\"../scatter/calc\\\").calcMarkerSize,l=t(\\\"../scattergl/convert\\\"),c=t(\\\"../../lib\\\"),u=t(\\\"../../plots/cartesian/axes\\\"),f=t(\\\"../scatterpolar/hover\\\").makeHoverPointText,h=t(\\\"../scattergl/constants\\\").TOO_MANY_POINTS;e.exports={moduleType:\\\"trace\\\",name:\\\"scatterpolargl\\\",basePlotModule:t(\\\"../../plots/polar\\\"),categories:[\\\"gl\\\",\\\"regl\\\",\\\"polar\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),colorbar:t(\\\"../scatter/marker_colorbar\\\"),calc:function(t,e){var r=t._fullLayout,n=e.subplot,i=r[n].radialaxis,a=r[n].angularaxis,c=i.makeCalcdata(e,\\\"r\\\"),f=a.makeCalcdata(e,\\\"theta\\\"),p=e._length,d={};p<c.length&&(c=c.slice(0,p)),p<f.length&&(f=f.slice(0,p)),d.r=c,d.theta=f,o(e);var g,v=d.opts=l.style(t,e);return p<h?g=s(e,p):v.marker&&(g=2*(v.marker.sizeAvg||Math.max(v.marker.size,3))),e._extremes.x=u.findExtremes(i,c,{ppad:g}),[{x:!1,y:!1,t:d,trace:e}]},plot:function(t,e,r){if(r.length){var o=e.radialAxis,s=e.angularAxis,u=a.sceneUpdate(t,e);return r.forEach(function(r){if(r&&r[0]&&r[0].trace){var a,f=r[0],p=f.trace,d=f.t,g=p._length,v=d.r,m=d.theta,y=d.opts,x=v.slice(),b=m.slice();for(a=0;a<v.length;a++)e.isPtInside({r:v[a],theta:m[a]})||(x[a]=NaN,b[a]=NaN);var _=new Array(2*g),w=Array(g),k=Array(g);for(a=0;a<g;a++){var M,A,T=x[a];if(i(T)){var S=o.c2g(T),E=s.c2g(b[a],p.thetaunit);M=S*Math.cos(E),A=S*Math.sin(E)}else M=A=NaN;w[a]=_[2*a]=M,k[a]=_[2*a+1]=A}d.tree=n(_),y.marker&&g>=h&&(y.marker.cluster=d.tree),y.marker&&(y.markerSel.positions=y.markerUnsel.positions=y.marker.positions=_),y.line&&_.length>1&&c.extendFlat(y.line,l.linePositions(t,p,_)),y.text&&(c.extendFlat(y.text,{positions:_},l.textPosition(t,p,y.text,y.marker)),c.extendFlat(y.textSel,{positions:_},l.textPosition(t,p,y.text,y.markerSel)),c.extendFlat(y.textUnsel,{positions:_},l.textPosition(t,p,y.text,y.markerUnsel))),y.fill&&!u.fill2d&&(u.fill2d=!0),y.marker&&!u.scatter2d&&(u.scatter2d=!0),y.line&&!u.line2d&&(u.line2d=!0),y.text&&!u.glText&&(u.glText=!0),u.lineOptions.push(y.line),u.fillOptions.push(y.fill),u.markerOptions.push(y.marker),u.markerSelectedOptions.push(y.markerSel),u.markerUnselectedOptions.push(y.markerUnsel),u.textOptions.push(y.text),u.textSelectedOptions.push(y.textSel),u.textUnselectedOptions.push(y.textUnsel),d.x=w,d.y=k,d.rawx=w,d.rawy=k,d.r=v,d.theta=m,d.positions=_,d._scene=u,d.index=u.count,u.count++}}),a.plot(t,e,r)}},hoverPoints:function(t,e,r,n){var i=t.cd[0].t,o=i.r,s=i.theta,l=a.hoverPoints(t,e,r,n);if(l&&!1!==l[0].index){var c=l[0];if(void 0===c.index)return l;var u=t.subplot,h=c.cd[c.index],p=c.trace;if(h.r=o[c.index],h.theta=s[c.index],u.isPtInside(h))return c.xLabelVal=void 0,c.yLabelVal=void 0,f(h,p,u,c),l}},selectPoints:a.selectPoints,meta:{}}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/polar\\\":811,\\\"../scatter/calc\\\":1044,\\\"../scatter/colorscale_calc\\\":1046,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scattergl\\\":1096,\\\"../scattergl/constants\\\":1093,\\\"../scattergl/convert\\\":1094,\\\"../scatterpolar/hover\\\":1108,\\\"./attributes\\\":1111,\\\"./defaults\\\":1112,\\\"fast-isnumeric\\\":214,\\\"point-cluster\\\":452}],1114:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../plots/attributes\\\"),a=t(\\\"../../components/colorscale/attributes\\\"),o=t(\\\"../../components/colorbar/attributes\\\"),s=t(\\\"../../components/drawing/attributes\\\").dash,l=t(\\\"../../lib/extend\\\").extendFlat,c=n.marker,u=n.line,f=c.line;e.exports={a:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},b:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},c:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},sum:{valType:\\\"number\\\",dflt:0,min:0,editType:\\\"calc\\\"},mode:l({},n.mode,{dflt:\\\"markers\\\"}),text:l({},n.text,{}),hovertext:l({},n.hovertext,{}),line:{color:u.color,width:u.width,dash:s,shape:l({},u.shape,{values:[\\\"linear\\\",\\\"spline\\\"]}),smoothing:u.smoothing,editType:\\\"calc\\\"},connectgaps:n.connectgaps,cliponaxis:n.cliponaxis,fill:l({},n.fill,{values:[\\\"none\\\",\\\"toself\\\",\\\"tonext\\\"],dflt:\\\"none\\\"}),fillcolor:n.fillcolor,marker:l({symbol:c.symbol,opacity:c.opacity,maxdisplayed:c.maxdisplayed,size:c.size,sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,line:l({width:f.width,editType:\\\"calc\\\"},a(\\\"marker.line\\\")),gradient:c.gradient,editType:\\\"calc\\\"},a(\\\"marker\\\"),{colorbar:o}),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:l({},i.hoverinfo,{flags:[\\\"a\\\",\\\"b\\\",\\\"c\\\",\\\"text\\\",\\\"name\\\"]}),hoveron:n.hoveron}},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../components/drawing/attributes\\\":594,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../scatter/attributes\\\":1043}],1115:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"fast-isnumeric\\\"),i=t(\\\"../scatter/colorscale_calc\\\"),a=t(\\\"../scatter/arrays_to_calcdata\\\"),o=t(\\\"../scatter/calc_selection\\\"),s=t(\\\"../scatter/calc\\\").calcMarkerSize,l=[\\\"a\\\",\\\"b\\\",\\\"c\\\"],c={a:[\\\"b\\\",\\\"c\\\"],b:[\\\"a\\\",\\\"c\\\"],c:[\\\"a\\\",\\\"b\\\"]};e.exports=function(t,e){var r,u,f,h,p,d,g=t._fullLayout[e.subplot].sum,v=e.sum||g,m={a:e.a,b:e.b,c:e.c};for(r=0;r<l.length;r++)if(!m[f=l[r]]){for(p=m[c[f][0]],d=m[c[f][1]],h=new Array(p.length),u=0;u<p.length;u++)h[u]=v-p[u]-d[u];m[f]=h}var y,x,b,_,w,k,M=e._length,A=new Array(M);for(r=0;r<M;r++)y=m.a[r],x=m.b[r],b=m.c[r],n(y)&&n(x)&&n(b)?(1!==(_=g/((y=+y)+(x=+x)+(b=+b)))&&(y*=_,x*=_,b*=_),k=y,w=b-x,A[r]={x:w,y:k,a:y,b:x,c:b}):A[r]={x:!1,y:!1};return s(e,M),i(e),a(A,e),o(A,e),A}},{\\\"../scatter/arrays_to_calcdata\\\":1042,\\\"../scatter/calc\\\":1044,\\\"../scatter/calc_selection\\\":1045,\\\"../scatter/colorscale_calc\\\":1046,\\\"fast-isnumeric\\\":214}],1116:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../scatter/constants\\\"),a=t(\\\"../scatter/subtypes\\\"),o=t(\\\"../scatter/marker_defaults\\\"),s=t(\\\"../scatter/line_defaults\\\"),l=t(\\\"../scatter/line_shape_defaults\\\"),c=t(\\\"../scatter/text_defaults\\\"),u=t(\\\"../scatter/fillcolor_defaults\\\"),f=t(\\\"./attributes\\\");e.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}var d,g=p(\\\"a\\\"),v=p(\\\"b\\\"),m=p(\\\"c\\\");if(g?(d=g.length,v?(d=Math.min(d,v.length),m&&(d=Math.min(d,m.length))):d=m?Math.min(d,m.length):0):v&&m&&(d=Math.min(v.length,m.length)),d){e._length=d,p(\\\"sum\\\"),p(\\\"text\\\"),p(\\\"hovertext\\\"),p(\\\"mode\\\",d<i.PTS_LINESONLY?\\\"lines+markers\\\":\\\"lines\\\"),a.hasLines(e)&&(s(t,e,r,h,p),l(t,e,p),p(\\\"connectgaps\\\")),a.hasMarkers(e)&&o(t,e,r,h,p,{gradient:!0}),a.hasText(e)&&c(t,e,h,p);var y=[];(a.hasMarkers(e)||a.hasText(e))&&(p(\\\"cliponaxis\\\"),p(\\\"marker.maxdisplayed\\\"),y.push(\\\"points\\\")),p(\\\"fill\\\"),\\\"none\\\"!==e.fill&&(u(t,e,r,p),a.hasLines(e)||l(t,e,p)),\\\"tonext\\\"!==e.fill&&\\\"toself\\\"!==e.fill||y.push(\\\"fills\\\"),p(\\\"hoveron\\\",y.join(\\\"+\\\")||\\\"points\\\"),n.coerceSelectionMarkerOpacity(e,p)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../scatter/constants\\\":1047,\\\"../scatter/fillcolor_defaults\\\":1052,\\\"../scatter/line_defaults\\\":1056,\\\"../scatter/line_shape_defaults\\\":1058,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"../scatter/text_defaults\\\":1068,\\\"./attributes\\\":1114}],1117:[function(t,e,r){\\\"use strict\\\";e.exports=function(t,e,r,n,i){if(e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),n[i]){var a=n[i];t.a=a.a,t.b=a.b,t.c=a.c}else t.a=e.a,t.b=e.b,t.c=e.c;return t}},{}],1118:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/hover\\\"),i=t(\\\"../../plots/cartesian/axes\\\");e.exports=function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index){var l=1-s.y0/t.ya._length,c=t.xa._length,u=c*l/2,f=c-u;return s.x0=Math.max(Math.min(s.x0,f),u),s.x1=Math.max(Math.min(s.x1,f),u),o}var h=s.cd[s.index];s.a=h.a,s.b=h.b,s.c=h.c,s.xLabelVal=void 0,s.yLabelVal=void 0;var p=s.trace,d=s.subplot,g=(h.hi||p.hoverinfo).split(\\\"+\\\"),v=[];return-1!==g.indexOf(\\\"all\\\")&&(g=[\\\"a\\\",\\\"b\\\",\\\"c\\\"]),-1!==g.indexOf(\\\"a\\\")&&m(d.aaxis,h.a),-1!==g.indexOf(\\\"b\\\")&&m(d.baxis,h.b),-1!==g.indexOf(\\\"c\\\")&&m(d.caxis,h.c),s.extraText=v.join(\\\"<br>\\\"),o}function m(t,e){v.push(t._hovertitle+\\\": \\\"+i.tickText(t,e,\\\"hover\\\").text)}}},{\\\"../../plots/cartesian/axes\\\":744,\\\"../scatter/hover\\\":1054}],1119:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar=t(\\\"../scatter/marker_colorbar\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.style=t(\\\"../scatter/style\\\").style,n.styleOnSelect=t(\\\"../scatter/style\\\").styleOnSelect,n.hoverPoints=t(\\\"./hover\\\"),n.selectPoints=t(\\\"../scatter/select\\\"),n.eventData=t(\\\"./event_data\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"scatterternary\\\",n.basePlotModule=t(\\\"../../plots/ternary\\\"),n.categories=[\\\"ternary\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],n.meta={},e.exports=n},{\\\"../../plots/ternary\\\":823,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/select\\\":1064,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1114,\\\"./calc\\\":1115,\\\"./defaults\\\":1116,\\\"./event_data\\\":1117,\\\"./hover\\\":1118,\\\"./plot\\\":1120}],1120:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/plot\\\");e.exports=function(t,e,r){var i=e.plotContainer;i.select(\\\".scatterlayer\\\").selectAll(\\\"*\\\").remove();var a={xaxis:e.xaxis,yaxis:e.yaxis,plot:i,layerClipId:e._hasClipOnAxisFalse?e.clipIdRelative:null},o=e.layers.frontplot.select(\\\"g.scatterlayer\\\");n(t,a,r,o)}},{\\\"../scatter/plot\\\":1063}],1121:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../scatter/attributes\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../scattergl/attributes\\\"),o=t(\\\"../../plots/cartesian/constants\\\").idRegex,s=t(\\\"../../plot_api/plot_template\\\").templatedArray,l=t(\\\"../../lib/extend\\\").extendFlat,c=n.marker,u=c.line,f=l(i(\\\"marker.line\\\",{editTypeOverride:\\\"calc\\\"}),{width:l({},u.width,{editType:\\\"calc\\\"}),editType:\\\"calc\\\"}),h=l(i(\\\"marker\\\"),{symbol:c.symbol,size:l({},c.size,{editType:\\\"markerSize\\\"}),sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,opacity:c.opacity,colorbar:c.colorbar,line:f,editType:\\\"calc\\\"});function p(t){return{valType:\\\"info_array\\\",freeLength:!0,editType:\\\"calc\\\",items:{valType:\\\"subplotid\\\",regex:o[t],editType:\\\"plot\\\"}}}h.color.editType=h.cmin.editType=h.cmax.editType=\\\"style\\\",e.exports={dimensions:s(\\\"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\\\"},editType:\\\"calc+clearAxisTypes\\\"},editType:\\\"calc+clearAxisTypes\\\"}),text:l({},a.text,{}),marker:h,xaxes:p(\\\"x\\\"),yaxes:p(\\\"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:a.selected.marker,editType:\\\"calc\\\"},unselected:{marker:a.unselected.marker,editType:\\\"calc\\\"},opacity:a.opacity}},{\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/plot_template\\\":734,\\\"../../plots/cartesian/constants\\\":750,\\\"../scatter/attributes\\\":1043,\\\"../scattergl/attributes\\\":1092}],1122:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"regl-line2d\\\"),i=t(\\\"../../registry\\\"),a=t(\\\"../../lib/prepare_regl\\\"),o=t(\\\"../../plots/get_data\\\").getModuleCalcData,s=t(\\\"../../plots/cartesian\\\"),l=t(\\\"../../plots/cartesian/axis_ids\\\").getFromId,c=t(\\\"../../plots/cartesian/axes\\\").shouldShowZeroLine,u=\\\"splom\\\";function f(t,e,r){for(var n=r.matrixOptions.data.length,i=e._visibleDims,a=r.viewOpts.ranges=new Array(n),o=0;o<i.length;o++){var s=i[o],c=a[o]=new Array(4),u=l(t,e._diag[s][0]);u&&(c[0]=u.r2l(u.range[0]),c[2]=u.r2l(u.range[1]));var f=l(t,e._diag[s][1]);f&&(c[1]=f.r2l(f.range[0]),c[3]=f.r2l(f.range[1]))}r.selectBatch?r.matrix.update({ranges:a},{ranges:a}):r.matrix.update({ranges:a})}function h(t){var e=t._fullLayout,r=e._glcanvas.data()[0].regl,i=e._splomGrid;i||(i=e._splomGrid=n(r)),i.update(function(t){var e,r=t._fullLayout,n=r._size,i=[0,0,r.width,r.height],a={};function o(t,e,r,n,o,s){var l=e[t+\\\"color\\\"],c=e[t+\\\"width\\\"],u=String(l+c);u in a?a[u].data.push(NaN,NaN,r,n,o,s):a[u]={data:[r,n,o,s],join:\\\"rect\\\",thickness:c,color:l,viewport:i,range:i,overlay:!1}}for(e in r._splomSubplots){var s,l,u=r._plots[e],f=u.xaxis,h=u.yaxis,p=f._vals,d=h._vals,g=n.b+h.domain[0]*n.h,v=-h._m,m=-v*h.r2l(h.range[0],h.calendar);if(f.showgrid)for(e=0;e<p.length;e++)s=f._offset+f.l2p(p[e].x),o(\\\"grid\\\",f,s,g,s,g+h._length);if(h.showgrid)for(e=0;e<d.length;e++)l=g+m+v*d[e].x,o(\\\"grid\\\",h,f._offset,l,f._offset+f._length,l);c(t,f,h)&&(s=f._offset+f.l2p(0),o(\\\"zeroline\\\",f,s,g,s,g+h._length)),c(t,h,f)&&(l=g+m+0,o(\\\"zeroline\\\",h,f._offset,l,f._offset+f._length,l))}var y=[];for(e in a)y.push(a[e]);return y}(t))}e.exports={name:u,attr:s.attr,attrRegex:s.attrRegex,layoutAttributes:s.layoutAttributes,supplyLayoutDefaults:s.supplyLayoutDefaults,drawFramework:s.drawFramework,plot:function(t){var e=t._fullLayout,r=i.getModule(u),n=o(t.calcdata,r)[0];a(t,[\\\"ANGLE_instanced_arrays\\\",\\\"OES_element_index_uint\\\"])&&(e._hasOnlyLargeSploms&&h(t),r.plot(t,{},n))},drag:function(t){var e=t.calcdata,r=t._fullLayout;r._hasOnlyLargeSploms&&h(t);for(var n=0;n<e.length;n++){var i=e[n][0].trace,a=r._splomScenes[i.uid];\\\"splom\\\"===i.type&&a&&a.matrix&&f(t,i,a)}},updateGrid:h,clean:function(t,e,r,n){var i,a={};if(n._splomScenes){for(i=0;i<t.length;i++){var o=t[i];\\\"splom\\\"===o.type&&(a[o.uid]=1)}for(i=0;i<r.length;i++){var l=r[i];if(!a[l.uid]){var c=n._splomScenes[l.uid];c&&c.destroy&&c.destroy(),n._splomScenes[l.uid]=null,delete n._splomScenes[l.uid]}}}0===Object.keys(n._splomScenes||{}).length&&delete n._splomScenes,n._splomGrid&&!e._hasOnlyLargeSploms&&n._hasOnlyLargeSploms&&(n._splomGrid.destroy(),n._splomGrid=null,delete n._splomGrid),s.clean(t,e,r,n)},updateFx:function(t){s.updateFx(t);var e=t._fullLayout,r=e.dragmode;if(\\\"zoom\\\"===r||\\\"pan\\\"===r)for(var n=t.calcdata,i=0;i<n.length;i++){var a=n[i][0].trace;if(\\\"splom\\\"===a.type){var o=e._splomScenes[a.uid];null===o.selectBatch&&o.matrix.update(o.matrixOptions,null)}}},toSVG:s.toSVG}},{\\\"../../lib/prepare_regl\\\":709,\\\"../../plots/cartesian\\\":756,\\\"../../plots/cartesian/axes\\\":744,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../plots/get_data\\\":781,\\\"../../registry\\\":827,\\\"regl-line2d\\\":474}],1123:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/array_container_defaults\\\"),a=t(\\\"./attributes\\\"),o=t(\\\"../scatter/subtypes\\\"),s=t(\\\"../scatter/marker_defaults\\\"),l=t(\\\"../parcoords/merge_length\\\"),c=/-open/;function u(t,e){function r(r,i){return n.coerce(t,e,a.dimensions,r,i)}r(\\\"label\\\");var i=r(\\\"values\\\");i&&i.length?r(\\\"visible\\\"):e.visible=!1,r(\\\"axis.type\\\")}e.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,a,r,i)}var p=i(t,e,{name:\\\"dimensions\\\",handleItemDefaults:u}),d=h(\\\"diagonal.visible\\\"),g=h(\\\"showupperhalf\\\"),v=h(\\\"showlowerhalf\\\");if(l(e,p,\\\"values\\\")&&(d||g||v)){h(\\\"text\\\"),s(t,e,r,f,h);var m=c.test(e.marker.symbol),y=o.isBubble(e);h(\\\"marker.line.width\\\",m||y?1:0),function(t,e,r,n){var i,a,o=e.dimensions,s=o.length,l=e.showupperhalf,c=e.showlowerhalf,u=e.diagonal.visible,f=new Array(s),h=new Array(s);for(i=0;i<s;i++){var p=i?i+1:\\\"\\\";f[i]=\\\"x\\\"+p,h[i]=\\\"y\\\"+p}var d=n(\\\"xaxes\\\",f),g=n(\\\"yaxes\\\",h),v=e._diag=new Array(s);e._xaxes={},e._yaxes={};var m=[],y=[];function x(t,n,i){if(t){var a=t.charAt(0),o=r._splomAxes[a];if(e[\\\"_\\\"+a+\\\"axes\\\"][t]=1,i.push(t),!(t in o)){var s=o[t]={};n&&(s.label=n.label||\\\"\\\",n.visible&&n.axis&&(s.type=n.axis.type))}}}var b=!u&&!c,_=!u&&!l;for(i=0;i<s;i++){var w=o[i],k=0===i,M=i===s-1,A=k&&b||M&&_?void 0:d[i],T=k&&_||M&&b?void 0:g[i];x(A,w,m),x(T,w,y),v[i]=[A,T]}for(i=0;i<m.length;i++)for(a=0;a<y.length;a++){var S=m[i]+y[a];i>a&&l?r._splomSubplots[S]=1:i<a&&c?r._splomSubplots[S]=1:i!==a||!u&&c&&l||(r._splomSubplots[S]=1)}(!c||!u&&l&&c)&&(r._splomGridDflt.xside=\\\"bottom\\\",r._splomGridDflt.yside=\\\"left\\\")}(0,e,f,h),n.coerceSelectionMarkerOpacity(e,h)}else e.visible=!1}},{\\\"../../lib\\\":696,\\\"../../plots/array_container_defaults\\\":740,\\\"../parcoords/merge_length\\\":1015,\\\"../scatter/marker_defaults\\\":1062,\\\"../scatter/subtypes\\\":1067,\\\"./attributes\\\":1121}],1124:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"regl-splom\\\"),i=t(\\\"array-range\\\"),a=t(\\\"../../registry\\\"),o=t(\\\"../../components/grid\\\"),s=t(\\\"../../lib\\\"),l=t(\\\"../../plots/cartesian/axis_ids\\\"),c=t(\\\"../scatter/subtypes\\\"),u=t(\\\"../scatter/calc\\\").calcMarkerSize,f=t(\\\"../scatter/calc\\\").calcAxisExpansion,h=t(\\\"../scatter/colorscale_calc\\\"),p=t(\\\"../scattergl/convert\\\").markerSelection,d=t(\\\"../scattergl/convert\\\").markerStyle,g=t(\\\"../scattergl\\\").calcHover,v=t(\\\"../../constants/numerical\\\").BADNUM,m=t(\\\"../scattergl/constants\\\").TOO_MANY_POINTS;function y(t,e){var r,i,a,o,c,u=t._fullLayout,f=u._size,h=e.trace,p=e.t,d=u._splomScenes[h.uid],g=d.matrixOptions,v=g.cdata,m=u._glcanvas.data()[0].regl,y=u.dragmode;if(0!==v.length){g.lower=h.showupperhalf,g.upper=h.showlowerhalf,g.diagonal=h.diagonal.visible;var x=h._visibleDims,b=v.length,_=d.viewOpts={};for(_.ranges=new Array(b),_.domains=new Array(b),c=0;c<x.length;c++){a=x[c];var w=_.ranges[c]=new Array(4),k=_.domains[c]=new Array(4);(r=l.getFromId(t,h._diag[a][0]))&&(w[0]=r._rl[0],w[2]=r._rl[1],k[0]=r.domain[0],k[2]=r.domain[1]),(i=l.getFromId(t,h._diag[a][1]))&&(w[1]=i._rl[0],w[3]=i._rl[1],k[1]=i.domain[0],k[3]=i.domain[1])}_.viewport=[f.l,f.b,f.w+f.l,f.h+f.b],!0===d.matrix&&(d.matrix=n(m));var M=u.clickmode.indexOf(\\\"select\\\")>-1,A=\\\"lasso\\\"===y||\\\"select\\\"===y||!!h.selectedpoints||M;if(d.selectBatch=null,d.unselectBatch=null,A){var T=h._length;if(d.selectBatch||(d.selectBatch=[],d.unselectBatch=[]),h.selectedpoints){d.selectBatch=h.selectedpoints;var S=h.selectedpoints,E={};for(a=0;a<S.length;a++)E[S[a]]=!0;var C=[];for(a=0;a<T;a++)E[a]||C.push(a);d.unselectBatch=C}var L=p.xpx=new Array(b),z=p.ypx=new Array(b);for(c=0;c<x.length;c++){if(a=x[c],r=l.getFromId(t,h._diag[a][0]))for(L[c]=new Array(T),o=0;o<T;o++)L[c][o]=r.c2p(v[c][o]);if(i=l.getFromId(t,h._diag[a][1]))for(z[c]=new Array(T),o=0;o<T;o++)z[c][o]=i.c2p(v[c][o])}d.selectBatch?(d.matrix.update(g,g),d.matrix.update(d.unselectedOptions,d.selectedOptions),d.matrix.update(_,_)):d.matrix.update(_,null)}else{var O=s.extendFlat({},g,_);d.matrix.update(O,null),p.xpx=p.ypx=null}}}function x(t,e){for(var r=e._id,n={x:0,y:1}[r.charAt(0)],i=t._visibleDims,a=0;a<i.length;a++){var o=i[a];if(t._diag[o][n]===r)return a}return!1}e.exports={moduleType:\\\"trace\\\",name:\\\"splom\\\",basePlotModule:t(\\\"./base_plot\\\"),categories:[\\\"gl\\\",\\\"regl\\\",\\\"cartesian\\\",\\\"symbols\\\",\\\"showLegend\\\",\\\"scatter-like\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),colorbar:t(\\\"../scatter/marker_colorbar\\\"),calc:function(t,e){var r,n,i,a,o,c,g=e.dimensions,y=e._length,x={},b=x.cdata=[],_=x.data=[],w=e._visibleDims=[];function k(t,r){for(var n=t.makeCalcdata({v:r.values,vcalendar:e.calendar},\\\"v\\\"),i=0;i<n.length;i++)n[i]=n[i]===v?NaN:n[i];b.push(n),_.push(\\\"log\\\"===t.type?s.simpleMap(n,t.c2l):n)}for(r=0;r<g.length;r++)if((i=g[r]).visible){if(a=l.getFromId(t,e._diag[r][0]),o=l.getFromId(t,e._diag[r][1]),a&&o&&a.type!==o.type){s.log(\\\"Skipping splom dimension \\\"+r+\\\" with conflicting axis types\\\");continue}a?(k(a,i),o&&\\\"category\\\"===o.type&&(o._categories=a._categories.slice())):k(o,i),w.push(r)}for(h(e),s.extendFlat(x,d(e)),c=b.length*y>m?2*(x.sizeAvg||Math.max(x.size,3)):u(e,y),n=0;n<w.length;n++)i=g[r=w[n]],a=l.getFromId(t,e._diag[r][0])||{},o=l.getFromId(t,e._diag[r][1])||{},f(t,e,a,o,b[n],b[n],c);var M=function(t,e){var r=t._fullLayout,n=e.uid,i=r._splomScenes;i||(i=r._splomScenes={});var a={dirty:!0},o=i[e.uid];return o||((o=i[n]=s.extendFlat({},a,{selectBatch:null,unselectBatch:null,matrix:!1,select:null})).draw=function(){o.matrix&&o.matrix.draw&&(o.selectBatch?o.matrix.draw(o.unselectBatch,o.selectBatch):o.matrix.draw()),o.dirty=!1},o.destroy=function(){o.matrix&&o.matrix.destroy&&o.matrix.destroy(),o.matrixOptions=null,o.selectBatch=null,o.unselectBatch=null,o=null}),o.dirty||s.extendFlat(o,a),o}(t,e);return M.matrix||(M.matrix=!0),M.matrixOptions=x,M.selectedOptions=p(e,e.selected),M.unselectedOptions=p(e,e.unselected),[{x:!1,y:!1,t:{},trace:e}]},plot:function(t,e,r){if(r.length)for(var n=0;n<r.length;n++)y(t,r[n][0])},hoverPoints:function(t,e,r){var n=t.cd[0].trace,i=t.scene.matrixOptions.cdata,a=t.xa,o=t.ya,s=a.c2p(e),l=o.c2p(r),c=t.distance,u=x(n,a),f=x(n,o);if(!1===u||!1===f)return[t];for(var h,p,d=i[u],v=i[f],m=c,y=0;y<d.length;y++){var b=d[y],_=v[y],w=a.c2p(b)-s,k=o.c2p(_)-l,M=Math.sqrt(w*w+k*k);M<m&&(m=p=M,h=y)}return t.index=h,t.distance=m,t.dxy=p,void 0===h?[t]:(g(t,d,v,n),[t])},selectPoints:function(t,e){var r,n=t.cd,a=n[0].trace,o=n[0].t,s=t.scene,l=s.matrixOptions.cdata,u=t.xaxis,f=t.yaxis,h=[];if(!s)return h;var p=!c.hasMarkers(a)&&!c.hasText(a);if(!0!==a.visible||p)return h;var d=x(a,u),g=x(a,f);if(!1===d||!1===g)return h;var v=o.xpx[d],m=o.ypx[g],y=l[d],b=l[g],_=null,w=null;if(!1===e||e.degenerate)w=i(o.count);else for(_=[],w=[],r=0;r<y.length;r++)e.contains([v[r],m[r]],null,r,t)?(_.push(r),h.push({pointNumber:r,x:y[r],y:b[r]})):w.push(r);if(s.selectBatch||(s.selectBatch=[],s.unselectBatch=[]),!s.selectBatch){for(r=0;r<s.count;r++)s.selectBatch=[],s.unselectBatch=[];s.matrix.update(s.unselectedOptions,s.selectedOptions)}return s.selectBatch=_,s.unselectBatch=w,h},editStyle:function(t,e){var r=e.trace,n=t._fullLayout._splomScenes[r.uid];if(n){h(r),s.extendFlat(n.matrixOptions,d(r));var i=s.extendFlat({},n.matrixOptions,n.viewOpts);n.matrix.update(i,null)}},meta:{}},a.register(o)},{\\\"../../components/grid\\\":616,\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axis_ids\\\":747,\\\"../../registry\\\":827,\\\"../scatter/calc\\\":1044,\\\"../scatter/colorscale_calc\\\":1046,\\\"../scatter/marker_colorbar\\\":1061,\\\"../scatter/subtypes\\\":1067,\\\"../scattergl\\\":1096,\\\"../scattergl/constants\\\":1093,\\\"../scattergl/convert\\\":1094,\\\"./attributes\\\":1121,\\\"./base_plot\\\":1122,\\\"./defaults\\\":1123,\\\"array-range\\\":55,\\\"regl-splom\\\":477}],1125:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/attributes\\\"),i=t(\\\"../../components/colorbar/attributes\\\"),a=t(\\\"../mesh3d/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../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\\\"},starts:{x:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},y:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},z:{valType:\\\"data_array\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"},maxdisplayed:{valType:\\\"integer\\\",min:0,dflt:1e3,editType:\\\"calc\\\"},sizeref:{valType:\\\"number\\\",editType:\\\"calc\\\",min:0,dflt:1},text:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"calc\\\"}};s(l,n(\\\"\\\",{colorAttr:\\\"u/v/w norm\\\",showScaleDflt:!0,editTypeOverride:\\\"calc\\\"}),{colorbar:i});[\\\"opacity\\\",\\\"lightposition\\\",\\\"lighting\\\"].forEach(function(t){l[t]=a[t]}),l.hoverinfo=s({},o.hoverinfo,{editType:\\\"calc\\\",flags:[\\\"x\\\",\\\"y\\\",\\\"z\\\",\\\"u\\\",\\\"v\\\",\\\"w\\\",\\\"norm\\\",\\\"divergence\\\",\\\"text\\\",\\\"name\\\"],dflt:\\\"x+y+z+norm+text+name\\\"}),l.transforms=void 0,e.exports=l},{\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plots/attributes\\\":741,\\\"../mesh3d/attributes\\\":986}],1126:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\");e.exports=function(t,e){var r,i,a,o,s=e.u,l=e.v,c=e.w,u=e.x,f=e.y,h=e.z,p=Math.min(u.length,f.length,h.length,s.length,l.length,c.length),d=0;e.starts&&(i=e.starts.x||[],a=e.starts.y||[],o=e.starts.z||[],d=Math.min(i.length,a.length,o.length));var g=0,v=1/0;for(r=0;r<p;r++){var m=s[r],y=l[r],x=c[r],b=Math.sqrt(m*m+y*y+x*x);g=Math.max(g,b),v=Math.min(v,b)}n(e,[v,g],\\\"\\\",\\\"c\\\");var _=-1/0,w=1/0,k=-1/0,M=1/0,A=-1/0,T=1/0;for(r=0;r<p;r++){var S=u[r];_=Math.max(_,S),w=Math.min(w,S);var E=f[r];k=Math.max(k,E),M=Math.min(M,E);var C=h[r];A=Math.max(A,C),T=Math.min(T,C)}for(r=0;r<d;r++){var L=i[r];_=Math.max(_,L),w=Math.min(w,L);var z=a[r];k=Math.max(k,z),M=Math.min(M,z);var O=o[r];A=Math.max(A,O),T=Math.min(T,O)}e._len=p,e._slen=d,e._normMax=g,e._xbnds=[w,_],e._ybnds=[M,k],e._zbnds=[T,A]}},{\\\"../../components/colorscale/calc\\\":578}],1127:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-streamtube3d\\\"),i=n.createTubeMesh,a=t(\\\"../../lib\\\"),o=t(\\\"../../lib/gl_format_color\\\").parseColorScale,s=t(\\\"../../plots/gl3d/zip3\\\"),l={xaxis:0,yaxis:1,zaxis:2};function c(t,e){this.scene=t,this.uid=e,this.mesh=null,this.data=null}var u=c.prototype;function f(t){return a.distinctVals(t).vals}function h(t){var e=t.length;return e>2?t.slice(1,e-1):2===e?[(t[0]+t[1])/2]:t}function p(t){var e=t.length;return 1===e?[.5,.5]:[t[1]-t[0],t[e-1]-t[e-2]]}function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,c=e._len,u={};function d(t,e){var n=r[e],o=i[l[e]];return a.simpleMap(t,function(t){return n.d2l(t)*o})}u.vectors=s(d(e.u,\\\"xaxis\\\"),d(e.v,\\\"yaxis\\\"),d(e.w,\\\"zaxis\\\"),c);var g=f(e.x.slice(0,c)),v=f(e.y.slice(0,c)),m=f(e.z.slice(0,c));if(g.length*v.length*m.length>c)return{positions:[],cells:[]};var y=d(g,\\\"xaxis\\\"),x=d(v,\\\"yaxis\\\"),b=d(m,\\\"zaxis\\\");if(u.meshgrid=[y,x,b],e.starts){var _=e._slen;u.startingPositions=s(d(e.starts.x.slice(0,_),\\\"xaxis\\\"),d(e.starts.y.slice(0,_),\\\"yaxis\\\"),d(e.starts.z.slice(0,_),\\\"zaxis\\\"))}else{for(var w=x[0],k=h(y),M=h(b),A=new Array(k.length*M.length),T=0,S=0;S<k.length;S++)for(var E=0;E<M.length;E++)A[T++]=[k[S],w,M[E]];u.startingPositions=A}u.colormap=o(e.colorscale),u.tubeSize=e.sizeref,u.maxLength=e.maxdisplayed;var C=d(e._xbnds,\\\"xaxis\\\"),L=d(e._ybnds,\\\"yaxis\\\"),z=d(e._zbnds,\\\"zaxis\\\"),O=p(y),I=p(x),P=p(b),D=[[C[0]-O[0],L[0]-I[0],z[0]-P[0]],[C[1]+O[1],L[1]+I[1],z[1]+P[1]]],R=n(u,D);R.vertexIntensityBounds=[e.cmin/e._normMax,e.cmax/e._normMax];var B=e.lightposition;return R.lightPosition=[B.x,B.y,B.z],R.ambient=e.lighting.ambient,R.diffuse=e.lighting.diffuse,R.specular=e.lighting.specular,R.roughness=e.lighting.roughness,R.fresnel=e.lighting.fresnel,R.opacity=e.opacity,e._pad=R.tubeScale*e.sizeref*2,R}u.handlePick=function(t){var e=this.scene.fullSceneLayout,r=this.scene.dataScale;function n(t,n){var i=e[n],a=r[l[n]];return i.l2c(t)/a}if(t.object===this.mesh){var i=t.data.position,a=t.data.velocity;return t.traceCoordinate=[n(i[0],\\\"xaxis\\\"),n(i[1],\\\"yaxis\\\"),n(i[2],\\\"zaxis\\\"),n(a[0],\\\"xaxis\\\"),n(a[1],\\\"yaxis\\\"),n(a[2],\\\"zaxis\\\"),t.data.intensity*this.data._normMax,t.data.divergence],t.textLabel=this.data.text,!0}},u.update=function(t){this.data=t;var e=d(this.scene,t);this.mesh.update(e)},u.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},e.exports=function(t,e){var r=t.glplot.gl,n=d(t,e),a=i(r,n),o=new c(t,e.uid);return o.mesh=a,o.data=e,a._trace=o,t.glplot.add(a),o}},{\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../plots/gl3d/zip3\\\":798,\\\"gl-streamtube3d\\\":301}],1128:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/colorscale/defaults\\\"),a=t(\\\"./attributes\\\");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s(\\\"u\\\"),c=s(\\\"v\\\"),u=s(\\\"w\\\"),f=s(\\\"x\\\"),h=s(\\\"y\\\"),p=s(\\\"z\\\");l&&l.length&&c&&c.length&&u&&u.length&&f&&f.length&&h&&h.length&&p&&p.length?(s(\\\"starts.x\\\"),s(\\\"starts.y\\\"),s(\\\"starts.z\\\"),s(\\\"maxdisplayed\\\"),s(\\\"sizeref\\\"),s(\\\"lighting.ambient\\\"),s(\\\"lighting.diffuse\\\"),s(\\\"lighting.specular\\\"),s(\\\"lighting.roughness\\\"),s(\\\"lighting.fresnel\\\"),s(\\\"lightposition.x\\\"),s(\\\"lightposition.y\\\"),s(\\\"lightposition.z\\\"),i(t,e,o,s,{prefix:\\\"\\\",cLetter:\\\"c\\\"}),s(\\\"text\\\"),e._length=null):e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"./attributes\\\":1125}],1129:[function(t,e,r){\\\"use strict\\\";e.exports={moduleType:\\\"trace\\\",name:\\\"streamtube\\\",basePlotModule:t(\\\"../../plots/gl3d\\\"),categories:[\\\"gl3d\\\"],attributes:t(\\\"./attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),colorbar:{min:\\\"cmin\\\",max:\\\"cmax\\\"},calc:t(\\\"./calc\\\"),plot:t(\\\"./convert\\\"),eventData:function(t,e){return t.tubex=t.x,t.tubey=t.y,t.tubez=t.z,t.tubeu=e.traceCoordinate[3],t.tubev=e.traceCoordinate[4],t.tubew=e.traceCoordinate[5],t.norm=e.traceCoordinate[6],t.divergence=e.traceCoordinate[7],delete t.x,delete t.y,delete t.z,t},meta:{}}},{\\\"../../plots/gl3d\\\":787,\\\"./attributes\\\":1125,\\\"./calc\\\":1126,\\\"./convert\\\":1127,\\\"./defaults\\\":1128}],1130:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/color\\\"),i=t(\\\"../../components/colorscale/attributes\\\"),a=t(\\\"../../components/colorbar/attributes\\\"),o=t(\\\"../../plots/attributes\\\"),s=t(\\\"../../lib/extend\\\").extendFlat,l=t(\\\"../../plot_api/edit_types\\\").overrideAll;function c(t){return{show:{valType:\\\"boolean\\\",dflt:!1},project:{x:{valType:\\\"boolean\\\",dflt:!1},y:{valType:\\\"boolean\\\",dflt:!1},z:{valType:\\\"boolean\\\",dflt:!1}},color:{valType:\\\"color\\\",dflt:n.defaultLine},usecolormap:{valType:\\\"boolean\\\",dflt:!1},width:{valType:\\\"number\\\",min:1,max:16,dflt:2},highlight:{valType:\\\"boolean\\\",dflt:!0},highlightcolor:{valType:\\\"color\\\",dflt:n.defaultLine},highlightwidth:{valType:\\\"number\\\",min:1,max:16,dflt:2}}}var u=e.exports=l(s({z:{valType:\\\"data_array\\\"},x:{valType:\\\"data_array\\\"},y:{valType:\\\"data_array\\\"},text:{valType:\\\"string\\\",dflt:\\\"\\\",arrayOk:!0},surfacecolor:{valType:\\\"data_array\\\"}},i(\\\"\\\",{colorAttr:\\\"z or surfacecolor\\\",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:\\\"calc\\\"}),{colorbar:a,contours:{x:c(),y:c(),z:c()},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},_deprecated:{zauto:s({},i.zauto,{}),zmin:s({},i.zmin,{}),zmax:s({},i.zmax,{})},hoverinfo:s({},o.hoverinfo)}),\\\"calc\\\",\\\"nested\\\");u.x.editType=u.y.editType=u.z.editType=\\\"calc+clearAxisTypes\\\",u.transforms=void 0},{\\\"../../components/color\\\":570,\\\"../../components/colorbar/attributes\\\":571,\\\"../../components/colorscale/attributes\\\":577,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/attributes\\\":741}],1131:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/colorscale/calc\\\");e.exports=function(t,e){e.surfacecolor?n(e,e.surfacecolor,\\\"\\\",\\\"c\\\"):n(e,e.z,\\\"\\\",\\\"c\\\")}},{\\\"../../components/colorscale/calc\\\":578}],1132:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"gl-surface3d\\\"),i=t(\\\"ndarray\\\"),a=t(\\\"ndarray-homography\\\"),o=t(\\\"ndarray-fill\\\"),s=t(\\\"ndarray-ops\\\"),l=t(\\\"../../lib\\\").isArrayOrTypedArray,c=t(\\\"../../lib/gl_format_color\\\").parseColorScale,u=t(\\\"../../lib/str2rgbarray\\\"),f=128;function h(t,e,r){this.scene=t,this.uid=r,this.surface=e,this.data=null,this.showContour=[!1,!1,!1],this.dataScale=1}var p=h.prototype;function d(t){var e=t.shape,r=[e[0]+2,e[1]+2],n=i(new Float32Array(r[0]*r[1]),r);return s.assign(n.lo(1,1).hi(e[0],e[1]),t),s.assign(n.lo(1).hi(e[0],1),t.hi(e[0],1)),s.assign(n.lo(1,r[1]-1).hi(e[0],1),t.lo(0,e[1]-1).hi(e[0],1)),s.assign(n.lo(0,1).hi(1,e[1]),t.hi(1)),s.assign(n.lo(r[0]-1,1).hi(1,e[1]),t.lo(e[0]-1)),n.set(0,0,t.get(0,0)),n.set(0,r[1]-1,t.get(0,e[1]-1)),n.set(r[0]-1,0,t.get(e[0]-1,0)),n.set(r[0]-1,r[1]-1,t.get(e[0]-1,e[1]-1)),n}p.handlePick=function(t){if(t.object===this.surface){var e=t.index=[Math.min(0|Math.round(t.data.index[0]/this.dataScale-1),this.data.z[0].length-1),Math.min(0|Math.round(t.data.index[1]/this.dataScale-1),this.data.z.length-1)],r=[0,0,0];l(this.data.x)?l(this.data.x[0])?r[0]=this.data.x[e[1]][e[0]]:r[0]=this.data.x[e[0]]:r[0]=e[0],l(this.data.y)?l(this.data.y[0])?r[1]=this.data.y[e[1]][e[0]]:r[1]=this.data.y[e[1]]:r[1]=e[1],r[2]=this.data.z[e[1]][e[0]],t.traceCoordinate=r;var n=this.scene.fullSceneLayout;t.dataCoordinate=[n.xaxis.d2l(r[0],0,this.data.xcalendar)*this.scene.dataScale[0],n.yaxis.d2l(r[1],0,this.data.ycalendar)*this.scene.dataScale[1],n.zaxis.d2l(r[2],0,this.data.zcalendar)*this.scene.dataScale[2]];var i=this.data.text;return Array.isArray(i)&&i[e[1]]&&void 0!==i[e[1]][e[0]]?t.textLabel=i[e[1]][e[0]]:t.textLabel=i||\\\"\\\",t.data.dataCoordinate=t.dataCoordinate.slice(),this.surface.highlight(t.data),this.scene.glplot.spikes.position=t.dataCoordinate,!0}},p.setContourLevels=function(){for(var t=[[],[],[]],e=!1,r=0;r<3;++r)this.showContour[r]&&(e=!0,t[r]=this.scene.contourLevels[r]);e&&this.surface.update({levels:t})},p.update=function(t){var e,r=this.scene,n=r.fullSceneLayout,s=this.surface,h=t.opacity,p=c(t.colorscale,h),g=t.z,v=t.x,m=t.y,y=n.xaxis,x=n.yaxis,b=n.zaxis,_=r.dataScale,w=g[0].length,k=t._ylength,M=[i(new Float32Array(w*k),[w,k]),i(new Float32Array(w*k),[w,k]),i(new Float32Array(w*k),[w,k])],A=M[0],T=M[1],S=r.contourLevels;this.data=t;var E=t.xcalendar,C=t.ycalendar,L=t.zcalendar;o(M[2],function(t,e){return b.d2l(g[e][t],0,L)*_[2]}),l(v)?l(v[0])?o(A,function(t,e){return y.d2l(v[e][t],0,E)*_[0]}):o(A,function(t){return y.d2l(v[t],0,E)*_[0]}):o(A,function(t){return y.d2l(t,0,E)*_[0]}),l(v)?l(m[0])?o(T,function(t,e){return x.d2l(m[e][t],0,C)*_[1]}):o(T,function(t,e){return x.d2l(m[e],0,C)*_[1]}):o(T,function(t,e){return x.d2l(e,0,E)*_[1]});var z={colormap:p,levels:[[],[],[]],showContour:[!0,!0,!0],showSurface:!t.hidesurface,contourProject:[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],contourWidth:[1,1,1],contourColor:[[1,1,1,1],[1,1,1,1],[1,1,1,1]],contourTint:[1,1,1],dynamicColor:[[1,1,1,1],[1,1,1,1],[1,1,1,1]],dynamicWidth:[1,1,1],dynamicTint:[1,1,1],opacity:t.opacity};if(z.intensityBounds=[t.cmin,t.cmax],t.surfacecolor){var O=i(new Float32Array(w*k),[w,k]);o(O,function(e,r){return t.surfacecolor[r][e]}),M.push(O)}else z.intensityBounds[0]*=_[2],z.intensityBounds[1]*=_[2];this.dataScale=function(t){var e=Math.max(t[0].shape[0],t[0].shape[1]);if(e<f){for(var r=f/e,n=[0|Math.floor(t[0].shape[0]*r+1),0|Math.floor(t[0].shape[1]*r+1)],o=n[0]*n[1],s=0;s<t.length;++s){var l=d(t[s]),c=i(new Float32Array(o),n);a(c,l,[r,0,0,0,r,0,0,0,1]),t[s]=c}return r}return 1}(M),t.surfacecolor&&(z.intensity=M.pop());var I=[!0,!0,!0],P=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];for(e=0;e<3;++e){var D=t.contours[P[e]];I[e]=D.highlight,z.showContour[e]=D.show||D.highlight,z.showContour[e]&&(z.contourProject[e]=[D.project.x,D.project.y,D.project.z],D.show?(this.showContour[e]=!0,z.levels[e]=S[e],s.highlightColor[e]=z.contourColor[e]=u(D.color),D.usecolormap?s.highlightTint[e]=z.contourTint[e]=0:s.highlightTint[e]=z.contourTint[e]=1,z.contourWidth[e]=D.width):this.showContour[e]=!1,D.highlight&&(z.dynamicColor[e]=u(D.highlightcolor),z.dynamicWidth[e]=D.highlightwidth))}(function(t){var e=t[0].rgb,r=t[t.length-1].rgb;return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]&&e[3]===r[3]})(p)&&(z.vertexColor=!0),z.coords=M,s.update(z),s.visible=t.visible,s.enableDynamic=I,s.enableHighlight=I,s.snapToData=!0,\\\"lighting\\\"in t&&(s.ambientLight=t.lighting.ambient,s.diffuseLight=t.lighting.diffuse,s.specularLight=t.lighting.specular,s.roughness=t.lighting.roughness,s.fresnel=t.lighting.fresnel),\\\"lightposition\\\"in t&&(s.lightPosition=[t.lightposition.x,t.lightposition.y,t.lightposition.z]),h&&h<1&&(s.supportsTransparency=!0)},p.dispose=function(){this.scene.glplot.remove(this.surface),this.surface.dispose()},e.exports=function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new h(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}},{\\\"../../lib\\\":696,\\\"../../lib/gl_format_color\\\":692,\\\"../../lib/str2rgbarray\\\":719,\\\"gl-surface3d\\\":303,ndarray:433,\\\"ndarray-fill\\\":423,\\\"ndarray-homography\\\":425,\\\"ndarray-ops\\\":427}],1133:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../registry\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/colorscale/defaults\\\"),o=t(\\\"./attributes\\\");function s(t,e,r){e in t&&!(r in t)&&(t[r]=t[e])}e.exports=function(t,e,r,l){var c,u;function f(r,n){return i.coerce(t,e,o,r,n)}var h=f(\\\"z\\\");if(h){var p=f(\\\"x\\\");f(\\\"y\\\"),e._xlength=Array.isArray(p)&&i.isArrayOrTypedArray(p[0])?h.length:h[0].length,e._ylength=h.length,n.getComponentMethod(\\\"calendars\\\",\\\"handleTraceDefaults\\\")(t,e,[\\\"x\\\",\\\"y\\\",\\\"z\\\"],l),f(\\\"text\\\"),[\\\"lighting.ambient\\\",\\\"lighting.diffuse\\\",\\\"lighting.specular\\\",\\\"lighting.roughness\\\",\\\"lighting.fresnel\\\",\\\"lightposition.x\\\",\\\"lightposition.y\\\",\\\"lightposition.z\\\",\\\"hidesurface\\\",\\\"opacity\\\"].forEach(function(t){f(t)});var d=f(\\\"surfacecolor\\\");f(\\\"colorscale\\\");var g=[\\\"x\\\",\\\"y\\\",\\\"z\\\"];for(c=0;c<3;++c){var v=\\\"contours.\\\"+g[c],m=f(v+\\\".show\\\"),y=f(v+\\\".highlight\\\");if(m||y)for(u=0;u<3;++u)f(v+\\\".project.\\\"+g[u]);m&&(f(v+\\\".color\\\"),f(v+\\\".width\\\"),f(v+\\\".usecolormap\\\")),y&&(f(v+\\\".highlightcolor\\\"),f(v+\\\".highlightwidth\\\"))}d||(s(t,\\\"zmin\\\",\\\"cmin\\\"),s(t,\\\"zmax\\\",\\\"cmax\\\"),s(t,\\\"zauto\\\",\\\"cauto\\\")),a(t,e,l,f,{prefix:\\\"\\\",cLetter:\\\"c\\\"}),e._length=null}else e.visible=!1}},{\\\"../../components/colorscale/defaults\\\":580,\\\"../../lib\\\":696,\\\"../../registry\\\":827,\\\"./attributes\\\":1130}],1134:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.colorbar={min:\\\"cmin\\\",max:\\\"cmax\\\"},n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./convert\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"surface\\\",n.basePlotModule=t(\\\"../../plots/gl3d\\\"),n.categories=[\\\"gl3d\\\",\\\"2dMap\\\",\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"../../plots/gl3d\\\":787,\\\"./attributes\\\":1130,\\\"./calc\\\":1131,\\\"./convert\\\":1132,\\\"./defaults\\\":1133}],1135:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../components/annotations/attributes\\\"),i=t(\\\"../../lib/extend\\\").extendFlat,a=t(\\\"../../plot_api/edit_types\\\").overrideAll,o=t(\\\"../../plots/font_attributes\\\"),s=t(\\\"../../plots/domain\\\").attributes;(e.exports=a({domain:s({name:\\\"table\\\",trace:!0}),columnwidth:{valType:\\\"number\\\",arrayOk:!0,dflt:null},columnorder:{valType:\\\"data_array\\\"},header:{values:{valType:\\\"data_array\\\",dflt:[]},format:{valType:\\\"data_array\\\",dflt:[]},prefix:{valType:\\\"string\\\",arrayOk:!0,dflt:null},suffix:{valType:\\\"string\\\",arrayOk:!0,dflt:null},height:{valType:\\\"number\\\",dflt:28},align:i({},n.align,{arrayOk:!0}),line:{width:{valType:\\\"number\\\",arrayOk:!0,dflt:1},color:{valType:\\\"color\\\",arrayOk:!0,dflt:\\\"grey\\\"}},fill:{color:{valType:\\\"color\\\",arrayOk:!0,dflt:\\\"white\\\"}},font:i({},o({arrayOk:!0}))},cells:{values:{valType:\\\"data_array\\\",dflt:[]},format:{valType:\\\"data_array\\\",dflt:[]},prefix:{valType:\\\"string\\\",arrayOk:!0,dflt:null},suffix:{valType:\\\"string\\\",arrayOk:!0,dflt:null},height:{valType:\\\"number\\\",dflt:20},align:i({},n.align,{arrayOk:!0}),line:{width:{valType:\\\"number\\\",arrayOk:!0,dflt:1},color:{valType:\\\"color\\\",arrayOk:!0,dflt:\\\"grey\\\"}},fill:{color:{valType:\\\"color\\\",arrayOk:!0,dflt:\\\"white\\\"}},font:i({},o({arrayOk:!0}))}},\\\"calc\\\",\\\"from-root\\\")).transforms=void 0},{\\\"../../components/annotations/attributes\\\":553,\\\"../../lib/extend\\\":685,\\\"../../plot_api/edit_types\\\":727,\\\"../../plots/domain\\\":770,\\\"../../plots/font_attributes\\\":771}],1136:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../plots/get_data\\\").getModuleCalcData,i=t(\\\"./plot\\\");r.name=\\\"table\\\",r.plot=function(t){var e=n(t.calcdata,\\\"table\\\")[0];e.length&&i(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has(\\\"table\\\"),a=e._has&&e._has(\\\"table\\\");i&&!a&&n._paperdiv.selectAll(\\\".table\\\").remove()}},{\\\"../../plots/get_data\\\":781,\\\"./plot\\\":1143}],1137:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/gup\\\").wrap;e.exports=function(){return n({})}},{\\\"../../lib/gup\\\":693}],1138:[function(t,e,r){\\\"use strict\\\";e.exports={cellPad:8,columnExtentOffset:10,columnTitleOffset:28,emptyHeaderHeight:16,latexCheck:/^\\\\$.*\\\\$$/,goldenRatio:1.618,lineBreaker:\\\"<br>\\\",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\\\"}}},{}],1139:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"../../lib/extend\\\").extendFlat,a=t(\\\"fast-isnumeric\\\");function o(t){if(Array.isArray(t)){for(var e=0,r=0;r<t.length;r++)e=Math.max(e,o(t[r]));return e}return t}function s(t,e){return t+e}function l(t){var e,r=t.slice(),n=1/0,i=0;for(e=0;e<r.length;e++)Array.isArray(r[e])||(r[e]=[r[e]]),n=Math.min(n,r[e].length),i=Math.max(i,r[e].length);if(n!==i)for(e=0;e<r.length;e++){var a=i-r[e].length;a&&(r[e]=r[e].concat(c(a)))}return r}function c(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=\\\"\\\";return e}function u(t){return t.calcdata.columns.reduce(function(e,r){return r.xIndex<t.xIndex?e+r.columnWidth:e},0)}function f(t,e){return Object.keys(t).map(function(r){return i({},t[r],{auxiliaryBlocks:e})})}function h(t,e){for(var r,n={},i=0,a=0,o={firstRowIndex:null,lastRowIndex:null,rows:[]},s=0,l=0,c=0;c<t.length;c++)r=t[c],o.rows.push({rowIndex:c,rowHeight:r}),((a+=r)>=e||c===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=c,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=c+1,a=0);return n}e.exports=function(t,e){var r=l(e.cells.values),p=function(t){return t.slice(e.header.values.length,t.length)},d=l(e.header.values);d.length&&!d[0].length&&(d[0]=[\\\"\\\"],d=l(d));var g=d.concat(p(r).map(function(){return c((d[0]||[\\\"\\\"]).length)})),v=e.domain,m=Math.floor(t._fullLayout._size.w*(v.x[1]-v.x[0])),y=Math.floor(t._fullLayout._size.h*(v.y[1]-v.y[0])),x=e.header.values.length?g[0].map(function(){return e.header.height}):[n.emptyHeaderHeight],b=r.length?r[0].map(function(){return e.cells.height}):[],_=x.reduce(s,0),w=h(b,y-_+n.uplift),k=f(h(x,_),[]),M=f(w,k),A={},T=e._fullInput.columnorder.concat(p(r.map(function(t,e){return e}))),S=g.map(function(t,r){var n=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(r,e.columnwidth.length-1)]:e.columnwidth;return a(n)?Number(n):1}),E=S.reduce(s,0);S=S.map(function(t){return t/E*m});var C=Math.max(o(e.header.line.width),o(e.cells.line.width)),L={key:e.index,translateX:v.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-v.y[1]),size:t._fullLayout._size,width:m,maxLineWidth:C,height:y,columnOrder:T,groupHeight:y,rowBlocks:M,headerRowBlocks:k,scrollY:0,cells:i({},e.cells,{values:r}),headerCells:i({},e.header,{values:g}),gdColumns:g.map(function(t){return t[0]}),gdColumnsOriginalOrder:g.map(function(t){return t[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:g.map(function(t,e){var r=A[t];return A[t]=(r||0)+1,{key:t+\\\"__\\\"+A[t],label:t,specIndex:e,xIndex:T[e],xScale:u,x:void 0,calcdata:void 0,columnWidth:S[e]}})};return L.columns.forEach(function(t){t.calcdata=L,t.x=u(t)}),L}},{\\\"../../lib/extend\\\":685,\\\"./constants\\\":1138,\\\"fast-isnumeric\\\":214}],1140:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib/extend\\\").extendFlat;r.splitToPanels=function(t){var e=[0,0],r=n({},t,{key:\\\"header\\\",type:\\\"header\\\",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:n({},t.calcdata,{cells:t.calcdata.headerCells})});return[n({},t,{key:\\\"cells1\\\",type:\\\"cells\\\",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),n({},t,{key:\\\"cells2\\\",type:\\\"cells\\\",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},r.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0,n=e?r+e.rows.length:0;return[r,n]}(t);return(t.values||[]).slice(e[0],e[1]).map(function(r,n){return{keyWithinBlock:n+(\\\"string\\\"==typeof r&&r.match(/[<$&> ]/)?\\\"_keybuster_\\\"+Math.random():\\\"\\\"),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}})}},{\\\"../../lib/extend\\\":685}],1141:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./attributes\\\"),a=t(\\\"../../plots/domain\\\").defaults;e.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}a(e,o,s),s(\\\"columnwidth\\\"),s(\\\"header.values\\\"),s(\\\"header.format\\\"),s(\\\"header.align\\\"),s(\\\"header.prefix\\\"),s(\\\"header.suffix\\\"),s(\\\"header.height\\\"),s(\\\"header.line.width\\\"),s(\\\"header.line.color\\\"),s(\\\"header.fill.color\\\"),n.coerceFont(s,\\\"header.font\\\",n.extendFlat({},o.font)),function(t,e){for(var r=t.columnorder||[],n=t.header.values.length,i=r.slice(0,n),a=i.slice().sort(function(t,e){return t-e}),o=i.map(function(t){return a.indexOf(t)}),s=o.length;s<n;s++)o.push(s);e(\\\"columnorder\\\",o)}(e,s),s(\\\"cells.values\\\"),s(\\\"cells.format\\\"),s(\\\"cells.align\\\"),s(\\\"cells.prefix\\\"),s(\\\"cells.suffix\\\"),s(\\\"cells.height\\\"),s(\\\"cells.line.width\\\"),s(\\\"cells.line.color\\\"),s(\\\"cells.fill.color\\\"),n.coerceFont(s,\\\"cells.font\\\",n.extendFlat({},o.font)),e._length=null}},{\\\"../../lib\\\":696,\\\"../../plots/domain\\\":770,\\\"./attributes\\\":1135}],1142:[function(t,e,r){\\\"use strict\\\";var n={};n.attributes=t(\\\"./attributes\\\"),n.supplyDefaults=t(\\\"./defaults\\\"),n.calc=t(\\\"./calc\\\"),n.plot=t(\\\"./plot\\\"),n.moduleType=\\\"trace\\\",n.name=\\\"table\\\",n.basePlotModule=t(\\\"./base_plot\\\"),n.categories=[\\\"noOpacity\\\"],n.meta={},e.exports=n},{\\\"./attributes\\\":1135,\\\"./base_plot\\\":1136,\\\"./calc\\\":1137,\\\"./defaults\\\":1141,\\\"./plot\\\":1143}],1143:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"./constants\\\"),i=t(\\\"d3\\\"),a=t(\\\"../../lib/gup\\\"),o=t(\\\"../../components/drawing\\\"),s=t(\\\"../../lib/svg_text_utils\\\"),l=t(\\\"../../lib\\\").raiseToTop,c=t(\\\"../../lib\\\").cancelTransition,u=t(\\\"./data_preparation_helper\\\"),f=t(\\\"./data_split_helpers\\\"),h=t(\\\"../../components/color\\\");function p(t){return Math.ceil(t.calcdata.maxLineWidth/2)}function d(t,e){return\\\"clip\\\"+t._fullLayout._uid+\\\"_scrollAreaBottomClip_\\\"+e.key}function g(t,e){return\\\"clip\\\"+t._fullLayout._uid+\\\"_columnBoundaryClippath_\\\"+e.calcdata.key+\\\"_\\\"+e.specIndex}function v(t){return[].concat.apply([],t.map(function(t){return t})).map(function(t){return t.__data__})}function m(t,e,r){var o=t.selectAll(\\\".\\\"+n.cn.scrollbarKit).data(a.repeat,a.keyFun);o.enter().append(\\\"g\\\").classed(n.cn.scrollbarKit,!0).style(\\\"shape-rendering\\\",\\\"geometricPrecision\\\"),o.each(function(t){var e=t.scrollbarState;e.totalHeight=function(t){var e=t.rowBlocks;return I(e,e.length-1)+(e.length?P(e[e.length-1],1/0):1)}(t),e.scrollableAreaHeight=t.groupHeight-A(t),e.currentlyVisibleHeight=Math.min(e.totalHeight,e.scrollableAreaHeight),e.ratio=e.currentlyVisibleHeight/e.totalHeight,e.barLength=Math.max(e.ratio*e.currentlyVisibleHeight,n.goldenRatio*n.scrollbarWidth),e.barWiggleRoom=e.currentlyVisibleHeight-e.barLength,e.wiggleRoom=Math.max(0,e.totalHeight-e.scrollableAreaHeight),e.topY=0===e.barWiggleRoom?0:t.scrollY/e.wiggleRoom*e.barWiggleRoom,e.bottomY=e.topY+e.barLength,e.dragMultiplier=e.wiggleRoom/e.barWiggleRoom}).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+(t.width+n.scrollbarWidth/2+n.scrollbarOffset)+\\\" \\\"+A(t)+\\\")\\\"});var s=o.selectAll(\\\".\\\"+n.cn.scrollbar).data(a.repeat,a.keyFun);s.enter().append(\\\"g\\\").classed(n.cn.scrollbar,!0);var l=s.selectAll(\\\".\\\"+n.cn.scrollbarSlider).data(a.repeat,a.keyFun);l.enter().append(\\\"g\\\").classed(n.cn.scrollbarSlider,!0),l.attr(\\\"transform\\\",function(t){return\\\"translate(0 \\\"+(t.scrollbarState.topY||0)+\\\")\\\"});var c=l.selectAll(\\\".\\\"+n.cn.scrollbarGlyph).data(a.repeat,a.keyFun);c.enter().append(\\\"line\\\").classed(n.cn.scrollbarGlyph,!0).attr(\\\"stroke\\\",\\\"black\\\").attr(\\\"stroke-width\\\",n.scrollbarWidth).attr(\\\"stroke-linecap\\\",\\\"round\\\").attr(\\\"y1\\\",n.scrollbarWidth/2),c.attr(\\\"y2\\\",function(t){return t.scrollbarState.barLength-n.scrollbarWidth/2}).attr(\\\"stroke-opacity\\\",function(t){return t.columnDragInProgress||!t.scrollbarState.barWiggleRoom||r?0:.4}),c.transition().delay(0).duration(0),c.transition().delay(n.scrollbarHideDelay).duration(n.scrollbarHideDuration).attr(\\\"stroke-opacity\\\",0);var u=s.selectAll(\\\".\\\"+n.cn.scrollbarCaptureZone).data(a.repeat,a.keyFun);u.enter().append(\\\"line\\\").classed(n.cn.scrollbarCaptureZone,!0).attr(\\\"stroke\\\",\\\"white\\\").attr(\\\"stroke-opacity\\\",.01).attr(\\\"stroke-width\\\",n.scrollbarCaptureWidth).attr(\\\"stroke-linecap\\\",\\\"butt\\\").attr(\\\"y1\\\",0).on(\\\"mousedown\\\",function(r){var n=i.event.y,a=this.getBoundingClientRect(),o=r.scrollbarState,s=n-a.top,l=i.scale.linear().domain([0,o.scrollableAreaHeight]).range([0,o.totalHeight]).clamp(!0);o.topY<=s&&s<=o.bottomY||S(e,t,null,l(s-o.barLength/2))(r)}).call(i.behavior.drag().origin(function(t){return i.event.stopPropagation(),t.scrollbarState.scrollbarScrollInProgress=!0,t}).on(\\\"drag\\\",S(e,t)).on(\\\"dragend\\\",function(){})),u.attr(\\\"y2\\\",function(t){return t.scrollbarState.scrollableAreaHeight}),e._context.staticPlot&&(c.remove(),u.remove())}function y(t,e,r,s){var l=function(t){var e=t.selectAll(\\\".\\\"+n.cn.columnCell).data(f.splitToCells,function(t){return t.keyWithinBlock});return e.enter().append(\\\"g\\\").classed(n.cn.columnCell,!0),e.exit().remove(),e}(function(t){var e=t.selectAll(\\\".\\\"+n.cn.columnCells).data(a.repeat,a.keyFun);return e.enter().append(\\\"g\\\").classed(n.cn.columnCells,!0),e.exit().remove(),e}(r));!function(t){t.each(function(t,e){var r=t.calcdata.cells.font,n=t.column.specIndex,i={size:_(r.size,n,e),color:_(r.color,n,e),family:_(r.family,n,e)};t.rowNumber=t.key,t.align=_(t.calcdata.cells.align,n,e),t.cellBorderWidth=_(t.calcdata.cells.line.width,n,e),t.font=i})}(l),function(t){t.attr(\\\"width\\\",function(t){return t.column.columnWidth}).attr(\\\"stroke-width\\\",function(t){return t.cellBorderWidth}).each(function(t){var e=i.select(this);h.stroke(e,_(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),h.fill(e,_(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))})}(function(t){var e=t.selectAll(\\\".\\\"+n.cn.cellRect).data(a.repeat,function(t){return t.keyWithinBlock});return e.enter().append(\\\"rect\\\").classed(n.cn.cellRect,!0),e}(l));var c=function(t){var e=t.selectAll(\\\".\\\"+n.cn.cellText).data(a.repeat,function(t){return t.keyWithinBlock});return e.enter().append(\\\"text\\\").classed(n.cn.cellText,!0).style(\\\"cursor\\\",function(){return\\\"auto\\\"}).on(\\\"mousedown\\\",function(){i.event.stopPropagation()}),e}(function(t){var e=t.selectAll(\\\".\\\"+n.cn.cellTextHolder).data(a.repeat,function(t){return t.keyWithinBlock});return e.enter().append(\\\"g\\\").classed(n.cn.cellTextHolder,!0).style(\\\"shape-rendering\\\",\\\"geometricPrecision\\\"),e}(l));!function(t){t.each(function(t){o.font(i.select(this),t.font)})}(c),x(c,e,s,t),O(l)}function x(t,e,r,a){t.text(function(t){var e=t.column.specIndex,r=t.rowNumber,a=t.value,o=\\\"string\\\"==typeof a,s=o&&a.match(/<br>/i),l=!o||s;t.mayHaveMarkup=o&&a.match(/[<&>]/);var c,u=\\\"string\\\"==typeof(c=a)&&c.match(n.latexCheck);t.latex=u;var f,h,p=u?\\\"\\\":_(t.calcdata.cells.prefix,e,r)||\\\"\\\",d=u?\\\"\\\":_(t.calcdata.cells.suffix,e,r)||\\\"\\\",g=u?null:_(t.calcdata.cells.format,e,r)||null,v=p+(g?i.format(g)(t.value):t.value)+d;if(t.wrappingNeeded=!t.wrapped&&!l&&!u&&(f=b(v)),t.cellHeightMayIncrease=s||u||t.mayHaveMarkup||(void 0===f?b(v):f),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var m=(\\\" \\\"===n.wrapSplitCharacter?v.replace(/<a href=/gi,\\\"<a_href=\\\"):v).split(n.wrapSplitCharacter),y=\\\" \\\"===n.wrapSplitCharacter?m.map(function(t){return t.replace(/<a_href=/gi,\\\"<a href=\\\")}):m;t.fragments=y.map(function(t){return{text:t,width:null}}),t.fragments.push({fragment:n.wrapSpacer,width:null}),h=y.join(n.lineBreaker)+n.lineBreaker+n.wrapSpacer}else delete t.fragments,h=v;return h}).attr(\\\"dy\\\",function(t){return t.needsConvertToTspans?0:\\\"0.75em\\\"}).each(function(t){var o=i.select(this),l=t.wrappingNeeded?C:L;t.needsConvertToTspans?s.convertToTspans(o,a,l(r,this,e,a,t)):i.select(this.parentNode).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+z(t)+\\\" \\\"+n.cellPad+\\\")\\\"}).attr(\\\"text-anchor\\\",function(t){return{left:\\\"start\\\",center:\\\"middle\\\",right:\\\"end\\\"}[t.align]})})}function b(t){return-1!==t.indexOf(n.wrapSplitCharacter)}function _(t,e,r){if(Array.isArray(t)){var n=t[Math.min(e,t.length-1)];return Array.isArray(n)?n[Math.min(r,n.length-1)]:n}return t}function w(t,e,r){t.transition().ease(n.releaseTransitionEase).duration(n.releaseTransitionDuration).attr(\\\"transform\\\",\\\"translate(\\\"+e.x+\\\" \\\"+r+\\\")\\\")}function k(t){return\\\"cells\\\"===t.type}function M(t){return\\\"header\\\"===t.type}function A(t){return(t.rowBlocks.length?t.rowBlocks[0].auxiliaryBlocks:[]).reduce(function(t,e){return t+P(e,1/0)},0)}function T(t,e,r){var n=v(e)[0];if(void 0!==n){var i=n.rowBlocks,a=n.calcdata,o=I(i,i.length),s=n.calcdata.groupHeight-A(n),l=a.scrollY=Math.max(0,Math.min(o-s,a.scrollY)),c=function(t,e,r){for(var n=[],i=0,a=0;a<t.length;a++){for(var o=t[a],s=o.rows,l=0,c=0;c<s.length;c++)l+=s[c].rowHeight;o.allRowsHeight=l,e<i+l&&e+r>i&&n.push(a),i+=l}return n}(i,l,s);1===c.length&&(c[0]===i.length-1?c.unshift(c[0]-1):c.push(c[0]+1)),c[0]%2&&c.reverse(),e.each(function(t,e){t.page=c[e],t.scrollY=l}),e.attr(\\\"transform\\\",function(t){return\\\"translate(0 \\\"+(I(t.rowBlocks,t.page)-t.scrollY)+\\\")\\\"}),t&&(E(t,r,e,c,n.prevPages,n,0),E(t,r,e,c,n.prevPages,n,1),m(r,t))}}function S(t,e,r,a){return function(o){var s=o.calcdata?o.calcdata:o,l=e.filter(function(t){return s.key===t.key}),c=r||s.scrollbarState.dragMultiplier;s.scrollY=void 0===a?s.scrollY+c*i.event.dy:a;var u=l.selectAll(\\\".\\\"+n.cn.yColumn).selectAll(\\\".\\\"+n.cn.columnBlock).filter(k);T(t,u,l)}}function E(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout(function(){var a=r.filter(function(t,e){return e===o&&n[e]!==i[e]});y(t,e,a,r),i[o]=n[o]}))}function C(t,e,r,a){return function(){var o=i.select(e.parentNode);o.each(function(t){var e=t.fragments;o.selectAll(\\\"tspan.line\\\").each(function(t,r){e[r].width=this.getComputedTextLength()});var r,i,a=e[e.length-1].width,s=e.slice(0,-1),l=[],c=0,u=t.column.columnWidth-2*n.cellPad;for(t.value=\\\"\\\";s.length;)c+(i=(r=s.shift()).width+a)>u&&(t.value+=l.join(n.wrapSpacer)+n.lineBreaker,l=[],c=0),l.push(r.text),c+=i;c&&(t.value+=l.join(n.wrapSpacer)),t.wrapped=!0}),o.selectAll(\\\"tspan.line\\\").remove(),x(o.select(\\\".\\\"+n.cn.cellText),r,t,a),i.select(e.parentNode.parentNode).call(O)}}function L(t,e,r,a,o){return function(){if(!o.settledY){var s=i.select(e.parentNode),l=R(o),c=o.key-l.firstRowIndex,u=l.rows[c].rowHeight,f=o.cellHeightMayIncrease?e.parentNode.getBoundingClientRect().height+2*n.cellPad:u,h=Math.max(f,u);h-l.rows[c].rowHeight&&(l.rows[c].rowHeight=h,t.selectAll(\\\".\\\"+n.cn.columnCell).call(O),T(null,t.filter(k),0),m(r,a,!0)),s.attr(\\\"transform\\\",function(){var t=this.parentNode.getBoundingClientRect(),e=i.select(this.parentNode).select(\\\".\\\"+n.cn.cellRect).node().getBoundingClientRect(),r=this.transform.baseVal.consolidate(),a=e.top-t.top+(r?r.matrix.f:n.cellPad);return\\\"translate(\\\"+z(o,i.select(this.parentNode).select(\\\".\\\"+n.cn.cellTextHolder).node().getBoundingClientRect().width)+\\\" \\\"+a+\\\")\\\"}),o.settledY=!0}}}function z(t,e){switch(t.align){case\\\"left\\\":return n.cellPad;case\\\"right\\\":return t.column.columnWidth-(e||0)-n.cellPad;case\\\"center\\\":return(t.column.columnWidth-(e||0))/2;default:return n.cellPad}}function O(t){t.attr(\\\"transform\\\",function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce(function(t,e){return t+P(e,1/0)},0);return\\\"translate(0 \\\"+(P(R(t),t.key)+e)+\\\")\\\"}).selectAll(\\\".\\\"+n.cn.cellRect).attr(\\\"height\\\",function(t){return(e=R(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r})}function I(t,e){for(var r=0,n=e-1;n>=0;n--)r+=D(t[n]);return r}function P(t,e){for(var r=0,n=0;n<t.rows.length&&t.rows[n].rowIndex<e;n++)r+=t.rows[n].rowHeight;return r}function D(t){var e=t.allRowsHeight;if(void 0!==e)return e;for(var r=0,n=0;n<t.rows.length;n++)r+=t.rows[n].rowHeight;return t.allRowsHeight=r,r}function R(t){return t.rowBlocks[t.page]}e.exports=function(t,e){var r=t._fullLayout._paper.selectAll(\\\".\\\"+n.cn.table).data(e.map(function(e){var r=a.unwrap(e).trace;return u(t,r)}),a.keyFun);r.exit().remove(),r.enter().append(\\\"g\\\").classed(n.cn.table,!0).attr(\\\"overflow\\\",\\\"visible\\\").style(\\\"box-sizing\\\",\\\"content-box\\\").style(\\\"position\\\",\\\"absolute\\\").style(\\\"left\\\",0).style(\\\"overflow\\\",\\\"visible\\\").style(\\\"shape-rendering\\\",\\\"crispEdges\\\").style(\\\"pointer-events\\\",\\\"all\\\"),r.attr(\\\"width\\\",function(t){return t.width+t.size.l+t.size.r}).attr(\\\"height\\\",function(t){return t.height+t.size.t+t.size.b}).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.translateX+\\\",\\\"+t.translateY+\\\")\\\"});var s=r.selectAll(\\\".\\\"+n.cn.tableControlView).data(a.repeat,a.keyFun);s.enter().append(\\\"g\\\").classed(n.cn.tableControlView,!0).style(\\\"box-sizing\\\",\\\"content-box\\\").on(\\\"mousemove\\\",function(e){s.filter(function(t){return e===t}).call(m,t)}).on(\\\"mousewheel\\\",function(e){e.scrollbarState.wheeling||(e.scrollbarState.wheeling=!0,i.event.stopPropagation(),i.event.preventDefault(),S(t,s,null,e.scrollY+i.event.deltaY)(e),e.scrollbarState.wheeling=!1)}).call(m,t,!0),s.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.size.l+\\\" \\\"+t.size.t+\\\")\\\"});var h=s.selectAll(\\\".\\\"+n.cn.scrollBackground).data(a.repeat,a.keyFun);h.enter().append(\\\"rect\\\").classed(n.cn.scrollBackground,!0).attr(\\\"fill\\\",\\\"none\\\"),h.attr(\\\"width\\\",function(t){return t.width}).attr(\\\"height\\\",function(t){return t.height}),s.each(function(e){o.setClipUrl(i.select(this),d(t,e))});var x=s.selectAll(\\\".\\\"+n.cn.yColumn).data(function(t){return t.columns},a.keyFun);x.enter().append(\\\"g\\\").classed(n.cn.yColumn,!0),x.exit().remove(),x.attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\" 0)\\\"}).call(i.behavior.drag().origin(function(e){return w(i.select(this),e,-n.uplift),l(this),e.calcdata.columnDragInProgress=!0,m(s.filter(function(t){return e.calcdata.key===t.key}),t),e}).on(\\\"drag\\\",function(t){var e=i.select(this),r=function(e){return(t===e?i.event.x:e.x)+e.columnWidth/2};t.x=Math.max(-n.overdrag,Math.min(t.calcdata.width+n.overdrag-t.columnWidth,i.event.x)),v(x).filter(function(e){return e.calcdata.key===t.calcdata.key}).sort(function(t,e){return r(t)-r(e)}).forEach(function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e)}),x.filter(function(e){return t!==e}).transition().ease(n.transitionEase).duration(n.transitionDuration).attr(\\\"transform\\\",function(t){return\\\"translate(\\\"+t.x+\\\" 0)\\\"}),e.call(c).attr(\\\"transform\\\",\\\"translate(\\\"+t.x+\\\" -\\\"+n.uplift+\\\" )\\\")}).on(\\\"dragend\\\",function(e){var r=i.select(this),n=e.calcdata;e.x=e.xScale(e),e.calcdata.columnDragInProgress=!1,w(r,e,0),function(t,e,r){var n=e.gdColumnsOriginalOrder;e.gdColumns.sort(function(t,e){return r[n.indexOf(t)]-r[n.indexOf(e)]}),e.columnorder=r,t.emit(\\\"plotly_restyle\\\")}(t,n,n.columns.map(function(t){return t.xIndex}))})),x.each(function(e){o.setClipUrl(i.select(this),g(t,e))});var b=x.selectAll(\\\".\\\"+n.cn.columnBlock).data(f.splitToPanels,a.keyFun);b.enter().append(\\\"g\\\").classed(n.cn.columnBlock,!0).attr(\\\"id\\\",function(t){return t.key}),b.style(\\\"cursor\\\",function(t){return t.dragHandle?\\\"ew-resize\\\":t.calcdata.scrollbarState.barWiggleRoom?\\\"ns-resize\\\":\\\"default\\\"});var _=b.filter(M),A=b.filter(k);A.call(i.behavior.drag().origin(function(t){return i.event.stopPropagation(),t}).on(\\\"drag\\\",S(t,s,-1)).on(\\\"dragend\\\",function(){})),y(t,s,_,b),y(t,s,A,b);var E=s.selectAll(\\\".\\\"+n.cn.scrollAreaClip).data(a.repeat,a.keyFun);E.enter().append(\\\"clipPath\\\").classed(n.cn.scrollAreaClip,!0).attr(\\\"id\\\",function(e){return d(t,e)});var C=E.selectAll(\\\".\\\"+n.cn.scrollAreaClipRect).data(a.repeat,a.keyFun);C.enter().append(\\\"rect\\\").classed(n.cn.scrollAreaClipRect,!0).attr(\\\"x\\\",-n.overdrag).attr(\\\"y\\\",-n.uplift).attr(\\\"fill\\\",\\\"none\\\"),C.attr(\\\"width\\\",function(t){return t.width+2*n.overdrag}).attr(\\\"height\\\",function(t){return t.height+n.uplift}),x.selectAll(\\\".\\\"+n.cn.columnBoundary).data(a.repeat,a.keyFun).enter().append(\\\"g\\\").classed(n.cn.columnBoundary,!0);var L=x.selectAll(\\\".\\\"+n.cn.columnBoundaryClippath).data(a.repeat,a.keyFun);L.enter().append(\\\"clipPath\\\").classed(n.cn.columnBoundaryClippath,!0),L.attr(\\\"id\\\",function(e){return g(t,e)});var z=L.selectAll(\\\".\\\"+n.cn.columnBoundaryRect).data(a.repeat,a.keyFun);z.enter().append(\\\"rect\\\").classed(n.cn.columnBoundaryRect,!0).attr(\\\"fill\\\",\\\"none\\\"),z.attr(\\\"width\\\",function(t){return t.columnWidth+2*p(t)}).attr(\\\"height\\\",function(t){return t.calcdata.height+2*p(t)+n.uplift}).attr(\\\"x\\\",function(t){return-p(t)}).attr(\\\"y\\\",function(t){return-p(t)}),T(null,A,s)}},{\\\"../../components/color\\\":570,\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../../lib/gup\\\":693,\\\"../../lib/svg_text_utils\\\":720,\\\"./constants\\\":1138,\\\"./data_preparation_helper\\\":1139,\\\"./data_split_helpers\\\":1140,d3:148}],1144:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../box/attributes\\\"),i=t(\\\"../../lib/extend\\\").extendFlat;e.exports={y:n.y,x:n.x,x0:n.x0,y0:n.y0,name:n.name,orientation:i({},n.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:n.fillcolor,points:i({},n.boxpoints,{}),jitter:i({},n.jitter,{}),pointpos:i({},n.pointpos,{}),marker:n.marker,text:n.text,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:\\\"plot\\\"},selected:n.selected,unselected:n.unselected,hoveron:{valType:\\\"flaglist\\\",flags:[\\\"violins\\\",\\\"points\\\",\\\"kde\\\"],dflt:\\\"violins+points+kde\\\",extras:[\\\"all\\\"],editType:\\\"style\\\"}}},{\\\"../../lib/extend\\\":685,\\\"../box/attributes\\\":859}],1145:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../box/calc\\\"),o=t(\\\"./helpers\\\"),s=t(\\\"../../constants/numerical\\\").BADNUM;function l(t,e,r){var i=e.max-e.min;if(!i)return 1;if(t.bandwidth)return Math.max(t.bandwidth,i/1e4);var a=r.length,o=n.stdev(r,a-1,e.mean);return Math.max(function(t,e,r){return 1.059*Math.min(e,r/1.349)*Math.pow(t,-.2)}(a,o,e.q3-e.q1),i/100)}function c(t,e,r,n){var a,o=t.spanmode,l=t.span||[],c=[e.min,e.max],u=[e.min-2*n,e.max+2*n];function f(n){var i=l[n],a=r.d2c(i,0,t[e.valLetter+\\\"calendar\\\"]);return a===s?u[n]:a}var h={type:\\\"linear\\\",range:a=\\\"soft\\\"===o?u:\\\"hard\\\"===o?c:[f(0),f(1)]};return i.setConvert(h),h.cleanRange(),a}e.exports=function(t,e){var r=a(t,e);if(r[0].t.empty)return r;var s=t._fullLayout,u=i.getFromId(t,e[\\\"h\\\"===e.orientation?\\\"xaxis\\\":\\\"yaxis\\\"]),f=s._violinScaleGroupStats,h=e.scalegroup,p=f[h];p||(p=f[h]={maxWidth:0,maxCount:0});for(var d=1/0,g=-1/0,v=0;v<r.length;v++){var m=r[v],y=m.pts.map(o.extractVal),x=m.bandwidth=l(e,m,y),b=m.span=c(e,m,u,x),_=b[1]-b[0],w=Math.ceil(_/(x/3)),k=_/w;if(!isFinite(k)||!isFinite(w))return n.error(\\\"Something went wrong with computing the violin span\\\"),r[0].t.empty=!0,r;var M=o.makeKDE(m,e,y);m.density=new Array(w);for(var A=0,T=b[0];T<b[1]+k/2;A++,T+=k){var S=M(T);p.maxWidth=Math.max(p.maxWidth,S),m.density[A]={v:S,t:T}}p.maxCount=Math.max(p.maxCount,y.length),d=Math.min(d,b[0]),g=Math.max(g,b[1])}var E=i.findExtremes(u,[d,g],{padded:!0});return e._extremes[u._id]=E,r[0].t.labels.kde=n._(t,\\\"kde:\\\"),r}},{\\\"../../constants/numerical\\\":673,\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../box/calc\\\":860,\\\"./helpers\\\":1148}],1146:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../box/cross_trace_calc\\\").setPositionOffset,i=[\\\"v\\\",\\\"h\\\"];e.exports=function(t,e){for(var r=t.calcdata,a=e.xaxis,o=e.yaxis,s=0;s<i.length;s++){for(var l=i[s],c=\\\"h\\\"===l?o:a,u=[],f=0,h=0,p=0;p<r.length;p++){var d=r[p],g=d[0].t,v=d[0].trace;!0!==v.visible||\\\"violin\\\"!==v.type||g.empty||v.orientation!==l||v.xaxis!==a._id||v.yaxis!==o._id||(u.push(p),!1!==v.points&&(f=Math.max(f,v.jitter-v.pointpos-1),h=Math.max(h,v.jitter+v.pointpos-1)))}n(\\\"violin\\\",t,u,c,[f,h])}}},{\\\"../box/cross_trace_calc\\\":861}],1147:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../box/defaults\\\"),o=t(\\\"./attributes\\\");e.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,o,r,i)}function c(r,i){return n.coerce2(t,e,o,r,i)}if(a.handleSampleDefaults(t,e,l,s),!1!==e.visible){l(\\\"bandwidth\\\"),l(\\\"scalegroup\\\",e.name),l(\\\"scalemode\\\"),l(\\\"side\\\");var u,f=l(\\\"span\\\");Array.isArray(f)&&(u=\\\"manual\\\"),l(\\\"spanmode\\\",u);var h=l(\\\"line.color\\\",(t.marker||{}).color||r),p=l(\\\"line.width\\\"),d=l(\\\"fillcolor\\\",i.addOpacity(e.line.color,.5));a.handlePointsDefaults(t,e,l,{prefix:\\\"\\\"});var g=c(\\\"box.width\\\"),v=c(\\\"box.fillcolor\\\",d),m=c(\\\"box.line.color\\\",h),y=c(\\\"box.line.width\\\",p);l(\\\"box.visible\\\",Boolean(g||v||m||y))||(e.box={visible:!1});var x=c(\\\"meanline.color\\\",h),b=c(\\\"meanline.width\\\",p);l(\\\"meanline.visible\\\",Boolean(x||b))||(e.meanline={visible:!1})}}},{\\\"../../components/color\\\":570,\\\"../../lib\\\":696,\\\"../box/defaults\\\":862,\\\"./attributes\\\":1144}],1148:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=function(t){return 1/Math.sqrt(2*Math.PI)*Math.exp(-.5*t*t)};r.makeKDE=function(t,e,r){var n=r.length,a=i,o=t.bandwidth,s=1/(n*o);return function(t){for(var e=0,i=0;i<n;i++)e+=a((t-r[i])/o);return s*e}},r.getPositionOnKdePath=function(t,e,r){var i,a;\\\"h\\\"===e.orientation?(i=\\\"y\\\",a=\\\"x\\\"):(i=\\\"x\\\",a=\\\"y\\\");var o=n.findPointOnPath(t.path,r,a,{pathLength:t.pathLength}),s=t.posCenterPx,l=o[i];return[l,\\\"both\\\"===e.side?2*s-l:s]},r.getKdeValue=function(t,e,n){var i=t.pts.map(r.extractVal);return r.makeKDE(t,e,i)(n)/t.posDensityScale},r.extractVal=function(t){return t.v}},{\\\"../../lib\\\":696}],1149:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"../../plots/cartesian/axes\\\"),a=t(\\\"../box/hover\\\"),o=t(\\\"./helpers\\\");e.exports=function(t,e,r,s,l){var c,u,f=t.cd,h=f[0].trace,p=h.hoveron,d=-1!==p.indexOf(\\\"violins\\\"),g=-1!==p.indexOf(\\\"kde\\\"),v=[];if(d||g){var m=a.hoverOnBoxes(t,e,r,s);if(d&&(v=v.concat(m)),g&&m.length>0){var y,x,b,_,w,k=t.xa,M=t.ya;\\\"h\\\"===h.orientation?(w=e,y=\\\"y\\\",b=M,x=\\\"x\\\",_=k):(w=r,y=\\\"x\\\",b=k,x=\\\"y\\\",_=M);var A=f[t.index];if(w>=A.span[0]&&w<=A.span[1]){var T=n.extendFlat({},t),S=_.c2p(w,!0),E=o.getKdeValue(A,h,w),C=o.getPositionOnKdePath(A,h,S),L=b._offset,z=b._length;T[y+\\\"0\\\"]=C[0],T[y+\\\"1\\\"]=C[1],T[x+\\\"0\\\"]=T[x+\\\"1\\\"]=S,T[x+\\\"Label\\\"]=x+\\\": \\\"+i.hoverLabelText(_,w)+\\\", \\\"+f[0].t.labels.kde+\\\" \\\"+E.toFixed(3),T.spikeDistance=m[0].spikeDistance;var O=y+\\\"Spike\\\";T[O]=m[0][O],m[0].spikeDistance=void 0,m[0][O]=void 0,v.push(T),(u={stroke:t.color})[y+\\\"1\\\"]=n.constrain(L+C[0],L,L+z),u[y+\\\"2\\\"]=n.constrain(L+C[1],L,L+z),u[x+\\\"1\\\"]=u[x+\\\"2\\\"]=_._offset+S}}}-1!==p.indexOf(\\\"points\\\")&&(c=a.hoverOnPoints(t,e,r));var I=l.selectAll(\\\".violinline-\\\"+h.uid).data(u?[0]:[]);return I.enter().append(\\\"line\\\").classed(\\\"violinline-\\\"+h.uid,!0).attr(\\\"stroke-width\\\",1.5),I.exit().remove(),I.attr(u),\\\"closest\\\"===s?c?[c]:v:c?(v.push(c),v):v}},{\\\"../../lib\\\":696,\\\"../../plots/cartesian/axes\\\":744,\\\"../box/hover\\\":864,\\\"./helpers\\\":1148}],1150:[function(t,e,r){\\\"use strict\\\";e.exports={attributes:t(\\\"./attributes\\\"),layoutAttributes:t(\\\"./layout_attributes\\\"),supplyDefaults:t(\\\"./defaults\\\"),supplyLayoutDefaults:t(\\\"./layout_defaults\\\"),calc:t(\\\"./calc\\\"),crossTraceCalc:t(\\\"./cross_trace_calc\\\"),plot:t(\\\"./plot\\\"),style:t(\\\"./style\\\"),styleOnSelect:t(\\\"../scatter/style\\\").styleOnSelect,hoverPoints:t(\\\"./hover\\\"),selectPoints:t(\\\"../box/select\\\"),moduleType:\\\"trace\\\",name:\\\"violin\\\",basePlotModule:t(\\\"../../plots/cartesian\\\"),categories:[\\\"cartesian\\\",\\\"svg\\\",\\\"symbols\\\",\\\"oriented\\\",\\\"box-violin\\\",\\\"showLegend\\\",\\\"violinLayout\\\",\\\"zoomScale\\\"],meta:{}}},{\\\"../../plots/cartesian\\\":756,\\\"../box/select\\\":869,\\\"../scatter/style\\\":1066,\\\"./attributes\\\":1144,\\\"./calc\\\":1145,\\\"./cross_trace_calc\\\":1146,\\\"./defaults\\\":1147,\\\"./hover\\\":1149,\\\"./layout_attributes\\\":1151,\\\"./layout_defaults\\\":1152,\\\"./plot\\\":1153,\\\"./style\\\":1154}],1151:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../box/layout_attributes\\\"),i=t(\\\"../../lib\\\").extendFlat;e.exports={violinmode:i({},n.boxmode,{}),violingap:i({},n.boxgap,{}),violingroupgap:i({},n.boxgroupgap,{})}},{\\\"../../lib\\\":696,\\\"../box/layout_attributes\\\":866}],1152:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../../lib\\\"),i=t(\\\"./layout_attributes\\\"),a=t(\\\"../box/layout_defaults\\\");e.exports=function(t,e,r){a._supply(t,e,r,function(r,a){return n.coerce(t,e,i,r,a)},\\\"violin\\\")}},{\\\"../../lib\\\":696,\\\"../box/layout_defaults\\\":867,\\\"./layout_attributes\\\":1151}],1153:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../lib\\\"),a=t(\\\"../../components/drawing\\\"),o=t(\\\"../box/plot\\\"),s=t(\\\"../scatter/line_points\\\"),l=t(\\\"./helpers\\\");e.exports=function(t,e,r,c){var u=t._fullLayout,f=e.xaxis,h=e.yaxis;function p(t){var e=s(t,{xaxis:f,yaxis:h,connectGaps:!0,baseTolerance:.75,shape:\\\"spline\\\",simplify:!0});return a.smoothopen(e[0],1)}i.makeTraceGroups(c,r,\\\"trace violins\\\").each(function(t){var r=n.select(this),a=t[0],s=a.t,c=a.trace;e.isRangePlot||(a.node3=r);var d=u._numViolins,g=\\\"group\\\"===u.violinmode&&d>1,v=1-u.violingap,m=s.bdPos=s.dPos*v*(1-u.violingroupgap)/(g?d:1),y=s.bPos=g?2*s.dPos*((s.num+.5)/d-.5)*v:0;if(s.wHover=s.dPos*(g?v/d:1),!0!==c.visible||s.empty)r.remove();else{var x=e[s.valLetter+\\\"axis\\\"],b=e[s.posLetter+\\\"axis\\\"],_=\\\"both\\\"===c.side,w=_||\\\"positive\\\"===c.side,k=_||\\\"negative\\\"===c.side,M=u._violinScaleGroupStats[c.scalegroup],A=r.selectAll(\\\"path.violin\\\").data(i.identity);A.enter().append(\\\"path\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\").attr(\\\"class\\\",\\\"violin\\\"),A.exit().remove(),A.each(function(t){var e,r,i,a,o,l,u,f,h=n.select(this),d=t.density,g=d.length,v=t.pos+y,A=b.c2p(v);switch(c.scalemode){case\\\"width\\\":e=M.maxWidth/m;break;case\\\"count\\\":e=M.maxWidth/m*(M.maxCount/t.pts.length)}if(w){for(u=new Array(g),o=0;o<g;o++)(f=u[o]={})[s.posLetter]=v+d[o].v/e,f[s.valLetter]=d[o].t;r=p(u)}if(k){for(u=new Array(g),l=0,o=g-1;l<g;l++,o--)(f=u[l]={})[s.posLetter]=v-d[o].v/e,f[s.valLetter]=d[o].t;i=p(u)}if(_)a=r+\\\"L\\\"+i.substr(1)+\\\"Z\\\";else{var T=[A,x.c2p(d[0].t)],S=[A,x.c2p(d[g-1].t)];\\\"h\\\"===c.orientation&&(T.reverse(),S.reverse()),a=w?\\\"M\\\"+T+\\\"L\\\"+r.substr(1)+\\\"L\\\"+S:\\\"M\\\"+S+\\\"L\\\"+i.substr(1)+\\\"L\\\"+T}h.attr(\\\"d\\\",a),t.posCenterPx=A,t.posDensityScale=e*m,t.path=h.node(),t.pathLength=t.path.getTotalLength()/(_?2:1)});var T,S,E,C=c.box,L=C.width,z=(C.line||{}).width;_?(T=m*L,S=0):w?(T=[0,m*L/2],S=-z):(T=[m*L/2,0],S=z),o.plotBoxAndWhiskers(r,{pos:b,val:x},c,{bPos:y,bdPos:T,bPosPxOffset:S}),o.plotBoxMean(r,{pos:b,val:x},c,{bPos:y,bdPos:T,bPosPxOffset:S}),!c.box.visible&&c.meanline.visible&&(E=i.identity);var O=r.selectAll(\\\"path.meanline\\\").data(E||[]);O.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"meanline\\\").style(\\\"fill\\\",\\\"none\\\").style(\\\"vector-effect\\\",\\\"non-scaling-stroke\\\"),O.exit().remove(),O.each(function(t){var e=x.c2p(t.mean,!0),r=l.getPositionOnKdePath(t,c,e);n.select(this).attr(\\\"d\\\",\\\"h\\\"===c.orientation?\\\"M\\\"+e+\\\",\\\"+r[0]+\\\"V\\\"+r[1]:\\\"M\\\"+r[0]+\\\",\\\"+e+\\\"H\\\"+r[1])}),o.plotPoints(r,{x:f,y:h},c,s)}})}},{\\\"../../components/drawing\\\":595,\\\"../../lib\\\":696,\\\"../box/plot\\\":868,\\\"../scatter/line_points\\\":1057,\\\"./helpers\\\":1148,d3:148}],1154:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"d3\\\"),i=t(\\\"../../components/color\\\"),a=t(\\\"../scatter/style\\\").stylePoints;e.exports=function(t,e){var r=e?e[0].node3:n.select(t).selectAll(\\\"g.trace.violins\\\");r.style(\\\"opacity\\\",function(t){return t[0].trace.opacity}),r.each(function(e){var r=e[0].trace,o=n.select(this),s=r.box||{},l=s.line||{},c=r.meanline||{},u=c.width;o.selectAll(\\\"path.violin\\\").style(\\\"stroke-width\\\",r.line.width+\\\"px\\\").call(i.stroke,r.line.color).call(i.fill,r.fillcolor),o.selectAll(\\\"path.box\\\").style(\\\"stroke-width\\\",l.width+\\\"px\\\").call(i.stroke,l.color).call(i.fill,s.fillcolor);var f={\\\"stroke-width\\\":u+\\\"px\\\",\\\"stroke-dasharray\\\":2*u+\\\"px,\\\"+u+\\\"px\\\"};o.selectAll(\\\"path.mean\\\").style(f).call(i.stroke,c.color),o.selectAll(\\\"path.meanline\\\").style(f).call(i.stroke,c.color),a(o,r,t)})}},{\\\"../../components/color\\\":570,\\\"../scatter/style\\\":1066,d3:148}],1155:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../plots/cartesian/axes\\\"),i=t(\\\"../lib\\\"),a=t(\\\"../plot_api/plot_schema\\\"),o=t(\\\"./helpers\\\").pointsAccessorFunction,s=t(\\\"../constants/numerical\\\").BADNUM;r.moduleType=\\\"transform\\\",r.name=\\\"aggregate\\\";var l=r.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\\\"},c=l.aggregations;function u(t,e,r,a){if(a.enabled){for(var o=a.target,l=i.nestedProperty(e,o),c=l.get(),u=function(t,e){var r=t.func,n=e.d2c,i=e.c2d;switch(r){case\\\"count\\\":return f;case\\\"first\\\":return h;case\\\"last\\\":return p;case\\\"sum\\\":return function(t,e){for(var r=0,a=0;a<e.length;a++){var o=n(t[e[a]]);o!==s&&(r+=o)}return i(r)};case\\\"avg\\\":return function(t,e){for(var r=0,a=0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r+=l,a++)}return a?i(r/a):s};case\\\"min\\\":return function(t,e){for(var r=1/0,a=0;a<e.length;a++){var o=n(t[e[a]]);o!==s&&(r=Math.min(r,o))}return r===1/0?s:i(r)};case\\\"max\\\":return function(t,e){for(var r=-1/0,a=0;a<e.length;a++){var o=n(t[e[a]]);o!==s&&(r=Math.max(r,o))}return r===-1/0?s:i(r)};case\\\"range\\\":return function(t,e){for(var r=1/0,a=-1/0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r=Math.min(r,l),a=Math.max(a,l))}return a===-1/0||r===1/0?s:i(a-r)};case\\\"change\\\":return function(t,e){var r=n(t[e[0]]),a=n(t[e[e.length-1]]);return r===s||a===s?s:i(a-r)};case\\\"median\\\":return function(t,e){for(var r=[],a=0;a<e.length;a++){var o=n(t[e[a]]);o!==s&&r.push(o)}if(!r.length)return s;r.sort();var l=(r.length-1)/2;return i((r[Math.floor(l)]+r[Math.ceil(l)])/2)};case\\\"mode\\\":return function(t,e){for(var r={},a=0,o=s,l=0;l<e.length;l++){var c=n(t[e[l]]);if(c!==s){var u=r[c]=(r[c]||0)+1;u>a&&(a=u,o=c)}}return a?i(o):s};case\\\"rms\\\":return function(t,e){for(var r=0,a=0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r+=l*l,a++)}return a?i(Math.sqrt(r/a)):s};case\\\"stddev\\\":return function(e,r){var i,a=0,o=0,l=1,c=s;for(i=0;i<r.length&&c===s;i++)c=n(e[r[i]]);if(c===s)return s;for(;i<r.length;i++){var u=n(e[r[i]]);if(u!==s){var f=u-c;a+=f,o+=f*f,l++}}var h=\\\"sample\\\"===t.funcmode?l-1:l;return h?Math.sqrt((o-a*a/l)/h):0}}}(a,n.getDataConversions(t,e,o,c)),d=new Array(r.length),g=0;g<r.length;g++)d[g]=u(c,r[g]);l.set(d),\\\"count\\\"===a.func&&i.pushUnique(e._arrayAttrs,o)}}function f(t,e){return e.length}function h(t,e){return t[e[0]]}function p(t,e){return t[e[e.length-1]]}r.supplyDefaults=function(t,e){var r,n={};function o(e,r){return i.coerce(t,n,l,e,r)}if(!o(\\\"enabled\\\"))return n;var s=a.findArrayAttributes(e),u={};for(r=0;r<s.length;r++)u[s[r]]=1;var f=o(\\\"groups\\\");if(!Array.isArray(f)){if(!u[f])return n.enabled=!1,n;u[f]=0}var h,p=t.aggregations||[],d=n.aggregations=new Array(p.length);function g(t,e){return i.coerce(p[r],h,c,t,e)}for(r=0;r<p.length;r++){h={_index:r};var v=g(\\\"target\\\"),m=g(\\\"func\\\");g(\\\"enabled\\\")&&v&&(u[v]||\\\"count\\\"===m&&void 0===u[v])?(\\\"stddev\\\"===m&&g(\\\"funcmode\\\"),u[v]=0,d[r]=h):d[r]={enabled:!1,_index:r}}for(r=0;r<s.length;r++)u[s[r]]&&d.push({target:s[r],func:c.func.dflt,enabled:!0,_index:-1});return n},r.calcTransform=function(t,e,r){if(r.enabled){var n=r.groups,a=i.getTargetArray(e,{target:n});if(a){var s,l,c,f,h={},p={},d=[],g=o(e.transforms,r),v=a.length;for(e._length&&(v=Math.min(v,e._length)),s=0;s<v;s++)void 0===(c=h[l=a[s]])?(h[l]=d.length,f=[s],d.push(f),p[h[l]]=g(s)):(d[c].push(s),p[h[l]]=(p[h[l]]||[]).concat(g(s)));r._indexToPoints=p;var m=r.aggregations;for(s=0;s<m.length;s++)u(t,e,d,m[s]);\\\"string\\\"==typeof n&&u(t,e,d,{target:n,func:\\\"first\\\",enabled:!0}),e._length=d.length}}}},{\\\"../constants/numerical\\\":673,\\\"../lib\\\":696,\\\"../plot_api/plot_schema\\\":733,\\\"../plots/cartesian/axes\\\":744,\\\"./helpers\\\":1158}],1156:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../registry\\\"),a=t(\\\"../plots/cartesian/axes\\\"),o=t(\\\"./helpers\\\").pointsAccessorFunction,s=t(\\\"../constants/filter_ops\\\"),l=s.COMPARISON_OPS,c=s.INTERVAL_OPS,u=s.SET_OPS;r.moduleType=\\\"transform\\\",r.name=\\\"filter\\\",r.attributes={enabled:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},target:{valType:\\\"string\\\",strict:!0,noBlank:!0,arrayOk:!0,dflt:\\\"x\\\",editType:\\\"calc\\\"},operation:{valType:\\\"enumerated\\\",values:[].concat(l).concat(c).concat(u),dflt:\\\"=\\\",editType:\\\"calc\\\"},value:{valType:\\\"any\\\",dflt:0,editType:\\\"calc\\\"},preservegaps:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"calc\\\"},editType:\\\"calc\\\"},r.supplyDefaults=function(t){var e={};function a(i,a){return n.coerce(t,e,r.attributes,i,a)}if(a(\\\"enabled\\\")){a(\\\"preservegaps\\\"),a(\\\"operation\\\"),a(\\\"value\\\"),a(\\\"target\\\");var o=i.getComponentMethod(\\\"calendars\\\",\\\"handleDefaults\\\");o(t,e,\\\"valuecalendar\\\",null),o(t,e,\\\"targetcalendar\\\",null)}return e},r.calcTransform=function(t,e,r){if(r.enabled){var i=n.getTargetArray(e,r);if(i){var s=r.target,f=i.length;e._length&&(f=Math.min(f,e._length));var h=r.targetcalendar,p=e._arrayAttrs,d=r.preservegaps;if(\\\"string\\\"==typeof s){var g=n.nestedProperty(e,s+\\\"calendar\\\").get();g&&(h=g)}var v,m,y=function(t,e,r){var n=t.operation,i=t.value,a=Array.isArray(i);function o(t){return-1!==t.indexOf(n)}var s,f=function(r){return e(r,0,t.valuecalendar)},h=function(t){return e(t,0,r)};o(l)?s=f(a?i[0]:i):o(c)?s=a?[f(i[0]),f(i[1])]:[f(i),f(i)]:o(u)&&(s=a?i.map(f):[f(i)]);switch(n){case\\\"=\\\":return function(t){return h(t)===s};case\\\"!=\\\":return function(t){return h(t)!==s};case\\\"<\\\":return function(t){return h(t)<s};case\\\"<=\\\":return function(t){return h(t)<=s};case\\\">\\\":return function(t){return h(t)>s};case\\\">=\\\":return function(t){return h(t)>=s};case\\\"[]\\\":return function(t){var e=h(t);return e>=s[0]&&e<=s[1]};case\\\"()\\\":return function(t){var e=h(t);return e>s[0]&&e<s[1]};case\\\"[)\\\":return function(t){var e=h(t);return e>=s[0]&&e<s[1]};case\\\"(]\\\":return function(t){var e=h(t);return e>s[0]&&e<=s[1]};case\\\"][\\\":return function(t){var e=h(t);return e<=s[0]||e>=s[1]};case\\\")(\\\":return function(t){var e=h(t);return e<s[0]||e>s[1]};case\\\"](\\\":return function(t){var e=h(t);return e<=s[0]||e>s[1]};case\\\")[\\\":return function(t){var e=h(t);return e<s[0]||e>=s[1]};case\\\"{}\\\":return function(t){return-1!==s.indexOf(h(t))};case\\\"}{\\\":return function(t){return-1===s.indexOf(h(t))}}}(r,a.getDataToCoordFunc(t,e,s,i),h),x={},b={},_=0;d?(v=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set(new Array(f))},m=function(t,e){var r=x[t.astr][e];t.get()[e]=r}):(v=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set([])},m=function(t,e){var r=x[t.astr][e];t.get().push(r)}),M(v);for(var w=o(e.transforms,r),k=0;k<f;k++){y(i[k])?(M(m,k),b[_++]=w(k)):d&&_++}r._indexToPoints=b,e._length=_}}function M(t,r){for(var i=0;i<p.length;i++){t(n.nestedProperty(e,p[i]),r)}}}},{\\\"../constants/filter_ops\\\":669,\\\"../lib\\\":696,\\\"../plots/cartesian/axes\\\":744,\\\"../registry\\\":827,\\\"./helpers\\\":1158}],1157:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plot_api/plot_schema\\\"),a=t(\\\"../plots/plots\\\"),o=t(\\\"./helpers\\\").pointsAccessorFunction;function s(t,e){var r,s,c,u,f,h,p,d,g,v,m=e.transform,y=e.transformIndex,x=t.transforms[y].groups,b=o(t.transforms,m);if(!Array.isArray(x)||0===x.length)return[t];var _=n.filterUnique(x),w=new Array(_.length),k=x.length,M=i.findArrayAttributes(t),A=m.styles||[],T={};for(r=0;r<A.length;r++)T[A[r].target]=A[r].value;m.styles&&(v=n.keyedContainer(m,\\\"styles\\\",\\\"target\\\",\\\"value.name\\\"));var S={},E={};for(r=0;r<_.length;r++){S[h=_[r]]=r,E[h]=0,(p=w[r]=n.extendDeepNoArrays({},t))._group=h,p.updateStyle=l(h,y),p.transforms[y]._indexToPoints={};var C=null;for(v&&(C=v.get(h)),p.name=C||\\\"\\\"===C?C:n.templateString(m.nameformat,{trace:t.name,group:h}),d=p.transforms,p.transforms=[],s=0;s<d.length;s++)p.transforms[s]=n.extendDeepNoArrays({},d[s]);for(s=0;s<M.length;s++)n.nestedProperty(p,M[s]).set([])}for(c=0;c<M.length;c++){for(u=M[c],s=0,g=[];s<_.length;s++)g[s]=n.nestedProperty(w[s],u).get();for(f=n.nestedProperty(t,u).get(),s=0;s<k;s++)g[S[x[s]]].push(f[s])}for(s=0;s<k;s++){(p=w[S[x[s]]]).transforms[y]._indexToPoints[E[x[s]]]=b(s),E[x[s]]++}for(r=0;r<_.length;r++)h=_[r],p=w[r],a.clearExpandedTraceDefaultColors(p),p=n.extendDeepNoArrays(p,T[h]||{});return w}function l(t,e){return function(r,i,a){n.keyedContainer(r,\\\"transforms[\\\"+e+\\\"].styles\\\",\\\"target\\\",\\\"value.\\\"+i).set(String(t),a)}}r.moduleType=\\\"transform\\\",r.name=\\\"groupby\\\",r.attributes={enabled:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},groups:{valType:\\\"data_array\\\",dflt:[],editType:\\\"calc\\\"},nameformat:{valType:\\\"string\\\",editType:\\\"calc\\\"},styles:{_isLinkedToArray:\\\"style\\\",target:{valType:\\\"string\\\",editType:\\\"calc\\\"},value:{valType:\\\"any\\\",dflt:{},editType:\\\"calc\\\",_compareAsJSON:!0},editType:\\\"calc\\\"},editType:\\\"calc\\\"},r.supplyDefaults=function(t,e,i){var a,o={};function s(e,i){return n.coerce(t,o,r.attributes,e,i)}if(!s(\\\"enabled\\\"))return o;s(\\\"groups\\\"),s(\\\"nameformat\\\",i._dataLength>1?\\\"%{group} (%{trace})\\\":\\\"%{group}\\\");var l=t.styles,c=o.styles=[];if(l)for(a=0;a<l.length;a++){var u=c[a]={};n.coerce(l[a],c[a],r.attributes.styles,\\\"target\\\");var f=n.coerce(l[a],c[a],r.attributes.styles,\\\"value\\\");n.isPlainObject(f)?u.value=n.extendDeep({},f):f&&delete u.value}return o},r.transform=function(t,e){var r,n,i,a=[];for(n=0;n<t.length;n++)for(r=s(t[n],e),i=0;i<r.length;i++)a.push(r[i]);return a}},{\\\"../lib\\\":696,\\\"../plot_api/plot_schema\\\":733,\\\"../plots/plots\\\":808,\\\"./helpers\\\":1158}],1158:[function(t,e,r){\\\"use strict\\\";r.pointsAccessorFunction=function(t,e){for(var r,n,i=0;i<t.length&&(r=t[i])!==e;i++)r._indexToPoints&&!1!==r.enabled&&(n=r._indexToPoints);return n?function(t){return n[t]}:function(t){return[t]}}},{}],1159:[function(t,e,r){\\\"use strict\\\";var n=t(\\\"../lib\\\"),i=t(\\\"../plots/cartesian/axes\\\"),a=t(\\\"./helpers\\\").pointsAccessorFunction;r.moduleType=\\\"transform\\\",r.name=\\\"sort\\\",r.attributes={enabled:{valType:\\\"boolean\\\",dflt:!0,editType:\\\"calc\\\"},target:{valType:\\\"string\\\",strict:!0,noBlank:!0,arrayOk:!0,dflt:\\\"x\\\",editType:\\\"calc\\\"},order:{valType:\\\"enumerated\\\",values:[\\\"ascending\\\",\\\"descending\\\"],dflt:\\\"ascending\\\",editType:\\\"calc\\\"},editType:\\\"calc\\\"},r.supplyDefaults=function(t){var e={};function i(i,a){return n.coerce(t,e,r.attributes,i,a)}return i(\\\"enabled\\\")&&(i(\\\"target\\\"),i(\\\"order\\\")),e},r.calcTransform=function(t,e,r){if(r.enabled){var o=n.getTargetArray(e,r);if(o){var s=r.target,l=o.length;e._length&&(l=Math.min(l,e._length));var c,u,f=e._arrayAttrs,h=function(t,e,r,n){var i,a=new Array(n),o=new Array(n);for(i=0;i<n;i++)a[i]={v:e[i],i:i};for(a.sort(function(t,e){switch(t.order){case\\\"ascending\\\":return function(t,r){return e(t.v)-e(r.v)};case\\\"descending\\\":return function(t,r){return e(r.v)-e(t.v)}}}(t,r)),i=0;i<n;i++)o[i]=a[i].i;return o}(r,o,i.getDataToCoordFunc(t,e,s,o),l),p=a(e.transforms,r),d={};for(c=0;c<f.length;c++){var g=n.nestedProperty(e,f[c]),v=g.get(),m=new Array(l);for(u=0;u<l;u++)m[u]=v[h[u]];g.set(m)}for(u=0;u<l;u++)d[u]=p(h[u]);r._indexToPoints=d,e._length=l}}}},{\\\"../lib\\\":696,\\\"../plots/cartesian/axes\\\":744,\\\"./helpers\\\":1158}]},{},[22])(22)});});require(['plotly'], function(Plotly) {window._Plotly = Plotly;});}</script>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import plotly\\n\",\n    \"import plotly.graph_objs as go\\n\",\n    \"\\n\",\n    \"# Configure Plotly to be rendered inline in the notebook.\\n\",\n    \"plotly.offline.init_notebook_mode()\\n\",\n    \"\\n\",\n    \"# Import custom linear regression implementation.\\n\",\n    \"from homemade.linear_regression import LinearRegression\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use [World Happindes Dataset](https://www.kaggle.com/unsdsn/world-happiness#2017.csv) for 2017.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Country</th>\\n\",\n       \"      <th>Happiness.Rank</th>\\n\",\n       \"      <th>Happiness.Score</th>\\n\",\n       \"      <th>Whisker.high</th>\\n\",\n       \"      <th>Whisker.low</th>\\n\",\n       \"      <th>Economy..GDP.per.Capita.</th>\\n\",\n       \"      <th>Family</th>\\n\",\n       \"      <th>Health..Life.Expectancy.</th>\\n\",\n       \"      <th>Freedom</th>\\n\",\n       \"      <th>Generosity</th>\\n\",\n       \"      <th>Trust..Government.Corruption.</th>\\n\",\n       \"      <th>Dystopia.Residual</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>Norway</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>7.537</td>\\n\",\n       \"      <td>7.594445</td>\\n\",\n       \"      <td>7.479556</td>\\n\",\n       \"      <td>1.616463</td>\\n\",\n       \"      <td>1.533524</td>\\n\",\n       \"      <td>0.796667</td>\\n\",\n       \"      <td>0.635423</td>\\n\",\n       \"      <td>0.362012</td>\\n\",\n       \"      <td>0.315964</td>\\n\",\n       \"      <td>2.277027</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>Denmark</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>7.522</td>\\n\",\n       \"      <td>7.581728</td>\\n\",\n       \"      <td>7.462272</td>\\n\",\n       \"      <td>1.482383</td>\\n\",\n       \"      <td>1.551122</td>\\n\",\n       \"      <td>0.792566</td>\\n\",\n       \"      <td>0.626007</td>\\n\",\n       \"      <td>0.355280</td>\\n\",\n       \"      <td>0.400770</td>\\n\",\n       \"      <td>2.313707</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>Iceland</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>7.504</td>\\n\",\n       \"      <td>7.622030</td>\\n\",\n       \"      <td>7.385970</td>\\n\",\n       \"      <td>1.480633</td>\\n\",\n       \"      <td>1.610574</td>\\n\",\n       \"      <td>0.833552</td>\\n\",\n       \"      <td>0.627163</td>\\n\",\n       \"      <td>0.475540</td>\\n\",\n       \"      <td>0.153527</td>\\n\",\n       \"      <td>2.322715</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>Switzerland</td>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>7.494</td>\\n\",\n       \"      <td>7.561772</td>\\n\",\n       \"      <td>7.426227</td>\\n\",\n       \"      <td>1.564980</td>\\n\",\n       \"      <td>1.516912</td>\\n\",\n       \"      <td>0.858131</td>\\n\",\n       \"      <td>0.620071</td>\\n\",\n       \"      <td>0.290549</td>\\n\",\n       \"      <td>0.367007</td>\\n\",\n       \"      <td>2.276716</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>Finland</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>7.469</td>\\n\",\n       \"      <td>7.527542</td>\\n\",\n       \"      <td>7.410458</td>\\n\",\n       \"      <td>1.443572</td>\\n\",\n       \"      <td>1.540247</td>\\n\",\n       \"      <td>0.809158</td>\\n\",\n       \"      <td>0.617951</td>\\n\",\n       \"      <td>0.245483</td>\\n\",\n       \"      <td>0.382612</td>\\n\",\n       \"      <td>2.430182</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>Netherlands</td>\\n\",\n       \"      <td>6</td>\\n\",\n       \"      <td>7.377</td>\\n\",\n       \"      <td>7.427426</td>\\n\",\n       \"      <td>7.326574</td>\\n\",\n       \"      <td>1.503945</td>\\n\",\n       \"      <td>1.428939</td>\\n\",\n       \"      <td>0.810696</td>\\n\",\n       \"      <td>0.585384</td>\\n\",\n       \"      <td>0.470490</td>\\n\",\n       \"      <td>0.282662</td>\\n\",\n       \"      <td>2.294804</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>Canada</td>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>7.316</td>\\n\",\n       \"      <td>7.384403</td>\\n\",\n       \"      <td>7.247597</td>\\n\",\n       \"      <td>1.479204</td>\\n\",\n       \"      <td>1.481349</td>\\n\",\n       \"      <td>0.834558</td>\\n\",\n       \"      <td>0.611101</td>\\n\",\n       \"      <td>0.435540</td>\\n\",\n       \"      <td>0.287372</td>\\n\",\n       \"      <td>2.187264</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>New Zealand</td>\\n\",\n       \"      <td>8</td>\\n\",\n       \"      <td>7.314</td>\\n\",\n       \"      <td>7.379510</td>\\n\",\n       \"      <td>7.248490</td>\\n\",\n       \"      <td>1.405706</td>\\n\",\n       \"      <td>1.548195</td>\\n\",\n       \"      <td>0.816760</td>\\n\",\n       \"      <td>0.614062</td>\\n\",\n       \"      <td>0.500005</td>\\n\",\n       \"      <td>0.382817</td>\\n\",\n       \"      <td>2.046456</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>Sweden</td>\\n\",\n       \"      <td>9</td>\\n\",\n       \"      <td>7.284</td>\\n\",\n       \"      <td>7.344095</td>\\n\",\n       \"      <td>7.223905</td>\\n\",\n       \"      <td>1.494387</td>\\n\",\n       \"      <td>1.478162</td>\\n\",\n       \"      <td>0.830875</td>\\n\",\n       \"      <td>0.612924</td>\\n\",\n       \"      <td>0.385399</td>\\n\",\n       \"      <td>0.384399</td>\\n\",\n       \"      <td>2.097538</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>Australia</td>\\n\",\n       \"      <td>10</td>\\n\",\n       \"      <td>7.284</td>\\n\",\n       \"      <td>7.356651</td>\\n\",\n       \"      <td>7.211349</td>\\n\",\n       \"      <td>1.484415</td>\\n\",\n       \"      <td>1.510042</td>\\n\",\n       \"      <td>0.843887</td>\\n\",\n       \"      <td>0.601607</td>\\n\",\n       \"      <td>0.477699</td>\\n\",\n       \"      <td>0.301184</td>\\n\",\n       \"      <td>2.065211</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"       Country  Happiness.Rank  Happiness.Score  Whisker.high  Whisker.low  \\\\\\n\",\n       \"0       Norway               1            7.537      7.594445     7.479556   \\n\",\n       \"1      Denmark               2            7.522      7.581728     7.462272   \\n\",\n       \"2      Iceland               3            7.504      7.622030     7.385970   \\n\",\n       \"3  Switzerland               4            7.494      7.561772     7.426227   \\n\",\n       \"4      Finland               5            7.469      7.527542     7.410458   \\n\",\n       \"5  Netherlands               6            7.377      7.427426     7.326574   \\n\",\n       \"6       Canada               7            7.316      7.384403     7.247597   \\n\",\n       \"7  New Zealand               8            7.314      7.379510     7.248490   \\n\",\n       \"8       Sweden               9            7.284      7.344095     7.223905   \\n\",\n       \"9    Australia              10            7.284      7.356651     7.211349   \\n\",\n       \"\\n\",\n       \"   Economy..GDP.per.Capita.    Family  Health..Life.Expectancy.   Freedom  \\\\\\n\",\n       \"0                  1.616463  1.533524                  0.796667  0.635423   \\n\",\n       \"1                  1.482383  1.551122                  0.792566  0.626007   \\n\",\n       \"2                  1.480633  1.610574                  0.833552  0.627163   \\n\",\n       \"3                  1.564980  1.516912                  0.858131  0.620071   \\n\",\n       \"4                  1.443572  1.540247                  0.809158  0.617951   \\n\",\n       \"5                  1.503945  1.428939                  0.810696  0.585384   \\n\",\n       \"6                  1.479204  1.481349                  0.834558  0.611101   \\n\",\n       \"7                  1.405706  1.548195                  0.816760  0.614062   \\n\",\n       \"8                  1.494387  1.478162                  0.830875  0.612924   \\n\",\n       \"9                  1.484415  1.510042                  0.843887  0.601607   \\n\",\n       \"\\n\",\n       \"   Generosity  Trust..Government.Corruption.  Dystopia.Residual  \\n\",\n       \"0    0.362012                       0.315964           2.277027  \\n\",\n       \"1    0.355280                       0.400770           2.313707  \\n\",\n       \"2    0.475540                       0.153527           2.322715  \\n\",\n       \"3    0.290549                       0.367007           2.276716  \\n\",\n       \"4    0.245483                       0.382612           2.430182  \\n\",\n       \"5    0.470490                       0.282662           2.294804  \\n\",\n       \"6    0.435540                       0.287372           2.187264  \\n\",\n       \"7    0.500005                       0.382817           2.046456  \\n\",\n       \"8    0.385399                       0.384399           2.097538  \\n\",\n       \"9    0.477699                       0.301184           2.065211  \"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/world-happiness-report-2017.csv')\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAl8AAAJOCAYAAACJNWIjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzs3XmYHFW9//H3hyQssoWQiCEhDIob4GUxIly3yKLIYnAHEYgX4aLyEwQVxA0ENXjdcDcCEgRZZBEEF9bIRSGQYBAheFkMEghZgECiiCzf3x/ntKk03TM9M93V3TOf1/PMM9W19beq61SdOufUKUUEZmZmZlaONdodgJmZmdlw4syXmZmZWYmc+TIzMzMrkTNfZmZmZiVy5svMzMysRM58mZmZmZXIma+SSTpe0mntjqNI0h2SptSZNkXSwiZ9zyxJH2rGusyGM0nXS3pXu+OwoUHSXyS9IQ+fLOnMNoc05A2pzJekBZKelLRC0nJJf5B0uKQBb6ekHkkhaWQzYoyIL0fEgDIghe1bKelhSWdKWq8JMW0dEbMGux4bvKrfuPL33XbH1WqSNpV0uqSH8jbfJ+kMSS/P07fM6XBl4fj/paRdq9azsCqNnCFp3TZt0xhJ38sxrZR0t6SvSho92HVHxBsj4qL8PUdI+s3gI7ZOVOecsGkzvyMiXh4R/9vMdVrvhlTmK9snItYHNgemA8cCp7c3pKbaJyLWA7YDtgc+3eZ4rPn2iYj1Cn9HtDugVpI0DrgJWBN4PbA+8Grg98BuxXkr+4R07F8LXCbpA1WrfFue5zXAzrQ4jdS6MZP0AuB3wCRgF9I2vQF4mpR2zfqj+pzwULsDssEZipkvACLi8Yi4DHgfcLCkN0haLGlEZR5J75R0Wx7eUdIcSU/k+b6RZ7s+/1+e7zh2lrSGpM9Kul/SEklnSdowr6dSUnZYvotfJOkThe88QdLZhc8/z3foj+eqhK0b3L6Hgd9SOJFLWkvS1yT9LW/DDyWtk6eNlXR5LhF8VNL/VkoE853Vbnl4nVyi9pikO0kXMArfEZK2LHw+U9LJeXij/B1L8/KXS5rYyPZY3yQdKml+Ltm9U9IOefwrlap0lytVIb+9sMyZufTlirzcbEkvKUz/T0m35OPvFkn/WZg2S6kK4g/52P+lpI0lnZPTyS2SevK835P09ap4L5P08QY27RhgKXBQRNwXyWMRcXpEfK/WAhGxKCK+CZwEfFWSaszzAPAbYJsa+3LtfCwfkY//pZK+VFyPpP9Wqo55NO+/CVXLfljSvcCfa4R4GLAB8O6I+L+8TQ9HxGcqpcySTszfvULS7ZLeVvjuIyRdJem0vK/vkPT6wvQ5kvaT9Brg68Bu+TdamKe/S9Kf8rrvl3RsH7+BdZF8DbowXzuW57T6ysL0syV9R9Jv83FxvaRN8rjl+TyybWH+harR9CQv/+GqcXdK2qelGzgMDNnMV0VE3AwsJJ2AHwHeUph8IHBWHj4VODUiNgBeAlyQx78x/x+d7zhuBKblvzcDLwbWA6qrht4MvDR/37GVzE0Nv87zvRC4FTinke3KmZq3AfcURk8HXkbKkG0JTAA+n6cdQ9oP44BNgOOBWu+W+gJp+18CvBU4uJF4sjWAn5BKHScBT/L8/WIDIOk9wAnAQaSL+tuBRySNAn4JXEk6hv4fcI5ydV22H3AisBHpePlSXucY4Arg28DGwDeAKyRtXLXsgaRj6SXAjaTfeAwwn3S8AMwE9i9k6MeSSq1+1sDm7QZcEgN719nFwHjS8b4aSZNIaeSPvSy/Dym97AjsDxyQl30fcFSevklex9lVy+5NKqHbvsZ6dwMuj4inevnu+cBOwGjSvj8v/yYVbwZuJv02XwcuUVUzg4i4hZS2r87np8rNzhOkG88NgXcBx/VyDrLudDnp2vEi0g3AT6umvw84DhhLOtffREq/GwOXAl9r4DtmAv8uWZb06ry+Xw8ydouIIfMHLAB2qzH+JuAzpCrIc/K4McA/gPH58/WkC9TYqmV7SAfuyMK4a4CPFD6/nFSdMLIw/ysK078KnJ6HTwDOrhP/6Lzshr1s30pgRZ7vGlKmEEDA34GXFObfGfhrHv4iKcFt2dt+A+4D9ihMOwxYWPgcxXUAZwIn14l3O+CxwudZwIfafZx08l/hN15e+DuUVMp5ZI353wA8DKxRGHcucELh9zmtMG1P4K48fCBwc9X6bgSmFX6vzxSmfR34deHzPsC8wuf5wO55+AjgV/3Y5g8VPr8zb/eKyjpImauosex6+Zh8bf68sLD/7idl/teusdzaebkphXFHA1fk4euAAwrTRpHS+CaFZf+zl226EfhsP3/7e4BdC/vvnqrpdwLvyMNzgP0K8/6mj3WfBpzU7uPbf/3/q3FO+EWNeSoZrHXz57OBHxSmfxy4vfB5e2BZ4fPCSloATgbOzMPr5O/cIn/+FvDtdu+TofA35Eu+sgnAo6QDch+lBrjvBf43IhbleQ4hlRrdlatT9u5lfZuSTuwV95MyXpsUxj1QNf15DSQljZA0XdK9kp4gJTJICamefSO1aZsCvKIw7zjgBcDcXKy8nFTlMi5P/x/Syf1KpcbMx/WybdWxN0TSCyT9KFdzPEHK0I5WoarXGrJvRIwu/P0Y2Ay4t8a8mwIPRMRzhXH3k475iocLw/8gZVgqy1b/vtXLLi4MP1njc7EkpniX/AGefydezyOk0isAIuLiiBgNfJLUDqw3lVgfLYzbO++3zSPiiIj4Zy/L10unmwM/LKSlpcAzwMQ6y1ZbbZtqUWqacHvhO3pYPe1Xr7/meaTOut+Yq5qWSXqc9Hv0dl6xzlY8J+ybrx1fzefyJ1hVA1L8jfuTdmuKiCeBC4EP5PP4fjSerq0XQz7zldtETABuiIgHSXek7yTd9f/7IIqIuyNif1LVzSnAhTmTVqsq5CHSybliEunEXDy4N6uaXquB5PuBqaQqig1JJ19IpVi9iojfkUo1KkXHy0gJautCIt0wUsNjImJFRBwTES8mVVkdraonxbJFNWIv+gcpk1fxosLwMaRSwNdGqr6tVNn2uT3WpwdI1X7VHgI20+pP9E4CHmxgndXHcX+WreVsYGpuS/JK4BcNLncN8I5a7bYa8A5S5vKevmaso146fYBUAljMBK8TEXML8/dWTXo1sLektWpNlLQVqarxEGBMzmwuYPW0Ut1est55pFYcPyf9HhMiYsM87HQ4dBxEKsXehXTtqFS7t+I3nkmqjn8LqSbjlhZ8x7AzZDNfkjbIpVfnkar5bs+TzgI+BbyK1F6kMv8HJI3LJQjL8+jnSHe8z5HadlWcC3xc0ha5DcaXgfMj4pnCPJ/LJUFbAx8Ezq8R5vrAU6S75Bfk9fTHt4DdJW2b4/4x8E1JL8zbNEHSW/Pw3kqP6wt4HHg2b1e1C4BPKzWen0hqQ1Q0D3h/vvPaA3hT1fY8SXo4YQyr2gPZ4J0GfELSq5VsKWlzYDYpQ/wpSaNyo9l9SMd9X34FvEzS+yWNzO2ctiK1Jem3iFgI3EK6qbko3zU34mukm56zJL04b98GwLb1FsiNhz8GfBY4NnKdyAAcK2lDpQcHjmBVOv0h8Fmt6upiI/WvX60ZpGrT8yvpTtILJX0x/0brser8soakI1h181WxhaQP5d/mYFLJ+tU1vmsxMEn5qcucEV+XdF75l1JDffcJNrRUXzu+1MLvuoFUAn0KLvVqmqGY+fqlpBWkO9fPkO4uP1iYfgnpbv+SiPhHYfwewB2SVpIa3+8XEU/meb4E/D5XD+wEnEE6CK8H/gr8k+dnUn5Huhu/BvhaRFxZI9azSFUJD5Lac9xUnKjUIWvdho0RsTSvo9Ko/tj8nTflouirSSVRkBpmXk1qO3Aj8P2IuK7Gak/MMf2V1Ii7OrEdSbq4LyfdDRVLN75FaiOwLG+L+x4amF9q9T59LomIn5OOw5+RLuq/IJWY/Iv0e7yNtN+/T3pq8K6+viQiHiE1Gj+GdBL/FKnKbtkgYp9JurFZ7biRdKWkT+XhEXm7ds5xLCE1PH8G+EPevltJbas+WrWelTmN/on0QMg7I+IsGqD05Oe3qkZfAdxGakNVKS0iIs4ltRe7OKelecDufax/gaR98/L/IJX8PkQ6F6wgdZ2xJvDHSA8CnU5qyP8QqTpxXtUqryPtl0dJafudEbGixlf/inQOWSrp/nwjdjjpPPY4qS3bhYU41837sdaDAtYdfkI6bh4C7iClm5bINzZnkR5aa+iBMOubBn7D2L2UHg//74iodRc52HX3kDIuo6pKwsyGPElvJGVgNh9EaVTLSVqbVEq7WS6x6yi5JGzviNij3bGYSfov0k3dlHbHMlQMxZKvXuWqgyB10GhmTaLU7cWRpKcrOzbjZWaNy22fP0KqSrcmGVaZL0mzgB8AH616OszMBkGpg8flpCf8qqv2zKwLSdoLWAL8jdrtlm2AhmW1o5mZmVm7DKuSL7NWUXrlzM2SblN6FcyJefwWSq/0uUfS+ZL66rfKzMyGuFJLvsaOHRs9PT2lfZ8NX3Pnzl0WEeP6nrM5chce60bEytz26QZS+6ejgYsj4jxJPwRui4gf1FuP04iVpew00kxOJ1aWVqWTkc1eYW96enqYM2dOmV9pw5Skhnvmb4bcwHxl/jgq/wWpE8T35/EzSa+Xqpv5chqxspSdRprJ6cTK0qp00nC1Y+6b54+SLs+fXZ1iVpDTyDxSA9WrSK8DWl7ocmQhq7+6p7LcYZLmSJqzdOnS8gI2M7O26E+bryNJL86tOAX4ZkRsCTxGek2G2bAVEc9GxHak18LsSHr3ZiPLzYiIyRExedy4rqwFMjOzfmgo85VfM7MX6RUnlfYtu7Cq1+SZwL6tCNCs20TEclLv5DuTXixeqd6fyMDfm2hmZkNEo22+vkV69cj6+fPGNFCdAqlKBTgMYNKk6nc0Dx89x10xoOUWTN+ryZFYK0gaBzwdEcslrUN6Fc0ppEzYu0nvWjwYuLR9UVqzOD2b9c3ppL4+S76UXk69JCLmDuQLXKViw8R44DpJfyK9XPqqiLic9E6+oyXdQ7ppOb2NMZqZWQdopOTrdcDbJe1JetHtBqQXto6WNDKXfrk6xYa1iPgT8LwXFUfEfaT2X2ZmZkADJV8R8emImBgRPcB+wLURcQCrqlPA1SlmZmZmDRlMD/euTjEzMzPrp351shoRs4BZedjVKWZmZmb95Hc7mpmZmZXImS8zMzOzEpX6bkfrP/eTYtY3pxMz6yYu+TIzMzMrkTNfZmZmZiVy5svMzMysRM58mZmZmZXImS8zMzOzEjnzZWZmZlYiZ77MzKw0kkZI+qOky/PnLSTNlnSPpPMlrdnuGM1azZkvMzMr05HA/MLnU4BvRsSWwGPAIW2JyqxEznyZmVkpJE0E9gJOy58F7AJcmGeZCezbnujMyuPMl5mZleVbwKeA5/LnjYHlEfFM/rwQmFBrQUmHSZojac7SpUtbH6lZC/n1QmY2bA30tUTWf5L2BpZExFxJU/q7fETMAGYATJ48OZocnlmpnPkyM7MyvA54u6Q9gbWBDYBTgdGSRubSr4nAg22M0awUrnY0M7OWi4hPR8TEiOgB9gOujYgDgOuAd+fZDgYubVOIZqVx5svMzNrpWOBoSfeQ2oCd3uZ4zFrO1Y5mZlaqiJgFzMrD9wE7tjMes7L1WfIlaW1JN0u6TdIdkk7M490xnpmZmVk/NVLt+BSwS0RsC2wH7CFpJ9wxnpmZmVm/9Zn5imRl/jgq/wXuGM/MzMys3xpqcJ/fxTUPWAJcBdyLO8YzMzMz67eGMl8R8WxEbEfqg2VH4BWNfkFEzIiIyRExedy4cQMM08zMzGxo6FdXExGxnNQny87kjvHyJHeMZ2ZmZtaARp52HCdpdB5eB9id9EZ6d4xnBkjaTNJ1ku7MTwQfmcePkXSVpLvz/43aHauZmbVfI/18jQdmShpByqxdEBGXS7oTOE/SycAfccd4Nnw9AxwTEbdKWh+YK+kqYBpwTURMl3QccBypQ0kzM6tjoO9cXTB9ryZH0jp9Zr4i4k/A9jXGu2M8MyAiFgGL8vAKSfNJD6BMBabk2WaSOpV05svMbJjz64XMmkhSD+lmZTawSc6YATwMbFJnGT8RbGY2jDjzZdYkktYDLgKOiognitMiIkj94z2Pnwg2Mxte/G7HIWqgdebQXfXmnULSKFLG65yIuDiPXixpfEQskjSe1E+emZkNcy75MhskSSI9cDI/Ir5RmHQZ6Ulg8BPBZmaWueTLbPBeBxwI3J7fBAFwPDAduEDSIcD9wHvbFJ+ZmXUQZ77MBikibgBUZ/KuZcZiZmadz9WOZmZmZiVy5svMzMysRK52NLOOMZindM3MuoVLvszMzMxK5MyXmZmZWYmc+TIzMzMrkTNfZmZmZiVy5svMzMysRM58mZmZmZXImS8zMzOzErmfLzMzM+t6A+0ncMH0vZocSd/6LPmStJmk6yTdKekOSUfm8WMkXSXp7vx/o9aHa2ZmZtbdGin5egY4JiJulbQ+MFfSVcA04JqImC7pOOA44NjWhWpm3cI91ZuZ1ddnyVdELIqIW/PwCmA+MAGYCszMs80E9m1VkGZmZmZDRb8a3EvqAbYHZgObRMSiPOlhYJM6yxwmaY6kOUuXLh1EqGZmZmbdr+HMl6T1gIuAoyLiieK0iAggai0XETMiYnJETB43btyggjUzMzPrdg1lviSNImW8zomIi/PoxZLG5+njgSWtCdHMzMxs6GjkaUcBpwPzI+IbhUmXAQfn4YOBS5sfnpmZmdnQ0sjTjq8DDgRulzQvjzsemA5cIOkQ4H7gva0J0czMzGzo6DPzFRE3AKozedfmhmNmZmY2tLmHezOry/11WbNI2gw4i/RkfAAzIuJUSWOA84EeYAHw3oh4rF1xmpXB73Y0M7MyVDrs3grYCfiopK1IHXRfExEvBa7Jn82GNGe+zMys5dxht9kqznyZmVmp3GG3DXfOfJmZWWncYbeZM19mZlYSd9htljjzZWZmLecOu81WcVcTZkOcu4uwDuEOu80yZ77MmkDSGcDewJKI2CaPc/9FZpk77DZbxdWOZs1xJrBH1Tj3X2RmZs/jki+zJoiI6/Pj80VTgSl5eCYwCzi2tKDMzAbJzRZawyVfZq3j/ovMzOx5nPkyK4H7LzIzswpXO9rzDLSYecH0vZocSddbLGl8RCxy/0VmZlbhzJdZ61T6L5qO+y8yfGNjZomrHc2aQNK5wI3AyyUtzH0WTQd2l3Q3sFv+bGZmw5xLvsyaICL2rzPJ/ReZmdlqXPJlZmZmVqI+S77cc/fq3OeJmZmZDUYjJV9n4p67zczMzJqiz8xXRFwPPFo1eiqpx27y/32bHJeZmZnZkDTQBvcN9dwNqfdu4DCASZMmDfDrrBv4MXozs87kJjOdZdAN7nvruTtPd+/dZmZmZtlAM1+Lc4/duOduMzMzs8YNNPNV6bkb3HO3mZmZWcMa6WriXGAKMFbSQuALpJ66L8i9eN8PvLeVQZqZ22yYmQ0VfWa+hmrP3b6QmZmZWTu4h3szMzOzEjnzZWZmZlYiZ77MzMzMSjTQTlbNzMysZG6vPDS45MvMzMysRM58mZmZmZXImS8zMzOzEnVMmy+/lNnMzIYLt90a3lzyZWZmZlaijin5MjOz2lwzYDa0uOTLzMzMrETOfJmZmZmVyNWO1nauUjEzs+HEJV9mZmZmJXLJl5mZ2QC5ywgbCJd8mZmZmZXImS8zMzOzEg2q2lHSHsCpwAjgtIiY3pSo+sFFvtbpOiGdmHUypxEbbgac+ZI0AvgesDuwELhF0mURcWezgjPrdk4nZr1rdhrx09PWDQZT7bgjcE9E3BcR/wLOA6Y2JyyzIcPpxKx3TiM27Aym2nEC8EDh80LgtdUzSToMOCx/XCnpL4P4zlYaCyxrdxBNMpS2Bepsj07pdZnNWxVMP/WZTvqRRjr1d3VcjSs1pqGSRqD16aSPfdVKnXic1tNNsUKD8bYjnbS8q4mImAHMaPX3DJakORExud1xNMNQ2hYYettTrdE00qn7wXE1rhNj6hbdnk7q6aZ4uylW6Ox4B1Pt+CCwWeHzxDzOzFZxOjHrndOIDTuDyXzdArxU0haS1gT2Ay5rTlhmQ4bTiVnvnEZs2BlwtWNEPCPpCOC3pMeDz4iIO5oWWfk6vmq0H4bStkAXb0+T00mn7gfH1bhOjKmtWnAt6bZ93E3xdlOs0MHxKiLaHYOZmZnZsOEe7s3MzMxK5MyXmZmZWYmGfeZL0hmSlkj6c7tjGSxJm0m6TtKdku6QdGS7YxooSWtLulnSbXlbTmx3TGWRtIekv0i6R9JxNaavJen8PH22pJ4OiWuapKWS5uW/D5UQU6/pV8m3c8x/krRDB8Q0RdLjhf30+VbHNBR1ajqppRPTTm86MV3V07XpLSKG9R/wRmAH4M/tjqUJ2zIe2CEPrw/8H7BVu+Ma4LYIWC8PjwJmAzu1O64StnsEcC/wYmBN4Lbq3xD4CPDDPLwfcH6HxDUN+G7J+6vX9AvsCfw6H087AbM7IKYpwOXtPta6+a9T08kgYi097fQRc8elq0HE2pHpbdiXfEXE9cCj7Y6jGSJiUUTcmodXAPNJvUd3nUhW5o+j8t9weDqkkVetTAVm5uELgV0lqQPiKl0D6XcqcFY+nm4CRksa3+aYbPA6NZ3U0pFppzedmK7q6db0NuwzX0NVLmLfnlRi1JUkjZA0D1gCXBURXbst/VDrVSvVGeh/zxMRzwCPAxt3QFwA78rVEBdK2qzG9LI1GnfZds5V6r+WtHW7g+lCnZpOaunWtNObTk1X9XRcenPmawiStB5wEXBURDzR7ngGKiKejYjtSD1e7yhpm3bHZL36JdATEf8BXMWqUgdb3a3A5hGxLfAd4Bdtjsfaz2mndToyvTnzNcRIGkXKeJ0TERe3O55miIjlwHXAHu2OpQSNvGrl3/NIGglsCDzS7rgi4pGIeCp/PA14dYtjakTHvbomIp6oVKlHxK+AUZLGtjOmLtSp6aSWbk07vem4dFVPp6Y3Z76GkNye4XRgfkR8o93xDIakcZJG5+F1gN2Bu9obVSkaedXKZcDBefjdwLWRW5a2M66qNh9vJ7U5bLfLgIPy01k7AY9HxKJ2BiTpRZW2R5J2JJ2H25Ep6Gadmk5q6da005uOS1f1dGp6G/DrhYYKSeeSnoYYK2kh8IWIOL29UQ3Y64ADgdtzWymA43Nuv9uMB2ZKGkFKLBdExOVtjqnlos6rViR9EZgTEZeRMtg/lXQPqaHpfh0S18ckvR14Jsc1rdVx1Uq/pIcziIgfAr8iPZl1D/AP4IMdENO7gQ9LegZ4EtivTZmCrtWp6WQQsZaednrTiemqnm5Nb369kJmZmVmJXO1oZmZmViJnvrqMpB5JkRuQmlkTSfqhpM+1Ow6zIkmTJK3MzTCGNEkLJO3W7jhazZmvQcgHyZM5UVT+Nm13XGbtImk/pVe5/D2/8mO2pI+0qXPLfouIwyPiJPj3a0kWtjsm6xy1MgZKrwa6oZXfGxF/i4j1IuLZVn5PI3K6eC5f71YovTapbW2+upUzX4O3T04Ulb+HihNdQmXDhaRjgFOB/wFeBGwCHE56EGTNEuNwmjNrrYciYj1gA+DjwI8lvbzNMXUVZ76arFAteIikvwHX5vE7SfqDpOW5p90phWU2lHS6pEWSHpR0cqV4WamX969JWibpPmCvqu/bVNJlkh5VesnpoYVpJ0j6uaSz8x3K7ZJeJunTuVTiAUlvKWXH2JAmaUPgi8BHIuLCiFiRXz3yx4g4ICKeUnrR8dck/U3S4lzFt05efoqkhZKOycfmouLddIPLHivpYeAnefyhOU08mtPIpnm8JH0zf88TOV1sk6edmdPfuqR3121aLNWW9A9JGxfi2kHphcijStrV1sEkHSfp3ny+vVPSOwrTpkn6vaTvKr3o+S5Juxamz5L0FUk35+PyUklj8rTVmpvkeU/K61sh6UoV+q7q43ozTdJ9ebm/Sjogj99S0u9ybMsknd/X9uY0/ivSE5r/UfiOU/P15QlJcyW9oTDtBEkXSDorx3CHpMl19ucrc4z7N/QDdBFnvlrnTcArgbdKmgBcAZwMjAE+AVwkaVye90zSI8Zbkl4J9Bag8lb7Q4G98/jJpMdmi84jvdph0zzty5J2KUzfB/gpsBHwR9LjzmuQXgXxReBHTdlaG+52BtYCLu1lnunAy4DtSMf6BODzhekvInWEOQE4BPiepI36sewYYHPgsJwGvgK8l9Rtyf2ktAIpfb0xr2/DPM9q/f5ExN+Bt5Hv8Aul2rPy/BUHAudFxNO9bLcNH/cCbyAdVycCZ2v1Prxem+cZS+oS4eJKBis7CPgv0jH7DPDtXr7r/aQuHl5IKln+BEBv15t8U/Ft4G0RsT7wn0ClW6KTgCtJ14qJpN7geyVpDaUuMsaSup2ouIWUVscAPwN+LmntwvS3k9LjaFKfYd+tse4dSNer/xcR5/YVS9dp9A3c/qv5tvQFwEpgef77BdBDegH0iwvzHQv8tGrZ35I6ANwEeApYpzBtf+C6PHwtcHhh2lvy+keSehh+Fli/MP0rwJl5+ATSOxEr0/bJ8Y7In9fP6xrd7n3pv+7+Az4APFw17g85XTxJuhn5O/CSwvSdgb/m4Sl5vpGF6UuAnQA1sOy/gLUL008Hvlr4vB7wdE6fuwD/l9e9RlXMZwInF9a7sGr6+4Df5+ERwMPAju3e//4r56/GOX85qZ+rG+rMPw+YmoenAQ+Ru3jK424GDszDs4DphWlb5eN6ROG6MrIw72cL834E+E0e7u16s26O+V0Urjl5nrOAGcDEPvbBFOC5vJ6nSNego/pY5jFg2zx8AnB11XY+WbWPTyQVKkxp92/eqj+XfA3evhExOv/tWxhffOno5sB7chHwcknLgdeT7m42J3UIt6gw7UekuxlIJVrFdd1fGN4UeDQiVlRNL77gdHFh+ElgWaxqtPlk/r9eoxtrVscjpE4O/93eKiL+MyJG52mbAC8A5haO898A44rriPQC5Ip/kI7NcQ0suzQi/ln4vCmFtBLp9SKPABMi4lrSnfb3gCWSZkjaoMFhwPqpAAAgAElEQVTtvBTYStIWpLcuPB4RNze4rA0NxXP+aFLGBwBJB0maVzhOtyGVClU8GDmHkd1POlYrqs/1o6qWL3q4MFxJK9DL9SZSie77SG0xF0m6QtIr8nKfIt3o3JyrAv+rl33wUN72DUglacXaFiR9QtL8XIW5nFQSWNyO6tjX1uptNQ8H/hARs3qJoas589U6xQT2AOlOZHThb92ImJ6nPQWMLUzbICIqb15fxOrv0JpUGH4IGCNp/arpHfmOLRvSbiQdx1PrTF9GyuxvXTjON4zUaLcvjSxb3Vv0Q6SLEAC5umVjctqIiG9HxKtJd90vAz5Z43uf1wN1zuBdQCrpO5BUpW+GpM2BHwNHABvnzMmfSRmaignSak/+TiIdqxXV5/qnScd/f/R2vSEifhsRu5Nu/u/KMRMRD0fEoRGxKfDfwPclbdnbF0V6H+WxwKsk7QuQ23d9ilQ9v1HeD4+z+n7oy+HAJEnf7McyXcWZr3KcDewj6a1KDejXVmokPDHS+7CuBL4uaYNch/4SSW/Ky15AevXExNz+5bjKSiPiAVLVzlfyOv+D1Fbm7HI3z4a7SC8/P5F0wn63pPXzsbwdqarjOdJJ/puSXgipbYqktzaw7oEsey7wQUnbSVoL+DIwOyIWSHqNpNcqNZL/O/DPHF+1xcDGSg8TFJ1FqkJ6O8582SrrkjLsSwGUHhjZpmqeF5LO56MkvYfULrj4+rcPSNpK0gtIbXIvjP53L1H3eiNpE0lT883IU6Qq1OdyvO+RNDGv47G8LbXSxWoi4l/A11nVBnN9Unu1pcBISZ8nlZD1xwpgD+CNkqb3c9mu4MxXCXImaSpwPOmAfIB0p13Z/weRGkzeSTroLyTdlUC66PwWuA24Fbi4avX7k9oDPARcQno35dUt2hSzuiLiq8DRpLvexfnvR6Q74z/k//cAN0l6ArgaaPTx9H4tm9PA54CLSKXHL2HVu/02IKWrx0hVO4+QuseoXsddpEzcfbn6ZtM8/veki9KtEXF/9XI2PEXEnaRMyI2kY/9VwO+rZpsNvJRUmvUl4N0RUXzY46ekdocPA2sDHxtAHL1db9YgpdGHSE8ovgn4cF70NcBsSStJjeCPjIj7AHI15AG9fO0ZpJKqfUjXq9+Q2lXeT7q5eaCXZettx3JS1f7bJJ3U3+U7nd/taGbWT5KuBX4WEae1OxbrDpKmAR+KiNfXmT4LONvH1PDgzgjNzPpB0muAHajfvs3MrFeudjQza5CkmaQqz6OqnjI2M2uYqx3NzMzMSuSSLzMzM7MSldrma+zYsdHT01PmV9owNXfu3GURMa7vOTuL04iVpVvTCDidWHlalU5KzXz19PQwZ86cMr/ShilJXdkFgNOIlaVb0wg4nVh5WpVOXO1oZmZmVqI+M1+5d9ybJd2WO1o7MY/fQtJsSfdIOl/Smq0P18zMzKy7NVLy9RSwS0RsC2wH7CFpJ+AU4JsRsSWpp+hDWhemmZmZ2dDQZ+YrkpX546j8F6S3mF+Yx88E9m1JhGZmZmZDSEMN7iWNAOYCWwLfA+4FlkfEM3mWhcCEOsseBhwGMGnSpMHGayXoOe6KAS23YPpeTY7E2s3HgnWbso/Zbkkj7YjTv0V9DTW4j4hnI2I7YCKwI/CKRr8gImZExOSImDxuXFc+1WxmZmbWNP162jG/Zfw6YGdgtKRKydlE4MEmx2ZmZmY25DTytOM4SaPz8DrA7sB8Uibs3Xm2g4FLWxWkmZl1N0lnSFoi6c+FcSdIelDSvPy3ZztjNCtLIyVf44HrJP0JuAW4KiIuB44FjpZ0D7AxcHrrwjQzsy53JrBHjfHfjIjt8t+vSo7JrC36bHAfEX8Ctq8x/j5S+y8zM7NeRcT1knraHYdZJyj19UJmZmZVjpB0EDAHOCYiHqs1U6ufnB/ok3Ld8n0D1Y44u2XfDIYzX0PUcDh4zazr/QA4idR35EnA14H/qjVjRMwAZgBMnjw5ygrQrBX8bkczM2uLiFicuzJ6Dvgxbspiw4QzX2Zm1haSxhc+vgP4c715zYYSVzuamVnLSToXmAKMlbQQ+AIwRdJ2pGrHBcB/ty1AsxI582VmZi0XEfvXGO0uimxYcrWjmZmZWYmc+TIzMzMrkTNfZk0iaYSkP0q6PH/eQtJsSfdIOl/Smu2O0czM2s+ZL7PmOZL03tOKU0ivTtkSeAw4pC1RmZlZR3Hmy6wJJE0E9gJOy58F7AJcmGeZCezbnujMzKyTOPNl1hzfAj4FPJc/bwwsj4hn8ueFwIRaC0o6TNIcSXOWLl3a+kjNzKytnPkyGyRJewNLImLuQJaPiBkRMTkiJo8bN67J0ZmZWadxP19mg/c64O2S9gTWBjYATgVGSxqZS78mAg+2MUYzM+sQLvkyG6SI+HRETIyIHmA/4NqIOAC4Dnh3nu1g4NI2hWhmZh3EmS+z1jkWOFrSPaQ2YO7N28zMXO1o1kwRMQuYlYfvA3ZsZzxmZtZ5XPJlZmZmViJnvszMzMxK5MyXmZmZWYmc+TIzMzMrkTNfZmZmZiVy5svMzMysRM58mZmZmZXImS8zMzOzErmTVWuanuOuGNByC6bv1eRIzMzMOlefJV+SNpN0naQ7Jd0h6cg8foykqyTdnf9v1PpwzczMzLpbI9WOzwDHRMRWwE7ARyVtBRwHXBMRLwWuyZ/NzMzMrBd9Zr4iYlFE3JqHVwDzgQnAVGBmnm0msG+rgjQzMzMbKvrV4F5SD7A9MBvYJCIW5UkPA5vUWeYwSXMkzVm6dOkgQjUzMzPrfg1nviStB1wEHBURTxSnRUQAUWu5iJgREZMjYvK4ceMGFayZmXUnSWdIWiLpz4Vxbjtsw1JDTztKGkXKeJ0TERfn0YsljY+IRZLGA0taFaSZdRc/+Wo1nAl8FzirMK7Sdni6pOPy52PbEJtZqRp52lHA6cD8iPhGYdJlwMF5+GDg0uaHZ2ZmQ0FEXA88WjXabYdtWGqk2vF1wIHALpLm5b89genA7pLuBnbLn83MzBrVUNthcPthG1r6rHaMiBsA1Zm8a3PDMTOz4SgiQlLNtsN5+gxgBsDkyZPrzmfWDfx6ITMza5fFuc0wbjtsw4kzX2Zm1i5uO2zDkjNfZmbWcpLOBW4EXi5poaRDcNthG6b8Ym0zM2u5iNi/ziS3HbZhxyVfZmZmZiVyyZfZEDfQDk/NzKw1XPJlZmZmViJnvszMzMxK5GrHkvhdd2ZmZgYu+TIzMzMrlTNfZmZmZiVy5svMzMysRG7z1U9lP7Y/HLoJcHs4MzMbTlzyZWZmZlYiZ77MzMzMSuTMl5mZmVmJnPkyMzMzK5EzX2aDJGkzSddJulPSHZKOzOPHSLpK0t35/0btjtXMzNrPmS+zwXsGOCYitgJ2Aj4qaSvgOOCaiHgpcE3+bGZmw5wzX2aDFBGLIuLWPLwCmA9MAKYCM/NsM4F92xOhmZl1Eme+zJpIUg+wPTAb2CQiFuVJDwOb1FnmMElzJM1ZunRpKXGamVn7OPNl1iSS1gMuAo6KiCeK0yIigKi1XETMiIjJETF53LhxJURqZmbt5MyXWRNIGkXKeJ0TERfn0Ysljc/TxwNL2hWfmZl1Dme+zAZJkoDTgfkR8Y3CpMuAg/PwwcClZcdmZmadx+92NBu81wEHArdLmpfHHQ9MBy6QdAhwP/DeNsVnZmYdxJkvs0GKiBsA1Zm8a5mxmJlZ5+uz2lHSGZKWSPpzYZw7jzQzMzMbgEbafJ0J7FE1zp1HmpmZmQ1An5mviLgeeLRqtDuPNDOzppC0QNLtkuZJmtPueMxabaBtvhrqPBJSB5LAYQCTJk0a4NeZWc9xV7Q7hJYb6DYumL5XkyOxNnhzRCxrdxBmZRh0VxO9dR6Zp7sDSTMzM7NsoJkvdx5pZmbNEsCVkubm2pLn8Wu4bCgZaObLnUeamVmzvD4idgDeBnxU0hurZ3Atig0ljXQ1cS5wI/BySQtzh5HTgd0l3Q3slj+bmZn1W0Q8mP8vAS4BdmxvRGat1WeD+4jYv84kdx5pZmaDImldYI2IWJGH3wJ8sc1hmbWUe7g3M7N22gS4JL0ilZHAzyLiN+0Nyay1nPkys67nLiq6V0TcB2zb7jjMyjToribMzMzMrHHOfJmZmZmVyJkvMzMzsxI582VmZmZWIme+zMzMzErkzJeZmZlZiYZtVxMDfTTdzMzMbDBc8mVmZmZWIme+zMzMzErkzJeZmZlZibq+zZfbbpmZmVk3ccmXmZmZWYmc+TIzMzMrUcdUO7r60MzMzIYDl3yZmZmZlciZLzMzM7MSOfNlZmZmViJnvszMzMxK5MyXmZmZWYmc+TIzMzMrkTNfZmZmZiVy5svMzMysRM58mZmZmZWoY3q4NzMr20DfrLFg+l5NjsTMhpNBlXxJ2kPSXyTdI+m4ZgVlNpQ4nZj1zmnEhpsBl3xJGgF8D9gdWAjcIumyiLizWcGZdTunk6Gp7BKzoVxC5zRiw9FgSr52BO6JiPsi4l/AecDU5oRlNmQ4nZj1zmnEhp3BtPmaADxQ+LwQeG31TJIOAw7LH1dK+kud9Y0Flg0injJ1S6zdEicMIFad0uvkzQcTTBP1mU66MI04jgHG0Mcx2/Q4hkoagYbTSSccEwPRjXF3Y8xQI+52pJOWN7iPiBnAjL7mkzQnIia3Op5m6JZYuyVO6K5Ym63b0ojj6KwYOimOVmoknXTrfujGuLsxZuicuAdT7fggsFnh88Q8zsxWcTox653TiA07g8l83QK8VNIWktYE9gMua05YZkOG04lZ75xGbNgZcLVjRDwj6Qjgt8AI4IyIuGMQsfRZ7dJBuiXWbokTuivWhjU5nXTKPnIcq3RCDNA5cfTbEE0j/dWNcXdjzNAhcSsi2h2DmZmZ2bDh1wuZmZmZlciZLzMzM7MSlZ756us1EpLWknR+nj5bUk/ZMeY4+orzaEl3SvqTpGskta3PnEZfzSHpXZJCUtses20kVknvzfv2Dkk/KzvGduuUNNIJaaBTju1OOW4b+E0mSbpO0h/z77JnK+LoNN30eiJJCyTdLmmepDl53BhJV0m6O//fqAPiPEPSEkl/LoyrGaeSb+f9/ydJO3RY3CdIejDv83nFdCHp0znuv0h6a2mBRkRpf6TGlPcCLwbWBG4Dtqqa5yPAD/PwfsD5ZcbYjzjfDLwgD3+4HXE2Gmueb33geuAmYHKnxgq8FPgjsFH+/MJ2xNquv05JI52QBjrl2O6U47bBOGYAH87DWwEL2nEcl/nX6HHSKX/AAmBs1bivAsfl4eOAUzogzjcCOwB/7itOYE/g14CAnYDZHRb3CcAnasy7VT5e1gK2yMfRiDLiLLvkq5HXSEwFZubhC4FdJanEGKGBOCPiuoj4R/54E6lvmnZo9NUcJwGnAP8sM7gqjcR6KPC9iHgMICKWlBxju3VKGumENNApx3anHLeNxBHABnl4Q+ChFsTRaYbC64mKaXomsG8bYwEgIq4HHq0aXS/OqcBZkdwEjJY0vpxIV1cn7nqmAudFxFMR8VfgHtLx1HJlZ75qvUZiQr15IuIZ4HFg41KiqxFDVivOokNIuf526DPWXAS8WUQM7O28zdPIfn0Z8DJJv5d0k6Q9SouuM3RKGumENNApx3anHLeNxHEC8AFJC4FfAf+vBXF0mv4eq+0WwJWS5iq9Mglgk4hYlIcfBjZpT2h9qhdnN/wGR+Qq0TMK1bpti7vlrxca6iR9AJgMvKndsdQiaQ3gG8C0NofSqJGkKpwppJKU6yW9KiKWtzUqq6tdaaDDju1OOW73B86MiK9L2hn4qaRtIuK5kuOw+l4fEQ9KeiFwlaS7ihMjIiR1fB9Q3RJn9gNSCXnk/18H/qudAZVd8tXIayT+PY+kkaSi80dKia5GDFnN111I2g34DPD2iHiqpNiq9RXr+sA2wCxJC0j18Ze1qdF9I/t1IXBZRDydi4H/j3RRGy46JY10QhrolGO7U47bRuI4BLgAICJuBNYmvUh4KOuq1xNFxIP5/xLgElI11+JKNV3+36nNLerF2dG/QUQsjohn803Ij1lVtdi+uEtuCDcSuI/UsK3SMHLrqnk+yuqNiS8oM8Z+xLk9qXHeS8uOr7+xVs0/i/Y1uG9kv+4BzMzDY0lFwhu3cx934D5qeRrphDTQKcd2pxy3Dcbxa2BaHn4lqc2XyjyGy/7r73HS5ljXBdYvDP8hHzv/w+oN2b/a7lhzLD2s3nC9ZpzAXqze4P7mDot7fGH446R2XgBbs3qD+/soqcF9O3bKnqS7wnuBz+RxXyTdOUO6U/s5qeHbzcCL2/Tj9RXn1cBiYF7+u6yNB1qvsVbN25ILVBP3q0hVSXcCtwP7tSvWDt5HpaSRTkgDnXJsd8px20AcWwG/zxeUecBb2n08l/FXa7904h/piczb8t8dhd9wY+Aa4O6crsZ0QKznAouAp0klu4fUizMf/9/L+//2Nl9jasX90xzXn0jvDS1mxj6T4/4L8Lay4vTrhczMzMxK5B7uzczMzErkzJeZmZlZiZz5aoH8io+Vkka0OxazvuTX8mzZy/QF+anGZn7namlE0iaSrpe0QtLXm/ldZmZ9kXSlpAPK+r4hnfmqddGQNE3SDa383oj4W0SsFxHPtvJ7GiXpeEl/zRe7hZLOb3dM1j9lHcuSzpR0chPXN0vSh6rH10gjhwHLgA0i4ph+fsc0Sc/m47v4t2kTNqHfJE3JnZxaL6p+q+ckPVn43NSLoKSTJZ3Zz2U2lPQtSfdL+rukv0n6uaTXNDO2bpOvIVP6mGeCpJ9IeljSE5LmS/qCpHVKCrNXtY6HiHhLRJxTVgxDOvNlIOlg4EBgt4hYj9QZ5jVN/g531muDtTlwZwz8CaAbc2au+DccXq3TtYq/FfA3YJ/CuOddBMs8z0haG7gOeAXpScoNSF13XAC8raw4cixddX6VNBa4kdQFyGsjYgNSdxrjSE979mdda+TOlHsd15Xa/Thrix85XUDKdBTHTQNuyMPHkR4xXUF6RPwdVfP9Hvgu6fUtdwG7FqbPAr5CetT/CeBSVj1220PqSXdkYd6T8vpWAFdSeLEqqV+UPwDLSY8gT6mK47683F+BA/L4LYHf5diWUeelxjn+b/Wyj8YAPyH1B/QY8IvCtENJ3Rk8Sno8d9PCtCD1N3U38Nc87hXAVXn+vwDvbfcxMFT+GjiWNwUuApbm4+Rjhfl2JJ0Ml5Mewf4usGbVb7klqfTpaeBfwErgl4Xv/gTpMe3HgfOBtRuMexbwoRrj/51GgDOrvnc30o1hJX0+Qrro1Xz8vrgfakx7ST4edyjsp6WVNEYv6ThP7y1tPi/tkPpuehJ4Lm/LyvydjfwGh+f0tJz02L4K0w8F5rPqXLUD8Engoqrt/TZwaruP1yYd3yfnY+3cvN3TgLOBEwrz7Ebh5eHA8fn3eIJ0zp4C7J2Prafz7zG3gXgOJ3W2uU4f870emJPTxc2kzAbAAcBNVfN+Erg4D69N6prkAVJ3Ld8np6nKNuVteTgfY5Vxn8rH70PAQYV1nw18B/ht3sbrSa/++U4+nuYD2xbmn0jq4LVyvvho1X4/N69zBfBnVqWfc/Ox/WT+nqNr7JPppJfM1+1frt5+y9NuIF0vb8zf01Nn3EJWT48nk97uAOl8FqR081D++3ieVvN4yN8xLQ+vAXweuJ/UkeyZpFL54roPyjEsJfd91q9jvt2Jrg0JehqrLljvIZ0Y1wDeB/yd3P9Hnu8ZUodso/L0x1mVwZpFSpzbkE64FwFn52k9PD/zdS/p/W/r5M/T87QJpIvLnjmO3fPncXm9TwAvz/OOJ3cemBPBZ/Iya5NeWVFrH3yAdPH5JKnUa0TV9CtIJ7iN8na+KY/fhZSp24HUAd13gOsLywUpozUmb9O6pBPJB0kX1O3z8lu1+zgYCn+9Hcv5GJibTxZrku4u7wPemud7NSkTMTIfm/OBo6p+yy3z8JnAyTW+++acVsbk5Q9vMO5Z9JH5qvW9wJGseln3WsCPgHPrfMc06mS+8vRDSRmWF5AuTl+riq9eOq6bNvtIO1OAhVUxNPIbXA6MBiaRTuh75GnvyTG+htSf0pakksLxpHPW6DzfSNKF4tXtPl6bdHyfTLpI7pP3/zr0kvkidZh5P/Ci/HkLch94FC7MDcZzIXBaH/OMJV0T9s/7/sB8fGwErJd/mxcX5v8j8O48/B1S5mcjUqnar4CTCtv0DPBlUnpepzDuC/lYe3tefyVDcHb+7bcnXQ9+R8pUvR8YQcoQXZXnXYPUB9zxef1b5v2/a2FfPQm8NS/7PxTSF1WZnhr7ZQ7wuYHstzz9hhzPK/O2jqwzrpHM109J6X7b/B1T6h0PrJ75OozUb9wWpDdpXAr8pGrdP8z7egfgKfrZ2XTbE10JCXolKedf+fsH9e+S5wFT8/A0qnqHJl2ADszDs8gZqPx5K9KJYgS1M1+fLcz7EeA3efhY4KdVcfwWOJh0MVgOvIuqOzDgLGAGMLGB/XAAqUO8v+cD8Ng8fjzpLmajGsucTqGXZdLJ5GmgJ38OYJfC9PcB/1u1jh8BX2j3cTAU/no7loHXAn+rmv/TlZNFjXUdBVxS+NxI5usDhc9fJfew30DcsxhY5ms+q5c0j8/H38ga65pGujAV9829VfNcxqpOFteqiq9eOu4tbfaWdqZQlflq8Dd4feHzBazqSfy3wJF11vNr4NA8vDep6rbtx+sAj+9ama9rq8b1lvl6OakUadfq44T+Z75mVR2Pk/Nx9QRwRx73QeAPVcvdUkkrwHnA8Xn4FaQMx9qkzM8/gc0Ly70BuLuwTf9k9ZLR3Ujpf0Rh3KPkzkzzfvlBYdrHgdsLn7cHluXh1wH3VcX9OeDHhX31m8K0/wBWFj73lfn6KzXSfGF6X/vtBuDzVdNrjWsk87VlYfo3gB/VOx5YPfP1O+CwwrStSRmsNQrrflFh+q3kjHWjf91fb9q3fSNidOWPlPEBQNJBkuZJWi5pOenut/getAcj79nsftLdf8UDVdNGUf89ag8Xhv9BysxAuoN9TyWGHMfrSSVwfydlag4HFkm6QtIr8nKfIt0F3yzpDkl1XxIaEedExG6ku+rDgZMkvZX0TqtHI+KxGottmrepso6VpIxb8Y3vxe3fHHht1XYcALyoXlzWb/WO5c2BTav2/fGkagckvUzS5ZXGr6Q76v6+76/e8dsqmwOXFLZnPvAseZtquKm4byLiJVXTf0xK39+J57+Dsl46rps26T3tPE+Dv0G9fbwZqeS8lpmk0m3y/582Ek8XeaDvWZKI+AtwDKnH/yWSzpU00PPPI6TfubLuOTnNvZdUEgtV58jsfladI39GKt2BdC68OCL+STonrgXcVjiuLgdeWFjP4oj4V9W6l8XqD3FVp8PFheEna3wuXnMmVR3Xn2L1c3X1sbgujVtt39XQ136D2r97w8dCnWWqr9+9qY7xflIp4bjKiIgY1DlxOGS+apK0OemEfATpHWyjSXXbKsw2QVLx8yRSaVjFZlXTniZVtfXHA6S76+KFY92ImA4QEb+NiN1JB/NdOWYi4uGIODQiNgX+G/h+b90F5GWejoifk+7+t8nfPUbS6BqzP0RKpABIWpf0aoniS0eLGdMHgN9Vbcd6EfHhfu0NG4gHSO3uivt+/YjYM0//AenYeWmkxq/Hs/pxXhR1xpftAdKrPorbtHbklxL3h6T1gG+RSnNPkDSmapZ66bi3tNlb2qm1D/vzG1R7gNR2rZZfAP8haRtSyVdpT2uVpHpf/p1UjVSxWuYqIs6OiNeRqotGkNrz1VpPX64B9pD0gl7mWe0cmU1i1TnyN6RryKtImbCf5fGLSaWrLy8cVxtGxIbFTelnvP3xAKmUrfp8sU+Dy/cV29XAO6qunUV97bd639GvYyGrTtuV63df21Ad4yTSb7a0j+UaNmwzX6ScfJB3pqQPkjIkRS8EPiZplKT3kOqbf1WY/gFJW+UE+kXgwuh/9xJnA/tIequkEZLWzo+qT1Tq+2hqzvg8RSp2fi7H+x5JE/M6Hsvb8lz1yvNj+HtJWj8/JfI2UhHq7IhYRKq2+L6kjfJ2vjEvei7wQUnbSVqLdKc+OyIW1NmOy4GXSTowr2eUpNdIemU/94f1383ACknHSlonH0fbFB6JX59UXbIyl5z2liFeTD+fSGrAyHxcV/5GNbDMD4Ev5ZskJI2TNHWA338qMCciPkRqp/XDqun10nHdtNlH2lkMbCypeDHtz29Q7TTgE5JerWTLyn7JJSkXki7sN0fE3/qx3m40D9gr7/PxwMcqEyS9UtKb8/nqSVY9+ADpN+npJUNQ7SekDPjFkrbOv/86pOrHisuBrSW9T9JISe8nVUldAZBLri4iVXetC1ybxz9L+k2/lY9r5fP9WwawPwbiRuBfko7Jx/QISa+S9OoGl+/rHPE1UqnuTyRNAsjbd6qkreljv/XDPGC/vI4dgXfWmOdz+Zz4KlJzgUo3S30dD+cCR0vqkbQ+8CVSm9PnXWMHathmviLiTuDrpANxMfAq0tOIRbOBl5IS4ZdIdbqPFKb/lNRW5WFSXf7H6KeIeACYSroTXkq6K/kk6bdZAzialAt/FHgTq07arwFmS1pJas9yZETcB6BUDVnpJ+eJvO6/kdosfBX4cERU+oc6kHSnfxepweZROa6rSe0ALiI9nfUSYL9etmMF8JY8z0N5n5zCqiJ6a5F8Mt8b2I7U3mIZ6eReufh/gtTwdgWp5LS3ft5OB7bK1RG/6Ou7taqz1MpJ9gBJd1TN9gNWXQyfJF3Y+nIq6bi+UtIKUuP71xa+d6WkNxTm31nP7+frNTnDtger0s3RwA5avR+pmum4j7QJ9dPOXaST9315P25K/36D1eTS6i+RMlgrSKVdxdK7maTz12pVjpJOk/TdRr+nS5xJqoK+n1SydF5h2lqk89sy0m+5EemhJEj7e03gUUk3w3ltskEAABxFSURBVPP3j6S/SHofQEQ8STrf/oWUya48Pbkt+TwYEUtJDd+PJVW1fRzYu6oq+mek9loXVN2YH5O34WZSW7ArSdealouIZ0gPkexIamu3jNQ+d4MGV/Fl4MR8bB+VM28rJe2c178M2DnPe0tOv1fl77mvwf3WiM+Q2tItJ12rflZjnhtIDx9dCXwlIq7N4593PFSppNH/ZVVvA0c2EpSkgyXd1ud8qzdpsgpJ00iNBl9fZ/os0lNRp5UZl5k1z1BIxznjexepAfAT7Y7HrN2UmuDcHRGNlnSWbtiWfJmZdTulziaPBs5zxsuse3RVz7lmZpYotQVdTKq+2qPN4ZhZP7ja0czMzKxErnY0MzMzK1Gp1Y5jx46Nnp6eMr/Shqm5c+cui4hxfc/ZWZxGrCzdmkbA6cTK06p0Umrmq6enhzlz5pT5lTZMSaruQbkrOI1YWbo1jYDTiZWnVenE1Y5mZmZmJXLmy8zMzKxEznyZmZmZlcj9fHW4nuP6+7qrZMH0vZocidnQ4/RlFT4WrEwu+TIzMzMrkTNfZmZmZiVy5svMzMysRM58mZmZmZXImS8zMzOzEjnzZWZmZlYiZ77MzMzMSuTMl5mZmVmJnPkyawJJa0u6WdJtku6QdGIev4Wk2ZLukXS+pDXbHauZmbWXM19mzfEUsEtEbAtsB+zx/9u7/2DJyvrO4++PiKjxB4xM2BEYh6wEM3FTohPFsBpWNLJiAamkKNxojSmSqdpVo9FdHd2tdcu4W2O55a/S0kwAGZUFEU1BMIlhR35INrAO6qowISCCjs4wo0BAjRrku3+cc6XnMvfennu7T/96v6q67ulzTnd/T8/9Tn/v8zz9PElOAt4FvLeqng7cC5w7whglSWPA4ksagGr8oL17aHsr4EXAZe3+bcBZIwhPkjRGXNtxSi13nTJwrbLlSnIIcBPwdOBDwDeA+6rqwfaUXcDRB3jcJmATwNq1a7sJVpI0MrZ8SQNSVT+rqmcBxwDPBZ7R5+O2VtWGqtqwevXqocYoSRo9iy9pwKrqPuBq4PnA4UnmWpiPAb4zssAkSWPB4ksagCSrkxzebj8OeAmwk6YI+932tI3A5aOJUJI0LhzzJQ3GGmBbO+7rUcClVXVlkluAS5K8E/gycP4og5QkjZ7FlzQAVfVV4MQD7L+DZvyXJEmA3Y6SJEmdsviSJEnqkMWXJElShyy+JEmdSXJIki8nubK97/qnmjkOuJekjix35YkpW3Xi9TTTsDypvT+3/uklST5Cs/7ph0cVnNQFW74kSZ1IcgxwOnBeez+4/qlm0JLFV5Jjk1yd5JYkNyd5fbt/VZKrktzW/jxi+OFKkibY+4A3Aw+1959CH+ufQrMGapIdSXbs27dv+JFKQ9RPy9eDwJuqaj1wEvCaJOuBzcD2qjoe2N7elyTpEZK8HNhbVTct5/GugappsuSYr6raDexutx9IspPmL5MzgVPa07YB1wBvGUqUkqRJdzJwRpKXAY+lGfP1ftr1T9vWL9c/1Uw4qAH3SdbRzOJ9I3BUW5gB7AGOWuAxm4BNAGvXrl1unGPDAbOSdPCq6q3AWwGSnAL8x6r6vSSfoln/9BJc/1Qzou8B90meAHwaeENV3d97rKoKqAM9zqZiSdIi3gK8McntNGPAXP9UU6+vlq8kh9IUXhdV1Wfa3XcnWVNVu5OsAfYOK0hJ0vSoqmtohqq4/qlmUj/fdgzNXyI7q+o9PYeuoGkiBpuKJUmS+tJPy9fJwKuAryX5SrvvbcAW4NIk5wJ3AWcPJ0RJkqTp0c+3Ha8HssDhUwcbjiRJ0nRzhntJkqQOWXxJkiR1yOJLkiSpQxZfkiRJHbL4kiRJ6pDFlyRJUocsviRJkjp0UAtrS3qkJMcCH6NZXL6ArVX1/iSrgE8C64A7gbOr6t5RxanBWbf5s6MOQdIEs+VLWrkHgTdV1XrgJOA1SdYDm4HtVXU8sL29L0macRZf0gpV1e6q+lK7/QCwEzgaOBPY1p62DThrNBFKksaJ3Y4dmaRuiuXGeueW0wccyeRJsg44EbgROKqqdreH9tB0Sx7oMZuATQBr164dfpCSpJGy5UsakCRPAD4NvKGq7u89VlVFMx7sEapqa1VtqKoNq1ev7iBSSdIo2fIlDUCSQ2kKr4uq6jPt7ruTrKmq3UnWAHtHF6E0Gyapl0Gzy5YvaYWSBDgf2FlV7+k5dAWwsd3eCFzedWySpPFjy5e0cicDrwK+luQr7b63AVuAS5OcC9wFnD2i+CQNiWNktRwWX9IKVdX1QBY4fGqXsUiSxp/djpIkSR2y5UvSxHOQtaRJYvGlgXHsgyRJS7PbUZIkqUMWX5IkSR2y+JIkSerQzI75coCuJEkaBVu+JEmSOmTxJUmS1CGLL0mSpA7N7JgvjQ/nB5MkzRJbviRJkjpk8SVJktQhux0lDZxdyZovybHAx4CjgAK2VtX7k6wCPgmsA+4Ezq6qe0cVp9SFJYuvJBcALwf2VtUz231jkyzO1yVJE+FB4E1V9aUkTwRuSnIV8Gpge1VtSbIZ2Ay8ZYRxSkPXT7fjhcBp8/ZtpkmW44Ht7X1Jkg6oqnZX1Zfa7QeAncDRwJnAtva0bcBZo4lQ6s6SxVdVXQfcM2+3ySJJWpYk64ATgRuBo6pqd3toD0235IEesynJjiQ79u3b10mc0rAsd8B9X8kCJowk6WFJngB8GnhDVd3fe6yqimY82CNU1daq2lBVG1avXt1BpNLwrPjbjoslS3vchJEkkeRQmsLroqr6TLv77iRr2uNrgL2jik/qynKLL5NFktS3JAHOB3ZW1Xt6Dl0BbGy3NwKXdx2b1LXlFl8miyTpYJwMvAp4UZKvtLeXAVuAlyS5DXhxe1+aav1MNXExcApwZJJdwNtpkuPSJOcCdwFnDzNISdJkq6rrgSxw+NQuY5FGbcniq6pescAhk0Wacs6jJ0mD5/JC0gAkuSDJ3iRf79m3KslVSW5rfx4xyhglSePB5YWkwbgQ+CDN8ilz5iYjduZuSftxCa7ZZsuXNABORixJ6pfFlzQ8ztwtSXoEiy+pA87cLUmaY/ElDY+TEUuSHsEB99LwzE1GvAUnI+6LU1tImgW2fEkD0E5G/HfACUl2tRMQO3O3JOkRbPmSBsDJiCVJ/bL4kqacXXmSNF7sdpQkSeqQxZckSVKH7HaUJoTdh5I0HWz5kiRJ6pDFlyRJUofsdpSkMbfcLuc7t5w+4Eg0a1Yy3MHfv4XZ8iVJktQhW74kSZpyfmFnvNjyJUmS1CGLL0mSpA5ZfEmSJHXI4kuSJKlDFl+SJEkdsviSJEnqkMWXJElSh5znS5IkjY1ZWNFhbIovJ4CTJEmzYGyKL0mStDgbKhY2SS1mjvmSJEnqkMWXJElShyy+JEmSOrSi4ivJaUluTXJ7ks2DCkqaJuaJtDhzRLNm2QPukxwCfAh4CbAL+GKSK6rqlkEFJ00680RanDkyvfxywMJW0vL1XOD2qrqjqn4KXAKcOZiwpKlhnkiLM0c0c1Yy1cTRwLd77u8Cnjf/pCSbgE3t3R8kuXUFrzkKRwLfG3UQHZi468y7Fj38tI7CWMqSeXIQOTKO/0bjGBOMZ1ydx7RUjiTZVFVbOwpnIYP+LBnHf/thm7VrHuj1juKzZOjzfLWJPerkXrYkO6pqw6jjGLZZuc5x1G+OjOO/0TjGBOMZ17jGxIT8/zzJeTJss3bN03C9K+l2/A5wbM/9Y9p9kh5mnkiLM0c0c1ZSfH0ROD7JcUkeA5wDXDGYsKSpYZ5IizNHNHOW3e1YVQ8meS3wOeAQ4IKqunlgkY2PiWiSH4BZuc5ODThPxvHfaBxjgvGMy5gOYAifJSO/phGYtWue+OtNVY06BkmSpJnhDPeSJEkdsviSJEnqkMXXIpIckuTLSa4cdSzDlOTwJJcl+fskO5M8f9QxzZqllldJcliST7bHb0yyrufYW9v9tyZ5aYcxvTHJLUm+mmR7kqf1HPtZkq+0t4ENnu4jplcn2dfz2n/Qc2xjktva28YOY3pvTzz/kOS+nmPDep8uSLI3ydcXOJ4kH2hj/mqSZ/ccG8r7NGgryZlJtJJ8nFRLXXPPeb+TpJJMzvQTVeVtgRvwRuB/AVeOOpYhX+c24A/a7ccAh486plm60Qwy/gbwS+37//+A9fPO+Q/AR9rtc4BPttvr2/MPA45rn+eQjmL6N8Dj2+1/PxdTe/8HI3qfXg188ACPXQXc0f48ot0+oouY5p3/OpoB5UN7n9rnfSHwbODrCxx/GfBXQICTgBuH+T6N6HfhgDkzibeV5uMk3vrNLeCJwHXADcCGUcfd782WrwUkOQY4HThv1LEMU5In0/xHfT5AVf20qu5b/FEasH6WVzmTpkgGuAw4NUna/ZdU1U+q6pvA7e3zDT2mqrq6qn7U3r2BZn6mYVrJMjQvBa6qqnuq6l7gKuC0EcT0CuDiAbzuoqrqOuCeRU45E/hYNW4ADk+yhuG9T4O2kpyZROOYj8PWb279CfAu4MddBrdSFl8Lex/wZuChUQcyZMcB+4CPtl2s5yX5hVEHNWMOtLzK0QudU1UPAv8IPKXPxw4rpl7n0rSkzHlskh1Jbkhy1gDiOZiYfqfterksydzknSN/n9puoOOAz/fsHsb71I+F4h7W+zRoK8mZSbTSfJxES15z211+bFVN3AreFl8HkOTlwN6qumnUsXTg0TTdEx+uqhOBHwIL9q1L8yV5JbABeHfP7qdVs/zHvwPel+RfdhTOXwDrqurXaFptti1xfpfOAS6rqp/17BvV+6QptUA+Tp0kjwLeA7xp1LEsh8XXgZ0MnJHkTpqmzhcl+cRoQxqaXcCuqrqxvX8ZTTGm7vSzvMrPz0nyaODJwPf7fOywYiLJi4H/DJxRVT+Z219V32l/3gFcA5zYRUxV9f2eOM4DntPvY4cVU49zmNflOKT3qR8LxT0pS/2sJGcm0YrycUItdc1PBJ4JXNN+Vp8EXDExg+5HPehs3G/AKUz/gPsvACe02/8NePeoY5qlG03r4x00XVJzA0t/dd45r2H/wcOXttu/yv4D7u9gMAPu+4npRJoBscfP238EcFi7fSRwG4sMQh9wTGt6tn8buKHdXgV8s43tiHZ7VRcxtec9A7iTdmLrYb5PPc+/joUH3J/O/gPu/+8w36dB31aSM5N4W0k+Tuqt39zqOf8aJmjA/bKXF9JUeR1wUZp11e4Afn/E8cyUWmB5lSTvAHZU1RU0X4j4eJLbaQZSn9M+9uYklwK3AA8Cr6n9u7WGGdO7gScAn2rHMX+rqs4AfgX40yQP0bSub6mqWzqK6Y+SnEHzXtxD8+1HquqeJH9Cs44gwDuqarEB6YOMCZp/r0uq/ZRoDeV9AkhyMc0fjkcm2QW8HTi0jfkjwF/SfOPxduBHtDk/rPdp0FaSM5Nohfk4kQ4ityaSywtJkiR1yDFfkiRJHbL4WoZ2Jt2nL3Ds95L8TR/PcWGSdw4+OkjyziQXLnL81iQv6PO5diU5ZVCxaTZNes5I0iBZfPHz5Vn+at6+2xbYt+i4gaq6qKp+axhxDkpVnVBVXxh1HJpcs5YzkjRIFl+N64DfSHIIQDvT86HAifP2Pb09d2y0X6GWumbOSNIyWXw1vkjzwfGs9v4LgKuBW+ft+0ZVfbe9/+L2r/r7knxobtmKNAv7Xt9uJ82iunuT3J/ka0meOf/FkzwxydVpFrpNmgVh/2eSbyW5O8lHkjyuPfeUtivwLUn2AB9d4JoOS/KJJA8k+Xr2Xzj3512JSR7fnndfmkVZN7dzpvR6dhv7Pya5OMlhB/PmaipNY870Pv9vJ7m5jfXzSU5o9/9hkj/vOe+bab5ZOHd/94HilaReFl806xkCN9KscUj78wvA9fP29f4F/3Lg14FfA86mWRNtvt9qH/fLNBP8nc28Sf6SPAXYDvxtVf1R+1X0Le1jnkXTcnA08F97HvYvaObjeRqwaYHLOgv4OHA4zXw+H1jgvHcAT6WZE+ilwCsPcM7ZwEtoFjh9DvCqBZ5LM2JKc2bu+X+FJndeB6wG/jfN5I2HAtcCL2wLvmNp5sk6uX3cL9MUpDcv9vySZPH1sGt5+EPjBTQfJF+Yt+/anvO3VNV9VfUtmr/4n8Uj/TPNLLzPoJnWY2dV7e45/tT2OT9VVf8Fmr/8aT4c/riaxW0fAP4H+89R8xDw9moWU/6nha6nqj7Xzvn08QXig+bD7b+31/Jt4IMHOOd9VbWnqr4PXLnIc2m2TFvOzDkHuKKqPl9V/0xT2D0ZeF5V/QPwU+BfAb9JM1/W99J8meA3gevmzeUlSY9g8fWw64B/nWQVsLqqbgP+D824llU0yxj0/hW/p2f7RzST2+2nqj5PU8x8CNibZGuSJ/WccjrwOOAjPftWA48Hbmq7PO4D/rrdP2dfVS21gvv8+BZaLHsN+y9e+u0DnLPktWomTVvOzHkqcFdPTA+x/6K+19JMYPrCdvsamsLrN9m/2JSkA7L4etjf0fx1+4fA3wJU1f3Ad9t9362qbx7sk1bVB6rqOcB6mm6R/9Rz+M9oPiT+MslccfQ94J9ollE4vL09uap6P6gG+Zf1Hpo1s+Ycu9CJ0jzTmjPfpemeBH6+gG/vunJzxddcy961WHxJOggWX622K2IH8EaarpM517f7DvobW0l+Pcnz2rEiPwR+TNP90eu1NIOU/yLJ49q/sv8MeG+SX2yf5+gkBxofMwiXAm9LcniSY2jWQ5OWNMU5cylwRjtQ/1Ca4u8BmjFu0BRYL6bpFt1Dc51n0LTkfXWZrylphlh87e9a4BdpPjzmfKHdt5yvyz+J5kPhXppujO/TrL/1c+34kE003RqXJ3ks8BaaNdduSHI/zYDfExZ6kSS/lOQHSZ66jBjfDtxNs+jv39B88PxkGc+j2TR1OVNVNwMbgQ8D+4DTgDPa8V+06y/+uL1Oqupemvy5vi0EJWlRru2o/SR5HXBWVZ066lgkSZpGtnzNuLZ75jeSPKr9iv0fA3++1OMkSdLyONOzDqPp5llH09VzMfCnowxIkqRpZrejJElSh+x2lCRJ6lCn3Y5HHnlkrVu3rsuX1Iy66aabvldVq5c+c7yYI+rKpOaINA06Lb7WrVvHjh07unxJzagkdy191vgxR9SVSc0RaRrY7ShJktQhiy9JkqQOWXxJkiR1yHm+xty6zZ9d1uPu3HL6gCORxpd5ImmS2PIlSZLUIYsvSZKkDll8SZIkdcjiS5IkqUMWX5IkSR2y+JIkSeqQxZckSVKHnOdL0sxyfjBJo2DLlyRJUocsviRJkjpkt+OUWm53CtilIknSMNnyJUmS1CGLL0mSpA5ZfEmSJHXI4kuSJKlDFl+SJEkdsviSJEnqkMWXJElShyy+JEmSOmTxJUmS1CGLL0mSpA5ZfEmSJHXI4kuSJKlDFl+SJEkdsviSJEnqkMWXJElSh5YsvpIcm+TqJLckuTnJ69v9q5JcleS29ucRww9XGj/miCTpYPTT8vUg8KaqWg+cBLwmyXpgM7C9qo4Htrf3pVlkjkiS+rZk8VVVu6vqS+32A8BO4GjgTGBbe9o24KxhBSmNM3NEknQwHn0wJydZB5wI3AgcVVW720N7gKMWeMwmYBPA2rVrlxunNBHMkca6zZ9d1uPu3HL6gCORpPHT94D7JE8APg28oaru7z1WVQXUgR5XVVurakNVbVi9evWKgpXGmTkiSepHX8VXkkNpPlQuqqrPtLvvTrKmPb4G2DucEKXxZ45IkvrVz7cdA5wP7Kyq9/QcugLY2G5vBC4ffHjS+DNHJEkHo58xXycDrwK+luQr7b63AVuAS5OcC9wFnD2cEKWxZ45Ikvq2ZPFVVdcDWeDwqYMNR5o85ogk6WA4w70kSVKHLL4kSZI6dFDzfGn5ljvvkSRJmi62fEmSJHXI4kuSJKlDFl+SJEkdcszXQXLsliRJWglbviRJkjpk8SVJktQhux0ljQ279SXNAlu+JEmSOmTxJUmS1CGLL0mSpA7N7Jgvx5ZIWq7l/v9x55bTBxyJpElky5ckSVKHLL4kSZI6ZPElSZLUoZkd86WFOZ5FcxwbKUmDZ8uXJElShyy+JEmSOmTxJUmS1CHHfGlgHCsmLc4ckQS2fEmSJHXK4kuSJKlDFl+SJEkdcsyXRs5xMNLizBFputjyJUmS1CGLL0mSpA5NfLejy59IkqRJsmTLV5ILkuxN8vWefauSXJXktvbnEcMNUxpv5okkqV/9dDteCJw2b99mYHtVHQ9sb+9Ls+xCzBNJUh+WLL6q6jrgnnm7zwS2tdvbgLMGHJc0UcwTSVK/ljvg/qiq2t1u7wGOWujEJJuS7EiyY9++fct8OWki9ZUn5ogkzZYVf9uxqgqoRY5vraoNVbVh9erVK305aSItlifmiCTNluUWX3cnWQPQ/tw7uJCkqWGeSJIeYbnF1xXAxnZ7I3D5YMKRpop5Ikl6hCXn+UpyMXAKcGSSXcDbgS3ApUnOBe4Czh5mkNK4G+c8cS48SRovSxZfVfWKBQ6dOuBYpIllnkiS+uXyQpIkSR2y+JIkSeqQxZckSVKHLL4kSZI6ZPElSZLUIYsvSZKkDll8SZIkdcjiS5IkqUMWX5IkSR2y+JIkSeqQxZckSVKHLL4kSZI6ZPElSZLUIYsvSZKkDll8SZIkdcjiS5IkqUMWX5IkSR2y+JIkSeqQxZckSVKHLL4kSZI6ZPElSZLUIYsvSZKkDll8SZIkdcjiS5IkqUOPHnUAc9Zt/uyoQ5DGmjkiSdPBli9JkqQOWXxJkiR1yOJLkiSpQxZfkiRJHVpR8ZXktCS3Jrk9yeZBBSVNE/NEktRr2cVXkkOADwH/FlgPvCLJ+kEFJk0D80SSNN9KWr6eC9xeVXdU1U+BS4AzBxOWNDXME0nSflYyz9fRwLd77u8Cnjf/pCSbgE3t3R8kuXUFrzlsRwLfG3UQHZro6827Fj38tI7CWMqSeTJhOdKPif696tNEXOOE5Ig0c4Y+yWpVbQW2Dvt1BiHJjqraMOo4ujJr1zuuJilH+jELv1ezcI2Shmcl3Y7fAY7tuX9Mu0/Sw8wTSdJ+VlJ8fRE4PslxSR4DnANcMZiwpKlhnkiS9rPsbseqejDJa4HPAYcAF1TVzQOLbDSmpuunT7N2vZ2b0jxZyiz8Xs3CNUoaklTVqGOQJEmaGc5wL0mS1CGLL0mSpA5ZfPVIckiSLye5ctSxDFOSw5NcluTvk+xM8vxRx6TpMe15ZP5IWqmhz/M1YV4P7ASeNOpAhuz9wF9X1e+238B7/KgD0lSZ9jwyfyStiC1frSTHAKcD5406lmFK8mTghcD5AFX106q6b7RRaVpMex6ZP5IGweLrYe8D3gw8NOpAhuw4YB/w0bZr6LwkvzDqoDQ1pj2PzB9JK2bxBSR5ObC3qm4adSwdeDTwbODDVXUi8ENg82hD0jSYkTwyfyStmMVX42TgjCR3ApcAL0ryidGGNDS7gF1VdWN7/zKaDxNppWYhj8wfSStm8QVU1Vur6piqWkez/Mvnq+qVIw5rKKpqD/DtJCe0u04FbhlhSJoSs5BH5o+kQfDbjrPpdcBF7Te17gB+f8TxSJPE/JG0Ii4vJEmS1CG7HSVJkjpk8SVJktQhiy9JkqQOWXxJkiR1yOJLkiSpQxZfkiRJHbL4kiRJ6tD/B6Jp1EKouXHcAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 12 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Print histograms for each feature to see how they vary.\\n\",\n    \"histohrams = data.hist(grid=False, figsize=(10, 10))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Split the Data Into Training and Test Sets\\n\",\n    \"\\n\",\n    \"In this step we will split our dataset into _training_ and _testing_ subsets (in proportion 80/20%).\\n\",\n    \"\\n\",\n    \"Training data set will be used for training of our linear model. Testing dataset will be used for validating of the model. All data from testing dataset will be new to model and we may check how accurate are model predictions.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Split data set on training and test sets with proportions 80/20.\\n\",\n    \"# Function sample() returns a random sample of items.\\n\",\n    \"train_data = data.sample(frac=0.8)\\n\",\n    \"test_data = data.drop(train_data.index)\\n\",\n    \"\\n\",\n    \"# Decide what fields we want to process.\\n\",\n    \"input_param_name_1 = 'Economy..GDP.per.Capita.'\\n\",\n    \"input_param_name_2 = 'Freedom'\\n\",\n    \"output_param_name = 'Happiness.Score'\\n\",\n    \"\\n\",\n    \"# Split training set input and output.\\n\",\n    \"x_train = train_data[[input_param_name_1, input_param_name_2]].values\\n\",\n    \"y_train = train_data[[output_param_name]].values\\n\",\n    \"\\n\",\n    \"# Split test set input and output.\\n\",\n    \"x_test = test_data[[input_param_name_1, input_param_name_2]].values\\n\",\n    \"y_test = test_data[[output_param_name]].values\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's visualize the training and test datasets to see the shape of the data.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.plotly.v1+json\": {\n       \"data\": [\n        {\n         \"marker\": {\n          \"line\": {\n           \"color\": \"rgb(255, 255, 255)\",\n           \"width\": 1\n          },\n          \"opacity\": 1,\n          \"size\": 10\n         },\n         \"mode\": \"markers\",\n         \"name\": \"Training Set\",\n         \"type\": \"scatter3d\",\n         \"uid\": \"b2ccc8e3-f5b5-4efb-af5c-e982a479b71b\",\n         \"x\": [\n          1.1027104854583702,\n          1.3208793401718102,\n          0.7922212481498722,\n          0.39724862575531,\n          0.9097844958305359,\n          1.1893955469131499,\n          0.401477217674255,\n          1.06457793712616,\n          0.479820191860199,\n          0.368745893239975,\n          1.00985014438629,\n          0.381430715322495,\n          1.07062232494354,\n          1.12786877155304,\n          0.6364067792892459,\n          0.564305365085602,\n          0.932537317276001,\n          1.28948748111725,\n          1.29178786277771,\n          1.00726580619812,\n          0.8584281802177429,\n          0.30544471740722695,\n          1.1018030643463101,\n          1.63295245170593,\n          0.7288706302642819,\n          1.49438726902008,\n          1.8707656860351598,\n          1.3469113111496,\n          0,\n          1.05469870567322,\n          0.951484382152557,\n          0.5916834473609921,\n          0.982409417629242,\n          1.15687310695648,\n          1.4637807607650801,\n          1.48238301277161,\n          1.69227766990662,\n          0.43108540773391707,\n          1.3753824234008798,\n          0.0921023488044739,\n          1.12112903594971,\n          0.786441087722778,\n          1.00082039833069,\n          0.24454993009567302,\n          0.36711055040359497,\n          0.511135876178741,\n          1.41691517829895,\n          1.4870972633361799,\n          1.1531838178634601,\n          0.7268835306167599,\n          1.1073532104492199,\n          0.11904179304838199,\n          1.2860119342803997,\n          1.15655755996704,\n          0.716249227523804,\n          1.22255623340607,\n          0.667224824428558,\n          0.368610262870789,\n          1.0352252721786501,\n          0.995538592338562,\n          1.74194359779358,\n          1.6263433694839498,\n          1.12209415435791,\n          0.6595166921615601,\n          1.5649795532226598,\n          1.4844149351120002,\n          0.925579309463501,\n          1.2175596952438401,\n          1.36135590076447,\n          1.23374843597412,\n          1.12843120098114,\n          1.28177809715271,\n          1.29121541976929,\n          1.07498753070831,\n          0.85769921541214,\n          1.480633020401,\n          1.1536017656326298,\n          0.6484572887420649,\n          0.89465194940567,\n          0.872001945972443,\n          0.950612664222717,\n          1.43092346191406,\n          1.1614590883255,\n          1.10970628261566,\n          1.21768391132355,\n          0.8089642524719242,\n          0.9910123944282528,\n          0.305808693170547,\n          1.3412059545516999,\n          0.37584653496742204,\n          0.339233845472336,\n          1.40570604801178,\n          1.0272358655929599,\n          0.900596737861633,\n          1.1982743740081798,\n          1.40167844295502,\n          1.3559380769729599,\n          0.560479462146759,\n          1.07937383651733,\n          1.48792338371277,\n          1.3145823478698702,\n          0.996192753314972,\n          1.3950666189193701,\n          0.964434325695038,\n          1.25278460979462,\n          1.55167484283447,\n          1.50394463539124,\n          1.44163393974304,\n          1.18529546260834,\n          1.54625928401947,\n          1.5357066392898602,\n          1.1307767629623402,\n          0.6017650961875921,\n          0.524713635444641,\n          0.7885475754737851,\n          0.0226431842893362,\n          1.44357192516327,\n          1.53062355518341,\n          0.730573117733002,\n          1.1982102394104,\n          0.737299203872681,\n          1.08116579055786,\n          1.2845562696456898,\n          0.233442038297653\n         ],\n         \"y\": [\n          0.288555532693863,\n          0.479131430387497,\n          0.469987004995346,\n          0.147062435746193,\n          0.432452529668808,\n          0.491247326135635,\n          0.106179520487785,\n          0.325905978679657,\n          0.44030594825744607,\n          0.5818438529968261,\n          0.561213254928589,\n          0.443185955286026,\n          0.47748741507530196,\n          0.580200731754303,\n          0.461603492498398,\n          0.430388748645782,\n          0.473507791757584,\n          0.0957312509417534,\n          0.520342111587524,\n          0.289680689573288,\n          0,\n          0.38042613863945,\n          0.465733230113983,\n          0.49633759260177596,\n          0.24072904884815197,\n          0.612924098968506,\n          0.604130983352661,\n          0.47120362520217896,\n          0.270842045545578,\n          0.479246735572815,\n          0.260287940502167,\n          0.24946372210979503,\n          0.204403176903725,\n          0.24932260811328896,\n          0.5397707223892211,\n          0.626006722450256,\n          0.549840569496155,\n          0.42596277594566295,\n          0.40598860383033797,\n          0.235961347818375,\n          0.194989055395126,\n          0.6582486629486078,\n          0.4551981985569,\n          0.348587512969971,\n          0.514492034912109,\n          0.390017777681351,\n          0.505625545978546,\n          0.567766189575195,\n          0.412730008363724,\n          0.23521526157856,\n          0.437453746795654,\n          0.33288118243217496,\n          0.17586351931095098,\n          0.295400261878967,\n          0.25471106171608,\n          0.255772292613983,\n          0.423026293516159,\n          0.0303698573261499,\n          0.45000287890434293,\n          0.443323463201523,\n          0.59662789106369,\n          0.60834527015686,\n          0.505196332931519,\n          0.0149958552792668,\n          0.620070576667786,\n          0.601607382297516,\n          0.474307239055634,\n          0.5793922543525699,\n          0.518630743026733,\n          0.550026834011078,\n          0.15399712324142498,\n          0.373783111572266,\n          0.40226498246192893,\n          0.28851598501205394,\n          0.585214674472809,\n          0.6271626353263849,\n          0.39815583825111406,\n          0.0960980430245399,\n          0.12297477573156401,\n          0.5313106179237371,\n          0.309410035610199,\n          0.470222115516663,\n          0.28923171758651695,\n          0.580131649971008,\n          0.457003742456436,\n          0.4350258708000179,\n          0.418421149253845,\n          0.18919676542282102,\n          0.572575807571411,\n          0.336384207010269,\n          0.408842742443085,\n          0.6140621304512021,\n          0.39414396882057207,\n          0.198303267359734,\n          0.300740599632263,\n          0.257921665906906,\n          0.35511153936386103,\n          0.45276376605033897,\n          0.55258983373642,\n          0.562511384487152,\n          0.234231784939766,\n          0.381498634815216,\n          0.256450712680817,\n          0.520303547382355,\n          0.376895278692245,\n          0.490968644618988,\n          0.5853844881057739,\n          0.508190035820007,\n          0.49451920390129106,\n          0.505740523338318,\n          0.5731103420257571,\n          0.41827192902565,\n          0.633375823497772,\n          0.47156670689582797,\n          0.571055591106415,\n          0.602126955986023,\n          0.6179508566856379,\n          0.449750572443008,\n          0.348079860210419,\n          0.31232857704162603,\n          0.447551846504211,\n          0.47278770804405196,\n          0.43745428323745705,\n          0.466914653778076\n         ],\n         \"z\": [\n          4.49700021743774,\n          5.61100006103516,\n          4.31500005722046,\n          3.5910000801086404,\n          6.002999782562259,\n          5.62900018692017,\n          3.7939999103546103,\n          5.175000190734861,\n          4.961999893188481,\n          3.47099995613098,\n          4.44000005722046,\n          4.08099985122681,\n          6.35699987411499,\n          6.4239997863769505,\n          4.513999938964839,\n          4.69500017166138,\n          5.493000030517581,\n          5.2270002365112305,\n          5.97300004959106,\n          4.80499982833862,\n          3.79500007629395,\n          3.4949998855590803,\n          5.525000095367429,\n          6.10500001907349,\n          5.837999820709231,\n          7.28399991989136,\n          6.375,\n          5.80999994277954,\n          2.69300007820129,\n          4.8289999961853,\n          5.27899980545044,\n          3.59299993515015,\n          5.18200016021729,\n          4.69199991226196,\n          6.89099979400635,\n          7.52199983596802,\n          6.57200002670288,\n          3.65700006484985,\n          7.212999820709231,\n          4.2800002098083505,\n          5.23699998855591,\n          5.97100019454956,\n          6.00799989700317,\n          3.50699996948242,\n          4.54500007629395,\n          3.34899997711182,\n          5.92000007629395,\n          7.00600004196167,\n          6.57800006866455,\n          5.26900005340576,\n          6.6350002288818395,\n          3.5329999923706095,\n          5.32399988174438,\n          5.5689997673034695,\n          4.77500009536743,\n          5.2930002212524405,\n          4.11999988555908,\n          3.6029999256133998,\n          5.71500015258789,\n          5.26200008392334,\n          6.86299991607666,\n          6.6479997634887695,\n          3.7660000324249303,\n          4.138999938964839,\n          7.49399995803833,\n          7.28399991989136,\n          5.31099987030029,\n          6.4539999961853,\n          6.1680002212524405,\n          6.4520001411438,\n          5.25,\n          5.962999820709231,\n          6.08400011062622,\n          5.22499990463257,\n          5.42999982833862,\n          7.50400018692017,\n          5.234000205993651,\n          4.29199981689453,\n          4.09600019454956,\n          6.4539999961853,\n          4.28599977493286,\n          6.44199991226196,\n          4.71400022506714,\n          7.0789999961853,\n          5.824999809265139,\n          4.29099988937378,\n          5.33599996566772,\n          3.64400005340576,\n          5.75799989700317,\n          3.875,\n          4.46000003814697,\n          7.31400012969971,\n          4.95499992370605,\n          4.37599992752075,\n          5.5,\n          5.837999820709231,\n          5.62099981307983,\n          4.55299997329712,\n          5.230000019073491,\n          6.9510002136230495,\n          5.90199995040894,\n          4.64400005340576,\n          5.96400022506714,\n          4.57399988174438,\n          6.65199995040894,\n          5.47200012207031,\n          7.3769998550415,\n          6.71400022506714,\n          6.59899997711182,\n          6.993000030517581,\n          6.9770002365112305,\n          5.82200002670288,\n          4.1680002212524405,\n          5.04099988937378,\n          5.07399988174438,\n          5.151000022888179,\n          7.468999862670901,\n          6.343999862670901,\n          5.1810002326965305,\n          4.46500015258789,\n          6.07100009918213,\n          5.2729997634887695,\n          5.8189997673034695,\n          3.97000002861023\n         ]\n        },\n        {\n         \"marker\": {\n          \"line\": {\n           \"color\": \"rgb(255, 255, 255)\",\n           \"width\": 1\n          },\n          \"opacity\": 1,\n          \"size\": 10\n         },\n         \"mode\": \"markers\",\n         \"name\": \"Test Set\",\n         \"type\": \"scatter3d\",\n         \"uid\": \"297d492d-6698-40a5-843b-cf6b403a4442\",\n         \"x\": [\n          1.6164631843566901,\n          1.47920441627502,\n          1.35268235206604,\n          1.34327983856201,\n          1.4336265325546298,\n          1.38439786434174,\n          1.32539355754852,\n          1.4884122610092199,\n          0.907975316047668,\n          1.09186446666718,\n          1.26074862480164,\n          0.833756566047668,\n          1.06931757926941,\n          0.8781145811080929,\n          1.3151752948761002,\n          0.783756256103516,\n          0.885416388511658,\n          0.5962200760841371,\n          0.989701807498932,\n          0.36842092871666,\n          0.586682975292206,\n          0.23430564999580397,\n          0.479309022426605,\n          0.476180493831635,\n          0.6030489206314089,\n          0.35022771358490007,\n          0.16192533075809498,\n          0.43801298737525896,\n          0.521021246910095,\n          0.777153134346008,\n          0.09162256866693501\n         ],\n         \"y\": [\n          0.635422587394714,\n          0.611100912094116,\n          0.49094617366790794,\n          0.588767051696777,\n          0.361466586589813,\n          0.408781230449677,\n          0.295817464590073,\n          0.536746919155121,\n          0.5475093722343439,\n          0.233335807919502,\n          0.32570791244506797,\n          0.5587329268455511,\n          0.20871552824974102,\n          0.408158332109451,\n          0.498465299606323,\n          0.394952565431595,\n          0.5015376806259161,\n          0.454943388700485,\n          0.28211015462875394,\n          0.318697690963745,\n          0.478356659412384,\n          0.48079109191894503,\n          0.37792226672172496,\n          0.306613743305206,\n          0.4477061927318571,\n          0.32436785101890603,\n          0.36365869641304,\n          0.16234202682972002,\n          0.390661299228668,\n          0.0815394446253777,\n          0.0599007532000542\n         ],\n         \"z\": [\n          7.537000179290769,\n          7.31599998474121,\n          6.60900020599365,\n          6.52699995040894,\n          6.42199993133545,\n          6.40299987792969,\n          6.09800004959106,\n          6.08699989318848,\n          5.955999851226809,\n          5.872000217437741,\n          5.849999904632571,\n          5.82299995422363,\n          5.39499998092651,\n          5.2350001335144,\n          5.19500017166138,\n          5.07399988174438,\n          5.01100015640259,\n          5.0040001869201705,\n          4.7350001335144,\n          4.70900011062622,\n          4.60799980163574,\n          4.550000190734861,\n          4.53499984741211,\n          4.19000005722046,\n          4.17999982833862,\n          4.03200006484985,\n          4.02799987792969,\n          3.9360001087188703,\n          3.80800008773804,\n          3.46199989318848,\n          2.90499997138977\n         ]\n        }\n       ],\n       \"layout\": {\n        \"margin\": {\n         \"b\": 0,\n         \"l\": 0,\n         \"r\": 0,\n         \"t\": 0\n        },\n        \"scene\": {\n         \"xaxis\": {\n          \"title\": \"Economy..GDP.per.Capita.\"\n         },\n         \"yaxis\": {\n          \"title\": \"Freedom\"\n         },\n         \"zaxis\": {\n          \"title\": \"Happiness.Score\"\n         }\n        },\n        \"title\": \"Date Sets\"\n       }\n      },\n      \"text/html\": [\n       \"<div id=\\\"911be003-54d2-4fce-84da-252a449843ad\\\" style=\\\"height: 525px; width: 100%;\\\" class=\\\"plotly-graph-div\\\"></div><script type=\\\"text/javascript\\\">require([\\\"plotly\\\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {};window.PLOTLYENV.BASE_URL=\\\"https://plot.ly\\\";Plotly.newPlot(\\\"911be003-54d2-4fce-84da-252a449843ad\\\", [{\\\"marker\\\": {\\\"line\\\": {\\\"color\\\": \\\"rgb(255, 255, 255)\\\", \\\"width\\\": 1}, \\\"opacity\\\": 1, \\\"size\\\": 10}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Training Set\\\", \\\"x\\\": [1.1027104854583702, 1.3208793401718102, 0.7922212481498722, 0.39724862575531, 0.9097844958305359, 1.1893955469131499, 0.401477217674255, 1.06457793712616, 0.479820191860199, 0.368745893239975, 1.00985014438629, 0.381430715322495, 1.07062232494354, 1.12786877155304, 0.6364067792892459, 0.564305365085602, 0.932537317276001, 1.28948748111725, 1.29178786277771, 1.00726580619812, 0.8584281802177429, 0.30544471740722695, 1.1018030643463101, 1.63295245170593, 0.7288706302642819, 1.49438726902008, 1.8707656860351598, 1.3469113111496, 0.0, 1.05469870567322, 0.951484382152557, 0.5916834473609921, 0.982409417629242, 1.15687310695648, 1.4637807607650801, 1.48238301277161, 1.69227766990662, 0.43108540773391707, 1.3753824234008798, 0.0921023488044739, 1.12112903594971, 0.786441087722778, 1.00082039833069, 0.24454993009567302, 0.36711055040359497, 0.511135876178741, 1.41691517829895, 1.4870972633361799, 1.1531838178634601, 0.7268835306167599, 1.1073532104492199, 0.11904179304838199, 1.2860119342803997, 1.15655755996704, 0.716249227523804, 1.22255623340607, 0.667224824428558, 0.368610262870789, 1.0352252721786501, 0.995538592338562, 1.74194359779358, 1.6263433694839498, 1.12209415435791, 0.6595166921615601, 1.5649795532226598, 1.4844149351120002, 0.925579309463501, 1.2175596952438401, 1.36135590076447, 1.23374843597412, 1.12843120098114, 1.28177809715271, 1.29121541976929, 1.07498753070831, 0.85769921541214, 1.480633020401, 1.1536017656326298, 0.6484572887420649, 0.89465194940567, 0.872001945972443, 0.950612664222717, 1.43092346191406, 1.1614590883255, 1.10970628261566, 1.21768391132355, 0.8089642524719242, 0.9910123944282528, 0.305808693170547, 1.3412059545516999, 0.37584653496742204, 0.339233845472336, 1.40570604801178, 1.0272358655929599, 0.900596737861633, 1.1982743740081798, 1.40167844295502, 1.3559380769729599, 0.560479462146759, 1.07937383651733, 1.48792338371277, 1.3145823478698702, 0.996192753314972, 1.3950666189193701, 0.964434325695038, 1.25278460979462, 1.55167484283447, 1.50394463539124, 1.44163393974304, 1.18529546260834, 1.54625928401947, 1.5357066392898602, 1.1307767629623402, 0.6017650961875921, 0.524713635444641, 0.7885475754737851, 0.0226431842893362, 1.44357192516327, 1.53062355518341, 0.730573117733002, 1.1982102394104, 0.737299203872681, 1.08116579055786, 1.2845562696456898, 0.233442038297653], \\\"y\\\": [0.288555532693863, 0.479131430387497, 0.469987004995346, 0.147062435746193, 0.432452529668808, 0.491247326135635, 0.106179520487785, 0.325905978679657, 0.44030594825744607, 0.5818438529968261, 0.561213254928589, 0.443185955286026, 0.47748741507530196, 0.580200731754303, 0.461603492498398, 0.430388748645782, 0.473507791757584, 0.0957312509417534, 0.520342111587524, 0.289680689573288, 0.0, 0.38042613863945, 0.465733230113983, 0.49633759260177596, 0.24072904884815197, 0.612924098968506, 0.604130983352661, 0.47120362520217896, 0.270842045545578, 0.479246735572815, 0.260287940502167, 0.24946372210979503, 0.204403176903725, 0.24932260811328896, 0.5397707223892211, 0.626006722450256, 0.549840569496155, 0.42596277594566295, 0.40598860383033797, 0.235961347818375, 0.194989055395126, 0.6582486629486078, 0.4551981985569, 0.348587512969971, 0.514492034912109, 0.390017777681351, 0.505625545978546, 0.567766189575195, 0.412730008363724, 0.23521526157856, 0.437453746795654, 0.33288118243217496, 0.17586351931095098, 0.295400261878967, 0.25471106171608, 0.255772292613983, 0.423026293516159, 0.0303698573261499, 0.45000287890434293, 0.443323463201523, 0.59662789106369, 0.60834527015686, 0.505196332931519, 0.0149958552792668, 0.620070576667786, 0.601607382297516, 0.474307239055634, 0.5793922543525699, 0.518630743026733, 0.550026834011078, 0.15399712324142498, 0.373783111572266, 0.40226498246192893, 0.28851598501205394, 0.585214674472809, 0.6271626353263849, 0.39815583825111406, 0.0960980430245399, 0.12297477573156401, 0.5313106179237371, 0.309410035610199, 0.470222115516663, 0.28923171758651695, 0.580131649971008, 0.457003742456436, 0.4350258708000179, 0.418421149253845, 0.18919676542282102, 0.572575807571411, 0.336384207010269, 0.408842742443085, 0.6140621304512021, 0.39414396882057207, 0.198303267359734, 0.300740599632263, 0.257921665906906, 0.35511153936386103, 0.45276376605033897, 0.55258983373642, 0.562511384487152, 0.234231784939766, 0.381498634815216, 0.256450712680817, 0.520303547382355, 0.376895278692245, 0.490968644618988, 0.5853844881057739, 0.508190035820007, 0.49451920390129106, 0.505740523338318, 0.5731103420257571, 0.41827192902565, 0.633375823497772, 0.47156670689582797, 0.571055591106415, 0.602126955986023, 0.6179508566856379, 0.449750572443008, 0.348079860210419, 0.31232857704162603, 0.447551846504211, 0.47278770804405196, 0.43745428323745705, 0.466914653778076], \\\"z\\\": [4.49700021743774, 5.61100006103516, 4.31500005722046, 3.5910000801086404, 6.002999782562259, 5.62900018692017, 3.7939999103546103, 5.175000190734861, 4.961999893188481, 3.47099995613098, 4.44000005722046, 4.08099985122681, 6.35699987411499, 6.4239997863769505, 4.513999938964839, 4.69500017166138, 5.493000030517581, 5.2270002365112305, 5.97300004959106, 4.80499982833862, 3.79500007629395, 3.4949998855590803, 5.525000095367429, 6.10500001907349, 5.837999820709231, 7.28399991989136, 6.375, 5.80999994277954, 2.69300007820129, 4.8289999961853, 5.27899980545044, 3.59299993515015, 5.18200016021729, 4.69199991226196, 6.89099979400635, 7.52199983596802, 6.57200002670288, 3.65700006484985, 7.212999820709231, 4.2800002098083505, 5.23699998855591, 5.97100019454956, 6.00799989700317, 3.50699996948242, 4.54500007629395, 3.34899997711182, 5.92000007629395, 7.00600004196167, 6.57800006866455, 5.26900005340576, 6.6350002288818395, 3.5329999923706095, 5.32399988174438, 5.5689997673034695, 4.77500009536743, 5.2930002212524405, 4.11999988555908, 3.6029999256133998, 5.71500015258789, 5.26200008392334, 6.86299991607666, 6.6479997634887695, 3.7660000324249303, 4.138999938964839, 7.49399995803833, 7.28399991989136, 5.31099987030029, 6.4539999961853, 6.1680002212524405, 6.4520001411438, 5.25, 5.962999820709231, 6.08400011062622, 5.22499990463257, 5.42999982833862, 7.50400018692017, 5.234000205993651, 4.29199981689453, 4.09600019454956, 6.4539999961853, 4.28599977493286, 6.44199991226196, 4.71400022506714, 7.0789999961853, 5.824999809265139, 4.29099988937378, 5.33599996566772, 3.64400005340576, 5.75799989700317, 3.875, 4.46000003814697, 7.31400012969971, 4.95499992370605, 4.37599992752075, 5.5, 5.837999820709231, 5.62099981307983, 4.55299997329712, 5.230000019073491, 6.9510002136230495, 5.90199995040894, 4.64400005340576, 5.96400022506714, 4.57399988174438, 6.65199995040894, 5.47200012207031, 7.3769998550415, 6.71400022506714, 6.59899997711182, 6.993000030517581, 6.9770002365112305, 5.82200002670288, 4.1680002212524405, 5.04099988937378, 5.07399988174438, 5.151000022888179, 7.468999862670901, 6.343999862670901, 5.1810002326965305, 4.46500015258789, 6.07100009918213, 5.2729997634887695, 5.8189997673034695, 3.97000002861023], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"b2ccc8e3-f5b5-4efb-af5c-e982a479b71b\\\"}, {\\\"marker\\\": {\\\"line\\\": {\\\"color\\\": \\\"rgb(255, 255, 255)\\\", \\\"width\\\": 1}, \\\"opacity\\\": 1, \\\"size\\\": 10}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Test Set\\\", \\\"x\\\": [1.6164631843566901, 1.47920441627502, 1.35268235206604, 1.34327983856201, 1.4336265325546298, 1.38439786434174, 1.32539355754852, 1.4884122610092199, 0.907975316047668, 1.09186446666718, 1.26074862480164, 0.833756566047668, 1.06931757926941, 0.8781145811080929, 1.3151752948761002, 0.783756256103516, 0.885416388511658, 0.5962200760841371, 0.989701807498932, 0.36842092871666, 0.586682975292206, 0.23430564999580397, 0.479309022426605, 0.476180493831635, 0.6030489206314089, 0.35022771358490007, 0.16192533075809498, 0.43801298737525896, 0.521021246910095, 0.777153134346008, 0.09162256866693501], \\\"y\\\": [0.635422587394714, 0.611100912094116, 0.49094617366790794, 0.588767051696777, 0.361466586589813, 0.408781230449677, 0.295817464590073, 0.536746919155121, 0.5475093722343439, 0.233335807919502, 0.32570791244506797, 0.5587329268455511, 0.20871552824974102, 0.408158332109451, 0.498465299606323, 0.394952565431595, 0.5015376806259161, 0.454943388700485, 0.28211015462875394, 0.318697690963745, 0.478356659412384, 0.48079109191894503, 0.37792226672172496, 0.306613743305206, 0.4477061927318571, 0.32436785101890603, 0.36365869641304, 0.16234202682972002, 0.390661299228668, 0.0815394446253777, 0.0599007532000542], \\\"z\\\": [7.537000179290769, 7.31599998474121, 6.60900020599365, 6.52699995040894, 6.42199993133545, 6.40299987792969, 6.09800004959106, 6.08699989318848, 5.955999851226809, 5.872000217437741, 5.849999904632571, 5.82299995422363, 5.39499998092651, 5.2350001335144, 5.19500017166138, 5.07399988174438, 5.01100015640259, 5.0040001869201705, 4.7350001335144, 4.70900011062622, 4.60799980163574, 4.550000190734861, 4.53499984741211, 4.19000005722046, 4.17999982833862, 4.03200006484985, 4.02799987792969, 3.9360001087188703, 3.80800008773804, 3.46199989318848, 2.90499997138977], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"297d492d-6698-40a5-843b-cf6b403a4442\\\"}], {\\\"margin\\\": {\\\"b\\\": 0, \\\"l\\\": 0, \\\"r\\\": 0, \\\"t\\\": 0}, \\\"scene\\\": {\\\"xaxis\\\": {\\\"title\\\": \\\"Economy..GDP.per.Capita.\\\"}, \\\"yaxis\\\": {\\\"title\\\": \\\"Freedom\\\"}, \\\"zaxis\\\": {\\\"title\\\": \\\"Happiness.Score\\\"}}, \\\"title\\\": \\\"Date Sets\\\"}, {\\\"showLink\\\": true, \\\"linkText\\\": \\\"Export to plot.ly\\\"})});</script><script type=\\\"text/javascript\\\">window.addEventListener(\\\"resize\\\", function(){window._Plotly.Plots.resize(document.getElementById(\\\"911be003-54d2-4fce-84da-252a449843ad\\\"));});</script>\"\n      ],\n      \"text/vnd.plotly.v1+html\": [\n       \"<div id=\\\"911be003-54d2-4fce-84da-252a449843ad\\\" style=\\\"height: 525px; width: 100%;\\\" class=\\\"plotly-graph-div\\\"></div><script type=\\\"text/javascript\\\">require([\\\"plotly\\\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {};window.PLOTLYENV.BASE_URL=\\\"https://plot.ly\\\";Plotly.newPlot(\\\"911be003-54d2-4fce-84da-252a449843ad\\\", [{\\\"marker\\\": {\\\"line\\\": {\\\"color\\\": \\\"rgb(255, 255, 255)\\\", \\\"width\\\": 1}, \\\"opacity\\\": 1, \\\"size\\\": 10}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Training Set\\\", \\\"x\\\": [1.1027104854583702, 1.3208793401718102, 0.7922212481498722, 0.39724862575531, 0.9097844958305359, 1.1893955469131499, 0.401477217674255, 1.06457793712616, 0.479820191860199, 0.368745893239975, 1.00985014438629, 0.381430715322495, 1.07062232494354, 1.12786877155304, 0.6364067792892459, 0.564305365085602, 0.932537317276001, 1.28948748111725, 1.29178786277771, 1.00726580619812, 0.8584281802177429, 0.30544471740722695, 1.1018030643463101, 1.63295245170593, 0.7288706302642819, 1.49438726902008, 1.8707656860351598, 1.3469113111496, 0.0, 1.05469870567322, 0.951484382152557, 0.5916834473609921, 0.982409417629242, 1.15687310695648, 1.4637807607650801, 1.48238301277161, 1.69227766990662, 0.43108540773391707, 1.3753824234008798, 0.0921023488044739, 1.12112903594971, 0.786441087722778, 1.00082039833069, 0.24454993009567302, 0.36711055040359497, 0.511135876178741, 1.41691517829895, 1.4870972633361799, 1.1531838178634601, 0.7268835306167599, 1.1073532104492199, 0.11904179304838199, 1.2860119342803997, 1.15655755996704, 0.716249227523804, 1.22255623340607, 0.667224824428558, 0.368610262870789, 1.0352252721786501, 0.995538592338562, 1.74194359779358, 1.6263433694839498, 1.12209415435791, 0.6595166921615601, 1.5649795532226598, 1.4844149351120002, 0.925579309463501, 1.2175596952438401, 1.36135590076447, 1.23374843597412, 1.12843120098114, 1.28177809715271, 1.29121541976929, 1.07498753070831, 0.85769921541214, 1.480633020401, 1.1536017656326298, 0.6484572887420649, 0.89465194940567, 0.872001945972443, 0.950612664222717, 1.43092346191406, 1.1614590883255, 1.10970628261566, 1.21768391132355, 0.8089642524719242, 0.9910123944282528, 0.305808693170547, 1.3412059545516999, 0.37584653496742204, 0.339233845472336, 1.40570604801178, 1.0272358655929599, 0.900596737861633, 1.1982743740081798, 1.40167844295502, 1.3559380769729599, 0.560479462146759, 1.07937383651733, 1.48792338371277, 1.3145823478698702, 0.996192753314972, 1.3950666189193701, 0.964434325695038, 1.25278460979462, 1.55167484283447, 1.50394463539124, 1.44163393974304, 1.18529546260834, 1.54625928401947, 1.5357066392898602, 1.1307767629623402, 0.6017650961875921, 0.524713635444641, 0.7885475754737851, 0.0226431842893362, 1.44357192516327, 1.53062355518341, 0.730573117733002, 1.1982102394104, 0.737299203872681, 1.08116579055786, 1.2845562696456898, 0.233442038297653], \\\"y\\\": [0.288555532693863, 0.479131430387497, 0.469987004995346, 0.147062435746193, 0.432452529668808, 0.491247326135635, 0.106179520487785, 0.325905978679657, 0.44030594825744607, 0.5818438529968261, 0.561213254928589, 0.443185955286026, 0.47748741507530196, 0.580200731754303, 0.461603492498398, 0.430388748645782, 0.473507791757584, 0.0957312509417534, 0.520342111587524, 0.289680689573288, 0.0, 0.38042613863945, 0.465733230113983, 0.49633759260177596, 0.24072904884815197, 0.612924098968506, 0.604130983352661, 0.47120362520217896, 0.270842045545578, 0.479246735572815, 0.260287940502167, 0.24946372210979503, 0.204403176903725, 0.24932260811328896, 0.5397707223892211, 0.626006722450256, 0.549840569496155, 0.42596277594566295, 0.40598860383033797, 0.235961347818375, 0.194989055395126, 0.6582486629486078, 0.4551981985569, 0.348587512969971, 0.514492034912109, 0.390017777681351, 0.505625545978546, 0.567766189575195, 0.412730008363724, 0.23521526157856, 0.437453746795654, 0.33288118243217496, 0.17586351931095098, 0.295400261878967, 0.25471106171608, 0.255772292613983, 0.423026293516159, 0.0303698573261499, 0.45000287890434293, 0.443323463201523, 0.59662789106369, 0.60834527015686, 0.505196332931519, 0.0149958552792668, 0.620070576667786, 0.601607382297516, 0.474307239055634, 0.5793922543525699, 0.518630743026733, 0.550026834011078, 0.15399712324142498, 0.373783111572266, 0.40226498246192893, 0.28851598501205394, 0.585214674472809, 0.6271626353263849, 0.39815583825111406, 0.0960980430245399, 0.12297477573156401, 0.5313106179237371, 0.309410035610199, 0.470222115516663, 0.28923171758651695, 0.580131649971008, 0.457003742456436, 0.4350258708000179, 0.418421149253845, 0.18919676542282102, 0.572575807571411, 0.336384207010269, 0.408842742443085, 0.6140621304512021, 0.39414396882057207, 0.198303267359734, 0.300740599632263, 0.257921665906906, 0.35511153936386103, 0.45276376605033897, 0.55258983373642, 0.562511384487152, 0.234231784939766, 0.381498634815216, 0.256450712680817, 0.520303547382355, 0.376895278692245, 0.490968644618988, 0.5853844881057739, 0.508190035820007, 0.49451920390129106, 0.505740523338318, 0.5731103420257571, 0.41827192902565, 0.633375823497772, 0.47156670689582797, 0.571055591106415, 0.602126955986023, 0.6179508566856379, 0.449750572443008, 0.348079860210419, 0.31232857704162603, 0.447551846504211, 0.47278770804405196, 0.43745428323745705, 0.466914653778076], \\\"z\\\": [4.49700021743774, 5.61100006103516, 4.31500005722046, 3.5910000801086404, 6.002999782562259, 5.62900018692017, 3.7939999103546103, 5.175000190734861, 4.961999893188481, 3.47099995613098, 4.44000005722046, 4.08099985122681, 6.35699987411499, 6.4239997863769505, 4.513999938964839, 4.69500017166138, 5.493000030517581, 5.2270002365112305, 5.97300004959106, 4.80499982833862, 3.79500007629395, 3.4949998855590803, 5.525000095367429, 6.10500001907349, 5.837999820709231, 7.28399991989136, 6.375, 5.80999994277954, 2.69300007820129, 4.8289999961853, 5.27899980545044, 3.59299993515015, 5.18200016021729, 4.69199991226196, 6.89099979400635, 7.52199983596802, 6.57200002670288, 3.65700006484985, 7.212999820709231, 4.2800002098083505, 5.23699998855591, 5.97100019454956, 6.00799989700317, 3.50699996948242, 4.54500007629395, 3.34899997711182, 5.92000007629395, 7.00600004196167, 6.57800006866455, 5.26900005340576, 6.6350002288818395, 3.5329999923706095, 5.32399988174438, 5.5689997673034695, 4.77500009536743, 5.2930002212524405, 4.11999988555908, 3.6029999256133998, 5.71500015258789, 5.26200008392334, 6.86299991607666, 6.6479997634887695, 3.7660000324249303, 4.138999938964839, 7.49399995803833, 7.28399991989136, 5.31099987030029, 6.4539999961853, 6.1680002212524405, 6.4520001411438, 5.25, 5.962999820709231, 6.08400011062622, 5.22499990463257, 5.42999982833862, 7.50400018692017, 5.234000205993651, 4.29199981689453, 4.09600019454956, 6.4539999961853, 4.28599977493286, 6.44199991226196, 4.71400022506714, 7.0789999961853, 5.824999809265139, 4.29099988937378, 5.33599996566772, 3.64400005340576, 5.75799989700317, 3.875, 4.46000003814697, 7.31400012969971, 4.95499992370605, 4.37599992752075, 5.5, 5.837999820709231, 5.62099981307983, 4.55299997329712, 5.230000019073491, 6.9510002136230495, 5.90199995040894, 4.64400005340576, 5.96400022506714, 4.57399988174438, 6.65199995040894, 5.47200012207031, 7.3769998550415, 6.71400022506714, 6.59899997711182, 6.993000030517581, 6.9770002365112305, 5.82200002670288, 4.1680002212524405, 5.04099988937378, 5.07399988174438, 5.151000022888179, 7.468999862670901, 6.343999862670901, 5.1810002326965305, 4.46500015258789, 6.07100009918213, 5.2729997634887695, 5.8189997673034695, 3.97000002861023], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"b2ccc8e3-f5b5-4efb-af5c-e982a479b71b\\\"}, {\\\"marker\\\": {\\\"line\\\": {\\\"color\\\": \\\"rgb(255, 255, 255)\\\", \\\"width\\\": 1}, \\\"opacity\\\": 1, \\\"size\\\": 10}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Test Set\\\", \\\"x\\\": [1.6164631843566901, 1.47920441627502, 1.35268235206604, 1.34327983856201, 1.4336265325546298, 1.38439786434174, 1.32539355754852, 1.4884122610092199, 0.907975316047668, 1.09186446666718, 1.26074862480164, 0.833756566047668, 1.06931757926941, 0.8781145811080929, 1.3151752948761002, 0.783756256103516, 0.885416388511658, 0.5962200760841371, 0.989701807498932, 0.36842092871666, 0.586682975292206, 0.23430564999580397, 0.479309022426605, 0.476180493831635, 0.6030489206314089, 0.35022771358490007, 0.16192533075809498, 0.43801298737525896, 0.521021246910095, 0.777153134346008, 0.09162256866693501], \\\"y\\\": [0.635422587394714, 0.611100912094116, 0.49094617366790794, 0.588767051696777, 0.361466586589813, 0.408781230449677, 0.295817464590073, 0.536746919155121, 0.5475093722343439, 0.233335807919502, 0.32570791244506797, 0.5587329268455511, 0.20871552824974102, 0.408158332109451, 0.498465299606323, 0.394952565431595, 0.5015376806259161, 0.454943388700485, 0.28211015462875394, 0.318697690963745, 0.478356659412384, 0.48079109191894503, 0.37792226672172496, 0.306613743305206, 0.4477061927318571, 0.32436785101890603, 0.36365869641304, 0.16234202682972002, 0.390661299228668, 0.0815394446253777, 0.0599007532000542], \\\"z\\\": [7.537000179290769, 7.31599998474121, 6.60900020599365, 6.52699995040894, 6.42199993133545, 6.40299987792969, 6.09800004959106, 6.08699989318848, 5.955999851226809, 5.872000217437741, 5.849999904632571, 5.82299995422363, 5.39499998092651, 5.2350001335144, 5.19500017166138, 5.07399988174438, 5.01100015640259, 5.0040001869201705, 4.7350001335144, 4.70900011062622, 4.60799980163574, 4.550000190734861, 4.53499984741211, 4.19000005722046, 4.17999982833862, 4.03200006484985, 4.02799987792969, 3.9360001087188703, 3.80800008773804, 3.46199989318848, 2.90499997138977], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"297d492d-6698-40a5-843b-cf6b403a4442\\\"}], {\\\"margin\\\": {\\\"b\\\": 0, \\\"l\\\": 0, \\\"r\\\": 0, \\\"t\\\": 0}, \\\"scene\\\": {\\\"xaxis\\\": {\\\"title\\\": \\\"Economy..GDP.per.Capita.\\\"}, \\\"yaxis\\\": {\\\"title\\\": \\\"Freedom\\\"}, \\\"zaxis\\\": {\\\"title\\\": \\\"Happiness.Score\\\"}}, \\\"title\\\": \\\"Date Sets\\\"}, {\\\"showLink\\\": true, \\\"linkText\\\": \\\"Export to plot.ly\\\"})});</script><script type=\\\"text/javascript\\\">window.addEventListener(\\\"resize\\\", function(){window._Plotly.Plots.resize(document.getElementById(\\\"911be003-54d2-4fce-84da-252a449843ad\\\"));});</script>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Configure the plot with training dataset.\\n\",\n    \"plot_training_trace = go.Scatter3d(\\n\",\n    \"    x=x_train[:, 0].flatten(),\\n\",\n    \"    y=x_train[:, 1].flatten(),\\n\",\n    \"    z=y_train.flatten(),\\n\",\n    \"    name='Training Set',\\n\",\n    \"    mode='markers',\\n\",\n    \"    marker={\\n\",\n    \"        'size': 10,\\n\",\n    \"        'opacity': 1,\\n\",\n    \"        'line': {\\n\",\n    \"            'color': 'rgb(255, 255, 255)',\\n\",\n    \"            'width': 1\\n\",\n    \"        },\\n\",\n    \"    }\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Configure the plot with test dataset.\\n\",\n    \"plot_test_trace = go.Scatter3d(\\n\",\n    \"    x=x_test[:, 0].flatten(),\\n\",\n    \"    y=x_test[:, 1].flatten(),\\n\",\n    \"    z=y_test.flatten(),\\n\",\n    \"    name='Test Set',\\n\",\n    \"    mode='markers',\\n\",\n    \"    marker={\\n\",\n    \"        'size': 10,\\n\",\n    \"        'opacity': 1,\\n\",\n    \"        'line': {\\n\",\n    \"            'color': 'rgb(255, 255, 255)',\\n\",\n    \"            'width': 1\\n\",\n    \"        },\\n\",\n    \"    }\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Configure the layout.\\n\",\n    \"plot_layout = go.Layout(\\n\",\n    \"    title='Date Sets',\\n\",\n    \"    scene={\\n\",\n    \"        'xaxis': {'title': input_param_name_1},\\n\",\n    \"        'yaxis': {'title': input_param_name_2},\\n\",\n    \"        'zaxis': {'title': output_param_name} \\n\",\n    \"    },\\n\",\n    \"    margin={'l': 0, 'r': 0, 'b': 0, 't': 0}\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"plot_data = [plot_training_trace, plot_test_trace]\\n\",\n    \"\\n\",\n    \"plot_figure = go.Figure(data=plot_data, layout=plot_layout)\\n\",\n    \"\\n\",\n    \"# Render 3D scatter plot.\\n\",\n    \"plotly.offline.iplot(plot_figure)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train Linear Regression Model\\n\",\n    \"\\n\",\n    \"> ☝🏻This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"- `polynomial_degree` - this parameter will allow you to add additional polynomial features of certain degree. More features - more curved the line will be.\\n\",\n    \"- `num_iterations` - this is the number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `learning_rate` - this is the size of the gradient descent step. Small learning step will make algorithm work longer and will probably require more iterations to reach the minimum of the cost function. Big learning steps may couse missing the minimum and growth of the cost function value with new iterations.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `polynomial_degree` - the degree of additional polynomial features (`x1^2 * x2, x1^2 * x2^2, ...`). This will allow you to curve the predictions.\\n\",\n    \"- `sinusoid_degree` - the degree of sinusoid parameter multipliers of additional features (`sin(x), sin(2*x), ...`). This will allow you to curve the predictions by adding sinusoidal component to the prediction curve.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Initial cost: 224369.59\\n\",\n      \"Optimized cost: 2761.58\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Model Parameters</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>5.393174</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>0.765539</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>0.357765</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   Model Parameters\\n\",\n       \"0          5.393174\\n\",\n       \"1          0.765539\\n\",\n       \"2          0.357765\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Set up linear regression parameters.\\n\",\n    \"num_iterations = 500  # Number of gradient descent iterations.\\n\",\n    \"regularization_param = 0  # Helps to fight model overfitting.\\n\",\n    \"learning_rate = 0.01  # The size of the gradient descent step.\\n\",\n    \"polynomial_degree = 0  # The degree of additional polynomial features.\\n\",\n    \"sinusoid_degree = 0  # The degree of sinusoid parameter multipliers of additional features.\\n\",\n    \"\\n\",\n    \"# Init linear regression instance.\\n\",\n    \"linear_regression = LinearRegression(x_train, y_train, polynomial_degree, sinusoid_degree)\\n\",\n    \"\\n\",\n    \"# Train linear regression.\\n\",\n    \"(theta, cost_history) = linear_regression.train(\\n\",\n    \"    learning_rate,\\n\",\n    \"    regularization_param,\\n\",\n    \"    num_iterations\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Print training results.\\n\",\n    \"print('Initial cost: {:.2f}'.format(cost_history[0]))\\n\",\n    \"print('Optimized cost: {:.2f}'.format(cost_history[-1]))\\n\",\n    \"\\n\",\n    \"# Print model parameters\\n\",\n    \"theta_table = pd.DataFrame({'Model Parameters': theta.flatten()})\\n\",\n    \"theta_table.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Analyze Gradient Descent Progress\\n\",\n    \"\\n\",\n    \"The plot below illustrates how the cost function value changes over each iteration. You should see it decreasing. \\n\",\n    \"\\n\",\n    \"In case if cost function value increases it may mean that gradient descent missed the cost function minimum and with each step it goes further away from it. In this case you might want to reduce the learning rate parameter (the size of the gradient step).\\n\",\n    \"\\n\",\n    \"From this plot you may also get an understanding of how many iterations you need to get an optimal value of the cost function. In current example you may see that there is no much sense to increase the number of gradient descent iterations over 500 since it will not reduce cost function significantly.  \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Plot gradient descent progress.\\n\",\n    \"plt.plot(range(num_iterations), cost_history)\\n\",\n    \"plt.xlabel('Iterations')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.title('Gradient Descent Progress')\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Model Predictions\\n\",\n    \"\\n\",\n    \"Since our model is trained now we may plot its predictions over the training and test datasets to see how well it fits the data.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.plotly.v1+json\": {\n       \"data\": [\n        {\n         \"marker\": {\n          \"line\": {\n           \"color\": \"rgb(255, 255, 255)\",\n           \"width\": 1\n          },\n          \"opacity\": 1,\n          \"size\": 10\n         },\n         \"mode\": \"markers\",\n         \"name\": \"Training Set\",\n         \"type\": \"scatter3d\",\n         \"uid\": \"5121ac59-e6e4-4c30-8d0c-c3482182891a\",\n         \"x\": [\n          1.1027104854583702,\n          1.3208793401718102,\n          0.7922212481498722,\n          0.39724862575531,\n          0.9097844958305359,\n          1.1893955469131499,\n          0.401477217674255,\n          1.06457793712616,\n          0.479820191860199,\n          0.368745893239975,\n          1.00985014438629,\n          0.381430715322495,\n          1.07062232494354,\n          1.12786877155304,\n          0.6364067792892459,\n          0.564305365085602,\n          0.932537317276001,\n          1.28948748111725,\n          1.29178786277771,\n          1.00726580619812,\n          0.8584281802177429,\n          0.30544471740722695,\n          1.1018030643463101,\n          1.63295245170593,\n          0.7288706302642819,\n          1.49438726902008,\n          1.8707656860351598,\n          1.3469113111496,\n          0,\n          1.05469870567322,\n          0.951484382152557,\n          0.5916834473609921,\n          0.982409417629242,\n          1.15687310695648,\n          1.4637807607650801,\n          1.48238301277161,\n          1.69227766990662,\n          0.43108540773391707,\n          1.3753824234008798,\n          0.0921023488044739,\n          1.12112903594971,\n          0.786441087722778,\n          1.00082039833069,\n          0.24454993009567302,\n          0.36711055040359497,\n          0.511135876178741,\n          1.41691517829895,\n          1.4870972633361799,\n          1.1531838178634601,\n          0.7268835306167599,\n          1.1073532104492199,\n          0.11904179304838199,\n          1.2860119342803997,\n          1.15655755996704,\n          0.716249227523804,\n          1.22255623340607,\n          0.667224824428558,\n          0.368610262870789,\n          1.0352252721786501,\n          0.995538592338562,\n          1.74194359779358,\n          1.6263433694839498,\n          1.12209415435791,\n          0.6595166921615601,\n          1.5649795532226598,\n          1.4844149351120002,\n          0.925579309463501,\n          1.2175596952438401,\n          1.36135590076447,\n          1.23374843597412,\n          1.12843120098114,\n          1.28177809715271,\n          1.29121541976929,\n          1.07498753070831,\n          0.85769921541214,\n          1.480633020401,\n          1.1536017656326298,\n          0.6484572887420649,\n          0.89465194940567,\n          0.872001945972443,\n          0.950612664222717,\n          1.43092346191406,\n          1.1614590883255,\n          1.10970628261566,\n          1.21768391132355,\n          0.8089642524719242,\n          0.9910123944282528,\n          0.305808693170547,\n          1.3412059545516999,\n          0.37584653496742204,\n          0.339233845472336,\n          1.40570604801178,\n          1.0272358655929599,\n          0.900596737861633,\n          1.1982743740081798,\n          1.40167844295502,\n          1.3559380769729599,\n          0.560479462146759,\n          1.07937383651733,\n          1.48792338371277,\n          1.3145823478698702,\n          0.996192753314972,\n          1.3950666189193701,\n          0.964434325695038,\n          1.25278460979462,\n          1.55167484283447,\n          1.50394463539124,\n          1.44163393974304,\n          1.18529546260834,\n          1.54625928401947,\n          1.5357066392898602,\n          1.1307767629623402,\n          0.6017650961875921,\n          0.524713635444641,\n          0.7885475754737851,\n          0.0226431842893362,\n          1.44357192516327,\n          1.53062355518341,\n          0.730573117733002,\n          1.1982102394104,\n          0.737299203872681,\n          1.08116579055786,\n          1.2845562696456898,\n          0.233442038297653\n         ],\n         \"y\": [\n          0.288555532693863,\n          0.479131430387497,\n          0.469987004995346,\n          0.147062435746193,\n          0.432452529668808,\n          0.491247326135635,\n          0.106179520487785,\n          0.325905978679657,\n          0.44030594825744607,\n          0.5818438529968261,\n          0.561213254928589,\n          0.443185955286026,\n          0.47748741507530196,\n          0.580200731754303,\n          0.461603492498398,\n          0.430388748645782,\n          0.473507791757584,\n          0.0957312509417534,\n          0.520342111587524,\n          0.289680689573288,\n          0,\n          0.38042613863945,\n          0.465733230113983,\n          0.49633759260177596,\n          0.24072904884815197,\n          0.612924098968506,\n          0.604130983352661,\n          0.47120362520217896,\n          0.270842045545578,\n          0.479246735572815,\n          0.260287940502167,\n          0.24946372210979503,\n          0.204403176903725,\n          0.24932260811328896,\n          0.5397707223892211,\n          0.626006722450256,\n          0.549840569496155,\n          0.42596277594566295,\n          0.40598860383033797,\n          0.235961347818375,\n          0.194989055395126,\n          0.6582486629486078,\n          0.4551981985569,\n          0.348587512969971,\n          0.514492034912109,\n          0.390017777681351,\n          0.505625545978546,\n          0.567766189575195,\n          0.412730008363724,\n          0.23521526157856,\n          0.437453746795654,\n          0.33288118243217496,\n          0.17586351931095098,\n          0.295400261878967,\n          0.25471106171608,\n          0.255772292613983,\n          0.423026293516159,\n          0.0303698573261499,\n          0.45000287890434293,\n          0.443323463201523,\n          0.59662789106369,\n          0.60834527015686,\n          0.505196332931519,\n          0.0149958552792668,\n          0.620070576667786,\n          0.601607382297516,\n          0.474307239055634,\n          0.5793922543525699,\n          0.518630743026733,\n          0.550026834011078,\n          0.15399712324142498,\n          0.373783111572266,\n          0.40226498246192893,\n          0.28851598501205394,\n          0.585214674472809,\n          0.6271626353263849,\n          0.39815583825111406,\n          0.0960980430245399,\n          0.12297477573156401,\n          0.5313106179237371,\n          0.309410035610199,\n          0.470222115516663,\n          0.28923171758651695,\n          0.580131649971008,\n          0.457003742456436,\n          0.4350258708000179,\n          0.418421149253845,\n          0.18919676542282102,\n          0.572575807571411,\n          0.336384207010269,\n          0.408842742443085,\n          0.6140621304512021,\n          0.39414396882057207,\n          0.198303267359734,\n          0.300740599632263,\n          0.257921665906906,\n          0.35511153936386103,\n          0.45276376605033897,\n          0.55258983373642,\n          0.562511384487152,\n          0.234231784939766,\n          0.381498634815216,\n          0.256450712680817,\n          0.520303547382355,\n          0.376895278692245,\n          0.490968644618988,\n          0.5853844881057739,\n          0.508190035820007,\n          0.49451920390129106,\n          0.505740523338318,\n          0.5731103420257571,\n          0.41827192902565,\n          0.633375823497772,\n          0.47156670689582797,\n          0.571055591106415,\n          0.602126955986023,\n          0.6179508566856379,\n          0.449750572443008,\n          0.348079860210419,\n          0.31232857704162603,\n          0.447551846504211,\n          0.47278770804405196,\n          0.43745428323745705,\n          0.466914653778076\n         ],\n         \"z\": [\n          4.49700021743774,\n          5.61100006103516,\n          4.31500005722046,\n          3.5910000801086404,\n          6.002999782562259,\n          5.62900018692017,\n          3.7939999103546103,\n          5.175000190734861,\n          4.961999893188481,\n          3.47099995613098,\n          4.44000005722046,\n          4.08099985122681,\n          6.35699987411499,\n          6.4239997863769505,\n          4.513999938964839,\n          4.69500017166138,\n          5.493000030517581,\n          5.2270002365112305,\n          5.97300004959106,\n          4.80499982833862,\n          3.79500007629395,\n          3.4949998855590803,\n          5.525000095367429,\n          6.10500001907349,\n          5.837999820709231,\n          7.28399991989136,\n          6.375,\n          5.80999994277954,\n          2.69300007820129,\n          4.8289999961853,\n          5.27899980545044,\n          3.59299993515015,\n          5.18200016021729,\n          4.69199991226196,\n          6.89099979400635,\n          7.52199983596802,\n          6.57200002670288,\n          3.65700006484985,\n          7.212999820709231,\n          4.2800002098083505,\n          5.23699998855591,\n          5.97100019454956,\n          6.00799989700317,\n          3.50699996948242,\n          4.54500007629395,\n          3.34899997711182,\n          5.92000007629395,\n          7.00600004196167,\n          6.57800006866455,\n          5.26900005340576,\n          6.6350002288818395,\n          3.5329999923706095,\n          5.32399988174438,\n          5.5689997673034695,\n          4.77500009536743,\n          5.2930002212524405,\n          4.11999988555908,\n          3.6029999256133998,\n          5.71500015258789,\n          5.26200008392334,\n          6.86299991607666,\n          6.6479997634887695,\n          3.7660000324249303,\n          4.138999938964839,\n          7.49399995803833,\n          7.28399991989136,\n          5.31099987030029,\n          6.4539999961853,\n          6.1680002212524405,\n          6.4520001411438,\n          5.25,\n          5.962999820709231,\n          6.08400011062622,\n          5.22499990463257,\n          5.42999982833862,\n          7.50400018692017,\n          5.234000205993651,\n          4.29199981689453,\n          4.09600019454956,\n          6.4539999961853,\n          4.28599977493286,\n          6.44199991226196,\n          4.71400022506714,\n          7.0789999961853,\n          5.824999809265139,\n          4.29099988937378,\n          5.33599996566772,\n          3.64400005340576,\n          5.75799989700317,\n          3.875,\n          4.46000003814697,\n          7.31400012969971,\n          4.95499992370605,\n          4.37599992752075,\n          5.5,\n          5.837999820709231,\n          5.62099981307983,\n          4.55299997329712,\n          5.230000019073491,\n          6.9510002136230495,\n          5.90199995040894,\n          4.64400005340576,\n          5.96400022506714,\n          4.57399988174438,\n          6.65199995040894,\n          5.47200012207031,\n          7.3769998550415,\n          6.71400022506714,\n          6.59899997711182,\n          6.993000030517581,\n          6.9770002365112305,\n          5.82200002670288,\n          4.1680002212524405,\n          5.04099988937378,\n          5.07399988174438,\n          5.151000022888179,\n          7.468999862670901,\n          6.343999862670901,\n          5.1810002326965305,\n          4.46500015258789,\n          6.07100009918213,\n          5.2729997634887695,\n          5.8189997673034695,\n          3.97000002861023\n         ]\n        },\n        {\n         \"marker\": {\n          \"line\": {\n           \"color\": \"rgb(255, 255, 255)\",\n           \"width\": 1\n          },\n          \"opacity\": 1,\n          \"size\": 10\n         },\n         \"mode\": \"markers\",\n         \"name\": \"Test Set\",\n         \"type\": \"scatter3d\",\n         \"uid\": \"973829dd-d770-41f6-b456-046962af6151\",\n         \"x\": [\n          1.6164631843566901,\n          1.47920441627502,\n          1.35268235206604,\n          1.34327983856201,\n          1.4336265325546298,\n          1.38439786434174,\n          1.32539355754852,\n          1.4884122610092199,\n          0.907975316047668,\n          1.09186446666718,\n          1.26074862480164,\n          0.833756566047668,\n          1.06931757926941,\n          0.8781145811080929,\n          1.3151752948761002,\n          0.783756256103516,\n          0.885416388511658,\n          0.5962200760841371,\n          0.989701807498932,\n          0.36842092871666,\n          0.586682975292206,\n          0.23430564999580397,\n          0.479309022426605,\n          0.476180493831635,\n          0.6030489206314089,\n          0.35022771358490007,\n          0.16192533075809498,\n          0.43801298737525896,\n          0.521021246910095,\n          0.777153134346008,\n          0.09162256866693501\n         ],\n         \"y\": [\n          0.635422587394714,\n          0.611100912094116,\n          0.49094617366790794,\n          0.588767051696777,\n          0.361466586589813,\n          0.408781230449677,\n          0.295817464590073,\n          0.536746919155121,\n          0.5475093722343439,\n          0.233335807919502,\n          0.32570791244506797,\n          0.5587329268455511,\n          0.20871552824974102,\n          0.408158332109451,\n          0.498465299606323,\n          0.394952565431595,\n          0.5015376806259161,\n          0.454943388700485,\n          0.28211015462875394,\n          0.318697690963745,\n          0.478356659412384,\n          0.48079109191894503,\n          0.37792226672172496,\n          0.306613743305206,\n          0.4477061927318571,\n          0.32436785101890603,\n          0.36365869641304,\n          0.16234202682972002,\n          0.390661299228668,\n          0.0815394446253777,\n          0.0599007532000542\n         ],\n         \"z\": [\n          7.537000179290769,\n          7.31599998474121,\n          6.60900020599365,\n          6.52699995040894,\n          6.42199993133545,\n          6.40299987792969,\n          6.09800004959106,\n          6.08699989318848,\n          5.955999851226809,\n          5.872000217437741,\n          5.849999904632571,\n          5.82299995422363,\n          5.39499998092651,\n          5.2350001335144,\n          5.19500017166138,\n          5.07399988174438,\n          5.01100015640259,\n          5.0040001869201705,\n          4.7350001335144,\n          4.70900011062622,\n          4.60799980163574,\n          4.550000190734861,\n          4.53499984741211,\n          4.19000005722046,\n          4.17999982833862,\n          4.03200006484985,\n          4.02799987792969,\n          3.9360001087188703,\n          3.80800008773804,\n          3.46199989318848,\n          2.90499997138977\n         ]\n        },\n        {\n         \"marker\": {\n          \"size\": 1\n         },\n         \"mode\": \"markers\",\n         \"name\": \"Prediction Plane\",\n         \"opacity\": 0.8,\n         \"surfaceaxis\": 2,\n         \"type\": \"scatter3d\",\n         \"uid\": \"b9286cc7-12bf-4571-b516-f8bda6c3c119\",\n         \"x\": [\n          0,\n          0,\n          0,\n          0,\n          0,\n          0,\n          0,\n          0,\n          0,\n          0,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.20786285400390664,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.4157257080078133,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.6235885620117199,\n          0.8314514160156266,\n          0.8314514160156266,\n          0.8314514160156266,\n          0.8314514160156266,\n          0.8314514160156266,\n          0.8314514160156266,\n          0.8314514160156266,\n          0.8314514160156266,\n          0.8314514160156266,\n          0.8314514160156266,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.0393142700195332,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.2471771240234397,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.4550399780273464,\n          1.662902832031253,\n          1.662902832031253,\n          1.662902832031253,\n          1.662902832031253,\n          1.662902832031253,\n          1.662902832031253,\n          1.662902832031253,\n          1.662902832031253,\n          1.662902832031253,\n          1.662902832031253,\n          1.8707656860351598,\n          1.8707656860351598,\n          1.8707656860351598,\n          1.8707656860351598,\n          1.8707656860351598,\n          1.8707656860351598,\n          1.8707656860351598,\n          1.8707656860351598,\n          1.8707656860351598,\n          1.8707656860351598\n         ],\n         \"y\": [\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078,\n          0,\n          0.07313874032762309,\n          0.14627748065524618,\n          0.21941622098286928,\n          0.29255496131049236,\n          0.36569370163811543,\n          0.43883244196573856,\n          0.5119711822933616,\n          0.5851099226209847,\n          0.6582486629486078\n         ],\n         \"z\": [\n          3.6332939796459245,\n          3.757851868566506,\n          3.8824097574870877,\n          4.00696764640767,\n          4.131525535328251,\n          4.256083424248833,\n          4.380641313169415,\n          4.5051992020899965,\n          4.629757091010578,\n          4.75431497993116,\n          3.8998205174683562,\n          4.024378406388938,\n          4.14893629530952,\n          4.273494184230102,\n          4.398052073150683,\n          4.5226099620712645,\n          4.647167850991846,\n          4.771725739912428,\n          4.89628362883301,\n          5.020841517753592,\n          4.166347055290788,\n          4.29090494421137,\n          4.415462833131952,\n          4.5400207220525335,\n          4.664578610973114,\n          4.789136499893696,\n          4.913694388814278,\n          5.03825227773486,\n          5.162810166655442,\n          5.287368055576024,\n          4.432873593113219,\n          4.557431482033801,\n          4.6819893709543825,\n          4.806547259874964,\n          4.931105148795545,\n          5.055663037716127,\n          5.180220926636709,\n          5.304778815557291,\n          5.429336704477873,\n          5.5538945933984545,\n          4.699400130935651,\n          4.823958019856232,\n          4.948515908776814,\n          5.073073797697396,\n          5.197631686617977,\n          5.322189575538559,\n          5.446747464459141,\n          5.5713053533797225,\n          5.695863242300304,\n          5.820421131220886,\n          4.965926668758082,\n          5.090484557678664,\n          5.215042446599246,\n          5.339600335519828,\n          5.464158224440409,\n          5.588716113360991,\n          5.7132740022815725,\n          5.837831891202154,\n          5.962389780122736,\n          6.086947669043318,\n          5.232453206580514,\n          5.357011095501096,\n          5.481568984421678,\n          5.60612687334226,\n          5.7306847622628405,\n          5.855242651183422,\n          5.979800540104004,\n          6.104358429024586,\n          6.228916317945168,\n          6.35347420686575,\n          5.498979744402945,\n          5.623537633323527,\n          5.748095522244109,\n          5.87265341116469,\n          5.997211300085271,\n          6.121769189005853,\n          6.246327077926435,\n          6.370884966847017,\n          6.495442855767599,\n          6.620000744688181,\n          5.765506282225377,\n          5.8900641711459585,\n          6.01462206006654,\n          6.139179948987122,\n          6.263737837907703,\n          6.388295726828285,\n          6.512853615748867,\n          6.637411504669449,\n          6.7619693935900305,\n          6.886527282510612,\n          6.032032820047808,\n          6.15659070896839,\n          6.281148597888972,\n          6.405706486809554,\n          6.530264375730135,\n          6.654822264650717,\n          6.7793801535712985,\n          6.90393804249188,\n          7.028495931412462,\n          7.153053820333044\n         ]\n        }\n       ],\n       \"layout\": {\n        \"margin\": {\n         \"b\": 0,\n         \"l\": 0,\n         \"r\": 0,\n         \"t\": 0\n        },\n        \"scene\": {\n         \"xaxis\": {\n          \"title\": \"Economy..GDP.per.Capita.\"\n         },\n         \"yaxis\": {\n          \"title\": \"Freedom\"\n         },\n         \"zaxis\": {\n          \"title\": \"Happiness.Score\"\n         }\n        },\n        \"title\": \"Date Sets\"\n       }\n      },\n      \"text/html\": [\n       \"<div id=\\\"98829b90-ed38-45b8-93ce-749e0654e4ce\\\" style=\\\"height: 525px; width: 100%;\\\" class=\\\"plotly-graph-div\\\"></div><script type=\\\"text/javascript\\\">require([\\\"plotly\\\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {};window.PLOTLYENV.BASE_URL=\\\"https://plot.ly\\\";Plotly.newPlot(\\\"98829b90-ed38-45b8-93ce-749e0654e4ce\\\", [{\\\"marker\\\": {\\\"line\\\": {\\\"color\\\": \\\"rgb(255, 255, 255)\\\", \\\"width\\\": 1}, \\\"opacity\\\": 1, \\\"size\\\": 10}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Training Set\\\", \\\"x\\\": [1.1027104854583702, 1.3208793401718102, 0.7922212481498722, 0.39724862575531, 0.9097844958305359, 1.1893955469131499, 0.401477217674255, 1.06457793712616, 0.479820191860199, 0.368745893239975, 1.00985014438629, 0.381430715322495, 1.07062232494354, 1.12786877155304, 0.6364067792892459, 0.564305365085602, 0.932537317276001, 1.28948748111725, 1.29178786277771, 1.00726580619812, 0.8584281802177429, 0.30544471740722695, 1.1018030643463101, 1.63295245170593, 0.7288706302642819, 1.49438726902008, 1.8707656860351598, 1.3469113111496, 0.0, 1.05469870567322, 0.951484382152557, 0.5916834473609921, 0.982409417629242, 1.15687310695648, 1.4637807607650801, 1.48238301277161, 1.69227766990662, 0.43108540773391707, 1.3753824234008798, 0.0921023488044739, 1.12112903594971, 0.786441087722778, 1.00082039833069, 0.24454993009567302, 0.36711055040359497, 0.511135876178741, 1.41691517829895, 1.4870972633361799, 1.1531838178634601, 0.7268835306167599, 1.1073532104492199, 0.11904179304838199, 1.2860119342803997, 1.15655755996704, 0.716249227523804, 1.22255623340607, 0.667224824428558, 0.368610262870789, 1.0352252721786501, 0.995538592338562, 1.74194359779358, 1.6263433694839498, 1.12209415435791, 0.6595166921615601, 1.5649795532226598, 1.4844149351120002, 0.925579309463501, 1.2175596952438401, 1.36135590076447, 1.23374843597412, 1.12843120098114, 1.28177809715271, 1.29121541976929, 1.07498753070831, 0.85769921541214, 1.480633020401, 1.1536017656326298, 0.6484572887420649, 0.89465194940567, 0.872001945972443, 0.950612664222717, 1.43092346191406, 1.1614590883255, 1.10970628261566, 1.21768391132355, 0.8089642524719242, 0.9910123944282528, 0.305808693170547, 1.3412059545516999, 0.37584653496742204, 0.339233845472336, 1.40570604801178, 1.0272358655929599, 0.900596737861633, 1.1982743740081798, 1.40167844295502, 1.3559380769729599, 0.560479462146759, 1.07937383651733, 1.48792338371277, 1.3145823478698702, 0.996192753314972, 1.3950666189193701, 0.964434325695038, 1.25278460979462, 1.55167484283447, 1.50394463539124, 1.44163393974304, 1.18529546260834, 1.54625928401947, 1.5357066392898602, 1.1307767629623402, 0.6017650961875921, 0.524713635444641, 0.7885475754737851, 0.0226431842893362, 1.44357192516327, 1.53062355518341, 0.730573117733002, 1.1982102394104, 0.737299203872681, 1.08116579055786, 1.2845562696456898, 0.233442038297653], \\\"y\\\": [0.288555532693863, 0.479131430387497, 0.469987004995346, 0.147062435746193, 0.432452529668808, 0.491247326135635, 0.106179520487785, 0.325905978679657, 0.44030594825744607, 0.5818438529968261, 0.561213254928589, 0.443185955286026, 0.47748741507530196, 0.580200731754303, 0.461603492498398, 0.430388748645782, 0.473507791757584, 0.0957312509417534, 0.520342111587524, 0.289680689573288, 0.0, 0.38042613863945, 0.465733230113983, 0.49633759260177596, 0.24072904884815197, 0.612924098968506, 0.604130983352661, 0.47120362520217896, 0.270842045545578, 0.479246735572815, 0.260287940502167, 0.24946372210979503, 0.204403176903725, 0.24932260811328896, 0.5397707223892211, 0.626006722450256, 0.549840569496155, 0.42596277594566295, 0.40598860383033797, 0.235961347818375, 0.194989055395126, 0.6582486629486078, 0.4551981985569, 0.348587512969971, 0.514492034912109, 0.390017777681351, 0.505625545978546, 0.567766189575195, 0.412730008363724, 0.23521526157856, 0.437453746795654, 0.33288118243217496, 0.17586351931095098, 0.295400261878967, 0.25471106171608, 0.255772292613983, 0.423026293516159, 0.0303698573261499, 0.45000287890434293, 0.443323463201523, 0.59662789106369, 0.60834527015686, 0.505196332931519, 0.0149958552792668, 0.620070576667786, 0.601607382297516, 0.474307239055634, 0.5793922543525699, 0.518630743026733, 0.550026834011078, 0.15399712324142498, 0.373783111572266, 0.40226498246192893, 0.28851598501205394, 0.585214674472809, 0.6271626353263849, 0.39815583825111406, 0.0960980430245399, 0.12297477573156401, 0.5313106179237371, 0.309410035610199, 0.470222115516663, 0.28923171758651695, 0.580131649971008, 0.457003742456436, 0.4350258708000179, 0.418421149253845, 0.18919676542282102, 0.572575807571411, 0.336384207010269, 0.408842742443085, 0.6140621304512021, 0.39414396882057207, 0.198303267359734, 0.300740599632263, 0.257921665906906, 0.35511153936386103, 0.45276376605033897, 0.55258983373642, 0.562511384487152, 0.234231784939766, 0.381498634815216, 0.256450712680817, 0.520303547382355, 0.376895278692245, 0.490968644618988, 0.5853844881057739, 0.508190035820007, 0.49451920390129106, 0.505740523338318, 0.5731103420257571, 0.41827192902565, 0.633375823497772, 0.47156670689582797, 0.571055591106415, 0.602126955986023, 0.6179508566856379, 0.449750572443008, 0.348079860210419, 0.31232857704162603, 0.447551846504211, 0.47278770804405196, 0.43745428323745705, 0.466914653778076], \\\"z\\\": [4.49700021743774, 5.61100006103516, 4.31500005722046, 3.5910000801086404, 6.002999782562259, 5.62900018692017, 3.7939999103546103, 5.175000190734861, 4.961999893188481, 3.47099995613098, 4.44000005722046, 4.08099985122681, 6.35699987411499, 6.4239997863769505, 4.513999938964839, 4.69500017166138, 5.493000030517581, 5.2270002365112305, 5.97300004959106, 4.80499982833862, 3.79500007629395, 3.4949998855590803, 5.525000095367429, 6.10500001907349, 5.837999820709231, 7.28399991989136, 6.375, 5.80999994277954, 2.69300007820129, 4.8289999961853, 5.27899980545044, 3.59299993515015, 5.18200016021729, 4.69199991226196, 6.89099979400635, 7.52199983596802, 6.57200002670288, 3.65700006484985, 7.212999820709231, 4.2800002098083505, 5.23699998855591, 5.97100019454956, 6.00799989700317, 3.50699996948242, 4.54500007629395, 3.34899997711182, 5.92000007629395, 7.00600004196167, 6.57800006866455, 5.26900005340576, 6.6350002288818395, 3.5329999923706095, 5.32399988174438, 5.5689997673034695, 4.77500009536743, 5.2930002212524405, 4.11999988555908, 3.6029999256133998, 5.71500015258789, 5.26200008392334, 6.86299991607666, 6.6479997634887695, 3.7660000324249303, 4.138999938964839, 7.49399995803833, 7.28399991989136, 5.31099987030029, 6.4539999961853, 6.1680002212524405, 6.4520001411438, 5.25, 5.962999820709231, 6.08400011062622, 5.22499990463257, 5.42999982833862, 7.50400018692017, 5.234000205993651, 4.29199981689453, 4.09600019454956, 6.4539999961853, 4.28599977493286, 6.44199991226196, 4.71400022506714, 7.0789999961853, 5.824999809265139, 4.29099988937378, 5.33599996566772, 3.64400005340576, 5.75799989700317, 3.875, 4.46000003814697, 7.31400012969971, 4.95499992370605, 4.37599992752075, 5.5, 5.837999820709231, 5.62099981307983, 4.55299997329712, 5.230000019073491, 6.9510002136230495, 5.90199995040894, 4.64400005340576, 5.96400022506714, 4.57399988174438, 6.65199995040894, 5.47200012207031, 7.3769998550415, 6.71400022506714, 6.59899997711182, 6.993000030517581, 6.9770002365112305, 5.82200002670288, 4.1680002212524405, 5.04099988937378, 5.07399988174438, 5.151000022888179, 7.468999862670901, 6.343999862670901, 5.1810002326965305, 4.46500015258789, 6.07100009918213, 5.2729997634887695, 5.8189997673034695, 3.97000002861023], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"5121ac59-e6e4-4c30-8d0c-c3482182891a\\\"}, {\\\"marker\\\": {\\\"line\\\": {\\\"color\\\": \\\"rgb(255, 255, 255)\\\", \\\"width\\\": 1}, \\\"opacity\\\": 1, \\\"size\\\": 10}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Test Set\\\", \\\"x\\\": [1.6164631843566901, 1.47920441627502, 1.35268235206604, 1.34327983856201, 1.4336265325546298, 1.38439786434174, 1.32539355754852, 1.4884122610092199, 0.907975316047668, 1.09186446666718, 1.26074862480164, 0.833756566047668, 1.06931757926941, 0.8781145811080929, 1.3151752948761002, 0.783756256103516, 0.885416388511658, 0.5962200760841371, 0.989701807498932, 0.36842092871666, 0.586682975292206, 0.23430564999580397, 0.479309022426605, 0.476180493831635, 0.6030489206314089, 0.35022771358490007, 0.16192533075809498, 0.43801298737525896, 0.521021246910095, 0.777153134346008, 0.09162256866693501], \\\"y\\\": [0.635422587394714, 0.611100912094116, 0.49094617366790794, 0.588767051696777, 0.361466586589813, 0.408781230449677, 0.295817464590073, 0.536746919155121, 0.5475093722343439, 0.233335807919502, 0.32570791244506797, 0.5587329268455511, 0.20871552824974102, 0.408158332109451, 0.498465299606323, 0.394952565431595, 0.5015376806259161, 0.454943388700485, 0.28211015462875394, 0.318697690963745, 0.478356659412384, 0.48079109191894503, 0.37792226672172496, 0.306613743305206, 0.4477061927318571, 0.32436785101890603, 0.36365869641304, 0.16234202682972002, 0.390661299228668, 0.0815394446253777, 0.0599007532000542], \\\"z\\\": [7.537000179290769, 7.31599998474121, 6.60900020599365, 6.52699995040894, 6.42199993133545, 6.40299987792969, 6.09800004959106, 6.08699989318848, 5.955999851226809, 5.872000217437741, 5.849999904632571, 5.82299995422363, 5.39499998092651, 5.2350001335144, 5.19500017166138, 5.07399988174438, 5.01100015640259, 5.0040001869201705, 4.7350001335144, 4.70900011062622, 4.60799980163574, 4.550000190734861, 4.53499984741211, 4.19000005722046, 4.17999982833862, 4.03200006484985, 4.02799987792969, 3.9360001087188703, 3.80800008773804, 3.46199989318848, 2.90499997138977], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"973829dd-d770-41f6-b456-046962af6151\\\"}, {\\\"marker\\\": {\\\"size\\\": 1}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Prediction Plane\\\", \\\"opacity\\\": 0.8, \\\"surfaceaxis\\\": 2, \\\"x\\\": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598], \\\"y\\\": [0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078], \\\"z\\\": [3.6332939796459245, 3.757851868566506, 3.8824097574870877, 4.00696764640767, 4.131525535328251, 4.256083424248833, 4.380641313169415, 4.5051992020899965, 4.629757091010578, 4.75431497993116, 3.8998205174683562, 4.024378406388938, 4.14893629530952, 4.273494184230102, 4.398052073150683, 4.5226099620712645, 4.647167850991846, 4.771725739912428, 4.89628362883301, 5.020841517753592, 4.166347055290788, 4.29090494421137, 4.415462833131952, 4.5400207220525335, 4.664578610973114, 4.789136499893696, 4.913694388814278, 5.03825227773486, 5.162810166655442, 5.287368055576024, 4.432873593113219, 4.557431482033801, 4.6819893709543825, 4.806547259874964, 4.931105148795545, 5.055663037716127, 5.180220926636709, 5.304778815557291, 5.429336704477873, 5.5538945933984545, 4.699400130935651, 4.823958019856232, 4.948515908776814, 5.073073797697396, 5.197631686617977, 5.322189575538559, 5.446747464459141, 5.5713053533797225, 5.695863242300304, 5.820421131220886, 4.965926668758082, 5.090484557678664, 5.215042446599246, 5.339600335519828, 5.464158224440409, 5.588716113360991, 5.7132740022815725, 5.837831891202154, 5.962389780122736, 6.086947669043318, 5.232453206580514, 5.357011095501096, 5.481568984421678, 5.60612687334226, 5.7306847622628405, 5.855242651183422, 5.979800540104004, 6.104358429024586, 6.228916317945168, 6.35347420686575, 5.498979744402945, 5.623537633323527, 5.748095522244109, 5.87265341116469, 5.997211300085271, 6.121769189005853, 6.246327077926435, 6.370884966847017, 6.495442855767599, 6.620000744688181, 5.765506282225377, 5.8900641711459585, 6.01462206006654, 6.139179948987122, 6.263737837907703, 6.388295726828285, 6.512853615748867, 6.637411504669449, 6.7619693935900305, 6.886527282510612, 6.032032820047808, 6.15659070896839, 6.281148597888972, 6.405706486809554, 6.530264375730135, 6.654822264650717, 6.7793801535712985, 6.90393804249188, 7.028495931412462, 7.153053820333044], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"b9286cc7-12bf-4571-b516-f8bda6c3c119\\\"}], {\\\"margin\\\": {\\\"b\\\": 0, \\\"l\\\": 0, \\\"r\\\": 0, \\\"t\\\": 0}, \\\"scene\\\": {\\\"xaxis\\\": {\\\"title\\\": \\\"Economy..GDP.per.Capita.\\\"}, \\\"yaxis\\\": {\\\"title\\\": \\\"Freedom\\\"}, \\\"zaxis\\\": {\\\"title\\\": \\\"Happiness.Score\\\"}}, \\\"title\\\": \\\"Date Sets\\\"}, {\\\"showLink\\\": true, \\\"linkText\\\": \\\"Export to plot.ly\\\"})});</script><script type=\\\"text/javascript\\\">window.addEventListener(\\\"resize\\\", function(){window._Plotly.Plots.resize(document.getElementById(\\\"98829b90-ed38-45b8-93ce-749e0654e4ce\\\"));});</script>\"\n      ],\n      \"text/vnd.plotly.v1+html\": [\n       \"<div id=\\\"98829b90-ed38-45b8-93ce-749e0654e4ce\\\" style=\\\"height: 525px; width: 100%;\\\" class=\\\"plotly-graph-div\\\"></div><script type=\\\"text/javascript\\\">require([\\\"plotly\\\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {};window.PLOTLYENV.BASE_URL=\\\"https://plot.ly\\\";Plotly.newPlot(\\\"98829b90-ed38-45b8-93ce-749e0654e4ce\\\", [{\\\"marker\\\": {\\\"line\\\": {\\\"color\\\": \\\"rgb(255, 255, 255)\\\", \\\"width\\\": 1}, \\\"opacity\\\": 1, \\\"size\\\": 10}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Training Set\\\", \\\"x\\\": [1.1027104854583702, 1.3208793401718102, 0.7922212481498722, 0.39724862575531, 0.9097844958305359, 1.1893955469131499, 0.401477217674255, 1.06457793712616, 0.479820191860199, 0.368745893239975, 1.00985014438629, 0.381430715322495, 1.07062232494354, 1.12786877155304, 0.6364067792892459, 0.564305365085602, 0.932537317276001, 1.28948748111725, 1.29178786277771, 1.00726580619812, 0.8584281802177429, 0.30544471740722695, 1.1018030643463101, 1.63295245170593, 0.7288706302642819, 1.49438726902008, 1.8707656860351598, 1.3469113111496, 0.0, 1.05469870567322, 0.951484382152557, 0.5916834473609921, 0.982409417629242, 1.15687310695648, 1.4637807607650801, 1.48238301277161, 1.69227766990662, 0.43108540773391707, 1.3753824234008798, 0.0921023488044739, 1.12112903594971, 0.786441087722778, 1.00082039833069, 0.24454993009567302, 0.36711055040359497, 0.511135876178741, 1.41691517829895, 1.4870972633361799, 1.1531838178634601, 0.7268835306167599, 1.1073532104492199, 0.11904179304838199, 1.2860119342803997, 1.15655755996704, 0.716249227523804, 1.22255623340607, 0.667224824428558, 0.368610262870789, 1.0352252721786501, 0.995538592338562, 1.74194359779358, 1.6263433694839498, 1.12209415435791, 0.6595166921615601, 1.5649795532226598, 1.4844149351120002, 0.925579309463501, 1.2175596952438401, 1.36135590076447, 1.23374843597412, 1.12843120098114, 1.28177809715271, 1.29121541976929, 1.07498753070831, 0.85769921541214, 1.480633020401, 1.1536017656326298, 0.6484572887420649, 0.89465194940567, 0.872001945972443, 0.950612664222717, 1.43092346191406, 1.1614590883255, 1.10970628261566, 1.21768391132355, 0.8089642524719242, 0.9910123944282528, 0.305808693170547, 1.3412059545516999, 0.37584653496742204, 0.339233845472336, 1.40570604801178, 1.0272358655929599, 0.900596737861633, 1.1982743740081798, 1.40167844295502, 1.3559380769729599, 0.560479462146759, 1.07937383651733, 1.48792338371277, 1.3145823478698702, 0.996192753314972, 1.3950666189193701, 0.964434325695038, 1.25278460979462, 1.55167484283447, 1.50394463539124, 1.44163393974304, 1.18529546260834, 1.54625928401947, 1.5357066392898602, 1.1307767629623402, 0.6017650961875921, 0.524713635444641, 0.7885475754737851, 0.0226431842893362, 1.44357192516327, 1.53062355518341, 0.730573117733002, 1.1982102394104, 0.737299203872681, 1.08116579055786, 1.2845562696456898, 0.233442038297653], \\\"y\\\": [0.288555532693863, 0.479131430387497, 0.469987004995346, 0.147062435746193, 0.432452529668808, 0.491247326135635, 0.106179520487785, 0.325905978679657, 0.44030594825744607, 0.5818438529968261, 0.561213254928589, 0.443185955286026, 0.47748741507530196, 0.580200731754303, 0.461603492498398, 0.430388748645782, 0.473507791757584, 0.0957312509417534, 0.520342111587524, 0.289680689573288, 0.0, 0.38042613863945, 0.465733230113983, 0.49633759260177596, 0.24072904884815197, 0.612924098968506, 0.604130983352661, 0.47120362520217896, 0.270842045545578, 0.479246735572815, 0.260287940502167, 0.24946372210979503, 0.204403176903725, 0.24932260811328896, 0.5397707223892211, 0.626006722450256, 0.549840569496155, 0.42596277594566295, 0.40598860383033797, 0.235961347818375, 0.194989055395126, 0.6582486629486078, 0.4551981985569, 0.348587512969971, 0.514492034912109, 0.390017777681351, 0.505625545978546, 0.567766189575195, 0.412730008363724, 0.23521526157856, 0.437453746795654, 0.33288118243217496, 0.17586351931095098, 0.295400261878967, 0.25471106171608, 0.255772292613983, 0.423026293516159, 0.0303698573261499, 0.45000287890434293, 0.443323463201523, 0.59662789106369, 0.60834527015686, 0.505196332931519, 0.0149958552792668, 0.620070576667786, 0.601607382297516, 0.474307239055634, 0.5793922543525699, 0.518630743026733, 0.550026834011078, 0.15399712324142498, 0.373783111572266, 0.40226498246192893, 0.28851598501205394, 0.585214674472809, 0.6271626353263849, 0.39815583825111406, 0.0960980430245399, 0.12297477573156401, 0.5313106179237371, 0.309410035610199, 0.470222115516663, 0.28923171758651695, 0.580131649971008, 0.457003742456436, 0.4350258708000179, 0.418421149253845, 0.18919676542282102, 0.572575807571411, 0.336384207010269, 0.408842742443085, 0.6140621304512021, 0.39414396882057207, 0.198303267359734, 0.300740599632263, 0.257921665906906, 0.35511153936386103, 0.45276376605033897, 0.55258983373642, 0.562511384487152, 0.234231784939766, 0.381498634815216, 0.256450712680817, 0.520303547382355, 0.376895278692245, 0.490968644618988, 0.5853844881057739, 0.508190035820007, 0.49451920390129106, 0.505740523338318, 0.5731103420257571, 0.41827192902565, 0.633375823497772, 0.47156670689582797, 0.571055591106415, 0.602126955986023, 0.6179508566856379, 0.449750572443008, 0.348079860210419, 0.31232857704162603, 0.447551846504211, 0.47278770804405196, 0.43745428323745705, 0.466914653778076], \\\"z\\\": [4.49700021743774, 5.61100006103516, 4.31500005722046, 3.5910000801086404, 6.002999782562259, 5.62900018692017, 3.7939999103546103, 5.175000190734861, 4.961999893188481, 3.47099995613098, 4.44000005722046, 4.08099985122681, 6.35699987411499, 6.4239997863769505, 4.513999938964839, 4.69500017166138, 5.493000030517581, 5.2270002365112305, 5.97300004959106, 4.80499982833862, 3.79500007629395, 3.4949998855590803, 5.525000095367429, 6.10500001907349, 5.837999820709231, 7.28399991989136, 6.375, 5.80999994277954, 2.69300007820129, 4.8289999961853, 5.27899980545044, 3.59299993515015, 5.18200016021729, 4.69199991226196, 6.89099979400635, 7.52199983596802, 6.57200002670288, 3.65700006484985, 7.212999820709231, 4.2800002098083505, 5.23699998855591, 5.97100019454956, 6.00799989700317, 3.50699996948242, 4.54500007629395, 3.34899997711182, 5.92000007629395, 7.00600004196167, 6.57800006866455, 5.26900005340576, 6.6350002288818395, 3.5329999923706095, 5.32399988174438, 5.5689997673034695, 4.77500009536743, 5.2930002212524405, 4.11999988555908, 3.6029999256133998, 5.71500015258789, 5.26200008392334, 6.86299991607666, 6.6479997634887695, 3.7660000324249303, 4.138999938964839, 7.49399995803833, 7.28399991989136, 5.31099987030029, 6.4539999961853, 6.1680002212524405, 6.4520001411438, 5.25, 5.962999820709231, 6.08400011062622, 5.22499990463257, 5.42999982833862, 7.50400018692017, 5.234000205993651, 4.29199981689453, 4.09600019454956, 6.4539999961853, 4.28599977493286, 6.44199991226196, 4.71400022506714, 7.0789999961853, 5.824999809265139, 4.29099988937378, 5.33599996566772, 3.64400005340576, 5.75799989700317, 3.875, 4.46000003814697, 7.31400012969971, 4.95499992370605, 4.37599992752075, 5.5, 5.837999820709231, 5.62099981307983, 4.55299997329712, 5.230000019073491, 6.9510002136230495, 5.90199995040894, 4.64400005340576, 5.96400022506714, 4.57399988174438, 6.65199995040894, 5.47200012207031, 7.3769998550415, 6.71400022506714, 6.59899997711182, 6.993000030517581, 6.9770002365112305, 5.82200002670288, 4.1680002212524405, 5.04099988937378, 5.07399988174438, 5.151000022888179, 7.468999862670901, 6.343999862670901, 5.1810002326965305, 4.46500015258789, 6.07100009918213, 5.2729997634887695, 5.8189997673034695, 3.97000002861023], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"5121ac59-e6e4-4c30-8d0c-c3482182891a\\\"}, {\\\"marker\\\": {\\\"line\\\": {\\\"color\\\": \\\"rgb(255, 255, 255)\\\", \\\"width\\\": 1}, \\\"opacity\\\": 1, \\\"size\\\": 10}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Test Set\\\", \\\"x\\\": [1.6164631843566901, 1.47920441627502, 1.35268235206604, 1.34327983856201, 1.4336265325546298, 1.38439786434174, 1.32539355754852, 1.4884122610092199, 0.907975316047668, 1.09186446666718, 1.26074862480164, 0.833756566047668, 1.06931757926941, 0.8781145811080929, 1.3151752948761002, 0.783756256103516, 0.885416388511658, 0.5962200760841371, 0.989701807498932, 0.36842092871666, 0.586682975292206, 0.23430564999580397, 0.479309022426605, 0.476180493831635, 0.6030489206314089, 0.35022771358490007, 0.16192533075809498, 0.43801298737525896, 0.521021246910095, 0.777153134346008, 0.09162256866693501], \\\"y\\\": [0.635422587394714, 0.611100912094116, 0.49094617366790794, 0.588767051696777, 0.361466586589813, 0.408781230449677, 0.295817464590073, 0.536746919155121, 0.5475093722343439, 0.233335807919502, 0.32570791244506797, 0.5587329268455511, 0.20871552824974102, 0.408158332109451, 0.498465299606323, 0.394952565431595, 0.5015376806259161, 0.454943388700485, 0.28211015462875394, 0.318697690963745, 0.478356659412384, 0.48079109191894503, 0.37792226672172496, 0.306613743305206, 0.4477061927318571, 0.32436785101890603, 0.36365869641304, 0.16234202682972002, 0.390661299228668, 0.0815394446253777, 0.0599007532000542], \\\"z\\\": [7.537000179290769, 7.31599998474121, 6.60900020599365, 6.52699995040894, 6.42199993133545, 6.40299987792969, 6.09800004959106, 6.08699989318848, 5.955999851226809, 5.872000217437741, 5.849999904632571, 5.82299995422363, 5.39499998092651, 5.2350001335144, 5.19500017166138, 5.07399988174438, 5.01100015640259, 5.0040001869201705, 4.7350001335144, 4.70900011062622, 4.60799980163574, 4.550000190734861, 4.53499984741211, 4.19000005722046, 4.17999982833862, 4.03200006484985, 4.02799987792969, 3.9360001087188703, 3.80800008773804, 3.46199989318848, 2.90499997138977], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"973829dd-d770-41f6-b456-046962af6151\\\"}, {\\\"marker\\\": {\\\"size\\\": 1}, \\\"mode\\\": \\\"markers\\\", \\\"name\\\": \\\"Prediction Plane\\\", \\\"opacity\\\": 0.8, \\\"surfaceaxis\\\": 2, \\\"x\\\": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.20786285400390664, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.4157257080078133, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.6235885620117199, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 0.8314514160156266, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.0393142700195332, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.2471771240234397, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.4550399780273464, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.662902832031253, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598, 1.8707656860351598], \\\"y\\\": [0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078, 0.0, 0.07313874032762309, 0.14627748065524618, 0.21941622098286928, 0.29255496131049236, 0.36569370163811543, 0.43883244196573856, 0.5119711822933616, 0.5851099226209847, 0.6582486629486078], \\\"z\\\": [3.6332939796459245, 3.757851868566506, 3.8824097574870877, 4.00696764640767, 4.131525535328251, 4.256083424248833, 4.380641313169415, 4.5051992020899965, 4.629757091010578, 4.75431497993116, 3.8998205174683562, 4.024378406388938, 4.14893629530952, 4.273494184230102, 4.398052073150683, 4.5226099620712645, 4.647167850991846, 4.771725739912428, 4.89628362883301, 5.020841517753592, 4.166347055290788, 4.29090494421137, 4.415462833131952, 4.5400207220525335, 4.664578610973114, 4.789136499893696, 4.913694388814278, 5.03825227773486, 5.162810166655442, 5.287368055576024, 4.432873593113219, 4.557431482033801, 4.6819893709543825, 4.806547259874964, 4.931105148795545, 5.055663037716127, 5.180220926636709, 5.304778815557291, 5.429336704477873, 5.5538945933984545, 4.699400130935651, 4.823958019856232, 4.948515908776814, 5.073073797697396, 5.197631686617977, 5.322189575538559, 5.446747464459141, 5.5713053533797225, 5.695863242300304, 5.820421131220886, 4.965926668758082, 5.090484557678664, 5.215042446599246, 5.339600335519828, 5.464158224440409, 5.588716113360991, 5.7132740022815725, 5.837831891202154, 5.962389780122736, 6.086947669043318, 5.232453206580514, 5.357011095501096, 5.481568984421678, 5.60612687334226, 5.7306847622628405, 5.855242651183422, 5.979800540104004, 6.104358429024586, 6.228916317945168, 6.35347420686575, 5.498979744402945, 5.623537633323527, 5.748095522244109, 5.87265341116469, 5.997211300085271, 6.121769189005853, 6.246327077926435, 6.370884966847017, 6.495442855767599, 6.620000744688181, 5.765506282225377, 5.8900641711459585, 6.01462206006654, 6.139179948987122, 6.263737837907703, 6.388295726828285, 6.512853615748867, 6.637411504669449, 6.7619693935900305, 6.886527282510612, 6.032032820047808, 6.15659070896839, 6.281148597888972, 6.405706486809554, 6.530264375730135, 6.654822264650717, 6.7793801535712985, 6.90393804249188, 7.028495931412462, 7.153053820333044], \\\"type\\\": \\\"scatter3d\\\", \\\"uid\\\": \\\"b9286cc7-12bf-4571-b516-f8bda6c3c119\\\"}], {\\\"margin\\\": {\\\"b\\\": 0, \\\"l\\\": 0, \\\"r\\\": 0, \\\"t\\\": 0}, \\\"scene\\\": {\\\"xaxis\\\": {\\\"title\\\": \\\"Economy..GDP.per.Capita.\\\"}, \\\"yaxis\\\": {\\\"title\\\": \\\"Freedom\\\"}, \\\"zaxis\\\": {\\\"title\\\": \\\"Happiness.Score\\\"}}, \\\"title\\\": \\\"Date Sets\\\"}, {\\\"showLink\\\": true, \\\"linkText\\\": \\\"Export to plot.ly\\\"})});</script><script type=\\\"text/javascript\\\">window.addEventListener(\\\"resize\\\", function(){window._Plotly.Plots.resize(document.getElementById(\\\"98829b90-ed38-45b8-93ce-749e0654e4ce\\\"));});</script>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Generate different combinations of X and Y sets to build a predictions plane.\\n\",\n    \"predictions_num = 10\\n\",\n    \"\\n\",\n    \"# Find min and max values along X and Y axes.\\n\",\n    \"x_min = x_train[:, 0].min();\\n\",\n    \"x_max = x_train[:, 0].max();\\n\",\n    \"\\n\",\n    \"y_min = x_train[:, 1].min();\\n\",\n    \"y_max = x_train[:, 1].max();\\n\",\n    \"\\n\",\n    \"# Generate predefined numbe of values for eaxh axis betwing correspondent min and max values.\\n\",\n    \"x_axis = np.linspace(x_min, x_max, predictions_num)\\n\",\n    \"y_axis = np.linspace(y_min, y_max, predictions_num)\\n\",\n    \"\\n\",\n    \"# Create empty vectors for X and Y axes predictions\\n\",\n    \"# We're going to find cartesian product of all possible X and Y values.\\n\",\n    \"x_predictions = np.zeros((predictions_num * predictions_num, 1))\\n\",\n    \"y_predictions = np.zeros((predictions_num * predictions_num, 1))\\n\",\n    \"\\n\",\n    \"# Find cartesian product of all X and Y values.\\n\",\n    \"x_y_index = 0\\n\",\n    \"for x_index, x_value in enumerate(x_axis):\\n\",\n    \"    for y_index, y_value in enumerate(y_axis):\\n\",\n    \"        x_predictions[x_y_index] = x_value\\n\",\n    \"        y_predictions[x_y_index] = y_value\\n\",\n    \"        x_y_index += 1\\n\",\n    \"\\n\",\n    \"# Predict Z value for all X and Y pairs. \\n\",\n    \"z_predictions = linear_regression.predict(np.hstack((x_predictions, y_predictions)))\\n\",\n    \"\\n\",\n    \"# Plot training data with predictions.\\n\",\n    \"\\n\",\n    \"# Configure the plot with test dataset.\\n\",\n    \"plot_predictions_trace = go.Scatter3d(\\n\",\n    \"    x=x_predictions.flatten(),\\n\",\n    \"    y=y_predictions.flatten(),\\n\",\n    \"    z=z_predictions.flatten(),\\n\",\n    \"    name='Prediction Plane',\\n\",\n    \"    mode='markers',\\n\",\n    \"    marker={\\n\",\n    \"        'size': 1,\\n\",\n    \"    },\\n\",\n    \"    opacity=0.8,\\n\",\n    \"    surfaceaxis=2, \\n\",\n    \")\\n\",\n    \"\\n\",\n    \"plot_data = [plot_training_trace, plot_test_trace, plot_predictions_trace]\\n\",\n    \"plot_figure = go.Figure(data=plot_data, layout=plot_layout)\\n\",\n    \"plotly.offline.iplot(plot_figure)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Calculate the value of cost function for the training and test data set. The less this value is, the better.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train cost: 2761.58\\n\",\n      \"Test cost: 105.85\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"train_cost = linear_regression.get_cost(x_train, y_train, regularization_param)\\n\",\n    \"test_cost = linear_regression.get_cost(x_test, y_test, regularization_param)\\n\",\n    \"\\n\",\n    \"print('Train cost: {:.2f}'.format(train_cost))\\n\",\n    \"print('Test cost: {:.2f}'.format(test_cost))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's now render the table of prediction values that our trained model does for unknown data (for test dataset). You should see that predicted happiness score should be quite similar to the known happiness score fron the test dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Economy GDP per Capita</th>\\n\",\n       \"      <th>Freedom</th>\\n\",\n       \"      <th>Test Happiness Score</th>\\n\",\n       \"      <th>Predicted Happiness Score</th>\\n\",\n       \"      <th>Prediction Diff</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>1.616463</td>\\n\",\n       \"      <td>0.635423</td>\\n\",\n       \"      <td>7.537</td>\\n\",\n       \"      <td>7.302078</td>\\n\",\n       \"      <td>0.234922</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>1.479204</td>\\n\",\n       \"      <td>0.611101</td>\\n\",\n       \"      <td>7.316</td>\\n\",\n       \"      <td>7.000683</td>\\n\",\n       \"      <td>0.315317</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>1.352682</td>\\n\",\n       \"      <td>0.490946</td>\\n\",\n       \"      <td>6.609</td>\\n\",\n       \"      <td>6.479139</td>\\n\",\n       \"      <td>0.129861</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>1.343280</td>\\n\",\n       \"      <td>0.588767</td>\\n\",\n       \"      <td>6.527</td>\\n\",\n       \"      <td>6.706585</td>\\n\",\n       \"      <td>-0.179585</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>1.433627</td>\\n\",\n       \"      <td>0.361467</td>\\n\",\n       \"      <td>6.422</td>\\n\",\n       \"      <td>6.298226</td>\\n\",\n       \"      <td>0.123774</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>1.384398</td>\\n\",\n       \"      <td>0.408781</td>\\n\",\n       \"      <td>6.403</td>\\n\",\n       \"      <td>6.329871</td>\\n\",\n       \"      <td>0.073129</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>1.325394</td>\\n\",\n       \"      <td>0.295817</td>\\n\",\n       \"      <td>6.098</td>\\n\",\n       \"      <td>5.944681</td>\\n\",\n       \"      <td>0.153319</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>1.488412</td>\\n\",\n       \"      <td>0.536747</td>\\n\",\n       \"      <td>6.087</td>\\n\",\n       \"      <td>6.831415</td>\\n\",\n       \"      <td>-0.744415</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>0.907975</td>\\n\",\n       \"      <td>0.547509</td>\\n\",\n       \"      <td>5.956</td>\\n\",\n       \"      <td>5.840201</td>\\n\",\n       \"      <td>0.115799</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>1.091864</td>\\n\",\n       \"      <td>0.233336</td>\\n\",\n       \"      <td>5.872</td>\\n\",\n       \"      <td>5.379273</td>\\n\",\n       \"      <td>0.492727</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   Economy GDP per Capita   Freedom  Test Happiness Score  \\\\\\n\",\n       \"0                1.616463  0.635423                 7.537   \\n\",\n       \"1                1.479204  0.611101                 7.316   \\n\",\n       \"2                1.352682  0.490946                 6.609   \\n\",\n       \"3                1.343280  0.588767                 6.527   \\n\",\n       \"4                1.433627  0.361467                 6.422   \\n\",\n       \"5                1.384398  0.408781                 6.403   \\n\",\n       \"6                1.325394  0.295817                 6.098   \\n\",\n       \"7                1.488412  0.536747                 6.087   \\n\",\n       \"8                0.907975  0.547509                 5.956   \\n\",\n       \"9                1.091864  0.233336                 5.872   \\n\",\n       \"\\n\",\n       \"   Predicted Happiness Score  Prediction Diff  \\n\",\n       \"0                   7.302078         0.234922  \\n\",\n       \"1                   7.000683         0.315317  \\n\",\n       \"2                   6.479139         0.129861  \\n\",\n       \"3                   6.706585        -0.179585  \\n\",\n       \"4                   6.298226         0.123774  \\n\",\n       \"5                   6.329871         0.073129  \\n\",\n       \"6                   5.944681         0.153319  \\n\",\n       \"7                   6.831415        -0.744415  \\n\",\n       \"8                   5.840201         0.115799  \\n\",\n       \"9                   5.379273         0.492727  \"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"test_predictions = linear_regression.predict(x_test)\\n\",\n    \"\\n\",\n    \"test_predictions_table = pd.DataFrame({\\n\",\n    \"    'Economy GDP per Capita': x_test[:, 0].flatten(),\\n\",\n    \"    'Freedom': x_test[:, 1].flatten(),\\n\",\n    \"    'Test Happiness Score': y_test.flatten(),\\n\",\n    \"    'Predicted Happiness Score': test_predictions.flatten(),\\n\",\n    \"    'Prediction Diff': (y_test - test_predictions).flatten()\\n\",\n    \"})\\n\",\n    \"\\n\",\n    \"test_predictions_table.head(10)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/linear_regression/non_linear_regression_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Non-linear Regression Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Linear Regression](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/linear_regression)\\n\",\n    \"> - ⚙️[Linear Regression Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/linear_regression/linear_regression.py)\\n\",\n    \"\\n\",\n    \"**Polynomial regression** is a form of regression analysis in which the relationship between the independent variable `x` and the dependent variable `y` is modelled as an _n<sup>th<sup>_ degree polynomial in `x`. Although polynomial regression fits a nonlinear model to the data, as a statistical estimation problem it is linear, in the sense that the regression function `E(y|x)` is linear in the unknown parameters that are estimated from the data. For this reason, polynomial regression is considered to be a special case of multiple linear regression.\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this example we will train our model to imitate an artificial non-linear equation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of linear_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of linear_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [linear_regression](https://github.com/trekhleb/homemade-machine-learning/blob/master/src/linear_regression/linear_regression.py) - custom implementation of linear regression\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"# Import custom linear regression implementation.\\n\",\n    \"from homemade.linear_regression import LinearRegression\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use artificial non-linear data set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>y</th>\\n\",\n       \"      <th>x</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>97.58776</td>\\n\",\n       \"      <td>1.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>97.76344</td>\\n\",\n       \"      <td>2.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>96.56705</td>\\n\",\n       \"      <td>3.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>92.52037</td>\\n\",\n       \"      <td>4.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>91.15097</td>\\n\",\n       \"      <td>5.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>95.21728</td>\\n\",\n       \"      <td>6.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>90.21355</td>\\n\",\n       \"      <td>7.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>89.29235</td>\\n\",\n       \"      <td>8.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>91.51479</td>\\n\",\n       \"      <td>9.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>89.60966</td>\\n\",\n       \"      <td>10.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"          y     x\\n\",\n       \"0  97.58776   1.0\\n\",\n       \"1  97.76344   2.0\\n\",\n       \"2  96.56705   3.0\\n\",\n       \"3  92.52037   4.0\\n\",\n       \"4  91.15097   5.0\\n\",\n       \"5  95.21728   6.0\\n\",\n       \"6  90.21355   7.0\\n\",\n       \"7  89.29235   8.0\\n\",\n       \"8  91.51479   9.0\\n\",\n       \"9  89.60966  10.0\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/non-linear-regression-x-y.csv')\\n\",\n    \"\\n\",\n    \"# Fetch traingin set and labels.\\n\",\n    \"x = data['x'].values.reshape((data.shape[0], 1))\\n\",\n    \"y = data['y'].values.reshape((data.shape[0], 1))\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's visualize the training and test datasets to see the shape of the data.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.plot(x, y)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train Linear Regression Model\\n\",\n    \"\\n\",\n    \"> ☝🏻This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"- `polynomial_degree` - this parameter will allow you to add additional polynomial features of certain degree. More features - more curved the line will be.\\n\",\n    \"- `num_iterations` - this is the number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `learning_rate` - this is the size of the gradient descent step. Small learning step will make algorithm work longer and will probably require more iterations to reach the minimum of the cost function. Big learning steps may couse missing the minimum and growth of the cost function value with new iterations.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `polynomial_degree` - the degree of additional polynomial features (`x1^2 * x2, x1^2 * x2^2, ...`). This will allow you to curve the predictions.\\n\",\n    \"- `sinusoid_degree` - the degree of sinusoid parameter multipliers of additional features (`sin(x), sin(2*x), ...`). This will allow you to curve the predictions by adding sinusoidal component to the prediction curve.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Initial cost: 137723281.24\\n\",\n      \"Optimized cost: 2189884.51\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Model Parameters</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>60.531874</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>-3.730982</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>-3.265008</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>-4.293987</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>-3.048819</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>-1.617722</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>-1.801005</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>-3.069723</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>-3.551792</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>-2.751712</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>10</th>\\n\",\n       \"      <td>-2.019922</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>11</th>\\n\",\n       \"      <td>-2.086688</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>12</th>\\n\",\n       \"      <td>-1.761378</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>13</th>\\n\",\n       \"      <td>-0.340730</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>14</th>\\n\",\n       \"      <td>0.214782</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>15</th>\\n\",\n       \"      <td>-1.184080</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>16</th>\\n\",\n       \"      <td>0.614349</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>17</th>\\n\",\n       \"      <td>-3.730982</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>18</th>\\n\",\n       \"      <td>-3.730982</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>19</th>\\n\",\n       \"      <td>-40.780573</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>20</th>\\n\",\n       \"      <td>-40.780573</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>21</th>\\n\",\n       \"      <td>-40.780573</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>22</th>\\n\",\n       \"      <td>-1.502418</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>23</th>\\n\",\n       \"      <td>-1.502418</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>24</th>\\n\",\n       \"      <td>-1.502418</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>25</th>\\n\",\n       \"      <td>-1.502418</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>26</th>\\n\",\n       \"      <td>23.068044</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>27</th>\\n\",\n       \"      <td>23.068044</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>28</th>\\n\",\n       \"      <td>23.068044</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>29</th>\\n\",\n       \"      <td>23.068044</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>...</th>\\n\",\n       \"      <td>...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>122</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>123</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>124</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>125</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>126</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>127</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>128</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>129</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>130</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>131</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>132</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>133</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>134</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>135</th>\\n\",\n       \"      <td>6.423522</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>136</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>137</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>138</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>139</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>140</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>141</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>142</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>143</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>144</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>145</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>146</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>147</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>148</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>149</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>150</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>151</th>\\n\",\n       \"      <td>0.052387</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"<p>152 rows × 1 columns</p>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"     Model Parameters\\n\",\n       \"0           60.531874\\n\",\n       \"1           -3.730982\\n\",\n       \"2           -3.265008\\n\",\n       \"3           -4.293987\\n\",\n       \"4           -3.048819\\n\",\n       \"5           -1.617722\\n\",\n       \"6           -1.801005\\n\",\n       \"7           -3.069723\\n\",\n       \"8           -3.551792\\n\",\n       \"9           -2.751712\\n\",\n       \"10          -2.019922\\n\",\n       \"11          -2.086688\\n\",\n       \"12          -1.761378\\n\",\n       \"13          -0.340730\\n\",\n       \"14           0.214782\\n\",\n       \"15          -1.184080\\n\",\n       \"16           0.614349\\n\",\n       \"17          -3.730982\\n\",\n       \"18          -3.730982\\n\",\n       \"19         -40.780573\\n\",\n       \"20         -40.780573\\n\",\n       \"21         -40.780573\\n\",\n       \"22          -1.502418\\n\",\n       \"23          -1.502418\\n\",\n       \"24          -1.502418\\n\",\n       \"25          -1.502418\\n\",\n       \"26          23.068044\\n\",\n       \"27          23.068044\\n\",\n       \"28          23.068044\\n\",\n       \"29          23.068044\\n\",\n       \"..                ...\\n\",\n       \"122          6.423522\\n\",\n       \"123          6.423522\\n\",\n       \"124          6.423522\\n\",\n       \"125          6.423522\\n\",\n       \"126          6.423522\\n\",\n       \"127          6.423522\\n\",\n       \"128          6.423522\\n\",\n       \"129          6.423522\\n\",\n       \"130          6.423522\\n\",\n       \"131          6.423522\\n\",\n       \"132          6.423522\\n\",\n       \"133          6.423522\\n\",\n       \"134          6.423522\\n\",\n       \"135          6.423522\\n\",\n       \"136          0.052387\\n\",\n       \"137          0.052387\\n\",\n       \"138          0.052387\\n\",\n       \"139          0.052387\\n\",\n       \"140          0.052387\\n\",\n       \"141          0.052387\\n\",\n       \"142          0.052387\\n\",\n       \"143          0.052387\\n\",\n       \"144          0.052387\\n\",\n       \"145          0.052387\\n\",\n       \"146          0.052387\\n\",\n       \"147          0.052387\\n\",\n       \"148          0.052387\\n\",\n       \"149          0.052387\\n\",\n       \"150          0.052387\\n\",\n       \"151          0.052387\\n\",\n       \"\\n\",\n       \"[152 rows x 1 columns]\"\n      ]\n     },\n     \"execution_count\": 5,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Set up linear regression parameters.\\n\",\n    \"num_iterations = 50000  # Number of gradient descent iterations.\\n\",\n    \"regularization_param = 0  # Helps to fight model overfitting.\\n\",\n    \"learning_rate = 0.02  # The size of the gradient descent step.\\n\",\n    \"polynomial_degree = 15  # The degree of additional polynomial features.\\n\",\n    \"sinusoid_degree = 15  # The degree of sinusoid parameter multipliers of additional features.\\n\",\n    \"normalize_data = True  # Flag that indicates that data needs to be normalized before training.\\n\",\n    \"\\n\",\n    \"# Init linear regression instance.\\n\",\n    \"linear_regression = LinearRegression(x, y, polynomial_degree, sinusoid_degree, normalize_data)\\n\",\n    \"\\n\",\n    \"# Train linear regression.\\n\",\n    \"(theta, cost_history) = linear_regression.train(\\n\",\n    \"    learning_rate,\\n\",\n    \"    regularization_param,\\n\",\n    \"    num_iterations\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Print training results.\\n\",\n    \"print('Initial cost: {:.2f}'.format(cost_history[0]))\\n\",\n    \"print('Optimized cost: {:.2f}'.format(cost_history[-1]))\\n\",\n    \"\\n\",\n    \"# Print model parameters\\n\",\n    \"theta_table = pd.DataFrame({'Model Parameters': theta.flatten()})\\n\",\n    \"theta_table\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Analyze Gradient Descent Progress\\n\",\n    \"\\n\",\n    \"The plot below illustrates how the cost function value changes over each iteration. You should see it decreasing. \\n\",\n    \"\\n\",\n    \"In case if cost function value increases it may mean that gradient descent missed the cost function minimum and with each step it goes further away from it. In this case you might want to reduce the learning rate parameter (the size of the gradient step).\\n\",\n    \"\\n\",\n    \"From this plot you may also get an understanding of how many iterations you need to get an optimal value of the cost function. In current example you may see that there is no much sense to increase the number of gradient descent iterations over 500 since it will not reduce cost function significantly.  \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Plot gradient descent progress.\\n\",\n    \"plt.plot(range(num_iterations), cost_history)\\n\",\n    \"plt.xlabel('Iterations')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.title('Gradient Descent Progress')\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Model Predictions\\n\",\n    \"\\n\",\n    \"Since our model is trained now we may plot its predictions over the training and test datasets to see how well it fits the data.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Get model predictions for the trainint set.\\n\",\n    \"predictions_num = 1000\\n\",\n    \"x_predictions = np.linspace(x.min(), x.max(), predictions_num).reshape(predictions_num, 1);\\n\",\n    \"y_predictions = linear_regression.predict(x_predictions)\\n\",\n    \"\\n\",\n    \"# Plot training data with predictions.\\n\",\n    \"plt.scatter(x, y, label='Training Dataset')\\n\",\n    \"plt.plot(x_predictions, y_predictions, 'r', label='Prediction')\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"You may see from the plot how well our model predicts the training set examples.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/linear_regression/univariate_linear_regression_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Univariate Linear Regression Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Linear Regression](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/linear_regression)\\n\",\n    \"> - ⚙️[Linear Regression Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/linear_regression/linear_regression.py)\\n\",\n    \"\\n\",\n    \"**Linear regression** is a linear model, e.g. a model that assumes a linear relationship between the input variables `(x)` and the single output variable `(y)`. More specifically, that output variable `(y)` can be calculated from a linear combination of the input variables `(x)`.\\n\",\n    \"\\n\",\n    \"**Univariate Linear Regression** is a linear regression that has only _one_ input parameter and one output label.\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this demo we will build a model that will predict `Happiness.Score` for the countries based on `Economy.GDP.per.Capita` parameter.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of linear_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of linear_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [linear_regression](https://github.com/trekhleb/homemade-machine-learning/blob/master/src/linear_regression/linear_regression.py) - custom implementation of linear regression\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"# Import custom linear regression implementation.\\n\",\n    \"from homemade.linear_regression import LinearRegression\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use [World Happindes Dataset](https://www.kaggle.com/unsdsn/world-happiness#2017.csv) for 2017.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Country</th>\\n\",\n       \"      <th>Happiness.Rank</th>\\n\",\n       \"      <th>Happiness.Score</th>\\n\",\n       \"      <th>Whisker.high</th>\\n\",\n       \"      <th>Whisker.low</th>\\n\",\n       \"      <th>Economy..GDP.per.Capita.</th>\\n\",\n       \"      <th>Family</th>\\n\",\n       \"      <th>Health..Life.Expectancy.</th>\\n\",\n       \"      <th>Freedom</th>\\n\",\n       \"      <th>Generosity</th>\\n\",\n       \"      <th>Trust..Government.Corruption.</th>\\n\",\n       \"      <th>Dystopia.Residual</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>Norway</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>7.537</td>\\n\",\n       \"      <td>7.594445</td>\\n\",\n       \"      <td>7.479556</td>\\n\",\n       \"      <td>1.616463</td>\\n\",\n       \"      <td>1.533524</td>\\n\",\n       \"      <td>0.796667</td>\\n\",\n       \"      <td>0.635423</td>\\n\",\n       \"      <td>0.362012</td>\\n\",\n       \"      <td>0.315964</td>\\n\",\n       \"      <td>2.277027</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>Denmark</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>7.522</td>\\n\",\n       \"      <td>7.581728</td>\\n\",\n       \"      <td>7.462272</td>\\n\",\n       \"      <td>1.482383</td>\\n\",\n       \"      <td>1.551122</td>\\n\",\n       \"      <td>0.792566</td>\\n\",\n       \"      <td>0.626007</td>\\n\",\n       \"      <td>0.355280</td>\\n\",\n       \"      <td>0.400770</td>\\n\",\n       \"      <td>2.313707</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>Iceland</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>7.504</td>\\n\",\n       \"      <td>7.622030</td>\\n\",\n       \"      <td>7.385970</td>\\n\",\n       \"      <td>1.480633</td>\\n\",\n       \"      <td>1.610574</td>\\n\",\n       \"      <td>0.833552</td>\\n\",\n       \"      <td>0.627163</td>\\n\",\n       \"      <td>0.475540</td>\\n\",\n       \"      <td>0.153527</td>\\n\",\n       \"      <td>2.322715</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>Switzerland</td>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>7.494</td>\\n\",\n       \"      <td>7.561772</td>\\n\",\n       \"      <td>7.426227</td>\\n\",\n       \"      <td>1.564980</td>\\n\",\n       \"      <td>1.516912</td>\\n\",\n       \"      <td>0.858131</td>\\n\",\n       \"      <td>0.620071</td>\\n\",\n       \"      <td>0.290549</td>\\n\",\n       \"      <td>0.367007</td>\\n\",\n       \"      <td>2.276716</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>Finland</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>7.469</td>\\n\",\n       \"      <td>7.527542</td>\\n\",\n       \"      <td>7.410458</td>\\n\",\n       \"      <td>1.443572</td>\\n\",\n       \"      <td>1.540247</td>\\n\",\n       \"      <td>0.809158</td>\\n\",\n       \"      <td>0.617951</td>\\n\",\n       \"      <td>0.245483</td>\\n\",\n       \"      <td>0.382612</td>\\n\",\n       \"      <td>2.430182</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>Netherlands</td>\\n\",\n       \"      <td>6</td>\\n\",\n       \"      <td>7.377</td>\\n\",\n       \"      <td>7.427426</td>\\n\",\n       \"      <td>7.326574</td>\\n\",\n       \"      <td>1.503945</td>\\n\",\n       \"      <td>1.428939</td>\\n\",\n       \"      <td>0.810696</td>\\n\",\n       \"      <td>0.585384</td>\\n\",\n       \"      <td>0.470490</td>\\n\",\n       \"      <td>0.282662</td>\\n\",\n       \"      <td>2.294804</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>Canada</td>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>7.316</td>\\n\",\n       \"      <td>7.384403</td>\\n\",\n       \"      <td>7.247597</td>\\n\",\n       \"      <td>1.479204</td>\\n\",\n       \"      <td>1.481349</td>\\n\",\n       \"      <td>0.834558</td>\\n\",\n       \"      <td>0.611101</td>\\n\",\n       \"      <td>0.435540</td>\\n\",\n       \"      <td>0.287372</td>\\n\",\n       \"      <td>2.187264</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>New Zealand</td>\\n\",\n       \"      <td>8</td>\\n\",\n       \"      <td>7.314</td>\\n\",\n       \"      <td>7.379510</td>\\n\",\n       \"      <td>7.248490</td>\\n\",\n       \"      <td>1.405706</td>\\n\",\n       \"      <td>1.548195</td>\\n\",\n       \"      <td>0.816760</td>\\n\",\n       \"      <td>0.614062</td>\\n\",\n       \"      <td>0.500005</td>\\n\",\n       \"      <td>0.382817</td>\\n\",\n       \"      <td>2.046456</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>Sweden</td>\\n\",\n       \"      <td>9</td>\\n\",\n       \"      <td>7.284</td>\\n\",\n       \"      <td>7.344095</td>\\n\",\n       \"      <td>7.223905</td>\\n\",\n       \"      <td>1.494387</td>\\n\",\n       \"      <td>1.478162</td>\\n\",\n       \"      <td>0.830875</td>\\n\",\n       \"      <td>0.612924</td>\\n\",\n       \"      <td>0.385399</td>\\n\",\n       \"      <td>0.384399</td>\\n\",\n       \"      <td>2.097538</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>Australia</td>\\n\",\n       \"      <td>10</td>\\n\",\n       \"      <td>7.284</td>\\n\",\n       \"      <td>7.356651</td>\\n\",\n       \"      <td>7.211349</td>\\n\",\n       \"      <td>1.484415</td>\\n\",\n       \"      <td>1.510042</td>\\n\",\n       \"      <td>0.843887</td>\\n\",\n       \"      <td>0.601607</td>\\n\",\n       \"      <td>0.477699</td>\\n\",\n       \"      <td>0.301184</td>\\n\",\n       \"      <td>2.065211</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"       Country  Happiness.Rank  Happiness.Score  Whisker.high  Whisker.low  \\\\\\n\",\n       \"0       Norway               1            7.537      7.594445     7.479556   \\n\",\n       \"1      Denmark               2            7.522      7.581728     7.462272   \\n\",\n       \"2      Iceland               3            7.504      7.622030     7.385970   \\n\",\n       \"3  Switzerland               4            7.494      7.561772     7.426227   \\n\",\n       \"4      Finland               5            7.469      7.527542     7.410458   \\n\",\n       \"5  Netherlands               6            7.377      7.427426     7.326574   \\n\",\n       \"6       Canada               7            7.316      7.384403     7.247597   \\n\",\n       \"7  New Zealand               8            7.314      7.379510     7.248490   \\n\",\n       \"8       Sweden               9            7.284      7.344095     7.223905   \\n\",\n       \"9    Australia              10            7.284      7.356651     7.211349   \\n\",\n       \"\\n\",\n       \"   Economy..GDP.per.Capita.    Family  Health..Life.Expectancy.   Freedom  \\\\\\n\",\n       \"0                  1.616463  1.533524                  0.796667  0.635423   \\n\",\n       \"1                  1.482383  1.551122                  0.792566  0.626007   \\n\",\n       \"2                  1.480633  1.610574                  0.833552  0.627163   \\n\",\n       \"3                  1.564980  1.516912                  0.858131  0.620071   \\n\",\n       \"4                  1.443572  1.540247                  0.809158  0.617951   \\n\",\n       \"5                  1.503945  1.428939                  0.810696  0.585384   \\n\",\n       \"6                  1.479204  1.481349                  0.834558  0.611101   \\n\",\n       \"7                  1.405706  1.548195                  0.816760  0.614062   \\n\",\n       \"8                  1.494387  1.478162                  0.830875  0.612924   \\n\",\n       \"9                  1.484415  1.510042                  0.843887  0.601607   \\n\",\n       \"\\n\",\n       \"   Generosity  Trust..Government.Corruption.  Dystopia.Residual  \\n\",\n       \"0    0.362012                       0.315964           2.277027  \\n\",\n       \"1    0.355280                       0.400770           2.313707  \\n\",\n       \"2    0.475540                       0.153527           2.322715  \\n\",\n       \"3    0.290549                       0.367007           2.276716  \\n\",\n       \"4    0.245483                       0.382612           2.430182  \\n\",\n       \"5    0.470490                       0.282662           2.294804  \\n\",\n       \"6    0.435540                       0.287372           2.187264  \\n\",\n       \"7    0.500005                       0.382817           2.046456  \\n\",\n       \"8    0.385399                       0.384399           2.097538  \\n\",\n       \"9    0.477699                       0.301184           2.065211  \"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/world-happiness-report-2017.csv')\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 12 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Print histograms for each feature to see how they vary.\\n\",\n    \"histohrams = data.hist(grid=False, figsize=(10, 10))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Split the Data Into Training and Test Subsets\\n\",\n    \"\\n\",\n    \"In this step we will split our dataset into _training_ and _testing_ subsets (in proportion 80/20%).\\n\",\n    \"\\n\",\n    \"Training data set will be used for training of our linear model. Testing dataset will be used for validating of the model. All data from testing dataset will be new to model and we may check how accurate are model predictions.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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9Xud8C61O+qY8OhKgJSU87zltVz/+Grq6vc2tXv946tTbrcQyHmTTjbZvn071dXVVFdX07lzZ7p27dr0ec+ePb7auPTSS1m/fn3MOvfeey8PPvhgOkRm8ODB9OjRg759+9KzZ0+uuuoqdu7cGfOcxsZGpk2blpb+w3n88cdZt25d2ts1CoObnlzbpOxD1O9Vbnpybczz5i2vZdC0hRw28SkGTVvIvOW1zY5PX7C+SdmHqKvfy/QFsf8PiwGb4cegQ4cOrFixAoApU6aw//77c8011zSro6qoKiUl3mPn73//+7j9XHnllakLG8bs2bObBqVrr72W0aNH88ILL0StH1L4EydOTKscjz/+OCUlJfTs2TOt7Rp5yKo58MJU2LkJ2naDIZP4bLd39sjPdtdHbcbP7H3zDu+cNdHKi4mCm+HHG/3TwTvvvEOvXr347ne/S+/evfn4448ZO3YsNTU19O7dm6lTpzbVHTx4MCtWrKChoYGqqiomTpxIv379OP744/n0008BuPHGG7nzzjub6k+cOJGBAwfSo0cPXn31VQC+/PJLzjnnHHr16sW5555LTU1N02AUjdatW/PLX/6SDRs2sHatM2saOXIkRx99NL1792bWLCf3xsSJE9m1axfV1dVcfPHFUes1NDTwve99jz59+nDUUUdx9913A7BhwwaGDRvG0Ucfzbe//W3efvttXn75ZZ5++mnGjx9PdXU1H3zwQZruvpF3rJoDT46DnRsBdf4+OY6zShJNcOZv9t6lqsLz3GjlxURBzfAzabtbt24df/jDH6ipqQFg2rRptG/fnoaGBk4++WTOPfdcevXq1eycnTt3cuKJJzJt2jSuvvpq7r//fs9ZtaqyZMkS5s+fz9SpU3nmmWe455576Ny5M4899hgrV65kwIABvuRs1aoVffv2Zd26dfTu3ZsHHniA9u3bs3v3bmpqajjnnHOYNm0as2bNajaAeNV7++232bZtG6tXO/d0xw4n7evYsWOZNWsWRxxxBIsWLeLHP/4xzz77LGeeeSbnnnsuo0bFynFuFDwvTIX6iNl1fR0TW89h/leDW1Svqoi+N8PP7H3CsB7N9ABARVkpE4b1SFDwwqOgZviZtN0dccQRTcoe4KGHHmLAgAEMGDCAt956izfffLPFORUVFZxxxhkAHH300VFnvaNHj25R55VXXuGCCy4AoF+/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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Split data set on training and test sets with proportions 80/20.\\n\",\n    \"# Function sample() returns a random sample of items.\\n\",\n    \"train_data = data.sample(frac=0.8)\\n\",\n    \"test_data = data.drop(train_data.index)\\n\",\n    \"\\n\",\n    \"# Decide what fields we want to process.\\n\",\n    \"input_param_name = 'Economy..GDP.per.Capita.'\\n\",\n    \"output_param_name = 'Happiness.Score'\\n\",\n    \"\\n\",\n    \"# Split training set input and output.\\n\",\n    \"x_train = train_data[[input_param_name]].values\\n\",\n    \"y_train = train_data[[output_param_name]].values\\n\",\n    \"\\n\",\n    \"# Split test set input and output.\\n\",\n    \"x_test = test_data[[input_param_name]].values\\n\",\n    \"y_test = test_data[[output_param_name]].values\\n\",\n    \"\\n\",\n    \"# Plot training data.\\n\",\n    \"plt.scatter(x_train, y_train, label='Training Dataset')\\n\",\n    \"plt.scatter(x_test, y_test, label='Test Dataset')\\n\",\n    \"plt.xlabel(input_param_name)\\n\",\n    \"plt.ylabel(output_param_name)\\n\",\n    \"plt.title('Countries Happines')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we may visualize the data sets to see theirs shape.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train Linear Regression Model\\n\",\n    \"\\n\",\n    \"> ☝🏻This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"- `polynomial_degree` - this parameter will allow you to add additional polynomial features of certain degree. More features - more curved the line will be.\\n\",\n    \"- `num_iterations` - this is the number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `learning_rate` - this is the size of the gradient descent step. Small learning step will make algorithm work longer and will probably require more iterations to reach the minimum of the cost function. Big learning steps may couse missing the minimum and growth of the cost function value with new iterations.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `polynomial_degree` - the degree of additional polynomial features (`x1^2 * x2, x1^2 * x2^2, ...`). This will allow you to curve the predictions.\\n\",\n    \"- `sinusoid_degree` - the degree of sinusoid parameter multipliers of additional features (`sin(x), sin(2*x), ...`). This will allow you to curve the predictions by adding sinusoidal component to the prediction curve.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Initial cost: 226677.33\\n\",\n      \"Optimized cost: 3143.57\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Model Parameters</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>5.419745</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>0.932169</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   Model Parameters\\n\",\n       \"0          5.419745\\n\",\n       \"1          0.932169\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Set up linear regression parameters.\\n\",\n    \"num_iterations = 500  # Number of gradient descent iterations.\\n\",\n    \"regularization_param = 0  # Helps to fight model overfitting.\\n\",\n    \"learning_rate = 0.01  # The size of the gradient descent step.\\n\",\n    \"polynomial_degree = 0  # The degree of additional polynomial features.\\n\",\n    \"sinusoid_degree = 0  # The degree of sinusoid parameter multipliers of additional features.\\n\",\n    \"\\n\",\n    \"# Init linear regression instance.\\n\",\n    \"linear_regression = LinearRegression(x_train, y_train, polynomial_degree, sinusoid_degree)\\n\",\n    \"\\n\",\n    \"# Train linear regression.\\n\",\n    \"(theta, cost_history) = linear_regression.train(\\n\",\n    \"    learning_rate,\\n\",\n    \"    regularization_param,\\n\",\n    \"    num_iterations\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Print training results.\\n\",\n    \"print('Initial cost: {:.2f}'.format(cost_history[0]))\\n\",\n    \"print('Optimized cost: {:.2f}'.format(cost_history[-1]))\\n\",\n    \"\\n\",\n    \"# Print model parameters\\n\",\n    \"theta_table = pd.DataFrame({'Model Parameters': theta.flatten()})\\n\",\n    \"theta_table.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Analyze Gradient Descent Progress\\n\",\n    \"\\n\",\n    \"The plot below illustrates how the cost function value changes over each iteration. You should see it decreasing. \\n\",\n    \"\\n\",\n    \"In case if cost function value increases it may mean that gradient descent missed the cost function minimum and with each step it goes further away from it. In this case you might want to reduce the learning rate parameter (the size of the gradient step).\\n\",\n    \"\\n\",\n    \"From this plot you may also get an understanding of how many iterations you need to get an optimal value of the cost function. In current example you may see that there is no much sense to increase the number of gradient descent iterations over 500 since it will not reduce cost function significantly.  \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Plot gradient descent progress.\\n\",\n    \"plt.plot(range(num_iterations), cost_history)\\n\",\n    \"plt.xlabel('Iterations')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.title('Gradient Descent Progress')\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Model Predictions\\n\",\n    \"\\n\",\n    \"Since our model is trained now we may plot its predictions over the training and test datasets to see how well it fits the data.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Get model predictions for the trainint set.\\n\",\n    \"predictions_num = 100\\n\",\n    \"x_predictions = np.linspace(x_train.min(), x_train.max(), predictions_num).reshape(predictions_num, 1);\\n\",\n    \"y_predictions = linear_regression.predict(x_predictions)\\n\",\n    \"\\n\",\n    \"# Plot training data with predictions.\\n\",\n    \"plt.scatter(x_train, y_train, label='Training Dataset')\\n\",\n    \"plt.scatter(x_test, y_test, label='Test Dataset')\\n\",\n    \"plt.plot(x_predictions, y_predictions, 'r', label='Prediction')\\n\",\n    \"plt.xlabel('Economy..GDP.per.Capita.')\\n\",\n    \"plt.ylabel('Happiness.Score')\\n\",\n    \"plt.title('Countries Happines')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Calculate the value of cost function for the training and test data set. The less this value is, the better.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train cost: 3143.57\\n\",\n      \"Test cost: 311.14\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"train_cost = linear_regression.get_cost(x_train, y_train, regularization_param)\\n\",\n    \"test_cost = linear_regression.get_cost(x_test, y_test, regularization_param)\\n\",\n    \"\\n\",\n    \"print('Train cost: {:.2f}'.format(train_cost))\\n\",\n    \"print('Test cost: {:.2f}'.format(test_cost))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's now render the table of prediction values that our trained model does for unknown data (for test dataset). You should see that predicted happiness score should be quite similar to the known happiness score fron the test dataset.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Economy GDP per Capita</th>\\n\",\n       \"      <th>Test Happiness Score</th>\\n\",\n       \"      <th>Predicted Happiness Score</th>\\n\",\n       \"      <th>Prediction Diff</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>1.443572</td>\\n\",\n       \"      <td>7.469</td>\\n\",\n       \"      <td>6.775403</td>\\n\",\n       \"      <td>0.693597</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>1.405706</td>\\n\",\n       \"      <td>7.314</td>\\n\",\n       \"      <td>6.680027</td>\\n\",\n       \"      <td>0.633974</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>1.252785</td>\\n\",\n       \"      <td>6.652</td>\\n\",\n       \"      <td>6.294850</td>\\n\",\n       \"      <td>0.357150</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>1.107353</td>\\n\",\n       \"      <td>6.635</td>\\n\",\n       \"      <td>5.928539</td>\\n\",\n       \"      <td>0.706461</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>1.530624</td>\\n\",\n       \"      <td>6.344</td>\\n\",\n       \"      <td>6.994667</td>\\n\",\n       \"      <td>-0.650667</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>0.909784</td>\\n\",\n       \"      <td>6.003</td>\\n\",\n       \"      <td>5.430905</td>\\n\",\n       \"      <td>0.572094</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>1.320879</td>\\n\",\n       \"      <td>5.611</td>\\n\",\n       \"      <td>6.466366</td>\\n\",\n       \"      <td>-0.855366</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>1.101803</td>\\n\",\n       \"      <td>5.525</td>\\n\",\n       \"      <td>5.914559</td>\\n\",\n       \"      <td>-0.389559</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>0.932537</td>\\n\",\n       \"      <td>5.493</td>\\n\",\n       \"      <td>5.488215</td>\\n\",\n       \"      <td>0.004785</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>0.925579</td>\\n\",\n       \"      <td>5.311</td>\\n\",\n       \"      <td>5.470689</td>\\n\",\n       \"      <td>-0.159689</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   Economy GDP per Capita  Test Happiness Score  Predicted Happiness Score  \\\\\\n\",\n       \"0                1.443572                 7.469                   6.775403   \\n\",\n       \"1                1.405706                 7.314                   6.680027   \\n\",\n       \"2                1.252785                 6.652                   6.294850   \\n\",\n       \"3                1.107353                 6.635                   5.928539   \\n\",\n       \"4                1.530624                 6.344                   6.994667   \\n\",\n       \"5                0.909784                 6.003                   5.430905   \\n\",\n       \"6                1.320879                 5.611                   6.466366   \\n\",\n       \"7                1.101803                 5.525                   5.914559   \\n\",\n       \"8                0.932537                 5.493                   5.488215   \\n\",\n       \"9                0.925579                 5.311                   5.470689   \\n\",\n       \"\\n\",\n       \"   Prediction Diff  \\n\",\n       \"0         0.693597  \\n\",\n       \"1         0.633974  \\n\",\n       \"2         0.357150  \\n\",\n       \"3         0.706461  \\n\",\n       \"4        -0.650667  \\n\",\n       \"5         0.572094  \\n\",\n       \"6        -0.855366  \\n\",\n       \"7        -0.389559  \\n\",\n       \"8         0.004785  \\n\",\n       \"9        -0.159689  \"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"test_predictions = linear_regression.predict(x_test)\\n\",\n    \"\\n\",\n    \"test_predictions_table = pd.DataFrame({\\n\",\n    \"    'Economy GDP per Capita': x_test.flatten(),\\n\",\n    \"    'Test Happiness Score': y_test.flatten(),\\n\",\n    \"    'Predicted Happiness Score': test_predictions.flatten(),\\n\",\n    \"    'Prediction Diff': (y_test - test_predictions).flatten()\\n\",\n    \"})\\n\",\n    \"\\n\",\n    \"test_predictions_table.head(10)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/logistic_regression/logistic_regression_with_linear_boundary_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Logistic Regression With Linear Boundary Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Logistic Regression](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/logistic_regression)\\n\",\n    \"> - ⚙️[Logistic Regression Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py)\\n\",\n    \"\\n\",\n    \"**Logistic regression** is the appropriate regression analysis to conduct when the dependent variable is dichotomous (binary). Like all regression analyses, the logistic regression is a predictive analysis. Logistic regression is used to describe data and to explain the relationship between one dependent binary variable and one or more nominal, ordinal, interval or ratio-level independent variables.\\n\",\n    \"\\n\",\n    \"Logistic Regression is used when the dependent variable (target) is categorical.\\n\",\n    \"\\n\",\n    \"For example:\\n\",\n    \"\\n\",\n    \"- To predict whether an email is spam (`1`) or (`0`).\\n\",\n    \"- Whether online transaction is fraudulent (`1`) or not (`0`).\\n\",\n    \"- Whether the tumor is malignant (`1`) or not (`0`).\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this example we will try to classify Iris flowers into tree categories (`Iris setosa`, `Iris virginica` and `Iris versicolor`) based on `petal_length` and `petal_width` parameters.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of logistic_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of logistic_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [logistic_regression](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py) - custom implementation of logistic regression\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"# Import custom logistic regression implementation.\\n\",\n    \"from homemade.logistic_regression import LogisticRegression\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use [Iris data set](http://archive.ics.uci.edu/ml/datasets/Iris).\\n\",\n    \"\\n\",\n    \"The data set consists of several samples from each of three species of Iris (`Iris setosa`, `Iris virginica` and `Iris versicolor`). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters. Based on the combination of these four features, [Ronald Fisher](https://en.wikipedia.org/wiki/Iris_flower_data_set) developed a linear discriminant model to distinguish the species from each other.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>sepal_length</th>\\n\",\n       \"      <th>sepal_width</th>\\n\",\n       \"      <th>petal_length</th>\\n\",\n       \"      <th>petal_width</th>\\n\",\n       \"      <th>class</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>5.1</td>\\n\",\n       \"      <td>3.5</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>4.9</td>\\n\",\n       \"      <td>3.0</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>4.7</td>\\n\",\n       \"      <td>3.2</td>\\n\",\n       \"      <td>1.3</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>4.6</td>\\n\",\n       \"      <td>3.1</td>\\n\",\n       \"      <td>1.5</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>5.0</td>\\n\",\n       \"      <td>3.6</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>5.4</td>\\n\",\n       \"      <td>3.9</td>\\n\",\n       \"      <td>1.7</td>\\n\",\n       \"      <td>0.4</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>4.6</td>\\n\",\n       \"      <td>3.4</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.3</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>5.0</td>\\n\",\n       \"      <td>3.4</td>\\n\",\n       \"      <td>1.5</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>4.4</td>\\n\",\n       \"      <td>2.9</td>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"      <td>0.2</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>4.9</td>\\n\",\n       \"      <td>3.1</td>\\n\",\n       \"      <td>1.5</td>\\n\",\n       \"      <td>0.1</td>\\n\",\n       \"      <td>SETOSA</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   sepal_length  sepal_width  petal_length  petal_width   class\\n\",\n       \"0           5.1          3.5           1.4          0.2  SETOSA\\n\",\n       \"1           4.9          3.0           1.4          0.2  SETOSA\\n\",\n       \"2           4.7          3.2           1.3          0.2  SETOSA\\n\",\n       \"3           4.6          3.1           1.5          0.2  SETOSA\\n\",\n       \"4           5.0          3.6           1.4          0.2  SETOSA\\n\",\n       \"5           5.4          3.9           1.7          0.4  SETOSA\\n\",\n       \"6           4.6          3.4           1.4          0.3  SETOSA\\n\",\n       \"7           5.0          3.4           1.5          0.2  SETOSA\\n\",\n       \"8           4.4          2.9           1.4          0.2  SETOSA\\n\",\n       \"9           4.9          3.1           1.5          0.1  SETOSA\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/iris.csv')\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's take two parameters `petal_length` and `petal_width` for each flower into consideration and plot the dependency of the Iris class on these two parameters.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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V5599tma/g1N351NO3bsoKysjM6dO/Phhx/yrW99K9shSYalYxGbMMcMWz+RSJ1FJmoykpWtGAszMXy+LrH2kEaOHMmcOXNYtGgR27dvr/NXezxz587lvffeo6ysjKuvvrqmvXr67muuuYa7776bJ554Imq//v3789prr1FZWRl7yJppu2vbvHkz77//Pr169YobR8+ePXn//ffZsmVLVHvt6b6rnzG89957uDv33HNPo+9Pmpd0LGIT5phh6ycSqbPIRE1GsrIVY2Emhr27JdYe0l577cWJJ57IRRddVPPXfxgtW7bk9ttvZ8qUKXzyySesXr2aN998s2Z79dTatfXs2ZPy8nKuvvpqPJgIcc2aNcyaNYuhQ4eyfft2pkyZAkRu/VxxxRWMGTOGPffcM24Mbdu25YILLuDyyy+vSTZTpkxh+/btUetCAOy5557ceeed/Nd//Re7d++OdzhppsIueNOqRStaWstG+4WtgQhbP5FInUUmajKSla0YCzMxDP0ttIpZe6FVm0h7kkaPHs1rr70WlRhinzFUP2SurUuXLowePZp77rmHrVu3csEFF9CvXz8OOeQQVqxYwYQJE+rsc9999/Hhhx/Sq1cvBgwYwJgxY9h3330xM5566immT5/OQQcdRO/evSkuLub666+v2XfOnDl069at5uvll1/mhhtuoLi4mN69e3PQQQcxffp0nnrqKSLrLUUbNGgQhxxyiJYPLTDDDhzGhGMm0KVtFwyjS9suTDx2ItcOvjaq7drB1zLx2ImN9ptwzIRQD1HjnTfevmH7Jdo3W7IVY8FOu53qUUkSTdNui+QeTbvdmEPOUiIQyVHpqFnIJbked+EmBhHJSemoWcgl+RB3YT5jEJGclY6ahVySD3ErMYhITklHzUIuyYe4lRhEJKeko2Yhl+RD3EoMIpJT0lGzkEvyIW4lhhQ58cQTee6556Labr/9dk477TQGDBgAwN/+9jf23ntvysrK6Nu3Lz//+c+j+s+ePZsjjjiCvn37UlZWxtlnn837778PwJgxY3j88ccBGDJkCOXlX404q6ioYMiQITXnGD58eM22Z599lvLycvr168egQYO44ooros5ZVlbGOeeck5pfgkgKpKNmIZfkQ9walZQiDU27ffHFF9e0HXfcccycOZMdO3YwaNAgvvvd7zJ48GCWLVvGT3/6U5555pma8f/PPPMMa9asoXv37nXO99FHH/Hss89y2mmn1RvTsmXLuOSSS5g1axZ9+/alsrKSSZMm1WxfuXIllZWVzJs3j23bttG2bdtU/CpEkjbswGGhC99y6QM1rFyPu2ATQ6rHESc67XabNm0oKytj/fr1ANx4441ceeWVUUVhDc1eOm7cOK677roGE8NNN93EVVddRd++fYHI/Es/+clParZPmzaN888/n5UrVzJjxgzOPffchN6zSKIysZZDrtUI5Fo8YRRkYkjHOOLa026PHDkyatrteD799FPefPNNjj/+eCAyVXbsraWGHH300Tz11FPMnTuXdu3axe2zbNmyOreOanv00Ud5/vnnWbVqFXfddZcSg6RVvP/vwq7bEK9fPtQ25Fo8YRXkM4Z0jSOub9rt2ubNm8ehhx5K165dOeWUU+jcue5IhE2bNlFWVkbv3r255ZZb6j3f+PHjmThxYpNiraiooKSkhO7duzN06FAWL17MJ5980qRjiYQR7/+7sOs2xOuXD7UNuRZPWAWZGNI1jjjMtNvHHXccr732GsuXL+f++++vWSqzf//+LFq0CICOHTuyZMkSxo4dy9atW+s930knncSOHTuYP39+3O39+/evM/12tWnTprFq1Sp69OhBz5492bx5c52pvUVSKRNrOeRajUCuxRNWQSaGdI0jTmTa7dLSUn71q19x4403AvCLX/yC6667jpUrV9b02b59e6PnHD9+PDfddFPcbePGjeP666/njTfeAKCqqop7772XqqoqHnvsMZYuXcqaNWtYs2YNM2bM0EypklaZWMsh12oEci2esAoyMaRzHHG8abfr8+///u/84x//YM2aNQwcOJA77riD73//+/Tp04fBgwezcuXKRu/7f/vb36ZTp05xtx1yyCHcfvvtjB49moMPPpgBAwbwzjvvMG/ePLp27cp+++1X0/f4449nxYoVbNiwIbE3LBJSvP/vwq7bEK9fPtQ25Fo8YRXstNv5OFIgn2jabYlHo5KyG0/YabcLNjFIeunfQyT35MR6DGa2PzAF+DrgwCR3vyOmjwF3AN8GtgNj3H1ROuMSkWhh/5IfduCwhPo2Z8lcCeTSVUQ8ab1iMLMuQBd3X2Rm7YCFwOnuvqJWn28DPyWSGI4E7nD3Ixs6bn1XDH379q23bkAyx91ZtWqVrhjyROxYe4jc069dNwCRe+Mj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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# List of suppported Iris classes.\\n\",\n    \"iris_types = ['SETOSA', 'VERSICOLOR', 'VIRGINICA']\\n\",\n    \"\\n\",\n    \"# Pick the Iris parameters for consideration.\\n\",\n    \"x_axis = 'petal_length'\\n\",\n    \"y_axis = 'petal_width'\\n\",\n    \"\\n\",\n    \"# Plot the scatter for every type of Iris.\\n\",\n    \"for iris_type in iris_types:\\n\",\n    \"    plt.scatter(\\n\",\n    \"        data[x_axis][data['class'] == iris_type],\\n\",\n    \"        data[y_axis][data['class'] == iris_type],\\n\",\n    \"        label=iris_type\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"# Plot the data.    \\n\",\n    \"plt.xlabel(x_axis + ' (cm)')\\n\",\n    \"plt.ylabel(y_axis + ' (cm)')\\n\",\n    \"plt.title('Iris Types')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Prepara the Data for Training\\n\",\n    \"\\n\",\n    \"Let's extract `petal_length` and `petal_width` data and form a training feature set and let's also form out training labels set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Get total number of Iris examples.\\n\",\n    \"num_examples = data.shape[0]\\n\",\n    \"\\n\",\n    \"# Get features.\\n\",\n    \"x_train = data[[x_axis, y_axis]].values.reshape((num_examples, 2))\\n\",\n    \"# Get labels.\\n\",\n    \"y_train = data['class'].values.reshape((num_examples, 1))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train Logistic Regression Model\\n\",\n    \"\\n\",\n    \"> ☝🏻This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"- `polynomial_degree` - this parameter will allow you to add additional polynomial features of certain degree. More features - more curved the line will be.\\n\",\n    \"- `max_iterations` - this is the maximum number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `polynomial_degree` - the degree of additional polynomial features (`x1^2 * x2, x1^2 * x2^2, ...`). This will allow you to curve the predictions.\\n\",\n    \"- `sinusoid_degree` - the degree of sinusoid parameter multipliers of additional features (`sin(x), sin(2*x), ...`). This will allow you to curve the predictions by adding sinusoidal component to the prediction curve.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Theta 1</th>\\n\",\n       \"      <th>Theta 2</th>\\n\",\n       \"      <th>Theta 3</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>SETOSA</th>\\n\",\n       \"      <td>30.291853</td>\\n\",\n       \"      <td>-8.404206</td>\\n\",\n       \"      <td>-12.313125</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>VERSICOLOR</th>\\n\",\n       \"      <td>-2.858904</td>\\n\",\n       \"      <td>1.546523</td>\\n\",\n       \"      <td>-3.107221</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>VIRGINICA</th>\\n\",\n       \"      <td>-45.349540</td>\\n\",\n       \"      <td>5.766294</td>\\n\",\n       \"      <td>10.458614</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"              Theta 1   Theta 2    Theta 3\\n\",\n       \"SETOSA      30.291853 -8.404206 -12.313125\\n\",\n       \"VERSICOLOR  -2.858904  1.546523  -3.107221\\n\",\n       \"VIRGINICA  -45.349540  5.766294  10.458614\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Set up linear regression parameters.\\n\",\n    \"max_iterations = 1000  # Max number of gradient descent iterations.\\n\",\n    \"regularization_param = 0  # Helps to fight model overfitting.\\n\",\n    \"polynomial_degree = 0  # The degree of additional polynomial features.\\n\",\n    \"sinusoid_degree = 0  # The degree of sinusoid parameter multipliers of additional features.\\n\",\n    \"\\n\",\n    \"# Init logistic regression instance.\\n\",\n    \"logistic_regression = LogisticRegression(x_train, y_train, polynomial_degree, sinusoid_degree)\\n\",\n    \"\\n\",\n    \"# Train logistic regression.\\n\",\n    \"(thetas, costs) = logistic_regression.train(regularization_param, max_iterations)\\n\",\n    \"\\n\",\n    \"# Print model parameters that have been learned.\\n\",\n    \"pd.DataFrame(thetas, columns=['Theta 1', 'Theta 2', 'Theta 3'], index=['SETOSA', 'VERSICOLOR', 'VIRGINICA'])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Analyze Gradient Descent Progress\\n\",\n    \"\\n\",\n    \"The plot below illustrates how the cost function value changes over each iteration. You should see it decreasing. \\n\",\n    \"\\n\",\n    \"In case if cost function value increases it may mean that gradient descent missed the cost function minimum and with each step it goes further away from it.\\n\",\n    \"\\n\",\n    \"From this plot you may also get an understanding of how many iterations you need to get an optimal value of the cost function. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAYUAAAELCAYAAAA2mZrgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzt3Xl8VOX1+PHPmUnCZCNhCSQhLBHCEhaDRlqrIi5QtRbUUgVtK9WKtl+sW92ta21darULv1ZcqlYLtbZW6oJFpQrWLWzKIrLIEvadhJBt5vz+mJtxEiYLITeTZM779ZpX5j73zr3nOpiT+9z7nEdUFWOMMQbAE+0AjDHGtB2WFIwxxoRYUjDGGBNiScEYY0yIJQVjjDEhlhSMMcaEuJoUROQsEVklImtE5JYI6x8VkSXO6wsR2edmPMYYYxombo1TEBEv8AUwFigGPgEmq+qKera/Ghipqpe5EpAxxphGuXmlMApYo6rrVLUSmAVMaGD7ycBMF+MxxhjTCDeTQi9gU9hysdN2GBHpC+QC77gYjzHGmEbERTsAxyTgJVX1R1opIlOBqQDJycnHDx48uDVjM8aYdm/hwoW7VDWjse3cTAqbgd5hyzlOWySTgP+rb0eqOgOYAVBYWKhFRUUtFaMxxsQEEdnQlO3c7D76BMgTkVwRSSD4i3923Y1EZDDQBfjAxViMMcY0gWtJQVWrgWnAm8BK4EVVXS4i94rI+LBNJwGz1Mq1GmNM1Ll6T0FVXwder9N2Z53lu92MwRhjTNO1lRvNxph2rKqqiuLiYsrLy6MdSszz+Xzk5OQQHx/frM9bUjDGHLXi4mJSU1Pp168fIhLtcGKWqrJ7926Ki4vJzc1t1j6s9pEx5qiVl5fTrVs3SwhRJiJ069btqK7YLCkYY1qEJYS24Wi/h9hJCju/gLfuBnvIyZgO6/7772fo0KGMGDGCgoICPvroI8aMGcOgQYMoKCigoKCAiRMncv/994eWvV5v6P3vfvc7AGbMmMHgwYMZPHgwo0aNYsGCBaFjvPrqq4wcOZJjjz2W/Px8Hn/88VoxFBQUMGnSpFY975YUO/cU1syFBY9CWg6c8KNoR2OMaWEffPABr776KosWLaJTp07s2rWLyspKAF544QUKCwtrbX/77bcDkJKSwpIlS0Ltr776Ko8//jgLFiyge/fuLFq0iPPOO4+PP/6Ybt26MXXqVD7++GNycnKoqKhg/fr1oc+uXLkSv9/P/PnzOXjwIMnJye6feAuLnSuFr/0YBpwJc26D7cujHY0xpoVt3bqV7t2706lTJwC6d+9Odnb2Ee/nwQcf5OGHH6Z79+4AHHfccVx66aVMnz6dkpISqqur6datGwCdOnVi0KBBoc/OnDmT73//+4wbN45XXnmlBc6q9cVOUvB44Lw/gi8NXroMKsuiHZExpgWNGzeOTZs2MXDgQH7yk5/w7rvvhtZdcskloS6iG2+8scH9LF++nOOPP75WW2FhIcuXL6dr166MHz+evn37MnnyZF544QUCgUBou7/97W9MmjSJyZMnM3Nm+yz6HDvdRwApPeCCx+Ev58Obt8K3fxvtiIzpcO7593JWbDnQovvMz+7MXd8e2uA2KSkpLFy4kPnz5zNv3jwuuugiHnjgASBy91FzPfnkk3z22We89dZb/PrXv2bu3Lk888wzFBUV0b17d/r06UOvXr247LLL2LNnD127dm2R47aW2LlSqNH/dDjpWlj4DCx/OdrRGGNakNfrZcyYMdxzzz384Q9/4B//+McR7yM/P5+FCxfWalu4cCFDh36VlIYPH851113H3LlzQ8eYOXMmn3/+Of369aN///4cOHCgWcePtti6Uqhx+h2wfj7Mvgayj4MufaMdkTEdRmN/0btl1apVeDwe8vLyAFiyZAl9+/Zl2bJlR7Sfm266iZtvvpk5c+bQrVs3lixZwjPPPMNHH31EaWkpRUVFjBkzptYxAoEAL774Ip999lnoPsa8efO47777uOKKK1r0PN0Wm0nBGw/feQoeHw3/+BH88A3wxuZ/CmM6itLSUq6++mr27dtHXFwcAwYMYMaMGUycOJFLLrmExMREIHgD+q233qp3P+PHj2fz5s184xvfQERITU3l+eefJysri5KSEh566CGuvPJKEhMTSU5O5plnnmH+/Pn06tWr1o3t0aNHs2LFCrZu3UpWVpbr599SXJuj2S0tOp/CZy/BPy6HU34GZ/y8ZfZpTAxauXIlQ4YMiXYYxhHp+xCRhara6I2V2LunEG74RBj5PZj/CKx7t/HtjTGmg4vtpABw9kPQPQ/+ORUO7op2NMYYE1WWFBKSYeLTcGgP/OsnVgbDGBPTLCkAZA6Hcb+A1W/Ch3+MdjTGGBM1MZMU1u1fx7/W/Kv+DUZNhUHnwNw7YcuS+rczxpgOLGaSwnub3uPn7/+cksqSyBuIwITpkJwRLIOxey3sL4YDW6BkG5TugIO7oWwPHNoH5QegohT81a17IsYY46KYSQqZyZkAbDu4rf6NkrrCd56APevg98fBo0PhN0PgkUHw6zx4+Bh4KBce7AsP9IZf9Qq2r3m7lc7CGBPJaaedxptvvlmr7bHHHuPss88mMTExVPeooKCA5557DoB+/foxfPhwRowYwamnnsqGDRtCn41UghtgzJgx1DwSX1paypVXXkn//v05/vjjGTNmTGi74uJiJkyYQF5eHv379+eaa64JVWz973//y7nnnnvYOVRWVnLttdcyYMAA8vLymDBhAsXFxaH1NSW+hw0bxre//W327dvXgv8FvxIzI7ZqksL2su3kdcmrf8N+J8Pl/4Gdq0ADdV56eNvSWfDCRPjmL+FrVwWvOIwxrWry5MnMmjWLb37zm6G2WbNm8dBDD7Fp06ZapbHDzZs3j+7du3PXXXfxi1/8gieeeKLBEtzhfvSjH5Gbm8vq1avxeDx8+eWXrFixAlXlggsu4Mc//jGvvPIKfr+fqVOncvvtt/Pwww/Xew633XYbJSUlrFq1Cq/Xy5///GcuuOACPvroI0SExMTE0HnUVG2tKf/dklxNCiJyFvBbwAs8qaoPRNjmQuBuQIGlqnqxG7H0TOoJNHKlUKP3qOCrKQovg5evhDm3BEtyf+sRiOt0FJEaY47UxIkTueOOO6isrCQhIYH169ezZcsWevfu3aTPn3jiiaEJdiKV4K5r7dq1fPTRR7zwwgt4PMEOl9zcXHJzc3n77bfx+Xz88Ic/BIJ/4T/66KPk5uZyzz33RDx+WVkZf/7zn/nyyy/xer0A/PCHP+Tpp5/mnXfe4Ywzzjgs3k8//bRJ53akXOs+EhEvMB04G8gHJotIfp1t8oBbgZNUdShwrVvxZCRl4BFP05LCkeiUAhf+BUbfCIv/As+Oh9KdLXsMY0yDunbtyqhRo3jjjTeA4FXChRdeiIiwdu3aWt1H8+fPP+zzc+bM4bzzzgMaLsFdY/ny5aFZ2yKtq1t6u3PnzvTp04c1a9ZEjH/NmjX06dOHzp0712qvKdkdzu/38/bbbzN+/PgG/os0n5tXCqOANaq6DkBEZgETgBVh21wBTFfVvQCqusOtYOI8cXRP7N7ySQGCczWcfgf0GBIc6/DEaTB5ZvBRV2NizRu3wLbPWnafmcPh7MM6Gmqp6UKaMGECs2bN4qmnngKgf//+9XYfnXbaaezZs4eUlBTuu+8+oP4S3FOmTGnRUzpShw4doqCggM2bNzNkyBDGjh3rynHcvNHcC9gUtlzstIUbCAwUkfdF5EOnu8k1mcmZbC/b7t4Bhn0HLpsDAT88NQ5WzHbvWMaYWiZMmMDbb7/NokWLKCsrO+yv9UjmzZvHhg0bKCgo4K677gq1N1aCe+jQoSxduhS/33/YPiOV3j5w4AAbN25kwIABEePo378/GzdupKSk9tOR4SW7a+4pbNiwAVVl+vTpjZ5fc0T7RnMckAeMAXKA90RkuKrWuq0uIlOBqQB9+vRp9sEykzL5Yu8Xzf58k2SPhKnzYNYl8OL3YcxtcOpNdgPaxI5G/qJ3S0pKCqeddhqXXXYZkydPbvLn4uLieOyxxxg+fDh33HEHO3fujFiCO1z//v0pLCzkrrvu4r777kNEWL9+PcuXL+ecc87hlltu4bnnnuMHP/gBfr+fG264gSlTppCUlBQxhuTkZC699FKuv/56/vSnP+H1ennuuecoKyvj9NNPr7VtUlISv/vd7zjvvPP4yU9+Qlxcy/4ad/NKYTMQfpcnx2kLVwzMVtUqVf0S+IJgkqhFVWeoaqGqFmZkZDQ7oJ7JPdleth3XK8OmZsKU12DEJPjvL+HvU2z6T2NaweTJk1m6dGmtpFD3nkLNDeVwWVlZTJ48menTp1NaWsqll15Kfn4+I0aMYMWKFdx9992HfebJJ59k+/btDBgwgGHDhjFlyhR69OiBiPDyyy/z97//nby8PAYOHIjP5+OXv/xl6LNvv/02OTk5odcHH3zAr371K3w+HwMHDiQvL4+///3vvPzyy0iEPyhHjhzJiBEjXJny07XS2SISR/CX/BkEk8EnwMWqujxsm7OAyap6qYh0BxYDBaq6u779Hk3p7OeWP8fDRQ+zYNIC0jqlNWsfR0QV/vc7mHuXU0rjPuh1PHRKdf/YxrQiK53dthxN6WzXuo9UtVpEpgFvEnwk9WlVXS4i9wJFqjrbWTdORFYAfuDGhhLC0QofwNYqSUEETroGMoYE5214bgIgkDEYco4PJohehdAj3yb5Mca0Ca7+JlLV14HX67TdGfZegeudl+vCB7AN6jqoNQ4ZNHAcXLcMij+B4oWwuQg+fx0WPx9cH58EWQXQ6zjIKYTMEcHR1Z3Sgk82GWNMK4mpP0+bVOrCLb40GHBm8AXBrqW962HzQiguCiaKj5+AD/4Q9iEJfi6xCySmB3/60msvx/mC04t64p2fccGf3oSv3nuc5fhEiPcFk1Cc89MbbzfBjTEhMZUUuvm6ESdx0UkKdYlA19zga/jEYFt1JWxfFiyxcWhv8FW+76v3h/bB3g1ftWmgBeLwOskiEeKcpOE5kn8WEpZUBKS+9rqJJ2y5oXUtpcmJr50kyBMuh2MnRTsK0wHFVFLwerxkJGW0jaQQSVxCsAup13GNbxsIQGUJVFeAvwoCVcGKrYEq8FeGvXfWVVdC9SGoKoeqMqh2flaVQ9UhZ92hYFtTk034QwqqBCuVNPA+0ucaXNdSmrjP9jTBkjc+2hGYDiqmkgIEu5C2lbXRpHAkPJ5g15IxxrSgmLuLmZmUyfaDLo5qNsa0uoZKZw8bNgwIlqxOS0ujoKCAwYMH87Of/azW9nPmzGHUqFEMHjyYgoICLrroIjZu3AjAlClTeOmll4Bg+ezCwq+e7CwqKmLMmDGhY4SXxX7jjTcoLCwkPz+fkSNHcsMNN9Q6ZkFBAZMmta1uwJhLCq02gM0Y02pq6h6FmzVrFrfeemuttlNOOYUlS5awePFiXn31Vd5//30Ali1bxtVXX82zzz7L559/zpIlS7jkkktYv359xOPt2LEjVHyvPsuWLWPatGk8//zzrFixgqKiolplLlauXInf72f+/PkcPHiwGWftjphLCpnJmVT4K9hbsTfaoRhjWsjEiRN57bXXQvMeNFY6u2binc2bg0UWHnzwQW677bZaA77Gjx/P6NGjI37+xhtv5P77728wpoceeojbb7+dwYMHA8F6Sj/+8Y9D62fOnMn3v/99xo0bxyuvvNL0k3VZ7CWFpCg+lmqMcUVDpbMj2bt3L6tXrw790l++fDnHHdeEBzwcJ554IgkJCcybN6/ebZYtW9ZgUb6//e1vTJo0icmTJ7tSrqK5YvJGM8D2g9vJ75bfyNbGmCP14McP8vmez1t0n4O7DubmUTc3uE19pbPDzZ8/n2OPPZbVq1dz7bXXkpmZedg2u3fv5owzzqCsrIypU6cedu+hxh133MEvfvELHnzwwSM+n6KiIrp3706fPn3o1asXl112GXv27KFr165HvK+WFnNXCj2TnRnYOsITSMaYkKaUzj7llFNYunQpy5cv56mnngrNszB06FAWLVoEQLdu3ViyZAlTp06ltLS03uOdfvrpHDp0iA8//DDi+qFDhx5WQrvGzJkz+fzzz+nXrx/9+/fnwIEDh5XnjpaYu1Lo6utKnKeNDGAzpgNq7C96txxJ6ezc3FxuueUWHnzwQWbOnMlNN93E+eefz9e//vXQfYWyssYrG99xxx1cddVVHHPMMYetu/HGG7ngggs4+eSTGThwIIFAgBkzZjB16lRefPFFPvvsM7Kzs4HgvA733XcfV1xxRTPOvGXF3JWCRzz0TOppScGYDihS6ez6XHXVVbz33nusX7+e4cOH89vf/pYf/OAHDBo0iJNOOomVK1dy8cUNTxl/zjnnUF85/xEjRvDYY48xefJkhgwZwrBhw1i3bh3z58+nV69eoYQAMHr0aFasWMHWrVuP7IRd4FrpbLccTensGlPmTEFVefbsZ1soKmNim5XObluOpnR2zF0pQCtMy2mMMe1UTCaFnknBAWyBligoZ4wxHUhMJoXM5EyqA9XsKd8T7VCMMaZNic2kYAPYjGlx7e3+ZEd1tN9DbCaFsAFsxpij5/P52L17tyWGKFNVdu/ejc/na/Y+Ym6cAoTNwGYD2IxpETk5ORQXF7Nz585ohxLzfD4fOTk5zf58TCaF9E7pdPJ2su4jY1pIfHw8ubm50Q7DtICY7D4SERvAZowxEbiaFETkLBFZJSJrROSWCOuniMhOEVnivH7kZjzhMpMzLSkYY0wdriUFEfEC04GzgXxgsohEKkv6N1UtcF5PuhVPXTaAzRhjDufmlcIoYI2qrlPVSmAWMMHF4x2Rnkk92VG2A3/AH+1QjDGmzXAzKfQCNoUtFzttdX1HRD4VkZdEJPI0SS7ITM7Er352HdrVWoc0xpg2L9o3mv8N9FPVEcBcIGKFOhGZKiJFIlLUUo+82WOpxhhzODeTwmYg/C//HKctRFV3q2qFs/gkEHHuOlWdoaqFqlpYX5naI9UzyZlsx242G2NMiJtJ4RMgT0RyRSQBmATMDt9ARLLCFscDK12MpxYb1WyMMYdzbfCaqlaLyDTgTcALPK2qy0XkXqBIVWcDPxWR8UA1sAeY4lY8dXVO6ExiXKJ1HxljTBhXRzSr6uvA63Xa7gx7fytwq5sx1McGsBljzOGifaM5qjKTM637yBhjwsR8UrDuI2OM+UrMJ4Vdh3ZRHaiOdijGGNMmxHRS6JnUk4AG2Flm5X6NMQZiPCnYADZjjKkttpOCTctpjDG1xHZSsAFsxhhTS8wkhZkfb+SkB96h2h8ItaUkpJAcn2zdR8YY44iZpACwed8htpdU1GrLTLLJdowxpkbMJIWsNB8AW/cdqtVuM7AZY8xXYiYpZKcnArBlf3mtdpuBzRhjvhIzSaG+K4WeyT3ZfWg3Vf6qaIRljDFtSswkhVRfPKm+OLbU7T5KykRRu1owxhhiKCkAZKclHtZ91DPZJtsxxpgaMZUUstJ9bN1/+I1msFHNxhgDsZYU0hLZuq/OjeYkG8BmjDE1Yiop9Er3sftgJeVV/lBbUnwSqQmp1n1kjDHEWFLISgs+lro1wmOp1n1kjDGxlhTS6xnAlmQzsBljDMRYUshOq38Am3UfGWOMy0lBRM4SkVUiskZEbmlgu++IiIpIoZvxZDZQ6mJvxV4q/BWRPmaMMTHDtaQgIl5gOnA2kA9MFpH8CNulAtcAH7kVSw1fvJfuKQmHj1VICo5VsC4kY0ysc/NKYRSwRlXXqWolMAuYEGG7+4AHgfII61pcVlri4aOak22yHWOMAXeTQi9gU9hysdMWIiLHAb1V9TUX46glK80GsBljTH2idqNZRDzAb4AbmrDtVBEpEpGinTt3HtVxs9MPH8Bm3UfGGBPkZlLYDPQOW85x2mqkAsOA/4rIeuDrwOxIN5tVdYaqFqpqYUZGxlEFlZXmo6SimpLyr6qi+uJ8pHdKt+4jY0zMczMpfALkiUiuiCQAk4DZNStVdb+qdlfVfqraD/gQGK+qRS7GFJpXwQawGWPM4VxLCqpaDUwD3gRWAi+q6nIRuVdExrt13MZkOwPYNkcYwGZXCsaYWBfn5s5V9XXg9Tptd9az7Rg3Y6kRKnVR975Cck8W7VjUGiEYY0ybFVMjmgF6pHbCI0R8AulA5QHKqsqiFJkxxkRfzCWFOK+Hnp19bKnvCSSbgc0YE8NiLilAI2MV7L6CMSaGxWRSyE63Uc3GGBNJzCaFrfvLUdVQm3UfGWNMjCaFrDQfFdUB9hysDLUleBPo5utmVwrGmJjWpKQgIn9pSlt7Ud8MbD2Te9oANmNMTGvqlcLQ8AWnLPbxLR9O66gZwHbYfQWbgc0YE+MaTAoicquIlAAjROSA8yoBdgCvtEqELqgpdRHpZrN1HxljYlmDSUFVf6WqqcDDqtrZeaWqajdVvbWVYmxx3ZITSIjzRKx/VFpVSmllaZQiM8aY6Gpq99GrIpIMICLfE5HfiEhfF+NylYiQlearfwY2ewLJGBOjmpoU/giUicixBOc/WAs851pUrSArzRdxrmawsQrGmNjV1KRQrcGH+icAf1DV6QTnQ2i3stMSI3YfgSUFY0zsamqV1BIRuRX4PnCKM2tavHthuS87PZFtB8rxBxSvRwDISMpAEHss1RgTs5p6pXARUAFcpqrbCM6i9rBrUbWCrHQf/oCyo+Srq4V4TzwZiRn2WKoxJmY1KSk4ieAFIE1EzgXKVbVd31PITqt5LDXCADbrPjLGxKimjmi+EPgY+C5wIfCRiEx0MzC3ZTkD2CJVS7XuI2NMrGrqPYXbgRNUdQeAiGQAbwEvuRWY2+qdgS2pJws2L0BVEZFohGaMMVHT1HsKnpqE4Nh9BJ9tkzr74kjpFHf4XM3JmRyqPkRJVUmUIjPGmOhp6pXCHBF5E5jpLF9EnbmX25uaAWx1u496JgcHsG07uI3OCZ2jEZoxxkRNg0lBRAYAPVX1RhG5ADjZWfUBwRvP7VpWeoSxCklfjVUY2GVgNMIyxpioaawL6DHgAICq/lNVr1fV64GXnXUNEpGzRGSViKwRkVsirL9KRD4TkSUiskBE8ptzEs2VnXb4XM02gM0YE8saSwo9VfWzuo1OW7+GPuiU154OnA3kA5Mj/NL/q6oOV9UC4CHgN00NvCVkpSWyq7SCimp/qC0jMYM4iePTnZ+2ZijGGNMmNJYU0htYl9jIZ0cBa1R1napWArMIlskIUdUDYYvJgNKKauZV2BbWheT1eJk0eBKvrH2F19a91prhGGNM1DWWFIpE5Iq6jSLyI2BhI5/tBWwKWy522uru6/9EZC3BK4WfNrLPFvXVvAq1u5CuL7ye43ocx93/u5tVe1a1ZkjGGBNVjSWFa4Efish/ReQR5/UucDlwTUsEoKrTVbU/cDNwR6RtRGSqiBSJSNHOnTtb4rBAsFIqHD6ALd4TzyNjHqFzQmeumXcN+yv2t9gxjTGmLWtskp3tqvoN4B5gvfO6R1VPdEpfNGQz0DtsOcdpq88s4Lx64pihqoWqWpiRkdHIYZuuvrmaAbondueRMY+wvWw7N793M/6A/7BtjDGmo2lq7aN5qvp75/VOE/f9CZAnIrkikgBMAmaHbyAieWGL3wJWN3HfLSIxwUuXpPjDpuWsUdCjgFtH3cr7W95n+pLprRmaMcZERVMHrx0xVa0WkWnAm4AXeFpVl4vIvUCRqs4GponImUAVsBe41K146pOdnlhvUgD47sDvsnz3cp747AmGdhvKGX3PaMXojDGmdbmWFABU9XXqjHxW1TvD3rfIfYmjkZWWSPHesnrXiwi3fe02vtjzBbctuI2ZaTM5Jv2YVozQGGNaT7uuX9QSstN9DV4pAHTyduLR0x7FF+fjmnnXUFpZ2krRGWNM64r5pJCVlsiB8moOVlQ3uF1mcia/PvXXbCrZxG0LbiOggVaK0BhjWk/MJ4XseuZViOSEzBO4ofAG5m2axxOfPuF2aMYY0+piPinUPJa6ed/hj6VG8r0h3+Oc3HOYvmQ684vnuxmaMca0uphPCqErhUbuK9QQEe7+xt0M7DKQm+ffzMYDG90MzxhjWlXMJ4WenX2IwJYIA9jqkxiXyKOnPYogTHtnGst2LXMxQmOMaT0xnxTivR56pHZq8pVCjd6pvXl0zKPsr9jP5Ncmc+v8W63ctjGm3Yv5pADB+wqRSl00ZlTWKF47/zWuGH4F/1n/H859+Vx+v/j3lFXVP+7BGGPaMksKNG2sQn1SElL46XE/5d/n/5sz+pzBjE9n8K2Xv8U/V//T6iUZY9odSwpAdloiW/YfQrX50zlkp2Tz4OgHef6c5+mV0ou7/ncXF756IR9s+aAFIzXGGHdZUiA4V3N5VYB9ZVVHva9jM47lL2f/hYdPfZiDVQeZOncq096exrr961ogUmOMcZclBYJzNQNsacIAtqYQEc7qdxavnPcK1x1/HQu3L+SCVy5gzvo5LbJ/Y4xxiyUFglcKAFubOICtqTp5O3HZsMt47YLX6NO5D8+veL5F92+MMS3NkgItf6VQV1dfV8495lyW7lxqj60aY9o0SwpA95ROxHvlsLmaW9LYvmMBeHvj264dwxhjjpYlBcDjETLTfE0qitdcuWm5DEgfwH/W/8e1YxhjzNGypODISkts8XsKdY3rN47FOxazs2ynq8cxxpjmsqTgyE7zuXZPoca4vuNQlLc2vuXqcYwxprksKTiy0hPZtr8cf6D5A9ga0z+9P8ekHcPcDXNdO4YxxhwNSwqO7PREqgPKrtIKV48ztu9YFm5fyK5Du1w9jjHGNIclBUfosdRm1kBqqrF9xxLQAO9sfMfV4xhjTHO4mhRE5CwRWSUia0TklgjrrxeRFSLyqYi8LSJ93YynITUzsDWnWuqRGNhlIP069+M/G+wpJGNM2+NaUhARLzAdOBvIByaLSH6dzRYDhao6AngJeMiteBpTMwOb21cKIsLYvmMp2lbEnvI9rh7LGGOOlJtXCqOANaq6TlUrgVnAhPANVHWeqtZMPvAhkONiPA1KS4wnMd7r+pUCBLuQ/Opn3sZ5rh/LGGOOhJtJoRewKWy52Gmrz+XAGy7G0yAROapnsfiCAAAV6UlEQVR5FY7E4K6DyUnJsaeQjDFtTpu40Swi3wMKgYfrWT9VRIpEpGjnTvcGfmWnJx7RXM3NJSKM6zeOj7Z+xP6K/a4fzxhjmsrNpLAZ6B22nOO01SIiZwK3A+NVNeLzoKo6Q1ULVbUwIyPDlWABstJ8RzxXc3ON6zuOaq22p5CMMW2Km0nhEyBPRHJFJAGYBMwO30BERgKPE0wIO1yMpUmy0hLZWVpBZXXA9WPld8snOznbupCMMW2Ka0lBVauBacCbwErgRVVdLiL3ish4Z7OHgRTg7yKyRERm17O7VpGd7kMVth9onS6ksX3H8sHWDzhQecD14xljTFO4ek9BVV9X1YGq2l9V73fa7lTV2c77M1W1p6oWOK/xDe/RXTVjFVrjZjMEC+RVB6p5d9O7rXI8Y4xpTJu40dxWZKe3zgC2GsO7DyczOdPKaRtj2gxLCmFCA9hcrpZaQ0Q4s8+ZvL/lfUorS1vlmMYY0xBLCmGSEuJIS4x3fV6FcOP6jaMqUMW7xdaFZIyJPksKdWS5PANbXcdmHEuPxB72FJIxpk2wpFBHdnoim1vxSsEjHs7seyYLNi+grKqs8Q8YY4yLLCnUkZ3eulcKEKyFVOGv4L3i91r1uMYYU5clhTqy0hLZV1bFoUp/qx1zZI+RdPN1s3Laxpios6RQR2s/gQTg9XitC8kY0yZYUqgjNNlOK95XgGAtpEPVh3h/y/utelxjjAlnSaGO7FYe1VzjuJ7H0dXX1QayGWOiypJCHZlpPkRg097W7caJ88Rxep/Tebf4XcqrW/cqxRhjalhSqCMhzkNh3y68vHgz1X73q6WGG9t3rHUhGWOiypJCBFNH96d47yFe+2xrqx73hMwTSO+UbgPZjDFRExftANqiMwb3YECPFP707jrGH5uNiLTKceM98Zze53ReXv0y84vn4/P6SPAm4Itzfnpr/0yMS+TiIReT3y2/VeIzxnR8lhQi8HiEqaOP4aaXPmX+6l2MHujebG91TR0xlfRO6RyqPkSlv5Jyf3nwZ3Xw56HqQ+yr2EeFv4KdZTtZsHkBL377RXok9Wi1GI0xHZeoarRjOCKFhYVaVFTk+nEqqwOc8tA79M9I4a9XfN314zXHmr1ruPj1ixncdTBPffMp4j3x0Q7JGNNGichCVS1sbDu7p1CPhDgPl5+cy//W7ubT4n3RDieiAV0GcPeJd7N4x2IeXfhotMMxxnQAlhQaMHlUH1J9cTz+7rpoh1Kvc445h4sHX8xfVvyFOevnRDscY0w7Z0mhAam+eL739b68sWwr63cdjHY49fpZ4c84NuNY7nr/Ltbta7sJzBjT9llSaMQPv9GPOI+HJ+a33V+28d54fn3qr/HF+bjuv9dZ/SRjTLO5mhRE5CwRWSUia0TklgjrR4vIIhGpFpGJbsbSXD06+/jO8b34+8JidpZURDucemUmZ/LQ6IdYf2A9d/3vLtrbAwTGmLbBtaQgIl5gOnA2kA9MFpG6D9RvBKYAf3UrjpZwxSnHUOUP8Oz/1kc7lAZ9LetrXD3yauasn8MLK1+IdjjGmHbIzSuFUcAaVV2nqpXALGBC+Aaqul5VPwVat57EETomI4Vv5mfy3AfrOVhRHe1wGnT5sMs5rfdpPFL0CIt3LI52OMaYdsbNpNAL2BS2XOy0tUtXnnoMB8qrmfnxxmiH0iAR4f6T7yc7JZsb/nsDuw7tinZIxph2pF3caBaRqSJSJCJFO3fujEoMI/t04Wu5XXlqwZdUtXKhvCOVmpDKb8b8hpLKEm567yaqA2376sYY03a4mRQ2A73DlnOctiOmqjNUtVBVCzMyWq/kRF1XndqfrfvLmb1kS9RiaKpBXQdx54l38sm2T/jd4t9FOxxjTDvhZlL4BMgTkVwRSQAmAbNdPJ7rxgzKYFDPVB5/b227eLrn2/2/zYUDL+TPy/7MG1++wb7yfRyoPMDBqoOUV5dT5a/CH/C3i3MxxrQO1wriqWq1iEwD3gS8wNOqulxE7gWKVHW2iJwAvAx0Ab4tIveo6lC3YjpaIsKVpx7D9S8uZd6qHZw+uGe0Q2rUzaNuZsXuFdz03k0NbucVLx7x4BUv8d74UCXWTt5OdPJ2qvW+Zjk1IZX+6f0ZkD6AAekD6OLr0kpnZYxxixXEO0JV/gCnPjSPnK5JvHjliVGL40jsK9/H3I1zqfRXEtAA/oAfv/oJaIBqra7V5g/4qQpUUeGvoNJfWetn+KvSX8ne8r2UVJWEjtPV15W89LxgougSTBT90/vTOaFzFM/eGANNL4hnpbOPULzXw+WnHMN9r65g0ca9HNen7f91nO5L57sDv9vi+1VVdh7ayZq9a1izL/hau28t/1rzL8qqvxpV3SOpB3ld8hiYPjD4s8tActNySfAmtHhMxpijY1cKzXCwoppvPPAOXz+mK49/v9HEG3MCGmDbwW2hRLFm7xpW71vN2n1rqQpUARAncfRL6xdKEgO7DCQvPY/M5MxWm9TImFhiVwouSu4Uxw9O7Msf5q1h7c5S+mekRDukNsUjHrJTsslOyWZ0zuhQe1Wgio0HNrJ672q+2PsFX+z9gqU7lvLGl2+EtonzxBEncaH7GyISut9R86pp90jTn5MQDk80kZJPUlwSKQkppManBn8mpJKakEpKfAqdEzqH2hLjEiPus6nHjsTj8ZAUl0RyfDLJ8ckkxiUe0Tka0xLsSqGZdpVWcNID7/CtEVn84rxhJCVYfm2uksoS1uxbwxd7vmDLwS3BexzOPY+al1+DT0nVtPvV3+T9R/o3rkRoU+VQ9SFKKksoqSqhtLKUksoSSqtKj+r8mksQEuMSQ0kiKd5JGHHJeD3eJu3DIx7iPfGHPSwQ742v9dBAgieBeE88Xo+XOIkjzhMXfO+JwyveULL2erx4pWnHdkssX0n2SOxBui+9WZ+1KwWXdU/pxIWFvfnLhxv456LNdPbFkZnmIzMtkczOnchMSyQrzUdmZx+ZaT6y0nykJ1kfeiSpCamM7DGSkT1GRjuUiPwBPwerD4aSREllCYeqDzXps5GST32qA9WUVZdRVlXGwaqDoVdZ9VfLZVVlbCvb1uSkGAgEqAwEHxSo8n/1AEG12oDG9ujnX/85Fw660NVjWFI4Cj8/N5/Cfl3YvO8Q2/eXs3V/OdsPlPP51gPsLK2g7h+oJ/Trwg3jBvH1Y7pFJ2DTLF6Pl84JnTvUU1TVgWoq/ZXBV6CSiuoKqrWa6kB1rafQ/OoPtgX8ofUBjd6I/iNJsh3R4K6DXT+GJYWjkBDnYUJB5HJOVf4AO0sqQoli3c5SnvtgA5NmfMhJA7px/dhBHN+37T+5ZDqmOE+wiygpPinaoZg2xu4ptKLyKj/Pf7iBP727ll2llYwZlMENYwcxPCct2qEZYzq4pt5TsKQQBWWV1Tz7vw08/t5a9pVVMS6/J9eNHciQrI7TPWGMaVssKbQDJeVVPL1gPU/OX0dJRTXfGpHFdWfmMaBHarRDM8Z0MJYU2pF9ZZU8MX8df35/PeVVfs4fmcPt3xpC12R7WskY0zKamhRsZEwbkJ6UwI3fHMz8m07j8pNzmb10M2N/8y5vfLY12qEZY2KMJYU2pFtKJ27/Vj6zp51MZpqPH7+wiKtnLmbPwcpoh2aMiRGWFNqgIVmd+df/ncT1YwcyZ9lWxj36LnOW2VWDMcZ9lhTaqHivh5+ekcfsaSfTs7OPq563qwZjjPssKbRxka8atkU7LGNMB2VJoR0Iv2rokerjqucXcvXMxey1qwZjTAuzMhftyJCszrwy7ST+37y1/P6d1Xywdhfnjsgmp0sivbsmkdMlkZwuSaQlxkc7VGNMO2VJoZ2J93q45sw8xub35J5/L+fvRZs4WFm7YmaqL46cLsEk0dv52b9HCl/L7YovPrplj40xbZslhXYqP7szf7vyRFSV/Yeq2LTnEMV7yyje+9XPDbsP8v6aXZQ5SSMpwcvovAzG5vfk9ME96GKD44wxdVhSaOdEhPSkBNKTEiIW1lNV9pZV8WnxPt5auZ25K7YzZ/k2vB7hhH5dGJufybj8nvTuatUyjTEul7kQkbOA3wJe4ElVfaDO+k7Ac8DxwG7gIlVd39A+O2KZi9YUCCifbd7P3BXb+c+KbXyxPTir2ODMVMbm92Rsfk+GZafh8cTu7FbGdERRr30kIl7gC2AsUAx8AkxW1RVh2/wEGKGqV4nIJOB8Vb2oof1aUmhZG3YfdBLEdorW7yGgwW6mQZmpDMnqzJCszuRnpTIoszMpnezC0pj2qi0khROBu1X1m87yrQCq+quwbd50tvlAROKAbUCGNhCUJQX37DlYyX9X7eDT4v2s3HqAlVsPcKD8q2kb+3ZLYkhmZydZpJLbPbnWFUXda4vwuXTjPILXI2E/PXi9weWatliee9cYt7WFOZp7AZvClouBr9W3japWi8h+oBuwy8W4TD26JidwwXE5XHBcDhC8H7FlfzkrthwIJYmVWw/w5opth0012hK8TnLwiuAR8IQtiwheD8F1HsHjbFNXfYklYmukz9cTW939xnmEOdeObvB8jGmP2kV/gIhMBaYC9OnTJ8rRxA4RoVd6Ir3SExmb3zPUfrCims+3lVC8t6zez4YnDUXxB8AfCFAdUPwBpcqvXy37leqAUu0sq4Lf2S6gwZc/ELwf4neWA4HDZ+utL1FFao50MVpvnouwwu65mI7KzaSwGegdtpzjtEXaptjpPkojeMO5FlWdAcyAYPeRK9GaJkvuFMfxfbvYHNPGdEBulrn4BMgTkVwRSQAmAbPrbDMbuNR5PxF4p6H7CcYYY9zl2pWCc49gGvAmwUdSn1bV5SJyL1CkqrOBp4C/iMgaYA/BxGGMMSZKXL2noKqvA6/Xabsz7H058F03YzDGGNN0ViXVGGNMiCUFY4wxIZYUjDHGhFhSMMYYE2JJwRhjTIirVVLdICI7gQ3N/Hh3Ol4JjY52Th3tfKDjnVNHOx/oeOcU6Xz6qmpGYx9sd0nhaIhIUVMKQrUnHe2cOtr5QMc7p452PtDxzulozse6j4wxxoRYUjDGGBMSa0lhRrQDcEFHO6eOdj7Q8c6po50PdLxzavb5xNQ9BWOMMQ2LtSsFY4wxDYiZpCAiZ4nIKhFZIyK3RDueoyUi60XkMxFZIiLtcn5SEXlaRHaIyLKwtq4iMldEVjs/282kDfWcz90istn5npaIyDnRjPFIiUhvEZknIitEZLmIXOO0t8vvqYHzabffk4j4RORjEVnqnNM9TnuuiHzk/M77mzOFQeP7i4XuIxHxAl8AYwlOC/oJMFlVV0Q1sKMgIuuBQlVtt89Wi8hooBR4TlWHOW0PAXtU9QEneXdR1ZujGWdT1XM+dwOlqvrraMbWXCKSBWSp6iIRSQUWAucBU2iH31MD53Mh7fR7kuBcscmqWioi8cAC4BrgeuCfqjpLRP4ELFXVPza2v1i5UhgFrFHVdapaCcwCJkQ5ppinqu8RnEcj3ATgWef9swT/h20X6jmfdk1Vt6rqIud9CbCS4Nzq7fJ7auB82i0NKnUW452XAqcDLzntTf6OYiUp9AI2hS0X087/IRD80v8jIgudOaw7ip6qutV5vw3o2dDG7cQ0EfnU6V5qF90skYhIP2Ak8BEd4Huqcz7Qjr8nEfGKyBJgBzAXWAvsU9VqZ5Mm/86LlaTQEZ2sqscBZwP/53RddCjO1KztvX/zj0B/oADYCjwS3XCaR0RSgH8A16rqgfB17fF7inA+7fp7UlW/qhYAOQR7RgY3d1+xkhQ2A73DlnOctnZLVTc7P3cALxP8h9ARbHf6fWv6f3dEOZ6joqrbnf9hA8ATtMPvyemn/gfwgqr+02lut99TpPPpCN8TgKruA+YBJwLpIlIzu2aTf+fFSlL4BMhz7sYnEJwLenaUY2o2EUl2bpIhIsnAOGBZw59qN2YDlzrvLwVeiWIsR63mF6fjfNrZ9+TcxHwKWKmqvwlb1S6/p/rOpz1/TyKSISLpzvtEgg/UrCSYHCY6mzX5O4qJp48AnEfMHgO8wNOqen+UQ2o2ETmG4NUBBOfZ/mt7PB8RmQmMIVjRcTtwF/Av4EWgD8FquBeqaru4eVvP+Ywh2CWhwHrgyrC++DZPRE4G5gOfAQGn+TaC/fDt7ntq4Hwm006/JxEZQfBGspfgH/ovquq9zu+JWUBXYDHwPVWtaHR/sZIUjDHGNC5Wuo+MMcY0gSUFY4wxIZYUjDHGhFhSMMYYE2JJwRhjTIglBdNuiUhPEfmriKxzyn18ICLnH+U+7xaRnznv7xWRM5u5n4L6Km2KSJKIvOBUuV0mIgtEJEVE0kXkJ0cTvzFHy5KCaZecQUj/At5T1WNU9XiCgxJzImwbV7etKVT1TlV9q5khFgD1lV++BtiuqsOdaqqXA1VAOmBJwUSVJQXTXp0OVKrqn2oaVHWDqv4eQESmiMhsEXkHeNv5S/xtEVnk/IUeqpIrIreLyBcisgAYFNb+jIhMdN4fLyLvOlckb4aVePiviDzo1LP/QkROcUbN3wtc5NTmv6hO7FmElRxQ1VXOoKIHgP7OZx529n+jiHziFGqrqZPfT0Q+d642VorISyKS5Kx7QIJzBXwqIu2uDLSJvmb9BWVMGzAUWNTINscBI1R1j3O1cL6qHhCR7sCHIjLb2WYSwb/s45x9LgzfiVMr5/fABFXd6fySvx+4zNkkTlVHOd1Fd6nqmSJyJ8H5LqZFiOtpghVuJwJvA8+q6mrgFmCYU9gMERkH5BGswyPAbKfw4UaCyetyVX1fRJ4GfiIifyZYomGwqmpN6QNjjoQlBdMhiMh04GSCVw8nOM1zw0ovCPBL55dqgGAZ4Z7AKcDLqlrm7CdSTaxBwDBgbrDXCi/BSpo1aorELQT6NRarqi5xShCMA84EPhGRE4FDdTYd57wWO8spBJPERmCTqr7vtD8P/JRgGZdy4CkReRV4tbFYjKnLkoJpr5YD36lZUNX/c64AwqcmPRj2/hIgAzheVaskOHOdr4nHEmC5qp5Yz/qaejJ+mvj/lDMpyj+Bf4pIgOD9h39EOO6vVPXxWo3BeQDq1qdRVa0WkVHAGQQLoU0j2M1mTJPZPQXTXr0D+ETkx2FtSQ1snwbscBLCaUBfp/094DwRSXQqz347wmdXARnOX/OISLyIDG0kvhIgNdIKETlJnElcnPsP+QSLytX9zJvAZRKs/Y+I9BKRHs66PjXxABcDC5zt0lT1deA64NhGYjTmMJYUTLvkTOxyHnCqiHwpIh8TrBRZ3zzBLwCFIvIZ8APgc2c/i4C/AUuBNwiWWa97rEqCf3k/KCJLgSXANxoJcR6QX8+N5v7Au04siwle3fxDVXcD7zuPqT6sqv8B/gp84Gz7El8ljVUEJ1daCXQhOElMKvCqiHxKcJ7e6xuJ0ZjDWJVUY9oZp/voVedxVmNalF0pGGOMCbErBWOMMSF2pWCMMSbEkoIxxpgQSwrGGGNCLCkYY4wJsaRgjDEmxJKCMcaYkP8PkkkFTWmoSgUAAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Draw gradient descent progress for each label.\\n\",\n    \"labels = logistic_regression.unique_labels\\n\",\n    \"plt.plot(range(len(costs[0])), costs[0], label=labels[0])\\n\",\n    \"plt.plot(range(len(costs[1])), costs[1], label=labels[1])\\n\",\n    \"plt.plot(range(len(costs[2])), costs[2], label=labels[2])\\n\",\n    \"\\n\",\n    \"plt.xlabel('Gradient Steps')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Calculate Model Training Precision\\n\",\n    \"\\n\",\n    \"Calculate how many flowers from the training set have been guessed correctly. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Precision: 96.0000%\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Make training set predictions.\\n\",\n    \"y_train_predictions = logistic_regression.predict(x_train)\\n\",\n    \"\\n\",\n    \"# Check what percentage of them are actually correct.\\n\",\n    \"precision = np.sum(y_train_predictions == y_train) / y_train.shape[0] * 100\\n\",\n    \"\\n\",\n    \"print('Precision: {:5.4f}%'.format(precision))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Draw Decision Boundaries\\n\",\n    \"\\n\",\n    \"Let's build our decision boundaries. These are the lines that distinguish classes from each other. This will give us a pretty clear overview of how successfull our training process was. You should see clear distinguishment of three sectors on the data plain. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Get the number of training examples.\\n\",\n    \"num_examples = x_train.shape[0]\\n\",\n    \"\\n\",\n    \"# Set up how many calculations we want to do along every axis. \\n\",\n    \"samples = 150\\n\",\n    \"\\n\",\n    \"# Generate test ranges for x and y axis.\\n\",\n    \"x_min = np.min(x_train[:, 0])\\n\",\n    \"x_max = np.max(x_train[:, 0])\\n\",\n    \"\\n\",\n    \"y_min = np.min(x_train[:, 1])\\n\",\n    \"y_max = np.max(x_train[:, 1])\\n\",\n    \"\\n\",\n    \"X = np.linspace(x_min, x_max, samples)\\n\",\n    \"Y = np.linspace(y_min, y_max, samples)\\n\",\n    \"\\n\",\n    \"# z axis will contain our predictions. So let's get predictions for every pair of x and y.\\n\",\n    \"Z_setosa = np.zeros((samples, samples))\\n\",\n    \"Z_versicolor = np.zeros((samples, samples))\\n\",\n    \"Z_virginica = np.zeros((samples, samples))\\n\",\n    \"\\n\",\n    \"for x_index, x in enumerate(X):\\n\",\n    \"    for y_index, y in enumerate(Y):\\n\",\n    \"        data = np.array([[x, y]])\\n\",\n    \"        prediction = logistic_regression.predict(data)[0][0]\\n\",\n    \"        if prediction == 'SETOSA':\\n\",\n    \"            Z_setosa[x_index][y_index] = 1\\n\",\n    \"        elif prediction == 'VERSICOLOR':\\n\",\n    \"            Z_versicolor[x_index][y_index] = 1\\n\",\n    \"        elif prediction == 'VIRGINICA':\\n\",\n    \"            Z_virginica[x_index][y_index] = 1\\n\",\n    \"\\n\",\n    \"# Now, when we have x, y and z axes being setup and calculated we may print decision boundaries.\\n\",\n    \"for iris_type in iris_types:\\n\",\n    \"    plt.scatter(\\n\",\n    \"        x_train[(y_train == iris_type).flatten(), 0],\\n\",\n    \"        x_train[(y_train == iris_type).flatten(), 1],\\n\",\n    \"        label=iris_type\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"plt.contour(X, Y, Z_setosa)\\n\",\n    \"plt.contour(X, Y, Z_versicolor)\\n\",\n    \"plt.contour(X, Y, Z_virginica)\\n\",\n    \"    \\n\",\n    \"plt.xlabel(x_axis + ' (cm)')\\n\",\n    \"plt.ylabel(y_axis + ' (cm)')\\n\",\n    \"plt.title('Iris Types')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/logistic_regression/logistic_regression_with_non_linear_boundary_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Logistic Regression With Non-Linear Boundary Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Logistic Regression](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/logistic_regression)\\n\",\n    \"> - ⚙️[Logistic Regression Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py)\\n\",\n    \"\\n\",\n    \"**Logistic regression** is the appropriate regression analysis to conduct when the dependent variable is dichotomous (binary). Like all regression analyses, the logistic regression is a predictive analysis. Logistic regression is used to describe data and to explain the relationship between one dependent binary variable and one or more nominal, ordinal, interval or ratio-level independent variables.\\n\",\n    \"\\n\",\n    \"Logistic Regression is used when the dependent variable (target) is categorical.\\n\",\n    \"\\n\",\n    \"For example:\\n\",\n    \"\\n\",\n    \"- To predict whether an email is spam (`1`) or (`0`).\\n\",\n    \"- Whether online transaction is fraudulent (`1`) or not (`0`).\\n\",\n    \"- Whether the tumor is malignant (`1`) or not (`0`).\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this example we will try to classify microchips into to categories (`valid` and `invalid`) based on two artifical parameters `param_1` and `param_2`.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of logistic_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of logistic_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [logistic_regression](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py) - custom implementation of logistic regression\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"# Import custom logistic regression implementation.\\n\",\n    \"from homemade.logistic_regression import LogisticRegression\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use artificial dataset in which `param_1` and `param_2` produce non-linear decision boundary (see the plot below).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>param_1</th>\\n\",\n       \"      <th>param_2</th>\\n\",\n       \"      <th>validity</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>0.051267</td>\\n\",\n       \"      <td>0.699560</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>-0.092742</td>\\n\",\n       \"      <td>0.684940</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>-0.213710</td>\\n\",\n       \"      <td>0.692250</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>-0.375000</td>\\n\",\n       \"      <td>0.502190</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>-0.513250</td>\\n\",\n       \"      <td>0.465640</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>-0.524770</td>\\n\",\n       \"      <td>0.209800</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>-0.398040</td>\\n\",\n       \"      <td>0.034357</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>-0.305880</td>\\n\",\n       \"      <td>-0.192250</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>0.016705</td>\\n\",\n       \"      <td>-0.404240</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>0.131910</td>\\n\",\n       \"      <td>-0.513890</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"    param_1   param_2  validity\\n\",\n       \"0  0.051267  0.699560         1\\n\",\n       \"1 -0.092742  0.684940         1\\n\",\n       \"2 -0.213710  0.692250         1\\n\",\n       \"3 -0.375000  0.502190         1\\n\",\n       \"4 -0.513250  0.465640         1\\n\",\n       \"5 -0.524770  0.209800         1\\n\",\n       \"6 -0.398040  0.034357         1\\n\",\n       \"7 -0.305880 -0.192250         1\\n\",\n       \"8  0.016705 -0.404240         1\\n\",\n       \"9  0.131910 -0.513890         1\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/microchips-tests.csv')\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's plot the data on 2D-plane and split it by two clasess (`valid` and `invalid`) to see the distribution.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Supported set of validities.\\n\",\n    \"validities = [0, 1]\\n\",\n    \"\\n\",\n    \"# Dataset parameters that we will take into account.\\n\",\n    \"x_axis = 'param_1'\\n\",\n    \"y_axis = 'param_2'\\n\",\n    \"\\n\",\n    \"# Scatter the data on the plot for each validity class separatelly.\\n\",\n    \"for validity in validities:\\n\",\n    \"    plt.scatter(\\n\",\n    \"        data[x_axis][data['validity'] == validity],\\n\",\n    \"        data[y_axis][data['validity'] == validity],\\n\",\n    \"        label=validity\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"# Plot the data.    \\n\",\n    \"plt.xlabel(x_axis)\\n\",\n    \"plt.ylabel(y_axis)\\n\",\n    \"plt.title('Microchips Tests')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Prepare the Data for Training\\n\",\n    \"\\n\",\n    \"Before we move on with training our logistic model let's extract the data from Pandas data frame and shape training features set and labels set correctly.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Get the number of training examples.\\n\",\n    \"num_examples = data.shape[0]\\n\",\n    \"\\n\",\n    \"# Extract and shape features.\\n\",\n    \"x_train = data[[x_axis, y_axis]].values.reshape((num_examples, 2))\\n\",\n    \"\\n\",\n    \"# Extract and shape labels.\\n\",\n    \"y_train = data['validity'].values.reshape((num_examples, 1))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train Logistic Regression Model\\n\",\n    \"\\n\",\n    \"> ☝🏻This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"- `polynomial_degree` - this parameter will allow you to add additional polynomial features of certain degree. More features - more curved the line will be.\\n\",\n    \"- `max_iterations` - this is the maximum number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `polynomial_degree` - the degree of additional polynomial features (`x1^2 * x2, x1^2 * x2^2, ...`). This will allow you to curve the predictions.\\n\",\n    \"- `sinusoid_degree` - the degree of sinusoid parameter multipliers of additional features (`sin(x), sin(2*x), ...`). This will allow you to curve the predictions by adding sinusoidal component to the prediction curve.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Theta 0</th>\\n\",\n       \"      <th>Theta 1</th>\\n\",\n       \"      <th>Theta 2</th>\\n\",\n       \"      <th>Theta 3</th>\\n\",\n       \"      <th>Theta 4</th>\\n\",\n       \"      <th>Theta 5</th>\\n\",\n       \"      <th>Theta 6</th>\\n\",\n       \"      <th>Theta 7</th>\\n\",\n       \"      <th>Theta 8</th>\\n\",\n       \"      <th>Theta 9</th>\\n\",\n       \"      <th>...</th>\\n\",\n       \"      <th>Theta 13</th>\\n\",\n       \"      <th>Theta 14</th>\\n\",\n       \"      <th>Theta 15</th>\\n\",\n       \"      <th>Theta 16</th>\\n\",\n       \"      <th>Theta 17</th>\\n\",\n       \"      <th>Theta 18</th>\\n\",\n       \"      <th>Theta 19</th>\\n\",\n       \"      <th>Theta 20</th>\\n\",\n       \"      <th>Theta 21</th>\\n\",\n       \"      <th>Theta 22</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>VALID</th>\\n\",\n       \"      <td>-2.024052</td>\\n\",\n       \"      <td>1.660125</td>\\n\",\n       \"      <td>-1.042190</td>\\n\",\n       \"      <td>1.660125</td>\\n\",\n       \"      <td>-1.042190</td>\\n\",\n       \"      <td>-3.345081</td>\\n\",\n       \"      <td>11.635574</td>\\n\",\n       \"      <td>-10.209539</td>\\n\",\n       \"      <td>-19.784433</td>\\n\",\n       \"      <td>-29.263600</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.443705</td>\\n\",\n       \"      <td>37.384232</td>\\n\",\n       \"      <td>1.548052</td>\\n\",\n       \"      <td>40.476004</td>\\n\",\n       \"      <td>16.795521</td>\\n\",\n       \"      <td>24.197483</td>\\n\",\n       \"      <td>-0.966907</td>\\n\",\n       \"      <td>33.948141</td>\\n\",\n       \"      <td>46.700557</td>\\n\",\n       \"      <td>-22.072182</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>INVALID</th>\\n\",\n       \"      <td>2.028452</td>\\n\",\n       \"      <td>-1.614655</td>\\n\",\n       \"      <td>1.083132</td>\\n\",\n       \"      <td>-1.614655</td>\\n\",\n       \"      <td>1.083132</td>\\n\",\n       \"      <td>3.439305</td>\\n\",\n       \"      <td>-11.411377</td>\\n\",\n       \"      <td>10.258364</td>\\n\",\n       \"      <td>19.310634</td>\\n\",\n       \"      <td>28.477962</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.423851</td>\\n\",\n       \"      <td>-38.205306</td>\\n\",\n       \"      <td>-2.021708</td>\\n\",\n       \"      <td>-40.536997</td>\\n\",\n       \"      <td>-16.190337</td>\\n\",\n       \"      <td>-22.698874</td>\\n\",\n       \"      <td>2.868809</td>\\n\",\n       \"      <td>-32.068645</td>\\n\",\n       \"      <td>-45.901514</td>\\n\",\n       \"      <td>22.308492</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"<p>2 rows × 23 columns</p>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"          Theta 0   Theta 1   Theta 2   Theta 3   Theta 4   Theta 5  \\\\\\n\",\n       \"VALID   -2.024052  1.660125 -1.042190  1.660125 -1.042190 -3.345081   \\n\",\n       \"INVALID  2.028452 -1.614655  1.083132 -1.614655  1.083132  3.439305   \\n\",\n       \"\\n\",\n       \"           Theta 6    Theta 7    Theta 8    Theta 9    ...      Theta 13  \\\\\\n\",\n       \"VALID    11.635574 -10.209539 -19.784433 -29.263600    ...     -0.443705   \\n\",\n       \"INVALID -11.411377  10.258364  19.310634  28.477962    ...     -0.423851   \\n\",\n       \"\\n\",\n       \"          Theta 14  Theta 15   Theta 16   Theta 17   Theta 18  Theta 19  \\\\\\n\",\n       \"VALID    37.384232  1.548052  40.476004  16.795521  24.197483 -0.966907   \\n\",\n       \"INVALID -38.205306 -2.021708 -40.536997 -16.190337 -22.698874  2.868809   \\n\",\n       \"\\n\",\n       \"          Theta 20   Theta 21   Theta 22  \\n\",\n       \"VALID    33.948141  46.700557 -22.072182  \\n\",\n       \"INVALID -32.068645 -45.901514  22.308492  \\n\",\n       \"\\n\",\n       \"[2 rows x 23 columns]\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Set up linear regression parameters.\\n\",\n    \"max_iterations = 100000  # Max number of gradient descent iterations.\\n\",\n    \"regularization_param = 0  # Helps to fight model overfitting.\\n\",\n    \"polynomial_degree = 5  # The degree of additional polynomial features.\\n\",\n    \"sinusoid_degree = 0  # The degree of sinusoid parameter multipliers of additional features.\\n\",\n    \"\\n\",\n    \"# Init logistic regression instance.\\n\",\n    \"logistic_regression = LogisticRegression(x_train, y_train, polynomial_degree, sinusoid_degree)\\n\",\n    \"\\n\",\n    \"# Train logistic regression.\\n\",\n    \"(thetas, costs) = logistic_regression.train(regularization_param, max_iterations)\\n\",\n    \"\\n\",\n    \"# Rename the columns for each theta.\\n\",\n    \"columns = []\\n\",\n    \"for theta_index in range(0, thetas.shape[1]):\\n\",\n    \"    columns.append('Theta ' + str(theta_index));\\n\",\n    \"\\n\",\n    \"pd.DataFrame(thetas, index=['VALID', 'INVALID'], columns=columns)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Analyze Gradient Descent Progress\\n\",\n    \"\\n\",\n    \"The plot below illustrates how the cost function value changes over each iteration. You should see it decreasing. \\n\",\n    \"\\n\",\n    \"In case if cost function value increases it may mean that gradient descent missed the cost function minimum and with each step it goes further away from it.\\n\",\n    \"\\n\",\n    \"From this plot you may also get an understanding of how many iterations you need to get an optimal value of the cost function.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Draw gradient descent progress for each label.\\n\",\n    \"labels = logistic_regression.unique_labels\\n\",\n    \"\\n\",\n    \"plt.plot(range(len(costs[0])), costs[0], label=labels[0])\\n\",\n    \"plt.plot(range(len(costs[1])), costs[1], label=labels[1])\\n\",\n    \"\\n\",\n    \"plt.xlabel('Gradient Steps')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Calculate Model Training Precision\\n\",\n    \"\\n\",\n    \"Calculate how many flowers from the training set have been guessed correctly. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Training Precision: 88.9831%\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Make training set predictions.\\n\",\n    \"y_train_predictions = logistic_regression.predict(x_train)\\n\",\n    \"\\n\",\n    \"# Check what percentage of them are actually correct.\\n\",\n    \"precision = np.sum(y_train_predictions == y_train) / y_train.shape[0] * 100\\n\",\n    \"\\n\",\n    \"print('Training Precision: {:5.4f}%'.format(precision))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Draw Decision Boundaries\\n\",\n    \"\\n\",\n    \"Let's build our decision boundaries. These are the lines that distinguish classes from each other. This will give us a pretty clear overview of how successfull our training process was. You should see clear distinguishment of three sectors on the data plain. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Get the number of training examples.\\n\",\n    \"num_examples = x_train.shape[0]\\n\",\n    \"\\n\",\n    \"# Set up how many calculations we want to do along every axis. \\n\",\n    \"samples = 150\\n\",\n    \"\\n\",\n    \"# Generate test ranges for x and y axis.\\n\",\n    \"x_min = np.min(x_train[:, 0])\\n\",\n    \"x_max = np.max(x_train[:, 0])\\n\",\n    \"\\n\",\n    \"y_min = np.min(x_train[:, 1])\\n\",\n    \"y_max = np.max(x_train[:, 1])\\n\",\n    \"\\n\",\n    \"X = np.linspace(x_min, x_max, samples)\\n\",\n    \"Y = np.linspace(y_min, y_max, samples)\\n\",\n    \"Z = np.zeros((samples, samples))\\n\",\n    \"\\n\",\n    \"# z axis will contain our predictions. So let's get predictions for every pair of x and y.\\n\",\n    \"for x_index, x in enumerate(X):\\n\",\n    \"    for y_index, y in enumerate(Y):\\n\",\n    \"        data = np.array([[x, y]])\\n\",\n    \"        Z[x_index][y_index] = logistic_regression.predict(data)[0][0]\\n\",\n    \"\\n\",\n    \"# Now, when we have x, y and z axes being setup and calculated we may print decision boundaries.\\n\",\n    \"positives = (y_train == 1).flatten()\\n\",\n    \"negatives = (y_train == 0).flatten()\\n\",\n    \"\\n\",\n    \"plt.scatter(x_train[negatives, 0], x_train[negatives, 1], label='0')\\n\",\n    \"plt.scatter(x_train[positives, 0], x_train[positives, 1], label='1')\\n\",\n    \"\\n\",\n    \"plt.contour(X, Y, Z)\\n\",\n    \"\\n\",\n    \"plt.xlabel('param_1')\\n\",\n    \"plt.ylabel('param_2')\\n\",\n    \"plt.title('Microchips Tests')\\n\",\n    \"plt.legend()\\n\",\n    \"\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/logistic_regression/multivariate_logistic_regression_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Multivariate Logistic Regression Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Logistic Regression](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/logistic_regression)\\n\",\n    \"> - ⚙️[Logistic Regression Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py)\\n\",\n    \"\\n\",\n    \"**Logistic regression** is the appropriate regression analysis to conduct when the dependent variable is dichotomous (binary). Like all regression analyses, the logistic regression is a predictive analysis. Logistic regression is used to describe data and to explain the relationship between one dependent binary variable and one or more nominal, ordinal, interval or ratio-level independent variables.\\n\",\n    \"\\n\",\n    \"Logistic Regression is used when the dependent variable (target) is categorical.\\n\",\n    \"\\n\",\n    \"For example:\\n\",\n    \"\\n\",\n    \"- To predict whether an email is spam (`1`) or (`0`).\\n\",\n    \"- Whether online transaction is fraudulent (`1`) or not (`0`).\\n\",\n    \"- Whether the tumor is malignant (`1`) or not (`0`).\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this example we will train handwritten digits (0-9) classifier.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of logistic_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of logistic_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [math](https://docs.python.org/3/library/math.html) - math library that we will use to calculate sqaure roots etc.\\n\",\n    \"- [logistic_regression](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py) - custom implementation of logistic regression\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import matplotlib.image as mpimg\\n\",\n    \"import math\\n\",\n    \"\\n\",\n    \"# Import custom logistic regression implementation.\\n\",\n    \"from homemade.logistic_regression import LogisticRegression\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will be using a sample of [MNIST dataset in a CSV format](https://www.kaggle.com/oddrationale/mnist-in-csv/home). Instead of using full dataset with 60000 training examples we will use cut dataset of just 10000 examples that we will also split into training and testing sets.\\n\",\n    \"\\n\",\n    \"Each row in the dataset consists of 785 values: the first value is the label (a number from 0 to 9) and the remaining 784 values (28x28 pixels image) are the pixel values (a number from 0 to 255).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>label</th>\\n\",\n       \"      <th>1x1</th>\\n\",\n       \"      <th>1x2</th>\\n\",\n       \"      <th>1x3</th>\\n\",\n       \"      <th>1x4</th>\\n\",\n       \"      <th>1x5</th>\\n\",\n       \"      <th>1x6</th>\\n\",\n       \"      <th>1x7</th>\\n\",\n       \"      <th>1x8</th>\\n\",\n       \"      <th>1x9</th>\\n\",\n       \"      <th>...</th>\\n\",\n       \"      <th>28x19</th>\\n\",\n       \"      <th>28x20</th>\\n\",\n       \"      <th>28x21</th>\\n\",\n       \"      <th>28x22</th>\\n\",\n       \"      <th>28x23</th>\\n\",\n       \"      <th>28x24</th>\\n\",\n       \"      <th>28x25</th>\\n\",\n       \"      <th>28x26</th>\\n\",\n       \"      <th>28x27</th>\\n\",\n       \"      <th>28x28</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>9</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"<p>10 rows × 785 columns</p>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   label  1x1  1x2  1x3  1x4  1x5  1x6  1x7  1x8  1x9  ...    28x19  28x20  \\\\\\n\",\n       \"0      5    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"1      0    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"2      4    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"3      1    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"4      9    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"5      2    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"6      1    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"7      3    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"8      1    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"9      4    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"\\n\",\n       \"   28x21  28x22  28x23  28x24  28x25  28x26  28x27  28x28  \\n\",\n       \"0      0      0      0      0      0      0      0      0  \\n\",\n       \"1      0      0      0      0      0      0      0      0  \\n\",\n       \"2      0      0      0      0      0      0      0      0  \\n\",\n       \"3      0      0      0      0      0      0      0      0  \\n\",\n       \"4      0      0      0      0      0      0      0      0  \\n\",\n       \"5      0      0      0      0      0      0      0      0  \\n\",\n       \"6      0      0      0      0      0      0      0      0  \\n\",\n       \"7      0      0      0      0      0      0      0      0  \\n\",\n       \"8      0      0      0      0      0      0      0      0  \\n\",\n       \"9      0      0      0      0      0      0      0      0  \\n\",\n       \"\\n\",\n       \"[10 rows x 785 columns]\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/mnist-demo.csv')\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's peek first 25 rows of the dataset and display them as an images to have an example of digits we will be working with.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAkEAAAJBCAYAAABBBGGtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzs3Xm8leP+//H3pVKaJCUybVNCSJL5cAwNMicyz1RCZsdx0ODLMYVCxkJmJ47wM5wiMpe5UkQhSpuUojRcvz9296drae323muvte619v16Ph49vM+11/A53a29r31d93VdznsvAACApFkj7gIAAADiQCcIAAAkEp0gAACQSHSCAABAItEJAgAAiUQnCAAAJBKdIAAAkEhF3wlyzr3unFvknFuw4s+UuGtCdjjnmjrnnnHOLXTOzXDOHRd3Tcgu59xWKz6/I+KuBdnjnOvjnBvvnFvsnBsedz3ILufcNs65Mc65ec65r5xzR8RdU6aKvhO0Qh/vfcMVf7aOuxhkzR2S/pTUQtLxku5yzm0Xb0nIsjskfRB3Eci6HyQNlPRA3IUgu5xztSX9V9LzkppKOkvSCOdcq1gLy1BN6QShhnHONZDUTdK/vPcLvPfjJD0n6cR4K0O2OOd6SPpV0ui4a0F2ee9Heu+flfRz3LUg61pLailpkPd+mfd+jKS3VKTfm2tKJ+g651ypc+4t59y+cReDrGglaan3fmrQ9okkRoJqAOdcY0n9JV0Ydy0Aqs1JahN3EZmoCZ2gyyRtLmlDSfdIGuWc2yLekpAFDSXN/0vbPEmNYqgF2TdA0v3e++/jLgRAlUyR9JOkS5xzdZxzHSXtI6l+vGVlpug7Qd7797z3v3nvF3vvH1TZsNxBcdeFalsgqfFf2hpL+i2GWpBFzrm2kg6QNCjuWgBUjfd+iaTDJXWVNEvSRZKelFSUv9DUjruAHPAqG5pDcZsqqbZzbivv/Zcr2naUNDHGmpAd+0oqkfStc04qG/Wr5Zzb1nvfLsa6AFSC9/5TlY3+SJKcc29LejC+ijJX1CNBzrkmzrlOzrl6zrnazrnjJf1N0ktx14bq8d4vlDRSUn/nXAPn3J6SDpP0cLyVIQvukbSFpLYr/gyV9IKkTnEWhexZ8f24nqRaKuvg1luxqgg1gHNuhxXXtL5z7mJJG0gaHnNZGSnqTpCkOipbhjlHUqmkcyUd/pebaVG8ektaS2Xzz49J6uW9ZySoyHnvf/fez4r+qGzqc5H3fk7ctSFrrpT0h6TLJZ2wIl8Za0XIphMl/aiy7837SzrQe7843pIy47z3cdcAAACQd8U+EgQAAJAROkEAACCR6AQBAIBEohMEAAASiU4QAABIpCrt29CsWTNfUlKSo1JqpunTp6u0tLTgN2/k2mZmwoQJpd775nHXURGub2aK4fpybTNTDNdW4vpmqrLXt0qdoJKSEo0fPz7zqhKoffv2cZdQKVzbzDjnZsRdQ2VwfTNTDNeXa5uZYri2Etc3U5W9vkyHAQCARKITBAAAEolOEAAASCQ6QQAAIJHoBAEAgESiEwQAABKJThAAAEgkOkEAACCRqrRZIhC37777zvJtt90mSRo0aJC1XXDBBZbPP/98yxtvvHEeqgMAFBNGggAAQCLRCQIAAIlUdNNhy5cvt7x48eIKH//ggw9KkhYuXGhtkyZNsnzrrbdavuKKKyRJQ4YMsba11lrL8s0332y5V69eVSkb1TBz5kzLO+20k+Vff/1VkuTcyvNpw+sZXXtJmjNnTi5LRMwmT54sSTrggAOs7eOPP7bcvHnBn5OZePfee6/lnj17Wo6+50+ZMsXaWrVqlb/CUKMxEgQAABKJThAAAEikgpgOmzdvnuVly5ZZ/uSTTyy/8sorklZOgUjSPffck9H7lZSUWL7oooss33///ZKktdde29r23ntvy/vtt19G74eqmzFjhuV9993X8ty5cy1H02Dh9apbt67ln376yfLXX38tSdp0002trVatWtkruAb58ssvLYd/3x06dIijnEp57733JEn7779/zJWgKkaPHm35wgsvtLzGGqv+fh5OewPZwkgQAABIpNhGgr7//nvLbdu2tRz+5plN4W8W0YiPlHrj8+mnny5JWm+99aytYcOGlrm5MjeWLFkiKXX0p3PnzpbDvYHSCf/9XHvttZb32msvy1tttZWk1NHD6HojVfjb+RdffGG50EaCvPeWo9GrqVOnxlUOMhBer0WLFsVYCVZn+vTplocPH275pZdesvzBBx+s8rxHHnnEcrhX26uvvmr5lFNOkZQ6Q5NPjAQBAIBEohMEAAASKbbpsHXXXddyixYtLGc6HdaxY8e0rz1y5EhJqTfMhjfaIn6XXHKJpNT9mapi7NixlsP9oI444gjL0b+Djz76KKP3SJLbb7/dcvi5KjQLFiywfN1110lKPSqF6evCFe3Vds0116T9ert27SxHi2IaNGiQ87qQ6q233pIkHX300dY2e/Zsy+GU9JFHHmk5uoXhhBNOSPu64fOiPdzuuOOOLFRcdYwEAQCARKITBAAAEim26bBwVVZ4t/nTTz9teffdd7fcrVu3VV4jXP3z3//+1/Kaa65pedasWZJWnjiOwhCu+BoxYoSk1CHSUDitFf47iIZaw1UH22yzjeXLLrvMcvTvqrz3wErhXl2FLDxaIRJefxSWr776yvJBBx0kSfrll1/SPvb666+3HO4DhtwIj6MKV4J17dpVUurU8+GHH2554MCBlqMVuNLK7yGnnXaatT3++ONp33uPPfbIsOrsYCQIAAAkEp0gAACQSAVxbMYuu+xieYcddrAcTmtdeumlkqQbbrjB2gYMGJD2saH1119f0srVI4hPVU6DP/744y2Hp0tHq0rC9h49elhb/fr1Lbds2dJytFnmww8/bG2XX3655XBKLYl++OEHy+F1KmTpplIOPPDAGCpBZdx3332W022AGq4u+vvf/56XmlDmtddes9ypU6dVvn7MMcdYfuCBByyHq65D48aNk1T+FFi4MWJ4u0McGAkCAACJRCcIAAAkUkFMh4XKG15bZ511VmkLN3ULT3vntOHCUVpaavnf//635XBTzGizzM0228zaevXqZTmc6gzPCQtzZf3++++Wb7zxRsvhv6Ukijakk1L/jgpNuBnmZ599tsrXw41SEb/yPm/R9HR4vcLbG5B74fe8Cy64wHL48/Oqq66SlLrStryf0aG+ffuu9utPPPGE5fAWhjgwEgQAABKp4EaCyhP1LN9//31re+aZZyxPnDjRcps2bfJXGFaxdOlSyxdffLHlaD8gKXXvj5dfflmStOWWW1pbdLJ8Ln3zzTc5f49i8fnnn6dtz2S0LZf++c9/Wg5v5o4WVJS3QAL5Ey10kKTDDjtstY8Nj81o3bp1rkrCCkOHDrUcjv6EozvhQpN//OMfkqQ6deqkfb3we/0nn3xi+csvv5SUui9bOPLUvn37KteeK4wEAQCARKITBAAAEqlopsOiYe577rnH2kaPHm05HHYNt/Xec889JaXuRcCN07n17bffWg6nwELvvvuu5VatWq3y9fBYFcRn1113zev7LV682PKE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UlKi8ePHZ15VArVv3z7uEiqFa5sZ59yMuGuoDK5vZorh+nJtM1MM11bi+maqsteX6TAAAJBIdIIAAEAi0QkCAACJRCcIAAAkEp0gAACQSHSCAABAItEJAgAAiUQnCAAAJBKdIAAAkEhV2jEayKUBAwZYvuqqqyx36NDB8iuvvGJ57bXXzk9hAIC86d69u2XvveWnn3466+/FSBAAAEgkOkEAACCRauR02OLFiy0vWbJEkjRu3DhrmzlzpuWTTz7Zcu3aNfKvo+D9+uuvkqTbb7/d2tZYY2X/fMKECZa//fZby9tvv30eqkN1lZaWSpKWLl1qbe+//77lww47zHJ43avi1FNPlSTdfffd1larVq2MXgtVt2zZMsvTpk2z3LdvX8svvvhiXmtCcbn22mstv/DCC5YvuOCCnL4vI0EAACCR6AQBAIBEKur5n2gaRZJuvvlmy2PGjLH83nvvrfY1wqmxcEUS8qd+/fqSpEMPPdTahg8fHlM1yNSsWbMsP/TQQ5bvueceSdLy5cutLZzWDKfAnHMZvXf072WdddaxtoEDB1quW7duRq+LyglvQWjdurXljTbayPKCBQssN2zYMD+FoeBFP7vD6bA111zTcteuXXP6/owEAQCARCqakaA5c+ZIkm677TZrC/Mff/xhOdxXYLPNNpMkrbvuutYW3mgb3kjZq1cvSVLz5s2zVTYqIer1R9cKxenyyy+3PGLEiFhqGDRokOWePXta3mKLLeIoJ/G+//57y/PmzbPMSBAi0aKlP//809oOOeQQy3vssUdO35+RIAAAkEh0ggAAQCIV3HTYokWLLIc3Nt51112SUodUyxPuHzN27FhJqXuUtGjRwvLs2bMtR6/NdFh+Rdf8o48+irkSVEc4hJ1uOqxly5aWL774YsvhDdPp9gl68803LT/zzDPVrhP5E96agOL15ZdfWg4XED3wwAOW11prrUq/XviZfvvttyVJ2267rbWF09q5xkgQAABIJDpBAAAgkQpuOuytt96yfP3111f6eeFQ2htvvGG5cePGkqSff/45C9UhF6KjTSZNmlThY999913Lm2yyiSROky8URxxxhOVffvllla+HU11VWR109tlnW95mm20sh3sNRU477TTLm266aaXfA7kR7vsU7iWE4hKe6v7ZZ59ZHjBggOUtt9yy0q934YUXWv7pp58kSaNGjbK2cOo81xgJAgAAiUQnCAAAJFLBTYdVdFxCq1atLO+3336Wwy23oymw0IwZM6pfHHKiUaNGklJPC442rvyrsD3aAPPII4/MYXWorHC6K91nMFMffvih5ehE+vJEU6SSVLt2wX17S7SPP/7Y8uabbx5jJaiq8PMcTnGGGxxWJDyiKlxtFn3fiGu6lJEgAACQSHSCAABAIhXcePGdd95peffdd7fcuXNnSakbHTZo0KDSrxvdgY7CddZZZ1kubzoMyRGdKRSeEfj777+v9jmXXHJJTmtCeuFU6DrrrGN57ty5lidPnpzXmlB9gwcPliS988471rbTTjtZLikpWe3zw+my6667zvKCBQssd+rUSVLuzwgrDyNBAAAgkQpuJCi6SVaSevfunbXXHTNmTNZeC7lX0VEKqDnCfb0uuugiyxMnTpRUuZsv9957b0n8W4lLvXr1LIfHpzz00ENxlINqmD9/vuVor746depY2yOPPGK5fv36q32tfv36WR46dKjlcAHDiy++mHmxWcB3DAAAkEh0ggAAQCIV3HRYVTz99NOWwyG88OTiaE+DCRMmpH2Nrl27WmbvisIRTmuE+1KgcP3666+Wn3zyScsVDXeH2+VXdK2bNGliOZxq2WuvvSSlDtsDqJwff/zR8gEHHGB59uzZklKntcK9+soTTZnddNNNab9+++23Z1RnLjASBAAAEolOEAAASKSCng6LTheXpB9++EGSdNVVV1nbiBEj0j6vopVFG2+8seVhw4at9rEAyhcOo++7776Wp02blpP3C1ceHXTQQTl5D+RGRUeeIPfCn42vvfaa5Y4dO6Z9TPQzcezYsda2/vrrWz755JMtL1q0yHJ0/FV4a0p4LNLBBx+cUf25wE99AACQSHSCAABAIhXEdNiyZcssf//995bD4fXvvvtOUurmTOG0VpcuXSw/9thjlsPtuSNLly61/MILL1g+7rjjJEm1atWqUv0AUoe+w1yRqmyMGa4IO//88y23bdu20u+HeDz44IOWBw0aFGMlyfXmm29ajo6rkFJXZYafwe22205S6mbDYX7iiScshyfDRz+vw6mzG2+8sVq15wojQQAAIJHoBAEAgESKbTosnAL7+OOPLe+6665pHx+dLr///vtb2xZbbGH5jz/+sPzpp59afu+991Z5rVmzZlk+9dRTLUebJYY11K5dEDOGiVOZKZJXX31VknTkkUfmpSasaoMNNrD8wQcfWH7qqacsRytP1lxzzSq99v333y9Juvrqq6tTIvKsc+fOljk7rDC89dZbklI3Qgw/j02bNrX8v//9z3J0lmffvn2t7ZlnnrEcTo2l26Q42mxRkjbbbDPL4ebF4XvHgZEgAACQSHkf5ohGgG677TZru/TSS9M+NrpRWZJOOukkSamnFf/++++Ww30H3n33Xct169aVlHpTVjjyFO4TtM8++0iSjj76aGsL9yVq2LBh2jo32mijtO3IXGWOzbj33nslSddcc421tWjRIqd1oXxrr7225TPOOKParxedKM9IUHEJf+MP/fnnn5bnzZsnKfXfDHInuhF9yy23tLbw6IoDDzxwtc8fMmSI5XDW5aWXXlrt88LRocMPP9xy3KM/IUaCAABAItEJAgAAiZSX6bDwJtdbb71VknTZZZdZW3TzlbRyu20pdR+DaBpsxowZ1nbmmWdafuONNyxvv/32lh9//HFJUuvWra1t8eLFls8991zLDzzwgKTU/SzC07BD4YnzU6dOTfsYZO7KK6+0fO211672sdG02F+fh+L24Ycfxl0CMlDePmvh1Eh4JBJy75hjjpGU+jO1cePGlX7+/PnzLb/zzjtpHxPuQRQuWoo0adKk0u+XT4wEAQCARKITBAAAEikv02HPP/+85WgaLFxpNWrUKMs777yz5SlTplgeOnSopNST48O71MO718NVZemG/KIVY5K0ww47WI6m6rp162Zt4VRLiG3fcyu8LigM0crOzz77zNqibfUlqU6dOtV+j2jvJ0nq3r17tV8P+de+fXvL4XEm4arcaGVS//7981dYgmX6WYpOhn/kkUes7ddff7W87bbbWt5jjz0yrC5ejAQBAIBEohMEAAASKS/TYb17916lLTzJ/Z///KflaBMtSfr8889X+7p33XWX5dNPP91yRSdRV2TvvfdOm5E/4ZTkNttsY3nSpEmrPPZf//qX5fDfWiFtyFWswpOho00pw5Ojf/nlF8tVmQ4Lp7Lff/99yz169LC8YMGCVZ5Xv359y+HGqShM4ZE233zzjeVwE1oUrkcffVSSNHDgQGsLj8qJjuMoZowEAQCARMrLSFBJSYnl6PDS6IYrqfze5AknnGA52ta7S5cu1hbuO1Dd0R8Urg4dOliePHnyKl/n2ufOKaecYjndYcThAoGq7DsS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WB1Qc9x2222WL7vssoxe49FHH612HRdccIHl9u3bS5LOPPNMa+vWrZvlJk2aVPv9kB3z58+3PGLEiAofX1JSIolbEwpddJTJCy+8YG3htX777bctd+7cOX+FZREjQQAAIJEKeiQovFHu7rvvliQde+yx1hbuR7H55ptb/vrrr1d5rV9++cXyqFGjLDMSlAzRzbzhDcBPPvmk5YEDB6Z9XrS/1E033ZTD6uIX3ahaGeutt57lvffeu9LP22abbSyHCxl++ukny2+++abl999/P+W/krTzzjtbbtu2baXfG7kR3RDdpUsXa4tupv2r9957z3I0yofCVqdOHUmp1yu8GXrmzJl5rynbGAkCAACJRCcIAAAkUkFPh4UOOeQQSdKOO+5obeFNWc2aNbOcbjos1LNnzyxXh0IxadIky48//rjlaO+ouXPnWlu0df/qjB49OovVFa5x48ZZDoe70+3Vs+aaa1qOFixUx+LFiy1vt912ltN9jp966inLTIfF77HHHpMkTZs2zdpOOOEEy0OGDLHcqFGj/BWGrLrkkkssjxw50vLnn38eRzlZxUgQAABIJDpBAAAgkYpmOixy8803Ww63Z4+29K+MJUuWZLUmxCPaz+bDDz+0toqmr9Zee23L5557ruVwldPf//53y7VrF91HJCNNmzZNm/MhXDWUbgqsXr16ls8666y81ITyhSvB3njjDUlSq1atrO2WW26xzBRYzRCu7AwNHTrU8oABAyxnY5o8XxgJAgAAiUQnCAAAJFLRjfXvtttull966SXLBxxwgOVweD2dK6+80vI999yTxeqQC3/88Yfl/v37W77xxhslSc2bN7e2fffd1/J1111nOdpMM1zZFE6NIfeWLVtm+eqrr7Y8aNCg1T5v6tSplqtyOj2yZ/z48ZbDk+GjFZZnnHGGtUUb7KFmCjfDDFd2vv7665YPPvjgfJZULYwEAQCARKITBAAAEqnopsOi1QhS6rRXeL5QRcLT6VH4whWBN9xwg+V+/fpJSj31PJzuQmH44osvJEn333+/tYXXNBROpfznP/+RJK2//vo5rA7lWbRokeWKVl2Gm9U2bty40u8Rbn5Z3ia34ecb8Stvk9lwaqyYMBIEAAASqaBHgubMmWO5Y8eOklK36V66dGlGrxu9FgpDtG9TeJP67bffbvnRRx+13LlzZ8vRsQlJ2cunmMyYMcPy9ttvLyn1xujyrLHGyt/LopugK3O8CbIv/HsPR9qXL19uObpe4T5b5YmO2AhfO7xB/quvvkr7vMsvv1ySNH/+fGtj/yFkCyNBAAAgkegEAQCARCroeYRvvvnGcnRzZaZTYKFwqiUcjkU8opOmw2NQevXqZXnHHXe0zNRXcXj88cctV2YaLBLeXNmuXTtJqceYHHPMMZYPOeQQyxtssEFGdaJ8kyZNsvzf//7XcjhlucUWW0gq/2bomTNnWg5vrh4+fPgqjw2nuKJ9vSTpk08+kSR1797d2p544gnL7PeF6mAkCAAAJBKdIAAAkEgFPbfQoUMHyw8//LAk6aSTTrK28DiFqgiHaBG/Cy+8UFLqapRTTz3VMlNgxSecuohWdP7vf/+zttmzZ1f6tV577bW0uXfv3pavvfZaSVKfPn2srUGDBlWoGFLqdGR5+/ZsvPHGls877zxJ0rrrrmttpaWllv/9739bHjZsmOUWLVpISv13cskll1j+/fffLUcnmP/000+V/H+BXAqPzagJKzcZCQIAAIlEJwgAACRS0cwzHHXUUZKkrbbaytrCzbNC4WqUI444QpL066+/5rA6VMcBBxwgSRozZoy1hcPko0aNsrzddtvlrzBkLFzdE01lz5s3z9rCz+4vv/xiOdxQ78Ybb5SUOvweCjft+8c//iEpdVO/p59+2nJNGLbPh2gVrpS6Ei8UbV4oST179pQkLVy40NrCVZ4jRoywHK7iOuussyRJV155pbWF02jhe0fPO/TQQ9O+FvKrpn2WGAkCAACJRCcIAAAkUtFMh0XCjfPKEw6fDxw4UFLqqpFx48ZZDofoGWLNvunTp1sOV5XUqlXL8nPPPScpdfXIueeea3mvvfayPGXKFMvrrbdeVmtFboWfrzCH/y7Cz/dBBx0kaeVnWEpdYZbOM888YzmahpNSV5WifB9//HGFj4mmwELh9PUrr7yS9nnvvvuu5VatWklKXYEWtf1VtPKP0+QLW3RGYLFhJAgAACRS0Y0EVUZ4Y3Q4AhSpW7eu5Zp2k1ecFixYIEnq2rWrtYUjN+FW9/vss4/ltdZaS5J0yimnWFs4EhTeRBu9h8RIUE33t7/9TZL00ksvWVu3bt0sh0c5pDN58uTcFFaD/fzzz5bDEfVw365QtOfaxIkT0z7v0UcftRyO9EQ3QXfp0qXC55V3gzYKy/rrrx93CRlhJAgAACQSnSAAAJBINXI67JZbblnt18N9LMo7/RhV17p1a0mpezI99NBDlsMpsHTuu+++tO1HH3205Q033LA6JaIIhaeW77rrrpYrmg5r06ZNzmpKgvBWgYpuGwivUfjY8ePHW472cpJWHnkUXqPwseEtC0AuMRIEAAASiU4QAABIpLxPh0XDoL169bK20047zXK0IqSqwlVD11133WofG+0/guzq37+/pJUnS0srjztZnWhIPDptXJK23HJLyzfccINlhskLS/i5C49I2GGHHSzvscce1XqP8HiMDz/8cLWPrV175be0Dh06VOt9k+jwww+3fOmll1oO9/AKp7WiVWHhfmuhQYMGWQ5Xf0WnyEdHo0hSo0aNMi0bBWDp0qVxl5ARRoIAAEAi0QkCAACJlPfpsGjr8wcffNDawq3an3zyScvNmjWz3LRpU0nSd999Z23hkQzhEG26E+Ovv/56ywy75kY0rRlOWb333nuWw1O9Q3PmzJEknXDCCdZ28803W1533XWzWieqJ5wCO/DAAy2H1/r333+v9vtEJ5Pfdddd1lbev6HIzjvvbHmrrbaqdg1JU6dOHcsNGza0HF7z8O+1KpvNpjtFvm3bthnVicLz2muvWQ43NS10jAQBAIBEyvtIUN++fSVJX375pbWF2+JvvfXWlsPfOKL9QUaNGmVt5d2MF/52Ev2mccEFF1hbePMksu/4449Pm2+//fY4ykGWhQdZhqM/ofD4heh4k3CUIbRkyRLL4V5RV1xxhaTyP+fhjbbRKEM4woyqCw+zff311y1Hh5hK0siRI1f7GhdeeKHlcGRup512slzeYakoTA0aNLAcXtMJEybEUU5WMRIEAAASiU4QAABIpLzPC22++eaSUo9QCPcMOuywwyyHU2Zhrkh4I21F+4oAqJqDDz7YcnjTciicVtl7770lSc2bN0/72OjGeEl68803K11HeKPtO++8I4lplmwKb1p+6qmnYqwEcatVq5bl8hYWhbeqcGM0AABAgaMTBAAAEim2ZVKXX3655XC77fDU8dD7778vSRoyZEjar6+zzjqWmQIDcmf33Xe3fM4551i+44470j6+KlNc6YSrOcNVSt27d7dcUlJSrfcAUDnhcTThCsJwL6liwkgQAABIJDpBAAAgkQpi18BwuPvEE09M+5ioffDgwXmpCUB6TZo0sRye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C/fhi0bgpZX7RElSaWmp5WjG5v3337e2TTfd1PKzzz5rmZEgAACAGNAJAgAAiZT36bBrr71WUuo+IqGuXbtaDm+YrMo02KJFiyxHw3HPPfdche/HzZXFJRqKXbhwYdqvs2V/fMIb4ps0abLK17/77jvL4b5c4bB7dBJ1eOzGgQcemNU6UXUPPvig5WhRQjhFEgqPRwhvqI32bYsWvEjSo48+ajncOw7xefvttyWlngp/zTXXWA4/r6+99toqzx83bpzlQt1/j5EgAACQSHSCAABAIuV9Oqxv376SUo83CPf+GD58uOXyttOvSDisetZZZ63y9fAk6kceeaTa74d4zJ07V5L0ySefpP16ly5dVvv88MT5GTNmWA6HcKNh+fL2oULFwuMyquKEE06QlHqKPFOc8bvhhhssv/HGG5JSpz+jU8ElqVevXpajPYUkaaeddpIkjR8/3to6duxo+Z133rG8ww47ZKNsZGCDDTaQJM2bN8/axowZYznd9LW08mfpZpttlusSq42RIAAAkEh0ggAAQCLlfTps1113lSSNHTs2q68bbsTWp0+fVb4enjh++eWXW2YKrPCFG3KFp1V//PHHq31eNJ0iSXvuuaeklasdJOnHH3+0/M0331gON3D74osvJEk333xzVctOtOXLl1t+9dVXJaUOnZfnxBNPtByuQkK8Zs2aZTn8PEYblobCjWmPOeYYy+lWB0WfSyl1FWB4rEq4sR7yK5quDL8/Rqe+S6nXL3T66adLklq0aJHD6rKDkSAAAJBIdIIAAEAixXaKfLaFK77Cu9Qj//nPfywfdNBBeakJ0pIlSyyHq7GiaSZJevPNNyWtPB/ur3777TfL4SnxFQnPrZkzZ84qX7/44osth5tmhiuQ0m30h4qFq4Luu+8+Sek/l39Vmccg/6KVmH8VngcVadmypeUrrrii0u/Rs2fPtK+B+IWrvMINLsvzj3/8I5flZBUjQQAAIJGKeiRo0KBBlsMbMddYY9W+XThShNyIRn1uu+02awv3bKroRuZQOAITjsyE+5GEN2hGLrvsMsu9e/e2vPHGG1f6vVF54SjdE088Yfnee++1HI3u7LPPPtYWfh5vuukmy+H+YSh84SKCSN26dTN6LUZdi8NXX31luaKfu8WgOKsGAACoJjpBAAAgkYpuOizckj3ccj0cigtvrnz66aclSc2aNctD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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 25 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many numbers to display.\\n\",\n    \"numbers_to_display = 25\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the numbers.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(10, 10))\\n\",\n    \"\\n\",\n    \"# Go through the first numbers in a training set and plot them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extrace digit data.\\n\",\n    \"    digit = data[plot_index:plot_index + 1].values\\n\",\n    \"    digit_label = digit[0][0]\\n\",\n    \"    digit_pixels = digit[0][1:]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the number matrix.\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap='Greys')\\n\",\n    \"    plt.title(digit_label)\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Split the Data Into Training and Test Sets\\n\",\n    \"\\n\",\n    \"In this step we will split our dataset into _training_ and _testing_ subsets (in proportion 80/20%).\\n\",\n    \"\\n\",\n    \"Training data set will be used for training of our model. Testing dataset will be used for validating of the model. All data from testing dataset will be new to model and we may check how accurate are model predictions.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Split data set on training and test sets with proportions 80/20.\\n\",\n    \"# Function sample() returns a random sample of items.\\n\",\n    \"pd_train_data = data.sample(frac=0.8)\\n\",\n    \"pd_test_data = data.drop(pd_train_data.index)\\n\",\n    \"\\n\",\n    \"# Convert training and testing data from Pandas to NumPy format.\\n\",\n    \"train_data = pd_train_data.values\\n\",\n    \"test_data = pd_test_data.values\\n\",\n    \"\\n\",\n    \"# Extract training/test labels and features.\\n\",\n    \"num_training_examples = 6000\\n\",\n    \"x_train = train_data[:num_training_examples, 1:]\\n\",\n    \"y_train = train_data[:num_training_examples, [0]]\\n\",\n    \"\\n\",\n    \"x_test = test_data[:, 1:]\\n\",\n    \"y_test = test_data[:, [0]]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train Logistic Regression Model\\n\",\n    \"\\n\",\n    \"> ☝🏻This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"- `polynomial_degree` - this parameter will allow you to add additional polynomial features of certain degree. More features - more curved the line will be.\\n\",\n    \"- `max_iterations` - this is the maximum number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `polynomial_degree` - the degree of additional polynomial features (`x1^2 * x2, x1^2 * x2^2, ...`). This will allow you to curve the predictions.\\n\",\n    \"- `sinusoid_degree` - the degree of sinusoid parameter multipliers of additional features (`sin(x), sin(2*x), ...`). This will allow you to curve the predictions by adding sinusoidal component to the prediction curve.\\n\",\n    \"- `normalize_data` - boolean flag that indicates whether data normalization is needed or not.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Set up linear regression parameters.\\n\",\n    \"max_iterations = 10000  # Max number of gradient descent iterations.\\n\",\n    \"regularization_param = 10  # Helps to fight model overfitting.\\n\",\n    \"polynomial_degree = 0  # The degree of additional polynomial features.\\n\",\n    \"sinusoid_degree = 0  # The degree of sinusoid parameter multipliers of additional features.\\n\",\n    \"normalize_data = True  # Whether we need to normalize data to make it more unifrom or not. \\n\",\n    \"\\n\",\n    \"# Init logistic regression instance.\\n\",\n    \"logistic_regression = LogisticRegression(x_train, y_train, polynomial_degree, sinusoid_degree, normalize_data)\\n\",\n    \"\\n\",\n    \"# Train logistic regression.\\n\",\n    \"(thetas, costs) = logistic_regression.train(regularization_param, max_iterations)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Print Training Results\\n\",\n    \"\\n\",\n    \"Let's see how model parameters (thetas) look like. For each digit class (from 0 to 9) we've just trained a set of 784 parameters (one theta for each image pixel). These parameters represents the importance of every pixel for specific digit recognition. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <th>...</th>\\n\",\n       \"      <th>775</th>\\n\",\n       \"      <th>776</th>\\n\",\n       \"      <th>777</th>\\n\",\n       \"      <th>778</th>\\n\",\n       \"      <th>779</th>\\n\",\n       \"      <th>780</th>\\n\",\n       \"      <th>781</th>\\n\",\n       \"      <th>782</th>\\n\",\n       \"      <th>783</th>\\n\",\n       \"      <th>784</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>-9.772579</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.009417</td>\\n\",\n       \"      <td>-0.007525</td>\\n\",\n       \"      <td>-0.019028</td>\\n\",\n       \"      <td>-0.015672</td>\\n\",\n       \"      <td>-0.011255</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>-12.919264</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.007120</td>\\n\",\n       \"      <td>-0.004079</td>\\n\",\n       \"      <td>-0.000066</td>\\n\",\n       \"      <td>-0.000032</td>\\n\",\n       \"      <td>-0.000007</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>-7.262680</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0.000385</td>\\n\",\n       \"      <td>0.000191</td>\\n\",\n       \"      <td>-0.000155</td>\\n\",\n       \"      <td>0.000112</td>\\n\",\n       \"      <td>0.000214</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>-7.540222</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.037224</td>\\n\",\n       \"      <td>-0.019561</td>\\n\",\n       \"      <td>-0.005837</td>\\n\",\n       \"      <td>-0.001835</td>\\n\",\n       \"      <td>0.000126</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>-9.932585</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.104504</td>\\n\",\n       \"      <td>0.000216</td>\\n\",\n       \"      <td>-0.001270</td>\\n\",\n       \"      <td>-0.033175</td>\\n\",\n       \"      <td>-0.032475</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>-7.635457</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.020391</td>\\n\",\n       \"      <td>-0.014374</td>\\n\",\n       \"      <td>-0.005743</td>\\n\",\n       \"      <td>-0.035149</td>\\n\",\n       \"      <td>-0.032878</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>-9.047295</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.003456</td>\\n\",\n       \"      <td>0.000079</td>\\n\",\n       \"      <td>-0.000917</td>\\n\",\n       \"      <td>-0.022326</td>\\n\",\n       \"      <td>-0.021854</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>-10.491723</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0.058497</td>\\n\",\n       \"      <td>-0.042011</td>\\n\",\n       \"      <td>0.086780</td>\\n\",\n       \"      <td>0.161491</td>\\n\",\n       \"      <td>0.156586</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>-6.311099</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.005436</td>\\n\",\n       \"      <td>-0.006730</td>\\n\",\n       \"      <td>-0.001873</td>\\n\",\n       \"      <td>-0.025549</td>\\n\",\n       \"      <td>-0.038580</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>-8.199128</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.004838</td>\\n\",\n       \"      <td>0.010311</td>\\n\",\n       \"      <td>-0.007995</td>\\n\",\n       \"      <td>-0.073160</td>\\n\",\n       \"      <td>-0.056380</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"<p>10 rows × 785 columns</p>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"         0    1    2    3    4    5    6    7    8    9   ...        775  \\\\\\n\",\n       \"0  -9.772579  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...  -0.009417   \\n\",\n       \"1 -12.919264  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...  -0.007120   \\n\",\n       \"2  -7.262680  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.000385   \\n\",\n       \"3  -7.540222  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...  -0.037224   \\n\",\n       \"4  -9.932585  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...  -0.104504   \\n\",\n       \"5  -7.635457  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...  -0.020391   \\n\",\n       \"6  -9.047295  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...  -0.003456   \\n\",\n       \"7 -10.491723  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.058497   \\n\",\n       \"8  -6.311099  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...  -0.005436   \\n\",\n       \"9  -8.199128  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...  -0.004838   \\n\",\n       \"\\n\",\n       \"        776       777       778       779  780  781  782  783  784  \\n\",\n       \"0 -0.007525 -0.019028 -0.015672 -0.011255  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"1 -0.004079 -0.000066 -0.000032 -0.000007  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"2  0.000191 -0.000155  0.000112  0.000214  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"3 -0.019561 -0.005837 -0.001835  0.000126  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"4  0.000216 -0.001270 -0.033175 -0.032475  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"5 -0.014374 -0.005743 -0.035149 -0.032878  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"6  0.000079 -0.000917 -0.022326 -0.021854  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"7 -0.042011  0.086780  0.161491  0.156586  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"8 -0.006730 -0.001873 -0.025549 -0.038580  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"9  0.010311 -0.007995 -0.073160 -0.056380  0.0  0.0  0.0  0.0  0.0  \\n\",\n       \"\\n\",\n       \"[10 rows x 785 columns]\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Print thetas table.\\n\",\n    \"pd.DataFrame(thetas)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAj8AAAJBCAYAAACphNSGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzs3XeUVfW9/vHPFkT6UKR3kN67hSYEERSwxBo1lmjUGDUarylmxUSTeK9XvfYEYyEiRo2xIyJERZoiUqX33ntV8Pz+0PzW3d/PkzuHMnNm8n2/1nLdu5+1Z9hz5uxzvjnz7M9OMpmMAQAAxOK4XB8AAABAYWLxAwAAosLiBwAARIXFDwAAiAqLHwAAEBUWPwAAICosfgAAQFRY/ByBJEmqJEnyWpIke5IkWZEkyaW5PiaguEiS5KYkST5LkuRAkiTP5fp4gOImSZITkiR5+tv3n11JksxIkmRgro+rOCmZ6wMoph43sy/NrIaZdTCzd5IkmZnJZL7I7WEBxcJaM7vXzAaYWZkcHwtQHJU0s1Vm1tvMVprZIDN7OUmStplMZnkuD6y4SJjwfHiSJClnZtvMrE0mk1n4bfa8ma3JZDI/y+nBAcVIkiT3mlndTCZzZa6PBSjukiSZZWa/yWQyr+b6WIoD/ux1+JqZ2cF/Lny+NdPMWufoeAAAEUuSpIZ9897EXx+yxOLn8JU3s51BtsPMKuTgWAAAEUuS5Hgze8HMhmcymfm5Pp7igsXP4dttZhWDrKKZ7crBsQAAIpUkyXFm9rx900G9KceHU6yw+Dl8C82sZJIkTf9X1t74uBEAUEiSJEnM7Gn75sKb8zOZzFc5PqRihcXPYcpkMnvM7O9m9tskScolSXKamQ21b1bfAPKRJEnJJElKm1kJMyuRJEnpJEm48hQ4PE+aWUszG5zJZPbl+mCKGxY/R+ZG++YS3Y1m9qKZ3cBl7kDW7jKzfWb2MzO77Nv//66cHhFQjCRJ0sDMfmjfjFpZnyTJ7m//+16OD63Y4FJ3AAAQFT75AQAAUWHxAwAAosLiBwAARIXFDwAAiAqLHwAAEJXDmq1Rvnz5TNWqVQvqWFDMrVy5cnMmk6mW6+MoyipWrJipUaNGrg8DRdTixYs5h/JRpkyZTF5eXq4PA0XUhg0bsjqHDmvxU7VqVfvZz7hxObQbb7xxRa6PoairUaOGPfjgg7k+DBRRQ4YM4RzKR15enl122WW5PgwUUQ888EBW5xB/9gIAAFFh8QMAAKLC4gcAAESFmwkeYyVKlHDZa6+95rITTjghtX311Ve7fTZu3OiygwcPuoxblODfyTc3q05T59WhQ4dS25wHyLUyZcq47Ljj/GcMX375ZWr766+/dvt89ZW/SXu9evVctnv3bpdt377dZQsWLHBZ9+7dU9t79uxx+yjqXMv2/FM/ay7wyQ8AAIgKix8AABAVFj8AACAqLH4AAEBU/m0Kz6popoqTe/fuzfd7lStXLqvv1aBBA5c1a9bMZX379nXZqlWrUtsrVvi5TKoYpo6tZEn/a9y3b5/LwpKdGSVRHL7wXChdurTbp3Llyi5T52ilSpVcpoqe4fliZrZr167/8zjNzEqVKpXV91fnQViozhbnVPEWXozyr6jX5+OPPz6rrGLFiqltVVqeOHGiy1TxX72uq3/z2muvddmWLVvy/f7qvWTbtm0u279/v8vUubBz506XhT9D2bJl3T7HGp/8AACAqLD4AQAAUWHxAwAAosLiBwAARKVYFp5ViVGVE1UhOZyQqUqYqhQ9ffp0l73++usu69ixo8saNWrksry8vNR2y5Yt3T6rV6922datW11Wq1Ytl6mfQU0aDR1pyRPFX7Vq1VymCsnz589PbauC6AsvvOAyVfxv1aqVy1RJUhX9w/NbFTPVsc2bN89lqjRat25dl23YsMFlRWViLQ6fek3MdsqxKvqvW7fOZep1fOHChantSy65xO3Tv39/l6nzShWZy5cv77LnnnvOZQMHDkxth+9LZmYjRoxwWdWqVV126aWXuuyjjz5ymXrMC6Pg7I6j0P9FAACAHGLxAwAAosLiBwAARCVnnR/1d/Js74ir/o6vBpepv3u+9957qe3wb69mZqeddprLNm/e7LImTZq4bPny5S7r2bOny8I77Kq/Cy9btsxl1atXd5nqahw4cCCrYwvv/tuiRQu3jxpKhdxTv5eGDRu6TA0uU8/nYcOGueyiiy5yWdhPq1mzpttHDUGrUqWKyzZu3Ogy1b9RP0M4yG3GjBluH9X7U53BSZMmuSzb3lzt2rVT2zt27HD7MPiwaAqHDZrpXqXqQqr9BgwY4LJRo0a5rEaNGqlt1WlT5/ddd93lsnfffddl77//vst69+7tsvB9Yvbs2W6fG264wWXhcEQzszFjxrisS5cuLlPn1eLFi1Pb6mdX/cOjwSc/AAAgKix+AABAVFj8AACAqLD4AQAAUSm0wnN4x1dVflR3J1eZokpUc+fOdVlYcDv//PPdPqpA/NZbb7lMlUZVIfL55593WViSVMVPVSqrUKGCy1RZM/z+ZrpEFg6Zo5hZfKiBZKr4n81dpc3MnnnmGZfdd999LgsHhaqCctu2bV2mLmhYunSpy8K7xpvpiwvCgXLqNUANWVOlfnVxhDo2df6Fd+Q+6aST3D7qDvSca7k3btw4lzVu3Nhl6jnZo0cPl1111VUue+CBB1wWvieoO6Kr8/bRRx91mboo4c4773TZhAkTXBZeeKMsWrTIZeq9T134oAZGhmVvM3+uqcdDrQUOHjzosmzxyQ8AAIgKix8AABAVFj8AACAqLH4AAEBUCq3wHJYdVZn3xBNPdJkqOanirrqbupoEPX78+NT2J5984vZRk2JViVFNj23fvr3L1L8RTpZu2rSp22f9+vUuW7NmjctUkVQVWjt16uSysHgeTnz+V3JxF17kT11IoO5iXqdOHZep4nL37t1dNnny5NS2KmaeccYZLlOFZPU8VdQE3LCkrO7qrp7zqqzZuXNnl6mLBtTPGk6f3rRpk9tHFZ5ViRYFK7wgRT1P1fuQKr+PHj3aZVdeeaXL1O85fF6qEnD9+vVdpu4WoN6v7r//fpedeuqpLgvfX9W5oQrg6o728+fPd5l6LNXPVbdu3dS2eu9Wr09Hcw7xyQ8AAIgKix8AABAVFj8AACAqLH4AAEBUCqTwnE0JSU2nVVMd1RRUVXhWRURVBAtLU6oEVqpUKZepnyksOpqZffbZZy5TBcgVK1aktlXRrFatWi5TxTilcuXKLlPHu2PHjtS2Kk9v2LAh369DwQufg2qa+NatW12mLgZQZXpVKFSl33DKsfo6lannnzq/q1ev7jJ1gURYoFal6OnTp7tMTXhWx6bOP1Vc3rZt2/95XCg6wgs11AUkaqJxnz59XKZeK8eOHeuyW2+91WVTp05NbY8cOdLto84D9ZxUx3HhhRe6TE1g7tChQ2p78eLFbh/1mnLKKae4TL1PqP3URTXh+7d6P1evKUeDT34AAEBUWPwAAICosPgBAABRYfEDAACiUmgTnsNyppoQrMqEy5cvd5kqKU+ZMsVlTZo0cVlYqlZlZFXyVCWttWvXuuzrr792mZq6G5ZX1UTOm266yWVq4q4qg+7ZsyerYwt/rrZt27p9VCkVuacKz9WqVXOZmpaqCoUffPCBywYMGOCycNqtOm9V8V8VFtUEd3XOqwno4fTYsERqZta1a1eXqedz1apVXaZK0OpCgrBwqoqfCudV4QsvGFGTm8Pp+2ZmlSpVcpl6Tvbt29dlw4cPd9m4ceNS2+p5qorSqlCtXtcXLFjgMvWzvvPOO6ntH/3oR24f9Xi8/PLLLlOT5FevXu2y22+/3WX16tVLbX/88cduH+VoziE++QEAAFFh8QMAAKLC4gcAAESFxQ8AAIhKzgrPyqFDh1zWqlUrl6kJqipbsmRJvv+GmuZ84MABl82ZM8dlqsisJnCqsnTjxo1T26rInM00WTOzZcuWuUwVWpXw5z948KDbh2JmwWrYsKHLwgngZv4cUlPHv/rqq6z+TVVEVOeQKh6Gz3H1XFPnkPr+qqyf7fTwsPAcTp42M2vTpo3L3n//fZepyelqCrYqQYcT59XFHOrxwLFTunRpl4WvsWb+vOrVq5fbR70Pqenhf/vb31zWvn17l6nX8euvvz7ff1MVlFWRWU1wV68N6v0qnCL94IMPun3q1KnjMnVhTOfOnV2mXmc+/PBDl4XvQ+r7T5gwwWVHg09+AABAVFj8AACAqLD4AQAAUWHxAwAAolIghWdVbg4LWGoqpZrsmpeX5zJVBm3QoIHLZs2a5bI+ffrk+29Onz7dZapMqabp1q1b12WqTBmWt0466SS3jyp9zZ0712Vbt251mSq8lS9f3mVhWVUVnsPpm2b6ccORmTZtmsvCIqKZ/52qIroq16vCpXq+qdKlmsAclkvVc1J9nZo6rqZKq2JmzZo1XRaWiNVrxapVq1zWsmVLl6nXIzWRWmXhOTN79my3T6NGjbL6Xjgy2RTRzbK7wENdBLN7926XdevWzWXqggN1LoevxWoq+JgxY1xWv359l6k7HqiCtppO/vTTT6e2r7zySrePuqBm48aNLlu3bp3L1PGq5334GqheA9T7rbpDQ7b45AcAAESFxQ8AAIgKix8AABCVQhtyGPYVVCfltNNOc5m6U6z6O636O2KzZs1cNn/+/NS2+luuuoOv+rtt7969XaZ6B2rYYnhHYNXVyPbvmequ3epvvqr7EfaR1GN7NH9XRf7CYX1muoOiejQh1TlQ30t1JLId0Bn2xNRzvnbt2lkdhxoIqIYmqs5PeGyqs6SGC4Z3YTfTz3H1/ZSwe6WG06nOD44d1SdTWTj48Pnnn3f7TJo0yWVvvfWWy9TzSD131Xm7ePHi1LYa0qiGC15wwQUuUz+n6jupIYEdOnRIbauhwqNHj3aZOjfUe4fqRalhp2Ff6LPPPnP73HbbbS5Tv79s8ckPAACICosfAAAQFRY/AAAgKix+AABAVAqt8ByWvtTAJVX6UgVOVeYNi8xmejhfWPpVhSx159wWLVq4TJU6VYFTDc0Kv3bz5s1uH/V4hEU5M333YvUYqSy867UqfqqCGgqWGhQaUgXibDN1gYAq5qvffZMmTVLbqhStCsrquasuaFCvDeoCie7du6e21XBBNQhSnQfqTvL79u1zmSp6hiXXs88+2+2jXscYclj4wgs8Bg0a5PYZMmSIy9RFJaeccorL1PNNPcfDO6C3bt3a7fP3v//dZWqgqDq/VQlaDUOsWLFialuVltWQXjWEUJ3f6oKirl27uiwsj7/22mtun1/84hcuUwNLs8UnPwAAICosfgAAQFRY/AAAgKiw+AEAAFEpkMKzmiQcFjjVXdInT57sMnVHWVVy2r9/v8vWr1/vsrCwqMpoasKzKkmqEqYqvKnCczhtM5z4bKZLrypr2LChy1RxTf1eRo4cmdru1KmT20cV6tTPjmNHTYpVv9NQtr8rVdz99NNPXRaWm83Mtm7dmtpWU2FVWVhNW1bn3x/+8AeXzZkzx2Xh1PU+ffq4fdTPqR4jdd5mUzo3y256vSo8o2BVrVrVZePGjUtt//SnP3X7qPcmNaX5ww8/dJm6QEC9d6xevTq1rS7YUa/X6jwIL1oxM2vQoIHLxo4d67LwdUado6effrrLVPG6V69eWe03ffp0l4UXSKi7M6iLEtS5nC0++QEAAFFh8QMAAKLC4gcAAESFxQ8AAIhKgRSe1ZTjsFCopigvXbrUZeHkRzOz5cuXu0yV29R0yfDfbd++vdtHTa8MS55muqSsjlcVVcPp0+r7q/KcKnt/9tlnLlMFS1UOC6fz1q1b1+2zcOFCl+HYUWVbVZoNn0clSpRw+6iitCprqudkly5dXKbOhRNPPDG1rZ7z6mIDdWzf+c53XBZObjYzmzlzpsvC0qia6K6mKKsiqXos1e9AXbwQPpY7d+50+6jp06qoimNny5YtLgsn2I8YMcLto57zasrxL3/5S5epcvDQoUPzPTb1/FDl5muuuSbf72VmNmPGDJep82rlypWp7Q0bNrh9VKbO7zPOOMNl6n2oWrVqLnvyySdT2/369XP7qEyVuLPFJz8AACAqLH4AAEBUWPwAAICosPgBAABRKZDCs1KxYsXUtpomqwpNqtysitF79uxxmZqsGZYzw/KmmS5Jqkm36vurknJYKjbzZccVK1a4fVThcvHixS7Ly8tzWbbTMMPpvGpaNIXnwqcmJGczSfiEE05wWbaTwtW5oC4kCM+hadOmuX1U+Vidy2vXrnWZ+tlVCbVt27apbXXuha87ZnoavHo81PfL5rFUv4PwWM100R0FK3wdf+aZZ9w+vXv3dpl6vzrrrLNcpiaKjxo1Kt/j2rx5s8v69+/vMjUR/dRTT3WZmhitysfh87JWrVpuH3UBk7oLwjvvvOOySy65xGXZTLxWj+NTTz3lskaNGrksW3zyAwAAosLiBwAARIXFDwAAiAqLHwAAEJUCKTyraalhgUkVa9XUSFV+LF++vMtUmWvbtm0uCwtvU6dOdfuoyZ2qCKamvarjUEXPsDA2ZswYt48qV6qp1WpKtSrDhqUyM7PWrVuntlXxDsWbek4eOHAgq/3U9NhwQuvGjRvdPpMmTXKZKv2qwrM6DlXqb9CgQWpbTaJVFxuoSdOqfKz2UxcNhF+rXv9UaVRdpIEjo0rm6jFft25daltNPZ4wYYLLzj33XJep4q66MEaVpadMmZLaHjx4sNtHTX1WF+Oo6dPTp093mbqLQPh8Vt9fXTTQvHlzl6nXFFX2Vq8XV1xxRWr7vffec/uoCzKOBp/8AACAqLD4AQAAUWHxAwAAosLiBwAAROWoC8+qWKuEJUA1wVEVFsOCmpmeOqvKiap4GE4+VuVKVTQuWTK7h2rOnDn5/ptmvgStJmaqnz0seZqZrVq1ymXqsWzWrFm+X6tKaygawqK/Kt+q6cWqDKqsWbPGZY0bN3ZZWPRv2rSp26d06dIumzt3rst69eqV7/c306XO8JxUZU31+rRr1y6XKepr1etAuF84AdtMl03VY4Qjo84FlYW/mw4dOrh9xo0b57LnnnvOZQMHDnSZev1Ur+PhRSrqYp+wFG1m1qJFC5ep139V5FbCgrYqcavzSk11Vz/7+PHjXXbRRRe5LLw46aabbnL7qAnS6r01W3zyAwAAosLiBwAARIXFDwAAiEqh3dU9/Ptrp06d3D6qE6C6MOqOtWo4n+oJ1KlTJ7W9c+dOt4/q7ahBT+pvoervntWrV3dZ+DdOtY/6XpUrV3aZGkR32mmnuUz9Hfjhhx9Obau+kxoWxh2pC5bqm4SZ6rSp55Hq/KjvX7t2bZepoZqTJ0/O9+tUN0Z9r2w7Euq5G/YG1b+phhyq/o16jqvHTXWqwr6hel1Q/RM17A3HzsGDB11WpUqV1HbLli3dPkOGDMn368z0kMrRo0e7TL0Wh70z1a1T733qeRoOHTXTAxLVeRW+D6lzedGiRVkdW79+/VymHiM19Pftt99ObatennrvU+/L2eKTHwAAEBUWPwAAICosfgAAQFRY/AAAgKgcdeFZFV9VabZChQqpbTXkUJWX1LA+VZZWQ6LU9wuLZZs2bXL7/OUvf3FZ3bp1XabuNK0Kp+rYwsKYKnOpcpsaRKcKder3ooriYTlTDWhTAyRVqRPHjjo/wt+DGtCpfn/qfFSDQtXQPfWcCZ+rqhisBhWq59F5553nMjW4TJ2n4UUO6ljVXeMVdS4PGjTIZdncJT7bfzPbwanInzoX1Otn+Lr7/PPPu3327duX1fd69913XXbNNde4bOXKlS5bvXp1anvFihVuH1U+VufoQw895DL13O3Zs6fLwotl1PtGq1atXKZen9T5F15gZGbWsGFDl4WPx969e90+4ZBXM/2aki0++QEAAFFh8QMAAKLC4gcAAESFxQ8AAIhKgTTuVJEvnNioiszqjrKq3KzKx2o69MKFC10WltRUYUrdOVdNdlUluHBippmeVhn+u6oorYqqaj9VPv7iiy9cpkp1YQlOHb8qAKrpwjgyatqyOhfCiwZUqVg9J1VZWO03depUl9WqVctlS5cuTW2rKc2qmK9+JvUcV2VHNcU8vJv1smXL3D6tW7d2mZqmu2DBApep4rJ6PMJzWd1lWxVJVYETR0a9HqkJz0uWLEltq8nb3bp1c5l6v1KTlV988UWXqcJw+L42a9Yst496nqq7FjRr1sxl6v1Q3a3+u9/9bmpbnQfqgoZPPvnEZfPmzXOZuoO7KkGH77lNmzZ1+6jXFPVakS0++QEAAFFh8QMAAKLC4gcAAESFxQ8AAIhKgRSe1RTKcPLstGnT3D4nnniiy1QBt0+fPi5TE1rVZM3du3entlXhOZwCaqYLb6pUrEp2qtTZr1+/1Pb06dPdPlWqVHGZKvbNnj3bZWqq9Nlnn+2ysPC3ceNGt48qtKrCLI4dddHA+++/n9pWZU11vqhpzqo4qYr5zZs3d1n4u1cXA5x55pkuU1PM1fH+9a9/dVmvXr1cFhbFO3bs6PZRrwtjx451WViENTP74Q9/6DJVMlcXEoTURFwuGihY6nkZvr717dvX7aNew5X69eu7TE1WVncMCN8jmzRpku8+ZrqQ/OMf/9hl6j1szpw5LgvfJ9SFBeq1/owzznBZ586dXRZObjYzGzlypMtatmyZ2lbv3er9UP2Os8UnPwAAICosfgAAQFRY/AAAgKiw+AEAAFEpkMLzzp07XRYWn9RUSjUBdtGiRS5TpVxVKlYFy9q1a6e2Vck6LEWbmb3yyisuU9OWGzZs6DI1kTosOKupl2oyr5qi2aBBA5epMuz27dtdph5zFC41/VdNLg0Llvfff7/b5+STT3aZKnCqIrA6hyZOnOiy8IIDVU5U554qTn700UcuUxN2u3bt6rIxY8akttVzXk2iVcd2ySWXuExNtl23bp3Lwtc79fuk3FywVKFc/f7Ccyh8DpmZtW/f3mVqiv5rr73mMjUBXE2CDi+0UWVedaFJzZo1Xfbxxx+7TF3woi58CKeiz5gxw+0zZMgQl6kp5urfbNeuncvUa1uYqan36k4Dar9s8ckPAACICosfAAAQFRY/AAAgKix+AABAVAqk8KzKZ2GhK7yFvZnZlClTXNa/f3+XhSUtMz1t86STTnLZwoULU9tq6qUqfqoiW4cOHVzWuHFjl02ePNllagJnSJXb1OOhpkOHE7XNdNEsLJGpYqYqyqnyGY4dVd5t1KhRavuBBx5w+6iC4VNPPeUyVdz9zne+4zJVKAzLn2oSrTqH1JT0AQMGuExdcKAucghfB6644gq3z9y5c13WtGlTl4UTZs3MZs2a5TJVfA1/fvW7U6+JKHzh81JNKt66davL1NTxZ555xmXqvGrdurXLwhK0uihh5syZLlOT39V0cjURXV28EJb/zznnHLePmvKuLnJQ733qgoN69eq5LHw/VI+jupDgaO40wCc/AAAgKix+AABAVFj8AACAqLD4AQAAUSmQwrMSTqtU04ZV+VhN2wynNJuZrVixwmUVKlRwWceOHf/PbTNdrlT/5p49e1ymJmSq6Z3hZGU1zVmVilXBS02sVce2f/9+l3311VepbVUqo9xc+NTvYe3ataltNfV427ZtLlNTn8MJs2b6AoEFCxa4LCwCd+rUye2jnn9q0q0ql6pzrUaNGi4LLwhQZVBVZO7evbvL1OOtSttqanBYClf7qIsNULDUhOTwOfjkk0+6fe677z6XqdfAxx9/3GUDBw50mbqbQTipX70fque8uhhAXZSg7rIwdOhQl7344ov5/psvvfSSyz7//HOXnXfeeS5TFyKpi4fCiyHU8avvdTT45AcAAESFxQ8AAIgKix8AABCVQuv8hML+gplZv379XKa6MOqO1OrviKoDEHZc1N/i1VA/1QlQd0Tv0qVLvv+mme9mqN6OGoymvteuXbtcpoZmqeFrYYdIfR2KJvV3d9XlKVWqlMtUD23Hjh0uU+dVmzZtUtuqG6Pu+qyeW2pooDpe1SEaPHhwaludj6ozqAYfquNQ1OMbnlf0e4qu8P3k/PPPd/uoXo3q7fTp08dl6rVYve6GQ35Vx0W954Tnnpk+R1evXu0y9Z572WWXpbaHDx/u9qlevbrLLr/8cpf17t3bZeFQYTP9nh4OCj3W/R6FT34AAEBUWPwAAICosPgBAABRYfEDAACikrPCsyruqqKjGlSlCoXqLuaqRBwWFlVJUg20Usehhpmpn0EVQtevX5/aVmVQNbxK3XVdFeqy/VpVJEXRFP7+1PNKleTVc0uVDtXzQw3VDM8PVdasW7euyzZv3pzVsam7qavXi5B6zqvSqHqMsi2Kq0wNlkTxoF7r1YUE6uKZRYsWuUydQ+p5GZ676jVcnd+qyKyez9kW+GfPnp3aVoNO1XGo4128eLHL1OuMOl51nhY0PvkBAABRYfEDAACiwuIHAABEhcUPAACISs4Kz4oqMquylaKKuyoLC5bq+6vytCpkqTtSh0Xmf/W14URLtU+2RWaVKdmURlF0hUVBVRxUVKlYFT2zfY5nQxUd1bmmCsTq58rmZ832tUL9nOrcUBkXCMQp28n3aj/1vAxfs9VzMtsS8NF8behoyvvFrfjPJz8AACAqLH4AAEBUWPwAAICosPgBAABRSQ6nGJUkySYzW1Fwh4NirkEmk6mW64MoyjiHkA/OoXxwDiEfWZ1Dh7X4AQAAKO74sxcAAIgKix8AABAVFj8AACAqLH4AAEBUWPwAAICosPgBAABRYfEDAACiwuIHAABEhcUPAACICosfAAAQFRY/AAAgKix+AABAVFj8AACAqLD4AQAAUWHxAwAAosLiBwAARIXFDwAAiAqLHwAAEBUWPwAAICosfgAAQFRY/AAAgKiw+AEAAFFh8QMAAKLC4gcAAESFxQ8AAIgKix8AABAVFj8AACAqLH4AAEBUWPwAAICosPgBAABRYfEDAACiwuIHAABEhcUPAACICosfAAAQFRY/AAAgKix+AABAVFj8AACAqLD4AQAAUWHxAwAAosLiBwAARIXFDwAAiAqLHwAAEBUWPwAAICosfgAAQFRY/AAAgKiw+AEAAFFh8QMAAKLC4geaziY0AAAgAElEQVQAAESFxQ8AAIgKix8AABAVFj8AACAqLH6OQJIkI5IkWZckyc4kSRYmSfKDXB8TUBwlSdI0SZL9SZKMyPWxAMVJkiQffnvu7P72vwW5PqbihMXPkfmDmTXMZDIVzWyImd2bJEnnHB8TUBw9bmZTc30QQDF1UyaTKf/tf81zfTDFCYufI5DJZL7IZDIH/rn57X9NcnhIQLGTJMnFZrbdzMbl+lgAxIXFzxFKkuSJJEn2mtl8M1tnZqNyfEhAsZEkSUUz+62Z3ZbrYwGKsT8kSbI5SZKJSZL0yfXBFCcsfo5QJpO50cwqmFlPM/u7mR34v78CwP9yj5k9nclkVuf6QIBi6k4za2xmdcxsmJm9lSQJf4HIEoufo5DJZA5lMpkJZlbXzG7I9fEAxUGSJB3M7Dtm9lCujwUorjKZzCeZTGZXJpM5kMlkhpvZRDMblOvjKi5K5voA/k2UNDo/QLb6mFlDM1uZJImZWXkzK5EkSatMJtMph8cFFGcZM0tyfRDFBZ/8HKYkSaonSXJxkiTlkyQpkSTJADO7xChtAtkaZt/8j4UO3/73RzN7x8wG5PKggOIiSZJKSZIMSJKkdJIkJZMk+Z6Z9TKz0bk+tuKCT34OX8a++RPXH+2bxeMKM7s1k8m8mdOjAoqJTCaz18z2/nM7SZLdZrY/k8lsyt1RAcXK8WZ2r5m1MLND9s2FN+dkMpmFOT2qYiTJZDK5PgYAAIBCw5+9AABAVFj8AACAqLD4AQAAUWHxAwAAosLiBwAAROWwLnUvW7ZsplKlSgV1LCjm1q1btzmTyVTL9XEUZWXKlMnk5eXl+jBQRG3YsIFzKB9lypTJVKxYMdeHgSJq48aNWZ1Dh7X4qVSpkl1zzTVHflT4t3bvvfeuyPUxFHV5eXl2xRVX5PowUETdf//9nEP5qFixon3ve9/L9WGgiHrooYeyOof4sxcAAIgKix8AABAVbm9RCL69eWNKNpO1S5b0vx6VffXVVy77+uuvj+jfBPITPp/Vc1IpW7asyw4cOOCyypUru0x1PLZu3Zra3rVrl9vnyy+/dJk6N4BcOtL3CDOz447zn2Go7ODBg4d/YP/G+OQHAABEhcUPAACICosfAAAQFRY/AAAgKv/WhWdVIitRokS+X6f2qVGjhss2btzoMlWmLFWqlMvCMpsqt6mCmsooN+Ofsnl+m+lCpCokq6GmnTp1Sm0vWLDA7aOKxnv37nVZz549XbZ8+XKXffTRRy4744wzUtvbtm1z+6hMXSCgqDJ2tl+LOKnzqkKFCi47dOhQvl9XpUoVl6nXevW1aj91fof7qfNl586dLitXrpzL1Pvtvn37sspy8X7FJz8AACAqLH4AAEBUWPwAAICosPgBAABRKVKF52wnVZ544okuU4VkVbqcPHlyartMmTJun+3bt7tMlTDVcbRv395lCxcuzPff2LRpk9unYcOGLqtVq5bLVAlT/ez79+/P6mtRfKmioyoiHn/88Vl9P3X+hc+ZE044Iat/c/DgwS5T5cc6deq4TJU1TzrppNS2KijPnj3bZap4rY5XFT3VeVW1atXU9urVq90+iIMqN6vX7PB5FE4rNzMbPXq0y/r37+8y9X6lziFVZm7evHlqOzynzMymTJniMvW+od5fVq5c6bK6deu6LHwNUefoscYnPwAAICosfgAAQFRY/AAAgKjkrPOjhrFVr17dZerviFu2bHHZ888/77IePXq4bPHixantli1bun3U322bNGnisvHjx7tM9QQGDRrksrfeeiu1rXoTq1atclnr1q1dNmbMmKyO4/e//73LRo4cmdrmjtfFh/q7uOqk5OXluSwcsmame0A7duxw2fz581Pba9eudfu0adPGZVOnTnVZ7dq1XTZ9+nSXhb0aM7PHH388td2nTx+3j3o81HGo4aGqc/HTn/7UZevWrUttq9c29Xgj91SXTPXcVCdT9UVnzJjhsrZt27pMDcgNqf6oOufV++GiRYtcpt7Dwud4+fLl3T6qs/Tmm2+6TJ3zqkOk+rPhz6p6c2ro49Hgkx8AABAVFj8AACAqLH4AAEBUWPwAAICo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2WVqoqWasvrrX//aZWqi7K9+9avU9vDhw90+eXl5Lqtbt25W+6kps6eccorLKlWqlNpesmSJ20eV1lS57fXXX3fZ3Xff7bI333zTZeGETyVJEpdlMpl8vw7HVljUVZPDy5Yt67JRo0a5rH379i5TBVE1bTmcYq5KnurrypQp4zJVbFTPt//8z/90WTgVVxUuw0m6Zr44bqanqauJuHXq1HHZLbfcktq+99573T5hSRwFT722he8n1atXd/s0a9bMZepiAPX6rC6MUcfxyiuvpLbVxS3z5893mXo+q++vJkZ/+umnLtuyZUtqW5WiP/roI5epKc3q2FasWOEy9V4Xlv/VhUjqwoqjwSc/AAAgKix+AABAVFj8AACAqLD4AQAAUSmQwrMqw4aTNa+88kq3jyodqknQc+bMcdk999zjsrFjx7osnLappr2qMqgqOqoJnKrgdejQIZfdcMMNqW31s3//+9932fnnn+8yVVRVk6BVefzMM89Mbe/cudPtM23aNJepwhuOHVUeXLBgQWpbFZ7VxFP13FVFz3BispkvN6uvVYVqRZV+1TTd3/zmNy4rXbq0yzp27JjaVhPiP/vsM5fVrl3bZX369HHZ4sWLXaamPoeF78mTJ7t9+vXr57Jt27a5DAUrnBSuLhBYv369y9TvXT2P1Lmgzr9wwrMqT6vzW01rVwV+VSrO5jgmTZrk9lHHps5bNQlarQXU+RFeUPTxxx/ne6xmZjt27HBZtvjkBwAARIXFDwAAiAqLHwAAEBUWPwAAICpHXXjet2+fy9TE16+//jq1PXXqVLePmkqpyraqgNWzZ0+XqUJyeGzhxGczPaFVlZbVcdx///0uU1Ofw0mg77//vtunR48eLmvbtq3LVDlMTdNVZbbGjRunttWUXFUGVYU6HDthMd/Ml/9VWVM9d8866yyXvfzyyy5TRc+TTz4532NTz4+KFSu6TE11f/jhh12mysHq/AunpKtzT128oDJVnJw+fbrL1Dn/wAMPpLbVJHWVoWCpcyh8Hs2ePdvt06BBA5epMn3lypVddtlll7lMXUgQFpfVZGh1IYsqXvfq1ctl4QRpM7MmTZq4bOPGjfl+f1VazrYErS4AateunctOOOGE1LZ6LVKT348Gn/wAAICosPgBAABRYfEDAACiwuIHAABE5agLz6qIqLJ169altlXBS33drl27XKaKVWpaavny5V0WFjG7dOni9lETpFWps3fv3i7785//7LIPP/zQZWHhTf2cYUncTBfq1GTNNWvWuOy8885zWfi4qaLZ9u3bXYaCpc6FmTNnprbV1OOf/OQnLlOTXT/66COXqQngSjj1ed68eW4fNYn2t7/9rcvUc7x58+YuU5Oa27Rpk9oOp8Sa6Qsy1DT1Zs2auey2225z2fjx41129tlnp7Zfe+01t4+a2K0uSsCRUUVdpVy5cqlt9Zx/5plnXPbee++5LHz+melS8ZAhQ1wWTmVWzw814Tl8HzXT5586r9RrQ3iBi7oYQD1Ge/fuzWo/VW5W74fhuVC1alW3j/qZjqYEzSc/AAAgKix+AABAVFj8AACAqBx150f9zS0cnGTm/x6oOj9qmNKIESNcpu40/dhjj7lM9XnCgVCrVq1y+4SD/8zMOnXq5DJ1d9pXX33VZWrY4qeffpra/v3vf+/2UZkaaKg6DOpvsk899ZTLwrvaq8Fu6nes+lQ4dtRzJhyWpoYG/ulPf3LZwIEDXTZo0CCXqT6LOifD80Pdbbl///4uU3efvvDCC12mOgwPPfSQy8LnbufOnd0+mzZtcpnq76muW9gPMfP9HjPfI1QdPNU9Uj0PHDtqaG7YRatevbrbRw28VH0W9f3VQFHV3wsHKWbbqxk2bJjLVHdMDUhU52T4Or569Wq3j3o+L1u2zGWNGjVymXrvqF+/vsvC1xQ1RFc9HkeDT34AAEBUWPwAAICosPgBAABRYfEDAACictSFZ1UKvPnmm132xBNPpLZVgVgNXrv00ktdpgYgheVHM10+e/vtt1PbamigGrI2d+5clz333HMuu/jii12m7qZ+1VVXpbYXLFjg9lGPo7pbryq+qqFfd9xxh8vCArgqyqnSmirx4dhRA73COx+rYmatWrVcpu4o/h//8R8uq127tsuWL1/usrDsqErR6rmrLnJQd9AOXyvMzNq2beuysGCpCqhqeKEq66tBnurxOHjwoMvCAYzh3ebNzLZu3eoyHDvqfFEF/nAwofp9jhw50mUffPCBy9Tz+a677sr33zTzz9X9+/e7fdRrrLoYR2Uvvviiy1S5O3yuquG4inqPVOeQuhhHnX9jxoxJbavhiF9++WVWx5YtPvkBAABRYfEDAACiwuIHAABEhcUPAACIylEXnlUJ6a233nLZuHHjUttvvPGG20fdTTfbyajqbrfq7spLly5NbT/yyCNuny1btrisQoUKLlOTL9Ud4UuUKOGysGimptqqiZkXXHCBy1RZWt3xW32/8OdS07lVofVYT9tEmirIhlOfS5b0p+91113nMjXFXH1t165dXabuCN+hQ4d8v384jdrM7Pbbb3dZOOncTE99Vne4njp1ampbFY3VXarVubZ48WKXqcLztm3bXBZeXKB+diaiFyx1UYZ6zoRTxtUkYXUHd0VdVKLu6q6K1+FzXJ1Dt9xyi8tef/11l1WrVs1laoK7unghnHitLnipV6+ey5S8vDyXqfNbTZEOX3vUe6aaZL179+6sjk3hkx8AABAVFj8AACAqLH4AAEBUWPwAAICoHHXhWdmzZ4/Lbr311tT23Xff7fY588wzXRYW1MzMVq5c6bKePXu67JRTTnHZzp07U9vdunVz+6jytCo8z58/32WqqBVOgDUza9GiRWpblTBVgaxp06Yua9iwoctUoTUszJr5AudXX33l9lE/e/g4ouCFRX9VHFTUOaQmyo4dO9Zlapr6Cy+8kNpWE2a7d+/usrCgbKan5J522mkuW7FihcvCf3f9+vVuH5WpkquaVK9eZ1RxOTzXjvUkWhwZVYIOi8Xq+T1jxgyXqbsPPPnkky575513XNaxY8d8j23atGlun8cff9xl6rytWLGiy9RFQWraeXhxT5cuXdw+alq0Klmron+fPn1cpkrK4fuQes1S72lHg09+AABAVFj8AACAqLD4AQAAUWHxAwAAonLUDSI15VgVZMNJqw0aNHD7hNOXzcwOHTrkMlX62rRpk8vuuusul1199dWp7WHDhrl9VJF08ODBWR2H+tpatWq5bNasWantiy66yO1TvXp1l40ePdplqrStHg81vTN8fHft2uX2UROeUfjC34MqNW7YsMFlqpy4fft2l6lp6mvWrHFZOPV50qRJbp+6deu6TJ3LqiytLhooW7asy0JqSrMq5jdv3txl6vXok08+cZma/h7+XKpEyzlUsNTjq55v4fuVmnqspiOrAv/nn3/usosvvthl6kKC8GIWNV1dTelX5Wb1c6pys7pAJ5wkP2LECLfPjh07XKamPrdr185lixYtctnXX3/tsl69eqW21QUO6mc/GnzyAwAAosLiBwAARIXFDwAAiAqLHwAAEJUCmfB8wgknuOyWW25Jbffo0cPt07dvX5ep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c9m2bdtcpnTq1MllqsgdTodesGCB26datWouq1+/vstU+Uzt17dvX5ddeeWVqe2BAwe6ffDvp0KFCi5TBXtVpgzLiWo6uZriqi4uUOetKnpmU6o+msKz+tpsJ6eH/4YqZ6N4y7bIrDI1sVwVkkOqoJzt3Qdef/11lw0ePNhl4fkdFqDN9Htws2bNXKYeo9WrV7tMvc7s37/fZQWNT34AAEBUWPwAAICosPgBAABRKVKdn7y8PJepv0Hu3LnTZervkmow4Xe+853Udt26dd0+7du3d5m6Y7T6W2uPHj1cpv7uedttt6W21d9333jjDZdNmDDBZV26dHGZuuP8Aw884LLnn38+tf3222+7fdTjjaJJdQ7KlSvnMjVoTHXTqlSp4rKyZcvmexzly5d3WZkyZVz25Zdfukz9DOpcC3sCqiukeghqP/Wzq76QysLehOovcMf5oqly5couU8/JXr16uSx87TTTz131vhZ2SNU+DRs2dNmwYcNcprp0t9xyi8teffVVlzVp0iS1rc7R9957z2VNmzZ12dSpU12muqfqMRo1alRq+/rrr3f7LF++3GVHg09+AABAVFj8AACAqLD4AQAAUWHxAwAAolJoheeweKiGm6ny8cKFC13WokULl23evNll7dq1c1k4LG3p0qVuH1XIUuUzVeqcM2eOy9q2beuysPCmBmGpTBXAN2zY4DJ1vM2bN3fZtGnTUtvqcZw9e7bLwuGIKBpUYbF27doumzx5sstUSV6V9cOhhup52rJlS5dt377dZatWrXKZKmh///vfd1nXrl3z/f7r16932eLFi12mHrfPP//cZWo45MaNG1PbqoBK4bloUkNu1fMvfJ00Mxs3bpzL1EU2F110kctGjBiR2lbvVeeee67LLrjgApc9++yzLvuf//kfl6l/49NPP01t16hRw+2j3m/VBRMzZ850Wb169VymLqB5/PHHU9sffvih20cV0dV5my0++QEAAFFh8QMAAKLC4gcAAESFxQ8AAIhKoRWewxKgKgCq8pkq4KqvbdCggcumTJnisqpVq6a2Gzdu7PZRE1pVcVIVnlVZWk3JnT59emr7/fffd/sMHTrUZar4uWXLFpepwpiaYhuW1FSpTJXg1NRPFKzwTumqmKl+f+r5rEqMqkyvyrthMVqdB9ne6V1NTG7UqJHL7rvvPpeFP+tVV13l9lGvH+o8UFOf165d67IOHTq4TF28EVI/J3d/L3zhhTfqOaneEyZOnOiyl19+2WVhkdnM7He/+53LwufbkCFD3D7quXbvvfe6TF3QsGnTJpep97CnnnoqtT1p0iS3zyOPPOIyVexW78HZlqBfeuml1La66726iEfd8SBbfPIDAACiwuIHAABEhcUPAACICosfAAAQlUIrPIfFMlWIVBNa69ev77KKFSu6rFatWi6rXLmyy8IyZTjh0sysffv2LhswYIDLwinNZmbHH3+8y8Kp0mZm1apVS22feeaZbh9VzFTfv06dOi5Thdbx48e7rEuXLqltVcxUhc4XX3zRZShYYQFXFdHDacNmuvwYFu7NzG6//XaXqSJ+WDT+xz/+4fZRFyXcdNNNLjvjjDNcpl4HBg8e7LLHHnsstf3qq6+6fWrWrJnVse3evdtlqsCphMVzVURXvxdVskbBCgv8avr+qFGjXHbOOee47KOPPnLZggULXLZr1y6XLVmyJLV9+eWXu33Uc+bGG290WbNmzVymztts7qAwcuRIt496b927d6/LwouJzPR78BtvvOGycCL1nXfe6fY5/fTTXaZeP+6//36XKXzyAwAAosLiBwAARIXFDwAAiAqLHwAAEJVCKzyHJUA1CVlleXl5LlNTbD/44AOXtWrVymXhFOk2bdq4fU488USXPf300y5Tk5tbt27tsp07d7qsW7duqe2mTZu6fVT5+JNPPnGZ+lpV4DzttNNc1rlz59T2F1984faZP3++y1Qp/N1333UZjowq5YaTlNUkZHW+PPfcc1nt99e//tVlH3/8scvC55uaRKsm56qp42r6tJoq3bt3b5eFFyGsW7fO7aOmNIcTqs3Mrr/+epepn33u3LkuK1ky/TLapEkTt0+207hx7ITTnM3MypYtm9pWr/UtW7Z02ZNPPumyvn37ukwVqNXrfzjlWE1XX758ucvUa716T1AF6ltvvdVlq1evTm2r92D1PFUXAKnXrHCCtJk+v3/5y1+mttVE97feestlixcvdlm2+OQHAABEhcUPAACICosfAAAQFRY/AAAgKkddeFalMlV2DKeZqgKgml68Zs0al1WoUCGrYytdunS+x6EmTavyWf/+/V2mJnyqwpgqwTVu3Di13bBhQ7fPnDlzXBZOBjXTBbKZM2e6TBX5wjLzvHnz3D7q94ljZ9WqVS5TU8zDqeDD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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 9 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many numbers to display.\\n\",\n    \"numbers_to_display = 9\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the numbers.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(10, 10))\\n\",\n    \"\\n\",\n    \"# Go through the thetas and print them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extrace digit data.\\n\",\n    \"    digit_pixels = thetas[plot_index][1:]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the number matrix.\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap='Greys')\\n\",\n    \"    plt.title(plot_index)\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Analyze Gradient Descent Progress\\n\",\n    \"\\n\",\n    \"The plot below illustrates how the cost function value changes over each iteration. You should see it decreasing. \\n\",\n    \"\\n\",\n    \"In case if cost function value increases it may mean that gradient descent missed the cost function minimum and with each step it goes further away from it.\\n\",\n    \"\\n\",\n    \"From this plot you may also get an understanding of how many iterations you need to get an optimal value of the cost function.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Draw gradient descent progress for each label.\\n\",\n    \"labels = logistic_regression.unique_labels\\n\",\n    \"for index, label in enumerate(labels):\\n\",\n    \"    plt.plot(range(len(costs[index])), costs[index], label=labels[index])\\n\",\n    \"\\n\",\n    \"plt.xlabel('Gradient Steps')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Calculate Model Training Precision\\n\",\n    \"\\n\",\n    \"Calculate how many of training and test examples have been classified correctly. Normally we need test precission to be as high as possible. In case if training precision is high and test precission is low it may mean that our model is overfitted (it works really well with the training data set but it is not good at classifying new unknown data from the test dataset). In this case you may want to play with `regularization_param` parameter to fighth the overfitting.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Training Precision: 96.6833%\\n\",\n      \"Test Precision: 90.4500%\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Make training set predictions.\\n\",\n    \"y_train_predictions = logistic_regression.predict(x_train)\\n\",\n    \"y_test_predictions = logistic_regression.predict(x_test)\\n\",\n    \"\\n\",\n    \"# Check what percentage of them are actually correct.\\n\",\n    \"train_precision = np.sum(y_train_predictions == y_train) / y_train.shape[0] * 100\\n\",\n    \"test_precision = np.sum(y_test_predictions == y_test) / y_test.shape[0] * 100\\n\",\n    \"\\n\",\n    \"print('Training Precision: {:5.4f}%'.format(train_precision))\\n\",\n    \"print('Test Precision: {:5.4f}%'.format(test_precision))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot Test Dataset Predictions\\n\",\n    \"\\n\",\n    \"In order to illustrate how our model classifies unknown examples let's plot first 64 predictions for testing dataset. All green digits on the plot below have been recognized corrctly but all the red digits have not been recognized correctly by our classifier. On top of each digit image you may see the class (the number) that has been recognized on the image.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1080x1080 with 64 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many numbers to display.\\n\",\n    \"numbers_to_display = 64\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the numbers.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(15, 15))\\n\",\n    \"\\n\",\n    \"# Go through the first numbers in a test set and plot them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extrace digit data.\\n\",\n    \"    digit_label = y_test[plot_index, 0]\\n\",\n    \"    digit_pixels = x_test[plot_index, :]\\n\",\n    \"    \\n\",\n    \"    # Predicted label.\\n\",\n    \"    predicted_label = y_test_predictions[plot_index][0]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the number matrix.\\n\",\n    \"    color_map = 'Greens' if predicted_label == digit_label else 'Reds'\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap=color_map)\\n\",\n    \"    plt.title(predicted_label)\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/logistic_regression/multivariate_logistic_regression_fashion_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Multivariate Logistic Regression Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Logistic Regression](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/logistic_regression)\\n\",\n    \"> - ⚙️[Logistic Regression Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py)\\n\",\n    \"\\n\",\n    \"**Logistic regression** is the appropriate regression analysis to conduct when the dependent variable is dichotomous (binary). Like all regression analyses, the logistic regression is a predictive analysis. Logistic regression is used to describe data and to explain the relationship between one dependent binary variable and one or more nominal, ordinal, interval or ratio-level independent variables.\\n\",\n    \"\\n\",\n    \"Logistic Regression is used when the dependent variable (target) is categorical.\\n\",\n    \"\\n\",\n    \"For example:\\n\",\n    \"\\n\",\n    \"- To predict whether an email is spam (`1`) or (`0`).\\n\",\n    \"- Whether online transaction is fraudulent (`1`) or not (`0`).\\n\",\n    \"- Whether the tumor is malignant (`1`) or not (`0`).\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this example we will train clothes classifier that will recognize clothes types (10 categories) from `28x28` pixel images.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of logistic_regression module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of logistic_regression library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [math](https://docs.python.org/3/library/math.html) - math library that we will use to calculate sqaure roots etc.\\n\",\n    \"- [logistic_regression](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py) - custom implementation of logistic regression\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import matplotlib.image as mpimg\\n\",\n    \"import math\\n\",\n    \"\\n\",\n    \"# Import custom logistic regression implementation.\\n\",\n    \"from homemade.logistic_regression import LogisticRegression\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use a sample of [Fashion MNIST dataset in a CSV format](https://www.kaggle.com/zalando-research/fashionmnist).\\n\",\n    \"\\n\",\n    \"Fashion-MNIST is a dataset of Zalando's article images—consisting of a training set. Each example is a 28x28 grayscale image, associated with a label from 10 classes. Zalando intends Fashion-MNIST to serve as a direct drop-in replacement for the original MNIST dataset for benchmarking machine learning algorithms. It shares the same image size and structure of training and testing splits.\\n\",\n    \"\\n\",\n    \"Instead of using full dataset with 60000 training examples we will use cut dataset of just 5000 examples that we will also split into training and testing sets.\\n\",\n    \"\\n\",\n    \"Each row in the dataset consists of 785 values: the first value is the label (a category from 0 to 9) and the remaining 784 values (28x28 pixels image) are the pixel values (a number from 0 to 255).\\n\",\n    \"\\n\",\n    \"Each training and test example is assigned to one of the following labels:\\n\",\n    \"\\n\",\n    \"- 0 T-shirt/top\\n\",\n    \"- 1 Trouser\\n\",\n    \"- 2 Pullover\\n\",\n    \"- 3 Dress\\n\",\n    \"- 4 Coat\\n\",\n    \"- 5 Sandal\\n\",\n    \"- 6 Shirt\\n\",\n    \"- 7 Sneaker\\n\",\n    \"- 8 Bag\\n\",\n    \"- 9 Ankle boot\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>label</th>\\n\",\n       \"      <th>pixel1</th>\\n\",\n       \"      <th>pixel2</th>\\n\",\n       \"      <th>pixel3</th>\\n\",\n       \"      <th>pixel4</th>\\n\",\n       \"      <th>pixel5</th>\\n\",\n       \"      <th>pixel6</th>\\n\",\n       \"      <th>pixel7</th>\\n\",\n       \"      <th>pixel8</th>\\n\",\n       \"      <th>pixel9</th>\\n\",\n       \"      <th>...</th>\\n\",\n       \"      <th>pixel775</th>\\n\",\n       \"      <th>pixel776</th>\\n\",\n       \"      <th>pixel777</th>\\n\",\n       \"      <th>pixel778</th>\\n\",\n       \"      <th>pixel779</th>\\n\",\n       \"      <th>pixel780</th>\\n\",\n       \"      <th>pixel781</th>\\n\",\n       \"      <th>pixel782</th>\\n\",\n       \"      <th>pixel783</th>\\n\",\n       \"      <th>pixel784</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>9</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>6</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>30</td>\\n\",\n       \"      <td>43</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>8</td>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>14</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>8</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>203</td>\\n\",\n       \"      <td>214</td>\\n\",\n       \"      <td>166</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"<p>10 rows × 785 columns</p>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   label  pixel1  pixel2  pixel3  pixel4  pixel5  pixel6  pixel7  pixel8  \\\\\\n\",\n       \"0      2       0       0       0       0       0       0       0       0   \\n\",\n       \"1      9       0       0       0       0       0       0       0       0   \\n\",\n       \"2      6       0       0       0       0       0       0       0       5   \\n\",\n       \"3      0       0       0       0       1       2       0       0       0   \\n\",\n       \"4      3       0       0       0       0       0       0       0       0   \\n\",\n       \"5      4       0       0       0       5       4       5       5       3   \\n\",\n       \"6      4       0       0       0       0       0       0       0       0   \\n\",\n       \"7      5       0       0       0       0       0       0       0       0   \\n\",\n       \"8      4       0       0       0       0       0       0       3       2   \\n\",\n       \"9      8       0       0       0       0       0       0       0       0   \\n\",\n       \"\\n\",\n       \"   pixel9    ...     pixel775  pixel776  pixel777  pixel778  pixel779  \\\\\\n\",\n       \"0       0    ...            0         0         0         0         0   \\n\",\n       \"1       0    ...            0         0         0         0         0   \\n\",\n       \"2       0    ...            0         0         0        30        43   \\n\",\n       \"3       0    ...            3         0         0         0         0   \\n\",\n       \"4       0    ...            0         0         0         0         0   \\n\",\n       \"5       5    ...            7         8         7         4         3   \\n\",\n       \"6       0    ...           14         0         0         0         0   \\n\",\n       \"7       0    ...            0         0         0         0         0   \\n\",\n       \"8       0    ...            1         0         0         0         0   \\n\",\n       \"9       0    ...          203       214       166         0         0   \\n\",\n       \"\\n\",\n       \"   pixel780  pixel781  pixel782  pixel783  pixel784  \\n\",\n       \"0         0         0         0         0         0  \\n\",\n       \"1         0         0         0         0         0  \\n\",\n       \"2         0         0         0         0         0  \\n\",\n       \"3         1         0         0         0         0  \\n\",\n       \"4         0         0         0         0         0  \\n\",\n       \"5         7         5         0         0         0  \\n\",\n       \"6         0         0         0         0         0  \\n\",\n       \"7         0         0         0         0         0  \\n\",\n       \"8         0         0         0         0         0  \\n\",\n       \"9         0         0         0         0         0  \\n\",\n       \"\\n\",\n       \"[10 rows x 785 columns]\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/fashion-mnist-demo.csv')\\n\",\n    \"\\n\",\n    \"# Laets create the mapping between numeric category and category name.\\n\",\n    \"label_map = {\\n\",\n    \"    0: 'T-shirt/top',\\n\",\n    \"    1: 'Trouser',\\n\",\n    \"    2: 'Pullover',\\n\",\n    \"    3: 'Dress',\\n\",\n    \"    4: 'Coat',\\n\",\n    \"    5: 'Sandal',\\n\",\n    \"    6: 'Shirt',\\n\",\n    \"    7: 'Sneaker',\\n\",\n    \"    8: 'Bag',\\n\",\n    \"    9: 'Ankle boot',\\n\",\n    \"}\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's peek first 25 rows of the dataset and display them as an images to have an example of clothes we will be working with.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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82b2GZI+v3odp3wBiQPuDCRtY68Qgps990fivDkZSV88OYTg2oQzAIwC8BqA1wGMScsQQhiHZBB/P+37MpvURmNzOfgzgFWQmBZPRf3r+N8AbkASnPABgC+RjMcAgNT/504A2/E5U1PZDkhMZZORmFXPReI03WpY1uTeMTGztwHsEkJ4u5HHd0LyNbRSCGF8U96bmH/Sr5FZAFYNIXzQ2vcjhKgfGptFa9PhcymYWWck0QyN6mSibWJmu1qSz2QxJCHyryMJ+RRCtAM0Nou2QIefBKUhtOe29n2IJucnqDjJrgpgv1AGtaYQHQSNzaItUApzmBBCCCFETTq8JkgIIYQQIg9NgoQQQghRSuod/goAXbt2DX379m2mW0n49ttKZvUpU6ZE2c12yy5byYnXuXPnWtsB4IsvKskwZ86snUi4d+/eUf7BD5p3Hjh+/HjMmDGjzeewaYm6rcb331dSkXz88cdR/vrrr6PM9bzQQgsBAFZYoZLjq7nrsyajR4+eEUKoK+txm6At1G97pD3Ur+q2cbSHugVavn55vH3nnXcAAAssUFnQ3cddIPu+Znr0SJJ5L7poJRdjNu9p81Pf+m3QJKhv374YNWpUvfbll1VDfvy0adOifPbZZ0f5m2++AQAccMABsax///61tgPA66+/HuXrr7++1j1cfPHFUV58cU46W5vG/g5n0KBBDT6mNWhI3TYXPHm94IILovzBB5Wod54o9eyZJI0+4YQTYhl3upbAzCZU36v1aQv12x5pD/Wrum0c7aFugca/d5mGvLsmTqzkoNxxxx0BAEsssUQsYyUCKxm+++67KJ9xxhkAgA022CCW8eQpDx7bm+Jjtr7126BJUDXqM2HwSc4///nPWHbNNddEedasWVFeaqmlouwvyCuuuKLqffDsdMklk8SwXIndunWLcp8+lezfRx99NADg0EMPrfo7RNPx5JNJVvXtttsull177bVRPvbYY6PMk93zzz8fALDYYovFsqeeeirKW265Za1rNcUgIURHoCEvHf4gffjhh6N8ww03AMi+GOuDj+dHHXVULOOx/9JLL43y8ssvX+e5mvrl2VHIG9PGjRsX5VtuuSXKzz//fJT79esX5fXWWw8AcPfdd8ey5557Lspsmdl5552jfPvttwOovFMBYPXVK3lRN9lkkygPHToUQNay05KoxQghhBCilGgSJIQQQohS0qA8QYMGDQqNsT0//fTTUT7yyCMBZFWfCy9cWTqkU6d8C52rOdlpi01Z77//fpR5HzeVsMqU4X3nzp0LANhhhx1i2U033ZR7XH0ZNGgQRo0a1eZtLY2t22oUmUg//fTTKP/qV78CANx4442xrJr9mOG2tOeee0aZ627FFVes834ai5mNDiG0ecev5qpfptqznT17dpTdTA0Ab7zxRpQfeeSRKB9zzDG1zvHJJ59EmceNRRZZpNY9sGmEy9lc7g6f7PjJtIf6rVa39Wnz8+bNAwCce24ld+Ell1wSZQ4++PLLL6Psz33llSvrnRb5Wfr4ClTawtSpU2MZm7X5nt977z0AwKmnnhrL8toGkPVL8Tot+v3toW6Bxvddfuf9+9//BgC8/XYlObfXXU2Z34le7126dIll3laArA8mB7P4mFzUrz7//PMoez/de++9Y9n666+f+zsaYu6sb/1KEySEEEKIUtKkjtEMz954Bu+z/QUXXDCWffVVZfFvnsnnhd+xpmjSpElRZs1B3qyWz8uwM5Y7TLPjFzvuXXTRRbnnEMUUfXmeeeaZUT7kkEMAZOsw74sOyHdsZgd61gTxNf7+97/XeT+i+XBn9quvvjqWcb/jr9zhw4dH+eWXXwYAzJkzJ3c7O+Puu+++AIDllqtExD722GNRZk1Fr169orz00ksDAC677LJY5m2lveNjcNHX83XXXRdl7ys8vg4YMCDKrN3h+vD9WSvHmoIiXIPATs98Du7zHtTC4+8TTzwRZXfCBbJjf7Xf39G57777ouwa1MGDB8cyjsbld+1nn30WZdfYsbadg1NYa8TvdNcc5VllgGzf9fbEztmsCWru+itn6xBCCCFE6dEkSAghhBClpNnMYZxLYvz48VF2dTWr1IqcFlkN5jI75TFsSmEVnJtVWL3Kpha+DzfLsXnl8ccfjzKrCTnvkMhS5MjGKlVOsvWjH/2o1jnqcFSNcp5p7PDDD4/yXnvtFWWvO663pnaSFvm4mnzNNdeMZWPGjInyu+++G2Xu/94Pub+ygyab0b1t8b7PPvtslN0xHsgmWb3zzjsBZLPTV8tL05ap5kT6+9//Pso333xzlD2pHR/P5hJ2aman9smTJwMApk+fHsvYpMZ9LK98mWWWyb1frkfvm2ye4+vx+MHvHTe5cZsqCrzpiLAJ0xPLcp1ykAGbsvhd6uMlPzduI0UZo/0dzCYwrl82qea5qnDfZjNpcyBNkBBCCCFKiSZBQgghhCglzaYb5KUwWJXmZgnOL8AmKTaDsOxqN1aNsQmD1XJ8Plfz8blYLZenaivylOf1rE455ZRax4mEItMSL2mRl2afVef1yfdSzYTFZg2PlBgyZEidx4iWYezYsVFmFT3Xz/+3d+bxdk3n//8sMxWERCYZyCCICBVKEmKImQaJSs1Kq+bO9OtXihpaihZFaal5CjXEXCFSGcQUQ4REIkREDBFDalq/P/Z51vnse9e6596bO+/P+/W6rzxZZ5+999lrr7XXfsbvf//7APL5R6ygI1BO6Q+UTZ+sWueac2a2AfJj3u4RbuOyOq2FmNnf2GuvvYL8yiuvBHmrrbYKsuXt4qi91LzM7RZpx5+zKYNdE3gc2zOBxzCbWWK/g+8Ti+oD8qY6LpVjOafY5JaKEm6LvPzyy0E2E6aZxQBgwIABQeaIPu6T2H3F/ct9xia12HXmdQCPNxvfbJ7jZ7DMYUIIIYQQjYAWQUIIIYQoJA1qDmPVJ0dV9evXL8im+mJzGKu7OPqrSorzasdgL3ZWtXIEiUWYsAqXt+X9WSpvbuNoIq5gL3NYdcxUlTJT8T0RS62fMoHV9rhVj80Vjp9//nkAeXOLIsKaFo7cYdPowIEDg3z00UcH2SK2WLXO1cxZRW+q/4ULF4a2ww47LMg8J7z11ltBHjFiBADg9NNPj+63tWDnzOaJgw8+GAAwd+7c0LbZZpsFmaM17fuxiFwgb8rgcWNzJpfB4fmTI21jEbw8v7IJhOcHc0lImWR4H7yNRY1xYsVUSY+2yKabbhpkSyKZisDj+4b7z57HbIrkhJR8X/D3zLzG446/x24mfI9U/T6QjzBrDKQJEkIIIUQhaVBN0C233BLkXr16BTnm7JxyfOK3E36Tt1UrrxrZyYvfTvjNwPbHJTZSuQ1sVcurXj53PjYXhWVnvLZAXYrqxrR1Kc0Ma//WX3/9ep1bXbQ3nFfkzjvvrHFb5QxadlLX0Ark3nHHHaGNndb33nvvILMzs705srMu5/Ox3DZ8PE63z7moeEzHAiOOOuqoGn5Zy+arr74KGnbOkzVjxgwA+eKnXLgypt1hjQBf99R8bTngzIkdyI9tLlfCeZtMO5PS7jA29/P5sMWAZdYamGaCS+nwPdjWYW2L9S/neErl6mOnc7sfUvmnWOZ7xJ7dfL9xAWXuS9s35w7idQCXwmkMpAkSQgghRCHRIkgIIYQQhaRBzWFPP/10kFn9zM5opnZjVRyr2lglGsvtwblBGM4f8sILLwTZ1G6sJq2k2ks5BLJ68YorrghyWzOHxcxBdTEXpXJ/cL9wjhKjvtWCU+fD7bNnzwaQv0/69u1bcR+VnL1FmVT/XXbZZQDyjpPMvvvuG2Q2qZu5i+cPVucvWLAgyDY/pMzibDLp2rVrkC03CTtntza++eabYPrjMWYuCakyFrESRTxeeVt2amYTluXgYfPmEUccEWQ2e7Bp5K9//SsAoE+fPqGNj81Ou9aP3Iep+YifH+a+MHPmzNA2a9YstGVSOZrsecxO8ttss02Q2fWEndztvuB7JVXaivvMZDad9u/fP8jjx48PsuV54vxcKdNoYyBNkBBCCCEKiRZBQgghhCgkDWoO+9vf/hbkQw45JMgcSWV5A1KqVpZZzWkpuTntO6tXWUXLavBYxFKqIq5tyyo8NslZinggX4G5LbOs5qC33347yFz+wKJKgLKpynL5APmcEtzPrOI1lSu3DRkyJHpsU9efeeaZoe3666+veP6VIt5EZWy8nX/++aHt0UcfDTJHcbGJ0kzYvC2b0Xfaaacgm7qf+4kjyTgyke89O/YBBxxQ25/T4lhllVVCJOT9998f2vfff38A+eiwVL6f2D3N5g3O28LlESyaj01OPHaZWA6va665JrRxqSXO7WPRSqnzTbkv2DnddtttoY2jB9s6/LyysZSq3j5hwoQg83xrfc2mSH5G8z5iJjMejzx2n3322SAPGzYMQD76uilzdUkTJIQQQohCokWQEEIIIQpJo1WRZ1PDSSedFOTrrrsOQN4TnFWYnKiJ1a5m8mD1GqtdY2YtJlU9mI9tqkJWz++yyy5BLpoJDChfS472S5m4zKOfo2+4P7lkxR577BFkU41vu+22oY2j+Vg1Gqs0z33Lfc8lGMxEyonc2PzGKmBO9NmlSxcA9Y9cKxIpk6GNKzZFcnLCadOmBdnKWADA448/Xm2/O+ywQ5BffPHFINv9wvcp34d8z/I9YGOdK5G3Rmz+Y3PihRdeCCA//3LywpjrAZs0uA85Yui8884Lso2bsWPHVjzH3r17B/mXv/wlgPzYnTp1apDZfGn9z22p/uLoJ3sGcVJNfk60Rdjk9OqrrwbZ5j8bU0DehGkmKQBYtGhRkC0yk/spZQ7j+8XuI3ZVeP/994PMyWvtnDnCkO+VjTbaCI2JZnYhhBBCFBItgoQQQghRSBrUHJZSh19yySVBPuGEEwAAe+65Z2jjyAM2T7Fqz2D1Gkc9sKqNo7tMhWpJ0YC8mY3Vqj179gSQj7DgZF5FIWZOTEXU2TUD8rXcDI5G+Pe//x1kNj/97ne/A5BPipeq7xY7Nz4fVtVy/ZnLL78cQL5O1VlnnRVkvnf5nM1UM3jw4Oj5iDLcD2zCNBPFXXfdFdr4erP5kZP9bbjhhtX2yyp+Poap0lk9z/3PZlmubG3mXL5vWjN8Xc20yJFvHIEVMzPwteZ5kscj78NMzlynjxOS9ujRI8jct926dQMAXHvttaGNTVm8P5sreOxz0kyeV1hm87rR1s3abA5mc7E9E7mGJo87NhHzNYpFh6VcS2IR3zzuuM/YRGn9y9uy6bOxadt3hBBCCCFEggbVBNUmf4ppVvgthN/uWBvA2gLbN7+dLFy4MMi8OuU3+Vj6bX4T5FIY9uZQRO1PJfi6c/4VcxwG4tXn+a2CV/oxrRGXQeC+57cCPg/TFPJbaSpu3wAAIABJREFUKu+XtVeWM2PAgAHVjgvk7wPOMzVp0iQAQL9+/UIbv9G0JmL9s6w5j3ifqbdsu+bsoMtagZdffjnI7KxpucY4AIIddFk7Zw7OfC/wOOc5gbXJ5oDJWuXWiF37WB+fccYZQeYSJTfffHOQTfvN45nnVHZUfeihh4JsY2z48OGhbcqUKUHmfDCsubMSS1zVnccmH9u0GJMnTw5tjz32WJBvvPHGIHNAhVGkHF88P+68885BtjHGcylfC3ZK59Iitj+2mPC4YmJV6XmscdADawjnzZsHID9/pErsNAbSBAkhhBCikGgRJIQQQohC0mh5gioRU9sC6XTZtn0qz0OqUnIslwyr2vh7lgJe1AynnmdHPFOHch+yzGaNmOmEzVBsOmNi901tcn9YP6ec+hi+PzbbbDMArdcExjSGKaAu++Sq1WwyYbM25yix7Tm3Dd8jHAwRy2fFZls2s7/xxhtBNjNaW3GM5v6Ilbyx+xkALrroomrf46CSxYsXB5nNjAMHDgyymdS4j7gPuL+43cbYjjvuGNrYDMP9ZbAj72uvvRbkSqUw2roJjOEcd2+99VaQzemcg5B23333ILMZ2gISgHz/xUjNvda/bEbjZy2bLS13ETtn8/mMGjWqxnNYVqQJEkIIIUQh0SJICCGEEIWk0cxhlTzy2RySqlYcU7XVxtM/Vm2YzTKpvDJNWbm2tcH5Ja666qogn3LKKUG268rXkSMG+LpzhIH1aSwvFH9eVY71f8rMarBaP7VfPn+LRuL7silzWLRWuC/t2nGE3bHHHhtkvrc4WsiigSySiNsAYPPNNw+yqdJZ5c5p+C0CBcibNldZZRUAbcdkUun+Zzifj93TPC/zNWFTNpsZbfxzRC27FXC5EiuPA5RzF7FZZNdddw3ypptuWu082FTH/cnw+OZ7oSiwOZnzZFmePK7UzpG0HJnL19DGbsrsxSZOfo5Xuvbc17fddhuAfGQi93VjI02QEEIIIQqJFkFCCCGEKCTNpi9MpWdPqd1i0US1iQoy9TB/P2VSqYsquWgcd9xxQeYIEzMnAOUEh9yfnKySVdgcoWPUxhxZqWwG9yGbZCxqgiMmUvuIpY2fP39+aCtSMs26JFjkhJNsPrR9sOqcTSN8vxxzzDFBtggTVusfeOCBQeZSOB07dgSQT/rG9x6bATj6ZcaMGQDyyTlTyeBaMrFIsErzGfeRRQFxH/F45DHB19WOwePZSpEA5fIYQN7kYtf4j3/8Y2hLlcqx8+Dj8nkybcWsWV/YvMilKcwsySYnTiD68MMPB5m3sT7heZ5JJZk12DzH45Ujwawv2czKJmvuazbLNhTSBAkhhBCikGgRJIQQQohC0mzmsFgEV1VYnWvmitpUAY5tw/tKJcxrynolrYUJEyYAACZOnBjahgwZEt3W+ojV2pz07Pzzzw9y3759q32PSUVuVYL7kKO4Lr74YgDlGmJVzzNlLjX1cpHMYZUi8Hj8sIo7VkUaKCc15KSIXJWaE7yxit4SrfG2fO05YZ6p8DmRH9ckYzMBm1XM1GL3OZBPItdaqI8ZiCu1z549G0B+HKTcDbj/LXryt7/9bWiLmUIBYM6cOUG28c9jlOtJMTZO+bipSNKi89JLLwWZa3Ja/3bo0CG0sdmXE07y3GzjkaO9+L7gOZTNp7Y9m7J4HHOkqEVx8lzCx+A5QeYwIYQQQogGotk0QbXRusScVWtT9iD2BsPf47cmXslWOqciVSM2DjroIADAyJEjQ1sspT1Qvj78ps1vEEOHDg0yX3d746+vk3pMY1gV0xBwH/MbK8P7MAderlS93Xbb1frcWjoxh9pUP5gTJJdT4Lc/7lN2NLbrzNc+VvICiGts+B5imTUZzzzzDIC8Uy7nQeG8I+yAaW+WrDVqjZqg+hALTmFNEF9rHit8Lc0h+sEHHwxtnBuIyyawJsg0d/z2Xxstv1GU+beu8D3PWhPTtg4fPjy0xcYokM8fZd9jzRvL/Fzl+8LGMR+Dz4efBb179wYAdOrUKbSxNqqx8z1JEySEEEKIQqJFkBBCCCEKSaPpmSqpK1MqtUrUJo9QJbNVyrErlXuiaHBuB8vts++++4a28ePHR79n/cgmEjaNxfKLAJXVnXUxjXHfxsqx8LFSTqAsr7322rnvtzVi44N/Kzstm8mEryGru9ncxWYpMz/x9/geiVUX53PjnCGXXnppkHv27FntnDkvTWq/rLa3yuRsDuP7tC3Dc3CsvBCPO75msb7jwAl2gOU+YKdcM3dwbpm6PAfkGB2Hrz1fIxunbG7mvG3m4F4V2742c2VqfBs8xniOsWNzuRV+Bm2zzTZBtvm4IZEmSAghhBCFRIsgIYQQQhSSZosO46gBJlUCoVIuGVal1qUafKqCfZH5xz/+EeQf/OAHAIDvfe97oW3cuHHR71kfpcxblaI/uC9S1awrlXGoVP6iNvA+LF08571pS5g5mHP4sBqdf7e1s4mD0+bzmOYSCWZSS1UlT5mfrNQFm2K4ZAvvw6L42OzFKnU2e3MUis0VnD+qKStYNyex654agzzu2HRy1llnAchXfU+VOeB7zOAyKHfccUeQrQwKH5vPR+awOFwWiK+3Pdt4HuzcuXOQucQGj9NYxDTfN6n51p4BlgMIyOclYhO35f7i5zY/b1LRyA2FNEFCCCGEKCRaBAkhhBCikDSbOYypS5IsJhU1FDOdpTzaGZnDMjj1+o9//GMA+SrCKXOB9Qf3SyrahKlv2YxKUWOx/dYmIWPsXklVuG6NsNnKIrfY7MW/nxMj2jXgKA6u8J5KNmoqcd4vH4/vJ97GVOa87dy5c4PMKnwbu7wtq99Zhc99aaa6mNmvrcO/0+ZgnotT0Voc0fXPf/4TAHDiiSeGNo4oZHMpm2c22mgjAMAtt9wS2nhsxsxybGZPjceiJ1G061pVfueddwDkzVMvvvhikGfNmhVkHoM2plPPzFREdcwlhecSHrvWv5zElMsUNfZ4lCZICCGEEIWk2TRBqbwD/AZQ3/wwlXIDpd5wOMdCkeHrbg6P/KZsKe+rbmvXPaXFSfWnfS/l4BzbNnW+lUhtm7rv7E2IHfVaI9778Fuee+650G5Oh3zvc9kDdi62PmFNUsrhnJ0Z27dvDyA/5nm/nGsopkXk7/Hb4tNPPx1k0wywgzM75bIzNN9Ddl9zGY+2kicoVhKFieUJSjnFslaNNXe2PWuPuRQGF0jlt3vrL3OsBoAHHnig2udAPCihvtaDtg6XvOBcXaaF4+tqwQRAfkyz1j92nXlurpSLi/uf5xXWFJmDNo/B2mj9GgrdSUIIIYQoJFoECSGEEKKQNJo5rFLpCjY/sFq2Uo6f2lQMj5HKf8HtldTgRXG64xwOBqsnt9122yCzGSXmRFwbU5X1R8ppuS7V5St9L7Wv1H1l9+aQIUMq/IqWzZdffhnU0Wx+MtNFbcpY2D3ApSm4r1OqdlOv87W3chVA/h5i04eZ2tj8Mnr06GrnA5THcWps8xzD52mOu5xfpS1TyVSdqgqeyv1j5smbbroptPE9w/3B+YUGDx4MID/XsDlk4MCBQbb+4nNLOeHXxTTeFuFSMpZnCyj305IlS6Lf4zHB/W4BB2yGjgUvVMXM3exEzyU7eOzGSmGw+Zq/1xhIEySEEEKIQqJFkBBCCCEKSbNFh3FOnpQJg9WfJrOqrjYRZqbm5yiWVGmOopi7KnHAAQcE2dSanMae+yDWRykzJW8bu9bcn6myGUwsooWp1Ld16fvGVsk2Nt9++20wg/Xo0SO0m6kqZcKIlUDhfmQ1Ovc7m7hsrHNOITav8D7YVGemKv6co01iJhEe56myOoyp4tkMV5eyO60N7iO+rnb/c9/zdUi5LNj9w9GAPD9wf3EVcTONcbkNjkCLRQTVZrwWfQ5nkyLn1LKxxC4fHD3GYzPmIsLjg/smZV6zffAx+Jnfv3//IFs1e44emzp1apD79u0bZC710VBIEySEEEKIQqJFkBBCCCEKSbOZw1gNOnHixCCn1LWmjmO1HKvtUiYYU6GmzGWsPu3Xr1+N51wU0xlHQlnyLVZ7sjqc+8NMJ6lEZhxVwti1TJU2YRVupSRplRIypqKH+DfFzAStvWzG119/HUybrGqORealxoddAzaNcGI1NmVxVIiRqk6f6gfry1SiPpZt32x+4XuI98smPotumT17dmhLRR61Nbhv7ZqkytzwdeXEejaPH3TQQaGNkyWymYzLaey6664AymU3gLyZlrF7hc+XzfOiDJuceK6z8ciRWE8++WSQ2YzM/WdjvjYuDmwCN/eBVEQfz6e9e/cGUC7tAQA77LBDkC3ZamMhTZAQQgghCokWQUIIIYQoJM1mDmOVdEpVzZhqj7dNRXHEzBmpWiSxirlFh6/rpEmTAAAXX3xxaPv5z38eZL5mZm5htSgnSON2NnHZPjgJ3y677BLkVNV6O8+GME3yPRFLwtfa60m1a9cOw4cPB5BPqGbRJGyK4PpDnPTwlVdeAQAMGjQotLFKfcyYMUF+5JFHgrz33nsDACZPnhzahg4dGuSnnnoqyDFT7HrrrRfa+H5i1X/Xrl0B5OtPHXrooUG+5557ghyLhOMEoKkEcG0BNkkuWLAgyGa+YJN1KoEeV4a39unTp4c2jkpis+ibb74Z5GHDhgHIu0Kw+Y371qqPp+YSUYbHMY8bm7/YZM3bct9wbciYOYxl3h/fO2ZeYxMo32+MHYM/nzFjRpDZ9NmnT5/oPpYFaYKEEEIIUUiaTRN07733BpmdK1OOVvbWz055qRIIqZwgBr/p8/c4x4LIsJU8vz1fe+21Qea3vlj6c3uLA/L92aFDhyDbmze/CfAbK2uIuG/tzSOlHeT7I1bhnrflN13ext5o+K2qtWLXYIMNNghtLBv8Jshssskm1do4hwdz5JFHVmvba6+9otum2rfaaqtqbabxSXHUUUdF20eNGlXj94oCv8WPGDEiyOYMmyqrwU62nDOre/fuAIB99tkntPHbfyyPGADMnDkTADBu3LjQZtohIK5V4L7nsgqiDGtmOfjgjTfeAJDX7O63335Nd2I18NBDDwHIa9vtfAFg8803b9TjSxMkhBBCiEKiRZAQQgghCkmjmcMqOaveeOONQX788ceDzPkoGHO6Zae8VB6QmKM1nw+b33h/bdkhsr789Kc/BQAMGDAgtMXSsQNldTe3sRmNTVys+rRcInyMQw45JMislq+Ur6cuTtK8bcqMJkRrJZZTi+fXSy+9dJmPEcvDxs7QsVxEvD3npGkIij5211133SDzPGzPvEp51pqDXr16Acg7QLPJNZZzrCFpeVdECCGEEKIJ0CJICCGEEIXEpcoMRDd27n0AcytuKJie3vsWn+NdfVtv1L9tmxbfv+rbetPi+xZQ/y4DterfOi2ChBBCCCHaCjKHCSGEEKKQaBEkhBBCiEKiRZAQQgghCokWQUIIIYQoJFoECSGEEKKQaBEkhBBCiEKiRZAQQgghCokWQUIIIYQoJFoECSGEEKKQaBEkhBBCiEKiRZAQQgghCokWQUIIIYQoJFoECSGEEKKQaBEkhBBCiEKiRZAQQgghCokWQUIIIYQoJFoECSGEEKKQaBEkhBBCiEKiRZAQQgghCokWQUIIIYQoJFoECSGEEKKQaBEkhBBCiELS4hdBzrlezjnvnFuh9P/xzrmjmvu8RN0o9WGfun5WYZ+HO+eeWvazE0IIUUSadBHknJvjnPvCOfepc+4959y1zrnVm/IcxLJRWoR+5JxbubnPpbFwzg13zr3d3OfRWqBxvcQ597Fz7r/OuWOccy3+JUvUjPq2baP+bR5N0N7e+9UBbAFgSwCnNcM51Ann3PLNfQ4tAedcLwDDAHgA+zTryYiWxt7e+3YAegI4D8BvAFwT21DjqdWhvm3bFLp/m221571/B8ADAAaUVqM722fOuTOcczdU2odzbjnn3GnOubnOuYXOuX8559YsffaAc+74Ktu/4JzbryT3d8494pz70Dn3mnPuANruWufc35xz45xznwHYoYF+dmvnUACTAFwL4DD+oHTNLnPO3V96q5jsnOsd24lzbqhzbp5zbnjks5Wdcxc4594qaQuvcM6tWsM5Oefcpc65xc65Gc65neiDrs65e0p9/IZz7ugqx7nYOTe/9Hdxqe07yO7LriWN5afOua51uUhFxnu/2Ht/D4AfADjMOTcgNp5q6mfnXAfn3H2lN9MPnXMT7M3UOfcb59w7pXvsNe5v0biob9s2Re3fZlsEOee6A9gDwHPLsJvDS387ANgAwOoALi19djOAMXS8jZGtdO8vPegeAXATgHUBHAjg8tI2xg8B/AFAOwDyO8k4FMCNpb9dnXOdqnx+IIDfA2gP4A1k1y+Hc243ZH2zv/d+fOQY5wHoB2AQgD4AugH4XQ3ntDWAWQA6ADgdwFjn3Nqlz24B8DaArgBGATjHObdj6bP/A/C90nE2A7AVgNO8958B2B3AfO/96qW/+TUcX0Tw3k9Bdu2HlZqqjqea+vkXpe92BNAJwG8BeOfchgCOBzC49Oa6K4A5TfBzBKG+bdsUrX+bYxF0t3PuY2QX8wkA5yzDvg4C8Gfv/Wzv/acATgVwoMucqO8CMMg515O2Heu9/x+AvQDM8d7/03v/tff+OQB3AhhN+/63936i9/5b7/3SZTjHNoFzbiiyReRt3vtpyBYeP6yy2V3e+yne+6+RLZQGVfl8NIArAexeGmhVj+EA/BjAz7z3H3rvlyC7Pw6s4dQWArjYe/+V9/5WAK8B2LO0yB4C4Dfe+6Xe++cBXI1sIQdk98OZ3vuF3vv3kS3eDqnd1RC1ZD4AW5CG8QTgf6i5n78C0AVAz1K/TvDeewDfAFgZwMbOuRW993O897Oa9BcJQ33btilM/zbHImik934t731P7/2x3vsvlmFfXQHMpf/PBbACgE6lzrkf5c4Zg+zBDGQP861LKruPS4uygwB0pn3NW4bzaoscBuBh7/2i0v9vQhWTGIAFJH+OTDPHnIxsEfVS4hgdAawGYBr1y4Ol9hTvlAaZMRfZfdEVgA1S/qxbSY7dOzJ7NSzdAHxYknk8VernPyHTJD7snJvtnDsFALz3byC7h84AsNA5d4tMlc2G+rZtU5j+bSke4J8hu7BG59SGVZiPbEFj9ADwNYD3Sv+/GcAY59w2AFYB8HipfR6AJ0qLMftb3Xv/U9oXP1gLTcneewCA7Z1zC5xzCwD8DMBmzrnN6rCr0QBGOudOSny+CMAXADahflmz5EifoltJg2T0QHZfzAewtnOuXZXP3inJsXvHzF7q+2XEOTcY2URqpmS+pjX2s/d+iff+F977DZA54P/c/Ae89zd5700r6QGc30Q/SZRQ37Ztita/LWUR9DwyM9aKzrktkflv1IabAfzMObe+y0LtzwFwa8kcAwDjkF3wM0vt35ba7wPQzzl3SOmYKzrnBjvnNmq4n9SmGIlMnbkxMhPXIAAbAZiAsnmpNswHsBOAk5xzP636Yal//g7gIufcugDgnOvmnNu1hn2uC+DEUh+OLp3XOO/9PAD/BXCuc24V59xAAD8CYA73NwM4zTnX0TnXAZlN2z57D8A6ruRkL2qPc24N59xeyPyxbvDeT6+6TaV+ds7t5ZzrU1rcLkZ2733rnNvQObejy9IzLEU2GX9bdf+icVDftm2K2r8tZRH0/wD0BvARMt+Mm2r5vX8AuB7AkwDeRHZxT7APS/4/YwHszPssmUh2QWYqm4/MjHM+MpulqM5hAP7pvX/Le7/A/pA5oR9U8sGqFd77t5AthE5x8aSXv0GmTp3knPsEwKMANqxhl5MB9EX2hvIHAKO89x+UPhsDoBeyPr4LwOne+0dLn50N4BkALwKYDuDZUhu89zOQLZJml1S+LUJt28K51zm3BJmW9f8A/BnAETVsX1M/9y39/1MATwO43Hv/OLLxeR6yvl6AbAF8asP/FFEF9W3bptD96/LuFEIIIYQQxaClaIKEEEIIIZoULYKEEEIIUUi0CBJCCCFEIdEiSAghhBCFpNZRPQDQoUMH36tXrwY/CXbO/vrrr6Py8ssvn/sXAJZbrryG433E9vfVV1+FtpVWWqnafqvKDcWcOXOwaNEiV3nL5qWx+ratM23atEXe+5qSObYImrp/v/nmmyB/8sknAIC11lortOVTO5X57LPPgvzpp58CADp1qlqdpeloDf3bFH3Lc/F7770X5G7dusU2rzUff/xxkHn+bdeuXWzzBqU19C3QvHPzt99mUeyLFy8ObTx211yznEXkrbfeCvLKK2eB1p071zblX8NT2/6t0yKoV69eeOaZZ+p/VgmWLi1XpeBB8f777wfZBsXaa68d2ngxwwuf//3vf0H+4IMsWvrdd98NbT17lnPkcSeuscYa9fsBNbDllls2+D4bg8bq27aOc25u5a2an6bu348++ijI//nPfwAA++yzT2hbccUVo9+bOnVqkJ944gkAwC9/+cvGOMVa0Rr6tyn6dtGiRUG+4IILgnzeeect037Hjh0b5Pbt2wd5hx0av2Z1a+hboHnnZnsReeCBB0Ibj9099tgjyCecELLTYP311wcAnHLKKaGNn9Gpl6CGpLb9K3OYEEIIIQpJnTRBlajNSm/Bgqy81MyZM0Pbl19+GeQuXboEeZVVVgmyqdrGjx8f2hYuXBhk1v4wn3/+OQDggAMOCG22ugWA559/PsimFWJN0XrrrRfkxjCXCdGaYTPzbrvtFmQeV1988UXu39piWt9f/epXoe2Pf/xjkLldNDysiT/++OOD3LVrOXfoRRddBAA49thjQ5uZQqrC2qRLLrkEQPl5AABz58Zf3JtCKyTimBZ3wIABoe32228P8ocffhjke+65p9r3mKbQ/tQHaYKEEEIIUUi0CBJCCCFEIWlQc1hK3TVx4sQgm7f5uuuuG9rYwTkV8WWOVmwuW221cuF5PvZ3vvOdIJsJi1XxFq0CAJtsskm147GKlj3ehw0bFvt5QhQWHrvMOuusE2Qbpxzxw9FjbGZeYYXylGQOmKuvvnpo+/Wvfx3khx9+OMiPPPJInc9d1Mzs2bODzNFBHJxy1VVXAcj3EUeS8RzOc+n8+fMB5INi2KVh2rRpQZY5rPmwe4DdQk477bQg77///kFmN5KNNspqkdvzHsg/21sSLfOshBBCCCEamQbVBDH85sDhsltvvTWAvOYmlauH3wzMSS+Vl8IcoAFg1VVXrXYe/MbBjnu8OrV2Xr1y3hLeBzttC9FWib3JPfroo9FteWzyeDRSgROsFYptz2ONnXI5X01N3696PFE7Bg8eHGTWpE+ePDnIG2+8MYB8H6U06axBGjNmDADgsssuC20c6MIaetF82DP4yiuvDG0sz5o1K8jDhw+v9n0OQmqMFDQNgTRBQgghhCgkWgQJIYQQopA0mjmM1adsUrJ2dqTjnEGsMmUH56eeegoAMGTIkNDGalfOabHVVlsF2Uxj7JTJKjrOcxIzh/E58O+QOUwUgZgz4/XXXx/9nMcSjyF2djbY7M2OtGwas7HL5mveLzvumimFAy7EssF9y7ncLEiFt+EcQHfeeWeQef787ne/G+SHHnoIQH4O52oBrSXTfltnzz33BABsv/32oe2KK64I8g9+8IMg77XXXkG2nE9ckaGlIk2QEEIIIQqJFkFCCCGEKCSNZg5jFTerxMwU9fTTT4e2119/Pcicw4dzjbzzzjsA8upuNqNxmn42Ve28884A8pFmU6ZMCTKfx09+8hMAQMeO5cKzqegw0XCYiSOlfk9dd7uXOBKJI0z4vnvllVcA5NXvHIHSo0ePIPN5mJl10003DW2cn6qIsLmDIzF5rLAJq1JkFl9vNpOZeY1NYDyOWb7vvvsAAEceeWTlHyDqTP/+/YPM86P1HUcJWY4YIN+fHCVsZs+UewO7S4jmw8pl8LiaNGlSkLmcCs+9N9xwAwDgt7/9bWOf4jIjTZAQQgghCokWQUIIIYQoJE0SHdanT58gv/nmmwDyEVpciZa/1759+yDHkiSyCvbggw8O8o477hhkU8Ged955oY1V+L/4xS+qbRuLZgHSSd1E7aiULI/NIn/4wx+CfM011wSZo/xmzJhR62NblAqfQyyhHwCstdZaQV6yZEm1Y/H9XEQ6dOgQZI7K5D616wbkx3GMVDp92webxTfbbLMgc9JGq2DNanslSFw22LzZu3fvIHMU1+OPPw4gn8Syc+fOQeZ5+6WXXgqyjUO+l9js+atf/SrIl156af1+gFhmzD2Fn4lPPPFEkLmMlZVQAYB9990XQH4MttQSGi3nTIQQQgghmpBG0wSxpoffnM2B+bXXXgttI0aMCPKtt94aZNbYWKHGV199NbRx3glzgAaAqVOnBtk0CkcccURoM20UkH9jNceuTp06hTZ28OTfJOpO6s3cCmUy48ePDzI7wHJ/WD+xho7fWDm9/zHHHAMg79R55plnBpkdMdnx2Y7NDvtFxcYKa275WlkuLyDvHGvaXd6WNXKpvFxWFoOdKw844IAgc1+//fbbdfkpIgH3Bfchl9DgIIHjjjsOAHD11VeHNi6PMGjQoCDPmTMnyBaowPlnLLcMANxyyy1BNm095ycSTYP1JQeq7LbbbkG++OKLg8w5/syhuqVqf5iWeVZCCCGEEI2MFkFCCCGEKCQNag5jswSrz9ipyhypWH19xx13BJnzC7EZzUxcG264YWgbPXp0kDnfzw9/+MMgX3jhhQDy5gx2vuZztlTtnM+CzS+i6eDcQGwOY2dmU69yG6fvZ3Pqn//8ZwDp/COstuV7147NZtOiYoEIfC1Y5rHZs2fPIJuZg53a+RozZvZm9t577yBvsMEGQWbzqpXQYKdddnAXtYP7pVevXkHmscRz9JNPPgkgP0/y/Hn//fcHmQNZrG+mT58e2njMc9kMM7/KHNb02NzKz0nO1cfPaL4HFi9eDCCfJ4pN3S2Tx9qHAAAgAElEQVQJaYKEEEIIUUi0CBJCCCFEIWk0cxjD0T9mivrxj38c2rbYYosgc4TAv/71ryBbpML+++8f2lgV/+677wbZcoYAwMMPPwwgXxaBq13ffvvtQbbcFGwaYXVeLIpJNA4cgcL5RdgEYqYqjjRiVT33nanf+XNW8af63ExunPukqHDVdoMjO5m33nqrWlsqUoT7lPvH4Cg/LnXC/W4mmDfeeCO0qRJ53eE5br311gsyz5lswjI4PxP3PUeNHXLIIUHefPPNAZTdFYB8mZuUy4JoWmzMc99wdOjAgQOD/NhjjwXZTJscUS1zmBBCCCFEC0KLICGEEEIUkgY1h7Eqm1XcLJupgVPpcxKtm2++OcicDPH73/9+tWPMmzcvyGwme+SRR4JsFeUtvTsAnHzyyUHu169fkC1NfEwlD+QjJ1g9LDPZshGrIs+J2jg6jCOMLHKBow9TJi67B1kly/2ZSt5nEQ+cCKyofPDBB9XazKxRFb6GNgb5Gqfg7xljx44NMptdWEVv0SgcdSpzWN3hMcjRdexOwMloZ86cCSBvvnruueeCzGUV2GXBojQ5ape3nTJlSv1+gGhQJkyYACD+nATycy8/B609FQXakpAmSAghhBCFRIsgIYQQQhSSRosOY9U3y1aLhBNnLViwIMjdu3cPMkd/WY0SjhQ5/fTTg8wmtwsuuCDIN9xwAwDg73//e2ibOHFikLmWVOx3sLovVRFX1B2+J2I1Zdgcxv3BsplZ2DTJanlO3mXH4H7jxHyp8zG5pda9aUo4CZ7BCRJT1CXhaCx678EHH4xuu9deewX5xhtvBJCPXBF1h8cBm7V4jFlNNwAYNmwYgLxrAu+jb9++QWbTiM3/HIHGY/71118Pspk6RdNj0WFWFR7I3wsMzw/mwtAa5s2Wf4ZCCCGEEI1Ak+QJYg2KaVbYyZKdrqy6MFCuOA+U39pZc8O5ZH76058GmatVmxMf5yvgtwzTJgBlhy9+Y+GVLDt+SRNUO/itMOUsb3DleKscDeSdofkt1LQG3N+sdeD+sn7k1Pzct3wfcLvtjz8vKvPnz6/WlnKMZmzMpwInOC8TzyHmjP7OO+9E98vlNEwTFNNWidrD9z7Pk9zP/fv3D7KVqWGnZy6rwPM1Ozt36tQJQN7hmvML8Thnh2nRtNjY4zl2xowZQf7e974XZL53zIpjlp+WjDRBQgghhCgkWgQJIYQQopA0qDkslWuFVd+mVltnnXWqtQHA3XffHWR2fDTnuJ/97GehjdVv7Jg3ePDgIJtjFx+P1eucN+b9998HkDeZpEw4SuWekTJ31dQGANdee22QjzjiiGqfm7ocyDvL831lpg92hmX1a8ysmXLUY4fqmMM0q+e5knmRYJOywf2Uwu6B1JzA8P3E84LBwRI77rhjtc9TTpti2XjttdeCzKUSzDH6iiuuCG3cB/vtt1+QOQDmv//9LwDg2GOPrdYG5M1vbDITjQ/Pm2bmZNeCl19+OciWvw/Ij2m7BzhvW0tFmiAhhBBCFBItgoQQQghRSBrNHFYpBwurTDkKgUtlTJo0KcjbbrstgHK6daCcOwgAevXqFWRWu3fr1q3a8WJqO6AcpcKV7DkSopLppy0SK3VQKcqL4fxMHMHH0VbWR2yaZNMLm6I4ksjMJawu51T/HIFoKl4+Lt8nrLblivGmwj/nnHNCG1fGLjpdu3YNMpsU60ulXFy33HJLkI8++uhqn8dKe4j6scsuuwSZ50krVwOUrzf3vY1nIB81xiUyLCeQuSAA5RIcANChQ4fosUXjEysbxH3OJmnelt1IWpO7iDRBQgghhCgkWgQJIYQQopA0qDmMYXMYqzNNzclJEbnaM5ufWD36k5/8BEC+3AYn1Hv11VeDfN111wXZKspzQkaOaImZR1ilztFERSmbUV+z31VXXQWg3FdA/vpyEjW+rnZ/fPzxx6GN1al8DlxR3kxmfH+xWYuPYQn7+LdxYkU+T44etH08/vjjKDqVIj04QpMxsyVXn05F6XH/cHJFY9y4cUFmc5hFr6jEQsPBZmZ2WXjjjTeCbBGaPXv2DG08frj0BidDjD0HDj744CCfe+65QeZniWh8eNxZv/LY50gxjszlMW3jWFXkhRBCCCFaKFoECSGEEKKQNFrtsJhqDChH9/C2c+bMCTKruzkix/Z3/vnnh7aRI0cGmRNxsTrPqlyzapfrnTBmHuHoIN4X/47W5P1eV2ImMP693C+/+93vgmwmJY4YYjMTm61YTRo7HpsbU0n2bN/8OUebxMyXrNblzznigfvc7gm+v4qKmbVSJlI2kzB1qSTNY8zuF44INPN2VWxbjkYSywZHybLpmCN0rZ7cySefHNrYxHXzzTcHecyYMUG2eZnNXuwKYeZrIN//ovHhuZmjwgyeb9k0xmPP5giOCKxNYtXmQJogIYQQQhSSBtUE8Rsfr9555Rh7K+TcQP/3f/8XZH4zeOihhwDkNRKcWv3KK68MMmsibKXKKdm5+nzMCZhLL/Dx+DfV5e22NXPZZZcBAP70pz+FNnaG49W95fnha8b5fmJV3YHyW3xK48NyrDQLf4+PzQ6V5lCdcrJmLRXnK7LjcXXyojrf2htiLHcUkE+nz6S2NyqV0GAtBPd17C01VXFe1A7Wgk6cODHI2223XZDbt28fZBsXrM2fPn16kNdcc80g87h5+umnAQB9+/YNbaxBYqyfY2VURMPD483mbA5aWbhwYZBZs87z7dprrw0gP2/yeG1JfVmMJ7kQQgghRBW0CBJCCCFEIWm0shkpc5g5vHHOkI4dOwaZ80qwmvyaa64BAGy//fahjc0rm222WZA5J5CZY2rjyNyuXTsAeXMIpwIvigns0ksvDfIJJ5wAIF85nUtTxEqQpBznUn1g17WS2bQqduyUEyXLdmxO78/H4PNk0xirhg1WBxcJM4elVNmc14uxfq1N5XjG+oyPt2jRouj3TN5pp51C29lnnx3k0047LXoMkYfHBDu1cjvPBRYwwHmEeMz06dMnyDz2rG957LLMZhbLL8SlNETjEXMH4MAQzvfGY5D7z1wN2Mm6klm8uSjGU10IIYQQogpaBAkhhBCikDSoOYxVX6w+ZTOIqUrZ5MBqtFjkAQAMGjQIQN4c9sQTTwTZqswDedXsFltsAQAYPXp0aGNV64MPPhhkq2zMKeAZ/h0tVbVXX5YuXRrMGVwl3SLwOCKM+47NmkbqOsXKIABlc0mqXEddcjKl7iu7N1NRZ7xtrLQG50bhEi1tHTYH2+/mnErM/fffH2QeY9a/tSmVwdj3OFqTzWEc3WcqfL5POUpU1A42SafmYnMbAMpz5rPPPhvaOKqXTZm8Tffu3XPfr3psPp59z+Zy0XTYWOdxxXn0eN5kNwnL18YmUF4fsMmtuZEmSAghhBCFRIsgIYQQQhSSRosOS0WKGZxEi6MQ+Husdv/9738PAHjyySdD29Zbbx3kIUOGBDlWFoPNJJy0iSsbm9p9vfXWC22s7ksl7WsLLLfccsH0w2pwS4vPkRkp05Gps1ldzgm0Kl2/VHQYt8eiEbg/2UQSixpjMw1HsfC2XC7AvsdJHx999NFq595W4WtrptGUWYvT5rO6O5bUsjbRf7YN9ynzwgsvBHmHHXYAkI8C23///SseQ+ThhIZskmJTB0fw7rjjjgCACRMmhLY333wzyCeeeGJ0388//zyA/BzO5jKeQ/j5IBofnmMt+Si7JHBCUp7T2fxsffbSSy+FNiuVAuSfMc2NNEFCCCGEKCQNqgniNz0mVsiScwPxW0bqDdE0EvzGzvkqUtokk/ncUkU9bVt+6+fzZFK/tbWy0korBYfwq666KrRfdNFFAICpU6eGNi6UyY7R7ETbVlhnnXUA5N+EDj/88CD/9a9/bepTalIs/T0AXHjhhbX+HuddijlG1yZnUMxhnjWLXArHNEHS/iwbnOuJ88FwsMi///3vIJuWzhydgXw/jx07NshcWsPm/ClTpoS29957L8g8n6cCVUTjwGPTtLtszeE5n+dFLqFk7bNmzQptrEFih/jmRpogIYQQQhQSLYKEEEIIUUga1BwWMy0BedNRLFcMq7jZEZMdV03tymnY2TSWykFjarlUdfHddtut2nmyWpYdgvnc2HGvrcGVnS+//PIat+V+tjwQ7MiaqtTOmPo1lRsoZXq0PudjfPDBB0GOmVZTad7ZRMpOe3YPsjrYTGQin/uDr1vMCZ7bUmbvWJp9Hq/cZ1ytXDQMfP153HGwAJunLHcUm4jZLMKlS8xkCZSr0t94442hbd68edFjmEO+aHpsjuX5mINLOA+QuawAZVMqPydnzJgR5J133rnhT7aeSBMkhBBCiEKiRZAQQgghCkmDmsM4yovNEjHV+Kabbhra2MzEKlhWg9v3OAKJ1XIMq+7MzMH7YpUvp+S33CZ8Pnw8jnhJHbtocN+a6ShWeV20fmxcsWmQxznn9eK5IPa9VM6gmBmdxzPvQ+awhofnNe4LjhTj3Grrr78+gLwLwaRJk4LM+aLYHG7RptzGrg58HmyKE40Pu5bYPcDjjmV+llqpDKA8Zrl/W+p4lSZICCGEEIVEiyAhhBBCFJIGNYcxXHWWo2lMvcZVuVllllKfmmqco0PY7FKXkgz8PU4Nb+fE58C/g8+Zk8gJUQRiCQ65FEKlCE2GxzHD4zSmUufvcUX5GDwPpJIzijxs/ufSRtzPHD26YMECAPnIH57vOSkeRxKZCZTnUTapcUI+Nr+JxofHqz0r2ezF447dTDixsCVG5P7l6LGWhDRBQgghhCgkWgQJIYQQopA0qDmMEyNxxVj2Jjf12WabbRba7r333iD36NEjum9TZ7PKnVWm3M4qc1PtpSrcs/q3S5cuAPI1yXi//DtqUwVbiLZEzMzM9bsYHoP2PTZDc6RlamzGzGuc1JLNNZXOV+aw2sFzOFcF52rgW2yxRZD3228/AMANN9wQ2lZbbbUg77TTTkHmqDEzn40YMSK0DR06NMh33313/X6AWGbYbGnjjc2hL7/8cpDZfM3uIhbdx89JrhPXktCTXAghhBCFpEE1Qfx2x3lCKmFvE0A+JwQ7ysUqvPNbC7/1sYbI3gD5zZRzA/Xv3z/IMe0OO34JUWRi2pRRo0YF+Uc/+lGQP/744yCbU2Wq/EklYppkoFzhGihrdFlTJOoOV4gfP358kIcPHx7khx9+OMj29v/222+HNnacZa0RO8m+8MILAPLlMXiOfuSRR4LMedtE4xMLduBn8XPPPVftcyCfM8ysO2eeeWZou/TSSxv+ZBsAaYKEEEIIUUi0CBJCCCFEIWm0PEF1cUpkdTc7JbNsDs7syMxyrHwDy6m8JKlzroQcLUXRiJmL2bTM44crgs+cObNaG+fnYlU7q9fNubJbt26hjc0n22+/fZBjZjCN0bpzyimnRGV2deD52hyc+/XrF9p23XXXIPP9wSaugw46CEA+jxCbOq+44oog19eMKuoHjzEbu7Nnzw5tr7/+epA/+eSTILMJ/NRTTwUAjB49OrSx3JKQJkgIIYQQhUSLICGEEEIUEldHE9D7AFTSt2709N53rLxZ86K+rTfq37ZNi+9f9W29afF9C6h/l4Fa9W+dFkFCCCGEEG0FmcOEEEIIUUi0CBJCCCFEIdEiSAghhBCFRIsgIYQQQhQSLYKEEEIIUUi0CBJCCCFEIdEiSAghhBCFRIsgIYQQQhQSLYKEEEIIUUi0CBJCCCFEIdEiSAghhBCFRIsgIYQQQhQSLYKEEEIIUUi0CBJCCCFEIdEiSAghhBCFRIsgIYQQQhQSLYKEEEIIUUi0CBJCCCFEIdEiSAghhBCFRIsgIYQQQhQSLYKEEEIIUUi0CBKtFufcHOfczs19HkII0RZwzj3lnDs88dkGzrlPm/iUGp0WvQgqPeS+cM596pz7yDl3v3Oue3Ofl6iOc26oc+6/zrnFzrkPnXMTnXODm/u8RNPjnPuhc+6Z0rh91zn3gHNu6DLuc7xz7qiGOkdRf9S/LYtSP9jft/TM/NQ5d1BDHcd7P9t7v3qFc4kuopxzw5xzTzrnVnDOeedcr4Y6r2WlRS+CSuxduvBdALwH4K/NfD6iCs65NQDch6xv1gbQDcDvAfyvOc+rtjjnVmjuc2grOOd+DuBiAOcA6ASgB4DLAXy/Oc9LNAzq35aH9351+wPwFkrPzNLfjU1xDs655ZxzNa0n9gQwrinOpc5471vsH4A5AHam/+8BYGZJ3hPAcwA+ATAPwBlVvnsogLkAPgDw/6ruS38N2k9bAvg48dnhAJ4CcAGAjwC8CWB3+nxNANcAeBfAOwDOBrB86bPeAP5T6sNFAG4EsFbs/gCwUWnfY0r/7wrgTgDvl9pPpO+dAeAOADeU7p+jmvsatoW/Ul9+CmB04vOVkT1A55f+Lgawcumz9sgW0u+X7pP7AKxX+uwPAL4BsLS0/0ub+7cW8U/92/L/avOcA7AagJtK8+rHAKYA6FD67ClkL7D/BbAEwIMA1i591geAp/08BeAsAE8D+ALArVX68WLa9kUAA0v79QA+K22zf+nzYwC8UTqnuwF0KbWvUNr+hNI8vgjAeQCWa7Br1tydVtsOLXXcdQD+Vfr/cACbItNmDUSmJRpZ+mzj0gUeCmAlZA/gryrdHPqrdz+tUbp5rwOwO4D29NnhpWt/NIDlAfy0NEG60ud3AbgSwHcArFsakD8pfdYHwIjS5NoRwJNVBtYcADsD2ALZG9BepfblAEwD8LtS/28AYDaAXUufn1E6p5GlbVdt7mvYFv4A7AbgawArJD4/E8CkUj93LE2IZ5U+WwfA/qVx3g7A7QDupu+Ohxar6l/9Veqj8MysYZvjkC00Vi3NyVsCWL302VMAXgfQt9RXEwCcXfostgiag+wFdEVkC5anABxe5XjdAbxVkm1R04s+3wXAQgCDAKyCTLP4nyrbP4psId0T2WLp8Ppcn9hfazCH3e2c+xjAYmQPxD8BgPd+vPd+uvf+W+/9iwBuBrB96TujANzrvX/Ke/8lsoehb4ZzLwTe+0+QLTg9gL8DeN85d49zrlNpk7ne+797779BtlDqAqBT6fM9AJzsvf/Me78QwEUADizt9w3v/SPe+/95798H8GeU+9gYBuAeAId67+8rtQ0G0NF7f6b3/kvv/ezSeR1I33vae3936f75omGvSGFZB8Ai7/3Xic8PAnCm935hqT9/D+AQAPDef+C9v9N7/7n3fgky7UDVvhbNi/q3bfAVgA4A+njvv/HeP+O9Z4fna7z3r3vvP0e2WB1Uw77+4b1/1Xv/VQ33xR4AHqhhHwcBuNp7/7z3fimAUwBs75xbj7Y5z3v/kfd+LoC/ABhT4TfWmtbgCzHSe/+oc255ZHbnJ5xzGyNbEZ4HYACyt/2VkXUYkJlC5tkOvPefO+c+aNrTLhbe+1eRaX3gnOuPzNR0MYCHACyg7T53zgHA6sj8h1YE8G6pDcg0M/NK++kE4BJkC512pc8+qnLoYwA84b0fT209AXQtLZ6N5ZG91RjzIBqaDwB0cM6tkJgQuyIzURtzS21wzq2GbAG8G7I3PgBo55xbvrR4Fs2P+reVUXpuLqamfgCuRdYvt5X8Oa8HcBr16QLa/nNkc3WK2syjewD4Rw2fd0WmNQSQvVQ75z5C5ltq58LHCfdVQ9AaNEEAgNKKdSwym+NQZDbNewB0996vCeAKAPYkfRdAWEU651ZF9hYjmgDv/QxkA21AhU3nIXOe7uC9X6v0t4b3fpPS5+cg0y5t6r1fA8DBKPexcQyAHs65i6rs903a51re+3be+z34NOv360QNPI2sP0cmPp+PbIFq9Ci1AcAvAGwIYOtSX29Xarf+Vn81P+rfVkbpubk6/c0vacfP8N5vhOxZui8ybUy9DlHT/51zK5WO8Whie6DKfeOca4dsofwObcNR4XxfLTOtZhHkMr6P7OK8ikwz8KH3fqlzbisAP6TN7wCwt3Nu21InnIHqD0/RQDjn+jvnfmHqy1IagzHI/AOSeO/fBfAwgAudc2uUIgx6O+dMTd4OmW/XYudcNwC/iuxmCbK3y+2cc+eV2qYAWOKc+41zblXn3PLOuQEK2W9cvPeLkZmeL3POjXTOreacW9E5t7tz7o/ITNanOec6Ouc6lLa9ofT1dsicKz92zq0N4PQqu38PmW+XaCbUv20D59yOpflwOWSBIV8B+LaBdl+1H7cHMM17/xmQLcqQaRR5m5sB/Mg5N9A5tzKAcwFM8N6/Tdv82jm3lnOuB4ATkTlhNwitYRF0bylB0yfI7MiHee9fBnAsgDOdc0uQDbbb7Aulz08AcAsyrdCnyByvWkXIditkCYCtAUx2zn2GbPHzErK3v0ocisyc+QoyU9cdyHyGgMynYAtk6tz7AYyN7cB7/zEyf7HdnXNnlQbaXshs2RZRcDWy6BbRiHjvLwTwcwCnIYsEmgfgeGSOmGcDeAZZpMh0AM+W2oDMdLoqsr6ahCwqhbkEwKhSvrC/NPLPEAnUv22Crsjm0k8AvIxMS3NTA+37YgBjnHMfO+f+jHho/OkAbipts5/3/kFkTvV3IXte90B1zdS9AJ5HFhF+FzJLQ4NgETptGufc6shCAft6799s7vMRQggh2jrOuZnIonZn1vP7KyDTVK3vvZ/TkOdmtAZNUL1wzu1dUtd+B1mI/HRk4XxCCCGEaEScc6sgizSr1wKoqWiziyBkkWSWtKsvgAN9EdReQgghRDPjvV/qvT+/uc+jEoUwhwkhhBBCVKUta4KEEEIIIZJoESSEEEKIQlKnjNEdOnTwvXr1aqRTqR1ffvllkL/9tpzaYMUVVwzy8ssv36TnVBNz5szBokWLWnyOopbQt62RadOmLfLed2zu86hEc/bvN99kCYG/+KJcneSTTz4JMpvk11yznMVg5ZVXBpAf201Na+jf5uzbjz7KErivuuqqoS01/y5dujTIliF+9dVrSkbcuLSGvgUar3+//rqc9Pvjj8vJ9Tt06NBgx7CxDwALFy6MHqOxxndt+7dOi6BevXrhmWeeqf9ZLQN2Md95p5xE8rPPPgtyly5dgrzWWms13YlVYMstt2zuU6gVzdm3rRnn3NzKWzU/Td2/vLBZvDjL2v/SSy+FtkceeSTIPBnvtttuQe7bty8AoHPnzo12npVoDf1b377lPrJFSaytJu68804AwCabbBLa2rdvH2R+CL7++uvV9r3ddtuhEvayu9xyDWu4aA19CzTe2H3//feDfM899wT5Rz/6UYMdg192Lr744iD/+Mc/DnJjje/a9m+Lrh3Gg+aWW24BAGy00UahrWvXcvmQv//970Hedtttgzxq1KhaHy/mJF6biUCIImDjg8cEP+R4DE6ePDnIjz/+OICyZgcAPv20XK9xvfXKdRJvuqmcs800R/vtt19oO+6444LMD96q51j1PEV16jLfff7550HmOfX5558HACxZsiS0DRhQrpbDL6TvvvtukE2DtPHGG4e2c889N8iDBpVrdjb04kdk3HZbyC+ceylhlnVBdMkllwT5tddeCzIvunhB1Bzo7hJCCCFEIdEiSAghhBCFpMWZw15++eUg/+tf/wry6adn9fZWW2216PfYBHbdddcF+cEHsxI17GuQQupzIfJUMi+deeaZQWbfHjaP/OUvWSko9uGbMWNGkN94440gb7311kFed911AQAvvPBCaOOxzWN+5MhUYXORImZm4j78/e9/H+SxY8tl+9gJ2kycbJqcPXt2kD/44IMgs6+QOU/PnVt227j66quDzP4qv/nNbwAAW2yxRY2/B5BLQ13o3bt3kLnP/vnPfwZ5n332AQB07Bj3L07NDzNnZkmib7755tC27777BnmNNdao72k3ONIECSGEEKKQtAhN0FdffRXkp59+Osj8JrLKKqsAiK/0gfwq9LDDDgvyRRddBCDvUN2zZ89lPGMhBJAPaX/llVeCfPbZZwfZnKc33XTT0Na9e/cgpzRITz75JABg1113DW1/+tOfgnzAAQcs07kXhdo4i5933nkAgGnTpoU2DpseMWJEkDfccMMgn3TSSQDyju4c9s7av0WLFgXZtufQb5bffvvt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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 25 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many images to display.\\n\",\n    \"numbers_to_display = 25\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the images.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(10, 10))\\n\",\n    \"\\n\",\n    \"# Go through the first images in a training set and plot them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extrace image data.\\n\",\n    \"    digit = data[plot_index:plot_index + 1].values\\n\",\n    \"    digit_label = digit[0][0]\\n\",\n    \"    digit_pixels = digit[0][1:]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the image matrix.\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap='Greys')\\n\",\n    \"    plt.title(label_map[digit_label])\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Split the Data Into Training and Test Sets\\n\",\n    \"\\n\",\n    \"In this step we will split our dataset into _training_ and _testing_ subsets (in proportion 80/20%).\\n\",\n    \"\\n\",\n    \"Training data set will be used for training of our model. Testing dataset will be used for validating of the model. All data from testing dataset will be new to model and we may check how accurate are model predictions.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Split data set on training and test sets with proportions 80/20.\\n\",\n    \"# Function sample() returns a random sample of items.\\n\",\n    \"pd_train_data = data.sample(frac=0.8)\\n\",\n    \"pd_test_data = data.drop(pd_train_data.index)\\n\",\n    \"\\n\",\n    \"# Convert training and testing data from Pandas to NumPy format.\\n\",\n    \"train_data = pd_train_data.values\\n\",\n    \"test_data = pd_test_data.values\\n\",\n    \"\\n\",\n    \"# Extract training/test labels and features.\\n\",\n    \"num_training_examples = 3000\\n\",\n    \"x_train = train_data[:num_training_examples, 1:]\\n\",\n    \"y_train = train_data[:num_training_examples, [0]]\\n\",\n    \"\\n\",\n    \"x_test = test_data[:, 1:]\\n\",\n    \"y_test = test_data[:, [0]]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train Logistic Regression Model\\n\",\n    \"\\n\",\n    \"> ☝🏻This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"- `polynomial_degree` - this parameter will allow you to add additional polynomial features of certain degree. More features - more curved the line will be.\\n\",\n    \"- `max_iterations` - this is the maximum number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `polynomial_degree` - the degree of additional polynomial features (`x1^2 * x2, x1^2 * x2^2, ...`). This will allow you to curve the predictions.\\n\",\n    \"- `sinusoid_degree` - the degree of sinusoid parameter multipliers of additional features (`sin(x), sin(2*x), ...`). This will allow you to curve the predictions by adding sinusoidal component to the prediction curve.\\n\",\n    \"- `normalize_data` - boolean flag that indicates whether data normalization is needed or not.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Set up linear regression parameters.\\n\",\n    \"max_iterations = 10000  # Max number of gradient descent iterations.\\n\",\n    \"regularization_param = 25  # Helps to fight model overfitting.\\n\",\n    \"polynomial_degree = 0  # The degree of additional polynomial features.\\n\",\n    \"sinusoid_degree = 0  # The degree of sinusoid parameter multipliers of additional features.\\n\",\n    \"normalize_data = True  # Whether we need to normalize data to make it more unifrom or not. \\n\",\n    \"\\n\",\n    \"# Init logistic regression instance.\\n\",\n    \"logistic_regression = LogisticRegression(x_train, y_train, polynomial_degree, sinusoid_degree, normalize_data)\\n\",\n    \"\\n\",\n    \"# Train logistic regression.\\n\",\n    \"(thetas, costs) = logistic_regression.train(regularization_param, max_iterations)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Print Training Results\\n\",\n    \"\\n\",\n    \"Let's see how model parameters (thetas) look like. For each digit class (from 0 to 9) we've just trained a set of 784 parameters (one theta for each image pixel). These parameters represents the importance of every pixel for specific digit recognition. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <th>...</th>\\n\",\n       \"      <th>775</th>\\n\",\n       \"      <th>776</th>\\n\",\n       \"      <th>777</th>\\n\",\n       \"      <th>778</th>\\n\",\n       \"      <th>779</th>\\n\",\n       \"      <th>780</th>\\n\",\n       \"      <th>781</th>\\n\",\n       \"      <th>782</th>\\n\",\n       \"      <th>783</th>\\n\",\n       \"      <th>784</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>-6.188828</td>\\n\",\n       \"      <td>-0.098811</td>\\n\",\n       \"      <td>-0.087328</td>\\n\",\n       \"      <td>-0.015862</td>\\n\",\n       \"      <td>0.024045</td>\\n\",\n       \"      <td>0.121492</td>\\n\",\n       \"      <td>0.058710</td>\\n\",\n       \"      <td>-0.042991</td>\\n\",\n       \"      <td>0.026648</td>\\n\",\n       \"      <td>-0.019745</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.051891</td>\\n\",\n       \"      <td>-0.039698</td>\\n\",\n       \"      <td>0.264672</td>\\n\",\n       \"      <td>0.098661</td>\\n\",\n       \"      <td>0.124377</td>\\n\",\n       \"      <td>0.036166</td>\\n\",\n       \"      <td>-0.053816</td>\\n\",\n       \"      <td>-0.046484</td>\\n\",\n       \"      <td>-0.026023</td>\\n\",\n       \"      <td>-0.013350</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>-6.474232</td>\\n\",\n       \"      <td>-0.002895</td>\\n\",\n       \"      <td>-0.002513</td>\\n\",\n       \"      <td>-0.009509</td>\\n\",\n       \"      <td>-0.011743</td>\\n\",\n       \"      <td>0.117668</td>\\n\",\n       \"      <td>-0.048227</td>\\n\",\n       \"      <td>0.062439</td>\\n\",\n       \"      <td>0.022960</td>\\n\",\n       \"      <td>0.149320</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0.153883</td>\\n\",\n       \"      <td>0.079365</td>\\n\",\n       \"      <td>-0.033011</td>\\n\",\n       \"      <td>-0.019675</td>\\n\",\n       \"      <td>0.017837</td>\\n\",\n       \"      <td>-0.025347</td>\\n\",\n       \"      <td>-0.026005</td>\\n\",\n       \"      <td>-0.003478</td>\\n\",\n       \"      <td>-0.002177</td>\\n\",\n       \"      <td>-0.009066</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>-5.334694</td>\\n\",\n       \"      <td>-0.003845</td>\\n\",\n       \"      <td>-0.037747</td>\\n\",\n       \"      <td>-0.110560</td>\\n\",\n       \"      <td>-0.115551</td>\\n\",\n       \"      <td>-0.028090</td>\\n\",\n       \"      <td>-0.106846</td>\\n\",\n       \"      <td>-0.041750</td>\\n\",\n       \"      <td>-0.220657</td>\\n\",\n       \"      <td>-0.049796</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.002940</td>\\n\",\n       \"      <td>0.159790</td>\\n\",\n       \"      <td>0.163778</td>\\n\",\n       \"      <td>0.086334</td>\\n\",\n       \"      <td>0.027404</td>\\n\",\n       \"      <td>-0.098383</td>\\n\",\n       \"      <td>-0.014745</td>\\n\",\n       \"      <td>-0.087777</td>\\n\",\n       \"      <td>0.167204</td>\\n\",\n       \"      <td>0.146124</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>-6.609060</td>\\n\",\n       \"      <td>-0.010289</td>\\n\",\n       \"      <td>-0.009757</td>\\n\",\n       \"      <td>-0.029398</td>\\n\",\n       \"      <td>-0.002841</td>\\n\",\n       \"      <td>-0.013853</td>\\n\",\n       \"      <td>0.065444</td>\\n\",\n       \"      <td>0.152862</td>\\n\",\n       \"      <td>0.039919</td>\\n\",\n       \"      <td>-0.109553</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0.070574</td>\\n\",\n       \"      <td>-0.061689</td>\\n\",\n       \"      <td>0.028969</td>\\n\",\n       \"      <td>-0.204451</td>\\n\",\n       \"      <td>-0.200882</td>\\n\",\n       \"      <td>-0.112483</td>\\n\",\n       \"      <td>-0.078020</td>\\n\",\n       \"      <td>-0.024253</td>\\n\",\n       \"      <td>-0.008831</td>\\n\",\n       \"      <td>-0.001139</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>-5.965323</td>\\n\",\n       \"      <td>0.000036</td>\\n\",\n       \"      <td>-0.007320</td>\\n\",\n       \"      <td>0.010527</td>\\n\",\n       \"      <td>0.044382</td>\\n\",\n       \"      <td>-0.019542</td>\\n\",\n       \"      <td>-0.009529</td>\\n\",\n       \"      <td>-0.023622</td>\\n\",\n       \"      <td>0.027513</td>\\n\",\n       \"      <td>-0.055903</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0.013763</td>\\n\",\n       \"      <td>0.171588</td>\\n\",\n       \"      <td>-0.147751</td>\\n\",\n       \"      <td>-0.045985</td>\\n\",\n       \"      <td>0.086505</td>\\n\",\n       \"      <td>0.058849</td>\\n\",\n       \"      <td>0.084423</td>\\n\",\n       \"      <td>-0.070254</td>\\n\",\n       \"      <td>-0.055217</td>\\n\",\n       \"      <td>-0.002108</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>-11.772900</td>\\n\",\n       \"      <td>-0.000465</td>\\n\",\n       \"      <td>-0.001262</td>\\n\",\n       \"      <td>-0.037732</td>\\n\",\n       \"      <td>-0.001665</td>\\n\",\n       \"      <td>-0.004291</td>\\n\",\n       \"      <td>-0.001232</td>\\n\",\n       \"      <td>-0.010755</td>\\n\",\n       \"      <td>-0.021838</td>\\n\",\n       \"      <td>-0.059554</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.061065</td>\\n\",\n       \"      <td>-0.070279</td>\\n\",\n       \"      <td>-0.038202</td>\\n\",\n       \"      <td>-0.073953</td>\\n\",\n       \"      <td>-0.083174</td>\\n\",\n       \"      <td>-0.073595</td>\\n\",\n       \"      <td>-0.013555</td>\\n\",\n       \"      <td>-0.012098</td>\\n\",\n       \"      <td>-0.091695</td>\\n\",\n       \"      <td>-0.005742</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>-4.922826</td>\\n\",\n       \"      <td>0.142705</td>\\n\",\n       \"      <td>-0.033088</td>\\n\",\n       \"      <td>-0.002464</td>\\n\",\n       \"      <td>-0.113538</td>\\n\",\n       \"      <td>-0.093484</td>\\n\",\n       \"      <td>-0.035009</td>\\n\",\n       \"      <td>-0.045016</td>\\n\",\n       \"      <td>0.047347</td>\\n\",\n       \"      <td>0.026366</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.096220</td>\\n\",\n       \"      <td>0.025678</td>\\n\",\n       \"      <td>-0.108178</td>\\n\",\n       \"      <td>-0.043293</td>\\n\",\n       \"      <td>-0.179027</td>\\n\",\n       \"      <td>-0.050755</td>\\n\",\n       \"      <td>0.083261</td>\\n\",\n       \"      <td>0.115971</td>\\n\",\n       \"      <td>-0.025531</td>\\n\",\n       \"      <td>-0.170215</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>-9.278711</td>\\n\",\n       \"      <td>-0.000367</td>\\n\",\n       \"      <td>-0.000285</td>\\n\",\n       \"      <td>-0.000301</td>\\n\",\n       \"      <td>-0.000410</td>\\n\",\n       \"      <td>-0.000456</td>\\n\",\n       \"      <td>-0.000550</td>\\n\",\n       \"      <td>-0.001178</td>\\n\",\n       \"      <td>-0.003780</td>\\n\",\n       \"      <td>-0.007860</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.050218</td>\\n\",\n       \"      <td>-0.051179</td>\\n\",\n       \"      <td>-0.013316</td>\\n\",\n       \"      <td>-0.013148</td>\\n\",\n       \"      <td>-0.005308</td>\\n\",\n       \"      <td>-0.005978</td>\\n\",\n       \"      <td>-0.005408</td>\\n\",\n       \"      <td>-0.006201</td>\\n\",\n       \"      <td>-0.003152</td>\\n\",\n       \"      <td>-0.000013</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>-5.977974</td>\\n\",\n       \"      <td>-0.000269</td>\\n\",\n       \"      <td>-0.040986</td>\\n\",\n       \"      <td>-0.061915</td>\\n\",\n       \"      <td>-0.019404</td>\\n\",\n       \"      <td>-0.065937</td>\\n\",\n       \"      <td>0.122967</td>\\n\",\n       \"      <td>0.033192</td>\\n\",\n       \"      <td>0.107072</td>\\n\",\n       \"      <td>0.096812</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0.065897</td>\\n\",\n       \"      <td>0.037445</td>\\n\",\n       \"      <td>-0.030971</td>\\n\",\n       \"      <td>0.014127</td>\\n\",\n       \"      <td>-0.048779</td>\\n\",\n       \"      <td>-0.025388</td>\\n\",\n       \"      <td>-0.033395</td>\\n\",\n       \"      <td>-0.028944</td>\\n\",\n       \"      <td>-0.036300</td>\\n\",\n       \"      <td>0.002200</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>-7.507192</td>\\n\",\n       \"      <td>-0.000174</td>\\n\",\n       \"      <td>-0.000325</td>\\n\",\n       \"      <td>-0.001354</td>\\n\",\n       \"      <td>-0.000743</td>\\n\",\n       \"      <td>-0.001619</td>\\n\",\n       \"      <td>-0.001899</td>\\n\",\n       \"      <td>-0.005294</td>\\n\",\n       \"      <td>-0.011630</td>\\n\",\n       \"      <td>-0.013474</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>-0.033911</td>\\n\",\n       \"      <td>-0.029371</td>\\n\",\n       \"      <td>-0.015877</td>\\n\",\n       \"      <td>-0.003029</td>\\n\",\n       \"      <td>-0.004274</td>\\n\",\n       \"      <td>0.012986</td>\\n\",\n       \"      <td>-0.001100</td>\\n\",\n       \"      <td>0.016288</td>\\n\",\n       \"      <td>0.117543</td>\\n\",\n       \"      <td>-0.000238</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"<p>10 rows × 785 columns</p>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"         0         1         2         3         4         5         6    \\\\\\n\",\n       \"0  -6.188828 -0.098811 -0.087328 -0.015862  0.024045  0.121492  0.058710   \\n\",\n       \"1  -6.474232 -0.002895 -0.002513 -0.009509 -0.011743  0.117668 -0.048227   \\n\",\n       \"2  -5.334694 -0.003845 -0.037747 -0.110560 -0.115551 -0.028090 -0.106846   \\n\",\n       \"3  -6.609060 -0.010289 -0.009757 -0.029398 -0.002841 -0.013853  0.065444   \\n\",\n       \"4  -5.965323  0.000036 -0.007320  0.010527  0.044382 -0.019542 -0.009529   \\n\",\n       \"5 -11.772900 -0.000465 -0.001262 -0.037732 -0.001665 -0.004291 -0.001232   \\n\",\n       \"6  -4.922826  0.142705 -0.033088 -0.002464 -0.113538 -0.093484 -0.035009   \\n\",\n       \"7  -9.278711 -0.000367 -0.000285 -0.000301 -0.000410 -0.000456 -0.000550   \\n\",\n       \"8  -5.977974 -0.000269 -0.040986 -0.061915 -0.019404 -0.065937  0.122967   \\n\",\n       \"9  -7.507192 -0.000174 -0.000325 -0.001354 -0.000743 -0.001619 -0.001899   \\n\",\n       \"\\n\",\n       \"        7         8         9      ...          775       776       777  \\\\\\n\",\n       \"0 -0.042991  0.026648 -0.019745    ...    -0.051891 -0.039698  0.264672   \\n\",\n       \"1  0.062439  0.022960  0.149320    ...     0.153883  0.079365 -0.033011   \\n\",\n       \"2 -0.041750 -0.220657 -0.049796    ...    -0.002940  0.159790  0.163778   \\n\",\n       \"3  0.152862  0.039919 -0.109553    ...     0.070574 -0.061689  0.028969   \\n\",\n       \"4 -0.023622  0.027513 -0.055903    ...     0.013763  0.171588 -0.147751   \\n\",\n       \"5 -0.010755 -0.021838 -0.059554    ...    -0.061065 -0.070279 -0.038202   \\n\",\n       \"6 -0.045016  0.047347  0.026366    ...    -0.096220  0.025678 -0.108178   \\n\",\n       \"7 -0.001178 -0.003780 -0.007860    ...    -0.050218 -0.051179 -0.013316   \\n\",\n       \"8  0.033192  0.107072  0.096812    ...     0.065897  0.037445 -0.030971   \\n\",\n       \"9 -0.005294 -0.011630 -0.013474    ...    -0.033911 -0.029371 -0.015877   \\n\",\n       \"\\n\",\n       \"        778       779       780       781       782       783       784  \\n\",\n       \"0  0.098661  0.124377  0.036166 -0.053816 -0.046484 -0.026023 -0.013350  \\n\",\n       \"1 -0.019675  0.017837 -0.025347 -0.026005 -0.003478 -0.002177 -0.009066  \\n\",\n       \"2  0.086334  0.027404 -0.098383 -0.014745 -0.087777  0.167204  0.146124  \\n\",\n       \"3 -0.204451 -0.200882 -0.112483 -0.078020 -0.024253 -0.008831 -0.001139  \\n\",\n       \"4 -0.045985  0.086505  0.058849  0.084423 -0.070254 -0.055217 -0.002108  \\n\",\n       \"5 -0.073953 -0.083174 -0.073595 -0.013555 -0.012098 -0.091695 -0.005742  \\n\",\n       \"6 -0.043293 -0.179027 -0.050755  0.083261  0.115971 -0.025531 -0.170215  \\n\",\n       \"7 -0.013148 -0.005308 -0.005978 -0.005408 -0.006201 -0.003152 -0.000013  \\n\",\n       \"8  0.014127 -0.048779 -0.025388 -0.033395 -0.028944 -0.036300  0.002200  \\n\",\n       \"9 -0.003029 -0.004274  0.012986 -0.001100  0.016288  0.117543 -0.000238  \\n\",\n       \"\\n\",\n       \"[10 rows x 785 columns]\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Print thetas table.\\n\",\n    \"pd.DataFrame(thetas)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Illustrate Hidden Layers Perceptrons\\n\",\n    \"\\n\",\n    \"Each perceptron in the hidden layer learned something from the training process. What it learned is represented by input theta parameters for it. Each perceptron in the hidden layer has 28x28 input thetas (one for each input image pizel). Each theta represents how valuable each pixel is for this particuar perceptron. So let's try to plot how valuable each pixel of input image is for each perceptron based on its theta values.  \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAj8AAAJBCAYAAACphNSGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzs3Xe0HeV1x/09qkhCQgL13ruEOhIgJBkjiunNgDHGKxADAduvu4Pxio0d864EEztxWXZwpYTeq2gCAQIJ1FDvHTXUEOp33j8gWZm9f/jMvTi5ue/z/aylFc/O3HPmnDPPzMM5v9mT5XluAAAAqahX2xsAAADwv4nJDwAASAqTHwAAkBQmPwAAIClMfgAAQFKY/AAAgKQw+QEAAElh8lMDWZYdnWXZQ1mW7cmybHWWZZfV9jYBdUWWZddnWTYzy7L9WZb9oba3B6hrsixrnGXZ7R+df3ZnWTY7y7LTa3u76pIGtb0BddQvzOyAmbUzs2Fm9kSWZXPyPJ9fu5sF1AkbzOxHZnaqmTWp5W0B6qIGZrbWzCaY2RozO8PM7s2ybEie56tqc8PqiowOz9WTZVkzM9tuZoPzPF/yUe3PZrY+z/Pv1OrGAXVIlmU/MrPOeZ5fWdvbAtR1WZbNNbMf5Hn+QG1vS13Az17V19fMDv3nxOcjc8xsUC1tDwAgYVmWtbMPz038+lASk5/qO9LMdrnaTjNrXgvbAgBIWJZlDc3sTjP7Y57ni2p7e+oKJj/V976ZtXC1Fma2uxa2BQCQqCzL6pnZn+3DDOr1tbw5dQqTn+pbYmYNsizr899qxxpfNwIA/pdkWZaZ2e324YU3F+R5frCWN6lOYfJTTXme7zGzB83sh1mWNcuy7AQzO8c+nH0DqCDLsgZZlh1hZvXNrH6WZUdkWcaVp0D1/MrMBpjZWXme763tjalrmPzUzHX24SW6m83sbjO7lsvcgdK+Z2Z7zew7Znb5R//7e7W6RUAdkmVZNzP7kn3YauXdLMve/+jf52p50+oMLnUHAABJ4ZsfAACQFCY/AAAgKUx+AABAUpj8AACApDD5AQAASalWb42WLVvmHTp0KNTU1WL79u0LtUOHDhWWP/jgg7BOo0aNQq1Zs2ahtn///lBr2LBhqO3a5e9CYdayZcvC8vbt28M6RxxxRKi1atUq1OrXrx9qe/fGdgtqO+rVK8471XOq17l169ZQO+aYY0LNv06z8tvrHT58ONTU575mzZqteZ63qfiACWvSpEneooVvEB592L/sL9uxY0eotWkT3/7du2PzcTVe1FhQ61VVVf3FZTM9ltVj+XFgpvfTBg3iocofZ9RjqTHUuHHjUFNj9Oijj67Reur9UDVl8+bNjKEKmjVrlvvjsdo/mjRpUvGx1HlI/Z06p6n9Q41Jtb/54/jOnTvDOoMGxdtFqvWOOuqoUFPHdXXu8Ptz8+bxLk3qsY488shQU8c19b6pc52fH6jxoo6J6ty0fv36UmOoWpOfDh062B/+8IdCzW+0mdnixYtDbfPmzYXlWbNmhXW6desWascdd1yoLVmyJNT8pMzM7Pnnnw+1c889t7B87733hnX69esXahdccEGoqUnH7NmzQ+3ZZ58NtaZNmxaW1Y6+dOnSUPvd734XaldeeWWonX322aGmdtiFCxcWltWkRp0U1Xpf+tKXVociClq0aGGf+1zlVhzqYO4H/wMPxJs3X3PNNaE2derUUGvXrl2oPfjgg6XW8wdDdXDs0qVLqLVv3z7U/Dgw0wdztR1+31WPpcZQ3759Q02N0YsvvjjU1DHlkksuKSyrCZc6yaox9C//8i+MoQpatWpl119fvJND69atw3qDBw8ONT9BnjlzZlhn2LBhobZoUbxllto/HnnkkVBT+9tvfvObwvKTTz4Z1nnxxRdD7amnngq1008/PdTeeeedUPvtb38balOmTCksT5o0KayzYMGCUDv++OND7dRTTw21+fNj+zt1ft22bVthWY0h9R8377//fqh9+9vfLjWG+NkLAAAkhckPAABICpMfAACQlGplfg4ePGibNm0q1F577bWwXu/evUPN/7Z64YUXhnWGDx8eairAqfI36rdW9bvk97///cKyzwCZ6ezRww8/HGoqm6CyDiqj5ENwKuClfhu9/fbbQ+3aa68NNfUZDBgwINR8FqFsuLlMIBc1p97fgweLN22eMGFCWGfVqlWhNmbMmFBTOa6vfOUroabC0rfeemthuWfPnmEdte+q9fzxxEwHntV67733XmFZhaxPO+20UFu7dm2oXXTRRaGmLrYYPXp0qPnPReUg1efJrYVq5sCBA+EzVO/5unXrQu1Tn/pUYdnvy2Zm3/3ud0PtzjvvDLW2bduG2gsvvBBq6jl8Xs1nmMz0RSs9evQItVNOOSXUzjrrrFBT46p///6F5VdeeSWso/bdyy67LNRUrk19LioE3b1798Lyhg0bwjp+vJuVu2Dn4/DNDwAASAqTHwAAkBQmPwAAIClMfgAAQFKqFXjeuHGj/fjHPy7UVDhMNUrygUUVJlyzZk2o/f73vw811eVSddscOXJkqH3zm98sLKsA2caNG0NNNVDzjZnMdFOnz3/+86Hmw9Kq++1LL70Uag899FCojRo1KtRU80bVbMsHzTp37hzWUeHY1avpxfY/yYdozeI+qJpsqs9KdW3t2LFjqKku5ipA7RuPqiC9Gi8rV64MtQMHDoSa2gfVBQF+31WvSY1v9fgq1Llnz55QU6FR9Vl5KtysmrahHP/eqc/qpJNOCjV/4cpnPvOZsI46D6l9VzUhVPu9Og+dfPLJhWXV+PSZZ54JNRXwVWFptW/NmTMn1Hzg+YQTTgjrqAbC9913X6j94he/CDXVIPGXv/xlqPlmheqCKNUZWnVcL4vRBwAAksLkBwAAJIXJDwAASAqTHwAAkJRqBZ7bt29v3/rWtwo11XH4jTfeCLVPf/rTheVbbrklrKPCZ+pOsT7oaGb23HPPhZoKVfu7/77++uthHXVH9IEDB4aaumO06lI9ffr0UPMBSHV3YdVdV70f69evDzUVwlR31fbv0ZYtW8I6Ktit7rKNcvxnr8K2Kljru2+rDrDqbvDq81MBXPWc6q7Jalx5KmStAovz5s0LNR/CNNP7pe+Sq8aoGkPqtau7SKsxpIK1PuSq/o4Oz3899evXD/ugCrGrseADuKoT/rhx40JNXXyiOqercPCf//znUPN3LlAdpHfs2BFq6tynOpurbupqfPvnUGPUh7PN4vncTF8Eo+7GoMLd/kIe9RmoDtKqW3RZfPMDAACSwuQHAAAkhckPAABISrUyP7t27bKnnnqqUFN3WlXN13wuZeLEiWEdlS/o1atXqK1YsSLUxo8fH2qq6dKQIUMKy+q3yylTpoSaakKoGiuqxlpf+9rXQk39Ru2deeaZoabyVKoBnMpNqCZXmzdvLiyfc845YR31e7T63FEzPstjpvMKnvq9W+UE1J2V1XqNGzcONZW1adKkSWFZbatqtqgakrVo0SLUVLPFMo+nxoZqcqjySCrLo7I7KhPhqSwP+Z6/nvr164d9RH1W/s7vZjEz+dvf/jaso46BV199danHV+NF5Yr8fumzqGZmw4YNC7V+/fqFmroDujqH+Tvam8VMnM/RmemGhirzqY4pKvOjmgj7XJF6TSpP1bZt21Ari29+AABAUpj8AACApDD5AQAASWHyAwAAklKtwHPjxo2tT58+hdrYsWPDeipY9fWvf72wPGHChLCOCj+qBm3vvPNOqKlQp2r+9O677xaWVVh48uTJofbkk0+G2v333x9q5557bqh16dIl1HxTRtWA8K233go11eRKNWhT26tCdb7xlWqENWLEiFBT4VjUjGqAp+7K7IPGqrnlkUceGWrqs1IhaxUqVk0C/TFAhRNV8FMFIlVQVW2vOg749dTfqeOCulBBjSH1t2WC6OqzU8cZQtA1k+e5HThwoFBTAVx1kcrOnTsLy6ecckpYZ9myZaE2e/bsUFPnK/W3KkzvLxhRwV3f+M/M7OKLLw41Na7UxRC+saJZPMeMGjUqrKOa+argv7pA54477gi1vn37hpq/AErdvV69pk8yhvjmBwAAJIXJDwAASAqTHwAAkBQmPwAAICnVCjw3atTIunXrVqip4JMKePlOyqobq+q8OmvWrFBTganHH3881FT404e+VLBq7ty5oaa6I6tgtwp/qrtg+2CZuiOu6nitAqj+rtJm+jVMmjQp1AYNGlRYVneXHzBgQKltQ82Uvau7X0+F/dTYU/ufD4ya6TCvWs9fSKDC+ipUvHLlylBTFy+o8KcKES9evLiwrN6zrVu3hpq647V67eo5VTDar6cutFDhadRMlmUhzKzOQyok74Pn6lzi9yszfQz0F/GYmV133XWhpu7+7s91atyOHj061DZt2hRq6hymLtpZsmRJqPmO0T4QbmbhnG+mz9/qzg7f+MY3Qu3NN98MNX/eHDp0aFhHfS7q3FcW3/wAAICkMPkBAABJYfIDAACSwuQHAAAkpVqBZ7MYGFMBQBU+9mFEFdxVAeXly5eHmgoinnbaaaGmApY+4KZCVGo7LrjgglDr0aNHqL399tuhpjo8+26V8+bNC+t06NAh1FQgTYWPVbfNjRs3hpoPBXbq1Cmsozr/qs8ANaOCy6oDsx9rKiTpu0Cb6c9KBZJVYFgFdX2IePDgwWEdNfZUIFKFUlVIWXVv9o+nOvqqzspqDKlQ+AcffBBqiu9SrQLPKtSOmqlXr144RqvPT11E4j97tV+p8LQ6Xx111FGhpi4QUGPZB4ZVyP+2224LtZ///Oehpjo8T5kyJdRU0Nh3xlbbry5Emj9/fqgNHz481NQxpWPHjqHmzzHquKPOywSeAQAASmLyAwAAksLkBwAAJIXJDwAASEq1As+HDx8O4VoVaFIh5REjRhSWVQhYBchUqFMFRJ944olS67311luFZdW9UoVBVSfaLVu2hJrqfKkCp/55VWflzZs3h9oNN9wQaiq0rV6Dei99+Ex11nz55ZdDTYVXUY4Pv6owrArq+k6uKqypqMClChSq8KDqfOz/VoVBVehXPVarVq1CTe27aiz744wK66vjjHpv1Xukgp7qfdu1a1dhuWy3aPWcqCzP8/A5qP1N8V35//3f/z2sM3HixFBr2bJlqKlzh/qcn3rqqVD7whe+UFhWF6Oo/fnRRx8NNRX0V+erkSNHhtrAgQMLy6tWrQrrqIDyjBkzQs3fPcFMX7wwfvz4ULv99tsLy+piAxV4/iQXEvDNDwAASAqTHwAAkBQmPwAAIClMfgAAQFKqFXhu0KBBCCWrcF+fPn1CrWvXroVl1SFSdZf0IU8zHbZVYU3V9XPFihWF5d69e4d1unfvHmpLly4NNdWV89prrw21WbNmhdqcOXMKy6qr6OjRo0Otc+fOoaa6Sqv3TQWefVDQd8A2092nVfATNaPCvGVCuSpcqR5LhQJ9h3Ez3RFXhQx9sFGNF79/m+nXdNJJJ4WaGpMqAHnyySf/xe0yi92XzXRAVK2nxpAK1vqa+lzUc6rPCpVlWRbOO+oYpbqH+4sE1DFcHQPvu+++UBs3blyoTZ06NdTUsfLee+8tLF988cVhHdWR+Zprrgm15557LtS+8pWvhNqNN94Yaq+99lphWb123wXazOwHP/hBqKkLHzZs2BBq6j33xwF1oYLqGq/GfFl88wMAAJLC5AcAACSFyQ8AAEgKkx8AAJCUagWezWJHZ9URUgUFfThx+vTpYR0VjlIBYhUqU92QfedVsxiWViHr119/PdRUEEx1sp42bVqoqe6d/nlVJ8wLLrgg1FS3UBX6Up+Beg4fQlWf55gxY0LtzjvvDDXUjAokq9Cs//xUB2L1dyporC4GaNKkSaipoK4fp6rTre8Eb6YvVFBB40WLFoVa+/btQ80HWtX2Dx48ONRUV3oV7FYdmNXf+kCr+jsVlFavHTWj9jfVAd13+D/++ONLPdYrr7wSatdff32olQ0f+/OEOoZfeeWVoab209NPPz3UfOdms3gONjPr1atXYVldPPPuu++GmrrIQR1n1N0HfJdts3i+Knt8+iT45gcAACSFyQ8AAEgKkx8AAJCUat/VfceOHYXaunXrwnqqyeFNN91UWO7Xr19YZ9SoUaGmMgeXXnppqD388MOhphqt9e/fv7CsfltUTdZULkM1alS/M19++eWhtnDhwsKyuguvem/V77sqI+GbSprp30zXrl1bWFavXTWvmjBhQqjdfPPNoYaiLMvCvqSa3aksms+WqMyIapapHktlg1QuZf369aHm8wkqE7Bz585QU7m57du3h5oaC4rPP6ixp16nynSoLIXKzanjhc8BqedUzWBVo0lUlmVZeM/VeUI1F1yyZElhWe2n6nMfMWJEqKmxMXTo0LjBwqRJkwrL+/fvD+u89957ofbyyy+Hmtrf1LH4iiuuCDV/zl2wYEFYx58jzOL7aKaPRx06dAi1uXPnhpp/XSqLdfTRR4eaGo9l8c0PAABICpMfAACQFCY/AAAgKUx+AABAUqoVeN63b18IOqk7tG7atCnUfGBMNTRUDZa+9KUvhZoPC5vpO/j26NEj1DwVeOvYsWOoqeaFKpCmgsbqbrQ+HKaaRqnA3uzZs0NNBVpVoPyFF14ItZ49exaWW7VqFdZRd9Res2ZNqKFmVJheNQzz+4P63NXfNW3aNNRUw0v1OaugbsuWLQvLqvGfGhtqf1Yh/BYtWoSaCv/751CPpY4LRx11VKipBoyqialqYOgDp+p1qjC2CumiHH+RgArDquay/rPfsmVLWKd169ah5o+TZjrof+KJJ4aaCrb7fVydh9RYVsdn1QBUPefvf//7UPOBZB/ENtPHJ9XMUb0GNRbUZ1VmDKnx4i/Aqg6++QEAAElh8gMAAJLC5AcAACSFyQ8AAEhKtQLPTZs2tWHDhhVqKhSoApYrVqwoLKuQlgpCqS7NqqujCqSpu177cKYKI6vgpAp97dmzJ9RU58vRo0eH2sSJEwvLv/nNb8I66m7ZKvCmXnu7du0qPqdZDNWp7rqqS6e6CzEqy/M8hDVVh1bVVduHbdV+qmqqc7Pan9W4VSFGvx1qHdUVVoWsVbBRbZs6Xviwo9p+9X6o7VAhV9UtWwWX/fuhOkiXORahnEOHDoXPUJ075s2bF2p+P1q6dGlYZ8yYMaGmuhKvXr061G688cZQ+8Y3vhFqV199dWFZ3S3AX1hgpjtBqwsfLrroolB75plnQs2PXfWcJ510UqipfXzVqlWh5s/7H/e3/uIF9XdqfKuLq8rimx8AAJAUJj8AACApTH4AAEBSmPwAAICkVCvwXL9+/RC4VR0yVfjsyCOPLCyrkK4KIqqgowo8v/nmm6HWp0+fUPPBQxUqVoGsXr16ldq23r17h9revXtDzb/Wa665JqyjAmSqg7QKU6rOl+o1+MCbCvGpjriq0y0qq1evXgjuqc6lKkzvx57qhKzC0ypY60PXZnqfUR3cfTdkFW5WHZ5VB2m1P6vOvOrChKFDhxaWVRhZvR+qc64KN6v1fGd2s9gFW73fKsStguiorEWLFnbqqacWair4qsaHP26pjsydOnUKtddffz3U1Lj15zkzPYZ8x/LFixeHdYYPHx5qav9Td0tQHdHVxSz+jgGf+cxnwjqqS7oKRqtQuDqXLlu2LNT8BQe7du0K66jzkHpvy+KbHwAAkBQmPwAAIClMfgAAQFKY/AAAgKRUK/B88OBBW79+ffEBGsSHUCGnffv2FZZVIEuFJFVYWAUKVXBy5MiRofbuu+8Wll944YWwjgqDqlCx2t4uXbqEmuqCvX379sLy+PHjwzoqFK6eUwVON2/eHGo9evQINR8uVcFSFTRTXUVRWb169UK4VgUnVTdTP9bUfqoCvirMqy5KUBcSqM/Z7yMqzNuxY8dQU2FNH542069BXVzg11Pbqt5HdXxSr119Luo998HoMuuY6deJcvw+py7UUF27/d+p47oK7qpO4ZMnTw61e++9N9TUxSH+ggY1HkeMGBFqat9SFx2pi4dUGPuPf/xjYfmMM84I66i7D0yaNCnU1OtUNXUO8yFzdczy524zfU4ri9EHAACSwuQHAAAkhckPAABICpMfAACQlGoFnvM8D8E9FRRUgSYf3vXdav/z8cs8lgrlrlixItRUB1Xf0VmFigcPHhxqb7zxRqip166CZv3796/4eOrvygZafZjcTHfIVH/rw8yHDh0K66igqloP5fjPVX1+u3fvDjW/P6vPs2zXYLV/qFCu6oDut1cFEQcMGBBqo0ePLlWbNm1aqCk+LK0ujlD7rlI2rKkutvDvuerOrT5jAs81s2/fPluwYEGhpjo8q3OMD8WfcMIJYZ0//elPFf/OLHYYNzNbtGhRqHXu3DnU+vXrV1hWF7yoc466QMBfPGOm7zRw4YUXhpoP/6uLF4499thQe/LJJ0NNjRcVKFc1vx3qQgV1YY8675fF6AMAAElh8gMAAJLC5AcAACSFyQ8AAEhKtQLP9evXtxYtWhRqbdq0CeupsJIKCpZ9Tm/gwIGhpgKWKpTrQ5GqC7TqLqk6Saou1arbZt++fUPNd4JWoTUVPlOdrFWY0gcCzSx05zaLoUAVRlOPrzqSomZUULBx48ahVibMrPZ5FdZUz6nClCoE7S84UJ1jVU2F+tVYa9euXajNmDEj1PwFB6rbvLooQb0mNf7Kdpf3naDV46vgtfqMUdmhQ4fkvuSV6dSv1lHnNBViV2FbNdbURQPTp08vLA8bNiysoy7sUY+vzgmqS/VVV10VanPmzCksq5B427ZtQ+2OO+4ItQ4dOoSaOoepsdCrV6/C8sKFC8M6ZS9KKItvfgAAQFKY/AAAgKQw+QEAAEmpdpNDn/9Qv7mp3/T87/FqHZ8nMtMNlmbPnh1qqhni/v37Q803k1qzZk1YR/12WebOvGY68/PII4+Emr8rrvr9eMeOHaGmXpP6TVY1VlR3evd3Plb5HpVNUO83KsvzPOz76jNV+5anMi7qTuQftx2eyhOo3+x9nkfdwX3p0qWhpsa3yvyoTJ+6a/dJJ51UWJ45c2ZYp+zd1NVnoNZT74d/L9Vzqs+zbENKFB0+fNh27txZqLVs2TKspzKO/nNo3759WEeNDd+Ez8xs/vz5oabudq7OCXfffXdhWTU5/NrXvhZqKsvjcztmOl/34IMPhprPxKlzjtqfVa7305/+dKip92jjxo2h5o8N6rjgP3MznS0si29+AABAUpj8AACApDD5AQAASWHyAwAAklKtwHNVVVVo/KUClqqxmA8KqsBzkyZNQk0FjVWATN2levny5RXXU2HNefPmhZq/+7mZbgilQsXqOXzAsuxd2FUYT4VBVbhUBVr9HbnVc6raBx98EGqorKqqKnz2Kjyuxof/7NW+oJocqpCuoj5TFTz0DTrVvqvGgWqiqJpqqvC/Os74/VkFM1VTQrWeamioxosaC/41qPe77HuLyvbs2RPC7WeccUZYT1244gPPPjRvZvbaa6+FmvpMVaNX9Zx33nlnqF1wwQWFZRXOVvvaww8/HGqqwe+ECRNCbdq0aaHmmwvef//9YR11/ho+fHiovfPOO6XWu++++0LNh/9VoFqFsT9Jo1C++QEAAElh8gMAAJLC5AcAACSFyQ8AAEhKtTs8+0ClChypTow+7KjCjyqcqDo4lr1ztQ9zmemOnl7v3r1Lbcdbb70Vaip8prqPrlq1qrCsQp4qSDpx4sRQ86FlM909VnWZHTp0aGFZhTDVHa9VQA/l+KCyGkMq8OzD/6orsQpmqs9dhaVVyFB99n78lb2ru3p8VVOvS63nQ9Dq77Zt2xZq6vihAsnqeKSC0T6Yqo5FqvZJ7kidsqZNm4bO/+rzU8F2f3GICjerzunqogR1rFcX+5x55pmh5kPEU6dOrbitZmbjxo0LNXUBkLpoR3VW9qHtwYMHh3XUGFL77rPPPhtq6hzWo0ePUPOdq9XrVMcA7uoOAABQEpMfAACQFCY/AAAgKUx+AABAUqoVeDaL4T4VClRhSh+2Ut2cfedYM92lWYUwVQdmFZDygbRu3bqFdVRwcuXKlaGmOnyqwFu7du1CzQe1VChadQtt06ZNqM2aNSvURo0aFWoqQLds2bK/uF1mutNo27ZtQw3l+FDy7t27wzplOn6rrscq6K7GaNnnVAF4vx379u0r9fhq21SwW4W21XO8//77hWUVcFWvSQVa1XOq9029Bv8eqQs+yr4fqKxevXohUH/88ceH9dR5wgeNVRBd7TMqgNu1a9dQU4/nw7xmMaSs9m+1/Wo8qiCz6pyuOjX7MaS2f926daGmLtI466yzSv2t2u9HjhxZWFbHBfWca9euDbWy+OYHAAAkhckPAABICpMfAACQFCY/AAAgKdUKPB86dCh0E1admlUHVR8sVsFdFURUgecWLVqEmupy7ENUZjGk7ANfZmaLFi0KNdUJVHWQViHrhQsXhprvpKm6aKrOna+88kqozZ49O9RU4Fm9b/5zUJ1SVVdbFS5Fzah9Rr2/fj11YYEK66ugoAqxq4Cv2md8qF91+1bHANVpWgWB1etS2+H/Vl30oB5L1VTgWY0FdUGAP26pz04d29TnjnL856UCvuqY6jvpqwtUduzYEWqqm7+6QGfGjBmh1r1791Dz40Oto4LMaoy2atUq1FRwWQW0/blj2LBhYR21z6vxoqjPQL2XvuuzOi60bt061NR6ZfHNDwAASAqTHwAAkBQmPwAAIClMfgAAQFKqFXjOskyGJ9V6ng/3qQCj79ppZta+ffuKj2Vm9s4774Taq6++GmqdO3cuLI8dOzaso4JsqiulCsupzpRlAnSqg3TZDr69e/cONRUoV+F0/16qgLkKhaswKCrLsiyMDxWQVYFFH3ZUf6eCzKp7rApGq/Gn9pnNmzcXltW+UGZf+zgqYK9eg38/1DhTY1S9dhWYVSFlNSb9MVE9vgqNquA1Kqtfv37oiK/CwSoI3KlTp8KyOt6pjsyTJ08OtdGjR4ea+ux/9rOfhZo//6nzqnpNaqy99957oaYuOFDnUn8BkBpD6kKF6667LtRef/31UFNzARVcfuONNwrL6lihjgvDhw8PtbL45gcAACSFyQ8HJGxkAAAgAElEQVQAAEgKkx8AAJAUJj8AACAp1Qo8N27cOHQ1VmErFWg64ogjCssqmKnCvOvWrQs11b1YdUNW4TPfBdZv18dthw/KmelAWtu2bUNNhbd8cE0FOnv27BlqKrSm3iMVUlMdcH2oU22H2n4VCkfNqH1GhWF9KLJsJ2FVU+FBtZ4KWPptU+FKNYbUWOvYsWPFxzfTwUnf3VU9p9qffcjTTI8X9f6qbfPrqXFWtqM2Kjt48KBt2LChUFOBYRV295/DtGnTwjrjx48PNbWf+uC/mdn27dtD7dhjjw21SZMmFZbVBTvquKDOOcuWLQu1Jk2ahJq6C4IfM+quBeecc06odejQIdT8azKLHbXNzN5+++1Q85+nenz1GatjT1l88wMAAJLC5AcAACSFyQ8AAEhKtTI/eZ6H5mvqt3LVwND/3q9+71YZHfUb58yZM0NNNWdSTdsGDBhQWN61a1dYRzW+Uk3bVJ5gyJAhobZ27dqKf6tyNSrDsHr16lBTjRXV6yqTB1E5B/W7qsqMoLIsy0KjPHXnY9VY0u+DKkeixpBqzKdyKWo9dcd2v4+o7IPaj1QeQu27O3fuDDW1v5W5o7MaQyq/8eabb4aaeo/UOPXZEpWTUu+Rb9SHcvbu3RsaEX72s58N6z3zzDOh5rMwN9xwQ1jnzjvvDLV+/fqFmjpP/Md//Eeoqeymv4u7aoKpcpUqx6T2Z5XFVTXfCPKpp54K66jj/6xZs0LNNyo005kflSHyr3/NmjVhnfnz54faJ8me8s0PAABICpMfAACQFCY/AAAgKUx+AABAUqoVeDaLzcbK3H3aLAYPVTBThXQvu+yyUJs3b16oqaDZpZdeGmo+eKhCnirIrEKp6s7pzz//fKipoJYPY6u7y6umcEuWLAm1f/iHfwi1n//856GmQuHHHXdcYVndCVk1x0LNVFVVhUCsuqO4Cvr7fVeF8FUIWlGN/so0ElTrtWvXLqyj7oxdNoSpgqTqDto+rK9Cy2qMqtCo2u9V6Fx9Vn5cqeOYCmyrx0Jl77//fmhO+PLLL4f1VEj5scceKyxffvnlYR11wc6wYcNCTZ0T1PFfBef946ljvQoQd+7cOdTU3dTVcWDw4MGh5pvm9u3bN6zzk5/8JNRUiPuMM84INdWA9/Of/3yo/eIXvygsq7HnPzszfd4si29+AABAUpj8AACApDD5AQAASWHyAwAAklKtwHOWZSG4rO4yru4ou2jRosKyCiKqbtGzZ88ONdWpuGvXrqG2cuXKUDvttNMKy6p7pQqbKqpzswqh9u7dO9T8HXvVXeNVKPxnP/tZqKmApQqMqcDbli1bCsvqs2vdunWpbUNleZ6HO4OrLsfq7sp+v1ddYdXnrkL9Kmyrujmrrsx+TA4cOLDU4w8dOjTU1J2r1d8uXrw41DzVdXbkyJGh5u8gbaZDqWofV3eW9jV153cVqOau7jXTo0cPu+222wq1rVu3hvVUd2/foVsd66dPnx5qp59+eqjdeuutoXb11VeHmgpG++1Vx10VWlbnTXXRkToPTZgwIdT8vvrII4+Edfw5wszst7/9baiNGzcu1HwnazN9vvJ3XrjkkkvCOurCIXU+LItvfgAAQFKY/AAAgKQw+QEAAElh8gMAAJKSqXDex66cZVvMbPX/3OagjuuW53lM5OG/MIZQAWOoAsYQKig1hqo1+QEAAKjr+NkLAAAkhckPAABICpMfAACQFCY/AAAgKUx+AABAUpj8AACApDD5AQAASWHyAwAAksLkBwAAJIXJDwAASAqTHwAAkBQmPwAAIClMfgAAQFKY/AAAgKQw+QEAAElh8gMAAJLC5AcAACSFyQ8AAEgKkx8AAJAUJj8AACApTH4AAEBSmPwAAICkMPkBAABJYfIDAACSwuQHAAAkhckPAABICpMfAACQFCY/AAAgKUx+AABAUpj8AACApDD5AQAASWHyAwAAksLkBwAAJIXJDwAASAqTHwAAkBQmPwAAIClMfgAAQFKY/AAAgKQw+QEAAElh8gMAAJLC5AcAACSFyQ8AAEgKkx8AAJAUJj8AACApTH4AAEBSmPwAAICkMPkBAABJYfIDAACSwuQHAAAkhckPAABICpMfAACQFCY/NZBl2R1Zlm3MsmxXlmVLsiy7qra3CaiLsizrk2XZvizL7qjtbQHqkizLXvpo7Lz/0b/Ftb1NdQmTn5r5iZl1z/O8hZmdbWY/yrJsZC1vE1AX/cLMZtT2RgB11PV5nh/50b9+tb0xdQmTnxrI83x+nuf7/3Pxo3+9anGTgDony7JLzGyHmT1f29sCIC1Mfmooy7JfZln2gZktMrONZvZkLW8SUGdkWdbCzH5oZl+r7W0B6rCfZFm2NcuyV7Msm1jbG1OXMPmpoTzPrzOz5mY23sweNLP9f/kvAPw3N5vZ7Xmer6vtDQHqqG+bWU8z62RmvzGzx7Is4xeIkpj8fAJ5nh/O83yamXU2s2tre3uAuiDLsmFm9mkzu622twWoq/I8fyPP8915nu/P8/yPZvaqmZ1R29tVVzSo7Q34/4kGRuYHKGuimXU3szVZlpmZHWlm9bMsG5jn+Yha3C6gLsvNLKvtjagr+OanmrIsa5tl2SVZlh2ZZVn9LMtONbNLjdAmUNZv7MP/WBj20b9fm9kTZnZqbW4UUFdkWdYyy7JTsyw7IsuyBlmWfc7MTjKzp2t72+oKvvmpvtw+/Inr1/bh5HG1mX01z/NHa3WrgDoiz/MPzOyD/1zOsux9M9uX5/mW2tsqoE5paGY/MrP+ZnbYPrzw5tw8z5fU6lbVIVme57W9DQAAAP9r+NkLAAAkhckPAABICpMfAACQFCY/AAAgKUx+AABAUqp1qXuLFi3yNm3aVFyvXr04pzp8+HBh+aPmZgV79+4NtT179oRa8+bNQ61Vq1ah1rBhw1DbvXt3Ybl+/fphnaqqqlBT6zVr1izU1GtYvnx5qO3fX7wbRpcuXcI6DRrEj0fVyr5H/jMwi69VXf1X9orAVatWbc3zvPIOkrDmzZuHMaTGgtoHDx06VFhu3LhxWEd9VurxDx48GGpHHHFEqL3//vuh1qFDh8Ky2ufL1t57771QU/tu06ZNK9bUa1fjVlFjw7/fH/ccf00rV65kDFVw5JFH5sccc0zF9dSx0n+mamyUHUPqPKeeU43lMo+laoratrLUfu+pY4U69qhjhXp89bcffPBBYbns+Ut9VmvWrCk1hqo1+WnTpo394z/+Y8X11IZv3769sKzegDlz5oTaW2+9FWqTJk0KtfPOOy/U2rVrF2pTp04tLLds2TKss2/fvlBTE52xY8eG2rx580Lt/PPPDzU/IfrWt74V1mndunWoqUnem2++GWonn3xyqO3cuTPUdu3aVVhWB/wyg9fM7IorrlhdasWEtWnTxn70ox8VauoErfZBP4a6d+8e1il7oNqwYUOoDRgwINRefvnlULvpppsKy2rczp8/P9Tmzp0bavfcc0+oTZw4MdRGjRoVasOHDy8sHzhwIKxz1FFHhZo6YPpxYGa2adOmUFNjwdfUSUv9nTppfe5zn2MMVXDMMcfYd7/73UJNvedqgrRt27bCctnJj5rUqHGljtlqLPvnUOcX9fhKo0aNKj6+mX6tfsKi/k4dK3r06BFqr732Wqipc06fPn1CbcaMGYVldQxQY1RNiK699tpSY4ifvQAAQFKY/AAAgKR84ttbqK/JduzYEWr+a0mVU1G5F5+NMTMbNGhQqG3ZEjvj+58XzMyuvbZ48/VVq1aFdVavjt+aHXvssaH2y1/+MtSGDRsWatOnTw81/1XoJZdcUuqxrr/++lBr0aJFqKmfHdRPAP4nF/XTAf56GjVqZJ07dy7U1Ffqan/21E+U3bp1C7WVK1eG2rp160JNfWV/0UUXhZrfn3/yk5+EdTp16hRqanvV1+cnnHBCqKmf8/785z8Xlm+44YawzubNm0NNjY2+ffuGmspAqdyS/zmhbGbwk2Q1UKTe8zJjSH0u6mcklR9VP0up85raj/xnrx5LHdfbtm0baiprUzZ/439KUhk8n8cx01GLtWvXhtrs2bNDTR0HJkyYUFju2rVrWGfp0qWltq0svvkBAABJYfIDAACSwuQHAAAkhckPAABISrUCz/v27QuhIxVYVHzAa+bMmWEdFXQsG0j+wQ9+EGoqpNakSZPC8ooVK8I6Kjyn+usMGTIk1MaMGRNq06ZNCzUfOP3hD38Y1rnllltC7eGHHw41Fdo788wzQ+2VV14Jtd69exeWVUhQBdTKNuBCZWp/VmFYvz+rAKMKMvfr1y/UJk+eHGqvv/56qC1ZsiTUfEBb9bFSAWXfY8VMjzXVN+iUU04JNR+SfPHFF8M67du3D7Wzzjor1FSQeePGjaGmLgjwF318ksZ5KMcff8r2IvP8xQdmel9QygSZzfR5yI8hFVD25yozPYbUeuqYvXjx4lDzr0H16PONgc30+6366g0ePDjU1q9fH2q+Z1nHjh3DOuriJ3URT1mcwQAAQFKY/AAAgKQw+QEAAElh8gMAAJJSrcBz48aNrVevXoVa2bsc+9CXulGhumO8v4mimdldd90VameccUaoqWCVD2irrpEqQPbEE0+EmrJ169ZQUx12/U33VPDu3HPPLfX4KtCqQtDqRqxlbjhb9s7YqOzgwYOh67AKSaowsw8ZqpvyqoCvGqNvvPFGqKnx4gPxZrETu7pRodq2L3/5y6GmuumqbstqfPiwpvo7NV5UV1h1UcLZZ58daqo7tH+OsnefRs3VNOBcpqO9euwjjzwy1NR5omyw3dfUY6kQtNpedeNU1W1ZPYe/MEHdYFWFoNV2qL9VIWX1XvrzkHp8FTBXNx8ui29+AABAUpj8AACApDD5AQAASan2Xd39b5plf+P0vweq3+fVb5LqN0P1m/0jjzwSat/4xjdCbcGCBYVllZc5+uijQ23NmjWhpu5e37Nnz1BTd8odMGBAYfntt98O66jMzwMPPBBq6jdZ9V6q30z9a1D5HtWwjru/10xVVVXYf1UTNPU5+DyWz42Zmc2dOzfUVG5HNRFTDUt/+tOfhpp33nnnhZr6LV416FR5BbXe448/Hmp+DKlGpOpYpJ5zxIgRoaaOKWXzdZ7KAaFmsiwL77l6f1Uj1qZNmxaW1XFM7TOq0Z86LvrmhR+3bT73orZVnV/Und7VOVJl7lTWxmeDfB7x47ZNPad6nT4jbBbzPWYx+/cP//APYZ2LL7441Hz+sDr45gcAACSFyQ8AAEgKkx8AAJAUJj8AACApnzjwrKhGeT40pQK5s2fPDrU9e/aE2rx580JN3WFdeeqppwrLy5cvD+tceumloabCYircrEKo6s6zPgB+5513hnWGDRsWauqO1yqQpgLlaj1/91/1+ao7BNe0yVjq6tWrF8ZH2QZ4/u9U4PLkk08ONRXqVHeSV3eMVs0FfSNFfxGBmQ5mXn755aFWJoRvZrZq1apQGzp0aGFZBf/V61TjQDWFU3e+f/fdd0NNBdbLYAzVTJ7npcaMOu7691ztC+r8pYLM6tykgsDq+OmD12osqwt7ym6bGn/qOdq2bVtYVk1H1TmydevWoaYuclBjWb0f/rypPl9113h1vi2Lb34AAEBSmPwAAICkMPkBAABJYfIDAACSUu3Acxmqg6oPDKtukCeccEKoqbsoDxw4MNSuvfbaULvjjjtCzd+5Wt31WYUkd+7cGWqqo6zaXvV4PoSqglsqfDZ+/PhQU91HVchVhbZ9TT2W6niqQnaoTIU11furAn/+M122bFlYR3V2VV1b1fibMWNGqLVp0ybUhg8fXlhW+7wKKH/6058OtS1btoSaGi8nnXRSqK1cubKwrC4GKBsQVcFMdWGF6ijrA8/q89y7d2+ooWbURQMq3Kz2cR/6LdNJ3UzfsdyHls30ndgVH5ZWj6XGsgotr1u3LtTUuPUXKpjF8afOEeo9Uq9TvQb1Xqrzpr8A6ktf+lJYR70fn6RzOt/8AACApDD5AQAASWHyAwAAksLkBwAAJOUTp1ZVl1IVKPThXbWOCgqqENVll10Wak888USoqaCn75p86623hnV851gzs4ceeijUfvazn4Wa6sqpgqn+9ffr1y+s8+yzz4aaCrL16tUr1DZu3BhqnTp1CjUf5FMdd1XIrmxXYhRlWRb2cxUoVGPB11QwePDgwaGmxprqsD569OhQe+yxx0LNh/9VJ3IVEF28eHGoqRDjrl27Qq1r166h5js6L1y4MKyj9md/0YOZDjKrztUqEOq7PqvHUp1/1WeMyqqqqsL7qY67Zaixpzp2lz1fqf2+TCdvFSBWr+m1114LNXUxjtpPTznllFDr0KFDYVntp+pCJNURfc2aNaGm3qMlS5aEmn/f1BiaNm1aqKmO9mXxzQ8AAEgKkx8AAJAUJj8AACApTH4AAEBSPnHgWQVfVcjJh8jee++9sI7qaKwCl1deeWWoqa7PY8eODbUhQ4YUllUg0gcYzcxuvPHGUNu+fXuoqbC06qzpw6XLly8P66jwnOqcqwJ1qmOtCvL5Dpxl1jHTIWiU40OWZcOU/u984Ncsdo410/uzClhOmjSp1OP17NmzsKw6Q6tx1aJFi1Dbtm1bqKnHO/HEE0PNB7579+4d1hk5cmSoqbGm3iN1EYJaT40ZTx3bVBd2VJZlmdWrV/zvdnUeUvugv4BGfXafJAStaqq796FDhwrLKmis7j6guo778WimL3hRr8t3xn7xxRfDOqojs7rYQnXZ9l3YzfRxwJ/X1PutLvZ59NFHQ60svvkBAABJYfIDAACSwuQHAAAkhckPAABIyicOPCsq3OeDjSoErEK6KshWtgOs2g4fLFPBz02bNoWaCieqjsn79u0LtbZt24aaDzOrsObcuXNDTQXBVCBNhUZVMM6/VhWyVt2A6fBcMyqsqajP2YegVRdX1U28W7duoaa6rKogsApdjhkzprDsw5tmZp07dw61DRs2hJq6UEFdDKFCkuPHjy8sq7GnHmvp0qWhpgL8anyr7tD+WKYuEFDjhTH016OO9epY5rsmq3FWZnya6eOi+ls1Pvz55PDhw2EddTGA6sKuOkEfe+yxpWq+k7K6wEGFoNW5Wo1vddGA6kLvX4MKNz/55JOhpl5TWXzzAwAAksLkBwAAJIXJDwAASAqTHwAAkJRqB5596FJ1jVShrzlz5lT8u6OPPjrUVCDt1VdfDTUffjTTQc933nnnLy6bmZ166qmhpjpVqs6dKgSnum36YJkKRauQdceOHUNNUQFAFRr1Ac6y4Wb12lGO7wKrApHq8/NjQYUOlT59+oTamjVrKm6XmdmUKVNCrXXr1oXl7t27l3r8sh2pL7zwwlBbuHBhqPXq1auwvHv37rDOv/7rv4baFVdcEWqqw646jqmaDzyr91H9HYHnmvPnIb9Pmukx5EPxah3VXV19fqqzvqqtWLGi4nOox1cdqtWFCqNGjQq1cePGhZoak/4Yos7L6vHVnQbUOXL69OmhpgLa/uINddGAMnv27FLrKXzzAwAAksLkBwAAJIXJDwAASEq1Mj95noccimq0pn739LkXlRlRDcnUnWLVb/vqt0pV83dlVo3/1HOqXMaCBQtC7atf/WqoPfTQQ6Hmf2tV+ST1e/Sbb74ZahMnTgw11eBLPZ7P+Kjsg78T8seth3L8+FC/7at8jN93VYPODh06hJpqeKnyX8ccc0yoqSyd349U01HfCNFM59XUmFfZP5Vv8r/3q3GgGqqVbQ6plMktqfFSNj+Eyho0aBD2VdXoVWVtfNPOli1bhnX8ODPT2VNF7eMqv+L3ox49eoR11DH26quvLvX4qhmnsnjx4sKyahqomu2qc6TaXjXWVL7VHwfUZ6eObd///vdDrSxGHwAASAqTHwAAkBQmPwAAIClMfgAAQFKqFXjOsiwEv8qGrXzwSQUY1R2kd+7cGWrqDswqzFumuZQKeaq76argpAoVq2D0eeedF2o+JLl69eqwjmqWptZT75v6W8WH1FTYb8CAAaGmwuT461EN8HyDNhUWVoHFqVOnhppqfFg2sOgvelB3cFeN4n7605+G2vDhw0PN32naTF8gcfrppxeWVfM0dWd21SRV7c+qKZx6P3xoVn126v1AzTRo0CCE4lXTPbXP+IsN/JgyM9u8eXOoqXOJGkNr166t+JxmZosWLSosb9q0KawzcODAUJs/f36oDRs2LNTUxRAqpOzfR9U08OSTTw41dRd6deHGcccdF2pvvfVWqPmLmNQ5Z8uWLaF20003hdrNN98cagrf/AAAgKQw+QEAAElh8gMAAJLC5AcAACSl2nd1Dw8ggrXqTuk+kKzCaCrk1Ldv31D7+te/HmoXXXRRqD322GOh5ruqqiCiCsGp7VXdQW+77bZQ++IXvxhqPrT97LPPhnXOPffcUFOBNNXdtF+/fqGmOs/6MN727dsrbqsZgedPwr/nZfdBH8RUd1NXYVsV6lfh5jZt2oSaCvD7kKTa/9Tfqe3o379/qKnHUxcX+K7M6qKEl156KdRGjx4daurY8/bbb4eaen/9RSBlO9WjZurXrx/eTxW6VyHo9u3bF5ZV0PgPf/hDqKnxorp9jx07ttR6PvSrjtfqQhbViVwFqv3rNNMXGfnjvbqD+xNPPBFq6kICdSd5f3GEmX4vzzzzzMKyOt+qjuiqqzuBZwAAAIHJDwAASAqTHwAAkBQmPwAAICnVCjw3btzYevXqVaipYKMKa/oAVrt27cI6KuSkOkhPmjQp1Hr06FHq8Tp27FhYfv7558M6//zP/xxqK1euDLXp06eH2gUXXBBqKoy3dOnSwrJ6z3bt2hVqKtTZs2fPUFMdOFW3bN+xtkWLFmEd1VlThWNRjg/u+W7fZjoE7WvqM1AdZlW3VxUeVPvMiBEjQm3KlCmF5cmTJ4d1VKhxyJAhoaZeu9o29Rp8IPTRRx8N6wwdOjTUFi5cGGr+uGamg9FqO/w4VdtP4PmvZ9OmTaFbuDrGqvOEP/6/8MILYZ0FCxaE2re+9a1QU8H2l19+OdRUh+RBgwYVlufOnRvWUee+s88+O9RUCF91qfbPaWb2zDPPFJZ9p2UzfR598cUXQ23dunWhpu4YoI4DfiyrbtHqAiN1EUVZfPMDAACSwuQHAAAkhckPAABICpMfAACQlGoFnuvVqxe6BKuukSp8rALOnuoaqToOt27dOtR+9atfhZoKH/tA1+LFi8M6KkCmus6q7VDbqwJjTZo0KSyrTtYPP/xwqKn3SHVg3rBhQ6ip5/Cdt9u2bRvWUZ+xWg+V1atXL4T5VIdW9Z77cLoKBa5fvz7U1OfuH8usXMjaLAZ6VbfvLl26hJoKg6rjQrdu3UJt5MiRoeaDk6ojs7ogQ3U6X7RoUaiNGTMm1NRFCP4iARX2VscUP/ZQTp7nIZyvQrTq+OzHjAqnK/fee2+ojR8/PtTUhTFqrPku6SoYrLpFz5kzJ9RUqF/dZUGNyWOPPbawrC5AUPupunimd+/eoXbccceF2ooVK0LNn6/8+dFMHytUF++y+OYHAAAkhckPAABICpMfAACQFCY/AAAgKdUKPFdVVYXw7saNG8N6Xbt2lX/7323atCms079//1BT3Yv79OkTaiq4pjoT+yDYgAEDwjoqoPynP/0p1B544IFQe+SRR0JNBVN9SFm9plGjRpV6rFdeeSXUfJDNTAfNfJdg9fgqBKc6CaOyqqoqO3DgQKGmOpeqceWDumoM+U7qZjr06zuMm+kOz2X2mWXLloV1GjSIhxbVsbZDhw6h1rx581D74IMPQm3JkiUVt1W9R8OHDw+1mTNnhpoKr6pta9asWWFZHYvKvh+orFWrVnbxxRcXaq+//npYT4VmfehXhZHVBSSKOs+pruuqC7E/H6pjveog7fc1M72fqqDxSy+9FGqeOt+qi3jU61QXbqiLEFS3c38MUQFw9R5179491Mrimx8AAJAUJj8AACApTH4AAEBSmPwAAICkfOLAswrD+o6nZjFEpoK1KkSlQpivvfZaqKmgpwqC+YCUCrd17tw51FQg+fzzzw819bpUV85p06YVlr/zne+EdVToS3VuXr16daipYJzqPOuprqiqO60KiKKyqqoqe//99ws1FQBUnbx9AFLtkyr0O3jw4FLbNmPGjFBTAV/f7VwdA1SYt1evXqGm9mcVklR/6zvJ79u3L6yjxoHq8KwC1YMGDQo1dRHFtm3bCssqxK3GEGqmqqoq7HO+Y7KZ2YknnhhqmzdvLiyPGDEirKPGi9qf1UUfKuyuuq5/5jOfKSyr7Vf7pBov6pyjOh+r5/Cd+lXnZhUK79evX6ip85U6NqiQ8pQpUwrL6o4K6jyq7tBQFt/8AACApDD5AQAASWHyAwAAklKtzM+hQ4fCb97qN0KV0/G/s6uMzrp160JN3T184MCBoeYzNGb67vL+N97HH388rKPupq7uXK3udqt+k1V3qX7++ecLy6oBlWouVfZ9U7kGlcXyDfdU/kT9Vqx+k0VlDRo0CO+nakKofsf3WbSyORJ1h2eVr1M5geuvvz7UfE5ONWNTeQW1n6qmaj5DY2bWsWPHUPPvo8qrqW1T40DdwX337t2hpnJWPtegsiCqAVzDhg1DDZXt378/ZNtUw0GVEXnzzTcLy6oJphob6o7oW7duDTWV+VG5Ir8/7NixI6yjcn/qnOZzTOrxzfT4mzdvXmFZ5ebU+Uvt46qppM83munMrm8Eqd7bLMtCTc0FyuKbHwAAkBQmPwAAIClMfgAAQFKY/AAAgKRUK/Bcv379cAfqXbt2hfVUUyffHFGFynz41kwHgVUQceLEiaG2YMGCijUVGj311FNDbdasWaGmApaqGZsKbftQuGqiVbZR4aRJk0JNNT5Udw/3YTkVEFWhVBXSRWVZloVgoGq0qQJ/nh9TZjoorcLHKmCpxoIKcL7xxhuFZRU6LNtkTTVQU3dAV2PZ74Mq9KqOT6oxmrymrj0AACAASURBVAp1rlmzJtTatWsXav5YtnTp0rCOCoNy0UDNNGzYMHwO6uIQFd714XS1/6mLW9R4VHdrV2NZjUm/X6qLZ1SDQPVY/uIZM31X9/79+4eaH5Pqghd1zlGNgNU5R72uYcOGhdqrr75aWC4bblaPVRbf/AAAgKQw+QEAAElh8gMAAJLC5AcAACSl2nd19+FJFRRUoSwfHlR3PlaBZxUwVMFJ1UlShQx9CE6F21TQUQW31Hqqi6YK4/nw8caNG8M6KhCpwsfq/VZdfRUf2lNBNhWsVWE8VJbneQhFqvC4Crv7sacClzNnzgw11ZX4rbfeCjUVUlb7rt82FYpWY2/RokWhpu5Cr/ZB9X74oLG60EJ1yX3sscdC7bOf/WyoqU7Qaiz451DjUYXJ1TEFlak7Dai7jKv31x9TVXdkFZRWY0h1W1bjSp2bfGdpta+pi09UbdCgQaGmzsvq7gP+fKXOy+piHHUhgQp7K6o7tD/3q/O+Ot6pzu9l8c0PAABICpMfAACQFCY/AAAgKUx+AABAUqoVeDaLnYl9cMtMByB9KEuFl1ToS3UlVoG0Z599NtRU8HDZsmWF5fPOOy+s07x581BTwTgVZHv55ZdD7W/+5m9CzXeRVgEy9X6oTqPjxo0LNRXGa9++fagtX768sKzCaIrqjIrK9uzZEzokjxgxIqynAsM+ZK46nfvxaWa2cOHCUFNdiE877bRQ6969e6j58VdVVVXq7959991QW7JkSaipLrMq2OjDn2q8qy7s6vF9gNZMb6/qTO/XUx3d1YUQantRWcOGDUMoXnXtVuchfwxUQXTVKVyFeV955ZVQUwF+NT6GDBlS8fHVvquOC+rx77nnnlBT+9vgwYMLy+rCG3WuVuc+1Qlavb9qzPt5hBqj6oIJdZ4ri29+AABAUpj8AACApDD5AQAASWHyAwAAklLtwLOnwlaqs6YPQ6mutioU6LvamumuzCeffHKo/e53vws1H/TcuXNnWEd1tMyyLNT69u0bairwpjrneqqT7tSpU0s9pwrMqk60KiDrg9xlO9E2bNgw1FDZoUOHQrhPhZTVZ+XD6CpY26VLl1BTn5V6TtUVVl3Q4PeZBg3iYUR1VlYhSbW/qW7Oagz5Y8PKlSvDOl/4whdCTXWIV8cZVdu2bVuo+eOR2n51IUHZLuwoyrIsvOcDBgwI66kArg+2q4tn1DmtbEf7sgF7X1NjWZ1z1P6njB49OtRU4NkHwMt2my97cZL6DNQ51x97VLi5adOmoaaOT2XxzQ8AAEgKkx8AAJAUJj8AACApTH4AAEBSqhV43r9/fwgeqm6YKiDrA1Kqe6oKP6pOsaoLpQpwqo7GN998c2FZhbleffXVUJs7d26oqZBa2e60Pryl/k4FUA8cOBBqKtCqaiqM5z8r1TFTdQN+++23Qw2VNWvWzI4//vhCTYUC1f62Y8eOwnLv3r3DOv379w+1OXPmhNpFF10Uaqp78bRp00LN71utWrUK66juuv51m5k99NBDFR/fTF/k4Pdd9ZzqWKGOC5MmTQo11dX9ySefDLWxY8cWltUYVcens846K9T+6Z/+KdRQVFVVFQLIvtu3mQ7l+nC+urhFdVFWHe3VOUytpy4I8EFrdaGM+jsVSO7QoUOorV69OtTUech3llaPry6+UFSXanVOV4Fy/7wq3KyC0mWD6Arf/AAAgKQw+QEAAElh8gMAAJLC5AcAACSlWoHnBg0ahO6oqpOwCpH5wJ8KeaqwlQodLlmyJNTGjRsXasccc0yoPf3004VlFXRU27Z169ZQU2HQgQMHhtobb7wRaj68qrrfTp48OdRUl87mzZuHmgoAqkCa7xiqOumqx1chO1TWqFGjEDxUoftly5aFmh8fqmuwGi/qooR58+aFmuqSq8LBM2fOLCyrjskqJK9Cv2WOFWY6rL9r167CsgpKq7C3GkNqvZ49e4aaCl77TrxqnKnPWAU4UVmWZeEzVO+l+kz9Z6POESrAry7iUaFcFVJW5xNfU52b1cUnaj9Sd0ZQoW3VMdq/H6rjtXpOda5ev359qKku6aoTuw9Gq21Vwes+ffqEWll88wMAAJLC5AcAACSFyQ8AAEhKtTI/9evXD7+Hqt89VfO/hQsXFpZ95sVM/66v8j2vvfZaqKmGVuq320ceeaSwrLIx6jWp3y7Vb7llcxN+e1XTQPX76+uvvx5qKh+iMkSzZs0KNd+QTb0fQ4cODTWVA0JlKq+gfj9X+65vhKmyMRs2bAi1zp07h9qQIUPktnnqTs19+/YtLKt8gcqEqXyF2jb1nCrT4WvnnHNOWEeNl2HDhoXa9u3bQ019Ll26dAk1n7lQmaITTzwx1ObPnx9qqGz37t324osvFmqquafKqnjq2Kw+Y0XtM4oayyob5PlMm5nO2KrxpxqWqmO238fVvquydOocOXz48FBT26saQfrsn8r3qCaNqjlwWXzzAwAAksLkBwAAJIXJDwAASAqTHwAAkJRqBZ7V3XTVXVtVmNk3WlN3a1fN2BYsWBBqjz76aKipoK7atssuu6ywrO4ErcJzqpGUCpWdfvrpoabuYnvCCSdU3A4VUFYhSRUaVXeMVu+H3w51l1wVPlMBcFR28ODBEEpWDQdViNEHjVXjzTPOOCPUVMDQNyo002FpFXb0j+cvZjDT+7O6C70KWU+ZMiXUVEjZhzPVXbZHjhwZak899VSo+ffWTI8Fdcd2f4GHCriqu8urQDUqO+KII8LnpfY3VfNhZhXCV1RAWYVt1XFR7eP+s1fBYHW8Vk1B1fhW+5Y6XviLJtTrVNumLsZRDUDVhTdbtmyp+BxlX7tqNFwW3/wAAICkMPkBAABJYfIDAACSwuQHAAAkpVqB50OHDoWulqqLpup86cNQqoumCoapTrRXXXVVqPXq1SvUvve974WaDwKrO6erO/j6ztBmZp/61KdCTXW+VJ0p77777sLy4sWLwzpnn312qKk7Rl9zzTWhpgJjKrTtu+SWDTer7sKoLM/zEEZUYV4VkvfdzlesWBHWUaFDNdbU56cCnGPHjg01H94dOHBgWEcFqtW+O2bMmFBbs2ZNqKng5ODBgwvL77zzTljnrrvuCrVbbrkl1FSX9KlTp4aaCpf6z+XUU08N66jXroKkqKxRo0bh4hh17mjXrl2o+X1chdNVULpsEFgF29VY9jU1blVN3clABYHV35bZDvXa1flQvXZ1/Dj66KNDrVOnTqG2atWqituq7p6gPvey+OYHAAAkhckPAABICpMfAACQFCY/AAAgKZkKxn7sylm2xcxW/89tDuq4bnmex7bX+C+MIVTAGKqAMYQKSo2hak1+AAAA6jp+9gIAAElh8gMAAJLC5AcAACSFyQ8AAEgKkx8AAJAUJj8AACApTH4AAEBSmPwAAICkMPkBAABJYfIDAACSwuQHAAAkhckPAABICpMfAACQFCY/AAAgKUx+AABAUpj8AACApDD5AQAASWHyAwAAksLkBwAAJIXJDwAASAqTHwAAkBQmPwAAIClMfgAAQFKY/AAAgKQw+QEAAElh8gMAAJLC5AcAACSFyQ8AAEgKkx8AAJAUJj8AACApTH4AAEBSmPwAAICkMPkBAABJYfIDAACSwuQHAAAkhckPAABICpMfAACQFCY/AAAgKUx+AABAUpj8AACApDD5AQAASWHyAwAAksLkBwAAJIXJDwAASAqTHwAAkBQmPwAAIClMfgAAQFKY/AAAgKQw+QEAAElh8gMAAJLC5AcAACSFyQ8AAEgKk58ayrLskizLFmZZtifLsuVZlo2v7W0C6oIsy953/w5nWfavtb1dQF2SZVn3LMuezLJse5Zl72ZZ9m9ZljWo7e2qK5j81ECWZaeY2f9rZl80s+ZmdpKZrajVjQLqiDzPj/zPf2bW3sz2mtl9tbxZQF3zSzPbbGYdzGyYmU0ws+tqdYvqEGaJNfMDM/thnufTP1peX5sbA9RhF9iHB/BXantDgDqmh5n9W57n+8zs3SzLnjazQbW8TXUG3/xUU5Zl9c1slJm1ybJsWZZl6z76urFJbW8bUAd9wcz+lOd5XtsbAtQx/2Jml2RZ1jTLsk5mdrqZPV3L21RnMPmpvnZm1tDMLjSz8fbh143Dzex7tblRQF2TZVk3+/Cr+j/W9rYAddDL9uE3PbvMbJ2ZzTSzh2t1i+oQJj/Vt/ej//uveZ5vzPN8q5n91MzOqMVtAuqiz5vZtDzPV9b2hgB1SZZl9ezDb3keNLNmZtbazFrZh1lUlMDkp5ryPN9uH86y//vX9HxlD1TfFca3PkBNHG1mXe3DzM/+PM+3mdnvjf8IL43JT8383sxuyLKsbZZlrczs/zGzx2t5m4A6I8uy482sk3GVF1BtH/3isNLMrs2yrEGWZS3tw/zc3NrdsrqDyU/N3GxmM8xsiZktNLNZZvbjWt0ioG75gpk9mOf57treEKCOOt/MTjOzLWa2zMwO2of/IY4SMi6yAAAAKeGbHwAAkBQmPwAAIClMfgAAQFKY/AAAgKRU695ejRo1yps2bVqotWrVKqx3+PDhUGvWrFlhWQWtDxw4EGpZloXaBx98EGr16sV5XJMm8Y4Tu3btKiy3aNEirPPee++FWuvWrUOtUaNGobZ///5Qa9Agvs1HHHFEYXndunVhHbVt6vFbtmwZauo9Uu/lvn37Csvqc1Hbrx5rzZo1W/M8bxP+H/gvzZs3z4855pja3gz5+ZVVv379v9pjqb9VNbVf+vXUcaeqqqrG26aUuUDkk1xEsnr1asZQBc2aNcv9eUcdi/1+ahbPMervNm7cGGpHHnlkqJU9D6lzZMOGDQvLap8/dOhQqKlz044dO0KtefPmoaaOO40bNy4s+/PBx22HP5+b6f1+6dKloeZfu5lZx44dC8vqfVQ1tb3r168vNYaqNflp2rSpTZgwoVC78MILw3o7d+4MtdGjRxeW1Ul87dq1cQPFiXfevHmhpiY6gwbFe7xNmTKlsDx58uSwzt133x1qV111Vah17do11BYvXhxqbdrEz6F///6F5W9+85thndNOOy3Uli9fHmpnnnlmqM2ZMyfU1Hu5ZMmSwrLa0Y8++uhQUweWv/u7v1sdiig45phj7KabbqrtzZCfnzq4qIOyP/D5ifzHUZMTNW7Vfnrw4MFQ869BnQTUf1CpCVHZCYt6Df5vy6zzca666irGUAWtWrWyL3/5y4Vap06dwnrqPx79OaZHjx5hnR/+8IehduKJJ4aaOsaq/fn8888PtXbt2hWW1SRs27ZtoXbPPfeE2gMPPBBq/nxrZvb5z38+1Hr37l1YXrRoUVhn69atoXbccceFmjqnn3766aHWvn37UPve94p3h1KTKz9RMzNbtmxZqH37298uNYb42QsAACSFyQ8AAEgKkx8AAJCUamV+siwLYSX1m/rq1fEnt1WrVhWWVUj3lltuCbWLL7641OMPGDAg1C677LJQO/fccwvLavunT58eak888USonXfeeaGmfmf2IXGzmE+44YYbwjpPP/10qD333HOh1q9fv1BTv4GrrIP/zbRPnz5hnT179oSaCgDi/6aygWSVS1HhRJ9PUFkhpWy+R+2nKhPhX5cae9u3by/1+ErZDJTPyam/+yQ5IxTVq1cv7Ev+QhYzHUj2WZj7778/rNO5c+dQ++IXvxhqKnys8pEbNmwINR9I3r073uVFZdi+/e1vh9ptt90Wao8/Hm81OXv27FDzx/Zhw4aFdY466qhQU2NZ5V1vvPHGUPvTn/4Uai+++GJhWZ0zVVZIzSPK4psfAACQFCY/AAAgKUx+AABAUpj8AACApFQr8NyuXbvQXEoFAG+++eZQu/XWWwvLKqh0/fXXh5pvfmRm9tWvfjXUVAdm1ZzJB8FUsEoFiFUjKRU+O+ecc0JNvVYfqu7Zs2dYp2/fvqH2t3/7t6Uef/78+aGmwsyDBw8uLC9YsCCs06VLl1DD/02fpNuyUjbM7Kkwr3osFaZX4WAVsPfPoR5fNWBUj69q6r1UAXDfkE2FrFXzUBUaRWX169cPgWHVlVl1NJ47d25huXv37mGd8ePHh5oK3E+bNi3UTj75ZLm9nm8IqM5D6pyg9hlVGz58eKipJoH+9atwdtn9VL3f6hz22c9+NtT8OWbmzJlhHdUsWHV4LotvfgAAQFKY/AAAgKQw+QEAAElh8gMAAJJSrcDzvn37wl3AVTdMFfr1oSkVXlqxYkWoqaDx7bffHmpjx44NNX8HerPYaVqFm9Vd41WYS3XDLHvHeR+qe+aZZ8I6b775ZqipQPKVV14ZaiqsuWbNmorbpt6Ptm3bhlrZO3nj/ya1f6huyyqs6ddTYVAVeFbd1Ddt2hRq6o7OKszsg8Uq0OmDsWb6rutKmdeuaurx1faX3Q4UHTp0KHQ/Vu+vOt75LuCnnHJKWEeNjbvuuivU1LFSHRcPHjwYakuXLq34d6pj8tlnnx1q6sIe9X6oTs1+PbUdqtO0OlerC2/UGFJj0p9fVadsNV5atWoVamXxzQ8AAEgKkx8AAJAUJj8AACAp1cr8HD58OPz+N2bMmLCeamzk7x6uskIjR44MtV//+tehpn6nVbkadaf3GTNmFJZ/85vfhHWuueaaUCv726LKK6jfKjt06FBYPumkk8I6K1euDLUf//jHofbLX/4y1Hr06BFqxx13XKj5Ox+r7NHFF18cauouyvjfVbahYdlGhWo9VVPZGk9tm2/sZlY+36Mezx+L1J2xVb5ANSpUGSX1t2o9P5YVlaVYt25dxb9D1KBBg5AR2bx5c1jvnXfeCbVOnToVllV2RWXT1DFc7btr164NNXV3ed/cU40pleV59dVXQ61r166h1q5du1B7++23Q83noq699tqwztNPPx1qKu+k3kufsTLTjU39eVm9HyoH9EnwzQ8AAEgKkx8AAJAUJj8AACApTH4AAEBSqhV4rlevXri7smr+9Nxzz4Xad7/73cKyakA1evToUFMNDe+4445QU80QVejLh60uvfTSsI66A7Nq5KYaH6rQl2q2OHXq1MKyCmuq4Od9990XaqoJYceOHUNNBeN8Ay7VWEsFr1u3bh1q+J/117xje9nHUvt9mQC1agaoqFCxany4fv36UPP7oApUq9Bot27dQm3nzp2hpu4UPmjQoFDzF1uopnb/9m//FmpnnnlmqKGygwcPhs9mypQpYT3V+NafE9Rn5Rv5mpn1798/1FQIumwo148PtR3qPOTvfm6mQ8VqjJ5//vmhNn369MKyako4bty4UFMh7l69eoWaurhg1qxZoeYD6+r8pS42+CQXDfDNDwAASAqTHwAAkBQmPwAAIClMfgAAQFKqFXhu2rSpDR8+vFBTQd0TTzwx1HzIafLkyWGdJ598MtQmTZoUamW7KM+cOTPUfBBMBcP+/Oc/h9rxxx8faipApsKac+bMqfh4Kqy5aNGiUPN3AzaLXUvNdGhPdUH1ITK1jgpUq88Afz0qkOz31aqqqorrfNxjKWW7OfvHU4+vgpNNmzYNNTU2tmzZUmrb/L6rQqmqO626u7Xq0rx3795QU+F/H/5U3dUvv/zyUDvhhBNCDZXt27fP5s+fX6ipDvnvv/9+qPnPT3XuV/tp+/btQ+3dd98NNXWsVBcN+IuC1F0R1D7pLzgy0+cEdSGBel1+DKnzqDonqPdWPWf37t1DrU+fPqHm7/igPpe5c+eG2rZt20KtLL75AQAASWHyAwAAksLkBwAAJIXJDwAASEq1As/79+8PHYxbtmwZ1hs5cmSo+RBjmzZtwjqqI7MKR/mulGZm99xzT6ipQKgPJ/qglZnZr371q1BTnZW/853vhNrnPve5UFOBN9951gf4zHQHWPV+L1++PNRUWE69vz6sqh5/1apVoYb/ff6zUqHisuFjRXVlLtOpWXVe9V2PzXTgUgVEVUf09957L9SeeOKJwvKCBQvCOqrDrApPq4Cl6tarOkb7i0BU93N1TPzxj38caqiscePGISCs9i118YkP8PuO/2Y66K5CxeouBRs2bAg1dR569NFHC8vqbgHqYgPVpf+4444LNXURzIMPPhhqPjCsxpk6Nx177LGhpoLR6tijQtv+wil1IYR67Tt27Ai1svjmBwAAJIXJDwAASAqTHwAAkBQmPwAAICnVCjw3atQohI7uuuuusJ4Kh/kwVLdu3cI6CxcuDLXrrrsu1ObNmxdqKmisuhBv3LixsKy6KKuu1SqY2aVLl1BTnZpfeumlUPNhZtV19te//nWp51RBZhUAVEHMxx9/vLCsOnKqmgr7oRwfSlahYhWS91TQuGw3ZxVEVM95xBFHhJrfXrUdauypx1q7dm2oDRo0KNRUx3JfGz16dFhHhV7VcUb9rRprixcvDjV/PFIXc6iOuGpcobLdu3eHY+p5550X1lP7oO/KfODAgbCOD7Cbma1evTrU1EUlU6ZMKbUdfr8fM2ZMWKdjx46hpjoaq3GlwvrqOZ5//vnCsurwrM4vZS5qMjN75plnQm3fvn2h5vXs2TPU1GelXntZfPMDAACSwuQHAAAkhckPAABICpMfAACQlGoFnvM8D6GjIUOGhPV27doVar6DpQ+emZkNGzYs1Hbu3BlqKlDtg7tmusvsaaedVlhWnSpfeOGFUPMdRc10N+RZs2aF2rhx40LNd5lVnSpV+Ex127ziiitCbfv27aGmOmv6MJ56b0899dRQUwFOVJZlWfjsVThdhY8PHTpUWFadiv06Zno/Un+ruiEfPHgw1Py4UuvMnTs31Hx3eDMd6lQhxvvvvz/UfGfz5s2bh3UGDBgQapMmTQo1FRRXIddnn3021Pz2qhD33//934eaCq+isvr164djmboIxl/cYhbD+uoikHXr1oWavzOAmd5n1IU8qvOxD/SqsaG6NKt9XI01FXhWr8Ef/1VoWb1H6rysjgNlL17wn6e6iEL9Xdnu9Qrf/AAAgKQw+QEAAElh8gMAAJLC5AcAACSlWoHnAwcOhM6+Kpzog4hmMdClOq9OnDix1GOpMJcKFN5zzz2h5sOfKrjbuXPnUNu7d2+oqdBor169Qu2UU04JtenTpxeWVahMhdtUB2kVZFPdR1W3Td+5esSIEWEd1QX73HPPDbWvfe1roYbIh/RU0FgFnn3AUoUCFfX4agw1btw41FTo0ndA/+Mf/xjWadWqVaipYP7dd98dagMHDgy1UaNGhZoPSapAv7Jy5cpS65144omhpsaH/6y2bt0a1lEXIKjXicoaN24cAsMqbKs6CftAsjqeqgtl1AU6y5Ytk9vmqYtI/HOox1eBeHUeUufS++67L9TU+zFjxozCstp+Na7U9qr3sl+/fqFWVfX/tXcmsVYVaxuuczmGxuZGlNYg0ooNjYAi2BskMTao2EQlNohKDBonOtaRGuLEIUSjxhiFaBQxCNhigyIgBhBbVFREEBQJKAiHO7jJn6zve5K9jnf0Zz3PrN7U2aurWlVn77fe6khanB/Q2Efj8v+y8MZvfkRERKRROPkRERGRRuHkR0RERBpFpzw/Bw8eTAGGI0aMSPUWL16ctNtvv71SnjNnDn5+JO4iX0opr776atKmTJmSNAohjF6HOiFupeTfRkvhXZnPOeecpM2fPz9p8XdgOtfLL788aRTASL8Nkw+Ifh+NIY+0Wzv5PmineqlHbOd1AwejV4h+Y6ffxalf0U7TxEsvvZS0efPmVcp79uyp9XfkDaLf9mnX9bPOOitpcdd1arsUYkq7rpMHiqBQNbqGyJ133pm0VatW1TqmVDlw4EDyVX3xxRep3qhRo5I2dOjQSplC/WjMoSBB8txRu7/44ouTFvsMHZN8fzQ2EbTrOu2KHoMD6V1B94jGK9qJnfw9dd5R//73v1MdeidSgGRd/OZHREREGoWTHxEREWkUTn5ERESkUTj5ERERkUbRKcNzKdmcSQFOp556atLuueeeSvm6665LdersZF0KmxgpbJF2jI6GMTKb0q6+RF2z1RlnnJG0aN4iIxsZIsmsSddJ9cjkumXLlkp52bJlqc7kyZOTRuYzaU2XLl3KUUcdVdGOOeYYrBeJIYdkToyfXUo2BpfCO4/TQgUyEd99992VMvVbMsRTmySjJwWoUdBmXGxBIW4PPvhg0q666qqkkaGaFhdQMGFcBEILMsh8u3DhwqRJa/bv35/aL7UtMinHRQJ9+/ZNddasWZM0ei+OHDkyaTfffHPSyBwczdJ9+vRJdajNU/+mcYhMxbGdllLKoEGDKmUKJ6X3B41NdB40Vv/+++9Ji/2KFiJRUOjKlSuTVhe/+REREZFG4eRHREREGoWTHxEREWkUTn5ERESkUXTK8Hzo0KFkGCPjKyWezpgxo1KeNGlSqrNo0aKkkcGQ0lgfe+yxpN17771JozTayPTp05P2888/J23p0qVJI/MnGcGieZWMbGTYo52xP/vss6SRYZZSUGPq56233prq0E7C8s84ePBgStp+4oknUj1KRo3Gw4kTJ6Y6Y8aMSVp7e+7mS5YsSdratWuTRknhMX2VzpXa37nnnps06i+U7krE3abps6644oqkUWL5008/nbQhQ4Ykbd26dUnbuXNnpUwLC+iaPvjgg6RJa/bt21e+/fbbitajR49U77bbbktaNEovX7481bnhhhuSNmvWLDyPCC0Q2L17d9LiGEbGazo3SpWm5P6Y3FwKt7fYv2nh0DfffJM0MmPT7u+9e/dOGr0bInRN9IzJ2E3vMcJvfkRERKRROPkRERGRRuHkR0RERBqFkx8RERFpFJ0yPHfv3j2lWsaU1VJKWb9+fdJWrFhRKT/33HOpDhmmPv7446QNGzYsaZSiTOmx0fBMx9y+fXvSKP2WEjMpCXTKlClJ69q1a6VMhsiffvopaZQE/fXXXyeNIMNzTBemY1L6KCVwSmu6d++eEtDJTE+GwmimPP300/HzI48//njSyMxLaalklo5GfDIizp49O2nPP/980sgMSqZLNx0g9wAAD/FJREFUMnqef/75lTL1IUqspdRZSuElwyk9q9gXKHk7mqJLKWX48OFJk9b06tWr3HHHHRUtvk9L4efw7rvvVsqU0kx9g1LY33jjjaRRGyQjfkw5prZGxnnqj7QghRbL0M4FsX8MHDgw1aHzJ0M1PYOhQ4cmjcarjRs3Vsr9+vVLdWg8nzBhQtJo4RThNz8iIiLSKJz8iIiISKNw8iMiIiKNwsmPiIiINIpOGZ5LyWmulP5IhuH+/ftXyr/++muqc/bZZyeN0ot37dqVNDJexzTPUrIB65dffkl1yEA2derUpJGxe/z48UnbunVr0qLRkwydv/32W63PuvTSS5NGCZl0P6Lhm9JvKVF7zZo1SZPWtLW1pVT0Xr16pXpkMvzoo48qZTLc03OnZOV33nknaWPHjk0aGThjGvmoUaNSHTId0qIEMj9SAuzq1auTFs35dY2ZZGj95JNPav1tNKuXku8HmWPjsyuF02mlNXv37k3Pi9rpCSeckLQTTzyxUiZT9KZNm5JG6cgnnXRS0ujZ0xgZxx1678YU61L4mmjRDo2bZOqPhmc6D9p9gIziNF7R2EH3fMeOHUmL0HuSxv26+M2PiIiINAonPyIiItIonPyIiIhIo3DyIyIiIo2iU4bn9vb2cuyxx1a0AwcOpHr79u1L2pYtWyrl+Dml/NfIFqGUyw0bNiTtggsuqHUeCxYsqJQpNXLQoEFJa2trSxqlIR955JFJ+/7775N29dVXV8pkEidzJSV31k0CJaNZNN+SKY6MpGPGjEmatGbr1q3lkUceqWjXXHNNqkfPr2/fvpXyaaedVuvvYppsKaX861/5/x7qf2TgjG2GTPjUJslAPGDAgFp/S+0yvkPItEz3iN5ZdA3nnXde0mixRVxIMHny5FQn3rNS2MAprenWrVsyupIBlxbV9O7du1KmfkDvu7jQpxRup5SGT8859mUahygVnNoRtUky2E+aNClpMRGekvvJ7L1///5a5xHH/VJKGTduXNKiWZo+i54nmcLr4jc/IiIi0iic/IiIiEijcPIjIiIijcLJj4iIiDSKTic8x/RVMmWRySkmK1M6MhmDTz/99KTRMQlKwD3llFMq5R9//DHVIePnxo0bk0bJnRMnTkzaX3/9lbR4XEpMJvMqGT/JQEYGTjq3mPRL6daU8EnGOGnNEUcckRKXyTz41VdfJS0aLMn4T8ZMokePHkmjvkb1Yr964oknUp2YHFtKKddee23SyExJycfULmM69IQJE1IdSuGlY5511llJowUClAh//fXXV8pkSr3yyiuTRknW0hpKSaf3EfWhuJiFnjEZ4qMxuBROW6b3LvXvPXv2VMo0ptGiEmpbcbeAUnjhDe0iEI3itLDn559//sfHJGjRTjSF05hJ8wN6P9XFb35ERESkUTj5ERERkUbh5EdEREQaRac8P7t37y5vv/12RevXr1+q161bt6TF3/Tod1AKJaRgNDrmJZdckrSHHnooadHzQzs8L1u2LGldu3ZNGnkT6DfIuJNwKXn3bfJIxN+FS+H79uSTTyZtxowZSdu8eXPSooeBdvam37G3bduWNGnN7t27y5tvvlnRZs6cmerFELRSShk/fnylPHDgQPz8CAWBkXeMnin99h79bzE4rhQOCl26dGnSaDduam/U/+g9EJk7d27S4n0shcPpyIcxbdq0pMX3HV0T+RUeffTRpElrunbtmjykcVwqhUPxYoAhhSNSyCF5fur66ygMMY519K6nY9I1kU+H/D30edEXVff9QddOHlXa6Z3OLfpnaRw988wzk0bv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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 9 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many images to display.\\n\",\n    \"numbers_to_display = 9\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the images.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(10, 10))\\n\",\n    \"\\n\",\n    \"# Go through the thetas and print them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extrace thetas data.\\n\",\n    \"    digit_pixels = thetas[plot_index][1:]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the thetas matrix.\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap='Greys')\\n\",\n    \"    plt.title(plot_index)\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Analyze Gradient Descent Progress\\n\",\n    \"\\n\",\n    \"The plot below illustrates how the cost function value changes over each iteration. You should see it decreasing. \\n\",\n    \"\\n\",\n    \"In case if cost function value increases it may mean that gradient descent missed the cost function minimum and with each step it goes further away from it.\\n\",\n    \"\\n\",\n    \"From this plot you may also get an understanding of how many iterations you need to get an optimal value of the cost function.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Draw gradient descent progress for each label.\\n\",\n    \"labels = logistic_regression.unique_labels\\n\",\n    \"for index, label in enumerate(labels):\\n\",\n    \"    plt.plot(range(len(costs[index])), costs[index], label=label_map[labels[index]])\\n\",\n    \"\\n\",\n    \"plt.xlabel('Gradient Steps')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Calculate Model Training Precision\\n\",\n    \"\\n\",\n    \"Calculate how many of training and test examples have been classified correctly. Normally we need test precission to be as high as possible. In case if training precision is high and test precission is low it may mean that our model is overfitted (it works really well with the training data set but it is not good at classifying new unknown data from the test dataset). In this case you may want to play with `regularization_param` parameter to fighth the overfitting.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Training Precision: 93.8000%\\n\",\n      \"Test Precision: 83.8000%\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Make training set predictions.\\n\",\n    \"y_train_predictions = logistic_regression.predict(x_train)\\n\",\n    \"y_test_predictions = logistic_regression.predict(x_test)\\n\",\n    \"\\n\",\n    \"# Check what percentage of them are actually correct.\\n\",\n    \"train_precision = np.sum(y_train_predictions == y_train) / y_train.shape[0] * 100\\n\",\n    \"test_precision = np.sum(y_test_predictions == y_test) / y_test.shape[0] * 100\\n\",\n    \"\\n\",\n    \"print('Training Precision: {:5.4f}%'.format(train_precision))\\n\",\n    \"print('Test Precision: {:5.4f}%'.format(test_precision))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot Test Dataset Predictions\\n\",\n    \"\\n\",\n    \"In order to illustrate how our model classifies unknown examples let's plot first 64 predictions for testing dataset. All green clothes on the plot below have been recognized corrctly but all the red clothes have not been recognized correctly by our classifier. On top of each image you may see the clothes class (type) that has been recognized on the image.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1080x1080 with 64 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many numbers to display.\\n\",\n    \"numbers_to_display = 64\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the numbers.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(15, 15))\\n\",\n    \"\\n\",\n    \"# Go through the first numbers in a test set and plot them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extrace digit data.\\n\",\n    \"    digit_label = y_test[plot_index, 0]\\n\",\n    \"    digit_pixels = x_test[plot_index, :]\\n\",\n    \"    \\n\",\n    \"    # Predicted label.\\n\",\n    \"    predicted_label = y_test_predictions[plot_index][0]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the number matrix.\\n\",\n    \"    color_map = 'Greens' if predicted_label == digit_label else 'Reds'\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap=color_map)\\n\",\n    \"    plt.title(label_map[predicted_label])\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/neural_network/multilayer_perceptron_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Neural Network (Multilayer Perceptron) Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Neural Networks](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/neural_network)\\n\",\n    \"> - ⚙️[Neural Network Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/neural_network/multilayer_perceptron.py)\\n\",\n    \"\\n\",\n    \"**Artificial neural networks (ANN)** or connectionist systems are computing systems vaguely inspired by the biological neural networks that constitute animal brains. The neural network itself isn't an algorithm, but rather a framework for many different machine learning algorithms to work together and process complex data inputs. Such systems \\\"learn\\\" to perform tasks by considering examples, generally without being programmed with any task-specific rules.\\n\",\n    \"\\n\",\n    \"A **multilayer perceptron (MLP)** is a class of feedforward artificial neural network. An MLP consists of, at least, three layers of nodes: an input layer, a hidden layer and an output layer. Except for the input nodes, each node is a neuron that uses a nonlinear activation function. MLP utilizes a supervised learning technique called backpropagation for training. Its multiple layers and non-linear activation distinguish MLP from a linear perceptron. It can distinguish data that is not linearly separable.\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this example we will train handwritten digits (0-9) classifier using simple multilayer perceptron.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of multilayer_perceptron module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of multilayer_perceptron library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [math](https://docs.python.org/3/library/math.html) - math library that we will use to calculate sqaure roots etc.\\n\",\n    \"- [neural_network](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/neural_network/multilayer_perceptron.py) - custom implementation of multilayer perceptron\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import matplotlib.image as mpimg\\n\",\n    \"import math\\n\",\n    \"\\n\",\n    \"# Import custom multilayer perceptron implementation.\\n\",\n    \"from homemade.neural_network import MultilayerPerceptron\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will be using a sample of [MNIST dataset in a CSV format](https://www.kaggle.com/oddrationale/mnist-in-csv/home). Instead of using full dataset with 60000 training examples we will use cut dataset of just 10000 examples that we will also split into training and testing sets.\\n\",\n    \"\\n\",\n    \"Each row in the dataset consists of 785 values: the first value is the label (a number from 0 to 9) and the remaining 784 values (28x28 pixels image) are the pixel values (a number from 0 to 255).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>label</th>\\n\",\n       \"      <th>1x1</th>\\n\",\n       \"      <th>1x2</th>\\n\",\n       \"      <th>1x3</th>\\n\",\n       \"      <th>1x4</th>\\n\",\n       \"      <th>1x5</th>\\n\",\n       \"      <th>1x6</th>\\n\",\n       \"      <th>1x7</th>\\n\",\n       \"      <th>1x8</th>\\n\",\n       \"      <th>1x9</th>\\n\",\n       \"      <th>...</th>\\n\",\n       \"      <th>28x19</th>\\n\",\n       \"      <th>28x20</th>\\n\",\n       \"      <th>28x21</th>\\n\",\n       \"      <th>28x22</th>\\n\",\n       \"      <th>28x23</th>\\n\",\n       \"      <th>28x24</th>\\n\",\n       \"      <th>28x25</th>\\n\",\n       \"      <th>28x26</th>\\n\",\n       \"      <th>28x27</th>\\n\",\n       \"      <th>28x28</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>9</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"<p>10 rows × 785 columns</p>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   label  1x1  1x2  1x3  1x4  1x5  1x6  1x7  1x8  1x9  ...    28x19  28x20  \\\\\\n\",\n       \"0      5    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"1      0    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"2      4    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"3      1    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"4      9    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"5      2    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"6      1    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"7      3    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"8      1    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"9      4    0    0    0    0    0    0    0    0    0  ...        0      0   \\n\",\n       \"\\n\",\n       \"   28x21  28x22  28x23  28x24  28x25  28x26  28x27  28x28  \\n\",\n       \"0      0      0      0      0      0      0      0      0  \\n\",\n       \"1      0      0      0      0      0      0      0      0  \\n\",\n       \"2      0      0      0      0      0      0      0      0  \\n\",\n       \"3      0      0      0      0      0      0      0      0  \\n\",\n       \"4      0      0      0      0      0      0      0      0  \\n\",\n       \"5      0      0      0      0      0      0      0      0  \\n\",\n       \"6      0      0      0      0      0      0      0      0  \\n\",\n       \"7      0      0      0      0      0      0      0      0  \\n\",\n       \"8      0      0      0      0      0      0      0      0  \\n\",\n       \"9      0      0      0      0      0      0      0      0  \\n\",\n       \"\\n\",\n       \"[10 rows x 785 columns]\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/mnist-demo.csv')\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"<class 'pandas.core.frame.DataFrame'>\\n\",\n      \"RangeIndex: 10000 entries, 0 to 9999\\n\",\n      \"Columns: 785 entries, label to 28x28\\n\",\n      \"dtypes: int64(785)\\n\",\n      \"memory usage: 59.9 MB\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data.info()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's peek first 25 rows of the dataset and display them as an images to have an example of digits we will be working with.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAkEAAAJBCAYAAABBBGGtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzs3Xm8leP+//H3pVKaJCUybVNCSJL5cAwNMicyz1RCZsdx0ODLMYVCxkJmJ47wM5wiMpe5UkQhSpuUojRcvz9296drae323muvte619v16Ph49vM+11/A53a29r31d93VdznsvAACApFkj7gIAAADiQCcIAAAkEp0gAACQSHSCAABAItEJAgAAiUQnCAAAJBKdIAAAkEhF3wlyzr3unFvknFuw4s+UuGtCdjjnmjrnnnHOLXTOzXDOHRd3Tcgu59xWKz6/I+KuBdnjnOvjnBvvnFvsnBsedz3ILufcNs65Mc65ec65r5xzR8RdU6aKvhO0Qh/vfcMVf7aOuxhkzR2S/pTUQtLxku5yzm0Xb0nIsjskfRB3Eci6HyQNlPRA3IUgu5xztSX9V9LzkppKOkvSCOdcq1gLy1BN6QShhnHONZDUTdK/vPcLvPfjJD0n6cR4K0O2OOd6SPpV0ui4a0F2ee9Heu+flfRz3LUg61pLailpkPd+mfd+jKS3VKTfm2tKJ+g651ypc+4t59y+cReDrGglaan3fmrQ9okkRoJqAOdcY0n9JV0Ydy0Aqs1JahN3EZmoCZ2gyyRtLmlDSfdIGuWc2yLekpAFDSXN/0vbPEmNYqgF2TdA0v3e++/jLgRAlUyR9JOkS5xzdZxzHSXtI6l+vGVlpug7Qd7797z3v3nvF3vvH1TZsNxBcdeFalsgqfFf2hpL+i2GWpBFzrm2kg6QNCjuWgBUjfd+iaTDJXWVNEvSRZKelFSUv9DUjruAHPAqG5pDcZsqqbZzbivv/Zcr2naUNDHGmpAd+0oqkfStc04qG/Wr5Zzb1nvfLsa6AFSC9/5TlY3+SJKcc29LejC+ijJX1CNBzrkmzrlOzrl6zrnazrnjJf1N0ktx14bq8d4vlDRSUn/nXAPn3J6SDpP0cLyVIQvukbSFpLYr/gyV9IKkTnEWhexZ8f24nqRaKuvg1luxqgg1gHNuhxXXtL5z7mJJG0gaHnNZGSnqTpCkOipbhjlHUqmkcyUd/pebaVG8ektaS2Xzz49J6uW9ZySoyHnvf/fez4r+qGzqc5H3fk7ctSFrrpT0h6TLJZ2wIl8Za0XIphMl/aiy7837SzrQe7843pIy47z3cdcAAACQd8U+EgQAAJAROkEAACCR6AQBAIBEohMEAAASiU4QAABIpCrt29CsWTNfUlKSo1JqpunTp6u0tLTgN2/k2mZmwoQJpd775nHXURGub2aK4fpybTNTDNdW4vpmqrLXt0qdoJKSEo0fPz7zqhKoffv2cZdQKVzbzDjnZsRdQ2VwfTNTDNeXa5uZYri2Etc3U5W9vkyHAQCARKITBAAAEolOEAAASCQ6QQAAIJHoBAEAgESiEwQAABKJThAAAEgkOkEAACCRqrRZIhC37777zvJtt90mSRo0aJC1XXDBBZbPP/98yxtvvHEeqgMAFBNGggAAQCLRCQIAAIlUdNNhy5cvt7x48eIKH//ggw9KkhYuXGhtkyZNsnzrrbdavuKKKyRJQ4YMsba11lrL8s0332y5V69eVSkb1TBz5kzLO+20k+Vff/1VkuTcyvNpw+sZXXtJmjNnTi5LRMwmT54sSTrggAOs7eOPP7bcvHnBn5OZePfee6/lnj17Wo6+50+ZMsXaWrVqlb/CUKMxEgQAABKJThAAAEikgpgOmzdvnuVly5ZZ/uSTTyy/8sorklZOgUjSPffck9H7lZSUWL7oooss33///ZKktdde29r23ntvy/vtt19G74eqmzFjhuV9993X8ty5cy1H02Dh9apbt67ln376yfLXX38tSdp0002trVatWtkruAb58ssvLYd/3x06dIijnEp57733JEn7779/zJWgKkaPHm35wgsvtLzGGqv+fh5OewPZwkgQAABIpNhGgr7//nvLbdu2tRz+5plN4W8W0YiPlHrj8+mnny5JWm+99aytYcOGlrm5MjeWLFkiKXX0p3PnzpbDvYHSCf/9XHvttZb32msvy1tttZWk1NHD6HojVfjb+RdffGG50EaCvPeWo9GrqVOnxlUOMhBer0WLFsVYCVZn+vTplocPH275pZdesvzBBx+s8rxHHnnEcrhX26uvvmr5lFNOkZQ6Q5NPjAQBAIBEohMEAAASKbbpsHXXXddyixYtLGc6HdaxY8e0rz1y5EhJqTfMhjfaIn6XXHKJpNT9mapi7NixlsP9oI444gjL0b+Djz76KKP3SJLbb7/dcvi5KjQLFiywfN1110lKPSqF6evCFe3Vds0116T9ert27SxHi2IaNGiQ87qQ6q233pIkHX300dY2e/Zsy+GU9JFHHmk5uoXhhBNOSPu64fOiPdzuuOOOLFRcdYwEAQCARKITBAAAEim26bBwVVZ4t/nTTz9teffdd7fcrVu3VV4jXP3z3//+1/Kaa65pedasWZJWnjiOwhCu+BoxYoSk1CHSUDitFf47iIZaw1UH22yzjeXLLrvMcvTvqrz3wErhXl2FLDxaIRJefxSWr776yvJBBx0kSfrll1/SPvb666+3HO4DhtwIj6MKV4J17dpVUurU8+GHH2554MCBlqMVuNLK7yGnnXaatT3++ONp33uPPfbIsOrsYCQIAAAkEp0gAACQSAVxbMYuu+xieYcddrAcTmtdeumlkqQbbrjB2gYMGJD2saH1119f0srVI4hPVU6DP/744y2Hp0tHq0rC9h49elhb/fr1Lbds2dJytFnmww8/bG2XX3655XBKLYl++OEHy+F1KmTpplIOPPDAGCpBZdx3332W022AGq4u+vvf/56XmlDmtddes9ypU6dVvn7MMcdYfuCBByyHq65D48aNk1T+FFi4MWJ4u0McGAkCAACJRCcIAAAkUkFMh4XKG15bZ511VmkLN3ULT3vntOHCUVpaavnf//635XBTzGizzM0228zaevXqZTmc6gzPCQtzZf3++++Wb7zxRsvhv6Ukijakk1L/jgpNuBnmZ599tsrXw41SEb/yPm/R9HR4vcLbG5B74fe8Cy64wHL48/Oqq66SlLrStryf0aG+ffuu9utPPPGE5fAWhjgwEgQAABKp4EaCyhP1LN9//31re+aZZyxPnDjRcps2bfJXGFaxdOlSyxdffLHlaD8gKXXvj5dfflmStOWWW1pbdLJ8Ln3zzTc5f49i8fnnn6dtz2S0LZf++c9/Wg5v5o4WVJS3QAL5Ey10kKTDDjtstY8Nj81o3bp1rkrCCkOHDrUcjv6EozvhQpN//OMfkqQ6deqkfb3we/0nn3xi+csvv5SUui9bOPLUvn37KteeK4wEAQCARKITBAAAEqlopsOiYe577rnH2kaPHm05HHYNt/Xec889JaXuRcCN07n17bffWg6nwELvvvuu5VatWq3y9fBYFcRn1113zev7LV682PKE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UlKi8ePHZ15VArVv3z7uEiqFa5sZ59yMuGuoDK5vZorh+nJtM1MM11bi+maqsteX6TAAAJBIdIIAAEAi0QkCAACJRCcIAAAkEp0gAACQSHSCAABAItEJAgAAiUQnCAAAJBKdIAAAkEhV2jEayKUBAwZYvuqqqyx36NDB8iuvvGJ57bXXzk9hAIC86d69u2XvveWnn3466+/FSBAAAEgkOkEAACCRauR02OLFiy0vWbJEkjRu3DhrmzlzpuWTTz7Zcu3aNfKvo+D9+uuvkqTbb7/d2tZYY2X/fMKECZa//fZby9tvv30eqkN1lZaWSpKWLl1qbe+//77lww47zHJ43avi1FNPlSTdfffd1larVq2MXgtVt2zZMsvTpk2z3LdvX8svvvhiXmtCcbn22mstv/DCC5YvuOCCnL4vI0EAACCR6AQBAIBEKur5n2gaRZJuvvlmy2PGjLH83nvvrfY1wqmxcEUS8qd+/fqSpEMPPdTahg8fHlM1yNSsWbMsP/TQQ5bvueceSdLy5cutLZzWDKfAnHMZvXf072WdddaxtoEDB1quW7duRq+LyglvQWjdurXljTbayPKCBQssN2zYMD+FoeBFP7vD6bA111zTcteuXXP6/owEAQCARCqakaA5c+ZIkm677TZrC/Mff/xhOdxXYLPNNpMkrbvuutYW3mgb3kjZq1cvSVLz5s2zVTYqIer1R9cKxenyyy+3PGLEiFhqGDRokOWePXta3mKLLeIoJ/G+//57y/PmzbPMSBAi0aKlP//809oOOeQQy3vssUdO35+RIAAAkEh0ggAAQCIV3HTYokWLLIc3Nt51112SUodUyxPuHzN27FhJqXuUtGjRwvLs2bMtR6/NdFh+Rdf8o48+irkSVEc4hJ1uOqxly5aWL774YsvhDdPp9gl68803LT/zzDPVrhP5E96agOL15ZdfWg4XED3wwAOW11prrUq/XviZfvvttyVJ2267rbWF09q5xkgQAABIJDpBAAAgkQpuOuytt96yfP3111f6eeFQ2htvvGG5cePGkqSff/45C9UhF6KjTSZNmlThY999913Lm2yyiSROky8URxxxhOVffvllla+HU11VWR109tlnW95mm20sh3sNRU477TTLm266aaXfA7kR7vsU7iWE4hKe6v7ZZ59ZHjBggOUtt9yy0q934YUXWv7pp58kSaNGjbK2cOo81xgJAgAAiUQnCAAAJFLBTYdVdFxCq1atLO+3336Wwy23oymw0IwZM6pfHHKiUaNGklJPC442rvyrsD3aAPPII4/MYXWorHC6K91nMFMffvih5ehE+vJEU6SSVLt2wX17S7SPP/7Y8uabbx5jJaiq8PMcTnGGGxxWJDyiKlxtFn3fiGu6lJEgAACQSHSCAABAIhXcePGdd95peffdd7fcuXNnSakbHTZo0KDSrxvdgY7CddZZZ1kubzoMyRGdKRSeEfj777+v9jmXXHJJTmtCeuFU6DrrrGN57ty5lidPnpzXmlB9gwcPliS988471rbTTjtZLikpWe3zw+my6667zvKCBQssd+rUSVLuzwgrDyNBAAAgkQpuJCi6SVaSevfunbXXHTNmTNZeC7lX0VEKqDnCfb0uuugiyxMnTpRUuZsv9957b0n8W4lLvXr1LIfHpzz00ENxlINqmD9/vuVor746depY2yOPPGK5fv36q32tfv36WR46dKjlcAHDiy++mHmxWcB3DAAAkEh0ggAAQCIV3HRYVTz99NOWwyG88OTiaE+DCRMmpH2Nrl27WmbvisIRTmuE+1KgcP3666+Wn3zyScsVDXeH2+VXdK2bNGliOZxq2WuvvSSlDtsDqJwff/zR8gEHHGB59uzZklKntcK9+soTTZnddNNNab9+++23Z1RnLjASBAAAEolOEAAASKSCng6LTheXpB9++EGSdNVVV1nbiBEj0j6vopVFG2+8seVhw4at9rEAyhcOo++7776Wp02blpP3C1ceHXTQQTl5D+RGRUeeIPfCn42vvfaa5Y4dO6Z9TPQzcezYsda2/vrrWz755JMtL1q0yHJ0/FV4a0p4LNLBBx+cUf25wE99AACQSHSCAABAIhXEdNiyZcssf//995bD4fXvvvtOUurmTOG0VpcuXSw/9thjlsPtuSNLly61/MILL1g+7rjjJEm1atWqUv0AUoe+w1yRqmyMGa4IO//88y23bdu20u+HeDz44IOWBw0aFGMlyfXmm29ajo6rkFJXZYafwe22205S6mbDYX7iiScshyfDRz+vw6mzG2+8sVq15wojQQAAIJHoBAEAgESKbTosnAL7+OOPLe+6665pHx+dLr///vtb2xZbbGH5jz/+sPzpp59afu+991Z5rVmzZlk+9dRTLUebJYY11K5dEDOGiVOZKZJXX31VknTkkUfmpSasaoMNNrD8wQcfWH7qqacsRytP1lxzzSq99v333y9Juvrqq6tTIvKsc+fOljk7rDC89dZbklI3Qgw/j02bNrX8v//9z3J0lmffvn2t7ZlnnrEcTo2l26Q42mxRkjbbbDPL4ebF4XvHgZEgAACQSHkf5ohGgG677TZru/TSS9M+NrpRWZJOOukkSamnFf/++++Ww30H3n33Xct169aVlHpTVjjyFO4TtM8++0iSjj76aGsL9yVq2LBh2jo32mijtO3IXGWOzbj33nslSddcc421tWjRIqd1oXxrr7225TPOOKParxedKM9IUHEJf+MP/fnnn5bnzZsnKfXfDHInuhF9yy23tLbw6IoDDzxwtc8fMmSI5XDW5aWXXlrt88LRocMPP9xy3KM/IUaCAABAItEJAgAAiZSX6bDwJtdbb71VknTZZZdZW3TzlbRyu20pdR+DaBpsxowZ1nbmmWdafuONNyxvv/32lh9//HFJUuvWra1t8eLFls8991zLDzzwgKTU/SzC07BD4YnzU6dOTfsYZO7KK6+0fO211672sdG02F+fh+L24Ycfxl0CMlDePmvh1Eh4JBJy75hjjpGU+jO1cePGlX7+/PnzLb/zzjtpHxPuQRQuWoo0adKk0u+XT4wEAQCARKITBAAAEikv02HPP/+85WgaLFxpNWrUKMs777yz5SlTplgeOnSopNST48O71MO718NVZemG/KIVY5K0ww47WI6m6rp162Zt4VRLiG3fcyu8LigM0crOzz77zNqibfUlqU6dOtV+j2jvJ0nq3r17tV8P+de+fXvL4XEm4arcaGVS//7981dYgmX6WYpOhn/kkUes7ddff7W87bbbWt5jjz0yrC5ejAQBAIBEohMEAAASKS/TYb17916lLTzJ/Z///KflaBMtSfr8889X+7p33XWX5dNPP91yRSdRV2TvvfdOm5E/4ZTkNttsY3nSpEmrPPZf//qX5fDfWiFtyFWswpOho00pw5Ojf/nlF8tVmQ4Lp7Lff/99yz169LC8YMGCVZ5Xv359y+HGqShM4ZE233zzjeVwE1oUrkcffVSSNHDgQGsLj8qJjuMoZowEAQCARMrLSFBJSYnl6PDS6IYrqfze5AknnGA52ta7S5cu1hbuO1Dd0R8Urg4dOliePHnyKl/n2ufOKaecYjndYcThAoGq7DsS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WB1Qc9x2222WL7vssoxe49FHH612HRdccIHl9u3bS5LOPPNMa+vWrZvlJk2aVPv9kB3z58+3PGLEiAofX1JSIolbEwpddJTJCy+8YG3htX777bctd+7cOX+FZREjQQAAIJEKeiQovFHu7rvvliQde+yx1hbuR7H55ptb/vrrr1d5rV9++cXyqFGjLDMSlAzRzbzhDcBPPvmk5YEDB6Z9XrS/1E033ZTD6uIX3ahaGeutt57lvffeu9LP22abbSyHCxl++ukny2+++abl999/P+W/krTzzjtbbtu2baXfG7kR3RDdpUsXa4tupv2r9957z3I0yofCVqdOHUmp1yu8GXrmzJl5rynbGAkCAACJRCcIAAAkUkFPh4UOOeQQSdKOO+5obeFNWc2aNbOcbjos1LNnzyxXh0IxadIky48//rjlaO+ouXPnWlu0df/qjB49OovVFa5x48ZZDoe70+3Vs+aaa1qOFixUx+LFiy1vt912ltN9jp966inLTIfF77HHHpMkTZs2zdpOOOEEy0OGDLHcqFGj/BWGrLrkkkssjxw50vLnn38eRzlZxUgQAABIJDpBAAAgkYpmOixy8803Ww63Z4+29K+MJUuWZLUmxCPaz+bDDz+0toqmr9Zee23L5557ruVwldPf//53y7VrF91HJCNNmzZNm/MhXDWUbgqsXr16ls8666y81ITyhSvB3njjDUlSq1atrO2WW26xzBRYzRCu7AwNHTrU8oABAyxnY5o8XxgJAgAAiUQnCAAAJFLRjfXvtttull966SXLBxxwgOVweD2dK6+80vI999yTxeqQC3/88Yfl/v37W77xxhslSc2bN7e2fffd1/J1111nOdpMM1zZFE6NIfeWLVtm+eqrr7Y8aNCg1T5v6tSplqtyOj2yZ/z48ZbDk+GjFZZnnHGGtUUb7KFmCjfDDFd2vv7665YPPvjgfJZULYwEAQCARKITBAAAEqnopsOi1QhS6rRXeL5QRcLT6VH4whWBN9xwg+V+/fpJSj31PJzuQmH44osvJEn333+/tYXXNBROpfznP/+RJK2//vo5rA7lWbRokeWKVl2Gm9U2bty40u8Rbn5Z3ia34ecb8Stvk9lwaqyYMBIEAAASqaBHgubMmWO5Y8eOklK36V66dGlGrxu9FgpDtG9TeJP67bffbvnRRx+13LlzZ8vRsQlJ2cunmMyYMcPy9ttvLyn1xujyrLHGyt/LopugK3O8CbIv/HsPR9qXL19uObpe4T5b5YmO2AhfO7xB/quvvkr7vMsvv1ySNH/+fGtj/yFkCyNBAAAgkegEAQCARCroeYRvvvnGcnRzZaZTYKFwqiUcjkU8opOmw2NQevXqZXnHHXe0zNRXcXj88cctV2YaLBLeXNmuXTtJqceYHHPMMZYPOeQQyxtssEFGdaJ8kyZNsvzf//7XcjhlucUWW0gq/2bomTNnWg5vrh4+fPgqjw2nuKJ9vSTpk08+kSR1797d2p544gnL7PeF6mAkCAAAJBKdIAAAkEgFPbfQoUMHyw8//LAk6aSTTrK28DiFqgiHaBG/Cy+8UFLqapRTTz3VMlNgxSecuohWdP7vf/+zttmzZ1f6tV577bW0uXfv3pavvfZaSVKfPn2srUGDBlWoGFLqdGR5+/ZsvPHGls877zxJ0rrrrmttpaWllv/9739bHjZsmOUWLVpISv13cskll1j+/fffLUcnmP/000+V/H+BXAqPzagJKzcZCQIAAIlEJwgAACRS0cwzHHXUUZKkrbbaytrCzbNC4WqUI444QpL066+/5rA6VMcBBxwgSRozZoy1hcPko0aNsrzddtvlrzBkLFzdE01lz5s3z9rCz+4vv/xiOdxQ78Ybb5SUOvweCjft+8c//iEpdVO/p59+2nJNGLbPh2gVrpS6Ei8UbV4oST179pQkLVy40NrCVZ4jRoywHK7iOuussyRJV155pbWF02jhe0fPO/TQQ9O+FvKrpn2WGAkCAACJRCcIAAAkUtFMh0XCjfPKEw6fDxw4UFLqqpFx48ZZDofoGWLNvunTp1sOV5XUqlXL8nPPPScpdfXIueeea3mvvfayPGXKFMvrrbdeVmtFboWfrzCH/y7Cz/dBBx0kaeVnWEpdYZbOM888YzmahpNSV5WifB9//HGFj4mmwELh9PUrr7yS9nnvvvuu5VatWklKXYEWtf1VtPKP0+QLW3RGYLFhJAgAACRS0Y0EVUZ4Y3Q4AhSpW7eu5Zp2k1ecFixYIEnq2rWrtYUjN+FW9/vss4/ltdZaS5J0yimnWFs4EhTeRBu9h8RIUE33t7/9TZL00ksvWVu3bt0sh0c5pDN58uTcFFaD/fzzz5bDEfVw365QtOfaxIkT0z7v0UcftRyO9EQ3QXfp0qXC55V3gzYKy/rrrx93CRlhJAgAACQSnSAAAJBINXI67JZbblnt18N9LMo7/RhV17p1a0mpezI99NBDlsMpsHTuu+++tO1HH3205Q033LA6JaIIhaeW77rrrpYrmg5r06ZNzmpKgvBWgYpuGwivUfjY8ePHW472cpJWHnkUXqPwseEtC0AuMRIEAAASiU4QAABIpLxPh0XDoL169bK20047zXK0IqSqwlVD11133WofG+0/guzq37+/pJUnS0srjztZnWhIPDptXJK23HJLyzfccINlhskLS/i5C49I2GGHHSzvscce1XqP8HiMDz/8cLWPrV175be0Dh06VOt9k+jwww+3fOmll1oO9/AKp7WiVWHhfmuhQYMGWQ5Xf0WnyEdHo0hSo0aNMi0bBWDp0qVxl5ARRoIAAEAi0QkCAACJlPfpsGjr8wcffNDawq3an3zyScvNmjWz3LRpU0nSd999Z23hkQzhEG26E+Ovv/56ywy75kY0rRlOWb333nuWw1O9Q3PmzJEknXDCCdZ28803W1533XWzWieqJ5wCO/DAAy2H1/r333+v9vtEJ5Pfdddd1lbev6HIzjvvbHmrrbaqdg1JU6dOHcsNGza0HF7z8O+1KpvNpjtFvm3bthnVicLz2muvWQ43NS10jAQBAIBEyvtIUN++fSVJX375pbWF2+JvvfXWlsPfOKL9QUaNGmVt5d2MF/52Ev2mccEFF1hbePMksu/4449Pm2+//fY4ykGWhQdZhqM/ofD4heh4k3CUIbRkyRLL4V5RV1xxhaTyP+fhjbbRKEM4woyqCw+zff311y1Hh5hK0siRI1f7GhdeeKHlcGRup512slzeYakoTA0aNLAcXtMJEybEUU5WMRIEAAASiU4QAABIpLzPC22++eaSUo9QCPcMOuywwyyHU2Zhrkh4I21F+4oAqJqDDz7YcnjTciicVtl7770lSc2bN0/72OjGeEl68803K11HeKPtO++8I4lplmwKb1p+6qmnYqwEcatVq5bl8hYWhbeqcGM0AABAgaMTBAAAEim2ZVKXX3655XC77fDU8dD7778vSRoyZEjar6+zzjqWmQIDcmf33Xe3fM4551i+44470j6+KlNc6YSrOcNVSt27d7dcUlJSrfcAUDnhcTThCsJwL6liwkgQAABIJDpBAAAgkQpi18BwuPvEE09M+5ioffDgwXmpCUB6TZo0sRye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C/fhi0bgpZX7RElSaWmp5WjG5v3337e2TTfd1PKzzz5rmZEgAACAGNAJAgAAiZT36bBrr71WUuo+IqGuXbtaDm+YrMo02KJFiyxHw3HPPfdche/HzZXFJRqKXbhwYdqvs2V/fMIb4ps0abLK17/77jvL4b5c4bB7dBJ1eOzGgQcemNU6UXUPPvig5WhRQjhFEgqPRwhvqI32bYsWvEjSo48+ajncOw7xefvttyWlngp/zTXXWA4/r6+99toqzx83bpzlQt1/j5EgAACQSHSCAABAIuV9Oqxv376SUo83CPf+GD58uOXyttOvSDisetZZZ63y9fAk6kceeaTa74d4zJ07V5L0ySefpP16ly5dVvv88MT5GTNmWA6HcKNh+fL2oULFwuMyquKEE06QlHqKPFOc8bvhhhssv/HGG5JSpz+jU8ElqVevXpajPYUkaaeddpIkjR8/3to6duxo+Z133rG8ww47ZKNsZGCDDTaQJM2bN8/axowZYznd9LW08mfpZpttlusSq42RIAAAkEh0ggAAQCLlfTps1113lSSNHTs2q68bbsTWp0+fVb4enjh++eWXW2YKrPCFG3KFp1V//PHHq31eNJ0iSXvuuaeklasdJOnHH3+0/M0331gON3D74osvJEk333xzVctOtOXLl1t+9dVXJaUOnZfnxBNPtByuQkK8Zs2aZTn8PEYblobCjWmPOeYYy+lWB0WfSyl1FWB4rEq4sR7yK5quDL8/Rqe+S6nXL3T66adLklq0aJHD6rKDkSAAAJBIdIIAAEAixXaKfLaFK77Cu9Qj//nPfywfdNBBeakJ0pIlSyyHq7GiaSZJevPNNyWtPB/ur3777TfL4SnxFQnPrZkzZ84qX7/44osth5tmhiuQ0m30h4qFq4Luu+8+Sek/l39Vmccg/6KVmH8VngcVadmypeUrrrii0u/Rs2fPtK+B+IWrvMINLsvzj3/8I5flZBUjQQAAIJGKeiRo0KBBlsMbMddYY9W+XThShNyIRn1uu+02awv3bKroRuZQOAITjsyE+5GEN2hGLrvsMsu9e/e2vPHGG1f6vVF54SjdE088Yfnee++1HI3u7LPPPtYWfh5vuukmy+H+YSh84SKCSN26dTN6LUZdi8NXX31luaKfu8WgOKsGAACoJjpBAAAgkYpuOizckj3ccj0cigtvrnz66aclSc2aNctD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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 25 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many numbers to display.\\n\",\n    \"numbers_to_display = 25\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the numbers.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(10, 10))\\n\",\n    \"\\n\",\n    \"# Go through the first numbers in a training set and plot them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extract digit data.\\n\",\n    \"    digit = data[plot_index:plot_index + 1].values\\n\",\n    \"    digit_label = digit[0][0]\\n\",\n    \"    digit_pixels = digit[0][1:]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the number matrix.\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap='Greys')\\n\",\n    \"    plt.title(digit_label)\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Split the Data Into Training and Test Sets\\n\",\n    \"\\n\",\n    \"In this step we will split our dataset into _training_ and _testing_ subsets (in proportion 80/20%).\\n\",\n    \"\\n\",\n    \"Training data set will be used for training of our model. Testing dataset will be used for validating of the model. All data from testing dataset will be new to model and we may check how accurate are model predictions.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Split data set on training and test sets with proportions 80/20.\\n\",\n    \"# Function sample() returns a random sample of items.\\n\",\n    \"pd_train_data = data.sample(frac=0.8)\\n\",\n    \"pd_test_data = data.drop(pd_train_data.index)\\n\",\n    \"\\n\",\n    \"# Convert training and testing data from Pandas to NumPy format.\\n\",\n    \"train_data = pd_train_data.values\\n\",\n    \"test_data = pd_test_data.values\\n\",\n    \"\\n\",\n    \"# Extract training/test labels and features.\\n\",\n    \"num_training_examples = 1700\\n\",\n    \"\\n\",\n    \"x_train = train_data[:num_training_examples, 1:]\\n\",\n    \"y_train = train_data[:num_training_examples, [0]]\\n\",\n    \"\\n\",\n    \"x_test = test_data[:, 1:]\\n\",\n    \"y_test = test_data[:, [0]]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train MLP Model\\n\",\n    \"\\n\",\n    \"> ☝🏻 This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"> ⚠️ Be aware though that the training of the neural network with current parameters may take up to 15 minutes depending on the hardware. \\n\",\n    \"\\n\",\n    \"- `layers` - configuration of the multilayer perceptron layers (array of numbers where every number represents the number of nayron in specific layer).\\n\",\n    \"- `max_iterations` - this is the maximum number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `normalize_data` - boolean flag that indicates whether data normalization is needed or not.\\n\",\n    \"- `alpha` - the size of gradient descent steps. You may need to reduce the step size if gradient descent can't find the cost function minimum. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Configure neural network.\\n\",\n    \"layers = [\\n\",\n    \"    784, # Input layer - 28x28 input pixels.\\n\",\n    \"    25,  # First hidden layer - 25 hidden units.\\n\",\n    \"    10,  # Output layer - 10 labels, from 0 to 9.\\n\",\n    \"];\\n\",\n    \"normalize_data = True  # Flag that detects whether we want to do features normalization or not.\\n\",\n    \"epsilon = 0.12  # Defines the range for initial theta values.\\n\",\n    \"max_iterations = 300  # Max number of gradient descent iterations.\\n\",\n    \"regularization_param = 3  # Helps to fight model overfitting.\\n\",\n    \"alpha = 0.1  # Gradient descent step size.\\n\",\n    \"\\n\",\n    \"# Init neural network.\\n\",\n    \"multilayer_perceptron = MultilayerPerceptron(x_train, y_train, layers, epsilon, normalize_data)\\n\",\n    \"\\n\",\n    \"# Train neural network.\\n\",\n    \"(thetas, costs) = multilayer_perceptron.train(regularization_param, max_iterations, alpha)\\n\",\n    \"\\n\",\n    \"plt.plot(range(len(costs)), costs)\\n\",\n    \"plt.xlabel('Gradient Steps')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Illustrate Hidden Layers Perceptrons\\n\",\n    \"\\n\",\n    \"Each perceptron in the hidden layer learned something from the training process. What it learned is represented by input theta parameters for it. Each perceptron in the hidden layer has 28x28 input thetas (one for each input image pizel). Each theta represents how valuable each pixel is for this particuar perceptron. So let's try to plot how valuable each pixel of input image is for each perceptron based on its theta values.  \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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YcIESfW1y9eYD/v//e9/o73CCitE+7e/bfjarbLKKrHt17/+dbTf9773RZsPmmeccYak+o14n332iTZvUFzb/XDE9fznP/95tHke3t+HPvSh2HbeeedF+zWveU20OSY8rl772jAzrj2gbbjhhn2+b6XGeNx7770lSddff31s94PLuuuuG9t47+NDh8H1kdfijW9sGUVzjHjubrLJJrGN85X3ihtvvDHa7iuuJezrG25oVfnwOP3xj38c2x5/vGXyvcYaa0TbL3I8jn/961+xzfd7Sdpnn33mq3979RBUSokFhBfiPe95jyRpnXXWiW133HFHtLfdtuUn6JPjpHnooVYJE95UzznnnGh70vCi9nRD46R/17sappaf+lTLwuCWW26J9gc+0DLQ9E2TDNQf//jHaG+11VbR5qJ65513SpLuv//+tn/vBEyePDkWofXXXz+2/+Y3v5Ek/fOfrZIya621VrQ56fzA9PTTT8c2PiyeddZZ0d5hhx3m2QdvxHyj4eRqt8j94Ac/iG1bb711tDlBf/KTn8xzPGuuuabagQ++vjnyAY5vTZ2CF154IRZAjk3PlZtuuim2cR5zgXnLW94iSVp11VVjG29yfNHgQ6z7jHPQN0+p/tD5iU98Itq33nqrJGm77baLbe5Hqf5wvOWWW0qqPzBxIfVL1Nz78839kUceaXvsnYCBAwfGuDYzI0nnnnuupPpLwnLLLRdtPpS4T/mSwYeHX/2qVSaKN9edd95ZUn0csF84l/jw1I6lIlP04Q9/ONoer3/6059im188+Xf+rtR66OaDM9eSTsHQoUPjZYz3R/fr8su3vFz54Mq563WR6yofiN7xjndE+8EHH4y2++Gqq66KbT4Wqf7SwvvCz372M0n1ezHnGB+q/fL7tre9LbbxODkurr322mj7QeuBBx6IbW9/+9vVW2RMUCKRSCQSia5EPgQlEolEIpHoSvQ2MFqrrbaapLpuaLrRFJhUpystF0ktepQBrqRJSbUxbsTUJqlqUnGUOShxWc5gkOzdd98dbUob//nPvEVvKalQj6QEs/3220uqU5WOCaJs2JcxYMCAkC0Y22XZkteJ9DJjQn75y19KktZbb73Ydt1110WbMRqUMh3Pdfvtt8c2atQM0GSMygc/+MF5jpf7o4TnfmAfcUyQlrcMIynipDjefZ6dhHHjxoX2zjlmidLx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//77R/vhhx+unY8kvf/974/2X//612h//OMfj/b9998vSXrd61reXaeddlq0zz///H+rA7DsssvqBz9oFF3mgucbPse8H+Al6T//afmdLbNMI7uWi9UjjzwSbS54fBj1CxMXM7583HLLLdHmfFtrrbUkSbfddlts23TTTaPN8/jtbxuWJBy7/B5vHhtttFG0vXbxJs9xseKKK/b5/h07dmzMp5133jm2e27y3FZfffVo8/qtscYakqS//KXlBsGHkre85S3R5trtscDx8/TTT0eba8WDDz4Yba8RfFHhjY9jzONjs802i21+YZWkv/3tb9HmOuXz/uAHPxjb/vznP0d7hx126PN9KzXm1b777iup/qLoG/5rXxs+hbXrwoeZ17zmNZKk++5rGd9vtdVW0ea9lt/zfLvhhpYh9XLLLRdtPth4vkrSL37xi3n2ceedd0b73nvvjatO3ekAACAASURBVLbvq1wTfvazlrMB7+2LL754tB977DFJ9YdA9u8JJ5wwX/2bclgikUgkEomuRK+YoFGjRsVb0te+9rXYbtqZLM4xxxwTbb7hm8khdcandz5Z8k3ET3v//GertMk73vGOaPOt5s1vfnO0zfT897//nWebJF155ZXR9puqn5ql+tPtGWecEW0yGaagf/SjH8W2D33oQ5LqT799GTNnzowna9LLfvs3EyfVGR1+1qwBGTEyCWT8Lr/88mj7TW38+PGxjWwe+8jXVWqxDfzshAkTon3WWWdF229QZATN4El16eSOO+6Itt+cSOuvttpq0Tbj19cxe/bseNPmG7cZMve9JC2//PLRJiPnz5CN5XWjRP73v/892mYGPvzhD8e2n//859Hm75Gl9Zwls8jfpbTp75Edfu973xttzkOzRlJrDfnTn1rGwv/4xz/USVh88cW1/fbbS6pfE8ufXJf5pky27p577pEkveENb4htnFdmzKR6n2+44YaS6m/uZH8oT/D3zDiRYSUj+Na3vjXaZoXYR2T2yMrzPrDOOutIqvf3euutp07DtGnT4nrtsccesf3SSy+VJL3nPe+pfdbg2uy5yXvm7bffHm0qO7yP+Xsf+EDLaJrzkczUAw88EO1VVllFUv1+zvs8+4zhBQZlPcqovP+//e1vl1Rnvyj3zi+SCUokEolEItGVyIegRCKRSCQSXYleyWHTpk2LgCZSzQ899JAk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5+UY5bzpeVyq25XzNd8rvA5/hmOQc3Oj95FU7yON5hqp43NzpxZB/fr104YbbihJ2mmnnfhjkqSvfe1r+didd96Z2xtttFFuv/3225Kkv/0tF4zV6NGjc5s3//GP56SU+s9//iNJWmutepHnP/3pT7nNF/Oaa66Z2zboX//619muVypP/t/61rcklQ3Hh/7cc/UM46uuumpu//3vf5ckfexj9ZQM7hx77rmnWgGLLLKITjnlFEnSM888k4+/9VYtgzlfWoccckhu//a3v81t23a11VbLxx5++OHc5gvKz1qS/vCHP0gqT5hLLbVUbnMw8zoWW2wxSfXnL5Un8S984Qu5fe+990qSPvGJemJSLtY++clP5vZ1112X2x78Sy+9dD620kor5fYGG2zwoloAgwYN0n777SepvNEwvvnNb+b2n//859weNWpUbq++ei1XGseSF85SeXxwYt5iiy0kSa+++mo+9vzzz+c2+8u1116b23vssYck6amnnsrHOMZo69/85jeSpB122KHhNbhvStL//lfPi+gX64or1otg33bbbbl90kknNb19F154YY0YMUJS+T79cuAcx8XK66+/ntt+eay99tr5GMcVX3yf/exnc9t25MtniSWWyO3f/e53ub3eeuvltvsCnzvfGXwneN7wu0cqzwnsjxzfiy9eq+Lwj3/8Y7ZzSdLee+/d9LaVyu9dvmP9nGmnz3zmM7n90EMPlc4hSeuss04+xnftTTfdlNsTJ07Mbdvsc5/7XD52zTXX5Db7wj331Ct5rLzyypLKi9lnn302t7/61a/mtt/R//d//5ePcUHkd79UIxWMN998U1J5U7P55pvzNzpk304tgrp27Zo7ERcKnmy4muRC41//+lduewXIhRFv4vbbb8/tZZddNrf9MnrllXpme67qn3iinm9pyJAhuf3kk09KKk/W2267bW6fd955ue2HyhUtBxvvicZ/7LFaxQwumPxC50ukmTFlypT8cuAL34sRdsRf//rXuf3SSy/ltl+uDzzwQD42fPjw3Gaf4UvQ/WbMmDH5GCfofffdN7dfe62emf3666+XJB188MEN74k7S0+2/F0PVKk8UR522GG5ff75tdx5yy23XD7GF0KroFevXnmC5AvGNvnVr36Vj+266665zReTxy4nNi5svvjFL+Y2x/Tvf19L1MsNDF+OHFfrr79+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Yvv36NEjH+vTp09uv/VWPT8XP+O+zX7CaxgzZszooigWUZNj0KBBxcc+VgsUaW+cGnyGY8fW86V5nNKmQ4YMyW3al/BY4fOmbWg/jnk/Z84PtINtw3viMd4Hz8s5ZsCAAZLKfZZ988UXX2x6+9K2Y8aMycfdjzlGPR9KZdsOHMjAnxpoZz53ns+/x/mVbdqW74xGvzdq1KiG12l78HfZfzjveg7jcT4Tnvell15qettKUp8+fQo/r0bPk8+S/Zxju72xadBm/J6fvd9nktS/f//c5ljiOWwf9huOf871vn7atL01AfuQf4/3zPHf0bm5U4ugxRZbTOeff74k6emn69Fob7/9tqTyy5ET0GqrrZbbDz30kKTyw9l8881zm4uL119/Pbf9UB5++OF8bJ111sltTuz33ntvbi++eC2JJQcQF2Wf/nQ9H9S//vUvSdLnP//5fIwGYOe4//77c/vLX/6ypLIx7rjjDknSBRdcoFbAQgstpAMOOECStMgi9X7zuc99TpJ06qmn5mNrrrlmbq+4Yr1unm301FNP5WN33XVXbnOQDB06NLd32203SdLFF1+cj/3nP/+Z7e+S9OKLL+b2Jz/5SUnSZz/72XzMNpSkBx54ILdt86WWqkdHr7rqqrl9zjn1AtPuM1J9AvVvSdLzzz+f21dccUX9gpoYH/vYx3TZZbXMDZxgJk6cONtnn3mmngT91lvrKa+22GILSWWbDh8+PLf5guGLyXbguPrTn/6U27QfF9vPPfdc6Xclaemll87td955J7c9MfNF+t///je3OZfw5f+1r31NkvS3v+XajaVF9z777NP09qVtr766nqjefd1jWCr3bdp2k002kVSeR+++++7cXmaZZXKbdrzmmmskledXvuz+7//+L7f//ve/5/ZGG200232MHDkytzk/uL3CCivkY36PSOU5eptttsltv4Ouu+66fMybeEnaf//9m962Um2RsOeetdqgHCt+B2+44Yb5GPs5F/ZcPBkco+1tUPzsf/vb3+ZjX/3qV3ObC2W+Vz3mP/Wpei5GrgP4XnTfo025JuAcxXeL74n37LWIJF155ZUdsm/IYYFAIBAIBCqJTjFB48ePzyzL1ltvPdvfuZq88sorc/vRRx/N7SWWWEJSnT2RpMceq2e7XmmllRr+tpmjhRdeOB8jK8TdInc7Zh+4wyE9+uCD9XIo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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 25 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Setup the number of layer we want to display.\\n\",\n    \"# We want to display the first hidden layer.\\n\",\n    \"layer_number = 1 \\n\",\n    \"\\n\",\n    \"# How many perceptrons to display.\\n\",\n    \"num_perceptrons = len(thetas[layer_number - 1])\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the images.\\n\",\n    \"num_cells = math.ceil(math.sqrt(num_perceptrons))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(10, 10))\\n\",\n    \"\\n\",\n    \"# Go through the perceptrons plot what they've learnt.\\n\",\n    \"for perceptron_index in range(num_perceptrons):\\n\",\n    \"    # Extract perceptron data.\\n\",\n    \"    perceptron = thetas[layer_number - 1][perceptron_index][1:]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(perceptron.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = perceptron.reshape((image_size, image_size))\\n\",\n    \"        \\n\",\n    \"    # Plot the image matrix.\\n\",\n    \"    plt.subplot(num_cells, num_cells, perceptron_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap='Greys', vmin=np.amin(frame), vmax=np.amax(frame))\\n\",\n    \"    plt.title('Percep. #%s' % perceptron_index)\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Calculate Model Training Precision\\n\",\n    \"\\n\",\n    \"Calculate how many of training and test examples have been classified correctly. Normally we need test precission to be as high as possible. In case if training precision is high and test precission is low it may mean that our model is overfitted (it works really well with the training data set but it is not good at classifying new unknown data from the test dataset). In this case you may want to play with `regularization_param` parameter to fighth the overfitting.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Training Precision: 96.9412%\\n\",\n      \"Test Precision: 89.3000%\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Make training set predictions.\\n\",\n    \"y_train_predictions = multilayer_perceptron.predict(x_train)\\n\",\n    \"y_test_predictions = multilayer_perceptron.predict(x_test)\\n\",\n    \"\\n\",\n    \"# Check what percentage of them are actually correct.\\n\",\n    \"train_precision = np.sum(y_train_predictions == y_train) / y_train.shape[0] * 100\\n\",\n    \"test_precision = np.sum(y_test_predictions == y_test) / y_test.shape[0] * 100\\n\",\n    \"\\n\",\n    \"print('Training Precision: {:5.4f}%'.format(train_precision))\\n\",\n    \"print('Test Precision: {:5.4f}%'.format(test_precision))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot Test Dataset Predictions\\n\",\n    \"\\n\",\n    \"In order to illustrate how our model classifies unknown examples let's plot first 64 predictions for testing dataset. All green digits on the plot below have been recognized correctly but all the red digits have not been recognized correctly by our classifier. On top of each digit image you may see the class (the number) that has been recognized on the image.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1080x1080 with 64 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many numbers to display.\\n\",\n    \"numbers_to_display = 64\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the numbers.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(15, 15))\\n\",\n    \"\\n\",\n    \"# Go through the first numbers in a test set and plot them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extract digit data.\\n\",\n    \"    digit_label = y_test[plot_index, 0]\\n\",\n    \"    digit_pixels = x_test[plot_index, :]\\n\",\n    \"    \\n\",\n    \"    # Predicted label.\\n\",\n    \"    predicted_label = y_test_predictions[plot_index][0]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the number matrix.\\n\",\n    \"    color_map = 'Greens' if predicted_label == digit_label else 'Reds'\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap=color_map)\\n\",\n    \"    plt.title(predicted_label)\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "notebooks/neural_network/multilayer_perceptron_fashion_demo.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Neural Network (Multilayer Perceptron) Demo\\n\",\n    \"\\n\",\n    \"_Source: 🤖[Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) repository_\\n\",\n    \"\\n\",\n    \"> ☝Before moving on with this demo you might want to take a look at:\\n\",\n    \"> - 📗[Math behind the Neural Networks](https://github.com/trekhleb/homemade-machine-learning/tree/master/homemade/neural_network)\\n\",\n    \"> - ⚙️[Neural Network Source Code](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/neural_network/multilayer_perceptron.py)\\n\",\n    \"\\n\",\n    \"**Artificial neural networks (ANN)** or connectionist systems are computing systems vaguely inspired by the biological neural networks that constitute animal brains. The neural network itself isn't an algorithm, but rather a framework for many different machine learning algorithms to work together and process complex data inputs. Such systems \\\"learn\\\" to perform tasks by considering examples, generally without being programmed with any task-specific rules.\\n\",\n    \"\\n\",\n    \"A **multilayer perceptron (MLP)** is a class of feedforward artificial neural network. An MLP consists of, at least, three layers of nodes: an input layer, a hidden layer and an output layer. Except for the input nodes, each node is a neuron that uses a nonlinear activation function. MLP utilizes a supervised learning technique called backpropagation for training. Its multiple layers and non-linear activation distinguish MLP from a linear perceptron. It can distinguish data that is not linearly separable.\\n\",\n    \"\\n\",\n    \"> **Demo Project:** In this example we will train clothes classifier that will recognize clothes types (10 categories) from `28x28` pixel images using simple multilayer perceptron.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# To make debugging of multilayer_perceptron module easier we enable imported modules autoreloading feature.\\n\",\n    \"# By doing this you may change the code of multilayer_perceptron library and all these changes will be available here.\\n\",\n    \"%load_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"\\n\",\n    \"# Add project root folder to module loading paths.\\n\",\n    \"import sys\\n\",\n    \"sys.path.append('../..')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Import Dependencies\\n\",\n    \"\\n\",\n    \"- [pandas](https://pandas.pydata.org/) - library that we will use for loading and displaying the data in a table\\n\",\n    \"- [numpy](http://www.numpy.org/) - library that we will use for linear algebra operations\\n\",\n    \"- [matplotlib](https://matplotlib.org/) - library that we will use for plotting the data\\n\",\n    \"- [math](https://docs.python.org/3/library/math.html) - math library that we will use to calculate sqaure roots etc.\\n\",\n    \"- [neural_network](https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/neural_network/multilayer_perceptron.py) - custom implementation of multilayer perceptron\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Import 3rd party dependencies.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import matplotlib.image as mpimg\\n\",\n    \"import math\\n\",\n    \"\\n\",\n    \"# Import custom multilayer perceptron implementation.\\n\",\n    \"from homemade.neural_network import MultilayerPerceptron\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load the Data\\n\",\n    \"\\n\",\n    \"In this demo we will use a sample of [Fashion MNIST dataset in a CSV format](https://www.kaggle.com/zalando-research/fashionmnist).\\n\",\n    \"\\n\",\n    \"Fashion-MNIST is a dataset of Zalando's article images—consisting of a training set. Each example is a 28x28 grayscale image, associated with a label from 10 classes. Zalando intends Fashion-MNIST to serve as a direct drop-in replacement for the original MNIST dataset for benchmarking machine learning algorithms. It shares the same image size and structure of training and testing splits.\\n\",\n    \"\\n\",\n    \"Instead of using full dataset with 60000 training examples we will use cut dataset of just 5000 examples that we will also split into training and testing sets.\\n\",\n    \"\\n\",\n    \"Each row in the dataset consists of 785 values: the first value is the label (a category from 0 to 9) and the remaining 784 values (28x28 pixels image) are the pixel values (a number from 0 to 255).\\n\",\n    \"\\n\",\n    \"Each training and test example is assigned to one of the following labels:\\n\",\n    \"\\n\",\n    \"- 0 T-shirt/top\\n\",\n    \"- 1 Trouser\\n\",\n    \"- 2 Pullover\\n\",\n    \"- 3 Dress\\n\",\n    \"- 4 Coat\\n\",\n    \"- 5 Sandal\\n\",\n    \"- 6 Shirt\\n\",\n    \"- 7 Sneaker\\n\",\n    \"- 8 Bag\\n\",\n    \"- 9 Ankle boot\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>label</th>\\n\",\n       \"      <th>pixel1</th>\\n\",\n       \"      <th>pixel2</th>\\n\",\n       \"      <th>pixel3</th>\\n\",\n       \"      <th>pixel4</th>\\n\",\n       \"      <th>pixel5</th>\\n\",\n       \"      <th>pixel6</th>\\n\",\n       \"      <th>pixel7</th>\\n\",\n       \"      <th>pixel8</th>\\n\",\n       \"      <th>pixel9</th>\\n\",\n       \"      <th>...</th>\\n\",\n       \"      <th>pixel775</th>\\n\",\n       \"      <th>pixel776</th>\\n\",\n       \"      <th>pixel777</th>\\n\",\n       \"      <th>pixel778</th>\\n\",\n       \"      <th>pixel779</th>\\n\",\n       \"      <th>pixel780</th>\\n\",\n       \"      <th>pixel781</th>\\n\",\n       \"      <th>pixel782</th>\\n\",\n       \"      <th>pixel783</th>\\n\",\n       \"      <th>pixel784</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>9</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>6</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>30</td>\\n\",\n       \"      <td>43</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>8</td>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>14</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>8</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>...</td>\\n\",\n       \"      <td>203</td>\\n\",\n       \"      <td>214</td>\\n\",\n       \"      <td>166</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"<p>10 rows × 785 columns</p>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   label  pixel1  pixel2  pixel3  pixel4  pixel5  pixel6  pixel7  pixel8  \\\\\\n\",\n       \"0      2       0       0       0       0       0       0       0       0   \\n\",\n       \"1      9       0       0       0       0       0       0       0       0   \\n\",\n       \"2      6       0       0       0       0       0       0       0       5   \\n\",\n       \"3      0       0       0       0       1       2       0       0       0   \\n\",\n       \"4      3       0       0       0       0       0       0       0       0   \\n\",\n       \"5      4       0       0       0       5       4       5       5       3   \\n\",\n       \"6      4       0       0       0       0       0       0       0       0   \\n\",\n       \"7      5       0       0       0       0       0       0       0       0   \\n\",\n       \"8      4       0       0       0       0       0       0       3       2   \\n\",\n       \"9      8       0       0       0       0       0       0       0       0   \\n\",\n       \"\\n\",\n       \"   pixel9    ...     pixel775  pixel776  pixel777  pixel778  pixel779  \\\\\\n\",\n       \"0       0    ...            0         0         0         0         0   \\n\",\n       \"1       0    ...            0         0         0         0         0   \\n\",\n       \"2       0    ...            0         0         0        30        43   \\n\",\n       \"3       0    ...            3         0         0         0         0   \\n\",\n       \"4       0    ...            0         0         0         0         0   \\n\",\n       \"5       5    ...            7         8         7         4         3   \\n\",\n       \"6       0    ...           14         0         0         0         0   \\n\",\n       \"7       0    ...            0         0         0         0         0   \\n\",\n       \"8       0    ...            1         0         0         0         0   \\n\",\n       \"9       0    ...          203       214       166         0         0   \\n\",\n       \"\\n\",\n       \"   pixel780  pixel781  pixel782  pixel783  pixel784  \\n\",\n       \"0         0         0         0         0         0  \\n\",\n       \"1         0         0         0         0         0  \\n\",\n       \"2         0         0         0         0         0  \\n\",\n       \"3         1         0         0         0         0  \\n\",\n       \"4         0         0         0         0         0  \\n\",\n       \"5         7         5         0         0         0  \\n\",\n       \"6         0         0         0         0         0  \\n\",\n       \"7         0         0         0         0         0  \\n\",\n       \"8         0         0         0         0         0  \\n\",\n       \"9         0         0         0         0         0  \\n\",\n       \"\\n\",\n       \"[10 rows x 785 columns]\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Load the data.\\n\",\n    \"data = pd.read_csv('../../data/fashion-mnist-demo.csv')\\n\",\n    \"\\n\",\n    \"# Laets create the mapping between numeric category and category name.\\n\",\n    \"label_map = {\\n\",\n    \"    0: 'T-shirt/top',\\n\",\n    \"    1: 'Trouser',\\n\",\n    \"    2: 'Pullover',\\n\",\n    \"    3: 'Dress',\\n\",\n    \"    4: 'Coat',\\n\",\n    \"    5: 'Sandal',\\n\",\n    \"    6: 'Shirt',\\n\",\n    \"    7: 'Sneaker',\\n\",\n    \"    8: 'Bag',\\n\",\n    \"    9: 'Ankle boot',\\n\",\n    \"}\\n\",\n    \"\\n\",\n    \"# Print the data table.\\n\",\n    \"data.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"<class 'pandas.core.frame.DataFrame'>\\n\",\n      \"RangeIndex: 5000 entries, 0 to 4999\\n\",\n      \"Columns: 785 entries, label to pixel784\\n\",\n      \"dtypes: int64(785)\\n\",\n      \"memory usage: 29.9 MB\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data.info()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot the Data\\n\",\n    \"\\n\",\n    \"Let's peek first 25 rows of the dataset and display them as an images to have an example of clothes we will be working with.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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82b2GZI+v3odp3wBiQPuDCRtY68Qgps990fivDkZSV88OYTg2oQzAIwC8BqA1wGMScsQQhiHZBB/P+37MpvURmNzOfgzgFWQmBZPRf3r+N8AbkASnPABgC+RjMcAgNT/504A2/E5U1PZDkhMZZORmFXPReI03WpY1uTeMTGztwHsEkJ4u5HHd0LyNbRSCGF8U96bmH/Sr5FZAFYNIXzQ2vcjhKgfGptFa9PhcymYWWck0QyN6mSibWJmu1qSz2QxJCHyryMJ+RRCtAM0Nou2QIefBKUhtOe29n2IJucnqDjJrgpgv1AGtaYQHQSNzaItUApzmBBCCCFETTq8JkgIIYQQIg9NgoQQQghRSuod/goAXbt2DX379m2mW0n49ttKZvUpU6ZE2c12yy5byYnXuXPnWtsB4IsvKskwZ86snUi4d+/eUf7BD5p3Hjh+/HjMmDGjzeewaYm6rcb331dSkXz88cdR/vrrr6PM9bzQQgsBAFZYoZLjq7nrsyajR4+eEUKoK+txm6At1G97pD3Ur+q2cbSHugVavn55vH3nnXcAAAssUFnQ3cddIPu+Znr0SJJ5L7poJRdjNu9p81Pf+m3QJKhv374YNWpUvfbll1VDfvy0adOifPbZZ0f5m2++AQAccMABsax///61tgPA66+/HuXrr7++1j1cfPHFUV58cU46W5vG/g5n0KBBDT6mNWhI3TYXPHm94IILovzBB5Wod54o9eyZJI0+4YQTYhl3upbAzCZU36v1aQv12x5pD/Wrum0c7aFugca/d5mGvLsmTqzkoNxxxx0BAEsssUQsYyUCKxm+++67KJ9xxhkAgA022CCW8eQpDx7bm+Jjtr7126BJUDXqM2HwSc4///nPWHbNNddEedasWVFeaqmlouwvyCuuuKLqffDsdMklk8SwXIndunWLcp8+lezfRx99NADg0EMPrfo7RNPx5JNJVvXtttsull177bVRPvbYY6PMk93zzz8fALDYYovFsqeeeirKW265Za1rNcUgIURHoCEvHf4gffjhh6N8ww03AMi+GOuDj+dHHXVULOOx/9JLL43y8ssvX+e5mvrl2VHIG9PGjRsX5VtuuSXKzz//fJT79esX5fXWWw8AcPfdd8ey5557Lspsmdl5552jfPvttwOovFMBYPXVK3lRN9lkkygPHToUQNay05KoxQghhBCilGgS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CYG/+KJcneSTTz4JMpvk11yznMVg5ZVXBpAf201Na+jf5uzbjz7KErivuuqqoS01/y5dujTIliF+9dVrSkbcuLSGvgUar3+//rqc9Pvjj8vJ9Tt06NBgx7CxDwALFy6MHqOxxndt+7dOi6BevXrhmWeeqf9ZLQN2Md95p5xE8rPPPgtyly5dgrzWWms13YlVYMstt2zuU6gVzdm3rRnn3NzKWzU/Td2/vLBZvDjL2v/SSy+FtkceeSTIPBnvtttuQe7bty8AoHPnzo12npVoDf1b377lPrJFSaytJu68804AwCabbBLa2rdvH2R+CL7++uvV9r3ddtuhEvayu9xyDWu4aA19CzTe2H3//feDfM899wT5Rz/6UYMdg192Lr744iD/+Mc/DnJjje/a9m+Lrh3Gg+aWW24BAGy00UahrWvXcvmQv//970Hedtttgzxq1KhaHy/mJF6biUCIImDjg8cEP+R4DE6ePDnIjz/+OICyZgcAPv20XK9xvfXKdRJvuqmcs800R/vtt19oO+6444LMD96q51j1PEV16jLfff7550HmOfX5558HACxZsiS0DRhQrpbDL6TvvvtukE2DtPHGG4e2c889N8iDBpVrdjb04kdk3HZbyC+ceylhlnVBdMkllwT5tddeCzIvunhB1Bzo7hJCCCFEIdEiSAghhBCFpMWZw15++eUg/+tf/wry6adn9fZWW2216PfYBHbdddcF+cEHsxI17GuQQupzIfJUMi+deeaZQWbfHjaP/OUvWSko9uGbMWNGkN94440gb7311kFed911AQAvvPBCaOOxzWN+5MhUYXORImZm4j78/e9/H+SxY8tl+9gJ2kycbJqcPXt2kD/44IMgs6+QOU/PnVt227j66quDzP4qv/nNbwAAW2yxRY2/B5BLQ13o3bt3kLnP/vnPfwZ5n332AQB07Bj3L07NDzNnZkmib7755tC27777BnmNNdao72k3ONIECSGEEKKQtAhN0FdffRXkp59+Osj8JrLKKqsAiK/0gfwq9LDDDgvyRRddBCDvUN2zZ89lPGMhBJAPaX/llVeCfPbZZwfZnKc33XTT0Na9e/cgpzRITz75JABg1113DW1/+tOfgnzAAQcs07kXhdo4i5933nkAgGnTpoU2DpseMWJEkDfccMMgn3TSSQDyju4c9s7av0WLFgXZtufQb5bffvvt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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 25 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many images to display.\\n\",\n    \"numbers_to_display = 25\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the images.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(10, 10))\\n\",\n    \"\\n\",\n    \"# Go through the first images in a training set and plot them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extract image data.\\n\",\n    \"    digit = data[plot_index:plot_index + 1].values\\n\",\n    \"    digit_label = digit[0][0]\\n\",\n    \"    digit_pixels = digit[0][1:]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the image matrix.\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap='Greys')\\n\",\n    \"    plt.title(label_map[digit_label])\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Split the Data Into Training and Test Sets\\n\",\n    \"\\n\",\n    \"In this step we will split our dataset into _training_ and _testing_ subsets (in proportion 80/20%).\\n\",\n    \"\\n\",\n    \"Training data set will be used for training of our model. Testing dataset will be used for validating of the model. All data from testing dataset will be new to model and we may check how accurate are model predictions.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Split data set on training and test sets with proportions 80/20.\\n\",\n    \"# Function sample() returns a random sample of items.\\n\",\n    \"pd_train_data = data.sample(frac=0.8)\\n\",\n    \"pd_test_data = data.drop(pd_train_data.index)\\n\",\n    \"\\n\",\n    \"# Convert training and testing data from Pandas to NumPy format.\\n\",\n    \"train_data = pd_train_data.values\\n\",\n    \"test_data = pd_test_data.values\\n\",\n    \"\\n\",\n    \"# Extract training/test labels and features.\\n\",\n    \"num_training_examples = 1000\\n\",\n    \"\\n\",\n    \"x_train = train_data[:num_training_examples, 1:]\\n\",\n    \"y_train = train_data[:num_training_examples, [0]]\\n\",\n    \"\\n\",\n    \"x_test = test_data[:, 1:]\\n\",\n    \"y_test = test_data[:, [0]]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Init and Train MLP Model\\n\",\n    \"\\n\",\n    \"> ☝🏻 This is the place where you might want to play with model configuration.\\n\",\n    \"\\n\",\n    \"> ⚠️ Be aware though that the training of the neural network with current parameters may take up to 15 minutes depending on the hardware. \\n\",\n    \"\\n\",\n    \"- `layers` - configuration of the multilayer perceptron layers (array of numbers where every number represents the number of nayron in specific layer).\\n\",\n    \"- `max_iterations` - this is the maximum number of iterations that gradient descent algorithm will use to find the minimum of a cost function. Low numbers may prevent gradient descent from reaching the minimum. High numbers will make the algorithm work longer without improving its accuracy.\\n\",\n    \"- `regularization_param` - parameter that will fight overfitting. The higher the parameter, the simplier is the model will be.\\n\",\n    \"- `normalize_data` - boolean flag that indicates whether data normalization is needed or not.\\n\",\n    \"- `alpha` - the size of gradient descent steps. You may need to reduce the step size if gradient descent can't find the cost function minimum. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Configure neural network.\\n\",\n    \"layers = [\\n\",\n    \"    784, # Input layer - 28x28 input pixels.\\n\",\n    \"    25,  # First hidden layer - 25 hidden units.\\n\",\n    \"    10,  # Output layer - 10 labels, from 0 to 9.\\n\",\n    \"];\\n\",\n    \"normalize_data = True  # Flag that detects whether we want to do features normalization or not.\\n\",\n    \"epsilon = 0.12  # Defines the range for initial theta values.\\n\",\n    \"max_iterations = 350  # Max number of gradient descent iterations.\\n\",\n    \"regularization_param = 2  # Helps to fight model overfitting.\\n\",\n    \"alpha = 0.1  # Gradient descent step size.\\n\",\n    \"\\n\",\n    \"# Init neural network.\\n\",\n    \"multilayer_perceptron = MultilayerPerceptron(x_train, y_train, layers, epsilon, normalize_data)\\n\",\n    \"\\n\",\n    \"# Train neural network.\\n\",\n    \"(thetas, costs) = multilayer_perceptron.train(regularization_param, max_iterations, alpha)\\n\",\n    \"\\n\",\n    \"plt.plot(range(len(costs)), costs)\\n\",\n    \"plt.xlabel('Gradient Steps')\\n\",\n    \"plt.ylabel('Cost')\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Illustrate Hidden Layers Perceptrons\\n\",\n    \"\\n\",\n    \"Each perceptron in the hidden layer learned something from the training process. What it learned is represented by input theta parameters for it. Each perceptron in the hidden layer has 28x28 input thetas (one for each input image pizel). Each theta represents how valuable each pixel is for this particuar perceptron. So let's try to plot how valuable each pixel of input image is for each perceptron based on its theta values.  \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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t13RY8a3qqoxVVW96H9qBE6PrarqHa/f0hFk1PIopRwtaZmqqr40r48lMfeR49uzkePbc5Fj27PR6uObZTMSiUQikUi0JfImKJFIJBKJRFuix8hhiUQikUgkEl1BMkGJRCKRSCTaEnkTlEgkEolEoi3RJbPEAQMGVPPPP78kaciQpnHy2LFjJUn+G/sk6T3veU+0X331VUnStGlN/6ZFF20aS77yyiud9k+dOnWm4xk/fny0+/fvH+3OjmPEiBHR99RTT0V74YUXjvaYMWMkSX379u307zyGiRObmXn//W/Di6tfv37RN3RoI3vw5Zdf1oQJE7q9z8ygQYOqYcOGzdT/2muvSaqPt/uk+ngtskgj+5ISKy12OF7LLNOsbejz9/zzz0cfx/6ll16K9vDhw6Pt75k+fXqn38fxmDy5kSk7ZUqz7t6gQYM6/R2LL9706erTp89Mn0s88cQTo6uqWqjTP3YjDBw4sPIYcnx69+4tqX4O33yzWTuWa8Hn3uMl1dcE1+B8880X7cGDB0uSJkxoGqt7H5Dq48TXeA74GKXmOErSqFHNQtLeYzg3+T7ObY6l9wfOi4UWag7nU0891e3Hd7755qu833AMPHb8vWwPGDAg2l57PP/+TKm+p3LMBw4cKEl6/fXXo2/SpEk8tmiPG9c0HPZc7NWr+RzO9cg56tfwmsHv4Gt5zJ5j/Fx+35NPPtntx1ZqXHe9hrhWFlxwQUn19ci/87y8/PLLkprjJdXPRWfXLr6P+4O/l3+X6mPtuffGG290ejwck9GjR0uqr21fS6T63vze97432p5znBdc548//vgcjW+XboLmn39+bb755pKkDTfcMPqvuuoqSdJ6660Xfddcc020v/CFL0T79ttvl9S84ZCk4447LtpXXHFFp/3e8LhB33LLLdH+wAeaZpZrr712tK+//npJ0p577hl9O+20U7QPOuigaF966aWSpMUWW6zTv/NifM8990T7nHPOmel9G220kSTpiCOOUCtg2LBh+uY3vympvlE+8kijkO8GG2wQfX/6U9PL6qc//Wm0DzjgAEn1yczFddttt0Xb4yJJ5557riTpkEMOib6vf/3r0T799NOjzbHzZswLHxf2Eks07X3+8Y9/SJKefvrp6PvEJz4R7csua5oHn3nmmdH2BZEXVH7Hqquu+h+1AIYMGaIddthBUn18fDHiZsUbFD4E7LLLLpKks88+O/pefPHFaC+55JLRXm211aK95pprSpLuvvvu6PvVr37V6ft+85vfRNtrZ4EFFoi+J55oet+deOKJ0f7c5z4nSXr44YejjxvilltuGW3e2Hnv4g341772tWjvsMMO3X58hw4dqq985SuS6ufSY8ffy/aHPvShaB955JGSpLvuuiv6vIdJ9b2dF90VV1xRkvTXv/41+u6///5or7zyytH+xS9+MdPn+eIuSR//+MejzZtS34Bx/33ggQeizbm76aabRvuXv/ylJGnVVVeNPl6oN9hgg24/tlLjHH3+85+XVL8J+PKXG8ULfP2RpPe9L4yba+flhz9seIN6vKT6jQjft8kmm0T7vPPOk1S/6dx5552jze/mWPta+K9/Natw8Hi8J0jS+eefL0n6+9//Hn377bdftH/yk59E++STT4629wLeS2yxxRbR/shHPjJH49ulm6CBAwfGD/XFUWpO0r/9rWmc/H//93+19xme3Nxcuel++MMfjjYZpD322EOStP3220cffzzvMrkRbrzxxpLqGzcHjhdFXzR5PLzIv//974827z5983T44YdHnweUF5zujP79+wc7wwuRn5R/97tmmZiDDz442h/96Eej7fNw+eWXR58nuFS/qeXE/vSnPy1J+uMf/xh9vHlcbrnlos1j++IXvyhJWmedpgkqzzdvVjxvfvCDpsHoZz7zmWivu+660eZTrW/sTj311Ojbf//91WqYOnWqnn22Ud6Hm5Wfzslscl35JkGSLrroIknSgQceGH3HHntstM2aSfWLzW9/+1tJ0qOPPhp9H/nIR6LNfYMXMTO2vFklOJZ+6CKLt/TSzQoA/I5777032r454l5z2mmndfp93RUDBgyIh0A+APoCxnPCseXNjC98vDjxwZKsGx86rr76akl1lscPU9KsWSFfgDlnyNaz3+uRbBTnyY9//ONoc1/2fu35J9WvL62CwYMH65Of/KSkOvPia9duu+0WfTxH3MfWWGMNSfU1QUbn4osvjvYLL7ww02vIwH/sY02jaLKmPA5fA3hTzuPh5/mhg+rAlVde2el3cD8yW/T4449HH8mZOUXGBCUSiUQikWhL5E1QIpFIJBKJtkSX5LD55psv6ERSyqa2qeNao5fq8pIp0c022yz6SI05Zkiqx56YxqNMwhic++5r1mozdSg1JRHS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aWxXafv3byUt2tb+XUffOZegSuN7tKTBkh5ONd+VCSml8zr6zrkAVRrb70h6PKU0UbX1+1vVYk/mZlRifItaNufr/k/SWEkz2v7dbibZByE1c+hKSmmEpCWKotjs0z6WwJxFjO3cjRjfuRcxtnM35rbxjbIZgUAgEAgEKom4CQoEAoFAIFBJNLUcFggEAoFAIDC7CCYoEAgEAoFAJRE3QYFAIBAIBCqJLpkl9uzZs+jbt68kad55583948ePlyRRWuvfv39ujx07NreHDBkiSZo4cWLuq1vuSFOnTs1tfsf06bXMt+eeey739erVK7f5GT4eft+CC9YzBd9///3cHjeuborZu3fvWX6Hv1eSJkyYkNvdu9dP3ZQpUyRJ3brV7ynnm28+SdLrr7+ud955p35wDYq+ffsWgwYNklT+zQsssIAk6d133819PXv2zG2eq5aWFknl8zBp0qTc5th6HvH7Wltbcx/nB4+H49yvX79Zvu9///vfLMfO4+fx8HcMGFA3/X7rrbdm+X38Ds7Lp5566s2iKD6jBke/fv2KwYMHSyqfA59DjgfXT58+fXJ78uSamfIbb9QNXbnOPeel+pqQpLfffltS+bwuvPDCuc0x5bj7u997773cxznyzjvv5Lbnntc7j3fm30f4uznHONZPP/10w49vnz59ioEDB0oqH/tnPlM77Ndeq3vY8e8cW6+FadPqPnvc47j3zTNPPVPaeynPH9cV91eOsz+D38HP4Dj7mPh37iX8HZx3bvOzeDxjxoxp+LGVamvXe47XqyS98krN25N7F9fPQgvVDZy9/82YMSP38frJMXvzzTdze8yYWoF2rleC+z/HxOuRew3Hmu/zOHH/4GdxTLkX+Jhef71eZJ7X+WeeeaZT49ulm6C+ffvqBz/4gSRp4403zv333HPPLAe++uqr5/avfvWr3B4+fLgk6W9/q/sj+YRJ5R/E7/BGut566+W+L33pS7nNQfTxSNKWW24pSTrkkENy37///e/cvvnmm3N7qaWWklTePHnxv+++umu4LyhSfZPhYvzlL38pSdpxxx3VDBg0aJB22203SeWNYq+99pJUPqeLL754bnPT9GLkBefvf8+FgUsXz5VWWim3fZPMRfvwww/nNseAm/h3v/tdSeWN4ZRTTsntvffeO7fvvPNOSdLTTz/d7u/4/ve/n9uXX375LL+P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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x720 with 25 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Setup the number of layer we want to display.\\n\",\n    \"# We want to display the first hidden layer.\\n\",\n    \"layer_number = 1 \\n\",\n    \"\\n\",\n    \"# How many perceptrons to display.\\n\",\n    \"num_perceptrons = len(thetas[layer_number - 1])\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the images.\\n\",\n    \"num_cells = math.ceil(math.sqrt(num_perceptrons))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(10, 10))\\n\",\n    \"\\n\",\n    \"# Go through the perceptrons plot what they've learnt.\\n\",\n    \"for perceptron_index in range(num_perceptrons):\\n\",\n    \"    # Extract perceptron data.\\n\",\n    \"    perceptron = thetas[layer_number - 1][perceptron_index][1:]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(perceptron.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = perceptron.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the image matrix.\\n\",\n    \"    plt.subplot(num_cells, num_cells, perceptron_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap='Greys', vmin=np.amin(frame), vmax=np.amax(frame))\\n\",\n    \"    plt.title('Percep. #%s' % perceptron_index)\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Calculate Model Training Precision\\n\",\n    \"\\n\",\n    \"Calculate how many of training and test examples have been classified correctly. Normally we need test precission to be as high as possible. In case if training precision is high and test precission is low it may mean that our model is overfitted (it works really well with the training data set but it is not good at classifying new unknown data from the test dataset). In this case you may want to play with `regularization_param` parameter to fighth the overfitting.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Training Precision: 93.8000%\\n\",\n      \"Test Precision: 80.6000%\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Make training set predictions.\\n\",\n    \"y_train_predictions = multilayer_perceptron.predict(x_train)\\n\",\n    \"y_test_predictions = multilayer_perceptron.predict(x_test)\\n\",\n    \"\\n\",\n    \"# Check what percentage of them are actually correct.\\n\",\n    \"train_precision = np.sum(y_train_predictions == y_train) / y_train.shape[0] * 100\\n\",\n    \"test_precision = np.sum(y_test_predictions == y_test) / y_test.shape[0] * 100\\n\",\n    \"\\n\",\n    \"print('Training Precision: {:5.4f}%'.format(train_precision))\\n\",\n    \"print('Test Precision: {:5.4f}%'.format(test_precision))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Plot Test Dataset Predictions\\n\",\n    \"\\n\",\n    \"In order to illustrate how our model classifies unknown examples let's plot first 64 predictions for testing dataset. All green clothes on the plot below have been recognized correctly but all the red clothes have not been recognized correctly by our classifier. On top of each image you may see the class that has been recognized on the image.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1080x1080 with 64 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# How many images to display.\\n\",\n    \"numbers_to_display = 64\\n\",\n    \"\\n\",\n    \"# Calculate the number of cells that will hold all the images.\\n\",\n    \"num_cells = math.ceil(math.sqrt(numbers_to_display))\\n\",\n    \"\\n\",\n    \"# Make the plot a little bit bigger than default one.\\n\",\n    \"plt.figure(figsize=(15, 15))\\n\",\n    \"\\n\",\n    \"# Go through the first images in a test set and plot them.\\n\",\n    \"for plot_index in range(numbers_to_display):\\n\",\n    \"    # Extract digit data.\\n\",\n    \"    digit_label = y_test[plot_index, 0]\\n\",\n    \"    digit_pixels = x_test[plot_index, :]\\n\",\n    \"    \\n\",\n    \"    # Predicted label.\\n\",\n    \"    predicted_label = y_test_predictions[plot_index][0]\\n\",\n    \"\\n\",\n    \"    # Calculate image size (remember that each picture has square proportions).\\n\",\n    \"    image_size = int(math.sqrt(digit_pixels.shape[0]))\\n\",\n    \"    \\n\",\n    \"    # Convert image vector into the matrix of pixels.\\n\",\n    \"    frame = digit_pixels.reshape((image_size, image_size))\\n\",\n    \"    \\n\",\n    \"    # Plot the image matrix.\\n\",\n    \"    color_map = 'Greens' if predicted_label == digit_label else 'Reds'\\n\",\n    \"    plt.subplot(num_cells, num_cells, plot_index + 1)\\n\",\n    \"    plt.imshow(frame, cmap=color_map)\\n\",\n    \"    plt.title(label_map[predicted_label])\\n\",\n    \"    plt.tick_params(axis='both', which='both', bottom=False, left=False, labelbottom=False, labelleft=False)\\n\",\n    \"\\n\",\n    \"# Plot all subplots.\\n\",\n    \"plt.subplots_adjust(hspace=0.5, wspace=0.5)\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.0\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "pylintrc",
    "content": "[MASTER]\n\n# A comma-separated list of package or module names from where C extensions may\n# be loaded. Extensions are loading into the active Python interpreter and may\n# run arbitrary code.\nextension-pkg-whitelist=\n\n# Add files or directories to the blacklist. They should be base names, not\n# paths.\nignore=CVS\n\n# Add files or directories matching the regex patterns to the blacklist. The\n# regex matches against base names, not paths.\nignore-patterns=\n\n# Python code to execute, usually for sys.path manipulation such as\n# pygtk.require().\n#init-hook=\n\n# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the\n# number of processors available to use.\njobs=1\n\n# Control the amount of potential inferred values when inferring a single\n# object. This can help the performance when dealing with large functions or\n# complex, nested conditions.\nlimit-inference-results=100\n\n# List of plugins (as comma separated values of python modules names) to load,\n# usually to register additional checkers.\nload-plugins=\n\n# Pickle collected data for later comparisons.\npersistent=yes\n\n# Specify a configuration file.\n#rcfile=\n\n# When enabled, pylint would attempt to guess common misconfiguration and emit\n# user-friendly hints instead of false-positive error messages.\nsuggestion-mode=yes\n\n# Allow loading of arbitrary C extensions. Extensions are imported into the\n# active Python interpreter and may run arbitrary code.\nunsafe-load-any-extension=no\n\n\n[MESSAGES CONTROL]\n\n# Only show warnings with the listed confidence levels. Leave empty to show\n# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED.\nconfidence=\n\n# Disable the message, report, category or checker with the given id(s). You\n# can either give multiple identifiers separated by comma (,) or put this\n# option multiple times (only on the command line, not in the configuration\n# file where it should appear only once). You can also use \"--disable=all\" to\n# disable everything first and then reenable specific checks. For example, if\n# you want to run only the similarities checker, you can use \"--disable=all\n# --enable=similarities\". If you want to run only the classes checker, but have\n# no Warning level messages displayed, use \"--disable=all --enable=classes\n# --disable=W\".\ndisable=print-statement,\n        parameter-unpacking,\n        unpacking-in-except,\n        old-raise-syntax,\n        backtick,\n        long-suffix,\n        old-ne-operator,\n        old-octal-literal,\n        import-star-module-level,\n        non-ascii-bytes-literal,\n        raw-checker-failed,\n        bad-inline-option,\n        locally-disabled,\n        locally-enabled,\n        file-ignored,\n        suppressed-message,\n        useless-suppression,\n        deprecated-pragma,\n        use-symbolic-message-instead,\n        apply-builtin,\n        basestring-builtin,\n        buffer-builtin,\n        cmp-builtin,\n        coerce-builtin,\n        execfile-builtin,\n        file-builtin,\n        long-builtin,\n        raw_input-builtin,\n        reduce-builtin,\n        standarderror-builtin,\n        unicode-builtin,\n        xrange-builtin,\n        coerce-method,\n        delslice-method,\n        getslice-method,\n        setslice-method,\n        no-absolute-import,\n        old-division,\n        dict-iter-method,\n        dict-view-method,\n        next-method-called,\n        metaclass-assignment,\n        indexing-exception,\n        raising-string,\n        reload-builtin,\n        oct-method,\n        hex-method,\n        nonzero-method,\n        cmp-method,\n        input-builtin,\n        round-builtin,\n        intern-builtin,\n        unichr-builtin,\n        map-builtin-not-iterating,\n        zip-builtin-not-iterating,\n        range-builtin-not-iterating,\n        filter-builtin-not-iterating,\n        using-cmp-argument,\n        eq-without-hash,\n        div-method,\n        idiv-method,\n        rdiv-method,\n        exception-message-attribute,\n        invalid-str-codec,\n        sys-max-int,\n        bad-python3-import,\n        deprecated-string-function,\n        deprecated-str-translate-call,\n        deprecated-itertools-function,\n        deprecated-types-field,\n        next-method-defined,\n        dict-items-not-iterating,\n        dict-keys-not-iterating,\n        dict-values-not-iterating,\n        deprecated-operator-function,\n        deprecated-urllib-function,\n        xreadlines-attribute,\n        deprecated-sys-function,\n        exception-escape,\n        comprehension-escape\n\n# Enable the message, report, category or checker with the given id(s). You can\n# either give multiple identifier separated by comma (,) or put this option\n# multiple time (only on the command line, not in the configuration file where\n# it should appear only once). See also the \"--disable\" option for examples.\nenable=c-extension-no-member\n\n\n[REPORTS]\n\n# Python expression which should return a note less than 10 (10 is the highest\n# note). You have access to the variables errors warning, statement which\n# respectively contain the number of errors / warnings messages and the total\n# number of statements analyzed. This is used by the global evaluation report\n# (RP0004).\nevaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)\n\n# Template used to display messages. This is a python new-style format string\n# used to format the message information. See doc for all details.\n#msg-template=\n\n# Set the output format. Available formats are text, parseable, colorized, json\n# and msvs (visual studio). You can also give a reporter class, e.g.\n# mypackage.mymodule.MyReporterClass.\noutput-format=text\n\n# Tells whether to display a full report or only the messages.\nreports=no\n\n# Activate the evaluation score.\nscore=yes\n\n\n[REFACTORING]\n\n# Maximum number of nested blocks for function / method body\nmax-nested-blocks=5\n\n# Complete name of functions that never returns. When checking for\n# inconsistent-return-statements if a never returning function is called then\n# it will be considered as an explicit return statement and no message will be\n# printed.\nnever-returning-functions=sys.exit\n\n\n[LOGGING]\n\n# Logging modules to check that the string format arguments are in logging\n# function parameter format.\nlogging-modules=logging\n\n\n[SPELLING]\n\n# Limits count of emitted suggestions for spelling mistakes.\nmax-spelling-suggestions=4\n\n# Spelling dictionary name. Available dictionaries: none. To make it working\n# install python-enchant package..\nspelling-dict=\n\n# List of comma separated words that should not be checked.\nspelling-ignore-words=\n\n# A path to a file that contains private dictionary; one word per line.\nspelling-private-dict-file=\n\n# Tells whether to store unknown words to indicated private dictionary in\n# --spelling-private-dict-file option instead of raising a message.\nspelling-store-unknown-words=no\n\n\n[MISCELLANEOUS]\n\n# List of note tags to take in consideration, separated by a comma.\nnotes=FIXME,\n      XXX,\n      TODO\n\n\n[TYPECHECK]\n\n# List of decorators that produce context managers, such as\n# contextlib.contextmanager. Add to this list to register other decorators that\n# produce valid context managers.\ncontextmanager-decorators=contextlib.contextmanager\n\n# List of members which are set dynamically and missed by pylint inference\n# system, and so shouldn't trigger E1101 when accessed. Python regular\n# expressions are accepted.\ngenerated-members=\n\n# Tells whether missing members accessed in mixin class should be ignored. A\n# mixin class is detected if its name ends with \"mixin\" (case insensitive).\nignore-mixin-members=yes\n\n# Tells whether to warn about missing members when the owner of the attribute\n# is inferred to be None.\nignore-none=yes\n\n# This flag controls whether pylint should warn about no-member and similar\n# checks whenever an opaque object is returned when inferring. The inference\n# can return multiple potential results while evaluating a Python object, but\n# some branches might not be evaluated, which results in partial inference. In\n# that case, it might be useful to still emit no-member and other checks for\n# the rest of the inferred objects.\nignore-on-opaque-inference=yes\n\n# List of class names for which member attributes should not be checked (useful\n# for classes with dynamically set attributes). This supports the use of\n# qualified names.\nignored-classes=optparse.Values,thread._local,_thread._local\n\n# List of module names for which member attributes should not be checked\n# (useful for modules/projects where namespaces are manipulated during runtime\n# and thus existing member attributes cannot be deduced by static analysis. It\n# supports qualified module names, as well as Unix pattern matching.\nignored-modules=\n\n# Show a hint with possible names when a member name was not found. The aspect\n# of finding the hint is based on edit distance.\nmissing-member-hint=yes\n\n# The minimum edit distance a name should have in order to be considered a\n# similar match for a missing member name.\nmissing-member-hint-distance=1\n\n# The total number of similar names that should be taken in consideration when\n# showing a hint for a missing member.\nmissing-member-max-choices=1\n\n\n[VARIABLES]\n\n# List of additional names supposed to be defined in builtins. Remember that\n# you should avoid to define new builtins when possible.\nadditional-builtins=\n\n# Tells whether unused global variables should be treated as a violation.\nallow-global-unused-variables=yes\n\n# List of strings which can identify a callback function by name. A callback\n# name must start or end with one of those strings.\ncallbacks=cb_,\n          _cb\n\n# A regular expression matching the name of dummy variables (i.e. expected to\n# not be used).\ndummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_\n\n# Argument names that match this expression will be ignored. Default to name\n# with leading underscore.\nignored-argument-names=_.*|^ignored_|^unused_\n\n# Tells whether we should check for unused import in __init__ files.\ninit-import=no\n\n# List of qualified module names which can have objects that can redefine\n# builtins.\nredefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io\n\n\n[FORMAT]\n\n# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.\nexpected-line-ending-format=\n\n# Regexp for a line that is allowed to be longer than the limit.\nignore-long-lines=^\\s*(# )?<?https?://\\S+>?$\n\n# Number of spaces of indent required inside a hanging  or continued line.\nindent-after-paren=4\n\n# String used as indentation unit. This is usually \"    \" (4 spaces) or \"\\t\" (1\n# tab).\nindent-string='    '\n\n# Maximum number of characters on a single line.\nmax-line-length=100\n\n# Maximum number of lines in a module.\nmax-module-lines=1000\n\n# List of optional constructs for which whitespace checking is disabled. `dict-\n# separator` is used to allow tabulation in dicts, etc.: {1  : 1,\\n222: 2}.\n# `trailing-comma` allows a space between comma and closing bracket: (a, ).\n# `empty-line` allows space-only lines.\nno-space-check=trailing-comma,\n               dict-separator\n\n# Allow the body of a class to be on the same line as the declaration if body\n# contains single statement.\nsingle-line-class-stmt=no\n\n# Allow the body of an if to be on the same line as the test if there is no\n# else.\nsingle-line-if-stmt=no\n\n\n[SIMILARITIES]\n\n# Ignore comments when computing similarities.\nignore-comments=yes\n\n# Ignore docstrings when computing similarities.\nignore-docstrings=yes\n\n# Ignore imports when computing similarities.\nignore-imports=no\n\n# Minimum lines number of a similarity.\nmin-similarity-lines=4\n\n\n[BASIC]\n\n# Naming style matching correct argument names.\nargument-naming-style=snake_case\n\n# Regular expression matching correct argument names. Overrides argument-\n# naming-style.\n#argument-rgx=\n\n# Naming style matching correct attribute names.\nattr-naming-style=snake_case\n\n# Regular expression matching correct attribute names. Overrides attr-naming-\n# style.\n#attr-rgx=\n\n# Bad variable names which should always be refused, separated by a comma.\nbad-names=foo,\n          bar,\n          baz,\n          toto,\n          tutu,\n          tata\n\n# Naming style matching correct class attribute names.\nclass-attribute-naming-style=any\n\n# Regular expression matching correct class attribute names. Overrides class-\n# attribute-naming-style.\n#class-attribute-rgx=\n\n# Naming style matching correct class names.\nclass-naming-style=PascalCase\n\n# Regular expression matching correct class names. Overrides class-naming-\n# style.\n#class-rgx=\n\n# Naming style matching correct constant names.\nconst-naming-style=UPPER_CASE\n\n# Regular expression matching correct constant names. Overrides const-naming-\n# style.\n#const-rgx=\n\n# Minimum line length for functions/classes that require docstrings, shorter\n# ones are exempt.\ndocstring-min-length=-1\n\n# Naming style matching correct function names.\nfunction-naming-style=snake_case\n\n# Regular expression matching correct function names. Overrides function-\n# naming-style.\n#function-rgx=\n\n# Good variable names which should always be accepted, separated by a comma.\ngood-names=i,\n           j,\n           k,\n           ex,\n           Run,\n           _\n\n# Include a hint for the correct naming format with invalid-name.\ninclude-naming-hint=no\n\n# Naming style matching correct inline iteration names.\ninlinevar-naming-style=any\n\n# Regular expression matching correct inline iteration names. Overrides\n# inlinevar-naming-style.\n#inlinevar-rgx=\n\n# Naming style matching correct method names.\nmethod-naming-style=snake_case\n\n# Regular expression matching correct method names. Overrides method-naming-\n# style.\n#method-rgx=\n\n# Naming style matching correct module names.\nmodule-naming-style=snake_case\n\n# Regular expression matching correct module names. Overrides module-naming-\n# style.\n#module-rgx=\n\n# Colon-delimited sets of names that determine each other's naming style when\n# the name regexes allow several styles.\nname-group=\n\n# Regular expression which should only match function or class names that do\n# not require a docstring.\nno-docstring-rgx=^_\n\n# List of decorators that produce properties, such as abc.abstractproperty. Add\n# to this list to register other decorators that produce valid properties.\n# These decorators are taken in consideration only for invalid-name.\nproperty-classes=abc.abstractproperty\n\n# Naming style matching correct variable names.\nvariable-naming-style=snake_case\n\n# Regular expression matching correct variable names. Overrides variable-\n# naming-style.\n#variable-rgx=\n\n\n[IMPORTS]\n\n# Allow wildcard imports from modules that define __all__.\nallow-wildcard-with-all=no\n\n# Analyse import fallback blocks. This can be used to support both Python 2 and\n# 3 compatible code, which means that the block might have code that exists\n# only in one or another interpreter, leading to false positives when analysed.\nanalyse-fallback-blocks=no\n\n# Deprecated modules which should not be used, separated by a comma.\ndeprecated-modules=optparse,tkinter.tix\n\n# Create a graph of external dependencies in the given file (report RP0402 must\n# not be disabled).\next-import-graph=\n\n# Create a graph of every (i.e. internal and external) dependencies in the\n# given file (report RP0402 must not be disabled).\nimport-graph=\n\n# Create a graph of internal dependencies in the given file (report RP0402 must\n# not be disabled).\nint-import-graph=\n\n# Force import order to recognize a module as part of the standard\n# compatibility libraries.\nknown-standard-library=\n\n# Force import order to recognize a module as part of a third party library.\nknown-third-party=enchant\n\n\n[CLASSES]\n\n# List of method names used to declare (i.e. assign) instance attributes.\ndefining-attr-methods=__init__,\n                      __new__,\n                      setUp\n\n# List of member names, which should be excluded from the protected access\n# warning.\nexclude-protected=_asdict,\n                  _fields,\n                  _replace,\n                  _source,\n                  _make\n\n# List of valid names for the first argument in a class method.\nvalid-classmethod-first-arg=cls\n\n# List of valid names for the first argument in a metaclass class method.\nvalid-metaclass-classmethod-first-arg=cls\n\n\n[DESIGN]\n\n# Maximum number of arguments for function / method.\nmax-args=5\n\n# Maximum number of attributes for a class (see R0902).\nmax-attributes=7\n\n# Maximum number of boolean expressions in an if statement.\nmax-bool-expr=5\n\n# Maximum number of branch for function / method body.\nmax-branches=12\n\n# Maximum number of locals for function / method body.\nmax-locals=15\n\n# Maximum number of parents for a class (see R0901).\nmax-parents=7\n\n# Maximum number of public methods for a class (see R0904).\nmax-public-methods=20\n\n# Maximum number of return / yield for function / method body.\nmax-returns=6\n\n# Maximum number of statements in function / method body.\nmax-statements=50\n\n# Minimum number of public methods for a class (see R0903).\nmin-public-methods=2\n\n\n[EXCEPTIONS]\n\n# Exceptions that will emit a warning when being caught. Defaults to\n# \"Exception\".\novergeneral-exceptions=Exception\n"
  },
  {
    "path": "requirements.txt",
    "content": "jupyter==1.0.0\nmatplotlib==3.0.1\nnumpy==1.15.3\npandas==0.23.4\nplotly==3.4.1\npylint==2.1.1\nscipy==1.1.0\n"
  }
]